diff --git a/darwin-x86/bin/versioner b/darwin-x86/bin/versioner
index c1f1f8b..be05183 100755
--- a/darwin-x86/bin/versioner
+++ b/darwin-x86/bin/versioner
Binary files differ
diff --git a/darwin-x86/clang-headers b/darwin-x86/clang-headers
index 862969a..fabd016 120000
--- a/darwin-x86/clang-headers
+++ b/darwin-x86/clang-headers
@@ -1 +1 @@
-lib64/clang/14.0.1/include
\ No newline at end of file
+lib64/clang/14.0.2/include
\ No newline at end of file
diff --git a/darwin-x86/lib64/clang/14.0.1/include/riscv_vector.h b/darwin-x86/lib64/clang/14.0.1/include/riscv_vector.h
deleted file mode 100644
index debc75c..0000000
--- a/darwin-x86/lib64/clang/14.0.1/include/riscv_vector.h
+++ /dev/null
@@ -1,123925 +0,0 @@
-/*===---- riscv_vector.h - RISC-V V-extension RVVIntrinsics -------------------===
- *
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-
-#ifndef __RISCV_VECTOR_H
-#define __RISCV_VECTOR_H
-
-#include <stdint.h>
-#include <stddef.h>
-
-#ifndef __riscv_vector
-#error "Vector intrinsics require the vector extension."
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-#define vsetvl_e8mf8(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 5)
-#define vsetvl_e8mf4(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 6)
-#define vsetvl_e8mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 7)
-#define vsetvl_e8m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 0)
-#define vsetvl_e8m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 1)
-#define vsetvl_e8m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 2)
-#define vsetvl_e8m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 3)
-
-#define vsetvl_e16mf4(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 6)
-#define vsetvl_e16mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 7)
-#define vsetvl_e16m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 0)
-#define vsetvl_e16m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 1)
-#define vsetvl_e16m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 2)
-#define vsetvl_e16m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 3)
-
-#define vsetvl_e32mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 7)
-#define vsetvl_e32m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 0)
-#define vsetvl_e32m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 1)
-#define vsetvl_e32m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 2)
-#define vsetvl_e32m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 3)
-
-#define vsetvl_e64m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 0)
-#define vsetvl_e64m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 1)
-#define vsetvl_e64m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 2)
-#define vsetvl_e64m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 3)
-
-
-#define vsetvlmax_e8mf8() __builtin_rvv_vsetvlimax(0, 5)
-#define vsetvlmax_e8mf4() __builtin_rvv_vsetvlimax(0, 6)
-#define vsetvlmax_e8mf2() __builtin_rvv_vsetvlimax(0, 7)
-#define vsetvlmax_e8m1() __builtin_rvv_vsetvlimax(0, 0)
-#define vsetvlmax_e8m2() __builtin_rvv_vsetvlimax(0, 1)
-#define vsetvlmax_e8m4() __builtin_rvv_vsetvlimax(0, 2)
-#define vsetvlmax_e8m8() __builtin_rvv_vsetvlimax(0, 3)
-
-#define vsetvlmax_e16mf4() __builtin_rvv_vsetvlimax(1, 6)
-#define vsetvlmax_e16mf2() __builtin_rvv_vsetvlimax(1, 7)
-#define vsetvlmax_e16m1() __builtin_rvv_vsetvlimax(1, 0)
-#define vsetvlmax_e16m2() __builtin_rvv_vsetvlimax(1, 1)
-#define vsetvlmax_e16m4() __builtin_rvv_vsetvlimax(1, 2)
-#define vsetvlmax_e16m8() __builtin_rvv_vsetvlimax(1, 3)
-
-#define vsetvlmax_e32mf2() __builtin_rvv_vsetvlimax(2, 7)
-#define vsetvlmax_e32m1() __builtin_rvv_vsetvlimax(2, 0)
-#define vsetvlmax_e32m2() __builtin_rvv_vsetvlimax(2, 1)
-#define vsetvlmax_e32m4() __builtin_rvv_vsetvlimax(2, 2)
-#define vsetvlmax_e32m8() __builtin_rvv_vsetvlimax(2, 3)
-
-#define vsetvlmax_e64m1() __builtin_rvv_vsetvlimax(3, 0)
-#define vsetvlmax_e64m2() __builtin_rvv_vsetvlimax(3, 1)
-#define vsetvlmax_e64m4() __builtin_rvv_vsetvlimax(3, 2)
-#define vsetvlmax_e64m8() __builtin_rvv_vsetvlimax(3, 3)
-
-typedef __rvv_bool64_t vbool64_t;
-typedef __rvv_bool32_t vbool32_t;
-typedef __rvv_bool16_t vbool16_t;
-typedef __rvv_bool8_t vbool8_t;
-typedef __rvv_bool4_t vbool4_t;
-typedef __rvv_bool2_t vbool2_t;
-typedef __rvv_bool1_t vbool1_t;
-typedef __rvv_int8mf8_t vint8mf8_t;
-typedef __rvv_uint8mf8_t vuint8mf8_t;
-typedef __rvv_int8mf4_t vint8mf4_t;
-typedef __rvv_uint8mf4_t vuint8mf4_t;
-typedef __rvv_int8mf2_t vint8mf2_t;
-typedef __rvv_uint8mf2_t vuint8mf2_t;
-typedef __rvv_int8m1_t vint8m1_t;
-typedef __rvv_uint8m1_t vuint8m1_t;
-typedef __rvv_int8m2_t vint8m2_t;
-typedef __rvv_uint8m2_t vuint8m2_t;
-typedef __rvv_int8m4_t vint8m4_t;
-typedef __rvv_uint8m4_t vuint8m4_t;
-typedef __rvv_int8m8_t vint8m8_t;
-typedef __rvv_uint8m8_t vuint8m8_t;
-typedef __rvv_int16mf4_t vint16mf4_t;
-typedef __rvv_uint16mf4_t vuint16mf4_t;
-typedef __rvv_int16mf2_t vint16mf2_t;
-typedef __rvv_uint16mf2_t vuint16mf2_t;
-typedef __rvv_int16m1_t vint16m1_t;
-typedef __rvv_uint16m1_t vuint16m1_t;
-typedef __rvv_int16m2_t vint16m2_t;
-typedef __rvv_uint16m2_t vuint16m2_t;
-typedef __rvv_int16m4_t vint16m4_t;
-typedef __rvv_uint16m4_t vuint16m4_t;
-typedef __rvv_int16m8_t vint16m8_t;
-typedef __rvv_uint16m8_t vuint16m8_t;
-typedef __rvv_int32mf2_t vint32mf2_t;
-typedef __rvv_uint32mf2_t vuint32mf2_t;
-typedef __rvv_int32m1_t vint32m1_t;
-typedef __rvv_uint32m1_t vuint32m1_t;
-typedef __rvv_int32m2_t vint32m2_t;
-typedef __rvv_uint32m2_t vuint32m2_t;
-typedef __rvv_int32m4_t vint32m4_t;
-typedef __rvv_uint32m4_t vuint32m4_t;
-typedef __rvv_int32m8_t vint32m8_t;
-typedef __rvv_uint32m8_t vuint32m8_t;
-typedef __rvv_int64m1_t vint64m1_t;
-typedef __rvv_uint64m1_t vuint64m1_t;
-typedef __rvv_int64m2_t vint64m2_t;
-typedef __rvv_uint64m2_t vuint64m2_t;
-typedef __rvv_int64m4_t vint64m4_t;
-typedef __rvv_uint64m4_t vuint64m4_t;
-typedef __rvv_int64m8_t vint64m8_t;
-typedef __rvv_uint64m8_t vuint64m8_t;
-#if defined(__riscv_zfh)
-typedef __rvv_float16mf4_t vfloat16mf4_t;
-typedef __rvv_float16mf2_t vfloat16mf2_t;
-typedef __rvv_float16m1_t vfloat16m1_t;
-typedef __rvv_float16m2_t vfloat16m2_t;
-typedef __rvv_float16m4_t vfloat16m4_t;
-typedef __rvv_float16m8_t vfloat16m8_t;
-#endif
-#if defined(__riscv_f)
-typedef __rvv_float32mf2_t vfloat32mf2_t;
-typedef __rvv_float32m1_t vfloat32m1_t;
-typedef __rvv_float32m2_t vfloat32m2_t;
-typedef __rvv_float32m4_t vfloat32m4_t;
-typedef __rvv_float32m8_t vfloat32m8_t;
-#endif
-#if defined(__riscv_d)
-typedef __rvv_float64m1_t vfloat64m1_t;
-typedef __rvv_float64m2_t vfloat64m2_t;
-typedef __rvv_float64m4_t vfloat64m4_t;
-typedef __rvv_float64m8_t vfloat64m8_t;
-#endif
-
-#define vadd_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vadd_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vadd_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vadd_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vadd_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vadd_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vadd_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vadd_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vadd_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vadd_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vadd_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vadd_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vadd_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vadd_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vadd_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vadd_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vadd_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vadd_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vadd_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vadd_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vadd_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vadd_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vadd_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vadd_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vadd_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vadd_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vadd_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vadd_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vadd_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vadd_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vadd_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vadd_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vadd_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vadd_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vadd_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vadd_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vadd_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vadd_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vadd_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vadd_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vadd_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vadd_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vadd_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vadd_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u16mf4((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u16mf2((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u16m1((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u16m2((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u16m4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u16m8((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u32mf2((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u32m1((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u32m2((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u32m4((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u32m8((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u64m1((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u64m2((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u64m4((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u64m8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei8_v_u8m1(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u8m1((const uint8_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vluxei8_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (const uint8_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_u8m2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u8m2((const uint8_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vluxei8_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (const uint8_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxei8_v_u8m4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u8m4((const uint8_t *)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vluxei8_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (const uint8_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vluxei8_v_u8m8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u8m8((const uint8_t *)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vluxei8_v_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (const uint8_t *)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vluxei8_v_u8mf2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u8mf2((const uint8_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vluxei8_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (const uint8_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_u8mf4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u8mf4((const uint8_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vluxei8_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (const uint8_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_u8mf8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u8mf8((const uint8_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vluxei8_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (const uint8_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vlse64_v_u64m1(op0, op1, op2) \
-__builtin_rvv_vlse64_v_u64m1((const uint64_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (const uint64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse64_v_u64m2(op0, op1, op2) \
-__builtin_rvv_vlse64_v_u64m2((const uint64_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (const uint64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse64_v_u64m4(op0, op1, op2) \
-__builtin_rvv_vlse64_v_u64m4((const uint64_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (const uint64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse64_v_u64m8(op0, op1, op2) \
-__builtin_rvv_vlse64_v_u64m8((const uint64_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (const uint64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vsse16_v_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_i16m1((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsse16_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsse16_v_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_i16m2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsse16_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsse16_v_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_i16m4((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vsse16_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsse16_v_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_i16m8((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vsse16_v_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_i16m8_m((vbool2_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vsse16_v_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_i16mf2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsse16_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsse16_v_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_i16mf4((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsse16_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsse16_v_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_u16m1((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vsse16_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsse16_v_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_u16m2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vsse16_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsse16_v_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_u16m4((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vsse16_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsse16_v_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_u16m8((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vsse16_v_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_u16m8_m((vbool2_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vsse16_v_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_u16mf2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vsse16_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsse16_v_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_u16mf4((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vsse16_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsse32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_i32m1((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vsse32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsse32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_i32m2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vsse32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsse32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_i32m4((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vsse32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsse32_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_i32m8((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vsse32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vsse32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_i32mf2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsse32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsse32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_u32m1((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vsse32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsse32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_u32m2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vsse32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsse32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_u32m4((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vsse32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsse32_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_u32m8((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vsse32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsse32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_u32mf2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vsse32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsse64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_i64m1((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vsse64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsse64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_i64m2((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vsse64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsse64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_i64m4((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vsse64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsse64_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_i64m8((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vsse64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsse64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_u64m1((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vsse64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsse64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_u64m2((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vsse64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsse64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_u64m4((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vsse64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsse64_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_u64m8((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vsse64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxei16_v_i8m1(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i8m1((const int8_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vluxei16_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (const int8_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxei16_v_i8m2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i8m2((const int8_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vluxei16_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (const int8_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxei16_v_i8m4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i8m4((const int8_t *)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vluxei16_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (const int8_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vluxei16_v_i8mf2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i8mf2((const int8_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vluxei16_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (const int8_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_i8mf4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i8mf4((const int8_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vluxei16_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (const int8_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxei16_v_i8mf8(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i8mf8((const int8_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vluxei16_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (const int8_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxei16_v_u8m1(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u8m1((const uint8_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vluxei16_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (const uint8_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxei16_v_u8m2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u8m2((const uint8_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vluxei16_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (const uint8_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxei16_v_u8m4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u8m4((const uint8_t *)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vluxei16_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (const uint8_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vluxei16_v_u8mf2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u8mf2((const uint8_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vluxei16_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (const uint8_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_u8mf4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u8mf4((const uint8_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vluxei16_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (const uint8_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxei16_v_u8mf8(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u8mf8((const uint8_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vluxei16_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (const uint8_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxei32_v_i8m1(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i8m1((const int8_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vluxei32_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (const int8_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei32_v_i8m2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i8m2((const int8_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vluxei32_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (const int8_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxei32_v_i8mf2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i8mf2((const int8_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vluxei32_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (const int8_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_i8mf4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i8mf4((const int8_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vluxei32_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (const int8_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxei32_v_i8mf8(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i8mf8((const int8_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vluxei32_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (const int8_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxei32_v_u8m1(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u8m1((const uint8_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vluxei32_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (const uint8_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei32_v_u8m2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u8m2((const uint8_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vluxei32_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (const uint8_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxei32_v_u8mf2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u8mf2((const uint8_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vluxei32_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (const uint8_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_u8mf4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u8mf4((const uint8_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vluxei32_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (const uint8_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxei32_v_u8mf8(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u8mf8((const uint8_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vluxei32_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (const uint8_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxei64_v_i8m1(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i8m1((const int8_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vluxei64_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (const int8_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxei64_v_i8mf2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i8mf2((const int8_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vluxei64_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (const int8_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_i8mf4(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i8mf4((const int8_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vluxei64_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (const int8_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxei64_v_i8mf8(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i8mf8((const int8_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vluxei64_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (const int8_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxei64_v_u8m1(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u8m1((const uint8_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vluxei64_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (const uint8_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxei64_v_u8mf2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u8mf2((const uint8_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vluxei64_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (const uint8_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_u8mf4(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u8mf4((const uint8_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vluxei64_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (const uint8_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxei64_v_u8mf8(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u8mf8((const uint8_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vluxei64_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (const uint8_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_i16m1(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i16m1((const int16_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vluxei8_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (const int16_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_i16m2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i16m2((const int16_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vluxei8_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (const int16_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_i16m4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i16m4((const int16_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vluxei8_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (const int16_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxei8_v_i16m8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i16m8((const int16_t *)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vluxei8_v_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (const int16_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vluxei8_v_i16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i16mf2((const int16_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vluxei8_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (const int16_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_i16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i16mf4((const int16_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vluxei8_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (const int16_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxei8_v_u16m1(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u16m1((const uint16_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vluxei8_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (const uint16_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_u16m2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u16m2((const uint16_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vluxei8_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (const uint16_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_u16m4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u16m4((const uint16_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vluxei8_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (const uint16_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxei8_v_u16m8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u16m8((const uint16_t *)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vluxei8_v_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (const uint16_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vluxei8_v_u16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u16mf2((const uint16_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vluxei8_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (const uint16_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_u16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u16mf4((const uint16_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vluxei8_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (const uint16_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxei16_v_i16m1(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i16m1((const int16_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vluxei16_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (const int16_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_i16m2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i16m2((const int16_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vluxei16_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (const int16_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxei16_v_i16m4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i16m4((const int16_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vluxei16_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (const int16_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxei16_v_i16m8(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i16m8((const int16_t *)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vluxei16_v_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (const int16_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vluxei16_v_i16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i16mf2((const int16_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vluxei16_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (const int16_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxei16_v_i16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i16mf4((const int16_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vluxei16_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (const int16_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxei16_v_u16m1(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u16m1((const uint16_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vluxei16_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (const uint16_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_u16m2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u16m2((const uint16_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vluxei16_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (const uint16_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxei16_v_u16m4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u16m4((const uint16_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vluxei16_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (const uint16_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxei16_v_u16m8(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u16m8((const uint16_t *)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vluxei16_v_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (const uint16_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vluxei16_v_u16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u16mf2((const uint16_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vluxei16_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (const uint16_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxei16_v_u16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u16mf4((const uint16_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vluxei16_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (const uint16_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxei32_v_i16m1(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i16m1((const int16_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vluxei32_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (const int16_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_i16m2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i16m2((const int16_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vluxei32_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (const int16_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei32_v_i16m4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i16m4((const int16_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vluxei32_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (const int16_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxei32_v_i16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i16mf2((const int16_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vluxei32_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (const int16_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxei32_v_i16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i16mf4((const int16_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vluxei32_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (const int16_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxei32_v_u16m1(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u16m1((const uint16_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vluxei32_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (const uint16_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_u16m2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u16m2((const uint16_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vluxei32_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (const uint16_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei32_v_u16m4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u16m4((const uint16_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vluxei32_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (const uint16_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxei32_v_u16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u16mf2((const uint16_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vluxei32_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (const uint16_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxei32_v_u16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u16mf4((const uint16_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vluxei32_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (const uint16_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxei64_v_i16m1(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i16m1((const int16_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vluxei64_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (const int16_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_i16m2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i16m2((const int16_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vluxei64_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (const int16_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxei64_v_i16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i16mf2((const int16_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vluxei64_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (const int16_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxei64_v_i16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i16mf4((const int16_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vluxei64_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (const int16_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxei64_v_u16m1(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u16m1((const uint16_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vluxei64_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (const uint16_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_u16m2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u16m2((const uint16_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vluxei64_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (const uint16_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxei64_v_u16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u16mf2((const uint16_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vluxei64_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (const uint16_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxei64_v_u16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u16mf4((const uint16_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vluxei64_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (const uint16_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_i32m1(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i32m1((const int32_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vluxei8_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (const int32_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_i32m2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i32m2((const int32_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vluxei8_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (const int32_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_i32m4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i32m4((const int32_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vluxei8_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (const int32_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_i32m8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i32m8((const int32_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vluxei8_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (const int32_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxei8_v_i32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i32mf2((const int32_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vluxei8_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (const int32_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxei8_v_u32m1(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u32m1((const uint32_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vluxei8_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (const uint32_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_u32m2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u32m2((const uint32_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vluxei8_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (const uint32_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_u32m4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u32m4((const uint32_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vluxei8_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (const uint32_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_u32m8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u32m8((const uint32_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vluxei8_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (const uint32_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxei8_v_u32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u32mf2((const uint32_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vluxei8_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (const uint32_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxei16_v_i32m1(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i32m1((const int32_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vluxei16_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (const int32_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxei16_v_i32m2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i32m2((const int32_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vluxei16_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (const int32_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_i32m4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i32m4((const int32_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vluxei16_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (const int32_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxei16_v_i32m8(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i32m8((const int32_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vluxei16_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (const int32_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxei16_v_i32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i32mf2((const int32_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vluxei16_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (const int32_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxei16_v_u32m1(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u32m1((const uint32_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vluxei16_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (const uint32_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxei16_v_u32m2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u32m2((const uint32_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vluxei16_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (const uint32_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_u32m4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u32m4((const uint32_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vluxei16_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (const uint32_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxei16_v_u32m8(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u32m8((const uint32_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vluxei16_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (const uint32_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxei16_v_u32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u32mf2((const uint32_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vluxei16_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (const uint32_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxei32_v_i32m1(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i32m1((const int32_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vluxei32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (const int32_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxei32_v_i32m2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i32m2((const int32_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vluxei32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (const int32_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_i32m4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i32m4((const int32_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vluxei32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (const int32_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei32_v_i32m8(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i32m8((const int32_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vluxei32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (const int32_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxei32_v_i32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i32mf2((const int32_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vluxei32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (const int32_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxei32_v_u32m1(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u32m1((const uint32_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vluxei32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (const uint32_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxei32_v_u32m2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u32m2((const uint32_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vluxei32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (const uint32_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_u32m4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u32m4((const uint32_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vluxei32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (const uint32_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei32_v_u32m8(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u32m8((const uint32_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vluxei32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (const uint32_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxei32_v_u32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u32mf2((const uint32_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vluxei32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (const uint32_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxei64_v_i32m1(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i32m1((const int32_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vluxei64_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (const int32_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxei64_v_i32m2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i32m2((const int32_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vluxei64_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (const int32_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_i32m4(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i32m4((const int32_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vluxei64_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (const int32_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxei64_v_i32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i32mf2((const int32_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vluxei64_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (const int32_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxei64_v_u32m1(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u32m1((const uint32_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vluxei64_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (const uint32_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxei64_v_u32m2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u32m2((const uint32_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vluxei64_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (const uint32_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_u32m4(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u32m4((const uint32_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vluxei64_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (const uint32_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxei64_v_u32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u32mf2((const uint32_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vluxei64_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (const uint32_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_i64m1(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i64m1((const int64_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vluxei8_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (const int64_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxei8_v_i64m2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i64m2((const int64_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vluxei8_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (const int64_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_i64m4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i64m4((const int64_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vluxei8_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (const int64_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_i64m8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i64m8((const int64_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vluxei8_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (const int64_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_u64m1(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u64m1((const uint64_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vluxei8_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (const uint64_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxei8_v_u64m2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u64m2((const uint64_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vluxei8_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (const uint64_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_u64m4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u64m4((const uint64_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vluxei8_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (const uint64_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_u64m8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u64m8((const uint64_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vluxei8_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (const uint64_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_i64m1(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i64m1((const int64_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vluxei16_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (const int64_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxei16_v_i64m2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i64m2((const int64_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vluxei16_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (const int64_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxei16_v_i64m4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i64m4((const int64_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vluxei16_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (const int64_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_i64m8(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i64m8((const int64_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vluxei16_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (const int64_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxei16_v_u64m1(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u64m1((const uint64_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vluxei16_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (const uint64_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxei16_v_u64m2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u64m2((const uint64_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vluxei16_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (const uint64_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxei16_v_u64m4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u64m4((const uint64_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vluxei16_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (const uint64_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_u64m8(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u64m8((const uint64_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vluxei16_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (const uint64_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_i64m1(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i64m1((const int64_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vluxei32_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (const int64_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxei32_v_i64m2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i64m2((const int64_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vluxei32_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (const int64_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxei32_v_i64m4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i64m4((const int64_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vluxei32_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (const int64_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_i64m8(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i64m8((const int64_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vluxei32_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (const int64_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei32_v_u64m1(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u64m1((const uint64_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vluxei32_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (const uint64_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxei32_v_u64m2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u64m2((const uint64_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vluxei32_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (const uint64_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxei32_v_u64m4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u64m4((const uint64_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vluxei32_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (const uint64_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_u64m8(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u64m8((const uint64_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vluxei32_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (const uint64_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_i64m1(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i64m1((const int64_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vluxei64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (const int64_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxei64_v_i64m2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i64m2((const int64_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vluxei64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (const int64_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxei64_v_i64m4(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i64m4((const int64_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vluxei64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (const int64_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_i64m8(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i64m8((const int64_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vluxei64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (const int64_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxei64_v_u64m1(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u64m1((const uint64_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vluxei64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (const uint64_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxei64_v_u64m2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u64m2((const uint64_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vluxei64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (const uint64_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxei64_v_u64m4(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u64m4((const uint64_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vluxei64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (const uint64_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_u64m8(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u64m8((const uint64_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vluxei64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (const uint64_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxei8_v_i8m1(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i8m1((const int8_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vloxei8_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (const int8_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_i8m2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i8m2((const int8_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vloxei8_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (const int8_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxei8_v_i8m4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i8m4((const int8_t *)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vloxei8_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (const int8_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vloxei8_v_i8m8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i8m8((const int8_t *)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vloxei8_v_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (const int8_t *)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vloxei8_v_i8mf2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i8mf2((const int8_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vloxei8_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (const int8_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxei8_v_i8mf4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i8mf4((const int8_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vloxei8_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (const int8_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxei8_v_i8mf8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i8mf8((const int8_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vloxei8_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (const int8_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxei8_v_u8m1(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u8m1((const uint8_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vloxei8_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (const uint8_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_u8m2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u8m2((const uint8_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vloxei8_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (const uint8_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxei8_v_u8m4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u8m4((const uint8_t *)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vloxei8_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (const uint8_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vloxei8_v_u8m8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u8m8((const uint8_t *)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vloxei8_v_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (const uint8_t *)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vloxei8_v_u8mf2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u8mf2((const uint8_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vloxei8_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (const uint8_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxei8_v_u8mf4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u8mf4((const uint8_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vloxei8_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (const uint8_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxei8_v_u8mf8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u8mf8((const uint8_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vloxei8_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (const uint8_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxei16_v_i8m1(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i8m1((const int8_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vloxei16_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (const int8_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxei16_v_i8m2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i8m2((const int8_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vloxei16_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (const int8_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxei16_v_i8m4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i8m4((const int8_t *)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vloxei16_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (const int8_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vloxei16_v_i8mf2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i8mf2((const int8_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vloxei16_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (const int8_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_i8mf4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i8mf4((const int8_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vloxei16_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (const int8_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxei16_v_i8mf8(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i8mf8((const int8_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vloxei16_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (const int8_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxei16_v_u8m1(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u8m1((const uint8_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vloxei16_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (const uint8_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxei16_v_u8m2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u8m2((const uint8_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vloxei16_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (const uint8_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxei16_v_u8m4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u8m4((const uint8_t *)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vloxei16_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (const uint8_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vloxei16_v_u8mf2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u8mf2((const uint8_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vloxei16_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (const uint8_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_u8mf4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u8mf4((const uint8_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vloxei16_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (const uint8_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxei16_v_u8mf8(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u8mf8((const uint8_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vloxei16_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (const uint8_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxei32_v_i8m1(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i8m1((const int8_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vloxei32_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (const int8_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxei32_v_i8m2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i8m2((const int8_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vloxei32_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (const int8_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxei32_v_i8mf2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i8mf2((const int8_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vloxei32_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (const int8_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_i8mf4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i8mf4((const int8_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vloxei32_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (const int8_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxei32_v_i8mf8(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i8mf8((const int8_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vloxei32_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (const int8_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxei32_v_u8m1(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u8m1((const uint8_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vloxei32_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (const uint8_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxei32_v_u8m2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u8m2((const uint8_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vloxei32_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (const uint8_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxei32_v_u8mf2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u8mf2((const uint8_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vloxei32_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (const uint8_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_u8mf4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u8mf4((const uint8_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vloxei32_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (const uint8_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxei32_v_u8mf8(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u8mf8((const uint8_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vloxei32_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (const uint8_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxei64_v_i8m1(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i8m1((const int8_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vloxei64_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (const int8_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxei64_v_i8mf2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i8mf2((const int8_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vloxei64_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (const int8_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_i8mf4(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i8mf4((const int8_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vloxei64_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (const int8_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxei64_v_i8mf8(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i8mf8((const int8_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vloxei64_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (const int8_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxei64_v_u8m1(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u8m1((const uint8_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vloxei64_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (const uint8_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxei64_v_u8mf2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u8mf2((const uint8_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vloxei64_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (const uint8_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_u8mf4(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u8mf4((const uint8_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vloxei64_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (const uint8_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxei64_v_u8mf8(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u8mf8((const uint8_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vloxei64_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (const uint8_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_i16m1(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i16m1((const int16_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vloxei8_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (const int16_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxei8_v_i16m2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i16m2((const int16_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vloxei8_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (const int16_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_i16m4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i16m4((const int16_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vloxei8_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (const int16_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxei8_v_i16m8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i16m8((const int16_t *)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vloxei8_v_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (const int16_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vloxei8_v_i16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i16mf2((const int16_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vloxei8_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (const int16_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxei8_v_i16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i16mf4((const int16_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vloxei8_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (const int16_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxei8_v_u16m1(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u16m1((const uint16_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vloxei8_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (const uint16_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxei8_v_u16m2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u16m2((const uint16_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vloxei8_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (const uint16_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_u16m4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u16m4((const uint16_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vloxei8_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (const uint16_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxei8_v_u16m8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u16m8((const uint16_t *)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vloxei8_v_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (const uint16_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vloxei8_v_u16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u16mf2((const uint16_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vloxei8_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (const uint16_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxei8_v_u16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u16mf4((const uint16_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vloxei8_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (const uint16_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxei16_v_i16m1(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i16m1((const int16_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vloxei16_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (const int16_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_i16m2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i16m2((const int16_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vloxei16_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (const int16_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxei16_v_i16m4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i16m4((const int16_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vloxei16_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (const int16_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxei16_v_i16m8(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i16m8((const int16_t *)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vloxei16_v_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (const int16_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vloxei16_v_i16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i16mf2((const int16_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vloxei16_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (const int16_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxei16_v_i16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i16mf4((const int16_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vloxei16_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (const int16_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxei16_v_u16m1(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u16m1((const uint16_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vloxei16_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (const uint16_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_u16m2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u16m2((const uint16_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vloxei16_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (const uint16_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxei16_v_u16m4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u16m4((const uint16_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vloxei16_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (const uint16_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxei16_v_u16m8(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u16m8((const uint16_t *)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vloxei16_v_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (const uint16_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vloxei16_v_u16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u16mf2((const uint16_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vloxei16_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (const uint16_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxei16_v_u16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u16mf4((const uint16_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vloxei16_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (const uint16_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxei32_v_i16m1(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i16m1((const int16_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vloxei32_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (const int16_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_i16m2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i16m2((const int16_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vloxei32_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (const int16_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxei32_v_i16m4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i16m4((const int16_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vloxei32_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (const int16_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxei32_v_i16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i16mf2((const int16_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vloxei32_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (const int16_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxei32_v_i16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i16mf4((const int16_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vloxei32_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (const int16_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxei32_v_u16m1(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u16m1((const uint16_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vloxei32_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (const uint16_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_u16m2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u16m2((const uint16_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vloxei32_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (const uint16_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxei32_v_u16m4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u16m4((const uint16_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vloxei32_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (const uint16_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxei32_v_u16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u16mf2((const uint16_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vloxei32_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (const uint16_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxei32_v_u16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u16mf4((const uint16_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vloxei32_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (const uint16_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxei64_v_i16m1(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i16m1((const int16_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vloxei64_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (const int16_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_i16m2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i16m2((const int16_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vloxei64_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (const int16_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxei64_v_i16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i16mf2((const int16_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vloxei64_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (const int16_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxei64_v_i16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i16mf4((const int16_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vloxei64_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (const int16_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxei64_v_u16m1(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u16m1((const uint16_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vloxei64_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (const uint16_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_u16m2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u16m2((const uint16_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vloxei64_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (const uint16_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxei64_v_u16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u16mf2((const uint16_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vloxei64_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (const uint16_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxei64_v_u16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u16mf4((const uint16_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vloxei64_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (const uint16_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_i32m1(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i32m1((const int32_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vloxei8_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (const int32_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxei8_v_i32m2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i32m2((const int32_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vloxei8_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (const int32_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxei8_v_i32m4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i32m4((const int32_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vloxei8_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (const int32_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_i32m8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i32m8((const int32_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vloxei8_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (const int32_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxei8_v_i32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i32mf2((const int32_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vloxei8_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (const int32_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxei8_v_u32m1(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u32m1((const uint32_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vloxei8_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (const uint32_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxei8_v_u32m2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u32m2((const uint32_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vloxei8_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (const uint32_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxei8_v_u32m4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u32m4((const uint32_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vloxei8_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (const uint32_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_u32m8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u32m8((const uint32_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vloxei8_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (const uint32_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxei8_v_u32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u32mf2((const uint32_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vloxei8_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (const uint32_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxei16_v_i32m1(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i32m1((const int32_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vloxei16_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (const int32_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxei16_v_i32m2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i32m2((const int32_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vloxei16_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (const int32_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_i32m4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i32m4((const int32_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vloxei16_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (const int32_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxei16_v_i32m8(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i32m8((const int32_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vloxei16_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (const int32_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxei16_v_i32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i32mf2((const int32_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vloxei16_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (const int32_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxei16_v_u32m1(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u32m1((const uint32_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vloxei16_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (const uint32_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxei16_v_u32m2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u32m2((const uint32_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vloxei16_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (const uint32_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_u32m4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u32m4((const uint32_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vloxei16_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (const uint32_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxei16_v_u32m8(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u32m8((const uint32_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vloxei16_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (const uint32_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxei16_v_u32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u32mf2((const uint32_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vloxei16_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (const uint32_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxei32_v_i32m1(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i32m1((const int32_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vloxei32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (const int32_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxei32_v_i32m2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i32m2((const int32_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vloxei32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (const int32_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_i32m4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i32m4((const int32_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vloxei32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (const int32_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxei32_v_i32m8(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i32m8((const int32_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vloxei32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (const int32_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxei32_v_i32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i32mf2((const int32_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vloxei32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (const int32_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxei32_v_u32m1(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u32m1((const uint32_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vloxei32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (const uint32_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxei32_v_u32m2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u32m2((const uint32_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vloxei32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (const uint32_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_u32m4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u32m4((const uint32_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vloxei32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (const uint32_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxei32_v_u32m8(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u32m8((const uint32_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vloxei32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (const uint32_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxei32_v_u32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u32mf2((const uint32_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vloxei32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (const uint32_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxei64_v_i32m1(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i32m1((const int32_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vloxei64_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (const int32_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxei64_v_i32m2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i32m2((const int32_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vloxei64_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (const int32_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_i32m4(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i32m4((const int32_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vloxei64_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (const int32_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxei64_v_i32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i32mf2((const int32_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vloxei64_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (const int32_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxei64_v_u32m1(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u32m1((const uint32_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vloxei64_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (const uint32_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxei64_v_u32m2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u32m2((const uint32_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vloxei64_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (const uint32_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_u32m4(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u32m4((const uint32_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vloxei64_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (const uint32_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxei64_v_u32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u32mf2((const uint32_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vloxei64_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (const uint32_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_i64m1(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i64m1((const int64_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vloxei8_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (const int64_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxei8_v_i64m2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i64m2((const int64_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vloxei8_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (const int64_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxei8_v_i64m4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i64m4((const int64_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vloxei8_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (const int64_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxei8_v_i64m8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i64m8((const int64_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vloxei8_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (const int64_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vse8_v_i8m1(op0, op1, op2) \
-__builtin_rvv_vse8_v_i8m1((int8_t *)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vse8_v_i8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vse8_v_i8m2(op0, op1, op2) \
-__builtin_rvv_vse8_v_i8m2((int8_t *)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vse8_v_i8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vse8_v_i8m4(op0, op1, op2) \
-__builtin_rvv_vse8_v_i8m4((int8_t *)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vse8_v_i8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vse8_v_i8m8(op0, op1, op2) \
-__builtin_rvv_vse8_v_i8m8((int8_t *)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vse8_v_i8m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_i8m8_m((vbool1_t)(op0), (int8_t *)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vse8_v_i8mf2(op0, op1, op2) \
-__builtin_rvv_vse8_v_i8mf2((int8_t *)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vse8_v_i8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vse8_v_i8mf4(op0, op1, op2) \
-__builtin_rvv_vse8_v_i8mf4((int8_t *)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vse8_v_i8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vse8_v_i8mf8(op0, op1, op2) \
-__builtin_rvv_vse8_v_i8mf8((int8_t *)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vse8_v_i8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vloxei8_v_u64m1(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u64m1((const uint64_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vloxei8_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (const uint64_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxei8_v_u64m2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u64m2((const uint64_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vloxei8_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (const uint64_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxei8_v_u64m4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u64m4((const uint64_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vloxei8_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (const uint64_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxei8_v_u64m8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u64m8((const uint64_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vloxei8_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (const uint64_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_i64m1(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i64m1((const int64_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vloxei16_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (const int64_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxei16_v_i64m2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i64m2((const int64_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vloxei16_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (const int64_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxei16_v_i64m4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i64m4((const int64_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vloxei16_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (const int64_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_i64m8(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i64m8((const int64_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vloxei16_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (const int64_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxei16_v_u64m1(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u64m1((const uint64_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vloxei16_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (const uint64_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxei16_v_u64m2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u64m2((const uint64_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vloxei16_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (const uint64_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxei16_v_u64m4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u64m4((const uint64_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vloxei16_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (const uint64_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_u64m8(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u64m8((const uint64_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vloxei16_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (const uint64_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_i64m1(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i64m1((const int64_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vloxei32_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (const int64_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxei32_v_i64m2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i64m2((const int64_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vloxei32_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (const int64_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxei32_v_i64m4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i64m4((const int64_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vloxei32_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (const int64_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_i64m8(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i64m8((const int64_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vloxei32_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (const int64_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxei32_v_u64m1(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u64m1((const uint64_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vloxei32_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (const uint64_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxei32_v_u64m2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u64m2((const uint64_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vloxei32_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (const uint64_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxei32_v_u64m4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u64m4((const uint64_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vloxei32_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (const uint64_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_u64m8(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u64m8((const uint64_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vloxei32_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (const uint64_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_i64m1(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i64m1((const int64_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vloxei64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (const int64_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxei64_v_i64m2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i64m2((const int64_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vloxei64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (const int64_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxei64_v_i64m4(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i64m4((const int64_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vloxei64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (const int64_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_i64m8(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i64m8((const int64_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vloxei64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (const int64_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxei64_v_u64m1(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u64m1((const uint64_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vloxei64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (const uint64_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxei64_v_u64m2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u64m2((const uint64_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vloxei64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (const uint64_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxei64_v_u64m4(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u64m4((const uint64_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vloxei64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (const uint64_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_u64m8(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u64m8((const uint64_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vloxei64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (const uint64_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vse8_v_u8m1(op0, op1, op2) \
-__builtin_rvv_vse8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vse8_v_u8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vse8_v_u8m2(op0, op1, op2) \
-__builtin_rvv_vse8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vse8_v_u8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vse8_v_u8m4(op0, op1, op2) \
-__builtin_rvv_vse8_v_u8m4((uint8_t *)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vse8_v_u8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vse8_v_u8m8(op0, op1, op2) \
-__builtin_rvv_vse8_v_u8m8((uint8_t *)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vse8_v_u8m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_u8m8_m((vbool1_t)(op0), (uint8_t *)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vse8_v_u8mf2(op0, op1, op2) \
-__builtin_rvv_vse8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vse8_v_u8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vse8_v_u8mf4(op0, op1, op2) \
-__builtin_rvv_vse8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vse8_v_u8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vse8_v_u8mf8(op0, op1, op2) \
-__builtin_rvv_vse8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vse8_v_u8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vwaddu_wv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u16mf4((vuint16mf4_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u16mf2((vuint16mf2_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u16m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u16m1((vuint16m1_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u16m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u16m2((vuint16m2_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u16m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u16m4((vuint16m4_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u16m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u16m8((vuint16m8_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u32mf2((vuint32mf2_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u32m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u32m1((vuint32m1_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u32m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u32m2((vuint32m2_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u32m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u32m4((vuint32m4_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u32m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u32m8((vuint32m8_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u64m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u64m1((vuint64m1_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u64m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u64m2((vuint64m2_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u64m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u64m4((vuint64m4_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u64m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u64m8((vuint64m8_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsse8_v_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_i8m1((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsse8_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsse8_v_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_i8m2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vsse8_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsse8_v_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_i8m4((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vsse8_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsse8_v_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_i8m8((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vsse8_v_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_i8m8_m((vbool1_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vsse8_v_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_i8mf2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsse8_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsse8_v_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_i8mf4((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsse8_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsse8_v_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_i8mf8((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsse8_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i8m2((int8_t *)(op0), (vuint16m4_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint16m4_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i8m4((int8_t *)(op0), (vuint16m8_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (vuint16m8_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u8m2((uint8_t *)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u8m4((uint8_t *)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (vuint16m8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i8m2((int8_t *)(op0), (vuint32m8_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint32m8_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vadd_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vadd_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vadd_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vadd_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vadd_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vadd_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vadd_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vadd_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vadd_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vadd_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vadd_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vadd_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vadd_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vadd_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vadd_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vadd_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vadd_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vadd_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vadd_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vadd_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vadd_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vadd_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vadd_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vadd_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vadd_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vadd_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vadd_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vadd_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vadd_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vadd_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vadd_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vadd_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vadd_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vadd_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vadd_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vadd_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vadd_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vadd_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vadd_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vadd_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vadd_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vadd_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vadd_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vadd_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vadd_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vadd_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vadd_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vadd_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vadd_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vadd_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vadd_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vadd_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vadd_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vadd_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vadd_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vadd_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vadd_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vadd_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vadd_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vadd_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vadd_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vadd_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vadd_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vadd_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vadd_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vadd_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vadd_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vadd_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vadd_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vadd_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vadd_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vadd_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vadd_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vadd_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vadd_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vadd_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vadd_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vadd_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vadd_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vadd_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vadd_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vadd_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vadd_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vadd_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vadd_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vadd_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vadd_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vadd_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vadd_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vadd_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vadd_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vadd_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vadd_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vadd_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vadd_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vadd_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vadd_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vadd_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vadd_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vadd_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vadd_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vadd_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vadd_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vadd_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vadd_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vadd_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vadd_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vadd_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vadd_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vadd_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vadd_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vadd_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vadd_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vadd_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vadd_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vadd_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vadd_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vadd_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vadd_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vadd_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vadd_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vadd_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vadd_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vadd_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vadd_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vadd_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vadd_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vadd_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vadd_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vadd_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vadd_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vadd_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vsub_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vsub_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsub_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vsub_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsub_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vsub_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsub_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vsub_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vsub_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vsub_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsub_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vsub_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsub_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vsub_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsub_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vsub_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsub_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vsub_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsub_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vsub_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsub_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vsub_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vsub_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vsub_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsub_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vsub_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsub_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vsub_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsub_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vsub_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsub_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vsub_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsub_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vsub_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vsub_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vsub_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsub_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vsub_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsub_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vsub_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsub_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vsub_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsub_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vsub_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u8m2((uint8_t *)(op0), (vuint32m8_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint32m8_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsub_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsub_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsub_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsub_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsub_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsub_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsub_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsub_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsub_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsub_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsub_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsub_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsub_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsub_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsub_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsub_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsub_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsub_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsub_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsub_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsub_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsub_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsub_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsub_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsub_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsub_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsub_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsub_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsub_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsub_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsub_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsub_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsub_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsub_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsub_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsub_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsub_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsub_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsub_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsub_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsub_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsub_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsub_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsub_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsub_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vsub_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsub_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vsub_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsub_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vsub_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsub_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vsub_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vsub_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vsub_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsub_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vsub_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsub_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vsub_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsub_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vsub_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsub_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vsub_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsub_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vsub_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsub_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vsub_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vsub_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vsub_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsub_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vsub_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsub_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vsub_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsub_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vsub_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsub_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vsub_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsub_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vsub_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsub_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vsub_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsub_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vsub_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsub_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vsub_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsub_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vsub_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsub_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vsub_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsub_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsub_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsub_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsub_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsub_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsub_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsub_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsub_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsub_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsub_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsub_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsub_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsub_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsub_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsub_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsub_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsub_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsub_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsub_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsub_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsub_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsub_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsub_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsub_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsub_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsub_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsub_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vsub_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vsub_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vsub_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vsub_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vsub_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vsub_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vsub_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vsub_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vsub_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vsub_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vsub_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vsub_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vsub_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vsub_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vsub_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vsub_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vsub_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vrsub_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrsub_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrsub_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrsub_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrsub_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrsub_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrsub_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrsub_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrsub_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrsub_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrsub_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrsub_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrsub_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrsub_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrsub_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrsub_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrsub_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrsub_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrsub_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrsub_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrsub_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrsub_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrsub_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrsub_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrsub_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrsub_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrsub_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vrsub_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vrsub_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vrsub_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vrsub_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vrsub_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vrsub_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vrsub_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vrsub_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vrsub_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vrsub_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vrsub_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vrsub_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vrsub_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vrsub_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vrsub_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vrsub_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vrsub_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vrsub_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vrsub_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vrsub_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vrsub_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vrsub_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vrsub_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vrsub_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vrsub_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vrsub_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vrsub_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vrsub_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vrsub_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vrsub_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vrsub_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vrsub_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vrsub_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vrsub_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vrsub_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vrsub_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vrsub_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vrsub_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vrsub_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vrsub_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vrsub_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vrsub_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vrsub_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vrsub_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vrsub_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vrsub_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vrsub_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vrsub_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vrsub_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vrsub_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vrsub_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vrsub_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vrsub_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vrsub_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vrsub_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vrsub_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vrsub_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vrsub_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vrsub_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vrsub_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vrsub_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u16mf4((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u16mf2((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u16m1((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u16m2((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u16m4((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u16m8((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u32mf2((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u32m1((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u32m2((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u32m4((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u32m8((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u64m1((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u64m2((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u64m4((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u64m8((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u16mf4((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u16mf2((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u16m1((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u16m2((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u16m4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u16m8((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u32mf2((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u32m1((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u32m2((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u32m4((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u32m8((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u64m1((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u64m2((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u64m4((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u64m8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u16mf4((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u16mf2((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u16m1((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u16m2((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u16m4((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u16m8((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u32mf2((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u32m1((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u32m2((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u32m4((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u32m8((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u64m1((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u64m2((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u64m4((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u64m8((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwadd_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i16mf4((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vwadd_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vwadd_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i16mf2((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vwadd_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vwadd_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i16m1((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vwadd_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vwadd_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i16m2((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vwadd_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vwadd_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i16m4((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vwadd_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vwadd_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i16m8((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vwadd_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vwadd_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i32mf2((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vwadd_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vwadd_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i32m1((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vwadd_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vwadd_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i32m2((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vwadd_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwadd_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i32m4((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vwadd_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vwadd_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i32m8((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vwadd_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vwadd_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i64m1((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vwadd_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vwadd_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i64m2((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vwadd_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwadd_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i64m4((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vwadd_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vwadd_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i64m8((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vwadd_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vwadd_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i16mf4((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i16mf2((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i16m1((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i16m2((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i16m4((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i16m8((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i32mf2((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwadd_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwadd_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i32m1((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwadd_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwadd_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i32m2((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwadd_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwadd_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i32m4((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwadd_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwadd_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i32m8((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwadd_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwadd_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i64m1((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwadd_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwadd_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i64m2((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwadd_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwadd_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i64m4((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwadd_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwadd_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i64m8((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwadd_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vwsub_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i16mf4((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vwsub_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vwsub_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i16mf2((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vwsub_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vwsub_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i16m1((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vwsub_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vwsub_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i16m2((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vwsub_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vwsub_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i16m4((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vwsub_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vwsub_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i16m8((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vwsub_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vwsub_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i32mf2((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vwsub_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vwsub_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i32m1((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vwsub_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vwsub_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i32m2((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vwsub_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwsub_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i32m4((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vwsub_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vwsub_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i32m8((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vwsub_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vwsub_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i64m1((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vwsub_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vwsub_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i64m2((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vwsub_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwsub_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i64m4((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vwsub_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vwsub_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i64m8((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vwsub_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vwsub_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i16mf4((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i16mf2((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i16m1((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i16m2((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i16m4((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i16m8((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i32mf2((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwsub_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwsub_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i32m1((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwsub_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwsub_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i32m2((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwsub_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwsub_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i32m4((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwsub_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwsub_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i32m8((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwsub_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwsub_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i64m1((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwsub_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwsub_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i64m2((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwsub_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwsub_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i64m4((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwsub_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwsub_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i64m8((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwsub_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u16mf4((vuint16mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u16mf2((vuint16mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u16m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u16m1((vuint16m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u16m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u16m2((vuint16m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u16m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u16m4((vuint16m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u16m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u16m8((vuint16m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u32mf2((vuint32mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u32m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u32m1((vuint32m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u32m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u32m2((vuint32m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u32m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u32m4((vuint32m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u32m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u32m8((vuint32m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u64m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u64m1((vuint64m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u64m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u64m2((vuint64m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u64m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u64m4((vuint64m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u64m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u64m8((vuint64m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u16mf4((vuint16mf4_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u16mf2((vuint16mf2_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u16m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u16m1((vuint16m1_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u16m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u16m2((vuint16m2_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u16m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u16m4((vuint16m4_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u16m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u16m8((vuint16m8_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u32mf2((vuint32mf2_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u32m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u32m1((vuint32m1_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u32m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u32m2((vuint32m2_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u32m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u32m4((vuint32m4_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u32m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u32m8((vuint32m8_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u64m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u64m1((vuint64m1_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u64m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u64m2((vuint64m2_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u64m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u64m4((vuint64m4_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u64m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u64m8((vuint64m8_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u16mf4((vuint16mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u16mf2((vuint16mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u16m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u16m1((vuint16m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u16m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u16m2((vuint16m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u16m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u16m4((vuint16m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u16m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u16m8((vuint16m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u32mf2((vuint32mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u32m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u32m1((vuint32m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u32m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u32m2((vuint32m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u32m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u32m4((vuint32m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u32m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u32m8((vuint32m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u64m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u64m1((vuint64m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u64m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u64m2((vuint64m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u64m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u64m4((vuint64m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u64m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u64m8((vuint64m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwadd_wv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i16mf4((vint16mf4_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vwadd_wv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vwadd_wv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i16mf2((vint16mf2_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vwadd_wv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vwadd_wv_i16m1(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i16m1((vint16m1_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vwadd_wv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vwadd_wv_i16m2(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i16m2((vint16m2_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vwadd_wv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vwadd_wv_i16m4(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i16m4((vint16m4_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vwadd_wv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vwadd_wv_i16m8(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i16m8((vint16m8_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vwadd_wv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vwadd_wv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i32mf2((vint32mf2_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vwadd_wv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vwadd_wv_i32m1(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i32m1((vint32m1_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vwadd_wv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vwadd_wv_i32m2(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i32m2((vint32m2_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vwadd_wv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwadd_wv_i32m4(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i32m4((vint32m4_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vwadd_wv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vwadd_wv_i32m8(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i32m8((vint32m8_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vwadd_wv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vwadd_wv_i64m1(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i64m1((vint64m1_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vwadd_wv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vwadd_wv_i64m2(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i64m2((vint64m2_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vwadd_wv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwadd_wv_i64m4(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i64m4((vint64m4_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vwadd_wv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vwadd_wv_i64m8(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i64m8((vint64m8_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vwadd_wv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vwadd_wx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i16mf4((vint16mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_wx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_wx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i16mf2((vint16mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_wx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_wx_i16m1(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i16m1((vint16m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_wx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_wx_i16m2(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i16m2((vint16m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_wx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_wx_i16m4(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i16m4((vint16m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_wx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_wx_i16m8(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i16m8((vint16m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_wx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_wx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i32mf2((vint32mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwadd_wx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwadd_wx_i32m1(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i32m1((vint32m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwadd_wx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwadd_wx_i32m2(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i32m2((vint32m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwadd_wx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwadd_wx_i32m4(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i32m4((vint32m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwadd_wx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwadd_wx_i32m8(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i32m8((vint32m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwadd_wx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwadd_wx_i64m1(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i64m1((vint64m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwadd_wx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwadd_wx_i64m2(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i64m2((vint64m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwadd_wx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwadd_wx_i64m4(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i64m4((vint64m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwadd_wx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwadd_wx_i64m8(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i64m8((vint64m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwadd_wx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwsub_wv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i16mf4((vint16mf4_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vwsub_wv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vwsub_wv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i16mf2((vint16mf2_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vwsub_wv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vwsub_wv_i16m1(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i16m1((vint16m1_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vwsub_wv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vwsub_wv_i16m2(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i16m2((vint16m2_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vwsub_wv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vwsub_wv_i16m4(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i16m4((vint16m4_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vwsub_wv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vwsub_wv_i16m8(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i16m8((vint16m8_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vwsub_wv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vwsub_wv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i32mf2((vint32mf2_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vwsub_wv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vwsub_wv_i32m1(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i32m1((vint32m1_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vwsub_wv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vwsub_wv_i32m2(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i32m2((vint32m2_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vwsub_wv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwsub_wv_i32m4(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i32m4((vint32m4_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vwsub_wv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vwsub_wv_i32m8(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i32m8((vint32m8_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vwsub_wv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vwsub_wv_i64m1(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i64m1((vint64m1_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vwsub_wv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vwsub_wv_i64m2(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i64m2((vint64m2_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vwsub_wv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwsub_wv_i64m4(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i64m4((vint64m4_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vwsub_wv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vwsub_wv_i64m8(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i64m8((vint64m8_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vwsub_wv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vwsub_wx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i16mf4((vint16mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_wx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_wx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i16mf2((vint16mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_wx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_wx_i16m1(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i16m1((vint16m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_wx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_wx_i16m2(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i16m2((vint16m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_wx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_wx_i16m4(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i16m4((vint16m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_wx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_wx_i16m8(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i16m8((vint16m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_wx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_wx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i32mf2((vint32mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwsub_wx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwsub_wx_i32m1(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i32m1((vint32m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwsub_wx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwsub_wx_i32m2(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i32m2((vint32m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwsub_wx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwsub_wx_i32m4(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i32m4((vint32m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwsub_wx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwsub_wx_i32m8(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i32m8((vint32m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwsub_wx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwsub_wx_i64m1(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i64m1((vint64m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwsub_wx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwsub_wx_i64m2(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i64m2((vint64m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwsub_wx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwsub_wx_i64m4(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i64m4((vint64m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwsub_wx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwsub_wx_i64m8(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i64m8((vint64m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwsub_wx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwcvt_x_x_v_i16m2(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i16m2((vint8m1_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i16m4(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i16m4((vint8m2_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i16m8(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i16m8((vint8m4_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i16m1(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i16m1((vint8mf2_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i16mf2(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i16mf2((vint8mf4_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i16mf4(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i16mf4((vint8mf8_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i32m2(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i32m2((vint16m1_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i32m4(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i32m4((vint16m2_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i32m8(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i32m8((vint16m4_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i32m1(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i32m1((vint16mf2_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i32mf2(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i32mf2((vint16mf4_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i64m2(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i64m2((vint32m1_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i64m4(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i64m4((vint32m2_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i64m8(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i64m8((vint32m4_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i64m1(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i64m1((vint32mf2_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vadc_vvm_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vvm_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vvm_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vadc_vvm_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vadc_vvm_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vvm_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vvm_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vvm_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vvm_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vvm_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vvm_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vadc_vvm_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vvm_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vvm_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vvm_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vvm_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vvm_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vvm_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vvm_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vvm_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vvm_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vvm_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vxm_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i8m1((vint8m1_t)(op0), (int8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vxm_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i8m2((vint8m2_t)(op0), (int8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vxm_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i8m4((vint8m4_t)(op0), (int8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vadc_vxm_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i8m8((vint8m8_t)(op0), (int8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vadc_vxm_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vxm_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vxm_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vxm_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i16m1((vint16m1_t)(op0), (int16_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vxm_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i16m2((vint16m2_t)(op0), (int16_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vxm_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i16m4((vint16m4_t)(op0), (int16_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vxm_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i16m8((vint16m8_t)(op0), (int16_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vadc_vxm_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vxm_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vxm_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i32m1((vint32m1_t)(op0), (int32_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vxm_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i32m2((vint32m2_t)(op0), (int32_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vxm_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i32m4((vint32m4_t)(op0), (int32_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vxm_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i32m8((vint32m8_t)(op0), (int32_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vxm_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vxm_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i64m1((vint64m1_t)(op0), (int64_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vxm_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i64m2((vint64m2_t)(op0), (int64_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vxm_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i64m4((vint64m4_t)(op0), (int64_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vxm_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i64m8((vint64m8_t)(op0), (int64_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vvm_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vvm_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vvm_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vadc_vvm_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vadc_vvm_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vvm_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vvm_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vvm_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vvm_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vvm_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vvm_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vadc_vvm_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vvm_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vvm_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vvm_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vvm_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vvm_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vvm_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vvm_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vvm_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vvm_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vvm_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vxm_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vxm_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vxm_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vadc_vxm_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vadc_vxm_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vxm_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vxm_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vxm_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vxm_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vxm_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vxm_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vadc_vxm_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vxm_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vxm_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vxm_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vxm_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vxm_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vxm_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vxm_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vxm_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vxm_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vxm_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i8m1_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i8m1_b8((vint8m1_t)(op0), (vint8m1_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i8m2_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i8m2_b4((vint8m2_t)(op0), (vint8m2_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i8m4_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i8m4_b2((vint8m4_t)(op0), (vint8m4_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i8m8_b1(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i8m8_b1((vint8m8_t)(op0), (vint8m8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i8mf2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i8mf2_b16((vint8mf2_t)(op0), (vint8mf2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i8mf4_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i8mf4_b32((vint8mf4_t)(op0), (vint8mf4_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i8mf8_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i8mf8_b64((vint8mf8_t)(op0), (vint8mf8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i16m1_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i16m1_b16((vint16m1_t)(op0), (vint16m1_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i16m2_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i16m2_b8((vint16m2_t)(op0), (vint16m2_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i16m4_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i16m4_b4((vint16m4_t)(op0), (vint16m4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i16m8_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i16m8_b2((vint16m8_t)(op0), (vint16m8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i16mf2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i16mf2_b32((vint16mf2_t)(op0), (vint16mf2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i16mf4_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i16mf4_b64((vint16mf4_t)(op0), (vint16mf4_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i32m1_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i32m1_b32((vint32m1_t)(op0), (vint32m1_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i32m2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i32m2_b16((vint32m2_t)(op0), (vint32m2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i32m4_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i32m4_b8((vint32m4_t)(op0), (vint32m4_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i32m8_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i32m8_b4((vint32m8_t)(op0), (vint32m8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i32mf2_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i32mf2_b64((vint32mf2_t)(op0), (vint32mf2_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i64m1_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i64m1_b64((vint64m1_t)(op0), (vint64m1_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i64m2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i64m2_b32((vint64m2_t)(op0), (vint64m2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i64m4_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i64m4_b16((vint64m4_t)(op0), (vint64m4_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i64m8_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i64m8_b8((vint64m8_t)(op0), (vint64m8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i8m1_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i8m1_b8((vint8m1_t)(op0), (int8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i8m2_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i8m2_b4((vint8m2_t)(op0), (int8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i8m4_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i8m4_b2((vint8m4_t)(op0), (int8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i8m8_b1(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i8m8_b1((vint8m8_t)(op0), (int8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i8mf2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i8mf2_b16((vint8mf2_t)(op0), (int8_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i8mf4_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i8mf4_b32((vint8mf4_t)(op0), (int8_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i8mf8_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i8mf8_b64((vint8mf8_t)(op0), (int8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i16m1_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i16m1_b16((vint16m1_t)(op0), (int16_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i16m2_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i16m2_b8((vint16m2_t)(op0), (int16_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i16m4_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i16m4_b4((vint16m4_t)(op0), (int16_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i16m8_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i16m8_b2((vint16m8_t)(op0), (int16_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i16mf2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i16mf2_b32((vint16mf2_t)(op0), (int16_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i16mf4_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i16mf4_b64((vint16mf4_t)(op0), (int16_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i32m1_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i32m1_b32((vint32m1_t)(op0), (int32_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i32m2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i32m2_b16((vint32m2_t)(op0), (int32_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i32m4_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i32m4_b8((vint32m4_t)(op0), (int32_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i32m8_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i32m8_b4((vint32m8_t)(op0), (int32_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i32mf2_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i32mf2_b64((vint32mf2_t)(op0), (int32_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i64m1_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i64m1_b64((vint64m1_t)(op0), (int64_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i64m2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i64m2_b32((vint64m2_t)(op0), (int64_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i64m4_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i64m4_b16((vint64m4_t)(op0), (int64_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i64m8_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i64m8_b8((vint64m8_t)(op0), (int64_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u8m1_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u8m1_b8((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u8m2_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u8m2_b4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u8m4_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u8m4_b2((vuint8m4_t)(op0), (vuint8m4_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u8m8_b1(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u8m8_b1((vuint8m8_t)(op0), (vuint8m8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u8mf2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u8mf2_b16((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u8mf4_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u8mf4_b32((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u8mf8_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u8mf8_b64((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u16m1_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u16m1_b16((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u16m2_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u16m2_b8((vuint16m2_t)(op0), (vuint16m2_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u16m4_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u16m4_b4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u16m8_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u16m8_b2((vuint16m8_t)(op0), (vuint16m8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u16mf2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u16mf2_b32((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u16mf4_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u16mf4_b64((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u32m1_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u32m1_b32((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u32m2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u32m2_b16((vuint32m2_t)(op0), (vuint32m2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u32m4_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u32m4_b8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u32m8_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u32m8_b4((vuint32m8_t)(op0), (vuint32m8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u32mf2_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u32mf2_b64((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u64m1_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u64m1_b64((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u64m2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u64m2_b32((vuint64m2_t)(op0), (vuint64m2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u64m4_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u64m4_b16((vuint64m4_t)(op0), (vuint64m4_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u64m8_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u64m8_b8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u8m1_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u8m1_b8((vuint8m1_t)(op0), (uint8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u8m2_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u8m2_b4((vuint8m2_t)(op0), (uint8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u8m4_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u8m4_b2((vuint8m4_t)(op0), (uint8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u8m8_b1(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u8m8_b1((vuint8m8_t)(op0), (uint8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u8mf2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u8mf2_b16((vuint8mf2_t)(op0), (uint8_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u8mf4_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u8mf4_b32((vuint8mf4_t)(op0), (uint8_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u8mf8_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u8mf8_b64((vuint8mf8_t)(op0), (uint8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u16m1_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u16m1_b16((vuint16m1_t)(op0), (uint16_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u16m2_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u16m2_b8((vuint16m2_t)(op0), (uint16_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u16m4_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u16m4_b4((vuint16m4_t)(op0), (uint16_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u16m8_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u16m8_b2((vuint16m8_t)(op0), (uint16_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u16mf2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u16mf2_b32((vuint16mf2_t)(op0), (uint16_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u16mf4_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u16mf4_b64((vuint16mf4_t)(op0), (uint16_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u32m1_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u32m1_b32((vuint32m1_t)(op0), (uint32_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u32m2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u32m2_b16((vuint32m2_t)(op0), (uint32_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u32m4_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u32m4_b8((vuint32m4_t)(op0), (uint32_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u32m8_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u32m8_b4((vuint32m8_t)(op0), (uint32_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u32mf2_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u32mf2_b64((vuint32mf2_t)(op0), (uint32_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u64m1_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u64m1_b64((vuint64m1_t)(op0), (uint64_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u64m2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u64m2_b32((vuint64m2_t)(op0), (uint64_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u64m4_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u64m4_b16((vuint64m4_t)(op0), (uint64_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u64m8_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u64m8_b8((vuint64m8_t)(op0), (uint64_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vv_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i8m1_b8((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmadc_vv_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i8m2_b4((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmadc_vv_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i8m4_b2((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmadc_vv_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i8m8_b1((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmadc_vv_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i8mf2_b16((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmadc_vv_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i8mf4_b32((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmadc_vv_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i8mf8_b64((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmadc_vv_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i16m1_b16((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmadc_vv_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i16m2_b8((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmadc_vv_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i16m4_b4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmadc_vv_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i16m8_b2((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmadc_vv_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i16mf2_b32((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmadc_vv_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i16mf4_b64((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmadc_vv_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i32m1_b32((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmadc_vv_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i32m2_b16((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmadc_vv_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i32m4_b8((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmadc_vv_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i32m8_b4((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmadc_vv_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i32mf2_b64((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmadc_vv_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i64m1_b64((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmadc_vv_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i64m2_b32((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmadc_vv_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i64m4_b16((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmadc_vv_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i64m8_b8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmadc_vx_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i8m1_b8((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmadc_vx_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i8m2_b4((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmadc_vx_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i8m4_b2((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmadc_vx_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i8m8_b1((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmadc_vx_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i8mf2_b16((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmadc_vx_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i8mf4_b32((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmadc_vx_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i8mf8_b64((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmadc_vx_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i16m1_b16((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmadc_vx_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i16m2_b8((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmadc_vx_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i16m4_b4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmadc_vx_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i16m8_b2((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmadc_vx_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i16mf2_b32((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmadc_vx_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i16mf4_b64((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmadc_vx_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i32m1_b32((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmadc_vx_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i32m2_b16((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmadc_vx_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i32m4_b8((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmadc_vx_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i32m8_b4((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmadc_vx_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i32mf2_b64((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmadc_vx_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i64m1_b64((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmadc_vx_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i64m2_b32((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmadc_vx_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i64m4_b16((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmadc_vx_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i64m8_b8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsuxei8_v_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i16m2((int16_t *)(op0), (vuint8m1_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint8m1_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i16m4((int16_t *)(op0), (vuint8m2_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint8m2_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i16m8((int16_t *)(op0), (vuint8m4_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i16m8_m((vbool2_t)(op0), (int16_t *)(op1), (vuint8m4_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmadc_vv_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u8m1_b8((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmadc_vv_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u8m2_b4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmadc_vv_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u8m4_b2((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmadc_vv_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u8m8_b1((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmadc_vv_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u8mf2_b16((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmadc_vv_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u8mf4_b32((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmadc_vv_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u8mf8_b64((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmadc_vv_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u16m1_b16((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmadc_vv_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u16m2_b8((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmadc_vv_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u16m4_b4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmadc_vv_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u16m8_b2((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmadc_vv_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u16mf2_b32((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmadc_vv_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u16mf4_b64((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmadc_vv_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u32m1_b32((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmadc_vv_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u32m2_b16((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmadc_vv_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u32m4_b8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmadc_vv_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u32m8_b4((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmadc_vv_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u32mf2_b64((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmadc_vv_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u64m1_b64((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmadc_vv_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u64m2_b32((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmadc_vv_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u64m4_b16((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmadc_vv_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u64m8_b8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmadc_vx_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u8m1_b8((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmadc_vx_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u8m2_b4((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmadc_vx_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u8m4_b2((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmadc_vx_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u8m8_b1((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmadc_vx_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u8mf2_b16((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmadc_vx_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u8mf4_b32((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmadc_vx_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u8mf8_b64((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmadc_vx_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u16m1_b16((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmadc_vx_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u16m2_b8((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmadc_vx_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u16m4_b4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmadc_vx_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u16m8_b2((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmadc_vx_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u16mf2_b32((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmadc_vx_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u16mf4_b64((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmadc_vx_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u32m1_b32((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmadc_vx_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u32m2_b16((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmadc_vx_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u32m4_b8((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmadc_vx_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u32m8_b4((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmadc_vx_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u32mf2_b64((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmadc_vx_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u64m1_b64((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmadc_vx_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u64m2_b32((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmadc_vx_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u64m4_b16((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmadc_vx_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u64m8_b8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vsbc_vvm_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i8m1((vint8m1_t)(op0), (int8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i8m2((vint8m2_t)(op0), (int8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i8m4((vint8m4_t)(op0), (int8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i8m8((vint8m8_t)(op0), (int8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i16m1((vint16m1_t)(op0), (int16_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i16m2((vint16m2_t)(op0), (int16_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i16m4((vint16m4_t)(op0), (int16_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i16m8((vint16m8_t)(op0), (int16_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i32m1((vint32m1_t)(op0), (int32_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i32m2((vint32m2_t)(op0), (int32_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i32m4((vint32m4_t)(op0), (int32_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i32m8((vint32m8_t)(op0), (int32_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i64m1((vint64m1_t)(op0), (int64_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i64m2((vint64m2_t)(op0), (int64_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i64m4((vint64m4_t)(op0), (int64_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i64m8((vint64m8_t)(op0), (int64_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i8m1_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i8m1_b8((vint8m1_t)(op0), (vint8m1_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i8m2_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i8m2_b4((vint8m2_t)(op0), (vint8m2_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i8m4_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i8m4_b2((vint8m4_t)(op0), (vint8m4_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i8m8_b1(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i8m8_b1((vint8m8_t)(op0), (vint8m8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i8mf2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i8mf2_b16((vint8mf2_t)(op0), (vint8mf2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i8mf4_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i8mf4_b32((vint8mf4_t)(op0), (vint8mf4_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i8mf8_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i8mf8_b64((vint8mf8_t)(op0), (vint8mf8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i16m1_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i16m1_b16((vint16m1_t)(op0), (vint16m1_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i16m2_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i16m2_b8((vint16m2_t)(op0), (vint16m2_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i16m4_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i16m4_b4((vint16m4_t)(op0), (vint16m4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i16m8_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i16m8_b2((vint16m8_t)(op0), (vint16m8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i16mf2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i16mf2_b32((vint16mf2_t)(op0), (vint16mf2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i16mf4_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i16mf4_b64((vint16mf4_t)(op0), (vint16mf4_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i32m1_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i32m1_b32((vint32m1_t)(op0), (vint32m1_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i32m2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i32m2_b16((vint32m2_t)(op0), (vint32m2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i32m4_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i32m4_b8((vint32m4_t)(op0), (vint32m4_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i32m8_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i32m8_b4((vint32m8_t)(op0), (vint32m8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i32mf2_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i32mf2_b64((vint32mf2_t)(op0), (vint32mf2_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i64m1_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i64m1_b64((vint64m1_t)(op0), (vint64m1_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i64m2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i64m2_b32((vint64m2_t)(op0), (vint64m2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i64m4_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i64m4_b16((vint64m4_t)(op0), (vint64m4_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i64m8_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i64m8_b8((vint64m8_t)(op0), (vint64m8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i8m1_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i8m1_b8((vint8m1_t)(op0), (int8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i8m2_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i8m2_b4((vint8m2_t)(op0), (int8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i8m4_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i8m4_b2((vint8m4_t)(op0), (int8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i8m8_b1(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i8m8_b1((vint8m8_t)(op0), (int8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i8mf2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i8mf2_b16((vint8mf2_t)(op0), (int8_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i8mf4_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i8mf4_b32((vint8mf4_t)(op0), (int8_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i8mf8_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i8mf8_b64((vint8mf8_t)(op0), (int8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i16m1_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i16m1_b16((vint16m1_t)(op0), (int16_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i16m2_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i16m2_b8((vint16m2_t)(op0), (int16_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i16m4_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i16m4_b4((vint16m4_t)(op0), (int16_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i16m8_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i16m8_b2((vint16m8_t)(op0), (int16_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i16mf2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i16mf2_b32((vint16mf2_t)(op0), (int16_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i16mf4_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i16mf4_b64((vint16mf4_t)(op0), (int16_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i32m1_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i32m1_b32((vint32m1_t)(op0), (int32_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i32m2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i32m2_b16((vint32m2_t)(op0), (int32_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i32m4_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i32m4_b8((vint32m4_t)(op0), (int32_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i32m8_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i32m8_b4((vint32m8_t)(op0), (int32_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i32mf2_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i32mf2_b64((vint32mf2_t)(op0), (int32_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i64m1_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i64m1_b64((vint64m1_t)(op0), (int64_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i64m2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i64m2_b32((vint64m2_t)(op0), (int64_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i64m4_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i64m4_b16((vint64m4_t)(op0), (int64_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i64m8_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i64m8_b8((vint64m8_t)(op0), (int64_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u8m1_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u8m1_b8((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u8m2_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u8m2_b4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u8m4_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u8m4_b2((vuint8m4_t)(op0), (vuint8m4_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u8m8_b1(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u8m8_b1((vuint8m8_t)(op0), (vuint8m8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u8mf2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u8mf2_b16((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u8mf4_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u8mf4_b32((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u8mf8_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u8mf8_b64((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u16m1_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u16m1_b16((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u16m2_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u16m2_b8((vuint16m2_t)(op0), (vuint16m2_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u16m4_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u16m4_b4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u16m8_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u16m8_b2((vuint16m8_t)(op0), (vuint16m8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u16mf2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u16mf2_b32((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u16mf4_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u16mf4_b64((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u32m1_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u32m1_b32((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u32m2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u32m2_b16((vuint32m2_t)(op0), (vuint32m2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u32m4_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u32m4_b8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u32m8_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u32m8_b4((vuint32m8_t)(op0), (vuint32m8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u32mf2_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u32mf2_b64((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u64m1_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u64m1_b64((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u64m2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u64m2_b32((vuint64m2_t)(op0), (vuint64m2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u64m4_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u64m4_b16((vuint64m4_t)(op0), (vuint64m4_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u64m8_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u64m8_b8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u8m1_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u8m1_b8((vuint8m1_t)(op0), (uint8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u8m2_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u8m2_b4((vuint8m2_t)(op0), (uint8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u8m4_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u8m4_b2((vuint8m4_t)(op0), (uint8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u8m8_b1(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u8m8_b1((vuint8m8_t)(op0), (uint8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u8mf2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u8mf2_b16((vuint8mf2_t)(op0), (uint8_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u8mf4_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u8mf4_b32((vuint8mf4_t)(op0), (uint8_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u8mf8_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u8mf8_b64((vuint8mf8_t)(op0), (uint8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u16m1_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u16m1_b16((vuint16m1_t)(op0), (uint16_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u16m2_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u16m2_b8((vuint16m2_t)(op0), (uint16_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u16m4_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u16m4_b4((vuint16m4_t)(op0), (uint16_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u16m8_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u16m8_b2((vuint16m8_t)(op0), (uint16_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u16mf2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u16mf2_b32((vuint16mf2_t)(op0), (uint16_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u16mf4_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u16mf4_b64((vuint16mf4_t)(op0), (uint16_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u32m1_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u32m1_b32((vuint32m1_t)(op0), (uint32_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u32m2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u32m2_b16((vuint32m2_t)(op0), (uint32_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u32m4_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u32m4_b8((vuint32m4_t)(op0), (uint32_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u32m8_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u32m8_b4((vuint32m8_t)(op0), (uint32_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u32mf2_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u32mf2_b64((vuint32mf2_t)(op0), (uint32_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u64m1_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u64m1_b64((vuint64m1_t)(op0), (uint64_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u64m2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u64m2_b32((vuint64m2_t)(op0), (uint64_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u64m4_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u64m4_b16((vuint64m4_t)(op0), (uint64_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u64m8_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u64m8_b8((vuint64m8_t)(op0), (uint64_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u16m2((uint16_t *)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint8m1_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u16m4((uint16_t *)(op0), (vuint8m2_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint8m2_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u16m8((uint16_t *)(op0), (vuint8m4_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u16m8_m((vbool2_t)(op0), (uint16_t *)(op1), (vuint8m4_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmsbc_vv_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i8m1_b8((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i8m2_b4((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i8m4_b2((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i8m8_b1((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i8mf2_b16((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i8mf4_b32((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i8mf8_b64((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i16m1_b16((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i16m2_b8((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i16m4_b4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i16m8_b2((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i16mf2_b32((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i16mf4_b64((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i32m1_b32((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i32m2_b16((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i32m4_b8((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i32m8_b4((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i32mf2_b64((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i64m1_b64((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i64m2_b32((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i64m4_b16((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i64m8_b8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i8m1_b8((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i8m2_b4((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i8m4_b2((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i8m8_b1((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i8mf2_b16((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i8mf4_b32((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i8mf8_b64((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i16m1_b16((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i16m2_b8((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i16m4_b4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i16m8_b2((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i16mf2_b32((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i16mf4_b64((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i32m1_b32((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i32m2_b16((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i32m4_b8((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i32m8_b4((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i32mf2_b64((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i64m1_b64((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i64m2_b32((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i64m4_b16((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i64m8_b8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u8m1_b8((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u8m2_b4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u8m4_b2((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u8m8_b1((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u8mf2_b16((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u8mf4_b32((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u8mf8_b64((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u16m1_b16((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u16m2_b8((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u16m4_b4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u16m8_b2((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u16mf2_b32((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u16mf4_b64((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u32m1_b32((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u32m2_b16((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u32m4_b8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u32m8_b4((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u32mf2_b64((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u64m1_b64((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u64m2_b32((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u64m4_b16((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u64m8_b8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u8m1_b8((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u8m2_b4((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u8m4_b2((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u8m8_b1((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u8mf2_b16((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u8mf4_b32((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u8mf8_b64((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u16m1_b16((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u16m2_b8((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u16m4_b4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u16m8_b2((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u16mf2_b32((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u16mf4_b64((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u32m1_b32((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u32m2_b16((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u32m4_b8((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u32m8_b4((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u32mf2_b64((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u64m1_b64((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u64m2_b32((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u64m4_b16((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u64m8_b8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vand_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vand_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vand_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vand_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vand_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vand_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vand_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vand_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vand_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vand_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vand_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vand_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vand_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vand_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vand_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vand_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vand_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vand_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vand_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vand_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vand_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vand_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vand_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vand_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vand_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vand_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vand_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vand_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vand_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vand_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vand_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vand_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vand_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vand_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vand_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vand_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vand_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vand_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vand_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vand_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vand_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vand_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vand_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vand_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vand_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vand_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vand_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vand_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vand_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vand_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vand_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vand_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vand_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vand_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vand_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vand_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vand_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vand_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vand_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vand_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vand_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vand_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vand_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vand_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vand_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vand_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vand_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vand_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vand_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vand_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vand_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vand_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vand_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vand_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vand_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vand_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vand_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vand_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vand_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vand_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vand_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vand_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vand_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vand_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vand_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vand_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vand_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vand_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vand_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vand_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vand_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vand_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vand_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vand_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vand_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vand_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vand_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vand_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vand_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vand_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vand_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vand_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vand_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vand_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vand_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vand_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vand_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vand_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vand_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vand_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vand_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vand_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vand_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vand_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vand_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vand_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vand_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vand_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vand_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vand_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vand_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vand_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vand_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vand_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vand_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vand_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vand_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vand_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vand_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vand_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vand_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vand_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vand_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vand_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vand_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vand_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vand_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vand_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vand_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vand_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vand_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vand_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vand_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vand_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vand_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vand_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vand_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vand_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vand_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vand_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vand_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vand_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vand_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vand_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vand_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vand_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vand_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vand_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vand_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vand_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vand_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vand_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vand_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vand_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vand_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vand_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vand_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vand_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vand_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vand_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vand_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vand_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vand_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vand_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vand_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vand_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vand_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vand_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vand_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vand_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vand_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vand_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vand_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vand_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vand_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vand_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vand_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vand_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vand_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vand_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vand_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vand_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vand_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vand_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vand_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vand_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vand_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vand_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vand_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vand_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vand_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vand_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vand_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vand_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vand_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vand_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vand_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vand_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vand_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vand_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vand_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vand_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vand_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vand_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vand_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vand_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vand_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vand_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vand_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vand_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vand_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vand_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vand_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vand_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vand_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vand_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vand_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vand_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vand_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vand_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vand_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vand_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vand_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vand_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vand_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vand_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vand_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vand_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vand_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vand_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vand_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vand_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vand_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vand_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vand_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vand_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vand_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vand_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vand_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vand_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vand_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vand_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vand_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vand_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vand_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vand_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vand_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vand_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vand_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vand_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vand_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vand_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vand_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vand_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vxor_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vxor_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vxor_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vxor_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vxor_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vxor_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vxor_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vxor_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vxor_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vxor_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vxor_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vxor_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vxor_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vxor_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vxor_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vxor_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vxor_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vxor_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vxor_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vxor_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vxor_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vxor_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vxor_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vxor_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vxor_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vxor_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vxor_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vxor_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vxor_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vxor_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vxor_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vxor_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vxor_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vxor_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vxor_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vxor_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vxor_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vxor_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vxor_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vxor_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vxor_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vxor_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vxor_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vxor_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vxor_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vxor_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vxor_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vxor_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vxor_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vxor_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vxor_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vxor_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vxor_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vxor_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vxor_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vxor_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vxor_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vxor_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vxor_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vxor_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vxor_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vxor_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vxor_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vxor_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vxor_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vxor_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vxor_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vxor_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vxor_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vxor_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vxor_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vxor_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vxor_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vxor_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vxor_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vxor_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vxor_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vxor_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vxor_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vxor_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vxor_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vxor_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vxor_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vxor_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vxor_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vxor_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vxor_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vxor_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i16m2((int16_t *)(op0), (vuint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i16m4((int16_t *)(op0), (vuint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i16m8((int16_t *)(op0), (vuint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i16m8_m((vbool2_t)(op0), (int16_t *)(op1), (vuint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vxor_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vxor_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vxor_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vxor_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vxor_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vxor_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vxor_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vxor_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vxor_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vxor_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vxor_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vxor_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vxor_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vxor_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vxor_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vxor_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vxor_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vxor_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vxor_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vxor_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vxor_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vxor_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vxor_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vxor_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vxor_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vxor_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vxor_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vxor_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vxor_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vxor_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vxor_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vxor_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vxor_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vxor_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vxor_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vxor_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vxor_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vxor_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vxor_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vxor_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vxor_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vxor_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vxor_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vxor_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vxor_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vxor_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vxor_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vxor_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vxor_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vxor_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vxor_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vxor_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vxor_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vxor_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vxor_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vxor_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vxor_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vxor_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vxor_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vxor_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vxor_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vxor_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vxor_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vxor_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vxor_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vxor_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vxor_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vxor_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vxor_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vxor_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vxor_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vxor_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vxor_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vxor_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vxor_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vxor_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vxor_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vxor_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vxor_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vxor_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vxor_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vxor_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vxor_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vxor_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vxor_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vxor_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vxor_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vxor_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vor_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vor_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vor_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vor_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vor_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vor_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vor_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vor_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vor_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vor_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vor_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vor_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vor_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vor_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vor_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vor_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vor_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vor_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vor_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vor_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vor_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vor_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vor_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vor_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vor_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vor_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vor_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vor_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vor_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vor_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vor_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vor_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vor_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vor_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vor_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vor_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vor_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vor_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vor_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vor_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vor_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vor_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vor_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vor_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vor_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vor_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vor_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vor_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vor_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vor_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vor_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vor_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vor_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vor_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vor_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vor_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vor_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vor_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vor_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vor_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vor_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vor_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vor_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vor_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vor_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vor_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vor_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vor_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vor_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vor_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vor_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vor_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vor_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vor_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vor_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vor_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vor_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vor_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vor_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vor_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vor_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vor_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vor_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vor_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vor_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vor_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vor_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vor_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vor_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vor_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vor_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vor_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vor_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vor_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vor_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vor_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vor_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vor_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vor_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vor_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vor_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vor_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vor_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vor_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vor_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vor_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vor_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vor_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vor_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vor_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vor_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vor_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vor_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vor_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vor_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vor_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vor_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vor_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vor_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vor_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vor_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vor_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vor_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vor_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vor_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vor_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vor_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vor_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vor_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vor_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vor_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vor_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vor_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vor_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vor_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vor_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vor_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vor_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vor_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vor_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vor_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vor_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vor_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vor_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vor_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vor_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vor_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vor_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vor_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vor_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vor_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vor_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vor_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vor_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vor_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vor_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vor_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vor_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vor_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vor_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vor_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vor_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vor_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vor_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vor_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vor_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vor_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vor_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vor_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vor_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vor_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vor_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vor_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vor_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vor_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vor_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vor_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vor_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vor_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vor_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vor_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vor_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vor_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vor_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vor_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vor_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vor_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vor_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vor_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vor_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vor_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vor_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vor_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vor_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vor_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vor_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vor_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vor_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vor_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vor_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vor_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vor_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vor_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vor_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vor_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vor_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vor_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vor_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vor_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vor_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vor_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vor_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vor_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vor_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vor_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vor_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vor_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vor_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vor_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vor_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vor_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vor_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vor_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vor_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vor_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vor_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vor_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vor_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vor_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vor_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vor_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vor_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vor_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vor_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vor_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vor_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vor_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vor_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vor_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vor_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vor_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vor_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vor_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vor_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vor_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vor_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vor_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vor_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vor_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vor_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vor_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vor_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vor_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vor_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vor_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vor_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vor_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vor_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vor_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vor_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vor_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vor_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vor_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vor_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vsll_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i8m1((vint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vsll_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsll_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i8m2((vint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vsll_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsll_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i8m4((vint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vsll_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsll_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i8m8((vint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vsll_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vsll_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i8mf2((vint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vsll_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsll_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i8mf4((vint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vsll_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsll_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i8mf8((vint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vsll_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsll_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i16m1((vint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vsll_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsll_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i16m2((vint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vsll_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsll_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i16m4((vint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vsll_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsll_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i16m8((vint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vsll_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vsll_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i16mf2((vint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vsll_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsll_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i16mf4((vint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vsll_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsll_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i32m1((vint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vsll_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsll_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i32m2((vint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vsll_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsll_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i32m4((vint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vsll_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsll_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i32m8((vint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vsll_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsll_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i32mf2((vint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vsll_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsll_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i64m1((vint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vsll_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsll_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i64m2((vint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vsll_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsll_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i64m4((vint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vsll_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsll_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i64m8((vint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vsll_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsll_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i8m1((vint8m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i8m2((vint8m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i8m4((vint8m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i8m8((vint8m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i8mf2((vint8mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i8mf4((vint8mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i8mf8((vint8mf8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i16m1((vint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i16m2((vint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i16m4((vint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i16m8((vint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i16mf2((vint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i16mf4((vint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i32m1((vint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i32m2((vint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i32m4((vint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i32m8((vint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i32mf2((vint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i64m1((vint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i64m2((vint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i64m4((vint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i64m8((vint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vsll_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsll_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vsll_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsll_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vsll_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsll_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vsll_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vsll_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vsll_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsll_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vsll_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsll_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vsll_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsll_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vsll_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsll_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vsll_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsll_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vsll_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsll_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vsll_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vsll_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vsll_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsll_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vsll_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsll_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vsll_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsll_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vsll_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsll_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vsll_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsll_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vsll_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsll_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vsll_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsll_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vsll_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsll_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vsll_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsll_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vsll_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsll_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vsll_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsll_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u8m1((vuint8m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u8m2((vuint8m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u8m4((vuint8m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u8m8((vuint8m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u8mf2((vuint8mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u8mf4((vuint8mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u8mf8((vuint8mf8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u16m1((vuint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u16m2((vuint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u16m4((vuint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u16m8((vuint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u16mf2((vuint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u16mf4((vuint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u32m1((vuint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u32m2((vuint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u32m4((vuint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u32m8((vuint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u32mf2((vuint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u64m1((vuint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u64m2((vuint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u64m4((vuint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u64m8((vuint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u16m4((uint16_t *)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u16m8((uint16_t *)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u16m8_m((vbool2_t)(op0), (uint16_t *)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsrl_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vsrl_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsrl_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vsrl_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsrl_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vsrl_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsrl_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vsrl_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vsrl_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vsrl_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsrl_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vsrl_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsrl_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vsrl_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsrl_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vsrl_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsrl_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vsrl_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsrl_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vsrl_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsrl_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vsrl_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vsrl_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vsrl_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsrl_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vsrl_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsrl_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vsrl_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsrl_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vsrl_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsrl_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vsrl_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsrl_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vsrl_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsrl_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vsrl_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsrl_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vsrl_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsrl_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vsrl_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsrl_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vsrl_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsrl_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vsrl_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsrl_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u8m1((vuint8m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u8m2((vuint8m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u8m4((vuint8m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u8m8((vuint8m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u8mf2((vuint8mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u8mf4((vuint8mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u8mf8((vuint8mf8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u16m1((vuint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u16m2((vuint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u16m4((vuint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u16m8((vuint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u16mf2((vuint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u16mf4((vuint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u32m1((vuint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u32m2((vuint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u32m4((vuint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u32m8((vuint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u32mf2((vuint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u64m1((vuint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u64m2((vuint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u64m4((vuint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u64m8((vuint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i8m1((vint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vsra_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsra_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i8m2((vint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vsra_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsra_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i8m4((vint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vsra_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsra_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i8m8((vint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vsra_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vsra_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i8mf2((vint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vsra_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsra_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i8mf4((vint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vsra_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsra_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i8mf8((vint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vsra_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsra_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i16m1((vint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vsra_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsra_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i16m2((vint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vsra_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsra_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i16m4((vint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vsra_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsra_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i16m8((vint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vsra_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vsra_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i16mf2((vint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vsra_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsra_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i16mf4((vint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vsra_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsra_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i32m1((vint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vsra_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsra_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i32m2((vint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vsra_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsra_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i32m4((vint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vsra_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsra_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i32m8((vint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vsra_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsra_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i32mf2((vint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vsra_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsra_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i64m1((vint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vsra_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsra_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i64m2((vint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vsra_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsra_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i64m4((vint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vsra_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsra_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i64m8((vint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vsra_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsra_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i8m1((vint8m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i8m2((vint8m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i8m4((vint8m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i8m8((vint8m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i8mf2((vint8mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i8mf4((vint8mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i8mf8((vint8mf8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i16m1((vint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i16m2((vint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i16m4((vint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i16m8((vint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i16mf2((vint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i16mf4((vint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i32m1((vint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i32m2((vint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i32m4((vint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i32m8((vint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i32mf2((vint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i64m1((vint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i64m2((vint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i64m4((vint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i64m8((vint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u8m1(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u8m1((vuint16m2_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u8m2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u8m2((vuint16m4_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u8m4(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u8m4((vuint16m8_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint16m8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u8mf2((vuint16m1_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u8mf4((vuint16mf2_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u8mf8((vuint16mf4_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u16m1(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u16m1((vuint32m2_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u16m2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u16m2((vuint32m4_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u16m4(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u16m4((vuint32m8_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u16mf2((vuint32m1_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u16mf4((vuint32mf2_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u32m1(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u32m1((vuint64m2_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u32m2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u32m2((vuint64m4_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u32m4(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u32m4((vuint64m8_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u32mf2((vuint64m1_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u8m1(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u8m1((vuint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u8m2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u8m2((vuint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u8m4(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u8m4((vuint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u8mf2((vuint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u8mf4((vuint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u8mf8((vuint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u16m1(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u16m1((vuint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u16m2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u16m2((vuint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u16m4(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u16m4((vuint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u16mf2((vuint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u16mf4((vuint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u32m1(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u32m1((vuint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u32m2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u32m2((vuint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u32m4(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u32m4((vuint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u32mf2((vuint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wv_i8m1(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i8m1((vint16m2_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vnsra_wv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint16m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vnsra_wv_i8m2(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i8m2((vint16m4_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vnsra_wv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint16m4_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vnsra_wv_i8m4(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i8m4((vint16m8_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vnsra_wv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint16m8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vnsra_wv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i8mf2((vint16m1_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vnsra_wv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint16m1_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vnsra_wv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i8mf4((vint16mf2_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vnsra_wv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint16mf2_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vnsra_wv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i8mf8((vint16mf4_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vnsra_wv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint16mf4_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vnsra_wv_i16m1(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i16m1((vint32m2_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vnsra_wv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint32m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vnsra_wv_i16m2(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i16m2((vint32m4_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vnsra_wv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint32m4_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vnsra_wv_i16m4(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i16m4((vint32m8_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vnsra_wv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint32m8_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vnsra_wv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i16mf2((vint32m1_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vnsra_wv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint32m1_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vnsra_wv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i16mf4((vint32mf2_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vnsra_wv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint32mf2_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vnsra_wv_i32m1(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i32m1((vint64m2_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vnsra_wv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vnsra_wv_i32m2(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i32m2((vint64m4_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vnsra_wv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vnsra_wv_i32m4(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i32m4((vint64m8_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vnsra_wv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vnsra_wv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i32mf2((vint64m1_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vnsra_wv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vnsra_wx_i8m1(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i8m1((vint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i8m2(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i8m2((vint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i8m4(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i8m4((vint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i8mf2((vint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i8mf4((vint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i8mf8((vint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i16m1(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i16m1((vint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i16m2(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i16m2((vint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i16m4(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i16m4((vint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i16mf2((vint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i16mf4((vint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i32m1(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i32m1((vint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i32m2(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i32m2((vint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i32m4(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i32m4((vint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i32mf2((vint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vncvt_x_x_w_u8m1(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u8m1((vuint16m2_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u8m2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u8m2((vuint16m4_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u8m4(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u8m4((vuint16m8_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u8mf2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u8mf2((vuint16m1_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u8mf4(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u8mf4((vuint16mf2_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u8mf8(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u8mf8((vuint16mf4_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u16m1(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u16m1((vuint32m2_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u16m2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u16m2((vuint32m4_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u16m4(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u16m4((vuint32m8_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u16mf2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u16mf2((vuint32m1_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u16mf4(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u16mf4((vuint32mf2_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u32m1(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u32m1((vuint64m2_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u32m2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u32m2((vuint64m4_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u32m4(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u32m4((vuint64m8_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u32mf2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u32mf2((vuint64m1_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vmseq_vv_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i8m1_b8((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmseq_vv_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmseq_vv_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i8m2_b4((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmseq_vv_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmseq_vv_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i8m4_b2((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmseq_vv_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmseq_vv_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i8m8_b1((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmseq_vv_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmseq_vv_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i8mf2_b16((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmseq_vv_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmseq_vv_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i8mf4_b32((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmseq_vv_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmseq_vv_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i8mf8_b64((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmseq_vv_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmseq_vv_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i16m1_b16((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmseq_vv_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmseq_vv_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i16m2_b8((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmseq_vv_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmseq_vv_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i16m4_b4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmseq_vv_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmseq_vv_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i16m8_b2((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmseq_vv_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmseq_vv_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i16mf2_b32((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmseq_vv_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmseq_vv_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i16mf4_b64((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmseq_vv_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmseq_vv_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i32m1_b32((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmseq_vv_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmseq_vv_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i32m2_b16((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmseq_vv_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmseq_vv_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i32m4_b8((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmseq_vv_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmseq_vv_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i32m8_b4((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmseq_vv_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmseq_vv_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i32mf2_b64((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmseq_vv_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmseq_vv_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i64m1_b64((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmseq_vv_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmseq_vv_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i64m2_b32((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmseq_vv_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmseq_vv_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i64m4_b16((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmseq_vv_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmseq_vv_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i64m8_b8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmseq_vv_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsse8_v_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_u8m1((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vsse8_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsse8_v_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_u8m2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vsse8_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsse8_v_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_u8m4((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vsse8_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsse8_v_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_u8m8((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vsse8_v_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_u8m8_m((vbool1_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vsse8_v_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_u8mf2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vsse8_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsse8_v_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_u8mf4((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vsse8_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsse8_v_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_u8mf8((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vsse8_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i16m2((int16_t *)(op0), (vuint32m4_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint32m4_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i16m4((int16_t *)(op0), (vuint32m8_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint32m8_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmseq_vx_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i8m1_b8((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmseq_vx_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmseq_vx_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i8m2_b4((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmseq_vx_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmseq_vx_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i8m4_b2((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmseq_vx_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmseq_vx_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i8m8_b1((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmseq_vx_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmseq_vx_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i8mf2_b16((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmseq_vx_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmseq_vx_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i8mf4_b32((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmseq_vx_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmseq_vx_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i8mf8_b64((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmseq_vx_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmseq_vx_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i16m1_b16((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmseq_vx_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmseq_vx_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i16m2_b8((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmseq_vx_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmseq_vx_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i16m4_b4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmseq_vx_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmseq_vx_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i16m8_b2((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmseq_vx_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmseq_vx_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i16mf2_b32((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmseq_vx_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmseq_vx_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i16mf4_b64((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmseq_vx_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmseq_vx_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i32m1_b32((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmseq_vx_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmseq_vx_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i32m2_b16((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmseq_vx_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmseq_vx_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i32m4_b8((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmseq_vx_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmseq_vx_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i32m8_b4((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmseq_vx_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmseq_vx_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i32mf2_b64((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmseq_vx_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmseq_vx_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i64m1_b64((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmseq_vx_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmseq_vx_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i64m2_b32((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmseq_vx_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmseq_vx_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i64m4_b16((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmseq_vx_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmseq_vx_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i64m8_b8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmseq_vx_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmseq_vv_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u8m1_b8((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmseq_vv_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmseq_vv_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u8m2_b4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmseq_vv_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmseq_vv_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u8m4_b2((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmseq_vv_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmseq_vv_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u8m8_b1((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmseq_vv_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmseq_vv_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u8mf2_b16((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmseq_vv_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmseq_vv_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u8mf4_b32((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmseq_vv_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmseq_vv_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u8mf8_b64((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmseq_vv_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmseq_vv_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u16m1_b16((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmseq_vv_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmseq_vv_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u16m2_b8((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmseq_vv_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmseq_vv_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u16m4_b4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmseq_vv_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmseq_vv_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u16m8_b2((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmseq_vv_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmseq_vv_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u16mf2_b32((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmseq_vv_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmseq_vv_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u16mf4_b64((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmseq_vv_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmseq_vv_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u32m1_b32((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmseq_vv_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmseq_vv_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u32m2_b16((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmseq_vv_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmseq_vv_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u32m4_b8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmseq_vv_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmseq_vv_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u32m8_b4((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmseq_vv_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmseq_vv_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u32mf2_b64((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmseq_vv_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmseq_vv_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u64m1_b64((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmseq_vv_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmseq_vv_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u64m2_b32((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmseq_vv_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmseq_vv_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u64m4_b16((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmseq_vv_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmseq_vv_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u64m8_b8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmseq_vv_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmseq_vx_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u8m1_b8((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmseq_vx_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmseq_vx_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u8m2_b4((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmseq_vx_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmseq_vx_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u8m4_b2((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmseq_vx_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmseq_vx_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u8m8_b1((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmseq_vx_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmseq_vx_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u8mf2_b16((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmseq_vx_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmseq_vx_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u8mf4_b32((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmseq_vx_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmseq_vx_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u8mf8_b64((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmseq_vx_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmseq_vx_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u16m1_b16((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmseq_vx_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmseq_vx_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u16m2_b8((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmseq_vx_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmseq_vx_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u16m4_b4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmseq_vx_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmseq_vx_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u16m8_b2((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmseq_vx_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmseq_vx_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u16mf2_b32((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmseq_vx_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmseq_vx_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u16mf4_b64((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmseq_vx_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmseq_vx_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u32m1_b32((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmseq_vx_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmseq_vx_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u32m2_b16((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmseq_vx_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmseq_vx_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u32m4_b8((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmseq_vx_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmseq_vx_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u32m8_b4((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmseq_vx_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmseq_vx_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u32mf2_b64((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmseq_vx_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmseq_vx_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u64m1_b64((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmseq_vx_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmseq_vx_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u64m2_b32((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmseq_vx_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmseq_vx_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u64m4_b16((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmseq_vx_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmseq_vx_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u64m8_b8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmseq_vx_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsne_vv_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i8m1_b8((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmsne_vv_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmsne_vv_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i8m2_b4((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmsne_vv_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmsne_vv_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i8m4_b2((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmsne_vv_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmsne_vv_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i8m8_b1((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmsne_vv_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmsne_vv_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i8mf2_b16((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmsne_vv_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmsne_vv_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i8mf4_b32((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmsne_vv_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmsne_vv_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i8mf8_b64((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmsne_vv_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmsne_vv_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i16m1_b16((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmsne_vv_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmsne_vv_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i16m2_b8((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmsne_vv_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmsne_vv_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i16m4_b4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmsne_vv_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmsne_vv_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i16m8_b2((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmsne_vv_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmsne_vv_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i16mf2_b32((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmsne_vv_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmsne_vv_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i16mf4_b64((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmsne_vv_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmsne_vv_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i32m1_b32((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmsne_vv_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmsne_vv_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i32m2_b16((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmsne_vv_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmsne_vv_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i32m4_b8((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmsne_vv_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmsne_vv_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i32m8_b4((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmsne_vv_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmsne_vv_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i32mf2_b64((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmsne_vv_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmsne_vv_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i64m1_b64((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmsne_vv_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmsne_vv_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i64m2_b32((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmsne_vv_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmsne_vv_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i64m4_b16((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmsne_vv_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmsne_vv_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i64m8_b8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmsne_vv_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vmsne_vx_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i8m1_b8((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsne_vx_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsne_vx_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i8m2_b4((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsne_vx_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsne_vx_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i8m4_b2((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsne_vx_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsne_vx_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i8m8_b1((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsne_vx_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsne_vx_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i8mf2_b16((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsne_vx_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsne_vx_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i8mf4_b32((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsne_vx_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsne_vx_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i8mf8_b64((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsne_vx_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsne_vx_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i16m1_b16((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsne_vx_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsne_vx_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i16m2_b8((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsne_vx_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsne_vx_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i16m4_b4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsne_vx_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsne_vx_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i16m8_b2((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsne_vx_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsne_vx_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i16mf2_b32((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsne_vx_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsne_vx_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i16mf4_b64((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsne_vx_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsne_vx_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i32m1_b32((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsne_vx_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsne_vx_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i32m2_b16((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsne_vx_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsne_vx_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i32m4_b8((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsne_vx_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsne_vx_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i32m8_b4((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsne_vx_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsne_vx_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i32mf2_b64((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsne_vx_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsne_vx_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i64m1_b64((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsne_vx_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsne_vx_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i64m2_b32((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsne_vx_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsne_vx_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i64m4_b16((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsne_vx_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsne_vx_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i64m8_b8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsne_vx_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsne_vv_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u8m1_b8((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmsne_vv_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmsne_vv_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u8m2_b4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmsne_vv_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmsne_vv_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u8m4_b2((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmsne_vv_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmsne_vv_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u8m8_b1((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmsne_vv_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmsne_vv_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u8mf2_b16((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmsne_vv_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmsne_vv_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u8mf4_b32((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmsne_vv_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmsne_vv_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u8mf8_b64((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmsne_vv_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmsne_vv_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u16m1_b16((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmsne_vv_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmsne_vv_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u16m2_b8((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmsne_vv_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmsne_vv_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u16m4_b4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmsne_vv_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmsne_vv_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u16m8_b2((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmsne_vv_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmsne_vv_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u16mf2_b32((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmsne_vv_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmsne_vv_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u16mf4_b64((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmsne_vv_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmsne_vv_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u32m1_b32((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmsne_vv_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmsne_vv_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u32m2_b16((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmsne_vv_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmsne_vv_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u32m4_b8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmsne_vv_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmsne_vv_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u32m8_b4((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmsne_vv_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmsne_vv_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u32mf2_b64((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmsne_vv_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmsne_vv_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u64m1_b64((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmsne_vv_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmsne_vv_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u64m2_b32((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmsne_vv_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmsne_vv_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u64m4_b16((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmsne_vv_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmsne_vv_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u64m8_b8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmsne_vv_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmsne_vx_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u8m1_b8((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsne_vx_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsne_vx_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u8m2_b4((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsne_vx_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsne_vx_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u8m4_b2((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsne_vx_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsne_vx_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u8m8_b1((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsne_vx_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsne_vx_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u8mf2_b16((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsne_vx_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsne_vx_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u8mf4_b32((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsne_vx_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsne_vx_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u8mf8_b64((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsne_vx_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsne_vx_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u16m1_b16((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsne_vx_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsne_vx_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u16m2_b8((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsne_vx_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsne_vx_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u16m4_b4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsne_vx_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsne_vx_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u16m8_b2((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsne_vx_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsne_vx_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u16mf2_b32((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsne_vx_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsne_vx_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u16mf4_b64((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsne_vx_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsne_vx_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u32m1_b32((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsne_vx_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsne_vx_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u32m2_b16((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsne_vx_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsne_vx_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u32m4_b8((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsne_vx_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsne_vx_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u32m8_b4((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsne_vx_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsne_vx_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u32mf2_b64((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsne_vx_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsne_vx_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u64m1_b64((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsne_vx_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsne_vx_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u64m2_b32((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsne_vx_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsne_vx_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u64m4_b16((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsne_vx_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsne_vx_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u64m8_b8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsne_vx_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u8m1_b8((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u8m2_b4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u8m4_b2((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u8m8_b1((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u8mf2_b16((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u8mf4_b32((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u8mf8_b64((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u16m1_b16((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u16m2_b8((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u16m4_b4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u16m8_b2((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u16mf2_b32((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u16mf4_b64((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u32m1_b32((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u32m2_b16((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u32m4_b8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u32m8_b4((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u32mf2_b64((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u64m1_b64((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u64m2_b32((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u64m4_b16((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u64m8_b8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u8m1_b8((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u8m2_b4((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u8m4_b2((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u8m8_b1((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u8mf2_b16((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u8mf4_b32((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u8mf8_b64((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u16m1_b16((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u16m2_b8((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u16m4_b4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u16m8_b2((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u16mf2_b32((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u16mf4_b64((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u32m1_b32((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u32m2_b16((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u32m4_b8((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u32m8_b4((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u32mf2_b64((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u64m1_b64((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u64m2_b32((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u64m4_b16((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u64m8_b8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmslt_vv_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i8m1_b8((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmslt_vv_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmslt_vv_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i8m2_b4((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmslt_vv_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmslt_vv_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i8m4_b2((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmslt_vv_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmslt_vv_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i8m8_b1((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmslt_vv_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmslt_vv_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i8mf2_b16((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmslt_vv_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmslt_vv_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i8mf4_b32((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmslt_vv_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmslt_vv_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i8mf8_b64((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmslt_vv_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmslt_vv_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i16m1_b16((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmslt_vv_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmslt_vv_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i16m2_b8((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmslt_vv_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmslt_vv_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i16m4_b4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmslt_vv_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmslt_vv_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i16m8_b2((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmslt_vv_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmslt_vv_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i16mf2_b32((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmslt_vv_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmslt_vv_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i16mf4_b64((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmslt_vv_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmslt_vv_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i32m1_b32((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmslt_vv_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmslt_vv_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i32m2_b16((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmslt_vv_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmslt_vv_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i32m4_b8((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmslt_vv_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmslt_vv_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i32m8_b4((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmslt_vv_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmslt_vv_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i32mf2_b64((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmslt_vv_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmslt_vv_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i64m1_b64((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmslt_vv_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmslt_vv_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i64m2_b32((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmslt_vv_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmslt_vv_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i64m4_b16((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmslt_vv_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmslt_vv_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i64m8_b8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmslt_vv_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u16m2((uint16_t *)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u16m4((uint16_t *)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint32m8_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmslt_vx_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i8m1_b8((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmslt_vx_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmslt_vx_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i8m2_b4((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmslt_vx_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmslt_vx_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i8m4_b2((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmslt_vx_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmslt_vx_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i8m8_b1((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmslt_vx_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmslt_vx_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i8mf2_b16((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmslt_vx_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmslt_vx_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i8mf4_b32((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmslt_vx_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmslt_vx_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i8mf8_b64((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmslt_vx_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmslt_vx_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i16m1_b16((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmslt_vx_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmslt_vx_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i16m2_b8((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmslt_vx_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmslt_vx_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i16m4_b4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmslt_vx_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmslt_vx_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i16m8_b2((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmslt_vx_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmslt_vx_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i16mf2_b32((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmslt_vx_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmslt_vx_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i16mf4_b64((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmslt_vx_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmslt_vx_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i32m1_b32((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmslt_vx_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmslt_vx_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i32m2_b16((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmslt_vx_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmslt_vx_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i32m4_b8((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmslt_vx_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmslt_vx_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i32m8_b4((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmslt_vx_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmslt_vx_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i32mf2_b64((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmslt_vx_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmslt_vx_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i64m1_b64((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmslt_vx_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmslt_vx_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i64m2_b32((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmslt_vx_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmslt_vx_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i64m4_b16((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmslt_vx_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmslt_vx_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i64m8_b8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmslt_vx_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u8m1_b8((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u8m2_b4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u8m4_b2((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u8m8_b1((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u8mf2_b16((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u8mf4_b32((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u8mf8_b64((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u16m1_b16((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u16m2_b8((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u16m4_b4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u16m8_b2((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u16mf2_b32((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u16mf4_b64((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u32m1_b32((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u32m2_b16((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u32m4_b8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u32m8_b4((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u32mf2_b64((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u64m1_b64((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u64m2_b32((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u64m4_b16((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u64m8_b8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u8m1_b8((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u8m2_b4((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u8m4_b2((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u8m8_b1((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u8mf2_b16((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u8mf4_b32((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u8mf8_b64((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u16m1_b16((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u16m2_b8((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u16m4_b4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u16m8_b2((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u16mf2_b32((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u16mf4_b64((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u32m1_b32((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u32m2_b16((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u32m4_b8((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u32m8_b4((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u32mf2_b64((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u64m1_b64((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u64m2_b32((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u64m4_b16((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u64m8_b8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsle_vv_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i8m1_b8((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmsle_vv_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmsle_vv_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i8m2_b4((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmsle_vv_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmsle_vv_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i8m4_b2((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmsle_vv_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmsle_vv_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i8m8_b1((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmsle_vv_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmsle_vv_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i8mf2_b16((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmsle_vv_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmsle_vv_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i8mf4_b32((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmsle_vv_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmsle_vv_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i8mf8_b64((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmsle_vv_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmsle_vv_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i16m1_b16((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmsle_vv_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmsle_vv_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i16m2_b8((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmsle_vv_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmsle_vv_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i16m4_b4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmsle_vv_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmsle_vv_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i16m8_b2((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmsle_vv_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmsle_vv_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i16mf2_b32((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmsle_vv_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmsle_vv_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i16mf4_b64((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmsle_vv_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmsle_vv_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i32m1_b32((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmsle_vv_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmsle_vv_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i32m2_b16((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmsle_vv_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmsle_vv_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i32m4_b8((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmsle_vv_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmsle_vv_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i32m8_b4((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmsle_vv_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmsle_vv_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i32mf2_b64((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmsle_vv_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmsle_vv_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i64m1_b64((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmsle_vv_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmsle_vv_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i64m2_b32((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmsle_vv_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmsle_vv_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i64m4_b16((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmsle_vv_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmsle_vv_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i64m8_b8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmsle_vv_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vmsle_vx_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i8m1_b8((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsle_vx_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsle_vx_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i8m2_b4((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsle_vx_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsle_vx_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i8m4_b2((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsle_vx_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsle_vx_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i8m8_b1((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsle_vx_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsle_vx_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i8mf2_b16((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsle_vx_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsle_vx_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i8mf4_b32((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsle_vx_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsle_vx_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i8mf8_b64((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsle_vx_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsle_vx_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i16m1_b16((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsle_vx_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsle_vx_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i16m2_b8((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsle_vx_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsle_vx_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i16m4_b4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsle_vx_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsle_vx_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i16m8_b2((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsle_vx_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsle_vx_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i16mf2_b32((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsle_vx_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsle_vx_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i16mf4_b64((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsle_vx_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsle_vx_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i32m1_b32((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsle_vx_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsle_vx_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i32m2_b16((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsle_vx_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsle_vx_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i32m4_b8((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsle_vx_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsle_vx_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i32m8_b4((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsle_vx_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsle_vx_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i32mf2_b64((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsle_vx_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsle_vx_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i64m1_b64((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsle_vx_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsle_vx_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i64m2_b32((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsle_vx_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsle_vx_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i64m4_b16((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsle_vx_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsle_vx_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i64m8_b8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsle_vx_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u8m1_b8((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u8m2_b4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u8m4_b2((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u8m8_b1((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u8mf2_b16((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u8mf4_b32((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u8mf8_b64((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u16m1_b16((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u16m2_b8((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u16m4_b4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u16m8_b2((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u16mf2_b32((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u16mf4_b64((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u32m1_b32((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u32m2_b16((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u32m4_b8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u32m8_b4((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u32mf2_b64((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u64m1_b64((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u64m2_b32((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u64m4_b16((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u64m8_b8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u8m1_b8((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u8m2_b4((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u8m4_b2((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u8m8_b1((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u8mf2_b16((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u8mf4_b32((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u8mf8_b64((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u16m1_b16((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u16m2_b8((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u16m4_b4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u16m8_b2((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u16mf2_b32((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u16mf4_b64((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u32m1_b32((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u32m2_b16((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u32m4_b8((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u32m8_b4((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u32mf2_b64((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u64m1_b64((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u64m2_b32((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u64m4_b16((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u64m8_b8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i8m1_b8((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i8m2_b4((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i8m4_b2((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i8m8_b1((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i8mf2_b16((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i8mf4_b32((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i8mf8_b64((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i16m1_b16((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i16m2_b8((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i16m4_b4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i16m8_b2((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i16mf2_b32((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i16mf4_b64((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i32m1_b32((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i32m2_b16((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i32m4_b8((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i32m8_b4((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i32mf2_b64((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i64m1_b64((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i64m2_b32((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i64m4_b16((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i64m8_b8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i8m1_b8((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i8m2_b4((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i8m4_b2((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i8m8_b1((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i8mf2_b16((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i8mf4_b32((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i8mf8_b64((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i16m1_b16((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i16m2_b8((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i16m4_b4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i16m8_b2((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i16mf2_b32((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i16mf4_b64((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i32m1_b32((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i32m2_b16((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i32m4_b8((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i32m8_b4((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i32mf2_b64((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i64m1_b64((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i64m2_b32((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i64m4_b16((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i64m8_b8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u8m1_b8((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u8m2_b4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u8m4_b2((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u8m8_b1((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u8mf2_b16((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u8mf4_b32((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u8mf8_b64((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u16m1_b16((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u16m2_b8((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u16m4_b4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u16m8_b2((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u16mf2_b32((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u16mf4_b64((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u32m1_b32((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u32m2_b16((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u32m4_b8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u32m8_b4((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u32mf2_b64((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u64m1_b64((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u64m2_b32((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u64m4_b16((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u64m8_b8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i16m2((int16_t *)(op0), (vuint64m8_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint64m8_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u8m1_b8((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u8m2_b4((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u8m4_b2((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u8m8_b1((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u8mf2_b16((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u8mf4_b32((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u8mf8_b64((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u16m1_b16((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u16m2_b8((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u16m4_b4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u16m8_b2((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u16mf2_b32((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u16mf4_b64((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u32m1_b32((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u32m2_b16((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u32m4_b8((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u32m8_b4((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u32mf2_b64((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u64m1_b64((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u64m2_b32((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u64m4_b16((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u64m8_b8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsge_vv_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i8m1_b8((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmsge_vv_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmsge_vv_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i8m2_b4((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmsge_vv_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmsge_vv_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i8m4_b2((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmsge_vv_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmsge_vv_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i8m8_b1((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmsge_vv_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmsge_vv_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i8mf2_b16((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmsge_vv_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmsge_vv_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i8mf4_b32((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmsge_vv_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmsge_vv_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i8mf8_b64((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmsge_vv_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmsge_vv_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i16m1_b16((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmsge_vv_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmsge_vv_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i16m2_b8((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmsge_vv_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmsge_vv_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i16m4_b4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmsge_vv_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmsge_vv_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i16m8_b2((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmsge_vv_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmsge_vv_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i16mf2_b32((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmsge_vv_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmsge_vv_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i16mf4_b64((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmsge_vv_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmsge_vv_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i32m1_b32((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmsge_vv_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmsge_vv_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i32m2_b16((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmsge_vv_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmsge_vv_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i32m4_b8((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmsge_vv_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmsge_vv_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i32m8_b4((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmsge_vv_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmsge_vv_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i32mf2_b64((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmsge_vv_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmsge_vv_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i64m1_b64((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmsge_vv_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmsge_vv_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i64m2_b32((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmsge_vv_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmsge_vv_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i64m4_b16((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmsge_vv_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmsge_vv_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i64m8_b8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmsge_vv_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vmsge_vx_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i8m1_b8((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsge_vx_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsge_vx_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i8m2_b4((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsge_vx_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsge_vx_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i8m4_b2((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsge_vx_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsge_vx_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i8m8_b1((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsge_vx_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsge_vx_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i8mf2_b16((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsge_vx_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsge_vx_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i8mf4_b32((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsge_vx_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsge_vx_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i8mf8_b64((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsge_vx_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsge_vx_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i16m1_b16((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsge_vx_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsge_vx_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i16m2_b8((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsge_vx_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsge_vx_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i16m4_b4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsge_vx_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsge_vx_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i16m8_b2((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsge_vx_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsge_vx_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i16mf2_b32((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsge_vx_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsge_vx_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i16mf4_b64((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsge_vx_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsge_vx_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i32m1_b32((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsge_vx_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsge_vx_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i32m2_b16((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsge_vx_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsge_vx_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i32m4_b8((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsge_vx_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsge_vx_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i32m8_b4((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsge_vx_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsge_vx_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i32mf2_b64((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsge_vx_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsge_vx_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i64m1_b64((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsge_vx_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsge_vx_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i64m2_b32((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsge_vx_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsge_vx_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i64m4_b16((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsge_vx_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsge_vx_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i64m8_b8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsge_vx_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vminu_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vminu_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vminu_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vminu_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vminu_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vminu_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vminu_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vminu_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vminu_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vminu_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vminu_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vminu_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vminu_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vminu_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vminu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vminu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vminu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vminu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vminu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vminu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vminu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vminu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vminu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vminu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vminu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vminu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vminu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vminu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vminu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vminu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vminu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vminu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vminu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vminu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vminu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vminu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vminu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vminu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vminu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vminu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vminu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vminu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vminu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vminu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vminu_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vminu_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vminu_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vminu_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vminu_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vminu_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vminu_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vminu_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vminu_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vminu_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vminu_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vminu_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vminu_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vminu_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vminu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vminu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vminu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vminu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vminu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vminu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vminu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vminu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vminu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vminu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vminu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vminu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vminu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vminu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vminu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vminu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vminu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vminu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vminu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vminu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vminu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vminu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vminu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vminu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vminu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vminu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vminu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vminu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vminu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vminu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmin_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmin_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmin_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmin_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmin_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmin_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmin_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmin_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmin_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmin_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmin_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmin_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmin_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmin_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmin_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmin_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmin_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmin_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmin_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmin_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmin_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmin_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmin_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmin_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmin_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmin_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmin_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmin_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmin_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmin_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmin_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmin_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmin_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmin_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmin_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmin_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmin_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmin_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmin_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmin_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmin_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmin_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmin_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmin_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vmin_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmin_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmin_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmin_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmin_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmin_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmin_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmin_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmin_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmin_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmin_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmin_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmin_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmin_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmin_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmin_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmin_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmin_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmin_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmin_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmin_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmin_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmin_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmin_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmin_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmin_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmin_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmin_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmin_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmin_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmin_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmin_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmin_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmin_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmin_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmin_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmin_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmin_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmin_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmin_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmin_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmin_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmin_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmin_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmax_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmax_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmax_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmax_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmax_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmax_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmax_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmax_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmax_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmax_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmax_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmax_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmax_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmax_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmax_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmax_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmax_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmax_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmax_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmax_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmax_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmax_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmax_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmax_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmax_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmax_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmax_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmax_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmax_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmax_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmax_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmax_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmax_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmax_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmax_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmax_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmax_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmax_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmax_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmax_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmax_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmax_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmax_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmax_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u16m2((uint16_t *)(op0), (vuint64m8_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint64m8_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmax_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmax_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmax_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmax_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmax_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmax_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmax_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmax_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmax_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmax_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmax_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmax_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmax_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmax_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmax_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmax_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmax_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmax_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmax_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmax_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmax_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmax_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmax_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmax_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmax_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmax_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmax_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmax_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmax_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmax_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmax_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmax_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmax_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmax_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmax_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmax_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmax_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmax_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmax_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmax_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmax_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmax_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmax_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmax_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmul_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmul_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmul_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmul_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmul_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmul_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmul_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmul_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmul_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmul_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmul_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmul_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmul_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmul_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmul_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmul_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmul_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmul_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmul_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmul_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmul_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmul_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmul_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmul_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmul_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmul_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmul_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmul_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmul_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmul_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmul_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmul_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmul_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmul_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmul_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmul_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmul_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmul_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmul_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmul_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmul_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmul_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmul_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmul_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vmul_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmul_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmul_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmul_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmul_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmul_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmul_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmul_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmul_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmul_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmul_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmul_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmul_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmul_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmul_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmul_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmul_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmul_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmul_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmul_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmul_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmul_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmul_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmul_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmul_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmul_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmul_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmul_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmul_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmul_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmul_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmul_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmul_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmul_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmul_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmul_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmul_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmul_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmul_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmul_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmul_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmul_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmul_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmul_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmul_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmul_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmul_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmul_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmul_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmul_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmul_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmul_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmul_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmul_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmul_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmul_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmul_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmul_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmul_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmul_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmul_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmul_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmul_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmul_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmul_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmul_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmul_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmul_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmul_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmul_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmul_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmul_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmul_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmul_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmul_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmul_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmul_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmul_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmul_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmul_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmul_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmul_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmul_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmul_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmul_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmul_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmul_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmul_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmul_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmul_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmul_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmul_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmul_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmul_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmul_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmul_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmul_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmul_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmul_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmul_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmul_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmul_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmul_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmul_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmul_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmul_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmul_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmul_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmul_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmul_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmul_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmul_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmul_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmul_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmul_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmul_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmul_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmul_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmul_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmul_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmul_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmul_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmul_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmul_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmul_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmul_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmul_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmul_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmul_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmul_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmul_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmul_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmulh_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmulh_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmulh_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmulh_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmulh_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmulh_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmulh_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmulh_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmulh_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmulh_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmulh_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmulh_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmulh_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmulh_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmulh_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmulh_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmulh_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmulh_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmulh_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmulh_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmulh_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmulh_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmulh_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmulh_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmulh_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmulh_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmulh_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmulh_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmulh_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmulh_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmulh_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmulh_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmulh_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmulh_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmulh_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmulh_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmulh_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmulh_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmulh_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmulh_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmulh_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmulh_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmulh_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmulh_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vmulh_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmulh_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmulh_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmulh_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmulh_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmulh_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmulh_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmulh_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmulh_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmulh_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmulh_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmulh_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmulh_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmulh_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmulh_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmulh_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmulh_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmulh_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmulh_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmulh_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmulh_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmulh_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmulh_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmulh_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmulh_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmulh_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmulh_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmulh_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmulh_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmulh_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmulh_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmulh_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmulh_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmulh_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmulh_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmulh_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmulh_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmulh_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmulh_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmulh_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmulh_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmulh_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmulh_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmulh_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i8m1((vint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i8m2((vint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i8m4((vint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i8m8((vint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i8mf2((vint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i8mf4((vint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i8mf8((vint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i16m1((vint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i16m2((vint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i16m4((vint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i16m8((vint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i16mf2((vint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i16mf4((vint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i32m1((vint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i32m2((vint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i32m4((vint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i32m8((vint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i32mf2((vint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i64m1((vint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i64m2((vint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i64m4((vint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i64m8((vint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i32m4((int32_t *)(op0), (vuint8m1_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint8m1_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i32m8((int32_t *)(op0), (vuint8m2_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint8m2_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i8m1((vint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i8m2((vint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i8m4((vint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i8m8((vint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i8mf2((vint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i8mf4((vint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i8mf8((vint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i16m1((vint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i16m2((vint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i16m4((vint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i16m8((vint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i16mf2((vint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i16mf4((vint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i32m1((vint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i32m2((vint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i32m4((vint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i32m8((vint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i32mf2((vint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i64m1((vint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i64m2((vint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i64m4((vint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i64m8((vint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vdivu_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vdivu_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vdivu_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vdivu_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vdivu_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vdivu_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vdivu_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vdivu_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vdivu_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vdivu_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vdivu_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vdivu_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vdivu_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vdivu_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vdivu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vdivu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vdivu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vdivu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vdivu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vdivu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vdivu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vdivu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vdivu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vdivu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vdivu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vdivu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vdivu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vdivu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vdivu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vdivu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vdivu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vdivu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vdivu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vdivu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vdivu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vdivu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vdivu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vdivu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vdivu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vdivu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vdivu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vdivu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vdivu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vdivu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vdivu_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vdivu_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vdivu_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vdivu_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vdivu_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vdivu_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vdivu_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vdivu_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vdivu_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vdivu_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vdivu_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vdivu_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vdivu_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vdivu_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vdivu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vdivu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vdivu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vdivu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vdivu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vdivu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vdivu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vdivu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vdivu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vdivu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vdivu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vdivu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vdivu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vdivu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vdivu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vdivu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vdivu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vdivu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vdivu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vdivu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vdivu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vdivu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vdivu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vdivu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vdivu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vdivu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vdivu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vdivu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vdivu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vdivu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vdiv_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vdiv_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vdiv_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vdiv_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vdiv_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vdiv_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vdiv_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vdiv_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vdiv_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vdiv_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vdiv_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vdiv_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vdiv_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vdiv_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vdiv_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vdiv_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vdiv_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vdiv_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vdiv_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vdiv_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vdiv_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vdiv_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vdiv_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vdiv_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vdiv_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vdiv_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vdiv_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vdiv_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vdiv_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vdiv_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vdiv_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vdiv_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vdiv_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vdiv_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vdiv_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vdiv_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vdiv_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vdiv_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vdiv_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vdiv_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vdiv_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vdiv_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vdiv_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vdiv_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vdiv_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vdiv_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vdiv_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vdiv_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vdiv_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vdiv_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vdiv_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vdiv_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vdiv_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vdiv_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vdiv_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vdiv_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vdiv_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vdiv_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vdiv_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vdiv_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vdiv_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vdiv_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vdiv_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vdiv_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vdiv_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vdiv_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vdiv_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vdiv_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vdiv_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vdiv_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vdiv_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vdiv_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vdiv_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vdiv_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vdiv_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vdiv_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vdiv_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vdiv_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vdiv_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vdiv_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vdiv_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vdiv_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vdiv_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vdiv_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vdiv_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vdiv_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vdiv_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vdiv_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vremu_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vremu_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vremu_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vremu_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vremu_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vremu_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vremu_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vremu_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vremu_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vremu_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vremu_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vremu_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vremu_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vremu_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vremu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vremu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vremu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vremu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vremu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vremu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vremu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vremu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vremu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vremu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vremu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vremu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vremu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vremu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vremu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vremu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vremu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vremu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vremu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vremu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vremu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vremu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vremu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vremu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vremu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vremu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vremu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vremu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vremu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vremu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vremu_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vremu_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vremu_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vremu_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vremu_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vremu_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vremu_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vremu_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vremu_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vremu_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vremu_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vremu_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vremu_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vremu_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vremu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vremu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vremu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vremu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vremu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vremu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vremu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vremu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vremu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vremu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vremu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vremu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vremu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vremu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vremu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vremu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vremu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vremu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vremu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vremu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vremu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vremu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vremu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vremu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vremu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vremu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vremu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vremu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vremu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vremu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vrem_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vrem_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vrem_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vrem_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vrem_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vrem_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vrem_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vrem_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vrem_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vrem_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vrem_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vrem_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vrem_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vrem_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vrem_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vrem_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vrem_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vrem_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vrem_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vrem_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vrem_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vrem_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vrem_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vrem_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vrem_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vrem_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vrem_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vrem_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vrem_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vrem_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vrem_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vrem_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vrem_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vrem_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vrem_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vrem_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vrem_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vrem_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vrem_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vrem_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vrem_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vrem_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vrem_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vrem_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vrem_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrem_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrem_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrem_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrem_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrem_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrem_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrem_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrem_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrem_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrem_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrem_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrem_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrem_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrem_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrem_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrem_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrem_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrem_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrem_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrem_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrem_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrem_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrem_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrem_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrem_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrem_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vrem_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vrem_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vrem_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vrem_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vrem_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vrem_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vrem_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vrem_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vrem_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vrem_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vrem_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vrem_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vrem_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vrem_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vrem_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vrem_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vrem_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vwmul_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i16mf4((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vwmul_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vwmul_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i16mf2((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vwmul_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vwmul_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i16m1((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vwmul_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vwmul_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i16m2((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vwmul_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vwmul_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i16m4((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vwmul_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vwmul_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i16m8((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vwmul_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vwmul_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i32mf2((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vwmul_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vwmul_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i32m1((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vwmul_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vwmul_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i32m2((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vwmul_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwmul_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i32m4((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vwmul_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vwmul_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i32m8((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vwmul_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vwmul_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i64m1((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vwmul_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vwmul_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i64m2((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vwmul_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwmul_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i64m4((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vwmul_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vwmul_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i64m8((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vwmul_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u32m4((uint32_t *)(op0), (vuint8m1_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint8m1_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u32m8((uint32_t *)(op0), (vuint8m2_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint8m2_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vwmul_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i16mf4((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwmul_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwmul_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i16mf2((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwmul_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwmul_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i16m1((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwmul_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwmul_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i16m2((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwmul_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwmul_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i16m4((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwmul_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwmul_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i16m8((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwmul_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwmul_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i32mf2((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwmul_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwmul_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i32m1((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwmul_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwmul_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i32m2((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwmul_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwmul_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i32m4((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwmul_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwmul_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i32m8((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwmul_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwmul_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i64m1((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwmul_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwmul_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i64m2((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwmul_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwmul_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i64m4((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwmul_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwmul_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i64m8((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwmul_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u16mf4((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u16mf2((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u16m1((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u16m2((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u16m4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u16m8((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u32mf2((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u32m1((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u32m2((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u32m4((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u32m8((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u64m1((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u64m2((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u64m4((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u64m8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u16mf4((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u16mf2((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u16m1((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u16m2((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u16m4((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u16m8((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u32mf2((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u32m1((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u32m2((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u32m4((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u32m8((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u64m1((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u64m2((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u64m4((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u64m8((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i16mf4((vint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i16mf2((vint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i16m1((vint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i16m2((vint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i16m4((vint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i16m8((vint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i32mf2((vint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i32m1((vint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i32m2((vint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i32m4((vint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i32m8((vint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i64m1((vint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i64m2((vint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i64m4((vint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i64m8((vint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i16mf4((vint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i16mf2((vint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i16m1((vint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i16m2((vint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i16m4((vint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i16m8((vint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i32mf2((vint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i32m1((vint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i32m2((vint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i32m4((vint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i32m8((vint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i64m1((vint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i64m2((vint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i64m4((vint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i64m8((vint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmacc_vv_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vmacc_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmacc_vv_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vmacc_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmacc_vv_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vmacc_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmacc_vv_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vmacc_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmacc_vv_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vmacc_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmacc_vv_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vmacc_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmacc_vv_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vmacc_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmacc_vv_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vmacc_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmacc_vv_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vmacc_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmacc_vv_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vmacc_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmacc_vv_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vmacc_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmacc_vv_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vmacc_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmacc_vv_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vmacc_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmacc_vv_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vmacc_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmacc_vv_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vmacc_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmacc_vv_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vmacc_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmacc_vv_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vmacc_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmacc_vv_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vmacc_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmacc_vv_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vmacc_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmacc_vv_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vmacc_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmacc_vv_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vmacc_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmacc_vv_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vmacc_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vmacc_vx_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vmacc_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (int8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmacc_vx_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vmacc_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (int8_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmacc_vx_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vmacc_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (int8_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmacc_vx_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vmacc_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (int8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmacc_vx_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vmacc_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (int8_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmacc_vx_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vmacc_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (int8_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmacc_vx_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vmacc_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (int8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmacc_vx_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vmacc_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (int16_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmacc_vx_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vmacc_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (int16_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmacc_vx_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vmacc_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (int16_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmacc_vx_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vmacc_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (int16_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmacc_vx_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vmacc_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (int16_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmacc_vx_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vmacc_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (int16_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmacc_vx_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vmacc_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (int32_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmacc_vx_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vmacc_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (int32_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmacc_vx_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vmacc_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (int32_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmacc_vx_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vmacc_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (int32_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmacc_vx_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vmacc_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (int32_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmacc_vx_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vmacc_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (int64_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmacc_vx_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vmacc_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (int64_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmacc_vx_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vmacc_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (int64_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmacc_vx_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vmacc_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (int64_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vmacc_vv_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vmacc_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmacc_vv_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vmacc_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmacc_vv_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vmacc_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmacc_vv_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vmacc_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmacc_vv_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vmacc_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmacc_vv_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vmacc_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmacc_vv_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vmacc_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmacc_vv_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vmacc_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmacc_vv_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vmacc_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmacc_vv_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vmacc_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmacc_vv_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vmacc_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmacc_vv_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vmacc_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmacc_vv_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vmacc_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmacc_vv_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vmacc_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmacc_vv_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vmacc_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmacc_vv_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vmacc_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmacc_vv_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vmacc_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmacc_vv_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vmacc_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmacc_vv_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vmacc_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmacc_vv_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vmacc_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmacc_vv_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vmacc_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmacc_vv_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vmacc_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmacc_vx_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vmacc_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (uint8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmacc_vx_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vmacc_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (uint8_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmacc_vx_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vmacc_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (uint8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmacc_vx_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vmacc_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (uint8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmacc_vx_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vmacc_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (uint8_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmacc_vx_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vmacc_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (uint8_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmacc_vx_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vmacc_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (uint8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmacc_vx_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vmacc_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (uint16_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmacc_vx_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vmacc_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (uint16_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmacc_vx_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vmacc_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (uint16_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmacc_vx_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vmacc_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (uint16_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmacc_vx_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vmacc_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (uint16_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmacc_vx_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vmacc_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (uint16_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmacc_vx_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vmacc_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (uint32_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmacc_vx_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vmacc_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (uint32_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmacc_vx_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vmacc_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (uint32_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmacc_vx_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vmacc_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (uint32_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmacc_vx_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vmacc_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (uint32_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmacc_vx_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vmacc_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (uint64_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmacc_vx_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vmacc_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (uint64_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmacc_vx_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vmacc_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (uint64_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmacc_vx_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vmacc_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (uint64_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i32m4((int32_t *)(op0), (vuint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint16m2_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i32m8((int32_t *)(op0), (vuint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint16m4_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (int8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (int8_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (int8_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (int8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (int8_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (int8_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (int8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (int16_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (int16_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (int16_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (int16_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (int16_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (int16_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (int32_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (int32_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (int32_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (int32_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (int32_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (int64_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (int64_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (int64_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (int64_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (uint8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (uint8_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (uint8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (uint8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (uint8_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (uint8_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (uint8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (uint16_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (uint16_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (uint16_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (uint16_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (uint16_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (uint16_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (uint32_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (uint32_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (uint32_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (uint32_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (uint32_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (uint64_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (uint64_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (uint64_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (uint64_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmadd_vv_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vmadd_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmadd_vv_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vmadd_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmadd_vv_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vmadd_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmadd_vv_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vmadd_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmadd_vv_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vmadd_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmadd_vv_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vmadd_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmadd_vv_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vmadd_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmadd_vv_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vmadd_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmadd_vv_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vmadd_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmadd_vv_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vmadd_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmadd_vv_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vmadd_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmadd_vv_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vmadd_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmadd_vv_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vmadd_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmadd_vv_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vmadd_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmadd_vv_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vmadd_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmadd_vv_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vmadd_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmadd_vv_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vmadd_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmadd_vv_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vmadd_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmadd_vv_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vmadd_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmadd_vv_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vmadd_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmadd_vv_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vmadd_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmadd_vv_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vmadd_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vmadd_vx_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vmadd_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (int8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmadd_vx_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vmadd_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (int8_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmadd_vx_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vmadd_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (int8_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmadd_vx_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vmadd_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (int8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmadd_vx_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vmadd_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (int8_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmadd_vx_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vmadd_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (int8_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmadd_vx_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vmadd_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (int8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmadd_vx_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vmadd_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (int16_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmadd_vx_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vmadd_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (int16_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmadd_vx_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vmadd_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (int16_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmadd_vx_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vmadd_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (int16_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmadd_vx_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vmadd_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (int16_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmadd_vx_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vmadd_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (int16_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmadd_vx_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vmadd_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (int32_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmadd_vx_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vmadd_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (int32_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmadd_vx_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vmadd_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (int32_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmadd_vx_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vmadd_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (int32_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmadd_vx_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vmadd_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (int32_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmadd_vx_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vmadd_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (int64_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmadd_vx_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vmadd_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (int64_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmadd_vx_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vmadd_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (int64_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmadd_vx_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vmadd_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (int64_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vmadd_vv_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vmadd_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmadd_vv_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vmadd_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmadd_vv_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vmadd_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmadd_vv_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vmadd_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmadd_vv_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vmadd_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmadd_vv_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vmadd_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmadd_vv_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vmadd_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmadd_vv_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vmadd_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmadd_vv_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vmadd_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmadd_vv_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vmadd_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmadd_vv_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vmadd_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmadd_vv_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vmadd_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmadd_vv_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vmadd_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmadd_vv_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vmadd_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmadd_vv_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vmadd_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmadd_vv_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vmadd_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmadd_vv_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vmadd_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmadd_vv_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vmadd_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmadd_vv_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vmadd_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmadd_vv_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vmadd_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmadd_vv_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vmadd_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmadd_vv_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vmadd_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmadd_vx_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vmadd_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (uint8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmadd_vx_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vmadd_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (uint8_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmadd_vx_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vmadd_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (uint8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmadd_vx_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vmadd_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (uint8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmadd_vx_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vmadd_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (uint8_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmadd_vx_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vmadd_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (uint8_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmadd_vx_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vmadd_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (uint8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmadd_vx_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vmadd_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (uint16_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmadd_vx_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vmadd_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (uint16_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmadd_vx_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vmadd_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (uint16_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmadd_vx_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vmadd_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (uint16_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmadd_vx_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vmadd_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (uint16_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmadd_vx_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vmadd_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (uint16_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmadd_vx_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vmadd_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (uint32_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmadd_vx_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vmadd_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (uint32_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmadd_vx_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vmadd_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (uint32_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmadd_vx_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vmadd_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (uint32_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmadd_vx_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vmadd_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (uint32_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmadd_vx_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vmadd_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (uint64_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmadd_vx_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vmadd_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (uint64_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmadd_vx_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vmadd_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (uint64_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmadd_vx_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vmadd_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (uint64_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (int8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (int8_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (int8_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (int8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (int8_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (int8_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (int8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (int16_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (int16_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (int16_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (int16_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (int16_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (int16_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (int32_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (int32_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (int32_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (int32_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (int32_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (int64_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (int64_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (int64_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (int64_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u32m4((uint32_t *)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint16m2_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u32m8((uint32_t *)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint16m4_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (uint8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (uint8_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (uint8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (uint8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (uint8_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (uint8_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (uint8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (uint16_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (uint16_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (uint16_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (uint16_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (uint16_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (uint16_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (uint32_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (uint32_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (uint32_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (uint32_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (uint32_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (uint64_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (uint64_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (uint64_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (uint64_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u16mf4((vuint16mf4_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u16mf2((vuint16mf2_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u16m1((vuint16m1_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u16m2((vuint16m2_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u16m4((vuint16m4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u16m8((vuint16m8_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u32mf2((vuint32mf2_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u32m1((vuint32m1_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u32m2((vuint32m2_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u32m4((vuint32m4_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u32m8((vuint32m8_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u64m1((vuint64m1_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u64m2((vuint64m2_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u64m4((vuint64m4_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u64m8((vuint64m8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u16mf4((vuint16mf4_t)(op0), (uint8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (uint8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u16mf2((vuint16mf2_t)(op0), (uint8_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (uint8_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u16m1((vuint16m1_t)(op0), (uint8_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (uint8_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u16m2((vuint16m2_t)(op0), (uint8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (uint8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u16m4((vuint16m4_t)(op0), (uint8_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (uint8_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u16m8((vuint16m8_t)(op0), (uint8_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (uint8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u32mf2((vuint32mf2_t)(op0), (uint16_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (uint16_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u32m1((vuint32m1_t)(op0), (uint16_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (uint16_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u32m2((vuint32m2_t)(op0), (uint16_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (uint16_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u32m4((vuint32m4_t)(op0), (uint16_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (uint16_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u32m8((vuint32m8_t)(op0), (uint16_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (uint16_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u64m1((vuint64m1_t)(op0), (uint32_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (uint32_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u64m2((vuint64m2_t)(op0), (uint32_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (uint32_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u64m4((vuint64m4_t)(op0), (uint32_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (uint32_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u64m8((vuint64m8_t)(op0), (uint32_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (uint32_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i16mf4((vint16mf4_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i16mf2((vint16mf2_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i16m1((vint16m1_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i16m2((vint16m2_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i16m4((vint16m4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i16m8((vint16m8_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i32mf2((vint32mf2_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i32m1((vint32m1_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i32m2((vint32m2_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i32m4((vint32m4_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i32m8((vint32m8_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i64m1((vint64m1_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i64m2((vint64m2_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i64m4((vint64m4_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i64m8((vint64m8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i16mf4((vint16mf4_t)(op0), (int8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (int8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i16mf2((vint16mf2_t)(op0), (int8_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (int8_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i16m1((vint16m1_t)(op0), (int8_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (int8_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i16m2((vint16m2_t)(op0), (int8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (int8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i16m4((vint16m4_t)(op0), (int8_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (int8_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i16m8((vint16m8_t)(op0), (int8_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (int8_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i32mf2((vint32mf2_t)(op0), (int16_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (int16_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i32m1((vint32m1_t)(op0), (int16_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (int16_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i32m2((vint32m2_t)(op0), (int16_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (int16_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i32m4((vint32m4_t)(op0), (int16_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (int16_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i32m8((vint32m8_t)(op0), (int16_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (int16_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i64m1((vint64m1_t)(op0), (int32_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (int32_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i64m2((vint64m2_t)(op0), (int32_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (int32_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i64m4((vint64m4_t)(op0), (int32_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (int32_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i64m8((vint64m8_t)(op0), (int32_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (int32_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i16mf4((vint16mf4_t)(op0), (vint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i16mf2((vint16mf2_t)(op0), (vint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i16m1((vint16m1_t)(op0), (vint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i16m2((vint16m2_t)(op0), (vint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i16m4((vint16m4_t)(op0), (vint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i16m8((vint16m8_t)(op0), (vint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i32mf2((vint32mf2_t)(op0), (vint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i32m1((vint32m1_t)(op0), (vint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i32m2((vint32m2_t)(op0), (vint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i32m4((vint32m4_t)(op0), (vint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i32m8((vint32m8_t)(op0), (vint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i64m1((vint64m1_t)(op0), (vint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i64m2((vint64m2_t)(op0), (vint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i64m4((vint64m4_t)(op0), (vint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i64m8((vint64m8_t)(op0), (vint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i16mf4((vint16mf4_t)(op0), (int8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (int8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i16mf2((vint16mf2_t)(op0), (int8_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (int8_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i16m1((vint16m1_t)(op0), (int8_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (int8_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i16m2((vint16m2_t)(op0), (int8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (int8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i16m4((vint16m4_t)(op0), (int8_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (int8_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i16m8((vint16m8_t)(op0), (int8_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (int8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i32mf2((vint32mf2_t)(op0), (int16_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (int16_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i32m1((vint32m1_t)(op0), (int16_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (int16_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i32m2((vint32m2_t)(op0), (int16_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (int16_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i32m4((vint32m4_t)(op0), (int16_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (int16_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i32m8((vint32m8_t)(op0), (int16_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (int16_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i64m1((vint64m1_t)(op0), (int32_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (int32_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i64m2((vint64m2_t)(op0), (int32_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (int32_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i64m4((vint64m4_t)(op0), (int32_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (int32_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i64m8((vint64m8_t)(op0), (int32_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (int32_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i16mf4((vint16mf4_t)(op0), (uint8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (uint8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i16mf2((vint16mf2_t)(op0), (uint8_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (uint8_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i16m1((vint16m1_t)(op0), (uint8_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (uint8_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i16m2((vint16m2_t)(op0), (uint8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (uint8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i16m4((vint16m4_t)(op0), (uint8_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (uint8_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i16m8((vint16m8_t)(op0), (uint8_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (uint8_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i32mf2((vint32mf2_t)(op0), (uint16_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (uint16_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i32m1((vint32m1_t)(op0), (uint16_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (uint16_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i32m2((vint32m2_t)(op0), (uint16_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (uint16_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i32m4((vint32m4_t)(op0), (uint16_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (uint16_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i32m8((vint32m8_t)(op0), (uint16_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (uint16_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i64m1((vint64m1_t)(op0), (uint32_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (uint32_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i64m2((vint64m2_t)(op0), (uint32_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (uint32_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i64m4((vint64m4_t)(op0), (uint32_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (uint32_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i64m8((vint64m8_t)(op0), (uint32_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (uint32_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmerge_vvm_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i8m1((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i8m2((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i8m4((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i8m8((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i8mf2((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i8mf4((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i8mf8((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i16m1((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i16m2((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i16m4((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i16m8((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i16mf2((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i16mf4((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i32m1((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i32m2((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i32m4((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i32m8((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i32mf2((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i64m1((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i64m2((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i64m4((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i64m8((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i8m1((vbool8_t)(op0), (vint8m1_t)(op1), (int8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i8m2((vbool4_t)(op0), (vint8m2_t)(op1), (int8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i8m4((vbool2_t)(op0), (vint8m4_t)(op1), (int8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i8m8((vbool1_t)(op0), (vint8m8_t)(op1), (int8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i8mf2((vbool16_t)(op0), (vint8mf2_t)(op1), (int8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i8mf4((vbool32_t)(op0), (vint8mf4_t)(op1), (int8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i8mf8((vbool64_t)(op0), (vint8mf8_t)(op1), (int8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i16m1((vbool16_t)(op0), (vint16m1_t)(op1), (int16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i16m2((vbool8_t)(op0), (vint16m2_t)(op1), (int16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i16m4((vbool4_t)(op0), (vint16m4_t)(op1), (int16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i16m8((vbool2_t)(op0), (vint16m8_t)(op1), (int16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i16mf2((vbool32_t)(op0), (vint16mf2_t)(op1), (int16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i16mf4((vbool64_t)(op0), (vint16mf4_t)(op1), (int16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i32m1((vbool32_t)(op0), (vint32m1_t)(op1), (int32_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i32m2((vbool16_t)(op0), (vint32m2_t)(op1), (int32_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i32m4((vbool8_t)(op0), (vint32m4_t)(op1), (int32_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i32m8((vbool4_t)(op0), (vint32m8_t)(op1), (int32_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i32mf2((vbool64_t)(op0), (vint32mf2_t)(op1), (int32_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i64m1((vbool64_t)(op0), (vint64m1_t)(op1), (int64_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i64m2((vbool32_t)(op0), (vint64m2_t)(op1), (int64_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i64m4((vbool16_t)(op0), (vint64m4_t)(op1), (int64_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i64m8((vbool8_t)(op0), (vint64m8_t)(op1), (int64_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i32m4((int32_t *)(op0), (vuint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i32m8((int32_t *)(op0), (vuint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmerge_vvm_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u8m1((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u8m2((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u8m4((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u8m8((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u8mf2((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u8mf4((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u8mf8((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u16m1((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u16m2((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u16m4((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u16m8((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u16mf2((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u16mf4((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u32m1((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u32m2((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u32m4((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u32m8((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u32mf2((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u64m1((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u64m2((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u64m4((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u64m8((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u8m1((vbool8_t)(op0), (vuint8m1_t)(op1), (uint8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u8m2((vbool4_t)(op0), (vuint8m2_t)(op1), (uint8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u8m4((vbool2_t)(op0), (vuint8m4_t)(op1), (uint8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u8m8((vbool1_t)(op0), (vuint8m8_t)(op1), (uint8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u8mf2((vbool16_t)(op0), (vuint8mf2_t)(op1), (uint8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u8mf4((vbool32_t)(op0), (vuint8mf4_t)(op1), (uint8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u8mf8((vbool64_t)(op0), (vuint8mf8_t)(op1), (uint8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u16m1((vbool16_t)(op0), (vuint16m1_t)(op1), (uint16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u16m2((vbool8_t)(op0), (vuint16m2_t)(op1), (uint16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u16m4((vbool4_t)(op0), (vuint16m4_t)(op1), (uint16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u16m8((vbool2_t)(op0), (vuint16m8_t)(op1), (uint16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u16mf2((vbool32_t)(op0), (vuint16mf2_t)(op1), (uint16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u16mf4((vbool64_t)(op0), (vuint16mf4_t)(op1), (uint16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u32m1((vbool32_t)(op0), (vuint32m1_t)(op1), (uint32_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u32m2((vbool16_t)(op0), (vuint32m2_t)(op1), (uint32_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u32m4((vbool8_t)(op0), (vuint32m4_t)(op1), (uint32_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u32m8((vbool4_t)(op0), (vuint32m8_t)(op1), (uint32_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u32mf2((vbool64_t)(op0), (vuint32mf2_t)(op1), (uint32_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u64m1((vbool64_t)(op0), (vuint64m1_t)(op1), (uint64_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u64m2((vbool32_t)(op0), (vuint64m2_t)(op1), (uint64_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u64m4((vbool16_t)(op0), (vuint64m4_t)(op1), (uint64_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u64m8((vbool8_t)(op0), (vuint64m8_t)(op1), (uint64_t)(op2), (size_t)(op3))
-#define vmv_v_v_u8m1(op0, op1) \
-__builtin_rvv_vmv_v_v_u8m1((vuint8m1_t)(op0), (size_t)(op1))
-#define vmv_v_v_u8m2(op0, op1) \
-__builtin_rvv_vmv_v_v_u8m2((vuint8m2_t)(op0), (size_t)(op1))
-#define vmv_v_v_u8m4(op0, op1) \
-__builtin_rvv_vmv_v_v_u8m4((vuint8m4_t)(op0), (size_t)(op1))
-#define vmv_v_v_u8m8(op0, op1) \
-__builtin_rvv_vmv_v_v_u8m8((vuint8m8_t)(op0), (size_t)(op1))
-#define vmv_v_v_u8mf2(op0, op1) \
-__builtin_rvv_vmv_v_v_u8mf2((vuint8mf2_t)(op0), (size_t)(op1))
-#define vmv_v_v_u8mf4(op0, op1) \
-__builtin_rvv_vmv_v_v_u8mf4((vuint8mf4_t)(op0), (size_t)(op1))
-#define vmv_v_v_u8mf8(op0, op1) \
-__builtin_rvv_vmv_v_v_u8mf8((vuint8mf8_t)(op0), (size_t)(op1))
-#define vmv_v_v_u16m1(op0, op1) \
-__builtin_rvv_vmv_v_v_u16m1((vuint16m1_t)(op0), (size_t)(op1))
-#define vmv_v_v_u16m2(op0, op1) \
-__builtin_rvv_vmv_v_v_u16m2((vuint16m2_t)(op0), (size_t)(op1))
-#define vmv_v_v_u16m4(op0, op1) \
-__builtin_rvv_vmv_v_v_u16m4((vuint16m4_t)(op0), (size_t)(op1))
-#define vmv_v_v_u16m8(op0, op1) \
-__builtin_rvv_vmv_v_v_u16m8((vuint16m8_t)(op0), (size_t)(op1))
-#define vmv_v_v_u16mf2(op0, op1) \
-__builtin_rvv_vmv_v_v_u16mf2((vuint16mf2_t)(op0), (size_t)(op1))
-#define vmv_v_v_u16mf4(op0, op1) \
-__builtin_rvv_vmv_v_v_u16mf4((vuint16mf4_t)(op0), (size_t)(op1))
-#define vmv_v_v_u32m1(op0, op1) \
-__builtin_rvv_vmv_v_v_u32m1((vuint32m1_t)(op0), (size_t)(op1))
-#define vmv_v_v_u32m2(op0, op1) \
-__builtin_rvv_vmv_v_v_u32m2((vuint32m2_t)(op0), (size_t)(op1))
-#define vmv_v_v_u32m4(op0, op1) \
-__builtin_rvv_vmv_v_v_u32m4((vuint32m4_t)(op0), (size_t)(op1))
-#define vmv_v_v_u32m8(op0, op1) \
-__builtin_rvv_vmv_v_v_u32m8((vuint32m8_t)(op0), (size_t)(op1))
-#define vmv_v_v_u32mf2(op0, op1) \
-__builtin_rvv_vmv_v_v_u32mf2((vuint32mf2_t)(op0), (size_t)(op1))
-#define vmv_v_v_u64m1(op0, op1) \
-__builtin_rvv_vmv_v_v_u64m1((vuint64m1_t)(op0), (size_t)(op1))
-#define vmv_v_v_u64m2(op0, op1) \
-__builtin_rvv_vmv_v_v_u64m2((vuint64m2_t)(op0), (size_t)(op1))
-#define vmv_v_v_u64m4(op0, op1) \
-__builtin_rvv_vmv_v_v_u64m4((vuint64m4_t)(op0), (size_t)(op1))
-#define vmv_v_v_u64m8(op0, op1) \
-__builtin_rvv_vmv_v_v_u64m8((vuint64m8_t)(op0), (size_t)(op1))
-#define vmv_v_v_i8m1(op0, op1) \
-__builtin_rvv_vmv_v_v_i8m1((vint8m1_t)(op0), (size_t)(op1))
-#define vmv_v_v_i8m2(op0, op1) \
-__builtin_rvv_vmv_v_v_i8m2((vint8m2_t)(op0), (size_t)(op1))
-#define vmv_v_v_i8m4(op0, op1) \
-__builtin_rvv_vmv_v_v_i8m4((vint8m4_t)(op0), (size_t)(op1))
-#define vmv_v_v_i8m8(op0, op1) \
-__builtin_rvv_vmv_v_v_i8m8((vint8m8_t)(op0), (size_t)(op1))
-#define vmv_v_v_i8mf2(op0, op1) \
-__builtin_rvv_vmv_v_v_i8mf2((vint8mf2_t)(op0), (size_t)(op1))
-#define vmv_v_v_i8mf4(op0, op1) \
-__builtin_rvv_vmv_v_v_i8mf4((vint8mf4_t)(op0), (size_t)(op1))
-#define vmv_v_v_i8mf8(op0, op1) \
-__builtin_rvv_vmv_v_v_i8mf8((vint8mf8_t)(op0), (size_t)(op1))
-#define vmv_v_v_i16m1(op0, op1) \
-__builtin_rvv_vmv_v_v_i16m1((vint16m1_t)(op0), (size_t)(op1))
-#define vmv_v_v_i16m2(op0, op1) \
-__builtin_rvv_vmv_v_v_i16m2((vint16m2_t)(op0), (size_t)(op1))
-#define vmv_v_v_i16m4(op0, op1) \
-__builtin_rvv_vmv_v_v_i16m4((vint16m4_t)(op0), (size_t)(op1))
-#define vmv_v_v_i16m8(op0, op1) \
-__builtin_rvv_vmv_v_v_i16m8((vint16m8_t)(op0), (size_t)(op1))
-#define vmv_v_v_i16mf2(op0, op1) \
-__builtin_rvv_vmv_v_v_i16mf2((vint16mf2_t)(op0), (size_t)(op1))
-#define vmv_v_v_i16mf4(op0, op1) \
-__builtin_rvv_vmv_v_v_i16mf4((vint16mf4_t)(op0), (size_t)(op1))
-#define vmv_v_v_i32m1(op0, op1) \
-__builtin_rvv_vmv_v_v_i32m1((vint32m1_t)(op0), (size_t)(op1))
-#define vmv_v_v_i32m2(op0, op1) \
-__builtin_rvv_vmv_v_v_i32m2((vint32m2_t)(op0), (size_t)(op1))
-#define vmv_v_v_i32m4(op0, op1) \
-__builtin_rvv_vmv_v_v_i32m4((vint32m4_t)(op0), (size_t)(op1))
-#define vmv_v_v_i32m8(op0, op1) \
-__builtin_rvv_vmv_v_v_i32m8((vint32m8_t)(op0), (size_t)(op1))
-#define vmv_v_v_i32mf2(op0, op1) \
-__builtin_rvv_vmv_v_v_i32mf2((vint32mf2_t)(op0), (size_t)(op1))
-#define vmv_v_v_i64m1(op0, op1) \
-__builtin_rvv_vmv_v_v_i64m1((vint64m1_t)(op0), (size_t)(op1))
-#define vmv_v_v_i64m2(op0, op1) \
-__builtin_rvv_vmv_v_v_i64m2((vint64m2_t)(op0), (size_t)(op1))
-#define vmv_v_v_i64m4(op0, op1) \
-__builtin_rvv_vmv_v_v_i64m4((vint64m4_t)(op0), (size_t)(op1))
-#define vmv_v_v_i64m8(op0, op1) \
-__builtin_rvv_vmv_v_v_i64m8((vint64m8_t)(op0), (size_t)(op1))
-#define vmv_v_x_i8m1(op0, op1) \
-__builtin_rvv_vmv_v_x_i8m1((int8_t)(op0), (size_t)(op1))
-#define vmv_v_x_i8m2(op0, op1) \
-__builtin_rvv_vmv_v_x_i8m2((int8_t)(op0), (size_t)(op1))
-#define vmv_v_x_i8m4(op0, op1) \
-__builtin_rvv_vmv_v_x_i8m4((int8_t)(op0), (size_t)(op1))
-#define vmv_v_x_i8m8(op0, op1) \
-__builtin_rvv_vmv_v_x_i8m8((int8_t)(op0), (size_t)(op1))
-#define vmv_v_x_i8mf2(op0, op1) \
-__builtin_rvv_vmv_v_x_i8mf2((int8_t)(op0), (size_t)(op1))
-#define vmv_v_x_i8mf4(op0, op1) \
-__builtin_rvv_vmv_v_x_i8mf4((int8_t)(op0), (size_t)(op1))
-#define vmv_v_x_i8mf8(op0, op1) \
-__builtin_rvv_vmv_v_x_i8mf8((int8_t)(op0), (size_t)(op1))
-#define vmv_v_x_i16m1(op0, op1) \
-__builtin_rvv_vmv_v_x_i16m1((int16_t)(op0), (size_t)(op1))
-#define vmv_v_x_i16m2(op0, op1) \
-__builtin_rvv_vmv_v_x_i16m2((int16_t)(op0), (size_t)(op1))
-#define vmv_v_x_i16m4(op0, op1) \
-__builtin_rvv_vmv_v_x_i16m4((int16_t)(op0), (size_t)(op1))
-#define vmv_v_x_i16m8(op0, op1) \
-__builtin_rvv_vmv_v_x_i16m8((int16_t)(op0), (size_t)(op1))
-#define vmv_v_x_i16mf2(op0, op1) \
-__builtin_rvv_vmv_v_x_i16mf2((int16_t)(op0), (size_t)(op1))
-#define vmv_v_x_i16mf4(op0, op1) \
-__builtin_rvv_vmv_v_x_i16mf4((int16_t)(op0), (size_t)(op1))
-#define vmv_v_x_i32m1(op0, op1) \
-__builtin_rvv_vmv_v_x_i32m1((int32_t)(op0), (size_t)(op1))
-#define vmv_v_x_i32m2(op0, op1) \
-__builtin_rvv_vmv_v_x_i32m2((int32_t)(op0), (size_t)(op1))
-#define vmv_v_x_i32m4(op0, op1) \
-__builtin_rvv_vmv_v_x_i32m4((int32_t)(op0), (size_t)(op1))
-#define vmv_v_x_i32m8(op0, op1) \
-__builtin_rvv_vmv_v_x_i32m8((int32_t)(op0), (size_t)(op1))
-#define vmv_v_x_i32mf2(op0, op1) \
-__builtin_rvv_vmv_v_x_i32mf2((int32_t)(op0), (size_t)(op1))
-#define vmv_v_x_i64m1(op0, op1) \
-__builtin_rvv_vmv_v_x_i64m1((int64_t)(op0), (size_t)(op1))
-#define vmv_v_x_i64m2(op0, op1) \
-__builtin_rvv_vmv_v_x_i64m2((int64_t)(op0), (size_t)(op1))
-#define vmv_v_x_i64m4(op0, op1) \
-__builtin_rvv_vmv_v_x_i64m4((int64_t)(op0), (size_t)(op1))
-#define vmv_v_x_i64m8(op0, op1) \
-__builtin_rvv_vmv_v_x_i64m8((int64_t)(op0), (size_t)(op1))
-#define vmv_v_x_u8m1(op0, op1) \
-__builtin_rvv_vmv_v_x_u8m1((uint8_t)(op0), (size_t)(op1))
-#define vmv_v_x_u8m2(op0, op1) \
-__builtin_rvv_vmv_v_x_u8m2((uint8_t)(op0), (size_t)(op1))
-#define vmv_v_x_u8m4(op0, op1) \
-__builtin_rvv_vmv_v_x_u8m4((uint8_t)(op0), (size_t)(op1))
-#define vmv_v_x_u8m8(op0, op1) \
-__builtin_rvv_vmv_v_x_u8m8((uint8_t)(op0), (size_t)(op1))
-#define vmv_v_x_u8mf2(op0, op1) \
-__builtin_rvv_vmv_v_x_u8mf2((uint8_t)(op0), (size_t)(op1))
-#define vmv_v_x_u8mf4(op0, op1) \
-__builtin_rvv_vmv_v_x_u8mf4((uint8_t)(op0), (size_t)(op1))
-#define vmv_v_x_u8mf8(op0, op1) \
-__builtin_rvv_vmv_v_x_u8mf8((uint8_t)(op0), (size_t)(op1))
-#define vmv_v_x_u16m1(op0, op1) \
-__builtin_rvv_vmv_v_x_u16m1((uint16_t)(op0), (size_t)(op1))
-#define vmv_v_x_u16m2(op0, op1) \
-__builtin_rvv_vmv_v_x_u16m2((uint16_t)(op0), (size_t)(op1))
-#define vmv_v_x_u16m4(op0, op1) \
-__builtin_rvv_vmv_v_x_u16m4((uint16_t)(op0), (size_t)(op1))
-#define vmv_v_x_u16m8(op0, op1) \
-__builtin_rvv_vmv_v_x_u16m8((uint16_t)(op0), (size_t)(op1))
-#define vmv_v_x_u16mf2(op0, op1) \
-__builtin_rvv_vmv_v_x_u16mf2((uint16_t)(op0), (size_t)(op1))
-#define vmv_v_x_u16mf4(op0, op1) \
-__builtin_rvv_vmv_v_x_u16mf4((uint16_t)(op0), (size_t)(op1))
-#define vmv_v_x_u32m1(op0, op1) \
-__builtin_rvv_vmv_v_x_u32m1((uint32_t)(op0), (size_t)(op1))
-#define vmv_v_x_u32m2(op0, op1) \
-__builtin_rvv_vmv_v_x_u32m2((uint32_t)(op0), (size_t)(op1))
-#define vmv_v_x_u32m4(op0, op1) \
-__builtin_rvv_vmv_v_x_u32m4((uint32_t)(op0), (size_t)(op1))
-#define vmv_v_x_u32m8(op0, op1) \
-__builtin_rvv_vmv_v_x_u32m8((uint32_t)(op0), (size_t)(op1))
-#define vmv_v_x_u32mf2(op0, op1) \
-__builtin_rvv_vmv_v_x_u32mf2((uint32_t)(op0), (size_t)(op1))
-#define vmv_v_x_u64m1(op0, op1) \
-__builtin_rvv_vmv_v_x_u64m1((uint64_t)(op0), (size_t)(op1))
-#define vmv_v_x_u64m2(op0, op1) \
-__builtin_rvv_vmv_v_x_u64m2((uint64_t)(op0), (size_t)(op1))
-#define vmv_v_x_u64m4(op0, op1) \
-__builtin_rvv_vmv_v_x_u64m4((uint64_t)(op0), (size_t)(op1))
-#define vmv_v_x_u64m8(op0, op1) \
-__builtin_rvv_vmv_v_x_u64m8((uint64_t)(op0), (size_t)(op1))
-#define vsaddu_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vsadd_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vsadd_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsadd_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vsadd_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsadd_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vsadd_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsadd_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vsadd_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vsadd_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vsadd_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsadd_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vsadd_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsadd_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vsadd_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsadd_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vsadd_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsadd_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vsadd_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsadd_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vsadd_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsadd_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vsadd_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vsadd_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vsadd_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsadd_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vsadd_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsadd_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vsadd_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsadd_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vsadd_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsadd_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vsadd_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsadd_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vsadd_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vsadd_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vsadd_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsadd_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vsadd_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsadd_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vsadd_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsadd_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vsadd_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsadd_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vsadd_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsadd_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsadd_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsadd_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsadd_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsadd_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsadd_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsadd_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsadd_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsadd_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsadd_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsadd_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsadd_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsadd_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsadd_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsadd_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsadd_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsadd_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsadd_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsadd_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsadd_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsadd_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsadd_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsadd_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsadd_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsadd_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsadd_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsadd_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsadd_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsadd_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsadd_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsadd_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsadd_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsadd_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsadd_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsadd_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsadd_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsadd_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsadd_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsadd_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsadd_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsadd_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsadd_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsadd_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsadd_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u32m8((uint32_t *)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vssubu_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vssubu_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vssubu_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vssubu_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vssubu_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vssubu_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vssubu_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vssubu_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vssubu_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vssubu_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vssubu_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vssubu_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vssubu_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vssubu_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vssubu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vssubu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vssubu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vssubu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vssubu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vssubu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vssubu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vssubu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vssubu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vssubu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vssubu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vssubu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vssubu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vssubu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vssubu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vssubu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vssubu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vssubu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vssubu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vssubu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vssubu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vssubu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vssubu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vssubu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vssubu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vssubu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vssubu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vssubu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vssubu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vssubu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vssubu_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vssubu_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vssubu_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vssubu_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vssubu_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vssubu_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vssubu_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vssubu_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vssubu_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vssubu_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vssubu_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vssubu_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vssubu_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vssubu_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vssubu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vssubu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vssubu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vssubu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vssubu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vssubu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vssubu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vssubu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vssubu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vssubu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vssubu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vssubu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vssubu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vssubu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vssubu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vssubu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vssubu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vssubu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vssubu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vssubu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vssubu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vssubu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vssubu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vssubu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vssubu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vssubu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vssubu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vssubu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vssubu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vssubu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vssub_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vssub_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vssub_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vssub_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vssub_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vssub_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vssub_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vssub_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vssub_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vssub_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vssub_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vssub_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vssub_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vssub_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vssub_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vssub_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vssub_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vssub_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vssub_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vssub_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vssub_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vssub_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vssub_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vssub_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vssub_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vssub_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vssub_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vssub_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vssub_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vssub_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vssub_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vssub_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vssub_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vssub_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vssub_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vssub_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vssub_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vssub_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vssub_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vssub_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vssub_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vssub_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vssub_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vssub_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vssub_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vssub_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vssub_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vssub_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vssub_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vssub_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vssub_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vssub_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vssub_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vssub_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vssub_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vssub_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vssub_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vssub_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vssub_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vssub_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vssub_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vssub_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vssub_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vssub_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vssub_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vssub_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vssub_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vssub_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vssub_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vssub_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vssub_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vssub_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vssub_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vssub_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vssub_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vssub_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vssub_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vssub_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vssub_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vssub_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vssub_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vssub_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vssub_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vssub_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vssub_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vssub_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vssub_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vssub_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vaadd_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vaadd_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vaadd_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vaadd_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vaadd_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vaadd_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vaadd_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vaadd_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vaadd_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vaadd_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vaadd_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vaadd_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vaadd_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vaadd_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vaadd_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vaadd_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vaadd_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vaadd_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vaadd_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vaadd_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vaadd_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vaadd_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vaadd_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vaadd_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vaadd_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vaadd_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vaadd_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vaadd_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vaadd_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vaadd_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vaadd_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vaadd_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vaadd_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vaadd_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vaadd_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vaadd_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vaadd_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vaadd_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vaadd_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vaadd_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vaadd_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vaadd_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vaadd_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vaadd_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vaadd_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vaadd_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vaadd_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vaadd_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vaadd_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vaadd_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vaadd_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vaadd_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vaadd_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vaadd_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vaadd_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vaadd_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vaadd_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vaadd_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vaadd_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vaadd_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vaadd_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vaadd_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vaadd_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vaadd_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vaadd_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vaadd_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vaadd_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vaadd_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vaadd_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vaadd_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vaadd_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vaadd_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vaadd_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vaadd_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vaadd_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vaadd_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vaadd_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vaadd_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vaadd_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vaadd_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vaadd_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vaadd_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vaadd_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vaadd_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vaadd_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vaadd_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vaadd_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vaadd_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vasubu_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vasubu_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vasubu_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vasubu_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vasubu_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vasubu_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vasubu_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vasubu_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vasubu_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vasubu_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vasubu_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vasubu_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vasubu_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vasubu_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vasubu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vasubu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vasubu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vasubu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vasubu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vasubu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vasubu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vasubu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vasubu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vasubu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vasubu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vasubu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vasubu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vasubu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vasubu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vasubu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vasubu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vasubu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vasubu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vasubu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vasubu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vasubu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vasubu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vasubu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vasubu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vasubu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vasubu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vasubu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vasubu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vasubu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vasubu_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vasubu_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vasubu_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vasubu_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vasubu_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vasubu_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vasubu_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vasubu_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vasubu_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vasubu_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vasubu_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vasubu_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vasubu_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vasubu_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vasubu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vasubu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vasubu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vasubu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vasubu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vasubu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vasubu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vasubu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vasubu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vasubu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vasubu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vasubu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vasubu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vasubu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vasubu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vasubu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vasubu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vasubu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vasubu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vasubu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vasubu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vasubu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vasubu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vasubu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vasubu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vasubu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vasubu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vasubu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vasubu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vasubu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i8m2((int8_t *)(op0), (vuint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i8m4((int8_t *)(op0), (vuint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (vuint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i8m8((int8_t *)(op0), (vuint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i8m8_m((vbool1_t)(op0), (int8_t *)(op1), (vuint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i32m4((int32_t *)(op0), (vuint64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint64m8_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vasub_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vasub_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vasub_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vasub_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vasub_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vasub_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vasub_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vasub_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vasub_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vasub_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vasub_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vasub_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vasub_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vasub_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vasub_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vasub_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vasub_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vasub_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vasub_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vasub_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vasub_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vasub_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vasub_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vasub_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vasub_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vasub_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vasub_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vasub_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vasub_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vasub_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vasub_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vasub_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vasub_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vasub_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vasub_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vasub_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vasub_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vasub_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vasub_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vasub_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vasub_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vasub_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vasub_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vasub_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vasub_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vasub_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vasub_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vasub_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vasub_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vasub_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vasub_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vasub_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vasub_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vasub_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vasub_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vasub_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vasub_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vasub_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vasub_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vasub_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vasub_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vasub_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vasub_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vasub_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vasub_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vasub_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vasub_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vasub_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vasub_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vasub_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vasub_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vasub_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vasub_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vasub_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vasub_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vasub_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vasub_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vasub_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vasub_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vasub_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vasub_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vasub_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vasub_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vasub_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vasub_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vasub_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vasub_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vasub_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsmul_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vsmul_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsmul_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vsmul_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsmul_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vsmul_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsmul_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vsmul_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vsmul_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vsmul_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsmul_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vsmul_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsmul_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vsmul_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsmul_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vsmul_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsmul_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vsmul_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsmul_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vsmul_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsmul_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vsmul_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vsmul_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vsmul_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsmul_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vsmul_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsmul_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vsmul_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsmul_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vsmul_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsmul_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vsmul_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsmul_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vsmul_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vsmul_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vsmul_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsmul_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vsmul_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsmul_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vsmul_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsmul_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vsmul_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsmul_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vsmul_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsmul_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsmul_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsmul_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsmul_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsmul_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsmul_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsmul_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsmul_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsmul_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsmul_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsmul_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsmul_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsmul_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsmul_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsmul_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsmul_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsmul_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsmul_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsmul_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsmul_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsmul_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsmul_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsmul_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsmul_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsmul_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsmul_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsmul_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsmul_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsmul_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsmul_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsmul_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsmul_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsmul_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsmul_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsmul_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsmul_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsmul_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsmul_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsmul_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsmul_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsmul_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsmul_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsmul_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsmul_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vssrl_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vssrl_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vssrl_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vssrl_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vssrl_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vssrl_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vssrl_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vssrl_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vssrl_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vssrl_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vssrl_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vssrl_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vssrl_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vssrl_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vssrl_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vssrl_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vssrl_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vssrl_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vssrl_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vssrl_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vssrl_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vssrl_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vssrl_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vssrl_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vssrl_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vssrl_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vssrl_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vssrl_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vssrl_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vssrl_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vssrl_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vssrl_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vssrl_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vssrl_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vssrl_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vssrl_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vssrl_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vssrl_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vssrl_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vssrl_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vssrl_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vssrl_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vssrl_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vssrl_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vssrl_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u8m1((vuint8m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u8m2((vuint8m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u8m4((vuint8m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u8m8((vuint8m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u8mf2((vuint8mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u8mf4((vuint8mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u8mf8((vuint8mf8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u16m1((vuint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u16m2((vuint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u16m4((vuint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u16m8((vuint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u16mf2((vuint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u16mf4((vuint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u32m1((vuint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u32m2((vuint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u32m4((vuint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u32m8((vuint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u32mf2((vuint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u64m1((vuint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u64m2((vuint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u64m4((vuint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u64m8((vuint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i8m1((vint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vssra_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vssra_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i8m2((vint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vssra_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vssra_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i8m4((vint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vssra_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vssra_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i8m8((vint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vssra_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vssra_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i8mf2((vint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vssra_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vssra_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i8mf4((vint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vssra_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vssra_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i8mf8((vint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vssra_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vssra_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i16m1((vint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vssra_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vssra_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i16m2((vint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vssra_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vssra_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i16m4((vint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vssra_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vssra_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i16m8((vint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vssra_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vssra_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i16mf2((vint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vssra_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vssra_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i16mf4((vint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vssra_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vssra_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i32m1((vint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vssra_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vssra_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i32m2((vint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vssra_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vssra_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i32m4((vint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vssra_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vssra_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i32m8((vint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vssra_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vssra_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i32mf2((vint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vssra_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vssra_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i64m1((vint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vssra_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vssra_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i64m2((vint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vssra_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vssra_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i64m4((vint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vssra_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vssra_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i64m8((vint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vssra_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vssra_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i8m1((vint8m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i8m2((vint8m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i8m4((vint8m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i8m8((vint8m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i8mf2((vint8mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i8mf4((vint8mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i8mf8((vint8mf8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i16m1((vint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i16m2((vint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i16m4((vint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i16m8((vint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i16mf2((vint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i16mf4((vint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i32m1((vint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i32m2((vint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i32m4((vint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i32m8((vint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i32mf2((vint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i64m1((vint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i64m2((vint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i64m4((vint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i64m8((vint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u8m1(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u8m1((vuint16m2_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u8m2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u8m2((vuint16m4_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u8m4(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u8m4((vuint16m8_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint16m8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u8mf2((vuint16m1_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u8mf4((vuint16mf2_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u8mf8((vuint16mf4_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u16m1(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u16m1((vuint32m2_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u16m2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u16m2((vuint32m4_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u16m4(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u16m4((vuint32m8_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u16mf2((vuint32m1_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u16mf4((vuint32mf2_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u32m1(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u32m1((vuint64m2_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u32m2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u32m2((vuint64m4_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u32m4(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u32m4((vuint64m8_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u32mf2((vuint64m1_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u8m1(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u8m1((vuint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u8m2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u8m2((vuint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u8m4(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u8m4((vuint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u8mf2((vuint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u8mf4((vuint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u8mf8((vuint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u16m1(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u16m1((vuint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u16m2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u16m2((vuint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u16m4(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u16m4((vuint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u16mf2((vuint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u16mf4((vuint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u32m1(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u32m1((vuint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u32m2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u32m2((vuint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u32m4(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u32m4((vuint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u32mf2((vuint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u32m4((uint32_t *)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vnclip_wv_i8m1(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i8m1((vint16m2_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vnclip_wv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint16m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vnclip_wv_i8m2(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i8m2((vint16m4_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vnclip_wv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint16m4_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vnclip_wv_i8m4(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i8m4((vint16m8_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vnclip_wv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint16m8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vnclip_wv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i8mf2((vint16m1_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vnclip_wv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint16m1_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vnclip_wv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i8mf4((vint16mf2_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vnclip_wv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint16mf2_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vnclip_wv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i8mf8((vint16mf4_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vnclip_wv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint16mf4_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vnclip_wv_i16m1(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i16m1((vint32m2_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vnclip_wv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint32m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vnclip_wv_i16m2(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i16m2((vint32m4_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vnclip_wv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint32m4_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vnclip_wv_i16m4(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i16m4((vint32m8_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vnclip_wv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint32m8_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vnclip_wv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i16mf2((vint32m1_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vnclip_wv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint32m1_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vnclip_wv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i16mf4((vint32mf2_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vnclip_wv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint32mf2_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vnclip_wv_i32m1(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i32m1((vint64m2_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vnclip_wv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vnclip_wv_i32m2(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i32m2((vint64m4_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vnclip_wv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vnclip_wv_i32m4(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i32m4((vint64m8_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vnclip_wv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vnclip_wv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i32mf2((vint64m1_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vnclip_wv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vnclip_wx_i8m1(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i8m1((vint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i8m2(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i8m2((vint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i8m4(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i8m4((vint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i8mf2((vint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i8mf4((vint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i8mf8((vint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i16m1(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i16m1((vint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i16m2(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i16m2((vint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i16m4(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i16m4((vint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i16mf2((vint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i16mf4((vint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i32m1(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i32m1((vint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i32m2(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i32m2((vint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i32m4(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i32m4((vint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i32mf2((vint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i64m4((int64_t *)(op0), (vuint8mf2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint8mf2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i64m8((int64_t *)(op0), (vuint8m1_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint8m1_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u64m4((uint64_t *)(op0), (vuint8mf2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint8mf2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u64m8((uint64_t *)(op0), (vuint8m1_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint8m1_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i64m4((int64_t *)(op0), (vuint16m1_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint16m1_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i64m8((int64_t *)(op0), (vuint16m2_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint16m2_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u64m4((uint64_t *)(op0), (vuint16m1_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint16m1_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u64m8((uint64_t *)(op0), (vuint16m2_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint16m2_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i64m4((int64_t *)(op0), (vuint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint32m2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i64m8((int64_t *)(op0), (vuint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint32m4_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u64m4((uint64_t *)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint32m2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u64m8((uint64_t *)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint32m4_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i64m4((int64_t *)(op0), (vuint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i64m8((int64_t *)(op0), (vuint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vredsum_vs_i8m1_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i8m1_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i8m1_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i8m1_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i8m2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i8m2_i8m1((vint8m1_t)(op0), (vint8m2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i8m2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i8m2_i8m1_m((vbool4_t)(op0), (vint8m1_t)(op1), (vint8m2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i8m4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i8m4_i8m1((vint8m1_t)(op0), (vint8m4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i8m4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i8m4_i8m1_m((vbool2_t)(op0), (vint8m1_t)(op1), (vint8m4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i8m8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i8m8_i8m1((vint8m1_t)(op0), (vint8m8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i8m8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i8m8_i8m1_m((vbool1_t)(op0), (vint8m1_t)(op1), (vint8m8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i8mf2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i8mf2_i8m1((vint8m1_t)(op0), (vint8mf2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i8mf2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i8mf2_i8m1_m((vbool16_t)(op0), (vint8m1_t)(op1), (vint8mf2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i8mf4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i8mf4_i8m1((vint8m1_t)(op0), (vint8mf4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i8mf4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i8mf4_i8m1_m((vbool32_t)(op0), (vint8m1_t)(op1), (vint8mf4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i8mf8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i8mf8_i8m1((vint8m1_t)(op0), (vint8mf8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i8mf8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i8mf8_i8m1_m((vbool64_t)(op0), (vint8m1_t)(op1), (vint8mf8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i16m1_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i16m1_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i16m1_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i16m1_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i16m2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i16m2_i16m1((vint16m1_t)(op0), (vint16m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i16m2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i16m2_i16m1_m((vbool8_t)(op0), (vint16m1_t)(op1), (vint16m2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i16m4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i16m4_i16m1((vint16m1_t)(op0), (vint16m4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i16m4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i16m4_i16m1_m((vbool4_t)(op0), (vint16m1_t)(op1), (vint16m4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i16m8_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i16m8_i16m1((vint16m1_t)(op0), (vint16m8_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i16m8_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i16m8_i16m1_m((vbool2_t)(op0), (vint16m1_t)(op1), (vint16m8_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i16mf2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i16mf2_i16m1((vint16m1_t)(op0), (vint16mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i16mf2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i16mf2_i16m1_m((vbool32_t)(op0), (vint16m1_t)(op1), (vint16mf2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i16mf4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i16mf4_i16m1((vint16m1_t)(op0), (vint16mf4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i16mf4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i16mf4_i16m1_m((vbool64_t)(op0), (vint16m1_t)(op1), (vint16mf4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i32m1_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i32m1_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i32m1_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i32m1_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i32m2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i32m2_i32m1((vint32m1_t)(op0), (vint32m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i32m2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i32m2_i32m1_m((vbool16_t)(op0), (vint32m1_t)(op1), (vint32m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i32m4_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i32m4_i32m1((vint32m1_t)(op0), (vint32m4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i32m4_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i32m4_i32m1_m((vbool8_t)(op0), (vint32m1_t)(op1), (vint32m4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i32m8_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i32m8_i32m1((vint32m1_t)(op0), (vint32m8_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i32m8_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i32m8_i32m1_m((vbool4_t)(op0), (vint32m1_t)(op1), (vint32m8_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i32mf2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i32mf2_i32m1((vint32m1_t)(op0), (vint32mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i32mf2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i32mf2_i32m1_m((vbool64_t)(op0), (vint32m1_t)(op1), (vint32mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i64m1_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i64m1_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i64m1_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i64m1_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i64m2_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i64m2_i64m1((vint64m1_t)(op0), (vint64m2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i64m2_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i64m2_i64m1_m((vbool32_t)(op0), (vint64m1_t)(op1), (vint64m2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i64m4_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i64m4_i64m1((vint64m1_t)(op0), (vint64m4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i64m4_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i64m4_i64m1_m((vbool16_t)(op0), (vint64m1_t)(op1), (vint64m4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i64m8_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i64m8_i64m1((vint64m1_t)(op0), (vint64m8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i64m8_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i64m8_i64m1_m((vbool8_t)(op0), (vint64m1_t)(op1), (vint64m8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u8m1_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u8m1_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u8m1_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u8m1_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u8m2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u8m2_u8m1((vuint8m1_t)(op0), (vuint8m2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u8m2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u8m2_u8m1_m((vbool4_t)(op0), (vuint8m1_t)(op1), (vuint8m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u8m4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u8m4_u8m1((vuint8m1_t)(op0), (vuint8m4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u8m4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u8m4_u8m1_m((vbool2_t)(op0), (vuint8m1_t)(op1), (vuint8m4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u8m8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u8m8_u8m1((vuint8m1_t)(op0), (vuint8m8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u8m8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u8m8_u8m1_m((vbool1_t)(op0), (vuint8m1_t)(op1), (vuint8m8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u8mf2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u8mf2_u8m1((vuint8m1_t)(op0), (vuint8mf2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u8mf2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u8mf2_u8m1_m((vbool16_t)(op0), (vuint8m1_t)(op1), (vuint8mf2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u8mf4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u8mf4_u8m1((vuint8m1_t)(op0), (vuint8mf4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u8mf4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u8mf4_u8m1_m((vbool32_t)(op0), (vuint8m1_t)(op1), (vuint8mf4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u8mf8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u8mf8_u8m1((vuint8m1_t)(op0), (vuint8mf8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u8mf8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u8mf8_u8m1_m((vbool64_t)(op0), (vuint8m1_t)(op1), (vuint8mf8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u16m1_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u16m1_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u16m1_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u16m1_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u16m2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u16m2_u16m1((vuint16m1_t)(op0), (vuint16m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u16m2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u16m2_u16m1_m((vbool8_t)(op0), (vuint16m1_t)(op1), (vuint16m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u16m4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u16m4_u16m1((vuint16m1_t)(op0), (vuint16m4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u16m4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u16m4_u16m1_m((vbool4_t)(op0), (vuint16m1_t)(op1), (vuint16m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u16m8_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u16m8_u16m1((vuint16m1_t)(op0), (vuint16m8_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u16m8_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u16m8_u16m1_m((vbool2_t)(op0), (vuint16m1_t)(op1), (vuint16m8_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u16mf2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u16mf2_u16m1((vuint16m1_t)(op0), (vuint16mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u16mf2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u16mf2_u16m1_m((vbool32_t)(op0), (vuint16m1_t)(op1), (vuint16mf2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u16mf4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u16mf4_u16m1((vuint16m1_t)(op0), (vuint16mf4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u16mf4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u16mf4_u16m1_m((vbool64_t)(op0), (vuint16m1_t)(op1), (vuint16mf4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u32m1_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u32m1_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u32m1_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u32m1_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u32m2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u32m2_u32m1((vuint32m1_t)(op0), (vuint32m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u32m2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u32m2_u32m1_m((vbool16_t)(op0), (vuint32m1_t)(op1), (vuint32m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u32m4_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u32m4_u32m1((vuint32m1_t)(op0), (vuint32m4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u32m4_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u32m4_u32m1_m((vbool8_t)(op0), (vuint32m1_t)(op1), (vuint32m4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u32m8_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u32m8_u32m1((vuint32m1_t)(op0), (vuint32m8_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u32m8_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u32m8_u32m1_m((vbool4_t)(op0), (vuint32m1_t)(op1), (vuint32m8_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u32mf2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u32mf2_u32m1((vuint32m1_t)(op0), (vuint32mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u32mf2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u32mf2_u32m1_m((vbool64_t)(op0), (vuint32m1_t)(op1), (vuint32mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u64m1_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u64m1_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u64m1_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u64m1_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u64m2_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u64m2_u64m1((vuint64m1_t)(op0), (vuint64m2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u64m2_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u64m2_u64m1_m((vbool32_t)(op0), (vuint64m1_t)(op1), (vuint64m2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u64m4_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u64m4_u64m1((vuint64m1_t)(op0), (vuint64m4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u64m4_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u64m4_u64m1_m((vbool16_t)(op0), (vuint64m1_t)(op1), (vuint64m4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u64m8_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u64m8_u64m1((vuint64m1_t)(op0), (vuint64m8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u64m8_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u64m8_u64m1_m((vbool8_t)(op0), (vuint64m1_t)(op1), (vuint64m8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u8m1_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u8m1_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u8m1_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u8m1_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u8m2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u8m2_u8m1((vuint8m1_t)(op0), (vuint8m2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u8m2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u8m2_u8m1_m((vbool4_t)(op0), (vuint8m1_t)(op1), (vuint8m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u8m4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u8m4_u8m1((vuint8m1_t)(op0), (vuint8m4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u8m4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u8m4_u8m1_m((vbool2_t)(op0), (vuint8m1_t)(op1), (vuint8m4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u8m8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u8m8_u8m1((vuint8m1_t)(op0), (vuint8m8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u8m8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u8m8_u8m1_m((vbool1_t)(op0), (vuint8m1_t)(op1), (vuint8m8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u8mf2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u8mf2_u8m1((vuint8m1_t)(op0), (vuint8mf2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u8mf2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u8mf2_u8m1_m((vbool16_t)(op0), (vuint8m1_t)(op1), (vuint8mf2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u8mf4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u8mf4_u8m1((vuint8m1_t)(op0), (vuint8mf4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u8mf4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u8mf4_u8m1_m((vbool32_t)(op0), (vuint8m1_t)(op1), (vuint8mf4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u8mf8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u8mf8_u8m1((vuint8m1_t)(op0), (vuint8mf8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u8mf8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u8mf8_u8m1_m((vbool64_t)(op0), (vuint8m1_t)(op1), (vuint8mf8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u16m1_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u16m1_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u16m1_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u16m1_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u16m2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u16m2_u16m1((vuint16m1_t)(op0), (vuint16m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u16m2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u16m2_u16m1_m((vbool8_t)(op0), (vuint16m1_t)(op1), (vuint16m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u16m4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u16m4_u16m1((vuint16m1_t)(op0), (vuint16m4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u16m4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u16m4_u16m1_m((vbool4_t)(op0), (vuint16m1_t)(op1), (vuint16m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u16m8_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u16m8_u16m1((vuint16m1_t)(op0), (vuint16m8_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u16m8_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u16m8_u16m1_m((vbool2_t)(op0), (vuint16m1_t)(op1), (vuint16m8_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u16mf2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u16mf2_u16m1((vuint16m1_t)(op0), (vuint16mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u16mf2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u16mf2_u16m1_m((vbool32_t)(op0), (vuint16m1_t)(op1), (vuint16mf2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u16mf4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u16mf4_u16m1((vuint16m1_t)(op0), (vuint16mf4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u16mf4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u16mf4_u16m1_m((vbool64_t)(op0), (vuint16m1_t)(op1), (vuint16mf4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u32m1_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u32m1_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u32m1_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u32m1_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u32m2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u32m2_u32m1((vuint32m1_t)(op0), (vuint32m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u32m2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u32m2_u32m1_m((vbool16_t)(op0), (vuint32m1_t)(op1), (vuint32m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u32m4_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u32m4_u32m1((vuint32m1_t)(op0), (vuint32m4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u32m4_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u32m4_u32m1_m((vbool8_t)(op0), (vuint32m1_t)(op1), (vuint32m4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u32m8_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u32m8_u32m1((vuint32m1_t)(op0), (vuint32m8_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u32m8_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u32m8_u32m1_m((vbool4_t)(op0), (vuint32m1_t)(op1), (vuint32m8_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u32mf2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u32mf2_u32m1((vuint32m1_t)(op0), (vuint32mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u32mf2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u32mf2_u32m1_m((vbool64_t)(op0), (vuint32m1_t)(op1), (vuint32mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u64m1_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u64m1_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u64m1_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u64m1_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u64m2_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u64m2_u64m1((vuint64m1_t)(op0), (vuint64m2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u64m2_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u64m2_u64m1_m((vbool32_t)(op0), (vuint64m1_t)(op1), (vuint64m2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u64m4_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u64m4_u64m1((vuint64m1_t)(op0), (vuint64m4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u64m4_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u64m4_u64m1_m((vbool16_t)(op0), (vuint64m1_t)(op1), (vuint64m4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u64m8_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u64m8_u64m1((vuint64m1_t)(op0), (vuint64m8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u64m8_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u64m8_u64m1_m((vbool8_t)(op0), (vuint64m1_t)(op1), (vuint64m8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i8m1_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i8m1_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i8m1_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i8m1_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i8m2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i8m2_i8m1((vint8m1_t)(op0), (vint8m2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i8m2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i8m2_i8m1_m((vbool4_t)(op0), (vint8m1_t)(op1), (vint8m2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i8m4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i8m4_i8m1((vint8m1_t)(op0), (vint8m4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i8m4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i8m4_i8m1_m((vbool2_t)(op0), (vint8m1_t)(op1), (vint8m4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i8m8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i8m8_i8m1((vint8m1_t)(op0), (vint8m8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i8m8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i8m8_i8m1_m((vbool1_t)(op0), (vint8m1_t)(op1), (vint8m8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i8mf2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i8mf2_i8m1((vint8m1_t)(op0), (vint8mf2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i8mf2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i8mf2_i8m1_m((vbool16_t)(op0), (vint8m1_t)(op1), (vint8mf2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i8mf4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i8mf4_i8m1((vint8m1_t)(op0), (vint8mf4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i8mf4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i8mf4_i8m1_m((vbool32_t)(op0), (vint8m1_t)(op1), (vint8mf4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i8mf8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i8mf8_i8m1((vint8m1_t)(op0), (vint8mf8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i8mf8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i8mf8_i8m1_m((vbool64_t)(op0), (vint8m1_t)(op1), (vint8mf8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i16m1_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i16m1_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i16m1_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i16m1_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i16m2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i16m2_i16m1((vint16m1_t)(op0), (vint16m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i16m2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i16m2_i16m1_m((vbool8_t)(op0), (vint16m1_t)(op1), (vint16m2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i16m4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i16m4_i16m1((vint16m1_t)(op0), (vint16m4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i16m4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i16m4_i16m1_m((vbool4_t)(op0), (vint16m1_t)(op1), (vint16m4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i16m8_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i16m8_i16m1((vint16m1_t)(op0), (vint16m8_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i16m8_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i16m8_i16m1_m((vbool2_t)(op0), (vint16m1_t)(op1), (vint16m8_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i16mf2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i16mf2_i16m1((vint16m1_t)(op0), (vint16mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i16mf2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i16mf2_i16m1_m((vbool32_t)(op0), (vint16m1_t)(op1), (vint16mf2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i16mf4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i16mf4_i16m1((vint16m1_t)(op0), (vint16mf4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i16mf4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i16mf4_i16m1_m((vbool64_t)(op0), (vint16m1_t)(op1), (vint16mf4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i32m1_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i32m1_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i32m1_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i32m1_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i32m2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i32m2_i32m1((vint32m1_t)(op0), (vint32m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i32m2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i32m2_i32m1_m((vbool16_t)(op0), (vint32m1_t)(op1), (vint32m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i32m4_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i32m4_i32m1((vint32m1_t)(op0), (vint32m4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i32m4_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i32m4_i32m1_m((vbool8_t)(op0), (vint32m1_t)(op1), (vint32m4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i32m8_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i32m8_i32m1((vint32m1_t)(op0), (vint32m8_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i32m8_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i32m8_i32m1_m((vbool4_t)(op0), (vint32m1_t)(op1), (vint32m8_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i32mf2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i32mf2_i32m1((vint32m1_t)(op0), (vint32mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i32mf2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i32mf2_i32m1_m((vbool64_t)(op0), (vint32m1_t)(op1), (vint32mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i64m1_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i64m1_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i64m1_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i64m1_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i64m2_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i64m2_i64m1((vint64m1_t)(op0), (vint64m2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i64m2_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i64m2_i64m1_m((vbool32_t)(op0), (vint64m1_t)(op1), (vint64m2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i64m4_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i64m4_i64m1((vint64m1_t)(op0), (vint64m4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i64m4_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i64m4_i64m1_m((vbool16_t)(op0), (vint64m1_t)(op1), (vint64m4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i64m8_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i64m8_i64m1((vint64m1_t)(op0), (vint64m8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i64m8_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i64m8_i64m1_m((vbool8_t)(op0), (vint64m1_t)(op1), (vint64m8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u8m1_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u8m1_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u8m1_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u8m1_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u8m2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u8m2_u8m1((vuint8m1_t)(op0), (vuint8m2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u8m2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u8m2_u8m1_m((vbool4_t)(op0), (vuint8m1_t)(op1), (vuint8m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u8m4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u8m4_u8m1((vuint8m1_t)(op0), (vuint8m4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u8m4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u8m4_u8m1_m((vbool2_t)(op0), (vuint8m1_t)(op1), (vuint8m4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u8m8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u8m8_u8m1((vuint8m1_t)(op0), (vuint8m8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u8m8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u8m8_u8m1_m((vbool1_t)(op0), (vuint8m1_t)(op1), (vuint8m8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u8mf2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u8mf2_u8m1((vuint8m1_t)(op0), (vuint8mf2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u8mf2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u8mf2_u8m1_m((vbool16_t)(op0), (vuint8m1_t)(op1), (vuint8mf2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u8mf4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u8mf4_u8m1((vuint8m1_t)(op0), (vuint8mf4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u8mf4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u8mf4_u8m1_m((vbool32_t)(op0), (vuint8m1_t)(op1), (vuint8mf4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u8mf8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u8mf8_u8m1((vuint8m1_t)(op0), (vuint8mf8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u8mf8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u8mf8_u8m1_m((vbool64_t)(op0), (vuint8m1_t)(op1), (vuint8mf8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u16m1_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u16m1_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u16m1_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u16m1_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u16m2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u16m2_u16m1((vuint16m1_t)(op0), (vuint16m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u16m2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u16m2_u16m1_m((vbool8_t)(op0), (vuint16m1_t)(op1), (vuint16m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u16m4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u16m4_u16m1((vuint16m1_t)(op0), (vuint16m4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u16m4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u16m4_u16m1_m((vbool4_t)(op0), (vuint16m1_t)(op1), (vuint16m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u16m8_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u16m8_u16m1((vuint16m1_t)(op0), (vuint16m8_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u16m8_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u16m8_u16m1_m((vbool2_t)(op0), (vuint16m1_t)(op1), (vuint16m8_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u16mf2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u16mf2_u16m1((vuint16m1_t)(op0), (vuint16mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u16mf2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u16mf2_u16m1_m((vbool32_t)(op0), (vuint16m1_t)(op1), (vuint16mf2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u16mf4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u16mf4_u16m1((vuint16m1_t)(op0), (vuint16mf4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u16mf4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u16mf4_u16m1_m((vbool64_t)(op0), (vuint16m1_t)(op1), (vuint16mf4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u32m1_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u32m1_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u32m1_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u32m1_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u32m2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u32m2_u32m1((vuint32m1_t)(op0), (vuint32m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u32m2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u32m2_u32m1_m((vbool16_t)(op0), (vuint32m1_t)(op1), (vuint32m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u32m4_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u32m4_u32m1((vuint32m1_t)(op0), (vuint32m4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u32m4_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u32m4_u32m1_m((vbool8_t)(op0), (vuint32m1_t)(op1), (vuint32m4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u32m8_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u32m8_u32m1((vuint32m1_t)(op0), (vuint32m8_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u32m8_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u32m8_u32m1_m((vbool4_t)(op0), (vuint32m1_t)(op1), (vuint32m8_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u32mf2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u32mf2_u32m1((vuint32m1_t)(op0), (vuint32mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u32mf2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u32mf2_u32m1_m((vbool64_t)(op0), (vuint32m1_t)(op1), (vuint32mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u64m1_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u64m1_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u64m1_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u64m1_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u64m2_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u64m2_u64m1((vuint64m1_t)(op0), (vuint64m2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u64m2_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u64m2_u64m1_m((vbool32_t)(op0), (vuint64m1_t)(op1), (vuint64m2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u64m4_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u64m4_u64m1((vuint64m1_t)(op0), (vuint64m4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u64m4_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u64m4_u64m1_m((vbool16_t)(op0), (vuint64m1_t)(op1), (vuint64m4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u64m8_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u64m8_u64m1((vuint64m1_t)(op0), (vuint64m8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u64m8_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u64m8_u64m1_m((vbool8_t)(op0), (vuint64m1_t)(op1), (vuint64m8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i8m1_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i8m1_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i8m1_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i8m1_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i8m2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i8m2_i8m1((vint8m1_t)(op0), (vint8m2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i8m2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i8m2_i8m1_m((vbool4_t)(op0), (vint8m1_t)(op1), (vint8m2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i8m4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i8m4_i8m1((vint8m1_t)(op0), (vint8m4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i8m4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i8m4_i8m1_m((vbool2_t)(op0), (vint8m1_t)(op1), (vint8m4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i8m8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i8m8_i8m1((vint8m1_t)(op0), (vint8m8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i8m8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i8m8_i8m1_m((vbool1_t)(op0), (vint8m1_t)(op1), (vint8m8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i8mf2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i8mf2_i8m1((vint8m1_t)(op0), (vint8mf2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i8mf2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i8mf2_i8m1_m((vbool16_t)(op0), (vint8m1_t)(op1), (vint8mf2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i8mf4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i8mf4_i8m1((vint8m1_t)(op0), (vint8mf4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i8mf4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i8mf4_i8m1_m((vbool32_t)(op0), (vint8m1_t)(op1), (vint8mf4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i8mf8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i8mf8_i8m1((vint8m1_t)(op0), (vint8mf8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i8mf8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i8mf8_i8m1_m((vbool64_t)(op0), (vint8m1_t)(op1), (vint8mf8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i16m1_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i16m1_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i16m1_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i16m1_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i16m2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i16m2_i16m1((vint16m1_t)(op0), (vint16m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i16m2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i16m2_i16m1_m((vbool8_t)(op0), (vint16m1_t)(op1), (vint16m2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i16m4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i16m4_i16m1((vint16m1_t)(op0), (vint16m4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i16m4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i16m4_i16m1_m((vbool4_t)(op0), (vint16m1_t)(op1), (vint16m4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i16m8_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i16m8_i16m1((vint16m1_t)(op0), (vint16m8_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i16m8_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i16m8_i16m1_m((vbool2_t)(op0), (vint16m1_t)(op1), (vint16m8_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i16mf2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i16mf2_i16m1((vint16m1_t)(op0), (vint16mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i16mf2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i16mf2_i16m1_m((vbool32_t)(op0), (vint16m1_t)(op1), (vint16mf2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i16mf4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i16mf4_i16m1((vint16m1_t)(op0), (vint16mf4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i16mf4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i16mf4_i16m1_m((vbool64_t)(op0), (vint16m1_t)(op1), (vint16mf4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i32m1_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i32m1_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i32m1_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i32m1_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i32m2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i32m2_i32m1((vint32m1_t)(op0), (vint32m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i32m2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i32m2_i32m1_m((vbool16_t)(op0), (vint32m1_t)(op1), (vint32m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i32m4_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i32m4_i32m1((vint32m1_t)(op0), (vint32m4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i32m4_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i32m4_i32m1_m((vbool8_t)(op0), (vint32m1_t)(op1), (vint32m4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i32m8_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i32m8_i32m1((vint32m1_t)(op0), (vint32m8_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i32m8_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i32m8_i32m1_m((vbool4_t)(op0), (vint32m1_t)(op1), (vint32m8_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i32mf2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i32mf2_i32m1((vint32m1_t)(op0), (vint32mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i32mf2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i32mf2_i32m1_m((vbool64_t)(op0), (vint32m1_t)(op1), (vint32mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i64m1_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i64m1_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i64m1_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i64m1_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i64m2_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i64m2_i64m1((vint64m1_t)(op0), (vint64m2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i64m2_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i64m2_i64m1_m((vbool32_t)(op0), (vint64m1_t)(op1), (vint64m2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i64m4_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i64m4_i64m1((vint64m1_t)(op0), (vint64m4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i64m4_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i64m4_i64m1_m((vbool16_t)(op0), (vint64m1_t)(op1), (vint64m4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i64m8_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i64m8_i64m1((vint64m1_t)(op0), (vint64m8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i64m8_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i64m8_i64m1_m((vbool8_t)(op0), (vint64m1_t)(op1), (vint64m8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i8m1_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i8m1_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i8m1_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i8m1_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i8m2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i8m2_i8m1((vint8m1_t)(op0), (vint8m2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i8m2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i8m2_i8m1_m((vbool4_t)(op0), (vint8m1_t)(op1), (vint8m2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i8m4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i8m4_i8m1((vint8m1_t)(op0), (vint8m4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i8m4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i8m4_i8m1_m((vbool2_t)(op0), (vint8m1_t)(op1), (vint8m4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i8m8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i8m8_i8m1((vint8m1_t)(op0), (vint8m8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i8m8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i8m8_i8m1_m((vbool1_t)(op0), (vint8m1_t)(op1), (vint8m8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i8mf2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i8mf2_i8m1((vint8m1_t)(op0), (vint8mf2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i8mf2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i8mf2_i8m1_m((vbool16_t)(op0), (vint8m1_t)(op1), (vint8mf2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i8mf4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i8mf4_i8m1((vint8m1_t)(op0), (vint8mf4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i8mf4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i8mf4_i8m1_m((vbool32_t)(op0), (vint8m1_t)(op1), (vint8mf4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i8mf8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i8mf8_i8m1((vint8m1_t)(op0), (vint8mf8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i8mf8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i8mf8_i8m1_m((vbool64_t)(op0), (vint8m1_t)(op1), (vint8mf8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i16m1_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i16m1_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i16m1_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i16m1_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i16m2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i16m2_i16m1((vint16m1_t)(op0), (vint16m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i16m2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i16m2_i16m1_m((vbool8_t)(op0), (vint16m1_t)(op1), (vint16m2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i16m4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i16m4_i16m1((vint16m1_t)(op0), (vint16m4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i16m4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i16m4_i16m1_m((vbool4_t)(op0), (vint16m1_t)(op1), (vint16m4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i16m8_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i16m8_i16m1((vint16m1_t)(op0), (vint16m8_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i16m8_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i16m8_i16m1_m((vbool2_t)(op0), (vint16m1_t)(op1), (vint16m8_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i16mf2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i16mf2_i16m1((vint16m1_t)(op0), (vint16mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i16mf2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i16mf2_i16m1_m((vbool32_t)(op0), (vint16m1_t)(op1), (vint16mf2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i16mf4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i16mf4_i16m1((vint16m1_t)(op0), (vint16mf4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i16mf4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i16mf4_i16m1_m((vbool64_t)(op0), (vint16m1_t)(op1), (vint16mf4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i32m1_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i32m1_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i32m1_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i32m1_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i32m2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i32m2_i32m1((vint32m1_t)(op0), (vint32m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i32m2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i32m2_i32m1_m((vbool16_t)(op0), (vint32m1_t)(op1), (vint32m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i32m4_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i32m4_i32m1((vint32m1_t)(op0), (vint32m4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i32m4_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i32m4_i32m1_m((vbool8_t)(op0), (vint32m1_t)(op1), (vint32m4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i32m8_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i32m8_i32m1((vint32m1_t)(op0), (vint32m8_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i32m8_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i32m8_i32m1_m((vbool4_t)(op0), (vint32m1_t)(op1), (vint32m8_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i32mf2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i32mf2_i32m1((vint32m1_t)(op0), (vint32mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i32mf2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i32mf2_i32m1_m((vbool64_t)(op0), (vint32m1_t)(op1), (vint32mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i64m1_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i64m1_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i64m1_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i64m1_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i64m2_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i64m2_i64m1((vint64m1_t)(op0), (vint64m2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i64m2_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i64m2_i64m1_m((vbool32_t)(op0), (vint64m1_t)(op1), (vint64m2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i64m4_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i64m4_i64m1((vint64m1_t)(op0), (vint64m4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i64m4_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i64m4_i64m1_m((vbool16_t)(op0), (vint64m1_t)(op1), (vint64m4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i64m8_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i64m8_i64m1((vint64m1_t)(op0), (vint64m8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i64m8_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i64m8_i64m1_m((vbool8_t)(op0), (vint64m1_t)(op1), (vint64m8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u8m1_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u8m1_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u8m1_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u8m1_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u8m2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u8m2_u8m1((vuint8m1_t)(op0), (vuint8m2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u8m2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u8m2_u8m1_m((vbool4_t)(op0), (vuint8m1_t)(op1), (vuint8m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u8m4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u8m4_u8m1((vuint8m1_t)(op0), (vuint8m4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u8m4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u8m4_u8m1_m((vbool2_t)(op0), (vuint8m1_t)(op1), (vuint8m4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u8m8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u8m8_u8m1((vuint8m1_t)(op0), (vuint8m8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u8m8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u8m8_u8m1_m((vbool1_t)(op0), (vuint8m1_t)(op1), (vuint8m8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u8mf2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u8mf2_u8m1((vuint8m1_t)(op0), (vuint8mf2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u8mf2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u8mf2_u8m1_m((vbool16_t)(op0), (vuint8m1_t)(op1), (vuint8mf2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u8mf4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u8mf4_u8m1((vuint8m1_t)(op0), (vuint8mf4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u8mf4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u8mf4_u8m1_m((vbool32_t)(op0), (vuint8m1_t)(op1), (vuint8mf4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u8mf8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u8mf8_u8m1((vuint8m1_t)(op0), (vuint8mf8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u8mf8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u8mf8_u8m1_m((vbool64_t)(op0), (vuint8m1_t)(op1), (vuint8mf8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u16m1_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u16m1_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u16m1_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u16m1_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u16m2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u16m2_u16m1((vuint16m1_t)(op0), (vuint16m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u16m2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u16m2_u16m1_m((vbool8_t)(op0), (vuint16m1_t)(op1), (vuint16m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u16m4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u16m4_u16m1((vuint16m1_t)(op0), (vuint16m4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u16m4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u16m4_u16m1_m((vbool4_t)(op0), (vuint16m1_t)(op1), (vuint16m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u16m8_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u16m8_u16m1((vuint16m1_t)(op0), (vuint16m8_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u16m8_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u16m8_u16m1_m((vbool2_t)(op0), (vuint16m1_t)(op1), (vuint16m8_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u16mf2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u16mf2_u16m1((vuint16m1_t)(op0), (vuint16mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u16mf2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u16mf2_u16m1_m((vbool32_t)(op0), (vuint16m1_t)(op1), (vuint16mf2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u16mf4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u16mf4_u16m1((vuint16m1_t)(op0), (vuint16mf4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u16mf4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u16mf4_u16m1_m((vbool64_t)(op0), (vuint16m1_t)(op1), (vuint16mf4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u32m1_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u32m1_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u32m1_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u32m1_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u32m2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u32m2_u32m1((vuint32m1_t)(op0), (vuint32m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u32m2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u32m2_u32m1_m((vbool16_t)(op0), (vuint32m1_t)(op1), (vuint32m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u32m4_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u32m4_u32m1((vuint32m1_t)(op0), (vuint32m4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u32m4_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u32m4_u32m1_m((vbool8_t)(op0), (vuint32m1_t)(op1), (vuint32m4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u32m8_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u32m8_u32m1((vuint32m1_t)(op0), (vuint32m8_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u32m8_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u32m8_u32m1_m((vbool4_t)(op0), (vuint32m1_t)(op1), (vuint32m8_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u32mf2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u32mf2_u32m1((vuint32m1_t)(op0), (vuint32mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u32mf2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u32mf2_u32m1_m((vbool64_t)(op0), (vuint32m1_t)(op1), (vuint32mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u64m1_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u64m1_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u64m1_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u64m1_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u64m2_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u64m2_u64m1((vuint64m1_t)(op0), (vuint64m2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u64m2_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u64m2_u64m1_m((vbool32_t)(op0), (vuint64m1_t)(op1), (vuint64m2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u64m4_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u64m4_u64m1((vuint64m1_t)(op0), (vuint64m4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u64m4_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u64m4_u64m1_m((vbool16_t)(op0), (vuint64m1_t)(op1), (vuint64m4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u64m8_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u64m8_u64m1((vuint64m1_t)(op0), (vuint64m8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u64m8_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u64m8_u64m1_m((vbool8_t)(op0), (vuint64m1_t)(op1), (vuint64m8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u64m8((uint64_t *)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vredor_vs_i8m1_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i8m1_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i8m1_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i8m1_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i8m2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i8m2_i8m1((vint8m1_t)(op0), (vint8m2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i8m2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i8m2_i8m1_m((vbool4_t)(op0), (vint8m1_t)(op1), (vint8m2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i8m4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i8m4_i8m1((vint8m1_t)(op0), (vint8m4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i8m4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i8m4_i8m1_m((vbool2_t)(op0), (vint8m1_t)(op1), (vint8m4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i8m8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i8m8_i8m1((vint8m1_t)(op0), (vint8m8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i8m8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i8m8_i8m1_m((vbool1_t)(op0), (vint8m1_t)(op1), (vint8m8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i8mf2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i8mf2_i8m1((vint8m1_t)(op0), (vint8mf2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i8mf2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i8mf2_i8m1_m((vbool16_t)(op0), (vint8m1_t)(op1), (vint8mf2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i8mf4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i8mf4_i8m1((vint8m1_t)(op0), (vint8mf4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i8mf4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i8mf4_i8m1_m((vbool32_t)(op0), (vint8m1_t)(op1), (vint8mf4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i8mf8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i8mf8_i8m1((vint8m1_t)(op0), (vint8mf8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i8mf8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i8mf8_i8m1_m((vbool64_t)(op0), (vint8m1_t)(op1), (vint8mf8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i16m1_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i16m1_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i16m1_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i16m1_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i16m2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i16m2_i16m1((vint16m1_t)(op0), (vint16m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i16m2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i16m2_i16m1_m((vbool8_t)(op0), (vint16m1_t)(op1), (vint16m2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i16m4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i16m4_i16m1((vint16m1_t)(op0), (vint16m4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i16m4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i16m4_i16m1_m((vbool4_t)(op0), (vint16m1_t)(op1), (vint16m4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i16m8_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i16m8_i16m1((vint16m1_t)(op0), (vint16m8_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i16m8_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i16m8_i16m1_m((vbool2_t)(op0), (vint16m1_t)(op1), (vint16m8_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i16mf2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i16mf2_i16m1((vint16m1_t)(op0), (vint16mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i16mf2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i16mf2_i16m1_m((vbool32_t)(op0), (vint16m1_t)(op1), (vint16mf2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i16mf4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i16mf4_i16m1((vint16m1_t)(op0), (vint16mf4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i16mf4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i16mf4_i16m1_m((vbool64_t)(op0), (vint16m1_t)(op1), (vint16mf4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i32m1_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i32m1_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i32m1_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i32m1_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i32m2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i32m2_i32m1((vint32m1_t)(op0), (vint32m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i32m2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i32m2_i32m1_m((vbool16_t)(op0), (vint32m1_t)(op1), (vint32m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i32m4_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i32m4_i32m1((vint32m1_t)(op0), (vint32m4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i32m4_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i32m4_i32m1_m((vbool8_t)(op0), (vint32m1_t)(op1), (vint32m4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i32m8_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i32m8_i32m1((vint32m1_t)(op0), (vint32m8_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i32m8_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i32m8_i32m1_m((vbool4_t)(op0), (vint32m1_t)(op1), (vint32m8_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i32mf2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i32mf2_i32m1((vint32m1_t)(op0), (vint32mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i32mf2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i32mf2_i32m1_m((vbool64_t)(op0), (vint32m1_t)(op1), (vint32mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i64m1_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i64m1_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i64m1_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i64m1_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i64m2_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i64m2_i64m1((vint64m1_t)(op0), (vint64m2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i64m2_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i64m2_i64m1_m((vbool32_t)(op0), (vint64m1_t)(op1), (vint64m2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i64m4_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i64m4_i64m1((vint64m1_t)(op0), (vint64m4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i64m4_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i64m4_i64m1_m((vbool16_t)(op0), (vint64m1_t)(op1), (vint64m4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i64m8_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i64m8_i64m1((vint64m1_t)(op0), (vint64m8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i64m8_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i64m8_i64m1_m((vbool8_t)(op0), (vint64m1_t)(op1), (vint64m8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u8m1_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u8m1_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u8m1_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u8m1_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u8m2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u8m2_u8m1((vuint8m1_t)(op0), (vuint8m2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u8m2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u8m2_u8m1_m((vbool4_t)(op0), (vuint8m1_t)(op1), (vuint8m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u8m4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u8m4_u8m1((vuint8m1_t)(op0), (vuint8m4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u8m4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u8m4_u8m1_m((vbool2_t)(op0), (vuint8m1_t)(op1), (vuint8m4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u8m8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u8m8_u8m1((vuint8m1_t)(op0), (vuint8m8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u8m8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u8m8_u8m1_m((vbool1_t)(op0), (vuint8m1_t)(op1), (vuint8m8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u8mf2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u8mf2_u8m1((vuint8m1_t)(op0), (vuint8mf2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u8mf2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u8mf2_u8m1_m((vbool16_t)(op0), (vuint8m1_t)(op1), (vuint8mf2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u8mf4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u8mf4_u8m1((vuint8m1_t)(op0), (vuint8mf4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u8mf4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u8mf4_u8m1_m((vbool32_t)(op0), (vuint8m1_t)(op1), (vuint8mf4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u8mf8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u8mf8_u8m1((vuint8m1_t)(op0), (vuint8mf8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u8mf8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u8mf8_u8m1_m((vbool64_t)(op0), (vuint8m1_t)(op1), (vuint8mf8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u16m1_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u16m1_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u16m1_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u16m1_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u16m2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u16m2_u16m1((vuint16m1_t)(op0), (vuint16m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u16m2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u16m2_u16m1_m((vbool8_t)(op0), (vuint16m1_t)(op1), (vuint16m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u16m4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u16m4_u16m1((vuint16m1_t)(op0), (vuint16m4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u16m4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u16m4_u16m1_m((vbool4_t)(op0), (vuint16m1_t)(op1), (vuint16m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u16m8_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u16m8_u16m1((vuint16m1_t)(op0), (vuint16m8_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u16m8_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u16m8_u16m1_m((vbool2_t)(op0), (vuint16m1_t)(op1), (vuint16m8_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u16mf2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u16mf2_u16m1((vuint16m1_t)(op0), (vuint16mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u16mf2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u16mf2_u16m1_m((vbool32_t)(op0), (vuint16m1_t)(op1), (vuint16mf2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u16mf4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u16mf4_u16m1((vuint16m1_t)(op0), (vuint16mf4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u16mf4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u16mf4_u16m1_m((vbool64_t)(op0), (vuint16m1_t)(op1), (vuint16mf4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u32m1_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u32m1_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u32m1_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u32m1_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u32m2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u32m2_u32m1((vuint32m1_t)(op0), (vuint32m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u32m2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u32m2_u32m1_m((vbool16_t)(op0), (vuint32m1_t)(op1), (vuint32m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u32m4_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u32m4_u32m1((vuint32m1_t)(op0), (vuint32m4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u32m4_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u32m4_u32m1_m((vbool8_t)(op0), (vuint32m1_t)(op1), (vuint32m4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u32m8_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u32m8_u32m1((vuint32m1_t)(op0), (vuint32m8_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u32m8_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u32m8_u32m1_m((vbool4_t)(op0), (vuint32m1_t)(op1), (vuint32m8_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u32mf2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u32mf2_u32m1((vuint32m1_t)(op0), (vuint32mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u32mf2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u32mf2_u32m1_m((vbool64_t)(op0), (vuint32m1_t)(op1), (vuint32mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u64m1_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u64m1_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u64m1_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u64m1_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u64m2_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u64m2_u64m1((vuint64m1_t)(op0), (vuint64m2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u64m2_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u64m2_u64m1_m((vbool32_t)(op0), (vuint64m1_t)(op1), (vuint64m2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u64m4_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u64m4_u64m1((vuint64m1_t)(op0), (vuint64m4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u64m4_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u64m4_u64m1_m((vbool16_t)(op0), (vuint64m1_t)(op1), (vuint64m4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u64m8_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u64m8_u64m1((vuint64m1_t)(op0), (vuint64m8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u64m8_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u64m8_u64m1_m((vbool8_t)(op0), (vuint64m1_t)(op1), (vuint64m8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i8m1_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i8m1_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i8m1_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i8m1_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i8m2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i8m2_i8m1((vint8m1_t)(op0), (vint8m2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i8m2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i8m2_i8m1_m((vbool4_t)(op0), (vint8m1_t)(op1), (vint8m2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i8m4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i8m4_i8m1((vint8m1_t)(op0), (vint8m4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i8m4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i8m4_i8m1_m((vbool2_t)(op0), (vint8m1_t)(op1), (vint8m4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i8m8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i8m8_i8m1((vint8m1_t)(op0), (vint8m8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i8m8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i8m8_i8m1_m((vbool1_t)(op0), (vint8m1_t)(op1), (vint8m8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i8mf2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i8mf2_i8m1((vint8m1_t)(op0), (vint8mf2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i8mf2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i8mf2_i8m1_m((vbool16_t)(op0), (vint8m1_t)(op1), (vint8mf2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i8mf4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i8mf4_i8m1((vint8m1_t)(op0), (vint8mf4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i8mf4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i8mf4_i8m1_m((vbool32_t)(op0), (vint8m1_t)(op1), (vint8mf4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i8mf8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i8mf8_i8m1((vint8m1_t)(op0), (vint8mf8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i8mf8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i8mf8_i8m1_m((vbool64_t)(op0), (vint8m1_t)(op1), (vint8mf8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i16m1_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i16m1_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i16m1_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i16m1_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i16m2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i16m2_i16m1((vint16m1_t)(op0), (vint16m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i16m2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i16m2_i16m1_m((vbool8_t)(op0), (vint16m1_t)(op1), (vint16m2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i16m4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i16m4_i16m1((vint16m1_t)(op0), (vint16m4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i16m4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i16m4_i16m1_m((vbool4_t)(op0), (vint16m1_t)(op1), (vint16m4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i16m8_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i16m8_i16m1((vint16m1_t)(op0), (vint16m8_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i16m8_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i16m8_i16m1_m((vbool2_t)(op0), (vint16m1_t)(op1), (vint16m8_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i16mf2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i16mf2_i16m1((vint16m1_t)(op0), (vint16mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i16mf2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i16mf2_i16m1_m((vbool32_t)(op0), (vint16m1_t)(op1), (vint16mf2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i16mf4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i16mf4_i16m1((vint16m1_t)(op0), (vint16mf4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i16mf4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i16mf4_i16m1_m((vbool64_t)(op0), (vint16m1_t)(op1), (vint16mf4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i32m1_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i32m1_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i32m1_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i32m1_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i32m2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i32m2_i32m1((vint32m1_t)(op0), (vint32m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i32m2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i32m2_i32m1_m((vbool16_t)(op0), (vint32m1_t)(op1), (vint32m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i32m4_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i32m4_i32m1((vint32m1_t)(op0), (vint32m4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i32m4_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i32m4_i32m1_m((vbool8_t)(op0), (vint32m1_t)(op1), (vint32m4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i32m8_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i32m8_i32m1((vint32m1_t)(op0), (vint32m8_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i32m8_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i32m8_i32m1_m((vbool4_t)(op0), (vint32m1_t)(op1), (vint32m8_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i32mf2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i32mf2_i32m1((vint32m1_t)(op0), (vint32mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i32mf2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i32mf2_i32m1_m((vbool64_t)(op0), (vint32m1_t)(op1), (vint32mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i64m1_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i64m1_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i64m1_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i64m1_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i64m2_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i64m2_i64m1((vint64m1_t)(op0), (vint64m2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i64m2_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i64m2_i64m1_m((vbool32_t)(op0), (vint64m1_t)(op1), (vint64m2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i64m4_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i64m4_i64m1((vint64m1_t)(op0), (vint64m4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i64m4_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i64m4_i64m1_m((vbool16_t)(op0), (vint64m1_t)(op1), (vint64m4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i64m8_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i64m8_i64m1((vint64m1_t)(op0), (vint64m8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i64m8_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i64m8_i64m1_m((vbool8_t)(op0), (vint64m1_t)(op1), (vint64m8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u8m1_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u8m1_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u8m1_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u8m1_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u8m2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u8m2_u8m1((vuint8m1_t)(op0), (vuint8m2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u8m2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u8m2_u8m1_m((vbool4_t)(op0), (vuint8m1_t)(op1), (vuint8m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u8m4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u8m4_u8m1((vuint8m1_t)(op0), (vuint8m4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u8m4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u8m4_u8m1_m((vbool2_t)(op0), (vuint8m1_t)(op1), (vuint8m4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u8m8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u8m8_u8m1((vuint8m1_t)(op0), (vuint8m8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u8m8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u8m8_u8m1_m((vbool1_t)(op0), (vuint8m1_t)(op1), (vuint8m8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u8mf2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u8mf2_u8m1((vuint8m1_t)(op0), (vuint8mf2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u8mf2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u8mf2_u8m1_m((vbool16_t)(op0), (vuint8m1_t)(op1), (vuint8mf2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u8mf4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u8mf4_u8m1((vuint8m1_t)(op0), (vuint8mf4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u8mf4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u8mf4_u8m1_m((vbool32_t)(op0), (vuint8m1_t)(op1), (vuint8mf4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u8mf8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u8mf8_u8m1((vuint8m1_t)(op0), (vuint8mf8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u8mf8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u8mf8_u8m1_m((vbool64_t)(op0), (vuint8m1_t)(op1), (vuint8mf8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u16m1_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u16m1_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u16m1_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u16m1_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u16m2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u16m2_u16m1((vuint16m1_t)(op0), (vuint16m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u16m2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u16m2_u16m1_m((vbool8_t)(op0), (vuint16m1_t)(op1), (vuint16m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u16m4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u16m4_u16m1((vuint16m1_t)(op0), (vuint16m4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u16m4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u16m4_u16m1_m((vbool4_t)(op0), (vuint16m1_t)(op1), (vuint16m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u16m8_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u16m8_u16m1((vuint16m1_t)(op0), (vuint16m8_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u16m8_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u16m8_u16m1_m((vbool2_t)(op0), (vuint16m1_t)(op1), (vuint16m8_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u16mf2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u16mf2_u16m1((vuint16m1_t)(op0), (vuint16mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u16mf2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u16mf2_u16m1_m((vbool32_t)(op0), (vuint16m1_t)(op1), (vuint16mf2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u16mf4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u16mf4_u16m1((vuint16m1_t)(op0), (vuint16mf4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u16mf4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u16mf4_u16m1_m((vbool64_t)(op0), (vuint16m1_t)(op1), (vuint16mf4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u32m1_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u32m1_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u32m1_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u32m1_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u32m2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u32m2_u32m1((vuint32m1_t)(op0), (vuint32m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u32m2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u32m2_u32m1_m((vbool16_t)(op0), (vuint32m1_t)(op1), (vuint32m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u32m4_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u32m4_u32m1((vuint32m1_t)(op0), (vuint32m4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u32m4_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u32m4_u32m1_m((vbool8_t)(op0), (vuint32m1_t)(op1), (vuint32m4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u32m8_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u32m8_u32m1((vuint32m1_t)(op0), (vuint32m8_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u32m8_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u32m8_u32m1_m((vbool4_t)(op0), (vuint32m1_t)(op1), (vuint32m8_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u32mf2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u32mf2_u32m1((vuint32m1_t)(op0), (vuint32mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u32mf2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u32mf2_u32m1_m((vbool64_t)(op0), (vuint32m1_t)(op1), (vuint32mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u64m1_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u64m1_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u64m1_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u64m1_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u64m2_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u64m2_u64m1((vuint64m1_t)(op0), (vuint64m2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u64m2_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u64m2_u64m1_m((vbool32_t)(op0), (vuint64m1_t)(op1), (vuint64m2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u64m4_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u64m4_u64m1((vuint64m1_t)(op0), (vuint64m4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u64m4_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u64m4_u64m1_m((vbool16_t)(op0), (vuint64m1_t)(op1), (vuint64m4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u64m8_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u64m8_u64m1((vuint64m1_t)(op0), (vuint64m8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u64m8_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u64m8_u64m1_m((vbool8_t)(op0), (vuint64m1_t)(op1), (vuint64m8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i8m1_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i8m1_i16m1((vint16m1_t)(op0), (vint8m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i8m1_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i8m1_i16m1_m((vbool8_t)(op0), (vint16m1_t)(op1), (vint8m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i8m2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i8m2_i16m1((vint16m1_t)(op0), (vint8m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i8m2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i8m2_i16m1_m((vbool4_t)(op0), (vint16m1_t)(op1), (vint8m2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i8m4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i8m4_i16m1((vint16m1_t)(op0), (vint8m4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i8m4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i8m4_i16m1_m((vbool2_t)(op0), (vint16m1_t)(op1), (vint8m4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i8m8_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i8m8_i16m1((vint16m1_t)(op0), (vint8m8_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i8m8_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i8m8_i16m1_m((vbool1_t)(op0), (vint16m1_t)(op1), (vint8m8_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i8mf2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i8mf2_i16m1((vint16m1_t)(op0), (vint8mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i8mf2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i8mf2_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i8mf4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i8mf4_i16m1((vint16m1_t)(op0), (vint8mf4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i8mf4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i8mf4_i16m1_m((vbool32_t)(op0), (vint16m1_t)(op1), (vint8mf4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i8mf8_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i8mf8_i16m1((vint16m1_t)(op0), (vint8mf8_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i8mf8_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i8mf8_i16m1_m((vbool64_t)(op0), (vint16m1_t)(op1), (vint8mf8_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i16m1_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i16m1_i32m1((vint32m1_t)(op0), (vint16m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i16m1_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i16m1_i32m1_m((vbool16_t)(op0), (vint32m1_t)(op1), (vint16m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i16m2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i16m2_i32m1((vint32m1_t)(op0), (vint16m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i16m2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i16m2_i32m1_m((vbool8_t)(op0), (vint32m1_t)(op1), (vint16m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i16m4_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i16m4_i32m1((vint32m1_t)(op0), (vint16m4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i16m4_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i16m4_i32m1_m((vbool4_t)(op0), (vint32m1_t)(op1), (vint16m4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i16m8_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i16m8_i32m1((vint32m1_t)(op0), (vint16m8_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i16m8_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i16m8_i32m1_m((vbool2_t)(op0), (vint32m1_t)(op1), (vint16m8_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i16mf2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i16mf2_i32m1((vint32m1_t)(op0), (vint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i16mf2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i16mf2_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i16mf4_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i16mf4_i32m1((vint32m1_t)(op0), (vint16mf4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i16mf4_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i16mf4_i32m1_m((vbool64_t)(op0), (vint32m1_t)(op1), (vint16mf4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i32m1_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i32m1_i64m1((vint64m1_t)(op0), (vint32m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i32m1_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i32m1_i64m1_m((vbool32_t)(op0), (vint64m1_t)(op1), (vint32m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i32m2_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i32m2_i64m1((vint64m1_t)(op0), (vint32m2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i32m2_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i32m2_i64m1_m((vbool16_t)(op0), (vint64m1_t)(op1), (vint32m2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i32m4_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i32m4_i64m1((vint64m1_t)(op0), (vint32m4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i32m4_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i32m4_i64m1_m((vbool8_t)(op0), (vint64m1_t)(op1), (vint32m4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i32m8_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i32m8_i64m1((vint64m1_t)(op0), (vint32m8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i32m8_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i32m8_i64m1_m((vbool4_t)(op0), (vint64m1_t)(op1), (vint32m8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i32mf2_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i32mf2_i64m1((vint64m1_t)(op0), (vint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i32mf2_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i32mf2_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u8m1_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u8m1_u16m1((vuint16m1_t)(op0), (vuint8m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u8m1_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u8m1_u16m1_m((vbool8_t)(op0), (vuint16m1_t)(op1), (vuint8m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u8m2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u8m2_u16m1((vuint16m1_t)(op0), (vuint8m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u8m2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u8m2_u16m1_m((vbool4_t)(op0), (vuint16m1_t)(op1), (vuint8m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u8m4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u8m4_u16m1((vuint16m1_t)(op0), (vuint8m4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u8m4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u8m4_u16m1_m((vbool2_t)(op0), (vuint16m1_t)(op1), (vuint8m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u8m8_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u8m8_u16m1((vuint16m1_t)(op0), (vuint8m8_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u8m8_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u8m8_u16m1_m((vbool1_t)(op0), (vuint16m1_t)(op1), (vuint8m8_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u8mf2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u8mf2_u16m1((vuint16m1_t)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u8mf2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u8mf2_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u8mf4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u8mf4_u16m1((vuint16m1_t)(op0), (vuint8mf4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u8mf4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u8mf4_u16m1_m((vbool32_t)(op0), (vuint16m1_t)(op1), (vuint8mf4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u8mf8_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u8mf8_u16m1((vuint16m1_t)(op0), (vuint8mf8_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u8mf8_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u8mf8_u16m1_m((vbool64_t)(op0), (vuint16m1_t)(op1), (vuint8mf8_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u16m1_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u16m1_u32m1((vuint32m1_t)(op0), (vuint16m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u16m1_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u16m1_u32m1_m((vbool16_t)(op0), (vuint32m1_t)(op1), (vuint16m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u16m2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u16m2_u32m1((vuint32m1_t)(op0), (vuint16m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u16m2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u16m2_u32m1_m((vbool8_t)(op0), (vuint32m1_t)(op1), (vuint16m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u16m4_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u16m4_u32m1((vuint32m1_t)(op0), (vuint16m4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u16m4_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u16m4_u32m1_m((vbool4_t)(op0), (vuint32m1_t)(op1), (vuint16m4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u16m8_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u16m8_u32m1((vuint32m1_t)(op0), (vuint16m8_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u16m8_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u16m8_u32m1_m((vbool2_t)(op0), (vuint32m1_t)(op1), (vuint16m8_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u16mf2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u16mf2_u32m1((vuint32m1_t)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u16mf2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u16mf2_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u16mf4_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u16mf4_u32m1((vuint32m1_t)(op0), (vuint16mf4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u16mf4_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u16mf4_u32m1_m((vbool64_t)(op0), (vuint32m1_t)(op1), (vuint16mf4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u32m1_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u32m1_u64m1((vuint64m1_t)(op0), (vuint32m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u32m1_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u32m1_u64m1_m((vbool32_t)(op0), (vuint64m1_t)(op1), (vuint32m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u32m2_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u32m2_u64m1((vuint64m1_t)(op0), (vuint32m2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u32m2_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u32m2_u64m1_m((vbool16_t)(op0), (vuint64m1_t)(op1), (vuint32m2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u32m4_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u32m4_u64m1((vuint64m1_t)(op0), (vuint32m4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u32m4_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u32m4_u64m1_m((vbool8_t)(op0), (vuint64m1_t)(op1), (vuint32m4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u32m8_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u32m8_u64m1((vuint64m1_t)(op0), (vuint32m8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u32m8_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u32m8_u64m1_m((vbool4_t)(op0), (vuint64m1_t)(op1), (vuint32m8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u32mf2_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u32mf2_u64m1((vuint64m1_t)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u32mf2_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u32mf2_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u8m4((uint8_t *)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u8m8((uint8_t *)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u8m8_m((vbool1_t)(op0), (uint8_t *)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmnot_m_b8(op0, op1) \
-__builtin_rvv_vmnot_m_b8((vbool8_t)(op0), (size_t)(op1))
-#define vmnot_m_b4(op0, op1) \
-__builtin_rvv_vmnot_m_b4((vbool4_t)(op0), (size_t)(op1))
-#define vmnot_m_b2(op0, op1) \
-__builtin_rvv_vmnot_m_b2((vbool2_t)(op0), (size_t)(op1))
-#define vmnot_m_b1(op0, op1) \
-__builtin_rvv_vmnot_m_b1((vbool1_t)(op0), (size_t)(op1))
-#define vmnot_m_b16(op0, op1) \
-__builtin_rvv_vmnot_m_b16((vbool16_t)(op0), (size_t)(op1))
-#define vmnot_m_b32(op0, op1) \
-__builtin_rvv_vmnot_m_b32((vbool32_t)(op0), (size_t)(op1))
-#define vmnot_m_b64(op0, op1) \
-__builtin_rvv_vmnot_m_b64((vbool64_t)(op0), (size_t)(op1))
-#define viota_m_u8m1(op0, op1) \
-__builtin_rvv_viota_m_u8m1((vbool8_t)(op0), (size_t)(op1))
-#define viota_m_u8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define viota_m_u8m2(op0, op1) \
-__builtin_rvv_viota_m_u8m2((vbool4_t)(op0), (size_t)(op1))
-#define viota_m_u8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define viota_m_u8m4(op0, op1) \
-__builtin_rvv_viota_m_u8m4((vbool2_t)(op0), (size_t)(op1))
-#define viota_m_u8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define viota_m_u8m8(op0, op1) \
-__builtin_rvv_viota_m_u8m8((vbool1_t)(op0), (size_t)(op1))
-#define viota_m_u8m8_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define viota_m_u8mf2(op0, op1) \
-__builtin_rvv_viota_m_u8mf2((vbool16_t)(op0), (size_t)(op1))
-#define viota_m_u8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define viota_m_u8mf4(op0, op1) \
-__builtin_rvv_viota_m_u8mf4((vbool32_t)(op0), (size_t)(op1))
-#define viota_m_u8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define viota_m_u8mf8(op0, op1) \
-__builtin_rvv_viota_m_u8mf8((vbool64_t)(op0), (size_t)(op1))
-#define viota_m_u8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define viota_m_u16m1(op0, op1) \
-__builtin_rvv_viota_m_u16m1((vbool16_t)(op0), (size_t)(op1))
-#define viota_m_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define viota_m_u16m2(op0, op1) \
-__builtin_rvv_viota_m_u16m2((vbool8_t)(op0), (size_t)(op1))
-#define viota_m_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define viota_m_u16m4(op0, op1) \
-__builtin_rvv_viota_m_u16m4((vbool4_t)(op0), (size_t)(op1))
-#define viota_m_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define viota_m_u16m8(op0, op1) \
-__builtin_rvv_viota_m_u16m8((vbool2_t)(op0), (size_t)(op1))
-#define viota_m_u16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define viota_m_u16mf2(op0, op1) \
-__builtin_rvv_viota_m_u16mf2((vbool32_t)(op0), (size_t)(op1))
-#define viota_m_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define viota_m_u16mf4(op0, op1) \
-__builtin_rvv_viota_m_u16mf4((vbool64_t)(op0), (size_t)(op1))
-#define viota_m_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define viota_m_u32m1(op0, op1) \
-__builtin_rvv_viota_m_u32m1((vbool32_t)(op0), (size_t)(op1))
-#define viota_m_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define viota_m_u32m2(op0, op1) \
-__builtin_rvv_viota_m_u32m2((vbool16_t)(op0), (size_t)(op1))
-#define viota_m_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define viota_m_u32m4(op0, op1) \
-__builtin_rvv_viota_m_u32m4((vbool8_t)(op0), (size_t)(op1))
-#define viota_m_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define viota_m_u32m8(op0, op1) \
-__builtin_rvv_viota_m_u32m8((vbool4_t)(op0), (size_t)(op1))
-#define viota_m_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define viota_m_u32mf2(op0, op1) \
-__builtin_rvv_viota_m_u32mf2((vbool64_t)(op0), (size_t)(op1))
-#define viota_m_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define viota_m_u64m1(op0, op1) \
-__builtin_rvv_viota_m_u64m1((vbool64_t)(op0), (size_t)(op1))
-#define viota_m_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define viota_m_u64m2(op0, op1) \
-__builtin_rvv_viota_m_u64m2((vbool32_t)(op0), (size_t)(op1))
-#define viota_m_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define viota_m_u64m4(op0, op1) \
-__builtin_rvv_viota_m_u64m4((vbool16_t)(op0), (size_t)(op1))
-#define viota_m_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define viota_m_u64m8(op0, op1) \
-__builtin_rvv_viota_m_u64m8((vbool8_t)(op0), (size_t)(op1))
-#define viota_m_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vid_v_i8m1(op0) \
-__builtin_rvv_vid_v_i8m1((size_t)(op0))
-#define vid_v_i8m1_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vid_v_i8m2(op0) \
-__builtin_rvv_vid_v_i8m2((size_t)(op0))
-#define vid_v_i8m2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vid_v_i8m4(op0) \
-__builtin_rvv_vid_v_i8m4((size_t)(op0))
-#define vid_v_i8m4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vid_v_i8m8(op0) \
-__builtin_rvv_vid_v_i8m8((size_t)(op0))
-#define vid_v_i8m8_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vid_v_i8mf2(op0) \
-__builtin_rvv_vid_v_i8mf2((size_t)(op0))
-#define vid_v_i8mf2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vid_v_i8mf4(op0) \
-__builtin_rvv_vid_v_i8mf4((size_t)(op0))
-#define vid_v_i8mf4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vid_v_i8mf8(op0) \
-__builtin_rvv_vid_v_i8mf8((size_t)(op0))
-#define vid_v_i8mf8_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vid_v_i16m1(op0) \
-__builtin_rvv_vid_v_i16m1((size_t)(op0))
-#define vid_v_i16m1_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vid_v_i16m2(op0) \
-__builtin_rvv_vid_v_i16m2((size_t)(op0))
-#define vid_v_i16m2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vid_v_i16m4(op0) \
-__builtin_rvv_vid_v_i16m4((size_t)(op0))
-#define vid_v_i16m4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vid_v_i16m8(op0) \
-__builtin_rvv_vid_v_i16m8((size_t)(op0))
-#define vid_v_i16m8_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vid_v_i16mf2(op0) \
-__builtin_rvv_vid_v_i16mf2((size_t)(op0))
-#define vid_v_i16mf2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vid_v_i16mf4(op0) \
-__builtin_rvv_vid_v_i16mf4((size_t)(op0))
-#define vid_v_i16mf4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vid_v_i32m1(op0) \
-__builtin_rvv_vid_v_i32m1((size_t)(op0))
-#define vid_v_i32m1_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vid_v_i32m2(op0) \
-__builtin_rvv_vid_v_i32m2((size_t)(op0))
-#define vid_v_i32m2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vid_v_i32m4(op0) \
-__builtin_rvv_vid_v_i32m4((size_t)(op0))
-#define vid_v_i32m4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vid_v_i32m8(op0) \
-__builtin_rvv_vid_v_i32m8((size_t)(op0))
-#define vid_v_i32m8_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vid_v_i32mf2(op0) \
-__builtin_rvv_vid_v_i32mf2((size_t)(op0))
-#define vid_v_i32mf2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vid_v_i64m1(op0) \
-__builtin_rvv_vid_v_i64m1((size_t)(op0))
-#define vid_v_i64m1_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vid_v_i64m2(op0) \
-__builtin_rvv_vid_v_i64m2((size_t)(op0))
-#define vid_v_i64m2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vid_v_i64m4(op0) \
-__builtin_rvv_vid_v_i64m4((size_t)(op0))
-#define vid_v_i64m4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vid_v_i64m8(op0) \
-__builtin_rvv_vid_v_i64m8((size_t)(op0))
-#define vid_v_i64m8_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vid_v_u8m1(op0) \
-__builtin_rvv_vid_v_u8m1((size_t)(op0))
-#define vid_v_u8m1_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vid_v_u8m2(op0) \
-__builtin_rvv_vid_v_u8m2((size_t)(op0))
-#define vid_v_u8m2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vid_v_u8m4(op0) \
-__builtin_rvv_vid_v_u8m4((size_t)(op0))
-#define vid_v_u8m4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vid_v_u8m8(op0) \
-__builtin_rvv_vid_v_u8m8((size_t)(op0))
-#define vid_v_u8m8_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vid_v_u8mf2(op0) \
-__builtin_rvv_vid_v_u8mf2((size_t)(op0))
-#define vid_v_u8mf2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vid_v_u8mf4(op0) \
-__builtin_rvv_vid_v_u8mf4((size_t)(op0))
-#define vid_v_u8mf4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vid_v_u8mf8(op0) \
-__builtin_rvv_vid_v_u8mf8((size_t)(op0))
-#define vid_v_u8mf8_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vid_v_u16m1(op0) \
-__builtin_rvv_vid_v_u16m1((size_t)(op0))
-#define vid_v_u16m1_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vid_v_u16m2(op0) \
-__builtin_rvv_vid_v_u16m2((size_t)(op0))
-#define vid_v_u16m2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vid_v_u16m4(op0) \
-__builtin_rvv_vid_v_u16m4((size_t)(op0))
-#define vid_v_u16m4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vid_v_u16m8(op0) \
-__builtin_rvv_vid_v_u16m8((size_t)(op0))
-#define vid_v_u16m8_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vid_v_u16mf2(op0) \
-__builtin_rvv_vid_v_u16mf2((size_t)(op0))
-#define vid_v_u16mf2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vid_v_u16mf4(op0) \
-__builtin_rvv_vid_v_u16mf4((size_t)(op0))
-#define vid_v_u16mf4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vid_v_u32m1(op0) \
-__builtin_rvv_vid_v_u32m1((size_t)(op0))
-#define vid_v_u32m1_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vid_v_u32m2(op0) \
-__builtin_rvv_vid_v_u32m2((size_t)(op0))
-#define vid_v_u32m2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vid_v_u32m4(op0) \
-__builtin_rvv_vid_v_u32m4((size_t)(op0))
-#define vid_v_u32m4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vid_v_u32m8(op0) \
-__builtin_rvv_vid_v_u32m8((size_t)(op0))
-#define vid_v_u32m8_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vid_v_u32mf2(op0) \
-__builtin_rvv_vid_v_u32mf2((size_t)(op0))
-#define vid_v_u32mf2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vid_v_u64m1(op0) \
-__builtin_rvv_vid_v_u64m1((size_t)(op0))
-#define vid_v_u64m1_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vid_v_u64m2(op0) \
-__builtin_rvv_vid_v_u64m2((size_t)(op0))
-#define vid_v_u64m2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vid_v_u64m4(op0) \
-__builtin_rvv_vid_v_u64m4((size_t)(op0))
-#define vid_v_u64m4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vid_v_u64m8(op0) \
-__builtin_rvv_vid_v_u64m8((size_t)(op0))
-#define vid_v_u64m8_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmv_x_s_i8m1_i8(op0) \
-__builtin_rvv_vmv_x_s_i8m1_i8((vint8m1_t)(op0))
-#define vmv_x_s_i8m2_i8(op0) \
-__builtin_rvv_vmv_x_s_i8m2_i8((vint8m2_t)(op0))
-#define vmv_x_s_i8m4_i8(op0) \
-__builtin_rvv_vmv_x_s_i8m4_i8((vint8m4_t)(op0))
-#define vmv_x_s_i8m8_i8(op0) \
-__builtin_rvv_vmv_x_s_i8m8_i8((vint8m8_t)(op0))
-#define vmv_x_s_i8mf2_i8(op0) \
-__builtin_rvv_vmv_x_s_i8mf2_i8((vint8mf2_t)(op0))
-#define vmv_x_s_i8mf4_i8(op0) \
-__builtin_rvv_vmv_x_s_i8mf4_i8((vint8mf4_t)(op0))
-#define vmv_x_s_i8mf8_i8(op0) \
-__builtin_rvv_vmv_x_s_i8mf8_i8((vint8mf8_t)(op0))
-#define vmv_x_s_i16m1_i16(op0) \
-__builtin_rvv_vmv_x_s_i16m1_i16((vint16m1_t)(op0))
-#define vmv_x_s_i16m2_i16(op0) \
-__builtin_rvv_vmv_x_s_i16m2_i16((vint16m2_t)(op0))
-#define vmv_x_s_i16m4_i16(op0) \
-__builtin_rvv_vmv_x_s_i16m4_i16((vint16m4_t)(op0))
-#define vmv_x_s_i16m8_i16(op0) \
-__builtin_rvv_vmv_x_s_i16m8_i16((vint16m8_t)(op0))
-#define vmv_x_s_i16mf2_i16(op0) \
-__builtin_rvv_vmv_x_s_i16mf2_i16((vint16mf2_t)(op0))
-#define vmv_x_s_i16mf4_i16(op0) \
-__builtin_rvv_vmv_x_s_i16mf4_i16((vint16mf4_t)(op0))
-#define vmv_x_s_i32m1_i32(op0) \
-__builtin_rvv_vmv_x_s_i32m1_i32((vint32m1_t)(op0))
-#define vmv_x_s_i32m2_i32(op0) \
-__builtin_rvv_vmv_x_s_i32m2_i32((vint32m2_t)(op0))
-#define vmv_x_s_i32m4_i32(op0) \
-__builtin_rvv_vmv_x_s_i32m4_i32((vint32m4_t)(op0))
-#define vmv_x_s_i32m8_i32(op0) \
-__builtin_rvv_vmv_x_s_i32m8_i32((vint32m8_t)(op0))
-#define vmv_x_s_i32mf2_i32(op0) \
-__builtin_rvv_vmv_x_s_i32mf2_i32((vint32mf2_t)(op0))
-#define vmv_x_s_i64m1_i64(op0) \
-__builtin_rvv_vmv_x_s_i64m1_i64((vint64m1_t)(op0))
-#define vmv_x_s_i64m2_i64(op0) \
-__builtin_rvv_vmv_x_s_i64m2_i64((vint64m2_t)(op0))
-#define vmv_x_s_i64m4_i64(op0) \
-__builtin_rvv_vmv_x_s_i64m4_i64((vint64m4_t)(op0))
-#define vmv_x_s_i64m8_i64(op0) \
-__builtin_rvv_vmv_x_s_i64m8_i64((vint64m8_t)(op0))
-#define vmv_x_s_u8m1_u8(op0) \
-__builtin_rvv_vmv_x_s_u8m1_u8((vuint8m1_t)(op0))
-#define vmv_x_s_u8m2_u8(op0) \
-__builtin_rvv_vmv_x_s_u8m2_u8((vuint8m2_t)(op0))
-#define vmv_x_s_u8m4_u8(op0) \
-__builtin_rvv_vmv_x_s_u8m4_u8((vuint8m4_t)(op0))
-#define vmv_x_s_u8m8_u8(op0) \
-__builtin_rvv_vmv_x_s_u8m8_u8((vuint8m8_t)(op0))
-#define vmv_x_s_u8mf2_u8(op0) \
-__builtin_rvv_vmv_x_s_u8mf2_u8((vuint8mf2_t)(op0))
-#define vmv_x_s_u8mf4_u8(op0) \
-__builtin_rvv_vmv_x_s_u8mf4_u8((vuint8mf4_t)(op0))
-#define vmv_x_s_u8mf8_u8(op0) \
-__builtin_rvv_vmv_x_s_u8mf8_u8((vuint8mf8_t)(op0))
-#define vmv_x_s_u16m1_u16(op0) \
-__builtin_rvv_vmv_x_s_u16m1_u16((vuint16m1_t)(op0))
-#define vmv_x_s_u16m2_u16(op0) \
-__builtin_rvv_vmv_x_s_u16m2_u16((vuint16m2_t)(op0))
-#define vmv_x_s_u16m4_u16(op0) \
-__builtin_rvv_vmv_x_s_u16m4_u16((vuint16m4_t)(op0))
-#define vmv_x_s_u16m8_u16(op0) \
-__builtin_rvv_vmv_x_s_u16m8_u16((vuint16m8_t)(op0))
-#define vmv_x_s_u16mf2_u16(op0) \
-__builtin_rvv_vmv_x_s_u16mf2_u16((vuint16mf2_t)(op0))
-#define vmv_x_s_u16mf4_u16(op0) \
-__builtin_rvv_vmv_x_s_u16mf4_u16((vuint16mf4_t)(op0))
-#define vmv_x_s_u32m1_u32(op0) \
-__builtin_rvv_vmv_x_s_u32m1_u32((vuint32m1_t)(op0))
-#define vmv_x_s_u32m2_u32(op0) \
-__builtin_rvv_vmv_x_s_u32m2_u32((vuint32m2_t)(op0))
-#define vmv_x_s_u32m4_u32(op0) \
-__builtin_rvv_vmv_x_s_u32m4_u32((vuint32m4_t)(op0))
-#define vmv_x_s_u32m8_u32(op0) \
-__builtin_rvv_vmv_x_s_u32m8_u32((vuint32m8_t)(op0))
-#define vmv_x_s_u32mf2_u32(op0) \
-__builtin_rvv_vmv_x_s_u32mf2_u32((vuint32mf2_t)(op0))
-#define vmv_x_s_u64m1_u64(op0) \
-__builtin_rvv_vmv_x_s_u64m1_u64((vuint64m1_t)(op0))
-#define vmv_x_s_u64m2_u64(op0) \
-__builtin_rvv_vmv_x_s_u64m2_u64((vuint64m2_t)(op0))
-#define vmv_x_s_u64m4_u64(op0) \
-__builtin_rvv_vmv_x_s_u64m4_u64((vuint64m4_t)(op0))
-#define vmv_x_s_u64m8_u64(op0) \
-__builtin_rvv_vmv_x_s_u64m8_u64((vuint64m8_t)(op0))
-#define vmv_s_x_i8m1(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmv_s_x_i8m2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmv_s_x_i8m4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmv_s_x_i8m8(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmv_s_x_i8mf2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmv_s_x_i8mf4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmv_s_x_i8mf8(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmv_s_x_i16m1(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmv_s_x_i16m2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmv_s_x_i16m4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmv_s_x_i16m8(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmv_s_x_i16mf2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmv_s_x_i16mf4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmv_s_x_i32m1(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmv_s_x_i32m2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmv_s_x_i32m4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmv_s_x_i32m8(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmv_s_x_i32mf2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmv_s_x_i64m1(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmv_s_x_i64m2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmv_s_x_i64m4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmv_s_x_i64m8(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmv_s_x_u8m1(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmv_s_x_u8m2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmv_s_x_u8m4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmv_s_x_u8m8(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmv_s_x_u8mf2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmv_s_x_u8mf4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmv_s_x_u8mf8(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmv_s_x_u16m1(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmv_s_x_u16m2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmv_s_x_u16m4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmv_s_x_u16m8(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmv_s_x_u16mf2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmv_s_x_u16mf4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmv_s_x_u32m1(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmv_s_x_u32m2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmv_s_x_u32m4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmv_s_x_u32m8(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmv_s_x_u32mf2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmv_s_x_u64m1(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmv_s_x_u64m2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmv_s_x_u64m4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmv_s_x_u64m8(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u16m1(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u16m2(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u16m4(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u16m8(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u16mf2(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u16mf4(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u32m1(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u32m2(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u32m4(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u32m8(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u32mf2(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u64m1(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u64m2(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u64m4(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u64m8(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vslideup_vx_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u8m1((vuint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u8m2((vuint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u8m4((vuint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u8m8((vuint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u8mf2((vuint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u8mf4((vuint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u8mf8((vuint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u16m1((vuint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u16m2((vuint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u16m4((vuint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u16m8((vuint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u16mf2((vuint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u16mf4((vuint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u32m1((vuint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u32m2((vuint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u32m4((vuint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u32m8((vuint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u32mf2((vuint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u64m1((vuint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u64m2((vuint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u64m4((vuint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u64m8((vuint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u8m1((vuint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u8m2((vuint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u8m4((vuint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u8m8((vuint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u8mf2((vuint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u8mf4((vuint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u8mf8((vuint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u16m1((vuint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u16m2((vuint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u16m4((vuint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u16m8((vuint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u16mf2((vuint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u16mf4((vuint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u32m1((vuint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u32m2((vuint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u32m4((vuint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u32m8((vuint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u32mf2((vuint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u64m1((vuint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u64m2((vuint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u64m4((vuint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u64m8((vuint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vrgather_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i8m1((vint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vrgather_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vrgather_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i8m2((vint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vrgather_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i8m4((vint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vrgather_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vrgather_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i8m8((vint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vrgather_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vrgather_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i8mf2((vint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vrgather_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vrgather_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i8mf4((vint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vrgather_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vrgather_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i8mf8((vint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vrgather_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vrgather_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i16m1((vint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgather_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgather_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i16m2((vint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgather_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i16m4((vint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vrgather_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vrgather_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i16m8((vint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vrgather_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vrgather_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i16mf2((vint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgather_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgather_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i16mf4((vint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgather_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgather_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i32m1((vint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vrgather_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vrgather_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i32m2((vint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vrgather_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i32m4((vint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vrgather_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vrgather_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i32m8((vint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vrgather_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vrgather_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i32mf2((vint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vrgather_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vrgather_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i64m1((vint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vrgather_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vrgather_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i64m2((vint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vrgather_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i64m4((vint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vrgather_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vrgather_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i64m8((vint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vrgather_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vrgather_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i8m1((vint8m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i8m2((vint8m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i8m4((vint8m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i8m8((vint8m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i8mf2((vint8mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i8mf4((vint8mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i8mf8((vint8mf8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i16m1((vint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i16m2((vint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i16m4((vint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i16m8((vint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i16mf2((vint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i16mf4((vint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i32m1((vint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i32m2((vint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i32m4((vint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i32m8((vint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i32mf2((vint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i64m1((vint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i64m2((vint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i64m4((vint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i64m8((vint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i8m1((vint8m1_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i8m2((vint8m2_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i8m4((vint8m4_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i8mf2((vint8mf2_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i8mf4((vint8mf4_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i8mf8((vint8mf8_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i16m1((vint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i16m2((vint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i16m4((vint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i16m8((vint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i16mf2((vint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i16mf4((vint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i32m1((vint32m1_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i32m2((vint32m2_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i32m4((vint32m4_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i32m8((vint32m8_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i32mf2((vint32mf2_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i64m1((vint64m1_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i64m2((vint64m2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i64m4((vint64m4_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i64m8((vint64m8_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vrgather_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vrgather_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vrgather_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vrgather_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vrgather_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vrgather_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vrgather_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vrgather_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vrgather_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vrgather_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vrgather_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vrgather_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vrgather_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgather_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgather_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgather_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vrgather_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vrgather_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vrgather_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vrgather_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgather_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgather_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgather_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgather_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vrgather_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vrgather_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vrgather_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vrgather_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vrgather_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vrgather_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vrgather_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vrgather_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vrgather_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vrgather_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vrgather_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vrgather_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vrgather_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vrgather_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vrgather_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vrgather_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u8m1((vuint8m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u8m2((vuint8m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u8m4((vuint8m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u8m8((vuint8m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u8mf2((vuint8mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u8mf4((vuint8mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u8mf8((vuint8mf8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u16m1((vuint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u16m2((vuint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u16m4((vuint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u16m8((vuint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u16mf2((vuint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u16mf4((vuint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u32m1((vuint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u32m2((vuint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u32m4((vuint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u32m8((vuint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u32mf2((vuint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u64m1((vuint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u64m2((vuint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u64m4((vuint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u64m8((vuint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u8m1((vuint8m1_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u8m2((vuint8m2_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u8m4((vuint8m4_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u8mf2((vuint8mf2_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u8mf4((vuint8mf4_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u8mf8((vuint8mf8_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u32m1((vuint32m1_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u32m2((vuint32m2_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u32m4((vuint32m4_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u32m8((vuint32m8_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u32mf2((vuint32mf2_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u64m1((vuint64m1_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u64m2((vuint64m2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u64m4((vuint64m4_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u64m8((vuint64m8_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vcompress_vm_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i8m1((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vcompress_vm_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i8m2((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vcompress_vm_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i8m4((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vcompress_vm_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i8m8((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vcompress_vm_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i8mf2((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vcompress_vm_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i8mf4((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vcompress_vm_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i8mf8((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vcompress_vm_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i16m1((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vcompress_vm_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i16m2((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vcompress_vm_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i16m4((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vcompress_vm_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i16m8((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vcompress_vm_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i16mf2((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vcompress_vm_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i16mf4((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vcompress_vm_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i32m1((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vcompress_vm_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i32m2((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vcompress_vm_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i32m4((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vcompress_vm_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i32m8((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vcompress_vm_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i32mf2((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vcompress_vm_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i64m1((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vcompress_vm_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i64m2((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vcompress_vm_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i64m4((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vcompress_vm_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i64m8((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vcompress_vm_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u8m1((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vcompress_vm_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u8m2((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vcompress_vm_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u8m4((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vcompress_vm_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u8m8((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vcompress_vm_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u8mf2((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vcompress_vm_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u8mf4((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vcompress_vm_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u8mf8((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vcompress_vm_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u16m1((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vcompress_vm_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u16m2((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vcompress_vm_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u16m4((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vcompress_vm_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u16m8((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vcompress_vm_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u16mf2((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vcompress_vm_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u16mf4((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vcompress_vm_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u32m1((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vcompress_vm_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u32m2((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vcompress_vm_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u32m4((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vcompress_vm_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u32m8((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vcompress_vm_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u32mf2((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vcompress_vm_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u64m1((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vcompress_vm_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u64m2((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vcompress_vm_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u64m4((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vcompress_vm_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u64m8((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vget_v_i8m2_i8m1(op0, op1) \
-__builtin_rvv_vget_v_i8m2_i8m1((vint8m2_t)(op0), (size_t)(op1))
-#define vget_v_i8m4_i8m1(op0, op1) \
-__builtin_rvv_vget_v_i8m4_i8m1((vint8m4_t)(op0), (size_t)(op1))
-#define vget_v_i8m8_i8m1(op0, op1) \
-__builtin_rvv_vget_v_i8m8_i8m1((vint8m8_t)(op0), (size_t)(op1))
-#define vget_v_i16m2_i16m1(op0, op1) \
-__builtin_rvv_vget_v_i16m2_i16m1((vint16m2_t)(op0), (size_t)(op1))
-#define vget_v_i16m4_i16m1(op0, op1) \
-__builtin_rvv_vget_v_i16m4_i16m1((vint16m4_t)(op0), (size_t)(op1))
-#define vget_v_i16m8_i16m1(op0, op1) \
-__builtin_rvv_vget_v_i16m8_i16m1((vint16m8_t)(op0), (size_t)(op1))
-#define vget_v_i32m2_i32m1(op0, op1) \
-__builtin_rvv_vget_v_i32m2_i32m1((vint32m2_t)(op0), (size_t)(op1))
-#define vget_v_i32m4_i32m1(op0, op1) \
-__builtin_rvv_vget_v_i32m4_i32m1((vint32m4_t)(op0), (size_t)(op1))
-#define vget_v_i32m8_i32m1(op0, op1) \
-__builtin_rvv_vget_v_i32m8_i32m1((vint32m8_t)(op0), (size_t)(op1))
-#define vget_v_i64m2_i64m1(op0, op1) \
-__builtin_rvv_vget_v_i64m2_i64m1((vint64m2_t)(op0), (size_t)(op1))
-#define vget_v_i64m4_i64m1(op0, op1) \
-__builtin_rvv_vget_v_i64m4_i64m1((vint64m4_t)(op0), (size_t)(op1))
-#define vget_v_i64m8_i64m1(op0, op1) \
-__builtin_rvv_vget_v_i64m8_i64m1((vint64m8_t)(op0), (size_t)(op1))
-#define vget_v_u8m2_u8m1(op0, op1) \
-__builtin_rvv_vget_v_u8m2_u8m1((vuint8m2_t)(op0), (size_t)(op1))
-#define vget_v_u8m4_u8m1(op0, op1) \
-__builtin_rvv_vget_v_u8m4_u8m1((vuint8m4_t)(op0), (size_t)(op1))
-#define vget_v_u8m8_u8m1(op0, op1) \
-__builtin_rvv_vget_v_u8m8_u8m1((vuint8m8_t)(op0), (size_t)(op1))
-#define vget_v_u16m2_u16m1(op0, op1) \
-__builtin_rvv_vget_v_u16m2_u16m1((vuint16m2_t)(op0), (size_t)(op1))
-#define vget_v_u16m4_u16m1(op0, op1) \
-__builtin_rvv_vget_v_u16m4_u16m1((vuint16m4_t)(op0), (size_t)(op1))
-#define vget_v_u16m8_u16m1(op0, op1) \
-__builtin_rvv_vget_v_u16m8_u16m1((vuint16m8_t)(op0), (size_t)(op1))
-#define vget_v_u32m2_u32m1(op0, op1) \
-__builtin_rvv_vget_v_u32m2_u32m1((vuint32m2_t)(op0), (size_t)(op1))
-#define vget_v_u32m4_u32m1(op0, op1) \
-__builtin_rvv_vget_v_u32m4_u32m1((vuint32m4_t)(op0), (size_t)(op1))
-#define vget_v_u32m8_u32m1(op0, op1) \
-__builtin_rvv_vget_v_u32m8_u32m1((vuint32m8_t)(op0), (size_t)(op1))
-#define vget_v_u64m2_u64m1(op0, op1) \
-__builtin_rvv_vget_v_u64m2_u64m1((vuint64m2_t)(op0), (size_t)(op1))
-#define vget_v_u64m4_u64m1(op0, op1) \
-__builtin_rvv_vget_v_u64m4_u64m1((vuint64m4_t)(op0), (size_t)(op1))
-#define vget_v_u64m8_u64m1(op0, op1) \
-__builtin_rvv_vget_v_u64m8_u64m1((vuint64m8_t)(op0), (size_t)(op1))
-#define vget_v_i8m4_i8m2(op0, op1) \
-__builtin_rvv_vget_v_i8m4_i8m2((vint8m4_t)(op0), (size_t)(op1))
-#define vget_v_i8m8_i8m2(op0, op1) \
-__builtin_rvv_vget_v_i8m8_i8m2((vint8m8_t)(op0), (size_t)(op1))
-#define vget_v_i16m4_i16m2(op0, op1) \
-__builtin_rvv_vget_v_i16m4_i16m2((vint16m4_t)(op0), (size_t)(op1))
-#define vget_v_i16m8_i16m2(op0, op1) \
-__builtin_rvv_vget_v_i16m8_i16m2((vint16m8_t)(op0), (size_t)(op1))
-#define vget_v_i32m4_i32m2(op0, op1) \
-__builtin_rvv_vget_v_i32m4_i32m2((vint32m4_t)(op0), (size_t)(op1))
-#define vget_v_i32m8_i32m2(op0, op1) \
-__builtin_rvv_vget_v_i32m8_i32m2((vint32m8_t)(op0), (size_t)(op1))
-#define vget_v_i64m4_i64m2(op0, op1) \
-__builtin_rvv_vget_v_i64m4_i64m2((vint64m4_t)(op0), (size_t)(op1))
-#define vget_v_i64m8_i64m2(op0, op1) \
-__builtin_rvv_vget_v_i64m8_i64m2((vint64m8_t)(op0), (size_t)(op1))
-#define vget_v_u8m4_u8m2(op0, op1) \
-__builtin_rvv_vget_v_u8m4_u8m2((vuint8m4_t)(op0), (size_t)(op1))
-#define vget_v_u8m8_u8m2(op0, op1) \
-__builtin_rvv_vget_v_u8m8_u8m2((vuint8m8_t)(op0), (size_t)(op1))
-#define vget_v_u16m4_u16m2(op0, op1) \
-__builtin_rvv_vget_v_u16m4_u16m2((vuint16m4_t)(op0), (size_t)(op1))
-#define vget_v_u16m8_u16m2(op0, op1) \
-__builtin_rvv_vget_v_u16m8_u16m2((vuint16m8_t)(op0), (size_t)(op1))
-#define vget_v_u32m4_u32m2(op0, op1) \
-__builtin_rvv_vget_v_u32m4_u32m2((vuint32m4_t)(op0), (size_t)(op1))
-#define vget_v_u32m8_u32m2(op0, op1) \
-__builtin_rvv_vget_v_u32m8_u32m2((vuint32m8_t)(op0), (size_t)(op1))
-#define vget_v_u64m4_u64m2(op0, op1) \
-__builtin_rvv_vget_v_u64m4_u64m2((vuint64m4_t)(op0), (size_t)(op1))
-#define vget_v_u64m8_u64m2(op0, op1) \
-__builtin_rvv_vget_v_u64m8_u64m2((vuint64m8_t)(op0), (size_t)(op1))
-#define vget_v_i8m8_i8m4(op0, op1) \
-__builtin_rvv_vget_v_i8m8_i8m4((vint8m8_t)(op0), (size_t)(op1))
-#define vget_v_i16m8_i16m4(op0, op1) \
-__builtin_rvv_vget_v_i16m8_i16m4((vint16m8_t)(op0), (size_t)(op1))
-#define vget_v_i32m8_i32m4(op0, op1) \
-__builtin_rvv_vget_v_i32m8_i32m4((vint32m8_t)(op0), (size_t)(op1))
-#define vget_v_i64m8_i64m4(op0, op1) \
-__builtin_rvv_vget_v_i64m8_i64m4((vint64m8_t)(op0), (size_t)(op1))
-#define vget_v_u8m8_u8m4(op0, op1) \
-__builtin_rvv_vget_v_u8m8_u8m4((vuint8m8_t)(op0), (size_t)(op1))
-#define vget_v_u16m8_u16m4(op0, op1) \
-__builtin_rvv_vget_v_u16m8_u16m4((vuint16m8_t)(op0), (size_t)(op1))
-#define vget_v_u32m8_u32m4(op0, op1) \
-__builtin_rvv_vget_v_u32m8_u32m4((vuint32m8_t)(op0), (size_t)(op1))
-#define vget_v_u64m8_u64m4(op0, op1) \
-__builtin_rvv_vget_v_u64m8_u64m4((vuint64m8_t)(op0), (size_t)(op1))
-#define vset_v_i8m1_i8m2(op0, op1, op2) \
-__builtin_rvv_vset_v_i8m1_i8m2((vint8m2_t)(op0), (size_t)(op1), (vint8m1_t)(op2))
-#define vset_v_i16m1_i16m2(op0, op1, op2) \
-__builtin_rvv_vset_v_i16m1_i16m2((vint16m2_t)(op0), (size_t)(op1), (vint16m1_t)(op2))
-#define vset_v_i32m1_i32m2(op0, op1, op2) \
-__builtin_rvv_vset_v_i32m1_i32m2((vint32m2_t)(op0), (size_t)(op1), (vint32m1_t)(op2))
-#define vset_v_i64m1_i64m2(op0, op1, op2) \
-__builtin_rvv_vset_v_i64m1_i64m2((vint64m2_t)(op0), (size_t)(op1), (vint64m1_t)(op2))
-#define vset_v_u8m1_u8m2(op0, op1, op2) \
-__builtin_rvv_vset_v_u8m1_u8m2((vuint8m2_t)(op0), (size_t)(op1), (vuint8m1_t)(op2))
-#define vset_v_u16m1_u16m2(op0, op1, op2) \
-__builtin_rvv_vset_v_u16m1_u16m2((vuint16m2_t)(op0), (size_t)(op1), (vuint16m1_t)(op2))
-#define vset_v_u32m1_u32m2(op0, op1, op2) \
-__builtin_rvv_vset_v_u32m1_u32m2((vuint32m2_t)(op0), (size_t)(op1), (vuint32m1_t)(op2))
-#define vset_v_u64m1_u64m2(op0, op1, op2) \
-__builtin_rvv_vset_v_u64m1_u64m2((vuint64m2_t)(op0), (size_t)(op1), (vuint64m1_t)(op2))
-#define vset_v_i8m1_i8m4(op0, op1, op2) \
-__builtin_rvv_vset_v_i8m1_i8m4((vint8m4_t)(op0), (size_t)(op1), (vint8m1_t)(op2))
-#define vset_v_i8m2_i8m4(op0, op1, op2) \
-__builtin_rvv_vset_v_i8m2_i8m4((vint8m4_t)(op0), (size_t)(op1), (vint8m2_t)(op2))
-#define vset_v_i16m1_i16m4(op0, op1, op2) \
-__builtin_rvv_vset_v_i16m1_i16m4((vint16m4_t)(op0), (size_t)(op1), (vint16m1_t)(op2))
-#define vset_v_i16m2_i16m4(op0, op1, op2) \
-__builtin_rvv_vset_v_i16m2_i16m4((vint16m4_t)(op0), (size_t)(op1), (vint16m2_t)(op2))
-#define vset_v_i32m1_i32m4(op0, op1, op2) \
-__builtin_rvv_vset_v_i32m1_i32m4((vint32m4_t)(op0), (size_t)(op1), (vint32m1_t)(op2))
-#define vset_v_i32m2_i32m4(op0, op1, op2) \
-__builtin_rvv_vset_v_i32m2_i32m4((vint32m4_t)(op0), (size_t)(op1), (vint32m2_t)(op2))
-#define vset_v_i64m1_i64m4(op0, op1, op2) \
-__builtin_rvv_vset_v_i64m1_i64m4((vint64m4_t)(op0), (size_t)(op1), (vint64m1_t)(op2))
-#define vset_v_i64m2_i64m4(op0, op1, op2) \
-__builtin_rvv_vset_v_i64m2_i64m4((vint64m4_t)(op0), (size_t)(op1), (vint64m2_t)(op2))
-#define vset_v_u8m1_u8m4(op0, op1, op2) \
-__builtin_rvv_vset_v_u8m1_u8m4((vuint8m4_t)(op0), (size_t)(op1), (vuint8m1_t)(op2))
-#define vset_v_u8m2_u8m4(op0, op1, op2) \
-__builtin_rvv_vset_v_u8m2_u8m4((vuint8m4_t)(op0), (size_t)(op1), (vuint8m2_t)(op2))
-#define vset_v_u16m1_u16m4(op0, op1, op2) \
-__builtin_rvv_vset_v_u16m1_u16m4((vuint16m4_t)(op0), (size_t)(op1), (vuint16m1_t)(op2))
-#define vset_v_u16m2_u16m4(op0, op1, op2) \
-__builtin_rvv_vset_v_u16m2_u16m4((vuint16m4_t)(op0), (size_t)(op1), (vuint16m2_t)(op2))
-#define vset_v_u32m1_u32m4(op0, op1, op2) \
-__builtin_rvv_vset_v_u32m1_u32m4((vuint32m4_t)(op0), (size_t)(op1), (vuint32m1_t)(op2))
-#define vset_v_u32m2_u32m4(op0, op1, op2) \
-__builtin_rvv_vset_v_u32m2_u32m4((vuint32m4_t)(op0), (size_t)(op1), (vuint32m2_t)(op2))
-#define vset_v_u64m1_u64m4(op0, op1, op2) \
-__builtin_rvv_vset_v_u64m1_u64m4((vuint64m4_t)(op0), (size_t)(op1), (vuint64m1_t)(op2))
-#define vset_v_u64m2_u64m4(op0, op1, op2) \
-__builtin_rvv_vset_v_u64m2_u64m4((vuint64m4_t)(op0), (size_t)(op1), (vuint64m2_t)(op2))
-#define vset_v_i8m1_i8m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i8m1_i8m8((vint8m8_t)(op0), (size_t)(op1), (vint8m1_t)(op2))
-#define vset_v_i8m2_i8m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i8m2_i8m8((vint8m8_t)(op0), (size_t)(op1), (vint8m2_t)(op2))
-#define vset_v_i8m4_i8m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i8m4_i8m8((vint8m8_t)(op0), (size_t)(op1), (vint8m4_t)(op2))
-#define vset_v_i16m1_i16m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i16m1_i16m8((vint16m8_t)(op0), (size_t)(op1), (vint16m1_t)(op2))
-#define vset_v_i16m2_i16m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i16m2_i16m8((vint16m8_t)(op0), (size_t)(op1), (vint16m2_t)(op2))
-#define vset_v_i16m4_i16m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i16m4_i16m8((vint16m8_t)(op0), (size_t)(op1), (vint16m4_t)(op2))
-#define vset_v_i32m1_i32m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i32m1_i32m8((vint32m8_t)(op0), (size_t)(op1), (vint32m1_t)(op2))
-#define vset_v_i32m2_i32m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i32m2_i32m8((vint32m8_t)(op0), (size_t)(op1), (vint32m2_t)(op2))
-#define vset_v_i32m4_i32m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i32m4_i32m8((vint32m8_t)(op0), (size_t)(op1), (vint32m4_t)(op2))
-#define vset_v_i64m1_i64m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i64m1_i64m8((vint64m8_t)(op0), (size_t)(op1), (vint64m1_t)(op2))
-#define vset_v_i64m2_i64m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i64m2_i64m8((vint64m8_t)(op0), (size_t)(op1), (vint64m2_t)(op2))
-#define vset_v_i64m4_i64m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i64m4_i64m8((vint64m8_t)(op0), (size_t)(op1), (vint64m4_t)(op2))
-#define vset_v_u8m1_u8m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u8m1_u8m8((vuint8m8_t)(op0), (size_t)(op1), (vuint8m1_t)(op2))
-#define vset_v_u8m2_u8m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u8m2_u8m8((vuint8m8_t)(op0), (size_t)(op1), (vuint8m2_t)(op2))
-#define vset_v_u8m4_u8m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u8m4_u8m8((vuint8m8_t)(op0), (size_t)(op1), (vuint8m4_t)(op2))
-#define vset_v_u16m1_u16m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u16m1_u16m8((vuint16m8_t)(op0), (size_t)(op1), (vuint16m1_t)(op2))
-#define vset_v_u16m2_u16m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u16m2_u16m8((vuint16m8_t)(op0), (size_t)(op1), (vuint16m2_t)(op2))
-#define vset_v_u16m4_u16m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u16m4_u16m8((vuint16m8_t)(op0), (size_t)(op1), (vuint16m4_t)(op2))
-#define vset_v_u32m1_u32m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u32m1_u32m8((vuint32m8_t)(op0), (size_t)(op1), (vuint32m1_t)(op2))
-#define vset_v_u32m2_u32m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u32m2_u32m8((vuint32m8_t)(op0), (size_t)(op1), (vuint32m2_t)(op2))
-#define vset_v_u32m4_u32m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u32m4_u32m8((vuint32m8_t)(op0), (size_t)(op1), (vuint32m4_t)(op2))
-#define vset_v_u64m1_u64m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u64m1_u64m8((vuint64m8_t)(op0), (size_t)(op1), (vuint64m1_t)(op2))
-#define vset_v_u64m2_u64m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u64m2_u64m8((vuint64m8_t)(op0), (size_t)(op1), (vuint64m2_t)(op2))
-#define vset_v_u64m4_u64m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u64m4_u64m8((vuint64m8_t)(op0), (size_t)(op1), (vuint64m4_t)(op2))
-#define vsoxei8_v_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i8m2((int8_t *)(op0), (vuint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i8m4((int8_t *)(op0), (vuint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (vuint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i8m8((int8_t *)(op0), (vuint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i8m8_m((vbool1_t)(op0), (int8_t *)(op1), (vuint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u8m4((uint8_t *)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u8m8((uint8_t *)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u8m8_m((vbool1_t)(op0), (uint8_t *)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i8m2((int8_t *)(op0), (vuint16m4_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint16m4_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i8m4((int8_t *)(op0), (vuint16m8_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (vuint16m8_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u8m2((uint8_t *)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u8m4((uint8_t *)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (vuint16m8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i8m2((int8_t *)(op0), (vuint32m8_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint32m8_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u8m2((uint8_t *)(op0), (vuint32m8_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint32m8_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i16m2((int16_t *)(op0), (vuint8m1_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint8m1_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i16m4((int16_t *)(op0), (vuint8m2_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint8m2_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i16m8((int16_t *)(op0), (vuint8m4_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i16m8_m((vbool2_t)(op0), (int16_t *)(op1), (vuint8m4_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u16m2((uint16_t *)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint8m1_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u16m4((uint16_t *)(op0), (vuint8m2_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint8m2_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u16m8((uint16_t *)(op0), (vuint8m4_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u16m8_m((vbool2_t)(op0), (uint16_t *)(op1), (vuint8m4_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i16m2((int16_t *)(op0), (vuint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i16m4((int16_t *)(op0), (vuint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i16m8((int16_t *)(op0), (vuint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i16m8_m((vbool2_t)(op0), (int16_t *)(op1), (vuint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u16m4((uint16_t *)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u16m8((uint16_t *)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u16m8_m((vbool2_t)(op0), (uint16_t *)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i16m2((int16_t *)(op0), (vuint32m4_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint32m4_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i16m4((int16_t *)(op0), (vuint32m8_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint32m8_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u16m2((uint16_t *)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u16m4((uint16_t *)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint32m8_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i16m2((int16_t *)(op0), (vuint64m8_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint64m8_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u16m2((uint16_t *)(op0), (vuint64m8_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint64m8_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i32m4((int32_t *)(op0), (vuint8m1_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint8m1_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i32m8((int32_t *)(op0), (vuint8m2_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint8m2_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u32m4((uint32_t *)(op0), (vuint8m1_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint8m1_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u32m8((uint32_t *)(op0), (vuint8m2_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint8m2_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i32m4((int32_t *)(op0), (vuint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint16m2_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i32m8((int32_t *)(op0), (vuint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint16m4_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u32m4((uint32_t *)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint16m2_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u32m8((uint32_t *)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint16m4_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i32m4((int32_t *)(op0), (vuint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i32m8((int32_t *)(op0), (vuint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u32m8((uint32_t *)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i32m4((int32_t *)(op0), (vuint64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint64m8_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u32m4((uint32_t *)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i64m4((int64_t *)(op0), (vuint8mf2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint8mf2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i64m8((int64_t *)(op0), (vuint8m1_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint8m1_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u64m4((uint64_t *)(op0), (vuint8mf2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint8mf2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u64m8((uint64_t *)(op0), (vuint8m1_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint8m1_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i64m4((int64_t *)(op0), (vuint16m1_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint16m1_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i64m8((int64_t *)(op0), (vuint16m2_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint16m2_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u64m4((uint64_t *)(op0), (vuint16m1_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint16m1_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u64m8((uint64_t *)(op0), (vuint16m2_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint16m2_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i64m4((int64_t *)(op0), (vuint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint32m2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i64m8((int64_t *)(op0), (vuint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint32m4_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u64m4((uint64_t *)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint32m2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u64m8((uint64_t *)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint32m4_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i64m4((int64_t *)(op0), (vuint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i64m8((int64_t *)(op0), (vuint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u64m8((uint64_t *)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vle16ff_v_i16m1(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_i16m1((const int16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (const int16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_i16m2(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_i16m2((const int16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (const int16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_i16m4(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_i16m4((const int16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (const int16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_i16m8(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_i16m8((const int16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (const int16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_i16mf2(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_i16mf2((const int16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (const int16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_i16mf4(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_i16mf4((const int16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (const int16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_u16m1(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_u16m1((const uint16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (const uint16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_u16m2(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_u16m2((const uint16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (const uint16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_u16m4(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_u16m4((const uint16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (const uint16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_u16m8(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_u16m8((const uint16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (const uint16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_u16mf2(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_u16mf2((const uint16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (const uint16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_u16mf4(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_u16mf4((const uint16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (const uint16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_i32m1(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_i32m1((const int32_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (const int32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_i32m2(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_i32m2((const int32_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (const int32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_i32m4(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_i32m4((const int32_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (const int32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_i32m8(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_i32m8((const int32_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (const int32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_i32mf2(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_i32mf2((const int32_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (const int32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_u32m1(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_u32m1((const uint32_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (const uint32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_u32m2(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_u32m2((const uint32_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (const uint32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_u32m4(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_u32m4((const uint32_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (const uint32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_u32m8(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_u32m8((const uint32_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (const uint32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_u32mf2(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_u32mf2((const uint32_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (const uint32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle64ff_v_i64m1(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_i64m1((const int64_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (const int64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle64ff_v_i64m2(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_i64m2((const int64_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (const int64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle64ff_v_i64m4(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_i64m4((const int64_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (const int64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle64ff_v_i64m8(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_i64m8((const int64_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (const int64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle64ff_v_u64m1(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_u64m1((const uint64_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (const uint64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle64ff_v_u64m2(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_u64m2((const uint64_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (const uint64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle64ff_v_u64m4(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_u64m4((const uint64_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (const uint64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle64ff_v_u64m8(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_u64m8((const uint64_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (const uint64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8_v_i8m1(op0, op1) \
-__builtin_rvv_vle8_v_i8m1((const int8_t *)(op0), (size_t)(op1))
-#define vle8_v_i8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vle8_v_i8m2(op0, op1) \
-__builtin_rvv_vle8_v_i8m2((const int8_t *)(op0), (size_t)(op1))
-#define vle8_v_i8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vle8_v_i8m4(op0, op1) \
-__builtin_rvv_vle8_v_i8m4((const int8_t *)(op0), (size_t)(op1))
-#define vle8_v_i8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vle8_v_i8m8(op0, op1) \
-__builtin_rvv_vle8_v_i8m8((const int8_t *)(op0), (size_t)(op1))
-#define vle8_v_i8m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vle8_v_i8mf2(op0, op1) \
-__builtin_rvv_vle8_v_i8mf2((const int8_t *)(op0), (size_t)(op1))
-#define vle8_v_i8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vle8_v_i8mf4(op0, op1) \
-__builtin_rvv_vle8_v_i8mf4((const int8_t *)(op0), (size_t)(op1))
-#define vle8_v_i8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vle8_v_i8mf8(op0, op1) \
-__builtin_rvv_vle8_v_i8mf8((const int8_t *)(op0), (size_t)(op1))
-#define vle8_v_i8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vle8_v_u8m1(op0, op1) \
-__builtin_rvv_vle8_v_u8m1((const uint8_t *)(op0), (size_t)(op1))
-#define vle8_v_u8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vle8_v_u8m2(op0, op1) \
-__builtin_rvv_vle8_v_u8m2((const uint8_t *)(op0), (size_t)(op1))
-#define vle8_v_u8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vle8_v_u8m4(op0, op1) \
-__builtin_rvv_vle8_v_u8m4((const uint8_t *)(op0), (size_t)(op1))
-#define vle8_v_u8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vle8_v_u8m8(op0, op1) \
-__builtin_rvv_vle8_v_u8m8((const uint8_t *)(op0), (size_t)(op1))
-#define vle8_v_u8m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vle8_v_u8mf2(op0, op1) \
-__builtin_rvv_vle8_v_u8mf2((const uint8_t *)(op0), (size_t)(op1))
-#define vle8_v_u8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vle8_v_u8mf4(op0, op1) \
-__builtin_rvv_vle8_v_u8mf4((const uint8_t *)(op0), (size_t)(op1))
-#define vle8_v_u8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vle8_v_u8mf8(op0, op1) \
-__builtin_rvv_vle8_v_u8mf8((const uint8_t *)(op0), (size_t)(op1))
-#define vle8_v_u8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vle8ff_v_i8m1(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_i8m1((const int8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_i8m2(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_i8m2((const int8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_i8m4(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_i8m4((const int8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_i8m8(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_i8m8((const int8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_i8mf2(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_i8mf2((const int8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_i8mf4(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_i8mf4((const int8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_i8mf8(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_i8mf8((const int8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_u8m1(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_u8m1((const uint8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_u8m2(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_u8m2((const uint8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_u8m4(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_u8m4((const uint8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_u8m8(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_u8m8((const uint8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_u8mf2(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_u8mf2((const uint8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_u8mf4(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_u8mf4((const uint8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_u8mf8(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_u8mf8((const uint8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vneg_v_i8m1(op0, op1) \
-__builtin_rvv_vneg_v_i8m1((vint8m1_t)(op0), (size_t)(op1))
-#define vneg_v_i8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vneg_v_i8m2(op0, op1) \
-__builtin_rvv_vneg_v_i8m2((vint8m2_t)(op0), (size_t)(op1))
-#define vneg_v_i8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vneg_v_i8m4(op0, op1) \
-__builtin_rvv_vneg_v_i8m4((vint8m4_t)(op0), (size_t)(op1))
-#define vneg_v_i8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vneg_v_i8m8(op0, op1) \
-__builtin_rvv_vneg_v_i8m8((vint8m8_t)(op0), (size_t)(op1))
-#define vneg_v_i8m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vneg_v_i8mf2(op0, op1) \
-__builtin_rvv_vneg_v_i8mf2((vint8mf2_t)(op0), (size_t)(op1))
-#define vneg_v_i8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vneg_v_i8mf4(op0, op1) \
-__builtin_rvv_vneg_v_i8mf4((vint8mf4_t)(op0), (size_t)(op1))
-#define vneg_v_i8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vneg_v_i8mf8(op0, op1) \
-__builtin_rvv_vneg_v_i8mf8((vint8mf8_t)(op0), (size_t)(op1))
-#define vneg_v_i8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vneg_v_i16m1(op0, op1) \
-__builtin_rvv_vneg_v_i16m1((vint16m1_t)(op0), (size_t)(op1))
-#define vneg_v_i16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vneg_v_i16m2(op0, op1) \
-__builtin_rvv_vneg_v_i16m2((vint16m2_t)(op0), (size_t)(op1))
-#define vneg_v_i16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vneg_v_i16m4(op0, op1) \
-__builtin_rvv_vneg_v_i16m4((vint16m4_t)(op0), (size_t)(op1))
-#define vneg_v_i16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vneg_v_i16m8(op0, op1) \
-__builtin_rvv_vneg_v_i16m8((vint16m8_t)(op0), (size_t)(op1))
-#define vneg_v_i16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vneg_v_i16mf2(op0, op1) \
-__builtin_rvv_vneg_v_i16mf2((vint16mf2_t)(op0), (size_t)(op1))
-#define vneg_v_i16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vneg_v_i16mf4(op0, op1) \
-__builtin_rvv_vneg_v_i16mf4((vint16mf4_t)(op0), (size_t)(op1))
-#define vneg_v_i16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vneg_v_i32m1(op0, op1) \
-__builtin_rvv_vneg_v_i32m1((vint32m1_t)(op0), (size_t)(op1))
-#define vneg_v_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vneg_v_i32m2(op0, op1) \
-__builtin_rvv_vneg_v_i32m2((vint32m2_t)(op0), (size_t)(op1))
-#define vneg_v_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vneg_v_i32m4(op0, op1) \
-__builtin_rvv_vneg_v_i32m4((vint32m4_t)(op0), (size_t)(op1))
-#define vneg_v_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vneg_v_i32m8(op0, op1) \
-__builtin_rvv_vneg_v_i32m8((vint32m8_t)(op0), (size_t)(op1))
-#define vneg_v_i32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vneg_v_i32mf2(op0, op1) \
-__builtin_rvv_vneg_v_i32mf2((vint32mf2_t)(op0), (size_t)(op1))
-#define vneg_v_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vneg_v_i64m1(op0, op1) \
-__builtin_rvv_vneg_v_i64m1((vint64m1_t)(op0), (size_t)(op1))
-#define vneg_v_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vneg_v_i64m2(op0, op1) \
-__builtin_rvv_vneg_v_i64m2((vint64m2_t)(op0), (size_t)(op1))
-#define vneg_v_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vneg_v_i64m4(op0, op1) \
-__builtin_rvv_vneg_v_i64m4((vint64m4_t)(op0), (size_t)(op1))
-#define vneg_v_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vneg_v_i64m8(op0, op1) \
-__builtin_rvv_vneg_v_i64m8((vint64m8_t)(op0), (size_t)(op1))
-#define vneg_v_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vnot_v_i8m1(op0, op1) \
-__builtin_rvv_vnot_v_i8m1((vint8m1_t)(op0), (size_t)(op1))
-#define vnot_v_i8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vnot_v_i8m2(op0, op1) \
-__builtin_rvv_vnot_v_i8m2((vint8m2_t)(op0), (size_t)(op1))
-#define vnot_v_i8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vnot_v_i8m4(op0, op1) \
-__builtin_rvv_vnot_v_i8m4((vint8m4_t)(op0), (size_t)(op1))
-#define vnot_v_i8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vnot_v_i8m8(op0, op1) \
-__builtin_rvv_vnot_v_i8m8((vint8m8_t)(op0), (size_t)(op1))
-#define vnot_v_i8m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vnot_v_i8mf2(op0, op1) \
-__builtin_rvv_vnot_v_i8mf2((vint8mf2_t)(op0), (size_t)(op1))
-#define vnot_v_i8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vnot_v_i8mf4(op0, op1) \
-__builtin_rvv_vnot_v_i8mf4((vint8mf4_t)(op0), (size_t)(op1))
-#define vnot_v_i8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vnot_v_i8mf8(op0, op1) \
-__builtin_rvv_vnot_v_i8mf8((vint8mf8_t)(op0), (size_t)(op1))
-#define vnot_v_i8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vnot_v_i16m1(op0, op1) \
-__builtin_rvv_vnot_v_i16m1((vint16m1_t)(op0), (size_t)(op1))
-#define vnot_v_i16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vnot_v_i16m2(op0, op1) \
-__builtin_rvv_vnot_v_i16m2((vint16m2_t)(op0), (size_t)(op1))
-#define vnot_v_i16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vnot_v_i16m4(op0, op1) \
-__builtin_rvv_vnot_v_i16m4((vint16m4_t)(op0), (size_t)(op1))
-#define vnot_v_i16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vnot_v_i16m8(op0, op1) \
-__builtin_rvv_vnot_v_i16m8((vint16m8_t)(op0), (size_t)(op1))
-#define vnot_v_i16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vnot_v_i16mf2(op0, op1) \
-__builtin_rvv_vnot_v_i16mf2((vint16mf2_t)(op0), (size_t)(op1))
-#define vnot_v_i16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vnot_v_i16mf4(op0, op1) \
-__builtin_rvv_vnot_v_i16mf4((vint16mf4_t)(op0), (size_t)(op1))
-#define vnot_v_i16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vnot_v_i32m1(op0, op1) \
-__builtin_rvv_vnot_v_i32m1((vint32m1_t)(op0), (size_t)(op1))
-#define vnot_v_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vnot_v_i32m2(op0, op1) \
-__builtin_rvv_vnot_v_i32m2((vint32m2_t)(op0), (size_t)(op1))
-#define vnot_v_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vnot_v_i32m4(op0, op1) \
-__builtin_rvv_vnot_v_i32m4((vint32m4_t)(op0), (size_t)(op1))
-#define vnot_v_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vnot_v_i32m8(op0, op1) \
-__builtin_rvv_vnot_v_i32m8((vint32m8_t)(op0), (size_t)(op1))
-#define vnot_v_i32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vnot_v_i32mf2(op0, op1) \
-__builtin_rvv_vnot_v_i32mf2((vint32mf2_t)(op0), (size_t)(op1))
-#define vnot_v_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vnot_v_i64m1(op0, op1) \
-__builtin_rvv_vnot_v_i64m1((vint64m1_t)(op0), (size_t)(op1))
-#define vnot_v_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vnot_v_i64m2(op0, op1) \
-__builtin_rvv_vnot_v_i64m2((vint64m2_t)(op0), (size_t)(op1))
-#define vnot_v_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vnot_v_i64m4(op0, op1) \
-__builtin_rvv_vnot_v_i64m4((vint64m4_t)(op0), (size_t)(op1))
-#define vnot_v_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vnot_v_i64m8(op0, op1) \
-__builtin_rvv_vnot_v_i64m8((vint64m8_t)(op0), (size_t)(op1))
-#define vnot_v_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vlse8_v_i8m1(op0, op1, op2) \
-__builtin_rvv_vlse8_v_i8m1((const int8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_i8m2(op0, op1, op2) \
-__builtin_rvv_vlse8_v_i8m2((const int8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_i8m4(op0, op1, op2) \
-__builtin_rvv_vlse8_v_i8m4((const int8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_i8m8(op0, op1, op2) \
-__builtin_rvv_vlse8_v_i8m8((const int8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_i8mf2(op0, op1, op2) \
-__builtin_rvv_vlse8_v_i8mf2((const int8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_i8mf4(op0, op1, op2) \
-__builtin_rvv_vlse8_v_i8mf4((const int8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_i8mf8(op0, op1, op2) \
-__builtin_rvv_vlse8_v_i8mf8((const int8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vnot_v_u8m1(op0, op1) \
-__builtin_rvv_vnot_v_u8m1((vuint8m1_t)(op0), (size_t)(op1))
-#define vnot_v_u8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vnot_v_u8m2(op0, op1) \
-__builtin_rvv_vnot_v_u8m2((vuint8m2_t)(op0), (size_t)(op1))
-#define vnot_v_u8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vnot_v_u8m4(op0, op1) \
-__builtin_rvv_vnot_v_u8m4((vuint8m4_t)(op0), (size_t)(op1))
-#define vnot_v_u8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vnot_v_u8m8(op0, op1) \
-__builtin_rvv_vnot_v_u8m8((vuint8m8_t)(op0), (size_t)(op1))
-#define vnot_v_u8m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vnot_v_u8mf2(op0, op1) \
-__builtin_rvv_vnot_v_u8mf2((vuint8mf2_t)(op0), (size_t)(op1))
-#define vnot_v_u8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vnot_v_u8mf4(op0, op1) \
-__builtin_rvv_vnot_v_u8mf4((vuint8mf4_t)(op0), (size_t)(op1))
-#define vnot_v_u8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vnot_v_u8mf8(op0, op1) \
-__builtin_rvv_vnot_v_u8mf8((vuint8mf8_t)(op0), (size_t)(op1))
-#define vnot_v_u8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vnot_v_u16m1(op0, op1) \
-__builtin_rvv_vnot_v_u16m1((vuint16m1_t)(op0), (size_t)(op1))
-#define vnot_v_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vnot_v_u16m2(op0, op1) \
-__builtin_rvv_vnot_v_u16m2((vuint16m2_t)(op0), (size_t)(op1))
-#define vnot_v_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vnot_v_u16m4(op0, op1) \
-__builtin_rvv_vnot_v_u16m4((vuint16m4_t)(op0), (size_t)(op1))
-#define vnot_v_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vnot_v_u16m8(op0, op1) \
-__builtin_rvv_vnot_v_u16m8((vuint16m8_t)(op0), (size_t)(op1))
-#define vnot_v_u16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vnot_v_u16mf2(op0, op1) \
-__builtin_rvv_vnot_v_u16mf2((vuint16mf2_t)(op0), (size_t)(op1))
-#define vnot_v_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vnot_v_u16mf4(op0, op1) \
-__builtin_rvv_vnot_v_u16mf4((vuint16mf4_t)(op0), (size_t)(op1))
-#define vnot_v_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vnot_v_u32m1(op0, op1) \
-__builtin_rvv_vnot_v_u32m1((vuint32m1_t)(op0), (size_t)(op1))
-#define vnot_v_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vnot_v_u32m2(op0, op1) \
-__builtin_rvv_vnot_v_u32m2((vuint32m2_t)(op0), (size_t)(op1))
-#define vnot_v_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vnot_v_u32m4(op0, op1) \
-__builtin_rvv_vnot_v_u32m4((vuint32m4_t)(op0), (size_t)(op1))
-#define vnot_v_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vnot_v_u32m8(op0, op1) \
-__builtin_rvv_vnot_v_u32m8((vuint32m8_t)(op0), (size_t)(op1))
-#define vnot_v_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vnot_v_u32mf2(op0, op1) \
-__builtin_rvv_vnot_v_u32mf2((vuint32mf2_t)(op0), (size_t)(op1))
-#define vnot_v_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vnot_v_u64m1(op0, op1) \
-__builtin_rvv_vnot_v_u64m1((vuint64m1_t)(op0), (size_t)(op1))
-#define vnot_v_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vnot_v_u64m2(op0, op1) \
-__builtin_rvv_vnot_v_u64m2((vuint64m2_t)(op0), (size_t)(op1))
-#define vnot_v_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vnot_v_u64m4(op0, op1) \
-__builtin_rvv_vnot_v_u64m4((vuint64m4_t)(op0), (size_t)(op1))
-#define vnot_v_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vnot_v_u64m8(op0, op1) \
-__builtin_rvv_vnot_v_u64m8((vuint64m8_t)(op0), (size_t)(op1))
-#define vnot_v_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vmmv_m_b8(op0, op1) \
-__builtin_rvv_vmmv_m_b8((vbool8_t)(op0), (size_t)(op1))
-#define vmmv_m_b4(op0, op1) \
-__builtin_rvv_vmmv_m_b4((vbool4_t)(op0), (size_t)(op1))
-#define vmmv_m_b2(op0, op1) \
-__builtin_rvv_vmmv_m_b2((vbool2_t)(op0), (size_t)(op1))
-#define vmmv_m_b1(op0, op1) \
-__builtin_rvv_vmmv_m_b1((vbool1_t)(op0), (size_t)(op1))
-#define vmmv_m_b16(op0, op1) \
-__builtin_rvv_vmmv_m_b16((vbool16_t)(op0), (size_t)(op1))
-#define vmmv_m_b32(op0, op1) \
-__builtin_rvv_vmmv_m_b32((vbool32_t)(op0), (size_t)(op1))
-#define vmmv_m_b64(op0, op1) \
-__builtin_rvv_vmmv_m_b64((vbool64_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u16m2(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u16m2((vuint8m1_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u16m4(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u16m4((vuint8m2_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u16m8(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u16m8((vuint8m4_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u16m1(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u16m1((vuint8mf2_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u16mf2(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u16mf2((vuint8mf4_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u16mf4(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u16mf4((vuint8mf8_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u32m2(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u32m2((vuint16m1_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u32m4(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u32m4((vuint16m2_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u32m8(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u32m8((vuint16m4_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u32m1(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u32m1((vuint16mf2_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u32mf2(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u32mf2((vuint16mf4_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u64m2(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u64m2((vuint32m1_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u64m4(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u64m4((vuint32m2_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u64m8(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u64m8((vuint32m4_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u64m1(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u64m1((vuint32mf2_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i8m1(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i8m1((vint16m2_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i8m2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i8m2((vint16m4_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i8m4(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i8m4((vint16m8_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i8mf2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i8mf2((vint16m1_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i8mf4(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i8mf4((vint16mf2_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i8mf8(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i8mf8((vint16mf4_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i16m1(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i16m1((vint32m2_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i16m2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i16m2((vint32m4_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i16m4(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i16m4((vint32m8_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i16mf2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i16mf2((vint32m1_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i16mf4(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i16mf4((vint32mf2_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i32m1(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i32m1((vint64m2_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i32m2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i32m2((vint64m4_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i32m4(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i32m4((vint64m8_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i32mf2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i32mf2((vint64m1_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vle16_v_i16m1(op0, op1) \
-__builtin_rvv_vle16_v_i16m1((const int16_t *)(op0), (size_t)(op1))
-#define vle16_v_i16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (const int16_t *)(op2), (size_t)(op3))
-#define vle16_v_i16m2(op0, op1) \
-__builtin_rvv_vle16_v_i16m2((const int16_t *)(op0), (size_t)(op1))
-#define vle16_v_i16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (const int16_t *)(op2), (size_t)(op3))
-#define vle16_v_i16m4(op0, op1) \
-__builtin_rvv_vle16_v_i16m4((const int16_t *)(op0), (size_t)(op1))
-#define vle16_v_i16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (const int16_t *)(op2), (size_t)(op3))
-#define vle16_v_i16m8(op0, op1) \
-__builtin_rvv_vle16_v_i16m8((const int16_t *)(op0), (size_t)(op1))
-#define vle16_v_i16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (const int16_t *)(op2), (size_t)(op3))
-#define vle16_v_i16mf2(op0, op1) \
-__builtin_rvv_vle16_v_i16mf2((const int16_t *)(op0), (size_t)(op1))
-#define vle16_v_i16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (const int16_t *)(op2), (size_t)(op3))
-#define vle16_v_i16mf4(op0, op1) \
-__builtin_rvv_vle16_v_i16mf4((const int16_t *)(op0), (size_t)(op1))
-#define vle16_v_i16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (const int16_t *)(op2), (size_t)(op3))
-#define vle16_v_u16m1(op0, op1) \
-__builtin_rvv_vle16_v_u16m1((const uint16_t *)(op0), (size_t)(op1))
-#define vle16_v_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (const uint16_t *)(op2), (size_t)(op3))
-#define vle16_v_u16m2(op0, op1) \
-__builtin_rvv_vle16_v_u16m2((const uint16_t *)(op0), (size_t)(op1))
-#define vle16_v_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (const uint16_t *)(op2), (size_t)(op3))
-#define vle16_v_u16m4(op0, op1) \
-__builtin_rvv_vle16_v_u16m4((const uint16_t *)(op0), (size_t)(op1))
-#define vle16_v_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (const uint16_t *)(op2), (size_t)(op3))
-#define vle16_v_u16m8(op0, op1) \
-__builtin_rvv_vle16_v_u16m8((const uint16_t *)(op0), (size_t)(op1))
-#define vle16_v_u16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (const uint16_t *)(op2), (size_t)(op3))
-#define vle16_v_u16mf2(op0, op1) \
-__builtin_rvv_vle16_v_u16mf2((const uint16_t *)(op0), (size_t)(op1))
-#define vle16_v_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (const uint16_t *)(op2), (size_t)(op3))
-#define vle16_v_u16mf4(op0, op1) \
-__builtin_rvv_vle16_v_u16mf4((const uint16_t *)(op0), (size_t)(op1))
-#define vle16_v_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (const uint16_t *)(op2), (size_t)(op3))
-#define vle32_v_i32m1(op0, op1) \
-__builtin_rvv_vle32_v_i32m1((const int32_t *)(op0), (size_t)(op1))
-#define vle32_v_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (const int32_t *)(op2), (size_t)(op3))
-#define vle32_v_i32m2(op0, op1) \
-__builtin_rvv_vle32_v_i32m2((const int32_t *)(op0), (size_t)(op1))
-#define vle32_v_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (const int32_t *)(op2), (size_t)(op3))
-#define vle32_v_i32m4(op0, op1) \
-__builtin_rvv_vle32_v_i32m4((const int32_t *)(op0), (size_t)(op1))
-#define vle32_v_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (const int32_t *)(op2), (size_t)(op3))
-#define vle32_v_i32m8(op0, op1) \
-__builtin_rvv_vle32_v_i32m8((const int32_t *)(op0), (size_t)(op1))
-#define vle32_v_i32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (const int32_t *)(op2), (size_t)(op3))
-#define vle32_v_i32mf2(op0, op1) \
-__builtin_rvv_vle32_v_i32mf2((const int32_t *)(op0), (size_t)(op1))
-#define vle32_v_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (const int32_t *)(op2), (size_t)(op3))
-#define vle32_v_u32m1(op0, op1) \
-__builtin_rvv_vle32_v_u32m1((const uint32_t *)(op0), (size_t)(op1))
-#define vle32_v_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (const uint32_t *)(op2), (size_t)(op3))
-#define vle32_v_u32m2(op0, op1) \
-__builtin_rvv_vle32_v_u32m2((const uint32_t *)(op0), (size_t)(op1))
-#define vle32_v_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (const uint32_t *)(op2), (size_t)(op3))
-#define vle32_v_u32m4(op0, op1) \
-__builtin_rvv_vle32_v_u32m4((const uint32_t *)(op0), (size_t)(op1))
-#define vle32_v_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (const uint32_t *)(op2), (size_t)(op3))
-#define vle32_v_u32m8(op0, op1) \
-__builtin_rvv_vle32_v_u32m8((const uint32_t *)(op0), (size_t)(op1))
-#define vle32_v_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (const uint32_t *)(op2), (size_t)(op3))
-#define vle32_v_u32mf2(op0, op1) \
-__builtin_rvv_vle32_v_u32mf2((const uint32_t *)(op0), (size_t)(op1))
-#define vle32_v_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (const uint32_t *)(op2), (size_t)(op3))
-#define vlse8_v_u8m1(op0, op1, op2) \
-__builtin_rvv_vlse8_v_u8m1((const uint8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_u8m2(op0, op1, op2) \
-__builtin_rvv_vlse8_v_u8m2((const uint8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_u8m4(op0, op1, op2) \
-__builtin_rvv_vlse8_v_u8m4((const uint8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_u8m8(op0, op1, op2) \
-__builtin_rvv_vlse8_v_u8m8((const uint8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_u8mf2(op0, op1, op2) \
-__builtin_rvv_vlse8_v_u8mf2((const uint8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_u8mf4(op0, op1, op2) \
-__builtin_rvv_vlse8_v_u8mf4((const uint8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_u8mf8(op0, op1, op2) \
-__builtin_rvv_vlse8_v_u8mf8((const uint8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vle64_v_i64m1(op0, op1) \
-__builtin_rvv_vle64_v_i64m1((const int64_t *)(op0), (size_t)(op1))
-#define vle64_v_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (const int64_t *)(op2), (size_t)(op3))
-#define vle64_v_i64m2(op0, op1) \
-__builtin_rvv_vle64_v_i64m2((const int64_t *)(op0), (size_t)(op1))
-#define vle64_v_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (const int64_t *)(op2), (size_t)(op3))
-#define vle64_v_i64m4(op0, op1) \
-__builtin_rvv_vle64_v_i64m4((const int64_t *)(op0), (size_t)(op1))
-#define vle64_v_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (const int64_t *)(op2), (size_t)(op3))
-#define vle64_v_i64m8(op0, op1) \
-__builtin_rvv_vle64_v_i64m8((const int64_t *)(op0), (size_t)(op1))
-#define vle64_v_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (const int64_t *)(op2), (size_t)(op3))
-#define vle64_v_u64m1(op0, op1) \
-__builtin_rvv_vle64_v_u64m1((const uint64_t *)(op0), (size_t)(op1))
-#define vle64_v_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (const uint64_t *)(op2), (size_t)(op3))
-#define vle64_v_u64m2(op0, op1) \
-__builtin_rvv_vle64_v_u64m2((const uint64_t *)(op0), (size_t)(op1))
-#define vle64_v_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (const uint64_t *)(op2), (size_t)(op3))
-#define vle64_v_u64m4(op0, op1) \
-__builtin_rvv_vle64_v_u64m4((const uint64_t *)(op0), (size_t)(op1))
-#define vle64_v_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (const uint64_t *)(op2), (size_t)(op3))
-#define vle64_v_u64m8(op0, op1) \
-__builtin_rvv_vle64_v_u64m8((const uint64_t *)(op0), (size_t)(op1))
-#define vle64_v_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (const uint64_t *)(op2), (size_t)(op3))
-#define vse16_v_i16m1(op0, op1, op2) \
-__builtin_rvv_vse16_v_i16m1((int16_t *)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vse16_v_i16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vse16_v_i16m2(op0, op1, op2) \
-__builtin_rvv_vse16_v_i16m2((int16_t *)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vse16_v_i16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vse16_v_i16m4(op0, op1, op2) \
-__builtin_rvv_vse16_v_i16m4((int16_t *)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vse16_v_i16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vse16_v_i16m8(op0, op1, op2) \
-__builtin_rvv_vse16_v_i16m8((int16_t *)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vse16_v_i16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_i16m8_m((vbool2_t)(op0), (int16_t *)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vse16_v_i16mf2(op0, op1, op2) \
-__builtin_rvv_vse16_v_i16mf2((int16_t *)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vse16_v_i16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vse16_v_i16mf4(op0, op1, op2) \
-__builtin_rvv_vse16_v_i16mf4((int16_t *)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vse16_v_i16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vse16_v_u16m1(op0, op1, op2) \
-__builtin_rvv_vse16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vse16_v_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vse16_v_u16m2(op0, op1, op2) \
-__builtin_rvv_vse16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vse16_v_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vse16_v_u16m4(op0, op1, op2) \
-__builtin_rvv_vse16_v_u16m4((uint16_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vse16_v_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vse16_v_u16m8(op0, op1, op2) \
-__builtin_rvv_vse16_v_u16m8((uint16_t *)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vse16_v_u16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_u16m8_m((vbool2_t)(op0), (uint16_t *)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vse16_v_u16mf2(op0, op1, op2) \
-__builtin_rvv_vse16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vse16_v_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vse16_v_u16mf4(op0, op1, op2) \
-__builtin_rvv_vse16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vse16_v_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vse32_v_i32m1(op0, op1, op2) \
-__builtin_rvv_vse32_v_i32m1((int32_t *)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vse32_v_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vse32_v_i32m2(op0, op1, op2) \
-__builtin_rvv_vse32_v_i32m2((int32_t *)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vse32_v_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vse32_v_i32m4(op0, op1, op2) \
-__builtin_rvv_vse32_v_i32m4((int32_t *)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vse32_v_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vse32_v_i32m8(op0, op1, op2) \
-__builtin_rvv_vse32_v_i32m8((int32_t *)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vse32_v_i32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vse32_v_i32mf2(op0, op1, op2) \
-__builtin_rvv_vse32_v_i32mf2((int32_t *)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vse32_v_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vse32_v_u32m1(op0, op1, op2) \
-__builtin_rvv_vse32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vse32_v_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vse32_v_u32m2(op0, op1, op2) \
-__builtin_rvv_vse32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vse32_v_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vse32_v_u32m4(op0, op1, op2) \
-__builtin_rvv_vse32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vse32_v_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vse32_v_u32m8(op0, op1, op2) \
-__builtin_rvv_vse32_v_u32m8((uint32_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vse32_v_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vse32_v_u32mf2(op0, op1, op2) \
-__builtin_rvv_vse32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vse32_v_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vluxei8_v_i8m1(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i8m1((const int8_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vluxei8_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (const int8_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_i8m2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i8m2((const int8_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vluxei8_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (const int8_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxei8_v_i8m4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i8m4((const int8_t *)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vluxei8_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (const int8_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vluxei8_v_i8m8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i8m8((const int8_t *)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vluxei8_v_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (const int8_t *)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vluxei8_v_i8mf2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i8mf2((const int8_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vluxei8_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (const int8_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_i8mf4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i8mf4((const int8_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vluxei8_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (const int8_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_i8mf8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i8mf8((const int8_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vluxei8_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (const int8_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vse64_v_i64m1(op0, op1, op2) \
-__builtin_rvv_vse64_v_i64m1((int64_t *)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vse64_v_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vse64_v_i64m2(op0, op1, op2) \
-__builtin_rvv_vse64_v_i64m2((int64_t *)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vse64_v_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vse64_v_i64m4(op0, op1, op2) \
-__builtin_rvv_vse64_v_i64m4((int64_t *)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vse64_v_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vse64_v_i64m8(op0, op1, op2) \
-__builtin_rvv_vse64_v_i64m8((int64_t *)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vse64_v_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vse64_v_u64m1(op0, op1, op2) \
-__builtin_rvv_vse64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vse64_v_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vse64_v_u64m2(op0, op1, op2) \
-__builtin_rvv_vse64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vse64_v_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vse64_v_u64m4(op0, op1, op2) \
-__builtin_rvv_vse64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vse64_v_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vse64_v_u64m8(op0, op1, op2) \
-__builtin_rvv_vse64_v_u64m8((uint64_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vse64_v_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vlse16_v_i16m1(op0, op1, op2) \
-__builtin_rvv_vlse16_v_i16m1((const int16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (const int16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_i16m2(op0, op1, op2) \
-__builtin_rvv_vlse16_v_i16m2((const int16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (const int16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_i16m4(op0, op1, op2) \
-__builtin_rvv_vlse16_v_i16m4((const int16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (const int16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_i16m8(op0, op1, op2) \
-__builtin_rvv_vlse16_v_i16m8((const int16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (const int16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_i16mf2(op0, op1, op2) \
-__builtin_rvv_vlse16_v_i16mf2((const int16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (const int16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_i16mf4(op0, op1, op2) \
-__builtin_rvv_vlse16_v_i16mf4((const int16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (const int16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_u16m1(op0, op1, op2) \
-__builtin_rvv_vlse16_v_u16m1((const uint16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (const uint16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_u16m2(op0, op1, op2) \
-__builtin_rvv_vlse16_v_u16m2((const uint16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (const uint16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_u16m4(op0, op1, op2) \
-__builtin_rvv_vlse16_v_u16m4((const uint16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (const uint16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_u16m8(op0, op1, op2) \
-__builtin_rvv_vlse16_v_u16m8((const uint16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (const uint16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_u16mf2(op0, op1, op2) \
-__builtin_rvv_vlse16_v_u16mf2((const uint16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (const uint16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_u16mf4(op0, op1, op2) \
-__builtin_rvv_vlse16_v_u16mf4((const uint16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (const uint16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_i32m1(op0, op1, op2) \
-__builtin_rvv_vlse32_v_i32m1((const int32_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (const int32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_i32m2(op0, op1, op2) \
-__builtin_rvv_vlse32_v_i32m2((const int32_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (const int32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_i32m4(op0, op1, op2) \
-__builtin_rvv_vlse32_v_i32m4((const int32_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (const int32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_i32m8(op0, op1, op2) \
-__builtin_rvv_vlse32_v_i32m8((const int32_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (const int32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_i32mf2(op0, op1, op2) \
-__builtin_rvv_vlse32_v_i32mf2((const int32_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (const int32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_u32m1(op0, op1, op2) \
-__builtin_rvv_vlse32_v_u32m1((const uint32_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (const uint32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_u32m2(op0, op1, op2) \
-__builtin_rvv_vlse32_v_u32m2((const uint32_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (const uint32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_u32m4(op0, op1, op2) \
-__builtin_rvv_vlse32_v_u32m4((const uint32_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (const uint32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_u32m8(op0, op1, op2) \
-__builtin_rvv_vlse32_v_u32m8((const uint32_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (const uint32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_u32mf2(op0, op1, op2) \
-__builtin_rvv_vlse32_v_u32mf2((const uint32_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (const uint32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse64_v_i64m1(op0, op1, op2) \
-__builtin_rvv_vlse64_v_i64m1((const int64_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (const int64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse64_v_i64m2(op0, op1, op2) \
-__builtin_rvv_vlse64_v_i64m2((const int64_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (const int64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse64_v_i64m4(op0, op1, op2) \
-__builtin_rvv_vlse64_v_i64m4((const int64_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (const int64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse64_v_i64m8(op0, op1, op2) \
-__builtin_rvv_vlse64_v_i64m8((const int64_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (const int64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vfirst_m_b8(op0, op1) \
-__builtin_rvv_vfirst_m_b8((vbool8_t)(op0), (size_t)(op1))
-#define vfirst_m_b8_m(op0, op1, op2) \
-__builtin_rvv_vfirst_m_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (size_t)(op2))
-#define vfirst_m_b4(op0, op1) \
-__builtin_rvv_vfirst_m_b4((vbool4_t)(op0), (size_t)(op1))
-#define vfirst_m_b4_m(op0, op1, op2) \
-__builtin_rvv_vfirst_m_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (size_t)(op2))
-#define vfirst_m_b2(op0, op1) \
-__builtin_rvv_vfirst_m_b2((vbool2_t)(op0), (size_t)(op1))
-#define vfirst_m_b2_m(op0, op1, op2) \
-__builtin_rvv_vfirst_m_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (size_t)(op2))
-#define vfirst_m_b1(op0, op1) \
-__builtin_rvv_vfirst_m_b1((vbool1_t)(op0), (size_t)(op1))
-#define vfirst_m_b1_m(op0, op1, op2) \
-__builtin_rvv_vfirst_m_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (size_t)(op2))
-#define vfirst_m_b16(op0, op1) \
-__builtin_rvv_vfirst_m_b16((vbool16_t)(op0), (size_t)(op1))
-#define vfirst_m_b16_m(op0, op1, op2) \
-__builtin_rvv_vfirst_m_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (size_t)(op2))
-#define vfirst_m_b32(op0, op1) \
-__builtin_rvv_vfirst_m_b32((vbool32_t)(op0), (size_t)(op1))
-#define vfirst_m_b32_m(op0, op1, op2) \
-__builtin_rvv_vfirst_m_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (size_t)(op2))
-#define vfirst_m_b64(op0, op1) \
-__builtin_rvv_vfirst_m_b64((vbool64_t)(op0), (size_t)(op1))
-#define vfirst_m_b64_m(op0, op1, op2) \
-__builtin_rvv_vfirst_m_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (size_t)(op2))
-#define vle1_v_b8(op0, op1) \
-__builtin_rvv_vle1_v_b8((const uint8_t *)(op0), (size_t)(op1))
-#define vle1_v_b4(op0, op1) \
-__builtin_rvv_vle1_v_b4((const uint8_t *)(op0), (size_t)(op1))
-#define vle1_v_b2(op0, op1) \
-__builtin_rvv_vle1_v_b2((const uint8_t *)(op0), (size_t)(op1))
-#define vle1_v_b1(op0, op1) \
-__builtin_rvv_vle1_v_b1((const uint8_t *)(op0), (size_t)(op1))
-#define vle1_v_b16(op0, op1) \
-__builtin_rvv_vle1_v_b16((const uint8_t *)(op0), (size_t)(op1))
-#define vle1_v_b32(op0, op1) \
-__builtin_rvv_vle1_v_b32((const uint8_t *)(op0), (size_t)(op1))
-#define vle1_v_b64(op0, op1) \
-__builtin_rvv_vle1_v_b64((const uint8_t *)(op0), (size_t)(op1))
-#define vlmul_ext_v_i8mf2_i8m1(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf2_i8m1((vint8mf2_t)(op0))
-#define vlmul_ext_v_i8mf4_i8m1(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf4_i8m1((vint8mf4_t)(op0))
-#define vlmul_ext_v_i8mf8_i8m1(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf8_i8m1((vint8mf8_t)(op0))
-#define vlmul_ext_v_i16mf2_i16m1(op0) \
-__builtin_rvv_vlmul_ext_v_i16mf2_i16m1((vint16mf2_t)(op0))
-#define vlmul_ext_v_i16mf4_i16m1(op0) \
-__builtin_rvv_vlmul_ext_v_i16mf4_i16m1((vint16mf4_t)(op0))
-#define vlmul_ext_v_i32mf2_i32m1(op0) \
-__builtin_rvv_vlmul_ext_v_i32mf2_i32m1((vint32mf2_t)(op0))
-#define vlmul_ext_v_i8mf4_i8mf2(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf4_i8mf2((vint8mf4_t)(op0))
-#define vlmul_ext_v_i8mf8_i8mf2(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf8_i8mf2((vint8mf8_t)(op0))
-#define vlmul_ext_v_i16mf4_i16mf2(op0) \
-__builtin_rvv_vlmul_ext_v_i16mf4_i16mf2((vint16mf4_t)(op0))
-#define vlmul_ext_v_i8mf8_i8mf4(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf8_i8mf4((vint8mf8_t)(op0))
-#define vlmul_ext_v_i8m1_i8m2(op0) \
-__builtin_rvv_vlmul_ext_v_i8m1_i8m2((vint8m1_t)(op0))
-#define vlmul_ext_v_i8mf2_i8m2(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf2_i8m2((vint8mf2_t)(op0))
-#define vlmul_ext_v_i8mf4_i8m2(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf4_i8m2((vint8mf4_t)(op0))
-#define vlmul_ext_v_i8mf8_i8m2(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf8_i8m2((vint8mf8_t)(op0))
-#define vlmul_ext_v_i16m1_i16m2(op0) \
-__builtin_rvv_vlmul_ext_v_i16m1_i16m2((vint16m1_t)(op0))
-#define vlmul_ext_v_i16mf2_i16m2(op0) \
-__builtin_rvv_vlmul_ext_v_i16mf2_i16m2((vint16mf2_t)(op0))
-#define vlmul_ext_v_i16mf4_i16m2(op0) \
-__builtin_rvv_vlmul_ext_v_i16mf4_i16m2((vint16mf4_t)(op0))
-#define vlmul_ext_v_i32m1_i32m2(op0) \
-__builtin_rvv_vlmul_ext_v_i32m1_i32m2((vint32m1_t)(op0))
-#define vlmul_ext_v_i32mf2_i32m2(op0) \
-__builtin_rvv_vlmul_ext_v_i32mf2_i32m2((vint32mf2_t)(op0))
-#define vlmul_ext_v_i64m1_i64m2(op0) \
-__builtin_rvv_vlmul_ext_v_i64m1_i64m2((vint64m1_t)(op0))
-#define vlmul_ext_v_i8m1_i8m4(op0) \
-__builtin_rvv_vlmul_ext_v_i8m1_i8m4((vint8m1_t)(op0))
-#define vlmul_ext_v_i8m2_i8m4(op0) \
-__builtin_rvv_vlmul_ext_v_i8m2_i8m4((vint8m2_t)(op0))
-#define vlmul_ext_v_i8mf2_i8m4(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf2_i8m4((vint8mf2_t)(op0))
-#define vlmul_ext_v_i8mf4_i8m4(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf4_i8m4((vint8mf4_t)(op0))
-#define vlmul_ext_v_i8mf8_i8m4(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf8_i8m4((vint8mf8_t)(op0))
-#define vlmul_ext_v_i16m1_i16m4(op0) \
-__builtin_rvv_vlmul_ext_v_i16m1_i16m4((vint16m1_t)(op0))
-#define vlmul_ext_v_i16m2_i16m4(op0) \
-__builtin_rvv_vlmul_ext_v_i16m2_i16m4((vint16m2_t)(op0))
-#define vlmul_ext_v_i16mf2_i16m4(op0) \
-__builtin_rvv_vlmul_ext_v_i16mf2_i16m4((vint16mf2_t)(op0))
-#define vlmul_ext_v_i16mf4_i16m4(op0) \
-__builtin_rvv_vlmul_ext_v_i16mf4_i16m4((vint16mf4_t)(op0))
-#define vlmul_ext_v_i32m1_i32m4(op0) \
-__builtin_rvv_vlmul_ext_v_i32m1_i32m4((vint32m1_t)(op0))
-#define vlmul_ext_v_i32m2_i32m4(op0) \
-__builtin_rvv_vlmul_ext_v_i32m2_i32m4((vint32m2_t)(op0))
-#define vlmul_ext_v_i32mf2_i32m4(op0) \
-__builtin_rvv_vlmul_ext_v_i32mf2_i32m4((vint32mf2_t)(op0))
-#define vlmul_ext_v_i64m1_i64m4(op0) \
-__builtin_rvv_vlmul_ext_v_i64m1_i64m4((vint64m1_t)(op0))
-#define vlmul_ext_v_i64m2_i64m4(op0) \
-__builtin_rvv_vlmul_ext_v_i64m2_i64m4((vint64m2_t)(op0))
-#define vlmul_ext_v_i8m1_i8m8(op0) \
-__builtin_rvv_vlmul_ext_v_i8m1_i8m8((vint8m1_t)(op0))
-#define vlmul_ext_v_i8m2_i8m8(op0) \
-__builtin_rvv_vlmul_ext_v_i8m2_i8m8((vint8m2_t)(op0))
-#define vlmul_ext_v_i8m4_i8m8(op0) \
-__builtin_rvv_vlmul_ext_v_i8m4_i8m8((vint8m4_t)(op0))
-#define vlmul_ext_v_i8mf2_i8m8(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf2_i8m8((vint8mf2_t)(op0))
-#define vlmul_ext_v_i8mf4_i8m8(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf4_i8m8((vint8mf4_t)(op0))
-#define vlmul_ext_v_i8mf8_i8m8(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf8_i8m8((vint8mf8_t)(op0))
-#define vlmul_ext_v_i16m1_i16m8(op0) \
-__builtin_rvv_vlmul_ext_v_i16m1_i16m8((vint16m1_t)(op0))
-#define vlmul_ext_v_i16m2_i16m8(op0) \
-__builtin_rvv_vlmul_ext_v_i16m2_i16m8((vint16m2_t)(op0))
-#define vlmul_ext_v_i16m4_i16m8(op0) \
-__builtin_rvv_vlmul_ext_v_i16m4_i16m8((vint16m4_t)(op0))
-#define vlmul_ext_v_i16mf2_i16m8(op0) \
-__builtin_rvv_vlmul_ext_v_i16mf2_i16m8((vint16mf2_t)(op0))
-#define vlmul_ext_v_i16mf4_i16m8(op0) \
-__builtin_rvv_vlmul_ext_v_i16mf4_i16m8((vint16mf4_t)(op0))
-#define vlmul_ext_v_i32m1_i32m8(op0) \
-__builtin_rvv_vlmul_ext_v_i32m1_i32m8((vint32m1_t)(op0))
-#define vlmul_ext_v_i32m2_i32m8(op0) \
-__builtin_rvv_vlmul_ext_v_i32m2_i32m8((vint32m2_t)(op0))
-#define vlmul_ext_v_i32m4_i32m8(op0) \
-__builtin_rvv_vlmul_ext_v_i32m4_i32m8((vint32m4_t)(op0))
-#define vlmul_ext_v_i32mf2_i32m8(op0) \
-__builtin_rvv_vlmul_ext_v_i32mf2_i32m8((vint32mf2_t)(op0))
-#define vlmul_ext_v_i64m1_i64m8(op0) \
-__builtin_rvv_vlmul_ext_v_i64m1_i64m8((vint64m1_t)(op0))
-#define vlmul_ext_v_i64m2_i64m8(op0) \
-__builtin_rvv_vlmul_ext_v_i64m2_i64m8((vint64m2_t)(op0))
-#define vlmul_ext_v_i64m4_i64m8(op0) \
-__builtin_rvv_vlmul_ext_v_i64m4_i64m8((vint64m4_t)(op0))
-#define vlmul_ext_v_u8mf2_u8m1(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf2_u8m1((vuint8mf2_t)(op0))
-#define vlmul_ext_v_u8mf4_u8m1(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf4_u8m1((vuint8mf4_t)(op0))
-#define vlmul_ext_v_u8mf8_u8m1(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf8_u8m1((vuint8mf8_t)(op0))
-#define vlmul_ext_v_u16mf2_u16m1(op0) \
-__builtin_rvv_vlmul_ext_v_u16mf2_u16m1((vuint16mf2_t)(op0))
-#define vlmul_ext_v_u16mf4_u16m1(op0) \
-__builtin_rvv_vlmul_ext_v_u16mf4_u16m1((vuint16mf4_t)(op0))
-#define vlmul_ext_v_u32mf2_u32m1(op0) \
-__builtin_rvv_vlmul_ext_v_u32mf2_u32m1((vuint32mf2_t)(op0))
-#define vlmul_ext_v_u8mf4_u8mf2(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf4_u8mf2((vuint8mf4_t)(op0))
-#define vlmul_ext_v_u8mf8_u8mf2(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf8_u8mf2((vuint8mf8_t)(op0))
-#define vlmul_ext_v_u16mf4_u16mf2(op0) \
-__builtin_rvv_vlmul_ext_v_u16mf4_u16mf2((vuint16mf4_t)(op0))
-#define vlmul_ext_v_u8mf8_u8mf4(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf8_u8mf4((vuint8mf8_t)(op0))
-#define vlmul_ext_v_u8m1_u8m2(op0) \
-__builtin_rvv_vlmul_ext_v_u8m1_u8m2((vuint8m1_t)(op0))
-#define vlmul_ext_v_u8mf2_u8m2(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf2_u8m2((vuint8mf2_t)(op0))
-#define vlmul_ext_v_u8mf4_u8m2(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf4_u8m2((vuint8mf4_t)(op0))
-#define vlmul_ext_v_u8mf8_u8m2(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf8_u8m2((vuint8mf8_t)(op0))
-#define vlmul_ext_v_u16m1_u16m2(op0) \
-__builtin_rvv_vlmul_ext_v_u16m1_u16m2((vuint16m1_t)(op0))
-#define vlmul_ext_v_u16mf2_u16m2(op0) \
-__builtin_rvv_vlmul_ext_v_u16mf2_u16m2((vuint16mf2_t)(op0))
-#define vlmul_ext_v_u16mf4_u16m2(op0) \
-__builtin_rvv_vlmul_ext_v_u16mf4_u16m2((vuint16mf4_t)(op0))
-#define vlmul_ext_v_u32m1_u32m2(op0) \
-__builtin_rvv_vlmul_ext_v_u32m1_u32m2((vuint32m1_t)(op0))
-#define vlmul_ext_v_u32mf2_u32m2(op0) \
-__builtin_rvv_vlmul_ext_v_u32mf2_u32m2((vuint32mf2_t)(op0))
-#define vlmul_ext_v_u64m1_u64m2(op0) \
-__builtin_rvv_vlmul_ext_v_u64m1_u64m2((vuint64m1_t)(op0))
-#define vlmul_ext_v_u8m1_u8m4(op0) \
-__builtin_rvv_vlmul_ext_v_u8m1_u8m4((vuint8m1_t)(op0))
-#define vlmul_ext_v_u8m2_u8m4(op0) \
-__builtin_rvv_vlmul_ext_v_u8m2_u8m4((vuint8m2_t)(op0))
-#define vlmul_ext_v_u8mf2_u8m4(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf2_u8m4((vuint8mf2_t)(op0))
-#define vlmul_ext_v_u8mf4_u8m4(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf4_u8m4((vuint8mf4_t)(op0))
-#define vlmul_ext_v_u8mf8_u8m4(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf8_u8m4((vuint8mf8_t)(op0))
-#define vlmul_ext_v_u16m1_u16m4(op0) \
-__builtin_rvv_vlmul_ext_v_u16m1_u16m4((vuint16m1_t)(op0))
-#define vlmul_ext_v_u16m2_u16m4(op0) \
-__builtin_rvv_vlmul_ext_v_u16m2_u16m4((vuint16m2_t)(op0))
-#define vlmul_ext_v_u16mf2_u16m4(op0) \
-__builtin_rvv_vlmul_ext_v_u16mf2_u16m4((vuint16mf2_t)(op0))
-#define vlmul_ext_v_u16mf4_u16m4(op0) \
-__builtin_rvv_vlmul_ext_v_u16mf4_u16m4((vuint16mf4_t)(op0))
-#define vlmul_ext_v_u32m1_u32m4(op0) \
-__builtin_rvv_vlmul_ext_v_u32m1_u32m4((vuint32m1_t)(op0))
-#define vlmul_ext_v_u32m2_u32m4(op0) \
-__builtin_rvv_vlmul_ext_v_u32m2_u32m4((vuint32m2_t)(op0))
-#define vlmul_ext_v_u32mf2_u32m4(op0) \
-__builtin_rvv_vlmul_ext_v_u32mf2_u32m4((vuint32mf2_t)(op0))
-#define vlmul_ext_v_u64m1_u64m4(op0) \
-__builtin_rvv_vlmul_ext_v_u64m1_u64m4((vuint64m1_t)(op0))
-#define vlmul_ext_v_u64m2_u64m4(op0) \
-__builtin_rvv_vlmul_ext_v_u64m2_u64m4((vuint64m2_t)(op0))
-#define vlmul_ext_v_u8m1_u8m8(op0) \
-__builtin_rvv_vlmul_ext_v_u8m1_u8m8((vuint8m1_t)(op0))
-#define vlmul_ext_v_u8m2_u8m8(op0) \
-__builtin_rvv_vlmul_ext_v_u8m2_u8m8((vuint8m2_t)(op0))
-#define vlmul_ext_v_u8m4_u8m8(op0) \
-__builtin_rvv_vlmul_ext_v_u8m4_u8m8((vuint8m4_t)(op0))
-#define vlmul_ext_v_u8mf2_u8m8(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf2_u8m8((vuint8mf2_t)(op0))
-#define vlmul_ext_v_u8mf4_u8m8(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf4_u8m8((vuint8mf4_t)(op0))
-#define vlmul_ext_v_u8mf8_u8m8(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf8_u8m8((vuint8mf8_t)(op0))
-#define vlmul_ext_v_u16m1_u16m8(op0) \
-__builtin_rvv_vlmul_ext_v_u16m1_u16m8((vuint16m1_t)(op0))
-#define vlmul_ext_v_u16m2_u16m8(op0) \
-__builtin_rvv_vlmul_ext_v_u16m2_u16m8((vuint16m2_t)(op0))
-#define vlmul_ext_v_u16m4_u16m8(op0) \
-__builtin_rvv_vlmul_ext_v_u16m4_u16m8((vuint16m4_t)(op0))
-#define vlmul_ext_v_u16mf2_u16m8(op0) \
-__builtin_rvv_vlmul_ext_v_u16mf2_u16m8((vuint16mf2_t)(op0))
-#define vlmul_ext_v_u16mf4_u16m8(op0) \
-__builtin_rvv_vlmul_ext_v_u16mf4_u16m8((vuint16mf4_t)(op0))
-#define vlmul_ext_v_u32m1_u32m8(op0) \
-__builtin_rvv_vlmul_ext_v_u32m1_u32m8((vuint32m1_t)(op0))
-#define vlmul_ext_v_u32m2_u32m8(op0) \
-__builtin_rvv_vlmul_ext_v_u32m2_u32m8((vuint32m2_t)(op0))
-#define vlmul_ext_v_u32m4_u32m8(op0) \
-__builtin_rvv_vlmul_ext_v_u32m4_u32m8((vuint32m4_t)(op0))
-#define vlmul_ext_v_u32mf2_u32m8(op0) \
-__builtin_rvv_vlmul_ext_v_u32mf2_u32m8((vuint32mf2_t)(op0))
-#define vlmul_ext_v_u64m1_u64m8(op0) \
-__builtin_rvv_vlmul_ext_v_u64m1_u64m8((vuint64m1_t)(op0))
-#define vlmul_ext_v_u64m2_u64m8(op0) \
-__builtin_rvv_vlmul_ext_v_u64m2_u64m8((vuint64m2_t)(op0))
-#define vlmul_ext_v_u64m4_u64m8(op0) \
-__builtin_rvv_vlmul_ext_v_u64m4_u64m8((vuint64m4_t)(op0))
-#define vlmul_trunc_v_i8m1_i8mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m1_i8mf2((vint8m1_t)(op0))
-#define vlmul_trunc_v_i8m2_i8mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m2_i8mf2((vint8m2_t)(op0))
-#define vlmul_trunc_v_i8m4_i8mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m4_i8mf2((vint8m4_t)(op0))
-#define vlmul_trunc_v_i8m8_i8mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m8_i8mf2((vint8m8_t)(op0))
-#define vlmul_trunc_v_i16m1_i16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m1_i16mf2((vint16m1_t)(op0))
-#define vlmul_trunc_v_i16m2_i16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m2_i16mf2((vint16m2_t)(op0))
-#define vlmul_trunc_v_i16m4_i16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m4_i16mf2((vint16m4_t)(op0))
-#define vlmul_trunc_v_i16m8_i16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m8_i16mf2((vint16m8_t)(op0))
-#define vlmul_trunc_v_i32m1_i32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i32m1_i32mf2((vint32m1_t)(op0))
-#define vlmul_trunc_v_i32m2_i32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i32m2_i32mf2((vint32m2_t)(op0))
-#define vlmul_trunc_v_i32m4_i32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i32m4_i32mf2((vint32m4_t)(op0))
-#define vlmul_trunc_v_i32m8_i32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i32m8_i32mf2((vint32m8_t)(op0))
-#define vlmul_trunc_v_i8m1_i8mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m1_i8mf4((vint8m1_t)(op0))
-#define vlmul_trunc_v_i8m2_i8mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m2_i8mf4((vint8m2_t)(op0))
-#define vlmul_trunc_v_i8m4_i8mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m4_i8mf4((vint8m4_t)(op0))
-#define vlmul_trunc_v_i8m8_i8mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m8_i8mf4((vint8m8_t)(op0))
-#define vlmul_trunc_v_i8mf2_i8mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_i8mf2_i8mf4((vint8mf2_t)(op0))
-#define vlmul_trunc_v_i16m1_i16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m1_i16mf4((vint16m1_t)(op0))
-#define vlmul_trunc_v_i16m2_i16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m2_i16mf4((vint16m2_t)(op0))
-#define vlmul_trunc_v_i16m4_i16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m4_i16mf4((vint16m4_t)(op0))
-#define vlmul_trunc_v_i16m8_i16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m8_i16mf4((vint16m8_t)(op0))
-#define vlmul_trunc_v_i16mf2_i16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_i16mf2_i16mf4((vint16mf2_t)(op0))
-#define vlmul_trunc_v_i8m1_i8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m1_i8mf8((vint8m1_t)(op0))
-#define vlmul_trunc_v_i8m2_i8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m2_i8mf8((vint8m2_t)(op0))
-#define vlmul_trunc_v_i8m4_i8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m4_i8mf8((vint8m4_t)(op0))
-#define vlmul_trunc_v_i8m8_i8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m8_i8mf8((vint8m8_t)(op0))
-#define vlmul_trunc_v_i8mf2_i8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_i8mf2_i8mf8((vint8mf2_t)(op0))
-#define vlmul_trunc_v_i8mf4_i8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_i8mf4_i8mf8((vint8mf4_t)(op0))
-#define vlmul_trunc_v_i8m2_i8m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m2_i8m1((vint8m2_t)(op0))
-#define vlmul_trunc_v_i8m4_i8m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m4_i8m1((vint8m4_t)(op0))
-#define vlmul_trunc_v_i8m8_i8m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m8_i8m1((vint8m8_t)(op0))
-#define vlmul_trunc_v_i16m2_i16m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m2_i16m1((vint16m2_t)(op0))
-#define vlmul_trunc_v_i16m4_i16m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m4_i16m1((vint16m4_t)(op0))
-#define vlmul_trunc_v_i16m8_i16m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m8_i16m1((vint16m8_t)(op0))
-#define vlmul_trunc_v_i32m2_i32m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i32m2_i32m1((vint32m2_t)(op0))
-#define vlmul_trunc_v_i32m4_i32m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i32m4_i32m1((vint32m4_t)(op0))
-#define vlmul_trunc_v_i32m8_i32m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i32m8_i32m1((vint32m8_t)(op0))
-#define vlmul_trunc_v_i64m2_i64m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i64m2_i64m1((vint64m2_t)(op0))
-#define vlmul_trunc_v_i64m4_i64m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i64m4_i64m1((vint64m4_t)(op0))
-#define vlmul_trunc_v_i64m8_i64m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i64m8_i64m1((vint64m8_t)(op0))
-#define vlmul_trunc_v_i8m4_i8m2(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m4_i8m2((vint8m4_t)(op0))
-#define vlmul_trunc_v_i8m8_i8m2(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m8_i8m2((vint8m8_t)(op0))
-#define vlmul_trunc_v_i16m4_i16m2(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m4_i16m2((vint16m4_t)(op0))
-#define vlmul_trunc_v_i16m8_i16m2(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m8_i16m2((vint16m8_t)(op0))
-#define vlmul_trunc_v_i32m4_i32m2(op0) \
-__builtin_rvv_vlmul_trunc_v_i32m4_i32m2((vint32m4_t)(op0))
-#define vlmul_trunc_v_i32m8_i32m2(op0) \
-__builtin_rvv_vlmul_trunc_v_i32m8_i32m2((vint32m8_t)(op0))
-#define vlmul_trunc_v_i64m4_i64m2(op0) \
-__builtin_rvv_vlmul_trunc_v_i64m4_i64m2((vint64m4_t)(op0))
-#define vlmul_trunc_v_i64m8_i64m2(op0) \
-__builtin_rvv_vlmul_trunc_v_i64m8_i64m2((vint64m8_t)(op0))
-#define vlmul_trunc_v_i8m8_i8m4(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m8_i8m4((vint8m8_t)(op0))
-#define vlmul_trunc_v_i16m8_i16m4(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m8_i16m4((vint16m8_t)(op0))
-#define vlmul_trunc_v_i32m8_i32m4(op0) \
-__builtin_rvv_vlmul_trunc_v_i32m8_i32m4((vint32m8_t)(op0))
-#define vlmul_trunc_v_i64m8_i64m4(op0) \
-__builtin_rvv_vlmul_trunc_v_i64m8_i64m4((vint64m8_t)(op0))
-#define vlmul_trunc_v_u8m1_u8mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m1_u8mf2((vuint8m1_t)(op0))
-#define vlmul_trunc_v_u8m2_u8mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m2_u8mf2((vuint8m2_t)(op0))
-#define vlmul_trunc_v_u8m4_u8mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m4_u8mf2((vuint8m4_t)(op0))
-#define vlmul_trunc_v_u8m8_u8mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m8_u8mf2((vuint8m8_t)(op0))
-#define vlmul_trunc_v_u16m1_u16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m1_u16mf2((vuint16m1_t)(op0))
-#define vlmul_trunc_v_u16m2_u16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m2_u16mf2((vuint16m2_t)(op0))
-#define vlmul_trunc_v_u16m4_u16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m4_u16mf2((vuint16m4_t)(op0))
-#define vlmul_trunc_v_u16m8_u16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m8_u16mf2((vuint16m8_t)(op0))
-#define vlmul_trunc_v_u32m1_u32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u32m1_u32mf2((vuint32m1_t)(op0))
-#define vlmul_trunc_v_u32m2_u32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u32m2_u32mf2((vuint32m2_t)(op0))
-#define vlmul_trunc_v_u32m4_u32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u32m4_u32mf2((vuint32m4_t)(op0))
-#define vlmul_trunc_v_u32m8_u32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u32m8_u32mf2((vuint32m8_t)(op0))
-#define vlmul_trunc_v_u8m1_u8mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m1_u8mf4((vuint8m1_t)(op0))
-#define vlmul_trunc_v_u8m2_u8mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m2_u8mf4((vuint8m2_t)(op0))
-#define vlmul_trunc_v_u8m4_u8mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m4_u8mf4((vuint8m4_t)(op0))
-#define vlmul_trunc_v_u8m8_u8mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m8_u8mf4((vuint8m8_t)(op0))
-#define vlmul_trunc_v_u8mf2_u8mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_u8mf2_u8mf4((vuint8mf2_t)(op0))
-#define vlmul_trunc_v_u16m1_u16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m1_u16mf4((vuint16m1_t)(op0))
-#define vlmul_trunc_v_u16m2_u16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m2_u16mf4((vuint16m2_t)(op0))
-#define vlmul_trunc_v_u16m4_u16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m4_u16mf4((vuint16m4_t)(op0))
-#define vlmul_trunc_v_u16m8_u16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m8_u16mf4((vuint16m8_t)(op0))
-#define vlmul_trunc_v_u16mf2_u16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_u16mf2_u16mf4((vuint16mf2_t)(op0))
-#define vlmul_trunc_v_u8m1_u8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m1_u8mf8((vuint8m1_t)(op0))
-#define vlmul_trunc_v_u8m2_u8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m2_u8mf8((vuint8m2_t)(op0))
-#define vlmul_trunc_v_u8m4_u8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m4_u8mf8((vuint8m4_t)(op0))
-#define vlmul_trunc_v_u8m8_u8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m8_u8mf8((vuint8m8_t)(op0))
-#define vlmul_trunc_v_u8mf2_u8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_u8mf2_u8mf8((vuint8mf2_t)(op0))
-#define vlmul_trunc_v_u8mf4_u8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_u8mf4_u8mf8((vuint8mf4_t)(op0))
-#define vlmul_trunc_v_u8m2_u8m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m2_u8m1((vuint8m2_t)(op0))
-#define vlmul_trunc_v_u8m4_u8m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m4_u8m1((vuint8m4_t)(op0))
-#define vlmul_trunc_v_u8m8_u8m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m8_u8m1((vuint8m8_t)(op0))
-#define vlmul_trunc_v_u16m2_u16m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m2_u16m1((vuint16m2_t)(op0))
-#define vlmul_trunc_v_u16m4_u16m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m4_u16m1((vuint16m4_t)(op0))
-#define vlmul_trunc_v_u16m8_u16m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m8_u16m1((vuint16m8_t)(op0))
-#define vlmul_trunc_v_u32m2_u32m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u32m2_u32m1((vuint32m2_t)(op0))
-#define vlmul_trunc_v_u32m4_u32m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u32m4_u32m1((vuint32m4_t)(op0))
-#define vlmul_trunc_v_u32m8_u32m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u32m8_u32m1((vuint32m8_t)(op0))
-#define vlmul_trunc_v_u64m2_u64m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u64m2_u64m1((vuint64m2_t)(op0))
-#define vlmul_trunc_v_u64m4_u64m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u64m4_u64m1((vuint64m4_t)(op0))
-#define vlmul_trunc_v_u64m8_u64m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u64m8_u64m1((vuint64m8_t)(op0))
-#define vlmul_trunc_v_u8m4_u8m2(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m4_u8m2((vuint8m4_t)(op0))
-#define vlmul_trunc_v_u8m8_u8m2(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m8_u8m2((vuint8m8_t)(op0))
-#define vlmul_trunc_v_u16m4_u16m2(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m4_u16m2((vuint16m4_t)(op0))
-#define vlmul_trunc_v_u16m8_u16m2(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m8_u16m2((vuint16m8_t)(op0))
-#define vlmul_trunc_v_u32m4_u32m2(op0) \
-__builtin_rvv_vlmul_trunc_v_u32m4_u32m2((vuint32m4_t)(op0))
-#define vlmul_trunc_v_u32m8_u32m2(op0) \
-__builtin_rvv_vlmul_trunc_v_u32m8_u32m2((vuint32m8_t)(op0))
-#define vlmul_trunc_v_u64m4_u64m2(op0) \
-__builtin_rvv_vlmul_trunc_v_u64m4_u64m2((vuint64m4_t)(op0))
-#define vlmul_trunc_v_u64m8_u64m2(op0) \
-__builtin_rvv_vlmul_trunc_v_u64m8_u64m2((vuint64m8_t)(op0))
-#define vlmul_trunc_v_u8m8_u8m4(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m8_u8m4((vuint8m8_t)(op0))
-#define vlmul_trunc_v_u16m8_u16m4(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m8_u16m4((vuint16m8_t)(op0))
-#define vlmul_trunc_v_u32m8_u32m4(op0) \
-__builtin_rvv_vlmul_trunc_v_u32m8_u32m4((vuint32m8_t)(op0))
-#define vlmul_trunc_v_u64m8_u64m4(op0) \
-__builtin_rvv_vlmul_trunc_v_u64m8_u64m4((vuint64m8_t)(op0))
-#define vmand_mm_b8(op0, op1, op2) \
-__builtin_rvv_vmand_mm_b8((vbool8_t)(op0), (vbool8_t)(op1), (size_t)(op2))
-#define vmand_mm_b4(op0, op1, op2) \
-__builtin_rvv_vmand_mm_b4((vbool4_t)(op0), (vbool4_t)(op1), (size_t)(op2))
-#define vmand_mm_b2(op0, op1, op2) \
-__builtin_rvv_vmand_mm_b2((vbool2_t)(op0), (vbool2_t)(op1), (size_t)(op2))
-#define vmand_mm_b1(op0, op1, op2) \
-__builtin_rvv_vmand_mm_b1((vbool1_t)(op0), (vbool1_t)(op1), (size_t)(op2))
-#define vmand_mm_b16(op0, op1, op2) \
-__builtin_rvv_vmand_mm_b16((vbool16_t)(op0), (vbool16_t)(op1), (size_t)(op2))
-#define vmand_mm_b32(op0, op1, op2) \
-__builtin_rvv_vmand_mm_b32((vbool32_t)(op0), (vbool32_t)(op1), (size_t)(op2))
-#define vmand_mm_b64(op0, op1, op2) \
-__builtin_rvv_vmand_mm_b64((vbool64_t)(op0), (vbool64_t)(op1), (size_t)(op2))
-#define vmandnot_mm_b8(op0, op1, op2) \
-__builtin_rvv_vmandnot_mm_b8((vbool8_t)(op0), (vbool8_t)(op1), (size_t)(op2))
-#define vmandnot_mm_b4(op0, op1, op2) \
-__builtin_rvv_vmandnot_mm_b4((vbool4_t)(op0), (vbool4_t)(op1), (size_t)(op2))
-#define vmandnot_mm_b2(op0, op1, op2) \
-__builtin_rvv_vmandnot_mm_b2((vbool2_t)(op0), (vbool2_t)(op1), (size_t)(op2))
-#define vmandnot_mm_b1(op0, op1, op2) \
-__builtin_rvv_vmandnot_mm_b1((vbool1_t)(op0), (vbool1_t)(op1), (size_t)(op2))
-#define vmandnot_mm_b16(op0, op1, op2) \
-__builtin_rvv_vmandnot_mm_b16((vbool16_t)(op0), (vbool16_t)(op1), (size_t)(op2))
-#define vmandnot_mm_b32(op0, op1, op2) \
-__builtin_rvv_vmandnot_mm_b32((vbool32_t)(op0), (vbool32_t)(op1), (size_t)(op2))
-#define vmandnot_mm_b64(op0, op1, op2) \
-__builtin_rvv_vmandnot_mm_b64((vbool64_t)(op0), (vbool64_t)(op1), (size_t)(op2))
-#define vmclr_m_b8(op0) \
-__builtin_rvv_vmclr_m_b8((size_t)(op0))
-#define vmclr_m_b4(op0) \
-__builtin_rvv_vmclr_m_b4((size_t)(op0))
-#define vmclr_m_b2(op0) \
-__builtin_rvv_vmclr_m_b2((size_t)(op0))
-#define vmclr_m_b1(op0) \
-__builtin_rvv_vmclr_m_b1((size_t)(op0))
-#define vmclr_m_b16(op0) \
-__builtin_rvv_vmclr_m_b16((size_t)(op0))
-#define vmclr_m_b32(op0) \
-__builtin_rvv_vmclr_m_b32((size_t)(op0))
-#define vmclr_m_b64(op0) \
-__builtin_rvv_vmclr_m_b64((size_t)(op0))
-#define vmnand_mm_b8(op0, op1, op2) \
-__builtin_rvv_vmnand_mm_b8((vbool8_t)(op0), (vbool8_t)(op1), (size_t)(op2))
-#define vmnand_mm_b4(op0, op1, op2) \
-__builtin_rvv_vmnand_mm_b4((vbool4_t)(op0), (vbool4_t)(op1), (size_t)(op2))
-#define vmnand_mm_b2(op0, op1, op2) \
-__builtin_rvv_vmnand_mm_b2((vbool2_t)(op0), (vbool2_t)(op1), (size_t)(op2))
-#define vmnand_mm_b1(op0, op1, op2) \
-__builtin_rvv_vmnand_mm_b1((vbool1_t)(op0), (vbool1_t)(op1), (size_t)(op2))
-#define vmnand_mm_b16(op0, op1, op2) \
-__builtin_rvv_vmnand_mm_b16((vbool16_t)(op0), (vbool16_t)(op1), (size_t)(op2))
-#define vmnand_mm_b32(op0, op1, op2) \
-__builtin_rvv_vmnand_mm_b32((vbool32_t)(op0), (vbool32_t)(op1), (size_t)(op2))
-#define vmnand_mm_b64(op0, op1, op2) \
-__builtin_rvv_vmnand_mm_b64((vbool64_t)(op0), (vbool64_t)(op1), (size_t)(op2))
-#define vmnor_mm_b8(op0, op1, op2) \
-__builtin_rvv_vmnor_mm_b8((vbool8_t)(op0), (vbool8_t)(op1), (size_t)(op2))
-#define vmnor_mm_b4(op0, op1, op2) \
-__builtin_rvv_vmnor_mm_b4((vbool4_t)(op0), (vbool4_t)(op1), (size_t)(op2))
-#define vmnor_mm_b2(op0, op1, op2) \
-__builtin_rvv_vmnor_mm_b2((vbool2_t)(op0), (vbool2_t)(op1), (size_t)(op2))
-#define vmnor_mm_b1(op0, op1, op2) \
-__builtin_rvv_vmnor_mm_b1((vbool1_t)(op0), (vbool1_t)(op1), (size_t)(op2))
-#define vmnor_mm_b16(op0, op1, op2) \
-__builtin_rvv_vmnor_mm_b16((vbool16_t)(op0), (vbool16_t)(op1), (size_t)(op2))
-#define vmnor_mm_b32(op0, op1, op2) \
-__builtin_rvv_vmnor_mm_b32((vbool32_t)(op0), (vbool32_t)(op1), (size_t)(op2))
-#define vmnor_mm_b64(op0, op1, op2) \
-__builtin_rvv_vmnor_mm_b64((vbool64_t)(op0), (vbool64_t)(op1), (size_t)(op2))
-#define vmor_mm_b8(op0, op1, op2) \
-__builtin_rvv_vmor_mm_b8((vbool8_t)(op0), (vbool8_t)(op1), (size_t)(op2))
-#define vmor_mm_b4(op0, op1, op2) \
-__builtin_rvv_vmor_mm_b4((vbool4_t)(op0), (vbool4_t)(op1), (size_t)(op2))
-#define vmor_mm_b2(op0, op1, op2) \
-__builtin_rvv_vmor_mm_b2((vbool2_t)(op0), (vbool2_t)(op1), (size_t)(op2))
-#define vmor_mm_b1(op0, op1, op2) \
-__builtin_rvv_vmor_mm_b1((vbool1_t)(op0), (vbool1_t)(op1), (size_t)(op2))
-#define vmor_mm_b16(op0, op1, op2) \
-__builtin_rvv_vmor_mm_b16((vbool16_t)(op0), (vbool16_t)(op1), (size_t)(op2))
-#define vmor_mm_b32(op0, op1, op2) \
-__builtin_rvv_vmor_mm_b32((vbool32_t)(op0), (vbool32_t)(op1), (size_t)(op2))
-#define vmor_mm_b64(op0, op1, op2) \
-__builtin_rvv_vmor_mm_b64((vbool64_t)(op0), (vbool64_t)(op1), (size_t)(op2))
-#define vmornot_mm_b8(op0, op1, op2) \
-__builtin_rvv_vmornot_mm_b8((vbool8_t)(op0), (vbool8_t)(op1), (size_t)(op2))
-#define vmornot_mm_b4(op0, op1, op2) \
-__builtin_rvv_vmornot_mm_b4((vbool4_t)(op0), (vbool4_t)(op1), (size_t)(op2))
-#define vmornot_mm_b2(op0, op1, op2) \
-__builtin_rvv_vmornot_mm_b2((vbool2_t)(op0), (vbool2_t)(op1), (size_t)(op2))
-#define vmornot_mm_b1(op0, op1, op2) \
-__builtin_rvv_vmornot_mm_b1((vbool1_t)(op0), (vbool1_t)(op1), (size_t)(op2))
-#define vmornot_mm_b16(op0, op1, op2) \
-__builtin_rvv_vmornot_mm_b16((vbool16_t)(op0), (vbool16_t)(op1), (size_t)(op2))
-#define vmornot_mm_b32(op0, op1, op2) \
-__builtin_rvv_vmornot_mm_b32((vbool32_t)(op0), (vbool32_t)(op1), (size_t)(op2))
-#define vmornot_mm_b64(op0, op1, op2) \
-__builtin_rvv_vmornot_mm_b64((vbool64_t)(op0), (vbool64_t)(op1), (size_t)(op2))
-#define vmsbf_m_b8(op0, op1) \
-__builtin_rvv_vmsbf_m_b8((vbool8_t)(op0), (size_t)(op1))
-#define vmsbf_m_b8_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsbf_m_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbf_m_b4(op0, op1) \
-__builtin_rvv_vmsbf_m_b4((vbool4_t)(op0), (size_t)(op1))
-#define vmsbf_m_b4_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsbf_m_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbf_m_b2(op0, op1) \
-__builtin_rvv_vmsbf_m_b2((vbool2_t)(op0), (size_t)(op1))
-#define vmsbf_m_b2_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsbf_m_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmsbf_m_b1(op0, op1) \
-__builtin_rvv_vmsbf_m_b1((vbool1_t)(op0), (size_t)(op1))
-#define vmsbf_m_b1_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsbf_m_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vmsbf_m_b16(op0, op1) \
-__builtin_rvv_vmsbf_m_b16((vbool16_t)(op0), (size_t)(op1))
-#define vmsbf_m_b16_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsbf_m_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbf_m_b32(op0, op1) \
-__builtin_rvv_vmsbf_m_b32((vbool32_t)(op0), (size_t)(op1))
-#define vmsbf_m_b32_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsbf_m_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbf_m_b64(op0, op1) \
-__builtin_rvv_vmsbf_m_b64((vbool64_t)(op0), (size_t)(op1))
-#define vmsbf_m_b64_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsbf_m_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmset_m_b8(op0) \
-__builtin_rvv_vmset_m_b8((size_t)(op0))
-#define vmset_m_b4(op0) \
-__builtin_rvv_vmset_m_b4((size_t)(op0))
-#define vmset_m_b2(op0) \
-__builtin_rvv_vmset_m_b2((size_t)(op0))
-#define vmset_m_b1(op0) \
-__builtin_rvv_vmset_m_b1((size_t)(op0))
-#define vmset_m_b16(op0) \
-__builtin_rvv_vmset_m_b16((size_t)(op0))
-#define vmset_m_b32(op0) \
-__builtin_rvv_vmset_m_b32((size_t)(op0))
-#define vmset_m_b64(op0) \
-__builtin_rvv_vmset_m_b64((size_t)(op0))
-#define vmsif_m_b8(op0, op1) \
-__builtin_rvv_vmsif_m_b8((vbool8_t)(op0), (size_t)(op1))
-#define vmsif_m_b8_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsif_m_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsif_m_b4(op0, op1) \
-__builtin_rvv_vmsif_m_b4((vbool4_t)(op0), (size_t)(op1))
-#define vmsif_m_b4_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsif_m_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsif_m_b2(op0, op1) \
-__builtin_rvv_vmsif_m_b2((vbool2_t)(op0), (size_t)(op1))
-#define vmsif_m_b2_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsif_m_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmsif_m_b1(op0, op1) \
-__builtin_rvv_vmsif_m_b1((vbool1_t)(op0), (size_t)(op1))
-#define vmsif_m_b1_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsif_m_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vmsif_m_b16(op0, op1) \
-__builtin_rvv_vmsif_m_b16((vbool16_t)(op0), (size_t)(op1))
-#define vmsif_m_b16_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsif_m_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsif_m_b32(op0, op1) \
-__builtin_rvv_vmsif_m_b32((vbool32_t)(op0), (size_t)(op1))
-#define vmsif_m_b32_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsif_m_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsif_m_b64(op0, op1) \
-__builtin_rvv_vmsif_m_b64((vbool64_t)(op0), (size_t)(op1))
-#define vmsif_m_b64_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsif_m_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsof_m_b8(op0, op1) \
-__builtin_rvv_vmsof_m_b8((vbool8_t)(op0), (size_t)(op1))
-#define vmsof_m_b8_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsof_m_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsof_m_b4(op0, op1) \
-__builtin_rvv_vmsof_m_b4((vbool4_t)(op0), (size_t)(op1))
-#define vmsof_m_b4_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsof_m_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsof_m_b2(op0, op1) \
-__builtin_rvv_vmsof_m_b2((vbool2_t)(op0), (size_t)(op1))
-#define vmsof_m_b2_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsof_m_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmsof_m_b1(op0, op1) \
-__builtin_rvv_vmsof_m_b1((vbool1_t)(op0), (size_t)(op1))
-#define vmsof_m_b1_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsof_m_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vmsof_m_b16(op0, op1) \
-__builtin_rvv_vmsof_m_b16((vbool16_t)(op0), (size_t)(op1))
-#define vmsof_m_b16_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsof_m_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsof_m_b32(op0, op1) \
-__builtin_rvv_vmsof_m_b32((vbool32_t)(op0), (size_t)(op1))
-#define vmsof_m_b32_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsof_m_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsof_m_b64(op0, op1) \
-__builtin_rvv_vmsof_m_b64((vbool64_t)(op0), (size_t)(op1))
-#define vmsof_m_b64_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsof_m_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmxnor_mm_b8(op0, op1, op2) \
-__builtin_rvv_vmxnor_mm_b8((vbool8_t)(op0), (vbool8_t)(op1), (size_t)(op2))
-#define vmxnor_mm_b4(op0, op1, op2) \
-__builtin_rvv_vmxnor_mm_b4((vbool4_t)(op0), (vbool4_t)(op1), (size_t)(op2))
-#define vmxnor_mm_b2(op0, op1, op2) \
-__builtin_rvv_vmxnor_mm_b2((vbool2_t)(op0), (vbool2_t)(op1), (size_t)(op2))
-#define vmxnor_mm_b1(op0, op1, op2) \
-__builtin_rvv_vmxnor_mm_b1((vbool1_t)(op0), (vbool1_t)(op1), (size_t)(op2))
-#define vmxnor_mm_b16(op0, op1, op2) \
-__builtin_rvv_vmxnor_mm_b16((vbool16_t)(op0), (vbool16_t)(op1), (size_t)(op2))
-#define vmxnor_mm_b32(op0, op1, op2) \
-__builtin_rvv_vmxnor_mm_b32((vbool32_t)(op0), (vbool32_t)(op1), (size_t)(op2))
-#define vmxnor_mm_b64(op0, op1, op2) \
-__builtin_rvv_vmxnor_mm_b64((vbool64_t)(op0), (vbool64_t)(op1), (size_t)(op2))
-#define vmxor_mm_b8(op0, op1, op2) \
-__builtin_rvv_vmxor_mm_b8((vbool8_t)(op0), (vbool8_t)(op1), (size_t)(op2))
-#define vmxor_mm_b4(op0, op1, op2) \
-__builtin_rvv_vmxor_mm_b4((vbool4_t)(op0), (vbool4_t)(op1), (size_t)(op2))
-#define vmxor_mm_b2(op0, op1, op2) \
-__builtin_rvv_vmxor_mm_b2((vbool2_t)(op0), (vbool2_t)(op1), (size_t)(op2))
-#define vmxor_mm_b1(op0, op1, op2) \
-__builtin_rvv_vmxor_mm_b1((vbool1_t)(op0), (vbool1_t)(op1), (size_t)(op2))
-#define vmxor_mm_b16(op0, op1, op2) \
-__builtin_rvv_vmxor_mm_b16((vbool16_t)(op0), (vbool16_t)(op1), (size_t)(op2))
-#define vmxor_mm_b32(op0, op1, op2) \
-__builtin_rvv_vmxor_mm_b32((vbool32_t)(op0), (vbool32_t)(op1), (size_t)(op2))
-#define vmxor_mm_b64(op0, op1, op2) \
-__builtin_rvv_vmxor_mm_b64((vbool64_t)(op0), (vbool64_t)(op1), (size_t)(op2))
-#define vpopc_m_b8(op0, op1) \
-__builtin_rvv_vpopc_m_b8((vbool8_t)(op0), (size_t)(op1))
-#define vpopc_m_b8_m(op0, op1, op2) \
-__builtin_rvv_vpopc_m_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (size_t)(op2))
-#define vpopc_m_b4(op0, op1) \
-__builtin_rvv_vpopc_m_b4((vbool4_t)(op0), (size_t)(op1))
-#define vpopc_m_b4_m(op0, op1, op2) \
-__builtin_rvv_vpopc_m_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (size_t)(op2))
-#define vpopc_m_b2(op0, op1) \
-__builtin_rvv_vpopc_m_b2((vbool2_t)(op0), (size_t)(op1))
-#define vpopc_m_b2_m(op0, op1, op2) \
-__builtin_rvv_vpopc_m_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (size_t)(op2))
-#define vpopc_m_b1(op0, op1) \
-__builtin_rvv_vpopc_m_b1((vbool1_t)(op0), (size_t)(op1))
-#define vpopc_m_b1_m(op0, op1, op2) \
-__builtin_rvv_vpopc_m_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (size_t)(op2))
-#define vpopc_m_b16(op0, op1) \
-__builtin_rvv_vpopc_m_b16((vbool16_t)(op0), (size_t)(op1))
-#define vpopc_m_b16_m(op0, op1, op2) \
-__builtin_rvv_vpopc_m_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (size_t)(op2))
-#define vpopc_m_b32(op0, op1) \
-__builtin_rvv_vpopc_m_b32((vbool32_t)(op0), (size_t)(op1))
-#define vpopc_m_b32_m(op0, op1, op2) \
-__builtin_rvv_vpopc_m_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (size_t)(op2))
-#define vpopc_m_b64(op0, op1) \
-__builtin_rvv_vpopc_m_b64((vbool64_t)(op0), (size_t)(op1))
-#define vpopc_m_b64_m(op0, op1, op2) \
-__builtin_rvv_vpopc_m_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (size_t)(op2))
-#define vreinterpret_v_i8m1_i16m1(op0) \
-__builtin_rvv_vreinterpret_v_i8m1_i16m1((vint8m1_t)(op0))
-#define vreinterpret_v_i8m2_i16m2(op0) \
-__builtin_rvv_vreinterpret_v_i8m2_i16m2((vint8m2_t)(op0))
-#define vreinterpret_v_i8m4_i16m4(op0) \
-__builtin_rvv_vreinterpret_v_i8m4_i16m4((vint8m4_t)(op0))
-#define vreinterpret_v_i8m8_i16m8(op0) \
-__builtin_rvv_vreinterpret_v_i8m8_i16m8((vint8m8_t)(op0))
-#define vreinterpret_v_i8mf2_i16mf2(op0) \
-__builtin_rvv_vreinterpret_v_i8mf2_i16mf2((vint8mf2_t)(op0))
-#define vreinterpret_v_i8mf4_i16mf4(op0) \
-__builtin_rvv_vreinterpret_v_i8mf4_i16mf4((vint8mf4_t)(op0))
-#define vreinterpret_v_i32m1_i16m1(op0) \
-__builtin_rvv_vreinterpret_v_i32m1_i16m1((vint32m1_t)(op0))
-#define vreinterpret_v_i32m2_i16m2(op0) \
-__builtin_rvv_vreinterpret_v_i32m2_i16m2((vint32m2_t)(op0))
-#define vreinterpret_v_i32m4_i16m4(op0) \
-__builtin_rvv_vreinterpret_v_i32m4_i16m4((vint32m4_t)(op0))
-#define vreinterpret_v_i32m8_i16m8(op0) \
-__builtin_rvv_vreinterpret_v_i32m8_i16m8((vint32m8_t)(op0))
-#define vreinterpret_v_i32mf2_i16mf2(op0) \
-__builtin_rvv_vreinterpret_v_i32mf2_i16mf2((vint32mf2_t)(op0))
-#define vreinterpret_v_i64m1_i16m1(op0) \
-__builtin_rvv_vreinterpret_v_i64m1_i16m1((vint64m1_t)(op0))
-#define vreinterpret_v_i64m2_i16m2(op0) \
-__builtin_rvv_vreinterpret_v_i64m2_i16m2((vint64m2_t)(op0))
-#define vreinterpret_v_i64m4_i16m4(op0) \
-__builtin_rvv_vreinterpret_v_i64m4_i16m4((vint64m4_t)(op0))
-#define vreinterpret_v_i64m8_i16m8(op0) \
-__builtin_rvv_vreinterpret_v_i64m8_i16m8((vint64m8_t)(op0))
-#define vreinterpret_v_i8m1_i32m1(op0) \
-__builtin_rvv_vreinterpret_v_i8m1_i32m1((vint8m1_t)(op0))
-#define vreinterpret_v_i8m2_i32m2(op0) \
-__builtin_rvv_vreinterpret_v_i8m2_i32m2((vint8m2_t)(op0))
-#define vreinterpret_v_i8m4_i32m4(op0) \
-__builtin_rvv_vreinterpret_v_i8m4_i32m4((vint8m4_t)(op0))
-#define vreinterpret_v_i8m8_i32m8(op0) \
-__builtin_rvv_vreinterpret_v_i8m8_i32m8((vint8m8_t)(op0))
-#define vreinterpret_v_i8mf2_i32mf2(op0) \
-__builtin_rvv_vreinterpret_v_i8mf2_i32mf2((vint8mf2_t)(op0))
-#define vreinterpret_v_i16m1_i32m1(op0) \
-__builtin_rvv_vreinterpret_v_i16m1_i32m1((vint16m1_t)(op0))
-#define vreinterpret_v_i16m2_i32m2(op0) \
-__builtin_rvv_vreinterpret_v_i16m2_i32m2((vint16m2_t)(op0))
-#define vreinterpret_v_i16m4_i32m4(op0) \
-__builtin_rvv_vreinterpret_v_i16m4_i32m4((vint16m4_t)(op0))
-#define vreinterpret_v_i16m8_i32m8(op0) \
-__builtin_rvv_vreinterpret_v_i16m8_i32m8((vint16m8_t)(op0))
-#define vreinterpret_v_i16mf2_i32mf2(op0) \
-__builtin_rvv_vreinterpret_v_i16mf2_i32mf2((vint16mf2_t)(op0))
-#define vreinterpret_v_i64m1_i32m1(op0) \
-__builtin_rvv_vreinterpret_v_i64m1_i32m1((vint64m1_t)(op0))
-#define vreinterpret_v_i64m2_i32m2(op0) \
-__builtin_rvv_vreinterpret_v_i64m2_i32m2((vint64m2_t)(op0))
-#define vreinterpret_v_i64m4_i32m4(op0) \
-__builtin_rvv_vreinterpret_v_i64m4_i32m4((vint64m4_t)(op0))
-#define vreinterpret_v_i64m8_i32m8(op0) \
-__builtin_rvv_vreinterpret_v_i64m8_i32m8((vint64m8_t)(op0))
-#define vreinterpret_v_i8m1_i64m1(op0) \
-__builtin_rvv_vreinterpret_v_i8m1_i64m1((vint8m1_t)(op0))
-#define vreinterpret_v_i8m2_i64m2(op0) \
-__builtin_rvv_vreinterpret_v_i8m2_i64m2((vint8m2_t)(op0))
-#define vreinterpret_v_i8m4_i64m4(op0) \
-__builtin_rvv_vreinterpret_v_i8m4_i64m4((vint8m4_t)(op0))
-#define vreinterpret_v_i8m8_i64m8(op0) \
-__builtin_rvv_vreinterpret_v_i8m8_i64m8((vint8m8_t)(op0))
-#define vreinterpret_v_i16m1_i64m1(op0) \
-__builtin_rvv_vreinterpret_v_i16m1_i64m1((vint16m1_t)(op0))
-#define vreinterpret_v_i16m2_i64m2(op0) \
-__builtin_rvv_vreinterpret_v_i16m2_i64m2((vint16m2_t)(op0))
-#define vreinterpret_v_i16m4_i64m4(op0) \
-__builtin_rvv_vreinterpret_v_i16m4_i64m4((vint16m4_t)(op0))
-#define vreinterpret_v_i16m8_i64m8(op0) \
-__builtin_rvv_vreinterpret_v_i16m8_i64m8((vint16m8_t)(op0))
-#define vreinterpret_v_i32m1_i64m1(op0) \
-__builtin_rvv_vreinterpret_v_i32m1_i64m1((vint32m1_t)(op0))
-#define vreinterpret_v_i32m2_i64m2(op0) \
-__builtin_rvv_vreinterpret_v_i32m2_i64m2((vint32m2_t)(op0))
-#define vreinterpret_v_i32m4_i64m4(op0) \
-__builtin_rvv_vreinterpret_v_i32m4_i64m4((vint32m4_t)(op0))
-#define vreinterpret_v_i32m8_i64m8(op0) \
-__builtin_rvv_vreinterpret_v_i32m8_i64m8((vint32m8_t)(op0))
-#define vreinterpret_v_i16m1_i8m1(op0) \
-__builtin_rvv_vreinterpret_v_i16m1_i8m1((vint16m1_t)(op0))
-#define vreinterpret_v_i16m2_i8m2(op0) \
-__builtin_rvv_vreinterpret_v_i16m2_i8m2((vint16m2_t)(op0))
-#define vreinterpret_v_i16m4_i8m4(op0) \
-__builtin_rvv_vreinterpret_v_i16m4_i8m4((vint16m4_t)(op0))
-#define vreinterpret_v_i16m8_i8m8(op0) \
-__builtin_rvv_vreinterpret_v_i16m8_i8m8((vint16m8_t)(op0))
-#define vreinterpret_v_i16mf2_i8mf2(op0) \
-__builtin_rvv_vreinterpret_v_i16mf2_i8mf2((vint16mf2_t)(op0))
-#define vreinterpret_v_i16mf4_i8mf4(op0) \
-__builtin_rvv_vreinterpret_v_i16mf4_i8mf4((vint16mf4_t)(op0))
-#define vreinterpret_v_i32m1_i8m1(op0) \
-__builtin_rvv_vreinterpret_v_i32m1_i8m1((vint32m1_t)(op0))
-#define vreinterpret_v_i32m2_i8m2(op0) \
-__builtin_rvv_vreinterpret_v_i32m2_i8m2((vint32m2_t)(op0))
-#define vreinterpret_v_i32m4_i8m4(op0) \
-__builtin_rvv_vreinterpret_v_i32m4_i8m4((vint32m4_t)(op0))
-#define vreinterpret_v_i32m8_i8m8(op0) \
-__builtin_rvv_vreinterpret_v_i32m8_i8m8((vint32m8_t)(op0))
-#define vreinterpret_v_i32mf2_i8mf2(op0) \
-__builtin_rvv_vreinterpret_v_i32mf2_i8mf2((vint32mf2_t)(op0))
-#define vreinterpret_v_i64m1_i8m1(op0) \
-__builtin_rvv_vreinterpret_v_i64m1_i8m1((vint64m1_t)(op0))
-#define vreinterpret_v_i64m2_i8m2(op0) \
-__builtin_rvv_vreinterpret_v_i64m2_i8m2((vint64m2_t)(op0))
-#define vreinterpret_v_i64m4_i8m4(op0) \
-__builtin_rvv_vreinterpret_v_i64m4_i8m4((vint64m4_t)(op0))
-#define vreinterpret_v_i64m8_i8m8(op0) \
-__builtin_rvv_vreinterpret_v_i64m8_i8m8((vint64m8_t)(op0))
-#define vreinterpret_v_u8m1_i8m1(op0) \
-__builtin_rvv_vreinterpret_v_u8m1_i8m1((vuint8m1_t)(op0))
-#define vreinterpret_v_u8m2_i8m2(op0) \
-__builtin_rvv_vreinterpret_v_u8m2_i8m2((vuint8m2_t)(op0))
-#define vreinterpret_v_u8m4_i8m4(op0) \
-__builtin_rvv_vreinterpret_v_u8m4_i8m4((vuint8m4_t)(op0))
-#define vreinterpret_v_u8m8_i8m8(op0) \
-__builtin_rvv_vreinterpret_v_u8m8_i8m8((vuint8m8_t)(op0))
-#define vreinterpret_v_u8mf2_i8mf2(op0) \
-__builtin_rvv_vreinterpret_v_u8mf2_i8mf2((vuint8mf2_t)(op0))
-#define vreinterpret_v_u8mf4_i8mf4(op0) \
-__builtin_rvv_vreinterpret_v_u8mf4_i8mf4((vuint8mf4_t)(op0))
-#define vreinterpret_v_u8mf8_i8mf8(op0) \
-__builtin_rvv_vreinterpret_v_u8mf8_i8mf8((vuint8mf8_t)(op0))
-#define vreinterpret_v_u16m1_i16m1(op0) \
-__builtin_rvv_vreinterpret_v_u16m1_i16m1((vuint16m1_t)(op0))
-#define vreinterpret_v_u16m2_i16m2(op0) \
-__builtin_rvv_vreinterpret_v_u16m2_i16m2((vuint16m2_t)(op0))
-#define vreinterpret_v_u16m4_i16m4(op0) \
-__builtin_rvv_vreinterpret_v_u16m4_i16m4((vuint16m4_t)(op0))
-#define vreinterpret_v_u16m8_i16m8(op0) \
-__builtin_rvv_vreinterpret_v_u16m8_i16m8((vuint16m8_t)(op0))
-#define vreinterpret_v_u16mf2_i16mf2(op0) \
-__builtin_rvv_vreinterpret_v_u16mf2_i16mf2((vuint16mf2_t)(op0))
-#define vreinterpret_v_u16mf4_i16mf4(op0) \
-__builtin_rvv_vreinterpret_v_u16mf4_i16mf4((vuint16mf4_t)(op0))
-#define vreinterpret_v_u32m1_i32m1(op0) \
-__builtin_rvv_vreinterpret_v_u32m1_i32m1((vuint32m1_t)(op0))
-#define vreinterpret_v_u32m2_i32m2(op0) \
-__builtin_rvv_vreinterpret_v_u32m2_i32m2((vuint32m2_t)(op0))
-#define vreinterpret_v_u32m4_i32m4(op0) \
-__builtin_rvv_vreinterpret_v_u32m4_i32m4((vuint32m4_t)(op0))
-#define vreinterpret_v_u32m8_i32m8(op0) \
-__builtin_rvv_vreinterpret_v_u32m8_i32m8((vuint32m8_t)(op0))
-#define vreinterpret_v_u32mf2_i32mf2(op0) \
-__builtin_rvv_vreinterpret_v_u32mf2_i32mf2((vuint32mf2_t)(op0))
-#define vreinterpret_v_u64m1_i64m1(op0) \
-__builtin_rvv_vreinterpret_v_u64m1_i64m1((vuint64m1_t)(op0))
-#define vreinterpret_v_u64m2_i64m2(op0) \
-__builtin_rvv_vreinterpret_v_u64m2_i64m2((vuint64m2_t)(op0))
-#define vreinterpret_v_u64m4_i64m4(op0) \
-__builtin_rvv_vreinterpret_v_u64m4_i64m4((vuint64m4_t)(op0))
-#define vreinterpret_v_u64m8_i64m8(op0) \
-__builtin_rvv_vreinterpret_v_u64m8_i64m8((vuint64m8_t)(op0))
-#define vreinterpret_v_u8m1_u16m1(op0) \
-__builtin_rvv_vreinterpret_v_u8m1_u16m1((vuint8m1_t)(op0))
-#define vreinterpret_v_u8m2_u16m2(op0) \
-__builtin_rvv_vreinterpret_v_u8m2_u16m2((vuint8m2_t)(op0))
-#define vreinterpret_v_u8m4_u16m4(op0) \
-__builtin_rvv_vreinterpret_v_u8m4_u16m4((vuint8m4_t)(op0))
-#define vreinterpret_v_u8m8_u16m8(op0) \
-__builtin_rvv_vreinterpret_v_u8m8_u16m8((vuint8m8_t)(op0))
-#define vreinterpret_v_u8mf2_u16mf2(op0) \
-__builtin_rvv_vreinterpret_v_u8mf2_u16mf2((vuint8mf2_t)(op0))
-#define vreinterpret_v_u8mf4_u16mf4(op0) \
-__builtin_rvv_vreinterpret_v_u8mf4_u16mf4((vuint8mf4_t)(op0))
-#define vreinterpret_v_u32m1_u16m1(op0) \
-__builtin_rvv_vreinterpret_v_u32m1_u16m1((vuint32m1_t)(op0))
-#define vreinterpret_v_u32m2_u16m2(op0) \
-__builtin_rvv_vreinterpret_v_u32m2_u16m2((vuint32m2_t)(op0))
-#define vreinterpret_v_u32m4_u16m4(op0) \
-__builtin_rvv_vreinterpret_v_u32m4_u16m4((vuint32m4_t)(op0))
-#define vreinterpret_v_u32m8_u16m8(op0) \
-__builtin_rvv_vreinterpret_v_u32m8_u16m8((vuint32m8_t)(op0))
-#define vreinterpret_v_u32mf2_u16mf2(op0) \
-__builtin_rvv_vreinterpret_v_u32mf2_u16mf2((vuint32mf2_t)(op0))
-#define vreinterpret_v_u64m1_u16m1(op0) \
-__builtin_rvv_vreinterpret_v_u64m1_u16m1((vuint64m1_t)(op0))
-#define vreinterpret_v_u64m2_u16m2(op0) \
-__builtin_rvv_vreinterpret_v_u64m2_u16m2((vuint64m2_t)(op0))
-#define vreinterpret_v_u64m4_u16m4(op0) \
-__builtin_rvv_vreinterpret_v_u64m4_u16m4((vuint64m4_t)(op0))
-#define vreinterpret_v_u64m8_u16m8(op0) \
-__builtin_rvv_vreinterpret_v_u64m8_u16m8((vuint64m8_t)(op0))
-#define vreinterpret_v_u8m1_u32m1(op0) \
-__builtin_rvv_vreinterpret_v_u8m1_u32m1((vuint8m1_t)(op0))
-#define vreinterpret_v_u8m2_u32m2(op0) \
-__builtin_rvv_vreinterpret_v_u8m2_u32m2((vuint8m2_t)(op0))
-#define vreinterpret_v_u8m4_u32m4(op0) \
-__builtin_rvv_vreinterpret_v_u8m4_u32m4((vuint8m4_t)(op0))
-#define vreinterpret_v_u8m8_u32m8(op0) \
-__builtin_rvv_vreinterpret_v_u8m8_u32m8((vuint8m8_t)(op0))
-#define vreinterpret_v_u8mf2_u32mf2(op0) \
-__builtin_rvv_vreinterpret_v_u8mf2_u32mf2((vuint8mf2_t)(op0))
-#define vreinterpret_v_u16m1_u32m1(op0) \
-__builtin_rvv_vreinterpret_v_u16m1_u32m1((vuint16m1_t)(op0))
-#define vreinterpret_v_u16m2_u32m2(op0) \
-__builtin_rvv_vreinterpret_v_u16m2_u32m2((vuint16m2_t)(op0))
-#define vreinterpret_v_u16m4_u32m4(op0) \
-__builtin_rvv_vreinterpret_v_u16m4_u32m4((vuint16m4_t)(op0))
-#define vreinterpret_v_u16m8_u32m8(op0) \
-__builtin_rvv_vreinterpret_v_u16m8_u32m8((vuint16m8_t)(op0))
-#define vreinterpret_v_u16mf2_u32mf2(op0) \
-__builtin_rvv_vreinterpret_v_u16mf2_u32mf2((vuint16mf2_t)(op0))
-#define vreinterpret_v_u64m1_u32m1(op0) \
-__builtin_rvv_vreinterpret_v_u64m1_u32m1((vuint64m1_t)(op0))
-#define vreinterpret_v_u64m2_u32m2(op0) \
-__builtin_rvv_vreinterpret_v_u64m2_u32m2((vuint64m2_t)(op0))
-#define vreinterpret_v_u64m4_u32m4(op0) \
-__builtin_rvv_vreinterpret_v_u64m4_u32m4((vuint64m4_t)(op0))
-#define vreinterpret_v_u64m8_u32m8(op0) \
-__builtin_rvv_vreinterpret_v_u64m8_u32m8((vuint64m8_t)(op0))
-#define vreinterpret_v_u8m1_u64m1(op0) \
-__builtin_rvv_vreinterpret_v_u8m1_u64m1((vuint8m1_t)(op0))
-#define vreinterpret_v_u8m2_u64m2(op0) \
-__builtin_rvv_vreinterpret_v_u8m2_u64m2((vuint8m2_t)(op0))
-#define vreinterpret_v_u8m4_u64m4(op0) \
-__builtin_rvv_vreinterpret_v_u8m4_u64m4((vuint8m4_t)(op0))
-#define vreinterpret_v_u8m8_u64m8(op0) \
-__builtin_rvv_vreinterpret_v_u8m8_u64m8((vuint8m8_t)(op0))
-#define vreinterpret_v_u16m1_u64m1(op0) \
-__builtin_rvv_vreinterpret_v_u16m1_u64m1((vuint16m1_t)(op0))
-#define vreinterpret_v_u16m2_u64m2(op0) \
-__builtin_rvv_vreinterpret_v_u16m2_u64m2((vuint16m2_t)(op0))
-#define vreinterpret_v_u16m4_u64m4(op0) \
-__builtin_rvv_vreinterpret_v_u16m4_u64m4((vuint16m4_t)(op0))
-#define vreinterpret_v_u16m8_u64m8(op0) \
-__builtin_rvv_vreinterpret_v_u16m8_u64m8((vuint16m8_t)(op0))
-#define vreinterpret_v_u32m1_u64m1(op0) \
-__builtin_rvv_vreinterpret_v_u32m1_u64m1((vuint32m1_t)(op0))
-#define vreinterpret_v_u32m2_u64m2(op0) \
-__builtin_rvv_vreinterpret_v_u32m2_u64m2((vuint32m2_t)(op0))
-#define vreinterpret_v_u32m4_u64m4(op0) \
-__builtin_rvv_vreinterpret_v_u32m4_u64m4((vuint32m4_t)(op0))
-#define vreinterpret_v_u32m8_u64m8(op0) \
-__builtin_rvv_vreinterpret_v_u32m8_u64m8((vuint32m8_t)(op0))
-#define vreinterpret_v_u16m1_u8m1(op0) \
-__builtin_rvv_vreinterpret_v_u16m1_u8m1((vuint16m1_t)(op0))
-#define vreinterpret_v_u16m2_u8m2(op0) \
-__builtin_rvv_vreinterpret_v_u16m2_u8m2((vuint16m2_t)(op0))
-#define vreinterpret_v_u16m4_u8m4(op0) \
-__builtin_rvv_vreinterpret_v_u16m4_u8m4((vuint16m4_t)(op0))
-#define vreinterpret_v_u16m8_u8m8(op0) \
-__builtin_rvv_vreinterpret_v_u16m8_u8m8((vuint16m8_t)(op0))
-#define vreinterpret_v_u16mf2_u8mf2(op0) \
-__builtin_rvv_vreinterpret_v_u16mf2_u8mf2((vuint16mf2_t)(op0))
-#define vreinterpret_v_u16mf4_u8mf4(op0) \
-__builtin_rvv_vreinterpret_v_u16mf4_u8mf4((vuint16mf4_t)(op0))
-#define vreinterpret_v_u32m1_u8m1(op0) \
-__builtin_rvv_vreinterpret_v_u32m1_u8m1((vuint32m1_t)(op0))
-#define vreinterpret_v_u32m2_u8m2(op0) \
-__builtin_rvv_vreinterpret_v_u32m2_u8m2((vuint32m2_t)(op0))
-#define vreinterpret_v_u32m4_u8m4(op0) \
-__builtin_rvv_vreinterpret_v_u32m4_u8m4((vuint32m4_t)(op0))
-#define vreinterpret_v_u32m8_u8m8(op0) \
-__builtin_rvv_vreinterpret_v_u32m8_u8m8((vuint32m8_t)(op0))
-#define vreinterpret_v_u32mf2_u8mf2(op0) \
-__builtin_rvv_vreinterpret_v_u32mf2_u8mf2((vuint32mf2_t)(op0))
-#define vreinterpret_v_u64m1_u8m1(op0) \
-__builtin_rvv_vreinterpret_v_u64m1_u8m1((vuint64m1_t)(op0))
-#define vreinterpret_v_u64m2_u8m2(op0) \
-__builtin_rvv_vreinterpret_v_u64m2_u8m2((vuint64m2_t)(op0))
-#define vreinterpret_v_u64m4_u8m4(op0) \
-__builtin_rvv_vreinterpret_v_u64m4_u8m4((vuint64m4_t)(op0))
-#define vreinterpret_v_u64m8_u8m8(op0) \
-__builtin_rvv_vreinterpret_v_u64m8_u8m8((vuint64m8_t)(op0))
-#define vreinterpret_v_i8m1_u8m1(op0) \
-__builtin_rvv_vreinterpret_v_i8m1_u8m1((vint8m1_t)(op0))
-#define vreinterpret_v_i8m2_u8m2(op0) \
-__builtin_rvv_vreinterpret_v_i8m2_u8m2((vint8m2_t)(op0))
-#define vreinterpret_v_i8m4_u8m4(op0) \
-__builtin_rvv_vreinterpret_v_i8m4_u8m4((vint8m4_t)(op0))
-#define vreinterpret_v_i8m8_u8m8(op0) \
-__builtin_rvv_vreinterpret_v_i8m8_u8m8((vint8m8_t)(op0))
-#define vreinterpret_v_i8mf2_u8mf2(op0) \
-__builtin_rvv_vreinterpret_v_i8mf2_u8mf2((vint8mf2_t)(op0))
-#define vreinterpret_v_i8mf4_u8mf4(op0) \
-__builtin_rvv_vreinterpret_v_i8mf4_u8mf4((vint8mf4_t)(op0))
-#define vreinterpret_v_i8mf8_u8mf8(op0) \
-__builtin_rvv_vreinterpret_v_i8mf8_u8mf8((vint8mf8_t)(op0))
-#define vreinterpret_v_i16m1_u16m1(op0) \
-__builtin_rvv_vreinterpret_v_i16m1_u16m1((vint16m1_t)(op0))
-#define vreinterpret_v_i16m2_u16m2(op0) \
-__builtin_rvv_vreinterpret_v_i16m2_u16m2((vint16m2_t)(op0))
-#define vreinterpret_v_i16m4_u16m4(op0) \
-__builtin_rvv_vreinterpret_v_i16m4_u16m4((vint16m4_t)(op0))
-#define vreinterpret_v_i16m8_u16m8(op0) \
-__builtin_rvv_vreinterpret_v_i16m8_u16m8((vint16m8_t)(op0))
-#define vreinterpret_v_i16mf2_u16mf2(op0) \
-__builtin_rvv_vreinterpret_v_i16mf2_u16mf2((vint16mf2_t)(op0))
-#define vreinterpret_v_i16mf4_u16mf4(op0) \
-__builtin_rvv_vreinterpret_v_i16mf4_u16mf4((vint16mf4_t)(op0))
-#define vreinterpret_v_i32m1_u32m1(op0) \
-__builtin_rvv_vreinterpret_v_i32m1_u32m1((vint32m1_t)(op0))
-#define vreinterpret_v_i32m2_u32m2(op0) \
-__builtin_rvv_vreinterpret_v_i32m2_u32m2((vint32m2_t)(op0))
-#define vreinterpret_v_i32m4_u32m4(op0) \
-__builtin_rvv_vreinterpret_v_i32m4_u32m4((vint32m4_t)(op0))
-#define vreinterpret_v_i32m8_u32m8(op0) \
-__builtin_rvv_vreinterpret_v_i32m8_u32m8((vint32m8_t)(op0))
-#define vreinterpret_v_i32mf2_u32mf2(op0) \
-__builtin_rvv_vreinterpret_v_i32mf2_u32mf2((vint32mf2_t)(op0))
-#define vreinterpret_v_i64m1_u64m1(op0) \
-__builtin_rvv_vreinterpret_v_i64m1_u64m1((vint64m1_t)(op0))
-#define vreinterpret_v_i64m2_u64m2(op0) \
-__builtin_rvv_vreinterpret_v_i64m2_u64m2((vint64m2_t)(op0))
-#define vreinterpret_v_i64m4_u64m4(op0) \
-__builtin_rvv_vreinterpret_v_i64m4_u64m4((vint64m4_t)(op0))
-#define vreinterpret_v_i64m8_u64m8(op0) \
-__builtin_rvv_vreinterpret_v_i64m8_u64m8((vint64m8_t)(op0))
-#define vse1_v_b8(op0, op1, op2) \
-__builtin_rvv_vse1_v_b8((uint8_t *)(op0), (vbool8_t)(op1), (size_t)(op2))
-#define vse1_v_b4(op0, op1, op2) \
-__builtin_rvv_vse1_v_b4((uint8_t *)(op0), (vbool4_t)(op1), (size_t)(op2))
-#define vse1_v_b2(op0, op1, op2) \
-__builtin_rvv_vse1_v_b2((uint8_t *)(op0), (vbool2_t)(op1), (size_t)(op2))
-#define vse1_v_b1(op0, op1, op2) \
-__builtin_rvv_vse1_v_b1((uint8_t *)(op0), (vbool1_t)(op1), (size_t)(op2))
-#define vse1_v_b16(op0, op1, op2) \
-__builtin_rvv_vse1_v_b16((uint8_t *)(op0), (vbool16_t)(op1), (size_t)(op2))
-#define vse1_v_b32(op0, op1, op2) \
-__builtin_rvv_vse1_v_b32((uint8_t *)(op0), (vbool32_t)(op1), (size_t)(op2))
-#define vse1_v_b64(op0, op1, op2) \
-__builtin_rvv_vse1_v_b64((uint8_t *)(op0), (vbool64_t)(op1), (size_t)(op2))
-#define vsext_vf2_i16mf4(op0, op1) \
-__builtin_rvv_vsext_vf2_i16mf4((vint8mf8_t)(op0), (size_t)(op1))
-#define vsext_vf2_i16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsext_vf2_i16mf2(op0, op1) \
-__builtin_rvv_vsext_vf2_i16mf2((vint8mf4_t)(op0), (size_t)(op1))
-#define vsext_vf2_i16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsext_vf2_i16m1(op0, op1) \
-__builtin_rvv_vsext_vf2_i16m1((vint8mf2_t)(op0), (size_t)(op1))
-#define vsext_vf2_i16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsext_vf2_i16m2(op0, op1) \
-__builtin_rvv_vsext_vf2_i16m2((vint8m1_t)(op0), (size_t)(op1))
-#define vsext_vf2_i16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsext_vf2_i16m4(op0, op1) \
-__builtin_rvv_vsext_vf2_i16m4((vint8m2_t)(op0), (size_t)(op1))
-#define vsext_vf2_i16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vsext_vf2_i16m8(op0, op1) \
-__builtin_rvv_vsext_vf2_i16m8((vint8m4_t)(op0), (size_t)(op1))
-#define vsext_vf2_i16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vsext_vf2_i32mf2(op0, op1) \
-__builtin_rvv_vsext_vf2_i32mf2((vint16mf4_t)(op0), (size_t)(op1))
-#define vsext_vf2_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsext_vf2_i32m1(op0, op1) \
-__builtin_rvv_vsext_vf2_i32m1((vint16mf2_t)(op0), (size_t)(op1))
-#define vsext_vf2_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsext_vf2_i32m2(op0, op1) \
-__builtin_rvv_vsext_vf2_i32m2((vint16m1_t)(op0), (size_t)(op1))
-#define vsext_vf2_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsext_vf2_i32m4(op0, op1) \
-__builtin_rvv_vsext_vf2_i32m4((vint16m2_t)(op0), (size_t)(op1))
-#define vsext_vf2_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsext_vf2_i32m8(op0, op1) \
-__builtin_rvv_vsext_vf2_i32m8((vint16m4_t)(op0), (size_t)(op1))
-#define vsext_vf2_i32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vsext_vf2_i64m1(op0, op1) \
-__builtin_rvv_vsext_vf2_i64m1((vint32mf2_t)(op0), (size_t)(op1))
-#define vsext_vf2_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsext_vf2_i64m2(op0, op1) \
-__builtin_rvv_vsext_vf2_i64m2((vint32m1_t)(op0), (size_t)(op1))
-#define vsext_vf2_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vsext_vf2_i64m4(op0, op1) \
-__builtin_rvv_vsext_vf2_i64m4((vint32m2_t)(op0), (size_t)(op1))
-#define vsext_vf2_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vsext_vf2_i64m8(op0, op1) \
-__builtin_rvv_vsext_vf2_i64m8((vint32m4_t)(op0), (size_t)(op1))
-#define vsext_vf2_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vsext_vf4_i32mf2(op0, op1) \
-__builtin_rvv_vsext_vf4_i32mf2((vint8mf8_t)(op0), (size_t)(op1))
-#define vsext_vf4_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf4_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsext_vf4_i32m1(op0, op1) \
-__builtin_rvv_vsext_vf4_i32m1((vint8mf4_t)(op0), (size_t)(op1))
-#define vsext_vf4_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf4_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsext_vf4_i32m2(op0, op1) \
-__builtin_rvv_vsext_vf4_i32m2((vint8mf2_t)(op0), (size_t)(op1))
-#define vsext_vf4_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf4_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsext_vf4_i32m4(op0, op1) \
-__builtin_rvv_vsext_vf4_i32m4((vint8m1_t)(op0), (size_t)(op1))
-#define vsext_vf4_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf4_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsext_vf4_i32m8(op0, op1) \
-__builtin_rvv_vsext_vf4_i32m8((vint8m2_t)(op0), (size_t)(op1))
-#define vsext_vf4_i32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf4_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vsext_vf4_i64m1(op0, op1) \
-__builtin_rvv_vsext_vf4_i64m1((vint16mf4_t)(op0), (size_t)(op1))
-#define vsext_vf4_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf4_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsext_vf4_i64m2(op0, op1) \
-__builtin_rvv_vsext_vf4_i64m2((vint16mf2_t)(op0), (size_t)(op1))
-#define vsext_vf4_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf4_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsext_vf4_i64m4(op0, op1) \
-__builtin_rvv_vsext_vf4_i64m4((vint16m1_t)(op0), (size_t)(op1))
-#define vsext_vf4_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf4_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsext_vf4_i64m8(op0, op1) \
-__builtin_rvv_vsext_vf4_i64m8((vint16m2_t)(op0), (size_t)(op1))
-#define vsext_vf4_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf4_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsext_vf8_i64m1(op0, op1) \
-__builtin_rvv_vsext_vf8_i64m1((vint8mf8_t)(op0), (size_t)(op1))
-#define vsext_vf8_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf8_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsext_vf8_i64m2(op0, op1) \
-__builtin_rvv_vsext_vf8_i64m2((vint8mf4_t)(op0), (size_t)(op1))
-#define vsext_vf8_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf8_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsext_vf8_i64m4(op0, op1) \
-__builtin_rvv_vsext_vf8_i64m4((vint8mf2_t)(op0), (size_t)(op1))
-#define vsext_vf8_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf8_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsext_vf8_i64m8(op0, op1) \
-__builtin_rvv_vsext_vf8_i64m8((vint8m1_t)(op0), (size_t)(op1))
-#define vsext_vf8_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf8_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vundefined_i8m1() \
-__builtin_rvv_vundefined_i8m1()
-#define vundefined_i8m2() \
-__builtin_rvv_vundefined_i8m2()
-#define vundefined_i8m4() \
-__builtin_rvv_vundefined_i8m4()
-#define vundefined_i8m8() \
-__builtin_rvv_vundefined_i8m8()
-#define vundefined_i8mf2() \
-__builtin_rvv_vundefined_i8mf2()
-#define vundefined_i8mf4() \
-__builtin_rvv_vundefined_i8mf4()
-#define vundefined_i8mf8() \
-__builtin_rvv_vundefined_i8mf8()
-#define vundefined_i16m1() \
-__builtin_rvv_vundefined_i16m1()
-#define vundefined_i16m2() \
-__builtin_rvv_vundefined_i16m2()
-#define vundefined_i16m4() \
-__builtin_rvv_vundefined_i16m4()
-#define vundefined_i16m8() \
-__builtin_rvv_vundefined_i16m8()
-#define vundefined_i16mf2() \
-__builtin_rvv_vundefined_i16mf2()
-#define vundefined_i16mf4() \
-__builtin_rvv_vundefined_i16mf4()
-#define vundefined_i32m1() \
-__builtin_rvv_vundefined_i32m1()
-#define vundefined_i32m2() \
-__builtin_rvv_vundefined_i32m2()
-#define vundefined_i32m4() \
-__builtin_rvv_vundefined_i32m4()
-#define vundefined_i32m8() \
-__builtin_rvv_vundefined_i32m8()
-#define vundefined_i32mf2() \
-__builtin_rvv_vundefined_i32mf2()
-#define vundefined_i64m1() \
-__builtin_rvv_vundefined_i64m1()
-#define vundefined_i64m2() \
-__builtin_rvv_vundefined_i64m2()
-#define vundefined_i64m4() \
-__builtin_rvv_vundefined_i64m4()
-#define vundefined_i64m8() \
-__builtin_rvv_vundefined_i64m8()
-#define vundefined_u8m1() \
-__builtin_rvv_vundefined_u8m1()
-#define vundefined_u8m2() \
-__builtin_rvv_vundefined_u8m2()
-#define vundefined_u8m4() \
-__builtin_rvv_vundefined_u8m4()
-#define vundefined_u8m8() \
-__builtin_rvv_vundefined_u8m8()
-#define vundefined_u8mf2() \
-__builtin_rvv_vundefined_u8mf2()
-#define vundefined_u8mf4() \
-__builtin_rvv_vundefined_u8mf4()
-#define vundefined_u8mf8() \
-__builtin_rvv_vundefined_u8mf8()
-#define vundefined_u16m1() \
-__builtin_rvv_vundefined_u16m1()
-#define vundefined_u16m2() \
-__builtin_rvv_vundefined_u16m2()
-#define vundefined_u16m4() \
-__builtin_rvv_vundefined_u16m4()
-#define vundefined_u16m8() \
-__builtin_rvv_vundefined_u16m8()
-#define vundefined_u16mf2() \
-__builtin_rvv_vundefined_u16mf2()
-#define vundefined_u16mf4() \
-__builtin_rvv_vundefined_u16mf4()
-#define vundefined_u32m1() \
-__builtin_rvv_vundefined_u32m1()
-#define vundefined_u32m2() \
-__builtin_rvv_vundefined_u32m2()
-#define vundefined_u32m4() \
-__builtin_rvv_vundefined_u32m4()
-#define vundefined_u32m8() \
-__builtin_rvv_vundefined_u32m8()
-#define vundefined_u32mf2() \
-__builtin_rvv_vundefined_u32mf2()
-#define vundefined_u64m1() \
-__builtin_rvv_vundefined_u64m1()
-#define vundefined_u64m2() \
-__builtin_rvv_vundefined_u64m2()
-#define vundefined_u64m4() \
-__builtin_rvv_vundefined_u64m4()
-#define vundefined_u64m8() \
-__builtin_rvv_vundefined_u64m8()
-#define vzext_vf2_u16mf4(op0, op1) \
-__builtin_rvv_vzext_vf2_u16mf4((vuint8mf8_t)(op0), (size_t)(op1))
-#define vzext_vf2_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vzext_vf2_u16mf2(op0, op1) \
-__builtin_rvv_vzext_vf2_u16mf2((vuint8mf4_t)(op0), (size_t)(op1))
-#define vzext_vf2_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vzext_vf2_u16m1(op0, op1) \
-__builtin_rvv_vzext_vf2_u16m1((vuint8mf2_t)(op0), (size_t)(op1))
-#define vzext_vf2_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vzext_vf2_u16m2(op0, op1) \
-__builtin_rvv_vzext_vf2_u16m2((vuint8m1_t)(op0), (size_t)(op1))
-#define vzext_vf2_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vzext_vf2_u16m4(op0, op1) \
-__builtin_rvv_vzext_vf2_u16m4((vuint8m2_t)(op0), (size_t)(op1))
-#define vzext_vf2_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vzext_vf2_u16m8(op0, op1) \
-__builtin_rvv_vzext_vf2_u16m8((vuint8m4_t)(op0), (size_t)(op1))
-#define vzext_vf2_u16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vzext_vf2_u32mf2(op0, op1) \
-__builtin_rvv_vzext_vf2_u32mf2((vuint16mf4_t)(op0), (size_t)(op1))
-#define vzext_vf2_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vzext_vf2_u32m1(op0, op1) \
-__builtin_rvv_vzext_vf2_u32m1((vuint16mf2_t)(op0), (size_t)(op1))
-#define vzext_vf2_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vzext_vf2_u32m2(op0, op1) \
-__builtin_rvv_vzext_vf2_u32m2((vuint16m1_t)(op0), (size_t)(op1))
-#define vzext_vf2_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vzext_vf2_u32m4(op0, op1) \
-__builtin_rvv_vzext_vf2_u32m4((vuint16m2_t)(op0), (size_t)(op1))
-#define vzext_vf2_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vzext_vf2_u32m8(op0, op1) \
-__builtin_rvv_vzext_vf2_u32m8((vuint16m4_t)(op0), (size_t)(op1))
-#define vzext_vf2_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vzext_vf2_u64m1(op0, op1) \
-__builtin_rvv_vzext_vf2_u64m1((vuint32mf2_t)(op0), (size_t)(op1))
-#define vzext_vf2_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vzext_vf2_u64m2(op0, op1) \
-__builtin_rvv_vzext_vf2_u64m2((vuint32m1_t)(op0), (size_t)(op1))
-#define vzext_vf2_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vzext_vf2_u64m4(op0, op1) \
-__builtin_rvv_vzext_vf2_u64m4((vuint32m2_t)(op0), (size_t)(op1))
-#define vzext_vf2_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vzext_vf2_u64m8(op0, op1) \
-__builtin_rvv_vzext_vf2_u64m8((vuint32m4_t)(op0), (size_t)(op1))
-#define vzext_vf2_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vzext_vf4_u32mf2(op0, op1) \
-__builtin_rvv_vzext_vf4_u32mf2((vuint8mf8_t)(op0), (size_t)(op1))
-#define vzext_vf4_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf4_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vzext_vf4_u32m1(op0, op1) \
-__builtin_rvv_vzext_vf4_u32m1((vuint8mf4_t)(op0), (size_t)(op1))
-#define vzext_vf4_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf4_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vzext_vf4_u32m2(op0, op1) \
-__builtin_rvv_vzext_vf4_u32m2((vuint8mf2_t)(op0), (size_t)(op1))
-#define vzext_vf4_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf4_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vzext_vf4_u32m4(op0, op1) \
-__builtin_rvv_vzext_vf4_u32m4((vuint8m1_t)(op0), (size_t)(op1))
-#define vzext_vf4_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf4_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vzext_vf4_u32m8(op0, op1) \
-__builtin_rvv_vzext_vf4_u32m8((vuint8m2_t)(op0), (size_t)(op1))
-#define vzext_vf4_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf4_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vzext_vf4_u64m1(op0, op1) \
-__builtin_rvv_vzext_vf4_u64m1((vuint16mf4_t)(op0), (size_t)(op1))
-#define vzext_vf4_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf4_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vzext_vf4_u64m2(op0, op1) \
-__builtin_rvv_vzext_vf4_u64m2((vuint16mf2_t)(op0), (size_t)(op1))
-#define vzext_vf4_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf4_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vzext_vf4_u64m4(op0, op1) \
-__builtin_rvv_vzext_vf4_u64m4((vuint16m1_t)(op0), (size_t)(op1))
-#define vzext_vf4_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf4_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vzext_vf4_u64m8(op0, op1) \
-__builtin_rvv_vzext_vf4_u64m8((vuint16m2_t)(op0), (size_t)(op1))
-#define vzext_vf4_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf4_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vzext_vf8_u64m1(op0, op1) \
-__builtin_rvv_vzext_vf8_u64m1((vuint8mf8_t)(op0), (size_t)(op1))
-#define vzext_vf8_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf8_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vzext_vf8_u64m2(op0, op1) \
-__builtin_rvv_vzext_vf8_u64m2((vuint8mf4_t)(op0), (size_t)(op1))
-#define vzext_vf8_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf8_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vzext_vf8_u64m4(op0, op1) \
-__builtin_rvv_vzext_vf8_u64m4((vuint8mf2_t)(op0), (size_t)(op1))
-#define vzext_vf8_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf8_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vzext_vf8_u64m8(op0, op1) \
-__builtin_rvv_vzext_vf8_u64m8((vuint8m1_t)(op0), (size_t)(op1))
-#define vzext_vf8_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf8_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#if defined(__riscv_f)
-#define vsse32_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_f32m1((float *)(op0), (ptrdiff_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vsse32_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsse32_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_f32m2((float *)(op0), (ptrdiff_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vsse32_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsse32_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_f32m4((float *)(op0), (ptrdiff_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vsse32_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsse32_v_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_f32m8((float *)(op0), (ptrdiff_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vsse32_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_f32m8_m((vbool4_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vsse32_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_f32mf2((float *)(op0), (ptrdiff_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vsse32_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_f32m1(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f32m1((const float *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vluxei8_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (const float *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_f32m2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f32m2((const float *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vluxei8_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (const float *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_f32m4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f32m4((const float *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vluxei8_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (const float *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_f32m8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f32m8((const float *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vluxei8_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (const float *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxei8_v_f32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f32mf2((const float *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vluxei8_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (const float *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxei16_v_f32m1(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f32m1((const float *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vluxei16_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (const float *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxei16_v_f32m2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f32m2((const float *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vluxei16_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (const float *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_f32m4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f32m4((const float *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vluxei16_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (const float *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxei16_v_f32m8(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f32m8((const float *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vluxei16_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (const float *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxei16_v_f32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f32mf2((const float *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vluxei16_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (const float *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxei32_v_f32m1(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f32m1((const float *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vluxei32_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (const float *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxei32_v_f32m2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f32m2((const float *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vluxei32_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (const float *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_f32m4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f32m4((const float *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vluxei32_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (const float *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei32_v_f32m8(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f32m8((const float *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vluxei32_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (const float *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxei32_v_f32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f32mf2((const float *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vluxei32_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (const float *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxei64_v_f32m1(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f32m1((const float *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vluxei64_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (const float *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxei64_v_f32m2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f32m2((const float *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vluxei64_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (const float *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_f32m4(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f32m4((const float *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vluxei64_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (const float *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxei64_v_f32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f32mf2((const float *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vluxei64_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (const float *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_f32m1(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f32m1((const float *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vloxei8_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (const float *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxei8_v_f32m2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f32m2((const float *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vloxei8_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (const float *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxei8_v_f32m4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f32m4((const float *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vloxei8_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (const float *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_f32m8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f32m8((const float *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vloxei8_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (const float *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxei8_v_f32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f32mf2((const float *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vloxei8_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (const float *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxei16_v_f32m1(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f32m1((const float *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vloxei16_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (const float *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxei16_v_f32m2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f32m2((const float *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vloxei16_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (const float *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_f32m4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f32m4((const float *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vloxei16_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (const float *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxei16_v_f32m8(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f32m8((const float *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vloxei16_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (const float *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxei16_v_f32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f32mf2((const float *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vloxei16_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (const float *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxei32_v_f32m1(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f32m1((const float *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vloxei32_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (const float *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxei32_v_f32m2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f32m2((const float *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vloxei32_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (const float *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_f32m4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f32m4((const float *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vloxei32_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (const float *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxei32_v_f32m8(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f32m8((const float *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vloxei32_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (const float *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxei32_v_f32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f32mf2((const float *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vloxei32_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (const float *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxei64_v_f32m1(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f32m1((const float *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vloxei64_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (const float *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxei64_v_f32m2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f32m2((const float *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vloxei64_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (const float *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_f32m4(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f32m4((const float *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vloxei64_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (const float *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxei64_v_f32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f32mf2((const float *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vloxei64_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (const float *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmv_v_v_f32m1(op0, op1) \
-__builtin_rvv_vmv_v_v_f32m1((vfloat32m1_t)(op0), (size_t)(op1))
-#define vmv_v_v_f32m2(op0, op1) \
-__builtin_rvv_vmv_v_v_f32m2((vfloat32m2_t)(op0), (size_t)(op1))
-#define vmv_v_v_f32m4(op0, op1) \
-__builtin_rvv_vmv_v_v_f32m4((vfloat32m4_t)(op0), (size_t)(op1))
-#define vmv_v_v_f32m8(op0, op1) \
-__builtin_rvv_vmv_v_v_f32m8((vfloat32m8_t)(op0), (size_t)(op1))
-#define vmv_v_v_f32mf2(op0, op1) \
-__builtin_rvv_vmv_v_v_f32mf2((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfadd_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfadd_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfadd_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfadd_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfadd_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfadd_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfadd_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vfadd_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfadd_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfadd_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfadd_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfadd_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfadd_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfadd_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfadd_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfadd_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfadd_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfadd_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfadd_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfadd_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsub_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfsub_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfsub_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfsub_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfsub_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfsub_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfsub_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vfsub_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfsub_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfsub_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfsub_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsub_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsub_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsub_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsub_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsub_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsub_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsub_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsub_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsub_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfrsub_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfrsub_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfrsub_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfrsub_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfrsub_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfrsub_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfrsub_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfrsub_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfrsub_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfrsub_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmul_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfmul_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmul_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfmul_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfmul_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfmul_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfmul_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vfmul_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfmul_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfmul_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfmul_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmul_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmul_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmul_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmul_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmul_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmul_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmul_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmul_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmul_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfdiv_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfdiv_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfdiv_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfdiv_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfdiv_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfdiv_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfdiv_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfdiv_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfdiv_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfdiv_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfdiv_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfrdiv_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfrdiv_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfrdiv_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfrdiv_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfrdiv_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfrdiv_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfrdiv_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfrdiv_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfrdiv_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfrdiv_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmacc_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (float)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (float)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (float)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (float)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (float)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (float)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (float)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (float)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfmin_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfmin_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmin_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfmin_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfmin_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfmin_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfmin_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vfmin_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfmin_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfmin_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfmin_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmin_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmin_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmin_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmin_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmin_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmin_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmin_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmin_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmin_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmax_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfmax_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmax_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfmax_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfmax_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfmax_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfmax_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vfmax_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfmax_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfmax_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfmax_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmax_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmax_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmax_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmax_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmax_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmax_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmax_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmax_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmax_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnj_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfsgnj_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnj_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnj_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnj_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnj_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnj_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnj_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnj_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnj_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnj_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfabs_v_f32m1(op0, op1) \
-__builtin_rvv_vfabs_v_f32m1((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfabs_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfabs_v_f32m2(op0, op1) \
-__builtin_rvv_vfabs_v_f32m2((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfabs_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfabs_v_f32m4(op0, op1) \
-__builtin_rvv_vfabs_v_f32m4((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfabs_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfabs_v_f32m8(op0, op1) \
-__builtin_rvv_vfabs_v_f32m8((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfabs_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfabs_v_f32mf2(op0, op1) \
-__builtin_rvv_vfabs_v_f32mf2((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfabs_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vmfeq_vv_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f32m1_b32((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f32m2_b16((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f32m4_b8((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f32m8_b4((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f32mf2_b64((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vmfeq_vf_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f32m1_b32((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfeq_vf_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfeq_vf_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f32m2_b16((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfeq_vf_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfeq_vf_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f32m4_b8((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfeq_vf_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfeq_vf_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f32m8_b4((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfeq_vf_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfeq_vf_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f32mf2_b64((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfeq_vf_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfne_vv_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f32m1_b32((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vmfne_vv_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vmfne_vv_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f32m2_b16((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vmfne_vv_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vmfne_vv_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f32m4_b8((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vmfne_vv_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vmfne_vv_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f32m8_b4((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vmfne_vv_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vmfne_vv_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f32mf2_b64((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vmfne_vv_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vmfne_vf_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f32m1_b32((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfne_vf_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfne_vf_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f32m2_b16((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfne_vf_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfne_vf_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f32m4_b8((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfne_vf_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfne_vf_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f32m8_b4((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfne_vf_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfne_vf_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f32mf2_b64((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfne_vf_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmflt_vv_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f32m1_b32((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vmflt_vv_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vmflt_vv_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f32m2_b16((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vmflt_vv_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vmflt_vv_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f32m4_b8((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vmflt_vv_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vmflt_vv_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f32m8_b4((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vmflt_vv_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vmflt_vv_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f32mf2_b64((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vmflt_vv_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vmflt_vf_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f32m1_b32((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vmflt_vf_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vmflt_vf_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f32m2_b16((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmflt_vf_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmflt_vf_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f32m4_b8((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vmflt_vf_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vmflt_vf_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f32m8_b4((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vmflt_vf_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vmflt_vf_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f32mf2_b64((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmflt_vf_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfle_vv_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f32m1_b32((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vmfle_vv_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vmfle_vv_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f32m2_b16((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vmfle_vv_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vmfle_vv_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f32m4_b8((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vmfle_vv_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vmfle_vv_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f32m8_b4((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vmfle_vv_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vmfle_vv_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f32mf2_b64((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vmfle_vv_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vmfle_vf_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f32m1_b32((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfle_vf_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfle_vf_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f32m2_b16((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfle_vf_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfle_vf_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f32m4_b8((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfle_vf_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfle_vf_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f32m8_b4((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfle_vf_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfle_vf_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f32mf2_b64((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfle_vf_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfgt_vv_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f32m1_b32((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f32m2_b16((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f32m4_b8((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f32m8_b4((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f32mf2_b64((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vmfgt_vf_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f32m1_b32((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfgt_vf_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfgt_vf_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f32m2_b16((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfgt_vf_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfgt_vf_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f32m4_b8((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfgt_vf_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfgt_vf_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f32m8_b4((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfgt_vf_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfgt_vf_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f32mf2_b64((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfgt_vf_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfge_vv_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f32m1_b32((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vmfge_vv_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vmfge_vv_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f32m2_b16((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vmfge_vv_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vmfge_vv_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f32m4_b8((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vmfge_vv_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vmfge_vv_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f32m8_b4((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vmfge_vv_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vmfge_vv_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f32mf2_b64((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vmfge_vv_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vmfge_vf_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f32m1_b32((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfge_vf_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfge_vf_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f32m2_b16((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfge_vf_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfge_vf_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f32m4_b8((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfge_vf_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfge_vf_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f32m8_b4((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfge_vf_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfge_vf_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f32mf2_b64((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfge_vf_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmerge_vvm_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f32m1((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f32m2((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f32m4((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f32m8((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f32mf2((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfmerge_vfm_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f32m1((vbool32_t)(op0), (vfloat32m1_t)(op1), (float)(op2), (size_t)(op3))
-#define vfmerge_vfm_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f32m2((vbool16_t)(op0), (vfloat32m2_t)(op1), (float)(op2), (size_t)(op3))
-#define vfmerge_vfm_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f32m4((vbool8_t)(op0), (vfloat32m4_t)(op1), (float)(op2), (size_t)(op3))
-#define vfmerge_vfm_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f32m8((vbool4_t)(op0), (vfloat32m8_t)(op1), (float)(op2), (size_t)(op3))
-#define vfmerge_vfm_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f32mf2((vbool64_t)(op0), (vfloat32mf2_t)(op1), (float)(op2), (size_t)(op3))
-#define vfmv_v_f_f32m1(op0, op1) \
-__builtin_rvv_vfmv_v_f_f32m1((float)(op0), (size_t)(op1))
-#define vfmv_v_f_f32m2(op0, op1) \
-__builtin_rvv_vfmv_v_f_f32m2((float)(op0), (size_t)(op1))
-#define vfmv_v_f_f32m4(op0, op1) \
-__builtin_rvv_vfmv_v_f_f32m4((float)(op0), (size_t)(op1))
-#define vfmv_v_f_f32m8(op0, op1) \
-__builtin_rvv_vfmv_v_f_f32m8((float)(op0), (size_t)(op1))
-#define vfmv_v_f_f32mf2(op0, op1) \
-__builtin_rvv_vfmv_v_f_f32mf2((float)(op0), (size_t)(op1))
-#define vfredmax_vs_f32m1_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f32m1_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f32m1_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f32m1_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f32m2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f32m2_f32m1((vfloat32m1_t)(op0), (vfloat32m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f32m2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f32m2_f32m1_m((vbool16_t)(op0), (vfloat32m1_t)(op1), (vfloat32m2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f32m4_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f32m4_f32m1((vfloat32m1_t)(op0), (vfloat32m4_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f32m4_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f32m4_f32m1_m((vbool8_t)(op0), (vfloat32m1_t)(op1), (vfloat32m4_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f32m8_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f32m8_f32m1((vfloat32m1_t)(op0), (vfloat32m8_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f32m8_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f32m8_f32m1_m((vbool4_t)(op0), (vfloat32m1_t)(op1), (vfloat32m8_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f32mf2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f32mf2_f32m1((vfloat32m1_t)(op0), (vfloat32mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f32mf2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f32mf2_f32m1_m((vbool64_t)(op0), (vfloat32m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f32m1_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f32m1_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f32m1_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f32m1_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f32m2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f32m2_f32m1((vfloat32m1_t)(op0), (vfloat32m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f32m2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f32m2_f32m1_m((vbool16_t)(op0), (vfloat32m1_t)(op1), (vfloat32m2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f32m4_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f32m4_f32m1((vfloat32m1_t)(op0), (vfloat32m4_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f32m4_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f32m4_f32m1_m((vbool8_t)(op0), (vfloat32m1_t)(op1), (vfloat32m4_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f32m8_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f32m8_f32m1((vfloat32m1_t)(op0), (vfloat32m8_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f32m8_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f32m8_f32m1_m((vbool4_t)(op0), (vfloat32m1_t)(op1), (vfloat32m8_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f32mf2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f32mf2_f32m1((vfloat32m1_t)(op0), (vfloat32mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f32mf2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f32mf2_f32m1_m((vbool64_t)(op0), (vfloat32m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f32m1_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f32m1_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f32m1_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f32m1_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f32m2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f32m2_f32m1((vfloat32m1_t)(op0), (vfloat32m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f32m2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f32m2_f32m1_m((vbool16_t)(op0), (vfloat32m1_t)(op1), (vfloat32m2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f32m4_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f32m4_f32m1((vfloat32m1_t)(op0), (vfloat32m4_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f32m4_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f32m4_f32m1_m((vbool8_t)(op0), (vfloat32m1_t)(op1), (vfloat32m4_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f32m8_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f32m8_f32m1((vfloat32m1_t)(op0), (vfloat32m8_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f32m8_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f32m8_f32m1_m((vbool4_t)(op0), (vfloat32m1_t)(op1), (vfloat32m8_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f32mf2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f32mf2_f32m1((vfloat32m1_t)(op0), (vfloat32mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f32mf2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f32mf2_f32m1_m((vbool64_t)(op0), (vfloat32m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f32m1_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f32m1_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f32m1_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f32m1_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f32m2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f32m2_f32m1((vfloat32m1_t)(op0), (vfloat32m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f32m2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f32m2_f32m1_m((vbool16_t)(op0), (vfloat32m1_t)(op1), (vfloat32m2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f32m4_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f32m4_f32m1((vfloat32m1_t)(op0), (vfloat32m4_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f32m4_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f32m4_f32m1_m((vbool8_t)(op0), (vfloat32m1_t)(op1), (vfloat32m4_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f32m8_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f32m8_f32m1((vfloat32m1_t)(op0), (vfloat32m8_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f32m8_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f32m8_f32m1_m((vbool4_t)(op0), (vfloat32m1_t)(op1), (vfloat32m8_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f32mf2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f32mf2_f32m1((vfloat32m1_t)(op0), (vfloat32mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f32mf2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f32mf2_f32m1_m((vbool64_t)(op0), (vfloat32m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmv_f_s_f32m1_f32(op0) \
-__builtin_rvv_vfmv_f_s_f32m1_f32((vfloat32m1_t)(op0))
-#define vfmv_f_s_f32m2_f32(op0) \
-__builtin_rvv_vfmv_f_s_f32m2_f32((vfloat32m2_t)(op0))
-#define vfmv_f_s_f32m4_f32(op0) \
-__builtin_rvv_vfmv_f_s_f32m4_f32((vfloat32m4_t)(op0))
-#define vfmv_f_s_f32m8_f32(op0) \
-__builtin_rvv_vfmv_f_s_f32m8_f32((vfloat32m8_t)(op0))
-#define vfmv_f_s_f32mf2_f32(op0) \
-__builtin_rvv_vfmv_f_s_f32mf2_f32((vfloat32mf2_t)(op0))
-#define vfmv_s_f_f32m1(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmv_s_f_f32m2(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmv_s_f_f32m4(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmv_s_f_f32m8(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmv_s_f_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vslideup_vx_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vfslide1up_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfslide1up_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfslide1up_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfslide1up_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfslide1up_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfslide1up_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfslide1up_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfslide1up_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfslide1up_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfslide1up_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfslide1down_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfslide1down_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfslide1down_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfslide1down_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfslide1down_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfslide1down_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfslide1down_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfslide1down_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfslide1down_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfslide1down_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vrgather_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f32m1((vfloat32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vrgather_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vrgather_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f32m2((vfloat32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vrgather_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f32m4((vfloat32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vrgather_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vrgather_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f32m8((vfloat32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vrgather_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vrgather_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f32mf2((vfloat32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vrgather_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vrgather_vx_f32m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f32m1((vfloat32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f32m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f32m2((vfloat32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f32m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f32m4((vfloat32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f32m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f32m8((vfloat32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f32mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f32mf2((vfloat32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f32m1((vfloat32m1_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f32m2((vfloat32m2_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f32m4((vfloat32m4_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f32m8((vfloat32m8_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f32mf2((vfloat32mf2_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vcompress_vm_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f32m1((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vcompress_vm_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f32m2((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vcompress_vm_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f32m4((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vcompress_vm_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f32m8((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vcompress_vm_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f32mf2((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vget_v_f32m2_f32m1(op0, op1) \
-__builtin_rvv_vget_v_f32m2_f32m1((vfloat32m2_t)(op0), (size_t)(op1))
-#define vget_v_f32m4_f32m1(op0, op1) \
-__builtin_rvv_vget_v_f32m4_f32m1((vfloat32m4_t)(op0), (size_t)(op1))
-#define vget_v_f32m8_f32m1(op0, op1) \
-__builtin_rvv_vget_v_f32m8_f32m1((vfloat32m8_t)(op0), (size_t)(op1))
-#define vget_v_f32m4_f32m2(op0, op1) \
-__builtin_rvv_vget_v_f32m4_f32m2((vfloat32m4_t)(op0), (size_t)(op1))
-#define vget_v_f32m8_f32m2(op0, op1) \
-__builtin_rvv_vget_v_f32m8_f32m2((vfloat32m8_t)(op0), (size_t)(op1))
-#define vget_v_f32m8_f32m4(op0, op1) \
-__builtin_rvv_vget_v_f32m8_f32m4((vfloat32m8_t)(op0), (size_t)(op1))
-#define vset_v_f32m1_f32m2(op0, op1, op2) \
-__builtin_rvv_vset_v_f32m1_f32m2((vfloat32m2_t)(op0), (size_t)(op1), (vfloat32m1_t)(op2))
-#define vset_v_f32m1_f32m4(op0, op1, op2) \
-__builtin_rvv_vset_v_f32m1_f32m4((vfloat32m4_t)(op0), (size_t)(op1), (vfloat32m1_t)(op2))
-#define vset_v_f32m2_f32m4(op0, op1, op2) \
-__builtin_rvv_vset_v_f32m2_f32m4((vfloat32m4_t)(op0), (size_t)(op1), (vfloat32m2_t)(op2))
-#define vsuxei8_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f32m2((float *)(op0), (vuint8mf2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint8mf2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f32m4((float *)(op0), (vuint8m1_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint8m1_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f32m8((float *)(op0), (vuint8m2_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f32m8_m((vbool4_t)(op0), (float *)(op1), (vuint8m2_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vset_v_f32m1_f32m8(op0, op1, op2) \
-__builtin_rvv_vset_v_f32m1_f32m8((vfloat32m8_t)(op0), (size_t)(op1), (vfloat32m1_t)(op2))
-#define vset_v_f32m2_f32m8(op0, op1, op2) \
-__builtin_rvv_vset_v_f32m2_f32m8((vfloat32m8_t)(op0), (size_t)(op1), (vfloat32m2_t)(op2))
-#define vset_v_f32m4_f32m8(op0, op1, op2) \
-__builtin_rvv_vset_v_f32m4_f32m8((vfloat32m8_t)(op0), (size_t)(op1), (vfloat32m4_t)(op2))
-#define vsuxei16_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f32m2((float *)(op0), (vuint16m1_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint16m1_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f32m4((float *)(op0), (vuint16m2_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint16m2_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f32m8((float *)(op0), (vuint16m4_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f32m8_m((vbool4_t)(op0), (float *)(op1), (vuint16m4_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f32m2((float *)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f32m4((float *)(op0), (vuint32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f32m8((float *)(op0), (vuint32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f32m8_m((vbool4_t)(op0), (float *)(op1), (vuint32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f32m2((float *)(op0), (vuint64m4_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint64m4_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f32m4((float *)(op0), (vuint64m8_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint64m8_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsuxei64_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f32m2((float *)(op0), (vuint8mf2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint8mf2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f32m4((float *)(op0), (vuint8m1_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint8m1_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f32m8((float *)(op0), (vuint8m2_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f32m8_m((vbool4_t)(op0), (float *)(op1), (vuint8m2_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f32m2((float *)(op0), (vuint16m1_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint16m1_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f32m4((float *)(op0), (vuint16m2_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint16m2_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f32m8((float *)(op0), (vuint16m4_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f32m8_m((vbool4_t)(op0), (float *)(op1), (vuint16m4_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f32m2((float *)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f32m4((float *)(op0), (vuint32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f32m8((float *)(op0), (vuint32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f32m8_m((vbool4_t)(op0), (float *)(op1), (vuint32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f32m2((float *)(op0), (vuint64m4_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint64m4_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f32m4((float *)(op0), (vuint64m8_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint64m8_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vle32ff_v_f32m1(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_f32m1((const float *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (const float *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_f32m2(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_f32m2((const float *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (const float *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_f32m4(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_f32m4((const float *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (const float *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_f32m8(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_f32m8((const float *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (const float *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_f32mf2(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_f32mf2((const float *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (const float *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vfneg_v_f32m1(op0, op1) \
-__builtin_rvv_vfneg_v_f32m1((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfneg_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfneg_v_f32m2(op0, op1) \
-__builtin_rvv_vfneg_v_f32m2((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfneg_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfneg_v_f32m4(op0, op1) \
-__builtin_rvv_vfneg_v_f32m4((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfneg_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfneg_v_f32m8(op0, op1) \
-__builtin_rvv_vfneg_v_f32m8((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfneg_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfneg_v_f32mf2(op0, op1) \
-__builtin_rvv_vfneg_v_f32mf2((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfneg_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vle32_v_f32m1(op0, op1) \
-__builtin_rvv_vle32_v_f32m1((const float *)(op0), (size_t)(op1))
-#define vle32_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (const float *)(op2), (size_t)(op3))
-#define vle32_v_f32m2(op0, op1) \
-__builtin_rvv_vle32_v_f32m2((const float *)(op0), (size_t)(op1))
-#define vle32_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (const float *)(op2), (size_t)(op3))
-#define vle32_v_f32m4(op0, op1) \
-__builtin_rvv_vle32_v_f32m4((const float *)(op0), (size_t)(op1))
-#define vle32_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (const float *)(op2), (size_t)(op3))
-#define vle32_v_f32m8(op0, op1) \
-__builtin_rvv_vle32_v_f32m8((const float *)(op0), (size_t)(op1))
-#define vle32_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (const float *)(op2), (size_t)(op3))
-#define vle32_v_f32mf2(op0, op1) \
-__builtin_rvv_vle32_v_f32mf2((const float *)(op0), (size_t)(op1))
-#define vle32_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (const float *)(op2), (size_t)(op3))
-#define vse32_v_f32m1(op0, op1, op2) \
-__builtin_rvv_vse32_v_f32m1((float *)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vse32_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vse32_v_f32m2(op0, op1, op2) \
-__builtin_rvv_vse32_v_f32m2((float *)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vse32_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vse32_v_f32m4(op0, op1, op2) \
-__builtin_rvv_vse32_v_f32m4((float *)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vse32_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vse32_v_f32m8(op0, op1, op2) \
-__builtin_rvv_vse32_v_f32m8((float *)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vse32_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_f32m8_m((vbool4_t)(op0), (float *)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vse32_v_f32mf2(op0, op1, op2) \
-__builtin_rvv_vse32_v_f32mf2((float *)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vse32_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vlse32_v_f32m1(op0, op1, op2) \
-__builtin_rvv_vlse32_v_f32m1((const float *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (const float *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_f32m2(op0, op1, op2) \
-__builtin_rvv_vlse32_v_f32m2((const float *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (const float *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_f32m4(op0, op1, op2) \
-__builtin_rvv_vlse32_v_f32m4((const float *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (const float *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_f32m8(op0, op1, op2) \
-__builtin_rvv_vlse32_v_f32m8((const float *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (const float *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_f32mf2(op0, op1, op2) \
-__builtin_rvv_vlse32_v_f32mf2((const float *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (const float *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vfclass_v_u32m1(op0, op1) \
-__builtin_rvv_vfclass_v_u32m1((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfclass_v_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfclass_v_u32m2(op0, op1) \
-__builtin_rvv_vfclass_v_u32m2((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfclass_v_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfclass_v_u32m4(op0, op1) \
-__builtin_rvv_vfclass_v_u32m4((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfclass_v_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfclass_v_u32m8(op0, op1) \
-__builtin_rvv_vfclass_v_u32m8((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfclass_v_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfclass_v_u32mf2(op0, op1) \
-__builtin_rvv_vfclass_v_u32mf2((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfclass_v_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f32m1(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f32m1((vint32m1_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f32m2(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f32m2((vint32m2_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f32m4(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f32m4((vint32m4_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f32m8(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f32m8((vint32m8_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f32mf2(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f32mf2((vint32mf2_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f32m1(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f32m1((vuint32m1_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f32m2(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f32m2((vuint32m2_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f32m4(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f32m4((vuint32m4_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f32m8(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f32m8((vuint32m8_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f32mf2(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f32mf2((vuint32mf2_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i32m1(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i32m1((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i32m2(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i32m2((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i32m4(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i32m4((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i32m8(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i32m8((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i32mf2(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i32mf2((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u32m1(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u32m1((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u32m2(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u32m2((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u32m4(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u32m4((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u32m8(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u32m8((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u32mf2(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u32mf2((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i32m1(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i32m1((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i32m2(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i32m2((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i32m4(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i32m4((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i32m8(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i32m8((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i32mf2(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i32mf2((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u32m1(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u32m1((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u32m2(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u32m2((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u32m4(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u32m4((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u32m8(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u32m8((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u32mf2(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u32mf2((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfncvt_f_x_w_f32mf2(op0, op1) \
-__builtin_rvv_vfncvt_f_x_w_f32mf2((vint64m1_t)(op0), (size_t)(op1))
-#define vfncvt_f_x_w_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_x_w_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vfncvt_f_x_w_f32m1(op0, op1) \
-__builtin_rvv_vfncvt_f_x_w_f32m1((vint64m2_t)(op0), (size_t)(op1))
-#define vfncvt_f_x_w_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_x_w_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vfncvt_f_x_w_f32m2(op0, op1) \
-__builtin_rvv_vfncvt_f_x_w_f32m2((vint64m4_t)(op0), (size_t)(op1))
-#define vfncvt_f_x_w_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_x_w_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vfncvt_f_x_w_f32m4(op0, op1) \
-__builtin_rvv_vfncvt_f_x_w_f32m4((vint64m8_t)(op0), (size_t)(op1))
-#define vfncvt_f_x_w_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_x_w_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vfncvt_f_xu_w_f32mf2(op0, op1) \
-__builtin_rvv_vfncvt_f_xu_w_f32mf2((vuint64m1_t)(op0), (size_t)(op1))
-#define vfncvt_f_xu_w_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_xu_w_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vfncvt_f_xu_w_f32m1(op0, op1) \
-__builtin_rvv_vfncvt_f_xu_w_f32m1((vuint64m2_t)(op0), (size_t)(op1))
-#define vfncvt_f_xu_w_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_xu_w_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vfncvt_f_xu_w_f32m2(op0, op1) \
-__builtin_rvv_vfncvt_f_xu_w_f32m2((vuint64m4_t)(op0), (size_t)(op1))
-#define vfncvt_f_xu_w_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_xu_w_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vfncvt_f_xu_w_f32m4(op0, op1) \
-__builtin_rvv_vfncvt_f_xu_w_f32m4((vuint64m8_t)(op0), (size_t)(op1))
-#define vfncvt_f_xu_w_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_xu_w_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i16mf4(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i16mf4((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i16mf2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i16mf2((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i16m1(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i16m1((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i16m2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i16m2((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i16m4(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i16m4((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u16mf4(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u16mf4((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u16mf2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u16mf2((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u16m1(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u16m1((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u16m2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u16m2((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u16m4(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u16m4((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i16mf4(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i16mf4((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i16mf2(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i16mf2((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i16m1(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i16m1((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i16m2(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i16m2((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i16m4(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i16m4((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u16mf4(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u16mf4((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u16mf2(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u16mf2((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u16m1(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u16m1((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u16m2(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u16m2((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u16m4(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u16m4((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfrec7_v_f32m1(op0, op1) \
-__builtin_rvv_vfrec7_v_f32m1((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfrec7_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfrec7_v_f32m2(op0, op1) \
-__builtin_rvv_vfrec7_v_f32m2((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfrec7_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfrec7_v_f32m4(op0, op1) \
-__builtin_rvv_vfrec7_v_f32m4((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfrec7_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfrec7_v_f32m8(op0, op1) \
-__builtin_rvv_vfrec7_v_f32m8((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfrec7_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfrec7_v_f32mf2(op0, op1) \
-__builtin_rvv_vfrec7_v_f32mf2((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfrec7_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f32m1(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f32m1((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f32m2(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f32m2((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f32m4(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f32m4((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f32m8(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f32m8((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f32mf2(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f32mf2((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f32m1(op0, op1) \
-__builtin_rvv_vfsqrt_v_f32m1((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f32m2(op0, op1) \
-__builtin_rvv_vfsqrt_v_f32m2((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f32m4(op0, op1) \
-__builtin_rvv_vfsqrt_v_f32m4((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f32m8(op0, op1) \
-__builtin_rvv_vfsqrt_v_f32m8((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f32mf2(op0, op1) \
-__builtin_rvv_vfsqrt_v_f32mf2((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f32mf2(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f32mf2((vint16mf4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f32m1(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f32m1((vint16mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f32m2(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f32m2((vint16m1_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f32m4(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f32m4((vint16m2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f32m8(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f32m8((vint16m4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f32mf2(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f32mf2((vuint16mf4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f32m1(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f32m1((vuint16mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f32m2(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f32m2((vuint16m1_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f32m4(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f32m4((vuint16m2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f32m8(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f32m8((vuint16m4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_x_f_v_i64m1(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i64m1((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_x_f_v_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_x_f_v_i64m2(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i64m2((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_x_f_v_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_x_f_v_i64m4(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i64m4((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_x_f_v_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_x_f_v_i64m8(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i64m8((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_x_f_v_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_xu_f_v_u64m1(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m1((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_xu_f_v_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_xu_f_v_u64m2(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m2((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_xu_f_v_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_xu_f_v_u64m4(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m4((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_xu_f_v_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_xu_f_v_u64m8(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m8((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_xu_f_v_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfwcvt_x_f_v_i64m1(op0, op1) \
-__builtin_rvv_vfwcvt_x_f_v_i64m1((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_x_f_v_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_x_f_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_x_f_v_i64m2(op0, op1) \
-__builtin_rvv_vfwcvt_x_f_v_i64m2((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfwcvt_x_f_v_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_x_f_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwcvt_x_f_v_i64m4(op0, op1) \
-__builtin_rvv_vfwcvt_x_f_v_i64m4((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfwcvt_x_f_v_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_x_f_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwcvt_x_f_v_i64m8(op0, op1) \
-__builtin_rvv_vfwcvt_x_f_v_i64m8((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfwcvt_x_f_v_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_x_f_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfwcvt_xu_f_v_u64m1(op0, op1) \
-__builtin_rvv_vfwcvt_xu_f_v_u64m1((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_xu_f_v_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_xu_f_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_xu_f_v_u64m2(op0, op1) \
-__builtin_rvv_vfwcvt_xu_f_v_u64m2((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfwcvt_xu_f_v_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_xu_f_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwcvt_xu_f_v_u64m4(op0, op1) \
-__builtin_rvv_vfwcvt_xu_f_v_u64m4((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfwcvt_xu_f_v_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_xu_f_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwcvt_xu_f_v_u64m8(op0, op1) \
-__builtin_rvv_vfwcvt_xu_f_v_u64m8((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfwcvt_xu_f_v_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_xu_f_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vlmul_ext_v_f32mf2_f32m1(op0) \
-__builtin_rvv_vlmul_ext_v_f32mf2_f32m1((vfloat32mf2_t)(op0))
-#define vlmul_ext_v_f32m1_f32m2(op0) \
-__builtin_rvv_vlmul_ext_v_f32m1_f32m2((vfloat32m1_t)(op0))
-#define vlmul_ext_v_f32mf2_f32m2(op0) \
-__builtin_rvv_vlmul_ext_v_f32mf2_f32m2((vfloat32mf2_t)(op0))
-#define vlmul_ext_v_f32m1_f32m4(op0) \
-__builtin_rvv_vlmul_ext_v_f32m1_f32m4((vfloat32m1_t)(op0))
-#define vlmul_ext_v_f32m2_f32m4(op0) \
-__builtin_rvv_vlmul_ext_v_f32m2_f32m4((vfloat32m2_t)(op0))
-#define vlmul_ext_v_f32mf2_f32m4(op0) \
-__builtin_rvv_vlmul_ext_v_f32mf2_f32m4((vfloat32mf2_t)(op0))
-#define vlmul_ext_v_f32m1_f32m8(op0) \
-__builtin_rvv_vlmul_ext_v_f32m1_f32m8((vfloat32m1_t)(op0))
-#define vlmul_ext_v_f32m2_f32m8(op0) \
-__builtin_rvv_vlmul_ext_v_f32m2_f32m8((vfloat32m2_t)(op0))
-#define vlmul_ext_v_f32m4_f32m8(op0) \
-__builtin_rvv_vlmul_ext_v_f32m4_f32m8((vfloat32m4_t)(op0))
-#define vlmul_ext_v_f32mf2_f32m8(op0) \
-__builtin_rvv_vlmul_ext_v_f32mf2_f32m8((vfloat32mf2_t)(op0))
-#define vlmul_trunc_v_f32m1_f32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_f32m1_f32mf2((vfloat32m1_t)(op0))
-#define vlmul_trunc_v_f32m2_f32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_f32m2_f32mf2((vfloat32m2_t)(op0))
-#define vlmul_trunc_v_f32m4_f32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_f32m4_f32mf2((vfloat32m4_t)(op0))
-#define vlmul_trunc_v_f32m8_f32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_f32m8_f32mf2((vfloat32m8_t)(op0))
-#define vlmul_trunc_v_f32m2_f32m1(op0) \
-__builtin_rvv_vlmul_trunc_v_f32m2_f32m1((vfloat32m2_t)(op0))
-#define vlmul_trunc_v_f32m4_f32m1(op0) \
-__builtin_rvv_vlmul_trunc_v_f32m4_f32m1((vfloat32m4_t)(op0))
-#define vlmul_trunc_v_f32m8_f32m1(op0) \
-__builtin_rvv_vlmul_trunc_v_f32m8_f32m1((vfloat32m8_t)(op0))
-#define vlmul_trunc_v_f32m4_f32m2(op0) \
-__builtin_rvv_vlmul_trunc_v_f32m4_f32m2((vfloat32m4_t)(op0))
-#define vlmul_trunc_v_f32m8_f32m2(op0) \
-__builtin_rvv_vlmul_trunc_v_f32m8_f32m2((vfloat32m8_t)(op0))
-#define vlmul_trunc_v_f32m8_f32m4(op0) \
-__builtin_rvv_vlmul_trunc_v_f32m8_f32m4((vfloat32m8_t)(op0))
-#define vreinterpret_v_i32m1_f32m1(op0) \
-__builtin_rvv_vreinterpret_v_i32m1_f32m1((vint32m1_t)(op0))
-#define vreinterpret_v_i32m2_f32m2(op0) \
-__builtin_rvv_vreinterpret_v_i32m2_f32m2((vint32m2_t)(op0))
-#define vreinterpret_v_i32m4_f32m4(op0) \
-__builtin_rvv_vreinterpret_v_i32m4_f32m4((vint32m4_t)(op0))
-#define vreinterpret_v_i32m8_f32m8(op0) \
-__builtin_rvv_vreinterpret_v_i32m8_f32m8((vint32m8_t)(op0))
-#define vreinterpret_v_i32mf2_f32mf2(op0) \
-__builtin_rvv_vreinterpret_v_i32mf2_f32mf2((vint32mf2_t)(op0))
-#define vreinterpret_v_u32m1_f32m1(op0) \
-__builtin_rvv_vreinterpret_v_u32m1_f32m1((vuint32m1_t)(op0))
-#define vreinterpret_v_u32m2_f32m2(op0) \
-__builtin_rvv_vreinterpret_v_u32m2_f32m2((vuint32m2_t)(op0))
-#define vreinterpret_v_u32m4_f32m4(op0) \
-__builtin_rvv_vreinterpret_v_u32m4_f32m4((vuint32m4_t)(op0))
-#define vreinterpret_v_u32m8_f32m8(op0) \
-__builtin_rvv_vreinterpret_v_u32m8_f32m8((vuint32m8_t)(op0))
-#define vreinterpret_v_u32mf2_f32mf2(op0) \
-__builtin_rvv_vreinterpret_v_u32mf2_f32mf2((vuint32mf2_t)(op0))
-#define vreinterpret_v_f32m1_i32m1(op0) \
-__builtin_rvv_vreinterpret_v_f32m1_i32m1((vfloat32m1_t)(op0))
-#define vreinterpret_v_f32m2_i32m2(op0) \
-__builtin_rvv_vreinterpret_v_f32m2_i32m2((vfloat32m2_t)(op0))
-#define vreinterpret_v_f32m4_i32m4(op0) \
-__builtin_rvv_vreinterpret_v_f32m4_i32m4((vfloat32m4_t)(op0))
-#define vreinterpret_v_f32m8_i32m8(op0) \
-__builtin_rvv_vreinterpret_v_f32m8_i32m8((vfloat32m8_t)(op0))
-#define vreinterpret_v_f32mf2_i32mf2(op0) \
-__builtin_rvv_vreinterpret_v_f32mf2_i32mf2((vfloat32mf2_t)(op0))
-#define vreinterpret_v_f32m1_u32m1(op0) \
-__builtin_rvv_vreinterpret_v_f32m1_u32m1((vfloat32m1_t)(op0))
-#define vreinterpret_v_f32m2_u32m2(op0) \
-__builtin_rvv_vreinterpret_v_f32m2_u32m2((vfloat32m2_t)(op0))
-#define vreinterpret_v_f32m4_u32m4(op0) \
-__builtin_rvv_vreinterpret_v_f32m4_u32m4((vfloat32m4_t)(op0))
-#define vreinterpret_v_f32m8_u32m8(op0) \
-__builtin_rvv_vreinterpret_v_f32m8_u32m8((vfloat32m8_t)(op0))
-#define vreinterpret_v_f32mf2_u32mf2(op0) \
-__builtin_rvv_vreinterpret_v_f32mf2_u32mf2((vfloat32mf2_t)(op0))
-#define vundefined_f32m1() \
-__builtin_rvv_vundefined_f32m1()
-#define vundefined_f32m2() \
-__builtin_rvv_vundefined_f32m2()
-#define vundefined_f32m4() \
-__builtin_rvv_vundefined_f32m4()
-#define vundefined_f32m8() \
-__builtin_rvv_vundefined_f32m8()
-#define vundefined_f32mf2() \
-__builtin_rvv_vundefined_f32mf2()
-#endif
-
-#if defined(__riscv_d)
-#define vlse64_v_f64m1(op0, op1, op2) \
-__builtin_rvv_vlse64_v_f64m1((const double *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (const double *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse64_v_f64m2(op0, op1, op2) \
-__builtin_rvv_vlse64_v_f64m2((const double *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (const double *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse64_v_f64m4(op0, op1, op2) \
-__builtin_rvv_vlse64_v_f64m4((const double *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (const double *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse64_v_f64m8(op0, op1, op2) \
-__builtin_rvv_vlse64_v_f64m8((const double *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (const double *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vsse64_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_f64m1((double *)(op0), (ptrdiff_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vsse64_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsse64_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_f64m2((double *)(op0), (ptrdiff_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vsse64_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsse64_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_f64m4((double *)(op0), (ptrdiff_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vsse64_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsse64_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_f64m8((double *)(op0), (ptrdiff_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vsse64_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vluxei8_v_f64m1(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f64m1((const double *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vluxei8_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (const double *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxei8_v_f64m2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f64m2((const double *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vluxei8_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (const double *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_f64m4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f64m4((const double *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vluxei8_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (const double *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_f64m8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f64m8((const double *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vluxei8_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (const double *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_f64m1(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f64m1((const double *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vluxei16_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (const double *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxei16_v_f64m2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f64m2((const double *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vluxei16_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (const double *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxei16_v_f64m4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f64m4((const double *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vluxei16_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (const double *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_f64m8(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f64m8((const double *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vluxei16_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (const double *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_f64m1(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f64m1((const double *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vluxei32_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (const double *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxei32_v_f64m2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f64m2((const double *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vluxei32_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (const double *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxei32_v_f64m4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f64m4((const double *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vluxei32_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (const double *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_f64m8(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f64m8((const double *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vluxei32_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (const double *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_f64m1(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f64m1((const double *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vluxei64_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (const double *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxei64_v_f64m2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f64m2((const double *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vluxei64_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (const double *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxei64_v_f64m4(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f64m4((const double *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vluxei64_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (const double *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_f64m8(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f64m8((const double *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vluxei64_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (const double *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxei8_v_f64m1(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f64m1((const double *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vloxei8_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (const double *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxei8_v_f64m2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f64m2((const double *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vloxei8_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (const double *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxei8_v_f64m4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f64m4((const double *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vloxei8_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (const double *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxei8_v_f64m8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f64m8((const double *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vloxei8_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (const double *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_f64m1(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f64m1((const double *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vloxei16_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (const double *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxei16_v_f64m2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f64m2((const double *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vloxei16_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (const double *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxei16_v_f64m4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f64m4((const double *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vloxei16_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (const double *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_f64m8(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f64m8((const double *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vloxei16_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (const double *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_f64m1(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f64m1((const double *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vloxei32_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (const double *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxei32_v_f64m2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f64m2((const double *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vloxei32_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (const double *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxei32_v_f64m4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f64m4((const double *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vloxei32_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (const double *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_f64m8(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f64m8((const double *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vloxei32_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (const double *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_f64m1(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f64m1((const double *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vloxei64_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (const double *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxei64_v_f64m2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f64m2((const double *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vloxei64_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (const double *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxei64_v_f64m4(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f64m4((const double *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vloxei64_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (const double *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_f64m8(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f64m8((const double *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vloxei64_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (const double *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmv_v_v_f64m1(op0, op1) \
-__builtin_rvv_vmv_v_v_f64m1((vfloat64m1_t)(op0), (size_t)(op1))
-#define vmv_v_v_f64m2(op0, op1) \
-__builtin_rvv_vmv_v_v_f64m2((vfloat64m2_t)(op0), (size_t)(op1))
-#define vmv_v_v_f64m4(op0, op1) \
-__builtin_rvv_vmv_v_v_f64m4((vfloat64m4_t)(op0), (size_t)(op1))
-#define vmv_v_v_f64m8(op0, op1) \
-__builtin_rvv_vmv_v_v_f64m8((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfadd_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vfadd_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfadd_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vfadd_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfadd_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vfadd_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfadd_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vfadd_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfadd_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfadd_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfadd_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfadd_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfadd_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfadd_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfadd_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfadd_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsub_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vfsub_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfsub_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vfsub_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfsub_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vfsub_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfsub_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vfsub_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfsub_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsub_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsub_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsub_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsub_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsub_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsub_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsub_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfrsub_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfrsub_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfrsub_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfrsub_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfrsub_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfrsub_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfrsub_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfrsub_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmul_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vfmul_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmul_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vfmul_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfmul_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vfmul_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfmul_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vfmul_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfmul_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmul_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmul_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmul_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmul_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmul_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmul_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmul_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfdiv_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfdiv_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfdiv_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfdiv_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfdiv_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfdiv_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfdiv_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfdiv_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfdiv_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfrdiv_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfrdiv_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfrdiv_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfrdiv_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfrdiv_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfrdiv_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfrdiv_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfrdiv_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmacc_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (double)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (double)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (double)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (double)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (double)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (double)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (double)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (double)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (double)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (double)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (double)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (double)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (double)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (double)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (double)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (double)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (double)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (double)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (double)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (double)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (double)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (double)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (double)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (double)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (double)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (double)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (double)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (double)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (double)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (double)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (double)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (double)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfmin_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vfmin_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmin_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vfmin_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfmin_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vfmin_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfmin_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vfmin_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfmin_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmin_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmin_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmin_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmin_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmin_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmin_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmin_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmax_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vfmax_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmax_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vfmax_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfmax_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vfmax_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfmax_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vfmax_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfmax_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmax_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmax_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmax_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmax_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmax_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmax_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmax_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnj_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfsgnj_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnj_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnj_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnj_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnj_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnj_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnj_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnj_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfabs_v_f64m1(op0, op1) \
-__builtin_rvv_vfabs_v_f64m1((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfabs_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfabs_v_f64m2(op0, op1) \
-__builtin_rvv_vfabs_v_f64m2((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfabs_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfabs_v_f64m4(op0, op1) \
-__builtin_rvv_vfabs_v_f64m4((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfabs_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfabs_v_f64m8(op0, op1) \
-__builtin_rvv_vfabs_v_f64m8((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfabs_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vmfeq_vv_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f64m1_b64((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f64m2_b32((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f64m4_b16((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f64m8_b8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vmfeq_vf_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f64m1_b64((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfeq_vf_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfeq_vf_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f64m2_b32((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfeq_vf_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfeq_vf_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f64m4_b16((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfeq_vf_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfeq_vf_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f64m8_b8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfeq_vf_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfne_vv_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f64m1_b64((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vmfne_vv_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vmfne_vv_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f64m2_b32((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vmfne_vv_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vmfne_vv_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f64m4_b16((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vmfne_vv_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vmfne_vv_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f64m8_b8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vmfne_vv_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vmfne_vf_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f64m1_b64((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfne_vf_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfne_vf_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f64m2_b32((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfne_vf_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfne_vf_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f64m4_b16((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfne_vf_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfne_vf_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f64m8_b8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfne_vf_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vmflt_vv_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f64m1_b64((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vmflt_vv_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vmflt_vv_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f64m2_b32((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vmflt_vv_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vmflt_vv_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f64m4_b16((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vmflt_vv_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vmflt_vv_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f64m8_b8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vmflt_vv_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vmflt_vf_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f64m1_b64((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vmflt_vf_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vmflt_vf_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f64m2_b32((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vmflt_vf_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vmflt_vf_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f64m4_b16((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vmflt_vf_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vmflt_vf_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f64m8_b8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vmflt_vf_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfle_vv_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f64m1_b64((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vmfle_vv_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vmfle_vv_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f64m2_b32((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vmfle_vv_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vmfle_vv_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f64m4_b16((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vmfle_vv_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vmfle_vv_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f64m8_b8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vmfle_vv_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vmfle_vf_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f64m1_b64((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfle_vf_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfle_vf_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f64m2_b32((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfle_vf_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfle_vf_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f64m4_b16((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfle_vf_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfle_vf_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f64m8_b8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfle_vf_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfgt_vv_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f64m1_b64((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f64m2_b32((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f64m4_b16((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f64m8_b8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vmfgt_vf_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f64m1_b64((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfgt_vf_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfgt_vf_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f64m2_b32((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfgt_vf_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfgt_vf_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f64m4_b16((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfgt_vf_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfgt_vf_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f64m8_b8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfgt_vf_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfge_vv_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f64m1_b64((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vmfge_vv_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vmfge_vv_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f64m2_b32((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vmfge_vv_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vmfge_vv_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f64m4_b16((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vmfge_vv_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vmfge_vv_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f64m8_b8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vmfge_vv_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vmfge_vf_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f64m1_b64((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfge_vf_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfge_vf_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f64m2_b32((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfge_vf_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfge_vf_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f64m4_b16((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfge_vf_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfge_vf_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f64m8_b8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfge_vf_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vmerge_vvm_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f64m1((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f64m2((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f64m4((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f64m8((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfmerge_vfm_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f64m1((vbool64_t)(op0), (vfloat64m1_t)(op1), (double)(op2), (size_t)(op3))
-#define vfmerge_vfm_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f64m2((vbool32_t)(op0), (vfloat64m2_t)(op1), (double)(op2), (size_t)(op3))
-#define vfmerge_vfm_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f64m4((vbool16_t)(op0), (vfloat64m4_t)(op1), (double)(op2), (size_t)(op3))
-#define vfmerge_vfm_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f64m8((vbool8_t)(op0), (vfloat64m8_t)(op1), (double)(op2), (size_t)(op3))
-#define vfmv_v_f_f64m1(op0, op1) \
-__builtin_rvv_vfmv_v_f_f64m1((double)(op0), (size_t)(op1))
-#define vfmv_v_f_f64m2(op0, op1) \
-__builtin_rvv_vfmv_v_f_f64m2((double)(op0), (size_t)(op1))
-#define vfmv_v_f_f64m4(op0, op1) \
-__builtin_rvv_vfmv_v_f_f64m4((double)(op0), (size_t)(op1))
-#define vfmv_v_f_f64m8(op0, op1) \
-__builtin_rvv_vfmv_v_f_f64m8((double)(op0), (size_t)(op1))
-#define vfredmax_vs_f64m1_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f64m1_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f64m1_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f64m1_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f64m2_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f64m2_f64m1((vfloat64m1_t)(op0), (vfloat64m2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f64m2_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f64m2_f64m1_m((vbool32_t)(op0), (vfloat64m1_t)(op1), (vfloat64m2_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f64m4_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f64m4_f64m1((vfloat64m1_t)(op0), (vfloat64m4_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f64m4_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f64m4_f64m1_m((vbool16_t)(op0), (vfloat64m1_t)(op1), (vfloat64m4_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f64m8_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f64m8_f64m1((vfloat64m1_t)(op0), (vfloat64m8_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f64m8_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f64m8_f64m1_m((vbool8_t)(op0), (vfloat64m1_t)(op1), (vfloat64m8_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f64m1_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f64m1_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f64m1_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f64m1_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f64m2_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f64m2_f64m1((vfloat64m1_t)(op0), (vfloat64m2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f64m2_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f64m2_f64m1_m((vbool32_t)(op0), (vfloat64m1_t)(op1), (vfloat64m2_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f64m4_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f64m4_f64m1((vfloat64m1_t)(op0), (vfloat64m4_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f64m4_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f64m4_f64m1_m((vbool16_t)(op0), (vfloat64m1_t)(op1), (vfloat64m4_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f64m8_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f64m8_f64m1((vfloat64m1_t)(op0), (vfloat64m8_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f64m8_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f64m8_f64m1_m((vbool8_t)(op0), (vfloat64m1_t)(op1), (vfloat64m8_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f64m1_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f64m1_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f64m1_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f64m1_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f64m2_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f64m2_f64m1((vfloat64m1_t)(op0), (vfloat64m2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f64m2_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f64m2_f64m1_m((vbool32_t)(op0), (vfloat64m1_t)(op1), (vfloat64m2_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f64m4_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f64m4_f64m1((vfloat64m1_t)(op0), (vfloat64m4_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f64m4_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f64m4_f64m1_m((vbool16_t)(op0), (vfloat64m1_t)(op1), (vfloat64m4_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f64m8_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f64m8_f64m1((vfloat64m1_t)(op0), (vfloat64m8_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f64m8_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f64m8_f64m1_m((vbool8_t)(op0), (vfloat64m1_t)(op1), (vfloat64m8_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f64m1_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f64m1_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f64m1_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f64m1_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f64m2_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f64m2_f64m1((vfloat64m1_t)(op0), (vfloat64m2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f64m2_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f64m2_f64m1_m((vbool32_t)(op0), (vfloat64m1_t)(op1), (vfloat64m2_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f64m4_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f64m4_f64m1((vfloat64m1_t)(op0), (vfloat64m4_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f64m4_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f64m4_f64m1_m((vbool16_t)(op0), (vfloat64m1_t)(op1), (vfloat64m4_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f64m8_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f64m8_f64m1((vfloat64m1_t)(op0), (vfloat64m8_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f64m8_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f64m8_f64m1_m((vbool8_t)(op0), (vfloat64m1_t)(op1), (vfloat64m8_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmv_f_s_f64m1_f64(op0) \
-__builtin_rvv_vfmv_f_s_f64m1_f64((vfloat64m1_t)(op0))
-#define vfmv_f_s_f64m2_f64(op0) \
-__builtin_rvv_vfmv_f_s_f64m2_f64((vfloat64m2_t)(op0))
-#define vfmv_f_s_f64m4_f64(op0) \
-__builtin_rvv_vfmv_f_s_f64m4_f64((vfloat64m4_t)(op0))
-#define vfmv_f_s_f64m8_f64(op0) \
-__builtin_rvv_vfmv_f_s_f64m8_f64((vfloat64m8_t)(op0))
-#define vfmv_s_f_f64m1(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmv_s_f_f64m2(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmv_s_f_f64m4(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmv_s_f_f64m8(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vslideup_vx_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vfslide1up_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfslide1up_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfslide1up_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfslide1up_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfslide1up_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfslide1up_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfslide1up_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfslide1up_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfslide1down_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfslide1down_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfslide1down_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfslide1down_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfslide1down_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfslide1down_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfslide1down_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfslide1down_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vrgather_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f64m1((vfloat64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vrgather_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vrgather_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f64m2((vfloat64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vrgather_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f64m4((vfloat64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vrgather_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vrgather_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f64m8((vfloat64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vrgather_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vrgather_vx_f64m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f64m1((vfloat64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f64m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f64m2((vfloat64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f64m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f64m4((vfloat64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f64m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f64m8((vfloat64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f64m1((vfloat64m1_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f64m2((vfloat64m2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f64m4((vfloat64m4_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f64m8((vfloat64m8_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vcompress_vm_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f64m1((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vcompress_vm_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f64m2((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vcompress_vm_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f64m4((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vcompress_vm_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f64m8((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vget_v_f64m2_f64m1(op0, op1) \
-__builtin_rvv_vget_v_f64m2_f64m1((vfloat64m2_t)(op0), (size_t)(op1))
-#define vget_v_f64m4_f64m1(op0, op1) \
-__builtin_rvv_vget_v_f64m4_f64m1((vfloat64m4_t)(op0), (size_t)(op1))
-#define vget_v_f64m8_f64m1(op0, op1) \
-__builtin_rvv_vget_v_f64m8_f64m1((vfloat64m8_t)(op0), (size_t)(op1))
-#define vget_v_f64m4_f64m2(op0, op1) \
-__builtin_rvv_vget_v_f64m4_f64m2((vfloat64m4_t)(op0), (size_t)(op1))
-#define vget_v_f64m8_f64m2(op0, op1) \
-__builtin_rvv_vget_v_f64m8_f64m2((vfloat64m8_t)(op0), (size_t)(op1))
-#define vget_v_f64m8_f64m4(op0, op1) \
-__builtin_rvv_vget_v_f64m8_f64m4((vfloat64m8_t)(op0), (size_t)(op1))
-#define vset_v_f64m1_f64m2(op0, op1, op2) \
-__builtin_rvv_vset_v_f64m1_f64m2((vfloat64m2_t)(op0), (size_t)(op1), (vfloat64m1_t)(op2))
-#define vset_v_f64m1_f64m4(op0, op1, op2) \
-__builtin_rvv_vset_v_f64m1_f64m4((vfloat64m4_t)(op0), (size_t)(op1), (vfloat64m1_t)(op2))
-#define vset_v_f64m2_f64m4(op0, op1, op2) \
-__builtin_rvv_vset_v_f64m2_f64m4((vfloat64m4_t)(op0), (size_t)(op1), (vfloat64m2_t)(op2))
-#define vset_v_f64m1_f64m8(op0, op1, op2) \
-__builtin_rvv_vset_v_f64m1_f64m8((vfloat64m8_t)(op0), (size_t)(op1), (vfloat64m1_t)(op2))
-#define vset_v_f64m2_f64m8(op0, op1, op2) \
-__builtin_rvv_vset_v_f64m2_f64m8((vfloat64m8_t)(op0), (size_t)(op1), (vfloat64m2_t)(op2))
-#define vset_v_f64m4_f64m8(op0, op1, op2) \
-__builtin_rvv_vset_v_f64m4_f64m8((vfloat64m8_t)(op0), (size_t)(op1), (vfloat64m4_t)(op2))
-#define vsuxei8_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f64m2((double *)(op0), (vuint8mf4_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint8mf4_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f64m4((double *)(op0), (vuint8mf2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint8mf2_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f64m8((double *)(op0), (vuint8m1_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint8m1_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f64m2((double *)(op0), (vuint16mf2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint16mf2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f64m4((double *)(op0), (vuint16m1_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint16m1_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f64m8((double *)(op0), (vuint16m2_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint16m2_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f64m2((double *)(op0), (vuint32m1_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint32m1_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f64m4((double *)(op0), (vuint32m2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint32m2_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f64m8((double *)(op0), (vuint32m4_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint32m4_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vsuxei64_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f64m2((double *)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f64m4((double *)(op0), (vuint64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsuxei64_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f64m8((double *)(op0), (vuint64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f64m2((double *)(op0), (vuint8mf4_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint8mf4_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f64m4((double *)(op0), (vuint8mf2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint8mf2_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f64m8((double *)(op0), (vuint8m1_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint8m1_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f64m2((double *)(op0), (vuint16mf2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint16mf2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f64m4((double *)(op0), (vuint16m1_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint16m1_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f64m8((double *)(op0), (vuint16m2_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint16m2_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f64m2((double *)(op0), (vuint32m1_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint32m1_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f64m4((double *)(op0), (vuint32m2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint32m2_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f64m8((double *)(op0), (vuint32m4_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint32m4_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f64m2((double *)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f64m4((double *)(op0), (vuint64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f64m8((double *)(op0), (vuint64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vle64ff_v_f64m1(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_f64m1((const double *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (const double *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle64ff_v_f64m2(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_f64m2((const double *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (const double *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle64ff_v_f64m4(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_f64m4((const double *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (const double *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle64ff_v_f64m8(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_f64m8((const double *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (const double *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vfneg_v_f64m1(op0, op1) \
-__builtin_rvv_vfneg_v_f64m1((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfneg_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfneg_v_f64m2(op0, op1) \
-__builtin_rvv_vfneg_v_f64m2((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfneg_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfneg_v_f64m4(op0, op1) \
-__builtin_rvv_vfneg_v_f64m4((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfneg_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfneg_v_f64m8(op0, op1) \
-__builtin_rvv_vfneg_v_f64m8((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfneg_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vle64_v_f64m1(op0, op1) \
-__builtin_rvv_vle64_v_f64m1((const double *)(op0), (size_t)(op1))
-#define vle64_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (const double *)(op2), (size_t)(op3))
-#define vle64_v_f64m2(op0, op1) \
-__builtin_rvv_vle64_v_f64m2((const double *)(op0), (size_t)(op1))
-#define vle64_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (const double *)(op2), (size_t)(op3))
-#define vle64_v_f64m4(op0, op1) \
-__builtin_rvv_vle64_v_f64m4((const double *)(op0), (size_t)(op1))
-#define vle64_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (const double *)(op2), (size_t)(op3))
-#define vle64_v_f64m8(op0, op1) \
-__builtin_rvv_vle64_v_f64m8((const double *)(op0), (size_t)(op1))
-#define vle64_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (const double *)(op2), (size_t)(op3))
-#define vse64_v_f64m1(op0, op1, op2) \
-__builtin_rvv_vse64_v_f64m1((double *)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vse64_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vse64_v_f64m2(op0, op1, op2) \
-__builtin_rvv_vse64_v_f64m2((double *)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vse64_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vse64_v_f64m4(op0, op1, op2) \
-__builtin_rvv_vse64_v_f64m4((double *)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vse64_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vse64_v_f64m8(op0, op1, op2) \
-__builtin_rvv_vse64_v_f64m8((double *)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vse64_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfclass_v_u64m1(op0, op1) \
-__builtin_rvv_vfclass_v_u64m1((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfclass_v_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfclass_v_u64m2(op0, op1) \
-__builtin_rvv_vfclass_v_u64m2((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfclass_v_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfclass_v_u64m4(op0, op1) \
-__builtin_rvv_vfclass_v_u64m4((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfclass_v_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfclass_v_u64m8(op0, op1) \
-__builtin_rvv_vfclass_v_u64m8((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfclass_v_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f64m1(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f64m1((vint64m1_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f64m2(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f64m2((vint64m2_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f64m4(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f64m4((vint64m4_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f64m8(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f64m8((vint64m8_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f64m1(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f64m1((vuint64m1_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f64m2(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f64m2((vuint64m2_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f64m4(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f64m4((vuint64m4_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f64m8(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f64m8((vuint64m8_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i64m1(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i64m1((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i64m2(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i64m2((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i64m4(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i64m4((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i64m8(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i64m8((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u64m1(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u64m1((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u64m2(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u64m2((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u64m4(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u64m4((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u64m8(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u64m8((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i64m1(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i64m1((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i64m2(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i64m2((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i64m4(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i64m4((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i64m8(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i64m8((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u64m1(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u64m1((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u64m2(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u64m2((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u64m4(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u64m4((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u64m8(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u64m8((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i32mf2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i32mf2((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i32m1(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i32m1((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i32m2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i32m2((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i32m4(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i32m4((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u32mf2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u32mf2((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u32m1(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u32m1((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u32m2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u32m2((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u32m4(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u32m4((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i32mf2(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i32mf2((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i32m1(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i32m1((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i32m2(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i32m2((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i32m4(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i32m4((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u32mf2(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u32mf2((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u32m1(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u32m1((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u32m2(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u32m2((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u32m4(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u32m4((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfrec7_v_f64m1(op0, op1) \
-__builtin_rvv_vfrec7_v_f64m1((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfrec7_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfrec7_v_f64m2(op0, op1) \
-__builtin_rvv_vfrec7_v_f64m2((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfrec7_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfrec7_v_f64m4(op0, op1) \
-__builtin_rvv_vfrec7_v_f64m4((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfrec7_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfrec7_v_f64m8(op0, op1) \
-__builtin_rvv_vfrec7_v_f64m8((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfrec7_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f64m1(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f64m1((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f64m2(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f64m2((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f64m4(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f64m4((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f64m8(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f64m8((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f64m1(op0, op1) \
-__builtin_rvv_vfsqrt_v_f64m1((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f64m2(op0, op1) \
-__builtin_rvv_vfsqrt_v_f64m2((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f64m4(op0, op1) \
-__builtin_rvv_vfsqrt_v_f64m4((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f64m8(op0, op1) \
-__builtin_rvv_vfsqrt_v_f64m8((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f64m1(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f64m1((vint32mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f64m2(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f64m2((vint32m1_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f64m4(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f64m4((vint32m2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f64m8(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f64m8((vint32m4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f64m1(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f64m1((vuint32mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f64m2(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f64m2((vuint32m1_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f64m4(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f64m4((vuint32m2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f64m8(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f64m8((vuint32m4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vlmul_ext_v_f64m1_f64m2(op0) \
-__builtin_rvv_vlmul_ext_v_f64m1_f64m2((vfloat64m1_t)(op0))
-#define vlmul_ext_v_f64m1_f64m4(op0) \
-__builtin_rvv_vlmul_ext_v_f64m1_f64m4((vfloat64m1_t)(op0))
-#define vlmul_ext_v_f64m2_f64m4(op0) \
-__builtin_rvv_vlmul_ext_v_f64m2_f64m4((vfloat64m2_t)(op0))
-#define vlmul_ext_v_f64m1_f64m8(op0) \
-__builtin_rvv_vlmul_ext_v_f64m1_f64m8((vfloat64m1_t)(op0))
-#define vlmul_ext_v_f64m2_f64m8(op0) \
-__builtin_rvv_vlmul_ext_v_f64m2_f64m8((vfloat64m2_t)(op0))
-#define vlmul_ext_v_f64m4_f64m8(op0) \
-__builtin_rvv_vlmul_ext_v_f64m4_f64m8((vfloat64m4_t)(op0))
-#define vlmul_trunc_v_f64m2_f64m1(op0) \
-__builtin_rvv_vlmul_trunc_v_f64m2_f64m1((vfloat64m2_t)(op0))
-#define vlmul_trunc_v_f64m4_f64m1(op0) \
-__builtin_rvv_vlmul_trunc_v_f64m4_f64m1((vfloat64m4_t)(op0))
-#define vlmul_trunc_v_f64m8_f64m1(op0) \
-__builtin_rvv_vlmul_trunc_v_f64m8_f64m1((vfloat64m8_t)(op0))
-#define vlmul_trunc_v_f64m4_f64m2(op0) \
-__builtin_rvv_vlmul_trunc_v_f64m4_f64m2((vfloat64m4_t)(op0))
-#define vlmul_trunc_v_f64m8_f64m2(op0) \
-__builtin_rvv_vlmul_trunc_v_f64m8_f64m2((vfloat64m8_t)(op0))
-#define vlmul_trunc_v_f64m8_f64m4(op0) \
-__builtin_rvv_vlmul_trunc_v_f64m8_f64m4((vfloat64m8_t)(op0))
-#define vreinterpret_v_i64m1_f64m1(op0) \
-__builtin_rvv_vreinterpret_v_i64m1_f64m1((vint64m1_t)(op0))
-#define vreinterpret_v_i64m2_f64m2(op0) \
-__builtin_rvv_vreinterpret_v_i64m2_f64m2((vint64m2_t)(op0))
-#define vreinterpret_v_i64m4_f64m4(op0) \
-__builtin_rvv_vreinterpret_v_i64m4_f64m4((vint64m4_t)(op0))
-#define vreinterpret_v_i64m8_f64m8(op0) \
-__builtin_rvv_vreinterpret_v_i64m8_f64m8((vint64m8_t)(op0))
-#define vreinterpret_v_u64m1_f64m1(op0) \
-__builtin_rvv_vreinterpret_v_u64m1_f64m1((vuint64m1_t)(op0))
-#define vreinterpret_v_u64m2_f64m2(op0) \
-__builtin_rvv_vreinterpret_v_u64m2_f64m2((vuint64m2_t)(op0))
-#define vreinterpret_v_u64m4_f64m4(op0) \
-__builtin_rvv_vreinterpret_v_u64m4_f64m4((vuint64m4_t)(op0))
-#define vreinterpret_v_u64m8_f64m8(op0) \
-__builtin_rvv_vreinterpret_v_u64m8_f64m8((vuint64m8_t)(op0))
-#define vreinterpret_v_f64m1_i64m1(op0) \
-__builtin_rvv_vreinterpret_v_f64m1_i64m1((vfloat64m1_t)(op0))
-#define vreinterpret_v_f64m2_i64m2(op0) \
-__builtin_rvv_vreinterpret_v_f64m2_i64m2((vfloat64m2_t)(op0))
-#define vreinterpret_v_f64m4_i64m4(op0) \
-__builtin_rvv_vreinterpret_v_f64m4_i64m4((vfloat64m4_t)(op0))
-#define vreinterpret_v_f64m8_i64m8(op0) \
-__builtin_rvv_vreinterpret_v_f64m8_i64m8((vfloat64m8_t)(op0))
-#define vreinterpret_v_f64m1_u64m1(op0) \
-__builtin_rvv_vreinterpret_v_f64m1_u64m1((vfloat64m1_t)(op0))
-#define vreinterpret_v_f64m2_u64m2(op0) \
-__builtin_rvv_vreinterpret_v_f64m2_u64m2((vfloat64m2_t)(op0))
-#define vreinterpret_v_f64m4_u64m4(op0) \
-__builtin_rvv_vreinterpret_v_f64m4_u64m4((vfloat64m4_t)(op0))
-#define vreinterpret_v_f64m8_u64m8(op0) \
-__builtin_rvv_vreinterpret_v_f64m8_u64m8((vfloat64m8_t)(op0))
-#define vundefined_f64m1() \
-__builtin_rvv_vundefined_f64m1()
-#define vundefined_f64m2() \
-__builtin_rvv_vundefined_f64m2()
-#define vundefined_f64m4() \
-__builtin_rvv_vundefined_f64m4()
-#define vundefined_f64m8() \
-__builtin_rvv_vundefined_f64m8()
-#endif
-
-#if defined(__riscv_f) && defined(__riscv_d)
-#define vfwadd_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfwadd_vv_f64m1((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfwadd_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwadd_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfwadd_vv_f64m2((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfwadd_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwadd_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfwadd_vv_f64m4((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfwadd_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwadd_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfwadd_vv_f64m8((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfwadd_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwadd_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfwadd_vf_f64m1((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwadd_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwadd_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfwadd_vf_f64m2((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwadd_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwadd_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfwadd_vf_f64m4((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwadd_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwadd_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfwadd_vf_f64m8((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwadd_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwsub_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfwsub_vv_f64m1((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfwsub_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwsub_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfwsub_vv_f64m2((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfwsub_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwsub_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfwsub_vv_f64m4((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfwsub_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwsub_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfwsub_vv_f64m8((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfwsub_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwsub_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfwsub_vf_f64m1((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwsub_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwsub_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfwsub_vf_f64m2((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwsub_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwsub_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfwsub_vf_f64m4((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwsub_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwsub_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfwsub_vf_f64m8((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwsub_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwadd_wv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfwadd_wv_f64m1((vfloat64m1_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfwadd_wv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwadd_wv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfwadd_wv_f64m2((vfloat64m2_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfwadd_wv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwadd_wv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfwadd_wv_f64m4((vfloat64m4_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfwadd_wv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwadd_wv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfwadd_wv_f64m8((vfloat64m8_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfwadd_wv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwadd_wf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfwadd_wf_f64m1((vfloat64m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwadd_wf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwadd_wf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfwadd_wf_f64m2((vfloat64m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwadd_wf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwadd_wf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfwadd_wf_f64m4((vfloat64m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwadd_wf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwadd_wf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfwadd_wf_f64m8((vfloat64m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwadd_wf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwsub_wv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfwsub_wv_f64m1((vfloat64m1_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfwsub_wv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwsub_wv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfwsub_wv_f64m2((vfloat64m2_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfwsub_wv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwsub_wv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfwsub_wv_f64m4((vfloat64m4_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfwsub_wv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwsub_wv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfwsub_wv_f64m8((vfloat64m8_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfwsub_wv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwsub_wf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfwsub_wf_f64m1((vfloat64m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwsub_wf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwsub_wf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfwsub_wf_f64m2((vfloat64m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwsub_wf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwsub_wf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfwsub_wf_f64m4((vfloat64m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwsub_wf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwsub_wf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfwsub_wf_f64m8((vfloat64m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwsub_wf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwmul_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfwmul_vv_f64m1((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfwmul_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwmul_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfwmul_vv_f64m2((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfwmul_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwmul_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfwmul_vv_f64m4((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfwmul_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwmul_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfwmul_vv_f64m8((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfwmul_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwmul_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfwmul_vf_f64m1((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwmul_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwmul_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfwmul_vf_f64m2((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwmul_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwmul_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfwmul_vf_f64m4((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwmul_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwmul_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfwmul_vf_f64m8((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwmul_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwmacc_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vv_f64m1((vfloat64m1_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwmacc_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwmacc_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vv_f64m2((vfloat64m2_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwmacc_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwmacc_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vv_f64m4((vfloat64m4_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwmacc_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwmacc_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vv_f64m8((vfloat64m8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfwmacc_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwmacc_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vf_f64m1((vfloat64m1_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwmacc_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwmacc_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vf_f64m2((vfloat64m2_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwmacc_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwmacc_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vf_f64m4((vfloat64m4_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwmacc_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwmacc_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vf_f64m8((vfloat64m8_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfwmacc_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwnmacc_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vv_f64m1((vfloat64m1_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwnmacc_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwnmacc_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vv_f64m2((vfloat64m2_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwnmacc_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwnmacc_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vv_f64m4((vfloat64m4_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwnmacc_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwnmacc_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vv_f64m8((vfloat64m8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfwnmacc_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwnmacc_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vf_f64m1((vfloat64m1_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwnmacc_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwnmacc_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vf_f64m2((vfloat64m2_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwnmacc_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwnmacc_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vf_f64m4((vfloat64m4_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwnmacc_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwnmacc_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vf_f64m8((vfloat64m8_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfwnmacc_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwmsac_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vv_f64m1((vfloat64m1_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwmsac_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwmsac_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vv_f64m2((vfloat64m2_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwmsac_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwmsac_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vv_f64m4((vfloat64m4_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwmsac_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwmsac_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vv_f64m8((vfloat64m8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfwmsac_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwmsac_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vf_f64m1((vfloat64m1_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwmsac_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwmsac_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vf_f64m2((vfloat64m2_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwmsac_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwmsac_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vf_f64m4((vfloat64m4_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwmsac_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwmsac_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vf_f64m8((vfloat64m8_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfwmsac_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwnmsac_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vv_f64m1((vfloat64m1_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwnmsac_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwnmsac_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vv_f64m2((vfloat64m2_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwnmsac_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwnmsac_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vv_f64m4((vfloat64m4_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwnmsac_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwnmsac_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vv_f64m8((vfloat64m8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfwnmsac_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwnmsac_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vf_f64m1((vfloat64m1_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwnmsac_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwnmsac_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vf_f64m2((vfloat64m2_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwnmsac_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwnmsac_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vf_f64m4((vfloat64m4_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwnmsac_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwnmsac_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vf_f64m8((vfloat64m8_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfwnmsac_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwredsum_vs_f32m1_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredsum_vs_f32m1_f64m1((vfloat64m1_t)(op0), (vfloat32m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfwredsum_vs_f32m1_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredsum_vs_f32m1_f64m1_m((vbool32_t)(op0), (vfloat64m1_t)(op1), (vfloat32m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfwredsum_vs_f32m2_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredsum_vs_f32m2_f64m1((vfloat64m1_t)(op0), (vfloat32m2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfwredsum_vs_f32m2_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredsum_vs_f32m2_f64m1_m((vbool16_t)(op0), (vfloat64m1_t)(op1), (vfloat32m2_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfwredsum_vs_f32m4_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredsum_vs_f32m4_f64m1((vfloat64m1_t)(op0), (vfloat32m4_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfwredsum_vs_f32m4_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredsum_vs_f32m4_f64m1_m((vbool8_t)(op0), (vfloat64m1_t)(op1), (vfloat32m4_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfwredsum_vs_f32m8_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredsum_vs_f32m8_f64m1((vfloat64m1_t)(op0), (vfloat32m8_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfwredsum_vs_f32m8_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredsum_vs_f32m8_f64m1_m((vbool4_t)(op0), (vfloat64m1_t)(op1), (vfloat32m8_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfwredsum_vs_f32mf2_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredsum_vs_f32mf2_f64m1((vfloat64m1_t)(op0), (vfloat32mf2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfwredsum_vs_f32mf2_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredsum_vs_f32mf2_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfwredosum_vs_f32m1_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredosum_vs_f32m1_f64m1((vfloat64m1_t)(op0), (vfloat32m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfwredosum_vs_f32m1_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredosum_vs_f32m1_f64m1_m((vbool32_t)(op0), (vfloat64m1_t)(op1), (vfloat32m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfwredosum_vs_f32m2_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredosum_vs_f32m2_f64m1((vfloat64m1_t)(op0), (vfloat32m2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfwredosum_vs_f32m2_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredosum_vs_f32m2_f64m1_m((vbool16_t)(op0), (vfloat64m1_t)(op1), (vfloat32m2_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfwredosum_vs_f32m4_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredosum_vs_f32m4_f64m1((vfloat64m1_t)(op0), (vfloat32m4_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfwredosum_vs_f32m4_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredosum_vs_f32m4_f64m1_m((vbool8_t)(op0), (vfloat64m1_t)(op1), (vfloat32m4_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfwredosum_vs_f32m8_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredosum_vs_f32m8_f64m1((vfloat64m1_t)(op0), (vfloat32m8_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfwredosum_vs_f32m8_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredosum_vs_f32m8_f64m1_m((vbool4_t)(op0), (vfloat64m1_t)(op1), (vfloat32m8_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfwredosum_vs_f32mf2_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredosum_vs_f32mf2_f64m1((vfloat64m1_t)(op0), (vfloat32mf2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfwredosum_vs_f32mf2_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredosum_vs_f32mf2_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfncvt_f_f_w_f32mf2(op0, op1) \
-__builtin_rvv_vfncvt_f_f_w_f32mf2((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfncvt_f_f_w_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_f_w_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfncvt_f_f_w_f32m1(op0, op1) \
-__builtin_rvv_vfncvt_f_f_w_f32m1((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfncvt_f_f_w_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_f_w_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfncvt_f_f_w_f32m2(op0, op1) \
-__builtin_rvv_vfncvt_f_f_w_f32m2((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfncvt_f_f_w_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_f_w_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfncvt_f_f_w_f32m4(op0, op1) \
-__builtin_rvv_vfncvt_f_f_w_f32m4((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfncvt_f_f_w_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_f_w_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfncvt_rod_f_f_w_f32mf2(op0, op1) \
-__builtin_rvv_vfncvt_rod_f_f_w_f32mf2((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfncvt_rod_f_f_w_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rod_f_f_w_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfncvt_rod_f_f_w_f32m1(op0, op1) \
-__builtin_rvv_vfncvt_rod_f_f_w_f32m1((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfncvt_rod_f_f_w_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rod_f_f_w_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfncvt_rod_f_f_w_f32m2(op0, op1) \
-__builtin_rvv_vfncvt_rod_f_f_w_f32m2((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfncvt_rod_f_f_w_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rod_f_f_w_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfncvt_rod_f_f_w_f32m4(op0, op1) \
-__builtin_rvv_vfncvt_rod_f_f_w_f32m4((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfncvt_rod_f_f_w_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rod_f_f_w_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfwcvt_f_f_v_f64m1(op0, op1) \
-__builtin_rvv_vfwcvt_f_f_v_f64m1((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_f_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_f_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_f_v_f64m2(op0, op1) \
-__builtin_rvv_vfwcvt_f_f_v_f64m2((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfwcvt_f_f_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_f_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwcvt_f_f_v_f64m4(op0, op1) \
-__builtin_rvv_vfwcvt_f_f_v_f64m4((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_f_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_f_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_f_v_f64m8(op0, op1) \
-__builtin_rvv_vfwcvt_f_f_v_f64m8((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_f_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_f_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#endif
-
-#if defined(__riscv_zfh)
-#define vsse16_v_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_f16m1((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vsse16_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsse16_v_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_f16m2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vsse16_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsse16_v_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_f16m4((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vsse16_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsse16_v_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_f16m8((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vsse16_v_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_f16m8_m((vbool2_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vsse16_v_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_f16mf2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vsse16_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsse16_v_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_f16mf4((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vsse16_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_f16m1(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f16m1((const _Float16 *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vluxei8_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (const _Float16 *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_f16m2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f16m2((const _Float16 *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vluxei8_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (const _Float16 *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_f16m4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f16m4((const _Float16 *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vluxei8_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (const _Float16 *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxei8_v_f16m8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f16m8((const _Float16 *)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vluxei8_v_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (const _Float16 *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vluxei8_v_f16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f16mf2((const _Float16 *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vluxei8_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (const _Float16 *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_f16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f16mf4((const _Float16 *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vluxei8_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (const _Float16 *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxei16_v_f16m1(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f16m1((const _Float16 *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vluxei16_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (const _Float16 *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_f16m2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f16m2((const _Float16 *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vluxei16_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (const _Float16 *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxei16_v_f16m4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f16m4((const _Float16 *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vluxei16_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (const _Float16 *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxei16_v_f16m8(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f16m8((const _Float16 *)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vluxei16_v_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (const _Float16 *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vluxei16_v_f16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f16mf2((const _Float16 *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vluxei16_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (const _Float16 *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxei16_v_f16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f16mf4((const _Float16 *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vluxei16_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (const _Float16 *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxei32_v_f16m1(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f16m1((const _Float16 *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vluxei32_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (const _Float16 *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_f16m2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f16m2((const _Float16 *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vluxei32_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (const _Float16 *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei32_v_f16m4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f16m4((const _Float16 *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vluxei32_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (const _Float16 *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxei32_v_f16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f16mf2((const _Float16 *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vluxei32_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (const _Float16 *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxei32_v_f16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f16mf4((const _Float16 *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vluxei32_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (const _Float16 *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxei64_v_f16m1(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f16m1((const _Float16 *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vluxei64_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (const _Float16 *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_f16m2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f16m2((const _Float16 *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vluxei64_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (const _Float16 *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxei64_v_f16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f16mf2((const _Float16 *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vluxei64_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (const _Float16 *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxei64_v_f16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f16mf4((const _Float16 *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vluxei64_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (const _Float16 *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_f16m1(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f16m1((const _Float16 *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vloxei8_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (const _Float16 *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxei8_v_f16m2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f16m2((const _Float16 *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vloxei8_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (const _Float16 *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_f16m4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f16m4((const _Float16 *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vloxei8_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (const _Float16 *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxei8_v_f16m8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f16m8((const _Float16 *)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vloxei8_v_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (const _Float16 *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vloxei8_v_f16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f16mf2((const _Float16 *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vloxei8_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (const _Float16 *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxei8_v_f16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f16mf4((const _Float16 *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vloxei8_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (const _Float16 *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxei16_v_f16m1(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f16m1((const _Float16 *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vloxei16_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (const _Float16 *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_f16m2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f16m2((const _Float16 *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vloxei16_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (const _Float16 *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxei16_v_f16m4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f16m4((const _Float16 *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vloxei16_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (const _Float16 *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxei16_v_f16m8(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f16m8((const _Float16 *)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vloxei16_v_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (const _Float16 *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vloxei16_v_f16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f16mf2((const _Float16 *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vloxei16_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (const _Float16 *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxei16_v_f16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f16mf4((const _Float16 *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vloxei16_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (const _Float16 *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxei32_v_f16m1(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f16m1((const _Float16 *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vloxei32_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (const _Float16 *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_f16m2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f16m2((const _Float16 *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vloxei32_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (const _Float16 *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxei32_v_f16m4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f16m4((const _Float16 *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vloxei32_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (const _Float16 *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxei32_v_f16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f16mf2((const _Float16 *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vloxei32_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (const _Float16 *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxei32_v_f16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f16mf4((const _Float16 *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vloxei32_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (const _Float16 *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxei64_v_f16m1(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f16m1((const _Float16 *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vloxei64_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (const _Float16 *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_f16m2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f16m2((const _Float16 *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vloxei64_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (const _Float16 *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxei64_v_f16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f16mf2((const _Float16 *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vloxei64_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (const _Float16 *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxei64_v_f16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f16mf4((const _Float16 *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vloxei64_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (const _Float16 *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmv_v_v_f16m1(op0, op1) \
-__builtin_rvv_vmv_v_v_f16m1((vfloat16m1_t)(op0), (size_t)(op1))
-#define vmv_v_v_f16m2(op0, op1) \
-__builtin_rvv_vmv_v_v_f16m2((vfloat16m2_t)(op0), (size_t)(op1))
-#define vmv_v_v_f16m4(op0, op1) \
-__builtin_rvv_vmv_v_v_f16m4((vfloat16m4_t)(op0), (size_t)(op1))
-#define vmv_v_v_f16m8(op0, op1) \
-__builtin_rvv_vmv_v_v_f16m8((vfloat16m8_t)(op0), (size_t)(op1))
-#define vmv_v_v_f16mf2(op0, op1) \
-__builtin_rvv_vmv_v_v_f16mf2((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vmv_v_v_f16mf4(op0, op1) \
-__builtin_rvv_vmv_v_v_f16mf4((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfadd_vv_f16m1(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfadd_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfadd_vv_f16m2(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfadd_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfadd_vv_f16m4(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfadd_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfadd_vv_f16m8(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vfadd_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfadd_vv_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfadd_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfadd_vv_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfadd_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfadd_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfadd_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfadd_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfadd_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfadd_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfadd_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfadd_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfadd_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfadd_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfadd_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfadd_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfadd_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsub_vv_f16m1(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfsub_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfsub_vv_f16m2(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfsub_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfsub_vv_f16m4(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfsub_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfsub_vv_f16m8(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vfsub_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfsub_vv_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfsub_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfsub_vv_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfsub_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfsub_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsub_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsub_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsub_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsub_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsub_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsub_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsub_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsub_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsub_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsub_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsub_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrsub_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrsub_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrsub_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrsub_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrsub_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrsub_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrsub_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrsub_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrsub_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrsub_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrsub_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrsub_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmul_vv_f16m1(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfmul_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfmul_vv_f16m2(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfmul_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfmul_vv_f16m4(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfmul_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfmul_vv_f16m8(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vfmul_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfmul_vv_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfmul_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfmul_vv_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfmul_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmul_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmul_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmul_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmul_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmul_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmul_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmul_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmul_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmul_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmul_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmul_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmul_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfdiv_vv_f16m1(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f16m2(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f16m4(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f16m8(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfdiv_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfdiv_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfdiv_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfdiv_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfdiv_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfdiv_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfdiv_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfdiv_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfdiv_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfdiv_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfdiv_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfdiv_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrdiv_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrdiv_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrdiv_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrdiv_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrdiv_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrdiv_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrdiv_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrdiv_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrdiv_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrdiv_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrdiv_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrdiv_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmacc_vv_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (_Float16)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (_Float16)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (_Float16)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (_Float16)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (_Float16)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (_Float16)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (_Float16)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (_Float16)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmin_vv_f16m1(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfmin_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfmin_vv_f16m2(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfmin_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfmin_vv_f16m4(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfmin_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfmin_vv_f16m8(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vfmin_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfmin_vv_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfmin_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfmin_vv_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfmin_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmin_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmin_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmin_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmin_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmin_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmin_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmin_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmin_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmin_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmin_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmin_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmin_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmax_vv_f16m1(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfmax_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfmax_vv_f16m2(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfmax_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfmax_vv_f16m4(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfmax_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfmax_vv_f16m8(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vfmax_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfmax_vv_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfmax_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfmax_vv_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfmax_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmax_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmax_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmax_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmax_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmax_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmax_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmax_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmax_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmax_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmax_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmax_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmax_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnj_vv_f16m1(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f16m2(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f16m4(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f16m8(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfsgnj_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnj_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnj_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnj_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnj_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnj_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnj_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnj_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnj_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnj_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnj_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnj_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f16m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f16m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f16m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f16m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f16m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f16m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f16m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f16m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfabs_v_f16m1(op0, op1) \
-__builtin_rvv_vfabs_v_f16m1((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfabs_v_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfabs_v_f16m2(op0, op1) \
-__builtin_rvv_vfabs_v_f16m2((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfabs_v_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfabs_v_f16m4(op0, op1) \
-__builtin_rvv_vfabs_v_f16m4((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfabs_v_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfabs_v_f16m8(op0, op1) \
-__builtin_rvv_vfabs_v_f16m8((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfabs_v_f16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfabs_v_f16mf2(op0, op1) \
-__builtin_rvv_vfabs_v_f16mf2((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfabs_v_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfabs_v_f16mf4(op0, op1) \
-__builtin_rvv_vfabs_v_f16mf4((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfabs_v_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vmfeq_vv_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f16m1_b16((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f16m2_b8((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f16m4_b4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f16m8_b2((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f16mf2_b32((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f16mf4_b64((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vmfeq_vf_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f16m1_b16((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfeq_vf_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfeq_vf_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f16m2_b8((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfeq_vf_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfeq_vf_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f16m4_b4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfeq_vf_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfeq_vf_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f16m8_b2((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfeq_vf_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfeq_vf_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f16mf2_b32((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfeq_vf_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfeq_vf_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f16mf4_b64((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfeq_vf_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfne_vv_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f16m1_b16((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vmfne_vv_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vmfne_vv_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f16m2_b8((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vmfne_vv_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vmfne_vv_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f16m4_b4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vmfne_vv_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vmfne_vv_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f16m8_b2((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vmfne_vv_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vmfne_vv_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f16mf2_b32((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vmfne_vv_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vmfne_vv_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f16mf4_b64((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vmfne_vv_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vmfne_vf_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f16m1_b16((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfne_vf_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfne_vf_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f16m2_b8((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfne_vf_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfne_vf_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f16m4_b4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfne_vf_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfne_vf_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f16m8_b2((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfne_vf_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfne_vf_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f16mf2_b32((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfne_vf_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfne_vf_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f16mf4_b64((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfne_vf_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmflt_vv_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f16m1_b16((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vmflt_vv_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vmflt_vv_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f16m2_b8((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vmflt_vv_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vmflt_vv_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f16m4_b4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vmflt_vv_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vmflt_vv_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f16m8_b2((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vmflt_vv_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vmflt_vv_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f16mf2_b32((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vmflt_vv_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vmflt_vv_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f16mf4_b64((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vmflt_vv_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vmflt_vf_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f16m1_b16((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmflt_vf_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmflt_vf_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f16m2_b8((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmflt_vf_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmflt_vf_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f16m4_b4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmflt_vf_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmflt_vf_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f16m8_b2((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmflt_vf_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmflt_vf_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f16mf2_b32((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmflt_vf_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmflt_vf_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f16mf4_b64((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmflt_vf_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfle_vv_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f16m1_b16((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vmfle_vv_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vmfle_vv_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f16m2_b8((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vmfle_vv_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vmfle_vv_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f16m4_b4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vmfle_vv_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vmfle_vv_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f16m8_b2((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vmfle_vv_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vmfle_vv_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f16mf2_b32((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vmfle_vv_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vmfle_vv_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f16mf4_b64((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vmfle_vv_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vmfle_vf_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f16m1_b16((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfle_vf_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfle_vf_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f16m2_b8((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfle_vf_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfle_vf_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f16m4_b4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfle_vf_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfle_vf_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f16m8_b2((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfle_vf_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfle_vf_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f16mf2_b32((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfle_vf_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfle_vf_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f16mf4_b64((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfle_vf_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfgt_vv_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f16m1_b16((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f16m2_b8((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f16m4_b4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f16m8_b2((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f16mf2_b32((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f16mf4_b64((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vmfgt_vf_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f16m1_b16((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfgt_vf_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfgt_vf_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f16m2_b8((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfgt_vf_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfgt_vf_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f16m4_b4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfgt_vf_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfgt_vf_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f16m8_b2((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfgt_vf_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfgt_vf_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f16mf2_b32((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfgt_vf_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfgt_vf_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f16mf4_b64((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfgt_vf_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfge_vv_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f16m1_b16((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vmfge_vv_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vmfge_vv_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f16m2_b8((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vmfge_vv_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vmfge_vv_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f16m4_b4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vmfge_vv_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vmfge_vv_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f16m8_b2((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vmfge_vv_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vmfge_vv_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f16mf2_b32((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vmfge_vv_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vmfge_vv_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f16mf4_b64((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vmfge_vv_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vmfge_vf_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f16m1_b16((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfge_vf_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfge_vf_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f16m2_b8((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfge_vf_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfge_vf_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f16m4_b4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfge_vf_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfge_vf_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f16m8_b2((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfge_vf_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfge_vf_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f16mf2_b32((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfge_vf_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfge_vf_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f16mf4_b64((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfge_vf_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmerge_vvm_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f16m1((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f16m2((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f16m4((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f16m8((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f16mf2((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f16mf4((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfmerge_vfm_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f16m1((vbool16_t)(op0), (vfloat16m1_t)(op1), (_Float16)(op2), (size_t)(op3))
-#define vfmerge_vfm_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f16m2((vbool8_t)(op0), (vfloat16m2_t)(op1), (_Float16)(op2), (size_t)(op3))
-#define vfmerge_vfm_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f16m4((vbool4_t)(op0), (vfloat16m4_t)(op1), (_Float16)(op2), (size_t)(op3))
-#define vfmerge_vfm_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f16m8((vbool2_t)(op0), (vfloat16m8_t)(op1), (_Float16)(op2), (size_t)(op3))
-#define vfmerge_vfm_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f16mf2((vbool32_t)(op0), (vfloat16mf2_t)(op1), (_Float16)(op2), (size_t)(op3))
-#define vfmerge_vfm_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f16mf4((vbool64_t)(op0), (vfloat16mf4_t)(op1), (_Float16)(op2), (size_t)(op3))
-#define vfmv_v_f_f16m1(op0, op1) \
-__builtin_rvv_vfmv_v_f_f16m1((_Float16)(op0), (size_t)(op1))
-#define vfmv_v_f_f16m2(op0, op1) \
-__builtin_rvv_vfmv_v_f_f16m2((_Float16)(op0), (size_t)(op1))
-#define vfmv_v_f_f16m4(op0, op1) \
-__builtin_rvv_vfmv_v_f_f16m4((_Float16)(op0), (size_t)(op1))
-#define vfmv_v_f_f16m8(op0, op1) \
-__builtin_rvv_vfmv_v_f_f16m8((_Float16)(op0), (size_t)(op1))
-#define vfmv_v_f_f16mf2(op0, op1) \
-__builtin_rvv_vfmv_v_f_f16mf2((_Float16)(op0), (size_t)(op1))
-#define vfmv_v_f_f16mf4(op0, op1) \
-__builtin_rvv_vfmv_v_f_f16mf4((_Float16)(op0), (size_t)(op1))
-#define vfredmax_vs_f16m1_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f16m1_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f16m1_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f16m1_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f16m2_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f16m2_f16m1((vfloat16m1_t)(op0), (vfloat16m2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f16m2_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f16m2_f16m1_m((vbool8_t)(op0), (vfloat16m1_t)(op1), (vfloat16m2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f16m4_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f16m4_f16m1((vfloat16m1_t)(op0), (vfloat16m4_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f16m4_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f16m4_f16m1_m((vbool4_t)(op0), (vfloat16m1_t)(op1), (vfloat16m4_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f16m8_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f16m8_f16m1((vfloat16m1_t)(op0), (vfloat16m8_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f16m8_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f16m8_f16m1_m((vbool2_t)(op0), (vfloat16m1_t)(op1), (vfloat16m8_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f16mf2_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f16mf2_f16m1((vfloat16m1_t)(op0), (vfloat16mf2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f16mf2_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f16mf2_f16m1_m((vbool32_t)(op0), (vfloat16m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f16mf4_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f16mf4_f16m1((vfloat16m1_t)(op0), (vfloat16mf4_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f16mf4_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f16mf4_f16m1_m((vbool64_t)(op0), (vfloat16m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f16m1_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f16m1_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f16m1_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f16m1_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f16m2_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f16m2_f16m1((vfloat16m1_t)(op0), (vfloat16m2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f16m2_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f16m2_f16m1_m((vbool8_t)(op0), (vfloat16m1_t)(op1), (vfloat16m2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f16m4_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f16m4_f16m1((vfloat16m1_t)(op0), (vfloat16m4_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f16m4_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f16m4_f16m1_m((vbool4_t)(op0), (vfloat16m1_t)(op1), (vfloat16m4_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f16m8_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f16m8_f16m1((vfloat16m1_t)(op0), (vfloat16m8_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f16m8_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f16m8_f16m1_m((vbool2_t)(op0), (vfloat16m1_t)(op1), (vfloat16m8_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f16mf2_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f16mf2_f16m1((vfloat16m1_t)(op0), (vfloat16mf2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f16mf2_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f16mf2_f16m1_m((vbool32_t)(op0), (vfloat16m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f16mf4_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f16mf4_f16m1((vfloat16m1_t)(op0), (vfloat16mf4_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f16mf4_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f16mf4_f16m1_m((vbool64_t)(op0), (vfloat16m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f16m1_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f16m1_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f16m1_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f16m1_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f16m2_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f16m2_f16m1((vfloat16m1_t)(op0), (vfloat16m2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f16m2_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f16m2_f16m1_m((vbool8_t)(op0), (vfloat16m1_t)(op1), (vfloat16m2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f16m4_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f16m4_f16m1((vfloat16m1_t)(op0), (vfloat16m4_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f16m4_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f16m4_f16m1_m((vbool4_t)(op0), (vfloat16m1_t)(op1), (vfloat16m4_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f16m8_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f16m8_f16m1((vfloat16m1_t)(op0), (vfloat16m8_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f16m8_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f16m8_f16m1_m((vbool2_t)(op0), (vfloat16m1_t)(op1), (vfloat16m8_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f16mf2_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f16mf2_f16m1((vfloat16m1_t)(op0), (vfloat16mf2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f16mf2_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f16mf2_f16m1_m((vbool32_t)(op0), (vfloat16m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f16mf4_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f16mf4_f16m1((vfloat16m1_t)(op0), (vfloat16mf4_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f16mf4_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f16mf4_f16m1_m((vbool64_t)(op0), (vfloat16m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f16m1_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f16m1_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f16m1_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f16m1_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f16m2_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f16m2_f16m1((vfloat16m1_t)(op0), (vfloat16m2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f16m2_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f16m2_f16m1_m((vbool8_t)(op0), (vfloat16m1_t)(op1), (vfloat16m2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f16m4_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f16m4_f16m1((vfloat16m1_t)(op0), (vfloat16m4_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f16m4_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f16m4_f16m1_m((vbool4_t)(op0), (vfloat16m1_t)(op1), (vfloat16m4_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f16m8_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f16m8_f16m1((vfloat16m1_t)(op0), (vfloat16m8_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f16m8_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f16m8_f16m1_m((vbool2_t)(op0), (vfloat16m1_t)(op1), (vfloat16m8_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f16mf2_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f16mf2_f16m1((vfloat16m1_t)(op0), (vfloat16mf2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f16mf2_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f16mf2_f16m1_m((vbool32_t)(op0), (vfloat16m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f16mf4_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f16mf4_f16m1((vfloat16m1_t)(op0), (vfloat16mf4_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f16mf4_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f16mf4_f16m1_m((vbool64_t)(op0), (vfloat16m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f16m2((_Float16 *)(op0), (vuint8m1_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint8m1_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f16m4((_Float16 *)(op0), (vuint8m2_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint8m2_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f16m8((_Float16 *)(op0), (vuint8m4_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f16m8_m((vbool2_t)(op0), (_Float16 *)(op1), (vuint8m4_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f16m2((_Float16 *)(op0), (vuint16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f16m4((_Float16 *)(op0), (vuint16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f16m8((_Float16 *)(op0), (vuint16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f16m8_m((vbool2_t)(op0), (_Float16 *)(op1), (vuint16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmv_f_s_f16m1_f16(op0) \
-__builtin_rvv_vfmv_f_s_f16m1_f16((vfloat16m1_t)(op0))
-#define vfmv_f_s_f16m2_f16(op0) \
-__builtin_rvv_vfmv_f_s_f16m2_f16((vfloat16m2_t)(op0))
-#define vfmv_f_s_f16m4_f16(op0) \
-__builtin_rvv_vfmv_f_s_f16m4_f16((vfloat16m4_t)(op0))
-#define vfmv_f_s_f16m8_f16(op0) \
-__builtin_rvv_vfmv_f_s_f16m8_f16((vfloat16m8_t)(op0))
-#define vfmv_f_s_f16mf2_f16(op0) \
-__builtin_rvv_vfmv_f_s_f16mf2_f16((vfloat16mf2_t)(op0))
-#define vfmv_f_s_f16mf4_f16(op0) \
-__builtin_rvv_vfmv_f_s_f16mf4_f16((vfloat16mf4_t)(op0))
-#define vfmv_s_f_f16m1(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmv_s_f_f16m2(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmv_s_f_f16m4(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmv_s_f_f16m8(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmv_s_f_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmv_s_f_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vslideup_vx_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vfslide1up_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1up_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfslide1up_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1up_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfslide1up_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1up_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfslide1up_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1up_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfslide1up_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1up_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfslide1up_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1up_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vsuxei32_v_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f16m2((_Float16 *)(op0), (vuint32m4_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint32m4_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f16m4((_Float16 *)(op0), (vuint32m8_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint32m8_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfslide1down_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1down_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfslide1down_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1down_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfslide1down_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1down_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfslide1down_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1down_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfslide1down_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1down_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfslide1down_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1down_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vrgather_vv_f16m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f16m1((vfloat16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgather_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgather_vv_f16m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f16m2((vfloat16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgather_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_f16m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f16m4((vfloat16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vrgather_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vrgather_vv_f16m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f16m8((vfloat16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vrgather_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vrgather_vv_f16mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f16mf2((vfloat16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgather_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgather_vv_f16mf4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f16mf4((vfloat16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgather_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgather_vx_f16m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f16m1((vfloat16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f16m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f16m2((vfloat16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f16m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f16m4((vfloat16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f16m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f16m8((vfloat16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f16mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f16mf2((vfloat16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f16mf4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f16mf4((vfloat16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f16m1(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f16m1((vfloat16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f16m2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f16m2((vfloat16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f16m4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f16m4((vfloat16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f16m8(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f16m8((vfloat16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f16mf2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f16mf2((vfloat16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f16mf4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f16mf4((vfloat16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vcompress_vm_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f16m1((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vcompress_vm_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f16m2((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vcompress_vm_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f16m4((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vcompress_vm_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f16m8((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vcompress_vm_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f16mf2((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vcompress_vm_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f16mf4((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f16m2((_Float16 *)(op0), (vuint64m8_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint64m8_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vget_v_f16m2_f16m1(op0, op1) \
-__builtin_rvv_vget_v_f16m2_f16m1((vfloat16m2_t)(op0), (size_t)(op1))
-#define vget_v_f16m4_f16m1(op0, op1) \
-__builtin_rvv_vget_v_f16m4_f16m1((vfloat16m4_t)(op0), (size_t)(op1))
-#define vget_v_f16m8_f16m1(op0, op1) \
-__builtin_rvv_vget_v_f16m8_f16m1((vfloat16m8_t)(op0), (size_t)(op1))
-#define vget_v_f16m4_f16m2(op0, op1) \
-__builtin_rvv_vget_v_f16m4_f16m2((vfloat16m4_t)(op0), (size_t)(op1))
-#define vget_v_f16m8_f16m2(op0, op1) \
-__builtin_rvv_vget_v_f16m8_f16m2((vfloat16m8_t)(op0), (size_t)(op1))
-#define vget_v_f16m8_f16m4(op0, op1) \
-__builtin_rvv_vget_v_f16m8_f16m4((vfloat16m8_t)(op0), (size_t)(op1))
-#define vset_v_f16m1_f16m2(op0, op1, op2) \
-__builtin_rvv_vset_v_f16m1_f16m2((vfloat16m2_t)(op0), (size_t)(op1), (vfloat16m1_t)(op2))
-#define vset_v_f16m1_f16m4(op0, op1, op2) \
-__builtin_rvv_vset_v_f16m1_f16m4((vfloat16m4_t)(op0), (size_t)(op1), (vfloat16m1_t)(op2))
-#define vset_v_f16m2_f16m4(op0, op1, op2) \
-__builtin_rvv_vset_v_f16m2_f16m4((vfloat16m4_t)(op0), (size_t)(op1), (vfloat16m2_t)(op2))
-#define vset_v_f16m1_f16m8(op0, op1, op2) \
-__builtin_rvv_vset_v_f16m1_f16m8((vfloat16m8_t)(op0), (size_t)(op1), (vfloat16m1_t)(op2))
-#define vset_v_f16m2_f16m8(op0, op1, op2) \
-__builtin_rvv_vset_v_f16m2_f16m8((vfloat16m8_t)(op0), (size_t)(op1), (vfloat16m2_t)(op2))
-#define vset_v_f16m4_f16m8(op0, op1, op2) \
-__builtin_rvv_vset_v_f16m4_f16m8((vfloat16m8_t)(op0), (size_t)(op1), (vfloat16m4_t)(op2))
-#define vsoxei8_v_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f16m2((_Float16 *)(op0), (vuint8m1_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint8m1_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f16m4((_Float16 *)(op0), (vuint8m2_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint8m2_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f16m8((_Float16 *)(op0), (vuint8m4_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f16m8_m((vbool2_t)(op0), (_Float16 *)(op1), (vuint8m4_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f16m2((_Float16 *)(op0), (vuint16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f16m4((_Float16 *)(op0), (vuint16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f16m8((_Float16 *)(op0), (vuint16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f16m8_m((vbool2_t)(op0), (_Float16 *)(op1), (vuint16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f16m2((_Float16 *)(op0), (vuint32m4_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint32m4_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f16m4((_Float16 *)(op0), (vuint32m8_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint32m8_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f16m2((_Float16 *)(op0), (vuint64m8_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint64m8_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vle16ff_v_f16m1(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_f16m1((const _Float16 *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (const _Float16 *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_f16m2(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_f16m2((const _Float16 *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (const _Float16 *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_f16m4(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_f16m4((const _Float16 *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (const _Float16 *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_f16m8(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_f16m8((const _Float16 *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (const _Float16 *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_f16mf2(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_f16mf2((const _Float16 *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (const _Float16 *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_f16mf4(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_f16mf4((const _Float16 *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (const _Float16 *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vfneg_v_f16m1(op0, op1) \
-__builtin_rvv_vfneg_v_f16m1((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfneg_v_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfneg_v_f16m2(op0, op1) \
-__builtin_rvv_vfneg_v_f16m2((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfneg_v_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfneg_v_f16m4(op0, op1) \
-__builtin_rvv_vfneg_v_f16m4((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfneg_v_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfneg_v_f16m8(op0, op1) \
-__builtin_rvv_vfneg_v_f16m8((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfneg_v_f16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfneg_v_f16mf2(op0, op1) \
-__builtin_rvv_vfneg_v_f16mf2((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfneg_v_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfneg_v_f16mf4(op0, op1) \
-__builtin_rvv_vfneg_v_f16mf4((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfneg_v_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vle16_v_f16m1(op0, op1) \
-__builtin_rvv_vle16_v_f16m1((const _Float16 *)(op0), (size_t)(op1))
-#define vle16_v_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (const _Float16 *)(op2), (size_t)(op3))
-#define vle16_v_f16m2(op0, op1) \
-__builtin_rvv_vle16_v_f16m2((const _Float16 *)(op0), (size_t)(op1))
-#define vle16_v_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (const _Float16 *)(op2), (size_t)(op3))
-#define vle16_v_f16m4(op0, op1) \
-__builtin_rvv_vle16_v_f16m4((const _Float16 *)(op0), (size_t)(op1))
-#define vle16_v_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (const _Float16 *)(op2), (size_t)(op3))
-#define vle16_v_f16m8(op0, op1) \
-__builtin_rvv_vle16_v_f16m8((const _Float16 *)(op0), (size_t)(op1))
-#define vle16_v_f16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (const _Float16 *)(op2), (size_t)(op3))
-#define vle16_v_f16mf2(op0, op1) \
-__builtin_rvv_vle16_v_f16mf2((const _Float16 *)(op0), (size_t)(op1))
-#define vle16_v_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (const _Float16 *)(op2), (size_t)(op3))
-#define vle16_v_f16mf4(op0, op1) \
-__builtin_rvv_vle16_v_f16mf4((const _Float16 *)(op0), (size_t)(op1))
-#define vle16_v_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (const _Float16 *)(op2), (size_t)(op3))
-#define vse16_v_f16m1(op0, op1, op2) \
-__builtin_rvv_vse16_v_f16m1((_Float16 *)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vse16_v_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vse16_v_f16m2(op0, op1, op2) \
-__builtin_rvv_vse16_v_f16m2((_Float16 *)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vse16_v_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vse16_v_f16m4(op0, op1, op2) \
-__builtin_rvv_vse16_v_f16m4((_Float16 *)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vse16_v_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vse16_v_f16m8(op0, op1, op2) \
-__builtin_rvv_vse16_v_f16m8((_Float16 *)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vse16_v_f16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_f16m8_m((vbool2_t)(op0), (_Float16 *)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vse16_v_f16mf2(op0, op1, op2) \
-__builtin_rvv_vse16_v_f16mf2((_Float16 *)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vse16_v_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vse16_v_f16mf4(op0, op1, op2) \
-__builtin_rvv_vse16_v_f16mf4((_Float16 *)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vse16_v_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vlse16_v_f16m1(op0, op1, op2) \
-__builtin_rvv_vlse16_v_f16m1((const _Float16 *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (const _Float16 *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_f16m2(op0, op1, op2) \
-__builtin_rvv_vlse16_v_f16m2((const _Float16 *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (const _Float16 *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_f16m4(op0, op1, op2) \
-__builtin_rvv_vlse16_v_f16m4((const _Float16 *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (const _Float16 *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_f16m8(op0, op1, op2) \
-__builtin_rvv_vlse16_v_f16m8((const _Float16 *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (const _Float16 *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_f16mf2(op0, op1, op2) \
-__builtin_rvv_vlse16_v_f16mf2((const _Float16 *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (const _Float16 *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_f16mf4(op0, op1, op2) \
-__builtin_rvv_vlse16_v_f16mf4((const _Float16 *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (const _Float16 *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vfclass_v_u16m1(op0, op1) \
-__builtin_rvv_vfclass_v_u16m1((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfclass_v_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfclass_v_u16m2(op0, op1) \
-__builtin_rvv_vfclass_v_u16m2((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfclass_v_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfclass_v_u16m4(op0, op1) \
-__builtin_rvv_vfclass_v_u16m4((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfclass_v_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfclass_v_u16m8(op0, op1) \
-__builtin_rvv_vfclass_v_u16m8((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfclass_v_u16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfclass_v_u16mf2(op0, op1) \
-__builtin_rvv_vfclass_v_u16mf2((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfclass_v_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfclass_v_u16mf4(op0, op1) \
-__builtin_rvv_vfclass_v_u16mf4((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfclass_v_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f16m1(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f16m1((vint16m1_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f16m2(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f16m2((vint16m2_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f16m4(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f16m4((vint16m4_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f16m8(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f16m8((vint16m8_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f16mf2(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f16mf2((vint16mf2_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f16mf4(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f16mf4((vint16mf4_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f16m1(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f16m1((vuint16m1_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f16m2(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f16m2((vuint16m2_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f16m4(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f16m4((vuint16m4_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f16m8(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f16m8((vuint16m8_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f16mf2(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f16mf2((vuint16mf2_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f16mf4(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f16mf4((vuint16mf4_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i16m1(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16m1((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i16m2(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16m2((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i16m4(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16m4((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i16m8(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16m8((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i16mf2(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16mf2((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i16mf4(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16mf4((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u16m1(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16m1((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u16m2(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16m2((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u16m4(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16m4((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u16m8(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16m8((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u16mf2(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16mf2((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u16mf4(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16mf4((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i16m1(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i16m1((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i16m2(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i16m2((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i16m4(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i16m4((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i16m8(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i16m8((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i16mf2(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i16mf2((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i16mf4(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i16mf4((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u16m1(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u16m1((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u16m2(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u16m2((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u16m4(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u16m4((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u16m8(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u16m8((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u16mf2(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u16mf2((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u16mf4(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u16mf4((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfncvt_f_x_w_f16mf4(op0, op1) \
-__builtin_rvv_vfncvt_f_x_w_f16mf4((vint32mf2_t)(op0), (size_t)(op1))
-#define vfncvt_f_x_w_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_x_w_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vfncvt_f_x_w_f16mf2(op0, op1) \
-__builtin_rvv_vfncvt_f_x_w_f16mf2((vint32m1_t)(op0), (size_t)(op1))
-#define vfncvt_f_x_w_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_x_w_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vfncvt_f_x_w_f16m1(op0, op1) \
-__builtin_rvv_vfncvt_f_x_w_f16m1((vint32m2_t)(op0), (size_t)(op1))
-#define vfncvt_f_x_w_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_x_w_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vfncvt_f_x_w_f16m2(op0, op1) \
-__builtin_rvv_vfncvt_f_x_w_f16m2((vint32m4_t)(op0), (size_t)(op1))
-#define vfncvt_f_x_w_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_x_w_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vfncvt_f_x_w_f16m4(op0, op1) \
-__builtin_rvv_vfncvt_f_x_w_f16m4((vint32m8_t)(op0), (size_t)(op1))
-#define vfncvt_f_x_w_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_x_w_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vfncvt_f_xu_w_f16mf4(op0, op1) \
-__builtin_rvv_vfncvt_f_xu_w_f16mf4((vuint32mf2_t)(op0), (size_t)(op1))
-#define vfncvt_f_xu_w_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_xu_w_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vfncvt_f_xu_w_f16mf2(op0, op1) \
-__builtin_rvv_vfncvt_f_xu_w_f16mf2((vuint32m1_t)(op0), (size_t)(op1))
-#define vfncvt_f_xu_w_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_xu_w_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vfncvt_f_xu_w_f16m1(op0, op1) \
-__builtin_rvv_vfncvt_f_xu_w_f16m1((vuint32m2_t)(op0), (size_t)(op1))
-#define vfncvt_f_xu_w_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_xu_w_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vfncvt_f_xu_w_f16m2(op0, op1) \
-__builtin_rvv_vfncvt_f_xu_w_f16m2((vuint32m4_t)(op0), (size_t)(op1))
-#define vfncvt_f_xu_w_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_xu_w_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vfncvt_f_xu_w_f16m4(op0, op1) \
-__builtin_rvv_vfncvt_f_xu_w_f16m4((vuint32m8_t)(op0), (size_t)(op1))
-#define vfncvt_f_xu_w_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_xu_w_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i8mf8(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8mf8((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i8mf4(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8mf4((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i8mf2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8mf2((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i8m1(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8m1((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i8m2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8m2((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i8m4(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8m4((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u8mf8(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf8((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u8mf4(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf4((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u8mf2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf2((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u8m1(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8m1((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u8m2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8m2((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u8m4(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8m4((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i8mf8(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i8mf8((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i8mf4(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i8mf4((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i8mf2(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i8mf2((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i8m1(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i8m1((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i8m2(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i8m2((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i8m4(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i8m4((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u8mf8(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u8mf8((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u8mf4(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u8mf4((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u8mf2(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u8mf2((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u8m1(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u8m1((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u8m2(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u8m2((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u8m4(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u8m4((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfrec7_v_f16m1(op0, op1) \
-__builtin_rvv_vfrec7_v_f16m1((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfrec7_v_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfrec7_v_f16m2(op0, op1) \
-__builtin_rvv_vfrec7_v_f16m2((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfrec7_v_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfrec7_v_f16m4(op0, op1) \
-__builtin_rvv_vfrec7_v_f16m4((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfrec7_v_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfrec7_v_f16m8(op0, op1) \
-__builtin_rvv_vfrec7_v_f16m8((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfrec7_v_f16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfrec7_v_f16mf2(op0, op1) \
-__builtin_rvv_vfrec7_v_f16mf2((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfrec7_v_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfrec7_v_f16mf4(op0, op1) \
-__builtin_rvv_vfrec7_v_f16mf4((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfrec7_v_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f16m1(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f16m1((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f16m2(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f16m2((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f16m4(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f16m4((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f16m8(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f16m8((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f16mf2(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f16mf2((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f16mf4(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f16mf4((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f16m1(op0, op1) \
-__builtin_rvv_vfsqrt_v_f16m1((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f16m2(op0, op1) \
-__builtin_rvv_vfsqrt_v_f16m2((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f16m4(op0, op1) \
-__builtin_rvv_vfsqrt_v_f16m4((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f16m8(op0, op1) \
-__builtin_rvv_vfsqrt_v_f16m8((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f16mf2(op0, op1) \
-__builtin_rvv_vfsqrt_v_f16mf2((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f16mf4(op0, op1) \
-__builtin_rvv_vfsqrt_v_f16mf4((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f16mf4(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f16mf4((vint8mf8_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f16mf2(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f16mf2((vint8mf4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f16m1(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f16m1((vint8mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f16m2(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f16m2((vint8m1_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f16m4(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f16m4((vint8m2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f16m8(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f16m8((vint8m4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f16mf4(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f16mf4((vuint8mf8_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f16mf2(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f16mf2((vuint8mf4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f16m1(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f16m1((vuint8mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f16m2(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f16m2((vuint8m1_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f16m4(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f16m4((vuint8m2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f16m8(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f16m8((vuint8m4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_x_f_v_i32mf2(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i32mf2((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_x_f_v_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_x_f_v_i32m1(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i32m1((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_x_f_v_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_x_f_v_i32m2(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i32m2((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_x_f_v_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_x_f_v_i32m4(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i32m4((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_x_f_v_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_x_f_v_i32m8(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i32m8((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_x_f_v_i32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_xu_f_v_u32mf2(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u32mf2((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_xu_f_v_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_xu_f_v_u32m1(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m1((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_xu_f_v_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_xu_f_v_u32m2(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m2((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_xu_f_v_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_xu_f_v_u32m4(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m4((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_xu_f_v_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_xu_f_v_u32m8(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m8((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_xu_f_v_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfwcvt_x_f_v_i32mf2(op0, op1) \
-__builtin_rvv_vfwcvt_x_f_v_i32mf2((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfwcvt_x_f_v_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_x_f_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwcvt_x_f_v_i32m1(op0, op1) \
-__builtin_rvv_vfwcvt_x_f_v_i32m1((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_x_f_v_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_x_f_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_x_f_v_i32m2(op0, op1) \
-__builtin_rvv_vfwcvt_x_f_v_i32m2((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfwcvt_x_f_v_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_x_f_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwcvt_x_f_v_i32m4(op0, op1) \
-__builtin_rvv_vfwcvt_x_f_v_i32m4((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfwcvt_x_f_v_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_x_f_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwcvt_x_f_v_i32m8(op0, op1) \
-__builtin_rvv_vfwcvt_x_f_v_i32m8((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfwcvt_x_f_v_i32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_x_f_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfwcvt_xu_f_v_u32mf2(op0, op1) \
-__builtin_rvv_vfwcvt_xu_f_v_u32mf2((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfwcvt_xu_f_v_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_xu_f_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwcvt_xu_f_v_u32m1(op0, op1) \
-__builtin_rvv_vfwcvt_xu_f_v_u32m1((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_xu_f_v_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_xu_f_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_xu_f_v_u32m2(op0, op1) \
-__builtin_rvv_vfwcvt_xu_f_v_u32m2((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfwcvt_xu_f_v_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_xu_f_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwcvt_xu_f_v_u32m4(op0, op1) \
-__builtin_rvv_vfwcvt_xu_f_v_u32m4((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfwcvt_xu_f_v_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_xu_f_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwcvt_xu_f_v_u32m8(op0, op1) \
-__builtin_rvv_vfwcvt_xu_f_v_u32m8((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfwcvt_xu_f_v_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_xu_f_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vlmul_ext_v_f16mf2_f16m1(op0) \
-__builtin_rvv_vlmul_ext_v_f16mf2_f16m1((vfloat16mf2_t)(op0))
-#define vlmul_ext_v_f16mf4_f16m1(op0) \
-__builtin_rvv_vlmul_ext_v_f16mf4_f16m1((vfloat16mf4_t)(op0))
-#define vlmul_ext_v_f16mf4_f16mf2(op0) \
-__builtin_rvv_vlmul_ext_v_f16mf4_f16mf2((vfloat16mf4_t)(op0))
-#define vlmul_ext_v_f16m1_f16m2(op0) \
-__builtin_rvv_vlmul_ext_v_f16m1_f16m2((vfloat16m1_t)(op0))
-#define vlmul_ext_v_f16mf2_f16m2(op0) \
-__builtin_rvv_vlmul_ext_v_f16mf2_f16m2((vfloat16mf2_t)(op0))
-#define vlmul_ext_v_f16mf4_f16m2(op0) \
-__builtin_rvv_vlmul_ext_v_f16mf4_f16m2((vfloat16mf4_t)(op0))
-#define vlmul_ext_v_f16m1_f16m4(op0) \
-__builtin_rvv_vlmul_ext_v_f16m1_f16m4((vfloat16m1_t)(op0))
-#define vlmul_ext_v_f16m2_f16m4(op0) \
-__builtin_rvv_vlmul_ext_v_f16m2_f16m4((vfloat16m2_t)(op0))
-#define vlmul_ext_v_f16mf2_f16m4(op0) \
-__builtin_rvv_vlmul_ext_v_f16mf2_f16m4((vfloat16mf2_t)(op0))
-#define vlmul_ext_v_f16mf4_f16m4(op0) \
-__builtin_rvv_vlmul_ext_v_f16mf4_f16m4((vfloat16mf4_t)(op0))
-#define vlmul_ext_v_f16m1_f16m8(op0) \
-__builtin_rvv_vlmul_ext_v_f16m1_f16m8((vfloat16m1_t)(op0))
-#define vlmul_ext_v_f16m2_f16m8(op0) \
-__builtin_rvv_vlmul_ext_v_f16m2_f16m8((vfloat16m2_t)(op0))
-#define vlmul_ext_v_f16m4_f16m8(op0) \
-__builtin_rvv_vlmul_ext_v_f16m4_f16m8((vfloat16m4_t)(op0))
-#define vlmul_ext_v_f16mf2_f16m8(op0) \
-__builtin_rvv_vlmul_ext_v_f16mf2_f16m8((vfloat16mf2_t)(op0))
-#define vlmul_ext_v_f16mf4_f16m8(op0) \
-__builtin_rvv_vlmul_ext_v_f16mf4_f16m8((vfloat16mf4_t)(op0))
-#define vlmul_trunc_v_f16m1_f16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m1_f16mf2((vfloat16m1_t)(op0))
-#define vlmul_trunc_v_f16m2_f16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m2_f16mf2((vfloat16m2_t)(op0))
-#define vlmul_trunc_v_f16m4_f16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m4_f16mf2((vfloat16m4_t)(op0))
-#define vlmul_trunc_v_f16m8_f16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m8_f16mf2((vfloat16m8_t)(op0))
-#define vlmul_trunc_v_f16m1_f16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m1_f16mf4((vfloat16m1_t)(op0))
-#define vlmul_trunc_v_f16m2_f16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m2_f16mf4((vfloat16m2_t)(op0))
-#define vlmul_trunc_v_f16m4_f16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m4_f16mf4((vfloat16m4_t)(op0))
-#define vlmul_trunc_v_f16m8_f16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m8_f16mf4((vfloat16m8_t)(op0))
-#define vlmul_trunc_v_f16mf2_f16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_f16mf2_f16mf4((vfloat16mf2_t)(op0))
-#define vlmul_trunc_v_f16m2_f16m1(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m2_f16m1((vfloat16m2_t)(op0))
-#define vlmul_trunc_v_f16m4_f16m1(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m4_f16m1((vfloat16m4_t)(op0))
-#define vlmul_trunc_v_f16m8_f16m1(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m8_f16m1((vfloat16m8_t)(op0))
-#define vlmul_trunc_v_f16m4_f16m2(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m4_f16m2((vfloat16m4_t)(op0))
-#define vlmul_trunc_v_f16m8_f16m2(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m8_f16m2((vfloat16m8_t)(op0))
-#define vlmul_trunc_v_f16m8_f16m4(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m8_f16m4((vfloat16m8_t)(op0))
-#define vreinterpret_v_i16m1_f16m1(op0) \
-__builtin_rvv_vreinterpret_v_i16m1_f16m1((vint16m1_t)(op0))
-#define vreinterpret_v_i16m2_f16m2(op0) \
-__builtin_rvv_vreinterpret_v_i16m2_f16m2((vint16m2_t)(op0))
-#define vreinterpret_v_i16m4_f16m4(op0) \
-__builtin_rvv_vreinterpret_v_i16m4_f16m4((vint16m4_t)(op0))
-#define vreinterpret_v_i16m8_f16m8(op0) \
-__builtin_rvv_vreinterpret_v_i16m8_f16m8((vint16m8_t)(op0))
-#define vreinterpret_v_i16mf2_f16mf2(op0) \
-__builtin_rvv_vreinterpret_v_i16mf2_f16mf2((vint16mf2_t)(op0))
-#define vreinterpret_v_i16mf4_f16mf4(op0) \
-__builtin_rvv_vreinterpret_v_i16mf4_f16mf4((vint16mf4_t)(op0))
-#define vreinterpret_v_u16m1_f16m1(op0) \
-__builtin_rvv_vreinterpret_v_u16m1_f16m1((vuint16m1_t)(op0))
-#define vreinterpret_v_u16m2_f16m2(op0) \
-__builtin_rvv_vreinterpret_v_u16m2_f16m2((vuint16m2_t)(op0))
-#define vreinterpret_v_u16m4_f16m4(op0) \
-__builtin_rvv_vreinterpret_v_u16m4_f16m4((vuint16m4_t)(op0))
-#define vreinterpret_v_u16m8_f16m8(op0) \
-__builtin_rvv_vreinterpret_v_u16m8_f16m8((vuint16m8_t)(op0))
-#define vreinterpret_v_u16mf2_f16mf2(op0) \
-__builtin_rvv_vreinterpret_v_u16mf2_f16mf2((vuint16mf2_t)(op0))
-#define vreinterpret_v_u16mf4_f16mf4(op0) \
-__builtin_rvv_vreinterpret_v_u16mf4_f16mf4((vuint16mf4_t)(op0))
-#define vreinterpret_v_f16m1_i16m1(op0) \
-__builtin_rvv_vreinterpret_v_f16m1_i16m1((vfloat16m1_t)(op0))
-#define vreinterpret_v_f16m2_i16m2(op0) \
-__builtin_rvv_vreinterpret_v_f16m2_i16m2((vfloat16m2_t)(op0))
-#define vreinterpret_v_f16m4_i16m4(op0) \
-__builtin_rvv_vreinterpret_v_f16m4_i16m4((vfloat16m4_t)(op0))
-#define vreinterpret_v_f16m8_i16m8(op0) \
-__builtin_rvv_vreinterpret_v_f16m8_i16m8((vfloat16m8_t)(op0))
-#define vreinterpret_v_f16mf2_i16mf2(op0) \
-__builtin_rvv_vreinterpret_v_f16mf2_i16mf2((vfloat16mf2_t)(op0))
-#define vreinterpret_v_f16mf4_i16mf4(op0) \
-__builtin_rvv_vreinterpret_v_f16mf4_i16mf4((vfloat16mf4_t)(op0))
-#define vreinterpret_v_f16m1_u16m1(op0) \
-__builtin_rvv_vreinterpret_v_f16m1_u16m1((vfloat16m1_t)(op0))
-#define vreinterpret_v_f16m2_u16m2(op0) \
-__builtin_rvv_vreinterpret_v_f16m2_u16m2((vfloat16m2_t)(op0))
-#define vreinterpret_v_f16m4_u16m4(op0) \
-__builtin_rvv_vreinterpret_v_f16m4_u16m4((vfloat16m4_t)(op0))
-#define vreinterpret_v_f16m8_u16m8(op0) \
-__builtin_rvv_vreinterpret_v_f16m8_u16m8((vfloat16m8_t)(op0))
-#define vreinterpret_v_f16mf2_u16mf2(op0) \
-__builtin_rvv_vreinterpret_v_f16mf2_u16mf2((vfloat16mf2_t)(op0))
-#define vreinterpret_v_f16mf4_u16mf4(op0) \
-__builtin_rvv_vreinterpret_v_f16mf4_u16mf4((vfloat16mf4_t)(op0))
-#define vundefined_f16m1() \
-__builtin_rvv_vundefined_f16m1()
-#define vundefined_f16m2() \
-__builtin_rvv_vundefined_f16m2()
-#define vundefined_f16m4() \
-__builtin_rvv_vundefined_f16m4()
-#define vundefined_f16m8() \
-__builtin_rvv_vundefined_f16m8()
-#define vundefined_f16mf2() \
-__builtin_rvv_vundefined_f16mf2()
-#define vundefined_f16mf4() \
-__builtin_rvv_vundefined_f16mf4()
-#endif
-
-#if defined(__riscv_f) && defined(__riscv_zfh)
-#define vfwadd_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfwadd_vv_f32mf2((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfwadd_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwadd_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfwadd_vv_f32m1((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfwadd_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwadd_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfwadd_vv_f32m2((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfwadd_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwadd_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfwadd_vv_f32m4((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfwadd_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwadd_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfwadd_vv_f32m8((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfwadd_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwadd_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfwadd_vf_f32mf2((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwadd_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwadd_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfwadd_vf_f32m1((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwadd_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwadd_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfwadd_vf_f32m2((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwadd_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwadd_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfwadd_vf_f32m4((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwadd_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwadd_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfwadd_vf_f32m8((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwadd_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwsub_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfwsub_vv_f32mf2((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfwsub_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwsub_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfwsub_vv_f32m1((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfwsub_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwsub_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfwsub_vv_f32m2((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfwsub_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwsub_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfwsub_vv_f32m4((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfwsub_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwsub_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfwsub_vv_f32m8((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfwsub_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwsub_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfwsub_vf_f32mf2((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwsub_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwsub_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfwsub_vf_f32m1((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwsub_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwsub_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfwsub_vf_f32m2((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwsub_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwsub_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfwsub_vf_f32m4((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwsub_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwsub_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfwsub_vf_f32m8((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwsub_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwadd_wv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfwadd_wv_f32mf2((vfloat32mf2_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfwadd_wv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwadd_wv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfwadd_wv_f32m1((vfloat32m1_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfwadd_wv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwadd_wv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfwadd_wv_f32m2((vfloat32m2_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfwadd_wv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwadd_wv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfwadd_wv_f32m4((vfloat32m4_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfwadd_wv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwadd_wv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfwadd_wv_f32m8((vfloat32m8_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfwadd_wv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwadd_wf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfwadd_wf_f32mf2((vfloat32mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwadd_wf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwadd_wf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfwadd_wf_f32m1((vfloat32m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwadd_wf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwadd_wf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfwadd_wf_f32m2((vfloat32m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwadd_wf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwadd_wf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfwadd_wf_f32m4((vfloat32m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwadd_wf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwadd_wf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfwadd_wf_f32m8((vfloat32m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwadd_wf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwsub_wv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfwsub_wv_f32mf2((vfloat32mf2_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfwsub_wv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwsub_wv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfwsub_wv_f32m1((vfloat32m1_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfwsub_wv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwsub_wv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfwsub_wv_f32m2((vfloat32m2_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfwsub_wv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwsub_wv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfwsub_wv_f32m4((vfloat32m4_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfwsub_wv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwsub_wv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfwsub_wv_f32m8((vfloat32m8_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfwsub_wv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwsub_wf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfwsub_wf_f32mf2((vfloat32mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwsub_wf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwsub_wf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfwsub_wf_f32m1((vfloat32m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwsub_wf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwsub_wf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfwsub_wf_f32m2((vfloat32m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwsub_wf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwsub_wf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfwsub_wf_f32m4((vfloat32m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwsub_wf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwsub_wf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfwsub_wf_f32m8((vfloat32m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwsub_wf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwmul_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfwmul_vv_f32mf2((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfwmul_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwmul_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfwmul_vv_f32m1((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfwmul_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwmul_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfwmul_vv_f32m2((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfwmul_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwmul_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfwmul_vv_f32m4((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfwmul_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwmul_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfwmul_vv_f32m8((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfwmul_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwmul_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfwmul_vf_f32mf2((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwmul_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwmul_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfwmul_vf_f32m1((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwmul_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwmul_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfwmul_vf_f32m2((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwmul_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwmul_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfwmul_vf_f32m4((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwmul_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwmul_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfwmul_vf_f32m8((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwmul_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwmacc_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwmacc_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwmacc_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vv_f32m1((vfloat32m1_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwmacc_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwmacc_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vv_f32m2((vfloat32m2_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwmacc_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwmacc_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vv_f32m4((vfloat32m4_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwmacc_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwmacc_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vv_f32m8((vfloat32m8_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfwmacc_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwmacc_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vf_f32mf2((vfloat32mf2_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwmacc_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwmacc_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vf_f32m1((vfloat32m1_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwmacc_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwmacc_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vf_f32m2((vfloat32m2_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwmacc_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwmacc_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vf_f32m4((vfloat32m4_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwmacc_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwmacc_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vf_f32m8((vfloat32m8_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfwmacc_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwnmacc_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwnmacc_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwnmacc_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vv_f32m1((vfloat32m1_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwnmacc_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwnmacc_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vv_f32m2((vfloat32m2_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwnmacc_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwnmacc_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vv_f32m4((vfloat32m4_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwnmacc_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwnmacc_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vv_f32m8((vfloat32m8_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfwnmacc_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwnmacc_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vf_f32mf2((vfloat32mf2_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwnmacc_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwnmacc_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vf_f32m1((vfloat32m1_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwnmacc_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwnmacc_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vf_f32m2((vfloat32m2_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwnmacc_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwnmacc_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vf_f32m4((vfloat32m4_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwnmacc_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwnmacc_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vf_f32m8((vfloat32m8_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfwnmacc_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwmsac_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwmsac_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwmsac_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vv_f32m1((vfloat32m1_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwmsac_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwmsac_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vv_f32m2((vfloat32m2_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwmsac_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwmsac_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vv_f32m4((vfloat32m4_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwmsac_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwmsac_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vv_f32m8((vfloat32m8_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfwmsac_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwmsac_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vf_f32mf2((vfloat32mf2_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwmsac_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwmsac_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vf_f32m1((vfloat32m1_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwmsac_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwmsac_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vf_f32m2((vfloat32m2_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwmsac_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwmsac_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vf_f32m4((vfloat32m4_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwmsac_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwmsac_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vf_f32m8((vfloat32m8_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfwmsac_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwnmsac_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwnmsac_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwnmsac_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vv_f32m1((vfloat32m1_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwnmsac_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwnmsac_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vv_f32m2((vfloat32m2_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwnmsac_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwnmsac_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vv_f32m4((vfloat32m4_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwnmsac_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwnmsac_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vv_f32m8((vfloat32m8_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfwnmsac_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwnmsac_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vf_f32mf2((vfloat32mf2_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwnmsac_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwnmsac_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vf_f32m1((vfloat32m1_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwnmsac_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwnmsac_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vf_f32m2((vfloat32m2_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwnmsac_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwnmsac_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vf_f32m4((vfloat32m4_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwnmsac_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwnmsac_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vf_f32m8((vfloat32m8_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfwnmsac_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwredsum_vs_f16m1_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredsum_vs_f16m1_f32m1((vfloat32m1_t)(op0), (vfloat16m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredsum_vs_f16m1_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredsum_vs_f16m1_f32m1_m((vbool16_t)(op0), (vfloat32m1_t)(op1), (vfloat16m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwredsum_vs_f16m2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredsum_vs_f16m2_f32m1((vfloat32m1_t)(op0), (vfloat16m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredsum_vs_f16m2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredsum_vs_f16m2_f32m1_m((vbool8_t)(op0), (vfloat32m1_t)(op1), (vfloat16m2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwredsum_vs_f16m4_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredsum_vs_f16m4_f32m1((vfloat32m1_t)(op0), (vfloat16m4_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredsum_vs_f16m4_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredsum_vs_f16m4_f32m1_m((vbool4_t)(op0), (vfloat32m1_t)(op1), (vfloat16m4_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwredsum_vs_f16m8_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredsum_vs_f16m8_f32m1((vfloat32m1_t)(op0), (vfloat16m8_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredsum_vs_f16m8_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredsum_vs_f16m8_f32m1_m((vbool2_t)(op0), (vfloat32m1_t)(op1), (vfloat16m8_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwredsum_vs_f16mf2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredsum_vs_f16mf2_f32m1((vfloat32m1_t)(op0), (vfloat16mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredsum_vs_f16mf2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredsum_vs_f16mf2_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwredsum_vs_f16mf4_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredsum_vs_f16mf4_f32m1((vfloat32m1_t)(op0), (vfloat16mf4_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredsum_vs_f16mf4_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredsum_vs_f16mf4_f32m1_m((vbool64_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwredosum_vs_f16m1_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredosum_vs_f16m1_f32m1((vfloat32m1_t)(op0), (vfloat16m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredosum_vs_f16m1_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredosum_vs_f16m1_f32m1_m((vbool16_t)(op0), (vfloat32m1_t)(op1), (vfloat16m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwredosum_vs_f16m2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredosum_vs_f16m2_f32m1((vfloat32m1_t)(op0), (vfloat16m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredosum_vs_f16m2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredosum_vs_f16m2_f32m1_m((vbool8_t)(op0), (vfloat32m1_t)(op1), (vfloat16m2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwredosum_vs_f16m4_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredosum_vs_f16m4_f32m1((vfloat32m1_t)(op0), (vfloat16m4_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredosum_vs_f16m4_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredosum_vs_f16m4_f32m1_m((vbool4_t)(op0), (vfloat32m1_t)(op1), (vfloat16m4_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwredosum_vs_f16m8_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredosum_vs_f16m8_f32m1((vfloat32m1_t)(op0), (vfloat16m8_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredosum_vs_f16m8_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredosum_vs_f16m8_f32m1_m((vbool2_t)(op0), (vfloat32m1_t)(op1), (vfloat16m8_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwredosum_vs_f16mf2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredosum_vs_f16mf2_f32m1((vfloat32m1_t)(op0), (vfloat16mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredosum_vs_f16mf2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredosum_vs_f16mf2_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwredosum_vs_f16mf4_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredosum_vs_f16mf4_f32m1((vfloat32m1_t)(op0), (vfloat16mf4_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredosum_vs_f16mf4_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredosum_vs_f16mf4_f32m1_m((vbool64_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfncvt_f_f_w_f16mf4(op0, op1) \
-__builtin_rvv_vfncvt_f_f_w_f16mf4((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfncvt_f_f_w_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_f_w_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfncvt_f_f_w_f16mf2(op0, op1) \
-__builtin_rvv_vfncvt_f_f_w_f16mf2((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfncvt_f_f_w_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_f_w_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfncvt_f_f_w_f16m1(op0, op1) \
-__builtin_rvv_vfncvt_f_f_w_f16m1((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfncvt_f_f_w_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_f_w_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfncvt_f_f_w_f16m2(op0, op1) \
-__builtin_rvv_vfncvt_f_f_w_f16m2((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfncvt_f_f_w_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_f_w_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfncvt_f_f_w_f16m4(op0, op1) \
-__builtin_rvv_vfncvt_f_f_w_f16m4((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfncvt_f_f_w_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_f_w_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfncvt_rod_f_f_w_f16mf4(op0, op1) \
-__builtin_rvv_vfncvt_rod_f_f_w_f16mf4((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfncvt_rod_f_f_w_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rod_f_f_w_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfncvt_rod_f_f_w_f16mf2(op0, op1) \
-__builtin_rvv_vfncvt_rod_f_f_w_f16mf2((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfncvt_rod_f_f_w_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rod_f_f_w_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfncvt_rod_f_f_w_f16m1(op0, op1) \
-__builtin_rvv_vfncvt_rod_f_f_w_f16m1((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfncvt_rod_f_f_w_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rod_f_f_w_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfncvt_rod_f_f_w_f16m2(op0, op1) \
-__builtin_rvv_vfncvt_rod_f_f_w_f16m2((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfncvt_rod_f_f_w_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rod_f_f_w_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfncvt_rod_f_f_w_f16m4(op0, op1) \
-__builtin_rvv_vfncvt_rod_f_f_w_f16m4((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfncvt_rod_f_f_w_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rod_f_f_w_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfwcvt_f_f_v_f32mf2(op0, op1) \
-__builtin_rvv_vfwcvt_f_f_v_f32mf2((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_f_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_f_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwcvt_f_f_v_f32m1(op0, op1) \
-__builtin_rvv_vfwcvt_f_f_v_f32m1((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_f_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_f_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_f_v_f32m2(op0, op1) \
-__builtin_rvv_vfwcvt_f_f_v_f32m2((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfwcvt_f_f_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_f_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwcvt_f_f_v_f32m4(op0, op1) \
-__builtin_rvv_vfwcvt_f_f_v_f32m4((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_f_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_f_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_f_v_f32m8(op0, op1) \
-__builtin_rvv_vfwcvt_f_f_v_f32m8((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_f_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_f_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#endif
-
-#if defined(__riscv_zvamo)
-#define vamoswapei16_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_i32m4((int32_t *)(op0), (vuint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint16m2_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_i32m8((int32_t *)(op0), (vuint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint16m4_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_u32m4((uint32_t *)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint16m2_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_u32m8((uint32_t *)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint16m4_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_i32m4((int32_t *)(op0), (vuint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_i32m8((int32_t *)(op0), (vuint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_u32m8((uint32_t *)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_i32m4((int32_t *)(op0), (vuint64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint64m8_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_u32m4((uint32_t *)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_i64m4((int64_t *)(op0), (vuint8mf2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint8mf2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_i64m8((int64_t *)(op0), (vuint8m1_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint8m1_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_u64m4((uint64_t *)(op0), (vuint8mf2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint8mf2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_u64m8((uint64_t *)(op0), (vuint8m1_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint8m1_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_i64m4((int64_t *)(op0), (vuint16m1_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint16m1_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_i64m8((int64_t *)(op0), (vuint16m2_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint16m2_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_u64m4((uint64_t *)(op0), (vuint16m1_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint16m1_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_u64m8((uint64_t *)(op0), (vuint16m2_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint16m2_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_i64m4((int64_t *)(op0), (vuint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint32m2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_i64m8((int64_t *)(op0), (vuint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint32m4_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_u64m4((uint64_t *)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint32m2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_u64m8((uint64_t *)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint32m4_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_i64m4((int64_t *)(op0), (vuint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_i64m8((int64_t *)(op0), (vuint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_u64m8((uint64_t *)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_i32m4((int32_t *)(op0), (vuint8m1_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint8m1_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_i32m8((int32_t *)(op0), (vuint8m2_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint8m2_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_u32m4((uint32_t *)(op0), (vuint8m1_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint8m1_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_u32m8((uint32_t *)(op0), (vuint8m2_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint8m2_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_i32m4((int32_t *)(op0), (vuint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint16m2_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_i32m8((int32_t *)(op0), (vuint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint16m4_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_u32m4((uint32_t *)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint16m2_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_u32m8((uint32_t *)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint16m4_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_i32m4((int32_t *)(op0), (vuint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_i32m8((int32_t *)(op0), (vuint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_u32m8((uint32_t *)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_i32m4((int32_t *)(op0), (vuint64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint64m8_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_u32m4((uint32_t *)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_i64m4((int64_t *)(op0), (vuint8mf2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint8mf2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_i64m8((int64_t *)(op0), (vuint8m1_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint8m1_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_u64m4((uint64_t *)(op0), (vuint8mf2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint8mf2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_u64m8((uint64_t *)(op0), (vuint8m1_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint8m1_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_i64m4((int64_t *)(op0), (vuint16m1_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint16m1_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_i64m8((int64_t *)(op0), (vuint16m2_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint16m2_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_u64m4((uint64_t *)(op0), (vuint16m1_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint16m1_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_u64m8((uint64_t *)(op0), (vuint16m2_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint16m2_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_i64m4((int64_t *)(op0), (vuint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint32m2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_i64m8((int64_t *)(op0), (vuint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint32m4_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_u64m4((uint64_t *)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint32m2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_u64m8((uint64_t *)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint32m4_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_i64m4((int64_t *)(op0), (vuint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_i64m8((int64_t *)(op0), (vuint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_u64m8((uint64_t *)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_i32m4((int32_t *)(op0), (vuint8m1_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint8m1_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_i32m8((int32_t *)(op0), (vuint8m2_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint8m2_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_u32m4((uint32_t *)(op0), (vuint8m1_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint8m1_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_u32m8((uint32_t *)(op0), (vuint8m2_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint8m2_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_i32m4((int32_t *)(op0), (vuint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint16m2_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_i32m8((int32_t *)(op0), (vuint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint16m4_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_u32m4((uint32_t *)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint16m2_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_u32m8((uint32_t *)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint16m4_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_i32m4((int32_t *)(op0), (vuint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_i32m8((int32_t *)(op0), (vuint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_u32m8((uint32_t *)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_i32m4((int32_t *)(op0), (vuint64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint64m8_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_u32m4((uint32_t *)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_i64m4((int64_t *)(op0), (vuint8mf2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint8mf2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_i64m8((int64_t *)(op0), (vuint8m1_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint8m1_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_u64m4((uint64_t *)(op0), (vuint8mf2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint8mf2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_u64m8((uint64_t *)(op0), (vuint8m1_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint8m1_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_i64m4((int64_t *)(op0), (vuint16m1_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint16m1_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_i64m8((int64_t *)(op0), (vuint16m2_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint16m2_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_u64m4((uint64_t *)(op0), (vuint16m1_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint16m1_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_u64m8((uint64_t *)(op0), (vuint16m2_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint16m2_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_i64m4((int64_t *)(op0), (vuint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint32m2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_i64m8((int64_t *)(op0), (vuint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint32m4_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_u64m4((uint64_t *)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint32m2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_u64m8((uint64_t *)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint32m4_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_i64m4((int64_t *)(op0), (vuint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_i64m8((int64_t *)(op0), (vuint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_u64m8((uint64_t *)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoandei8_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoandei8_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoandei8_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoandei8_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoandei8_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_i32m4((int32_t *)(op0), (vuint8m1_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoandei8_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint8m1_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoandei8_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_i32m8((int32_t *)(op0), (vuint8m2_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoandei8_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint8m2_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoandei8_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoandei8_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoandei8_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoandei8_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoandei8_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoandei8_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoandei8_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_u32m4((uint32_t *)(op0), (vuint8m1_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoandei8_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint8m1_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoandei8_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_u32m8((uint32_t *)(op0), (vuint8m2_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoandei8_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint8m2_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoandei8_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoandei8_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoandei16_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoandei16_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoandei16_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoandei16_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoandei16_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_i32m4((int32_t *)(op0), (vuint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoandei16_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint16m2_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoandei16_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_i32m8((int32_t *)(op0), (vuint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoandei16_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint16m4_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoandei16_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoandei16_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoandei16_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoandei16_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoandei16_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoandei16_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoandei16_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_u32m4((uint32_t *)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoandei16_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint16m2_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoandei16_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_u32m8((uint32_t *)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoandei16_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint16m4_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoandei16_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoandei16_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoandei32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoandei32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoandei32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoandei32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoandei32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_i32m4((int32_t *)(op0), (vuint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoandei32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoandei32_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_i32m8((int32_t *)(op0), (vuint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoandei32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoandei32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoandei32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoandei32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoandei32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoandei32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoandei32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoandei32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoandei32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoandei32_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_u32m8((uint32_t *)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoandei32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoandei32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoandei32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoandei64_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoandei64_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoandei64_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoandei64_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoandei64_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_i32m4((int32_t *)(op0), (vuint64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoandei64_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint64m8_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoandei64_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoandei64_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoandei64_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoandei64_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoandei64_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoandei64_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoandei64_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_u32m4((uint32_t *)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoandei64_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoandei64_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoandei64_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoandei8_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoandei8_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoandei8_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoandei8_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoandei8_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_i64m4((int64_t *)(op0), (vuint8mf2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoandei8_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint8mf2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoandei8_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_i64m8((int64_t *)(op0), (vuint8m1_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoandei8_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint8m1_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoandei8_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoandei8_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoandei8_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoandei8_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoandei8_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_u64m4((uint64_t *)(op0), (vuint8mf2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoandei8_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint8mf2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoandei8_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_u64m8((uint64_t *)(op0), (vuint8m1_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoandei8_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint8m1_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoandei16_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoandei16_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoandei16_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoandei16_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoandei16_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_i64m4((int64_t *)(op0), (vuint16m1_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoandei16_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint16m1_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoandei16_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_i64m8((int64_t *)(op0), (vuint16m2_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoandei16_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint16m2_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoandei16_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoandei16_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoandei16_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoandei16_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoandei16_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_u64m4((uint64_t *)(op0), (vuint16m1_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoandei16_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint16m1_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoandei16_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_u64m8((uint64_t *)(op0), (vuint16m2_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoandei16_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint16m2_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoandei32_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoandei32_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoandei32_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoandei32_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoandei32_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_i64m4((int64_t *)(op0), (vuint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoandei32_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint32m2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoandei32_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_i64m8((int64_t *)(op0), (vuint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoandei32_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint32m4_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoandei32_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoandei32_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoandei32_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoandei32_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoandei32_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_u64m4((uint64_t *)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoandei32_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint32m2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoandei32_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_u64m8((uint64_t *)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoandei32_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint32m4_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoandei64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoandei64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoandei64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoandei64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoandei64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_i64m4((int64_t *)(op0), (vuint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoandei64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoandei64_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_i64m8((int64_t *)(op0), (vuint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoandei64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoandei64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoandei64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoandei64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoandei64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoandei64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoandei64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoandei64_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_u64m8((uint64_t *)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoandei64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoorei8_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoorei8_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoorei8_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoorei8_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoorei8_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_i32m4((int32_t *)(op0), (vuint8m1_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoorei8_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint8m1_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoorei8_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_i32m8((int32_t *)(op0), (vuint8m2_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoorei8_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint8m2_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoorei8_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoorei8_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoorei8_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoorei8_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoorei8_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoorei8_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoorei8_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_u32m4((uint32_t *)(op0), (vuint8m1_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoorei8_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint8m1_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoorei8_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_u32m8((uint32_t *)(op0), (vuint8m2_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoorei8_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint8m2_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoorei8_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoorei8_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoorei16_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoorei16_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoorei16_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoorei16_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoorei16_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_i32m4((int32_t *)(op0), (vuint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoorei16_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint16m2_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoorei16_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_i32m8((int32_t *)(op0), (vuint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoorei16_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint16m4_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoorei16_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoorei16_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoorei16_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoorei16_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoorei16_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoorei16_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoorei16_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_u32m4((uint32_t *)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoorei16_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint16m2_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoorei16_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_u32m8((uint32_t *)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoorei16_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint16m4_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoorei16_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoorei16_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoorei32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoorei32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoorei32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoorei32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoorei32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_i32m4((int32_t *)(op0), (vuint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoorei32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoorei32_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_i32m8((int32_t *)(op0), (vuint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoorei32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoorei32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoorei32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoorei32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoorei32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoorei32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoorei32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoorei32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoorei32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoorei32_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_u32m8((uint32_t *)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoorei32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoorei32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoorei32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoorei64_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoorei64_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoorei64_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoorei64_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoorei64_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_i32m4((int32_t *)(op0), (vuint64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoorei64_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint64m8_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoorei64_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoorei64_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoorei64_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoorei64_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoorei64_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoorei64_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoorei64_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_u32m4((uint32_t *)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoorei64_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoorei64_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoorei64_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoorei8_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoorei8_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoorei8_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoorei8_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoorei8_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_i64m4((int64_t *)(op0), (vuint8mf2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoorei8_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint8mf2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoorei8_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_i64m8((int64_t *)(op0), (vuint8m1_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoorei8_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint8m1_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoorei8_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoorei8_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoorei8_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoorei8_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoorei8_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_u64m4((uint64_t *)(op0), (vuint8mf2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoorei8_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint8mf2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoorei8_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_u64m8((uint64_t *)(op0), (vuint8m1_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoorei8_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint8m1_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoorei16_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoorei16_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoorei16_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoorei16_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoorei16_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_i64m4((int64_t *)(op0), (vuint16m1_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoorei16_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint16m1_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoorei16_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_i64m8((int64_t *)(op0), (vuint16m2_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoorei16_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint16m2_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoorei16_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoorei16_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoorei16_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoorei16_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoorei16_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_u64m4((uint64_t *)(op0), (vuint16m1_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoorei16_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint16m1_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoorei16_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_u64m8((uint64_t *)(op0), (vuint16m2_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoorei16_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint16m2_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoorei32_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoorei32_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoorei32_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoorei32_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoorei32_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_i64m4((int64_t *)(op0), (vuint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoorei32_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint32m2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoorei32_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_i64m8((int64_t *)(op0), (vuint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoorei32_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint32m4_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoorei32_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoorei32_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoorei32_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoorei32_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoorei32_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_u64m4((uint64_t *)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoorei32_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint32m2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoorei32_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_u64m8((uint64_t *)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoorei32_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint32m4_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoorei64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoorei64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoorei64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoorei64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoorei64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_i64m4((int64_t *)(op0), (vuint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoorei64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoorei64_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_i64m8((int64_t *)(op0), (vuint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoorei64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoorei64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoorei64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoorei64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoorei64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoorei64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoorei64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoorei64_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_u64m8((uint64_t *)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoorei64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamominei8_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamominei8_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamominei8_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamominei8_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamominei8_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominei8_v_i32m4((int32_t *)(op0), (vuint8m1_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamominei8_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei8_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint8m1_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamominei8_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominei8_v_i32m8((int32_t *)(op0), (vuint8m2_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamominei8_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei8_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint8m2_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamominei8_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamominei8_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamominei16_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamominei16_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamominei16_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamominei16_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamominei16_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominei16_v_i32m4((int32_t *)(op0), (vuint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamominei16_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei16_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint16m2_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamominei16_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominei16_v_i32m8((int32_t *)(op0), (vuint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamominei16_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei16_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint16m4_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamominei16_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamominei16_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamominei32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamominei32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamominei32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamominei32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamominei32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominei32_v_i32m4((int32_t *)(op0), (vuint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamominei32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamominei32_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominei32_v_i32m8((int32_t *)(op0), (vuint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamominei32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei32_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamominei32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamominei32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamominei64_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamominei64_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamominei64_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamominei64_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamominei64_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominei64_v_i32m4((int32_t *)(op0), (vuint64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamominei64_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei64_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint64m8_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamominei64_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamominei64_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamominei8_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamominei8_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamominei8_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamominei8_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamominei8_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominei8_v_i64m4((int64_t *)(op0), (vuint8mf2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamominei8_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei8_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint8mf2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamominei8_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominei8_v_i64m8((int64_t *)(op0), (vuint8m1_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamominei8_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei8_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint8m1_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamominei16_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamominei16_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamominei16_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamominei16_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamominei16_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominei16_v_i64m4((int64_t *)(op0), (vuint16m1_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamominei16_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei16_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint16m1_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamominei16_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominei16_v_i64m8((int64_t *)(op0), (vuint16m2_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamominei16_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei16_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint16m2_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamominei32_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamominei32_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamominei32_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamominei32_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamominei32_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominei32_v_i64m4((int64_t *)(op0), (vuint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamominei32_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei32_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint32m2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamominei32_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominei32_v_i64m8((int64_t *)(op0), (vuint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamominei32_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei32_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint32m4_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamominei64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamominei64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamominei64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamominei64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamominei64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominei64_v_i64m4((int64_t *)(op0), (vuint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamominei64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamominei64_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominei64_v_i64m8((int64_t *)(op0), (vuint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamominei64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei64_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamomaxei8_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamomaxei8_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamomaxei8_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamomaxei8_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamomaxei8_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei8_v_i32m4((int32_t *)(op0), (vuint8m1_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamomaxei8_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei8_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint8m1_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamomaxei8_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei8_v_i32m8((int32_t *)(op0), (vuint8m2_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamomaxei8_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei8_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint8m2_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamomaxei8_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamomaxei8_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamomaxei16_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamomaxei16_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamomaxei16_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamomaxei16_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamomaxei16_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei16_v_i32m4((int32_t *)(op0), (vuint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamomaxei16_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei16_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint16m2_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamomaxei16_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei16_v_i32m8((int32_t *)(op0), (vuint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamomaxei16_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei16_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint16m4_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamomaxei16_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamomaxei16_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamomaxei32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamomaxei32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamomaxei32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamomaxei32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamomaxei32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei32_v_i32m4((int32_t *)(op0), (vuint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamomaxei32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamomaxei32_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei32_v_i32m8((int32_t *)(op0), (vuint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamomaxei32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei32_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamomaxei32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamomaxei32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamomaxei64_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamomaxei64_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamomaxei64_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamomaxei64_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamomaxei64_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei64_v_i32m4((int32_t *)(op0), (vuint64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamomaxei64_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei64_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint64m8_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamomaxei64_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamomaxei64_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamomaxei8_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamomaxei8_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamomaxei8_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamomaxei8_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamomaxei8_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei8_v_i64m4((int64_t *)(op0), (vuint8mf2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamomaxei8_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei8_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint8mf2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamomaxei8_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei8_v_i64m8((int64_t *)(op0), (vuint8m1_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamomaxei8_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei8_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint8m1_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamomaxei16_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamomaxei16_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamomaxei16_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamomaxei16_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamomaxei16_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei16_v_i64m4((int64_t *)(op0), (vuint16m1_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamomaxei16_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei16_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint16m1_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamomaxei16_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei16_v_i64m8((int64_t *)(op0), (vuint16m2_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamomaxei16_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei16_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint16m2_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamomaxei32_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamomaxei32_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamomaxei32_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamomaxei32_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamomaxei32_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei32_v_i64m4((int64_t *)(op0), (vuint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamomaxei32_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei32_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint32m2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamomaxei32_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei32_v_i64m8((int64_t *)(op0), (vuint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamomaxei32_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei32_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint32m4_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamomaxei64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamomaxei64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamomaxei64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamomaxei64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamomaxei64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei64_v_i64m4((int64_t *)(op0), (vuint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamomaxei64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamomaxei64_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei64_v_i64m8((int64_t *)(op0), (vuint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamomaxei64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei64_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamominuei8_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamominuei8_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamominuei8_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamominuei8_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamominuei8_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei8_v_u32m4((uint32_t *)(op0), (vuint8m1_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamominuei8_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei8_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint8m1_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamominuei8_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei8_v_u32m8((uint32_t *)(op0), (vuint8m2_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamominuei8_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei8_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint8m2_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamominuei8_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamominuei8_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamominuei16_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamominuei16_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamominuei16_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamominuei16_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamominuei16_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei16_v_u32m4((uint32_t *)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamominuei16_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei16_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint16m2_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamominuei16_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei16_v_u32m8((uint32_t *)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamominuei16_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei16_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint16m4_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamominuei16_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamominuei16_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamominuei32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamominuei32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamominuei32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamominuei32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamominuei32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamominuei32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamominuei32_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei32_v_u32m8((uint32_t *)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamominuei32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei32_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamominuei32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamominuei32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamominuei64_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamominuei64_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamominuei64_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamominuei64_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamominuei64_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei64_v_u32m4((uint32_t *)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamominuei64_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei64_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamominuei64_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamominuei64_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamominuei8_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamominuei8_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamominuei8_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamominuei8_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamominuei8_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei8_v_u64m4((uint64_t *)(op0), (vuint8mf2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamominuei8_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei8_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint8mf2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamominuei8_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei8_v_u64m8((uint64_t *)(op0), (vuint8m1_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamominuei8_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei8_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint8m1_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamominuei16_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamominuei16_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamominuei16_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamominuei16_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamominuei16_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei16_v_u64m4((uint64_t *)(op0), (vuint16m1_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamominuei16_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei16_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint16m1_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamominuei16_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei16_v_u64m8((uint64_t *)(op0), (vuint16m2_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamominuei16_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei16_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint16m2_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamominuei32_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamominuei32_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamominuei32_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamominuei32_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamominuei32_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei32_v_u64m4((uint64_t *)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamominuei32_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei32_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint32m2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamominuei32_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei32_v_u64m8((uint64_t *)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamominuei32_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei32_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint32m4_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamominuei64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamominuei64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamominuei64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamominuei64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamominuei64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamominuei64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamominuei64_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei64_v_u64m8((uint64_t *)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamominuei64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei64_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamomaxuei8_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamomaxuei8_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamomaxuei8_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamomaxuei8_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamomaxuei8_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei8_v_u32m4((uint32_t *)(op0), (vuint8m1_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamomaxuei8_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei8_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint8m1_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamomaxuei8_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei8_v_u32m8((uint32_t *)(op0), (vuint8m2_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamomaxuei8_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei8_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint8m2_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamomaxuei8_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamomaxuei8_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamomaxuei16_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamomaxuei16_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamomaxuei16_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamomaxuei16_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamomaxuei16_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei16_v_u32m4((uint32_t *)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamomaxuei16_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei16_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint16m2_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamomaxuei16_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei16_v_u32m8((uint32_t *)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamomaxuei16_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei16_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint16m4_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamomaxuei16_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamomaxuei16_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamomaxuei32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamomaxuei32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamomaxuei32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamomaxuei32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamomaxuei32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamomaxuei32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamomaxuei32_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei32_v_u32m8((uint32_t *)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamomaxuei32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei32_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamomaxuei32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamomaxuei32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamomaxuei64_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamomaxuei64_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamomaxuei64_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamomaxuei64_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamomaxuei64_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei64_v_u32m4((uint32_t *)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamomaxuei64_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei64_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamomaxuei64_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamomaxuei64_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamomaxuei8_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamomaxuei8_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamomaxuei8_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamomaxuei8_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamomaxuei8_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei8_v_u64m4((uint64_t *)(op0), (vuint8mf2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamomaxuei8_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei8_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint8mf2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamomaxuei8_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei8_v_u64m8((uint64_t *)(op0), (vuint8m1_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamomaxuei8_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei8_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint8m1_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamomaxuei16_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamomaxuei16_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamomaxuei16_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamomaxuei16_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamomaxuei16_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei16_v_u64m4((uint64_t *)(op0), (vuint16m1_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamomaxuei16_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei16_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint16m1_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamomaxuei16_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei16_v_u64m8((uint64_t *)(op0), (vuint16m2_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamomaxuei16_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei16_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint16m2_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamomaxuei32_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamomaxuei32_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamomaxuei32_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamomaxuei32_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamomaxuei32_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei32_v_u64m4((uint64_t *)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamomaxuei32_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei32_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint32m2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamomaxuei32_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei32_v_u64m8((uint64_t *)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamomaxuei32_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei32_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint32m4_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamomaxuei64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamomaxuei64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamomaxuei64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamomaxuei64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamomaxuei64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamomaxuei64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamomaxuei64_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei64_v_u64m8((uint64_t *)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamomaxuei64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei64_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_i32m4((int32_t *)(op0), (vuint8m1_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint8m1_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_i32m8((int32_t *)(op0), (vuint8m2_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint8m2_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_u32m4((uint32_t *)(op0), (vuint8m1_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint8m1_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_u32m8((uint32_t *)(op0), (vuint8m2_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint8m2_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#endif
-
-#if defined(__riscv_f) && defined(__riscv_zvamo)
-#define vamoswapei8_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_f32m2((float *)(op0), (vuint8mf2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint8mf2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_f32m4((float *)(op0), (vuint8m1_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint8m1_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_f32m8((float *)(op0), (vuint8m2_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_f32m8_m((vbool4_t)(op0), (float *)(op1), (vuint8m2_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_f32m2((float *)(op0), (vuint16m1_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint16m1_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_f32m4((float *)(op0), (vuint16m2_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint16m2_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_f32m8((float *)(op0), (vuint16m4_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_f32m8_m((vbool4_t)(op0), (float *)(op1), (vuint16m4_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_f32m2((float *)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_f32m4((float *)(op0), (vuint32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_f32m8((float *)(op0), (vuint32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_f32m8_m((vbool4_t)(op0), (float *)(op1), (vuint32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_f32m2((float *)(op0), (vuint64m4_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint64m4_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_f32m4((float *)(op0), (vuint64m8_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint64m8_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#endif
-
-#if defined(__riscv_d) && defined(__riscv_zvamo)
-#define vamoswapei8_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_f64m2((double *)(op0), (vuint8mf4_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint8mf4_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_f64m4((double *)(op0), (vuint8mf2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint8mf2_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_f64m8((double *)(op0), (vuint8m1_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint8m1_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_f64m2((double *)(op0), (vuint16mf2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint16mf2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_f64m4((double *)(op0), (vuint16m1_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint16m1_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_f64m8((double *)(op0), (vuint16m2_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint16m2_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_f64m2((double *)(op0), (vuint32m1_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint32m1_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_f64m4((double *)(op0), (vuint32m2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint32m2_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_f64m8((double *)(op0), (vuint32m4_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint32m4_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_f64m2((double *)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_f64m4((double *)(op0), (vuint64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_f64m8((double *)(op0), (vuint64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#endif
-
-#if defined(__riscv_zvlsseg)
-#define vloxseg2ei8_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (const int64_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vbool64_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (const int64_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (const int64_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vbool32_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (const int64_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i64m4((vint64m4_t *)(op0), (vint64m4_t *)(op1), (const int64_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i64m4_m((vint64m4_t *)(op0), (vint64m4_t *)(op1), (vbool16_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (const int64_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (const uint64_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vbool64_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (const uint64_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (const uint64_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vbool32_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (const uint64_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u64m4((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (const uint64_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u64m4_m((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (vbool16_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (const uint64_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg3ei8_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (const int64_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vbool64_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (const int64_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (const int64_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vbool32_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (const int64_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (const uint64_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vbool64_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (const uint64_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (const uint64_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vbool32_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (const uint64_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg4ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (const int64_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vbool64_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (const int64_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (const int64_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (vbool32_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (vint64m2_t)(op7), (vint64m2_t)(op8), (const int64_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (const uint64_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vbool64_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (const uint64_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (const uint64_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (vbool32_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (vuint64m2_t)(op7), (vuint64m2_t)(op8), (const uint64_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vloxseg5ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (const int64_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vbool64_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (const int64_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (const uint64_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vbool64_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (const uint64_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vloxseg6ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (const int64_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vbool64_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (const int64_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (const uint64_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vbool64_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (const uint64_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vloxseg7ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (const int64_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vbool64_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (const int64_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (const uint64_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vbool64_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (const uint64_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vloxseg8ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (const int64_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (vbool64_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (vint64m1_t)(op15), (vint64m1_t)(op16), (const int64_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (const uint64_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (vbool64_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (vuint64m1_t)(op15), (vuint64m1_t)(op16), (const uint64_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vloxseg2ei16_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (const int64_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vbool64_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (const int64_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (const int64_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vbool32_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (const int64_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i64m4((vint64m4_t *)(op0), (vint64m4_t *)(op1), (const int64_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i64m4_m((vint64m4_t *)(op0), (vint64m4_t *)(op1), (vbool16_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (const int64_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (const uint64_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vbool64_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (const uint64_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (const uint64_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vbool32_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (const uint64_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u64m4((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (const uint64_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u64m4_m((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (vbool16_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (const uint64_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg3ei16_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (const int64_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vbool64_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (const int64_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (const int64_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vbool32_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (const int64_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (const uint64_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vbool64_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (const uint64_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (const uint64_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vbool32_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (const uint64_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg4ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (const int64_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vbool64_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (const int64_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (const int64_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (vbool32_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (vint64m2_t)(op7), (vint64m2_t)(op8), (const int64_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (const uint64_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vbool64_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (const uint64_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (const uint64_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (vbool32_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (vuint64m2_t)(op7), (vuint64m2_t)(op8), (const uint64_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vloxseg5ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (const int64_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vbool64_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (const int64_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (const uint64_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vbool64_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (const uint64_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vloxseg6ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (const int64_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vbool64_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (const int64_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (const uint64_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vbool64_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (const uint64_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vloxseg7ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (const int64_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vbool64_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (const int64_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (const uint64_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vbool64_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (const uint64_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vloxseg8ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (const int64_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (vbool64_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (vint64m1_t)(op15), (vint64m1_t)(op16), (const int64_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (const uint64_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (vbool64_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (vuint64m1_t)(op15), (vuint64m1_t)(op16), (const uint64_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vloxseg2ei32_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (const int64_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vbool64_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (const int64_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (const int64_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vbool32_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (const int64_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i64m4((vint64m4_t *)(op0), (vint64m4_t *)(op1), (const int64_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i64m4_m((vint64m4_t *)(op0), (vint64m4_t *)(op1), (vbool16_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (const int64_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (const uint64_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vbool64_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (const uint64_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (const uint64_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vbool32_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (const uint64_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u64m4((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (const uint64_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u64m4_m((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (vbool16_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (const uint64_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg3ei32_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (const int64_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vbool64_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (const int64_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (const int64_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vbool32_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (const int64_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (const uint64_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vbool64_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (const uint64_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (const uint64_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vbool32_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (const uint64_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg4ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (const int64_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vbool64_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (const int64_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (const int64_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (vbool32_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (vint64m2_t)(op7), (vint64m2_t)(op8), (const int64_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (const uint64_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vbool64_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (const uint64_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (const uint64_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (vbool32_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (vuint64m2_t)(op7), (vuint64m2_t)(op8), (const uint64_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vloxseg5ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (const int64_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vbool64_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (const int64_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (const uint64_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vbool64_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (const uint64_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vloxseg6ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (const int64_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vbool64_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (const int64_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (const uint64_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vbool64_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (const uint64_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vloxseg7ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (const int64_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vbool64_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (const int64_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (const uint64_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vbool64_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (const uint64_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vloxseg8ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (const int64_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (vbool64_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (vint64m1_t)(op15), (vint64m1_t)(op16), (const int64_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (const uint64_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (vbool64_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (vuint64m1_t)(op15), (vuint64m1_t)(op16), (const uint64_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vloxseg2ei64_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (const int64_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vbool64_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (const int64_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (const int64_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vbool32_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (const int64_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i64m4((vint64m4_t *)(op0), (vint64m4_t *)(op1), (const int64_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i64m4_m((vint64m4_t *)(op0), (vint64m4_t *)(op1), (vbool16_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (const int64_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (const uint64_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vbool64_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (const uint64_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (const uint64_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vbool32_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (const uint64_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u64m4((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (const uint64_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u64m4_m((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (vbool16_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (const uint64_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg3ei64_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (const int64_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vbool64_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (const int64_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (const int64_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vbool32_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (const int64_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (const uint64_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vbool64_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (const uint64_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (const uint64_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vbool32_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (const uint64_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg4ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (const int64_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vbool64_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (const int64_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (const int64_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (vbool32_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (vint64m2_t)(op7), (vint64m2_t)(op8), (const int64_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (const uint64_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vbool64_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (const uint64_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (const uint64_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (vbool32_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (vuint64m2_t)(op7), (vuint64m2_t)(op8), (const uint64_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vloxseg5ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (const int64_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vbool64_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (const int64_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (const uint64_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vbool64_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (const uint64_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vloxseg6ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (const int64_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vbool64_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (const int64_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (const uint64_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vbool64_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (const uint64_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vloxseg7ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (const int64_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vbool64_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (const int64_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (const uint64_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vbool64_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (const uint64_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vloxseg8ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (const int64_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (vbool64_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (vint64m1_t)(op15), (vint64m1_t)(op16), (const int64_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (const uint64_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (vbool64_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (vuint64m1_t)(op15), (vuint64m1_t)(op16), (const uint64_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vsseg3e8_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e8_v_i8m1((int8_t *)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsseg3e8_v_i8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsseg3e8_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e8_v_i8m2((int8_t *)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsseg3e8_v_i8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsseg3e8_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e8_v_i8mf2((int8_t *)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsseg3e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsseg3e8_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e8_v_i8mf4((int8_t *)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsseg3e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsseg3e8_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e8_v_i8mf8((int8_t *)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsseg3e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsseg3e8_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsseg3e8_v_u8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsseg3e8_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsseg3e8_v_u8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsseg3e8_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsseg3e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsseg3e8_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsseg3e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsseg3e8_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsseg3e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsseg4e8_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e8_v_i8m1((int8_t *)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsseg4e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsseg4e8_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e8_v_i8m2((int8_t *)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsseg4e8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsseg4e8_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e8_v_i8mf2((int8_t *)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsseg4e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsseg4e8_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e8_v_i8mf4((int8_t *)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsseg4e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsseg4e8_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e8_v_i8mf8((int8_t *)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsseg4e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsseg4e8_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsseg4e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsseg4e8_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsseg4e8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsseg4e8_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsseg4e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsseg4e8_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsseg4e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsseg4e8_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsseg4e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsseg5e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e8_v_i8m1((int8_t *)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsseg5e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsseg5e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e8_v_i8mf2((int8_t *)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsseg5e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsseg5e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e8_v_i8mf4((int8_t *)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsseg5e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsseg5e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e8_v_i8mf8((int8_t *)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsseg5e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsseg5e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsseg5e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsseg5e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsseg5e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsseg5e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsseg5e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsseg5e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsseg5e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsseg6e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e8_v_i8m1((int8_t *)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsseg6e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsseg6e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e8_v_i8mf2((int8_t *)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsseg6e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsseg6e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e8_v_i8mf4((int8_t *)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsseg6e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsseg6e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e8_v_i8mf8((int8_t *)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsseg6e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsseg6e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsseg6e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsseg6e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsseg6e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsseg6e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsseg6e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsseg6e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsseg6e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsseg7e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e8_v_i8m1((int8_t *)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsseg7e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsseg7e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e8_v_i8mf2((int8_t *)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsseg7e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsseg7e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e8_v_i8mf4((int8_t *)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsseg7e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsseg7e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e8_v_i8mf8((int8_t *)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsseg7e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsseg7e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsseg7e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsseg7e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsseg7e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsseg7e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsseg7e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsseg7e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsseg7e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsseg8e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e8_v_i8m1((int8_t *)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsseg8e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsseg8e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e8_v_i8mf2((int8_t *)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsseg8e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsseg8e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e8_v_i8mf4((int8_t *)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsseg8e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsseg8e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e8_v_i8mf8((int8_t *)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsseg8e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsseg8e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsseg8e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsseg8e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsseg8e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsseg8e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsseg8e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsseg8e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsseg8e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsseg2e16_v_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_i16m1((int16_t *)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_i16m2((int16_t *)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_i16m4((int16_t *)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_i16mf2((int16_t *)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_i16mf4((int16_t *)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_u16m4((uint16_t *)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_i16m1((int16_t *)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_i16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsseg3e16_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_i16m2((int16_t *)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_i16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsseg3e16_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_i16mf2((int16_t *)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsseg3e16_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_i16mf4((int16_t *)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsseg3e16_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_u16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsseg3e16_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_u16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsseg3e16_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsseg3e16_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_i16m1((int16_t *)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsseg4e16_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_i16m2((int16_t *)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsseg4e16_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_i16mf2((int16_t *)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsseg4e16_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_i16mf4((int16_t *)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsseg4e16_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsseg4e16_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsseg4e16_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsseg4e16_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsseg5e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e16_v_i16m1((int16_t *)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsseg5e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsseg5e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e16_v_i16mf2((int16_t *)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsseg5e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsseg5e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e16_v_i16mf4((int16_t *)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsseg5e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsseg5e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsseg5e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsseg5e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsseg5e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsseg5e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsseg5e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsseg6e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e16_v_i16m1((int16_t *)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsseg6e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsseg6e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e16_v_i16mf2((int16_t *)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsseg6e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsseg6e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e16_v_i16mf4((int16_t *)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsseg6e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsseg6e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsseg6e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsseg6e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsseg6e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsseg6e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsseg6e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsseg7e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e16_v_i16m1((int16_t *)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsseg7e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsseg7e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e16_v_i16mf2((int16_t *)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsseg7e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsseg7e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e16_v_i16mf4((int16_t *)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsseg7e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsseg7e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsseg7e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsseg7e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsseg7e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsseg7e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsseg7e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsseg8e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e16_v_i16m1((int16_t *)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsseg8e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsseg8e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e16_v_i16mf2((int16_t *)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsseg8e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsseg8e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e16_v_i16mf4((int16_t *)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsseg8e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsseg8e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsseg8e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsseg8e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsseg8e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsseg8e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsseg8e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsseg2e32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_i32m1((int32_t *)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsseg2e32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_i32m2((int32_t *)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsseg2e32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_i32m4((int32_t *)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsseg2e32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_i32mf2((int32_t *)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsseg2e32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsseg2e32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsseg2e32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsseg2e32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsseg3e32_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e32_v_i32m1((int32_t *)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsseg3e32_v_i32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsseg3e32_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e32_v_i32m2((int32_t *)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsseg3e32_v_i32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsseg3e32_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e32_v_i32mf2((int32_t *)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsseg3e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsseg3e32_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsseg3e32_v_u32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsseg3e32_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsseg3e32_v_u32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsseg3e32_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsseg3e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsseg4e32_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e32_v_i32m1((int32_t *)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsseg4e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsseg4e32_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e32_v_i32m2((int32_t *)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsseg4e32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsseg4e32_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e32_v_i32mf2((int32_t *)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsseg4e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsseg4e32_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsseg4e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsseg4e32_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsseg4e32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsseg4e32_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsseg4e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsseg5e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e32_v_i32m1((int32_t *)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsseg5e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsseg5e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e32_v_i32mf2((int32_t *)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsseg5e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsseg5e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsseg5e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsseg5e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsseg5e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsseg6e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e32_v_i32m1((int32_t *)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsseg6e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsseg6e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e32_v_i32mf2((int32_t *)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsseg6e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsseg6e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsseg6e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsseg6e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsseg6e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsseg7e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e32_v_i32m1((int32_t *)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsseg7e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsseg7e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e32_v_i32mf2((int32_t *)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsseg7e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsseg7e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsseg7e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsseg7e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsseg7e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsseg8e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e32_v_i32m1((int32_t *)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsseg8e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsseg8e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e32_v_i32mf2((int32_t *)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsseg8e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsseg8e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsseg8e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsseg8e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsseg8e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsseg2e64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e64_v_i64m1((int64_t *)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vsseg2e64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsseg2e64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e64_v_i64m2((int64_t *)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vsseg2e64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsseg2e64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e64_v_i64m4((int64_t *)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vsseg2e64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsseg2e64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vsseg2e64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsseg2e64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vsseg2e64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsseg2e64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vsseg2e64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsseg3e64_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e64_v_i64m1((int64_t *)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsseg3e64_v_i64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsseg3e64_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e64_v_i64m2((int64_t *)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsseg3e64_v_i64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsseg3e64_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsseg3e64_v_u64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsseg3e64_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsseg3e64_v_u64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsseg4e64_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e64_v_i64m1((int64_t *)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsseg4e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsseg4e64_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e64_v_i64m2((int64_t *)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsseg4e64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsseg4e64_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsseg4e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsseg4e64_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsseg4e64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsseg5e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e64_v_i64m1((int64_t *)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsseg5e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsseg5e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsseg5e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsseg6e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e64_v_i64m1((int64_t *)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsseg6e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsseg6e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsseg6e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsseg7e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e64_v_i64m1((int64_t *)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsseg7e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsseg7e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsseg7e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsseg8e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e64_v_i64m1((int64_t *)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsseg8e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsseg8e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsseg8e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vssseg3e8_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e8_v_i8m1((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vssseg3e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vssseg3e8_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e8_v_i8m2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vssseg3e8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vssseg3e8_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e8_v_i8mf2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vssseg3e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vssseg3e8_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e8_v_i8mf4((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vssseg3e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vssseg3e8_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e8_v_i8mf8((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vssseg3e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vssseg3e8_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e8_v_u8m1((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vssseg3e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vssseg3e8_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e8_v_u8m2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vssseg3e8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vssseg3e8_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e8_v_u8mf2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vssseg3e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vssseg3e8_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e8_v_u8mf4((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vssseg3e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vssseg3e8_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e8_v_u8mf8((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vssseg3e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vssseg4e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e8_v_i8m1((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vssseg4e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vssseg4e8_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e8_v_i8m2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vssseg4e8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (size_t)(op7))
-#define vssseg4e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e8_v_i8mf2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vssseg4e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vssseg4e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e8_v_i8mf4((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vssseg4e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vssseg4e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e8_v_i8mf8((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vssseg4e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vssseg4e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e8_v_u8m1((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vssseg4e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vssseg4e8_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e8_v_u8m2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vssseg4e8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vssseg4e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e8_v_u8mf2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vssseg4e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vssseg4e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e8_v_u8mf4((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vssseg4e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vssseg4e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e8_v_u8mf8((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vssseg4e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vssseg5e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e8_v_i8m1((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vssseg5e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vssseg5e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e8_v_i8mf2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vssseg5e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vssseg5e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e8_v_i8mf4((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vssseg5e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vssseg5e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e8_v_i8mf8((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vssseg5e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vssseg5e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e8_v_u8m1((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vssseg5e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vssseg5e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e8_v_u8mf2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vssseg5e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vssseg5e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e8_v_u8mf4((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vssseg5e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vssseg5e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e8_v_u8mf8((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vssseg5e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vssseg6e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e8_v_i8m1((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vssseg6e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vssseg6e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e8_v_i8mf2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vssseg6e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vssseg6e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e8_v_i8mf4((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vssseg6e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vssseg6e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e8_v_i8mf8((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vssseg6e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vssseg6e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e8_v_u8m1((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vssseg6e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vssseg6e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e8_v_u8mf2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vssseg6e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vssseg6e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e8_v_u8mf4((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vssseg6e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vssseg6e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e8_v_u8mf8((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vssseg6e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vssseg7e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e8_v_i8m1((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vssseg7e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vssseg7e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e8_v_i8mf2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vssseg7e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vssseg7e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e8_v_i8mf4((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vssseg7e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vssseg7e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e8_v_i8mf8((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vssseg7e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vssseg7e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e8_v_u8m1((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vssseg7e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vssseg7e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e8_v_u8mf2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vssseg7e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vssseg7e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e8_v_u8mf4((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vssseg7e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vssseg7e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e8_v_u8mf8((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vssseg7e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vssseg8e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e8_v_i8m1((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vssseg8e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (size_t)(op11))
-#define vssseg8e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e8_v_i8mf2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vssseg8e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (size_t)(op11))
-#define vssseg8e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e8_v_i8mf4((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vssseg8e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (size_t)(op11))
-#define vssseg8e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e8_v_i8mf8((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vssseg8e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (size_t)(op11))
-#define vssseg8e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e8_v_u8m1((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vssseg8e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vssseg8e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e8_v_u8mf2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vssseg8e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vssseg8e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e8_v_u8mf4((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vssseg8e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vssseg8e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e8_v_u8mf8((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vssseg8e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vssseg2e16_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_i16m1((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_i16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_i16m2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_i16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_i16m4((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_i16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_i16mf2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_i16mf4((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_u16m1((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_u16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_u16m2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_u16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_u16m4((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_u16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_u16mf2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_u16mf4((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_i16m1((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vssseg3e16_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_i16m2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vssseg3e16_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_i16mf2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vssseg3e16_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_i16mf4((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vssseg3e16_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_u16m1((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vssseg3e16_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_u16m2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vssseg3e16_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_u16mf2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vssseg3e16_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_u16mf4((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_i16m1((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vssseg4e16_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_i16m2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (size_t)(op7))
-#define vssseg4e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_i16mf2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vssseg4e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_i16mf4((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vssseg4e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_u16m1((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vssseg4e16_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_u16m2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vssseg4e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_u16mf2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vssseg4e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_u16mf4((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vssseg5e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e16_v_i16m1((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vssseg5e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vssseg5e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e16_v_i16mf2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vssseg5e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vssseg5e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e16_v_i16mf4((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vssseg5e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vssseg5e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e16_v_u16m1((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vssseg5e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vssseg5e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e16_v_u16mf2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vssseg5e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vssseg5e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e16_v_u16mf4((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vssseg5e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vssseg6e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e16_v_i16m1((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vssseg6e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vssseg6e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e16_v_i16mf2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vssseg6e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vssseg6e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e16_v_i16mf4((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vssseg6e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vssseg6e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e16_v_u16m1((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vssseg6e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vssseg6e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e16_v_u16mf2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vssseg6e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vssseg6e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e16_v_u16mf4((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vssseg6e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vssseg7e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e16_v_i16m1((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vssseg7e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vssseg7e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e16_v_i16mf2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vssseg7e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vssseg7e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e16_v_i16mf4((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vssseg7e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vssseg7e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e16_v_u16m1((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vssseg7e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vssseg7e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e16_v_u16mf2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vssseg7e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vssseg7e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e16_v_u16mf4((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vssseg7e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vssseg8e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e16_v_i16m1((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vssseg8e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (size_t)(op11))
-#define vssseg8e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e16_v_i16mf2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vssseg8e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (size_t)(op11))
-#define vssseg8e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e16_v_i16mf4((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vssseg8e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (size_t)(op11))
-#define vssseg8e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e16_v_u16m1((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vssseg8e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vssseg8e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e16_v_u16mf2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vssseg8e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vssseg8e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e16_v_u16mf4((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vssseg8e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vssseg2e32_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_i32m1((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_i32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vssseg2e32_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_i32m2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_i32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vssseg2e32_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_i32m4((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_i32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (size_t)(op5))
-#define vssseg2e32_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_i32mf2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vssseg2e32_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_u32m1((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_u32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vssseg2e32_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_u32m2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_u32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vssseg2e32_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_u32m4((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_u32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vssseg2e32_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_u32mf2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vssseg3e32_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e32_v_i32m1((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vssseg3e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vssseg3e32_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e32_v_i32m2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vssseg3e32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vssseg3e32_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e32_v_i32mf2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vssseg3e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vssseg3e32_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e32_v_u32m1((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vssseg3e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vssseg3e32_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e32_v_u32m2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vssseg3e32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vssseg3e32_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e32_v_u32mf2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vssseg3e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vssseg4e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e32_v_i32m1((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vssseg4e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vssseg4e32_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e32_v_i32m2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vssseg4e32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (size_t)(op7))
-#define vssseg4e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e32_v_i32mf2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vssseg4e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vssseg4e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e32_v_u32m1((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vssseg4e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vssseg4e32_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e32_v_u32m2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vssseg4e32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vssseg4e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e32_v_u32mf2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vssseg4e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vssseg5e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e32_v_i32m1((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vssseg5e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vssseg5e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e32_v_i32mf2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vssseg5e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vssseg5e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e32_v_u32m1((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vssseg5e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vssseg5e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e32_v_u32mf2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vssseg5e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vssseg6e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e32_v_i32m1((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vssseg6e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vssseg6e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e32_v_i32mf2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vssseg6e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vssseg6e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e32_v_u32m1((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vssseg6e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vssseg6e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e32_v_u32mf2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vssseg6e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vssseg7e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e32_v_i32m1((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vssseg7e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vssseg7e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e32_v_i32mf2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vssseg7e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vssseg7e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e32_v_u32m1((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vssseg7e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vssseg7e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e32_v_u32mf2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vssseg7e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vssseg8e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e32_v_i32m1((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vssseg8e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (size_t)(op11))
-#define vssseg8e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e32_v_i32mf2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vssseg8e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (size_t)(op11))
-#define vssseg8e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e32_v_u32m1((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vssseg8e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vssseg8e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e32_v_u32mf2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vssseg8e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vssseg2e64_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e64_v_i64m1((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vssseg2e64_v_i64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vssseg2e64_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e64_v_i64m2((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vssseg2e64_v_i64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vssseg2e64_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e64_v_i64m4((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vssseg2e64_v_i64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (size_t)(op5))
-#define vssseg2e64_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e64_v_u64m1((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vssseg2e64_v_u64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vssseg2e64_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e64_v_u64m2((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vssseg2e64_v_u64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vssseg2e64_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e64_v_u64m4((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vssseg2e64_v_u64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vssseg3e64_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e64_v_i64m1((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vssseg3e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vssseg3e64_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e64_v_i64m2((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vssseg3e64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vssseg3e64_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e64_v_u64m1((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vssseg3e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vssseg3e64_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e64_v_u64m2((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vssseg3e64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vssseg4e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e64_v_i64m1((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vssseg4e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vssseg4e64_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e64_v_i64m2((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vssseg4e64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (size_t)(op7))
-#define vssseg4e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e64_v_u64m1((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vssseg4e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vssseg4e64_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e64_v_u64m2((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vssseg4e64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vssseg5e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e64_v_i64m1((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vssseg5e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vssseg5e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e64_v_u64m1((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vssseg5e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vssseg6e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e64_v_i64m1((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vssseg6e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vssseg6e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e64_v_u64m1((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vssseg6e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vssseg7e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e64_v_i64m1((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vssseg7e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vssseg7e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e64_v_u64m1((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vssseg7e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vssseg8e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e64_v_i64m1((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vssseg8e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (size_t)(op11))
-#define vssseg8e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e64_v_u64m1((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vssseg8e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vsuxseg3ei8_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i8m2((int8_t *)(op0), (vuint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i8m2((int8_t *)(op0), (vuint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vsuxseg2ei16_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i8m2((int8_t *)(op0), (vuint16m4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint16m4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i8m4((int8_t *)(op0), (vuint16m8_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i8m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (vuint16m8_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u8m2((uint8_t *)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u8m4((uint8_t *)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u8m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (vuint16m8_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i8m2((int8_t *)(op0), (vuint16m4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint16m4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u8m2((uint8_t *)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i8m2((int8_t *)(op0), (vuint16m4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint16m4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u8m2((uint8_t *)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vsuxseg2ei32_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i8m2((int8_t *)(op0), (vuint32m8_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint32m8_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u8m2((uint8_t *)(op0), (vuint32m8_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint32m8_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i8m2((int8_t *)(op0), (vuint32m8_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint32m8_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u8m2((uint8_t *)(op0), (vuint32m8_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint32m8_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i8m2((int8_t *)(op0), (vuint32m8_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint32m8_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u8m2((uint8_t *)(op0), (vuint32m8_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint32m8_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vsuxseg2ei64_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vsuxseg2ei8_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i16m2((int16_t *)(op0), (vuint8m1_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint8m1_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i16m4((int16_t *)(op0), (vuint8m2_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint8m2_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u16m2((uint16_t *)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint8m1_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u16m4((uint16_t *)(op0), (vuint8m2_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint8m2_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i16m2((int16_t *)(op0), (vuint8m1_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint8m1_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u16m2((uint16_t *)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint8m1_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i16m2((int16_t *)(op0), (vuint8m1_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint8m1_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u16m2((uint16_t *)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint8m1_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg2ei16_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i16m2((int16_t *)(op0), (vuint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i16m4((int16_t *)(op0), (vuint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint16m4_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u16m4((uint16_t *)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i16m2((int16_t *)(op0), (vuint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i16m2((int16_t *)(op0), (vuint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg2ei32_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i16m2((int16_t *)(op0), (vuint32m4_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint32m4_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i16m4((int16_t *)(op0), (vuint32m8_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint32m8_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u16m2((uint16_t *)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u16m4((uint16_t *)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint32m8_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i16m2((int16_t *)(op0), (vuint32m4_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint32m4_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u16m2((uint16_t *)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i16m2((int16_t *)(op0), (vuint32m4_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint32m4_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u16m2((uint16_t *)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg2ei64_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i16m2((int16_t *)(op0), (vuint64m8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint64m8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u16m2((uint16_t *)(op0), (vuint64m8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint64m8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i16m2((int16_t *)(op0), (vuint64m8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint64m8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u16m2((uint16_t *)(op0), (vuint64m8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint64m8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i16m2((int16_t *)(op0), (vuint64m8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint64m8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u16m2((uint16_t *)(op0), (vuint64m8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint64m8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg2ei8_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i32m4((int32_t *)(op0), (vuint8m1_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint8m1_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u32m4((uint32_t *)(op0), (vuint8m1_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint8m1_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg2ei16_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i32m4((int32_t *)(op0), (vuint16m2_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint16m2_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u32m4((uint32_t *)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint16m2_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg2ei32_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i32m4((int32_t *)(op0), (vuint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint32m4_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg2ei64_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i32m4((int32_t *)(op0), (vuint64m8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint64m8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u32m4((uint32_t *)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg2ei8_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i64m4((int64_t *)(op0), (vuint8mf2_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint8mf2_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u64m4((uint64_t *)(op0), (vuint8mf2_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint8mf2_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vsuxseg2ei16_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i64m4((int64_t *)(op0), (vuint16m1_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint16m1_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u64m4((uint64_t *)(op0), (vuint16m1_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint16m1_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vsuxseg2ei32_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i64m4((int64_t *)(op0), (vuint32m2_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint32m2_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u64m4((uint64_t *)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint32m2_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vsuxseg2ei64_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i64m4((int64_t *)(op0), (vuint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint64m4_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vsoxseg2ei8_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i8m2((int8_t *)(op0), (vuint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i8m4((int8_t *)(op0), (vuint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i8m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (vuint8m4_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u8m4((uint8_t *)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u8m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i8m2((int8_t *)(op0), (vuint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i8m2((int8_t *)(op0), (vuint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vsoxseg2ei16_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i8m2((int8_t *)(op0), (vuint16m4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint16m4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i8m4((int8_t *)(op0), (vuint16m8_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i8m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (vuint16m8_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u8m2((uint8_t *)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u8m4((uint8_t *)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u8m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (vuint16m8_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i8m2((int8_t *)(op0), (vuint16m4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint16m4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u8m2((uint8_t *)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i8m2((int8_t *)(op0), (vuint16m4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint16m4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u8m2((uint8_t *)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vsoxseg2ei32_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i8m2((int8_t *)(op0), (vuint32m8_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint32m8_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u8m2((uint8_t *)(op0), (vuint32m8_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint32m8_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i8m2((int8_t *)(op0), (vuint32m8_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint32m8_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u8m2((uint8_t *)(op0), (vuint32m8_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint32m8_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i8m2((int8_t *)(op0), (vuint32m8_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint32m8_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u8m2((uint8_t *)(op0), (vuint32m8_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint32m8_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vsoxseg2ei64_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vsoxseg2ei8_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i16m2((int16_t *)(op0), (vuint8m1_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint8m1_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i16m4((int16_t *)(op0), (vuint8m2_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint8m2_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u16m2((uint16_t *)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint8m1_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u16m4((uint16_t *)(op0), (vuint8m2_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint8m2_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i16m2((int16_t *)(op0), (vuint8m1_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint8m1_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u16m2((uint16_t *)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint8m1_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i16m2((int16_t *)(op0), (vuint8m1_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint8m1_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u16m2((uint16_t *)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint8m1_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg2ei16_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i16m2((int16_t *)(op0), (vuint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i16m4((int16_t *)(op0), (vuint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint16m4_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u16m4((uint16_t *)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i16m2((int16_t *)(op0), (vuint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i16m2((int16_t *)(op0), (vuint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg2ei32_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i16m2((int16_t *)(op0), (vuint32m4_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint32m4_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i16m4((int16_t *)(op0), (vuint32m8_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint32m8_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u16m2((uint16_t *)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u16m4((uint16_t *)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint32m8_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i16m2((int16_t *)(op0), (vuint32m4_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint32m4_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u16m2((uint16_t *)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i16m2((int16_t *)(op0), (vuint32m4_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint32m4_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u16m2((uint16_t *)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg2ei64_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i16m2((int16_t *)(op0), (vuint64m8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint64m8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u16m2((uint16_t *)(op0), (vuint64m8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint64m8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i16m2((int16_t *)(op0), (vuint64m8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint64m8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u16m2((uint16_t *)(op0), (vuint64m8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint64m8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i16m2((int16_t *)(op0), (vuint64m8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint64m8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u16m2((uint16_t *)(op0), (vuint64m8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint64m8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg2ei8_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i32m4((int32_t *)(op0), (vuint8m1_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint8m1_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u32m4((uint32_t *)(op0), (vuint8m1_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint8m1_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg2ei16_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i32m4((int32_t *)(op0), (vuint16m2_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint16m2_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u32m4((uint32_t *)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint16m2_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg2ei32_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i32m4((int32_t *)(op0), (vuint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint32m4_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg2ei64_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i32m4((int32_t *)(op0), (vuint64m8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint64m8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u32m4((uint32_t *)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg2ei8_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i64m4((int64_t *)(op0), (vuint8mf2_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint8mf2_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u64m4((uint64_t *)(op0), (vuint8mf2_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint8mf2_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vsoxseg2ei16_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i64m4((int64_t *)(op0), (vuint16m1_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint16m1_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u64m4((uint64_t *)(op0), (vuint16m1_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint16m1_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vsoxseg2ei32_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i64m4((int64_t *)(op0), (vuint32m2_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint32m2_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u64m4((uint64_t *)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint32m2_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vsoxseg2ei64_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i64m4((int64_t *)(op0), (vuint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint64m4_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vlseg2e8_v_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vbool8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (const int8_t *)(op5), (size_t)(op6))
-#define vlseg2e8_v_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vbool4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (const int8_t *)(op5), (size_t)(op6))
-#define vlseg2e8_v_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_i8m4((vint8m4_t *)(op0), (vint8m4_t *)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_i8m4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_i8m4_m((vint8m4_t *)(op0), (vint8m4_t *)(op1), (vbool2_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (const int8_t *)(op5), (size_t)(op6))
-#define vlseg2e8_v_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vbool16_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (const int8_t *)(op5), (size_t)(op6))
-#define vlseg2e8_v_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vbool32_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (const int8_t *)(op5), (size_t)(op6))
-#define vlseg2e8_v_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vbool64_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (const int8_t *)(op5), (size_t)(op6))
-#define vlseg2e8_v_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vbool8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (const uint8_t *)(op5), (size_t)(op6))
-#define vlseg2e8_v_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vbool4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (const uint8_t *)(op5), (size_t)(op6))
-#define vlseg2e8_v_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_u8m4((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_u8m4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_u8m4_m((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (vbool2_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (const uint8_t *)(op5), (size_t)(op6))
-#define vlseg2e8_v_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vbool16_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (const uint8_t *)(op5), (size_t)(op6))
-#define vlseg2e8_v_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vbool32_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (const uint8_t *)(op5), (size_t)(op6))
-#define vlseg2e8_v_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vbool64_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (const uint8_t *)(op5), (size_t)(op6))
-#define vlseg3e8_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (const int8_t *)(op3), (size_t)(op4))
-#define vlseg3e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vbool8_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (const int8_t *)(op7), (size_t)(op8))
-#define vlseg3e8_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (const int8_t *)(op3), (size_t)(op4))
-#define vlseg3e8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vbool4_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (const int8_t *)(op7), (size_t)(op8))
-#define vlseg3e8_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (const int8_t *)(op3), (size_t)(op4))
-#define vlseg3e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vbool16_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (const int8_t *)(op7), (size_t)(op8))
-#define vlseg3e8_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (const int8_t *)(op3), (size_t)(op4))
-#define vlseg3e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vbool32_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (const int8_t *)(op7), (size_t)(op8))
-#define vlseg3e8_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (const int8_t *)(op3), (size_t)(op4))
-#define vlseg3e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vbool64_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (const int8_t *)(op7), (size_t)(op8))
-#define vlseg3e8_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (const uint8_t *)(op3), (size_t)(op4))
-#define vlseg3e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vbool8_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (const uint8_t *)(op7), (size_t)(op8))
-#define vlseg3e8_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (const uint8_t *)(op3), (size_t)(op4))
-#define vlseg3e8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vbool4_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (const uint8_t *)(op7), (size_t)(op8))
-#define vlseg3e8_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (const uint8_t *)(op3), (size_t)(op4))
-#define vlseg3e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vbool16_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (const uint8_t *)(op7), (size_t)(op8))
-#define vlseg3e8_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (const uint8_t *)(op3), (size_t)(op4))
-#define vlseg3e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vbool32_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (const uint8_t *)(op7), (size_t)(op8))
-#define vlseg3e8_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (const uint8_t *)(op3), (size_t)(op4))
-#define vlseg3e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vbool64_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (const uint8_t *)(op7), (size_t)(op8))
-#define vlseg4e8_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (const int8_t *)(op4), (size_t)(op5))
-#define vlseg4e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vbool8_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (const int8_t *)(op9), (size_t)(op10))
-#define vlseg4e8_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (const int8_t *)(op4), (size_t)(op5))
-#define vlseg4e8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (vbool4_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (vint8m2_t)(op7), (vint8m2_t)(op8), (const int8_t *)(op9), (size_t)(op10))
-#define vlseg4e8_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (const int8_t *)(op4), (size_t)(op5))
-#define vlseg4e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vbool16_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (const int8_t *)(op9), (size_t)(op10))
-#define vlseg4e8_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (const int8_t *)(op4), (size_t)(op5))
-#define vlseg4e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vbool32_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (const int8_t *)(op9), (size_t)(op10))
-#define vlseg4e8_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (const int8_t *)(op4), (size_t)(op5))
-#define vlseg4e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vbool64_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (const int8_t *)(op9), (size_t)(op10))
-#define vlseg4e8_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (const uint8_t *)(op4), (size_t)(op5))
-#define vlseg4e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vbool8_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (const uint8_t *)(op9), (size_t)(op10))
-#define vlseg4e8_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (const uint8_t *)(op4), (size_t)(op5))
-#define vlseg4e8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (vbool4_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (vuint8m2_t)(op7), (vuint8m2_t)(op8), (const uint8_t *)(op9), (size_t)(op10))
-#define vlseg4e8_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (const uint8_t *)(op4), (size_t)(op5))
-#define vlseg4e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vbool16_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (const uint8_t *)(op9), (size_t)(op10))
-#define vlseg4e8_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (const uint8_t *)(op4), (size_t)(op5))
-#define vlseg4e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vbool32_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (const uint8_t *)(op9), (size_t)(op10))
-#define vlseg4e8_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (const uint8_t *)(op4), (size_t)(op5))
-#define vlseg4e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vbool64_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (const uint8_t *)(op9), (size_t)(op10))
-#define vlseg5e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (const int8_t *)(op5), (size_t)(op6))
-#define vlseg5e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vbool8_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (const int8_t *)(op11), (size_t)(op12))
-#define vlseg5e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (const int8_t *)(op5), (size_t)(op6))
-#define vlseg5e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vbool16_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (const int8_t *)(op11), (size_t)(op12))
-#define vlseg5e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (const int8_t *)(op5), (size_t)(op6))
-#define vlseg5e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vbool32_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (const int8_t *)(op11), (size_t)(op12))
-#define vlseg5e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (const int8_t *)(op5), (size_t)(op6))
-#define vlseg5e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vbool64_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (const int8_t *)(op11), (size_t)(op12))
-#define vlseg5e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (const uint8_t *)(op5), (size_t)(op6))
-#define vlseg5e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vbool8_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (const uint8_t *)(op11), (size_t)(op12))
-#define vlseg5e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (const uint8_t *)(op5), (size_t)(op6))
-#define vlseg5e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vbool16_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (const uint8_t *)(op11), (size_t)(op12))
-#define vlseg5e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (const uint8_t *)(op5), (size_t)(op6))
-#define vlseg5e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vbool32_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (const uint8_t *)(op11), (size_t)(op12))
-#define vlseg5e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (const uint8_t *)(op5), (size_t)(op6))
-#define vlseg5e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vbool64_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (const uint8_t *)(op11), (size_t)(op12))
-#define vlseg6e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (const int8_t *)(op6), (size_t)(op7))
-#define vlseg6e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vbool8_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (const int8_t *)(op13), (size_t)(op14))
-#define vlseg6e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (const int8_t *)(op6), (size_t)(op7))
-#define vlseg6e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vbool16_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (const int8_t *)(op13), (size_t)(op14))
-#define vlseg6e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (const int8_t *)(op6), (size_t)(op7))
-#define vlseg6e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vbool32_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (const int8_t *)(op13), (size_t)(op14))
-#define vlseg6e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (const int8_t *)(op6), (size_t)(op7))
-#define vlseg6e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vbool64_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (const int8_t *)(op13), (size_t)(op14))
-#define vlseg6e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (const uint8_t *)(op6), (size_t)(op7))
-#define vlseg6e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vbool8_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (const uint8_t *)(op13), (size_t)(op14))
-#define vlseg6e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (const uint8_t *)(op6), (size_t)(op7))
-#define vlseg6e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vbool16_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (const uint8_t *)(op13), (size_t)(op14))
-#define vlseg6e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (const uint8_t *)(op6), (size_t)(op7))
-#define vlseg6e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vbool32_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (const uint8_t *)(op13), (size_t)(op14))
-#define vlseg6e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (const uint8_t *)(op6), (size_t)(op7))
-#define vlseg6e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vbool64_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (const uint8_t *)(op13), (size_t)(op14))
-#define vlseg7e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (const int8_t *)(op7), (size_t)(op8))
-#define vlseg7e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vbool8_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (const int8_t *)(op15), (size_t)(op16))
-#define vlseg7e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (const int8_t *)(op7), (size_t)(op8))
-#define vlseg7e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vbool16_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (const int8_t *)(op15), (size_t)(op16))
-#define vlseg7e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (const int8_t *)(op7), (size_t)(op8))
-#define vlseg7e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vbool32_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (const int8_t *)(op15), (size_t)(op16))
-#define vlseg7e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (const int8_t *)(op7), (size_t)(op8))
-#define vlseg7e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vbool64_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (const int8_t *)(op15), (size_t)(op16))
-#define vlseg7e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (const uint8_t *)(op7), (size_t)(op8))
-#define vlseg7e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vbool8_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (const uint8_t *)(op15), (size_t)(op16))
-#define vlseg7e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (const uint8_t *)(op7), (size_t)(op8))
-#define vlseg7e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vbool16_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (const uint8_t *)(op15), (size_t)(op16))
-#define vlseg7e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (const uint8_t *)(op7), (size_t)(op8))
-#define vlseg7e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vbool32_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (const uint8_t *)(op15), (size_t)(op16))
-#define vlseg7e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (const uint8_t *)(op7), (size_t)(op8))
-#define vlseg7e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vbool64_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (const uint8_t *)(op15), (size_t)(op16))
-#define vlseg8e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (const int8_t *)(op8), (size_t)(op9))
-#define vlseg8e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (vbool8_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (vint8m1_t)(op15), (vint8m1_t)(op16), (const int8_t *)(op17), (size_t)(op18))
-#define vlseg8e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (const int8_t *)(op8), (size_t)(op9))
-#define vlseg8e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (vbool16_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (vint8mf2_t)(op15), (vint8mf2_t)(op16), (const int8_t *)(op17), (size_t)(op18))
-#define vlseg8e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (const int8_t *)(op8), (size_t)(op9))
-#define vlseg8e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (vbool32_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (vint8mf4_t)(op15), (vint8mf4_t)(op16), (const int8_t *)(op17), (size_t)(op18))
-#define vlseg8e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (const int8_t *)(op8), (size_t)(op9))
-#define vlseg8e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (vbool64_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (vint8mf8_t)(op15), (vint8mf8_t)(op16), (const int8_t *)(op17), (size_t)(op18))
-#define vlseg8e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (const uint8_t *)(op8), (size_t)(op9))
-#define vlseg8e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (vbool8_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (vuint8m1_t)(op15), (vuint8m1_t)(op16), (const uint8_t *)(op17), (size_t)(op18))
-#define vlseg8e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (const uint8_t *)(op8), (size_t)(op9))
-#define vlseg8e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (vbool16_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (vuint8mf2_t)(op15), (vuint8mf2_t)(op16), (const uint8_t *)(op17), (size_t)(op18))
-#define vlseg8e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (const uint8_t *)(op8), (size_t)(op9))
-#define vlseg8e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (vbool32_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (vuint8mf4_t)(op15), (vuint8mf4_t)(op16), (const uint8_t *)(op17), (size_t)(op18))
-#define vlseg8e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (const uint8_t *)(op8), (size_t)(op9))
-#define vlseg8e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (vbool64_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (vuint8mf8_t)(op15), (vuint8mf8_t)(op16), (const uint8_t *)(op17), (size_t)(op18))
-#define vlseg2e16_v_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (const int16_t *)(op2), (size_t)(op3))
-#define vlseg2e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vbool16_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (const int16_t *)(op5), (size_t)(op6))
-#define vlseg2e16_v_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (const int16_t *)(op2), (size_t)(op3))
-#define vlseg2e16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vbool8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (const int16_t *)(op5), (size_t)(op6))
-#define vlseg2e16_v_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_i16m4((vint16m4_t *)(op0), (vint16m4_t *)(op1), (const int16_t *)(op2), (size_t)(op3))
-#define vlseg2e16_v_i16m4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_i16m4_m((vint16m4_t *)(op0), (vint16m4_t *)(op1), (vbool4_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (const int16_t *)(op5), (size_t)(op6))
-#define vlseg2e16_v_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (const int16_t *)(op2), (size_t)(op3))
-#define vlseg2e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vbool32_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (const int16_t *)(op5), (size_t)(op6))
-#define vlseg2e16_v_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (const int16_t *)(op2), (size_t)(op3))
-#define vlseg2e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vbool64_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (const int16_t *)(op5), (size_t)(op6))
-#define vlseg2e16_v_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (const uint16_t *)(op2), (size_t)(op3))
-#define vlseg2e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vbool16_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (const uint16_t *)(op5), (size_t)(op6))
-#define vlseg2e16_v_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (const uint16_t *)(op2), (size_t)(op3))
-#define vlseg2e16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vbool8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (const uint16_t *)(op5), (size_t)(op6))
-#define vlseg2e16_v_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_u16m4((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (const uint16_t *)(op2), (size_t)(op3))
-#define vlseg2e16_v_u16m4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_u16m4_m((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (vbool4_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (const uint16_t *)(op5), (size_t)(op6))
-#define vlseg2e16_v_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (const uint16_t *)(op2), (size_t)(op3))
-#define vlseg2e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vbool32_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (const uint16_t *)(op5), (size_t)(op6))
-#define vlseg2e16_v_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (const uint16_t *)(op2), (size_t)(op3))
-#define vlseg2e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vbool64_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (const uint16_t *)(op5), (size_t)(op6))
-#define vlseg3e16_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (const int16_t *)(op3), (size_t)(op4))
-#define vlseg3e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vbool16_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (const int16_t *)(op7), (size_t)(op8))
-#define vlseg3e16_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (const int16_t *)(op3), (size_t)(op4))
-#define vlseg3e16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vbool8_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (const int16_t *)(op7), (size_t)(op8))
-#define vlseg3e16_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (const int16_t *)(op3), (size_t)(op4))
-#define vlseg3e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vbool32_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (const int16_t *)(op7), (size_t)(op8))
-#define vlseg3e16_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (const int16_t *)(op3), (size_t)(op4))
-#define vlseg3e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vbool64_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (const int16_t *)(op7), (size_t)(op8))
-#define vlseg3e16_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (const uint16_t *)(op3), (size_t)(op4))
-#define vlseg3e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vbool16_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (const uint16_t *)(op7), (size_t)(op8))
-#define vlseg3e16_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (const uint16_t *)(op3), (size_t)(op4))
-#define vlseg3e16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vbool8_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (const uint16_t *)(op7), (size_t)(op8))
-#define vlseg3e16_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (const uint16_t *)(op3), (size_t)(op4))
-#define vlseg3e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vbool32_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (const uint16_t *)(op7), (size_t)(op8))
-#define vlseg3e16_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (const uint16_t *)(op3), (size_t)(op4))
-#define vlseg3e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vbool64_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (const uint16_t *)(op7), (size_t)(op8))
-#define vlseg4e16_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (const int16_t *)(op4), (size_t)(op5))
-#define vlseg4e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vbool16_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (const int16_t *)(op9), (size_t)(op10))
-#define vlseg4e16_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (const int16_t *)(op4), (size_t)(op5))
-#define vlseg4e16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (vbool8_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (vint16m2_t)(op7), (vint16m2_t)(op8), (const int16_t *)(op9), (size_t)(op10))
-#define vlseg4e16_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (const int16_t *)(op4), (size_t)(op5))
-#define vlseg4e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vbool32_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (const int16_t *)(op9), (size_t)(op10))
-#define vlseg4e16_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (const int16_t *)(op4), (size_t)(op5))
-#define vlseg4e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vbool64_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (const int16_t *)(op9), (size_t)(op10))
-#define vlseg4e16_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (const uint16_t *)(op4), (size_t)(op5))
-#define vlseg4e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vbool16_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (const uint16_t *)(op9), (size_t)(op10))
-#define vlseg4e16_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (const uint16_t *)(op4), (size_t)(op5))
-#define vlseg4e16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (vbool8_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (vuint16m2_t)(op7), (vuint16m2_t)(op8), (const uint16_t *)(op9), (size_t)(op10))
-#define vlseg4e16_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (const uint16_t *)(op4), (size_t)(op5))
-#define vlseg4e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vbool32_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (const uint16_t *)(op9), (size_t)(op10))
-#define vlseg4e16_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (const uint16_t *)(op4), (size_t)(op5))
-#define vlseg4e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vbool64_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (const uint16_t *)(op9), (size_t)(op10))
-#define vlseg5e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (const int16_t *)(op5), (size_t)(op6))
-#define vlseg5e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vbool16_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (const int16_t *)(op11), (size_t)(op12))
-#define vlseg5e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (const int16_t *)(op5), (size_t)(op6))
-#define vlseg5e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vbool32_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (const int16_t *)(op11), (size_t)(op12))
-#define vlseg5e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (const int16_t *)(op5), (size_t)(op6))
-#define vlseg5e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vbool64_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (const int16_t *)(op11), (size_t)(op12))
-#define vlseg5e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (const uint16_t *)(op5), (size_t)(op6))
-#define vlseg5e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vbool16_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (const uint16_t *)(op11), (size_t)(op12))
-#define vlseg5e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (const uint16_t *)(op5), (size_t)(op6))
-#define vlseg5e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vbool32_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (const uint16_t *)(op11), (size_t)(op12))
-#define vlseg5e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (const uint16_t *)(op5), (size_t)(op6))
-#define vlseg5e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vbool64_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (const uint16_t *)(op11), (size_t)(op12))
-#define vlseg6e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (const int16_t *)(op6), (size_t)(op7))
-#define vlseg6e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vbool16_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (const int16_t *)(op13), (size_t)(op14))
-#define vlseg6e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (const int16_t *)(op6), (size_t)(op7))
-#define vlseg6e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vbool32_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (const int16_t *)(op13), (size_t)(op14))
-#define vlseg6e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (const int16_t *)(op6), (size_t)(op7))
-#define vlseg6e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vbool64_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (const int16_t *)(op13), (size_t)(op14))
-#define vlseg6e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (const uint16_t *)(op6), (size_t)(op7))
-#define vlseg6e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vbool16_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (const uint16_t *)(op13), (size_t)(op14))
-#define vlseg6e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (const uint16_t *)(op6), (size_t)(op7))
-#define vlseg6e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vbool32_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (const uint16_t *)(op13), (size_t)(op14))
-#define vlseg6e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (const uint16_t *)(op6), (size_t)(op7))
-#define vlseg6e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vbool64_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (const uint16_t *)(op13), (size_t)(op14))
-#define vlseg7e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (const int16_t *)(op7), (size_t)(op8))
-#define vlseg7e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vbool16_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (const int16_t *)(op15), (size_t)(op16))
-#define vlseg7e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (const int16_t *)(op7), (size_t)(op8))
-#define vlseg7e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vbool32_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (const int16_t *)(op15), (size_t)(op16))
-#define vlseg7e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (const int16_t *)(op7), (size_t)(op8))
-#define vlseg7e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vbool64_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (const int16_t *)(op15), (size_t)(op16))
-#define vlseg7e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (const uint16_t *)(op7), (size_t)(op8))
-#define vlseg7e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vbool16_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (const uint16_t *)(op15), (size_t)(op16))
-#define vlseg7e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (const uint16_t *)(op7), (size_t)(op8))
-#define vlseg7e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vbool32_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (const uint16_t *)(op15), (size_t)(op16))
-#define vlseg7e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (const uint16_t *)(op7), (size_t)(op8))
-#define vlseg7e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vbool64_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (const uint16_t *)(op15), (size_t)(op16))
-#define vlseg8e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (const int16_t *)(op8), (size_t)(op9))
-#define vlseg8e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (vbool16_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (vint16m1_t)(op15), (vint16m1_t)(op16), (const int16_t *)(op17), (size_t)(op18))
-#define vlseg8e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (const int16_t *)(op8), (size_t)(op9))
-#define vlseg8e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (vbool32_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (vint16mf2_t)(op15), (vint16mf2_t)(op16), (const int16_t *)(op17), (size_t)(op18))
-#define vlseg8e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (const int16_t *)(op8), (size_t)(op9))
-#define vlseg8e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (vbool64_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (vint16mf4_t)(op15), (vint16mf4_t)(op16), (const int16_t *)(op17), (size_t)(op18))
-#define vlseg8e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (const uint16_t *)(op8), (size_t)(op9))
-#define vlseg8e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (vbool16_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (vuint16m1_t)(op15), (vuint16m1_t)(op16), (const uint16_t *)(op17), (size_t)(op18))
-#define vlseg8e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (const uint16_t *)(op8), (size_t)(op9))
-#define vlseg8e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (vbool32_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (vuint16mf2_t)(op15), (vuint16mf2_t)(op16), (const uint16_t *)(op17), (size_t)(op18))
-#define vlseg8e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (const uint16_t *)(op8), (size_t)(op9))
-#define vlseg8e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (vbool64_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (vuint16mf4_t)(op15), (vuint16mf4_t)(op16), (const uint16_t *)(op17), (size_t)(op18))
-#define vlseg2e32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (const int32_t *)(op2), (size_t)(op3))
-#define vlseg2e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vbool32_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (const int32_t *)(op5), (size_t)(op6))
-#define vlseg2e32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (const int32_t *)(op2), (size_t)(op3))
-#define vlseg2e32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vbool16_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (const int32_t *)(op5), (size_t)(op6))
-#define vlseg2e32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_i32m4((vint32m4_t *)(op0), (vint32m4_t *)(op1), (const int32_t *)(op2), (size_t)(op3))
-#define vlseg2e32_v_i32m4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_i32m4_m((vint32m4_t *)(op0), (vint32m4_t *)(op1), (vbool8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (const int32_t *)(op5), (size_t)(op6))
-#define vlseg2e32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (const int32_t *)(op2), (size_t)(op3))
-#define vlseg2e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vbool64_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (const int32_t *)(op5), (size_t)(op6))
-#define vlseg2e32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (const uint32_t *)(op2), (size_t)(op3))
-#define vlseg2e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vbool32_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (const uint32_t *)(op5), (size_t)(op6))
-#define vlseg2e32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (const uint32_t *)(op2), (size_t)(op3))
-#define vlseg2e32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vbool16_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (const uint32_t *)(op5), (size_t)(op6))
-#define vlseg2e32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_u32m4((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (const uint32_t *)(op2), (size_t)(op3))
-#define vlseg2e32_v_u32m4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_u32m4_m((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (vbool8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (const uint32_t *)(op5), (size_t)(op6))
-#define vlseg2e32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (const uint32_t *)(op2), (size_t)(op3))
-#define vlseg2e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vbool64_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (const uint32_t *)(op5), (size_t)(op6))
-#define vlseg3e32_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (const int32_t *)(op3), (size_t)(op4))
-#define vlseg3e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vbool32_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (const int32_t *)(op7), (size_t)(op8))
-#define vlseg3e32_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (const int32_t *)(op3), (size_t)(op4))
-#define vlseg3e32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vbool16_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (const int32_t *)(op7), (size_t)(op8))
-#define vlseg3e32_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (const int32_t *)(op3), (size_t)(op4))
-#define vlseg3e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vbool64_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (const int32_t *)(op7), (size_t)(op8))
-#define vlseg3e32_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (const uint32_t *)(op3), (size_t)(op4))
-#define vlseg3e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vbool32_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (const uint32_t *)(op7), (size_t)(op8))
-#define vlseg3e32_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (const uint32_t *)(op3), (size_t)(op4))
-#define vlseg3e32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vbool16_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (const uint32_t *)(op7), (size_t)(op8))
-#define vlseg3e32_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (const uint32_t *)(op3), (size_t)(op4))
-#define vlseg3e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vbool64_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (const uint32_t *)(op7), (size_t)(op8))
-#define vlseg4e32_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (const int32_t *)(op4), (size_t)(op5))
-#define vlseg4e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vbool32_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (const int32_t *)(op9), (size_t)(op10))
-#define vlseg4e32_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (const int32_t *)(op4), (size_t)(op5))
-#define vlseg4e32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (vbool16_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (vint32m2_t)(op7), (vint32m2_t)(op8), (const int32_t *)(op9), (size_t)(op10))
-#define vlseg4e32_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (const int32_t *)(op4), (size_t)(op5))
-#define vlseg4e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vbool64_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (const int32_t *)(op9), (size_t)(op10))
-#define vlseg4e32_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (const uint32_t *)(op4), (size_t)(op5))
-#define vlseg4e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vbool32_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (const uint32_t *)(op9), (size_t)(op10))
-#define vlseg4e32_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (const uint32_t *)(op4), (size_t)(op5))
-#define vlseg4e32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (vbool16_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (vuint32m2_t)(op7), (vuint32m2_t)(op8), (const uint32_t *)(op9), (size_t)(op10))
-#define vlseg4e32_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (const uint32_t *)(op4), (size_t)(op5))
-#define vlseg4e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vbool64_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (const uint32_t *)(op9), (size_t)(op10))
-#define vlseg5e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (const int32_t *)(op5), (size_t)(op6))
-#define vlseg5e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vbool32_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (const int32_t *)(op11), (size_t)(op12))
-#define vlseg5e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (const int32_t *)(op5), (size_t)(op6))
-#define vlseg5e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vbool64_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (const int32_t *)(op11), (size_t)(op12))
-#define vlseg5e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (const uint32_t *)(op5), (size_t)(op6))
-#define vlseg5e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vbool32_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (const uint32_t *)(op11), (size_t)(op12))
-#define vlseg5e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (const uint32_t *)(op5), (size_t)(op6))
-#define vlseg5e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vbool64_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (const uint32_t *)(op11), (size_t)(op12))
-#define vlseg6e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (const int32_t *)(op6), (size_t)(op7))
-#define vlseg6e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vbool32_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (const int32_t *)(op13), (size_t)(op14))
-#define vlseg6e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (const int32_t *)(op6), (size_t)(op7))
-#define vlseg6e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vbool64_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (const int32_t *)(op13), (size_t)(op14))
-#define vlseg6e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (const uint32_t *)(op6), (size_t)(op7))
-#define vlseg6e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vbool32_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (const uint32_t *)(op13), (size_t)(op14))
-#define vlseg6e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (const uint32_t *)(op6), (size_t)(op7))
-#define vlseg6e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vbool64_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (const uint32_t *)(op13), (size_t)(op14))
-#define vlseg7e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (const int32_t *)(op7), (size_t)(op8))
-#define vlseg7e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vbool32_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (const int32_t *)(op15), (size_t)(op16))
-#define vlseg7e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (const int32_t *)(op7), (size_t)(op8))
-#define vlseg7e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vbool64_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (const int32_t *)(op15), (size_t)(op16))
-#define vlseg7e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (const uint32_t *)(op7), (size_t)(op8))
-#define vlseg7e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vbool32_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (const uint32_t *)(op15), (size_t)(op16))
-#define vlseg7e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (const uint32_t *)(op7), (size_t)(op8))
-#define vlseg7e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vbool64_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (const uint32_t *)(op15), (size_t)(op16))
-#define vlseg8e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (const int32_t *)(op8), (size_t)(op9))
-#define vlseg8e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (vbool32_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (vint32m1_t)(op15), (vint32m1_t)(op16), (const int32_t *)(op17), (size_t)(op18))
-#define vlseg8e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (const int32_t *)(op8), (size_t)(op9))
-#define vlseg8e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (vbool64_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (vint32mf2_t)(op15), (vint32mf2_t)(op16), (const int32_t *)(op17), (size_t)(op18))
-#define vlseg8e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (const uint32_t *)(op8), (size_t)(op9))
-#define vlseg8e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (vbool32_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (vuint32m1_t)(op15), (vuint32m1_t)(op16), (const uint32_t *)(op17), (size_t)(op18))
-#define vlseg8e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (const uint32_t *)(op8), (size_t)(op9))
-#define vlseg8e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (vbool64_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (vuint32mf2_t)(op15), (vuint32mf2_t)(op16), (const uint32_t *)(op17), (size_t)(op18))
-#define vlseg2e64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (const int64_t *)(op2), (size_t)(op3))
-#define vlseg2e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vbool64_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (const int64_t *)(op5), (size_t)(op6))
-#define vlseg2e64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (const int64_t *)(op2), (size_t)(op3))
-#define vlseg2e64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vbool32_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (const int64_t *)(op5), (size_t)(op6))
-#define vlseg2e64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e64_v_i64m4((vint64m4_t *)(op0), (vint64m4_t *)(op1), (const int64_t *)(op2), (size_t)(op3))
-#define vlseg2e64_v_i64m4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e64_v_i64m4_m((vint64m4_t *)(op0), (vint64m4_t *)(op1), (vbool16_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (const int64_t *)(op5), (size_t)(op6))
-#define vlseg2e64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (const uint64_t *)(op2), (size_t)(op3))
-#define vlseg2e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vbool64_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (const uint64_t *)(op5), (size_t)(op6))
-#define vlseg2e64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (const uint64_t *)(op2), (size_t)(op3))
-#define vlseg2e64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vbool32_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (const uint64_t *)(op5), (size_t)(op6))
-#define vlseg2e64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e64_v_u64m4((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (const uint64_t *)(op2), (size_t)(op3))
-#define vlseg2e64_v_u64m4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e64_v_u64m4_m((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (vbool16_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (const uint64_t *)(op5), (size_t)(op6))
-#define vlseg3e64_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (const int64_t *)(op3), (size_t)(op4))
-#define vlseg3e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vbool64_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (const int64_t *)(op7), (size_t)(op8))
-#define vlseg3e64_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (const int64_t *)(op3), (size_t)(op4))
-#define vlseg3e64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vbool32_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (const int64_t *)(op7), (size_t)(op8))
-#define vlseg3e64_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (const uint64_t *)(op3), (size_t)(op4))
-#define vlseg3e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vbool64_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (const uint64_t *)(op7), (size_t)(op8))
-#define vlseg3e64_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (const uint64_t *)(op3), (size_t)(op4))
-#define vlseg3e64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vbool32_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (const uint64_t *)(op7), (size_t)(op8))
-#define vlseg4e64_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (const int64_t *)(op4), (size_t)(op5))
-#define vlseg4e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vbool64_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (const int64_t *)(op9), (size_t)(op10))
-#define vlseg4e64_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (const int64_t *)(op4), (size_t)(op5))
-#define vlseg4e64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (vbool32_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (vint64m2_t)(op7), (vint64m2_t)(op8), (const int64_t *)(op9), (size_t)(op10))
-#define vlseg4e64_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (const uint64_t *)(op4), (size_t)(op5))
-#define vlseg4e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vbool64_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (const uint64_t *)(op9), (size_t)(op10))
-#define vlseg4e64_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (const uint64_t *)(op4), (size_t)(op5))
-#define vlseg4e64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (vbool32_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (vuint64m2_t)(op7), (vuint64m2_t)(op8), (const uint64_t *)(op9), (size_t)(op10))
-#define vlseg5e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (const int64_t *)(op5), (size_t)(op6))
-#define vlseg5e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vbool64_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (const int64_t *)(op11), (size_t)(op12))
-#define vlseg5e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (const uint64_t *)(op5), (size_t)(op6))
-#define vlseg5e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vbool64_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (const uint64_t *)(op11), (size_t)(op12))
-#define vlseg6e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (const int64_t *)(op6), (size_t)(op7))
-#define vlseg6e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vbool64_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (const int64_t *)(op13), (size_t)(op14))
-#define vlseg6e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (const uint64_t *)(op6), (size_t)(op7))
-#define vlseg6e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vbool64_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (const uint64_t *)(op13), (size_t)(op14))
-#define vlseg7e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (const int64_t *)(op7), (size_t)(op8))
-#define vlseg7e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vbool64_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (const int64_t *)(op15), (size_t)(op16))
-#define vlseg7e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (const uint64_t *)(op7), (size_t)(op8))
-#define vlseg7e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vbool64_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (const uint64_t *)(op15), (size_t)(op16))
-#define vlseg8e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (const int64_t *)(op8), (size_t)(op9))
-#define vlseg8e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (vbool64_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (vint64m1_t)(op15), (vint64m1_t)(op16), (const int64_t *)(op17), (size_t)(op18))
-#define vlseg8e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (const uint64_t *)(op8), (size_t)(op9))
-#define vlseg8e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (vbool64_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (vuint64m1_t)(op15), (vuint64m1_t)(op16), (const uint64_t *)(op17), (size_t)(op18))
-#define vlseg3e8ff_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e8ff_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (const int8_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e8ff_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e8ff_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vbool8_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (const int8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e8ff_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e8ff_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (const int8_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e8ff_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e8ff_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vbool4_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (const int8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e8ff_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e8ff_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (const int8_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e8ff_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e8ff_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vbool16_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (const int8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e8ff_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e8ff_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (const int8_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e8ff_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e8ff_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vbool32_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (const int8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e8ff_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e8ff_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (const int8_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e8ff_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e8ff_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vbool64_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (const int8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e8ff_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e8ff_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (const uint8_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e8ff_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e8ff_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vbool8_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (const uint8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e8ff_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e8ff_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (const uint8_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e8ff_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e8ff_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vbool4_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (const uint8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e8ff_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e8ff_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (const uint8_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e8ff_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e8ff_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vbool16_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (const uint8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e8ff_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e8ff_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (const uint8_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e8ff_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e8ff_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vbool32_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (const uint8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e8ff_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e8ff_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (const uint8_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e8ff_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e8ff_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vbool64_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (const uint8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg4e8ff_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e8ff_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (const int8_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e8ff_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e8ff_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vbool8_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (const int8_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e8ff_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e8ff_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (const int8_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e8ff_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e8ff_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (vbool4_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (vint8m2_t)(op7), (vint8m2_t)(op8), (const int8_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e8ff_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e8ff_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (const int8_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e8ff_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e8ff_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vbool16_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (const int8_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e8ff_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e8ff_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (const int8_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e8ff_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e8ff_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vbool32_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (const int8_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e8ff_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e8ff_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (const int8_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e8ff_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e8ff_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vbool64_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (const int8_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e8ff_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e8ff_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (const uint8_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e8ff_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e8ff_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vbool8_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (const uint8_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e8ff_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e8ff_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (const uint8_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e8ff_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e8ff_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (vbool4_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (vuint8m2_t)(op7), (vuint8m2_t)(op8), (const uint8_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e8ff_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e8ff_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (const uint8_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e8ff_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e8ff_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vbool16_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (const uint8_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e8ff_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e8ff_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (const uint8_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e8ff_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e8ff_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vbool32_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (const uint8_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e8ff_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e8ff_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (const uint8_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e8ff_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e8ff_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vbool64_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (const uint8_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg5e8ff_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e8ff_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (const int8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e8ff_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e8ff_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vbool8_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (const int8_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e8ff_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e8ff_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (const int8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e8ff_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e8ff_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vbool16_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (const int8_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e8ff_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e8ff_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (const int8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e8ff_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e8ff_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vbool32_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (const int8_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e8ff_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e8ff_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (const int8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e8ff_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e8ff_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vbool64_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (const int8_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e8ff_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e8ff_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (const uint8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e8ff_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e8ff_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vbool8_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (const uint8_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e8ff_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e8ff_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (const uint8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e8ff_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e8ff_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vbool16_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (const uint8_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e8ff_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e8ff_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (const uint8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e8ff_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e8ff_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vbool32_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (const uint8_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e8ff_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e8ff_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (const uint8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e8ff_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e8ff_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vbool64_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (const uint8_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg6e8ff_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e8ff_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (const int8_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e8ff_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e8ff_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vbool8_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (const int8_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e8ff_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e8ff_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (const int8_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e8ff_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e8ff_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vbool16_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (const int8_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e8ff_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e8ff_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (const int8_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e8ff_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e8ff_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vbool32_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (const int8_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e8ff_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e8ff_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (const int8_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e8ff_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e8ff_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vbool64_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (const int8_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e8ff_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e8ff_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (const uint8_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e8ff_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e8ff_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vbool8_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (const uint8_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e8ff_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e8ff_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (const uint8_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e8ff_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e8ff_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vbool16_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (const uint8_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e8ff_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e8ff_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (const uint8_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e8ff_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e8ff_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vbool32_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (const uint8_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e8ff_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e8ff_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (const uint8_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e8ff_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e8ff_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vbool64_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (const uint8_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg7e8ff_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e8ff_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (const int8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e8ff_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e8ff_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vbool8_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (const int8_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e8ff_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e8ff_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (const int8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e8ff_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e8ff_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vbool16_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (const int8_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e8ff_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e8ff_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (const int8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e8ff_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e8ff_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vbool32_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (const int8_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e8ff_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e8ff_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (const int8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e8ff_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e8ff_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vbool64_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (const int8_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e8ff_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e8ff_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (const uint8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e8ff_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e8ff_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vbool8_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (const uint8_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e8ff_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e8ff_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (const uint8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e8ff_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e8ff_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vbool16_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (const uint8_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e8ff_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e8ff_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (const uint8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e8ff_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e8ff_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vbool32_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (const uint8_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e8ff_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e8ff_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (const uint8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e8ff_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e8ff_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vbool64_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (const uint8_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg8e8ff_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e8ff_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (const int8_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e8ff_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e8ff_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (vbool8_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (vint8m1_t)(op15), (vint8m1_t)(op16), (const int8_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e8ff_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e8ff_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (const int8_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e8ff_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e8ff_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (vbool16_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (vint8mf2_t)(op15), (vint8mf2_t)(op16), (const int8_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e8ff_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e8ff_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (const int8_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e8ff_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e8ff_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (vbool32_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (vint8mf4_t)(op15), (vint8mf4_t)(op16), (const int8_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e8ff_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e8ff_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (const int8_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e8ff_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e8ff_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (vbool64_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (vint8mf8_t)(op15), (vint8mf8_t)(op16), (const int8_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e8ff_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e8ff_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (const uint8_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e8ff_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e8ff_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (vbool8_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (vuint8m1_t)(op15), (vuint8m1_t)(op16), (const uint8_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e8ff_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e8ff_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (const uint8_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e8ff_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e8ff_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (vbool16_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (vuint8mf2_t)(op15), (vuint8mf2_t)(op16), (const uint8_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e8ff_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e8ff_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (const uint8_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e8ff_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e8ff_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (vbool32_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (vuint8mf4_t)(op15), (vuint8mf4_t)(op16), (const uint8_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e8ff_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e8ff_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (const uint8_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e8ff_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e8ff_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (vbool64_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (vuint8mf8_t)(op15), (vuint8mf8_t)(op16), (const uint8_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg2e16ff_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (const int16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vbool16_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (const int16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (const int16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vbool8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (const int16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_i16m4((vint16m4_t *)(op0), (vint16m4_t *)(op1), (const int16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_i16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_i16m4_m((vint16m4_t *)(op0), (vint16m4_t *)(op1), (vbool4_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (const int16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (const int16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vbool32_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (const int16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (const int16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vbool64_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (const int16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (const uint16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vbool16_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (const uint16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (const uint16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vbool8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (const uint16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_u16m4((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (const uint16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_u16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_u16m4_m((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (vbool4_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (const uint16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (const uint16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vbool32_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (const uint16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (const uint16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vbool64_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (const uint16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg3e16ff_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (const int16_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vbool16_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (const int16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e16ff_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (const int16_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vbool8_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (const int16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e16ff_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (const int16_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vbool32_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (const int16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e16ff_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (const int16_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vbool64_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (const int16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e16ff_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (const uint16_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vbool16_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (const uint16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e16ff_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (const uint16_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vbool8_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (const uint16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e16ff_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (const uint16_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vbool32_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (const uint16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e16ff_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (const uint16_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vbool64_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (const uint16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg4e16ff_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (const int16_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vbool16_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (const int16_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e16ff_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (const int16_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (vbool8_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (vint16m2_t)(op7), (vint16m2_t)(op8), (const int16_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e16ff_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (const int16_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vbool32_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (const int16_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e16ff_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (const int16_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vbool64_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (const int16_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e16ff_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (const uint16_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vbool16_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (const uint16_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e16ff_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (const uint16_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (vbool8_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (vuint16m2_t)(op7), (vuint16m2_t)(op8), (const uint16_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e16ff_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (const uint16_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vbool32_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (const uint16_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e16ff_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (const uint16_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vbool64_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (const uint16_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg5e16ff_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e16ff_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (const int16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e16ff_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e16ff_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vbool16_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (const int16_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e16ff_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e16ff_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (const int16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e16ff_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e16ff_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vbool32_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (const int16_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e16ff_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e16ff_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (const int16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e16ff_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e16ff_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vbool64_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (const int16_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e16ff_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e16ff_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (const uint16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e16ff_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e16ff_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vbool16_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (const uint16_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e16ff_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e16ff_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (const uint16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e16ff_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e16ff_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vbool32_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (const uint16_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e16ff_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e16ff_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (const uint16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e16ff_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e16ff_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vbool64_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (const uint16_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg6e16ff_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e16ff_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (const int16_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e16ff_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e16ff_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vbool16_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (const int16_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e16ff_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e16ff_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (const int16_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e16ff_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e16ff_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vbool32_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (const int16_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e16ff_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e16ff_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (const int16_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e16ff_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e16ff_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vbool64_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (const int16_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e16ff_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e16ff_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (const uint16_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e16ff_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e16ff_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vbool16_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (const uint16_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e16ff_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e16ff_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (const uint16_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e16ff_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e16ff_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vbool32_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (const uint16_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e16ff_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e16ff_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (const uint16_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e16ff_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e16ff_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vbool64_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (const uint16_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg7e16ff_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e16ff_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (const int16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e16ff_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e16ff_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vbool16_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (const int16_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e16ff_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e16ff_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (const int16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e16ff_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e16ff_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vbool32_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (const int16_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e16ff_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e16ff_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (const int16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e16ff_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e16ff_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vbool64_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (const int16_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e16ff_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e16ff_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (const uint16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e16ff_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e16ff_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vbool16_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (const uint16_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e16ff_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e16ff_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (const uint16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e16ff_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e16ff_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vbool32_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (const uint16_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e16ff_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e16ff_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (const uint16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e16ff_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e16ff_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vbool64_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (const uint16_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg8e16ff_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e16ff_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (const int16_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e16ff_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e16ff_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (vbool16_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (vint16m1_t)(op15), (vint16m1_t)(op16), (const int16_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e16ff_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e16ff_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (const int16_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e16ff_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e16ff_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (vbool32_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (vint16mf2_t)(op15), (vint16mf2_t)(op16), (const int16_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e16ff_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e16ff_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (const int16_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e16ff_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e16ff_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (vbool64_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (vint16mf4_t)(op15), (vint16mf4_t)(op16), (const int16_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e16ff_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e16ff_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (const uint16_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e16ff_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e16ff_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (vbool16_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (vuint16m1_t)(op15), (vuint16m1_t)(op16), (const uint16_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e16ff_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e16ff_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (const uint16_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e16ff_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e16ff_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (vbool32_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (vuint16mf2_t)(op15), (vuint16mf2_t)(op16), (const uint16_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e16ff_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e16ff_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (const uint16_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e16ff_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e16ff_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (vbool64_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (vuint16mf4_t)(op15), (vuint16mf4_t)(op16), (const uint16_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg2e32ff_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (const int32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vbool32_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (const int32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e32ff_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (const int32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vbool16_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (const int32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e32ff_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_i32m4((vint32m4_t *)(op0), (vint32m4_t *)(op1), (const int32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_i32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_i32m4_m((vint32m4_t *)(op0), (vint32m4_t *)(op1), (vbool8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (const int32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e32ff_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (const int32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vbool64_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (const int32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e8ff_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vbool8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (const int8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e8ff_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vbool4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (const int8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e8ff_v_i8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_i8m4((vint8m4_t *)(op0), (vint8m4_t *)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_i8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_i8m4_m((vint8m4_t *)(op0), (vint8m4_t *)(op1), (vbool2_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (const int8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e8ff_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vbool16_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (const int8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e8ff_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vbool32_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (const int8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e8ff_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vbool64_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (const int8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e32ff_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (const uint32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vbool32_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (const uint32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e32ff_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (const uint32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vbool16_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (const uint32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e32ff_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_u32m4((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (const uint32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_u32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_u32m4_m((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (vbool8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (const uint32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e32ff_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (const uint32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vbool64_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (const uint32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg3e32ff_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e32ff_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (const int32_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e32ff_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e32ff_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vbool32_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (const int32_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e32ff_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e32ff_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (const int32_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e32ff_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e32ff_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vbool16_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (const int32_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e32ff_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e32ff_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (const int32_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e32ff_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e32ff_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vbool64_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (const int32_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e32ff_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e32ff_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (const uint32_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e32ff_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e32ff_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vbool32_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (const uint32_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e32ff_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e32ff_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (const uint32_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e32ff_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e32ff_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vbool16_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (const uint32_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e32ff_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e32ff_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (const uint32_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e32ff_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e32ff_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vbool64_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (const uint32_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg4e32ff_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e32ff_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (const int32_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e32ff_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e32ff_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vbool32_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (const int32_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e32ff_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e32ff_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (const int32_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e32ff_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e32ff_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (vbool16_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (vint32m2_t)(op7), (vint32m2_t)(op8), (const int32_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e32ff_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e32ff_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (const int32_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e32ff_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e32ff_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vbool64_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (const int32_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e32ff_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e32ff_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (const uint32_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e32ff_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e32ff_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vbool32_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (const uint32_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e32ff_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e32ff_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (const uint32_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e32ff_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e32ff_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (vbool16_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (vuint32m2_t)(op7), (vuint32m2_t)(op8), (const uint32_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e32ff_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e32ff_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (const uint32_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e32ff_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e32ff_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vbool64_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (const uint32_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg5e32ff_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e32ff_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (const int32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e32ff_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e32ff_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vbool32_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (const int32_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e32ff_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e32ff_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (const int32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e32ff_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e32ff_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vbool64_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (const int32_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e32ff_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e32ff_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (const uint32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e32ff_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e32ff_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vbool32_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (const uint32_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e32ff_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e32ff_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (const uint32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e32ff_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e32ff_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vbool64_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (const uint32_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg6e32ff_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e32ff_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (const int32_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e32ff_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e32ff_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vbool32_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (const int32_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e32ff_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e32ff_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (const int32_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e32ff_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e32ff_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vbool64_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (const int32_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e32ff_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e32ff_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (const uint32_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e32ff_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e32ff_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vbool32_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (const uint32_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e32ff_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e32ff_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (const uint32_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e32ff_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e32ff_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vbool64_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (const uint32_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg7e32ff_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e32ff_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (const int32_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e32ff_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e32ff_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vbool32_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (const int32_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e32ff_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e32ff_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (const int32_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e32ff_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e32ff_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vbool64_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (const int32_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg2e8ff_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vbool8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (const uint8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e8ff_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vbool4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (const uint8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e8ff_v_u8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_u8m4((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_u8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_u8m4_m((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (vbool2_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (const uint8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e8ff_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vbool16_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (const uint8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e8ff_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vbool32_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (const uint8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e8ff_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vbool64_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (const uint8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg7e32ff_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e32ff_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (const uint32_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e32ff_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e32ff_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vbool32_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (const uint32_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e32ff_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e32ff_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (const uint32_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e32ff_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e32ff_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vbool64_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (const uint32_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg8e32ff_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e32ff_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (const int32_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e32ff_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e32ff_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (vbool32_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (vint32m1_t)(op15), (vint32m1_t)(op16), (const int32_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e32ff_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e32ff_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (const int32_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e32ff_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e32ff_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (vbool64_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (vint32mf2_t)(op15), (vint32mf2_t)(op16), (const int32_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e32ff_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e32ff_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (const uint32_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e32ff_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e32ff_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (vbool32_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (vuint32m1_t)(op15), (vuint32m1_t)(op16), (const uint32_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e32ff_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e32ff_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (const uint32_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e32ff_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e32ff_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (vbool64_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (vuint32mf2_t)(op15), (vuint32mf2_t)(op16), (const uint32_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg2e64ff_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e64ff_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (const int64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e64ff_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e64ff_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vbool64_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (const int64_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e64ff_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e64ff_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (const int64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e64ff_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e64ff_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vbool32_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (const int64_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e64ff_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e64ff_v_i64m4((vint64m4_t *)(op0), (vint64m4_t *)(op1), (const int64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e64ff_v_i64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e64ff_v_i64m4_m((vint64m4_t *)(op0), (vint64m4_t *)(op1), (vbool16_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (const int64_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e64ff_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e64ff_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (const uint64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e64ff_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e64ff_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vbool64_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (const uint64_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e64ff_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e64ff_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (const uint64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e64ff_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e64ff_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vbool32_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (const uint64_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e64ff_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e64ff_v_u64m4((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (const uint64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e64ff_v_u64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e64ff_v_u64m4_m((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (vbool16_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (const uint64_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg3e64ff_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e64ff_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (const int64_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e64ff_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e64ff_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vbool64_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (const int64_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e64ff_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e64ff_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (const int64_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e64ff_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e64ff_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vbool32_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (const int64_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e64ff_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e64ff_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (const uint64_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e64ff_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e64ff_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vbool64_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (const uint64_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e64ff_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e64ff_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (const uint64_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e64ff_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e64ff_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vbool32_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (const uint64_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg4e64ff_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e64ff_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (const int64_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e64ff_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e64ff_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vbool64_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (const int64_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e64ff_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e64ff_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (const int64_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e64ff_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e64ff_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (vbool32_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (vint64m2_t)(op7), (vint64m2_t)(op8), (const int64_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e64ff_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e64ff_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (const uint64_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e64ff_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e64ff_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vbool64_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (const uint64_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e64ff_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e64ff_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (const uint64_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e64ff_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e64ff_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (vbool32_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (vuint64m2_t)(op7), (vuint64m2_t)(op8), (const uint64_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg5e64ff_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e64ff_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (const int64_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e64ff_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e64ff_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vbool64_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (const int64_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlsseg2e8_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vbool8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (const int8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e8_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vbool4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (const int8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e8_v_i8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_i8m4((vint8m4_t *)(op0), (vint8m4_t *)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_i8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_i8m4_m((vint8m4_t *)(op0), (vint8m4_t *)(op1), (vbool2_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (const int8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e8_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vbool16_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (const int8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e8_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vbool32_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (const int8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e8_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vbool64_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (const int8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlseg5e64ff_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e64ff_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (const uint64_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e64ff_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e64ff_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vbool64_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (const uint64_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg6e64ff_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e64ff_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (const int64_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e64ff_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e64ff_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vbool64_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (const int64_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e64ff_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e64ff_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (const uint64_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e64ff_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e64ff_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vbool64_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (const uint64_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg7e64ff_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e64ff_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (const int64_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e64ff_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e64ff_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vbool64_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (const int64_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e64ff_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e64ff_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (const uint64_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e64ff_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e64ff_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vbool64_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (const uint64_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg8e64ff_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e64ff_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (const int64_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e64ff_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e64ff_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (vbool64_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (vint64m1_t)(op15), (vint64m1_t)(op16), (const int64_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e64ff_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e64ff_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (const uint64_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e64ff_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e64ff_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (vbool64_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (vuint64m1_t)(op15), (vuint64m1_t)(op16), (const uint64_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlsseg2e8_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vbool8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (const uint8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e8_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vbool4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (const uint8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e8_v_u8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_u8m4((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_u8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_u8m4_m((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (vbool2_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (const uint8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e8_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vbool16_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (const uint8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e8_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vbool32_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (const uint8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e8_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vbool64_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (const uint8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (const int8_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vbool8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (const int8_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (const int8_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vbool4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (const int8_t *)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i8m4((vint8m4_t *)(op0), (vint8m4_t *)(op1), (const int8_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i8m4_m((vint8m4_t *)(op0), (vint8m4_t *)(op1), (vbool2_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (const int8_t *)(op5), (vuint8m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (const int8_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vbool16_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (const int8_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (const int8_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vbool32_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (const int8_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (const int8_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vbool64_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (const int8_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vlsseg3e8_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (const int8_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vbool8_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (const int8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e8_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (const int8_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vbool4_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (const int8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e8_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (const int8_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vbool16_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (const int8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e8_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (const int8_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vbool32_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (const int8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e8_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (const int8_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vbool64_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (const int8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vluxseg2ei8_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (const uint8_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vbool8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (const uint8_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (const uint8_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vbool4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (const uint8_t *)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u8m4((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (const uint8_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u8m4_m((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (vbool2_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (const uint8_t *)(op5), (vuint8m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (const uint8_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vbool16_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (const uint8_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (const uint8_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vbool32_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (const uint8_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (const uint8_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vbool64_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (const uint8_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vlsseg3e8_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (const uint8_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vbool8_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (const uint8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e8_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (const uint8_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vbool4_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (const uint8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e8_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (const uint8_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vbool16_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (const uint8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e8_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (const uint8_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vbool32_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (const uint8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e8_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (const uint8_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vbool64_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (const uint8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg4e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (const int8_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vbool8_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (const int8_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e8_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (const int8_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (vbool4_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (vint8m2_t)(op7), (vint8m2_t)(op8), (const int8_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (const int8_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vbool16_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (const int8_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (const int8_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vbool32_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (const int8_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (const int8_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vbool64_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (const int8_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (const uint8_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vbool8_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (const uint8_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e8_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (const uint8_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (vbool4_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (vuint8m2_t)(op7), (vuint8m2_t)(op8), (const uint8_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (const uint8_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vbool16_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (const uint8_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (const uint8_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vbool32_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (const uint8_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (const uint8_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vbool64_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (const uint8_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg5e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (const int8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vbool8_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (const int8_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (const int8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vbool16_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (const int8_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (const int8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vbool32_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (const int8_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (const int8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vbool64_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (const int8_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (const uint8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vbool8_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (const uint8_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (const uint8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vbool16_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (const uint8_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (const uint8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vbool32_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (const uint8_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (const uint8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vbool64_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (const uint8_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg6e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (const int8_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vbool8_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (const int8_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (const int8_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vbool16_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (const int8_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (const int8_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vbool32_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (const int8_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (const int8_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vbool64_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (const int8_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (const uint8_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vbool8_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (const uint8_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (const uint8_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vbool16_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (const uint8_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (const uint8_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vbool32_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (const uint8_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (const uint8_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vbool64_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (const uint8_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg7e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (const int8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vbool8_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (const int8_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (const int8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vbool16_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (const int8_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (const int8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vbool32_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (const int8_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (const int8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vbool64_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (const int8_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (const uint8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vbool8_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (const uint8_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (const uint8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vbool16_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (const uint8_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (const uint8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vbool32_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (const uint8_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (const uint8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vbool64_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (const uint8_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg8e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (const int8_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (vbool8_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (vint8m1_t)(op15), (vint8m1_t)(op16), (const int8_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (const int8_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (vbool16_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (vint8mf2_t)(op15), (vint8mf2_t)(op16), (const int8_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (const int8_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (vbool32_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (vint8mf4_t)(op15), (vint8mf4_t)(op16), (const int8_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (const int8_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (vbool64_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (vint8mf8_t)(op15), (vint8mf8_t)(op16), (const int8_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vsseg2e8_v_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_i8m1((int8_t *)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsseg2e8_v_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_i8m2((int8_t *)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsseg2e8_v_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_i8m4((int8_t *)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsseg2e8_v_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_i8mf2((int8_t *)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsseg2e8_v_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_i8mf4((int8_t *)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsseg2e8_v_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_i8mf8((int8_t *)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vlsseg8e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (const uint8_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (vbool8_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (vuint8m1_t)(op15), (vuint8m1_t)(op16), (const uint8_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (const uint8_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (vbool16_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (vuint8mf2_t)(op15), (vuint8mf2_t)(op16), (const uint8_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (const uint8_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (vbool32_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (vuint8mf4_t)(op15), (vuint8mf4_t)(op16), (const uint8_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (const uint8_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (vbool64_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (vuint8mf8_t)(op15), (vuint8mf8_t)(op16), (const uint8_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg2e16_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (const int16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vbool16_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (const int16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (const int16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vbool8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (const int16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_i16m4((vint16m4_t *)(op0), (vint16m4_t *)(op1), (const int16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_i16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_i16m4_m((vint16m4_t *)(op0), (vint16m4_t *)(op1), (vbool4_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (const int16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (const int16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vbool32_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (const int16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (const int16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vbool64_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (const int16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (const uint16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vbool16_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (const uint16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (const uint16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vbool8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (const uint16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_u16m4((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (const uint16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_u16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_u16m4_m((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (vbool4_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (const uint16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (const uint16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vbool32_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (const uint16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (const uint16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vbool64_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (const uint16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg3e16_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (const int16_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vbool16_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (const int16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e16_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (const int16_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vbool8_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (const int16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e16_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (const int16_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vbool32_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (const int16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e16_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (const int16_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vbool64_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (const int16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e16_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (const uint16_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vbool16_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (const uint16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e16_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (const uint16_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vbool8_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (const uint16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e16_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (const uint16_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vbool32_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (const uint16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e16_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (const uint16_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vbool64_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (const uint16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg4e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (const int16_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vbool16_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (const int16_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e16_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (const int16_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (vbool8_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (vint16m2_t)(op7), (vint16m2_t)(op8), (const int16_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (const int16_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vbool32_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (const int16_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (const int16_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vbool64_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (const int16_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (const uint16_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vbool16_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (const uint16_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e16_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (const uint16_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (vbool8_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (vuint16m2_t)(op7), (vuint16m2_t)(op8), (const uint16_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (const uint16_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vbool32_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (const uint16_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (const uint16_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vbool64_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (const uint16_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg5e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (const int16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vbool16_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (const int16_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (const int16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vbool32_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (const int16_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (const int16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vbool64_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (const int16_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (const uint16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vbool16_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (const uint16_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (const uint16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vbool32_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (const uint16_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (const uint16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vbool64_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (const uint16_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg6e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (const int16_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vbool16_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (const int16_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (const int16_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vbool32_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (const int16_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (const int16_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vbool64_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (const int16_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vsseg2e8_v_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsseg2e8_v_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsseg2e8_v_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_u8m4((uint8_t *)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsseg2e8_v_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsseg2e8_v_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsseg2e8_v_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vlsseg6e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (const uint16_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vbool16_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (const uint16_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (const uint16_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vbool32_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (const uint16_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (const uint16_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vbool64_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (const uint16_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg7e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (const int16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vbool16_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (const int16_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (const int16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vbool32_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (const int16_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (const int16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vbool64_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (const int16_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (const uint16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vbool16_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (const uint16_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (const uint16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vbool32_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (const uint16_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (const uint16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vbool64_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (const uint16_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg8e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (const int16_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (vbool16_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (vint16m1_t)(op15), (vint16m1_t)(op16), (const int16_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (const int16_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (vbool32_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (vint16mf2_t)(op15), (vint16mf2_t)(op16), (const int16_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (const int16_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (vbool64_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (vint16mf4_t)(op15), (vint16mf4_t)(op16), (const int16_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (const uint16_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (vbool16_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (vuint16m1_t)(op15), (vuint16m1_t)(op16), (const uint16_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (const uint16_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (vbool32_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (vuint16mf2_t)(op15), (vuint16mf2_t)(op16), (const uint16_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (const uint16_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (vbool64_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (vuint16mf4_t)(op15), (vuint16mf4_t)(op16), (const uint16_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg2e32_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (const int32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vbool32_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (const int32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e32_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (const int32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vbool16_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (const int32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e32_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_i32m4((vint32m4_t *)(op0), (vint32m4_t *)(op1), (const int32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_i32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_i32m4_m((vint32m4_t *)(op0), (vint32m4_t *)(op1), (vbool8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (const int32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e32_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (const int32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vbool64_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (const int32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e32_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (const uint32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vbool32_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (const uint32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e32_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (const uint32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vbool16_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (const uint32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e32_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_u32m4((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (const uint32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_u32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_u32m4_m((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (vbool8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (const uint32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e32_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (const uint32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vbool64_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (const uint32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg3e32_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (const int32_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vbool32_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (const int32_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e32_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (const int32_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vbool16_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (const int32_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e32_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (const int32_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vbool64_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (const int32_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e32_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (const uint32_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vbool32_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (const uint32_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e32_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (const uint32_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vbool16_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (const uint32_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e32_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (const uint32_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vbool64_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (const uint32_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg4e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (const int32_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vbool32_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (const int32_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e32_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (const int32_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (vbool16_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (vint32m2_t)(op7), (vint32m2_t)(op8), (const int32_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (const int32_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vbool64_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (const int32_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (const uint32_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vbool32_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (const uint32_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e32_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (const uint32_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (vbool16_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (vuint32m2_t)(op7), (vuint32m2_t)(op8), (const uint32_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (const uint32_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vbool64_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (const uint32_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg5e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (const int32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vbool32_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (const int32_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (const int32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vbool64_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (const int32_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (const uint32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vbool32_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (const uint32_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (const uint32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vbool64_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (const uint32_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg6e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (const int32_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vbool32_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (const int32_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (const int32_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vbool64_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (const int32_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (const uint32_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vbool32_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (const uint32_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (const uint32_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vbool64_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (const uint32_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg7e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (const int32_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vbool32_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (const int32_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (const int32_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vbool64_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (const int32_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (const uint32_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vbool32_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (const uint32_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (const uint32_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vbool64_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (const uint32_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg8e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (const int32_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (vbool32_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (vint32m1_t)(op15), (vint32m1_t)(op16), (const int32_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (const int32_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (vbool64_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (vint32mf2_t)(op15), (vint32mf2_t)(op16), (const int32_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (const uint32_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (vbool32_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (vuint32m1_t)(op15), (vuint32m1_t)(op16), (const uint32_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (const uint32_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (vbool64_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (vuint32mf2_t)(op15), (vuint32mf2_t)(op16), (const uint32_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg2e64_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (const int64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vbool64_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (const int64_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e64_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (const int64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vbool32_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (const int64_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e64_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e64_v_i64m4((vint64m4_t *)(op0), (vint64m4_t *)(op1), (const int64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e64_v_i64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e64_v_i64m4_m((vint64m4_t *)(op0), (vint64m4_t *)(op1), (vbool16_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (const int64_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e64_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (const uint64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vbool64_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (const uint64_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e64_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (const uint64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vbool32_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (const uint64_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e64_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e64_v_u64m4((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (const uint64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e64_v_u64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e64_v_u64m4_m((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (vbool16_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (const uint64_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg3e64_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (const int64_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vbool64_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (const int64_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e64_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (const int64_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vbool32_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (const int64_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e64_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (const uint64_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vbool64_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (const uint64_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e64_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (const uint64_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vbool32_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (const uint64_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg4e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (const int64_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vbool64_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (const int64_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e64_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (const int64_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (vbool32_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (vint64m2_t)(op7), (vint64m2_t)(op8), (const int64_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (const uint64_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vbool64_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (const uint64_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e64_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (const uint64_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (vbool32_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (vuint64m2_t)(op7), (vuint64m2_t)(op8), (const uint64_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg5e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (const int64_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vbool64_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (const int64_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (const uint64_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vbool64_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (const uint64_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg6e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (const int64_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vbool64_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (const int64_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (const uint64_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vbool64_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (const uint64_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg7e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (const int64_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vbool64_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (const int64_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (const uint64_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vbool64_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (const uint64_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg8e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (const int64_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (vbool64_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (vint64m1_t)(op15), (vint64m1_t)(op16), (const int64_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (const uint64_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (vbool64_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (vuint64m1_t)(op15), (vuint64m1_t)(op16), (const uint64_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vluxseg3ei8_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (const int8_t *)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vbool8_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (const int8_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (const int8_t *)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vbool4_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (const int8_t *)(op7), (vuint8m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (const int8_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vbool16_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (const int8_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (const int8_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vbool32_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (const int8_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (const int8_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vbool64_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (const int8_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (const uint8_t *)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vbool8_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (const uint8_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (const uint8_t *)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vbool4_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (const uint8_t *)(op7), (vuint8m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (const uint8_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vbool16_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (const uint8_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (const uint8_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vbool32_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (const uint8_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (const uint8_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vbool64_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (const uint8_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg4ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (const int8_t *)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vbool8_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (const int8_t *)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (const int8_t *)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (vbool4_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (vint8m2_t)(op7), (vint8m2_t)(op8), (const int8_t *)(op9), (vuint8m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (const int8_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vbool16_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (const int8_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (const int8_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vbool32_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (const int8_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (const int8_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vbool64_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (const int8_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (const uint8_t *)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vbool8_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (const uint8_t *)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (const uint8_t *)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (vbool4_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (vuint8m2_t)(op7), (vuint8m2_t)(op8), (const uint8_t *)(op9), (vuint8m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (const uint8_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vbool16_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (const uint8_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (const uint8_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vbool32_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (const uint8_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (const uint8_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vbool64_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (const uint8_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vluxseg5ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (const int8_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vbool8_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (const int8_t *)(op11), (vuint8m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (const int8_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vbool16_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (const int8_t *)(op11), (vuint8mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (const int8_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vbool32_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (const int8_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (const int8_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vbool64_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (const int8_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (const uint8_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vbool8_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (const uint8_t *)(op11), (vuint8m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (const uint8_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vbool16_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (const uint8_t *)(op11), (vuint8mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (const uint8_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vbool32_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (const uint8_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (const uint8_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vbool64_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (const uint8_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vluxseg6ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (const int8_t *)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vbool8_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (const int8_t *)(op13), (vuint8m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (const int8_t *)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vbool16_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (const int8_t *)(op13), (vuint8mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (const int8_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vbool32_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (const int8_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (const int8_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vbool64_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (const int8_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (const uint8_t *)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vbool8_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (const uint8_t *)(op13), (vuint8m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (const uint8_t *)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vbool16_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (const uint8_t *)(op13), (vuint8mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (const uint8_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vbool32_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (const uint8_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (const uint8_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vbool64_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (const uint8_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vluxseg7ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (const int8_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vbool8_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (const int8_t *)(op15), (vuint8m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (const int8_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vbool16_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (const int8_t *)(op15), (vuint8mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (const int8_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vbool32_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (const int8_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (const int8_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vbool64_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (const int8_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (const uint8_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vbool8_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (const uint8_t *)(op15), (vuint8m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (const uint8_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vbool16_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (const uint8_t *)(op15), (vuint8mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (const uint8_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vbool32_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (const uint8_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (const uint8_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vbool64_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (const uint8_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vluxseg8ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (const int8_t *)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (vbool8_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (vint8m1_t)(op15), (vint8m1_t)(op16), (const int8_t *)(op17), (vuint8m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (const int8_t *)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (vbool16_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (vint8mf2_t)(op15), (vint8mf2_t)(op16), (const int8_t *)(op17), (vuint8mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (const int8_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (vbool32_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (vint8mf4_t)(op15), (vint8mf4_t)(op16), (const int8_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (const int8_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (vbool64_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (vint8mf8_t)(op15), (vint8mf8_t)(op16), (const int8_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (const uint8_t *)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (vbool8_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (vuint8m1_t)(op15), (vuint8m1_t)(op16), (const uint8_t *)(op17), (vuint8m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (const uint8_t *)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (vbool16_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (vuint8mf2_t)(op15), (vuint8mf2_t)(op16), (const uint8_t *)(op17), (vuint8mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (const uint8_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (vbool32_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (vuint8mf4_t)(op15), (vuint8mf4_t)(op16), (const uint8_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (const uint8_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (vbool64_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (vuint8mf8_t)(op15), (vuint8mf8_t)(op16), (const uint8_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vluxseg2ei16_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (const int8_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vbool8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (const int8_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (const int8_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vbool4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (const int8_t *)(op5), (vuint16m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i8m4((vint8m4_t *)(op0), (vint8m4_t *)(op1), (const int8_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i8m4_m((vint8m4_t *)(op0), (vint8m4_t *)(op1), (vbool2_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (const int8_t *)(op5), (vuint16m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (const int8_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vbool16_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (const int8_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (const int8_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vbool32_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (const int8_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (const int8_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vbool64_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (const int8_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (const uint8_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vbool8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (const uint8_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (const uint8_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vbool4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (const uint8_t *)(op5), (vuint16m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u8m4((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (const uint8_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u8m4_m((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (vbool2_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (const uint8_t *)(op5), (vuint16m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (const uint8_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vbool16_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (const uint8_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (const uint8_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vbool32_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (const uint8_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (const uint8_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vbool64_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (const uint8_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg3ei16_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (const int8_t *)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vbool8_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (const int8_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (const int8_t *)(op3), (vuint16m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vbool4_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (const int8_t *)(op7), (vuint16m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (const int8_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vbool16_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (const int8_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (const int8_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vbool32_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (const int8_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (const int8_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vbool64_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (const int8_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (const uint8_t *)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vbool8_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (const uint8_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (const uint8_t *)(op3), (vuint16m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vbool4_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (const uint8_t *)(op7), (vuint16m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (const uint8_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vbool16_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (const uint8_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (const uint8_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vbool32_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (const uint8_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (const uint8_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vbool64_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (const uint8_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg4ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (const int8_t *)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vbool8_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (const int8_t *)(op9), (vuint16m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (const int8_t *)(op4), (vuint16m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (vbool4_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (vint8m2_t)(op7), (vint8m2_t)(op8), (const int8_t *)(op9), (vuint16m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (const int8_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vbool16_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (const int8_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (const int8_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vbool32_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (const int8_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (const int8_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vbool64_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (const int8_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (const uint8_t *)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vbool8_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (const uint8_t *)(op9), (vuint16m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (const uint8_t *)(op4), (vuint16m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (vbool4_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (vuint8m2_t)(op7), (vuint8m2_t)(op8), (const uint8_t *)(op9), (vuint16m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (const uint8_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vbool16_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (const uint8_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (const uint8_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vbool32_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (const uint8_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (const uint8_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vbool64_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (const uint8_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vluxseg5ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (const int8_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vbool8_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (const int8_t *)(op11), (vuint16m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (const int8_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vbool16_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (const int8_t *)(op11), (vuint16m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (const int8_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vbool32_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (const int8_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (const int8_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vbool64_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (const int8_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (const uint8_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vbool8_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (const uint8_t *)(op11), (vuint16m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (const uint8_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vbool16_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (const uint8_t *)(op11), (vuint16m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (const uint8_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vbool32_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (const uint8_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (const uint8_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vbool64_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (const uint8_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vluxseg6ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (const int8_t *)(op6), (vuint16m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vbool8_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (const int8_t *)(op13), (vuint16m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (const int8_t *)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vbool16_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (const int8_t *)(op13), (vuint16m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (const int8_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vbool32_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (const int8_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (const int8_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vbool64_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (const int8_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (const uint8_t *)(op6), (vuint16m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vbool8_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (const uint8_t *)(op13), (vuint16m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (const uint8_t *)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vbool16_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (const uint8_t *)(op13), (vuint16m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (const uint8_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vbool32_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (const uint8_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (const uint8_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vbool64_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (const uint8_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vluxseg7ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (const int8_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vbool8_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (const int8_t *)(op15), (vuint16m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (const int8_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vbool16_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (const int8_t *)(op15), (vuint16m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (const int8_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vbool32_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (const int8_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (const int8_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vbool64_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (const int8_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (const uint8_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vbool8_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (const uint8_t *)(op15), (vuint16m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (const uint8_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vbool16_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (const uint8_t *)(op15), (vuint16m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (const uint8_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vbool32_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (const uint8_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (const uint8_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vbool64_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (const uint8_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vluxseg8ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (const int8_t *)(op8), (vuint16m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (vbool8_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (vint8m1_t)(op15), (vint8m1_t)(op16), (const int8_t *)(op17), (vuint16m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (const int8_t *)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (vbool16_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (vint8mf2_t)(op15), (vint8mf2_t)(op16), (const int8_t *)(op17), (vuint16m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (const int8_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (vbool32_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (vint8mf4_t)(op15), (vint8mf4_t)(op16), (const int8_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (const int8_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (vbool64_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (vint8mf8_t)(op15), (vint8mf8_t)(op16), (const int8_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (const uint8_t *)(op8), (vuint16m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (vbool8_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (vuint8m1_t)(op15), (vuint8m1_t)(op16), (const uint8_t *)(op17), (vuint16m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (const uint8_t *)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (vbool16_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (vuint8mf2_t)(op15), (vuint8mf2_t)(op16), (const uint8_t *)(op17), (vuint16m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (const uint8_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (vbool32_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (vuint8mf4_t)(op15), (vuint8mf4_t)(op16), (const uint8_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (const uint8_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (vbool64_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (vuint8mf8_t)(op15), (vuint8mf8_t)(op16), (const uint8_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vluxseg2ei32_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (const int8_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vbool8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (const int8_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (const int8_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vbool4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (const int8_t *)(op5), (vuint32m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (const int8_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vbool16_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (const int8_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (const int8_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vbool32_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (const int8_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (const int8_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vbool64_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (const int8_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (const uint8_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vbool8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (const uint8_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (const uint8_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vbool4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (const uint8_t *)(op5), (vuint32m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (const uint8_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vbool16_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (const uint8_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (const uint8_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vbool32_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (const uint8_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (const uint8_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vbool64_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (const uint8_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg3ei32_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (const int8_t *)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vbool8_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (const int8_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (const int8_t *)(op3), (vuint32m8_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vbool4_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (const int8_t *)(op7), (vuint32m8_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (const int8_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vbool16_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (const int8_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (const int8_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vbool32_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (const int8_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (const int8_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vbool64_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (const int8_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (const uint8_t *)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vbool8_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (const uint8_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (const uint8_t *)(op3), (vuint32m8_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vbool4_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (const uint8_t *)(op7), (vuint32m8_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (const uint8_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vbool16_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (const uint8_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (const uint8_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vbool32_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (const uint8_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (const uint8_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vbool64_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (const uint8_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg4ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (const int8_t *)(op4), (vuint32m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vbool8_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (const int8_t *)(op9), (vuint32m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (const int8_t *)(op4), (vuint32m8_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (vbool4_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (vint8m2_t)(op7), (vint8m2_t)(op8), (const int8_t *)(op9), (vuint32m8_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (const int8_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vbool16_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (const int8_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (const int8_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vbool32_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (const int8_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (const int8_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vbool64_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (const int8_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (const uint8_t *)(op4), (vuint32m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vbool8_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (const uint8_t *)(op9), (vuint32m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (const uint8_t *)(op4), (vuint32m8_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (vbool4_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (vuint8m2_t)(op7), (vuint8m2_t)(op8), (const uint8_t *)(op9), (vuint32m8_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (const uint8_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vbool16_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (const uint8_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (const uint8_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vbool32_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (const uint8_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (const uint8_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vbool64_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (const uint8_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vluxseg5ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (const int8_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vbool8_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (const int8_t *)(op11), (vuint32m4_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (const int8_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vbool16_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (const int8_t *)(op11), (vuint32m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (const int8_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vbool32_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (const int8_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (const int8_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vbool64_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (const int8_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (const uint8_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vbool8_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (const uint8_t *)(op11), (vuint32m4_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (const uint8_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vbool16_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (const uint8_t *)(op11), (vuint32m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (const uint8_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vbool32_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (const uint8_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (const uint8_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vbool64_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (const uint8_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vluxseg6ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (const int8_t *)(op6), (vuint32m4_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vbool8_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (const int8_t *)(op13), (vuint32m4_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (const int8_t *)(op6), (vuint32m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vbool16_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (const int8_t *)(op13), (vuint32m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (const int8_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vbool32_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (const int8_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (const int8_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vbool64_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (const int8_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (const uint8_t *)(op6), (vuint32m4_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vbool8_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (const uint8_t *)(op13), (vuint32m4_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (const uint8_t *)(op6), (vuint32m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vbool16_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (const uint8_t *)(op13), (vuint32m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (const uint8_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vbool32_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (const uint8_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (const uint8_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vbool64_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (const uint8_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vluxseg7ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (const int8_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vbool8_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (const int8_t *)(op15), (vuint32m4_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (const int8_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vbool16_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (const int8_t *)(op15), (vuint32m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (const int8_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vbool32_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (const int8_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (const int8_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vbool64_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (const int8_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (const uint8_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vbool8_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (const uint8_t *)(op15), (vuint32m4_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (const uint8_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vbool16_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (const uint8_t *)(op15), (vuint32m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (const uint8_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vbool32_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (const uint8_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (const uint8_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vbool64_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (const uint8_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vluxseg8ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (const int8_t *)(op8), (vuint32m4_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (vbool8_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (vint8m1_t)(op15), (vint8m1_t)(op16), (const int8_t *)(op17), (vuint32m4_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (const int8_t *)(op8), (vuint32m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (vbool16_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (vint8mf2_t)(op15), (vint8mf2_t)(op16), (const int8_t *)(op17), (vuint32m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (const int8_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (vbool32_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (vint8mf4_t)(op15), (vint8mf4_t)(op16), (const int8_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (const int8_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (vbool64_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (vint8mf8_t)(op15), (vint8mf8_t)(op16), (const int8_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (const uint8_t *)(op8), (vuint32m4_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (vbool8_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (vuint8m1_t)(op15), (vuint8m1_t)(op16), (const uint8_t *)(op17), (vuint32m4_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (const uint8_t *)(op8), (vuint32m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (vbool16_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (vuint8mf2_t)(op15), (vuint8mf2_t)(op16), (const uint8_t *)(op17), (vuint32m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (const uint8_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (vbool32_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (vuint8mf4_t)(op15), (vuint8mf4_t)(op16), (const uint8_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (const uint8_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (vbool64_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (vuint8mf8_t)(op15), (vuint8mf8_t)(op16), (const uint8_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vluxseg2ei64_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (const int8_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vbool8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (const int8_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (const int8_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vbool16_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (const int8_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (const int8_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vbool32_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (const int8_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (const int8_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vbool64_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (const int8_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (const uint8_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vbool8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (const uint8_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (const uint8_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vbool16_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (const uint8_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (const uint8_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vbool32_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (const uint8_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (const uint8_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vbool64_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (const uint8_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg3ei64_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (const int8_t *)(op3), (vuint64m8_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vbool8_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (const int8_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (const int8_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vbool16_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (const int8_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (const int8_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vbool32_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (const int8_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (const int8_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vbool64_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (const int8_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (const uint8_t *)(op3), (vuint64m8_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vbool8_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (const uint8_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (const uint8_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vbool16_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (const uint8_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (const uint8_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vbool32_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (const uint8_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (const uint8_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vbool64_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (const uint8_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg4ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (const int8_t *)(op4), (vuint64m8_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vbool8_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (const int8_t *)(op9), (vuint64m8_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (const int8_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vbool16_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (const int8_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (const int8_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vbool32_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (const int8_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (const int8_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vbool64_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (const int8_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (const uint8_t *)(op4), (vuint64m8_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vbool8_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (const uint8_t *)(op9), (vuint64m8_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (const uint8_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vbool16_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (const uint8_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (const uint8_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vbool32_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (const uint8_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (const uint8_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vbool64_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (const uint8_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vluxseg5ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (const int8_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vbool8_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (const int8_t *)(op11), (vuint64m8_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (const int8_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vbool16_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (const int8_t *)(op11), (vuint64m4_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (const int8_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vbool32_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (const int8_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (const int8_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vbool64_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (const int8_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (const uint8_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vbool8_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (const uint8_t *)(op11), (vuint64m8_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (const uint8_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vbool16_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (const uint8_t *)(op11), (vuint64m4_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (const uint8_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vbool32_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (const uint8_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (const uint8_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vbool64_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (const uint8_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vluxseg6ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (const int8_t *)(op6), (vuint64m8_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vbool8_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (const int8_t *)(op13), (vuint64m8_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (const int8_t *)(op6), (vuint64m4_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vbool16_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (const int8_t *)(op13), (vuint64m4_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (const int8_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vbool32_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (const int8_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (const int8_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vbool64_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (const int8_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (const uint8_t *)(op6), (vuint64m8_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vbool8_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (const uint8_t *)(op13), (vuint64m8_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (const uint8_t *)(op6), (vuint64m4_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vbool16_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (const uint8_t *)(op13), (vuint64m4_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (const uint8_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vbool32_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (const uint8_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (const uint8_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vbool64_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (const uint8_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vluxseg7ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (const int8_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vbool8_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (const int8_t *)(op15), (vuint64m8_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (const int8_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vbool16_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (const int8_t *)(op15), (vuint64m4_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (const int8_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vbool32_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (const int8_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (const int8_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vbool64_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (const int8_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (const uint8_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vbool8_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (const uint8_t *)(op15), (vuint64m8_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (const uint8_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vbool16_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (const uint8_t *)(op15), (vuint64m4_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (const uint8_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vbool32_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (const uint8_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (const uint8_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vbool64_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (const uint8_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vluxseg8ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (const int8_t *)(op8), (vuint64m8_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (vbool8_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (vint8m1_t)(op15), (vint8m1_t)(op16), (const int8_t *)(op17), (vuint64m8_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (const int8_t *)(op8), (vuint64m4_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (vbool16_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (vint8mf2_t)(op15), (vint8mf2_t)(op16), (const int8_t *)(op17), (vuint64m4_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (const int8_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (vbool32_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (vint8mf4_t)(op15), (vint8mf4_t)(op16), (const int8_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (const int8_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (vbool64_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (vint8mf8_t)(op15), (vint8mf8_t)(op16), (const int8_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (const uint8_t *)(op8), (vuint64m8_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (vbool8_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (vuint8m1_t)(op15), (vuint8m1_t)(op16), (const uint8_t *)(op17), (vuint64m8_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (const uint8_t *)(op8), (vuint64m4_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (vbool16_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (vuint8mf2_t)(op15), (vuint8mf2_t)(op16), (const uint8_t *)(op17), (vuint64m4_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (const uint8_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (vbool32_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (vuint8mf4_t)(op15), (vuint8mf4_t)(op16), (const uint8_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (const uint8_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (vbool64_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (vuint8mf8_t)(op15), (vuint8mf8_t)(op16), (const uint8_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vluxseg2ei8_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (const int16_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vbool16_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (const int16_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (const int16_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vbool8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (const int16_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i16m4((vint16m4_t *)(op0), (vint16m4_t *)(op1), (const int16_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i16m4_m((vint16m4_t *)(op0), (vint16m4_t *)(op1), (vbool4_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (const int16_t *)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (const int16_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vbool32_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (const int16_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (const int16_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vbool64_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (const int16_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (const uint16_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vbool16_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (const uint16_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (const uint16_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vbool8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (const uint16_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u16m4((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (const uint16_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u16m4_m((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (vbool4_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (const uint16_t *)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (const uint16_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vbool32_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (const uint16_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (const uint16_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vbool64_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (const uint16_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg3ei8_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (const int16_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vbool16_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (const int16_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (const int16_t *)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vbool8_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (const int16_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (const int16_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vbool32_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (const int16_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (const int16_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vbool64_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (const int16_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (const uint16_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vbool16_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (const uint16_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (const uint16_t *)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vbool8_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (const uint16_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (const uint16_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vbool32_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (const uint16_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (const uint16_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vbool64_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (const uint16_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg4ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (const int16_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vbool16_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (const int16_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (const int16_t *)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (vbool8_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (vint16m2_t)(op7), (vint16m2_t)(op8), (const int16_t *)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (const int16_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vbool32_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (const int16_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (const int16_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vbool64_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (const int16_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (const uint16_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vbool16_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (const uint16_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (const uint16_t *)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (vbool8_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (vuint16m2_t)(op7), (vuint16m2_t)(op8), (const uint16_t *)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (const uint16_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vbool32_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (const uint16_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (const uint16_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vbool64_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (const uint16_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vluxseg5ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (const int16_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vbool16_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (const int16_t *)(op11), (vuint8mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (const int16_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vbool32_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (const int16_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (const int16_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vbool64_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (const int16_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (const uint16_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vbool16_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (const uint16_t *)(op11), (vuint8mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (const uint16_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vbool32_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (const uint16_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (const uint16_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vbool64_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (const uint16_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vluxseg6ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (const int16_t *)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vbool16_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (const int16_t *)(op13), (vuint8mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (const int16_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vbool32_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (const int16_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (const int16_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vbool64_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (const int16_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (const uint16_t *)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vbool16_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (const uint16_t *)(op13), (vuint8mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (const uint16_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vbool32_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (const uint16_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (const uint16_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vbool64_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (const uint16_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vluxseg7ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (const int16_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vbool16_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (const int16_t *)(op15), (vuint8mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (const int16_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vbool32_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (const int16_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (const int16_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vbool64_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (const int16_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (const uint16_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vbool16_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (const uint16_t *)(op15), (vuint8mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (const uint16_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vbool32_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (const uint16_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (const uint16_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vbool64_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (const uint16_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vluxseg8ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (const int16_t *)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (vbool16_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (vint16m1_t)(op15), (vint16m1_t)(op16), (const int16_t *)(op17), (vuint8mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (const int16_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (vbool32_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (vint16mf2_t)(op15), (vint16mf2_t)(op16), (const int16_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (const int16_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (vbool64_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (vint16mf4_t)(op15), (vint16mf4_t)(op16), (const int16_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (const uint16_t *)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (vbool16_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (vuint16m1_t)(op15), (vuint16m1_t)(op16), (const uint16_t *)(op17), (vuint8mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (const uint16_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (vbool32_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (vuint16mf2_t)(op15), (vuint16mf2_t)(op16), (const uint16_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (const uint16_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (vbool64_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (vuint16mf4_t)(op15), (vuint16mf4_t)(op16), (const uint16_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vluxseg2ei16_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (const int16_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vbool16_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (const int16_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (const int16_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vbool8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (const int16_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i16m4((vint16m4_t *)(op0), (vint16m4_t *)(op1), (const int16_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i16m4_m((vint16m4_t *)(op0), (vint16m4_t *)(op1), (vbool4_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (const int16_t *)(op5), (vuint16m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (const int16_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vbool32_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (const int16_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (const int16_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vbool64_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (const int16_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (const uint16_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vbool16_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (const uint16_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (const uint16_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vbool8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (const uint16_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u16m4((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (const uint16_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u16m4_m((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (vbool4_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (const uint16_t *)(op5), (vuint16m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (const uint16_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vbool32_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (const uint16_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (const uint16_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vbool64_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (const uint16_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg3ei16_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (const int16_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vbool16_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (const int16_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (const int16_t *)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vbool8_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (const int16_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (const int16_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vbool32_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (const int16_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (const int16_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vbool64_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (const int16_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (const uint16_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vbool16_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (const uint16_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (const uint16_t *)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vbool8_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (const uint16_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (const uint16_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vbool32_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (const uint16_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (const uint16_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vbool64_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (const uint16_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg4ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (const int16_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vbool16_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (const int16_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (const int16_t *)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (vbool8_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (vint16m2_t)(op7), (vint16m2_t)(op8), (const int16_t *)(op9), (vuint16m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (const int16_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vbool32_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (const int16_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (const int16_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vbool64_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (const int16_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (const uint16_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vbool16_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (const uint16_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (const uint16_t *)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (vbool8_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (vuint16m2_t)(op7), (vuint16m2_t)(op8), (const uint16_t *)(op9), (vuint16m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (const uint16_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vbool32_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (const uint16_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (const uint16_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vbool64_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (const uint16_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vluxseg5ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (const int16_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vbool16_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (const int16_t *)(op11), (vuint16m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (const int16_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vbool32_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (const int16_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (const int16_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vbool64_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (const int16_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (const uint16_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vbool16_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (const uint16_t *)(op11), (vuint16m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (const uint16_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vbool32_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (const uint16_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (const uint16_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vbool64_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (const uint16_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vluxseg6ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (const int16_t *)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vbool16_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (const int16_t *)(op13), (vuint16m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (const int16_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vbool32_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (const int16_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (const int16_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vbool64_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (const int16_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (const uint16_t *)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vbool16_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (const uint16_t *)(op13), (vuint16m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (const uint16_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vbool32_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (const uint16_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (const uint16_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vbool64_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (const uint16_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vluxseg7ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (const int16_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vbool16_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (const int16_t *)(op15), (vuint16m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (const int16_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vbool32_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (const int16_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (const int16_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vbool64_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (const int16_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (const uint16_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vbool16_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (const uint16_t *)(op15), (vuint16m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (const uint16_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vbool32_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (const uint16_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (const uint16_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vbool64_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (const uint16_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vluxseg8ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (const int16_t *)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (vbool16_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (vint16m1_t)(op15), (vint16m1_t)(op16), (const int16_t *)(op17), (vuint16m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (const int16_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (vbool32_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (vint16mf2_t)(op15), (vint16mf2_t)(op16), (const int16_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (const int16_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (vbool64_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (vint16mf4_t)(op15), (vint16mf4_t)(op16), (const int16_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (const uint16_t *)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (vbool16_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (vuint16m1_t)(op15), (vuint16m1_t)(op16), (const uint16_t *)(op17), (vuint16m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (const uint16_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (vbool32_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (vuint16mf2_t)(op15), (vuint16mf2_t)(op16), (const uint16_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (const uint16_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (vbool64_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (vuint16mf4_t)(op15), (vuint16mf4_t)(op16), (const uint16_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vluxseg2ei32_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (const int16_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vbool16_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (const int16_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (const int16_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vbool8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (const int16_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i16m4((vint16m4_t *)(op0), (vint16m4_t *)(op1), (const int16_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i16m4_m((vint16m4_t *)(op0), (vint16m4_t *)(op1), (vbool4_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (const int16_t *)(op5), (vuint32m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (const int16_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vbool32_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (const int16_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (const int16_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vbool64_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (const int16_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (const uint16_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vbool16_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (const uint16_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (const uint16_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vbool8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (const uint16_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u16m4((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (const uint16_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u16m4_m((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (vbool4_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (const uint16_t *)(op5), (vuint32m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (const uint16_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vbool32_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (const uint16_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (const uint16_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vbool64_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (const uint16_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg3ei32_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (const int16_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vbool16_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (const int16_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (const int16_t *)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vbool8_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (const int16_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (const int16_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vbool32_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (const int16_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (const int16_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vbool64_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (const int16_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (const uint16_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vbool16_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (const uint16_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (const uint16_t *)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vbool8_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (const uint16_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (const uint16_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vbool32_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (const uint16_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (const uint16_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vbool64_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (const uint16_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg4ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (const int16_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vbool16_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (const int16_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (const int16_t *)(op4), (vuint32m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (vbool8_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (vint16m2_t)(op7), (vint16m2_t)(op8), (const int16_t *)(op9), (vuint32m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (const int16_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vbool32_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (const int16_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (const int16_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vbool64_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (const int16_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (const uint16_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vbool16_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (const uint16_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (const uint16_t *)(op4), (vuint32m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (vbool8_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (vuint16m2_t)(op7), (vuint16m2_t)(op8), (const uint16_t *)(op9), (vuint32m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (const uint16_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vbool32_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (const uint16_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (const uint16_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vbool64_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (const uint16_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vluxseg5ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (const int16_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vbool16_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (const int16_t *)(op11), (vuint32m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (const int16_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vbool32_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (const int16_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (const int16_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vbool64_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (const int16_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (const uint16_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vbool16_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (const uint16_t *)(op11), (vuint32m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (const uint16_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vbool32_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (const uint16_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (const uint16_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vbool64_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (const uint16_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vluxseg6ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (const int16_t *)(op6), (vuint32m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vbool16_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (const int16_t *)(op13), (vuint32m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (const int16_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vbool32_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (const int16_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (const int16_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vbool64_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (const int16_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (const uint16_t *)(op6), (vuint32m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vbool16_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (const uint16_t *)(op13), (vuint32m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (const uint16_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vbool32_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (const uint16_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (const uint16_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vbool64_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (const uint16_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vluxseg7ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (const int16_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vbool16_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (const int16_t *)(op15), (vuint32m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (const int16_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vbool32_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (const int16_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (const int16_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vbool64_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (const int16_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (const uint16_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vbool16_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (const uint16_t *)(op15), (vuint32m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (const uint16_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vbool32_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (const uint16_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (const uint16_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vbool64_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (const uint16_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vluxseg8ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (const int16_t *)(op8), (vuint32m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (vbool16_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (vint16m1_t)(op15), (vint16m1_t)(op16), (const int16_t *)(op17), (vuint32m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (const int16_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (vbool32_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (vint16mf2_t)(op15), (vint16mf2_t)(op16), (const int16_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (const int16_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (vbool64_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (vint16mf4_t)(op15), (vint16mf4_t)(op16), (const int16_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vssseg2e8_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_i8m1((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_i8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vssseg2e8_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_i8m2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_i8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vssseg2e8_v_i8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_i8m4((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_i8m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (size_t)(op5))
-#define vssseg2e8_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_i8mf2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vssseg2e8_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_i8mf4((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vssseg2e8_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_i8mf8((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg8ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (const uint16_t *)(op8), (vuint32m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (vbool16_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (vuint16m1_t)(op15), (vuint16m1_t)(op16), (const uint16_t *)(op17), (vuint32m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (const uint16_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (vbool32_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (vuint16mf2_t)(op15), (vuint16mf2_t)(op16), (const uint16_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (const uint16_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (vbool64_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (vuint16mf4_t)(op15), (vuint16mf4_t)(op16), (const uint16_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vluxseg2ei64_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (const int16_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vbool16_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (const int16_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (const int16_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vbool8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (const int16_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (const int16_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vbool32_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (const int16_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (const int16_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vbool64_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (const int16_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (const uint16_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vbool16_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (const uint16_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (const uint16_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vbool8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (const uint16_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (const uint16_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vbool32_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (const uint16_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (const uint16_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vbool64_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (const uint16_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg3ei64_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (const int16_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vbool16_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (const int16_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (const int16_t *)(op3), (vuint64m8_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vbool8_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (const int16_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (const int16_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vbool32_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (const int16_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (const int16_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vbool64_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (const int16_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (const uint16_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vbool16_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (const uint16_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (const uint16_t *)(op3), (vuint64m8_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vbool8_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (const uint16_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (const uint16_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vbool32_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (const uint16_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (const uint16_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vbool64_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (const uint16_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg4ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (const int16_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vbool16_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (const int16_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (const int16_t *)(op4), (vuint64m8_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (vbool8_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (vint16m2_t)(op7), (vint16m2_t)(op8), (const int16_t *)(op9), (vuint64m8_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (const int16_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vbool32_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (const int16_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (const int16_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vbool64_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (const int16_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (const uint16_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vbool16_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (const uint16_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (const uint16_t *)(op4), (vuint64m8_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (vbool8_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (vuint16m2_t)(op7), (vuint16m2_t)(op8), (const uint16_t *)(op9), (vuint64m8_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (const uint16_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vbool32_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (const uint16_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (const uint16_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vbool64_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (const uint16_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vluxseg5ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (const int16_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vbool16_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (const int16_t *)(op11), (vuint64m4_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (const int16_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vbool32_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (const int16_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (const int16_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vbool64_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (const int16_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (const uint16_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vbool16_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (const uint16_t *)(op11), (vuint64m4_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (const uint16_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vbool32_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (const uint16_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (const uint16_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vbool64_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (const uint16_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vluxseg6ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (const int16_t *)(op6), (vuint64m4_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vbool16_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (const int16_t *)(op13), (vuint64m4_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (const int16_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vbool32_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (const int16_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (const int16_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vbool64_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (const int16_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vssseg2e8_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_u8m1((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_u8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vssseg2e8_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_u8m2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_u8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vssseg2e8_v_u8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_u8m4((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_u8m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (size_t)(op5))
-#define vssseg2e8_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_u8mf2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vssseg2e8_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_u8mf4((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vssseg2e8_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_u8mf8((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg6ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (const uint16_t *)(op6), (vuint64m4_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vbool16_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (const uint16_t *)(op13), (vuint64m4_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (const uint16_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vbool32_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (const uint16_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (const uint16_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vbool64_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (const uint16_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vluxseg7ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (const int16_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vbool16_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (const int16_t *)(op15), (vuint64m4_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (const int16_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vbool32_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (const int16_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (const int16_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vbool64_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (const int16_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (const uint16_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vbool16_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (const uint16_t *)(op15), (vuint64m4_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (const uint16_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vbool32_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (const uint16_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (const uint16_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vbool64_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (const uint16_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vluxseg8ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (const int16_t *)(op8), (vuint64m4_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (vbool16_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (vint16m1_t)(op15), (vint16m1_t)(op16), (const int16_t *)(op17), (vuint64m4_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (const int16_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (vbool32_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (vint16mf2_t)(op15), (vint16mf2_t)(op16), (const int16_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (const int16_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (vbool64_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (vint16mf4_t)(op15), (vint16mf4_t)(op16), (const int16_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (const uint16_t *)(op8), (vuint64m4_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (vbool16_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (vuint16m1_t)(op15), (vuint16m1_t)(op16), (const uint16_t *)(op17), (vuint64m4_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (const uint16_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (vbool32_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (vuint16mf2_t)(op15), (vuint16mf2_t)(op16), (const uint16_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (const uint16_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (vbool64_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (vuint16mf4_t)(op15), (vuint16mf4_t)(op16), (const uint16_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vluxseg2ei8_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (const int32_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vbool32_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (const int32_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (const int32_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vbool16_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (const int32_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i32m4((vint32m4_t *)(op0), (vint32m4_t *)(op1), (const int32_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i32m4_m((vint32m4_t *)(op0), (vint32m4_t *)(op1), (vbool8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (const int32_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (const int32_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vbool64_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (const int32_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (const uint32_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vbool32_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (const uint32_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (const uint32_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vbool16_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (const uint32_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u32m4((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (const uint32_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u32m4_m((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (vbool8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (const uint32_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (const uint32_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vbool64_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (const uint32_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg3ei8_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (const int32_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vbool32_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (const int32_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (const int32_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vbool16_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (const int32_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (const int32_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vbool64_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (const int32_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (const uint32_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vbool32_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (const uint32_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (const uint32_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vbool16_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (const uint32_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (const uint32_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vbool64_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (const uint32_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg4ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (const int32_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vbool32_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (const int32_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (const int32_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (vbool16_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (vint32m2_t)(op7), (vint32m2_t)(op8), (const int32_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (const int32_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vbool64_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (const int32_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vsuxseg2ei8_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i8m2((int8_t *)(op0), (vuint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i8m4((int8_t *)(op0), (vuint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i8m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (vuint8m4_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg4ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (const uint32_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vbool32_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (const uint32_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (const uint32_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (vbool16_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (vuint32m2_t)(op7), (vuint32m2_t)(op8), (const uint32_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (const uint32_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vbool64_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (const uint32_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vluxseg5ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (const int32_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vbool32_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (const int32_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (const int32_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vbool64_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (const int32_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (const uint32_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vbool32_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (const uint32_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (const uint32_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vbool64_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (const uint32_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vluxseg6ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (const int32_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vbool32_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (const int32_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (const int32_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vbool64_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (const int32_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (const uint32_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vbool32_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (const uint32_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (const uint32_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vbool64_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (const uint32_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vluxseg7ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (const int32_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vbool32_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (const int32_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (const int32_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vbool64_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (const int32_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (const uint32_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vbool32_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (const uint32_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (const uint32_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vbool64_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (const uint32_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vluxseg8ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (const int32_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (vbool32_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (vint32m1_t)(op15), (vint32m1_t)(op16), (const int32_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (const int32_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (vbool64_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (vint32mf2_t)(op15), (vint32mf2_t)(op16), (const int32_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (const uint32_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (vbool32_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (vuint32m1_t)(op15), (vuint32m1_t)(op16), (const uint32_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (const uint32_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (vbool64_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (vuint32mf2_t)(op15), (vuint32mf2_t)(op16), (const uint32_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vluxseg2ei16_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (const int32_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vbool32_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (const int32_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (const int32_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vbool16_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (const int32_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i32m4((vint32m4_t *)(op0), (vint32m4_t *)(op1), (const int32_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i32m4_m((vint32m4_t *)(op0), (vint32m4_t *)(op1), (vbool8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (const int32_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (const int32_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vbool64_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (const int32_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg2ei8_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u8m4((uint8_t *)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u8m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg2ei16_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (const uint32_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vbool32_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (const uint32_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (const uint32_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vbool16_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (const uint32_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u32m4((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (const uint32_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u32m4_m((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (vbool8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (const uint32_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (const uint32_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vbool64_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (const uint32_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg3ei16_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (const int32_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vbool32_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (const int32_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (const int32_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vbool16_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (const int32_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (const int32_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vbool64_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (const int32_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (const uint32_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vbool32_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (const uint32_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (const uint32_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vbool16_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (const uint32_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (const uint32_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vbool64_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (const uint32_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg4ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (const int32_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vbool32_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (const int32_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (const int32_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (vbool16_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (vint32m2_t)(op7), (vint32m2_t)(op8), (const int32_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (const int32_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vbool64_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (const int32_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (const uint32_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vbool32_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (const uint32_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (const uint32_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (vbool16_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (vuint32m2_t)(op7), (vuint32m2_t)(op8), (const uint32_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (const uint32_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vbool64_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (const uint32_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vluxseg5ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (const int32_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vbool32_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (const int32_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (const int32_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vbool64_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (const int32_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (const uint32_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vbool32_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (const uint32_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (const uint32_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vbool64_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (const uint32_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vluxseg6ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (const int32_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vbool32_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (const int32_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (const int32_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vbool64_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (const int32_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (const uint32_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vbool32_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (const uint32_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (const uint32_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vbool64_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (const uint32_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vluxseg7ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (const int32_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vbool32_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (const int32_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (const int32_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vbool64_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (const int32_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (const uint32_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vbool32_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (const uint32_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (const uint32_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vbool64_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (const uint32_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vluxseg8ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (const int32_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (vbool32_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (vint32m1_t)(op15), (vint32m1_t)(op16), (const int32_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (const int32_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (vbool64_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (vint32mf2_t)(op15), (vint32mf2_t)(op16), (const int32_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (const uint32_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (vbool32_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (vuint32m1_t)(op15), (vuint32m1_t)(op16), (const uint32_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (const uint32_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (vbool64_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (vuint32mf2_t)(op15), (vuint32mf2_t)(op16), (const uint32_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vluxseg2ei32_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (const int32_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vbool32_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (const int32_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (const int32_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vbool16_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (const int32_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i32m4((vint32m4_t *)(op0), (vint32m4_t *)(op1), (const int32_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i32m4_m((vint32m4_t *)(op0), (vint32m4_t *)(op1), (vbool8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (const int32_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (const int32_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vbool64_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (const int32_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (const uint32_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vbool32_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (const uint32_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (const uint32_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vbool16_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (const uint32_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u32m4((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (const uint32_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u32m4_m((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (vbool8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (const uint32_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (const uint32_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vbool64_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (const uint32_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg3ei32_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (const int32_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vbool32_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (const int32_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (const int32_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vbool16_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (const int32_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (const int32_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vbool64_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (const int32_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (const uint32_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vbool32_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (const uint32_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (const uint32_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vbool16_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (const uint32_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (const uint32_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vbool64_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (const uint32_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg4ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (const int32_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vbool32_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (const int32_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (const int32_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (vbool16_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (vint32m2_t)(op7), (vint32m2_t)(op8), (const int32_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (const int32_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vbool64_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (const int32_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (const uint32_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vbool32_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (const uint32_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (const uint32_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (vbool16_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (vuint32m2_t)(op7), (vuint32m2_t)(op8), (const uint32_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (const uint32_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vbool64_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (const uint32_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vluxseg5ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (const int32_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vbool32_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (const int32_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (const int32_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vbool64_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (const int32_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (const uint32_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vbool32_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (const uint32_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (const uint32_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vbool64_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (const uint32_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vluxseg6ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (const int32_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vbool32_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (const int32_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (const int32_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vbool64_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (const int32_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (const uint32_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vbool32_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (const uint32_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (const uint32_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vbool64_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (const uint32_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vluxseg7ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (const int32_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vbool32_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (const int32_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (const int32_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vbool64_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (const int32_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (const uint32_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vbool32_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (const uint32_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (const uint32_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vbool64_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (const uint32_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vluxseg8ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (const int32_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (vbool32_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (vint32m1_t)(op15), (vint32m1_t)(op16), (const int32_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (const int32_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (vbool64_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (vint32mf2_t)(op15), (vint32mf2_t)(op16), (const int32_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (const uint32_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (vbool32_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (vuint32m1_t)(op15), (vuint32m1_t)(op16), (const uint32_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (const uint32_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (vbool64_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (vuint32mf2_t)(op15), (vuint32mf2_t)(op16), (const uint32_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vluxseg2ei64_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (const int32_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vbool32_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (const int32_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (const int32_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vbool16_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (const int32_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i32m4((vint32m4_t *)(op0), (vint32m4_t *)(op1), (const int32_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i32m4_m((vint32m4_t *)(op0), (vint32m4_t *)(op1), (vbool8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (const int32_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (const int32_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vbool64_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (const int32_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (const uint32_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vbool32_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (const uint32_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (const uint32_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vbool16_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (const uint32_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u32m4((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (const uint32_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u32m4_m((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (vbool8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (const uint32_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (const uint32_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vbool64_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (const uint32_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg3ei64_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (const int32_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vbool32_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (const int32_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (const int32_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vbool16_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (const int32_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (const int32_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vbool64_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (const int32_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (const uint32_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vbool32_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (const uint32_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (const uint32_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vbool16_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (const uint32_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (const uint32_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vbool64_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (const uint32_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg4ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (const int32_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vbool32_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (const int32_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (const int32_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (vbool16_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (vint32m2_t)(op7), (vint32m2_t)(op8), (const int32_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (const int32_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vbool64_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (const int32_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (const uint32_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vbool32_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (const uint32_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (const uint32_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (vbool16_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (vuint32m2_t)(op7), (vuint32m2_t)(op8), (const uint32_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (const uint32_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vbool64_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (const uint32_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vluxseg5ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (const int32_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vbool32_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (const int32_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (const int32_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vbool64_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (const int32_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (const uint32_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vbool32_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (const uint32_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (const uint32_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vbool64_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (const uint32_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vluxseg6ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (const int32_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vbool32_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (const int32_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (const int32_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vbool64_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (const int32_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (const uint32_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vbool32_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (const uint32_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (const uint32_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vbool64_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (const uint32_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vluxseg7ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (const int32_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vbool32_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (const int32_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (const int32_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vbool64_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (const int32_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (const uint32_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vbool32_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (const uint32_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (const uint32_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vbool64_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (const uint32_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vluxseg8ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (const int32_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (vbool32_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (vint32m1_t)(op15), (vint32m1_t)(op16), (const int32_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (const int32_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (vbool64_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (vint32mf2_t)(op15), (vint32mf2_t)(op16), (const int32_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (const uint32_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (vbool32_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (vuint32m1_t)(op15), (vuint32m1_t)(op16), (const uint32_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (const uint32_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (vbool64_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (vuint32mf2_t)(op15), (vuint32mf2_t)(op16), (const uint32_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vluxseg2ei8_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (const int64_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vbool64_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (const int64_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (const int64_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vbool32_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (const int64_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i64m4((vint64m4_t *)(op0), (vint64m4_t *)(op1), (const int64_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i64m4_m((vint64m4_t *)(op0), (vint64m4_t *)(op1), (vbool16_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (const int64_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (const uint64_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vbool64_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (const uint64_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (const uint64_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vbool32_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (const uint64_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u64m4((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (const uint64_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u64m4_m((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (vbool16_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (const uint64_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg3ei8_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (const int64_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vbool64_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (const int64_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (const int64_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vbool32_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (const int64_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (const uint64_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vbool64_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (const uint64_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (const uint64_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vbool32_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (const uint64_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg4ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (const int64_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vbool64_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (const int64_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (const int64_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (vbool32_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (vint64m2_t)(op7), (vint64m2_t)(op8), (const int64_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (const uint64_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vbool64_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (const uint64_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (const uint64_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (vbool32_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (vuint64m2_t)(op7), (vuint64m2_t)(op8), (const uint64_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vluxseg5ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (const int64_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vbool64_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (const int64_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (const uint64_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vbool64_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (const uint64_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vluxseg6ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (const int64_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vbool64_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (const int64_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (const uint64_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vbool64_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (const uint64_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vluxseg7ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (const int64_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vbool64_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (const int64_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (const uint64_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vbool64_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (const uint64_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vluxseg8ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (const int64_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (vbool64_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (vint64m1_t)(op15), (vint64m1_t)(op16), (const int64_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (const uint64_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (vbool64_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (vuint64m1_t)(op15), (vuint64m1_t)(op16), (const uint64_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vluxseg2ei16_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (const int64_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vbool64_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (const int64_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (const int64_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vbool32_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (const int64_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i64m4((vint64m4_t *)(op0), (vint64m4_t *)(op1), (const int64_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i64m4_m((vint64m4_t *)(op0), (vint64m4_t *)(op1), (vbool16_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (const int64_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (const uint64_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vbool64_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (const uint64_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (const uint64_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vbool32_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (const uint64_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u64m4((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (const uint64_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u64m4_m((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (vbool16_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (const uint64_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg3ei16_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (const int64_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vbool64_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (const int64_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (const int64_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vbool32_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (const int64_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (const uint64_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vbool64_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (const uint64_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (const uint64_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vbool32_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (const uint64_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg4ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (const int64_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vbool64_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (const int64_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (const int64_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (vbool32_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (vint64m2_t)(op7), (vint64m2_t)(op8), (const int64_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (const uint64_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vbool64_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (const uint64_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (const uint64_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (vbool32_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (vuint64m2_t)(op7), (vuint64m2_t)(op8), (const uint64_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vluxseg5ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (const int64_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vbool64_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (const int64_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (const uint64_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vbool64_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (const uint64_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vluxseg6ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (const int64_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vbool64_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (const int64_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (const uint64_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vbool64_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (const uint64_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vluxseg7ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (const int64_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vbool64_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (const int64_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (const uint64_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vbool64_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (const uint64_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vluxseg8ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (const int64_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (vbool64_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (vint64m1_t)(op15), (vint64m1_t)(op16), (const int64_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (const uint64_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (vbool64_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (vuint64m1_t)(op15), (vuint64m1_t)(op16), (const uint64_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vluxseg2ei32_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (const int64_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vbool64_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (const int64_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (const int64_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vbool32_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (const int64_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i64m4((vint64m4_t *)(op0), (vint64m4_t *)(op1), (const int64_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i64m4_m((vint64m4_t *)(op0), (vint64m4_t *)(op1), (vbool16_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (const int64_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (const uint64_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vbool64_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (const uint64_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (const uint64_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vbool32_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (const uint64_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u64m4((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (const uint64_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u64m4_m((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (vbool16_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (const uint64_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg3ei32_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (const int64_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vbool64_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (const int64_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (const int64_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vbool32_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (const int64_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (const uint64_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vbool64_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (const uint64_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (const uint64_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vbool32_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (const uint64_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg4ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (const int64_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vbool64_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (const int64_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (const int64_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (vbool32_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (vint64m2_t)(op7), (vint64m2_t)(op8), (const int64_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (const uint64_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vbool64_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (const uint64_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (const uint64_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (vbool32_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (vuint64m2_t)(op7), (vuint64m2_t)(op8), (const uint64_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vluxseg5ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (const int64_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vbool64_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (const int64_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (const uint64_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vbool64_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (const uint64_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vluxseg6ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (const int64_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vbool64_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (const int64_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (const uint64_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vbool64_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (const uint64_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vluxseg7ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (const int64_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vbool64_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (const int64_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (const uint64_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vbool64_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (const uint64_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vluxseg8ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (const int64_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (vbool64_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (vint64m1_t)(op15), (vint64m1_t)(op16), (const int64_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (const uint64_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (vbool64_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (vuint64m1_t)(op15), (vuint64m1_t)(op16), (const uint64_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vluxseg2ei64_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (const int64_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vbool64_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (const int64_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (const int64_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vbool32_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (const int64_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i64m4((vint64m4_t *)(op0), (vint64m4_t *)(op1), (const int64_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i64m4_m((vint64m4_t *)(op0), (vint64m4_t *)(op1), (vbool16_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (const int64_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (const uint64_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vbool64_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (const uint64_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (const uint64_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vbool32_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (const uint64_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u64m4((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (const uint64_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u64m4_m((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (vbool16_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (const uint64_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg3ei64_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (const int64_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vbool64_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (const int64_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (const int64_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vbool32_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (const int64_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (const uint64_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vbool64_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (const uint64_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (const uint64_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vbool32_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (const uint64_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg4ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (const int64_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vbool64_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (const int64_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (const int64_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (vbool32_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (vint64m2_t)(op7), (vint64m2_t)(op8), (const int64_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (const uint64_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vbool64_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (const uint64_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (const uint64_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (vbool32_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (vuint64m2_t)(op7), (vuint64m2_t)(op8), (const uint64_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vluxseg5ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (const int64_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vbool64_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (const int64_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (const uint64_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vbool64_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (const uint64_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vluxseg6ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (const int64_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vbool64_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (const int64_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (const uint64_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vbool64_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (const uint64_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vluxseg7ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (const int64_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vbool64_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (const int64_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (const uint64_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vbool64_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (const uint64_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vluxseg8ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (const int64_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (vbool64_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (vint64m1_t)(op15), (vint64m1_t)(op16), (const int64_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (const uint64_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (vbool64_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (vuint64m1_t)(op15), (vuint64m1_t)(op16), (const uint64_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vloxseg2ei8_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (const int8_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vbool8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (const int8_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (const int8_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vbool4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (const int8_t *)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i8m4((vint8m4_t *)(op0), (vint8m4_t *)(op1), (const int8_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i8m4_m((vint8m4_t *)(op0), (vint8m4_t *)(op1), (vbool2_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (const int8_t *)(op5), (vuint8m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (const int8_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vbool16_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (const int8_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (const int8_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vbool32_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (const int8_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (const int8_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vbool64_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (const int8_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (const uint8_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vbool8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (const uint8_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (const uint8_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vbool4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (const uint8_t *)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u8m4((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (const uint8_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u8m4_m((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (vbool2_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (const uint8_t *)(op5), (vuint8m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (const uint8_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vbool16_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (const uint8_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (const uint8_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vbool32_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (const uint8_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (const uint8_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vbool64_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (const uint8_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg3ei8_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (const int8_t *)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vbool8_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (const int8_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (const int8_t *)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vbool4_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (const int8_t *)(op7), (vuint8m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (const int8_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vbool16_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (const int8_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (const int8_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vbool32_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (const int8_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (const int8_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vbool64_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (const int8_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (const uint8_t *)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vbool8_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (const uint8_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (const uint8_t *)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vbool4_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (const uint8_t *)(op7), (vuint8m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (const uint8_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vbool16_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (const uint8_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (const uint8_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vbool32_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (const uint8_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (const uint8_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vbool64_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (const uint8_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg4ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (const int8_t *)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vbool8_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (const int8_t *)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (const int8_t *)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (vbool4_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (vint8m2_t)(op7), (vint8m2_t)(op8), (const int8_t *)(op9), (vuint8m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (const int8_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vbool16_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (const int8_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (const int8_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vbool32_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (const int8_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (const int8_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vbool64_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (const int8_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (const uint8_t *)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vbool8_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (const uint8_t *)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (const uint8_t *)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (vbool4_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (vuint8m2_t)(op7), (vuint8m2_t)(op8), (const uint8_t *)(op9), (vuint8m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (const uint8_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vbool16_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (const uint8_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (const uint8_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vbool32_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (const uint8_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (const uint8_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vbool64_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (const uint8_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vloxseg5ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (const int8_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vbool8_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (const int8_t *)(op11), (vuint8m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (const int8_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vbool16_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (const int8_t *)(op11), (vuint8mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (const int8_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vbool32_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (const int8_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (const int8_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vbool64_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (const int8_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (const uint8_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vbool8_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (const uint8_t *)(op11), (vuint8m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (const uint8_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vbool16_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (const uint8_t *)(op11), (vuint8mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (const uint8_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vbool32_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (const uint8_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (const uint8_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vbool64_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (const uint8_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vloxseg6ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (const int8_t *)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vbool8_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (const int8_t *)(op13), (vuint8m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (const int8_t *)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vbool16_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (const int8_t *)(op13), (vuint8mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (const int8_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vbool32_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (const int8_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (const int8_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vbool64_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (const int8_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (const uint8_t *)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vbool8_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (const uint8_t *)(op13), (vuint8m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (const uint8_t *)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vbool16_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (const uint8_t *)(op13), (vuint8mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (const uint8_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vbool32_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (const uint8_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (const uint8_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vbool64_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (const uint8_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vloxseg7ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (const int8_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vbool8_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (const int8_t *)(op15), (vuint8m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (const int8_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vbool16_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (const int8_t *)(op15), (vuint8mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (const int8_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vbool32_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (const int8_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (const int8_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vbool64_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (const int8_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (const uint8_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vbool8_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (const uint8_t *)(op15), (vuint8m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (const uint8_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vbool16_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (const uint8_t *)(op15), (vuint8mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (const uint8_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vbool32_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (const uint8_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (const uint8_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vbool64_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (const uint8_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vloxseg8ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (const int8_t *)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (vbool8_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (vint8m1_t)(op15), (vint8m1_t)(op16), (const int8_t *)(op17), (vuint8m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (const int8_t *)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (vbool16_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (vint8mf2_t)(op15), (vint8mf2_t)(op16), (const int8_t *)(op17), (vuint8mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (const int8_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (vbool32_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (vint8mf4_t)(op15), (vint8mf4_t)(op16), (const int8_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (const int8_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (vbool64_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (vint8mf8_t)(op15), (vint8mf8_t)(op16), (const int8_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (const uint8_t *)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (vbool8_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (vuint8m1_t)(op15), (vuint8m1_t)(op16), (const uint8_t *)(op17), (vuint8m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (const uint8_t *)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (vbool16_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (vuint8mf2_t)(op15), (vuint8mf2_t)(op16), (const uint8_t *)(op17), (vuint8mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (const uint8_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (vbool32_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (vuint8mf4_t)(op15), (vuint8mf4_t)(op16), (const uint8_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (const uint8_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (vbool64_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (vuint8mf8_t)(op15), (vuint8mf8_t)(op16), (const uint8_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vloxseg2ei16_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (const int8_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vbool8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (const int8_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (const int8_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vbool4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (const int8_t *)(op5), (vuint16m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i8m4((vint8m4_t *)(op0), (vint8m4_t *)(op1), (const int8_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i8m4_m((vint8m4_t *)(op0), (vint8m4_t *)(op1), (vbool2_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (const int8_t *)(op5), (vuint16m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (const int8_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vbool16_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (const int8_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (const int8_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vbool32_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (const int8_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (const int8_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vbool64_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (const int8_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (const uint8_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vbool8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (const uint8_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (const uint8_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vbool4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (const uint8_t *)(op5), (vuint16m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u8m4((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (const uint8_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u8m4_m((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (vbool2_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (const uint8_t *)(op5), (vuint16m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (const uint8_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vbool16_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (const uint8_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (const uint8_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vbool32_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (const uint8_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (const uint8_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vbool64_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (const uint8_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg3ei16_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (const int8_t *)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vbool8_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (const int8_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (const int8_t *)(op3), (vuint16m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vbool4_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (const int8_t *)(op7), (vuint16m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (const int8_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vbool16_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (const int8_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (const int8_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vbool32_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (const int8_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (const int8_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vbool64_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (const int8_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (const uint8_t *)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vbool8_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (const uint8_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (const uint8_t *)(op3), (vuint16m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vbool4_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (const uint8_t *)(op7), (vuint16m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (const uint8_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vbool16_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (const uint8_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (const uint8_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vbool32_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (const uint8_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (const uint8_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vbool64_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (const uint8_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg4ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (const int8_t *)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vbool8_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (const int8_t *)(op9), (vuint16m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (const int8_t *)(op4), (vuint16m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (vbool4_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (vint8m2_t)(op7), (vint8m2_t)(op8), (const int8_t *)(op9), (vuint16m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (const int8_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vbool16_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (const int8_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (const int8_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vbool32_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (const int8_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (const int8_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vbool64_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (const int8_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (const uint8_t *)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vbool8_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (const uint8_t *)(op9), (vuint16m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (const uint8_t *)(op4), (vuint16m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (vbool4_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (vuint8m2_t)(op7), (vuint8m2_t)(op8), (const uint8_t *)(op9), (vuint16m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (const uint8_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vbool16_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (const uint8_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (const uint8_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vbool32_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (const uint8_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (const uint8_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vbool64_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (const uint8_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vloxseg5ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (const int8_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vbool8_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (const int8_t *)(op11), (vuint16m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (const int8_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vbool16_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (const int8_t *)(op11), (vuint16m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (const int8_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vbool32_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (const int8_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (const int8_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vbool64_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (const int8_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (const uint8_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vbool8_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (const uint8_t *)(op11), (vuint16m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (const uint8_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vbool16_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (const uint8_t *)(op11), (vuint16m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (const uint8_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vbool32_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (const uint8_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (const uint8_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vbool64_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (const uint8_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vloxseg6ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (const int8_t *)(op6), (vuint16m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vbool8_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (const int8_t *)(op13), (vuint16m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (const int8_t *)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vbool16_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (const int8_t *)(op13), (vuint16m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (const int8_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vbool32_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (const int8_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (const int8_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vbool64_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (const int8_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (const uint8_t *)(op6), (vuint16m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vbool8_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (const uint8_t *)(op13), (vuint16m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (const uint8_t *)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vbool16_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (const uint8_t *)(op13), (vuint16m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (const uint8_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vbool32_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (const uint8_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (const uint8_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vbool64_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (const uint8_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vloxseg7ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (const int8_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vbool8_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (const int8_t *)(op15), (vuint16m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (const int8_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vbool16_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (const int8_t *)(op15), (vuint16m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (const int8_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vbool32_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (const int8_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (const int8_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vbool64_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (const int8_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (const uint8_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vbool8_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (const uint8_t *)(op15), (vuint16m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (const uint8_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vbool16_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (const uint8_t *)(op15), (vuint16m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (const uint8_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vbool32_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (const uint8_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (const uint8_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vbool64_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (const uint8_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vloxseg8ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (const int8_t *)(op8), (vuint16m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (vbool8_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (vint8m1_t)(op15), (vint8m1_t)(op16), (const int8_t *)(op17), (vuint16m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (const int8_t *)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (vbool16_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (vint8mf2_t)(op15), (vint8mf2_t)(op16), (const int8_t *)(op17), (vuint16m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (const int8_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (vbool32_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (vint8mf4_t)(op15), (vint8mf4_t)(op16), (const int8_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (const int8_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (vbool64_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (vint8mf8_t)(op15), (vint8mf8_t)(op16), (const int8_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (const uint8_t *)(op8), (vuint16m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (vbool8_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (vuint8m1_t)(op15), (vuint8m1_t)(op16), (const uint8_t *)(op17), (vuint16m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (const uint8_t *)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (vbool16_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (vuint8mf2_t)(op15), (vuint8mf2_t)(op16), (const uint8_t *)(op17), (vuint16m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (const uint8_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (vbool32_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (vuint8mf4_t)(op15), (vuint8mf4_t)(op16), (const uint8_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (const uint8_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (vbool64_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (vuint8mf8_t)(op15), (vuint8mf8_t)(op16), (const uint8_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vloxseg2ei32_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (const int8_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vbool8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (const int8_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (const int8_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vbool4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (const int8_t *)(op5), (vuint32m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (const int8_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vbool16_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (const int8_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (const int8_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vbool32_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (const int8_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (const int8_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vbool64_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (const int8_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (const uint8_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vbool8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (const uint8_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (const uint8_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vbool4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (const uint8_t *)(op5), (vuint32m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (const uint8_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vbool16_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (const uint8_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (const uint8_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vbool32_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (const uint8_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (const uint8_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vbool64_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (const uint8_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg3ei32_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (const int8_t *)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vbool8_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (const int8_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (const int8_t *)(op3), (vuint32m8_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vbool4_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (const int8_t *)(op7), (vuint32m8_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (const int8_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vbool16_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (const int8_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (const int8_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vbool32_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (const int8_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (const int8_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vbool64_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (const int8_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (const uint8_t *)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vbool8_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (const uint8_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (const uint8_t *)(op3), (vuint32m8_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vbool4_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (const uint8_t *)(op7), (vuint32m8_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (const uint8_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vbool16_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (const uint8_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (const uint8_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vbool32_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (const uint8_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (const uint8_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vbool64_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (const uint8_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg4ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (const int8_t *)(op4), (vuint32m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vbool8_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (const int8_t *)(op9), (vuint32m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (const int8_t *)(op4), (vuint32m8_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (vbool4_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (vint8m2_t)(op7), (vint8m2_t)(op8), (const int8_t *)(op9), (vuint32m8_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (const int8_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vbool16_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (const int8_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (const int8_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vbool32_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (const int8_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (const int8_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vbool64_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (const int8_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (const uint8_t *)(op4), (vuint32m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vbool8_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (const uint8_t *)(op9), (vuint32m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (const uint8_t *)(op4), (vuint32m8_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (vbool4_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (vuint8m2_t)(op7), (vuint8m2_t)(op8), (const uint8_t *)(op9), (vuint32m8_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (const uint8_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vbool16_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (const uint8_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (const uint8_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vbool32_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (const uint8_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (const uint8_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vbool64_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (const uint8_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vloxseg5ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (const int8_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vbool8_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (const int8_t *)(op11), (vuint32m4_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (const int8_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vbool16_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (const int8_t *)(op11), (vuint32m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (const int8_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vbool32_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (const int8_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (const int8_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vbool64_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (const int8_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (const uint8_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vbool8_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (const uint8_t *)(op11), (vuint32m4_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (const uint8_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vbool16_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (const uint8_t *)(op11), (vuint32m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (const uint8_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vbool32_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (const uint8_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (const uint8_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vbool64_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (const uint8_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vloxseg6ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (const int8_t *)(op6), (vuint32m4_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vbool8_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (const int8_t *)(op13), (vuint32m4_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (const int8_t *)(op6), (vuint32m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vbool16_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (const int8_t *)(op13), (vuint32m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (const int8_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vbool32_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (const int8_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (const int8_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vbool64_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (const int8_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (const uint8_t *)(op6), (vuint32m4_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vbool8_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (const uint8_t *)(op13), (vuint32m4_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (const uint8_t *)(op6), (vuint32m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vbool16_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (const uint8_t *)(op13), (vuint32m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (const uint8_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vbool32_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (const uint8_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (const uint8_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vbool64_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (const uint8_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vloxseg7ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (const int8_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vbool8_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (const int8_t *)(op15), (vuint32m4_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (const int8_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vbool16_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (const int8_t *)(op15), (vuint32m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (const int8_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vbool32_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (const int8_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (const int8_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vbool64_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (const int8_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (const uint8_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vbool8_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (const uint8_t *)(op15), (vuint32m4_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (const uint8_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vbool16_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (const uint8_t *)(op15), (vuint32m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (const uint8_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vbool32_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (const uint8_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (const uint8_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vbool64_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (const uint8_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vloxseg8ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (const int8_t *)(op8), (vuint32m4_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (vbool8_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (vint8m1_t)(op15), (vint8m1_t)(op16), (const int8_t *)(op17), (vuint32m4_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (const int8_t *)(op8), (vuint32m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (vbool16_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (vint8mf2_t)(op15), (vint8mf2_t)(op16), (const int8_t *)(op17), (vuint32m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (const int8_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (vbool32_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (vint8mf4_t)(op15), (vint8mf4_t)(op16), (const int8_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (const int8_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (vbool64_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (vint8mf8_t)(op15), (vint8mf8_t)(op16), (const int8_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (const uint8_t *)(op8), (vuint32m4_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (vbool8_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (vuint8m1_t)(op15), (vuint8m1_t)(op16), (const uint8_t *)(op17), (vuint32m4_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (const uint8_t *)(op8), (vuint32m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (vbool16_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (vuint8mf2_t)(op15), (vuint8mf2_t)(op16), (const uint8_t *)(op17), (vuint32m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (const uint8_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (vbool32_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (vuint8mf4_t)(op15), (vuint8mf4_t)(op16), (const uint8_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (const uint8_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (vbool64_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (vuint8mf8_t)(op15), (vuint8mf8_t)(op16), (const uint8_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vloxseg2ei64_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (const int8_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vbool8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (const int8_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (const int8_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vbool16_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (const int8_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (const int8_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vbool32_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (const int8_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (const int8_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vbool64_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (const int8_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (const uint8_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vbool8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (const uint8_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (const uint8_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vbool16_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (const uint8_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (const uint8_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vbool32_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (const uint8_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (const uint8_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vbool64_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (const uint8_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg3ei64_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (const int8_t *)(op3), (vuint64m8_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vbool8_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (const int8_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (const int8_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vbool16_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (const int8_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (const int8_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vbool32_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (const int8_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (const int8_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vbool64_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (const int8_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (const uint8_t *)(op3), (vuint64m8_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vbool8_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (const uint8_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (const uint8_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vbool16_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (const uint8_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (const uint8_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vbool32_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (const uint8_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (const uint8_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vbool64_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (const uint8_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg4ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (const int8_t *)(op4), (vuint64m8_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vbool8_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (const int8_t *)(op9), (vuint64m8_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (const int8_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vbool16_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (const int8_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (const int8_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vbool32_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (const int8_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (const int8_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vbool64_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (const int8_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (const uint8_t *)(op4), (vuint64m8_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vbool8_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (const uint8_t *)(op9), (vuint64m8_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (const uint8_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vbool16_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (const uint8_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (const uint8_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vbool32_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (const uint8_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (const uint8_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vbool64_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (const uint8_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vloxseg5ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (const int8_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vbool8_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (const int8_t *)(op11), (vuint64m8_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (const int8_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vbool16_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (const int8_t *)(op11), (vuint64m4_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (const int8_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vbool32_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (const int8_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (const int8_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vbool64_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (const int8_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (const uint8_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vbool8_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (const uint8_t *)(op11), (vuint64m8_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (const uint8_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vbool16_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (const uint8_t *)(op11), (vuint64m4_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (const uint8_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vbool32_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (const uint8_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (const uint8_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vbool64_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (const uint8_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vloxseg6ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (const int8_t *)(op6), (vuint64m8_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vbool8_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (const int8_t *)(op13), (vuint64m8_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (const int8_t *)(op6), (vuint64m4_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vbool16_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (const int8_t *)(op13), (vuint64m4_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (const int8_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vbool32_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (const int8_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (const int8_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vbool64_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (const int8_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (const uint8_t *)(op6), (vuint64m8_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vbool8_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (const uint8_t *)(op13), (vuint64m8_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (const uint8_t *)(op6), (vuint64m4_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vbool16_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (const uint8_t *)(op13), (vuint64m4_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (const uint8_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vbool32_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (const uint8_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (const uint8_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vbool64_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (const uint8_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vloxseg7ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (const int8_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vbool8_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (const int8_t *)(op15), (vuint64m8_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (const int8_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vbool16_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (const int8_t *)(op15), (vuint64m4_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (const int8_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vbool32_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (const int8_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (const int8_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vbool64_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (const int8_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (const uint8_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vbool8_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (const uint8_t *)(op15), (vuint64m8_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (const uint8_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vbool16_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (const uint8_t *)(op15), (vuint64m4_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (const uint8_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vbool32_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (const uint8_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (const uint8_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vbool64_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (const uint8_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vloxseg8ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (const int8_t *)(op8), (vuint64m8_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (vbool8_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (vint8m1_t)(op15), (vint8m1_t)(op16), (const int8_t *)(op17), (vuint64m8_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (const int8_t *)(op8), (vuint64m4_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (vbool16_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (vint8mf2_t)(op15), (vint8mf2_t)(op16), (const int8_t *)(op17), (vuint64m4_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (const int8_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (vbool32_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (vint8mf4_t)(op15), (vint8mf4_t)(op16), (const int8_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (const int8_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (vbool64_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (vint8mf8_t)(op15), (vint8mf8_t)(op16), (const int8_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (const uint8_t *)(op8), (vuint64m8_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (vbool8_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (vuint8m1_t)(op15), (vuint8m1_t)(op16), (const uint8_t *)(op17), (vuint64m8_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (const uint8_t *)(op8), (vuint64m4_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (vbool16_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (vuint8mf2_t)(op15), (vuint8mf2_t)(op16), (const uint8_t *)(op17), (vuint64m4_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (const uint8_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (vbool32_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (vuint8mf4_t)(op15), (vuint8mf4_t)(op16), (const uint8_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (const uint8_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (vbool64_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (vuint8mf8_t)(op15), (vuint8mf8_t)(op16), (const uint8_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vloxseg2ei8_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (const int16_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vbool16_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (const int16_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (const int16_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vbool8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (const int16_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i16m4((vint16m4_t *)(op0), (vint16m4_t *)(op1), (const int16_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i16m4_m((vint16m4_t *)(op0), (vint16m4_t *)(op1), (vbool4_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (const int16_t *)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (const int16_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vbool32_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (const int16_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (const int16_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vbool64_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (const int16_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (const uint16_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vbool16_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (const uint16_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (const uint16_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vbool8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (const uint16_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u16m4((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (const uint16_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u16m4_m((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (vbool4_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (const uint16_t *)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (const uint16_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vbool32_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (const uint16_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (const uint16_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vbool64_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (const uint16_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg3ei8_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (const int16_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vbool16_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (const int16_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (const int16_t *)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vbool8_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (const int16_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (const int16_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vbool32_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (const int16_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (const int16_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vbool64_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (const int16_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (const uint16_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vbool16_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (const uint16_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (const uint16_t *)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vbool8_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (const uint16_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (const uint16_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vbool32_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (const uint16_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (const uint16_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vbool64_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (const uint16_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg4ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (const int16_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vbool16_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (const int16_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (const int16_t *)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (vbool8_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (vint16m2_t)(op7), (vint16m2_t)(op8), (const int16_t *)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (const int16_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vbool32_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (const int16_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (const int16_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vbool64_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (const int16_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (const uint16_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vbool16_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (const uint16_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (const uint16_t *)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (vbool8_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (vuint16m2_t)(op7), (vuint16m2_t)(op8), (const uint16_t *)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (const uint16_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vbool32_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (const uint16_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (const uint16_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vbool64_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (const uint16_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vloxseg5ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (const int16_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vbool16_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (const int16_t *)(op11), (vuint8mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (const int16_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vbool32_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (const int16_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (const int16_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vbool64_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (const int16_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (const uint16_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vbool16_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (const uint16_t *)(op11), (vuint8mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (const uint16_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vbool32_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (const uint16_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (const uint16_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vbool64_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (const uint16_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vloxseg6ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (const int16_t *)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vbool16_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (const int16_t *)(op13), (vuint8mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (const int16_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vbool32_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (const int16_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (const int16_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vbool64_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (const int16_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (const uint16_t *)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vbool16_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (const uint16_t *)(op13), (vuint8mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (const uint16_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vbool32_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (const uint16_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (const uint16_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vbool64_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (const uint16_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vloxseg7ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (const int16_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vbool16_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (const int16_t *)(op15), (vuint8mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (const int16_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vbool32_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (const int16_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (const int16_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vbool64_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (const int16_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (const uint16_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vbool16_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (const uint16_t *)(op15), (vuint8mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (const uint16_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vbool32_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (const uint16_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (const uint16_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vbool64_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (const uint16_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vloxseg8ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (const int16_t *)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (vbool16_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (vint16m1_t)(op15), (vint16m1_t)(op16), (const int16_t *)(op17), (vuint8mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (const int16_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (vbool32_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (vint16mf2_t)(op15), (vint16mf2_t)(op16), (const int16_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (const int16_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (vbool64_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (vint16mf4_t)(op15), (vint16mf4_t)(op16), (const int16_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (const uint16_t *)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (vbool16_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (vuint16m1_t)(op15), (vuint16m1_t)(op16), (const uint16_t *)(op17), (vuint8mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (const uint16_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (vbool32_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (vuint16mf2_t)(op15), (vuint16mf2_t)(op16), (const uint16_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (const uint16_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (vbool64_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (vuint16mf4_t)(op15), (vuint16mf4_t)(op16), (const uint16_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vloxseg2ei16_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (const int16_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vbool16_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (const int16_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (const int16_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vbool8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (const int16_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i16m4((vint16m4_t *)(op0), (vint16m4_t *)(op1), (const int16_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i16m4_m((vint16m4_t *)(op0), (vint16m4_t *)(op1), (vbool4_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (const int16_t *)(op5), (vuint16m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (const int16_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vbool32_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (const int16_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (const int16_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vbool64_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (const int16_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (const uint16_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vbool16_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (const uint16_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (const uint16_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vbool8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (const uint16_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u16m4((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (const uint16_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u16m4_m((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (vbool4_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (const uint16_t *)(op5), (vuint16m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (const uint16_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vbool32_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (const uint16_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (const uint16_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vbool64_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (const uint16_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg3ei16_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (const int16_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vbool16_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (const int16_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (const int16_t *)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vbool8_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (const int16_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (const int16_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vbool32_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (const int16_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (const int16_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vbool64_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (const int16_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (const uint16_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vbool16_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (const uint16_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (const uint16_t *)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vbool8_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (const uint16_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (const uint16_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vbool32_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (const uint16_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (const uint16_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vbool64_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (const uint16_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg4ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (const int16_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vbool16_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (const int16_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (const int16_t *)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (vbool8_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (vint16m2_t)(op7), (vint16m2_t)(op8), (const int16_t *)(op9), (vuint16m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (const int16_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vbool32_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (const int16_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (const int16_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vbool64_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (const int16_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (const uint16_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vbool16_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (const uint16_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (const uint16_t *)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (vbool8_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (vuint16m2_t)(op7), (vuint16m2_t)(op8), (const uint16_t *)(op9), (vuint16m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (const uint16_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vbool32_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (const uint16_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (const uint16_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vbool64_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (const uint16_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vloxseg5ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (const int16_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vbool16_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (const int16_t *)(op11), (vuint16m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (const int16_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vbool32_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (const int16_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (const int16_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vbool64_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (const int16_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (const uint16_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vbool16_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (const uint16_t *)(op11), (vuint16m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (const uint16_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vbool32_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (const uint16_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (const uint16_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vbool64_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (const uint16_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vloxseg6ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (const int16_t *)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vbool16_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (const int16_t *)(op13), (vuint16m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (const int16_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vbool32_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (const int16_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (const int16_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vbool64_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (const int16_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (const uint16_t *)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vbool16_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (const uint16_t *)(op13), (vuint16m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (const uint16_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vbool32_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (const uint16_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (const uint16_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vbool64_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (const uint16_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vloxseg7ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (const int16_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vbool16_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (const int16_t *)(op15), (vuint16m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (const int16_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vbool32_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (const int16_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (const int16_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vbool64_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (const int16_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (const uint16_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vbool16_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (const uint16_t *)(op15), (vuint16m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (const uint16_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vbool32_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (const uint16_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (const uint16_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vbool64_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (const uint16_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vloxseg8ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (const int16_t *)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (vbool16_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (vint16m1_t)(op15), (vint16m1_t)(op16), (const int16_t *)(op17), (vuint16m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (const int16_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (vbool32_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (vint16mf2_t)(op15), (vint16mf2_t)(op16), (const int16_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (const int16_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (vbool64_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (vint16mf4_t)(op15), (vint16mf4_t)(op16), (const int16_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (const uint16_t *)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (vbool16_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (vuint16m1_t)(op15), (vuint16m1_t)(op16), (const uint16_t *)(op17), (vuint16m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (const uint16_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (vbool32_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (vuint16mf2_t)(op15), (vuint16mf2_t)(op16), (const uint16_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (const uint16_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (vbool64_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (vuint16mf4_t)(op15), (vuint16mf4_t)(op16), (const uint16_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vloxseg2ei32_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (const int16_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vbool16_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (const int16_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (const int16_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vbool8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (const int16_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i16m4((vint16m4_t *)(op0), (vint16m4_t *)(op1), (const int16_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i16m4_m((vint16m4_t *)(op0), (vint16m4_t *)(op1), (vbool4_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (const int16_t *)(op5), (vuint32m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (const int16_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vbool32_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (const int16_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (const int16_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vbool64_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (const int16_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (const uint16_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vbool16_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (const uint16_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (const uint16_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vbool8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (const uint16_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u16m4((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (const uint16_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u16m4_m((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (vbool4_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (const uint16_t *)(op5), (vuint32m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (const uint16_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vbool32_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (const uint16_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (const uint16_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vbool64_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (const uint16_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg3ei32_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (const int16_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vbool16_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (const int16_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (const int16_t *)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vbool8_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (const int16_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (const int16_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vbool32_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (const int16_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (const int16_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vbool64_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (const int16_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (const uint16_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vbool16_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (const uint16_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (const uint16_t *)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vbool8_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (const uint16_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (const uint16_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vbool32_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (const uint16_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (const uint16_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vbool64_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (const uint16_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg4ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (const int16_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vbool16_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (const int16_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (const int16_t *)(op4), (vuint32m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (vbool8_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (vint16m2_t)(op7), (vint16m2_t)(op8), (const int16_t *)(op9), (vuint32m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (const int16_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vbool32_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (const int16_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (const int16_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vbool64_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (const int16_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (const uint16_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vbool16_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (const uint16_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (const uint16_t *)(op4), (vuint32m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (vbool8_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (vuint16m2_t)(op7), (vuint16m2_t)(op8), (const uint16_t *)(op9), (vuint32m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (const uint16_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vbool32_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (const uint16_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (const uint16_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vbool64_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (const uint16_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vloxseg5ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (const int16_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vbool16_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (const int16_t *)(op11), (vuint32m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (const int16_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vbool32_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (const int16_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (const int16_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vbool64_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (const int16_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (const uint16_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vbool16_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (const uint16_t *)(op11), (vuint32m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (const uint16_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vbool32_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (const uint16_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (const uint16_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vbool64_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (const uint16_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vloxseg6ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (const int16_t *)(op6), (vuint32m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vbool16_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (const int16_t *)(op13), (vuint32m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (const int16_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vbool32_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (const int16_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (const int16_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vbool64_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (const int16_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (const uint16_t *)(op6), (vuint32m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vbool16_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (const uint16_t *)(op13), (vuint32m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (const uint16_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vbool32_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (const uint16_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (const uint16_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vbool64_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (const uint16_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vloxseg7ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (const int16_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vbool16_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (const int16_t *)(op15), (vuint32m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (const int16_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vbool32_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (const int16_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (const int16_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vbool64_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (const int16_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (const uint16_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vbool16_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (const uint16_t *)(op15), (vuint32m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (const uint16_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vbool32_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (const uint16_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (const uint16_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vbool64_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (const uint16_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vloxseg8ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (const int16_t *)(op8), (vuint32m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (vbool16_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (vint16m1_t)(op15), (vint16m1_t)(op16), (const int16_t *)(op17), (vuint32m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (const int16_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (vbool32_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (vint16mf2_t)(op15), (vint16mf2_t)(op16), (const int16_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (const int16_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (vbool64_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (vint16mf4_t)(op15), (vint16mf4_t)(op16), (const int16_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (const uint16_t *)(op8), (vuint32m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (vbool16_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (vuint16m1_t)(op15), (vuint16m1_t)(op16), (const uint16_t *)(op17), (vuint32m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (const uint16_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (vbool32_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (vuint16mf2_t)(op15), (vuint16mf2_t)(op16), (const uint16_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (const uint16_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (vbool64_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (vuint16mf4_t)(op15), (vuint16mf4_t)(op16), (const uint16_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vloxseg2ei64_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (const int16_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vbool16_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (const int16_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (const int16_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vbool8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (const int16_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (const int16_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vbool32_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (const int16_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (const int16_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vbool64_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (const int16_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (const uint16_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vbool16_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (const uint16_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (const uint16_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vbool8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (const uint16_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (const uint16_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vbool32_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (const uint16_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (const uint16_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vbool64_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (const uint16_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg3ei64_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (const int16_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vbool16_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (const int16_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (const int16_t *)(op3), (vuint64m8_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vbool8_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (const int16_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (const int16_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vbool32_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (const int16_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (const int16_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vbool64_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (const int16_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (const uint16_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vbool16_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (const uint16_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (const uint16_t *)(op3), (vuint64m8_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vbool8_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (const uint16_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (const uint16_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vbool32_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (const uint16_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (const uint16_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vbool64_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (const uint16_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg4ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (const int16_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vbool16_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (const int16_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (const int16_t *)(op4), (vuint64m8_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (vbool8_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (vint16m2_t)(op7), (vint16m2_t)(op8), (const int16_t *)(op9), (vuint64m8_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (const int16_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vbool32_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (const int16_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (const int16_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vbool64_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (const int16_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (const uint16_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vbool16_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (const uint16_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (const uint16_t *)(op4), (vuint64m8_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (vbool8_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (vuint16m2_t)(op7), (vuint16m2_t)(op8), (const uint16_t *)(op9), (vuint64m8_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (const uint16_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vbool32_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (const uint16_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (const uint16_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vbool64_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (const uint16_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vloxseg5ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (const int16_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vbool16_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (const int16_t *)(op11), (vuint64m4_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (const int16_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vbool32_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (const int16_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (const int16_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vbool64_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (const int16_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (const uint16_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vbool16_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (const uint16_t *)(op11), (vuint64m4_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (const uint16_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vbool32_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (const uint16_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (const uint16_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vbool64_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (const uint16_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vloxseg6ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (const int16_t *)(op6), (vuint64m4_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vbool16_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (const int16_t *)(op13), (vuint64m4_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (const int16_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vbool32_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (const int16_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (const int16_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vbool64_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (const int16_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (const uint16_t *)(op6), (vuint64m4_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vbool16_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (const uint16_t *)(op13), (vuint64m4_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (const uint16_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vbool32_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (const uint16_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (const uint16_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vbool64_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (const uint16_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vloxseg7ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (const int16_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vbool16_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (const int16_t *)(op15), (vuint64m4_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (const int16_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vbool32_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (const int16_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (const int16_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vbool64_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (const int16_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (const uint16_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vbool16_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (const uint16_t *)(op15), (vuint64m4_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (const uint16_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vbool32_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (const uint16_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (const uint16_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vbool64_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (const uint16_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vloxseg8ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (const int16_t *)(op8), (vuint64m4_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (vbool16_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (vint16m1_t)(op15), (vint16m1_t)(op16), (const int16_t *)(op17), (vuint64m4_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (const int16_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (vbool32_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (vint16mf2_t)(op15), (vint16mf2_t)(op16), (const int16_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (const int16_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (vbool64_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (vint16mf4_t)(op15), (vint16mf4_t)(op16), (const int16_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (const uint16_t *)(op8), (vuint64m4_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (vbool16_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (vuint16m1_t)(op15), (vuint16m1_t)(op16), (const uint16_t *)(op17), (vuint64m4_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (const uint16_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (vbool32_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (vuint16mf2_t)(op15), (vuint16mf2_t)(op16), (const uint16_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (const uint16_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (vbool64_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (vuint16mf4_t)(op15), (vuint16mf4_t)(op16), (const uint16_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vloxseg2ei8_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (const int32_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vbool32_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (const int32_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (const int32_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vbool16_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (const int32_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i32m4((vint32m4_t *)(op0), (vint32m4_t *)(op1), (const int32_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i32m4_m((vint32m4_t *)(op0), (vint32m4_t *)(op1), (vbool8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (const int32_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (const int32_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vbool64_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (const int32_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (const uint32_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vbool32_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (const uint32_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (const uint32_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vbool16_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (const uint32_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u32m4((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (const uint32_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u32m4_m((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (vbool8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (const uint32_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (const uint32_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vbool64_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (const uint32_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg3ei8_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (const int32_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vbool32_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (const int32_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (const int32_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vbool16_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (const int32_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (const int32_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vbool64_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (const int32_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (const uint32_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vbool32_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (const uint32_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (const uint32_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vbool16_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (const uint32_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (const uint32_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vbool64_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (const uint32_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg4ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (const int32_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vbool32_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (const int32_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (const int32_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (vbool16_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (vint32m2_t)(op7), (vint32m2_t)(op8), (const int32_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (const int32_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vbool64_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (const int32_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (const uint32_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vbool32_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (const uint32_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (const uint32_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (vbool16_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (vuint32m2_t)(op7), (vuint32m2_t)(op8), (const uint32_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (const uint32_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vbool64_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (const uint32_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vloxseg5ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (const int32_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vbool32_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (const int32_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (const int32_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vbool64_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (const int32_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (const uint32_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vbool32_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (const uint32_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (const uint32_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vbool64_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (const uint32_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vloxseg6ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (const int32_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vbool32_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (const int32_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (const int32_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vbool64_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (const int32_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (const uint32_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vbool32_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (const uint32_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (const uint32_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vbool64_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (const uint32_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vloxseg7ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (const int32_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vbool32_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (const int32_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (const int32_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vbool64_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (const int32_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (const uint32_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vbool32_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (const uint32_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (const uint32_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vbool64_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (const uint32_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vloxseg8ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (const int32_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (vbool32_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (vint32m1_t)(op15), (vint32m1_t)(op16), (const int32_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (const int32_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (vbool64_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (vint32mf2_t)(op15), (vint32mf2_t)(op16), (const int32_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (const uint32_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (vbool32_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (vuint32m1_t)(op15), (vuint32m1_t)(op16), (const uint32_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (const uint32_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (vbool64_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (vuint32mf2_t)(op15), (vuint32mf2_t)(op16), (const uint32_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vloxseg2ei16_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (const int32_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vbool32_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (const int32_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (const int32_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vbool16_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (const int32_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i32m4((vint32m4_t *)(op0), (vint32m4_t *)(op1), (const int32_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i32m4_m((vint32m4_t *)(op0), (vint32m4_t *)(op1), (vbool8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (const int32_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (const int32_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vbool64_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (const int32_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (const uint32_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vbool32_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (const uint32_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (const uint32_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vbool16_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (const uint32_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u32m4((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (const uint32_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u32m4_m((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (vbool8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (const uint32_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (const uint32_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vbool64_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (const uint32_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg3ei16_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (const int32_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vbool32_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (const int32_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (const int32_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vbool16_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (const int32_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (const int32_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vbool64_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (const int32_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (const uint32_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vbool32_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (const uint32_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (const uint32_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vbool16_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (const uint32_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (const uint32_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vbool64_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (const uint32_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg4ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (const int32_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vbool32_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (const int32_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (const int32_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (vbool16_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (vint32m2_t)(op7), (vint32m2_t)(op8), (const int32_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (const int32_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vbool64_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (const int32_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (const uint32_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vbool32_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (const uint32_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (const uint32_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (vbool16_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (vuint32m2_t)(op7), (vuint32m2_t)(op8), (const uint32_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (const uint32_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vbool64_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (const uint32_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vloxseg5ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (const int32_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vbool32_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (const int32_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (const int32_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vbool64_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (const int32_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (const uint32_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vbool32_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (const uint32_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (const uint32_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vbool64_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (const uint32_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vloxseg6ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (const int32_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vbool32_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (const int32_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (const int32_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vbool64_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (const int32_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (const uint32_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vbool32_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (const uint32_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (const uint32_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vbool64_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (const uint32_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vloxseg7ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (const int32_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vbool32_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (const int32_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (const int32_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vbool64_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (const int32_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (const uint32_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vbool32_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (const uint32_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (const uint32_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vbool64_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (const uint32_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vloxseg8ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (const int32_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (vbool32_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (vint32m1_t)(op15), (vint32m1_t)(op16), (const int32_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (const int32_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (vbool64_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (vint32mf2_t)(op15), (vint32mf2_t)(op16), (const int32_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (const uint32_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (vbool32_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (vuint32m1_t)(op15), (vuint32m1_t)(op16), (const uint32_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (const uint32_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (vbool64_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (vuint32mf2_t)(op15), (vuint32mf2_t)(op16), (const uint32_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vloxseg2ei32_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (const int32_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vbool32_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (const int32_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (const int32_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vbool16_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (const int32_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i32m4((vint32m4_t *)(op0), (vint32m4_t *)(op1), (const int32_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i32m4_m((vint32m4_t *)(op0), (vint32m4_t *)(op1), (vbool8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (const int32_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (const int32_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vbool64_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (const int32_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (const uint32_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vbool32_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (const uint32_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (const uint32_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vbool16_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (const uint32_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u32m4((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (const uint32_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u32m4_m((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (vbool8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (const uint32_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (const uint32_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vbool64_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (const uint32_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg3ei32_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (const int32_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vbool32_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (const int32_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (const int32_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vbool16_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (const int32_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (const int32_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vbool64_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (const int32_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (const uint32_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vbool32_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (const uint32_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (const uint32_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vbool16_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (const uint32_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (const uint32_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vbool64_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (const uint32_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg4ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (const int32_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vbool32_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (const int32_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (const int32_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (vbool16_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (vint32m2_t)(op7), (vint32m2_t)(op8), (const int32_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (const int32_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vbool64_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (const int32_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (const uint32_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vbool32_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (const uint32_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (const uint32_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (vbool16_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (vuint32m2_t)(op7), (vuint32m2_t)(op8), (const uint32_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (const uint32_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vbool64_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (const uint32_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vloxseg5ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (const int32_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vbool32_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (const int32_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (const int32_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vbool64_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (const int32_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (const uint32_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vbool32_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (const uint32_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (const uint32_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vbool64_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (const uint32_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vloxseg6ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (const int32_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vbool32_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (const int32_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (const int32_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vbool64_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (const int32_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (const uint32_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vbool32_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (const uint32_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (const uint32_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vbool64_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (const uint32_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vloxseg7ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (const int32_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vbool32_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (const int32_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (const int32_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vbool64_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (const int32_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (const uint32_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vbool32_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (const uint32_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (const uint32_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vbool64_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (const uint32_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vloxseg8ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (const int32_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (vbool32_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (vint32m1_t)(op15), (vint32m1_t)(op16), (const int32_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (const int32_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (vbool64_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (vint32mf2_t)(op15), (vint32mf2_t)(op16), (const int32_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (const uint32_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (vbool32_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (vuint32m1_t)(op15), (vuint32m1_t)(op16), (const uint32_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (const uint32_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (vbool64_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (vuint32mf2_t)(op15), (vuint32mf2_t)(op16), (const uint32_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vloxseg2ei64_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (const int32_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vbool32_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (const int32_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (const int32_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vbool16_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (const int32_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i32m4((vint32m4_t *)(op0), (vint32m4_t *)(op1), (const int32_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i32m4_m((vint32m4_t *)(op0), (vint32m4_t *)(op1), (vbool8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (const int32_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (const int32_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vbool64_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (const int32_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (const uint32_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vbool32_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (const uint32_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (const uint32_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vbool16_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (const uint32_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u32m4((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (const uint32_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u32m4_m((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (vbool8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (const uint32_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (const uint32_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vbool64_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (const uint32_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg3ei64_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (const int32_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vbool32_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (const int32_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (const int32_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vbool16_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (const int32_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (const int32_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vbool64_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (const int32_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (const uint32_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vbool32_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (const uint32_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (const uint32_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vbool16_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (const uint32_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (const uint32_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vbool64_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (const uint32_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg4ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (const int32_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vbool32_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (const int32_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (const int32_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (vbool16_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (vint32m2_t)(op7), (vint32m2_t)(op8), (const int32_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (const int32_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vbool64_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (const int32_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (const uint32_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vbool32_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (const uint32_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (const uint32_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (vbool16_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (vuint32m2_t)(op7), (vuint32m2_t)(op8), (const uint32_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (const uint32_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vbool64_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (const uint32_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vloxseg5ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (const int32_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vbool32_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (const int32_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (const int32_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vbool64_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (const int32_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (const uint32_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vbool32_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (const uint32_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (const uint32_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vbool64_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (const uint32_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vloxseg6ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (const int32_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vbool32_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (const int32_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (const int32_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vbool64_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (const int32_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (const uint32_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vbool32_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (const uint32_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (const uint32_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vbool64_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (const uint32_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vloxseg7ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (const int32_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vbool32_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (const int32_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (const int32_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vbool64_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (const int32_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (const uint32_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vbool32_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (const uint32_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (const uint32_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vbool64_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (const uint32_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vloxseg8ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (const int32_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (vbool32_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (vint32m1_t)(op15), (vint32m1_t)(op16), (const int32_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (const int32_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (vbool64_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (vint32mf2_t)(op15), (vint32mf2_t)(op16), (const int32_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (const uint32_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (vbool32_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (vuint32m1_t)(op15), (vuint32m1_t)(op16), (const uint32_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (const uint32_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (vbool64_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (vuint32mf2_t)(op15), (vuint32mf2_t)(op16), (const uint32_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#endif
-
-#if defined(__riscv_f) && defined(__riscv_zvlsseg)
-#define vloxseg2ei8_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (const float *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vbool32_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (const float *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (const float *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vbool16_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (const float *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f32m4((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (const float *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f32m4_m((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (vbool8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (const float *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (const float *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vbool64_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (const float *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg3ei8_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (const float *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vbool32_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (const float *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (const float *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vbool16_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (const float *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (const float *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vbool64_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (const float *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg4ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (const float *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vbool32_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (const float *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (const float *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (vbool16_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (vfloat32m2_t)(op7), (vfloat32m2_t)(op8), (const float *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (const float *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vbool64_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (const float *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vloxseg5ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (const float *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vbool32_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (const float *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (const float *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vbool64_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (const float *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vloxseg6ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (const float *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vbool32_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (const float *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (const float *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vbool64_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (const float *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vloxseg7ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (const float *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vbool32_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (const float *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (const float *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vbool64_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (const float *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vloxseg8ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (const float *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (vbool32_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (vfloat32m1_t)(op15), (vfloat32m1_t)(op16), (const float *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (const float *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (vbool64_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (vfloat32mf2_t)(op15), (vfloat32mf2_t)(op16), (const float *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vloxseg2ei16_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (const float *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vbool32_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (const float *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (const float *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vbool16_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (const float *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f32m4((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (const float *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f32m4_m((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (vbool8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (const float *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (const float *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vbool64_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (const float *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg3ei16_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (const float *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vbool32_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (const float *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (const float *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vbool16_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (const float *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (const float *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vbool64_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (const float *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg4ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (const float *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vbool32_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (const float *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (const float *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (vbool16_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (vfloat32m2_t)(op7), (vfloat32m2_t)(op8), (const float *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (const float *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vbool64_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (const float *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vloxseg5ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (const float *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vbool32_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (const float *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (const float *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vbool64_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (const float *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vloxseg6ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (const float *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vbool32_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (const float *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (const float *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vbool64_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (const float *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vloxseg7ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (const float *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vbool32_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (const float *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (const float *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vbool64_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (const float *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vloxseg8ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (const float *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (vbool32_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (vfloat32m1_t)(op15), (vfloat32m1_t)(op16), (const float *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (const float *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (vbool64_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (vfloat32mf2_t)(op15), (vfloat32mf2_t)(op16), (const float *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vloxseg2ei32_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (const float *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vbool32_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (const float *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (const float *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vbool16_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (const float *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f32m4((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (const float *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f32m4_m((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (vbool8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (const float *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (const float *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vbool64_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (const float *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg3ei32_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (const float *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vbool32_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (const float *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (const float *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vbool16_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (const float *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (const float *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vbool64_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (const float *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg4ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (const float *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vbool32_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (const float *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (const float *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (vbool16_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (vfloat32m2_t)(op7), (vfloat32m2_t)(op8), (const float *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (const float *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vbool64_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (const float *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vloxseg5ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (const float *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vbool32_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (const float *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (const float *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vbool64_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (const float *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vloxseg6ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (const float *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vbool32_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (const float *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (const float *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vbool64_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (const float *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vloxseg7ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (const float *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vbool32_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (const float *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (const float *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vbool64_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (const float *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vloxseg8ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (const float *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (vbool32_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (vfloat32m1_t)(op15), (vfloat32m1_t)(op16), (const float *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (const float *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (vbool64_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (vfloat32mf2_t)(op15), (vfloat32mf2_t)(op16), (const float *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vloxseg2ei64_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (const float *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vbool32_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (const float *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (const float *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vbool16_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (const float *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_f32m4((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (const float *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_f32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_f32m4_m((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (vbool8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (const float *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (const float *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vbool64_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (const float *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg3ei64_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (const float *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vbool32_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (const float *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (const float *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vbool16_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (const float *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (const float *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vbool64_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (const float *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg4ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (const float *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vbool32_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (const float *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (const float *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (vbool16_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (vfloat32m2_t)(op7), (vfloat32m2_t)(op8), (const float *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (const float *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vbool64_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (const float *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vloxseg5ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (const float *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vbool32_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (const float *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (const float *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vbool64_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (const float *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vloxseg6ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (const float *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vbool32_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (const float *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (const float *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vbool64_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (const float *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vloxseg7ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (const float *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vbool32_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (const float *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (const float *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vbool64_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (const float *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vloxseg8ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (const float *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (vbool32_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (vfloat32m1_t)(op15), (vfloat32m1_t)(op16), (const float *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (const float *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (vbool64_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (vfloat32mf2_t)(op15), (vfloat32mf2_t)(op16), (const float *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vsseg2e32_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_f32m1((float *)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsseg2e32_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_f32m2((float *)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsseg2e32_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_f32m4((float *)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsseg2e32_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_f32mf2((float *)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsseg3e32_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e32_v_f32m1((float *)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsseg3e32_v_f32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsseg3e32_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e32_v_f32m2((float *)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsseg3e32_v_f32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsseg3e32_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e32_v_f32mf2((float *)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsseg3e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsseg4e32_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e32_v_f32m1((float *)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsseg4e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsseg4e32_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e32_v_f32m2((float *)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsseg4e32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsseg4e32_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e32_v_f32mf2((float *)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsseg4e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsseg5e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e32_v_f32m1((float *)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsseg5e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsseg5e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e32_v_f32mf2((float *)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsseg5e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsseg6e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e32_v_f32m1((float *)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsseg6e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsseg6e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e32_v_f32mf2((float *)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsseg6e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsseg7e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e32_v_f32m1((float *)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsseg7e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsseg7e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e32_v_f32mf2((float *)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsseg7e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsseg8e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e32_v_f32m1((float *)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsseg8e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsseg8e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e32_v_f32mf2((float *)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsseg8e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vssseg2e32_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_f32m1((float *)(op0), (ptrdiff_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_f32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vssseg2e32_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_f32m2((float *)(op0), (ptrdiff_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_f32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vssseg2e32_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_f32m4((float *)(op0), (ptrdiff_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_f32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (size_t)(op5))
-#define vssseg2e32_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_f32mf2((float *)(op0), (ptrdiff_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vssseg3e32_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e32_v_f32m1((float *)(op0), (ptrdiff_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vssseg3e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vssseg3e32_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e32_v_f32m2((float *)(op0), (ptrdiff_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vssseg3e32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vssseg3e32_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e32_v_f32mf2((float *)(op0), (ptrdiff_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vssseg3e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vssseg4e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e32_v_f32m1((float *)(op0), (ptrdiff_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vssseg4e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vssseg4e32_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e32_v_f32m2((float *)(op0), (ptrdiff_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vssseg4e32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (size_t)(op7))
-#define vssseg4e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e32_v_f32mf2((float *)(op0), (ptrdiff_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vssseg4e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vssseg5e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e32_v_f32m1((float *)(op0), (ptrdiff_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vssseg5e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vssseg5e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e32_v_f32mf2((float *)(op0), (ptrdiff_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vssseg5e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vssseg6e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e32_v_f32m1((float *)(op0), (ptrdiff_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vssseg6e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vssseg6e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e32_v_f32mf2((float *)(op0), (ptrdiff_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vssseg6e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vssseg7e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e32_v_f32m1((float *)(op0), (ptrdiff_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vssseg7e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vssseg7e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e32_v_f32mf2((float *)(op0), (ptrdiff_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vssseg7e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vssseg8e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e32_v_f32m1((float *)(op0), (ptrdiff_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vssseg8e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (size_t)(op11))
-#define vssseg8e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e32_v_f32mf2((float *)(op0), (ptrdiff_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vssseg8e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg2ei8_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f32m2((float *)(op0), (vuint8mf2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint8mf2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f32m4((float *)(op0), (vuint8m1_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint8m1_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_f32m2((float *)(op0), (vuint8mf2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint8mf2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_f32m2((float *)(op0), (vuint8mf2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint8mf2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg2ei16_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f32m2((float *)(op0), (vuint16m1_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint16m1_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f32m4((float *)(op0), (vuint16m2_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint16m2_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_f32m2((float *)(op0), (vuint16m1_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint16m1_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_f32m2((float *)(op0), (vuint16m1_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint16m1_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg2ei32_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f32m2((float *)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f32m4((float *)(op0), (vuint32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint32m4_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_f32m2((float *)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_f32m2((float *)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg2ei64_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_f32m2((float *)(op0), (vuint64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint64m4_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_f32m4((float *)(op0), (vuint64m8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_f32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint64m8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_f32m2((float *)(op0), (vuint64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint64m4_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_f32m2((float *)(op0), (vuint64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint64m4_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg2ei8_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f32m2((float *)(op0), (vuint8mf2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint8mf2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f32m4((float *)(op0), (vuint8m1_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint8m1_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_f32m2((float *)(op0), (vuint8mf2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint8mf2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_f32m2((float *)(op0), (vuint8mf2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint8mf2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg2ei16_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f32m2((float *)(op0), (vuint16m1_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint16m1_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f32m4((float *)(op0), (vuint16m2_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint16m2_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_f32m2((float *)(op0), (vuint16m1_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint16m1_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_f32m2((float *)(op0), (vuint16m1_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint16m1_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg2ei32_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f32m2((float *)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f32m4((float *)(op0), (vuint32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint32m4_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_f32m2((float *)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_f32m2((float *)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg2ei64_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_f32m2((float *)(op0), (vuint64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint64m4_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_f32m4((float *)(op0), (vuint64m8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_f32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint64m8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_f32m2((float *)(op0), (vuint64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint64m4_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_f32m2((float *)(op0), (vuint64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint64m4_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (size_t)(op11))
-#define vlseg2e32_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (const float *)(op2), (size_t)(op3))
-#define vlseg2e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vbool32_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (const float *)(op5), (size_t)(op6))
-#define vlseg2e32_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (const float *)(op2), (size_t)(op3))
-#define vlseg2e32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vbool16_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (const float *)(op5), (size_t)(op6))
-#define vlseg2e32_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_f32m4((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (const float *)(op2), (size_t)(op3))
-#define vlseg2e32_v_f32m4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_f32m4_m((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (vbool8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (const float *)(op5), (size_t)(op6))
-#define vlseg2e32_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (const float *)(op2), (size_t)(op3))
-#define vlseg2e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vbool64_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (const float *)(op5), (size_t)(op6))
-#define vlseg3e32_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (const float *)(op3), (size_t)(op4))
-#define vlseg3e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vbool32_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (const float *)(op7), (size_t)(op8))
-#define vlseg3e32_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (const float *)(op3), (size_t)(op4))
-#define vlseg3e32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vbool16_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (const float *)(op7), (size_t)(op8))
-#define vlseg3e32_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (const float *)(op3), (size_t)(op4))
-#define vlseg3e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vbool64_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (const float *)(op7), (size_t)(op8))
-#define vlseg4e32_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (const float *)(op4), (size_t)(op5))
-#define vlseg4e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vbool32_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (const float *)(op9), (size_t)(op10))
-#define vlseg4e32_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (const float *)(op4), (size_t)(op5))
-#define vlseg4e32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (vbool16_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (vfloat32m2_t)(op7), (vfloat32m2_t)(op8), (const float *)(op9), (size_t)(op10))
-#define vlseg4e32_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (const float *)(op4), (size_t)(op5))
-#define vlseg4e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vbool64_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (const float *)(op9), (size_t)(op10))
-#define vlseg5e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (const float *)(op5), (size_t)(op6))
-#define vlseg5e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vbool32_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (const float *)(op11), (size_t)(op12))
-#define vlseg5e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (const float *)(op5), (size_t)(op6))
-#define vlseg5e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vbool64_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (const float *)(op11), (size_t)(op12))
-#define vlseg6e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (const float *)(op6), (size_t)(op7))
-#define vlseg6e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vbool32_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (const float *)(op13), (size_t)(op14))
-#define vlseg6e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (const float *)(op6), (size_t)(op7))
-#define vlseg6e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vbool64_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (const float *)(op13), (size_t)(op14))
-#define vlseg7e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (const float *)(op7), (size_t)(op8))
-#define vlseg7e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vbool32_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (const float *)(op15), (size_t)(op16))
-#define vlseg7e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (const float *)(op7), (size_t)(op8))
-#define vlseg7e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vbool64_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (const float *)(op15), (size_t)(op16))
-#define vlseg8e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (const float *)(op8), (size_t)(op9))
-#define vlseg8e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (vbool32_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (vfloat32m1_t)(op15), (vfloat32m1_t)(op16), (const float *)(op17), (size_t)(op18))
-#define vlseg8e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (const float *)(op8), (size_t)(op9))
-#define vlseg8e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (vbool64_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (vfloat32mf2_t)(op15), (vfloat32mf2_t)(op16), (const float *)(op17), (size_t)(op18))
-#define vlseg2e32ff_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (const float *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vbool32_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (const float *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e32ff_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (const float *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vbool16_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (const float *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e32ff_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_f32m4((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (const float *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_f32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_f32m4_m((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (vbool8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (const float *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e32ff_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (const float *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vbool64_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (const float *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg3e32ff_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e32ff_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (const float *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e32ff_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e32ff_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vbool32_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (const float *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e32ff_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e32ff_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (const float *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e32ff_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e32ff_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vbool16_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (const float *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e32ff_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e32ff_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (const float *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e32ff_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e32ff_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vbool64_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (const float *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg4e32ff_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e32ff_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (const float *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e32ff_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e32ff_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vbool32_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (const float *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e32ff_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e32ff_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (const float *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e32ff_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e32ff_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (vbool16_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (vfloat32m2_t)(op7), (vfloat32m2_t)(op8), (const float *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e32ff_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e32ff_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (const float *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e32ff_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e32ff_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vbool64_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (const float *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg5e32ff_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e32ff_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (const float *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e32ff_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e32ff_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vbool32_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (const float *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e32ff_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e32ff_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (const float *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e32ff_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e32ff_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vbool64_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (const float *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg6e32ff_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e32ff_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (const float *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e32ff_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e32ff_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vbool32_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (const float *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e32ff_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e32ff_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (const float *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e32ff_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e32ff_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vbool64_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (const float *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg7e32ff_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e32ff_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (const float *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e32ff_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e32ff_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vbool32_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (const float *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e32ff_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e32ff_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (const float *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e32ff_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e32ff_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vbool64_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (const float *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg8e32ff_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e32ff_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (const float *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e32ff_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e32ff_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (vbool32_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (vfloat32m1_t)(op15), (vfloat32m1_t)(op16), (const float *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e32ff_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e32ff_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (const float *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e32ff_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e32ff_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (vbool64_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (vfloat32mf2_t)(op15), (vfloat32mf2_t)(op16), (const float *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlsseg2e32_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (const float *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vbool32_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (const float *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e32_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (const float *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vbool16_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (const float *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e32_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_f32m4((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (const float *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_f32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_f32m4_m((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (vbool8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (const float *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e32_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (const float *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vbool64_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (const float *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg3e32_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (const float *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vbool32_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (const float *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e32_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (const float *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vbool16_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (const float *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e32_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (const float *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vbool64_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (const float *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg4e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (const float *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vbool32_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (const float *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e32_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (const float *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (vbool16_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (vfloat32m2_t)(op7), (vfloat32m2_t)(op8), (const float *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (const float *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vbool64_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (const float *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg5e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (const float *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vbool32_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (const float *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (const float *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vbool64_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (const float *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg6e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (const float *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vbool32_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (const float *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (const float *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vbool64_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (const float *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg7e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (const float *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vbool32_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (const float *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (const float *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vbool64_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (const float *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg8e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (const float *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (vbool32_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (vfloat32m1_t)(op15), (vfloat32m1_t)(op16), (const float *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (const float *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (vbool64_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (vfloat32mf2_t)(op15), (vfloat32mf2_t)(op16), (const float *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vluxseg2ei8_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (const float *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vbool32_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (const float *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (const float *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vbool16_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (const float *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f32m4((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (const float *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f32m4_m((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (vbool8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (const float *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (const float *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vbool64_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (const float *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg3ei8_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (const float *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vbool32_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (const float *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (const float *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vbool16_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (const float *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (const float *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vbool64_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (const float *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg4ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (const float *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vbool32_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (const float *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (const float *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (vbool16_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (vfloat32m2_t)(op7), (vfloat32m2_t)(op8), (const float *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (const float *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vbool64_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (const float *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vluxseg5ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (const float *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vbool32_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (const float *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (const float *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vbool64_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (const float *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vluxseg6ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (const float *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vbool32_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (const float *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (const float *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vbool64_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (const float *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vluxseg7ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (const float *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vbool32_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (const float *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (const float *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vbool64_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (const float *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vluxseg8ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (const float *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (vbool32_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (vfloat32m1_t)(op15), (vfloat32m1_t)(op16), (const float *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (const float *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (vbool64_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (vfloat32mf2_t)(op15), (vfloat32mf2_t)(op16), (const float *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vluxseg2ei16_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (const float *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vbool32_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (const float *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (const float *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vbool16_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (const float *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f32m4((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (const float *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f32m4_m((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (vbool8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (const float *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (const float *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vbool64_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (const float *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg3ei16_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (const float *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vbool32_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (const float *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (const float *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vbool16_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (const float *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (const float *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vbool64_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (const float *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg4ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (const float *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vbool32_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (const float *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (const float *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (vbool16_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (vfloat32m2_t)(op7), (vfloat32m2_t)(op8), (const float *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (const float *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vbool64_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (const float *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vluxseg5ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (const float *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vbool32_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (const float *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (const float *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vbool64_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (const float *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vluxseg6ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (const float *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vbool32_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (const float *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (const float *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vbool64_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (const float *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vluxseg7ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (const float *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vbool32_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (const float *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (const float *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vbool64_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (const float *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vluxseg8ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (const float *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (vbool32_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (vfloat32m1_t)(op15), (vfloat32m1_t)(op16), (const float *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (const float *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (vbool64_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (vfloat32mf2_t)(op15), (vfloat32mf2_t)(op16), (const float *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vluxseg2ei32_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (const float *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vbool32_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (const float *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (const float *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vbool16_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (const float *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f32m4((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (const float *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f32m4_m((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (vbool8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (const float *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (const float *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vbool64_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (const float *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg3ei32_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (const float *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vbool32_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (const float *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (const float *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vbool16_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (const float *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (const float *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vbool64_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (const float *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg4ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (const float *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vbool32_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (const float *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (const float *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (vbool16_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (vfloat32m2_t)(op7), (vfloat32m2_t)(op8), (const float *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (const float *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vbool64_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (const float *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vluxseg5ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (const float *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vbool32_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (const float *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (const float *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vbool64_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (const float *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vluxseg6ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (const float *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vbool32_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (const float *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (const float *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vbool64_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (const float *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vluxseg7ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (const float *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vbool32_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (const float *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (const float *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vbool64_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (const float *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vluxseg8ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (const float *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (vbool32_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (vfloat32m1_t)(op15), (vfloat32m1_t)(op16), (const float *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (const float *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (vbool64_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (vfloat32mf2_t)(op15), (vfloat32mf2_t)(op16), (const float *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vluxseg2ei64_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (const float *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vbool32_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (const float *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (const float *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vbool16_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (const float *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_f32m4((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (const float *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_f32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_f32m4_m((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (vbool8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (const float *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (const float *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vbool64_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (const float *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg3ei64_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (const float *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vbool32_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (const float *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (const float *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vbool16_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (const float *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (const float *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vbool64_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (const float *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg4ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (const float *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vbool32_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (const float *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (const float *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (vbool16_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (vfloat32m2_t)(op7), (vfloat32m2_t)(op8), (const float *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (const float *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vbool64_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (const float *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vluxseg5ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (const float *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vbool32_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (const float *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (const float *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vbool64_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (const float *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vluxseg6ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (const float *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vbool32_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (const float *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (const float *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vbool64_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (const float *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vluxseg7ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (const float *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vbool32_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (const float *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (const float *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vbool64_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (const float *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vluxseg8ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (const float *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (vbool32_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (vfloat32m1_t)(op15), (vfloat32m1_t)(op16), (const float *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (const float *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (vbool64_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (vfloat32mf2_t)(op15), (vfloat32mf2_t)(op16), (const float *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#endif
-
-#if defined(__riscv_d) && defined(__riscv_zvlsseg)
-#define vloxseg2ei8_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (const double *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vbool64_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (const double *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (const double *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vbool32_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (const double *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f64m4((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (const double *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f64m4_m((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (vbool16_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (const double *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg3ei8_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (const double *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vbool64_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (const double *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (const double *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vbool32_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (const double *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg4ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (const double *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vbool64_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (const double *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (const double *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (vbool32_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (vfloat64m2_t)(op7), (vfloat64m2_t)(op8), (const double *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vloxseg5ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (const double *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vbool64_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (const double *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vloxseg6ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (const double *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vbool64_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (const double *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vloxseg7ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (const double *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vbool64_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (const double *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vloxseg8ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (const double *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (vbool64_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (vfloat64m1_t)(op15), (vfloat64m1_t)(op16), (const double *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vloxseg2ei16_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (const double *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vbool64_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (const double *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (const double *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vbool32_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (const double *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f64m4((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (const double *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f64m4_m((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (vbool16_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (const double *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg3ei16_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (const double *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vbool64_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (const double *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (const double *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vbool32_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (const double *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg4ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (const double *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vbool64_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (const double *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (const double *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (vbool32_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (vfloat64m2_t)(op7), (vfloat64m2_t)(op8), (const double *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vloxseg5ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (const double *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vbool64_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (const double *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vloxseg6ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (const double *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vbool64_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (const double *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vloxseg7ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (const double *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vbool64_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (const double *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vloxseg8ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (const double *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (vbool64_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (vfloat64m1_t)(op15), (vfloat64m1_t)(op16), (const double *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vloxseg2ei32_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (const double *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vbool64_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (const double *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (const double *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vbool32_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (const double *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f64m4((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (const double *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f64m4_m((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (vbool16_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (const double *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg3ei32_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (const double *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vbool64_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (const double *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (const double *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vbool32_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (const double *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg4ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (const double *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vbool64_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (const double *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (const double *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (vbool32_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (vfloat64m2_t)(op7), (vfloat64m2_t)(op8), (const double *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vloxseg5ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (const double *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vbool64_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (const double *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vloxseg6ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (const double *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vbool64_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (const double *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vloxseg7ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (const double *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vbool64_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (const double *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vloxseg8ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (const double *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (vbool64_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (vfloat64m1_t)(op15), (vfloat64m1_t)(op16), (const double *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vloxseg2ei64_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (const double *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vbool64_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (const double *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (const double *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vbool32_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (const double *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_f64m4((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (const double *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_f64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_f64m4_m((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (vbool16_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (const double *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg3ei64_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (const double *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vbool64_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (const double *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (const double *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vbool32_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (const double *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg4ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (const double *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vbool64_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (const double *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (const double *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (vbool32_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (vfloat64m2_t)(op7), (vfloat64m2_t)(op8), (const double *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vloxseg5ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (const double *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vbool64_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (const double *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vloxseg6ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (const double *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vbool64_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (const double *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vloxseg7ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (const double *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vbool64_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (const double *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vloxseg8ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (const double *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (vbool64_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (vfloat64m1_t)(op15), (vfloat64m1_t)(op16), (const double *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vsseg2e64_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e64_v_f64m1((double *)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vsseg2e64_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsseg2e64_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e64_v_f64m2((double *)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vsseg2e64_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsseg2e64_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e64_v_f64m4((double *)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vsseg2e64_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e64_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsseg3e64_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e64_v_f64m1((double *)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsseg3e64_v_f64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsseg3e64_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e64_v_f64m2((double *)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsseg3e64_v_f64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsseg4e64_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e64_v_f64m1((double *)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsseg4e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsseg4e64_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e64_v_f64m2((double *)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsseg4e64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsseg5e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e64_v_f64m1((double *)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsseg5e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsseg6e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e64_v_f64m1((double *)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsseg6e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsseg7e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e64_v_f64m1((double *)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsseg7e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsseg8e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e64_v_f64m1((double *)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsseg8e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vssseg2e64_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e64_v_f64m1((double *)(op0), (ptrdiff_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vssseg2e64_v_f64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vssseg2e64_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e64_v_f64m2((double *)(op0), (ptrdiff_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vssseg2e64_v_f64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vssseg2e64_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e64_v_f64m4((double *)(op0), (ptrdiff_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vssseg2e64_v_f64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e64_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (size_t)(op5))
-#define vssseg3e64_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e64_v_f64m1((double *)(op0), (ptrdiff_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vssseg3e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vssseg3e64_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e64_v_f64m2((double *)(op0), (ptrdiff_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vssseg3e64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vssseg4e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e64_v_f64m1((double *)(op0), (ptrdiff_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vssseg4e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vssseg4e64_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e64_v_f64m2((double *)(op0), (ptrdiff_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vssseg4e64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (size_t)(op7))
-#define vssseg5e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e64_v_f64m1((double *)(op0), (ptrdiff_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vssseg5e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vssseg6e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e64_v_f64m1((double *)(op0), (ptrdiff_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vssseg6e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vssseg7e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e64_v_f64m1((double *)(op0), (ptrdiff_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vssseg7e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vssseg8e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e64_v_f64m1((double *)(op0), (ptrdiff_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vssseg8e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (size_t)(op11))
-#define vsuxseg2ei8_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f64m2((double *)(op0), (vuint8mf4_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint8mf4_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f64m4((double *)(op0), (vuint8mf2_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint8mf2_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_f64m2((double *)(op0), (vuint8mf4_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint8mf4_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_f64m2((double *)(op0), (vuint8mf4_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint8mf4_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (size_t)(op11))
-#define vsuxseg2ei16_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f64m2((double *)(op0), (vuint16mf2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint16mf2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f64m4((double *)(op0), (vuint16m1_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint16m1_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_f64m2((double *)(op0), (vuint16mf2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint16mf2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_f64m2((double *)(op0), (vuint16mf2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint16mf2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (size_t)(op11))
-#define vsuxseg2ei32_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f64m2((double *)(op0), (vuint32m1_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint32m1_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f64m4((double *)(op0), (vuint32m2_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint32m2_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_f64m2((double *)(op0), (vuint32m1_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint32m1_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_f64m2((double *)(op0), (vuint32m1_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint32m1_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (size_t)(op11))
-#define vsuxseg2ei64_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_f64m2((double *)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_f64m4((double *)(op0), (vuint64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_f64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint64m4_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_f64m2((double *)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_f64m2((double *)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (size_t)(op11))
-#define vsoxseg2ei8_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f64m2((double *)(op0), (vuint8mf4_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint8mf4_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f64m4((double *)(op0), (vuint8mf2_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint8mf2_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_f64m2((double *)(op0), (vuint8mf4_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint8mf4_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_f64m2((double *)(op0), (vuint8mf4_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint8mf4_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (size_t)(op11))
-#define vsoxseg2ei16_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f64m2((double *)(op0), (vuint16mf2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint16mf2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f64m4((double *)(op0), (vuint16m1_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint16m1_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_f64m2((double *)(op0), (vuint16mf2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint16mf2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_f64m2((double *)(op0), (vuint16mf2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint16mf2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (size_t)(op11))
-#define vsoxseg2ei32_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f64m2((double *)(op0), (vuint32m1_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint32m1_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f64m4((double *)(op0), (vuint32m2_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint32m2_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_f64m2((double *)(op0), (vuint32m1_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint32m1_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_f64m2((double *)(op0), (vuint32m1_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint32m1_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (size_t)(op11))
-#define vsoxseg2ei64_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_f64m2((double *)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_f64m4((double *)(op0), (vuint64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_f64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint64m4_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_f64m2((double *)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_f64m2((double *)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (size_t)(op11))
-#define vlseg2e64_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (const double *)(op2), (size_t)(op3))
-#define vlseg2e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vbool64_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (const double *)(op5), (size_t)(op6))
-#define vlseg2e64_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (const double *)(op2), (size_t)(op3))
-#define vlseg2e64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vbool32_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (const double *)(op5), (size_t)(op6))
-#define vlseg2e64_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e64_v_f64m4((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (const double *)(op2), (size_t)(op3))
-#define vlseg2e64_v_f64m4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e64_v_f64m4_m((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (vbool16_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (const double *)(op5), (size_t)(op6))
-#define vlseg3e64_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (const double *)(op3), (size_t)(op4))
-#define vlseg3e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vbool64_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (const double *)(op7), (size_t)(op8))
-#define vlseg3e64_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (const double *)(op3), (size_t)(op4))
-#define vlseg3e64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vbool32_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (const double *)(op7), (size_t)(op8))
-#define vlseg4e64_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (const double *)(op4), (size_t)(op5))
-#define vlseg4e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vbool64_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (const double *)(op9), (size_t)(op10))
-#define vlseg4e64_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (const double *)(op4), (size_t)(op5))
-#define vlseg4e64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (vbool32_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (vfloat64m2_t)(op7), (vfloat64m2_t)(op8), (const double *)(op9), (size_t)(op10))
-#define vlseg5e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (const double *)(op5), (size_t)(op6))
-#define vlseg5e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vbool64_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (const double *)(op11), (size_t)(op12))
-#define vlseg6e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (const double *)(op6), (size_t)(op7))
-#define vlseg6e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vbool64_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (const double *)(op13), (size_t)(op14))
-#define vlseg7e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (const double *)(op7), (size_t)(op8))
-#define vlseg7e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vbool64_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (const double *)(op15), (size_t)(op16))
-#define vlseg8e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (const double *)(op8), (size_t)(op9))
-#define vlseg8e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (vbool64_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (vfloat64m1_t)(op15), (vfloat64m1_t)(op16), (const double *)(op17), (size_t)(op18))
-#define vlseg2e64ff_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e64ff_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (const double *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e64ff_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e64ff_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vbool64_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (const double *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e64ff_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e64ff_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (const double *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e64ff_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e64ff_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vbool32_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (const double *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e64ff_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e64ff_v_f64m4((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (const double *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e64ff_v_f64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e64ff_v_f64m4_m((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (vbool16_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (const double *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg3e64ff_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e64ff_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (const double *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e64ff_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e64ff_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vbool64_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (const double *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e64ff_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e64ff_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (const double *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e64ff_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e64ff_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vbool32_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (const double *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg4e64ff_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e64ff_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (const double *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e64ff_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e64ff_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vbool64_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (const double *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e64ff_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e64ff_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (const double *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e64ff_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e64ff_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (vbool32_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (vfloat64m2_t)(op7), (vfloat64m2_t)(op8), (const double *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg5e64ff_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e64ff_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (const double *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e64ff_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e64ff_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vbool64_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (const double *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg6e64ff_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e64ff_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (const double *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e64ff_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e64ff_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vbool64_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (const double *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg7e64ff_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e64ff_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (const double *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e64ff_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e64ff_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vbool64_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (const double *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg8e64ff_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e64ff_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (const double *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e64ff_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e64ff_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (vbool64_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (vfloat64m1_t)(op15), (vfloat64m1_t)(op16), (const double *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlsseg2e64_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (const double *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vbool64_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (const double *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e64_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (const double *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vbool32_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (const double *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e64_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e64_v_f64m4((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (const double *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e64_v_f64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e64_v_f64m4_m((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (vbool16_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (const double *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg3e64_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (const double *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vbool64_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (const double *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e64_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (const double *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vbool32_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (const double *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg4e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (const double *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vbool64_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (const double *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e64_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (const double *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (vbool32_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (vfloat64m2_t)(op7), (vfloat64m2_t)(op8), (const double *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg5e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (const double *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vbool64_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (const double *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg6e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (const double *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vbool64_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (const double *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg7e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (const double *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vbool64_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (const double *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg8e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (const double *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (vbool64_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (vfloat64m1_t)(op15), (vfloat64m1_t)(op16), (const double *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vluxseg2ei8_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (const double *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vbool64_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (const double *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (const double *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vbool32_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (const double *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f64m4((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (const double *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f64m4_m((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (vbool16_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (const double *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg3ei8_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (const double *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vbool64_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (const double *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (const double *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vbool32_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (const double *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg4ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (const double *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vbool64_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (const double *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (const double *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (vbool32_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (vfloat64m2_t)(op7), (vfloat64m2_t)(op8), (const double *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vluxseg5ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (const double *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vbool64_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (const double *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vluxseg6ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (const double *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vbool64_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (const double *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vluxseg7ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (const double *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vbool64_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (const double *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vluxseg8ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (const double *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (vbool64_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (vfloat64m1_t)(op15), (vfloat64m1_t)(op16), (const double *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vluxseg2ei16_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (const double *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vbool64_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (const double *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (const double *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vbool32_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (const double *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f64m4((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (const double *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f64m4_m((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (vbool16_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (const double *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg3ei16_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (const double *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vbool64_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (const double *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (const double *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vbool32_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (const double *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg4ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (const double *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vbool64_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (const double *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (const double *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (vbool32_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (vfloat64m2_t)(op7), (vfloat64m2_t)(op8), (const double *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vluxseg5ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (const double *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vbool64_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (const double *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vluxseg6ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (const double *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vbool64_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (const double *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vluxseg7ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (const double *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vbool64_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (const double *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vluxseg8ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (const double *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (vbool64_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (vfloat64m1_t)(op15), (vfloat64m1_t)(op16), (const double *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vluxseg2ei32_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (const double *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vbool64_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (const double *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (const double *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vbool32_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (const double *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f64m4((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (const double *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f64m4_m((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (vbool16_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (const double *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg3ei32_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (const double *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vbool64_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (const double *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (const double *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vbool32_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (const double *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg4ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (const double *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vbool64_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (const double *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (const double *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (vbool32_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (vfloat64m2_t)(op7), (vfloat64m2_t)(op8), (const double *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vluxseg5ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (const double *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vbool64_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (const double *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vluxseg6ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (const double *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vbool64_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (const double *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vluxseg7ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (const double *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vbool64_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (const double *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vluxseg8ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (const double *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (vbool64_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (vfloat64m1_t)(op15), (vfloat64m1_t)(op16), (const double *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vluxseg2ei64_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (const double *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vbool64_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (const double *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (const double *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vbool32_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (const double *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_f64m4((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (const double *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_f64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_f64m4_m((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (vbool16_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (const double *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg3ei64_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (const double *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vbool64_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (const double *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (const double *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vbool32_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (const double *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg4ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (const double *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vbool64_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (const double *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (const double *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (vbool32_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (vfloat64m2_t)(op7), (vfloat64m2_t)(op8), (const double *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vluxseg5ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (const double *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vbool64_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (const double *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vluxseg6ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (const double *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vbool64_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (const double *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vluxseg7ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (const double *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vbool64_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (const double *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vluxseg8ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (const double *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (vbool64_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (vfloat64m1_t)(op15), (vfloat64m1_t)(op16), (const double *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#endif
-
-#if defined(__riscv_zfh) && defined(__riscv_zvlsseg)
-#define vloxseg2ei8_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (const _Float16 *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vbool16_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (const _Float16 *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (const _Float16 *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vbool8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (const _Float16 *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f16m4((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (const _Float16 *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f16m4_m((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (vbool4_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (const _Float16 *)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (const _Float16 *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vbool32_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (const _Float16 *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (const _Float16 *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vbool64_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (const _Float16 *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg3ei8_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (const _Float16 *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vbool16_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (const _Float16 *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (const _Float16 *)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vbool8_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (const _Float16 *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (const _Float16 *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vbool32_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (const _Float16 *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (const _Float16 *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vbool64_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (const _Float16 *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg4ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (const _Float16 *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vbool16_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (const _Float16 *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (const _Float16 *)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (vbool8_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (vfloat16m2_t)(op7), (vfloat16m2_t)(op8), (const _Float16 *)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (const _Float16 *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vbool32_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (const _Float16 *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (const _Float16 *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vbool64_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (const _Float16 *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vloxseg5ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (const _Float16 *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vbool16_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (const _Float16 *)(op11), (vuint8mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (const _Float16 *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vbool32_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (const _Float16 *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (const _Float16 *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vbool64_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (const _Float16 *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vloxseg6ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (const _Float16 *)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vbool16_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (const _Float16 *)(op13), (vuint8mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (const _Float16 *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vbool32_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (const _Float16 *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (const _Float16 *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vbool64_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (const _Float16 *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vloxseg7ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (const _Float16 *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vbool16_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (const _Float16 *)(op15), (vuint8mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (const _Float16 *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vbool32_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (const _Float16 *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (const _Float16 *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vbool64_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (const _Float16 *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vloxseg8ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (const _Float16 *)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (vbool16_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (vfloat16m1_t)(op15), (vfloat16m1_t)(op16), (const _Float16 *)(op17), (vuint8mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (const _Float16 *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (vbool32_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (vfloat16mf2_t)(op15), (vfloat16mf2_t)(op16), (const _Float16 *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (const _Float16 *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (vbool64_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (vfloat16mf4_t)(op15), (vfloat16mf4_t)(op16), (const _Float16 *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vloxseg2ei16_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (const _Float16 *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vbool16_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (const _Float16 *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (const _Float16 *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vbool8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (const _Float16 *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f16m4((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (const _Float16 *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f16m4_m((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (vbool4_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (const _Float16 *)(op5), (vuint16m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (const _Float16 *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vbool32_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (const _Float16 *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (const _Float16 *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vbool64_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (const _Float16 *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg3ei16_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (const _Float16 *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vbool16_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (const _Float16 *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (const _Float16 *)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vbool8_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (const _Float16 *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (const _Float16 *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vbool32_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (const _Float16 *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (const _Float16 *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vbool64_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (const _Float16 *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg4ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (const _Float16 *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vbool16_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (const _Float16 *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (const _Float16 *)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (vbool8_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (vfloat16m2_t)(op7), (vfloat16m2_t)(op8), (const _Float16 *)(op9), (vuint16m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (const _Float16 *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vbool32_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (const _Float16 *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (const _Float16 *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vbool64_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (const _Float16 *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vloxseg5ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (const _Float16 *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vbool16_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (const _Float16 *)(op11), (vuint16m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (const _Float16 *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vbool32_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (const _Float16 *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (const _Float16 *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vbool64_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (const _Float16 *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vloxseg6ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (const _Float16 *)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vbool16_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (const _Float16 *)(op13), (vuint16m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (const _Float16 *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vbool32_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (const _Float16 *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (const _Float16 *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vbool64_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (const _Float16 *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vloxseg7ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (const _Float16 *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vbool16_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (const _Float16 *)(op15), (vuint16m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (const _Float16 *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vbool32_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (const _Float16 *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (const _Float16 *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vbool64_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (const _Float16 *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vloxseg8ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (const _Float16 *)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (vbool16_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (vfloat16m1_t)(op15), (vfloat16m1_t)(op16), (const _Float16 *)(op17), (vuint16m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (const _Float16 *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (vbool32_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (vfloat16mf2_t)(op15), (vfloat16mf2_t)(op16), (const _Float16 *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (const _Float16 *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (vbool64_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (vfloat16mf4_t)(op15), (vfloat16mf4_t)(op16), (const _Float16 *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vloxseg2ei32_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (const _Float16 *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vbool16_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (const _Float16 *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (const _Float16 *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vbool8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (const _Float16 *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f16m4((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (const _Float16 *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f16m4_m((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (vbool4_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (const _Float16 *)(op5), (vuint32m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (const _Float16 *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vbool32_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (const _Float16 *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (const _Float16 *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vbool64_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (const _Float16 *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg3ei32_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (const _Float16 *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vbool16_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (const _Float16 *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (const _Float16 *)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vbool8_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (const _Float16 *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (const _Float16 *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vbool32_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (const _Float16 *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (const _Float16 *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vbool64_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (const _Float16 *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg4ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (const _Float16 *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vbool16_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (const _Float16 *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (const _Float16 *)(op4), (vuint32m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (vbool8_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (vfloat16m2_t)(op7), (vfloat16m2_t)(op8), (const _Float16 *)(op9), (vuint32m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (const _Float16 *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vbool32_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (const _Float16 *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (const _Float16 *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vbool64_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (const _Float16 *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vloxseg5ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (const _Float16 *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vbool16_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (const _Float16 *)(op11), (vuint32m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (const _Float16 *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vbool32_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (const _Float16 *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (const _Float16 *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vbool64_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (const _Float16 *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vloxseg6ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (const _Float16 *)(op6), (vuint32m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vbool16_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (const _Float16 *)(op13), (vuint32m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (const _Float16 *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vbool32_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (const _Float16 *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (const _Float16 *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vbool64_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (const _Float16 *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vloxseg7ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (const _Float16 *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vbool16_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (const _Float16 *)(op15), (vuint32m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (const _Float16 *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vbool32_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (const _Float16 *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (const _Float16 *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vbool64_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (const _Float16 *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vloxseg8ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (const _Float16 *)(op8), (vuint32m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (vbool16_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (vfloat16m1_t)(op15), (vfloat16m1_t)(op16), (const _Float16 *)(op17), (vuint32m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (const _Float16 *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (vbool32_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (vfloat16mf2_t)(op15), (vfloat16mf2_t)(op16), (const _Float16 *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (const _Float16 *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (vbool64_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (vfloat16mf4_t)(op15), (vfloat16mf4_t)(op16), (const _Float16 *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vloxseg2ei64_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (const _Float16 *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vbool16_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (const _Float16 *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (const _Float16 *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vbool8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (const _Float16 *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (const _Float16 *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vbool32_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (const _Float16 *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (const _Float16 *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vbool64_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (const _Float16 *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg3ei64_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (const _Float16 *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vbool16_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (const _Float16 *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (const _Float16 *)(op3), (vuint64m8_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vbool8_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (const _Float16 *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (const _Float16 *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vbool32_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (const _Float16 *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (const _Float16 *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vbool64_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (const _Float16 *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg4ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (const _Float16 *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vbool16_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (const _Float16 *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (const _Float16 *)(op4), (vuint64m8_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (vbool8_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (vfloat16m2_t)(op7), (vfloat16m2_t)(op8), (const _Float16 *)(op9), (vuint64m8_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (const _Float16 *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vbool32_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (const _Float16 *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (const _Float16 *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vbool64_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (const _Float16 *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vloxseg5ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (const _Float16 *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vbool16_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (const _Float16 *)(op11), (vuint64m4_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (const _Float16 *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vbool32_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (const _Float16 *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (const _Float16 *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vbool64_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (const _Float16 *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vloxseg6ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (const _Float16 *)(op6), (vuint64m4_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vbool16_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (const _Float16 *)(op13), (vuint64m4_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (const _Float16 *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vbool32_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (const _Float16 *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (const _Float16 *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vbool64_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (const _Float16 *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vloxseg7ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (const _Float16 *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vbool16_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (const _Float16 *)(op15), (vuint64m4_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (const _Float16 *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vbool32_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (const _Float16 *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (const _Float16 *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vbool64_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (const _Float16 *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vloxseg8ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (const _Float16 *)(op8), (vuint64m4_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (vbool16_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (vfloat16m1_t)(op15), (vfloat16m1_t)(op16), (const _Float16 *)(op17), (vuint64m4_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (const _Float16 *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (vbool32_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (vfloat16mf2_t)(op15), (vfloat16mf2_t)(op16), (const _Float16 *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (const _Float16 *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (vbool64_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (vfloat16mf4_t)(op15), (vfloat16mf4_t)(op16), (const _Float16 *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vsseg2e16_v_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_f16m1((_Float16 *)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_f16m2((_Float16 *)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_f16m4((_Float16 *)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_f16mf2((_Float16 *)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_f16mf4((_Float16 *)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_f16m1((_Float16 *)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_f16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsseg3e16_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_f16m2((_Float16 *)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_f16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsseg3e16_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_f16mf2((_Float16 *)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsseg3e16_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_f16mf4((_Float16 *)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_f16m1((_Float16 *)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsseg4e16_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_f16m2((_Float16 *)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsseg4e16_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_f16mf2((_Float16 *)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsseg4e16_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_f16mf4((_Float16 *)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsseg5e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e16_v_f16m1((_Float16 *)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsseg5e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsseg5e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e16_v_f16mf2((_Float16 *)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsseg5e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsseg5e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e16_v_f16mf4((_Float16 *)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsseg5e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsseg6e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e16_v_f16m1((_Float16 *)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsseg6e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsseg6e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e16_v_f16mf2((_Float16 *)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsseg6e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsseg6e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e16_v_f16mf4((_Float16 *)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsseg6e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsseg7e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e16_v_f16m1((_Float16 *)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsseg7e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsseg7e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e16_v_f16mf2((_Float16 *)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsseg7e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsseg7e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e16_v_f16mf4((_Float16 *)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsseg7e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsseg8e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e16_v_f16m1((_Float16 *)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsseg8e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsseg8e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e16_v_f16mf2((_Float16 *)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsseg8e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsseg8e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e16_v_f16mf4((_Float16 *)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsseg8e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vssseg2e16_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_f16m1((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_f16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_f16m2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_f16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_f16m4((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_f16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_f16mf2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_f16mf4((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_f16m1((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vssseg3e16_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_f16m2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vssseg3e16_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_f16mf2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vssseg3e16_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_f16mf4((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_f16m1((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vssseg4e16_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_f16m2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (size_t)(op7))
-#define vssseg4e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_f16mf2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vssseg4e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_f16mf4((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vssseg5e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e16_v_f16m1((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vssseg5e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vssseg5e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e16_v_f16mf2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vssseg5e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vssseg5e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e16_v_f16mf4((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vssseg5e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vssseg6e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e16_v_f16m1((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vssseg6e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vssseg6e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e16_v_f16mf2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vssseg6e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vssseg6e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e16_v_f16mf4((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vssseg6e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vssseg7e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e16_v_f16m1((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vssseg7e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vssseg7e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e16_v_f16mf2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vssseg7e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vssseg7e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e16_v_f16mf4((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vssseg7e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vssseg8e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e16_v_f16m1((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vssseg8e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (size_t)(op11))
-#define vssseg8e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e16_v_f16mf2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vssseg8e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (size_t)(op11))
-#define vssseg8e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e16_v_f16mf4((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vssseg8e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg2ei8_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f16m2((_Float16 *)(op0), (vuint8m1_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint8m1_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f16m4((_Float16 *)(op0), (vuint8m2_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint8m2_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_f16m2((_Float16 *)(op0), (vuint8m1_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint8m1_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_f16m2((_Float16 *)(op0), (vuint8m1_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint8m1_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg2ei16_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f16m2((_Float16 *)(op0), (vuint16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f16m4((_Float16 *)(op0), (vuint16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint16m4_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_f16m2((_Float16 *)(op0), (vuint16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_f16m2((_Float16 *)(op0), (vuint16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg2ei32_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f16m2((_Float16 *)(op0), (vuint32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint32m4_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f16m4((_Float16 *)(op0), (vuint32m8_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint32m8_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_f16m2((_Float16 *)(op0), (vuint32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint32m4_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_f16m2((_Float16 *)(op0), (vuint32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint32m4_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg2ei64_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_f16m2((_Float16 *)(op0), (vuint64m8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint64m8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_f16m2((_Float16 *)(op0), (vuint64m8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint64m8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_f16m2((_Float16 *)(op0), (vuint64m8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint64m8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg2ei8_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f16m2((_Float16 *)(op0), (vuint8m1_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint8m1_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f16m4((_Float16 *)(op0), (vuint8m2_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint8m2_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_f16m2((_Float16 *)(op0), (vuint8m1_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint8m1_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_f16m2((_Float16 *)(op0), (vuint8m1_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint8m1_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg2ei16_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f16m2((_Float16 *)(op0), (vuint16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f16m4((_Float16 *)(op0), (vuint16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint16m4_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_f16m2((_Float16 *)(op0), (vuint16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_f16m2((_Float16 *)(op0), (vuint16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg2ei32_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f16m2((_Float16 *)(op0), (vuint32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint32m4_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f16m4((_Float16 *)(op0), (vuint32m8_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint32m8_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_f16m2((_Float16 *)(op0), (vuint32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint32m4_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_f16m2((_Float16 *)(op0), (vuint32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint32m4_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg2ei64_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_f16m2((_Float16 *)(op0), (vuint64m8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint64m8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_f16m2((_Float16 *)(op0), (vuint64m8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint64m8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_f16m2((_Float16 *)(op0), (vuint64m8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint64m8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (size_t)(op11))
-#define vlseg2e16_v_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (const _Float16 *)(op2), (size_t)(op3))
-#define vlseg2e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vbool16_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (const _Float16 *)(op5), (size_t)(op6))
-#define vlseg2e16_v_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (const _Float16 *)(op2), (size_t)(op3))
-#define vlseg2e16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vbool8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (const _Float16 *)(op5), (size_t)(op6))
-#define vlseg2e16_v_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_f16m4((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (const _Float16 *)(op2), (size_t)(op3))
-#define vlseg2e16_v_f16m4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_f16m4_m((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (vbool4_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (const _Float16 *)(op5), (size_t)(op6))
-#define vlseg2e16_v_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (const _Float16 *)(op2), (size_t)(op3))
-#define vlseg2e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vbool32_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (const _Float16 *)(op5), (size_t)(op6))
-#define vlseg2e16_v_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (const _Float16 *)(op2), (size_t)(op3))
-#define vlseg2e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vbool64_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (const _Float16 *)(op5), (size_t)(op6))
-#define vlseg3e16_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (const _Float16 *)(op3), (size_t)(op4))
-#define vlseg3e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vbool16_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (const _Float16 *)(op7), (size_t)(op8))
-#define vlseg3e16_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (const _Float16 *)(op3), (size_t)(op4))
-#define vlseg3e16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vbool8_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (const _Float16 *)(op7), (size_t)(op8))
-#define vlseg3e16_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (const _Float16 *)(op3), (size_t)(op4))
-#define vlseg3e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vbool32_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (const _Float16 *)(op7), (size_t)(op8))
-#define vlseg3e16_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (const _Float16 *)(op3), (size_t)(op4))
-#define vlseg3e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vbool64_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (const _Float16 *)(op7), (size_t)(op8))
-#define vlseg4e16_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (const _Float16 *)(op4), (size_t)(op5))
-#define vlseg4e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vbool16_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (const _Float16 *)(op9), (size_t)(op10))
-#define vlseg4e16_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (const _Float16 *)(op4), (size_t)(op5))
-#define vlseg4e16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (vbool8_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (vfloat16m2_t)(op7), (vfloat16m2_t)(op8), (const _Float16 *)(op9), (size_t)(op10))
-#define vlseg4e16_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (const _Float16 *)(op4), (size_t)(op5))
-#define vlseg4e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vbool32_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (const _Float16 *)(op9), (size_t)(op10))
-#define vlseg4e16_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (const _Float16 *)(op4), (size_t)(op5))
-#define vlseg4e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vbool64_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (const _Float16 *)(op9), (size_t)(op10))
-#define vlseg5e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (const _Float16 *)(op5), (size_t)(op6))
-#define vlseg5e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vbool16_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (const _Float16 *)(op11), (size_t)(op12))
-#define vlseg5e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (const _Float16 *)(op5), (size_t)(op6))
-#define vlseg5e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vbool32_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (const _Float16 *)(op11), (size_t)(op12))
-#define vlseg5e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (const _Float16 *)(op5), (size_t)(op6))
-#define vlseg5e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vbool64_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (const _Float16 *)(op11), (size_t)(op12))
-#define vlseg6e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (const _Float16 *)(op6), (size_t)(op7))
-#define vlseg6e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vbool16_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (const _Float16 *)(op13), (size_t)(op14))
-#define vlseg6e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (const _Float16 *)(op6), (size_t)(op7))
-#define vlseg6e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vbool32_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (const _Float16 *)(op13), (size_t)(op14))
-#define vlseg6e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (const _Float16 *)(op6), (size_t)(op7))
-#define vlseg6e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vbool64_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (const _Float16 *)(op13), (size_t)(op14))
-#define vlseg7e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (const _Float16 *)(op7), (size_t)(op8))
-#define vlseg7e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vbool16_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (const _Float16 *)(op15), (size_t)(op16))
-#define vlseg7e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (const _Float16 *)(op7), (size_t)(op8))
-#define vlseg7e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vbool32_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (const _Float16 *)(op15), (size_t)(op16))
-#define vlseg7e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (const _Float16 *)(op7), (size_t)(op8))
-#define vlseg7e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vbool64_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (const _Float16 *)(op15), (size_t)(op16))
-#define vlseg8e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (const _Float16 *)(op8), (size_t)(op9))
-#define vlseg8e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (vbool16_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (vfloat16m1_t)(op15), (vfloat16m1_t)(op16), (const _Float16 *)(op17), (size_t)(op18))
-#define vlseg8e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (const _Float16 *)(op8), (size_t)(op9))
-#define vlseg8e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (vbool32_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (vfloat16mf2_t)(op15), (vfloat16mf2_t)(op16), (const _Float16 *)(op17), (size_t)(op18))
-#define vlseg8e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (const _Float16 *)(op8), (size_t)(op9))
-#define vlseg8e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (vbool64_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (vfloat16mf4_t)(op15), (vfloat16mf4_t)(op16), (const _Float16 *)(op17), (size_t)(op18))
-#define vlseg2e16ff_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (const _Float16 *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vbool16_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (const _Float16 *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (const _Float16 *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vbool8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (const _Float16 *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_f16m4((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (const _Float16 *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_f16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_f16m4_m((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (vbool4_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (const _Float16 *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (const _Float16 *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vbool32_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (const _Float16 *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (const _Float16 *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vbool64_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (const _Float16 *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg3e16ff_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (const _Float16 *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vbool16_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (const _Float16 *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e16ff_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (const _Float16 *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vbool8_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (const _Float16 *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e16ff_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (const _Float16 *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vbool32_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (const _Float16 *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e16ff_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (const _Float16 *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vbool64_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (const _Float16 *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg4e16ff_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (const _Float16 *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vbool16_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (const _Float16 *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e16ff_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (const _Float16 *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (vbool8_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (vfloat16m2_t)(op7), (vfloat16m2_t)(op8), (const _Float16 *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e16ff_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (const _Float16 *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vbool32_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (const _Float16 *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e16ff_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (const _Float16 *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vbool64_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (const _Float16 *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg5e16ff_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e16ff_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (const _Float16 *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e16ff_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e16ff_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vbool16_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (const _Float16 *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e16ff_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e16ff_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (const _Float16 *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e16ff_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e16ff_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vbool32_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (const _Float16 *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e16ff_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e16ff_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (const _Float16 *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e16ff_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e16ff_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vbool64_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (const _Float16 *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg6e16ff_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e16ff_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (const _Float16 *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e16ff_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e16ff_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vbool16_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (const _Float16 *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e16ff_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e16ff_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (const _Float16 *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e16ff_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e16ff_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vbool32_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (const _Float16 *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e16ff_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e16ff_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (const _Float16 *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e16ff_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e16ff_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vbool64_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (const _Float16 *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg7e16ff_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e16ff_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (const _Float16 *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e16ff_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e16ff_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vbool16_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (const _Float16 *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e16ff_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e16ff_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (const _Float16 *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e16ff_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e16ff_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vbool32_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (const _Float16 *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e16ff_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e16ff_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (const _Float16 *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e16ff_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e16ff_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vbool64_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (const _Float16 *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg8e16ff_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e16ff_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (const _Float16 *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e16ff_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e16ff_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (vbool16_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (vfloat16m1_t)(op15), (vfloat16m1_t)(op16), (const _Float16 *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e16ff_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e16ff_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (const _Float16 *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e16ff_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e16ff_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (vbool32_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (vfloat16mf2_t)(op15), (vfloat16mf2_t)(op16), (const _Float16 *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e16ff_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e16ff_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (const _Float16 *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e16ff_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e16ff_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (vbool64_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (vfloat16mf4_t)(op15), (vfloat16mf4_t)(op16), (const _Float16 *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlsseg2e16_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (const _Float16 *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vbool16_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (const _Float16 *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (const _Float16 *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vbool8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (const _Float16 *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_f16m4((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (const _Float16 *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_f16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_f16m4_m((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (vbool4_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (const _Float16 *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (const _Float16 *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vbool32_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (const _Float16 *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (const _Float16 *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vbool64_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (const _Float16 *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg3e16_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (const _Float16 *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vbool16_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (const _Float16 *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e16_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (const _Float16 *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vbool8_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (const _Float16 *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e16_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (const _Float16 *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vbool32_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (const _Float16 *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e16_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (const _Float16 *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vbool64_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (const _Float16 *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg4e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (const _Float16 *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vbool16_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (const _Float16 *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e16_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (const _Float16 *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (vbool8_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (vfloat16m2_t)(op7), (vfloat16m2_t)(op8), (const _Float16 *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (const _Float16 *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vbool32_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (const _Float16 *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (const _Float16 *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vbool64_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (const _Float16 *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg5e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (const _Float16 *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vbool16_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (const _Float16 *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (const _Float16 *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vbool32_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (const _Float16 *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (const _Float16 *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vbool64_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (const _Float16 *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg6e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (const _Float16 *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vbool16_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (const _Float16 *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (const _Float16 *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vbool32_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (const _Float16 *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (const _Float16 *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vbool64_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (const _Float16 *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg7e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (const _Float16 *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vbool16_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (const _Float16 *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (const _Float16 *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vbool32_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (const _Float16 *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (const _Float16 *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vbool64_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (const _Float16 *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg8e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (const _Float16 *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (vbool16_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (vfloat16m1_t)(op15), (vfloat16m1_t)(op16), (const _Float16 *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (const _Float16 *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (vbool32_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (vfloat16mf2_t)(op15), (vfloat16mf2_t)(op16), (const _Float16 *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (const _Float16 *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (vbool64_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (vfloat16mf4_t)(op15), (vfloat16mf4_t)(op16), (const _Float16 *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vluxseg2ei8_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (const _Float16 *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vbool16_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (const _Float16 *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (const _Float16 *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vbool8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (const _Float16 *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f16m4((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (const _Float16 *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f16m4_m((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (vbool4_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (const _Float16 *)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (const _Float16 *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vbool32_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (const _Float16 *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (const _Float16 *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vbool64_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (const _Float16 *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg3ei8_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (const _Float16 *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vbool16_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (const _Float16 *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (const _Float16 *)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vbool8_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (const _Float16 *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (const _Float16 *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vbool32_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (const _Float16 *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (const _Float16 *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vbool64_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (const _Float16 *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg4ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (const _Float16 *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vbool16_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (const _Float16 *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (const _Float16 *)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (vbool8_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (vfloat16m2_t)(op7), (vfloat16m2_t)(op8), (const _Float16 *)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (const _Float16 *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vbool32_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (const _Float16 *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (const _Float16 *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vbool64_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (const _Float16 *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vluxseg5ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (const _Float16 *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vbool16_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (const _Float16 *)(op11), (vuint8mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (const _Float16 *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vbool32_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (const _Float16 *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (const _Float16 *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vbool64_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (const _Float16 *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vluxseg6ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (const _Float16 *)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vbool16_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (const _Float16 *)(op13), (vuint8mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (const _Float16 *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vbool32_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (const _Float16 *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (const _Float16 *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vbool64_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (const _Float16 *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vluxseg7ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (const _Float16 *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vbool16_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (const _Float16 *)(op15), (vuint8mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (const _Float16 *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vbool32_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (const _Float16 *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (const _Float16 *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vbool64_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (const _Float16 *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vluxseg8ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (const _Float16 *)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (vbool16_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (vfloat16m1_t)(op15), (vfloat16m1_t)(op16), (const _Float16 *)(op17), (vuint8mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (const _Float16 *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (vbool32_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (vfloat16mf2_t)(op15), (vfloat16mf2_t)(op16), (const _Float16 *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (const _Float16 *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (vbool64_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (vfloat16mf4_t)(op15), (vfloat16mf4_t)(op16), (const _Float16 *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vluxseg2ei16_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (const _Float16 *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vbool16_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (const _Float16 *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (const _Float16 *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vbool8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (const _Float16 *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f16m4((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (const _Float16 *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f16m4_m((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (vbool4_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (const _Float16 *)(op5), (vuint16m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (const _Float16 *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vbool32_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (const _Float16 *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (const _Float16 *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vbool64_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (const _Float16 *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg3ei16_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (const _Float16 *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vbool16_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (const _Float16 *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (const _Float16 *)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vbool8_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (const _Float16 *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (const _Float16 *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vbool32_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (const _Float16 *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (const _Float16 *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vbool64_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (const _Float16 *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg4ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (const _Float16 *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vbool16_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (const _Float16 *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (const _Float16 *)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (vbool8_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (vfloat16m2_t)(op7), (vfloat16m2_t)(op8), (const _Float16 *)(op9), (vuint16m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (const _Float16 *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vbool32_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (const _Float16 *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (const _Float16 *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vbool64_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (const _Float16 *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vluxseg5ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (const _Float16 *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vbool16_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (const _Float16 *)(op11), (vuint16m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (const _Float16 *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vbool32_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (const _Float16 *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (const _Float16 *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vbool64_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (const _Float16 *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vluxseg6ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (const _Float16 *)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vbool16_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (const _Float16 *)(op13), (vuint16m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (const _Float16 *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vbool32_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (const _Float16 *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (const _Float16 *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vbool64_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (const _Float16 *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vluxseg7ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (const _Float16 *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vbool16_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (const _Float16 *)(op15), (vuint16m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (const _Float16 *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vbool32_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (const _Float16 *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (const _Float16 *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vbool64_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (const _Float16 *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vluxseg8ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (const _Float16 *)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (vbool16_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (vfloat16m1_t)(op15), (vfloat16m1_t)(op16), (const _Float16 *)(op17), (vuint16m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (const _Float16 *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (vbool32_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (vfloat16mf2_t)(op15), (vfloat16mf2_t)(op16), (const _Float16 *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (const _Float16 *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (vbool64_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (vfloat16mf4_t)(op15), (vfloat16mf4_t)(op16), (const _Float16 *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vluxseg2ei32_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (const _Float16 *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vbool16_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (const _Float16 *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (const _Float16 *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vbool8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (const _Float16 *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f16m4((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (const _Float16 *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f16m4_m((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (vbool4_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (const _Float16 *)(op5), (vuint32m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (const _Float16 *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vbool32_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (const _Float16 *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (const _Float16 *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vbool64_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (const _Float16 *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg3ei32_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (const _Float16 *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vbool16_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (const _Float16 *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (const _Float16 *)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vbool8_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (const _Float16 *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (const _Float16 *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vbool32_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (const _Float16 *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (const _Float16 *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vbool64_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (const _Float16 *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg4ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (const _Float16 *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vbool16_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (const _Float16 *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (const _Float16 *)(op4), (vuint32m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (vbool8_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (vfloat16m2_t)(op7), (vfloat16m2_t)(op8), (const _Float16 *)(op9), (vuint32m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (const _Float16 *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vbool32_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (const _Float16 *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (const _Float16 *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vbool64_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (const _Float16 *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vluxseg5ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (const _Float16 *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vbool16_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (const _Float16 *)(op11), (vuint32m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (const _Float16 *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vbool32_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (const _Float16 *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (const _Float16 *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vbool64_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (const _Float16 *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vluxseg6ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (const _Float16 *)(op6), (vuint32m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vbool16_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (const _Float16 *)(op13), (vuint32m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (const _Float16 *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vbool32_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (const _Float16 *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (const _Float16 *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vbool64_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (const _Float16 *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vluxseg7ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (const _Float16 *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vbool16_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (const _Float16 *)(op15), (vuint32m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (const _Float16 *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vbool32_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (const _Float16 *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (const _Float16 *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vbool64_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (const _Float16 *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vluxseg8ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (const _Float16 *)(op8), (vuint32m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (vbool16_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (vfloat16m1_t)(op15), (vfloat16m1_t)(op16), (const _Float16 *)(op17), (vuint32m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (const _Float16 *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (vbool32_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (vfloat16mf2_t)(op15), (vfloat16mf2_t)(op16), (const _Float16 *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (const _Float16 *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (vbool64_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (vfloat16mf4_t)(op15), (vfloat16mf4_t)(op16), (const _Float16 *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vluxseg2ei64_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (const _Float16 *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vbool16_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (const _Float16 *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (const _Float16 *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vbool8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (const _Float16 *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (const _Float16 *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vbool32_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (const _Float16 *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (const _Float16 *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vbool64_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (const _Float16 *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg3ei64_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (const _Float16 *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vbool16_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (const _Float16 *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (const _Float16 *)(op3), (vuint64m8_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vbool8_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (const _Float16 *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (const _Float16 *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vbool32_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (const _Float16 *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (const _Float16 *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vbool64_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (const _Float16 *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg4ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (const _Float16 *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vbool16_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (const _Float16 *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (const _Float16 *)(op4), (vuint64m8_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (vbool8_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (vfloat16m2_t)(op7), (vfloat16m2_t)(op8), (const _Float16 *)(op9), (vuint64m8_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (const _Float16 *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vbool32_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (const _Float16 *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (const _Float16 *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vbool64_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (const _Float16 *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vluxseg5ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (const _Float16 *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vbool16_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (const _Float16 *)(op11), (vuint64m4_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (const _Float16 *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vbool32_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (const _Float16 *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (const _Float16 *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vbool64_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (const _Float16 *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vluxseg6ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (const _Float16 *)(op6), (vuint64m4_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vbool16_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (const _Float16 *)(op13), (vuint64m4_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (const _Float16 *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vbool32_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (const _Float16 *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (const _Float16 *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vbool64_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (const _Float16 *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vluxseg7ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (const _Float16 *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vbool16_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (const _Float16 *)(op15), (vuint64m4_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (const _Float16 *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vbool32_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (const _Float16 *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (const _Float16 *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vbool64_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (const _Float16 *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vluxseg8ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (const _Float16 *)(op8), (vuint64m4_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (vbool16_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (vfloat16m1_t)(op15), (vfloat16m1_t)(op16), (const _Float16 *)(op17), (vuint64m4_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (const _Float16 *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (vbool32_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (vfloat16mf2_t)(op15), (vfloat16mf2_t)(op16), (const _Float16 *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (const _Float16 *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (vbool64_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (vfloat16mf4_t)(op15), (vfloat16mf4_t)(op16), (const _Float16 *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#endif
-
-#define __riscv_v_intrinsic_overloading 1
-#define __rvv_overloaded static inline __attribute__((__always_inline__, __nodebug__, __overloadable__))
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8m1)))
-vint8m1_t vadd(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8m1_m)))
-vint8m1_t vadd(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8m2)))
-vint8m2_t vadd(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8m2_m)))
-vint8m2_t vadd(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8m4)))
-vint8m4_t vadd(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8m4_m)))
-vint8m4_t vadd(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8m8)))
-vint8m8_t vadd(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8m8_m)))
-vint8m8_t vadd(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8mf2)))
-vint8mf2_t vadd(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8mf2_m)))
-vint8mf2_t vadd(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8mf4)))
-vint8mf4_t vadd(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8mf4_m)))
-vint8mf4_t vadd(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8mf8)))
-vint8mf8_t vadd(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8mf8_m)))
-vint8mf8_t vadd(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16m1)))
-vint16m1_t vadd(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16m1_m)))
-vint16m1_t vadd(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16m2)))
-vint16m2_t vadd(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16m2_m)))
-vint16m2_t vadd(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16m4)))
-vint16m4_t vadd(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16m4_m)))
-vint16m4_t vadd(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16m8)))
-vint16m8_t vadd(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16m8_m)))
-vint16m8_t vadd(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16mf2)))
-vint16mf2_t vadd(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16mf2_m)))
-vint16mf2_t vadd(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16mf4)))
-vint16mf4_t vadd(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16mf4_m)))
-vint16mf4_t vadd(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i32m1)))
-vint32m1_t vadd(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i32m1_m)))
-vint32m1_t vadd(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i32m2)))
-vint32m2_t vadd(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i32m2_m)))
-vint32m2_t vadd(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i32m4)))
-vint32m4_t vadd(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i32m4_m)))
-vint32m4_t vadd(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i32m8)))
-vint32m8_t vadd(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i32m8_m)))
-vint32m8_t vadd(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i32mf2)))
-vint32mf2_t vadd(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i32mf2_m)))
-vint32mf2_t vadd(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i64m1)))
-vint64m1_t vadd(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i64m1_m)))
-vint64m1_t vadd(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i64m2)))
-vint64m2_t vadd(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i64m2_m)))
-vint64m2_t vadd(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i64m4)))
-vint64m4_t vadd(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i64m4_m)))
-vint64m4_t vadd(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i64m8)))
-vint64m8_t vadd(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i64m8_m)))
-vint64m8_t vadd(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16mf4)))
-vuint16mf4_t vwaddu_vv(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16mf4_m)))
-vuint16mf4_t vwaddu_vv(vbool64_t op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16mf2)))
-vuint16mf2_t vwaddu_vv(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16mf2_m)))
-vuint16mf2_t vwaddu_vv(vbool32_t op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16m1)))
-vuint16m1_t vwaddu_vv(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16m1_m)))
-vuint16m1_t vwaddu_vv(vbool16_t op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16m2)))
-vuint16m2_t vwaddu_vv(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16m2_m)))
-vuint16m2_t vwaddu_vv(vbool8_t op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16m4)))
-vuint16m4_t vwaddu_vv(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16m4_m)))
-vuint16m4_t vwaddu_vv(vbool4_t op0, vuint16m4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16m8)))
-vuint16m8_t vwaddu_vv(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16m8_m)))
-vuint16m8_t vwaddu_vv(vbool2_t op0, vuint16m8_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u32mf2)))
-vuint32mf2_t vwaddu_vv(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u32mf2_m)))
-vuint32mf2_t vwaddu_vv(vbool64_t op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u32m1)))
-vuint32m1_t vwaddu_vv(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u32m1_m)))
-vuint32m1_t vwaddu_vv(vbool32_t op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u32m2)))
-vuint32m2_t vwaddu_vv(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u32m2_m)))
-vuint32m2_t vwaddu_vv(vbool16_t op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u32m4)))
-vuint32m4_t vwaddu_vv(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u32m4_m)))
-vuint32m4_t vwaddu_vv(vbool8_t op0, vuint32m4_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u32m8)))
-vuint32m8_t vwaddu_vv(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u32m8_m)))
-vuint32m8_t vwaddu_vv(vbool4_t op0, vuint32m8_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u64m1)))
-vuint64m1_t vwaddu_vv(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u64m1_m)))
-vuint64m1_t vwaddu_vv(vbool64_t op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u64m2)))
-vuint64m2_t vwaddu_vv(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u64m2_m)))
-vuint64m2_t vwaddu_vv(vbool32_t op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u64m4)))
-vuint64m4_t vwaddu_vv(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u64m4_m)))
-vuint64m4_t vwaddu_vv(vbool16_t op0, vuint64m4_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u64m8)))
-vuint64m8_t vwaddu_vv(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u64m8_m)))
-vuint64m8_t vwaddu_vv(vbool8_t op0, vuint64m8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8m1)))
-vuint8m1_t vluxei8(const uint8_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8m1_m)))
-vuint8m1_t vluxei8(vbool8_t op0, vuint8m1_t op1, const uint8_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8m2)))
-vuint8m2_t vluxei8(const uint8_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8m2_m)))
-vuint8m2_t vluxei8(vbool4_t op0, vuint8m2_t op1, const uint8_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8m4)))
-vuint8m4_t vluxei8(const uint8_t * op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8m4_m)))
-vuint8m4_t vluxei8(vbool2_t op0, vuint8m4_t op1, const uint8_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8m8)))
-vuint8m8_t vluxei8(const uint8_t * op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8m8_m)))
-vuint8m8_t vluxei8(vbool1_t op0, vuint8m8_t op1, const uint8_t * op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8mf2)))
-vuint8mf2_t vluxei8(const uint8_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8mf2_m)))
-vuint8mf2_t vluxei8(vbool16_t op0, vuint8mf2_t op1, const uint8_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8mf4)))
-vuint8mf4_t vluxei8(const uint8_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8mf4_m)))
-vuint8mf4_t vluxei8(vbool32_t op0, vuint8mf4_t op1, const uint8_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8mf8)))
-vuint8mf8_t vluxei8(const uint8_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8mf8_m)))
-vuint8mf8_t vluxei8(vbool64_t op0, vuint8mf8_t op1, const uint8_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_u64m1_m)))
-vuint64m1_t vlse64(vbool64_t op0, vuint64m1_t op1, const uint64_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_u64m2_m)))
-vuint64m2_t vlse64(vbool32_t op0, vuint64m2_t op1, const uint64_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_u64m4_m)))
-vuint64m4_t vlse64(vbool16_t op0, vuint64m4_t op1, const uint64_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_u64m8_m)))
-vuint64m8_t vlse64(vbool8_t op0, vuint64m8_t op1, const uint64_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16m1)))
-void vsse16(int16_t * op0, ptrdiff_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16m1_m)))
-void vsse16(vbool16_t op0, int16_t * op1, ptrdiff_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16m2)))
-void vsse16(int16_t * op0, ptrdiff_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16m2_m)))
-void vsse16(vbool8_t op0, int16_t * op1, ptrdiff_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16m4)))
-void vsse16(int16_t * op0, ptrdiff_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16m4_m)))
-void vsse16(vbool4_t op0, int16_t * op1, ptrdiff_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16m8)))
-void vsse16(int16_t * op0, ptrdiff_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16m8_m)))
-void vsse16(vbool2_t op0, int16_t * op1, ptrdiff_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16mf2)))
-void vsse16(int16_t * op0, ptrdiff_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16mf2_m)))
-void vsse16(vbool32_t op0, int16_t * op1, ptrdiff_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16mf4)))
-void vsse16(int16_t * op0, ptrdiff_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16mf4_m)))
-void vsse16(vbool64_t op0, int16_t * op1, ptrdiff_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16m1)))
-void vsse16(uint16_t * op0, ptrdiff_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16m1_m)))
-void vsse16(vbool16_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16m2)))
-void vsse16(uint16_t * op0, ptrdiff_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16m2_m)))
-void vsse16(vbool8_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16m4)))
-void vsse16(uint16_t * op0, ptrdiff_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16m4_m)))
-void vsse16(vbool4_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16m8)))
-void vsse16(uint16_t * op0, ptrdiff_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16m8_m)))
-void vsse16(vbool2_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16mf2)))
-void vsse16(uint16_t * op0, ptrdiff_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16mf2_m)))
-void vsse16(vbool32_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16mf4)))
-void vsse16(uint16_t * op0, ptrdiff_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16mf4_m)))
-void vsse16(vbool64_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_i32m1)))
-void vsse32(int32_t * op0, ptrdiff_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_i32m1_m)))
-void vsse32(vbool32_t op0, int32_t * op1, ptrdiff_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_i32m2)))
-void vsse32(int32_t * op0, ptrdiff_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_i32m2_m)))
-void vsse32(vbool16_t op0, int32_t * op1, ptrdiff_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_i32m4)))
-void vsse32(int32_t * op0, ptrdiff_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_i32m4_m)))
-void vsse32(vbool8_t op0, int32_t * op1, ptrdiff_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_i32m8)))
-void vsse32(int32_t * op0, ptrdiff_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_i32m8_m)))
-void vsse32(vbool4_t op0, int32_t * op1, ptrdiff_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_i32mf2)))
-void vsse32(int32_t * op0, ptrdiff_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_i32mf2_m)))
-void vsse32(vbool64_t op0, int32_t * op1, ptrdiff_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_u32m1)))
-void vsse32(uint32_t * op0, ptrdiff_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_u32m1_m)))
-void vsse32(vbool32_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_u32m2)))
-void vsse32(uint32_t * op0, ptrdiff_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_u32m2_m)))
-void vsse32(vbool16_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_u32m4)))
-void vsse32(uint32_t * op0, ptrdiff_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_u32m4_m)))
-void vsse32(vbool8_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_u32m8)))
-void vsse32(uint32_t * op0, ptrdiff_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_u32m8_m)))
-void vsse32(vbool4_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_u32mf2)))
-void vsse32(uint32_t * op0, ptrdiff_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_u32mf2_m)))
-void vsse32(vbool64_t op0, uint32_t * op1, ptrdiff_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_i64m1)))
-void vsse64(int64_t * op0, ptrdiff_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_i64m1_m)))
-void vsse64(vbool64_t op0, int64_t * op1, ptrdiff_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_i64m2)))
-void vsse64(int64_t * op0, ptrdiff_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_i64m2_m)))
-void vsse64(vbool32_t op0, int64_t * op1, ptrdiff_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_i64m4)))
-void vsse64(int64_t * op0, ptrdiff_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_i64m4_m)))
-void vsse64(vbool16_t op0, int64_t * op1, ptrdiff_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_i64m8)))
-void vsse64(int64_t * op0, ptrdiff_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_i64m8_m)))
-void vsse64(vbool8_t op0, int64_t * op1, ptrdiff_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_u64m1)))
-void vsse64(uint64_t * op0, ptrdiff_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_u64m1_m)))
-void vsse64(vbool64_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_u64m2)))
-void vsse64(uint64_t * op0, ptrdiff_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_u64m2_m)))
-void vsse64(vbool32_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_u64m4)))
-void vsse64(uint64_t * op0, ptrdiff_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_u64m4_m)))
-void vsse64(vbool16_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_u64m8)))
-void vsse64(uint64_t * op0, ptrdiff_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_u64m8_m)))
-void vsse64(vbool8_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8m1)))
-vint8m1_t vluxei16(const int8_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8m1_m)))
-vint8m1_t vluxei16(vbool8_t op0, vint8m1_t op1, const int8_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8m2)))
-vint8m2_t vluxei16(const int8_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8m2_m)))
-vint8m2_t vluxei16(vbool4_t op0, vint8m2_t op1, const int8_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8m4)))
-vint8m4_t vluxei16(const int8_t * op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8m4_m)))
-vint8m4_t vluxei16(vbool2_t op0, vint8m4_t op1, const int8_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8mf2)))
-vint8mf2_t vluxei16(const int8_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8mf2_m)))
-vint8mf2_t vluxei16(vbool16_t op0, vint8mf2_t op1, const int8_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8mf4)))
-vint8mf4_t vluxei16(const int8_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8mf4_m)))
-vint8mf4_t vluxei16(vbool32_t op0, vint8mf4_t op1, const int8_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8mf8)))
-vint8mf8_t vluxei16(const int8_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8mf8_m)))
-vint8mf8_t vluxei16(vbool64_t op0, vint8mf8_t op1, const int8_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8m1)))
-vuint8m1_t vluxei16(const uint8_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8m1_m)))
-vuint8m1_t vluxei16(vbool8_t op0, vuint8m1_t op1, const uint8_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8m2)))
-vuint8m2_t vluxei16(const uint8_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8m2_m)))
-vuint8m2_t vluxei16(vbool4_t op0, vuint8m2_t op1, const uint8_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8m4)))
-vuint8m4_t vluxei16(const uint8_t * op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8m4_m)))
-vuint8m4_t vluxei16(vbool2_t op0, vuint8m4_t op1, const uint8_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8mf2)))
-vuint8mf2_t vluxei16(const uint8_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8mf2_m)))
-vuint8mf2_t vluxei16(vbool16_t op0, vuint8mf2_t op1, const uint8_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8mf4)))
-vuint8mf4_t vluxei16(const uint8_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8mf4_m)))
-vuint8mf4_t vluxei16(vbool32_t op0, vuint8mf4_t op1, const uint8_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8mf8)))
-vuint8mf8_t vluxei16(const uint8_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8mf8_m)))
-vuint8mf8_t vluxei16(vbool64_t op0, vuint8mf8_t op1, const uint8_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i8m1)))
-vint8m1_t vluxei32(const int8_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i8m1_m)))
-vint8m1_t vluxei32(vbool8_t op0, vint8m1_t op1, const int8_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i8m2)))
-vint8m2_t vluxei32(const int8_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i8m2_m)))
-vint8m2_t vluxei32(vbool4_t op0, vint8m2_t op1, const int8_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i8mf2)))
-vint8mf2_t vluxei32(const int8_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i8mf2_m)))
-vint8mf2_t vluxei32(vbool16_t op0, vint8mf2_t op1, const int8_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i8mf4)))
-vint8mf4_t vluxei32(const int8_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i8mf4_m)))
-vint8mf4_t vluxei32(vbool32_t op0, vint8mf4_t op1, const int8_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i8mf8)))
-vint8mf8_t vluxei32(const int8_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i8mf8_m)))
-vint8mf8_t vluxei32(vbool64_t op0, vint8mf8_t op1, const int8_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u8m1)))
-vuint8m1_t vluxei32(const uint8_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u8m1_m)))
-vuint8m1_t vluxei32(vbool8_t op0, vuint8m1_t op1, const uint8_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u8m2)))
-vuint8m2_t vluxei32(const uint8_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u8m2_m)))
-vuint8m2_t vluxei32(vbool4_t op0, vuint8m2_t op1, const uint8_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u8mf2)))
-vuint8mf2_t vluxei32(const uint8_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u8mf2_m)))
-vuint8mf2_t vluxei32(vbool16_t op0, vuint8mf2_t op1, const uint8_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u8mf4)))
-vuint8mf4_t vluxei32(const uint8_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u8mf4_m)))
-vuint8mf4_t vluxei32(vbool32_t op0, vuint8mf4_t op1, const uint8_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u8mf8)))
-vuint8mf8_t vluxei32(const uint8_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u8mf8_m)))
-vuint8mf8_t vluxei32(vbool64_t op0, vuint8mf8_t op1, const uint8_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i8m1)))
-vint8m1_t vluxei64(const int8_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i8m1_m)))
-vint8m1_t vluxei64(vbool8_t op0, vint8m1_t op1, const int8_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i8mf2)))
-vint8mf2_t vluxei64(const int8_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i8mf2_m)))
-vint8mf2_t vluxei64(vbool16_t op0, vint8mf2_t op1, const int8_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i8mf4)))
-vint8mf4_t vluxei64(const int8_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i8mf4_m)))
-vint8mf4_t vluxei64(vbool32_t op0, vint8mf4_t op1, const int8_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i8mf8)))
-vint8mf8_t vluxei64(const int8_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i8mf8_m)))
-vint8mf8_t vluxei64(vbool64_t op0, vint8mf8_t op1, const int8_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u8m1)))
-vuint8m1_t vluxei64(const uint8_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u8m1_m)))
-vuint8m1_t vluxei64(vbool8_t op0, vuint8m1_t op1, const uint8_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u8mf2)))
-vuint8mf2_t vluxei64(const uint8_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u8mf2_m)))
-vuint8mf2_t vluxei64(vbool16_t op0, vuint8mf2_t op1, const uint8_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u8mf4)))
-vuint8mf4_t vluxei64(const uint8_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u8mf4_m)))
-vuint8mf4_t vluxei64(vbool32_t op0, vuint8mf4_t op1, const uint8_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u8mf8)))
-vuint8mf8_t vluxei64(const uint8_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u8mf8_m)))
-vuint8mf8_t vluxei64(vbool64_t op0, vuint8mf8_t op1, const uint8_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16m1)))
-vint16m1_t vluxei8(const int16_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16m1_m)))
-vint16m1_t vluxei8(vbool16_t op0, vint16m1_t op1, const int16_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16m2)))
-vint16m2_t vluxei8(const int16_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16m2_m)))
-vint16m2_t vluxei8(vbool8_t op0, vint16m2_t op1, const int16_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16m4)))
-vint16m4_t vluxei8(const int16_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16m4_m)))
-vint16m4_t vluxei8(vbool4_t op0, vint16m4_t op1, const int16_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16m8)))
-vint16m8_t vluxei8(const int16_t * op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16m8_m)))
-vint16m8_t vluxei8(vbool2_t op0, vint16m8_t op1, const int16_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16mf2)))
-vint16mf2_t vluxei8(const int16_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16mf2_m)))
-vint16mf2_t vluxei8(vbool32_t op0, vint16mf2_t op1, const int16_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16mf4)))
-vint16mf4_t vluxei8(const int16_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16mf4_m)))
-vint16mf4_t vluxei8(vbool64_t op0, vint16mf4_t op1, const int16_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16m1)))
-vuint16m1_t vluxei8(const uint16_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16m1_m)))
-vuint16m1_t vluxei8(vbool16_t op0, vuint16m1_t op1, const uint16_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16m2)))
-vuint16m2_t vluxei8(const uint16_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16m2_m)))
-vuint16m2_t vluxei8(vbool8_t op0, vuint16m2_t op1, const uint16_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16m4)))
-vuint16m4_t vluxei8(const uint16_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16m4_m)))
-vuint16m4_t vluxei8(vbool4_t op0, vuint16m4_t op1, const uint16_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16m8)))
-vuint16m8_t vluxei8(const uint16_t * op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16m8_m)))
-vuint16m8_t vluxei8(vbool2_t op0, vuint16m8_t op1, const uint16_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16mf2)))
-vuint16mf2_t vluxei8(const uint16_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16mf2_m)))
-vuint16mf2_t vluxei8(vbool32_t op0, vuint16mf2_t op1, const uint16_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16mf4)))
-vuint16mf4_t vluxei8(const uint16_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16mf4_m)))
-vuint16mf4_t vluxei8(vbool64_t op0, vuint16mf4_t op1, const uint16_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16m1)))
-vint16m1_t vluxei16(const int16_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16m1_m)))
-vint16m1_t vluxei16(vbool16_t op0, vint16m1_t op1, const int16_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16m2)))
-vint16m2_t vluxei16(const int16_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16m2_m)))
-vint16m2_t vluxei16(vbool8_t op0, vint16m2_t op1, const int16_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16m4)))
-vint16m4_t vluxei16(const int16_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16m4_m)))
-vint16m4_t vluxei16(vbool4_t op0, vint16m4_t op1, const int16_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16m8)))
-vint16m8_t vluxei16(const int16_t * op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16m8_m)))
-vint16m8_t vluxei16(vbool2_t op0, vint16m8_t op1, const int16_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16mf2)))
-vint16mf2_t vluxei16(const int16_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16mf2_m)))
-vint16mf2_t vluxei16(vbool32_t op0, vint16mf2_t op1, const int16_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16mf4)))
-vint16mf4_t vluxei16(const int16_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16mf4_m)))
-vint16mf4_t vluxei16(vbool64_t op0, vint16mf4_t op1, const int16_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16m1)))
-vuint16m1_t vluxei16(const uint16_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16m1_m)))
-vuint16m1_t vluxei16(vbool16_t op0, vuint16m1_t op1, const uint16_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16m2)))
-vuint16m2_t vluxei16(const uint16_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16m2_m)))
-vuint16m2_t vluxei16(vbool8_t op0, vuint16m2_t op1, const uint16_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16m4)))
-vuint16m4_t vluxei16(const uint16_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16m4_m)))
-vuint16m4_t vluxei16(vbool4_t op0, vuint16m4_t op1, const uint16_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16m8)))
-vuint16m8_t vluxei16(const uint16_t * op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16m8_m)))
-vuint16m8_t vluxei16(vbool2_t op0, vuint16m8_t op1, const uint16_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16mf2)))
-vuint16mf2_t vluxei16(const uint16_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16mf2_m)))
-vuint16mf2_t vluxei16(vbool32_t op0, vuint16mf2_t op1, const uint16_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16mf4)))
-vuint16mf4_t vluxei16(const uint16_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16mf4_m)))
-vuint16mf4_t vluxei16(vbool64_t op0, vuint16mf4_t op1, const uint16_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i16m1)))
-vint16m1_t vluxei32(const int16_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i16m1_m)))
-vint16m1_t vluxei32(vbool16_t op0, vint16m1_t op1, const int16_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i16m2)))
-vint16m2_t vluxei32(const int16_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i16m2_m)))
-vint16m2_t vluxei32(vbool8_t op0, vint16m2_t op1, const int16_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i16m4)))
-vint16m4_t vluxei32(const int16_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i16m4_m)))
-vint16m4_t vluxei32(vbool4_t op0, vint16m4_t op1, const int16_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i16mf2)))
-vint16mf2_t vluxei32(const int16_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i16mf2_m)))
-vint16mf2_t vluxei32(vbool32_t op0, vint16mf2_t op1, const int16_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i16mf4)))
-vint16mf4_t vluxei32(const int16_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i16mf4_m)))
-vint16mf4_t vluxei32(vbool64_t op0, vint16mf4_t op1, const int16_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u16m1)))
-vuint16m1_t vluxei32(const uint16_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u16m1_m)))
-vuint16m1_t vluxei32(vbool16_t op0, vuint16m1_t op1, const uint16_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u16m2)))
-vuint16m2_t vluxei32(const uint16_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u16m2_m)))
-vuint16m2_t vluxei32(vbool8_t op0, vuint16m2_t op1, const uint16_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u16m4)))
-vuint16m4_t vluxei32(const uint16_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u16m4_m)))
-vuint16m4_t vluxei32(vbool4_t op0, vuint16m4_t op1, const uint16_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u16mf2)))
-vuint16mf2_t vluxei32(const uint16_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u16mf2_m)))
-vuint16mf2_t vluxei32(vbool32_t op0, vuint16mf2_t op1, const uint16_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u16mf4)))
-vuint16mf4_t vluxei32(const uint16_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u16mf4_m)))
-vuint16mf4_t vluxei32(vbool64_t op0, vuint16mf4_t op1, const uint16_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i16m1)))
-vint16m1_t vluxei64(const int16_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i16m1_m)))
-vint16m1_t vluxei64(vbool16_t op0, vint16m1_t op1, const int16_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i16m2)))
-vint16m2_t vluxei64(const int16_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i16m2_m)))
-vint16m2_t vluxei64(vbool8_t op0, vint16m2_t op1, const int16_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i16mf2)))
-vint16mf2_t vluxei64(const int16_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i16mf2_m)))
-vint16mf2_t vluxei64(vbool32_t op0, vint16mf2_t op1, const int16_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i16mf4)))
-vint16mf4_t vluxei64(const int16_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i16mf4_m)))
-vint16mf4_t vluxei64(vbool64_t op0, vint16mf4_t op1, const int16_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u16m1)))
-vuint16m1_t vluxei64(const uint16_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u16m1_m)))
-vuint16m1_t vluxei64(vbool16_t op0, vuint16m1_t op1, const uint16_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u16m2)))
-vuint16m2_t vluxei64(const uint16_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u16m2_m)))
-vuint16m2_t vluxei64(vbool8_t op0, vuint16m2_t op1, const uint16_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u16mf2)))
-vuint16mf2_t vluxei64(const uint16_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u16mf2_m)))
-vuint16mf2_t vluxei64(vbool32_t op0, vuint16mf2_t op1, const uint16_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u16mf4)))
-vuint16mf4_t vluxei64(const uint16_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u16mf4_m)))
-vuint16mf4_t vluxei64(vbool64_t op0, vuint16mf4_t op1, const uint16_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i32m1)))
-vint32m1_t vluxei8(const int32_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i32m1_m)))
-vint32m1_t vluxei8(vbool32_t op0, vint32m1_t op1, const int32_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i32m2)))
-vint32m2_t vluxei8(const int32_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i32m2_m)))
-vint32m2_t vluxei8(vbool16_t op0, vint32m2_t op1, const int32_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i32m4)))
-vint32m4_t vluxei8(const int32_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i32m4_m)))
-vint32m4_t vluxei8(vbool8_t op0, vint32m4_t op1, const int32_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i32m8)))
-vint32m8_t vluxei8(const int32_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i32m8_m)))
-vint32m8_t vluxei8(vbool4_t op0, vint32m8_t op1, const int32_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i32mf2)))
-vint32mf2_t vluxei8(const int32_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i32mf2_m)))
-vint32mf2_t vluxei8(vbool64_t op0, vint32mf2_t op1, const int32_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u32m1)))
-vuint32m1_t vluxei8(const uint32_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u32m1_m)))
-vuint32m1_t vluxei8(vbool32_t op0, vuint32m1_t op1, const uint32_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u32m2)))
-vuint32m2_t vluxei8(const uint32_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u32m2_m)))
-vuint32m2_t vluxei8(vbool16_t op0, vuint32m2_t op1, const uint32_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u32m4)))
-vuint32m4_t vluxei8(const uint32_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u32m4_m)))
-vuint32m4_t vluxei8(vbool8_t op0, vuint32m4_t op1, const uint32_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u32m8)))
-vuint32m8_t vluxei8(const uint32_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u32m8_m)))
-vuint32m8_t vluxei8(vbool4_t op0, vuint32m8_t op1, const uint32_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u32mf2)))
-vuint32mf2_t vluxei8(const uint32_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u32mf2_m)))
-vuint32mf2_t vluxei8(vbool64_t op0, vuint32mf2_t op1, const uint32_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i32m1)))
-vint32m1_t vluxei16(const int32_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i32m1_m)))
-vint32m1_t vluxei16(vbool32_t op0, vint32m1_t op1, const int32_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i32m2)))
-vint32m2_t vluxei16(const int32_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i32m2_m)))
-vint32m2_t vluxei16(vbool16_t op0, vint32m2_t op1, const int32_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i32m4)))
-vint32m4_t vluxei16(const int32_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i32m4_m)))
-vint32m4_t vluxei16(vbool8_t op0, vint32m4_t op1, const int32_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i32m8)))
-vint32m8_t vluxei16(const int32_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i32m8_m)))
-vint32m8_t vluxei16(vbool4_t op0, vint32m8_t op1, const int32_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i32mf2)))
-vint32mf2_t vluxei16(const int32_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i32mf2_m)))
-vint32mf2_t vluxei16(vbool64_t op0, vint32mf2_t op1, const int32_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u32m1)))
-vuint32m1_t vluxei16(const uint32_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u32m1_m)))
-vuint32m1_t vluxei16(vbool32_t op0, vuint32m1_t op1, const uint32_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u32m2)))
-vuint32m2_t vluxei16(const uint32_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u32m2_m)))
-vuint32m2_t vluxei16(vbool16_t op0, vuint32m2_t op1, const uint32_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u32m4)))
-vuint32m4_t vluxei16(const uint32_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u32m4_m)))
-vuint32m4_t vluxei16(vbool8_t op0, vuint32m4_t op1, const uint32_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u32m8)))
-vuint32m8_t vluxei16(const uint32_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u32m8_m)))
-vuint32m8_t vluxei16(vbool4_t op0, vuint32m8_t op1, const uint32_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u32mf2)))
-vuint32mf2_t vluxei16(const uint32_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u32mf2_m)))
-vuint32mf2_t vluxei16(vbool64_t op0, vuint32mf2_t op1, const uint32_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i32m1)))
-vint32m1_t vluxei32(const int32_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i32m1_m)))
-vint32m1_t vluxei32(vbool32_t op0, vint32m1_t op1, const int32_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i32m2)))
-vint32m2_t vluxei32(const int32_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i32m2_m)))
-vint32m2_t vluxei32(vbool16_t op0, vint32m2_t op1, const int32_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i32m4)))
-vint32m4_t vluxei32(const int32_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i32m4_m)))
-vint32m4_t vluxei32(vbool8_t op0, vint32m4_t op1, const int32_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i32m8)))
-vint32m8_t vluxei32(const int32_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i32m8_m)))
-vint32m8_t vluxei32(vbool4_t op0, vint32m8_t op1, const int32_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i32mf2)))
-vint32mf2_t vluxei32(const int32_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i32mf2_m)))
-vint32mf2_t vluxei32(vbool64_t op0, vint32mf2_t op1, const int32_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u32m1)))
-vuint32m1_t vluxei32(const uint32_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u32m1_m)))
-vuint32m1_t vluxei32(vbool32_t op0, vuint32m1_t op1, const uint32_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u32m2)))
-vuint32m2_t vluxei32(const uint32_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u32m2_m)))
-vuint32m2_t vluxei32(vbool16_t op0, vuint32m2_t op1, const uint32_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u32m4)))
-vuint32m4_t vluxei32(const uint32_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u32m4_m)))
-vuint32m4_t vluxei32(vbool8_t op0, vuint32m4_t op1, const uint32_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u32m8)))
-vuint32m8_t vluxei32(const uint32_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u32m8_m)))
-vuint32m8_t vluxei32(vbool4_t op0, vuint32m8_t op1, const uint32_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u32mf2)))
-vuint32mf2_t vluxei32(const uint32_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u32mf2_m)))
-vuint32mf2_t vluxei32(vbool64_t op0, vuint32mf2_t op1, const uint32_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i32m1)))
-vint32m1_t vluxei64(const int32_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i32m1_m)))
-vint32m1_t vluxei64(vbool32_t op0, vint32m1_t op1, const int32_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i32m2)))
-vint32m2_t vluxei64(const int32_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i32m2_m)))
-vint32m2_t vluxei64(vbool16_t op0, vint32m2_t op1, const int32_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i32m4)))
-vint32m4_t vluxei64(const int32_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i32m4_m)))
-vint32m4_t vluxei64(vbool8_t op0, vint32m4_t op1, const int32_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i32mf2)))
-vint32mf2_t vluxei64(const int32_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i32mf2_m)))
-vint32mf2_t vluxei64(vbool64_t op0, vint32mf2_t op1, const int32_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u32m1)))
-vuint32m1_t vluxei64(const uint32_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u32m1_m)))
-vuint32m1_t vluxei64(vbool32_t op0, vuint32m1_t op1, const uint32_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u32m2)))
-vuint32m2_t vluxei64(const uint32_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u32m2_m)))
-vuint32m2_t vluxei64(vbool16_t op0, vuint32m2_t op1, const uint32_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u32m4)))
-vuint32m4_t vluxei64(const uint32_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u32m4_m)))
-vuint32m4_t vluxei64(vbool8_t op0, vuint32m4_t op1, const uint32_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u32mf2)))
-vuint32mf2_t vluxei64(const uint32_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u32mf2_m)))
-vuint32mf2_t vluxei64(vbool64_t op0, vuint32mf2_t op1, const uint32_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i64m1)))
-vint64m1_t vluxei8(const int64_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i64m1_m)))
-vint64m1_t vluxei8(vbool64_t op0, vint64m1_t op1, const int64_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i64m2)))
-vint64m2_t vluxei8(const int64_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i64m2_m)))
-vint64m2_t vluxei8(vbool32_t op0, vint64m2_t op1, const int64_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i64m4)))
-vint64m4_t vluxei8(const int64_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i64m4_m)))
-vint64m4_t vluxei8(vbool16_t op0, vint64m4_t op1, const int64_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i64m8)))
-vint64m8_t vluxei8(const int64_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i64m8_m)))
-vint64m8_t vluxei8(vbool8_t op0, vint64m8_t op1, const int64_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u64m1)))
-vuint64m1_t vluxei8(const uint64_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u64m1_m)))
-vuint64m1_t vluxei8(vbool64_t op0, vuint64m1_t op1, const uint64_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u64m2)))
-vuint64m2_t vluxei8(const uint64_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u64m2_m)))
-vuint64m2_t vluxei8(vbool32_t op0, vuint64m2_t op1, const uint64_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u64m4)))
-vuint64m4_t vluxei8(const uint64_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u64m4_m)))
-vuint64m4_t vluxei8(vbool16_t op0, vuint64m4_t op1, const uint64_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u64m8)))
-vuint64m8_t vluxei8(const uint64_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u64m8_m)))
-vuint64m8_t vluxei8(vbool8_t op0, vuint64m8_t op1, const uint64_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i64m1)))
-vint64m1_t vluxei16(const int64_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i64m1_m)))
-vint64m1_t vluxei16(vbool64_t op0, vint64m1_t op1, const int64_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i64m2)))
-vint64m2_t vluxei16(const int64_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i64m2_m)))
-vint64m2_t vluxei16(vbool32_t op0, vint64m2_t op1, const int64_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i64m4)))
-vint64m4_t vluxei16(const int64_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i64m4_m)))
-vint64m4_t vluxei16(vbool16_t op0, vint64m4_t op1, const int64_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i64m8)))
-vint64m8_t vluxei16(const int64_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i64m8_m)))
-vint64m8_t vluxei16(vbool8_t op0, vint64m8_t op1, const int64_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u64m1)))
-vuint64m1_t vluxei16(const uint64_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u64m1_m)))
-vuint64m1_t vluxei16(vbool64_t op0, vuint64m1_t op1, const uint64_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u64m2)))
-vuint64m2_t vluxei16(const uint64_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u64m2_m)))
-vuint64m2_t vluxei16(vbool32_t op0, vuint64m2_t op1, const uint64_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u64m4)))
-vuint64m4_t vluxei16(const uint64_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u64m4_m)))
-vuint64m4_t vluxei16(vbool16_t op0, vuint64m4_t op1, const uint64_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u64m8)))
-vuint64m8_t vluxei16(const uint64_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u64m8_m)))
-vuint64m8_t vluxei16(vbool8_t op0, vuint64m8_t op1, const uint64_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i64m1)))
-vint64m1_t vluxei32(const int64_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i64m1_m)))
-vint64m1_t vluxei32(vbool64_t op0, vint64m1_t op1, const int64_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i64m2)))
-vint64m2_t vluxei32(const int64_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i64m2_m)))
-vint64m2_t vluxei32(vbool32_t op0, vint64m2_t op1, const int64_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i64m4)))
-vint64m4_t vluxei32(const int64_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i64m4_m)))
-vint64m4_t vluxei32(vbool16_t op0, vint64m4_t op1, const int64_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i64m8)))
-vint64m8_t vluxei32(const int64_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i64m8_m)))
-vint64m8_t vluxei32(vbool8_t op0, vint64m8_t op1, const int64_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u64m1)))
-vuint64m1_t vluxei32(const uint64_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u64m1_m)))
-vuint64m1_t vluxei32(vbool64_t op0, vuint64m1_t op1, const uint64_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u64m2)))
-vuint64m2_t vluxei32(const uint64_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u64m2_m)))
-vuint64m2_t vluxei32(vbool32_t op0, vuint64m2_t op1, const uint64_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u64m4)))
-vuint64m4_t vluxei32(const uint64_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u64m4_m)))
-vuint64m4_t vluxei32(vbool16_t op0, vuint64m4_t op1, const uint64_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u64m8)))
-vuint64m8_t vluxei32(const uint64_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u64m8_m)))
-vuint64m8_t vluxei32(vbool8_t op0, vuint64m8_t op1, const uint64_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i64m1)))
-vint64m1_t vluxei64(const int64_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i64m1_m)))
-vint64m1_t vluxei64(vbool64_t op0, vint64m1_t op1, const int64_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i64m2)))
-vint64m2_t vluxei64(const int64_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i64m2_m)))
-vint64m2_t vluxei64(vbool32_t op0, vint64m2_t op1, const int64_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i64m4)))
-vint64m4_t vluxei64(const int64_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i64m4_m)))
-vint64m4_t vluxei64(vbool16_t op0, vint64m4_t op1, const int64_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i64m8)))
-vint64m8_t vluxei64(const int64_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i64m8_m)))
-vint64m8_t vluxei64(vbool8_t op0, vint64m8_t op1, const int64_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u64m1)))
-vuint64m1_t vluxei64(const uint64_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u64m1_m)))
-vuint64m1_t vluxei64(vbool64_t op0, vuint64m1_t op1, const uint64_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u64m2)))
-vuint64m2_t vluxei64(const uint64_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u64m2_m)))
-vuint64m2_t vluxei64(vbool32_t op0, vuint64m2_t op1, const uint64_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u64m4)))
-vuint64m4_t vluxei64(const uint64_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u64m4_m)))
-vuint64m4_t vluxei64(vbool16_t op0, vuint64m4_t op1, const uint64_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u64m8)))
-vuint64m8_t vluxei64(const uint64_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u64m8_m)))
-vuint64m8_t vluxei64(vbool8_t op0, vuint64m8_t op1, const uint64_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8m1)))
-vint8m1_t vloxei8(const int8_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8m1_m)))
-vint8m1_t vloxei8(vbool8_t op0, vint8m1_t op1, const int8_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8m2)))
-vint8m2_t vloxei8(const int8_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8m2_m)))
-vint8m2_t vloxei8(vbool4_t op0, vint8m2_t op1, const int8_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8m4)))
-vint8m4_t vloxei8(const int8_t * op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8m4_m)))
-vint8m4_t vloxei8(vbool2_t op0, vint8m4_t op1, const int8_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8m8)))
-vint8m8_t vloxei8(const int8_t * op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8m8_m)))
-vint8m8_t vloxei8(vbool1_t op0, vint8m8_t op1, const int8_t * op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8mf2)))
-vint8mf2_t vloxei8(const int8_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8mf2_m)))
-vint8mf2_t vloxei8(vbool16_t op0, vint8mf2_t op1, const int8_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8mf4)))
-vint8mf4_t vloxei8(const int8_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8mf4_m)))
-vint8mf4_t vloxei8(vbool32_t op0, vint8mf4_t op1, const int8_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8mf8)))
-vint8mf8_t vloxei8(const int8_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8mf8_m)))
-vint8mf8_t vloxei8(vbool64_t op0, vint8mf8_t op1, const int8_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8m1)))
-vuint8m1_t vloxei8(const uint8_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8m1_m)))
-vuint8m1_t vloxei8(vbool8_t op0, vuint8m1_t op1, const uint8_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8m2)))
-vuint8m2_t vloxei8(const uint8_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8m2_m)))
-vuint8m2_t vloxei8(vbool4_t op0, vuint8m2_t op1, const uint8_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8m4)))
-vuint8m4_t vloxei8(const uint8_t * op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8m4_m)))
-vuint8m4_t vloxei8(vbool2_t op0, vuint8m4_t op1, const uint8_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8m8)))
-vuint8m8_t vloxei8(const uint8_t * op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8m8_m)))
-vuint8m8_t vloxei8(vbool1_t op0, vuint8m8_t op1, const uint8_t * op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8mf2)))
-vuint8mf2_t vloxei8(const uint8_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8mf2_m)))
-vuint8mf2_t vloxei8(vbool16_t op0, vuint8mf2_t op1, const uint8_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8mf4)))
-vuint8mf4_t vloxei8(const uint8_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8mf4_m)))
-vuint8mf4_t vloxei8(vbool32_t op0, vuint8mf4_t op1, const uint8_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8mf8)))
-vuint8mf8_t vloxei8(const uint8_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8mf8_m)))
-vuint8mf8_t vloxei8(vbool64_t op0, vuint8mf8_t op1, const uint8_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8m1)))
-vint8m1_t vloxei16(const int8_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8m1_m)))
-vint8m1_t vloxei16(vbool8_t op0, vint8m1_t op1, const int8_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8m2)))
-vint8m2_t vloxei16(const int8_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8m2_m)))
-vint8m2_t vloxei16(vbool4_t op0, vint8m2_t op1, const int8_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8m4)))
-vint8m4_t vloxei16(const int8_t * op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8m4_m)))
-vint8m4_t vloxei16(vbool2_t op0, vint8m4_t op1, const int8_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8mf2)))
-vint8mf2_t vloxei16(const int8_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8mf2_m)))
-vint8mf2_t vloxei16(vbool16_t op0, vint8mf2_t op1, const int8_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8mf4)))
-vint8mf4_t vloxei16(const int8_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8mf4_m)))
-vint8mf4_t vloxei16(vbool32_t op0, vint8mf4_t op1, const int8_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8mf8)))
-vint8mf8_t vloxei16(const int8_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8mf8_m)))
-vint8mf8_t vloxei16(vbool64_t op0, vint8mf8_t op1, const int8_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8m1)))
-vuint8m1_t vloxei16(const uint8_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8m1_m)))
-vuint8m1_t vloxei16(vbool8_t op0, vuint8m1_t op1, const uint8_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8m2)))
-vuint8m2_t vloxei16(const uint8_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8m2_m)))
-vuint8m2_t vloxei16(vbool4_t op0, vuint8m2_t op1, const uint8_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8m4)))
-vuint8m4_t vloxei16(const uint8_t * op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8m4_m)))
-vuint8m4_t vloxei16(vbool2_t op0, vuint8m4_t op1, const uint8_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8mf2)))
-vuint8mf2_t vloxei16(const uint8_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8mf2_m)))
-vuint8mf2_t vloxei16(vbool16_t op0, vuint8mf2_t op1, const uint8_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8mf4)))
-vuint8mf4_t vloxei16(const uint8_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8mf4_m)))
-vuint8mf4_t vloxei16(vbool32_t op0, vuint8mf4_t op1, const uint8_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8mf8)))
-vuint8mf8_t vloxei16(const uint8_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8mf8_m)))
-vuint8mf8_t vloxei16(vbool64_t op0, vuint8mf8_t op1, const uint8_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i8m1)))
-vint8m1_t vloxei32(const int8_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i8m1_m)))
-vint8m1_t vloxei32(vbool8_t op0, vint8m1_t op1, const int8_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i8m2)))
-vint8m2_t vloxei32(const int8_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i8m2_m)))
-vint8m2_t vloxei32(vbool4_t op0, vint8m2_t op1, const int8_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i8mf2)))
-vint8mf2_t vloxei32(const int8_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i8mf2_m)))
-vint8mf2_t vloxei32(vbool16_t op0, vint8mf2_t op1, const int8_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i8mf4)))
-vint8mf4_t vloxei32(const int8_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i8mf4_m)))
-vint8mf4_t vloxei32(vbool32_t op0, vint8mf4_t op1, const int8_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i8mf8)))
-vint8mf8_t vloxei32(const int8_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i8mf8_m)))
-vint8mf8_t vloxei32(vbool64_t op0, vint8mf8_t op1, const int8_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u8m1)))
-vuint8m1_t vloxei32(const uint8_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u8m1_m)))
-vuint8m1_t vloxei32(vbool8_t op0, vuint8m1_t op1, const uint8_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u8m2)))
-vuint8m2_t vloxei32(const uint8_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u8m2_m)))
-vuint8m2_t vloxei32(vbool4_t op0, vuint8m2_t op1, const uint8_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u8mf2)))
-vuint8mf2_t vloxei32(const uint8_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u8mf2_m)))
-vuint8mf2_t vloxei32(vbool16_t op0, vuint8mf2_t op1, const uint8_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u8mf4)))
-vuint8mf4_t vloxei32(const uint8_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u8mf4_m)))
-vuint8mf4_t vloxei32(vbool32_t op0, vuint8mf4_t op1, const uint8_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u8mf8)))
-vuint8mf8_t vloxei32(const uint8_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u8mf8_m)))
-vuint8mf8_t vloxei32(vbool64_t op0, vuint8mf8_t op1, const uint8_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i8m1)))
-vint8m1_t vloxei64(const int8_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i8m1_m)))
-vint8m1_t vloxei64(vbool8_t op0, vint8m1_t op1, const int8_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i8mf2)))
-vint8mf2_t vloxei64(const int8_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i8mf2_m)))
-vint8mf2_t vloxei64(vbool16_t op0, vint8mf2_t op1, const int8_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i8mf4)))
-vint8mf4_t vloxei64(const int8_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i8mf4_m)))
-vint8mf4_t vloxei64(vbool32_t op0, vint8mf4_t op1, const int8_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i8mf8)))
-vint8mf8_t vloxei64(const int8_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i8mf8_m)))
-vint8mf8_t vloxei64(vbool64_t op0, vint8mf8_t op1, const int8_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u8m1)))
-vuint8m1_t vloxei64(const uint8_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u8m1_m)))
-vuint8m1_t vloxei64(vbool8_t op0, vuint8m1_t op1, const uint8_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u8mf2)))
-vuint8mf2_t vloxei64(const uint8_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u8mf2_m)))
-vuint8mf2_t vloxei64(vbool16_t op0, vuint8mf2_t op1, const uint8_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u8mf4)))
-vuint8mf4_t vloxei64(const uint8_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u8mf4_m)))
-vuint8mf4_t vloxei64(vbool32_t op0, vuint8mf4_t op1, const uint8_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u8mf8)))
-vuint8mf8_t vloxei64(const uint8_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u8mf8_m)))
-vuint8mf8_t vloxei64(vbool64_t op0, vuint8mf8_t op1, const uint8_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16m1)))
-vint16m1_t vloxei8(const int16_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16m1_m)))
-vint16m1_t vloxei8(vbool16_t op0, vint16m1_t op1, const int16_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16m2)))
-vint16m2_t vloxei8(const int16_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16m2_m)))
-vint16m2_t vloxei8(vbool8_t op0, vint16m2_t op1, const int16_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16m4)))
-vint16m4_t vloxei8(const int16_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16m4_m)))
-vint16m4_t vloxei8(vbool4_t op0, vint16m4_t op1, const int16_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16m8)))
-vint16m8_t vloxei8(const int16_t * op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16m8_m)))
-vint16m8_t vloxei8(vbool2_t op0, vint16m8_t op1, const int16_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16mf2)))
-vint16mf2_t vloxei8(const int16_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16mf2_m)))
-vint16mf2_t vloxei8(vbool32_t op0, vint16mf2_t op1, const int16_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16mf4)))
-vint16mf4_t vloxei8(const int16_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16mf4_m)))
-vint16mf4_t vloxei8(vbool64_t op0, vint16mf4_t op1, const int16_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16m1)))
-vuint16m1_t vloxei8(const uint16_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16m1_m)))
-vuint16m1_t vloxei8(vbool16_t op0, vuint16m1_t op1, const uint16_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16m2)))
-vuint16m2_t vloxei8(const uint16_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16m2_m)))
-vuint16m2_t vloxei8(vbool8_t op0, vuint16m2_t op1, const uint16_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16m4)))
-vuint16m4_t vloxei8(const uint16_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16m4_m)))
-vuint16m4_t vloxei8(vbool4_t op0, vuint16m4_t op1, const uint16_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16m8)))
-vuint16m8_t vloxei8(const uint16_t * op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16m8_m)))
-vuint16m8_t vloxei8(vbool2_t op0, vuint16m8_t op1, const uint16_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16mf2)))
-vuint16mf2_t vloxei8(const uint16_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16mf2_m)))
-vuint16mf2_t vloxei8(vbool32_t op0, vuint16mf2_t op1, const uint16_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16mf4)))
-vuint16mf4_t vloxei8(const uint16_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16mf4_m)))
-vuint16mf4_t vloxei8(vbool64_t op0, vuint16mf4_t op1, const uint16_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16m1)))
-vint16m1_t vloxei16(const int16_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16m1_m)))
-vint16m1_t vloxei16(vbool16_t op0, vint16m1_t op1, const int16_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16m2)))
-vint16m2_t vloxei16(const int16_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16m2_m)))
-vint16m2_t vloxei16(vbool8_t op0, vint16m2_t op1, const int16_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16m4)))
-vint16m4_t vloxei16(const int16_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16m4_m)))
-vint16m4_t vloxei16(vbool4_t op0, vint16m4_t op1, const int16_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16m8)))
-vint16m8_t vloxei16(const int16_t * op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16m8_m)))
-vint16m8_t vloxei16(vbool2_t op0, vint16m8_t op1, const int16_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16mf2)))
-vint16mf2_t vloxei16(const int16_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16mf2_m)))
-vint16mf2_t vloxei16(vbool32_t op0, vint16mf2_t op1, const int16_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16mf4)))
-vint16mf4_t vloxei16(const int16_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16mf4_m)))
-vint16mf4_t vloxei16(vbool64_t op0, vint16mf4_t op1, const int16_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16m1)))
-vuint16m1_t vloxei16(const uint16_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16m1_m)))
-vuint16m1_t vloxei16(vbool16_t op0, vuint16m1_t op1, const uint16_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16m2)))
-vuint16m2_t vloxei16(const uint16_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16m2_m)))
-vuint16m2_t vloxei16(vbool8_t op0, vuint16m2_t op1, const uint16_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16m4)))
-vuint16m4_t vloxei16(const uint16_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16m4_m)))
-vuint16m4_t vloxei16(vbool4_t op0, vuint16m4_t op1, const uint16_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16m8)))
-vuint16m8_t vloxei16(const uint16_t * op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16m8_m)))
-vuint16m8_t vloxei16(vbool2_t op0, vuint16m8_t op1, const uint16_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16mf2)))
-vuint16mf2_t vloxei16(const uint16_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16mf2_m)))
-vuint16mf2_t vloxei16(vbool32_t op0, vuint16mf2_t op1, const uint16_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16mf4)))
-vuint16mf4_t vloxei16(const uint16_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16mf4_m)))
-vuint16mf4_t vloxei16(vbool64_t op0, vuint16mf4_t op1, const uint16_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i16m1)))
-vint16m1_t vloxei32(const int16_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i16m1_m)))
-vint16m1_t vloxei32(vbool16_t op0, vint16m1_t op1, const int16_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i16m2)))
-vint16m2_t vloxei32(const int16_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i16m2_m)))
-vint16m2_t vloxei32(vbool8_t op0, vint16m2_t op1, const int16_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i16m4)))
-vint16m4_t vloxei32(const int16_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i16m4_m)))
-vint16m4_t vloxei32(vbool4_t op0, vint16m4_t op1, const int16_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i16mf2)))
-vint16mf2_t vloxei32(const int16_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i16mf2_m)))
-vint16mf2_t vloxei32(vbool32_t op0, vint16mf2_t op1, const int16_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i16mf4)))
-vint16mf4_t vloxei32(const int16_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i16mf4_m)))
-vint16mf4_t vloxei32(vbool64_t op0, vint16mf4_t op1, const int16_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u16m1)))
-vuint16m1_t vloxei32(const uint16_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u16m1_m)))
-vuint16m1_t vloxei32(vbool16_t op0, vuint16m1_t op1, const uint16_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u16m2)))
-vuint16m2_t vloxei32(const uint16_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u16m2_m)))
-vuint16m2_t vloxei32(vbool8_t op0, vuint16m2_t op1, const uint16_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u16m4)))
-vuint16m4_t vloxei32(const uint16_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u16m4_m)))
-vuint16m4_t vloxei32(vbool4_t op0, vuint16m4_t op1, const uint16_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u16mf2)))
-vuint16mf2_t vloxei32(const uint16_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u16mf2_m)))
-vuint16mf2_t vloxei32(vbool32_t op0, vuint16mf2_t op1, const uint16_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u16mf4)))
-vuint16mf4_t vloxei32(const uint16_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u16mf4_m)))
-vuint16mf4_t vloxei32(vbool64_t op0, vuint16mf4_t op1, const uint16_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i16m1)))
-vint16m1_t vloxei64(const int16_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i16m1_m)))
-vint16m1_t vloxei64(vbool16_t op0, vint16m1_t op1, const int16_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i16m2)))
-vint16m2_t vloxei64(const int16_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i16m2_m)))
-vint16m2_t vloxei64(vbool8_t op0, vint16m2_t op1, const int16_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i16mf2)))
-vint16mf2_t vloxei64(const int16_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i16mf2_m)))
-vint16mf2_t vloxei64(vbool32_t op0, vint16mf2_t op1, const int16_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i16mf4)))
-vint16mf4_t vloxei64(const int16_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i16mf4_m)))
-vint16mf4_t vloxei64(vbool64_t op0, vint16mf4_t op1, const int16_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u16m1)))
-vuint16m1_t vloxei64(const uint16_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u16m1_m)))
-vuint16m1_t vloxei64(vbool16_t op0, vuint16m1_t op1, const uint16_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u16m2)))
-vuint16m2_t vloxei64(const uint16_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u16m2_m)))
-vuint16m2_t vloxei64(vbool8_t op0, vuint16m2_t op1, const uint16_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u16mf2)))
-vuint16mf2_t vloxei64(const uint16_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u16mf2_m)))
-vuint16mf2_t vloxei64(vbool32_t op0, vuint16mf2_t op1, const uint16_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u16mf4)))
-vuint16mf4_t vloxei64(const uint16_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u16mf4_m)))
-vuint16mf4_t vloxei64(vbool64_t op0, vuint16mf4_t op1, const uint16_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i32m1)))
-vint32m1_t vloxei8(const int32_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i32m1_m)))
-vint32m1_t vloxei8(vbool32_t op0, vint32m1_t op1, const int32_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i32m2)))
-vint32m2_t vloxei8(const int32_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i32m2_m)))
-vint32m2_t vloxei8(vbool16_t op0, vint32m2_t op1, const int32_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i32m4)))
-vint32m4_t vloxei8(const int32_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i32m4_m)))
-vint32m4_t vloxei8(vbool8_t op0, vint32m4_t op1, const int32_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i32m8)))
-vint32m8_t vloxei8(const int32_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i32m8_m)))
-vint32m8_t vloxei8(vbool4_t op0, vint32m8_t op1, const int32_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i32mf2)))
-vint32mf2_t vloxei8(const int32_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i32mf2_m)))
-vint32mf2_t vloxei8(vbool64_t op0, vint32mf2_t op1, const int32_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u32m1)))
-vuint32m1_t vloxei8(const uint32_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u32m1_m)))
-vuint32m1_t vloxei8(vbool32_t op0, vuint32m1_t op1, const uint32_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u32m2)))
-vuint32m2_t vloxei8(const uint32_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u32m2_m)))
-vuint32m2_t vloxei8(vbool16_t op0, vuint32m2_t op1, const uint32_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u32m4)))
-vuint32m4_t vloxei8(const uint32_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u32m4_m)))
-vuint32m4_t vloxei8(vbool8_t op0, vuint32m4_t op1, const uint32_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u32m8)))
-vuint32m8_t vloxei8(const uint32_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u32m8_m)))
-vuint32m8_t vloxei8(vbool4_t op0, vuint32m8_t op1, const uint32_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u32mf2)))
-vuint32mf2_t vloxei8(const uint32_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u32mf2_m)))
-vuint32mf2_t vloxei8(vbool64_t op0, vuint32mf2_t op1, const uint32_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i32m1)))
-vint32m1_t vloxei16(const int32_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i32m1_m)))
-vint32m1_t vloxei16(vbool32_t op0, vint32m1_t op1, const int32_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i32m2)))
-vint32m2_t vloxei16(const int32_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i32m2_m)))
-vint32m2_t vloxei16(vbool16_t op0, vint32m2_t op1, const int32_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i32m4)))
-vint32m4_t vloxei16(const int32_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i32m4_m)))
-vint32m4_t vloxei16(vbool8_t op0, vint32m4_t op1, const int32_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i32m8)))
-vint32m8_t vloxei16(const int32_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i32m8_m)))
-vint32m8_t vloxei16(vbool4_t op0, vint32m8_t op1, const int32_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i32mf2)))
-vint32mf2_t vloxei16(const int32_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i32mf2_m)))
-vint32mf2_t vloxei16(vbool64_t op0, vint32mf2_t op1, const int32_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u32m1)))
-vuint32m1_t vloxei16(const uint32_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u32m1_m)))
-vuint32m1_t vloxei16(vbool32_t op0, vuint32m1_t op1, const uint32_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u32m2)))
-vuint32m2_t vloxei16(const uint32_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u32m2_m)))
-vuint32m2_t vloxei16(vbool16_t op0, vuint32m2_t op1, const uint32_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u32m4)))
-vuint32m4_t vloxei16(const uint32_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u32m4_m)))
-vuint32m4_t vloxei16(vbool8_t op0, vuint32m4_t op1, const uint32_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u32m8)))
-vuint32m8_t vloxei16(const uint32_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u32m8_m)))
-vuint32m8_t vloxei16(vbool4_t op0, vuint32m8_t op1, const uint32_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u32mf2)))
-vuint32mf2_t vloxei16(const uint32_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u32mf2_m)))
-vuint32mf2_t vloxei16(vbool64_t op0, vuint32mf2_t op1, const uint32_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i32m1)))
-vint32m1_t vloxei32(const int32_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i32m1_m)))
-vint32m1_t vloxei32(vbool32_t op0, vint32m1_t op1, const int32_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i32m2)))
-vint32m2_t vloxei32(const int32_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i32m2_m)))
-vint32m2_t vloxei32(vbool16_t op0, vint32m2_t op1, const int32_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i32m4)))
-vint32m4_t vloxei32(const int32_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i32m4_m)))
-vint32m4_t vloxei32(vbool8_t op0, vint32m4_t op1, const int32_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i32m8)))
-vint32m8_t vloxei32(const int32_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i32m8_m)))
-vint32m8_t vloxei32(vbool4_t op0, vint32m8_t op1, const int32_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i32mf2)))
-vint32mf2_t vloxei32(const int32_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i32mf2_m)))
-vint32mf2_t vloxei32(vbool64_t op0, vint32mf2_t op1, const int32_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u32m1)))
-vuint32m1_t vloxei32(const uint32_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u32m1_m)))
-vuint32m1_t vloxei32(vbool32_t op0, vuint32m1_t op1, const uint32_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u32m2)))
-vuint32m2_t vloxei32(const uint32_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u32m2_m)))
-vuint32m2_t vloxei32(vbool16_t op0, vuint32m2_t op1, const uint32_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u32m4)))
-vuint32m4_t vloxei32(const uint32_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u32m4_m)))
-vuint32m4_t vloxei32(vbool8_t op0, vuint32m4_t op1, const uint32_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u32m8)))
-vuint32m8_t vloxei32(const uint32_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u32m8_m)))
-vuint32m8_t vloxei32(vbool4_t op0, vuint32m8_t op1, const uint32_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u32mf2)))
-vuint32mf2_t vloxei32(const uint32_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u32mf2_m)))
-vuint32mf2_t vloxei32(vbool64_t op0, vuint32mf2_t op1, const uint32_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i32m1)))
-vint32m1_t vloxei64(const int32_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i32m1_m)))
-vint32m1_t vloxei64(vbool32_t op0, vint32m1_t op1, const int32_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i32m2)))
-vint32m2_t vloxei64(const int32_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i32m2_m)))
-vint32m2_t vloxei64(vbool16_t op0, vint32m2_t op1, const int32_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i32m4)))
-vint32m4_t vloxei64(const int32_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i32m4_m)))
-vint32m4_t vloxei64(vbool8_t op0, vint32m4_t op1, const int32_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i32mf2)))
-vint32mf2_t vloxei64(const int32_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i32mf2_m)))
-vint32mf2_t vloxei64(vbool64_t op0, vint32mf2_t op1, const int32_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u32m1)))
-vuint32m1_t vloxei64(const uint32_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u32m1_m)))
-vuint32m1_t vloxei64(vbool32_t op0, vuint32m1_t op1, const uint32_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u32m2)))
-vuint32m2_t vloxei64(const uint32_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u32m2_m)))
-vuint32m2_t vloxei64(vbool16_t op0, vuint32m2_t op1, const uint32_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u32m4)))
-vuint32m4_t vloxei64(const uint32_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u32m4_m)))
-vuint32m4_t vloxei64(vbool8_t op0, vuint32m4_t op1, const uint32_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u32mf2)))
-vuint32mf2_t vloxei64(const uint32_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u32mf2_m)))
-vuint32mf2_t vloxei64(vbool64_t op0, vuint32mf2_t op1, const uint32_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i64m1)))
-vint64m1_t vloxei8(const int64_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i64m1_m)))
-vint64m1_t vloxei8(vbool64_t op0, vint64m1_t op1, const int64_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i64m2)))
-vint64m2_t vloxei8(const int64_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i64m2_m)))
-vint64m2_t vloxei8(vbool32_t op0, vint64m2_t op1, const int64_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i64m4)))
-vint64m4_t vloxei8(const int64_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i64m4_m)))
-vint64m4_t vloxei8(vbool16_t op0, vint64m4_t op1, const int64_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i64m8)))
-vint64m8_t vloxei8(const int64_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i64m8_m)))
-vint64m8_t vloxei8(vbool8_t op0, vint64m8_t op1, const int64_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8m1)))
-void vse8(int8_t * op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8m1_m)))
-void vse8(vbool8_t op0, int8_t * op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8m2)))
-void vse8(int8_t * op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8m2_m)))
-void vse8(vbool4_t op0, int8_t * op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8m4)))
-void vse8(int8_t * op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8m4_m)))
-void vse8(vbool2_t op0, int8_t * op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8m8)))
-void vse8(int8_t * op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8m8_m)))
-void vse8(vbool1_t op0, int8_t * op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8mf2)))
-void vse8(int8_t * op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8mf2_m)))
-void vse8(vbool16_t op0, int8_t * op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8mf4)))
-void vse8(int8_t * op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8mf4_m)))
-void vse8(vbool32_t op0, int8_t * op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8mf8)))
-void vse8(int8_t * op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8mf8_m)))
-void vse8(vbool64_t op0, int8_t * op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u64m1)))
-vuint64m1_t vloxei8(const uint64_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u64m1_m)))
-vuint64m1_t vloxei8(vbool64_t op0, vuint64m1_t op1, const uint64_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u64m2)))
-vuint64m2_t vloxei8(const uint64_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u64m2_m)))
-vuint64m2_t vloxei8(vbool32_t op0, vuint64m2_t op1, const uint64_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u64m4)))
-vuint64m4_t vloxei8(const uint64_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u64m4_m)))
-vuint64m4_t vloxei8(vbool16_t op0, vuint64m4_t op1, const uint64_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u64m8)))
-vuint64m8_t vloxei8(const uint64_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u64m8_m)))
-vuint64m8_t vloxei8(vbool8_t op0, vuint64m8_t op1, const uint64_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i64m1)))
-vint64m1_t vloxei16(const int64_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i64m1_m)))
-vint64m1_t vloxei16(vbool64_t op0, vint64m1_t op1, const int64_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i64m2)))
-vint64m2_t vloxei16(const int64_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i64m2_m)))
-vint64m2_t vloxei16(vbool32_t op0, vint64m2_t op1, const int64_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i64m4)))
-vint64m4_t vloxei16(const int64_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i64m4_m)))
-vint64m4_t vloxei16(vbool16_t op0, vint64m4_t op1, const int64_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i64m8)))
-vint64m8_t vloxei16(const int64_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i64m8_m)))
-vint64m8_t vloxei16(vbool8_t op0, vint64m8_t op1, const int64_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u64m1)))
-vuint64m1_t vloxei16(const uint64_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u64m1_m)))
-vuint64m1_t vloxei16(vbool64_t op0, vuint64m1_t op1, const uint64_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u64m2)))
-vuint64m2_t vloxei16(const uint64_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u64m2_m)))
-vuint64m2_t vloxei16(vbool32_t op0, vuint64m2_t op1, const uint64_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u64m4)))
-vuint64m4_t vloxei16(const uint64_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u64m4_m)))
-vuint64m4_t vloxei16(vbool16_t op0, vuint64m4_t op1, const uint64_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u64m8)))
-vuint64m8_t vloxei16(const uint64_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u64m8_m)))
-vuint64m8_t vloxei16(vbool8_t op0, vuint64m8_t op1, const uint64_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i64m1)))
-vint64m1_t vloxei32(const int64_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i64m1_m)))
-vint64m1_t vloxei32(vbool64_t op0, vint64m1_t op1, const int64_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i64m2)))
-vint64m2_t vloxei32(const int64_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i64m2_m)))
-vint64m2_t vloxei32(vbool32_t op0, vint64m2_t op1, const int64_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i64m4)))
-vint64m4_t vloxei32(const int64_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i64m4_m)))
-vint64m4_t vloxei32(vbool16_t op0, vint64m4_t op1, const int64_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i64m8)))
-vint64m8_t vloxei32(const int64_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i64m8_m)))
-vint64m8_t vloxei32(vbool8_t op0, vint64m8_t op1, const int64_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u64m1)))
-vuint64m1_t vloxei32(const uint64_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u64m1_m)))
-vuint64m1_t vloxei32(vbool64_t op0, vuint64m1_t op1, const uint64_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u64m2)))
-vuint64m2_t vloxei32(const uint64_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u64m2_m)))
-vuint64m2_t vloxei32(vbool32_t op0, vuint64m2_t op1, const uint64_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u64m4)))
-vuint64m4_t vloxei32(const uint64_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u64m4_m)))
-vuint64m4_t vloxei32(vbool16_t op0, vuint64m4_t op1, const uint64_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u64m8)))
-vuint64m8_t vloxei32(const uint64_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u64m8_m)))
-vuint64m8_t vloxei32(vbool8_t op0, vuint64m8_t op1, const uint64_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i64m1)))
-vint64m1_t vloxei64(const int64_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i64m1_m)))
-vint64m1_t vloxei64(vbool64_t op0, vint64m1_t op1, const int64_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i64m2)))
-vint64m2_t vloxei64(const int64_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i64m2_m)))
-vint64m2_t vloxei64(vbool32_t op0, vint64m2_t op1, const int64_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i64m4)))
-vint64m4_t vloxei64(const int64_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i64m4_m)))
-vint64m4_t vloxei64(vbool16_t op0, vint64m4_t op1, const int64_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i64m8)))
-vint64m8_t vloxei64(const int64_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i64m8_m)))
-vint64m8_t vloxei64(vbool8_t op0, vint64m8_t op1, const int64_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u64m1)))
-vuint64m1_t vloxei64(const uint64_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u64m1_m)))
-vuint64m1_t vloxei64(vbool64_t op0, vuint64m1_t op1, const uint64_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u64m2)))
-vuint64m2_t vloxei64(const uint64_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u64m2_m)))
-vuint64m2_t vloxei64(vbool32_t op0, vuint64m2_t op1, const uint64_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u64m4)))
-vuint64m4_t vloxei64(const uint64_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u64m4_m)))
-vuint64m4_t vloxei64(vbool16_t op0, vuint64m4_t op1, const uint64_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u64m8)))
-vuint64m8_t vloxei64(const uint64_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u64m8_m)))
-vuint64m8_t vloxei64(vbool8_t op0, vuint64m8_t op1, const uint64_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8m1)))
-void vse8(uint8_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8m1_m)))
-void vse8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8m2)))
-void vse8(uint8_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8m2_m)))
-void vse8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8m4)))
-void vse8(uint8_t * op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8m4_m)))
-void vse8(vbool2_t op0, uint8_t * op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8m8)))
-void vse8(uint8_t * op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8m8_m)))
-void vse8(vbool1_t op0, uint8_t * op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8mf2)))
-void vse8(uint8_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8mf2_m)))
-void vse8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8mf4)))
-void vse8(uint8_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8mf4_m)))
-void vse8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8mf8)))
-void vse8(uint8_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8mf8_m)))
-void vse8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16mf4)))
-vuint16mf4_t vwaddu_wv(vuint16mf4_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16mf4_m)))
-vuint16mf4_t vwaddu_wv(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16mf2)))
-vuint16mf2_t vwaddu_wv(vuint16mf2_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16mf2_m)))
-vuint16mf2_t vwaddu_wv(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16m1)))
-vuint16m1_t vwaddu_wv(vuint16m1_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16m1_m)))
-vuint16m1_t vwaddu_wv(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16m2)))
-vuint16m2_t vwaddu_wv(vuint16m2_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16m2_m)))
-vuint16m2_t vwaddu_wv(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16m4)))
-vuint16m4_t vwaddu_wv(vuint16m4_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16m4_m)))
-vuint16m4_t vwaddu_wv(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16m8)))
-vuint16m8_t vwaddu_wv(vuint16m8_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16m8_m)))
-vuint16m8_t vwaddu_wv(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u32mf2)))
-vuint32mf2_t vwaddu_wv(vuint32mf2_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u32mf2_m)))
-vuint32mf2_t vwaddu_wv(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u32m1)))
-vuint32m1_t vwaddu_wv(vuint32m1_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u32m1_m)))
-vuint32m1_t vwaddu_wv(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u32m2)))
-vuint32m2_t vwaddu_wv(vuint32m2_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u32m2_m)))
-vuint32m2_t vwaddu_wv(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u32m4)))
-vuint32m4_t vwaddu_wv(vuint32m4_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u32m4_m)))
-vuint32m4_t vwaddu_wv(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u32m8)))
-vuint32m8_t vwaddu_wv(vuint32m8_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u32m8_m)))
-vuint32m8_t vwaddu_wv(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u64m1)))
-vuint64m1_t vwaddu_wv(vuint64m1_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u64m1_m)))
-vuint64m1_t vwaddu_wv(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u64m2)))
-vuint64m2_t vwaddu_wv(vuint64m2_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u64m2_m)))
-vuint64m2_t vwaddu_wv(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u64m4)))
-vuint64m4_t vwaddu_wv(vuint64m4_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u64m4_m)))
-vuint64m4_t vwaddu_wv(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u64m8)))
-vuint64m8_t vwaddu_wv(vuint64m8_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u64m8_m)))
-vuint64m8_t vwaddu_wv(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8m1)))
-void vsse8(int8_t * op0, ptrdiff_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8m1_m)))
-void vsse8(vbool8_t op0, int8_t * op1, ptrdiff_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8m2)))
-void vsse8(int8_t * op0, ptrdiff_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8m2_m)))
-void vsse8(vbool4_t op0, int8_t * op1, ptrdiff_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8m4)))
-void vsse8(int8_t * op0, ptrdiff_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8m4_m)))
-void vsse8(vbool2_t op0, int8_t * op1, ptrdiff_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8m8)))
-void vsse8(int8_t * op0, ptrdiff_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8m8_m)))
-void vsse8(vbool1_t op0, int8_t * op1, ptrdiff_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8mf2)))
-void vsse8(int8_t * op0, ptrdiff_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8mf2_m)))
-void vsse8(vbool16_t op0, int8_t * op1, ptrdiff_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8mf4)))
-void vsse8(int8_t * op0, ptrdiff_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8mf4_m)))
-void vsse8(vbool32_t op0, int8_t * op1, ptrdiff_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8mf8)))
-void vsse8(int8_t * op0, ptrdiff_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8mf8_m)))
-void vsse8(vbool64_t op0, int8_t * op1, ptrdiff_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8m1)))
-void vsuxei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8m1_m)))
-void vsuxei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8m2)))
-void vsuxei16(int8_t * op0, vuint16m4_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8m2_m)))
-void vsuxei16(vbool4_t op0, int8_t * op1, vuint16m4_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8m4)))
-void vsuxei16(int8_t * op0, vuint16m8_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8m4_m)))
-void vsuxei16(vbool2_t op0, int8_t * op1, vuint16m8_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8mf2)))
-void vsuxei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8mf2_m)))
-void vsuxei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8mf4)))
-void vsuxei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8mf4_m)))
-void vsuxei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8mf8)))
-void vsuxei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8mf8_m)))
-void vsuxei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8m1)))
-void vsuxei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8m1_m)))
-void vsuxei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8m2)))
-void vsuxei16(uint8_t * op0, vuint16m4_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8m2_m)))
-void vsuxei16(vbool4_t op0, uint8_t * op1, vuint16m4_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8m4)))
-void vsuxei16(uint8_t * op0, vuint16m8_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8m4_m)))
-void vsuxei16(vbool2_t op0, uint8_t * op1, vuint16m8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8mf2)))
-void vsuxei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8mf2_m)))
-void vsuxei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8mf4)))
-void vsuxei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8mf4_m)))
-void vsuxei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8mf8)))
-void vsuxei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8mf8_m)))
-void vsuxei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i8m1)))
-void vsuxei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i8m1_m)))
-void vsuxei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i8m2)))
-void vsuxei32(int8_t * op0, vuint32m8_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i8m2_m)))
-void vsuxei32(vbool4_t op0, int8_t * op1, vuint32m8_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i8mf2)))
-void vsuxei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i8mf2_m)))
-void vsuxei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i8mf4)))
-void vsuxei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i8mf4_m)))
-void vsuxei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i8mf8)))
-void vsuxei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i8mf8_m)))
-void vsuxei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8m1)))
-vint8m1_t vadd(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8m1_m)))
-vint8m1_t vadd(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8m2)))
-vint8m2_t vadd(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8m2_m)))
-vint8m2_t vadd(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8m4)))
-vint8m4_t vadd(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8m4_m)))
-vint8m4_t vadd(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8m8)))
-vint8m8_t vadd(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8m8_m)))
-vint8m8_t vadd(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8mf2)))
-vint8mf2_t vadd(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8mf2_m)))
-vint8mf2_t vadd(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8mf4)))
-vint8mf4_t vadd(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8mf4_m)))
-vint8mf4_t vadd(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8mf8)))
-vint8mf8_t vadd(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8mf8_m)))
-vint8mf8_t vadd(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16m1)))
-vint16m1_t vadd(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16m1_m)))
-vint16m1_t vadd(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16m2)))
-vint16m2_t vadd(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16m2_m)))
-vint16m2_t vadd(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16m4)))
-vint16m4_t vadd(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16m4_m)))
-vint16m4_t vadd(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16m8)))
-vint16m8_t vadd(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16m8_m)))
-vint16m8_t vadd(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16mf2)))
-vint16mf2_t vadd(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16mf2_m)))
-vint16mf2_t vadd(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16mf4)))
-vint16mf4_t vadd(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16mf4_m)))
-vint16mf4_t vadd(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i32m1)))
-vint32m1_t vadd(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i32m1_m)))
-vint32m1_t vadd(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i32m2)))
-vint32m2_t vadd(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i32m2_m)))
-vint32m2_t vadd(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i32m4)))
-vint32m4_t vadd(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i32m4_m)))
-vint32m4_t vadd(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i32m8)))
-vint32m8_t vadd(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i32m8_m)))
-vint32m8_t vadd(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i32mf2)))
-vint32mf2_t vadd(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i32mf2_m)))
-vint32mf2_t vadd(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i64m1)))
-vint64m1_t vadd(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i64m1_m)))
-vint64m1_t vadd(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i64m2)))
-vint64m2_t vadd(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i64m2_m)))
-vint64m2_t vadd(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i64m4)))
-vint64m4_t vadd(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i64m4_m)))
-vint64m4_t vadd(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i64m8)))
-vint64m8_t vadd(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i64m8_m)))
-vint64m8_t vadd(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8m1)))
-vuint8m1_t vadd(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8m1_m)))
-vuint8m1_t vadd(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8m2)))
-vuint8m2_t vadd(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8m2_m)))
-vuint8m2_t vadd(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8m4)))
-vuint8m4_t vadd(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8m4_m)))
-vuint8m4_t vadd(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8m8)))
-vuint8m8_t vadd(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8m8_m)))
-vuint8m8_t vadd(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8mf2)))
-vuint8mf2_t vadd(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8mf2_m)))
-vuint8mf2_t vadd(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8mf4)))
-vuint8mf4_t vadd(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8mf4_m)))
-vuint8mf4_t vadd(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8mf8)))
-vuint8mf8_t vadd(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8mf8_m)))
-vuint8mf8_t vadd(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16m1)))
-vuint16m1_t vadd(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16m1_m)))
-vuint16m1_t vadd(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16m2)))
-vuint16m2_t vadd(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16m2_m)))
-vuint16m2_t vadd(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16m4)))
-vuint16m4_t vadd(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16m4_m)))
-vuint16m4_t vadd(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16m8)))
-vuint16m8_t vadd(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16m8_m)))
-vuint16m8_t vadd(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16mf2)))
-vuint16mf2_t vadd(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16mf2_m)))
-vuint16mf2_t vadd(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16mf4)))
-vuint16mf4_t vadd(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16mf4_m)))
-vuint16mf4_t vadd(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u32m1)))
-vuint32m1_t vadd(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u32m1_m)))
-vuint32m1_t vadd(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u32m2)))
-vuint32m2_t vadd(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u32m2_m)))
-vuint32m2_t vadd(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u32m4)))
-vuint32m4_t vadd(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u32m4_m)))
-vuint32m4_t vadd(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u32m8)))
-vuint32m8_t vadd(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u32m8_m)))
-vuint32m8_t vadd(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u32mf2)))
-vuint32mf2_t vadd(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u32mf2_m)))
-vuint32mf2_t vadd(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u64m1)))
-vuint64m1_t vadd(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u64m1_m)))
-vuint64m1_t vadd(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u64m2)))
-vuint64m2_t vadd(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u64m2_m)))
-vuint64m2_t vadd(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u64m4)))
-vuint64m4_t vadd(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u64m4_m)))
-vuint64m4_t vadd(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u64m8)))
-vuint64m8_t vadd(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u64m8_m)))
-vuint64m8_t vadd(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8m1)))
-vuint8m1_t vadd(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8m1_m)))
-vuint8m1_t vadd(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8m2)))
-vuint8m2_t vadd(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8m2_m)))
-vuint8m2_t vadd(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8m4)))
-vuint8m4_t vadd(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8m4_m)))
-vuint8m4_t vadd(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8m8)))
-vuint8m8_t vadd(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8m8_m)))
-vuint8m8_t vadd(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8mf2)))
-vuint8mf2_t vadd(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8mf2_m)))
-vuint8mf2_t vadd(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8mf4)))
-vuint8mf4_t vadd(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8mf4_m)))
-vuint8mf4_t vadd(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8mf8)))
-vuint8mf8_t vadd(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8mf8_m)))
-vuint8mf8_t vadd(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16m1)))
-vuint16m1_t vadd(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16m1_m)))
-vuint16m1_t vadd(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16m2)))
-vuint16m2_t vadd(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16m2_m)))
-vuint16m2_t vadd(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16m4)))
-vuint16m4_t vadd(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16m4_m)))
-vuint16m4_t vadd(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16m8)))
-vuint16m8_t vadd(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16m8_m)))
-vuint16m8_t vadd(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16mf2)))
-vuint16mf2_t vadd(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16mf2_m)))
-vuint16mf2_t vadd(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16mf4)))
-vuint16mf4_t vadd(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16mf4_m)))
-vuint16mf4_t vadd(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u32m1)))
-vuint32m1_t vadd(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u32m1_m)))
-vuint32m1_t vadd(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u32m2)))
-vuint32m2_t vadd(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u32m2_m)))
-vuint32m2_t vadd(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u32m4)))
-vuint32m4_t vadd(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u32m4_m)))
-vuint32m4_t vadd(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u32m8)))
-vuint32m8_t vadd(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u32m8_m)))
-vuint32m8_t vadd(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u32mf2)))
-vuint32mf2_t vadd(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u32mf2_m)))
-vuint32mf2_t vadd(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u64m1)))
-vuint64m1_t vadd(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u64m1_m)))
-vuint64m1_t vadd(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u64m2)))
-vuint64m2_t vadd(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u64m2_m)))
-vuint64m2_t vadd(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u64m4)))
-vuint64m4_t vadd(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u64m4_m)))
-vuint64m4_t vadd(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u64m8)))
-vuint64m8_t vadd(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u64m8_m)))
-vuint64m8_t vadd(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8m1)))
-vint8m1_t vsub(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8m1_m)))
-vint8m1_t vsub(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8m2)))
-vint8m2_t vsub(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8m2_m)))
-vint8m2_t vsub(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8m4)))
-vint8m4_t vsub(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8m4_m)))
-vint8m4_t vsub(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8m8)))
-vint8m8_t vsub(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8m8_m)))
-vint8m8_t vsub(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8mf2)))
-vint8mf2_t vsub(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8mf2_m)))
-vint8mf2_t vsub(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8mf4)))
-vint8mf4_t vsub(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8mf4_m)))
-vint8mf4_t vsub(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8mf8)))
-vint8mf8_t vsub(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8mf8_m)))
-vint8mf8_t vsub(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16m1)))
-vint16m1_t vsub(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16m1_m)))
-vint16m1_t vsub(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16m2)))
-vint16m2_t vsub(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16m2_m)))
-vint16m2_t vsub(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16m4)))
-vint16m4_t vsub(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16m4_m)))
-vint16m4_t vsub(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16m8)))
-vint16m8_t vsub(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16m8_m)))
-vint16m8_t vsub(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16mf2)))
-vint16mf2_t vsub(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16mf2_m)))
-vint16mf2_t vsub(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16mf4)))
-vint16mf4_t vsub(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16mf4_m)))
-vint16mf4_t vsub(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i32m1)))
-vint32m1_t vsub(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i32m1_m)))
-vint32m1_t vsub(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i32m2)))
-vint32m2_t vsub(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i32m2_m)))
-vint32m2_t vsub(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i32m4)))
-vint32m4_t vsub(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i32m4_m)))
-vint32m4_t vsub(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i32m8)))
-vint32m8_t vsub(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i32m8_m)))
-vint32m8_t vsub(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i32mf2)))
-vint32mf2_t vsub(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i32mf2_m)))
-vint32mf2_t vsub(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i64m1)))
-vint64m1_t vsub(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i64m1_m)))
-vint64m1_t vsub(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i64m2)))
-vint64m2_t vsub(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i64m2_m)))
-vint64m2_t vsub(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i64m4)))
-vint64m4_t vsub(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i64m4_m)))
-vint64m4_t vsub(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i64m8)))
-vint64m8_t vsub(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i64m8_m)))
-vint64m8_t vsub(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u8m1)))
-void vsuxei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u8m1_m)))
-void vsuxei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u8m2)))
-void vsuxei32(uint8_t * op0, vuint32m8_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u8m2_m)))
-void vsuxei32(vbool4_t op0, uint8_t * op1, vuint32m8_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u8mf2)))
-void vsuxei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u8mf2_m)))
-void vsuxei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u8mf4)))
-void vsuxei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u8mf4_m)))
-void vsuxei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u8mf8)))
-void vsuxei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u8mf8_m)))
-void vsuxei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8m1)))
-vint8m1_t vsub(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8m1_m)))
-vint8m1_t vsub(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8m2)))
-vint8m2_t vsub(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8m2_m)))
-vint8m2_t vsub(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8m4)))
-vint8m4_t vsub(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8m4_m)))
-vint8m4_t vsub(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8m8)))
-vint8m8_t vsub(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8m8_m)))
-vint8m8_t vsub(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8mf2)))
-vint8mf2_t vsub(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8mf2_m)))
-vint8mf2_t vsub(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8mf4)))
-vint8mf4_t vsub(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8mf4_m)))
-vint8mf4_t vsub(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8mf8)))
-vint8mf8_t vsub(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8mf8_m)))
-vint8mf8_t vsub(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16m1)))
-vint16m1_t vsub(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16m1_m)))
-vint16m1_t vsub(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16m2)))
-vint16m2_t vsub(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16m2_m)))
-vint16m2_t vsub(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16m4)))
-vint16m4_t vsub(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16m4_m)))
-vint16m4_t vsub(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16m8)))
-vint16m8_t vsub(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16m8_m)))
-vint16m8_t vsub(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16mf2)))
-vint16mf2_t vsub(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16mf2_m)))
-vint16mf2_t vsub(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16mf4)))
-vint16mf4_t vsub(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16mf4_m)))
-vint16mf4_t vsub(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i32m1)))
-vint32m1_t vsub(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i32m1_m)))
-vint32m1_t vsub(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i32m2)))
-vint32m2_t vsub(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i32m2_m)))
-vint32m2_t vsub(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i32m4)))
-vint32m4_t vsub(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i32m4_m)))
-vint32m4_t vsub(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i32m8)))
-vint32m8_t vsub(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i32m8_m)))
-vint32m8_t vsub(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i32mf2)))
-vint32mf2_t vsub(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i32mf2_m)))
-vint32mf2_t vsub(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i64m1)))
-vint64m1_t vsub(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i64m1_m)))
-vint64m1_t vsub(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i64m2)))
-vint64m2_t vsub(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i64m2_m)))
-vint64m2_t vsub(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i64m4)))
-vint64m4_t vsub(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i64m4_m)))
-vint64m4_t vsub(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i64m8)))
-vint64m8_t vsub(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i64m8_m)))
-vint64m8_t vsub(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8m1)))
-vuint8m1_t vsub(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8m1_m)))
-vuint8m1_t vsub(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8m2)))
-vuint8m2_t vsub(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8m2_m)))
-vuint8m2_t vsub(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8m4)))
-vuint8m4_t vsub(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8m4_m)))
-vuint8m4_t vsub(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8m8)))
-vuint8m8_t vsub(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8m8_m)))
-vuint8m8_t vsub(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8mf2)))
-vuint8mf2_t vsub(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8mf2_m)))
-vuint8mf2_t vsub(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8mf4)))
-vuint8mf4_t vsub(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8mf4_m)))
-vuint8mf4_t vsub(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8mf8)))
-vuint8mf8_t vsub(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8mf8_m)))
-vuint8mf8_t vsub(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16m1)))
-vuint16m1_t vsub(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16m1_m)))
-vuint16m1_t vsub(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16m2)))
-vuint16m2_t vsub(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16m2_m)))
-vuint16m2_t vsub(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16m4)))
-vuint16m4_t vsub(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16m4_m)))
-vuint16m4_t vsub(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16m8)))
-vuint16m8_t vsub(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16m8_m)))
-vuint16m8_t vsub(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16mf2)))
-vuint16mf2_t vsub(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16mf2_m)))
-vuint16mf2_t vsub(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16mf4)))
-vuint16mf4_t vsub(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16mf4_m)))
-vuint16mf4_t vsub(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u32m1)))
-vuint32m1_t vsub(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u32m1_m)))
-vuint32m1_t vsub(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u32m2)))
-vuint32m2_t vsub(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u32m2_m)))
-vuint32m2_t vsub(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u32m4)))
-vuint32m4_t vsub(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u32m4_m)))
-vuint32m4_t vsub(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u32m8)))
-vuint32m8_t vsub(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u32m8_m)))
-vuint32m8_t vsub(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u32mf2)))
-vuint32mf2_t vsub(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u32mf2_m)))
-vuint32mf2_t vsub(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u64m1)))
-vuint64m1_t vsub(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u64m1_m)))
-vuint64m1_t vsub(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u64m2)))
-vuint64m2_t vsub(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u64m2_m)))
-vuint64m2_t vsub(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u64m4)))
-vuint64m4_t vsub(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u64m4_m)))
-vuint64m4_t vsub(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u64m8)))
-vuint64m8_t vsub(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u64m8_m)))
-vuint64m8_t vsub(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8m1)))
-vuint8m1_t vsub(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8m1_m)))
-vuint8m1_t vsub(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8m2)))
-vuint8m2_t vsub(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8m2_m)))
-vuint8m2_t vsub(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8m4)))
-vuint8m4_t vsub(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8m4_m)))
-vuint8m4_t vsub(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8m8)))
-vuint8m8_t vsub(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8m8_m)))
-vuint8m8_t vsub(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8mf2)))
-vuint8mf2_t vsub(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8mf2_m)))
-vuint8mf2_t vsub(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8mf4)))
-vuint8mf4_t vsub(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8mf4_m)))
-vuint8mf4_t vsub(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8mf8)))
-vuint8mf8_t vsub(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8mf8_m)))
-vuint8mf8_t vsub(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16m1)))
-vuint16m1_t vsub(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16m1_m)))
-vuint16m1_t vsub(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16m2)))
-vuint16m2_t vsub(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16m2_m)))
-vuint16m2_t vsub(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16m4)))
-vuint16m4_t vsub(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16m4_m)))
-vuint16m4_t vsub(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16m8)))
-vuint16m8_t vsub(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16m8_m)))
-vuint16m8_t vsub(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16mf2)))
-vuint16mf2_t vsub(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16mf2_m)))
-vuint16mf2_t vsub(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16mf4)))
-vuint16mf4_t vsub(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16mf4_m)))
-vuint16mf4_t vsub(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u32m1)))
-vuint32m1_t vsub(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u32m1_m)))
-vuint32m1_t vsub(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u32m2)))
-vuint32m2_t vsub(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u32m2_m)))
-vuint32m2_t vsub(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u32m4)))
-vuint32m4_t vsub(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u32m4_m)))
-vuint32m4_t vsub(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u32m8)))
-vuint32m8_t vsub(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u32m8_m)))
-vuint32m8_t vsub(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u32mf2)))
-vuint32mf2_t vsub(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u32mf2_m)))
-vuint32mf2_t vsub(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u64m1)))
-vuint64m1_t vsub(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u64m1_m)))
-vuint64m1_t vsub(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u64m2)))
-vuint64m2_t vsub(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u64m2_m)))
-vuint64m2_t vsub(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u64m4)))
-vuint64m4_t vsub(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u64m4_m)))
-vuint64m4_t vsub(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u64m8)))
-vuint64m8_t vsub(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u64m8_m)))
-vuint64m8_t vsub(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8m1)))
-vint8m1_t vrsub(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8m1_m)))
-vint8m1_t vrsub(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8m2)))
-vint8m2_t vrsub(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8m2_m)))
-vint8m2_t vrsub(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8m4)))
-vint8m4_t vrsub(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8m4_m)))
-vint8m4_t vrsub(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8m8)))
-vint8m8_t vrsub(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8m8_m)))
-vint8m8_t vrsub(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8mf2)))
-vint8mf2_t vrsub(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8mf2_m)))
-vint8mf2_t vrsub(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8mf4)))
-vint8mf4_t vrsub(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8mf4_m)))
-vint8mf4_t vrsub(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8mf8)))
-vint8mf8_t vrsub(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8mf8_m)))
-vint8mf8_t vrsub(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16m1)))
-vint16m1_t vrsub(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16m1_m)))
-vint16m1_t vrsub(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16m2)))
-vint16m2_t vrsub(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16m2_m)))
-vint16m2_t vrsub(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16m4)))
-vint16m4_t vrsub(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16m4_m)))
-vint16m4_t vrsub(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16m8)))
-vint16m8_t vrsub(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16m8_m)))
-vint16m8_t vrsub(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16mf2)))
-vint16mf2_t vrsub(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16mf2_m)))
-vint16mf2_t vrsub(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16mf4)))
-vint16mf4_t vrsub(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16mf4_m)))
-vint16mf4_t vrsub(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i32m1)))
-vint32m1_t vrsub(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i32m1_m)))
-vint32m1_t vrsub(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i32m2)))
-vint32m2_t vrsub(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i32m2_m)))
-vint32m2_t vrsub(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i32m4)))
-vint32m4_t vrsub(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i32m4_m)))
-vint32m4_t vrsub(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i32m8)))
-vint32m8_t vrsub(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i32m8_m)))
-vint32m8_t vrsub(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i32mf2)))
-vint32mf2_t vrsub(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i32mf2_m)))
-vint32mf2_t vrsub(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i64m1)))
-vint64m1_t vrsub(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i64m1_m)))
-vint64m1_t vrsub(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i64m2)))
-vint64m2_t vrsub(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i64m2_m)))
-vint64m2_t vrsub(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i64m4)))
-vint64m4_t vrsub(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i64m4_m)))
-vint64m4_t vrsub(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i64m8)))
-vint64m8_t vrsub(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i64m8_m)))
-vint64m8_t vrsub(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8m1)))
-vuint8m1_t vrsub(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8m1_m)))
-vuint8m1_t vrsub(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8m2)))
-vuint8m2_t vrsub(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8m2_m)))
-vuint8m2_t vrsub(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8m4)))
-vuint8m4_t vrsub(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8m4_m)))
-vuint8m4_t vrsub(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8m8)))
-vuint8m8_t vrsub(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8m8_m)))
-vuint8m8_t vrsub(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8mf2)))
-vuint8mf2_t vrsub(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8mf2_m)))
-vuint8mf2_t vrsub(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8mf4)))
-vuint8mf4_t vrsub(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8mf4_m)))
-vuint8mf4_t vrsub(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8mf8)))
-vuint8mf8_t vrsub(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8mf8_m)))
-vuint8mf8_t vrsub(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16m1)))
-vuint16m1_t vrsub(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16m1_m)))
-vuint16m1_t vrsub(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16m2)))
-vuint16m2_t vrsub(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16m2_m)))
-vuint16m2_t vrsub(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16m4)))
-vuint16m4_t vrsub(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16m4_m)))
-vuint16m4_t vrsub(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16m8)))
-vuint16m8_t vrsub(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16m8_m)))
-vuint16m8_t vrsub(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16mf2)))
-vuint16mf2_t vrsub(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16mf2_m)))
-vuint16mf2_t vrsub(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16mf4)))
-vuint16mf4_t vrsub(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16mf4_m)))
-vuint16mf4_t vrsub(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u32m1)))
-vuint32m1_t vrsub(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u32m1_m)))
-vuint32m1_t vrsub(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u32m2)))
-vuint32m2_t vrsub(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u32m2_m)))
-vuint32m2_t vrsub(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u32m4)))
-vuint32m4_t vrsub(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u32m4_m)))
-vuint32m4_t vrsub(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u32m8)))
-vuint32m8_t vrsub(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u32m8_m)))
-vuint32m8_t vrsub(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u32mf2)))
-vuint32mf2_t vrsub(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u32mf2_m)))
-vuint32mf2_t vrsub(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u64m1)))
-vuint64m1_t vrsub(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u64m1_m)))
-vuint64m1_t vrsub(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u64m2)))
-vuint64m2_t vrsub(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u64m2_m)))
-vuint64m2_t vrsub(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u64m4)))
-vuint64m4_t vrsub(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u64m4_m)))
-vuint64m4_t vrsub(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u64m8)))
-vuint64m8_t vrsub(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u64m8_m)))
-vuint64m8_t vrsub(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16mf4)))
-vuint16mf4_t vwaddu_vx(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16mf4_m)))
-vuint16mf4_t vwaddu_vx(vbool64_t op0, vuint16mf4_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16mf2)))
-vuint16mf2_t vwaddu_vx(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16mf2_m)))
-vuint16mf2_t vwaddu_vx(vbool32_t op0, vuint16mf2_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16m1)))
-vuint16m1_t vwaddu_vx(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16m1_m)))
-vuint16m1_t vwaddu_vx(vbool16_t op0, vuint16m1_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16m2)))
-vuint16m2_t vwaddu_vx(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16m2_m)))
-vuint16m2_t vwaddu_vx(vbool8_t op0, vuint16m2_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16m4)))
-vuint16m4_t vwaddu_vx(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16m4_m)))
-vuint16m4_t vwaddu_vx(vbool4_t op0, vuint16m4_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16m8)))
-vuint16m8_t vwaddu_vx(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16m8_m)))
-vuint16m8_t vwaddu_vx(vbool2_t op0, vuint16m8_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u32mf2)))
-vuint32mf2_t vwaddu_vx(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u32mf2_m)))
-vuint32mf2_t vwaddu_vx(vbool64_t op0, vuint32mf2_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u32m1)))
-vuint32m1_t vwaddu_vx(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u32m1_m)))
-vuint32m1_t vwaddu_vx(vbool32_t op0, vuint32m1_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u32m2)))
-vuint32m2_t vwaddu_vx(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u32m2_m)))
-vuint32m2_t vwaddu_vx(vbool16_t op0, vuint32m2_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u32m4)))
-vuint32m4_t vwaddu_vx(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u32m4_m)))
-vuint32m4_t vwaddu_vx(vbool8_t op0, vuint32m4_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u32m8)))
-vuint32m8_t vwaddu_vx(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u32m8_m)))
-vuint32m8_t vwaddu_vx(vbool4_t op0, vuint32m8_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u64m1)))
-vuint64m1_t vwaddu_vx(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u64m1_m)))
-vuint64m1_t vwaddu_vx(vbool64_t op0, vuint64m1_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u64m2)))
-vuint64m2_t vwaddu_vx(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u64m2_m)))
-vuint64m2_t vwaddu_vx(vbool32_t op0, vuint64m2_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u64m4)))
-vuint64m4_t vwaddu_vx(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u64m4_m)))
-vuint64m4_t vwaddu_vx(vbool16_t op0, vuint64m4_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u64m8)))
-vuint64m8_t vwaddu_vx(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u64m8_m)))
-vuint64m8_t vwaddu_vx(vbool8_t op0, vuint64m8_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16mf4)))
-vuint16mf4_t vwsubu_vv(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16mf4_m)))
-vuint16mf4_t vwsubu_vv(vbool64_t op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16mf2)))
-vuint16mf2_t vwsubu_vv(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16mf2_m)))
-vuint16mf2_t vwsubu_vv(vbool32_t op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16m1)))
-vuint16m1_t vwsubu_vv(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16m1_m)))
-vuint16m1_t vwsubu_vv(vbool16_t op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16m2)))
-vuint16m2_t vwsubu_vv(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16m2_m)))
-vuint16m2_t vwsubu_vv(vbool8_t op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16m4)))
-vuint16m4_t vwsubu_vv(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16m4_m)))
-vuint16m4_t vwsubu_vv(vbool4_t op0, vuint16m4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16m8)))
-vuint16m8_t vwsubu_vv(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16m8_m)))
-vuint16m8_t vwsubu_vv(vbool2_t op0, vuint16m8_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u32mf2)))
-vuint32mf2_t vwsubu_vv(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u32mf2_m)))
-vuint32mf2_t vwsubu_vv(vbool64_t op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u32m1)))
-vuint32m1_t vwsubu_vv(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u32m1_m)))
-vuint32m1_t vwsubu_vv(vbool32_t op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u32m2)))
-vuint32m2_t vwsubu_vv(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u32m2_m)))
-vuint32m2_t vwsubu_vv(vbool16_t op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u32m4)))
-vuint32m4_t vwsubu_vv(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u32m4_m)))
-vuint32m4_t vwsubu_vv(vbool8_t op0, vuint32m4_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u32m8)))
-vuint32m8_t vwsubu_vv(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u32m8_m)))
-vuint32m8_t vwsubu_vv(vbool4_t op0, vuint32m8_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u64m1)))
-vuint64m1_t vwsubu_vv(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u64m1_m)))
-vuint64m1_t vwsubu_vv(vbool64_t op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u64m2)))
-vuint64m2_t vwsubu_vv(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u64m2_m)))
-vuint64m2_t vwsubu_vv(vbool32_t op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u64m4)))
-vuint64m4_t vwsubu_vv(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u64m4_m)))
-vuint64m4_t vwsubu_vv(vbool16_t op0, vuint64m4_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u64m8)))
-vuint64m8_t vwsubu_vv(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u64m8_m)))
-vuint64m8_t vwsubu_vv(vbool8_t op0, vuint64m8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16mf4)))
-vuint16mf4_t vwsubu_vx(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16mf4_m)))
-vuint16mf4_t vwsubu_vx(vbool64_t op0, vuint16mf4_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16mf2)))
-vuint16mf2_t vwsubu_vx(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16mf2_m)))
-vuint16mf2_t vwsubu_vx(vbool32_t op0, vuint16mf2_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16m1)))
-vuint16m1_t vwsubu_vx(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16m1_m)))
-vuint16m1_t vwsubu_vx(vbool16_t op0, vuint16m1_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16m2)))
-vuint16m2_t vwsubu_vx(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16m2_m)))
-vuint16m2_t vwsubu_vx(vbool8_t op0, vuint16m2_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16m4)))
-vuint16m4_t vwsubu_vx(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16m4_m)))
-vuint16m4_t vwsubu_vx(vbool4_t op0, vuint16m4_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16m8)))
-vuint16m8_t vwsubu_vx(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16m8_m)))
-vuint16m8_t vwsubu_vx(vbool2_t op0, vuint16m8_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u32mf2)))
-vuint32mf2_t vwsubu_vx(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u32mf2_m)))
-vuint32mf2_t vwsubu_vx(vbool64_t op0, vuint32mf2_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u32m1)))
-vuint32m1_t vwsubu_vx(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u32m1_m)))
-vuint32m1_t vwsubu_vx(vbool32_t op0, vuint32m1_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u32m2)))
-vuint32m2_t vwsubu_vx(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u32m2_m)))
-vuint32m2_t vwsubu_vx(vbool16_t op0, vuint32m2_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u32m4)))
-vuint32m4_t vwsubu_vx(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u32m4_m)))
-vuint32m4_t vwsubu_vx(vbool8_t op0, vuint32m4_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u32m8)))
-vuint32m8_t vwsubu_vx(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u32m8_m)))
-vuint32m8_t vwsubu_vx(vbool4_t op0, vuint32m8_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u64m1)))
-vuint64m1_t vwsubu_vx(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u64m1_m)))
-vuint64m1_t vwsubu_vx(vbool64_t op0, vuint64m1_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u64m2)))
-vuint64m2_t vwsubu_vx(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u64m2_m)))
-vuint64m2_t vwsubu_vx(vbool32_t op0, vuint64m2_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u64m4)))
-vuint64m4_t vwsubu_vx(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u64m4_m)))
-vuint64m4_t vwsubu_vx(vbool16_t op0, vuint64m4_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u64m8)))
-vuint64m8_t vwsubu_vx(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u64m8_m)))
-vuint64m8_t vwsubu_vx(vbool8_t op0, vuint64m8_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16mf4)))
-vint16mf4_t vwadd_vv(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16mf4_m)))
-vint16mf4_t vwadd_vv(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16mf2)))
-vint16mf2_t vwadd_vv(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16mf2_m)))
-vint16mf2_t vwadd_vv(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16m1)))
-vint16m1_t vwadd_vv(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16m1_m)))
-vint16m1_t vwadd_vv(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16m2)))
-vint16m2_t vwadd_vv(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16m2_m)))
-vint16m2_t vwadd_vv(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16m4)))
-vint16m4_t vwadd_vv(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16m4_m)))
-vint16m4_t vwadd_vv(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16m8)))
-vint16m8_t vwadd_vv(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16m8_m)))
-vint16m8_t vwadd_vv(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i32mf2)))
-vint32mf2_t vwadd_vv(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i32mf2_m)))
-vint32mf2_t vwadd_vv(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i32m1)))
-vint32m1_t vwadd_vv(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i32m1_m)))
-vint32m1_t vwadd_vv(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i32m2)))
-vint32m2_t vwadd_vv(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i32m2_m)))
-vint32m2_t vwadd_vv(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i32m4)))
-vint32m4_t vwadd_vv(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i32m4_m)))
-vint32m4_t vwadd_vv(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i32m8)))
-vint32m8_t vwadd_vv(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i32m8_m)))
-vint32m8_t vwadd_vv(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i64m1)))
-vint64m1_t vwadd_vv(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i64m1_m)))
-vint64m1_t vwadd_vv(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i64m2)))
-vint64m2_t vwadd_vv(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i64m2_m)))
-vint64m2_t vwadd_vv(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i64m4)))
-vint64m4_t vwadd_vv(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i64m4_m)))
-vint64m4_t vwadd_vv(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i64m8)))
-vint64m8_t vwadd_vv(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i64m8_m)))
-vint64m8_t vwadd_vv(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16mf4)))
-vint16mf4_t vwadd_vx(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16mf4_m)))
-vint16mf4_t vwadd_vx(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16mf2)))
-vint16mf2_t vwadd_vx(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16mf2_m)))
-vint16mf2_t vwadd_vx(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16m1)))
-vint16m1_t vwadd_vx(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16m1_m)))
-vint16m1_t vwadd_vx(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16m2)))
-vint16m2_t vwadd_vx(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16m2_m)))
-vint16m2_t vwadd_vx(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16m4)))
-vint16m4_t vwadd_vx(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16m4_m)))
-vint16m4_t vwadd_vx(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16m8)))
-vint16m8_t vwadd_vx(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16m8_m)))
-vint16m8_t vwadd_vx(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i32mf2)))
-vint32mf2_t vwadd_vx(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i32mf2_m)))
-vint32mf2_t vwadd_vx(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i32m1)))
-vint32m1_t vwadd_vx(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i32m1_m)))
-vint32m1_t vwadd_vx(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i32m2)))
-vint32m2_t vwadd_vx(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i32m2_m)))
-vint32m2_t vwadd_vx(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i32m4)))
-vint32m4_t vwadd_vx(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i32m4_m)))
-vint32m4_t vwadd_vx(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i32m8)))
-vint32m8_t vwadd_vx(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i32m8_m)))
-vint32m8_t vwadd_vx(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i64m1)))
-vint64m1_t vwadd_vx(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i64m1_m)))
-vint64m1_t vwadd_vx(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i64m2)))
-vint64m2_t vwadd_vx(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i64m2_m)))
-vint64m2_t vwadd_vx(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i64m4)))
-vint64m4_t vwadd_vx(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i64m4_m)))
-vint64m4_t vwadd_vx(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i64m8)))
-vint64m8_t vwadd_vx(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i64m8_m)))
-vint64m8_t vwadd_vx(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i8m1)))
-void vsuxei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i8m1_m)))
-void vsuxei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i8mf2)))
-void vsuxei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i8mf2_m)))
-void vsuxei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i8mf4)))
-void vsuxei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i8mf4_m)))
-void vsuxei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i8mf8)))
-void vsuxei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i8mf8_m)))
-void vsuxei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16mf4)))
-vint16mf4_t vwsub_vv(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16mf4_m)))
-vint16mf4_t vwsub_vv(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16mf2)))
-vint16mf2_t vwsub_vv(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16mf2_m)))
-vint16mf2_t vwsub_vv(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16m1)))
-vint16m1_t vwsub_vv(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16m1_m)))
-vint16m1_t vwsub_vv(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16m2)))
-vint16m2_t vwsub_vv(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16m2_m)))
-vint16m2_t vwsub_vv(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16m4)))
-vint16m4_t vwsub_vv(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16m4_m)))
-vint16m4_t vwsub_vv(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16m8)))
-vint16m8_t vwsub_vv(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16m8_m)))
-vint16m8_t vwsub_vv(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i32mf2)))
-vint32mf2_t vwsub_vv(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i32mf2_m)))
-vint32mf2_t vwsub_vv(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i32m1)))
-vint32m1_t vwsub_vv(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i32m1_m)))
-vint32m1_t vwsub_vv(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i32m2)))
-vint32m2_t vwsub_vv(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i32m2_m)))
-vint32m2_t vwsub_vv(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i32m4)))
-vint32m4_t vwsub_vv(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i32m4_m)))
-vint32m4_t vwsub_vv(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i32m8)))
-vint32m8_t vwsub_vv(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i32m8_m)))
-vint32m8_t vwsub_vv(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i64m1)))
-vint64m1_t vwsub_vv(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i64m1_m)))
-vint64m1_t vwsub_vv(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i64m2)))
-vint64m2_t vwsub_vv(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i64m2_m)))
-vint64m2_t vwsub_vv(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i64m4)))
-vint64m4_t vwsub_vv(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i64m4_m)))
-vint64m4_t vwsub_vv(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i64m8)))
-vint64m8_t vwsub_vv(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i64m8_m)))
-vint64m8_t vwsub_vv(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16mf4)))
-vint16mf4_t vwsub_vx(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16mf4_m)))
-vint16mf4_t vwsub_vx(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16mf2)))
-vint16mf2_t vwsub_vx(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16mf2_m)))
-vint16mf2_t vwsub_vx(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16m1)))
-vint16m1_t vwsub_vx(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16m1_m)))
-vint16m1_t vwsub_vx(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16m2)))
-vint16m2_t vwsub_vx(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16m2_m)))
-vint16m2_t vwsub_vx(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16m4)))
-vint16m4_t vwsub_vx(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16m4_m)))
-vint16m4_t vwsub_vx(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16m8)))
-vint16m8_t vwsub_vx(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16m8_m)))
-vint16m8_t vwsub_vx(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i32mf2)))
-vint32mf2_t vwsub_vx(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i32mf2_m)))
-vint32mf2_t vwsub_vx(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i32m1)))
-vint32m1_t vwsub_vx(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i32m1_m)))
-vint32m1_t vwsub_vx(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i32m2)))
-vint32m2_t vwsub_vx(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i32m2_m)))
-vint32m2_t vwsub_vx(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i32m4)))
-vint32m4_t vwsub_vx(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i32m4_m)))
-vint32m4_t vwsub_vx(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i32m8)))
-vint32m8_t vwsub_vx(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i32m8_m)))
-vint32m8_t vwsub_vx(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i64m1)))
-vint64m1_t vwsub_vx(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i64m1_m)))
-vint64m1_t vwsub_vx(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i64m2)))
-vint64m2_t vwsub_vx(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i64m2_m)))
-vint64m2_t vwsub_vx(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i64m4)))
-vint64m4_t vwsub_vx(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i64m4_m)))
-vint64m4_t vwsub_vx(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i64m8)))
-vint64m8_t vwsub_vx(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i64m8_m)))
-vint64m8_t vwsub_vx(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16mf4)))
-vuint16mf4_t vwaddu_wx(vuint16mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16mf4_m)))
-vuint16mf4_t vwaddu_wx(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16mf2)))
-vuint16mf2_t vwaddu_wx(vuint16mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16mf2_m)))
-vuint16mf2_t vwaddu_wx(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16m1)))
-vuint16m1_t vwaddu_wx(vuint16m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16m1_m)))
-vuint16m1_t vwaddu_wx(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16m2)))
-vuint16m2_t vwaddu_wx(vuint16m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16m2_m)))
-vuint16m2_t vwaddu_wx(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16m4)))
-vuint16m4_t vwaddu_wx(vuint16m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16m4_m)))
-vuint16m4_t vwaddu_wx(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16m8)))
-vuint16m8_t vwaddu_wx(vuint16m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16m8_m)))
-vuint16m8_t vwaddu_wx(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u32mf2)))
-vuint32mf2_t vwaddu_wx(vuint32mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u32mf2_m)))
-vuint32mf2_t vwaddu_wx(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u32m1)))
-vuint32m1_t vwaddu_wx(vuint32m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u32m1_m)))
-vuint32m1_t vwaddu_wx(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u32m2)))
-vuint32m2_t vwaddu_wx(vuint32m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u32m2_m)))
-vuint32m2_t vwaddu_wx(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u32m4)))
-vuint32m4_t vwaddu_wx(vuint32m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u32m4_m)))
-vuint32m4_t vwaddu_wx(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u32m8)))
-vuint32m8_t vwaddu_wx(vuint32m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u32m8_m)))
-vuint32m8_t vwaddu_wx(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u64m1)))
-vuint64m1_t vwaddu_wx(vuint64m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u64m1_m)))
-vuint64m1_t vwaddu_wx(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u64m2)))
-vuint64m2_t vwaddu_wx(vuint64m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u64m2_m)))
-vuint64m2_t vwaddu_wx(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u64m4)))
-vuint64m4_t vwaddu_wx(vuint64m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u64m4_m)))
-vuint64m4_t vwaddu_wx(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u64m8)))
-vuint64m8_t vwaddu_wx(vuint64m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u64m8_m)))
-vuint64m8_t vwaddu_wx(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16mf4)))
-vuint16mf4_t vwsubu_wv(vuint16mf4_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16mf4_m)))
-vuint16mf4_t vwsubu_wv(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16mf2)))
-vuint16mf2_t vwsubu_wv(vuint16mf2_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16mf2_m)))
-vuint16mf2_t vwsubu_wv(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16m1)))
-vuint16m1_t vwsubu_wv(vuint16m1_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16m1_m)))
-vuint16m1_t vwsubu_wv(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16m2)))
-vuint16m2_t vwsubu_wv(vuint16m2_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16m2_m)))
-vuint16m2_t vwsubu_wv(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16m4)))
-vuint16m4_t vwsubu_wv(vuint16m4_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16m4_m)))
-vuint16m4_t vwsubu_wv(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16m8)))
-vuint16m8_t vwsubu_wv(vuint16m8_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16m8_m)))
-vuint16m8_t vwsubu_wv(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u32mf2)))
-vuint32mf2_t vwsubu_wv(vuint32mf2_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u32mf2_m)))
-vuint32mf2_t vwsubu_wv(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u32m1)))
-vuint32m1_t vwsubu_wv(vuint32m1_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u32m1_m)))
-vuint32m1_t vwsubu_wv(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u32m2)))
-vuint32m2_t vwsubu_wv(vuint32m2_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u32m2_m)))
-vuint32m2_t vwsubu_wv(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u32m4)))
-vuint32m4_t vwsubu_wv(vuint32m4_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u32m4_m)))
-vuint32m4_t vwsubu_wv(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u32m8)))
-vuint32m8_t vwsubu_wv(vuint32m8_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u32m8_m)))
-vuint32m8_t vwsubu_wv(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u64m1)))
-vuint64m1_t vwsubu_wv(vuint64m1_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u64m1_m)))
-vuint64m1_t vwsubu_wv(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u64m2)))
-vuint64m2_t vwsubu_wv(vuint64m2_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u64m2_m)))
-vuint64m2_t vwsubu_wv(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u64m4)))
-vuint64m4_t vwsubu_wv(vuint64m4_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u64m4_m)))
-vuint64m4_t vwsubu_wv(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u64m8)))
-vuint64m8_t vwsubu_wv(vuint64m8_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u64m8_m)))
-vuint64m8_t vwsubu_wv(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16mf4)))
-vuint16mf4_t vwsubu_wx(vuint16mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16mf4_m)))
-vuint16mf4_t vwsubu_wx(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16mf2)))
-vuint16mf2_t vwsubu_wx(vuint16mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16mf2_m)))
-vuint16mf2_t vwsubu_wx(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16m1)))
-vuint16m1_t vwsubu_wx(vuint16m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16m1_m)))
-vuint16m1_t vwsubu_wx(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16m2)))
-vuint16m2_t vwsubu_wx(vuint16m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16m2_m)))
-vuint16m2_t vwsubu_wx(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16m4)))
-vuint16m4_t vwsubu_wx(vuint16m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16m4_m)))
-vuint16m4_t vwsubu_wx(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16m8)))
-vuint16m8_t vwsubu_wx(vuint16m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16m8_m)))
-vuint16m8_t vwsubu_wx(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u32mf2)))
-vuint32mf2_t vwsubu_wx(vuint32mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u32mf2_m)))
-vuint32mf2_t vwsubu_wx(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u32m1)))
-vuint32m1_t vwsubu_wx(vuint32m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u32m1_m)))
-vuint32m1_t vwsubu_wx(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u32m2)))
-vuint32m2_t vwsubu_wx(vuint32m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u32m2_m)))
-vuint32m2_t vwsubu_wx(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u32m4)))
-vuint32m4_t vwsubu_wx(vuint32m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u32m4_m)))
-vuint32m4_t vwsubu_wx(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u32m8)))
-vuint32m8_t vwsubu_wx(vuint32m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u32m8_m)))
-vuint32m8_t vwsubu_wx(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u64m1)))
-vuint64m1_t vwsubu_wx(vuint64m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u64m1_m)))
-vuint64m1_t vwsubu_wx(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u64m2)))
-vuint64m2_t vwsubu_wx(vuint64m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u64m2_m)))
-vuint64m2_t vwsubu_wx(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u64m4)))
-vuint64m4_t vwsubu_wx(vuint64m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u64m4_m)))
-vuint64m4_t vwsubu_wx(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u64m8)))
-vuint64m8_t vwsubu_wx(vuint64m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u64m8_m)))
-vuint64m8_t vwsubu_wx(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16mf4)))
-vint16mf4_t vwadd_wv(vint16mf4_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16mf4_m)))
-vint16mf4_t vwadd_wv(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16mf2)))
-vint16mf2_t vwadd_wv(vint16mf2_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16mf2_m)))
-vint16mf2_t vwadd_wv(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16m1)))
-vint16m1_t vwadd_wv(vint16m1_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16m1_m)))
-vint16m1_t vwadd_wv(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16m2)))
-vint16m2_t vwadd_wv(vint16m2_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16m2_m)))
-vint16m2_t vwadd_wv(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16m4)))
-vint16m4_t vwadd_wv(vint16m4_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16m4_m)))
-vint16m4_t vwadd_wv(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16m8)))
-vint16m8_t vwadd_wv(vint16m8_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16m8_m)))
-vint16m8_t vwadd_wv(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i32mf2)))
-vint32mf2_t vwadd_wv(vint32mf2_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i32mf2_m)))
-vint32mf2_t vwadd_wv(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i32m1)))
-vint32m1_t vwadd_wv(vint32m1_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i32m1_m)))
-vint32m1_t vwadd_wv(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i32m2)))
-vint32m2_t vwadd_wv(vint32m2_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i32m2_m)))
-vint32m2_t vwadd_wv(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i32m4)))
-vint32m4_t vwadd_wv(vint32m4_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i32m4_m)))
-vint32m4_t vwadd_wv(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i32m8)))
-vint32m8_t vwadd_wv(vint32m8_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i32m8_m)))
-vint32m8_t vwadd_wv(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i64m1)))
-vint64m1_t vwadd_wv(vint64m1_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i64m1_m)))
-vint64m1_t vwadd_wv(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i64m2)))
-vint64m2_t vwadd_wv(vint64m2_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i64m2_m)))
-vint64m2_t vwadd_wv(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i64m4)))
-vint64m4_t vwadd_wv(vint64m4_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i64m4_m)))
-vint64m4_t vwadd_wv(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i64m8)))
-vint64m8_t vwadd_wv(vint64m8_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i64m8_m)))
-vint64m8_t vwadd_wv(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16mf4)))
-vint16mf4_t vwadd_wx(vint16mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16mf4_m)))
-vint16mf4_t vwadd_wx(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16mf2)))
-vint16mf2_t vwadd_wx(vint16mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16mf2_m)))
-vint16mf2_t vwadd_wx(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16m1)))
-vint16m1_t vwadd_wx(vint16m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16m1_m)))
-vint16m1_t vwadd_wx(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16m2)))
-vint16m2_t vwadd_wx(vint16m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16m2_m)))
-vint16m2_t vwadd_wx(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16m4)))
-vint16m4_t vwadd_wx(vint16m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16m4_m)))
-vint16m4_t vwadd_wx(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16m8)))
-vint16m8_t vwadd_wx(vint16m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16m8_m)))
-vint16m8_t vwadd_wx(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i32mf2)))
-vint32mf2_t vwadd_wx(vint32mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i32mf2_m)))
-vint32mf2_t vwadd_wx(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i32m1)))
-vint32m1_t vwadd_wx(vint32m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i32m1_m)))
-vint32m1_t vwadd_wx(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i32m2)))
-vint32m2_t vwadd_wx(vint32m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i32m2_m)))
-vint32m2_t vwadd_wx(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i32m4)))
-vint32m4_t vwadd_wx(vint32m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i32m4_m)))
-vint32m4_t vwadd_wx(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i32m8)))
-vint32m8_t vwadd_wx(vint32m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i32m8_m)))
-vint32m8_t vwadd_wx(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i64m1)))
-vint64m1_t vwadd_wx(vint64m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i64m1_m)))
-vint64m1_t vwadd_wx(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i64m2)))
-vint64m2_t vwadd_wx(vint64m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i64m2_m)))
-vint64m2_t vwadd_wx(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i64m4)))
-vint64m4_t vwadd_wx(vint64m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i64m4_m)))
-vint64m4_t vwadd_wx(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i64m8)))
-vint64m8_t vwadd_wx(vint64m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i64m8_m)))
-vint64m8_t vwadd_wx(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16mf4)))
-vint16mf4_t vwsub_wv(vint16mf4_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16mf4_m)))
-vint16mf4_t vwsub_wv(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16mf2)))
-vint16mf2_t vwsub_wv(vint16mf2_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16mf2_m)))
-vint16mf2_t vwsub_wv(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16m1)))
-vint16m1_t vwsub_wv(vint16m1_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16m1_m)))
-vint16m1_t vwsub_wv(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16m2)))
-vint16m2_t vwsub_wv(vint16m2_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16m2_m)))
-vint16m2_t vwsub_wv(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16m4)))
-vint16m4_t vwsub_wv(vint16m4_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16m4_m)))
-vint16m4_t vwsub_wv(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16m8)))
-vint16m8_t vwsub_wv(vint16m8_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16m8_m)))
-vint16m8_t vwsub_wv(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i32mf2)))
-vint32mf2_t vwsub_wv(vint32mf2_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i32mf2_m)))
-vint32mf2_t vwsub_wv(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i32m1)))
-vint32m1_t vwsub_wv(vint32m1_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i32m1_m)))
-vint32m1_t vwsub_wv(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i32m2)))
-vint32m2_t vwsub_wv(vint32m2_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i32m2_m)))
-vint32m2_t vwsub_wv(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i32m4)))
-vint32m4_t vwsub_wv(vint32m4_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i32m4_m)))
-vint32m4_t vwsub_wv(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i32m8)))
-vint32m8_t vwsub_wv(vint32m8_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i32m8_m)))
-vint32m8_t vwsub_wv(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i64m1)))
-vint64m1_t vwsub_wv(vint64m1_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i64m1_m)))
-vint64m1_t vwsub_wv(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i64m2)))
-vint64m2_t vwsub_wv(vint64m2_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i64m2_m)))
-vint64m2_t vwsub_wv(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i64m4)))
-vint64m4_t vwsub_wv(vint64m4_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i64m4_m)))
-vint64m4_t vwsub_wv(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i64m8)))
-vint64m8_t vwsub_wv(vint64m8_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i64m8_m)))
-vint64m8_t vwsub_wv(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16mf4)))
-vint16mf4_t vwsub_wx(vint16mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16mf4_m)))
-vint16mf4_t vwsub_wx(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16mf2)))
-vint16mf2_t vwsub_wx(vint16mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16mf2_m)))
-vint16mf2_t vwsub_wx(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16m1)))
-vint16m1_t vwsub_wx(vint16m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16m1_m)))
-vint16m1_t vwsub_wx(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16m2)))
-vint16m2_t vwsub_wx(vint16m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16m2_m)))
-vint16m2_t vwsub_wx(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16m4)))
-vint16m4_t vwsub_wx(vint16m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16m4_m)))
-vint16m4_t vwsub_wx(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16m8)))
-vint16m8_t vwsub_wx(vint16m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16m8_m)))
-vint16m8_t vwsub_wx(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i32mf2)))
-vint32mf2_t vwsub_wx(vint32mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i32mf2_m)))
-vint32mf2_t vwsub_wx(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i32m1)))
-vint32m1_t vwsub_wx(vint32m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i32m1_m)))
-vint32m1_t vwsub_wx(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i32m2)))
-vint32m2_t vwsub_wx(vint32m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i32m2_m)))
-vint32m2_t vwsub_wx(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i32m4)))
-vint32m4_t vwsub_wx(vint32m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i32m4_m)))
-vint32m4_t vwsub_wx(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i32m8)))
-vint32m8_t vwsub_wx(vint32m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i32m8_m)))
-vint32m8_t vwsub_wx(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i64m1)))
-vint64m1_t vwsub_wx(vint64m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i64m1_m)))
-vint64m1_t vwsub_wx(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i64m2)))
-vint64m2_t vwsub_wx(vint64m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i64m2_m)))
-vint64m2_t vwsub_wx(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i64m4)))
-vint64m4_t vwsub_wx(vint64m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i64m4_m)))
-vint64m4_t vwsub_wx(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i64m8)))
-vint64m8_t vwsub_wx(vint64m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i64m8_m)))
-vint64m8_t vwsub_wx(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16m2)))
-vint16m2_t vwcvt_x(vint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16m2_m)))
-vint16m2_t vwcvt_x(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16m4)))
-vint16m4_t vwcvt_x(vint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16m4_m)))
-vint16m4_t vwcvt_x(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16m8)))
-vint16m8_t vwcvt_x(vint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16m8_m)))
-vint16m8_t vwcvt_x(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16m1)))
-vint16m1_t vwcvt_x(vint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16m1_m)))
-vint16m1_t vwcvt_x(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16mf2)))
-vint16mf2_t vwcvt_x(vint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16mf2_m)))
-vint16mf2_t vwcvt_x(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16mf4)))
-vint16mf4_t vwcvt_x(vint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16mf4_m)))
-vint16mf4_t vwcvt_x(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i32m2)))
-vint32m2_t vwcvt_x(vint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i32m2_m)))
-vint32m2_t vwcvt_x(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i32m4)))
-vint32m4_t vwcvt_x(vint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i32m4_m)))
-vint32m4_t vwcvt_x(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i32m8)))
-vint32m8_t vwcvt_x(vint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i32m8_m)))
-vint32m8_t vwcvt_x(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i32m1)))
-vint32m1_t vwcvt_x(vint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i32m1_m)))
-vint32m1_t vwcvt_x(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i32mf2)))
-vint32mf2_t vwcvt_x(vint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i32mf2_m)))
-vint32mf2_t vwcvt_x(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i64m2)))
-vint64m2_t vwcvt_x(vint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i64m2_m)))
-vint64m2_t vwcvt_x(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i64m4)))
-vint64m4_t vwcvt_x(vint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i64m4_m)))
-vint64m4_t vwcvt_x(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i64m8)))
-vint64m8_t vwcvt_x(vint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i64m8_m)))
-vint64m8_t vwcvt_x(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i64m1)))
-vint64m1_t vwcvt_x(vint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i64m1_m)))
-vint64m1_t vwcvt_x(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u8m1)))
-void vsuxei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u8m1_m)))
-void vsuxei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u8mf2)))
-void vsuxei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u8mf2_m)))
-void vsuxei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u8mf4)))
-void vsuxei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u8mf4_m)))
-void vsuxei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u8mf8)))
-void vsuxei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u8mf8_m)))
-void vsuxei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i8m1)))
-vint8m1_t vadc(vint8m1_t op0, vint8m1_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i8m2)))
-vint8m2_t vadc(vint8m2_t op0, vint8m2_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i8m4)))
-vint8m4_t vadc(vint8m4_t op0, vint8m4_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i8m8)))
-vint8m8_t vadc(vint8m8_t op0, vint8m8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i8mf2)))
-vint8mf2_t vadc(vint8mf2_t op0, vint8mf2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i8mf4)))
-vint8mf4_t vadc(vint8mf4_t op0, vint8mf4_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i8mf8)))
-vint8mf8_t vadc(vint8mf8_t op0, vint8mf8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i16m1)))
-vint16m1_t vadc(vint16m1_t op0, vint16m1_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i16m2)))
-vint16m2_t vadc(vint16m2_t op0, vint16m2_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i16m4)))
-vint16m4_t vadc(vint16m4_t op0, vint16m4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i16m8)))
-vint16m8_t vadc(vint16m8_t op0, vint16m8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i16mf2)))
-vint16mf2_t vadc(vint16mf2_t op0, vint16mf2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i16mf4)))
-vint16mf4_t vadc(vint16mf4_t op0, vint16mf4_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i32m1)))
-vint32m1_t vadc(vint32m1_t op0, vint32m1_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i32m2)))
-vint32m2_t vadc(vint32m2_t op0, vint32m2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i32m4)))
-vint32m4_t vadc(vint32m4_t op0, vint32m4_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i32m8)))
-vint32m8_t vadc(vint32m8_t op0, vint32m8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i32mf2)))
-vint32mf2_t vadc(vint32mf2_t op0, vint32mf2_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i64m1)))
-vint64m1_t vadc(vint64m1_t op0, vint64m1_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i64m2)))
-vint64m2_t vadc(vint64m2_t op0, vint64m2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i64m4)))
-vint64m4_t vadc(vint64m4_t op0, vint64m4_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i64m8)))
-vint64m8_t vadc(vint64m8_t op0, vint64m8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i8m1)))
-vint8m1_t vadc(vint8m1_t op0, int8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i8m2)))
-vint8m2_t vadc(vint8m2_t op0, int8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i8m4)))
-vint8m4_t vadc(vint8m4_t op0, int8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i8m8)))
-vint8m8_t vadc(vint8m8_t op0, int8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i8mf2)))
-vint8mf2_t vadc(vint8mf2_t op0, int8_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i8mf4)))
-vint8mf4_t vadc(vint8mf4_t op0, int8_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i8mf8)))
-vint8mf8_t vadc(vint8mf8_t op0, int8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i16m1)))
-vint16m1_t vadc(vint16m1_t op0, int16_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i16m2)))
-vint16m2_t vadc(vint16m2_t op0, int16_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i16m4)))
-vint16m4_t vadc(vint16m4_t op0, int16_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i16m8)))
-vint16m8_t vadc(vint16m8_t op0, int16_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i16mf2)))
-vint16mf2_t vadc(vint16mf2_t op0, int16_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i16mf4)))
-vint16mf4_t vadc(vint16mf4_t op0, int16_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i32m1)))
-vint32m1_t vadc(vint32m1_t op0, int32_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i32m2)))
-vint32m2_t vadc(vint32m2_t op0, int32_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i32m4)))
-vint32m4_t vadc(vint32m4_t op0, int32_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i32m8)))
-vint32m8_t vadc(vint32m8_t op0, int32_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i32mf2)))
-vint32mf2_t vadc(vint32mf2_t op0, int32_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i64m1)))
-vint64m1_t vadc(vint64m1_t op0, int64_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i64m2)))
-vint64m2_t vadc(vint64m2_t op0, int64_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i64m4)))
-vint64m4_t vadc(vint64m4_t op0, int64_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i64m8)))
-vint64m8_t vadc(vint64m8_t op0, int64_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u8m1)))
-vuint8m1_t vadc(vuint8m1_t op0, vuint8m1_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u8m2)))
-vuint8m2_t vadc(vuint8m2_t op0, vuint8m2_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u8m4)))
-vuint8m4_t vadc(vuint8m4_t op0, vuint8m4_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u8m8)))
-vuint8m8_t vadc(vuint8m8_t op0, vuint8m8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u8mf2)))
-vuint8mf2_t vadc(vuint8mf2_t op0, vuint8mf2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u8mf4)))
-vuint8mf4_t vadc(vuint8mf4_t op0, vuint8mf4_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u8mf8)))
-vuint8mf8_t vadc(vuint8mf8_t op0, vuint8mf8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u16m1)))
-vuint16m1_t vadc(vuint16m1_t op0, vuint16m1_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u16m2)))
-vuint16m2_t vadc(vuint16m2_t op0, vuint16m2_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u16m4)))
-vuint16m4_t vadc(vuint16m4_t op0, vuint16m4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u16m8)))
-vuint16m8_t vadc(vuint16m8_t op0, vuint16m8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u16mf2)))
-vuint16mf2_t vadc(vuint16mf2_t op0, vuint16mf2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u16mf4)))
-vuint16mf4_t vadc(vuint16mf4_t op0, vuint16mf4_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u32m1)))
-vuint32m1_t vadc(vuint32m1_t op0, vuint32m1_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u32m2)))
-vuint32m2_t vadc(vuint32m2_t op0, vuint32m2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u32m4)))
-vuint32m4_t vadc(vuint32m4_t op0, vuint32m4_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u32m8)))
-vuint32m8_t vadc(vuint32m8_t op0, vuint32m8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u32mf2)))
-vuint32mf2_t vadc(vuint32mf2_t op0, vuint32mf2_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u64m1)))
-vuint64m1_t vadc(vuint64m1_t op0, vuint64m1_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u64m2)))
-vuint64m2_t vadc(vuint64m2_t op0, vuint64m2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u64m4)))
-vuint64m4_t vadc(vuint64m4_t op0, vuint64m4_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u64m8)))
-vuint64m8_t vadc(vuint64m8_t op0, vuint64m8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u8m1)))
-vuint8m1_t vadc(vuint8m1_t op0, uint8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u8m2)))
-vuint8m2_t vadc(vuint8m2_t op0, uint8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u8m4)))
-vuint8m4_t vadc(vuint8m4_t op0, uint8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u8m8)))
-vuint8m8_t vadc(vuint8m8_t op0, uint8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u8mf2)))
-vuint8mf2_t vadc(vuint8mf2_t op0, uint8_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u8mf4)))
-vuint8mf4_t vadc(vuint8mf4_t op0, uint8_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u8mf8)))
-vuint8mf8_t vadc(vuint8mf8_t op0, uint8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u16m1)))
-vuint16m1_t vadc(vuint16m1_t op0, uint16_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u16m2)))
-vuint16m2_t vadc(vuint16m2_t op0, uint16_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u16m4)))
-vuint16m4_t vadc(vuint16m4_t op0, uint16_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u16m8)))
-vuint16m8_t vadc(vuint16m8_t op0, uint16_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u16mf2)))
-vuint16mf2_t vadc(vuint16mf2_t op0, uint16_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u16mf4)))
-vuint16mf4_t vadc(vuint16mf4_t op0, uint16_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u32m1)))
-vuint32m1_t vadc(vuint32m1_t op0, uint32_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u32m2)))
-vuint32m2_t vadc(vuint32m2_t op0, uint32_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u32m4)))
-vuint32m4_t vadc(vuint32m4_t op0, uint32_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u32m8)))
-vuint32m8_t vadc(vuint32m8_t op0, uint32_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u32mf2)))
-vuint32mf2_t vadc(vuint32mf2_t op0, uint32_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u64m1)))
-vuint64m1_t vadc(vuint64m1_t op0, uint64_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u64m2)))
-vuint64m2_t vadc(vuint64m2_t op0, uint64_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u64m4)))
-vuint64m4_t vadc(vuint64m4_t op0, uint64_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u64m8)))
-vuint64m8_t vadc(vuint64m8_t op0, uint64_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i8m1_b8)))
-vbool8_t vmadc(vint8m1_t op0, vint8m1_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i8m2_b4)))
-vbool4_t vmadc(vint8m2_t op0, vint8m2_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i8m4_b2)))
-vbool2_t vmadc(vint8m4_t op0, vint8m4_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i8m8_b1)))
-vbool1_t vmadc(vint8m8_t op0, vint8m8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i8mf2_b16)))
-vbool16_t vmadc(vint8mf2_t op0, vint8mf2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i8mf4_b32)))
-vbool32_t vmadc(vint8mf4_t op0, vint8mf4_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i8mf8_b64)))
-vbool64_t vmadc(vint8mf8_t op0, vint8mf8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i16m1_b16)))
-vbool16_t vmadc(vint16m1_t op0, vint16m1_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i16m2_b8)))
-vbool8_t vmadc(vint16m2_t op0, vint16m2_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i16m4_b4)))
-vbool4_t vmadc(vint16m4_t op0, vint16m4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i16m8_b2)))
-vbool2_t vmadc(vint16m8_t op0, vint16m8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i16mf2_b32)))
-vbool32_t vmadc(vint16mf2_t op0, vint16mf2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i16mf4_b64)))
-vbool64_t vmadc(vint16mf4_t op0, vint16mf4_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i32m1_b32)))
-vbool32_t vmadc(vint32m1_t op0, vint32m1_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i32m2_b16)))
-vbool16_t vmadc(vint32m2_t op0, vint32m2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i32m4_b8)))
-vbool8_t vmadc(vint32m4_t op0, vint32m4_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i32m8_b4)))
-vbool4_t vmadc(vint32m8_t op0, vint32m8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i32mf2_b64)))
-vbool64_t vmadc(vint32mf2_t op0, vint32mf2_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i64m1_b64)))
-vbool64_t vmadc(vint64m1_t op0, vint64m1_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i64m2_b32)))
-vbool32_t vmadc(vint64m2_t op0, vint64m2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i64m4_b16)))
-vbool16_t vmadc(vint64m4_t op0, vint64m4_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i64m8_b8)))
-vbool8_t vmadc(vint64m8_t op0, vint64m8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i8m1_b8)))
-vbool8_t vmadc(vint8m1_t op0, int8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i8m2_b4)))
-vbool4_t vmadc(vint8m2_t op0, int8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i8m4_b2)))
-vbool2_t vmadc(vint8m4_t op0, int8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i8m8_b1)))
-vbool1_t vmadc(vint8m8_t op0, int8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i8mf2_b16)))
-vbool16_t vmadc(vint8mf2_t op0, int8_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i8mf4_b32)))
-vbool32_t vmadc(vint8mf4_t op0, int8_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i8mf8_b64)))
-vbool64_t vmadc(vint8mf8_t op0, int8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i16m1_b16)))
-vbool16_t vmadc(vint16m1_t op0, int16_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i16m2_b8)))
-vbool8_t vmadc(vint16m2_t op0, int16_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i16m4_b4)))
-vbool4_t vmadc(vint16m4_t op0, int16_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i16m8_b2)))
-vbool2_t vmadc(vint16m8_t op0, int16_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i16mf2_b32)))
-vbool32_t vmadc(vint16mf2_t op0, int16_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i16mf4_b64)))
-vbool64_t vmadc(vint16mf4_t op0, int16_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i32m1_b32)))
-vbool32_t vmadc(vint32m1_t op0, int32_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i32m2_b16)))
-vbool16_t vmadc(vint32m2_t op0, int32_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i32m4_b8)))
-vbool8_t vmadc(vint32m4_t op0, int32_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i32m8_b4)))
-vbool4_t vmadc(vint32m8_t op0, int32_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i32mf2_b64)))
-vbool64_t vmadc(vint32mf2_t op0, int32_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i64m1_b64)))
-vbool64_t vmadc(vint64m1_t op0, int64_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i64m2_b32)))
-vbool32_t vmadc(vint64m2_t op0, int64_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i64m4_b16)))
-vbool16_t vmadc(vint64m4_t op0, int64_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i64m8_b8)))
-vbool8_t vmadc(vint64m8_t op0, int64_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u8m1_b8)))
-vbool8_t vmadc(vuint8m1_t op0, vuint8m1_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u8m2_b4)))
-vbool4_t vmadc(vuint8m2_t op0, vuint8m2_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u8m4_b2)))
-vbool2_t vmadc(vuint8m4_t op0, vuint8m4_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u8m8_b1)))
-vbool1_t vmadc(vuint8m8_t op0, vuint8m8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u8mf2_b16)))
-vbool16_t vmadc(vuint8mf2_t op0, vuint8mf2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u8mf4_b32)))
-vbool32_t vmadc(vuint8mf4_t op0, vuint8mf4_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u8mf8_b64)))
-vbool64_t vmadc(vuint8mf8_t op0, vuint8mf8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u16m1_b16)))
-vbool16_t vmadc(vuint16m1_t op0, vuint16m1_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u16m2_b8)))
-vbool8_t vmadc(vuint16m2_t op0, vuint16m2_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u16m4_b4)))
-vbool4_t vmadc(vuint16m4_t op0, vuint16m4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u16m8_b2)))
-vbool2_t vmadc(vuint16m8_t op0, vuint16m8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u16mf2_b32)))
-vbool32_t vmadc(vuint16mf2_t op0, vuint16mf2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u16mf4_b64)))
-vbool64_t vmadc(vuint16mf4_t op0, vuint16mf4_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u32m1_b32)))
-vbool32_t vmadc(vuint32m1_t op0, vuint32m1_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u32m2_b16)))
-vbool16_t vmadc(vuint32m2_t op0, vuint32m2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u32m4_b8)))
-vbool8_t vmadc(vuint32m4_t op0, vuint32m4_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u32m8_b4)))
-vbool4_t vmadc(vuint32m8_t op0, vuint32m8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u32mf2_b64)))
-vbool64_t vmadc(vuint32mf2_t op0, vuint32mf2_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u64m1_b64)))
-vbool64_t vmadc(vuint64m1_t op0, vuint64m1_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u64m2_b32)))
-vbool32_t vmadc(vuint64m2_t op0, vuint64m2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u64m4_b16)))
-vbool16_t vmadc(vuint64m4_t op0, vuint64m4_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u64m8_b8)))
-vbool8_t vmadc(vuint64m8_t op0, vuint64m8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u8m1_b8)))
-vbool8_t vmadc(vuint8m1_t op0, uint8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u8m2_b4)))
-vbool4_t vmadc(vuint8m2_t op0, uint8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u8m4_b2)))
-vbool2_t vmadc(vuint8m4_t op0, uint8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u8m8_b1)))
-vbool1_t vmadc(vuint8m8_t op0, uint8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u8mf2_b16)))
-vbool16_t vmadc(vuint8mf2_t op0, uint8_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u8mf4_b32)))
-vbool32_t vmadc(vuint8mf4_t op0, uint8_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u8mf8_b64)))
-vbool64_t vmadc(vuint8mf8_t op0, uint8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u16m1_b16)))
-vbool16_t vmadc(vuint16m1_t op0, uint16_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u16m2_b8)))
-vbool8_t vmadc(vuint16m2_t op0, uint16_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u16m4_b4)))
-vbool4_t vmadc(vuint16m4_t op0, uint16_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u16m8_b2)))
-vbool2_t vmadc(vuint16m8_t op0, uint16_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u16mf2_b32)))
-vbool32_t vmadc(vuint16mf2_t op0, uint16_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u16mf4_b64)))
-vbool64_t vmadc(vuint16mf4_t op0, uint16_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u32m1_b32)))
-vbool32_t vmadc(vuint32m1_t op0, uint32_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u32m2_b16)))
-vbool16_t vmadc(vuint32m2_t op0, uint32_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u32m4_b8)))
-vbool8_t vmadc(vuint32m4_t op0, uint32_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u32m8_b4)))
-vbool4_t vmadc(vuint32m8_t op0, uint32_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u32mf2_b64)))
-vbool64_t vmadc(vuint32mf2_t op0, uint32_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u64m1_b64)))
-vbool64_t vmadc(vuint64m1_t op0, uint64_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u64m2_b32)))
-vbool32_t vmadc(vuint64m2_t op0, uint64_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u64m4_b16)))
-vbool16_t vmadc(vuint64m4_t op0, uint64_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u64m8_b8)))
-vbool8_t vmadc(vuint64m8_t op0, uint64_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i8m1_b8)))
-vbool8_t vmadc(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i8m2_b4)))
-vbool4_t vmadc(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i8m4_b2)))
-vbool2_t vmadc(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i8m8_b1)))
-vbool1_t vmadc(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i8mf2_b16)))
-vbool16_t vmadc(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i8mf4_b32)))
-vbool32_t vmadc(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i8mf8_b64)))
-vbool64_t vmadc(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i16m1_b16)))
-vbool16_t vmadc(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i16m2_b8)))
-vbool8_t vmadc(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i16m4_b4)))
-vbool4_t vmadc(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i16m8_b2)))
-vbool2_t vmadc(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i16mf2_b32)))
-vbool32_t vmadc(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i16mf4_b64)))
-vbool64_t vmadc(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i32m1_b32)))
-vbool32_t vmadc(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i32m2_b16)))
-vbool16_t vmadc(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i32m4_b8)))
-vbool8_t vmadc(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i32m8_b4)))
-vbool4_t vmadc(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i32mf2_b64)))
-vbool64_t vmadc(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i64m1_b64)))
-vbool64_t vmadc(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i64m2_b32)))
-vbool32_t vmadc(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i64m4_b16)))
-vbool16_t vmadc(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i64m8_b8)))
-vbool8_t vmadc(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i8m1_b8)))
-vbool8_t vmadc(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i8m2_b4)))
-vbool4_t vmadc(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i8m4_b2)))
-vbool2_t vmadc(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i8m8_b1)))
-vbool1_t vmadc(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i8mf2_b16)))
-vbool16_t vmadc(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i8mf4_b32)))
-vbool32_t vmadc(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i8mf8_b64)))
-vbool64_t vmadc(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i16m1_b16)))
-vbool16_t vmadc(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i16m2_b8)))
-vbool8_t vmadc(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i16m4_b4)))
-vbool4_t vmadc(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i16m8_b2)))
-vbool2_t vmadc(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i16mf2_b32)))
-vbool32_t vmadc(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i16mf4_b64)))
-vbool64_t vmadc(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i32m1_b32)))
-vbool32_t vmadc(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i32m2_b16)))
-vbool16_t vmadc(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i32m4_b8)))
-vbool8_t vmadc(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i32m8_b4)))
-vbool4_t vmadc(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i32mf2_b64)))
-vbool64_t vmadc(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i64m1_b64)))
-vbool64_t vmadc(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i64m2_b32)))
-vbool32_t vmadc(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i64m4_b16)))
-vbool16_t vmadc(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i64m8_b8)))
-vbool8_t vmadc(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16m1)))
-void vsuxei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16m1_m)))
-void vsuxei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16m2)))
-void vsuxei8(int16_t * op0, vuint8m1_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16m2_m)))
-void vsuxei8(vbool8_t op0, int16_t * op1, vuint8m1_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16m4)))
-void vsuxei8(int16_t * op0, vuint8m2_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16m4_m)))
-void vsuxei8(vbool4_t op0, int16_t * op1, vuint8m2_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16m8)))
-void vsuxei8(int16_t * op0, vuint8m4_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16m8_m)))
-void vsuxei8(vbool2_t op0, int16_t * op1, vuint8m4_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16mf2)))
-void vsuxei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16mf2_m)))
-void vsuxei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16mf4)))
-void vsuxei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16mf4_m)))
-void vsuxei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u8m1_b8)))
-vbool8_t vmadc(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u8m2_b4)))
-vbool4_t vmadc(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u8m4_b2)))
-vbool2_t vmadc(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u8m8_b1)))
-vbool1_t vmadc(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u8mf2_b16)))
-vbool16_t vmadc(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u8mf4_b32)))
-vbool32_t vmadc(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u8mf8_b64)))
-vbool64_t vmadc(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u16m1_b16)))
-vbool16_t vmadc(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u16m2_b8)))
-vbool8_t vmadc(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u16m4_b4)))
-vbool4_t vmadc(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u16m8_b2)))
-vbool2_t vmadc(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u16mf2_b32)))
-vbool32_t vmadc(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u16mf4_b64)))
-vbool64_t vmadc(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u32m1_b32)))
-vbool32_t vmadc(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u32m2_b16)))
-vbool16_t vmadc(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u32m4_b8)))
-vbool8_t vmadc(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u32m8_b4)))
-vbool4_t vmadc(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u32mf2_b64)))
-vbool64_t vmadc(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u64m1_b64)))
-vbool64_t vmadc(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u64m2_b32)))
-vbool32_t vmadc(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u64m4_b16)))
-vbool16_t vmadc(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u64m8_b8)))
-vbool8_t vmadc(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u8m1_b8)))
-vbool8_t vmadc(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u8m2_b4)))
-vbool4_t vmadc(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u8m4_b2)))
-vbool2_t vmadc(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u8m8_b1)))
-vbool1_t vmadc(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u8mf2_b16)))
-vbool16_t vmadc(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u8mf4_b32)))
-vbool32_t vmadc(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u8mf8_b64)))
-vbool64_t vmadc(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u16m1_b16)))
-vbool16_t vmadc(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u16m2_b8)))
-vbool8_t vmadc(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u16m4_b4)))
-vbool4_t vmadc(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u16m8_b2)))
-vbool2_t vmadc(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u16mf2_b32)))
-vbool32_t vmadc(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u16mf4_b64)))
-vbool64_t vmadc(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u32m1_b32)))
-vbool32_t vmadc(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u32m2_b16)))
-vbool16_t vmadc(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u32m4_b8)))
-vbool8_t vmadc(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u32m8_b4)))
-vbool4_t vmadc(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u32mf2_b64)))
-vbool64_t vmadc(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u64m1_b64)))
-vbool64_t vmadc(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u64m2_b32)))
-vbool32_t vmadc(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u64m4_b16)))
-vbool16_t vmadc(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u64m8_b8)))
-vbool8_t vmadc(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i8m1)))
-vint8m1_t vsbc(vint8m1_t op0, vint8m1_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i8m2)))
-vint8m2_t vsbc(vint8m2_t op0, vint8m2_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i8m4)))
-vint8m4_t vsbc(vint8m4_t op0, vint8m4_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i8m8)))
-vint8m8_t vsbc(vint8m8_t op0, vint8m8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i8mf2)))
-vint8mf2_t vsbc(vint8mf2_t op0, vint8mf2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i8mf4)))
-vint8mf4_t vsbc(vint8mf4_t op0, vint8mf4_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i8mf8)))
-vint8mf8_t vsbc(vint8mf8_t op0, vint8mf8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i16m1)))
-vint16m1_t vsbc(vint16m1_t op0, vint16m1_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i16m2)))
-vint16m2_t vsbc(vint16m2_t op0, vint16m2_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i16m4)))
-vint16m4_t vsbc(vint16m4_t op0, vint16m4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i16m8)))
-vint16m8_t vsbc(vint16m8_t op0, vint16m8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i16mf2)))
-vint16mf2_t vsbc(vint16mf2_t op0, vint16mf2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i16mf4)))
-vint16mf4_t vsbc(vint16mf4_t op0, vint16mf4_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i32m1)))
-vint32m1_t vsbc(vint32m1_t op0, vint32m1_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i32m2)))
-vint32m2_t vsbc(vint32m2_t op0, vint32m2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i32m4)))
-vint32m4_t vsbc(vint32m4_t op0, vint32m4_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i32m8)))
-vint32m8_t vsbc(vint32m8_t op0, vint32m8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i32mf2)))
-vint32mf2_t vsbc(vint32mf2_t op0, vint32mf2_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i64m1)))
-vint64m1_t vsbc(vint64m1_t op0, vint64m1_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i64m2)))
-vint64m2_t vsbc(vint64m2_t op0, vint64m2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i64m4)))
-vint64m4_t vsbc(vint64m4_t op0, vint64m4_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i64m8)))
-vint64m8_t vsbc(vint64m8_t op0, vint64m8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i8m1)))
-vint8m1_t vsbc(vint8m1_t op0, int8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i8m2)))
-vint8m2_t vsbc(vint8m2_t op0, int8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i8m4)))
-vint8m4_t vsbc(vint8m4_t op0, int8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i8m8)))
-vint8m8_t vsbc(vint8m8_t op0, int8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i8mf2)))
-vint8mf2_t vsbc(vint8mf2_t op0, int8_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i8mf4)))
-vint8mf4_t vsbc(vint8mf4_t op0, int8_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i8mf8)))
-vint8mf8_t vsbc(vint8mf8_t op0, int8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i16m1)))
-vint16m1_t vsbc(vint16m1_t op0, int16_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i16m2)))
-vint16m2_t vsbc(vint16m2_t op0, int16_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i16m4)))
-vint16m4_t vsbc(vint16m4_t op0, int16_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i16m8)))
-vint16m8_t vsbc(vint16m8_t op0, int16_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i16mf2)))
-vint16mf2_t vsbc(vint16mf2_t op0, int16_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i16mf4)))
-vint16mf4_t vsbc(vint16mf4_t op0, int16_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i32m1)))
-vint32m1_t vsbc(vint32m1_t op0, int32_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i32m2)))
-vint32m2_t vsbc(vint32m2_t op0, int32_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i32m4)))
-vint32m4_t vsbc(vint32m4_t op0, int32_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i32m8)))
-vint32m8_t vsbc(vint32m8_t op0, int32_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i32mf2)))
-vint32mf2_t vsbc(vint32mf2_t op0, int32_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i64m1)))
-vint64m1_t vsbc(vint64m1_t op0, int64_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i64m2)))
-vint64m2_t vsbc(vint64m2_t op0, int64_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i64m4)))
-vint64m4_t vsbc(vint64m4_t op0, int64_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i64m8)))
-vint64m8_t vsbc(vint64m8_t op0, int64_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u8m1)))
-vuint8m1_t vsbc(vuint8m1_t op0, vuint8m1_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u8m2)))
-vuint8m2_t vsbc(vuint8m2_t op0, vuint8m2_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u8m4)))
-vuint8m4_t vsbc(vuint8m4_t op0, vuint8m4_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u8m8)))
-vuint8m8_t vsbc(vuint8m8_t op0, vuint8m8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u8mf2)))
-vuint8mf2_t vsbc(vuint8mf2_t op0, vuint8mf2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u8mf4)))
-vuint8mf4_t vsbc(vuint8mf4_t op0, vuint8mf4_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u8mf8)))
-vuint8mf8_t vsbc(vuint8mf8_t op0, vuint8mf8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u16m1)))
-vuint16m1_t vsbc(vuint16m1_t op0, vuint16m1_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u16m2)))
-vuint16m2_t vsbc(vuint16m2_t op0, vuint16m2_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u16m4)))
-vuint16m4_t vsbc(vuint16m4_t op0, vuint16m4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u16m8)))
-vuint16m8_t vsbc(vuint16m8_t op0, vuint16m8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u16mf2)))
-vuint16mf2_t vsbc(vuint16mf2_t op0, vuint16mf2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u16mf4)))
-vuint16mf4_t vsbc(vuint16mf4_t op0, vuint16mf4_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u32m1)))
-vuint32m1_t vsbc(vuint32m1_t op0, vuint32m1_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u32m2)))
-vuint32m2_t vsbc(vuint32m2_t op0, vuint32m2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u32m4)))
-vuint32m4_t vsbc(vuint32m4_t op0, vuint32m4_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u32m8)))
-vuint32m8_t vsbc(vuint32m8_t op0, vuint32m8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u32mf2)))
-vuint32mf2_t vsbc(vuint32mf2_t op0, vuint32mf2_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u64m1)))
-vuint64m1_t vsbc(vuint64m1_t op0, vuint64m1_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u64m2)))
-vuint64m2_t vsbc(vuint64m2_t op0, vuint64m2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u64m4)))
-vuint64m4_t vsbc(vuint64m4_t op0, vuint64m4_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u64m8)))
-vuint64m8_t vsbc(vuint64m8_t op0, vuint64m8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u8m1)))
-vuint8m1_t vsbc(vuint8m1_t op0, uint8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u8m2)))
-vuint8m2_t vsbc(vuint8m2_t op0, uint8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u8m4)))
-vuint8m4_t vsbc(vuint8m4_t op0, uint8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u8m8)))
-vuint8m8_t vsbc(vuint8m8_t op0, uint8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u8mf2)))
-vuint8mf2_t vsbc(vuint8mf2_t op0, uint8_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u8mf4)))
-vuint8mf4_t vsbc(vuint8mf4_t op0, uint8_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u8mf8)))
-vuint8mf8_t vsbc(vuint8mf8_t op0, uint8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u16m1)))
-vuint16m1_t vsbc(vuint16m1_t op0, uint16_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u16m2)))
-vuint16m2_t vsbc(vuint16m2_t op0, uint16_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u16m4)))
-vuint16m4_t vsbc(vuint16m4_t op0, uint16_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u16m8)))
-vuint16m8_t vsbc(vuint16m8_t op0, uint16_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u16mf2)))
-vuint16mf2_t vsbc(vuint16mf2_t op0, uint16_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u16mf4)))
-vuint16mf4_t vsbc(vuint16mf4_t op0, uint16_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u32m1)))
-vuint32m1_t vsbc(vuint32m1_t op0, uint32_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u32m2)))
-vuint32m2_t vsbc(vuint32m2_t op0, uint32_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u32m4)))
-vuint32m4_t vsbc(vuint32m4_t op0, uint32_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u32m8)))
-vuint32m8_t vsbc(vuint32m8_t op0, uint32_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u32mf2)))
-vuint32mf2_t vsbc(vuint32mf2_t op0, uint32_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u64m1)))
-vuint64m1_t vsbc(vuint64m1_t op0, uint64_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u64m2)))
-vuint64m2_t vsbc(vuint64m2_t op0, uint64_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u64m4)))
-vuint64m4_t vsbc(vuint64m4_t op0, uint64_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u64m8)))
-vuint64m8_t vsbc(vuint64m8_t op0, uint64_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i8m1_b8)))
-vbool8_t vmsbc(vint8m1_t op0, vint8m1_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i8m2_b4)))
-vbool4_t vmsbc(vint8m2_t op0, vint8m2_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i8m4_b2)))
-vbool2_t vmsbc(vint8m4_t op0, vint8m4_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i8m8_b1)))
-vbool1_t vmsbc(vint8m8_t op0, vint8m8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i8mf2_b16)))
-vbool16_t vmsbc(vint8mf2_t op0, vint8mf2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i8mf4_b32)))
-vbool32_t vmsbc(vint8mf4_t op0, vint8mf4_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i8mf8_b64)))
-vbool64_t vmsbc(vint8mf8_t op0, vint8mf8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i16m1_b16)))
-vbool16_t vmsbc(vint16m1_t op0, vint16m1_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i16m2_b8)))
-vbool8_t vmsbc(vint16m2_t op0, vint16m2_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i16m4_b4)))
-vbool4_t vmsbc(vint16m4_t op0, vint16m4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i16m8_b2)))
-vbool2_t vmsbc(vint16m8_t op0, vint16m8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i16mf2_b32)))
-vbool32_t vmsbc(vint16mf2_t op0, vint16mf2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i16mf4_b64)))
-vbool64_t vmsbc(vint16mf4_t op0, vint16mf4_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i32m1_b32)))
-vbool32_t vmsbc(vint32m1_t op0, vint32m1_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i32m2_b16)))
-vbool16_t vmsbc(vint32m2_t op0, vint32m2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i32m4_b8)))
-vbool8_t vmsbc(vint32m4_t op0, vint32m4_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i32m8_b4)))
-vbool4_t vmsbc(vint32m8_t op0, vint32m8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i32mf2_b64)))
-vbool64_t vmsbc(vint32mf2_t op0, vint32mf2_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i64m1_b64)))
-vbool64_t vmsbc(vint64m1_t op0, vint64m1_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i64m2_b32)))
-vbool32_t vmsbc(vint64m2_t op0, vint64m2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i64m4_b16)))
-vbool16_t vmsbc(vint64m4_t op0, vint64m4_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i64m8_b8)))
-vbool8_t vmsbc(vint64m8_t op0, vint64m8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i8m1_b8)))
-vbool8_t vmsbc(vint8m1_t op0, int8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i8m2_b4)))
-vbool4_t vmsbc(vint8m2_t op0, int8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i8m4_b2)))
-vbool2_t vmsbc(vint8m4_t op0, int8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i8m8_b1)))
-vbool1_t vmsbc(vint8m8_t op0, int8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i8mf2_b16)))
-vbool16_t vmsbc(vint8mf2_t op0, int8_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i8mf4_b32)))
-vbool32_t vmsbc(vint8mf4_t op0, int8_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i8mf8_b64)))
-vbool64_t vmsbc(vint8mf8_t op0, int8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i16m1_b16)))
-vbool16_t vmsbc(vint16m1_t op0, int16_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i16m2_b8)))
-vbool8_t vmsbc(vint16m2_t op0, int16_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i16m4_b4)))
-vbool4_t vmsbc(vint16m4_t op0, int16_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i16m8_b2)))
-vbool2_t vmsbc(vint16m8_t op0, int16_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i16mf2_b32)))
-vbool32_t vmsbc(vint16mf2_t op0, int16_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i16mf4_b64)))
-vbool64_t vmsbc(vint16mf4_t op0, int16_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i32m1_b32)))
-vbool32_t vmsbc(vint32m1_t op0, int32_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i32m2_b16)))
-vbool16_t vmsbc(vint32m2_t op0, int32_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i32m4_b8)))
-vbool8_t vmsbc(vint32m4_t op0, int32_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i32m8_b4)))
-vbool4_t vmsbc(vint32m8_t op0, int32_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i32mf2_b64)))
-vbool64_t vmsbc(vint32mf2_t op0, int32_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i64m1_b64)))
-vbool64_t vmsbc(vint64m1_t op0, int64_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i64m2_b32)))
-vbool32_t vmsbc(vint64m2_t op0, int64_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i64m4_b16)))
-vbool16_t vmsbc(vint64m4_t op0, int64_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i64m8_b8)))
-vbool8_t vmsbc(vint64m8_t op0, int64_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u8m1_b8)))
-vbool8_t vmsbc(vuint8m1_t op0, vuint8m1_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u8m2_b4)))
-vbool4_t vmsbc(vuint8m2_t op0, vuint8m2_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u8m4_b2)))
-vbool2_t vmsbc(vuint8m4_t op0, vuint8m4_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u8m8_b1)))
-vbool1_t vmsbc(vuint8m8_t op0, vuint8m8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u8mf2_b16)))
-vbool16_t vmsbc(vuint8mf2_t op0, vuint8mf2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u8mf4_b32)))
-vbool32_t vmsbc(vuint8mf4_t op0, vuint8mf4_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u8mf8_b64)))
-vbool64_t vmsbc(vuint8mf8_t op0, vuint8mf8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u16m1_b16)))
-vbool16_t vmsbc(vuint16m1_t op0, vuint16m1_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u16m2_b8)))
-vbool8_t vmsbc(vuint16m2_t op0, vuint16m2_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u16m4_b4)))
-vbool4_t vmsbc(vuint16m4_t op0, vuint16m4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u16m8_b2)))
-vbool2_t vmsbc(vuint16m8_t op0, vuint16m8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u16mf2_b32)))
-vbool32_t vmsbc(vuint16mf2_t op0, vuint16mf2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u16mf4_b64)))
-vbool64_t vmsbc(vuint16mf4_t op0, vuint16mf4_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u32m1_b32)))
-vbool32_t vmsbc(vuint32m1_t op0, vuint32m1_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u32m2_b16)))
-vbool16_t vmsbc(vuint32m2_t op0, vuint32m2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u32m4_b8)))
-vbool8_t vmsbc(vuint32m4_t op0, vuint32m4_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u32m8_b4)))
-vbool4_t vmsbc(vuint32m8_t op0, vuint32m8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u32mf2_b64)))
-vbool64_t vmsbc(vuint32mf2_t op0, vuint32mf2_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u64m1_b64)))
-vbool64_t vmsbc(vuint64m1_t op0, vuint64m1_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u64m2_b32)))
-vbool32_t vmsbc(vuint64m2_t op0, vuint64m2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u64m4_b16)))
-vbool16_t vmsbc(vuint64m4_t op0, vuint64m4_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u64m8_b8)))
-vbool8_t vmsbc(vuint64m8_t op0, vuint64m8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u8m1_b8)))
-vbool8_t vmsbc(vuint8m1_t op0, uint8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u8m2_b4)))
-vbool4_t vmsbc(vuint8m2_t op0, uint8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u8m4_b2)))
-vbool2_t vmsbc(vuint8m4_t op0, uint8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u8m8_b1)))
-vbool1_t vmsbc(vuint8m8_t op0, uint8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u8mf2_b16)))
-vbool16_t vmsbc(vuint8mf2_t op0, uint8_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u8mf4_b32)))
-vbool32_t vmsbc(vuint8mf4_t op0, uint8_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u8mf8_b64)))
-vbool64_t vmsbc(vuint8mf8_t op0, uint8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u16m1_b16)))
-vbool16_t vmsbc(vuint16m1_t op0, uint16_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u16m2_b8)))
-vbool8_t vmsbc(vuint16m2_t op0, uint16_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u16m4_b4)))
-vbool4_t vmsbc(vuint16m4_t op0, uint16_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u16m8_b2)))
-vbool2_t vmsbc(vuint16m8_t op0, uint16_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u16mf2_b32)))
-vbool32_t vmsbc(vuint16mf2_t op0, uint16_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u16mf4_b64)))
-vbool64_t vmsbc(vuint16mf4_t op0, uint16_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u32m1_b32)))
-vbool32_t vmsbc(vuint32m1_t op0, uint32_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u32m2_b16)))
-vbool16_t vmsbc(vuint32m2_t op0, uint32_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u32m4_b8)))
-vbool8_t vmsbc(vuint32m4_t op0, uint32_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u32m8_b4)))
-vbool4_t vmsbc(vuint32m8_t op0, uint32_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u32mf2_b64)))
-vbool64_t vmsbc(vuint32mf2_t op0, uint32_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u64m1_b64)))
-vbool64_t vmsbc(vuint64m1_t op0, uint64_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u64m2_b32)))
-vbool32_t vmsbc(vuint64m2_t op0, uint64_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u64m4_b16)))
-vbool16_t vmsbc(vuint64m4_t op0, uint64_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u64m8_b8)))
-vbool8_t vmsbc(vuint64m8_t op0, uint64_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16m1)))
-void vsuxei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16m1_m)))
-void vsuxei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16m2)))
-void vsuxei8(uint16_t * op0, vuint8m1_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16m2_m)))
-void vsuxei8(vbool8_t op0, uint16_t * op1, vuint8m1_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16m4)))
-void vsuxei8(uint16_t * op0, vuint8m2_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16m4_m)))
-void vsuxei8(vbool4_t op0, uint16_t * op1, vuint8m2_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16m8)))
-void vsuxei8(uint16_t * op0, vuint8m4_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16m8_m)))
-void vsuxei8(vbool2_t op0, uint16_t * op1, vuint8m4_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16mf2)))
-void vsuxei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16mf2_m)))
-void vsuxei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16mf4)))
-void vsuxei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16mf4_m)))
-void vsuxei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i8m1_b8)))
-vbool8_t vmsbc(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i8m2_b4)))
-vbool4_t vmsbc(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i8m4_b2)))
-vbool2_t vmsbc(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i8m8_b1)))
-vbool1_t vmsbc(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i8mf2_b16)))
-vbool16_t vmsbc(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i8mf4_b32)))
-vbool32_t vmsbc(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i8mf8_b64)))
-vbool64_t vmsbc(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i16m1_b16)))
-vbool16_t vmsbc(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i16m2_b8)))
-vbool8_t vmsbc(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i16m4_b4)))
-vbool4_t vmsbc(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i16m8_b2)))
-vbool2_t vmsbc(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i16mf2_b32)))
-vbool32_t vmsbc(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i16mf4_b64)))
-vbool64_t vmsbc(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i32m1_b32)))
-vbool32_t vmsbc(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i32m2_b16)))
-vbool16_t vmsbc(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i32m4_b8)))
-vbool8_t vmsbc(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i32m8_b4)))
-vbool4_t vmsbc(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i32mf2_b64)))
-vbool64_t vmsbc(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i64m1_b64)))
-vbool64_t vmsbc(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i64m2_b32)))
-vbool32_t vmsbc(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i64m4_b16)))
-vbool16_t vmsbc(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i64m8_b8)))
-vbool8_t vmsbc(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i8m1_b8)))
-vbool8_t vmsbc(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i8m2_b4)))
-vbool4_t vmsbc(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i8m4_b2)))
-vbool2_t vmsbc(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i8m8_b1)))
-vbool1_t vmsbc(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i8mf2_b16)))
-vbool16_t vmsbc(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i8mf4_b32)))
-vbool32_t vmsbc(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i8mf8_b64)))
-vbool64_t vmsbc(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i16m1_b16)))
-vbool16_t vmsbc(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i16m2_b8)))
-vbool8_t vmsbc(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i16m4_b4)))
-vbool4_t vmsbc(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i16m8_b2)))
-vbool2_t vmsbc(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i16mf2_b32)))
-vbool32_t vmsbc(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i16mf4_b64)))
-vbool64_t vmsbc(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i32m1_b32)))
-vbool32_t vmsbc(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i32m2_b16)))
-vbool16_t vmsbc(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i32m4_b8)))
-vbool8_t vmsbc(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i32m8_b4)))
-vbool4_t vmsbc(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i32mf2_b64)))
-vbool64_t vmsbc(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i64m1_b64)))
-vbool64_t vmsbc(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i64m2_b32)))
-vbool32_t vmsbc(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i64m4_b16)))
-vbool16_t vmsbc(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i64m8_b8)))
-vbool8_t vmsbc(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u8m1_b8)))
-vbool8_t vmsbc(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u8m2_b4)))
-vbool4_t vmsbc(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u8m4_b2)))
-vbool2_t vmsbc(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u8m8_b1)))
-vbool1_t vmsbc(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u8mf2_b16)))
-vbool16_t vmsbc(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u8mf4_b32)))
-vbool32_t vmsbc(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u8mf8_b64)))
-vbool64_t vmsbc(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u16m1_b16)))
-vbool16_t vmsbc(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u16m2_b8)))
-vbool8_t vmsbc(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u16m4_b4)))
-vbool4_t vmsbc(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u16m8_b2)))
-vbool2_t vmsbc(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u16mf2_b32)))
-vbool32_t vmsbc(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u16mf4_b64)))
-vbool64_t vmsbc(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u32m1_b32)))
-vbool32_t vmsbc(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u32m2_b16)))
-vbool16_t vmsbc(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u32m4_b8)))
-vbool8_t vmsbc(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u32m8_b4)))
-vbool4_t vmsbc(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u32mf2_b64)))
-vbool64_t vmsbc(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u64m1_b64)))
-vbool64_t vmsbc(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u64m2_b32)))
-vbool32_t vmsbc(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u64m4_b16)))
-vbool16_t vmsbc(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u64m8_b8)))
-vbool8_t vmsbc(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u8m1_b8)))
-vbool8_t vmsbc(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u8m2_b4)))
-vbool4_t vmsbc(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u8m4_b2)))
-vbool2_t vmsbc(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u8m8_b1)))
-vbool1_t vmsbc(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u8mf2_b16)))
-vbool16_t vmsbc(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u8mf4_b32)))
-vbool32_t vmsbc(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u8mf8_b64)))
-vbool64_t vmsbc(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u16m1_b16)))
-vbool16_t vmsbc(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u16m2_b8)))
-vbool8_t vmsbc(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u16m4_b4)))
-vbool4_t vmsbc(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u16m8_b2)))
-vbool2_t vmsbc(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u16mf2_b32)))
-vbool32_t vmsbc(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u16mf4_b64)))
-vbool64_t vmsbc(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u32m1_b32)))
-vbool32_t vmsbc(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u32m2_b16)))
-vbool16_t vmsbc(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u32m4_b8)))
-vbool8_t vmsbc(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u32m8_b4)))
-vbool4_t vmsbc(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u32mf2_b64)))
-vbool64_t vmsbc(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u64m1_b64)))
-vbool64_t vmsbc(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u64m2_b32)))
-vbool32_t vmsbc(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u64m4_b16)))
-vbool16_t vmsbc(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u64m8_b8)))
-vbool8_t vmsbc(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8m1)))
-vint8m1_t vand(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8m1_m)))
-vint8m1_t vand(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8m2)))
-vint8m2_t vand(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8m2_m)))
-vint8m2_t vand(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8m4)))
-vint8m4_t vand(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8m4_m)))
-vint8m4_t vand(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8m8)))
-vint8m8_t vand(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8m8_m)))
-vint8m8_t vand(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8mf2)))
-vint8mf2_t vand(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8mf2_m)))
-vint8mf2_t vand(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8mf4)))
-vint8mf4_t vand(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8mf4_m)))
-vint8mf4_t vand(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8mf8)))
-vint8mf8_t vand(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8mf8_m)))
-vint8mf8_t vand(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16m1)))
-vint16m1_t vand(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16m1_m)))
-vint16m1_t vand(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16m2)))
-vint16m2_t vand(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16m2_m)))
-vint16m2_t vand(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16m4)))
-vint16m4_t vand(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16m4_m)))
-vint16m4_t vand(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16m8)))
-vint16m8_t vand(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16m8_m)))
-vint16m8_t vand(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16mf2)))
-vint16mf2_t vand(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16mf2_m)))
-vint16mf2_t vand(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16mf4)))
-vint16mf4_t vand(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16mf4_m)))
-vint16mf4_t vand(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i32m1)))
-vint32m1_t vand(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i32m1_m)))
-vint32m1_t vand(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i32m2)))
-vint32m2_t vand(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i32m2_m)))
-vint32m2_t vand(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i32m4)))
-vint32m4_t vand(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i32m4_m)))
-vint32m4_t vand(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i32m8)))
-vint32m8_t vand(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i32m8_m)))
-vint32m8_t vand(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i32mf2)))
-vint32mf2_t vand(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i32mf2_m)))
-vint32mf2_t vand(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i64m1)))
-vint64m1_t vand(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i64m1_m)))
-vint64m1_t vand(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i64m2)))
-vint64m2_t vand(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i64m2_m)))
-vint64m2_t vand(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i64m4)))
-vint64m4_t vand(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i64m4_m)))
-vint64m4_t vand(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i64m8)))
-vint64m8_t vand(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i64m8_m)))
-vint64m8_t vand(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8m1)))
-vint8m1_t vand(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8m1_m)))
-vint8m1_t vand(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8m2)))
-vint8m2_t vand(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8m2_m)))
-vint8m2_t vand(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8m4)))
-vint8m4_t vand(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8m4_m)))
-vint8m4_t vand(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8m8)))
-vint8m8_t vand(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8m8_m)))
-vint8m8_t vand(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8mf2)))
-vint8mf2_t vand(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8mf2_m)))
-vint8mf2_t vand(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8mf4)))
-vint8mf4_t vand(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8mf4_m)))
-vint8mf4_t vand(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8mf8)))
-vint8mf8_t vand(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8mf8_m)))
-vint8mf8_t vand(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16m1)))
-vint16m1_t vand(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16m1_m)))
-vint16m1_t vand(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16m2)))
-vint16m2_t vand(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16m2_m)))
-vint16m2_t vand(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16m4)))
-vint16m4_t vand(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16m4_m)))
-vint16m4_t vand(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16m8)))
-vint16m8_t vand(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16m8_m)))
-vint16m8_t vand(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16mf2)))
-vint16mf2_t vand(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16mf2_m)))
-vint16mf2_t vand(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16mf4)))
-vint16mf4_t vand(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16mf4_m)))
-vint16mf4_t vand(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i32m1)))
-vint32m1_t vand(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i32m1_m)))
-vint32m1_t vand(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i32m2)))
-vint32m2_t vand(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i32m2_m)))
-vint32m2_t vand(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i32m4)))
-vint32m4_t vand(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i32m4_m)))
-vint32m4_t vand(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i32m8)))
-vint32m8_t vand(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i32m8_m)))
-vint32m8_t vand(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i32mf2)))
-vint32mf2_t vand(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i32mf2_m)))
-vint32mf2_t vand(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i64m1)))
-vint64m1_t vand(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i64m1_m)))
-vint64m1_t vand(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i64m2)))
-vint64m2_t vand(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i64m2_m)))
-vint64m2_t vand(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i64m4)))
-vint64m4_t vand(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i64m4_m)))
-vint64m4_t vand(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i64m8)))
-vint64m8_t vand(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i64m8_m)))
-vint64m8_t vand(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8m1)))
-vuint8m1_t vand(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8m1_m)))
-vuint8m1_t vand(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8m2)))
-vuint8m2_t vand(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8m2_m)))
-vuint8m2_t vand(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8m4)))
-vuint8m4_t vand(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8m4_m)))
-vuint8m4_t vand(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8m8)))
-vuint8m8_t vand(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8m8_m)))
-vuint8m8_t vand(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8mf2)))
-vuint8mf2_t vand(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8mf2_m)))
-vuint8mf2_t vand(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8mf4)))
-vuint8mf4_t vand(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8mf4_m)))
-vuint8mf4_t vand(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8mf8)))
-vuint8mf8_t vand(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8mf8_m)))
-vuint8mf8_t vand(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16m1)))
-vuint16m1_t vand(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16m1_m)))
-vuint16m1_t vand(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16m2)))
-vuint16m2_t vand(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16m2_m)))
-vuint16m2_t vand(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16m4)))
-vuint16m4_t vand(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16m4_m)))
-vuint16m4_t vand(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16m8)))
-vuint16m8_t vand(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16m8_m)))
-vuint16m8_t vand(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16mf2)))
-vuint16mf2_t vand(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16mf2_m)))
-vuint16mf2_t vand(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16mf4)))
-vuint16mf4_t vand(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16mf4_m)))
-vuint16mf4_t vand(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u32m1)))
-vuint32m1_t vand(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u32m1_m)))
-vuint32m1_t vand(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u32m2)))
-vuint32m2_t vand(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u32m2_m)))
-vuint32m2_t vand(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u32m4)))
-vuint32m4_t vand(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u32m4_m)))
-vuint32m4_t vand(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u32m8)))
-vuint32m8_t vand(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u32m8_m)))
-vuint32m8_t vand(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u32mf2)))
-vuint32mf2_t vand(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u32mf2_m)))
-vuint32mf2_t vand(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u64m1)))
-vuint64m1_t vand(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u64m1_m)))
-vuint64m1_t vand(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u64m2)))
-vuint64m2_t vand(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u64m2_m)))
-vuint64m2_t vand(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u64m4)))
-vuint64m4_t vand(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u64m4_m)))
-vuint64m4_t vand(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u64m8)))
-vuint64m8_t vand(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u64m8_m)))
-vuint64m8_t vand(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8m1)))
-vuint8m1_t vand(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8m1_m)))
-vuint8m1_t vand(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8m2)))
-vuint8m2_t vand(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8m2_m)))
-vuint8m2_t vand(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8m4)))
-vuint8m4_t vand(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8m4_m)))
-vuint8m4_t vand(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8m8)))
-vuint8m8_t vand(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8m8_m)))
-vuint8m8_t vand(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8mf2)))
-vuint8mf2_t vand(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8mf2_m)))
-vuint8mf2_t vand(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8mf4)))
-vuint8mf4_t vand(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8mf4_m)))
-vuint8mf4_t vand(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8mf8)))
-vuint8mf8_t vand(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8mf8_m)))
-vuint8mf8_t vand(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16m1)))
-vuint16m1_t vand(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16m1_m)))
-vuint16m1_t vand(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16m2)))
-vuint16m2_t vand(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16m2_m)))
-vuint16m2_t vand(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16m4)))
-vuint16m4_t vand(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16m4_m)))
-vuint16m4_t vand(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16m8)))
-vuint16m8_t vand(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16m8_m)))
-vuint16m8_t vand(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16mf2)))
-vuint16mf2_t vand(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16mf2_m)))
-vuint16mf2_t vand(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16mf4)))
-vuint16mf4_t vand(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16mf4_m)))
-vuint16mf4_t vand(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u32m1)))
-vuint32m1_t vand(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u32m1_m)))
-vuint32m1_t vand(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u32m2)))
-vuint32m2_t vand(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u32m2_m)))
-vuint32m2_t vand(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u32m4)))
-vuint32m4_t vand(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u32m4_m)))
-vuint32m4_t vand(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u32m8)))
-vuint32m8_t vand(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u32m8_m)))
-vuint32m8_t vand(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u32mf2)))
-vuint32mf2_t vand(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u32mf2_m)))
-vuint32mf2_t vand(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u64m1)))
-vuint64m1_t vand(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u64m1_m)))
-vuint64m1_t vand(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u64m2)))
-vuint64m2_t vand(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u64m2_m)))
-vuint64m2_t vand(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u64m4)))
-vuint64m4_t vand(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u64m4_m)))
-vuint64m4_t vand(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u64m8)))
-vuint64m8_t vand(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u64m8_m)))
-vuint64m8_t vand(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8m1)))
-vint8m1_t vxor(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8m1_m)))
-vint8m1_t vxor(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8m2)))
-vint8m2_t vxor(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8m2_m)))
-vint8m2_t vxor(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8m4)))
-vint8m4_t vxor(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8m4_m)))
-vint8m4_t vxor(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8m8)))
-vint8m8_t vxor(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8m8_m)))
-vint8m8_t vxor(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8mf2)))
-vint8mf2_t vxor(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8mf2_m)))
-vint8mf2_t vxor(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8mf4)))
-vint8mf4_t vxor(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8mf4_m)))
-vint8mf4_t vxor(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8mf8)))
-vint8mf8_t vxor(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8mf8_m)))
-vint8mf8_t vxor(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16m1)))
-vint16m1_t vxor(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16m1_m)))
-vint16m1_t vxor(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16m2)))
-vint16m2_t vxor(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16m2_m)))
-vint16m2_t vxor(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16m4)))
-vint16m4_t vxor(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16m4_m)))
-vint16m4_t vxor(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16m8)))
-vint16m8_t vxor(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16m8_m)))
-vint16m8_t vxor(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16mf2)))
-vint16mf2_t vxor(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16mf2_m)))
-vint16mf2_t vxor(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16mf4)))
-vint16mf4_t vxor(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16mf4_m)))
-vint16mf4_t vxor(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i32m1)))
-vint32m1_t vxor(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i32m1_m)))
-vint32m1_t vxor(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i32m2)))
-vint32m2_t vxor(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i32m2_m)))
-vint32m2_t vxor(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i32m4)))
-vint32m4_t vxor(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i32m4_m)))
-vint32m4_t vxor(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i32m8)))
-vint32m8_t vxor(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i32m8_m)))
-vint32m8_t vxor(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i32mf2)))
-vint32mf2_t vxor(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i32mf2_m)))
-vint32mf2_t vxor(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i64m1)))
-vint64m1_t vxor(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i64m1_m)))
-vint64m1_t vxor(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i64m2)))
-vint64m2_t vxor(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i64m2_m)))
-vint64m2_t vxor(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i64m4)))
-vint64m4_t vxor(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i64m4_m)))
-vint64m4_t vxor(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i64m8)))
-vint64m8_t vxor(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i64m8_m)))
-vint64m8_t vxor(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8m1)))
-vint8m1_t vxor(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8m1_m)))
-vint8m1_t vxor(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8m2)))
-vint8m2_t vxor(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8m2_m)))
-vint8m2_t vxor(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8m4)))
-vint8m4_t vxor(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8m4_m)))
-vint8m4_t vxor(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8m8)))
-vint8m8_t vxor(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8m8_m)))
-vint8m8_t vxor(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8mf2)))
-vint8mf2_t vxor(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8mf2_m)))
-vint8mf2_t vxor(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8mf4)))
-vint8mf4_t vxor(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8mf4_m)))
-vint8mf4_t vxor(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8mf8)))
-vint8mf8_t vxor(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8mf8_m)))
-vint8mf8_t vxor(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16m1)))
-vint16m1_t vxor(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16m1_m)))
-vint16m1_t vxor(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16m2)))
-vint16m2_t vxor(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16m2_m)))
-vint16m2_t vxor(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16m4)))
-vint16m4_t vxor(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16m4_m)))
-vint16m4_t vxor(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16m8)))
-vint16m8_t vxor(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16m8_m)))
-vint16m8_t vxor(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16mf2)))
-vint16mf2_t vxor(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16mf2_m)))
-vint16mf2_t vxor(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16mf4)))
-vint16mf4_t vxor(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16mf4_m)))
-vint16mf4_t vxor(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i32m1)))
-vint32m1_t vxor(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i32m1_m)))
-vint32m1_t vxor(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i32m2)))
-vint32m2_t vxor(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i32m2_m)))
-vint32m2_t vxor(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i32m4)))
-vint32m4_t vxor(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i32m4_m)))
-vint32m4_t vxor(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i32m8)))
-vint32m8_t vxor(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i32m8_m)))
-vint32m8_t vxor(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i32mf2)))
-vint32mf2_t vxor(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i32mf2_m)))
-vint32mf2_t vxor(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i64m1)))
-vint64m1_t vxor(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i64m1_m)))
-vint64m1_t vxor(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i64m2)))
-vint64m2_t vxor(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i64m2_m)))
-vint64m2_t vxor(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i64m4)))
-vint64m4_t vxor(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i64m4_m)))
-vint64m4_t vxor(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i64m8)))
-vint64m8_t vxor(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i64m8_m)))
-vint64m8_t vxor(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16m1)))
-void vsuxei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16m1_m)))
-void vsuxei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16m2)))
-void vsuxei16(int16_t * op0, vuint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16m2_m)))
-void vsuxei16(vbool8_t op0, int16_t * op1, vuint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16m4)))
-void vsuxei16(int16_t * op0, vuint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16m4_m)))
-void vsuxei16(vbool4_t op0, int16_t * op1, vuint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16m8)))
-void vsuxei16(int16_t * op0, vuint16m8_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16m8_m)))
-void vsuxei16(vbool2_t op0, int16_t * op1, vuint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16mf2)))
-void vsuxei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16mf2_m)))
-void vsuxei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16mf4)))
-void vsuxei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16mf4_m)))
-void vsuxei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8m1)))
-vuint8m1_t vxor(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8m1_m)))
-vuint8m1_t vxor(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8m2)))
-vuint8m2_t vxor(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8m2_m)))
-vuint8m2_t vxor(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8m4)))
-vuint8m4_t vxor(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8m4_m)))
-vuint8m4_t vxor(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8m8)))
-vuint8m8_t vxor(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8m8_m)))
-vuint8m8_t vxor(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8mf2)))
-vuint8mf2_t vxor(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8mf2_m)))
-vuint8mf2_t vxor(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8mf4)))
-vuint8mf4_t vxor(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8mf4_m)))
-vuint8mf4_t vxor(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8mf8)))
-vuint8mf8_t vxor(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8mf8_m)))
-vuint8mf8_t vxor(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16m1)))
-vuint16m1_t vxor(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16m1_m)))
-vuint16m1_t vxor(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16m2)))
-vuint16m2_t vxor(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16m2_m)))
-vuint16m2_t vxor(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16m4)))
-vuint16m4_t vxor(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16m4_m)))
-vuint16m4_t vxor(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16m8)))
-vuint16m8_t vxor(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16m8_m)))
-vuint16m8_t vxor(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16mf2)))
-vuint16mf2_t vxor(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16mf2_m)))
-vuint16mf2_t vxor(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16mf4)))
-vuint16mf4_t vxor(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16mf4_m)))
-vuint16mf4_t vxor(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u32m1)))
-vuint32m1_t vxor(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u32m1_m)))
-vuint32m1_t vxor(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u32m2)))
-vuint32m2_t vxor(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u32m2_m)))
-vuint32m2_t vxor(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u32m4)))
-vuint32m4_t vxor(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u32m4_m)))
-vuint32m4_t vxor(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u32m8)))
-vuint32m8_t vxor(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u32m8_m)))
-vuint32m8_t vxor(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u32mf2)))
-vuint32mf2_t vxor(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u32mf2_m)))
-vuint32mf2_t vxor(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u64m1)))
-vuint64m1_t vxor(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u64m1_m)))
-vuint64m1_t vxor(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u64m2)))
-vuint64m2_t vxor(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u64m2_m)))
-vuint64m2_t vxor(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u64m4)))
-vuint64m4_t vxor(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u64m4_m)))
-vuint64m4_t vxor(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u64m8)))
-vuint64m8_t vxor(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u64m8_m)))
-vuint64m8_t vxor(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8m1)))
-vuint8m1_t vxor(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8m1_m)))
-vuint8m1_t vxor(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8m2)))
-vuint8m2_t vxor(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8m2_m)))
-vuint8m2_t vxor(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8m4)))
-vuint8m4_t vxor(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8m4_m)))
-vuint8m4_t vxor(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8m8)))
-vuint8m8_t vxor(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8m8_m)))
-vuint8m8_t vxor(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8mf2)))
-vuint8mf2_t vxor(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8mf2_m)))
-vuint8mf2_t vxor(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8mf4)))
-vuint8mf4_t vxor(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8mf4_m)))
-vuint8mf4_t vxor(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8mf8)))
-vuint8mf8_t vxor(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8mf8_m)))
-vuint8mf8_t vxor(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16m1)))
-vuint16m1_t vxor(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16m1_m)))
-vuint16m1_t vxor(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16m2)))
-vuint16m2_t vxor(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16m2_m)))
-vuint16m2_t vxor(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16m4)))
-vuint16m4_t vxor(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16m4_m)))
-vuint16m4_t vxor(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16m8)))
-vuint16m8_t vxor(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16m8_m)))
-vuint16m8_t vxor(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16mf2)))
-vuint16mf2_t vxor(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16mf2_m)))
-vuint16mf2_t vxor(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16mf4)))
-vuint16mf4_t vxor(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16mf4_m)))
-vuint16mf4_t vxor(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u32m1)))
-vuint32m1_t vxor(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u32m1_m)))
-vuint32m1_t vxor(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u32m2)))
-vuint32m2_t vxor(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u32m2_m)))
-vuint32m2_t vxor(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u32m4)))
-vuint32m4_t vxor(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u32m4_m)))
-vuint32m4_t vxor(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u32m8)))
-vuint32m8_t vxor(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u32m8_m)))
-vuint32m8_t vxor(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u32mf2)))
-vuint32mf2_t vxor(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u32mf2_m)))
-vuint32mf2_t vxor(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u64m1)))
-vuint64m1_t vxor(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u64m1_m)))
-vuint64m1_t vxor(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u64m2)))
-vuint64m2_t vxor(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u64m2_m)))
-vuint64m2_t vxor(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u64m4)))
-vuint64m4_t vxor(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u64m4_m)))
-vuint64m4_t vxor(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u64m8)))
-vuint64m8_t vxor(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u64m8_m)))
-vuint64m8_t vxor(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8m1)))
-vint8m1_t vor(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8m1_m)))
-vint8m1_t vor(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8m2)))
-vint8m2_t vor(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8m2_m)))
-vint8m2_t vor(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8m4)))
-vint8m4_t vor(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8m4_m)))
-vint8m4_t vor(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8m8)))
-vint8m8_t vor(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8m8_m)))
-vint8m8_t vor(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8mf2)))
-vint8mf2_t vor(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8mf2_m)))
-vint8mf2_t vor(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8mf4)))
-vint8mf4_t vor(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8mf4_m)))
-vint8mf4_t vor(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8mf8)))
-vint8mf8_t vor(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8mf8_m)))
-vint8mf8_t vor(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16m1)))
-vint16m1_t vor(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16m1_m)))
-vint16m1_t vor(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16m2)))
-vint16m2_t vor(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16m2_m)))
-vint16m2_t vor(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16m4)))
-vint16m4_t vor(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16m4_m)))
-vint16m4_t vor(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16m8)))
-vint16m8_t vor(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16m8_m)))
-vint16m8_t vor(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16mf2)))
-vint16mf2_t vor(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16mf2_m)))
-vint16mf2_t vor(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16mf4)))
-vint16mf4_t vor(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16mf4_m)))
-vint16mf4_t vor(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i32m1)))
-vint32m1_t vor(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i32m1_m)))
-vint32m1_t vor(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i32m2)))
-vint32m2_t vor(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i32m2_m)))
-vint32m2_t vor(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i32m4)))
-vint32m4_t vor(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i32m4_m)))
-vint32m4_t vor(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i32m8)))
-vint32m8_t vor(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i32m8_m)))
-vint32m8_t vor(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i32mf2)))
-vint32mf2_t vor(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i32mf2_m)))
-vint32mf2_t vor(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i64m1)))
-vint64m1_t vor(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i64m1_m)))
-vint64m1_t vor(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i64m2)))
-vint64m2_t vor(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i64m2_m)))
-vint64m2_t vor(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i64m4)))
-vint64m4_t vor(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i64m4_m)))
-vint64m4_t vor(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i64m8)))
-vint64m8_t vor(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i64m8_m)))
-vint64m8_t vor(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8m1)))
-vint8m1_t vor(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8m1_m)))
-vint8m1_t vor(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8m2)))
-vint8m2_t vor(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8m2_m)))
-vint8m2_t vor(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8m4)))
-vint8m4_t vor(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8m4_m)))
-vint8m4_t vor(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8m8)))
-vint8m8_t vor(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8m8_m)))
-vint8m8_t vor(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8mf2)))
-vint8mf2_t vor(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8mf2_m)))
-vint8mf2_t vor(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8mf4)))
-vint8mf4_t vor(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8mf4_m)))
-vint8mf4_t vor(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8mf8)))
-vint8mf8_t vor(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8mf8_m)))
-vint8mf8_t vor(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16m1)))
-vint16m1_t vor(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16m1_m)))
-vint16m1_t vor(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16m2)))
-vint16m2_t vor(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16m2_m)))
-vint16m2_t vor(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16m4)))
-vint16m4_t vor(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16m4_m)))
-vint16m4_t vor(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16m8)))
-vint16m8_t vor(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16m8_m)))
-vint16m8_t vor(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16mf2)))
-vint16mf2_t vor(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16mf2_m)))
-vint16mf2_t vor(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16mf4)))
-vint16mf4_t vor(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16mf4_m)))
-vint16mf4_t vor(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i32m1)))
-vint32m1_t vor(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i32m1_m)))
-vint32m1_t vor(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i32m2)))
-vint32m2_t vor(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i32m2_m)))
-vint32m2_t vor(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i32m4)))
-vint32m4_t vor(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i32m4_m)))
-vint32m4_t vor(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i32m8)))
-vint32m8_t vor(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i32m8_m)))
-vint32m8_t vor(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i32mf2)))
-vint32mf2_t vor(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i32mf2_m)))
-vint32mf2_t vor(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i64m1)))
-vint64m1_t vor(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i64m1_m)))
-vint64m1_t vor(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i64m2)))
-vint64m2_t vor(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i64m2_m)))
-vint64m2_t vor(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i64m4)))
-vint64m4_t vor(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i64m4_m)))
-vint64m4_t vor(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i64m8)))
-vint64m8_t vor(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i64m8_m)))
-vint64m8_t vor(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8m1)))
-vuint8m1_t vor(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8m1_m)))
-vuint8m1_t vor(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8m2)))
-vuint8m2_t vor(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8m2_m)))
-vuint8m2_t vor(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8m4)))
-vuint8m4_t vor(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8m4_m)))
-vuint8m4_t vor(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8m8)))
-vuint8m8_t vor(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8m8_m)))
-vuint8m8_t vor(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8mf2)))
-vuint8mf2_t vor(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8mf2_m)))
-vuint8mf2_t vor(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8mf4)))
-vuint8mf4_t vor(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8mf4_m)))
-vuint8mf4_t vor(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8mf8)))
-vuint8mf8_t vor(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8mf8_m)))
-vuint8mf8_t vor(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16m1)))
-vuint16m1_t vor(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16m1_m)))
-vuint16m1_t vor(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16m2)))
-vuint16m2_t vor(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16m2_m)))
-vuint16m2_t vor(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16m4)))
-vuint16m4_t vor(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16m4_m)))
-vuint16m4_t vor(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16m8)))
-vuint16m8_t vor(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16m8_m)))
-vuint16m8_t vor(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16mf2)))
-vuint16mf2_t vor(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16mf2_m)))
-vuint16mf2_t vor(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16mf4)))
-vuint16mf4_t vor(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16mf4_m)))
-vuint16mf4_t vor(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u32m1)))
-vuint32m1_t vor(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u32m1_m)))
-vuint32m1_t vor(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u32m2)))
-vuint32m2_t vor(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u32m2_m)))
-vuint32m2_t vor(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u32m4)))
-vuint32m4_t vor(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u32m4_m)))
-vuint32m4_t vor(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u32m8)))
-vuint32m8_t vor(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u32m8_m)))
-vuint32m8_t vor(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u32mf2)))
-vuint32mf2_t vor(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u32mf2_m)))
-vuint32mf2_t vor(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u64m1)))
-vuint64m1_t vor(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u64m1_m)))
-vuint64m1_t vor(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u64m2)))
-vuint64m2_t vor(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u64m2_m)))
-vuint64m2_t vor(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u64m4)))
-vuint64m4_t vor(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u64m4_m)))
-vuint64m4_t vor(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u64m8)))
-vuint64m8_t vor(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u64m8_m)))
-vuint64m8_t vor(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8m1)))
-vuint8m1_t vor(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8m1_m)))
-vuint8m1_t vor(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8m2)))
-vuint8m2_t vor(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8m2_m)))
-vuint8m2_t vor(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8m4)))
-vuint8m4_t vor(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8m4_m)))
-vuint8m4_t vor(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8m8)))
-vuint8m8_t vor(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8m8_m)))
-vuint8m8_t vor(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8mf2)))
-vuint8mf2_t vor(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8mf2_m)))
-vuint8mf2_t vor(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8mf4)))
-vuint8mf4_t vor(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8mf4_m)))
-vuint8mf4_t vor(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8mf8)))
-vuint8mf8_t vor(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8mf8_m)))
-vuint8mf8_t vor(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16m1)))
-vuint16m1_t vor(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16m1_m)))
-vuint16m1_t vor(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16m2)))
-vuint16m2_t vor(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16m2_m)))
-vuint16m2_t vor(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16m4)))
-vuint16m4_t vor(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16m4_m)))
-vuint16m4_t vor(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16m8)))
-vuint16m8_t vor(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16m8_m)))
-vuint16m8_t vor(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16mf2)))
-vuint16mf2_t vor(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16mf2_m)))
-vuint16mf2_t vor(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16mf4)))
-vuint16mf4_t vor(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16mf4_m)))
-vuint16mf4_t vor(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u32m1)))
-vuint32m1_t vor(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u32m1_m)))
-vuint32m1_t vor(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u32m2)))
-vuint32m2_t vor(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u32m2_m)))
-vuint32m2_t vor(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u32m4)))
-vuint32m4_t vor(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u32m4_m)))
-vuint32m4_t vor(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u32m8)))
-vuint32m8_t vor(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u32m8_m)))
-vuint32m8_t vor(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u32mf2)))
-vuint32mf2_t vor(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u32mf2_m)))
-vuint32mf2_t vor(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u64m1)))
-vuint64m1_t vor(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u64m1_m)))
-vuint64m1_t vor(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u64m2)))
-vuint64m2_t vor(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u64m2_m)))
-vuint64m2_t vor(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u64m4)))
-vuint64m4_t vor(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u64m4_m)))
-vuint64m4_t vor(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u64m8)))
-vuint64m8_t vor(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u64m8_m)))
-vuint64m8_t vor(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8m1)))
-vint8m1_t vsll(vint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8m1_m)))
-vint8m1_t vsll(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8m2)))
-vint8m2_t vsll(vint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8m2_m)))
-vint8m2_t vsll(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8m4)))
-vint8m4_t vsll(vint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8m4_m)))
-vint8m4_t vsll(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8m8)))
-vint8m8_t vsll(vint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8m8_m)))
-vint8m8_t vsll(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8mf2)))
-vint8mf2_t vsll(vint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8mf2_m)))
-vint8mf2_t vsll(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8mf4)))
-vint8mf4_t vsll(vint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8mf4_m)))
-vint8mf4_t vsll(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8mf8)))
-vint8mf8_t vsll(vint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8mf8_m)))
-vint8mf8_t vsll(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16m1)))
-vint16m1_t vsll(vint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16m1_m)))
-vint16m1_t vsll(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16m2)))
-vint16m2_t vsll(vint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16m2_m)))
-vint16m2_t vsll(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16m4)))
-vint16m4_t vsll(vint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16m4_m)))
-vint16m4_t vsll(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16m8)))
-vint16m8_t vsll(vint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16m8_m)))
-vint16m8_t vsll(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16mf2)))
-vint16mf2_t vsll(vint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16mf2_m)))
-vint16mf2_t vsll(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16mf4)))
-vint16mf4_t vsll(vint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16mf4_m)))
-vint16mf4_t vsll(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i32m1)))
-vint32m1_t vsll(vint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i32m1_m)))
-vint32m1_t vsll(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i32m2)))
-vint32m2_t vsll(vint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i32m2_m)))
-vint32m2_t vsll(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i32m4)))
-vint32m4_t vsll(vint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i32m4_m)))
-vint32m4_t vsll(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i32m8)))
-vint32m8_t vsll(vint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i32m8_m)))
-vint32m8_t vsll(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i32mf2)))
-vint32mf2_t vsll(vint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i32mf2_m)))
-vint32mf2_t vsll(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i64m1)))
-vint64m1_t vsll(vint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i64m1_m)))
-vint64m1_t vsll(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i64m2)))
-vint64m2_t vsll(vint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i64m2_m)))
-vint64m2_t vsll(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i64m4)))
-vint64m4_t vsll(vint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i64m4_m)))
-vint64m4_t vsll(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i64m8)))
-vint64m8_t vsll(vint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i64m8_m)))
-vint64m8_t vsll(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8m1)))
-vint8m1_t vsll(vint8m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8m1_m)))
-vint8m1_t vsll(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8m2)))
-vint8m2_t vsll(vint8m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8m2_m)))
-vint8m2_t vsll(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8m4)))
-vint8m4_t vsll(vint8m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8m4_m)))
-vint8m4_t vsll(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8m8)))
-vint8m8_t vsll(vint8m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8m8_m)))
-vint8m8_t vsll(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8mf2)))
-vint8mf2_t vsll(vint8mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8mf2_m)))
-vint8mf2_t vsll(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8mf4)))
-vint8mf4_t vsll(vint8mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8mf4_m)))
-vint8mf4_t vsll(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8mf8)))
-vint8mf8_t vsll(vint8mf8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8mf8_m)))
-vint8mf8_t vsll(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16m1)))
-vint16m1_t vsll(vint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16m1_m)))
-vint16m1_t vsll(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16m2)))
-vint16m2_t vsll(vint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16m2_m)))
-vint16m2_t vsll(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16m4)))
-vint16m4_t vsll(vint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16m4_m)))
-vint16m4_t vsll(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16m8)))
-vint16m8_t vsll(vint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16m8_m)))
-vint16m8_t vsll(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16mf2)))
-vint16mf2_t vsll(vint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16mf2_m)))
-vint16mf2_t vsll(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16mf4)))
-vint16mf4_t vsll(vint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16mf4_m)))
-vint16mf4_t vsll(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i32m1)))
-vint32m1_t vsll(vint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i32m1_m)))
-vint32m1_t vsll(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i32m2)))
-vint32m2_t vsll(vint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i32m2_m)))
-vint32m2_t vsll(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i32m4)))
-vint32m4_t vsll(vint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i32m4_m)))
-vint32m4_t vsll(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i32m8)))
-vint32m8_t vsll(vint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i32m8_m)))
-vint32m8_t vsll(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i32mf2)))
-vint32mf2_t vsll(vint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i32mf2_m)))
-vint32mf2_t vsll(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i64m1)))
-vint64m1_t vsll(vint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i64m1_m)))
-vint64m1_t vsll(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i64m2)))
-vint64m2_t vsll(vint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i64m2_m)))
-vint64m2_t vsll(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i64m4)))
-vint64m4_t vsll(vint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i64m4_m)))
-vint64m4_t vsll(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i64m8)))
-vint64m8_t vsll(vint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i64m8_m)))
-vint64m8_t vsll(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8m1)))
-vuint8m1_t vsll(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8m1_m)))
-vuint8m1_t vsll(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8m2)))
-vuint8m2_t vsll(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8m2_m)))
-vuint8m2_t vsll(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8m4)))
-vuint8m4_t vsll(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8m4_m)))
-vuint8m4_t vsll(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8m8)))
-vuint8m8_t vsll(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8m8_m)))
-vuint8m8_t vsll(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8mf2)))
-vuint8mf2_t vsll(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8mf2_m)))
-vuint8mf2_t vsll(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8mf4)))
-vuint8mf4_t vsll(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8mf4_m)))
-vuint8mf4_t vsll(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8mf8)))
-vuint8mf8_t vsll(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8mf8_m)))
-vuint8mf8_t vsll(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16m1)))
-vuint16m1_t vsll(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16m1_m)))
-vuint16m1_t vsll(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16m2)))
-vuint16m2_t vsll(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16m2_m)))
-vuint16m2_t vsll(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16m4)))
-vuint16m4_t vsll(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16m4_m)))
-vuint16m4_t vsll(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16m8)))
-vuint16m8_t vsll(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16m8_m)))
-vuint16m8_t vsll(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16mf2)))
-vuint16mf2_t vsll(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16mf2_m)))
-vuint16mf2_t vsll(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16mf4)))
-vuint16mf4_t vsll(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16mf4_m)))
-vuint16mf4_t vsll(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u32m1)))
-vuint32m1_t vsll(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u32m1_m)))
-vuint32m1_t vsll(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u32m2)))
-vuint32m2_t vsll(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u32m2_m)))
-vuint32m2_t vsll(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u32m4)))
-vuint32m4_t vsll(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u32m4_m)))
-vuint32m4_t vsll(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u32m8)))
-vuint32m8_t vsll(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u32m8_m)))
-vuint32m8_t vsll(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u32mf2)))
-vuint32mf2_t vsll(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u32mf2_m)))
-vuint32mf2_t vsll(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u64m1)))
-vuint64m1_t vsll(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u64m1_m)))
-vuint64m1_t vsll(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u64m2)))
-vuint64m2_t vsll(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u64m2_m)))
-vuint64m2_t vsll(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u64m4)))
-vuint64m4_t vsll(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u64m4_m)))
-vuint64m4_t vsll(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u64m8)))
-vuint64m8_t vsll(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u64m8_m)))
-vuint64m8_t vsll(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8m1)))
-vuint8m1_t vsll(vuint8m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8m1_m)))
-vuint8m1_t vsll(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8m2)))
-vuint8m2_t vsll(vuint8m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8m2_m)))
-vuint8m2_t vsll(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8m4)))
-vuint8m4_t vsll(vuint8m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8m4_m)))
-vuint8m4_t vsll(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8m8)))
-vuint8m8_t vsll(vuint8m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8m8_m)))
-vuint8m8_t vsll(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8mf2)))
-vuint8mf2_t vsll(vuint8mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8mf2_m)))
-vuint8mf2_t vsll(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8mf4)))
-vuint8mf4_t vsll(vuint8mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8mf4_m)))
-vuint8mf4_t vsll(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8mf8)))
-vuint8mf8_t vsll(vuint8mf8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8mf8_m)))
-vuint8mf8_t vsll(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16m1)))
-vuint16m1_t vsll(vuint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16m1_m)))
-vuint16m1_t vsll(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16m2)))
-vuint16m2_t vsll(vuint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16m2_m)))
-vuint16m2_t vsll(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16m4)))
-vuint16m4_t vsll(vuint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16m4_m)))
-vuint16m4_t vsll(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16m8)))
-vuint16m8_t vsll(vuint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16m8_m)))
-vuint16m8_t vsll(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16mf2)))
-vuint16mf2_t vsll(vuint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16mf2_m)))
-vuint16mf2_t vsll(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16mf4)))
-vuint16mf4_t vsll(vuint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16mf4_m)))
-vuint16mf4_t vsll(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u32m1)))
-vuint32m1_t vsll(vuint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u32m1_m)))
-vuint32m1_t vsll(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u32m2)))
-vuint32m2_t vsll(vuint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u32m2_m)))
-vuint32m2_t vsll(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u32m4)))
-vuint32m4_t vsll(vuint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u32m4_m)))
-vuint32m4_t vsll(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u32m8)))
-vuint32m8_t vsll(vuint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u32m8_m)))
-vuint32m8_t vsll(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u32mf2)))
-vuint32mf2_t vsll(vuint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u32mf2_m)))
-vuint32mf2_t vsll(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u64m1)))
-vuint64m1_t vsll(vuint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u64m1_m)))
-vuint64m1_t vsll(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u64m2)))
-vuint64m2_t vsll(vuint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u64m2_m)))
-vuint64m2_t vsll(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u64m4)))
-vuint64m4_t vsll(vuint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u64m4_m)))
-vuint64m4_t vsll(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u64m8)))
-vuint64m8_t vsll(vuint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u64m8_m)))
-vuint64m8_t vsll(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16m1)))
-void vsuxei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16m1_m)))
-void vsuxei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16m2)))
-void vsuxei16(uint16_t * op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16m2_m)))
-void vsuxei16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16m4)))
-void vsuxei16(uint16_t * op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16m4_m)))
-void vsuxei16(vbool4_t op0, uint16_t * op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16m8)))
-void vsuxei16(uint16_t * op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16m8_m)))
-void vsuxei16(vbool2_t op0, uint16_t * op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16mf2)))
-void vsuxei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16mf2_m)))
-void vsuxei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16mf4)))
-void vsuxei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16mf4_m)))
-void vsuxei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8m1)))
-vuint8m1_t vsrl(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8m1_m)))
-vuint8m1_t vsrl(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8m2)))
-vuint8m2_t vsrl(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8m2_m)))
-vuint8m2_t vsrl(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8m4)))
-vuint8m4_t vsrl(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8m4_m)))
-vuint8m4_t vsrl(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8m8)))
-vuint8m8_t vsrl(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8m8_m)))
-vuint8m8_t vsrl(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8mf2)))
-vuint8mf2_t vsrl(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8mf2_m)))
-vuint8mf2_t vsrl(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8mf4)))
-vuint8mf4_t vsrl(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8mf4_m)))
-vuint8mf4_t vsrl(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8mf8)))
-vuint8mf8_t vsrl(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8mf8_m)))
-vuint8mf8_t vsrl(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16m1)))
-vuint16m1_t vsrl(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16m1_m)))
-vuint16m1_t vsrl(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16m2)))
-vuint16m2_t vsrl(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16m2_m)))
-vuint16m2_t vsrl(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16m4)))
-vuint16m4_t vsrl(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16m4_m)))
-vuint16m4_t vsrl(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16m8)))
-vuint16m8_t vsrl(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16m8_m)))
-vuint16m8_t vsrl(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16mf2)))
-vuint16mf2_t vsrl(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16mf2_m)))
-vuint16mf2_t vsrl(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16mf4)))
-vuint16mf4_t vsrl(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16mf4_m)))
-vuint16mf4_t vsrl(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u32m1)))
-vuint32m1_t vsrl(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u32m1_m)))
-vuint32m1_t vsrl(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u32m2)))
-vuint32m2_t vsrl(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u32m2_m)))
-vuint32m2_t vsrl(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u32m4)))
-vuint32m4_t vsrl(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u32m4_m)))
-vuint32m4_t vsrl(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u32m8)))
-vuint32m8_t vsrl(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u32m8_m)))
-vuint32m8_t vsrl(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u32mf2)))
-vuint32mf2_t vsrl(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u32mf2_m)))
-vuint32mf2_t vsrl(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u64m1)))
-vuint64m1_t vsrl(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u64m1_m)))
-vuint64m1_t vsrl(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u64m2)))
-vuint64m2_t vsrl(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u64m2_m)))
-vuint64m2_t vsrl(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u64m4)))
-vuint64m4_t vsrl(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u64m4_m)))
-vuint64m4_t vsrl(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u64m8)))
-vuint64m8_t vsrl(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u64m8_m)))
-vuint64m8_t vsrl(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8m1)))
-vuint8m1_t vsrl(vuint8m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8m1_m)))
-vuint8m1_t vsrl(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8m2)))
-vuint8m2_t vsrl(vuint8m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8m2_m)))
-vuint8m2_t vsrl(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8m4)))
-vuint8m4_t vsrl(vuint8m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8m4_m)))
-vuint8m4_t vsrl(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8m8)))
-vuint8m8_t vsrl(vuint8m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8m8_m)))
-vuint8m8_t vsrl(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8mf2)))
-vuint8mf2_t vsrl(vuint8mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8mf2_m)))
-vuint8mf2_t vsrl(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8mf4)))
-vuint8mf4_t vsrl(vuint8mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8mf4_m)))
-vuint8mf4_t vsrl(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8mf8)))
-vuint8mf8_t vsrl(vuint8mf8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8mf8_m)))
-vuint8mf8_t vsrl(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16m1)))
-vuint16m1_t vsrl(vuint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16m1_m)))
-vuint16m1_t vsrl(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16m2)))
-vuint16m2_t vsrl(vuint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16m2_m)))
-vuint16m2_t vsrl(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16m4)))
-vuint16m4_t vsrl(vuint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16m4_m)))
-vuint16m4_t vsrl(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16m8)))
-vuint16m8_t vsrl(vuint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16m8_m)))
-vuint16m8_t vsrl(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16mf2)))
-vuint16mf2_t vsrl(vuint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16mf2_m)))
-vuint16mf2_t vsrl(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16mf4)))
-vuint16mf4_t vsrl(vuint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16mf4_m)))
-vuint16mf4_t vsrl(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u32m1)))
-vuint32m1_t vsrl(vuint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u32m1_m)))
-vuint32m1_t vsrl(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u32m2)))
-vuint32m2_t vsrl(vuint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u32m2_m)))
-vuint32m2_t vsrl(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u32m4)))
-vuint32m4_t vsrl(vuint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u32m4_m)))
-vuint32m4_t vsrl(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u32m8)))
-vuint32m8_t vsrl(vuint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u32m8_m)))
-vuint32m8_t vsrl(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u32mf2)))
-vuint32mf2_t vsrl(vuint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u32mf2_m)))
-vuint32mf2_t vsrl(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u64m1)))
-vuint64m1_t vsrl(vuint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u64m1_m)))
-vuint64m1_t vsrl(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u64m2)))
-vuint64m2_t vsrl(vuint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u64m2_m)))
-vuint64m2_t vsrl(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u64m4)))
-vuint64m4_t vsrl(vuint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u64m4_m)))
-vuint64m4_t vsrl(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u64m8)))
-vuint64m8_t vsrl(vuint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u64m8_m)))
-vuint64m8_t vsrl(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8m1)))
-vint8m1_t vsra(vint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8m1_m)))
-vint8m1_t vsra(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8m2)))
-vint8m2_t vsra(vint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8m2_m)))
-vint8m2_t vsra(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8m4)))
-vint8m4_t vsra(vint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8m4_m)))
-vint8m4_t vsra(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8m8)))
-vint8m8_t vsra(vint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8m8_m)))
-vint8m8_t vsra(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8mf2)))
-vint8mf2_t vsra(vint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8mf2_m)))
-vint8mf2_t vsra(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8mf4)))
-vint8mf4_t vsra(vint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8mf4_m)))
-vint8mf4_t vsra(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8mf8)))
-vint8mf8_t vsra(vint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8mf8_m)))
-vint8mf8_t vsra(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16m1)))
-vint16m1_t vsra(vint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16m1_m)))
-vint16m1_t vsra(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16m2)))
-vint16m2_t vsra(vint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16m2_m)))
-vint16m2_t vsra(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16m4)))
-vint16m4_t vsra(vint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16m4_m)))
-vint16m4_t vsra(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16m8)))
-vint16m8_t vsra(vint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16m8_m)))
-vint16m8_t vsra(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16mf2)))
-vint16mf2_t vsra(vint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16mf2_m)))
-vint16mf2_t vsra(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16mf4)))
-vint16mf4_t vsra(vint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16mf4_m)))
-vint16mf4_t vsra(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i32m1)))
-vint32m1_t vsra(vint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i32m1_m)))
-vint32m1_t vsra(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i32m2)))
-vint32m2_t vsra(vint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i32m2_m)))
-vint32m2_t vsra(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i32m4)))
-vint32m4_t vsra(vint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i32m4_m)))
-vint32m4_t vsra(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i32m8)))
-vint32m8_t vsra(vint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i32m8_m)))
-vint32m8_t vsra(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i32mf2)))
-vint32mf2_t vsra(vint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i32mf2_m)))
-vint32mf2_t vsra(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i64m1)))
-vint64m1_t vsra(vint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i64m1_m)))
-vint64m1_t vsra(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i64m2)))
-vint64m2_t vsra(vint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i64m2_m)))
-vint64m2_t vsra(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i64m4)))
-vint64m4_t vsra(vint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i64m4_m)))
-vint64m4_t vsra(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i64m8)))
-vint64m8_t vsra(vint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i64m8_m)))
-vint64m8_t vsra(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8m1)))
-vint8m1_t vsra(vint8m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8m1_m)))
-vint8m1_t vsra(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8m2)))
-vint8m2_t vsra(vint8m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8m2_m)))
-vint8m2_t vsra(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8m4)))
-vint8m4_t vsra(vint8m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8m4_m)))
-vint8m4_t vsra(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8m8)))
-vint8m8_t vsra(vint8m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8m8_m)))
-vint8m8_t vsra(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8mf2)))
-vint8mf2_t vsra(vint8mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8mf2_m)))
-vint8mf2_t vsra(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8mf4)))
-vint8mf4_t vsra(vint8mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8mf4_m)))
-vint8mf4_t vsra(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8mf8)))
-vint8mf8_t vsra(vint8mf8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8mf8_m)))
-vint8mf8_t vsra(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16m1)))
-vint16m1_t vsra(vint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16m1_m)))
-vint16m1_t vsra(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16m2)))
-vint16m2_t vsra(vint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16m2_m)))
-vint16m2_t vsra(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16m4)))
-vint16m4_t vsra(vint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16m4_m)))
-vint16m4_t vsra(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16m8)))
-vint16m8_t vsra(vint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16m8_m)))
-vint16m8_t vsra(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16mf2)))
-vint16mf2_t vsra(vint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16mf2_m)))
-vint16mf2_t vsra(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16mf4)))
-vint16mf4_t vsra(vint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16mf4_m)))
-vint16mf4_t vsra(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i32m1)))
-vint32m1_t vsra(vint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i32m1_m)))
-vint32m1_t vsra(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i32m2)))
-vint32m2_t vsra(vint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i32m2_m)))
-vint32m2_t vsra(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i32m4)))
-vint32m4_t vsra(vint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i32m4_m)))
-vint32m4_t vsra(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i32m8)))
-vint32m8_t vsra(vint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i32m8_m)))
-vint32m8_t vsra(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i32mf2)))
-vint32mf2_t vsra(vint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i32mf2_m)))
-vint32mf2_t vsra(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i64m1)))
-vint64m1_t vsra(vint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i64m1_m)))
-vint64m1_t vsra(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i64m2)))
-vint64m2_t vsra(vint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i64m2_m)))
-vint64m2_t vsra(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i64m4)))
-vint64m4_t vsra(vint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i64m4_m)))
-vint64m4_t vsra(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i64m8)))
-vint64m8_t vsra(vint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i64m8_m)))
-vint64m8_t vsra(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8m1)))
-vuint8m1_t vnsrl(vuint16m2_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8m1_m)))
-vuint8m1_t vnsrl(vbool8_t op0, vuint8m1_t op1, vuint16m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8m2)))
-vuint8m2_t vnsrl(vuint16m4_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8m2_m)))
-vuint8m2_t vnsrl(vbool4_t op0, vuint8m2_t op1, vuint16m4_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8m4)))
-vuint8m4_t vnsrl(vuint16m8_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8m4_m)))
-vuint8m4_t vnsrl(vbool2_t op0, vuint8m4_t op1, vuint16m8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8mf2)))
-vuint8mf2_t vnsrl(vuint16m1_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8mf2_m)))
-vuint8mf2_t vnsrl(vbool16_t op0, vuint8mf2_t op1, vuint16m1_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8mf4)))
-vuint8mf4_t vnsrl(vuint16mf2_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8mf4_m)))
-vuint8mf4_t vnsrl(vbool32_t op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8mf8)))
-vuint8mf8_t vnsrl(vuint16mf4_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8mf8_m)))
-vuint8mf8_t vnsrl(vbool64_t op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u16m1)))
-vuint16m1_t vnsrl(vuint32m2_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u16m1_m)))
-vuint16m1_t vnsrl(vbool16_t op0, vuint16m1_t op1, vuint32m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u16m2)))
-vuint16m2_t vnsrl(vuint32m4_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u16m2_m)))
-vuint16m2_t vnsrl(vbool8_t op0, vuint16m2_t op1, vuint32m4_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u16m4)))
-vuint16m4_t vnsrl(vuint32m8_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u16m4_m)))
-vuint16m4_t vnsrl(vbool4_t op0, vuint16m4_t op1, vuint32m8_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u16mf2)))
-vuint16mf2_t vnsrl(vuint32m1_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u16mf2_m)))
-vuint16mf2_t vnsrl(vbool32_t op0, vuint16mf2_t op1, vuint32m1_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u16mf4)))
-vuint16mf4_t vnsrl(vuint32mf2_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u16mf4_m)))
-vuint16mf4_t vnsrl(vbool64_t op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u32m1)))
-vuint32m1_t vnsrl(vuint64m2_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u32m1_m)))
-vuint32m1_t vnsrl(vbool32_t op0, vuint32m1_t op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u32m2)))
-vuint32m2_t vnsrl(vuint64m4_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u32m2_m)))
-vuint32m2_t vnsrl(vbool16_t op0, vuint32m2_t op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u32m4)))
-vuint32m4_t vnsrl(vuint64m8_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u32m4_m)))
-vuint32m4_t vnsrl(vbool8_t op0, vuint32m4_t op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u32mf2)))
-vuint32mf2_t vnsrl(vuint64m1_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u32mf2_m)))
-vuint32mf2_t vnsrl(vbool64_t op0, vuint32mf2_t op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8m1)))
-vuint8m1_t vnsrl(vuint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8m1_m)))
-vuint8m1_t vnsrl(vbool8_t op0, vuint8m1_t op1, vuint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8m2)))
-vuint8m2_t vnsrl(vuint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8m2_m)))
-vuint8m2_t vnsrl(vbool4_t op0, vuint8m2_t op1, vuint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8m4)))
-vuint8m4_t vnsrl(vuint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8m4_m)))
-vuint8m4_t vnsrl(vbool2_t op0, vuint8m4_t op1, vuint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8mf2)))
-vuint8mf2_t vnsrl(vuint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8mf2_m)))
-vuint8mf2_t vnsrl(vbool16_t op0, vuint8mf2_t op1, vuint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8mf4)))
-vuint8mf4_t vnsrl(vuint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8mf4_m)))
-vuint8mf4_t vnsrl(vbool32_t op0, vuint8mf4_t op1, vuint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8mf8)))
-vuint8mf8_t vnsrl(vuint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8mf8_m)))
-vuint8mf8_t vnsrl(vbool64_t op0, vuint8mf8_t op1, vuint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u16m1)))
-vuint16m1_t vnsrl(vuint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u16m1_m)))
-vuint16m1_t vnsrl(vbool16_t op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u16m2)))
-vuint16m2_t vnsrl(vuint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u16m2_m)))
-vuint16m2_t vnsrl(vbool8_t op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u16m4)))
-vuint16m4_t vnsrl(vuint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u16m4_m)))
-vuint16m4_t vnsrl(vbool4_t op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u16mf2)))
-vuint16mf2_t vnsrl(vuint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u16mf2_m)))
-vuint16mf2_t vnsrl(vbool32_t op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u16mf4)))
-vuint16mf4_t vnsrl(vuint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u16mf4_m)))
-vuint16mf4_t vnsrl(vbool64_t op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u32m1)))
-vuint32m1_t vnsrl(vuint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u32m1_m)))
-vuint32m1_t vnsrl(vbool32_t op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u32m2)))
-vuint32m2_t vnsrl(vuint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u32m2_m)))
-vuint32m2_t vnsrl(vbool16_t op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u32m4)))
-vuint32m4_t vnsrl(vuint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u32m4_m)))
-vuint32m4_t vnsrl(vbool8_t op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u32mf2)))
-vuint32mf2_t vnsrl(vuint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u32mf2_m)))
-vuint32mf2_t vnsrl(vbool64_t op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8m1)))
-vint8m1_t vnsra(vint16m2_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8m1_m)))
-vint8m1_t vnsra(vbool8_t op0, vint8m1_t op1, vint16m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8m2)))
-vint8m2_t vnsra(vint16m4_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8m2_m)))
-vint8m2_t vnsra(vbool4_t op0, vint8m2_t op1, vint16m4_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8m4)))
-vint8m4_t vnsra(vint16m8_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8m4_m)))
-vint8m4_t vnsra(vbool2_t op0, vint8m4_t op1, vint16m8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8mf2)))
-vint8mf2_t vnsra(vint16m1_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8mf2_m)))
-vint8mf2_t vnsra(vbool16_t op0, vint8mf2_t op1, vint16m1_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8mf4)))
-vint8mf4_t vnsra(vint16mf2_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8mf4_m)))
-vint8mf4_t vnsra(vbool32_t op0, vint8mf4_t op1, vint16mf2_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8mf8)))
-vint8mf8_t vnsra(vint16mf4_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8mf8_m)))
-vint8mf8_t vnsra(vbool64_t op0, vint8mf8_t op1, vint16mf4_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i16m1)))
-vint16m1_t vnsra(vint32m2_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i16m1_m)))
-vint16m1_t vnsra(vbool16_t op0, vint16m1_t op1, vint32m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i16m2)))
-vint16m2_t vnsra(vint32m4_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i16m2_m)))
-vint16m2_t vnsra(vbool8_t op0, vint16m2_t op1, vint32m4_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i16m4)))
-vint16m4_t vnsra(vint32m8_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i16m4_m)))
-vint16m4_t vnsra(vbool4_t op0, vint16m4_t op1, vint32m8_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i16mf2)))
-vint16mf2_t vnsra(vint32m1_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i16mf2_m)))
-vint16mf2_t vnsra(vbool32_t op0, vint16mf2_t op1, vint32m1_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i16mf4)))
-vint16mf4_t vnsra(vint32mf2_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i16mf4_m)))
-vint16mf4_t vnsra(vbool64_t op0, vint16mf4_t op1, vint32mf2_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i32m1)))
-vint32m1_t vnsra(vint64m2_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i32m1_m)))
-vint32m1_t vnsra(vbool32_t op0, vint32m1_t op1, vint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i32m2)))
-vint32m2_t vnsra(vint64m4_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i32m2_m)))
-vint32m2_t vnsra(vbool16_t op0, vint32m2_t op1, vint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i32m4)))
-vint32m4_t vnsra(vint64m8_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i32m4_m)))
-vint32m4_t vnsra(vbool8_t op0, vint32m4_t op1, vint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i32mf2)))
-vint32mf2_t vnsra(vint64m1_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i32mf2_m)))
-vint32mf2_t vnsra(vbool64_t op0, vint32mf2_t op1, vint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8m1)))
-vint8m1_t vnsra(vint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8m1_m)))
-vint8m1_t vnsra(vbool8_t op0, vint8m1_t op1, vint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8m2)))
-vint8m2_t vnsra(vint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8m2_m)))
-vint8m2_t vnsra(vbool4_t op0, vint8m2_t op1, vint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8m4)))
-vint8m4_t vnsra(vint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8m4_m)))
-vint8m4_t vnsra(vbool2_t op0, vint8m4_t op1, vint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8mf2)))
-vint8mf2_t vnsra(vint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8mf2_m)))
-vint8mf2_t vnsra(vbool16_t op0, vint8mf2_t op1, vint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8mf4)))
-vint8mf4_t vnsra(vint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8mf4_m)))
-vint8mf4_t vnsra(vbool32_t op0, vint8mf4_t op1, vint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8mf8)))
-vint8mf8_t vnsra(vint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8mf8_m)))
-vint8mf8_t vnsra(vbool64_t op0, vint8mf8_t op1, vint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i16m1)))
-vint16m1_t vnsra(vint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i16m1_m)))
-vint16m1_t vnsra(vbool16_t op0, vint16m1_t op1, vint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i16m2)))
-vint16m2_t vnsra(vint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i16m2_m)))
-vint16m2_t vnsra(vbool8_t op0, vint16m2_t op1, vint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i16m4)))
-vint16m4_t vnsra(vint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i16m4_m)))
-vint16m4_t vnsra(vbool4_t op0, vint16m4_t op1, vint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i16mf2)))
-vint16mf2_t vnsra(vint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i16mf2_m)))
-vint16mf2_t vnsra(vbool32_t op0, vint16mf2_t op1, vint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i16mf4)))
-vint16mf4_t vnsra(vint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i16mf4_m)))
-vint16mf4_t vnsra(vbool64_t op0, vint16mf4_t op1, vint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i32m1)))
-vint32m1_t vnsra(vint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i32m1_m)))
-vint32m1_t vnsra(vbool32_t op0, vint32m1_t op1, vint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i32m2)))
-vint32m2_t vnsra(vint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i32m2_m)))
-vint32m2_t vnsra(vbool16_t op0, vint32m2_t op1, vint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i32m4)))
-vint32m4_t vnsra(vint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i32m4_m)))
-vint32m4_t vnsra(vbool8_t op0, vint32m4_t op1, vint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i32mf2)))
-vint32mf2_t vnsra(vint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i32mf2_m)))
-vint32mf2_t vnsra(vbool64_t op0, vint32mf2_t op1, vint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8m1)))
-vuint8m1_t vncvt_x(vuint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8m1_m)))
-vuint8m1_t vncvt_x(vbool8_t op0, vuint8m1_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8m2)))
-vuint8m2_t vncvt_x(vuint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8m2_m)))
-vuint8m2_t vncvt_x(vbool4_t op0, vuint8m2_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8m4)))
-vuint8m4_t vncvt_x(vuint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8m4_m)))
-vuint8m4_t vncvt_x(vbool2_t op0, vuint8m4_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8mf2)))
-vuint8mf2_t vncvt_x(vuint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8mf2_m)))
-vuint8mf2_t vncvt_x(vbool16_t op0, vuint8mf2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8mf4)))
-vuint8mf4_t vncvt_x(vuint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8mf4_m)))
-vuint8mf4_t vncvt_x(vbool32_t op0, vuint8mf4_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8mf8)))
-vuint8mf8_t vncvt_x(vuint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8mf8_m)))
-vuint8mf8_t vncvt_x(vbool64_t op0, vuint8mf8_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u16m1)))
-vuint16m1_t vncvt_x(vuint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u16m1_m)))
-vuint16m1_t vncvt_x(vbool16_t op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u16m2)))
-vuint16m2_t vncvt_x(vuint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u16m2_m)))
-vuint16m2_t vncvt_x(vbool8_t op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u16m4)))
-vuint16m4_t vncvt_x(vuint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u16m4_m)))
-vuint16m4_t vncvt_x(vbool4_t op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u16mf2)))
-vuint16mf2_t vncvt_x(vuint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u16mf2_m)))
-vuint16mf2_t vncvt_x(vbool32_t op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u16mf4)))
-vuint16mf4_t vncvt_x(vuint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u16mf4_m)))
-vuint16mf4_t vncvt_x(vbool64_t op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u32m1)))
-vuint32m1_t vncvt_x(vuint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u32m1_m)))
-vuint32m1_t vncvt_x(vbool32_t op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u32m2)))
-vuint32m2_t vncvt_x(vuint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u32m2_m)))
-vuint32m2_t vncvt_x(vbool16_t op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u32m4)))
-vuint32m4_t vncvt_x(vuint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u32m4_m)))
-vuint32m4_t vncvt_x(vbool8_t op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u32mf2)))
-vuint32mf2_t vncvt_x(vuint64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u32mf2_m)))
-vuint32mf2_t vncvt_x(vbool64_t op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8m1_b8)))
-vbool8_t vmseq(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8m1_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8m2_b4)))
-vbool4_t vmseq(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8m2_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8m4_b2)))
-vbool2_t vmseq(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8m4_b2_m)))
-vbool2_t vmseq(vbool2_t op0, vbool2_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8m8_b1)))
-vbool1_t vmseq(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8m8_b1_m)))
-vbool1_t vmseq(vbool1_t op0, vbool1_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8mf2_b16)))
-vbool16_t vmseq(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8mf2_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8mf4_b32)))
-vbool32_t vmseq(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8mf4_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8mf8_b64)))
-vbool64_t vmseq(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8mf8_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16m1_b16)))
-vbool16_t vmseq(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16m1_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16m2_b8)))
-vbool8_t vmseq(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16m2_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16m4_b4)))
-vbool4_t vmseq(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16m4_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16m8_b2)))
-vbool2_t vmseq(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16m8_b2_m)))
-vbool2_t vmseq(vbool2_t op0, vbool2_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16mf2_b32)))
-vbool32_t vmseq(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16mf2_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16mf4_b64)))
-vbool64_t vmseq(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16mf4_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i32m1_b32)))
-vbool32_t vmseq(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i32m1_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i32m2_b16)))
-vbool16_t vmseq(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i32m2_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i32m4_b8)))
-vbool8_t vmseq(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i32m4_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i32m8_b4)))
-vbool4_t vmseq(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i32m8_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i32mf2_b64)))
-vbool64_t vmseq(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i32mf2_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i64m1_b64)))
-vbool64_t vmseq(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i64m1_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i64m2_b32)))
-vbool32_t vmseq(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i64m2_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i64m4_b16)))
-vbool16_t vmseq(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i64m4_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i64m8_b8)))
-vbool8_t vmseq(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i64m8_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8m1)))
-void vsse8(uint8_t * op0, ptrdiff_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8m1_m)))
-void vsse8(vbool8_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8m2)))
-void vsse8(uint8_t * op0, ptrdiff_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8m2_m)))
-void vsse8(vbool4_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8m4)))
-void vsse8(uint8_t * op0, ptrdiff_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8m4_m)))
-void vsse8(vbool2_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8m8)))
-void vsse8(uint8_t * op0, ptrdiff_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8m8_m)))
-void vsse8(vbool1_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8mf2)))
-void vsse8(uint8_t * op0, ptrdiff_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8mf2_m)))
-void vsse8(vbool16_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8mf4)))
-void vsse8(uint8_t * op0, ptrdiff_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8mf4_m)))
-void vsse8(vbool32_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8mf8)))
-void vsse8(uint8_t * op0, ptrdiff_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8mf8_m)))
-void vsse8(vbool64_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i16m1)))
-void vsuxei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i16m1_m)))
-void vsuxei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i16m2)))
-void vsuxei32(int16_t * op0, vuint32m4_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i16m2_m)))
-void vsuxei32(vbool8_t op0, int16_t * op1, vuint32m4_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i16m4)))
-void vsuxei32(int16_t * op0, vuint32m8_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i16m4_m)))
-void vsuxei32(vbool4_t op0, int16_t * op1, vuint32m8_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i16mf2)))
-void vsuxei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i16mf2_m)))
-void vsuxei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i16mf4)))
-void vsuxei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i16mf4_m)))
-void vsuxei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8m1_b8)))
-vbool8_t vmseq(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8m1_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8m2_b4)))
-vbool4_t vmseq(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8m2_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8m4_b2)))
-vbool2_t vmseq(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8m4_b2_m)))
-vbool2_t vmseq(vbool2_t op0, vbool2_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8m8_b1)))
-vbool1_t vmseq(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8m8_b1_m)))
-vbool1_t vmseq(vbool1_t op0, vbool1_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8mf2_b16)))
-vbool16_t vmseq(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8mf2_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8mf4_b32)))
-vbool32_t vmseq(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8mf4_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8mf8_b64)))
-vbool64_t vmseq(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8mf8_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16m1_b16)))
-vbool16_t vmseq(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16m1_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16m2_b8)))
-vbool8_t vmseq(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16m2_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16m4_b4)))
-vbool4_t vmseq(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16m4_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16m8_b2)))
-vbool2_t vmseq(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16m8_b2_m)))
-vbool2_t vmseq(vbool2_t op0, vbool2_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16mf2_b32)))
-vbool32_t vmseq(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16mf2_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16mf4_b64)))
-vbool64_t vmseq(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16mf4_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i32m1_b32)))
-vbool32_t vmseq(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i32m1_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i32m2_b16)))
-vbool16_t vmseq(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i32m2_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i32m4_b8)))
-vbool8_t vmseq(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i32m4_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i32m8_b4)))
-vbool4_t vmseq(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i32m8_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i32mf2_b64)))
-vbool64_t vmseq(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i32mf2_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i64m1_b64)))
-vbool64_t vmseq(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i64m1_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i64m2_b32)))
-vbool32_t vmseq(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i64m2_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i64m4_b16)))
-vbool16_t vmseq(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i64m4_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i64m8_b8)))
-vbool8_t vmseq(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i64m8_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8m1_b8)))
-vbool8_t vmseq(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8m1_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8m2_b4)))
-vbool4_t vmseq(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8m2_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8m4_b2)))
-vbool2_t vmseq(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8m4_b2_m)))
-vbool2_t vmseq(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8m8_b1)))
-vbool1_t vmseq(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8m8_b1_m)))
-vbool1_t vmseq(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8mf2_b16)))
-vbool16_t vmseq(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8mf2_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8mf4_b32)))
-vbool32_t vmseq(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8mf4_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8mf8_b64)))
-vbool64_t vmseq(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8mf8_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16m1_b16)))
-vbool16_t vmseq(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16m1_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16m2_b8)))
-vbool8_t vmseq(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16m2_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16m4_b4)))
-vbool4_t vmseq(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16m4_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16m8_b2)))
-vbool2_t vmseq(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16m8_b2_m)))
-vbool2_t vmseq(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16mf2_b32)))
-vbool32_t vmseq(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16mf2_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16mf4_b64)))
-vbool64_t vmseq(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16mf4_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u32m1_b32)))
-vbool32_t vmseq(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u32m1_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u32m2_b16)))
-vbool16_t vmseq(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u32m2_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u32m4_b8)))
-vbool8_t vmseq(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u32m4_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u32m8_b4)))
-vbool4_t vmseq(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u32m8_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u32mf2_b64)))
-vbool64_t vmseq(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u32mf2_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u64m1_b64)))
-vbool64_t vmseq(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u64m1_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u64m2_b32)))
-vbool32_t vmseq(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u64m2_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u64m4_b16)))
-vbool16_t vmseq(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u64m4_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u64m8_b8)))
-vbool8_t vmseq(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u64m8_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8m1_b8)))
-vbool8_t vmseq(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8m1_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8m2_b4)))
-vbool4_t vmseq(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8m2_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8m4_b2)))
-vbool2_t vmseq(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8m4_b2_m)))
-vbool2_t vmseq(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8m8_b1)))
-vbool1_t vmseq(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8m8_b1_m)))
-vbool1_t vmseq(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8mf2_b16)))
-vbool16_t vmseq(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8mf2_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8mf4_b32)))
-vbool32_t vmseq(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8mf4_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8mf8_b64)))
-vbool64_t vmseq(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8mf8_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16m1_b16)))
-vbool16_t vmseq(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16m1_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16m2_b8)))
-vbool8_t vmseq(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16m2_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16m4_b4)))
-vbool4_t vmseq(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16m4_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16m8_b2)))
-vbool2_t vmseq(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16m8_b2_m)))
-vbool2_t vmseq(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16mf2_b32)))
-vbool32_t vmseq(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16mf2_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16mf4_b64)))
-vbool64_t vmseq(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16mf4_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u32m1_b32)))
-vbool32_t vmseq(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u32m1_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u32m2_b16)))
-vbool16_t vmseq(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u32m2_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u32m4_b8)))
-vbool8_t vmseq(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u32m4_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u32m8_b4)))
-vbool4_t vmseq(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u32m8_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u32mf2_b64)))
-vbool64_t vmseq(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u32mf2_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u64m1_b64)))
-vbool64_t vmseq(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u64m1_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u64m2_b32)))
-vbool32_t vmseq(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u64m2_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u64m4_b16)))
-vbool16_t vmseq(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u64m4_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u64m8_b8)))
-vbool8_t vmseq(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u64m8_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8m1_b8)))
-vbool8_t vmsne(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8m1_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8m2_b4)))
-vbool4_t vmsne(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8m2_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8m4_b2)))
-vbool2_t vmsne(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8m4_b2_m)))
-vbool2_t vmsne(vbool2_t op0, vbool2_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8m8_b1)))
-vbool1_t vmsne(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8m8_b1_m)))
-vbool1_t vmsne(vbool1_t op0, vbool1_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8mf2_b16)))
-vbool16_t vmsne(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8mf2_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8mf4_b32)))
-vbool32_t vmsne(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8mf4_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8mf8_b64)))
-vbool64_t vmsne(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8mf8_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16m1_b16)))
-vbool16_t vmsne(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16m1_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16m2_b8)))
-vbool8_t vmsne(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16m2_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16m4_b4)))
-vbool4_t vmsne(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16m4_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16m8_b2)))
-vbool2_t vmsne(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16m8_b2_m)))
-vbool2_t vmsne(vbool2_t op0, vbool2_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16mf2_b32)))
-vbool32_t vmsne(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16mf2_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16mf4_b64)))
-vbool64_t vmsne(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16mf4_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i32m1_b32)))
-vbool32_t vmsne(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i32m1_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i32m2_b16)))
-vbool16_t vmsne(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i32m2_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i32m4_b8)))
-vbool8_t vmsne(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i32m4_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i32m8_b4)))
-vbool4_t vmsne(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i32m8_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i32mf2_b64)))
-vbool64_t vmsne(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i32mf2_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i64m1_b64)))
-vbool64_t vmsne(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i64m1_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i64m2_b32)))
-vbool32_t vmsne(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i64m2_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i64m4_b16)))
-vbool16_t vmsne(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i64m4_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i64m8_b8)))
-vbool8_t vmsne(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i64m8_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8m1_b8)))
-vbool8_t vmsne(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8m1_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8m2_b4)))
-vbool4_t vmsne(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8m2_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8m4_b2)))
-vbool2_t vmsne(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8m4_b2_m)))
-vbool2_t vmsne(vbool2_t op0, vbool2_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8m8_b1)))
-vbool1_t vmsne(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8m8_b1_m)))
-vbool1_t vmsne(vbool1_t op0, vbool1_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8mf2_b16)))
-vbool16_t vmsne(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8mf2_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8mf4_b32)))
-vbool32_t vmsne(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8mf4_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8mf8_b64)))
-vbool64_t vmsne(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8mf8_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16m1_b16)))
-vbool16_t vmsne(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16m1_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16m2_b8)))
-vbool8_t vmsne(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16m2_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16m4_b4)))
-vbool4_t vmsne(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16m4_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16m8_b2)))
-vbool2_t vmsne(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16m8_b2_m)))
-vbool2_t vmsne(vbool2_t op0, vbool2_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16mf2_b32)))
-vbool32_t vmsne(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16mf2_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16mf4_b64)))
-vbool64_t vmsne(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16mf4_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i32m1_b32)))
-vbool32_t vmsne(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i32m1_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i32m2_b16)))
-vbool16_t vmsne(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i32m2_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i32m4_b8)))
-vbool8_t vmsne(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i32m4_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i32m8_b4)))
-vbool4_t vmsne(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i32m8_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i32mf2_b64)))
-vbool64_t vmsne(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i32mf2_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i64m1_b64)))
-vbool64_t vmsne(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i64m1_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i64m2_b32)))
-vbool32_t vmsne(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i64m2_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i64m4_b16)))
-vbool16_t vmsne(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i64m4_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i64m8_b8)))
-vbool8_t vmsne(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i64m8_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8m1_b8)))
-vbool8_t vmsne(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8m1_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8m2_b4)))
-vbool4_t vmsne(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8m2_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8m4_b2)))
-vbool2_t vmsne(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8m4_b2_m)))
-vbool2_t vmsne(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8m8_b1)))
-vbool1_t vmsne(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8m8_b1_m)))
-vbool1_t vmsne(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8mf2_b16)))
-vbool16_t vmsne(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8mf2_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8mf4_b32)))
-vbool32_t vmsne(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8mf4_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8mf8_b64)))
-vbool64_t vmsne(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8mf8_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16m1_b16)))
-vbool16_t vmsne(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16m1_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16m2_b8)))
-vbool8_t vmsne(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16m2_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16m4_b4)))
-vbool4_t vmsne(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16m4_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16m8_b2)))
-vbool2_t vmsne(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16m8_b2_m)))
-vbool2_t vmsne(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16mf2_b32)))
-vbool32_t vmsne(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16mf2_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16mf4_b64)))
-vbool64_t vmsne(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16mf4_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u32m1_b32)))
-vbool32_t vmsne(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u32m1_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u32m2_b16)))
-vbool16_t vmsne(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u32m2_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u32m4_b8)))
-vbool8_t vmsne(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u32m4_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u32m8_b4)))
-vbool4_t vmsne(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u32m8_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u32mf2_b64)))
-vbool64_t vmsne(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u32mf2_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u64m1_b64)))
-vbool64_t vmsne(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u64m1_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u64m2_b32)))
-vbool32_t vmsne(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u64m2_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u64m4_b16)))
-vbool16_t vmsne(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u64m4_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u64m8_b8)))
-vbool8_t vmsne(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u64m8_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8m1_b8)))
-vbool8_t vmsne(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8m1_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8m2_b4)))
-vbool4_t vmsne(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8m2_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8m4_b2)))
-vbool2_t vmsne(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8m4_b2_m)))
-vbool2_t vmsne(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8m8_b1)))
-vbool1_t vmsne(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8m8_b1_m)))
-vbool1_t vmsne(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8mf2_b16)))
-vbool16_t vmsne(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8mf2_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8mf4_b32)))
-vbool32_t vmsne(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8mf4_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8mf8_b64)))
-vbool64_t vmsne(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8mf8_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16m1_b16)))
-vbool16_t vmsne(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16m1_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16m2_b8)))
-vbool8_t vmsne(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16m2_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16m4_b4)))
-vbool4_t vmsne(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16m4_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16m8_b2)))
-vbool2_t vmsne(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16m8_b2_m)))
-vbool2_t vmsne(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16mf2_b32)))
-vbool32_t vmsne(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16mf2_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16mf4_b64)))
-vbool64_t vmsne(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16mf4_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u32m1_b32)))
-vbool32_t vmsne(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u32m1_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u32m2_b16)))
-vbool16_t vmsne(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u32m2_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u32m4_b8)))
-vbool8_t vmsne(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u32m4_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u32m8_b4)))
-vbool4_t vmsne(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u32m8_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u32mf2_b64)))
-vbool64_t vmsne(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u32mf2_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u64m1_b64)))
-vbool64_t vmsne(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u64m1_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u64m2_b32)))
-vbool32_t vmsne(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u64m2_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u64m4_b16)))
-vbool16_t vmsne(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u64m4_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u64m8_b8)))
-vbool8_t vmsne(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u64m8_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8m1_b8)))
-vbool8_t vmsltu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8m1_b8_m)))
-vbool8_t vmsltu(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8m2_b4)))
-vbool4_t vmsltu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8m2_b4_m)))
-vbool4_t vmsltu(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8m4_b2)))
-vbool2_t vmsltu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8m4_b2_m)))
-vbool2_t vmsltu(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8m8_b1)))
-vbool1_t vmsltu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8m8_b1_m)))
-vbool1_t vmsltu(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8mf2_b16)))
-vbool16_t vmsltu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8mf2_b16_m)))
-vbool16_t vmsltu(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8mf4_b32)))
-vbool32_t vmsltu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8mf4_b32_m)))
-vbool32_t vmsltu(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8mf8_b64)))
-vbool64_t vmsltu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8mf8_b64_m)))
-vbool64_t vmsltu(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16m1_b16)))
-vbool16_t vmsltu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16m1_b16_m)))
-vbool16_t vmsltu(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16m2_b8)))
-vbool8_t vmsltu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16m2_b8_m)))
-vbool8_t vmsltu(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16m4_b4)))
-vbool4_t vmsltu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16m4_b4_m)))
-vbool4_t vmsltu(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16m8_b2)))
-vbool2_t vmsltu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16m8_b2_m)))
-vbool2_t vmsltu(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16mf2_b32)))
-vbool32_t vmsltu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16mf2_b32_m)))
-vbool32_t vmsltu(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16mf4_b64)))
-vbool64_t vmsltu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16mf4_b64_m)))
-vbool64_t vmsltu(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u32m1_b32)))
-vbool32_t vmsltu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u32m1_b32_m)))
-vbool32_t vmsltu(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u32m2_b16)))
-vbool16_t vmsltu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u32m2_b16_m)))
-vbool16_t vmsltu(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u32m4_b8)))
-vbool8_t vmsltu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u32m4_b8_m)))
-vbool8_t vmsltu(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u32m8_b4)))
-vbool4_t vmsltu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u32m8_b4_m)))
-vbool4_t vmsltu(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u32mf2_b64)))
-vbool64_t vmsltu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u32mf2_b64_m)))
-vbool64_t vmsltu(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u64m1_b64)))
-vbool64_t vmsltu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u64m1_b64_m)))
-vbool64_t vmsltu(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u64m2_b32)))
-vbool32_t vmsltu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u64m2_b32_m)))
-vbool32_t vmsltu(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u64m4_b16)))
-vbool16_t vmsltu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u64m4_b16_m)))
-vbool16_t vmsltu(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u64m8_b8)))
-vbool8_t vmsltu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u64m8_b8_m)))
-vbool8_t vmsltu(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8m1_b8)))
-vbool8_t vmsltu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8m1_b8_m)))
-vbool8_t vmsltu(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8m2_b4)))
-vbool4_t vmsltu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8m2_b4_m)))
-vbool4_t vmsltu(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8m4_b2)))
-vbool2_t vmsltu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8m4_b2_m)))
-vbool2_t vmsltu(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8m8_b1)))
-vbool1_t vmsltu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8m8_b1_m)))
-vbool1_t vmsltu(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8mf2_b16)))
-vbool16_t vmsltu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8mf2_b16_m)))
-vbool16_t vmsltu(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8mf4_b32)))
-vbool32_t vmsltu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8mf4_b32_m)))
-vbool32_t vmsltu(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8mf8_b64)))
-vbool64_t vmsltu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8mf8_b64_m)))
-vbool64_t vmsltu(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16m1_b16)))
-vbool16_t vmsltu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16m1_b16_m)))
-vbool16_t vmsltu(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16m2_b8)))
-vbool8_t vmsltu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16m2_b8_m)))
-vbool8_t vmsltu(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16m4_b4)))
-vbool4_t vmsltu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16m4_b4_m)))
-vbool4_t vmsltu(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16m8_b2)))
-vbool2_t vmsltu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16m8_b2_m)))
-vbool2_t vmsltu(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16mf2_b32)))
-vbool32_t vmsltu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16mf2_b32_m)))
-vbool32_t vmsltu(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16mf4_b64)))
-vbool64_t vmsltu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16mf4_b64_m)))
-vbool64_t vmsltu(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u32m1_b32)))
-vbool32_t vmsltu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u32m1_b32_m)))
-vbool32_t vmsltu(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u32m2_b16)))
-vbool16_t vmsltu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u32m2_b16_m)))
-vbool16_t vmsltu(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u32m4_b8)))
-vbool8_t vmsltu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u32m4_b8_m)))
-vbool8_t vmsltu(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u32m8_b4)))
-vbool4_t vmsltu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u32m8_b4_m)))
-vbool4_t vmsltu(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u32mf2_b64)))
-vbool64_t vmsltu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u32mf2_b64_m)))
-vbool64_t vmsltu(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u64m1_b64)))
-vbool64_t vmsltu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u64m1_b64_m)))
-vbool64_t vmsltu(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u64m2_b32)))
-vbool32_t vmsltu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u64m2_b32_m)))
-vbool32_t vmsltu(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u64m4_b16)))
-vbool16_t vmsltu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u64m4_b16_m)))
-vbool16_t vmsltu(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u64m8_b8)))
-vbool8_t vmsltu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u64m8_b8_m)))
-vbool8_t vmsltu(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8m1_b8)))
-vbool8_t vmslt(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8m1_b8_m)))
-vbool8_t vmslt(vbool8_t op0, vbool8_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8m2_b4)))
-vbool4_t vmslt(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8m2_b4_m)))
-vbool4_t vmslt(vbool4_t op0, vbool4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8m4_b2)))
-vbool2_t vmslt(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8m4_b2_m)))
-vbool2_t vmslt(vbool2_t op0, vbool2_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8m8_b1)))
-vbool1_t vmslt(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8m8_b1_m)))
-vbool1_t vmslt(vbool1_t op0, vbool1_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8mf2_b16)))
-vbool16_t vmslt(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8mf2_b16_m)))
-vbool16_t vmslt(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8mf4_b32)))
-vbool32_t vmslt(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8mf4_b32_m)))
-vbool32_t vmslt(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8mf8_b64)))
-vbool64_t vmslt(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8mf8_b64_m)))
-vbool64_t vmslt(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16m1_b16)))
-vbool16_t vmslt(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16m1_b16_m)))
-vbool16_t vmslt(vbool16_t op0, vbool16_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16m2_b8)))
-vbool8_t vmslt(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16m2_b8_m)))
-vbool8_t vmslt(vbool8_t op0, vbool8_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16m4_b4)))
-vbool4_t vmslt(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16m4_b4_m)))
-vbool4_t vmslt(vbool4_t op0, vbool4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16m8_b2)))
-vbool2_t vmslt(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16m8_b2_m)))
-vbool2_t vmslt(vbool2_t op0, vbool2_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16mf2_b32)))
-vbool32_t vmslt(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16mf2_b32_m)))
-vbool32_t vmslt(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16mf4_b64)))
-vbool64_t vmslt(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16mf4_b64_m)))
-vbool64_t vmslt(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i32m1_b32)))
-vbool32_t vmslt(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i32m1_b32_m)))
-vbool32_t vmslt(vbool32_t op0, vbool32_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i32m2_b16)))
-vbool16_t vmslt(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i32m2_b16_m)))
-vbool16_t vmslt(vbool16_t op0, vbool16_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i32m4_b8)))
-vbool8_t vmslt(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i32m4_b8_m)))
-vbool8_t vmslt(vbool8_t op0, vbool8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i32m8_b4)))
-vbool4_t vmslt(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i32m8_b4_m)))
-vbool4_t vmslt(vbool4_t op0, vbool4_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i32mf2_b64)))
-vbool64_t vmslt(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i32mf2_b64_m)))
-vbool64_t vmslt(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i64m1_b64)))
-vbool64_t vmslt(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i64m1_b64_m)))
-vbool64_t vmslt(vbool64_t op0, vbool64_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i64m2_b32)))
-vbool32_t vmslt(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i64m2_b32_m)))
-vbool32_t vmslt(vbool32_t op0, vbool32_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i64m4_b16)))
-vbool16_t vmslt(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i64m4_b16_m)))
-vbool16_t vmslt(vbool16_t op0, vbool16_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i64m8_b8)))
-vbool8_t vmslt(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i64m8_b8_m)))
-vbool8_t vmslt(vbool8_t op0, vbool8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u16m1)))
-void vsuxei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u16m1_m)))
-void vsuxei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u16m2)))
-void vsuxei32(uint16_t * op0, vuint32m4_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u16m2_m)))
-void vsuxei32(vbool8_t op0, uint16_t * op1, vuint32m4_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u16m4)))
-void vsuxei32(uint16_t * op0, vuint32m8_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u16m4_m)))
-void vsuxei32(vbool4_t op0, uint16_t * op1, vuint32m8_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u16mf2)))
-void vsuxei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u16mf2_m)))
-void vsuxei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u16mf4)))
-void vsuxei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u16mf4_m)))
-void vsuxei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8m1_b8)))
-vbool8_t vmslt(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8m1_b8_m)))
-vbool8_t vmslt(vbool8_t op0, vbool8_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8m2_b4)))
-vbool4_t vmslt(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8m2_b4_m)))
-vbool4_t vmslt(vbool4_t op0, vbool4_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8m4_b2)))
-vbool2_t vmslt(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8m4_b2_m)))
-vbool2_t vmslt(vbool2_t op0, vbool2_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8m8_b1)))
-vbool1_t vmslt(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8m8_b1_m)))
-vbool1_t vmslt(vbool1_t op0, vbool1_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8mf2_b16)))
-vbool16_t vmslt(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8mf2_b16_m)))
-vbool16_t vmslt(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8mf4_b32)))
-vbool32_t vmslt(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8mf4_b32_m)))
-vbool32_t vmslt(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8mf8_b64)))
-vbool64_t vmslt(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8mf8_b64_m)))
-vbool64_t vmslt(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16m1_b16)))
-vbool16_t vmslt(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16m1_b16_m)))
-vbool16_t vmslt(vbool16_t op0, vbool16_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16m2_b8)))
-vbool8_t vmslt(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16m2_b8_m)))
-vbool8_t vmslt(vbool8_t op0, vbool8_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16m4_b4)))
-vbool4_t vmslt(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16m4_b4_m)))
-vbool4_t vmslt(vbool4_t op0, vbool4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16m8_b2)))
-vbool2_t vmslt(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16m8_b2_m)))
-vbool2_t vmslt(vbool2_t op0, vbool2_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16mf2_b32)))
-vbool32_t vmslt(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16mf2_b32_m)))
-vbool32_t vmslt(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16mf4_b64)))
-vbool64_t vmslt(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16mf4_b64_m)))
-vbool64_t vmslt(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i32m1_b32)))
-vbool32_t vmslt(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i32m1_b32_m)))
-vbool32_t vmslt(vbool32_t op0, vbool32_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i32m2_b16)))
-vbool16_t vmslt(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i32m2_b16_m)))
-vbool16_t vmslt(vbool16_t op0, vbool16_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i32m4_b8)))
-vbool8_t vmslt(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i32m4_b8_m)))
-vbool8_t vmslt(vbool8_t op0, vbool8_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i32m8_b4)))
-vbool4_t vmslt(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i32m8_b4_m)))
-vbool4_t vmslt(vbool4_t op0, vbool4_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i32mf2_b64)))
-vbool64_t vmslt(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i32mf2_b64_m)))
-vbool64_t vmslt(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i64m1_b64)))
-vbool64_t vmslt(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i64m1_b64_m)))
-vbool64_t vmslt(vbool64_t op0, vbool64_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i64m2_b32)))
-vbool32_t vmslt(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i64m2_b32_m)))
-vbool32_t vmslt(vbool32_t op0, vbool32_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i64m4_b16)))
-vbool16_t vmslt(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i64m4_b16_m)))
-vbool16_t vmslt(vbool16_t op0, vbool16_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i64m8_b8)))
-vbool8_t vmslt(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i64m8_b8_m)))
-vbool8_t vmslt(vbool8_t op0, vbool8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8m1_b8)))
-vbool8_t vmsleu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8m1_b8_m)))
-vbool8_t vmsleu(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8m2_b4)))
-vbool4_t vmsleu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8m2_b4_m)))
-vbool4_t vmsleu(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8m4_b2)))
-vbool2_t vmsleu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8m4_b2_m)))
-vbool2_t vmsleu(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8m8_b1)))
-vbool1_t vmsleu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8m8_b1_m)))
-vbool1_t vmsleu(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8mf2_b16)))
-vbool16_t vmsleu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8mf2_b16_m)))
-vbool16_t vmsleu(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8mf4_b32)))
-vbool32_t vmsleu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8mf4_b32_m)))
-vbool32_t vmsleu(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8mf8_b64)))
-vbool64_t vmsleu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8mf8_b64_m)))
-vbool64_t vmsleu(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16m1_b16)))
-vbool16_t vmsleu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16m1_b16_m)))
-vbool16_t vmsleu(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16m2_b8)))
-vbool8_t vmsleu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16m2_b8_m)))
-vbool8_t vmsleu(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16m4_b4)))
-vbool4_t vmsleu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16m4_b4_m)))
-vbool4_t vmsleu(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16m8_b2)))
-vbool2_t vmsleu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16m8_b2_m)))
-vbool2_t vmsleu(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16mf2_b32)))
-vbool32_t vmsleu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16mf2_b32_m)))
-vbool32_t vmsleu(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16mf4_b64)))
-vbool64_t vmsleu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16mf4_b64_m)))
-vbool64_t vmsleu(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u32m1_b32)))
-vbool32_t vmsleu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u32m1_b32_m)))
-vbool32_t vmsleu(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u32m2_b16)))
-vbool16_t vmsleu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u32m2_b16_m)))
-vbool16_t vmsleu(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u32m4_b8)))
-vbool8_t vmsleu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u32m4_b8_m)))
-vbool8_t vmsleu(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u32m8_b4)))
-vbool4_t vmsleu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u32m8_b4_m)))
-vbool4_t vmsleu(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u32mf2_b64)))
-vbool64_t vmsleu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u32mf2_b64_m)))
-vbool64_t vmsleu(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u64m1_b64)))
-vbool64_t vmsleu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u64m1_b64_m)))
-vbool64_t vmsleu(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u64m2_b32)))
-vbool32_t vmsleu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u64m2_b32_m)))
-vbool32_t vmsleu(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u64m4_b16)))
-vbool16_t vmsleu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u64m4_b16_m)))
-vbool16_t vmsleu(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u64m8_b8)))
-vbool8_t vmsleu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u64m8_b8_m)))
-vbool8_t vmsleu(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8m1_b8)))
-vbool8_t vmsleu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8m1_b8_m)))
-vbool8_t vmsleu(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8m2_b4)))
-vbool4_t vmsleu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8m2_b4_m)))
-vbool4_t vmsleu(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8m4_b2)))
-vbool2_t vmsleu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8m4_b2_m)))
-vbool2_t vmsleu(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8m8_b1)))
-vbool1_t vmsleu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8m8_b1_m)))
-vbool1_t vmsleu(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8mf2_b16)))
-vbool16_t vmsleu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8mf2_b16_m)))
-vbool16_t vmsleu(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8mf4_b32)))
-vbool32_t vmsleu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8mf4_b32_m)))
-vbool32_t vmsleu(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8mf8_b64)))
-vbool64_t vmsleu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8mf8_b64_m)))
-vbool64_t vmsleu(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16m1_b16)))
-vbool16_t vmsleu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16m1_b16_m)))
-vbool16_t vmsleu(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16m2_b8)))
-vbool8_t vmsleu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16m2_b8_m)))
-vbool8_t vmsleu(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16m4_b4)))
-vbool4_t vmsleu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16m4_b4_m)))
-vbool4_t vmsleu(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16m8_b2)))
-vbool2_t vmsleu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16m8_b2_m)))
-vbool2_t vmsleu(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16mf2_b32)))
-vbool32_t vmsleu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16mf2_b32_m)))
-vbool32_t vmsleu(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16mf4_b64)))
-vbool64_t vmsleu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16mf4_b64_m)))
-vbool64_t vmsleu(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u32m1_b32)))
-vbool32_t vmsleu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u32m1_b32_m)))
-vbool32_t vmsleu(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u32m2_b16)))
-vbool16_t vmsleu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u32m2_b16_m)))
-vbool16_t vmsleu(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u32m4_b8)))
-vbool8_t vmsleu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u32m4_b8_m)))
-vbool8_t vmsleu(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u32m8_b4)))
-vbool4_t vmsleu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u32m8_b4_m)))
-vbool4_t vmsleu(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u32mf2_b64)))
-vbool64_t vmsleu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u32mf2_b64_m)))
-vbool64_t vmsleu(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u64m1_b64)))
-vbool64_t vmsleu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u64m1_b64_m)))
-vbool64_t vmsleu(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u64m2_b32)))
-vbool32_t vmsleu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u64m2_b32_m)))
-vbool32_t vmsleu(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u64m4_b16)))
-vbool16_t vmsleu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u64m4_b16_m)))
-vbool16_t vmsleu(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u64m8_b8)))
-vbool8_t vmsleu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u64m8_b8_m)))
-vbool8_t vmsleu(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8m1_b8)))
-vbool8_t vmsle(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8m1_b8_m)))
-vbool8_t vmsle(vbool8_t op0, vbool8_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8m2_b4)))
-vbool4_t vmsle(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8m2_b4_m)))
-vbool4_t vmsle(vbool4_t op0, vbool4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8m4_b2)))
-vbool2_t vmsle(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8m4_b2_m)))
-vbool2_t vmsle(vbool2_t op0, vbool2_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8m8_b1)))
-vbool1_t vmsle(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8m8_b1_m)))
-vbool1_t vmsle(vbool1_t op0, vbool1_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8mf2_b16)))
-vbool16_t vmsle(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8mf2_b16_m)))
-vbool16_t vmsle(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8mf4_b32)))
-vbool32_t vmsle(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8mf4_b32_m)))
-vbool32_t vmsle(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8mf8_b64)))
-vbool64_t vmsle(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8mf8_b64_m)))
-vbool64_t vmsle(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16m1_b16)))
-vbool16_t vmsle(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16m1_b16_m)))
-vbool16_t vmsle(vbool16_t op0, vbool16_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16m2_b8)))
-vbool8_t vmsle(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16m2_b8_m)))
-vbool8_t vmsle(vbool8_t op0, vbool8_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16m4_b4)))
-vbool4_t vmsle(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16m4_b4_m)))
-vbool4_t vmsle(vbool4_t op0, vbool4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16m8_b2)))
-vbool2_t vmsle(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16m8_b2_m)))
-vbool2_t vmsle(vbool2_t op0, vbool2_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16mf2_b32)))
-vbool32_t vmsle(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16mf2_b32_m)))
-vbool32_t vmsle(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16mf4_b64)))
-vbool64_t vmsle(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16mf4_b64_m)))
-vbool64_t vmsle(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i32m1_b32)))
-vbool32_t vmsle(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i32m1_b32_m)))
-vbool32_t vmsle(vbool32_t op0, vbool32_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i32m2_b16)))
-vbool16_t vmsle(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i32m2_b16_m)))
-vbool16_t vmsle(vbool16_t op0, vbool16_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i32m4_b8)))
-vbool8_t vmsle(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i32m4_b8_m)))
-vbool8_t vmsle(vbool8_t op0, vbool8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i32m8_b4)))
-vbool4_t vmsle(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i32m8_b4_m)))
-vbool4_t vmsle(vbool4_t op0, vbool4_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i32mf2_b64)))
-vbool64_t vmsle(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i32mf2_b64_m)))
-vbool64_t vmsle(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i64m1_b64)))
-vbool64_t vmsle(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i64m1_b64_m)))
-vbool64_t vmsle(vbool64_t op0, vbool64_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i64m2_b32)))
-vbool32_t vmsle(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i64m2_b32_m)))
-vbool32_t vmsle(vbool32_t op0, vbool32_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i64m4_b16)))
-vbool16_t vmsle(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i64m4_b16_m)))
-vbool16_t vmsle(vbool16_t op0, vbool16_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i64m8_b8)))
-vbool8_t vmsle(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i64m8_b8_m)))
-vbool8_t vmsle(vbool8_t op0, vbool8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8m1_b8)))
-vbool8_t vmsle(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8m1_b8_m)))
-vbool8_t vmsle(vbool8_t op0, vbool8_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8m2_b4)))
-vbool4_t vmsle(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8m2_b4_m)))
-vbool4_t vmsle(vbool4_t op0, vbool4_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8m4_b2)))
-vbool2_t vmsle(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8m4_b2_m)))
-vbool2_t vmsle(vbool2_t op0, vbool2_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8m8_b1)))
-vbool1_t vmsle(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8m8_b1_m)))
-vbool1_t vmsle(vbool1_t op0, vbool1_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8mf2_b16)))
-vbool16_t vmsle(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8mf2_b16_m)))
-vbool16_t vmsle(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8mf4_b32)))
-vbool32_t vmsle(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8mf4_b32_m)))
-vbool32_t vmsle(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8mf8_b64)))
-vbool64_t vmsle(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8mf8_b64_m)))
-vbool64_t vmsle(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16m1_b16)))
-vbool16_t vmsle(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16m1_b16_m)))
-vbool16_t vmsle(vbool16_t op0, vbool16_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16m2_b8)))
-vbool8_t vmsle(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16m2_b8_m)))
-vbool8_t vmsle(vbool8_t op0, vbool8_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16m4_b4)))
-vbool4_t vmsle(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16m4_b4_m)))
-vbool4_t vmsle(vbool4_t op0, vbool4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16m8_b2)))
-vbool2_t vmsle(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16m8_b2_m)))
-vbool2_t vmsle(vbool2_t op0, vbool2_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16mf2_b32)))
-vbool32_t vmsle(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16mf2_b32_m)))
-vbool32_t vmsle(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16mf4_b64)))
-vbool64_t vmsle(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16mf4_b64_m)))
-vbool64_t vmsle(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i32m1_b32)))
-vbool32_t vmsle(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i32m1_b32_m)))
-vbool32_t vmsle(vbool32_t op0, vbool32_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i32m2_b16)))
-vbool16_t vmsle(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i32m2_b16_m)))
-vbool16_t vmsle(vbool16_t op0, vbool16_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i32m4_b8)))
-vbool8_t vmsle(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i32m4_b8_m)))
-vbool8_t vmsle(vbool8_t op0, vbool8_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i32m8_b4)))
-vbool4_t vmsle(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i32m8_b4_m)))
-vbool4_t vmsle(vbool4_t op0, vbool4_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i32mf2_b64)))
-vbool64_t vmsle(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i32mf2_b64_m)))
-vbool64_t vmsle(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i64m1_b64)))
-vbool64_t vmsle(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i64m1_b64_m)))
-vbool64_t vmsle(vbool64_t op0, vbool64_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i64m2_b32)))
-vbool32_t vmsle(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i64m2_b32_m)))
-vbool32_t vmsle(vbool32_t op0, vbool32_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i64m4_b16)))
-vbool16_t vmsle(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i64m4_b16_m)))
-vbool16_t vmsle(vbool16_t op0, vbool16_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i64m8_b8)))
-vbool8_t vmsle(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i64m8_b8_m)))
-vbool8_t vmsle(vbool8_t op0, vbool8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8m1_b8)))
-vbool8_t vmsgtu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8m1_b8_m)))
-vbool8_t vmsgtu(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8m2_b4)))
-vbool4_t vmsgtu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8m2_b4_m)))
-vbool4_t vmsgtu(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8m4_b2)))
-vbool2_t vmsgtu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8m4_b2_m)))
-vbool2_t vmsgtu(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8m8_b1)))
-vbool1_t vmsgtu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8m8_b1_m)))
-vbool1_t vmsgtu(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8mf2_b16)))
-vbool16_t vmsgtu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8mf2_b16_m)))
-vbool16_t vmsgtu(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8mf4_b32)))
-vbool32_t vmsgtu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8mf4_b32_m)))
-vbool32_t vmsgtu(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8mf8_b64)))
-vbool64_t vmsgtu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8mf8_b64_m)))
-vbool64_t vmsgtu(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16m1_b16)))
-vbool16_t vmsgtu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16m1_b16_m)))
-vbool16_t vmsgtu(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16m2_b8)))
-vbool8_t vmsgtu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16m2_b8_m)))
-vbool8_t vmsgtu(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16m4_b4)))
-vbool4_t vmsgtu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16m4_b4_m)))
-vbool4_t vmsgtu(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16m8_b2)))
-vbool2_t vmsgtu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16m8_b2_m)))
-vbool2_t vmsgtu(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16mf2_b32)))
-vbool32_t vmsgtu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16mf2_b32_m)))
-vbool32_t vmsgtu(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16mf4_b64)))
-vbool64_t vmsgtu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16mf4_b64_m)))
-vbool64_t vmsgtu(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u32m1_b32)))
-vbool32_t vmsgtu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u32m1_b32_m)))
-vbool32_t vmsgtu(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u32m2_b16)))
-vbool16_t vmsgtu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u32m2_b16_m)))
-vbool16_t vmsgtu(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u32m4_b8)))
-vbool8_t vmsgtu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u32m4_b8_m)))
-vbool8_t vmsgtu(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u32m8_b4)))
-vbool4_t vmsgtu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u32m8_b4_m)))
-vbool4_t vmsgtu(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u32mf2_b64)))
-vbool64_t vmsgtu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u32mf2_b64_m)))
-vbool64_t vmsgtu(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u64m1_b64)))
-vbool64_t vmsgtu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u64m1_b64_m)))
-vbool64_t vmsgtu(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u64m2_b32)))
-vbool32_t vmsgtu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u64m2_b32_m)))
-vbool32_t vmsgtu(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u64m4_b16)))
-vbool16_t vmsgtu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u64m4_b16_m)))
-vbool16_t vmsgtu(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u64m8_b8)))
-vbool8_t vmsgtu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u64m8_b8_m)))
-vbool8_t vmsgtu(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8m1_b8)))
-vbool8_t vmsgtu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8m1_b8_m)))
-vbool8_t vmsgtu(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8m2_b4)))
-vbool4_t vmsgtu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8m2_b4_m)))
-vbool4_t vmsgtu(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8m4_b2)))
-vbool2_t vmsgtu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8m4_b2_m)))
-vbool2_t vmsgtu(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8m8_b1)))
-vbool1_t vmsgtu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8m8_b1_m)))
-vbool1_t vmsgtu(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8mf2_b16)))
-vbool16_t vmsgtu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8mf2_b16_m)))
-vbool16_t vmsgtu(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8mf4_b32)))
-vbool32_t vmsgtu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8mf4_b32_m)))
-vbool32_t vmsgtu(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8mf8_b64)))
-vbool64_t vmsgtu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8mf8_b64_m)))
-vbool64_t vmsgtu(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16m1_b16)))
-vbool16_t vmsgtu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16m1_b16_m)))
-vbool16_t vmsgtu(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16m2_b8)))
-vbool8_t vmsgtu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16m2_b8_m)))
-vbool8_t vmsgtu(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16m4_b4)))
-vbool4_t vmsgtu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16m4_b4_m)))
-vbool4_t vmsgtu(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16m8_b2)))
-vbool2_t vmsgtu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16m8_b2_m)))
-vbool2_t vmsgtu(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16mf2_b32)))
-vbool32_t vmsgtu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16mf2_b32_m)))
-vbool32_t vmsgtu(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16mf4_b64)))
-vbool64_t vmsgtu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16mf4_b64_m)))
-vbool64_t vmsgtu(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u32m1_b32)))
-vbool32_t vmsgtu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u32m1_b32_m)))
-vbool32_t vmsgtu(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u32m2_b16)))
-vbool16_t vmsgtu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u32m2_b16_m)))
-vbool16_t vmsgtu(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u32m4_b8)))
-vbool8_t vmsgtu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u32m4_b8_m)))
-vbool8_t vmsgtu(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u32m8_b4)))
-vbool4_t vmsgtu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u32m8_b4_m)))
-vbool4_t vmsgtu(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u32mf2_b64)))
-vbool64_t vmsgtu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u32mf2_b64_m)))
-vbool64_t vmsgtu(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u64m1_b64)))
-vbool64_t vmsgtu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u64m1_b64_m)))
-vbool64_t vmsgtu(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u64m2_b32)))
-vbool32_t vmsgtu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u64m2_b32_m)))
-vbool32_t vmsgtu(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u64m4_b16)))
-vbool16_t vmsgtu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u64m4_b16_m)))
-vbool16_t vmsgtu(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u64m8_b8)))
-vbool8_t vmsgtu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u64m8_b8_m)))
-vbool8_t vmsgtu(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8m1_b8)))
-vbool8_t vmsgt(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8m1_b8_m)))
-vbool8_t vmsgt(vbool8_t op0, vbool8_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8m2_b4)))
-vbool4_t vmsgt(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8m2_b4_m)))
-vbool4_t vmsgt(vbool4_t op0, vbool4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8m4_b2)))
-vbool2_t vmsgt(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8m4_b2_m)))
-vbool2_t vmsgt(vbool2_t op0, vbool2_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8m8_b1)))
-vbool1_t vmsgt(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8m8_b1_m)))
-vbool1_t vmsgt(vbool1_t op0, vbool1_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8mf2_b16)))
-vbool16_t vmsgt(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8mf2_b16_m)))
-vbool16_t vmsgt(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8mf4_b32)))
-vbool32_t vmsgt(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8mf4_b32_m)))
-vbool32_t vmsgt(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8mf8_b64)))
-vbool64_t vmsgt(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8mf8_b64_m)))
-vbool64_t vmsgt(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16m1_b16)))
-vbool16_t vmsgt(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16m1_b16_m)))
-vbool16_t vmsgt(vbool16_t op0, vbool16_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16m2_b8)))
-vbool8_t vmsgt(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16m2_b8_m)))
-vbool8_t vmsgt(vbool8_t op0, vbool8_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16m4_b4)))
-vbool4_t vmsgt(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16m4_b4_m)))
-vbool4_t vmsgt(vbool4_t op0, vbool4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16m8_b2)))
-vbool2_t vmsgt(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16m8_b2_m)))
-vbool2_t vmsgt(vbool2_t op0, vbool2_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16mf2_b32)))
-vbool32_t vmsgt(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16mf2_b32_m)))
-vbool32_t vmsgt(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16mf4_b64)))
-vbool64_t vmsgt(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16mf4_b64_m)))
-vbool64_t vmsgt(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i32m1_b32)))
-vbool32_t vmsgt(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i32m1_b32_m)))
-vbool32_t vmsgt(vbool32_t op0, vbool32_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i32m2_b16)))
-vbool16_t vmsgt(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i32m2_b16_m)))
-vbool16_t vmsgt(vbool16_t op0, vbool16_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i32m4_b8)))
-vbool8_t vmsgt(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i32m4_b8_m)))
-vbool8_t vmsgt(vbool8_t op0, vbool8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i32m8_b4)))
-vbool4_t vmsgt(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i32m8_b4_m)))
-vbool4_t vmsgt(vbool4_t op0, vbool4_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i32mf2_b64)))
-vbool64_t vmsgt(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i32mf2_b64_m)))
-vbool64_t vmsgt(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i64m1_b64)))
-vbool64_t vmsgt(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i64m1_b64_m)))
-vbool64_t vmsgt(vbool64_t op0, vbool64_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i64m2_b32)))
-vbool32_t vmsgt(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i64m2_b32_m)))
-vbool32_t vmsgt(vbool32_t op0, vbool32_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i64m4_b16)))
-vbool16_t vmsgt(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i64m4_b16_m)))
-vbool16_t vmsgt(vbool16_t op0, vbool16_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i64m8_b8)))
-vbool8_t vmsgt(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i64m8_b8_m)))
-vbool8_t vmsgt(vbool8_t op0, vbool8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8m1_b8)))
-vbool8_t vmsgt(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8m1_b8_m)))
-vbool8_t vmsgt(vbool8_t op0, vbool8_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8m2_b4)))
-vbool4_t vmsgt(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8m2_b4_m)))
-vbool4_t vmsgt(vbool4_t op0, vbool4_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8m4_b2)))
-vbool2_t vmsgt(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8m4_b2_m)))
-vbool2_t vmsgt(vbool2_t op0, vbool2_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8m8_b1)))
-vbool1_t vmsgt(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8m8_b1_m)))
-vbool1_t vmsgt(vbool1_t op0, vbool1_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8mf2_b16)))
-vbool16_t vmsgt(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8mf2_b16_m)))
-vbool16_t vmsgt(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8mf4_b32)))
-vbool32_t vmsgt(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8mf4_b32_m)))
-vbool32_t vmsgt(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8mf8_b64)))
-vbool64_t vmsgt(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8mf8_b64_m)))
-vbool64_t vmsgt(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16m1_b16)))
-vbool16_t vmsgt(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16m1_b16_m)))
-vbool16_t vmsgt(vbool16_t op0, vbool16_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16m2_b8)))
-vbool8_t vmsgt(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16m2_b8_m)))
-vbool8_t vmsgt(vbool8_t op0, vbool8_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16m4_b4)))
-vbool4_t vmsgt(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16m4_b4_m)))
-vbool4_t vmsgt(vbool4_t op0, vbool4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16m8_b2)))
-vbool2_t vmsgt(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16m8_b2_m)))
-vbool2_t vmsgt(vbool2_t op0, vbool2_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16mf2_b32)))
-vbool32_t vmsgt(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16mf2_b32_m)))
-vbool32_t vmsgt(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16mf4_b64)))
-vbool64_t vmsgt(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16mf4_b64_m)))
-vbool64_t vmsgt(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i32m1_b32)))
-vbool32_t vmsgt(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i32m1_b32_m)))
-vbool32_t vmsgt(vbool32_t op0, vbool32_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i32m2_b16)))
-vbool16_t vmsgt(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i32m2_b16_m)))
-vbool16_t vmsgt(vbool16_t op0, vbool16_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i32m4_b8)))
-vbool8_t vmsgt(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i32m4_b8_m)))
-vbool8_t vmsgt(vbool8_t op0, vbool8_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i32m8_b4)))
-vbool4_t vmsgt(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i32m8_b4_m)))
-vbool4_t vmsgt(vbool4_t op0, vbool4_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i32mf2_b64)))
-vbool64_t vmsgt(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i32mf2_b64_m)))
-vbool64_t vmsgt(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i64m1_b64)))
-vbool64_t vmsgt(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i64m1_b64_m)))
-vbool64_t vmsgt(vbool64_t op0, vbool64_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i64m2_b32)))
-vbool32_t vmsgt(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i64m2_b32_m)))
-vbool32_t vmsgt(vbool32_t op0, vbool32_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i64m4_b16)))
-vbool16_t vmsgt(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i64m4_b16_m)))
-vbool16_t vmsgt(vbool16_t op0, vbool16_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i64m8_b8)))
-vbool8_t vmsgt(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i64m8_b8_m)))
-vbool8_t vmsgt(vbool8_t op0, vbool8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8m1_b8)))
-vbool8_t vmsgeu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8m1_b8_m)))
-vbool8_t vmsgeu(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8m2_b4)))
-vbool4_t vmsgeu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8m2_b4_m)))
-vbool4_t vmsgeu(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8m4_b2)))
-vbool2_t vmsgeu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8m4_b2_m)))
-vbool2_t vmsgeu(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8m8_b1)))
-vbool1_t vmsgeu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8m8_b1_m)))
-vbool1_t vmsgeu(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8mf2_b16)))
-vbool16_t vmsgeu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8mf2_b16_m)))
-vbool16_t vmsgeu(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8mf4_b32)))
-vbool32_t vmsgeu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8mf4_b32_m)))
-vbool32_t vmsgeu(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8mf8_b64)))
-vbool64_t vmsgeu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8mf8_b64_m)))
-vbool64_t vmsgeu(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16m1_b16)))
-vbool16_t vmsgeu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16m1_b16_m)))
-vbool16_t vmsgeu(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16m2_b8)))
-vbool8_t vmsgeu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16m2_b8_m)))
-vbool8_t vmsgeu(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16m4_b4)))
-vbool4_t vmsgeu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16m4_b4_m)))
-vbool4_t vmsgeu(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16m8_b2)))
-vbool2_t vmsgeu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16m8_b2_m)))
-vbool2_t vmsgeu(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16mf2_b32)))
-vbool32_t vmsgeu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16mf2_b32_m)))
-vbool32_t vmsgeu(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16mf4_b64)))
-vbool64_t vmsgeu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16mf4_b64_m)))
-vbool64_t vmsgeu(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u32m1_b32)))
-vbool32_t vmsgeu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u32m1_b32_m)))
-vbool32_t vmsgeu(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u32m2_b16)))
-vbool16_t vmsgeu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u32m2_b16_m)))
-vbool16_t vmsgeu(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u32m4_b8)))
-vbool8_t vmsgeu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u32m4_b8_m)))
-vbool8_t vmsgeu(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u32m8_b4)))
-vbool4_t vmsgeu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u32m8_b4_m)))
-vbool4_t vmsgeu(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u32mf2_b64)))
-vbool64_t vmsgeu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u32mf2_b64_m)))
-vbool64_t vmsgeu(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u64m1_b64)))
-vbool64_t vmsgeu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u64m1_b64_m)))
-vbool64_t vmsgeu(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u64m2_b32)))
-vbool32_t vmsgeu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u64m2_b32_m)))
-vbool32_t vmsgeu(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u64m4_b16)))
-vbool16_t vmsgeu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u64m4_b16_m)))
-vbool16_t vmsgeu(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u64m8_b8)))
-vbool8_t vmsgeu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u64m8_b8_m)))
-vbool8_t vmsgeu(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i16m1)))
-void vsuxei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i16m1_m)))
-void vsuxei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i16m2)))
-void vsuxei64(int16_t * op0, vuint64m8_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i16m2_m)))
-void vsuxei64(vbool8_t op0, int16_t * op1, vuint64m8_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i16mf2)))
-void vsuxei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i16mf2_m)))
-void vsuxei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i16mf4)))
-void vsuxei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i16mf4_m)))
-void vsuxei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8m1_b8)))
-vbool8_t vmsgeu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8m1_b8_m)))
-vbool8_t vmsgeu(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8m2_b4)))
-vbool4_t vmsgeu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8m2_b4_m)))
-vbool4_t vmsgeu(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8m4_b2)))
-vbool2_t vmsgeu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8m4_b2_m)))
-vbool2_t vmsgeu(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8m8_b1)))
-vbool1_t vmsgeu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8m8_b1_m)))
-vbool1_t vmsgeu(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8mf2_b16)))
-vbool16_t vmsgeu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8mf2_b16_m)))
-vbool16_t vmsgeu(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8mf4_b32)))
-vbool32_t vmsgeu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8mf4_b32_m)))
-vbool32_t vmsgeu(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8mf8_b64)))
-vbool64_t vmsgeu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8mf8_b64_m)))
-vbool64_t vmsgeu(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16m1_b16)))
-vbool16_t vmsgeu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16m1_b16_m)))
-vbool16_t vmsgeu(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16m2_b8)))
-vbool8_t vmsgeu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16m2_b8_m)))
-vbool8_t vmsgeu(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16m4_b4)))
-vbool4_t vmsgeu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16m4_b4_m)))
-vbool4_t vmsgeu(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16m8_b2)))
-vbool2_t vmsgeu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16m8_b2_m)))
-vbool2_t vmsgeu(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16mf2_b32)))
-vbool32_t vmsgeu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16mf2_b32_m)))
-vbool32_t vmsgeu(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16mf4_b64)))
-vbool64_t vmsgeu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16mf4_b64_m)))
-vbool64_t vmsgeu(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u32m1_b32)))
-vbool32_t vmsgeu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u32m1_b32_m)))
-vbool32_t vmsgeu(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u32m2_b16)))
-vbool16_t vmsgeu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u32m2_b16_m)))
-vbool16_t vmsgeu(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u32m4_b8)))
-vbool8_t vmsgeu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u32m4_b8_m)))
-vbool8_t vmsgeu(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u32m8_b4)))
-vbool4_t vmsgeu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u32m8_b4_m)))
-vbool4_t vmsgeu(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u32mf2_b64)))
-vbool64_t vmsgeu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u32mf2_b64_m)))
-vbool64_t vmsgeu(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u64m1_b64)))
-vbool64_t vmsgeu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u64m1_b64_m)))
-vbool64_t vmsgeu(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u64m2_b32)))
-vbool32_t vmsgeu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u64m2_b32_m)))
-vbool32_t vmsgeu(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u64m4_b16)))
-vbool16_t vmsgeu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u64m4_b16_m)))
-vbool16_t vmsgeu(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u64m8_b8)))
-vbool8_t vmsgeu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u64m8_b8_m)))
-vbool8_t vmsgeu(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8m1_b8)))
-vbool8_t vmsge(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8m1_b8_m)))
-vbool8_t vmsge(vbool8_t op0, vbool8_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8m2_b4)))
-vbool4_t vmsge(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8m2_b4_m)))
-vbool4_t vmsge(vbool4_t op0, vbool4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8m4_b2)))
-vbool2_t vmsge(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8m4_b2_m)))
-vbool2_t vmsge(vbool2_t op0, vbool2_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8m8_b1)))
-vbool1_t vmsge(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8m8_b1_m)))
-vbool1_t vmsge(vbool1_t op0, vbool1_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8mf2_b16)))
-vbool16_t vmsge(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8mf2_b16_m)))
-vbool16_t vmsge(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8mf4_b32)))
-vbool32_t vmsge(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8mf4_b32_m)))
-vbool32_t vmsge(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8mf8_b64)))
-vbool64_t vmsge(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8mf8_b64_m)))
-vbool64_t vmsge(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16m1_b16)))
-vbool16_t vmsge(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16m1_b16_m)))
-vbool16_t vmsge(vbool16_t op0, vbool16_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16m2_b8)))
-vbool8_t vmsge(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16m2_b8_m)))
-vbool8_t vmsge(vbool8_t op0, vbool8_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16m4_b4)))
-vbool4_t vmsge(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16m4_b4_m)))
-vbool4_t vmsge(vbool4_t op0, vbool4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16m8_b2)))
-vbool2_t vmsge(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16m8_b2_m)))
-vbool2_t vmsge(vbool2_t op0, vbool2_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16mf2_b32)))
-vbool32_t vmsge(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16mf2_b32_m)))
-vbool32_t vmsge(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16mf4_b64)))
-vbool64_t vmsge(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16mf4_b64_m)))
-vbool64_t vmsge(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i32m1_b32)))
-vbool32_t vmsge(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i32m1_b32_m)))
-vbool32_t vmsge(vbool32_t op0, vbool32_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i32m2_b16)))
-vbool16_t vmsge(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i32m2_b16_m)))
-vbool16_t vmsge(vbool16_t op0, vbool16_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i32m4_b8)))
-vbool8_t vmsge(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i32m4_b8_m)))
-vbool8_t vmsge(vbool8_t op0, vbool8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i32m8_b4)))
-vbool4_t vmsge(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i32m8_b4_m)))
-vbool4_t vmsge(vbool4_t op0, vbool4_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i32mf2_b64)))
-vbool64_t vmsge(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i32mf2_b64_m)))
-vbool64_t vmsge(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i64m1_b64)))
-vbool64_t vmsge(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i64m1_b64_m)))
-vbool64_t vmsge(vbool64_t op0, vbool64_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i64m2_b32)))
-vbool32_t vmsge(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i64m2_b32_m)))
-vbool32_t vmsge(vbool32_t op0, vbool32_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i64m4_b16)))
-vbool16_t vmsge(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i64m4_b16_m)))
-vbool16_t vmsge(vbool16_t op0, vbool16_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i64m8_b8)))
-vbool8_t vmsge(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i64m8_b8_m)))
-vbool8_t vmsge(vbool8_t op0, vbool8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8m1_b8)))
-vbool8_t vmsge(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8m1_b8_m)))
-vbool8_t vmsge(vbool8_t op0, vbool8_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8m2_b4)))
-vbool4_t vmsge(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8m2_b4_m)))
-vbool4_t vmsge(vbool4_t op0, vbool4_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8m4_b2)))
-vbool2_t vmsge(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8m4_b2_m)))
-vbool2_t vmsge(vbool2_t op0, vbool2_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8m8_b1)))
-vbool1_t vmsge(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8m8_b1_m)))
-vbool1_t vmsge(vbool1_t op0, vbool1_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8mf2_b16)))
-vbool16_t vmsge(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8mf2_b16_m)))
-vbool16_t vmsge(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8mf4_b32)))
-vbool32_t vmsge(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8mf4_b32_m)))
-vbool32_t vmsge(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8mf8_b64)))
-vbool64_t vmsge(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8mf8_b64_m)))
-vbool64_t vmsge(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16m1_b16)))
-vbool16_t vmsge(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16m1_b16_m)))
-vbool16_t vmsge(vbool16_t op0, vbool16_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16m2_b8)))
-vbool8_t vmsge(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16m2_b8_m)))
-vbool8_t vmsge(vbool8_t op0, vbool8_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16m4_b4)))
-vbool4_t vmsge(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16m4_b4_m)))
-vbool4_t vmsge(vbool4_t op0, vbool4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16m8_b2)))
-vbool2_t vmsge(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16m8_b2_m)))
-vbool2_t vmsge(vbool2_t op0, vbool2_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16mf2_b32)))
-vbool32_t vmsge(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16mf2_b32_m)))
-vbool32_t vmsge(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16mf4_b64)))
-vbool64_t vmsge(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16mf4_b64_m)))
-vbool64_t vmsge(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i32m1_b32)))
-vbool32_t vmsge(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i32m1_b32_m)))
-vbool32_t vmsge(vbool32_t op0, vbool32_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i32m2_b16)))
-vbool16_t vmsge(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i32m2_b16_m)))
-vbool16_t vmsge(vbool16_t op0, vbool16_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i32m4_b8)))
-vbool8_t vmsge(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i32m4_b8_m)))
-vbool8_t vmsge(vbool8_t op0, vbool8_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i32m8_b4)))
-vbool4_t vmsge(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i32m8_b4_m)))
-vbool4_t vmsge(vbool4_t op0, vbool4_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i32mf2_b64)))
-vbool64_t vmsge(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i32mf2_b64_m)))
-vbool64_t vmsge(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i64m1_b64)))
-vbool64_t vmsge(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i64m1_b64_m)))
-vbool64_t vmsge(vbool64_t op0, vbool64_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i64m2_b32)))
-vbool32_t vmsge(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i64m2_b32_m)))
-vbool32_t vmsge(vbool32_t op0, vbool32_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i64m4_b16)))
-vbool16_t vmsge(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i64m4_b16_m)))
-vbool16_t vmsge(vbool16_t op0, vbool16_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i64m8_b8)))
-vbool8_t vmsge(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i64m8_b8_m)))
-vbool8_t vmsge(vbool8_t op0, vbool8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8m1)))
-vuint8m1_t vminu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8m1_m)))
-vuint8m1_t vminu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8m2)))
-vuint8m2_t vminu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8m2_m)))
-vuint8m2_t vminu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8m4)))
-vuint8m4_t vminu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8m4_m)))
-vuint8m4_t vminu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8m8)))
-vuint8m8_t vminu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8m8_m)))
-vuint8m8_t vminu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8mf2)))
-vuint8mf2_t vminu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8mf2_m)))
-vuint8mf2_t vminu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8mf4)))
-vuint8mf4_t vminu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8mf4_m)))
-vuint8mf4_t vminu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8mf8)))
-vuint8mf8_t vminu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8mf8_m)))
-vuint8mf8_t vminu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16m1)))
-vuint16m1_t vminu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16m1_m)))
-vuint16m1_t vminu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16m2)))
-vuint16m2_t vminu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16m2_m)))
-vuint16m2_t vminu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16m4)))
-vuint16m4_t vminu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16m4_m)))
-vuint16m4_t vminu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16m8)))
-vuint16m8_t vminu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16m8_m)))
-vuint16m8_t vminu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16mf2)))
-vuint16mf2_t vminu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16mf2_m)))
-vuint16mf2_t vminu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16mf4)))
-vuint16mf4_t vminu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16mf4_m)))
-vuint16mf4_t vminu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u32m1)))
-vuint32m1_t vminu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u32m1_m)))
-vuint32m1_t vminu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u32m2)))
-vuint32m2_t vminu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u32m2_m)))
-vuint32m2_t vminu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u32m4)))
-vuint32m4_t vminu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u32m4_m)))
-vuint32m4_t vminu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u32m8)))
-vuint32m8_t vminu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u32m8_m)))
-vuint32m8_t vminu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u32mf2)))
-vuint32mf2_t vminu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u32mf2_m)))
-vuint32mf2_t vminu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u64m1)))
-vuint64m1_t vminu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u64m1_m)))
-vuint64m1_t vminu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u64m2)))
-vuint64m2_t vminu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u64m2_m)))
-vuint64m2_t vminu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u64m4)))
-vuint64m4_t vminu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u64m4_m)))
-vuint64m4_t vminu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u64m8)))
-vuint64m8_t vminu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u64m8_m)))
-vuint64m8_t vminu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8m1)))
-vuint8m1_t vminu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8m1_m)))
-vuint8m1_t vminu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8m2)))
-vuint8m2_t vminu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8m2_m)))
-vuint8m2_t vminu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8m4)))
-vuint8m4_t vminu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8m4_m)))
-vuint8m4_t vminu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8m8)))
-vuint8m8_t vminu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8m8_m)))
-vuint8m8_t vminu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8mf2)))
-vuint8mf2_t vminu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8mf2_m)))
-vuint8mf2_t vminu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8mf4)))
-vuint8mf4_t vminu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8mf4_m)))
-vuint8mf4_t vminu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8mf8)))
-vuint8mf8_t vminu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8mf8_m)))
-vuint8mf8_t vminu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16m1)))
-vuint16m1_t vminu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16m1_m)))
-vuint16m1_t vminu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16m2)))
-vuint16m2_t vminu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16m2_m)))
-vuint16m2_t vminu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16m4)))
-vuint16m4_t vminu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16m4_m)))
-vuint16m4_t vminu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16m8)))
-vuint16m8_t vminu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16m8_m)))
-vuint16m8_t vminu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16mf2)))
-vuint16mf2_t vminu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16mf2_m)))
-vuint16mf2_t vminu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16mf4)))
-vuint16mf4_t vminu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16mf4_m)))
-vuint16mf4_t vminu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u32m1)))
-vuint32m1_t vminu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u32m1_m)))
-vuint32m1_t vminu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u32m2)))
-vuint32m2_t vminu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u32m2_m)))
-vuint32m2_t vminu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u32m4)))
-vuint32m4_t vminu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u32m4_m)))
-vuint32m4_t vminu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u32m8)))
-vuint32m8_t vminu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u32m8_m)))
-vuint32m8_t vminu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u32mf2)))
-vuint32mf2_t vminu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u32mf2_m)))
-vuint32mf2_t vminu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u64m1)))
-vuint64m1_t vminu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u64m1_m)))
-vuint64m1_t vminu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u64m2)))
-vuint64m2_t vminu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u64m2_m)))
-vuint64m2_t vminu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u64m4)))
-vuint64m4_t vminu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u64m4_m)))
-vuint64m4_t vminu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u64m8)))
-vuint64m8_t vminu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u64m8_m)))
-vuint64m8_t vminu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8m1)))
-vint8m1_t vmin(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8m1_m)))
-vint8m1_t vmin(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8m2)))
-vint8m2_t vmin(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8m2_m)))
-vint8m2_t vmin(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8m4)))
-vint8m4_t vmin(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8m4_m)))
-vint8m4_t vmin(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8m8)))
-vint8m8_t vmin(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8m8_m)))
-vint8m8_t vmin(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8mf2)))
-vint8mf2_t vmin(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8mf2_m)))
-vint8mf2_t vmin(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8mf4)))
-vint8mf4_t vmin(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8mf4_m)))
-vint8mf4_t vmin(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8mf8)))
-vint8mf8_t vmin(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8mf8_m)))
-vint8mf8_t vmin(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16m1)))
-vint16m1_t vmin(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16m1_m)))
-vint16m1_t vmin(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16m2)))
-vint16m2_t vmin(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16m2_m)))
-vint16m2_t vmin(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16m4)))
-vint16m4_t vmin(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16m4_m)))
-vint16m4_t vmin(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16m8)))
-vint16m8_t vmin(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16m8_m)))
-vint16m8_t vmin(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16mf2)))
-vint16mf2_t vmin(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16mf2_m)))
-vint16mf2_t vmin(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16mf4)))
-vint16mf4_t vmin(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16mf4_m)))
-vint16mf4_t vmin(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i32m1)))
-vint32m1_t vmin(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i32m1_m)))
-vint32m1_t vmin(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i32m2)))
-vint32m2_t vmin(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i32m2_m)))
-vint32m2_t vmin(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i32m4)))
-vint32m4_t vmin(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i32m4_m)))
-vint32m4_t vmin(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i32m8)))
-vint32m8_t vmin(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i32m8_m)))
-vint32m8_t vmin(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i32mf2)))
-vint32mf2_t vmin(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i32mf2_m)))
-vint32mf2_t vmin(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i64m1)))
-vint64m1_t vmin(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i64m1_m)))
-vint64m1_t vmin(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i64m2)))
-vint64m2_t vmin(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i64m2_m)))
-vint64m2_t vmin(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i64m4)))
-vint64m4_t vmin(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i64m4_m)))
-vint64m4_t vmin(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i64m8)))
-vint64m8_t vmin(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i64m8_m)))
-vint64m8_t vmin(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8m1)))
-vint8m1_t vmin(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8m1_m)))
-vint8m1_t vmin(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8m2)))
-vint8m2_t vmin(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8m2_m)))
-vint8m2_t vmin(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8m4)))
-vint8m4_t vmin(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8m4_m)))
-vint8m4_t vmin(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8m8)))
-vint8m8_t vmin(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8m8_m)))
-vint8m8_t vmin(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8mf2)))
-vint8mf2_t vmin(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8mf2_m)))
-vint8mf2_t vmin(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8mf4)))
-vint8mf4_t vmin(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8mf4_m)))
-vint8mf4_t vmin(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8mf8)))
-vint8mf8_t vmin(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8mf8_m)))
-vint8mf8_t vmin(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16m1)))
-vint16m1_t vmin(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16m1_m)))
-vint16m1_t vmin(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16m2)))
-vint16m2_t vmin(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16m2_m)))
-vint16m2_t vmin(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16m4)))
-vint16m4_t vmin(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16m4_m)))
-vint16m4_t vmin(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16m8)))
-vint16m8_t vmin(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16m8_m)))
-vint16m8_t vmin(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16mf2)))
-vint16mf2_t vmin(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16mf2_m)))
-vint16mf2_t vmin(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16mf4)))
-vint16mf4_t vmin(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16mf4_m)))
-vint16mf4_t vmin(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i32m1)))
-vint32m1_t vmin(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i32m1_m)))
-vint32m1_t vmin(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i32m2)))
-vint32m2_t vmin(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i32m2_m)))
-vint32m2_t vmin(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i32m4)))
-vint32m4_t vmin(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i32m4_m)))
-vint32m4_t vmin(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i32m8)))
-vint32m8_t vmin(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i32m8_m)))
-vint32m8_t vmin(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i32mf2)))
-vint32mf2_t vmin(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i32mf2_m)))
-vint32mf2_t vmin(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i64m1)))
-vint64m1_t vmin(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i64m1_m)))
-vint64m1_t vmin(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i64m2)))
-vint64m2_t vmin(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i64m2_m)))
-vint64m2_t vmin(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i64m4)))
-vint64m4_t vmin(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i64m4_m)))
-vint64m4_t vmin(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i64m8)))
-vint64m8_t vmin(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i64m8_m)))
-vint64m8_t vmin(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8m1)))
-vuint8m1_t vmaxu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8m1_m)))
-vuint8m1_t vmaxu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8m2)))
-vuint8m2_t vmaxu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8m2_m)))
-vuint8m2_t vmaxu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8m4)))
-vuint8m4_t vmaxu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8m4_m)))
-vuint8m4_t vmaxu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8m8)))
-vuint8m8_t vmaxu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8m8_m)))
-vuint8m8_t vmaxu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8mf2)))
-vuint8mf2_t vmaxu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8mf2_m)))
-vuint8mf2_t vmaxu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8mf4)))
-vuint8mf4_t vmaxu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8mf4_m)))
-vuint8mf4_t vmaxu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8mf8)))
-vuint8mf8_t vmaxu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8mf8_m)))
-vuint8mf8_t vmaxu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16m1)))
-vuint16m1_t vmaxu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16m1_m)))
-vuint16m1_t vmaxu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16m2)))
-vuint16m2_t vmaxu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16m2_m)))
-vuint16m2_t vmaxu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16m4)))
-vuint16m4_t vmaxu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16m4_m)))
-vuint16m4_t vmaxu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16m8)))
-vuint16m8_t vmaxu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16m8_m)))
-vuint16m8_t vmaxu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16mf2)))
-vuint16mf2_t vmaxu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16mf2_m)))
-vuint16mf2_t vmaxu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16mf4)))
-vuint16mf4_t vmaxu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16mf4_m)))
-vuint16mf4_t vmaxu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u32m1)))
-vuint32m1_t vmaxu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u32m1_m)))
-vuint32m1_t vmaxu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u32m2)))
-vuint32m2_t vmaxu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u32m2_m)))
-vuint32m2_t vmaxu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u32m4)))
-vuint32m4_t vmaxu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u32m4_m)))
-vuint32m4_t vmaxu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u32m8)))
-vuint32m8_t vmaxu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u32m8_m)))
-vuint32m8_t vmaxu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u32mf2)))
-vuint32mf2_t vmaxu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u32mf2_m)))
-vuint32mf2_t vmaxu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u64m1)))
-vuint64m1_t vmaxu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u64m1_m)))
-vuint64m1_t vmaxu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u64m2)))
-vuint64m2_t vmaxu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u64m2_m)))
-vuint64m2_t vmaxu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u64m4)))
-vuint64m4_t vmaxu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u64m4_m)))
-vuint64m4_t vmaxu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u64m8)))
-vuint64m8_t vmaxu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u64m8_m)))
-vuint64m8_t vmaxu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8m1)))
-vuint8m1_t vmaxu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8m1_m)))
-vuint8m1_t vmaxu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8m2)))
-vuint8m2_t vmaxu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8m2_m)))
-vuint8m2_t vmaxu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8m4)))
-vuint8m4_t vmaxu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8m4_m)))
-vuint8m4_t vmaxu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8m8)))
-vuint8m8_t vmaxu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8m8_m)))
-vuint8m8_t vmaxu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8mf2)))
-vuint8mf2_t vmaxu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8mf2_m)))
-vuint8mf2_t vmaxu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8mf4)))
-vuint8mf4_t vmaxu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8mf4_m)))
-vuint8mf4_t vmaxu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8mf8)))
-vuint8mf8_t vmaxu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8mf8_m)))
-vuint8mf8_t vmaxu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16m1)))
-vuint16m1_t vmaxu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16m1_m)))
-vuint16m1_t vmaxu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16m2)))
-vuint16m2_t vmaxu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16m2_m)))
-vuint16m2_t vmaxu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16m4)))
-vuint16m4_t vmaxu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16m4_m)))
-vuint16m4_t vmaxu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16m8)))
-vuint16m8_t vmaxu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16m8_m)))
-vuint16m8_t vmaxu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16mf2)))
-vuint16mf2_t vmaxu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16mf2_m)))
-vuint16mf2_t vmaxu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16mf4)))
-vuint16mf4_t vmaxu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16mf4_m)))
-vuint16mf4_t vmaxu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u32m1)))
-vuint32m1_t vmaxu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u32m1_m)))
-vuint32m1_t vmaxu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u32m2)))
-vuint32m2_t vmaxu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u32m2_m)))
-vuint32m2_t vmaxu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u32m4)))
-vuint32m4_t vmaxu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u32m4_m)))
-vuint32m4_t vmaxu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u32m8)))
-vuint32m8_t vmaxu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u32m8_m)))
-vuint32m8_t vmaxu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u32mf2)))
-vuint32mf2_t vmaxu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u32mf2_m)))
-vuint32mf2_t vmaxu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u64m1)))
-vuint64m1_t vmaxu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u64m1_m)))
-vuint64m1_t vmaxu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u64m2)))
-vuint64m2_t vmaxu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u64m2_m)))
-vuint64m2_t vmaxu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u64m4)))
-vuint64m4_t vmaxu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u64m4_m)))
-vuint64m4_t vmaxu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u64m8)))
-vuint64m8_t vmaxu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u64m8_m)))
-vuint64m8_t vmaxu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8m1)))
-vint8m1_t vmax(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8m1_m)))
-vint8m1_t vmax(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8m2)))
-vint8m2_t vmax(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8m2_m)))
-vint8m2_t vmax(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8m4)))
-vint8m4_t vmax(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8m4_m)))
-vint8m4_t vmax(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8m8)))
-vint8m8_t vmax(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8m8_m)))
-vint8m8_t vmax(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8mf2)))
-vint8mf2_t vmax(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8mf2_m)))
-vint8mf2_t vmax(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8mf4)))
-vint8mf4_t vmax(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8mf4_m)))
-vint8mf4_t vmax(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8mf8)))
-vint8mf8_t vmax(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8mf8_m)))
-vint8mf8_t vmax(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16m1)))
-vint16m1_t vmax(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16m1_m)))
-vint16m1_t vmax(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16m2)))
-vint16m2_t vmax(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16m2_m)))
-vint16m2_t vmax(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16m4)))
-vint16m4_t vmax(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16m4_m)))
-vint16m4_t vmax(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16m8)))
-vint16m8_t vmax(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16m8_m)))
-vint16m8_t vmax(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16mf2)))
-vint16mf2_t vmax(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16mf2_m)))
-vint16mf2_t vmax(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16mf4)))
-vint16mf4_t vmax(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16mf4_m)))
-vint16mf4_t vmax(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i32m1)))
-vint32m1_t vmax(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i32m1_m)))
-vint32m1_t vmax(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i32m2)))
-vint32m2_t vmax(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i32m2_m)))
-vint32m2_t vmax(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i32m4)))
-vint32m4_t vmax(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i32m4_m)))
-vint32m4_t vmax(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i32m8)))
-vint32m8_t vmax(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i32m8_m)))
-vint32m8_t vmax(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i32mf2)))
-vint32mf2_t vmax(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i32mf2_m)))
-vint32mf2_t vmax(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i64m1)))
-vint64m1_t vmax(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i64m1_m)))
-vint64m1_t vmax(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i64m2)))
-vint64m2_t vmax(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i64m2_m)))
-vint64m2_t vmax(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i64m4)))
-vint64m4_t vmax(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i64m4_m)))
-vint64m4_t vmax(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i64m8)))
-vint64m8_t vmax(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i64m8_m)))
-vint64m8_t vmax(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u16m1)))
-void vsuxei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u16m1_m)))
-void vsuxei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u16m2)))
-void vsuxei64(uint16_t * op0, vuint64m8_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u16m2_m)))
-void vsuxei64(vbool8_t op0, uint16_t * op1, vuint64m8_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u16mf2)))
-void vsuxei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u16mf2_m)))
-void vsuxei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u16mf4)))
-void vsuxei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u16mf4_m)))
-void vsuxei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8m1)))
-vint8m1_t vmax(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8m1_m)))
-vint8m1_t vmax(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8m2)))
-vint8m2_t vmax(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8m2_m)))
-vint8m2_t vmax(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8m4)))
-vint8m4_t vmax(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8m4_m)))
-vint8m4_t vmax(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8m8)))
-vint8m8_t vmax(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8m8_m)))
-vint8m8_t vmax(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8mf2)))
-vint8mf2_t vmax(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8mf2_m)))
-vint8mf2_t vmax(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8mf4)))
-vint8mf4_t vmax(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8mf4_m)))
-vint8mf4_t vmax(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8mf8)))
-vint8mf8_t vmax(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8mf8_m)))
-vint8mf8_t vmax(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16m1)))
-vint16m1_t vmax(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16m1_m)))
-vint16m1_t vmax(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16m2)))
-vint16m2_t vmax(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16m2_m)))
-vint16m2_t vmax(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16m4)))
-vint16m4_t vmax(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16m4_m)))
-vint16m4_t vmax(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16m8)))
-vint16m8_t vmax(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16m8_m)))
-vint16m8_t vmax(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16mf2)))
-vint16mf2_t vmax(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16mf2_m)))
-vint16mf2_t vmax(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16mf4)))
-vint16mf4_t vmax(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16mf4_m)))
-vint16mf4_t vmax(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i32m1)))
-vint32m1_t vmax(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i32m1_m)))
-vint32m1_t vmax(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i32m2)))
-vint32m2_t vmax(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i32m2_m)))
-vint32m2_t vmax(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i32m4)))
-vint32m4_t vmax(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i32m4_m)))
-vint32m4_t vmax(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i32m8)))
-vint32m8_t vmax(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i32m8_m)))
-vint32m8_t vmax(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i32mf2)))
-vint32mf2_t vmax(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i32mf2_m)))
-vint32mf2_t vmax(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i64m1)))
-vint64m1_t vmax(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i64m1_m)))
-vint64m1_t vmax(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i64m2)))
-vint64m2_t vmax(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i64m2_m)))
-vint64m2_t vmax(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i64m4)))
-vint64m4_t vmax(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i64m4_m)))
-vint64m4_t vmax(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i64m8)))
-vint64m8_t vmax(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i64m8_m)))
-vint64m8_t vmax(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8m1)))
-vint8m1_t vmul(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8m1_m)))
-vint8m1_t vmul(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8m2)))
-vint8m2_t vmul(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8m2_m)))
-vint8m2_t vmul(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8m4)))
-vint8m4_t vmul(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8m4_m)))
-vint8m4_t vmul(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8m8)))
-vint8m8_t vmul(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8m8_m)))
-vint8m8_t vmul(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8mf2)))
-vint8mf2_t vmul(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8mf2_m)))
-vint8mf2_t vmul(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8mf4)))
-vint8mf4_t vmul(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8mf4_m)))
-vint8mf4_t vmul(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8mf8)))
-vint8mf8_t vmul(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8mf8_m)))
-vint8mf8_t vmul(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16m1)))
-vint16m1_t vmul(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16m1_m)))
-vint16m1_t vmul(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16m2)))
-vint16m2_t vmul(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16m2_m)))
-vint16m2_t vmul(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16m4)))
-vint16m4_t vmul(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16m4_m)))
-vint16m4_t vmul(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16m8)))
-vint16m8_t vmul(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16m8_m)))
-vint16m8_t vmul(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16mf2)))
-vint16mf2_t vmul(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16mf2_m)))
-vint16mf2_t vmul(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16mf4)))
-vint16mf4_t vmul(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16mf4_m)))
-vint16mf4_t vmul(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i32m1)))
-vint32m1_t vmul(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i32m1_m)))
-vint32m1_t vmul(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i32m2)))
-vint32m2_t vmul(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i32m2_m)))
-vint32m2_t vmul(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i32m4)))
-vint32m4_t vmul(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i32m4_m)))
-vint32m4_t vmul(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i32m8)))
-vint32m8_t vmul(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i32m8_m)))
-vint32m8_t vmul(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i32mf2)))
-vint32mf2_t vmul(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i32mf2_m)))
-vint32mf2_t vmul(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i64m1)))
-vint64m1_t vmul(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i64m1_m)))
-vint64m1_t vmul(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i64m2)))
-vint64m2_t vmul(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i64m2_m)))
-vint64m2_t vmul(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i64m4)))
-vint64m4_t vmul(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i64m4_m)))
-vint64m4_t vmul(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i64m8)))
-vint64m8_t vmul(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i64m8_m)))
-vint64m8_t vmul(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8m1)))
-vint8m1_t vmul(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8m1_m)))
-vint8m1_t vmul(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8m2)))
-vint8m2_t vmul(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8m2_m)))
-vint8m2_t vmul(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8m4)))
-vint8m4_t vmul(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8m4_m)))
-vint8m4_t vmul(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8m8)))
-vint8m8_t vmul(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8m8_m)))
-vint8m8_t vmul(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8mf2)))
-vint8mf2_t vmul(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8mf2_m)))
-vint8mf2_t vmul(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8mf4)))
-vint8mf4_t vmul(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8mf4_m)))
-vint8mf4_t vmul(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8mf8)))
-vint8mf8_t vmul(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8mf8_m)))
-vint8mf8_t vmul(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16m1)))
-vint16m1_t vmul(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16m1_m)))
-vint16m1_t vmul(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16m2)))
-vint16m2_t vmul(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16m2_m)))
-vint16m2_t vmul(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16m4)))
-vint16m4_t vmul(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16m4_m)))
-vint16m4_t vmul(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16m8)))
-vint16m8_t vmul(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16m8_m)))
-vint16m8_t vmul(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16mf2)))
-vint16mf2_t vmul(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16mf2_m)))
-vint16mf2_t vmul(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16mf4)))
-vint16mf4_t vmul(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16mf4_m)))
-vint16mf4_t vmul(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i32m1)))
-vint32m1_t vmul(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i32m1_m)))
-vint32m1_t vmul(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i32m2)))
-vint32m2_t vmul(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i32m2_m)))
-vint32m2_t vmul(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i32m4)))
-vint32m4_t vmul(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i32m4_m)))
-vint32m4_t vmul(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i32m8)))
-vint32m8_t vmul(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i32m8_m)))
-vint32m8_t vmul(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i32mf2)))
-vint32mf2_t vmul(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i32mf2_m)))
-vint32mf2_t vmul(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i64m1)))
-vint64m1_t vmul(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i64m1_m)))
-vint64m1_t vmul(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i64m2)))
-vint64m2_t vmul(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i64m2_m)))
-vint64m2_t vmul(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i64m4)))
-vint64m4_t vmul(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i64m4_m)))
-vint64m4_t vmul(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i64m8)))
-vint64m8_t vmul(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i64m8_m)))
-vint64m8_t vmul(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8m1)))
-vuint8m1_t vmul(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8m1_m)))
-vuint8m1_t vmul(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8m2)))
-vuint8m2_t vmul(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8m2_m)))
-vuint8m2_t vmul(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8m4)))
-vuint8m4_t vmul(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8m4_m)))
-vuint8m4_t vmul(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8m8)))
-vuint8m8_t vmul(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8m8_m)))
-vuint8m8_t vmul(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8mf2)))
-vuint8mf2_t vmul(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8mf2_m)))
-vuint8mf2_t vmul(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8mf4)))
-vuint8mf4_t vmul(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8mf4_m)))
-vuint8mf4_t vmul(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8mf8)))
-vuint8mf8_t vmul(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8mf8_m)))
-vuint8mf8_t vmul(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16m1)))
-vuint16m1_t vmul(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16m1_m)))
-vuint16m1_t vmul(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16m2)))
-vuint16m2_t vmul(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16m2_m)))
-vuint16m2_t vmul(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16m4)))
-vuint16m4_t vmul(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16m4_m)))
-vuint16m4_t vmul(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16m8)))
-vuint16m8_t vmul(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16m8_m)))
-vuint16m8_t vmul(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16mf2)))
-vuint16mf2_t vmul(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16mf2_m)))
-vuint16mf2_t vmul(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16mf4)))
-vuint16mf4_t vmul(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16mf4_m)))
-vuint16mf4_t vmul(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u32m1)))
-vuint32m1_t vmul(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u32m1_m)))
-vuint32m1_t vmul(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u32m2)))
-vuint32m2_t vmul(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u32m2_m)))
-vuint32m2_t vmul(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u32m4)))
-vuint32m4_t vmul(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u32m4_m)))
-vuint32m4_t vmul(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u32m8)))
-vuint32m8_t vmul(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u32m8_m)))
-vuint32m8_t vmul(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u32mf2)))
-vuint32mf2_t vmul(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u32mf2_m)))
-vuint32mf2_t vmul(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u64m1)))
-vuint64m1_t vmul(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u64m1_m)))
-vuint64m1_t vmul(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u64m2)))
-vuint64m2_t vmul(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u64m2_m)))
-vuint64m2_t vmul(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u64m4)))
-vuint64m4_t vmul(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u64m4_m)))
-vuint64m4_t vmul(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u64m8)))
-vuint64m8_t vmul(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u64m8_m)))
-vuint64m8_t vmul(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8m1)))
-vuint8m1_t vmul(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8m1_m)))
-vuint8m1_t vmul(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8m2)))
-vuint8m2_t vmul(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8m2_m)))
-vuint8m2_t vmul(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8m4)))
-vuint8m4_t vmul(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8m4_m)))
-vuint8m4_t vmul(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8m8)))
-vuint8m8_t vmul(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8m8_m)))
-vuint8m8_t vmul(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8mf2)))
-vuint8mf2_t vmul(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8mf2_m)))
-vuint8mf2_t vmul(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8mf4)))
-vuint8mf4_t vmul(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8mf4_m)))
-vuint8mf4_t vmul(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8mf8)))
-vuint8mf8_t vmul(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8mf8_m)))
-vuint8mf8_t vmul(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16m1)))
-vuint16m1_t vmul(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16m1_m)))
-vuint16m1_t vmul(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16m2)))
-vuint16m2_t vmul(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16m2_m)))
-vuint16m2_t vmul(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16m4)))
-vuint16m4_t vmul(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16m4_m)))
-vuint16m4_t vmul(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16m8)))
-vuint16m8_t vmul(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16m8_m)))
-vuint16m8_t vmul(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16mf2)))
-vuint16mf2_t vmul(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16mf2_m)))
-vuint16mf2_t vmul(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16mf4)))
-vuint16mf4_t vmul(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16mf4_m)))
-vuint16mf4_t vmul(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u32m1)))
-vuint32m1_t vmul(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u32m1_m)))
-vuint32m1_t vmul(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u32m2)))
-vuint32m2_t vmul(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u32m2_m)))
-vuint32m2_t vmul(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u32m4)))
-vuint32m4_t vmul(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u32m4_m)))
-vuint32m4_t vmul(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u32m8)))
-vuint32m8_t vmul(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u32m8_m)))
-vuint32m8_t vmul(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u32mf2)))
-vuint32mf2_t vmul(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u32mf2_m)))
-vuint32mf2_t vmul(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u64m1)))
-vuint64m1_t vmul(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u64m1_m)))
-vuint64m1_t vmul(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u64m2)))
-vuint64m2_t vmul(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u64m2_m)))
-vuint64m2_t vmul(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u64m4)))
-vuint64m4_t vmul(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u64m4_m)))
-vuint64m4_t vmul(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u64m8)))
-vuint64m8_t vmul(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u64m8_m)))
-vuint64m8_t vmul(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8m1)))
-vint8m1_t vmulh(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8m1_m)))
-vint8m1_t vmulh(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8m2)))
-vint8m2_t vmulh(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8m2_m)))
-vint8m2_t vmulh(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8m4)))
-vint8m4_t vmulh(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8m4_m)))
-vint8m4_t vmulh(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8m8)))
-vint8m8_t vmulh(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8m8_m)))
-vint8m8_t vmulh(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8mf2)))
-vint8mf2_t vmulh(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8mf2_m)))
-vint8mf2_t vmulh(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8mf4)))
-vint8mf4_t vmulh(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8mf4_m)))
-vint8mf4_t vmulh(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8mf8)))
-vint8mf8_t vmulh(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8mf8_m)))
-vint8mf8_t vmulh(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16m1)))
-vint16m1_t vmulh(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16m1_m)))
-vint16m1_t vmulh(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16m2)))
-vint16m2_t vmulh(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16m2_m)))
-vint16m2_t vmulh(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16m4)))
-vint16m4_t vmulh(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16m4_m)))
-vint16m4_t vmulh(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16m8)))
-vint16m8_t vmulh(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16m8_m)))
-vint16m8_t vmulh(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16mf2)))
-vint16mf2_t vmulh(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16mf2_m)))
-vint16mf2_t vmulh(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16mf4)))
-vint16mf4_t vmulh(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16mf4_m)))
-vint16mf4_t vmulh(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i32m1)))
-vint32m1_t vmulh(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i32m1_m)))
-vint32m1_t vmulh(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i32m2)))
-vint32m2_t vmulh(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i32m2_m)))
-vint32m2_t vmulh(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i32m4)))
-vint32m4_t vmulh(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i32m4_m)))
-vint32m4_t vmulh(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i32m8)))
-vint32m8_t vmulh(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i32m8_m)))
-vint32m8_t vmulh(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i32mf2)))
-vint32mf2_t vmulh(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i32mf2_m)))
-vint32mf2_t vmulh(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i64m1)))
-vint64m1_t vmulh(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i64m1_m)))
-vint64m1_t vmulh(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i64m2)))
-vint64m2_t vmulh(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i64m2_m)))
-vint64m2_t vmulh(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i64m4)))
-vint64m4_t vmulh(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i64m4_m)))
-vint64m4_t vmulh(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i64m8)))
-vint64m8_t vmulh(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i64m8_m)))
-vint64m8_t vmulh(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8m1)))
-vint8m1_t vmulh(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8m1_m)))
-vint8m1_t vmulh(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8m2)))
-vint8m2_t vmulh(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8m2_m)))
-vint8m2_t vmulh(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8m4)))
-vint8m4_t vmulh(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8m4_m)))
-vint8m4_t vmulh(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8m8)))
-vint8m8_t vmulh(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8m8_m)))
-vint8m8_t vmulh(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8mf2)))
-vint8mf2_t vmulh(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8mf2_m)))
-vint8mf2_t vmulh(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8mf4)))
-vint8mf4_t vmulh(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8mf4_m)))
-vint8mf4_t vmulh(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8mf8)))
-vint8mf8_t vmulh(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8mf8_m)))
-vint8mf8_t vmulh(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16m1)))
-vint16m1_t vmulh(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16m1_m)))
-vint16m1_t vmulh(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16m2)))
-vint16m2_t vmulh(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16m2_m)))
-vint16m2_t vmulh(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16m4)))
-vint16m4_t vmulh(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16m4_m)))
-vint16m4_t vmulh(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16m8)))
-vint16m8_t vmulh(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16m8_m)))
-vint16m8_t vmulh(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16mf2)))
-vint16mf2_t vmulh(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16mf2_m)))
-vint16mf2_t vmulh(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16mf4)))
-vint16mf4_t vmulh(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16mf4_m)))
-vint16mf4_t vmulh(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i32m1)))
-vint32m1_t vmulh(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i32m1_m)))
-vint32m1_t vmulh(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i32m2)))
-vint32m2_t vmulh(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i32m2_m)))
-vint32m2_t vmulh(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i32m4)))
-vint32m4_t vmulh(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i32m4_m)))
-vint32m4_t vmulh(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i32m8)))
-vint32m8_t vmulh(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i32m8_m)))
-vint32m8_t vmulh(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i32mf2)))
-vint32mf2_t vmulh(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i32mf2_m)))
-vint32mf2_t vmulh(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i64m1)))
-vint64m1_t vmulh(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i64m1_m)))
-vint64m1_t vmulh(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i64m2)))
-vint64m2_t vmulh(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i64m2_m)))
-vint64m2_t vmulh(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i64m4)))
-vint64m4_t vmulh(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i64m4_m)))
-vint64m4_t vmulh(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i64m8)))
-vint64m8_t vmulh(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i64m8_m)))
-vint64m8_t vmulh(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8m1)))
-vuint8m1_t vmulhu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8m1_m)))
-vuint8m1_t vmulhu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8m2)))
-vuint8m2_t vmulhu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8m2_m)))
-vuint8m2_t vmulhu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8m4)))
-vuint8m4_t vmulhu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8m4_m)))
-vuint8m4_t vmulhu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8m8)))
-vuint8m8_t vmulhu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8m8_m)))
-vuint8m8_t vmulhu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8mf2)))
-vuint8mf2_t vmulhu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8mf2_m)))
-vuint8mf2_t vmulhu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8mf4)))
-vuint8mf4_t vmulhu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8mf4_m)))
-vuint8mf4_t vmulhu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8mf8)))
-vuint8mf8_t vmulhu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8mf8_m)))
-vuint8mf8_t vmulhu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16m1)))
-vuint16m1_t vmulhu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16m1_m)))
-vuint16m1_t vmulhu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16m2)))
-vuint16m2_t vmulhu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16m2_m)))
-vuint16m2_t vmulhu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16m4)))
-vuint16m4_t vmulhu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16m4_m)))
-vuint16m4_t vmulhu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16m8)))
-vuint16m8_t vmulhu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16m8_m)))
-vuint16m8_t vmulhu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16mf2)))
-vuint16mf2_t vmulhu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16mf2_m)))
-vuint16mf2_t vmulhu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16mf4)))
-vuint16mf4_t vmulhu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16mf4_m)))
-vuint16mf4_t vmulhu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u32m1)))
-vuint32m1_t vmulhu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u32m1_m)))
-vuint32m1_t vmulhu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u32m2)))
-vuint32m2_t vmulhu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u32m2_m)))
-vuint32m2_t vmulhu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u32m4)))
-vuint32m4_t vmulhu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u32m4_m)))
-vuint32m4_t vmulhu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u32m8)))
-vuint32m8_t vmulhu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u32m8_m)))
-vuint32m8_t vmulhu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u32mf2)))
-vuint32mf2_t vmulhu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u32mf2_m)))
-vuint32mf2_t vmulhu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u64m1)))
-vuint64m1_t vmulhu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u64m1_m)))
-vuint64m1_t vmulhu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u64m2)))
-vuint64m2_t vmulhu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u64m2_m)))
-vuint64m2_t vmulhu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u64m4)))
-vuint64m4_t vmulhu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u64m4_m)))
-vuint64m4_t vmulhu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u64m8)))
-vuint64m8_t vmulhu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u64m8_m)))
-vuint64m8_t vmulhu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8m1)))
-vuint8m1_t vmulhu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8m1_m)))
-vuint8m1_t vmulhu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8m2)))
-vuint8m2_t vmulhu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8m2_m)))
-vuint8m2_t vmulhu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8m4)))
-vuint8m4_t vmulhu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8m4_m)))
-vuint8m4_t vmulhu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8m8)))
-vuint8m8_t vmulhu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8m8_m)))
-vuint8m8_t vmulhu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8mf2)))
-vuint8mf2_t vmulhu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8mf2_m)))
-vuint8mf2_t vmulhu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8mf4)))
-vuint8mf4_t vmulhu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8mf4_m)))
-vuint8mf4_t vmulhu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8mf8)))
-vuint8mf8_t vmulhu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8mf8_m)))
-vuint8mf8_t vmulhu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16m1)))
-vuint16m1_t vmulhu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16m1_m)))
-vuint16m1_t vmulhu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16m2)))
-vuint16m2_t vmulhu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16m2_m)))
-vuint16m2_t vmulhu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16m4)))
-vuint16m4_t vmulhu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16m4_m)))
-vuint16m4_t vmulhu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16m8)))
-vuint16m8_t vmulhu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16m8_m)))
-vuint16m8_t vmulhu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16mf2)))
-vuint16mf2_t vmulhu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16mf2_m)))
-vuint16mf2_t vmulhu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16mf4)))
-vuint16mf4_t vmulhu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16mf4_m)))
-vuint16mf4_t vmulhu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u32m1)))
-vuint32m1_t vmulhu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u32m1_m)))
-vuint32m1_t vmulhu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u32m2)))
-vuint32m2_t vmulhu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u32m2_m)))
-vuint32m2_t vmulhu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u32m4)))
-vuint32m4_t vmulhu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u32m4_m)))
-vuint32m4_t vmulhu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u32m8)))
-vuint32m8_t vmulhu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u32m8_m)))
-vuint32m8_t vmulhu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u32mf2)))
-vuint32mf2_t vmulhu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u32mf2_m)))
-vuint32mf2_t vmulhu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u64m1)))
-vuint64m1_t vmulhu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u64m1_m)))
-vuint64m1_t vmulhu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u64m2)))
-vuint64m2_t vmulhu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u64m2_m)))
-vuint64m2_t vmulhu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u64m4)))
-vuint64m4_t vmulhu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u64m4_m)))
-vuint64m4_t vmulhu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u64m8)))
-vuint64m8_t vmulhu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u64m8_m)))
-vuint64m8_t vmulhu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8m1)))
-vint8m1_t vmulhsu(vint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8m1_m)))
-vint8m1_t vmulhsu(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8m2)))
-vint8m2_t vmulhsu(vint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8m2_m)))
-vint8m2_t vmulhsu(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8m4)))
-vint8m4_t vmulhsu(vint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8m4_m)))
-vint8m4_t vmulhsu(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8m8)))
-vint8m8_t vmulhsu(vint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8m8_m)))
-vint8m8_t vmulhsu(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8mf2)))
-vint8mf2_t vmulhsu(vint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8mf2_m)))
-vint8mf2_t vmulhsu(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8mf4)))
-vint8mf4_t vmulhsu(vint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8mf4_m)))
-vint8mf4_t vmulhsu(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8mf8)))
-vint8mf8_t vmulhsu(vint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8mf8_m)))
-vint8mf8_t vmulhsu(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16m1)))
-vint16m1_t vmulhsu(vint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16m1_m)))
-vint16m1_t vmulhsu(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16m2)))
-vint16m2_t vmulhsu(vint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16m2_m)))
-vint16m2_t vmulhsu(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16m4)))
-vint16m4_t vmulhsu(vint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16m4_m)))
-vint16m4_t vmulhsu(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16m8)))
-vint16m8_t vmulhsu(vint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16m8_m)))
-vint16m8_t vmulhsu(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16mf2)))
-vint16mf2_t vmulhsu(vint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16mf2_m)))
-vint16mf2_t vmulhsu(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16mf4)))
-vint16mf4_t vmulhsu(vint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16mf4_m)))
-vint16mf4_t vmulhsu(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i32m1)))
-vint32m1_t vmulhsu(vint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i32m1_m)))
-vint32m1_t vmulhsu(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i32m2)))
-vint32m2_t vmulhsu(vint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i32m2_m)))
-vint32m2_t vmulhsu(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i32m4)))
-vint32m4_t vmulhsu(vint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i32m4_m)))
-vint32m4_t vmulhsu(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i32m8)))
-vint32m8_t vmulhsu(vint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i32m8_m)))
-vint32m8_t vmulhsu(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i32mf2)))
-vint32mf2_t vmulhsu(vint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i32mf2_m)))
-vint32mf2_t vmulhsu(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i64m1)))
-vint64m1_t vmulhsu(vint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i64m1_m)))
-vint64m1_t vmulhsu(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i64m2)))
-vint64m2_t vmulhsu(vint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i64m2_m)))
-vint64m2_t vmulhsu(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i64m4)))
-vint64m4_t vmulhsu(vint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i64m4_m)))
-vint64m4_t vmulhsu(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i64m8)))
-vint64m8_t vmulhsu(vint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i64m8_m)))
-vint64m8_t vmulhsu(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i32m1)))
-void vsuxei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i32m1_m)))
-void vsuxei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i32m2)))
-void vsuxei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i32m2_m)))
-void vsuxei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i32m4)))
-void vsuxei8(int32_t * op0, vuint8m1_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i32m4_m)))
-void vsuxei8(vbool8_t op0, int32_t * op1, vuint8m1_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i32m8)))
-void vsuxei8(int32_t * op0, vuint8m2_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i32m8_m)))
-void vsuxei8(vbool4_t op0, int32_t * op1, vuint8m2_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i32mf2)))
-void vsuxei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i32mf2_m)))
-void vsuxei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8m1)))
-vint8m1_t vmulhsu(vint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8m1_m)))
-vint8m1_t vmulhsu(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8m2)))
-vint8m2_t vmulhsu(vint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8m2_m)))
-vint8m2_t vmulhsu(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8m4)))
-vint8m4_t vmulhsu(vint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8m4_m)))
-vint8m4_t vmulhsu(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8m8)))
-vint8m8_t vmulhsu(vint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8m8_m)))
-vint8m8_t vmulhsu(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8mf2)))
-vint8mf2_t vmulhsu(vint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8mf2_m)))
-vint8mf2_t vmulhsu(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8mf4)))
-vint8mf4_t vmulhsu(vint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8mf4_m)))
-vint8mf4_t vmulhsu(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8mf8)))
-vint8mf8_t vmulhsu(vint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8mf8_m)))
-vint8mf8_t vmulhsu(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16m1)))
-vint16m1_t vmulhsu(vint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16m1_m)))
-vint16m1_t vmulhsu(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16m2)))
-vint16m2_t vmulhsu(vint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16m2_m)))
-vint16m2_t vmulhsu(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16m4)))
-vint16m4_t vmulhsu(vint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16m4_m)))
-vint16m4_t vmulhsu(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16m8)))
-vint16m8_t vmulhsu(vint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16m8_m)))
-vint16m8_t vmulhsu(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16mf2)))
-vint16mf2_t vmulhsu(vint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16mf2_m)))
-vint16mf2_t vmulhsu(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16mf4)))
-vint16mf4_t vmulhsu(vint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16mf4_m)))
-vint16mf4_t vmulhsu(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i32m1)))
-vint32m1_t vmulhsu(vint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i32m1_m)))
-vint32m1_t vmulhsu(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i32m2)))
-vint32m2_t vmulhsu(vint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i32m2_m)))
-vint32m2_t vmulhsu(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i32m4)))
-vint32m4_t vmulhsu(vint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i32m4_m)))
-vint32m4_t vmulhsu(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i32m8)))
-vint32m8_t vmulhsu(vint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i32m8_m)))
-vint32m8_t vmulhsu(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i32mf2)))
-vint32mf2_t vmulhsu(vint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i32mf2_m)))
-vint32mf2_t vmulhsu(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i64m1)))
-vint64m1_t vmulhsu(vint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i64m1_m)))
-vint64m1_t vmulhsu(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i64m2)))
-vint64m2_t vmulhsu(vint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i64m2_m)))
-vint64m2_t vmulhsu(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i64m4)))
-vint64m4_t vmulhsu(vint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i64m4_m)))
-vint64m4_t vmulhsu(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i64m8)))
-vint64m8_t vmulhsu(vint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i64m8_m)))
-vint64m8_t vmulhsu(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8m1)))
-vuint8m1_t vdivu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8m1_m)))
-vuint8m1_t vdivu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8m2)))
-vuint8m2_t vdivu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8m2_m)))
-vuint8m2_t vdivu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8m4)))
-vuint8m4_t vdivu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8m4_m)))
-vuint8m4_t vdivu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8m8)))
-vuint8m8_t vdivu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8m8_m)))
-vuint8m8_t vdivu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8mf2)))
-vuint8mf2_t vdivu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8mf2_m)))
-vuint8mf2_t vdivu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8mf4)))
-vuint8mf4_t vdivu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8mf4_m)))
-vuint8mf4_t vdivu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8mf8)))
-vuint8mf8_t vdivu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8mf8_m)))
-vuint8mf8_t vdivu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16m1)))
-vuint16m1_t vdivu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16m1_m)))
-vuint16m1_t vdivu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16m2)))
-vuint16m2_t vdivu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16m2_m)))
-vuint16m2_t vdivu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16m4)))
-vuint16m4_t vdivu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16m4_m)))
-vuint16m4_t vdivu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16m8)))
-vuint16m8_t vdivu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16m8_m)))
-vuint16m8_t vdivu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16mf2)))
-vuint16mf2_t vdivu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16mf2_m)))
-vuint16mf2_t vdivu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16mf4)))
-vuint16mf4_t vdivu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16mf4_m)))
-vuint16mf4_t vdivu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u32m1)))
-vuint32m1_t vdivu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u32m1_m)))
-vuint32m1_t vdivu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u32m2)))
-vuint32m2_t vdivu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u32m2_m)))
-vuint32m2_t vdivu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u32m4)))
-vuint32m4_t vdivu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u32m4_m)))
-vuint32m4_t vdivu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u32m8)))
-vuint32m8_t vdivu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u32m8_m)))
-vuint32m8_t vdivu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u32mf2)))
-vuint32mf2_t vdivu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u32mf2_m)))
-vuint32mf2_t vdivu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u64m1)))
-vuint64m1_t vdivu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u64m1_m)))
-vuint64m1_t vdivu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u64m2)))
-vuint64m2_t vdivu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u64m2_m)))
-vuint64m2_t vdivu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u64m4)))
-vuint64m4_t vdivu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u64m4_m)))
-vuint64m4_t vdivu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u64m8)))
-vuint64m8_t vdivu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u64m8_m)))
-vuint64m8_t vdivu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8m1)))
-vuint8m1_t vdivu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8m1_m)))
-vuint8m1_t vdivu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8m2)))
-vuint8m2_t vdivu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8m2_m)))
-vuint8m2_t vdivu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8m4)))
-vuint8m4_t vdivu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8m4_m)))
-vuint8m4_t vdivu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8m8)))
-vuint8m8_t vdivu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8m8_m)))
-vuint8m8_t vdivu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8mf2)))
-vuint8mf2_t vdivu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8mf2_m)))
-vuint8mf2_t vdivu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8mf4)))
-vuint8mf4_t vdivu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8mf4_m)))
-vuint8mf4_t vdivu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8mf8)))
-vuint8mf8_t vdivu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8mf8_m)))
-vuint8mf8_t vdivu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16m1)))
-vuint16m1_t vdivu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16m1_m)))
-vuint16m1_t vdivu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16m2)))
-vuint16m2_t vdivu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16m2_m)))
-vuint16m2_t vdivu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16m4)))
-vuint16m4_t vdivu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16m4_m)))
-vuint16m4_t vdivu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16m8)))
-vuint16m8_t vdivu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16m8_m)))
-vuint16m8_t vdivu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16mf2)))
-vuint16mf2_t vdivu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16mf2_m)))
-vuint16mf2_t vdivu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16mf4)))
-vuint16mf4_t vdivu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16mf4_m)))
-vuint16mf4_t vdivu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u32m1)))
-vuint32m1_t vdivu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u32m1_m)))
-vuint32m1_t vdivu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u32m2)))
-vuint32m2_t vdivu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u32m2_m)))
-vuint32m2_t vdivu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u32m4)))
-vuint32m4_t vdivu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u32m4_m)))
-vuint32m4_t vdivu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u32m8)))
-vuint32m8_t vdivu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u32m8_m)))
-vuint32m8_t vdivu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u32mf2)))
-vuint32mf2_t vdivu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u32mf2_m)))
-vuint32mf2_t vdivu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u64m1)))
-vuint64m1_t vdivu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u64m1_m)))
-vuint64m1_t vdivu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u64m2)))
-vuint64m2_t vdivu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u64m2_m)))
-vuint64m2_t vdivu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u64m4)))
-vuint64m4_t vdivu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u64m4_m)))
-vuint64m4_t vdivu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u64m8)))
-vuint64m8_t vdivu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u64m8_m)))
-vuint64m8_t vdivu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8m1)))
-vint8m1_t vdiv(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8m1_m)))
-vint8m1_t vdiv(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8m2)))
-vint8m2_t vdiv(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8m2_m)))
-vint8m2_t vdiv(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8m4)))
-vint8m4_t vdiv(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8m4_m)))
-vint8m4_t vdiv(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8m8)))
-vint8m8_t vdiv(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8m8_m)))
-vint8m8_t vdiv(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8mf2)))
-vint8mf2_t vdiv(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8mf2_m)))
-vint8mf2_t vdiv(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8mf4)))
-vint8mf4_t vdiv(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8mf4_m)))
-vint8mf4_t vdiv(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8mf8)))
-vint8mf8_t vdiv(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8mf8_m)))
-vint8mf8_t vdiv(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16m1)))
-vint16m1_t vdiv(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16m1_m)))
-vint16m1_t vdiv(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16m2)))
-vint16m2_t vdiv(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16m2_m)))
-vint16m2_t vdiv(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16m4)))
-vint16m4_t vdiv(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16m4_m)))
-vint16m4_t vdiv(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16m8)))
-vint16m8_t vdiv(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16m8_m)))
-vint16m8_t vdiv(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16mf2)))
-vint16mf2_t vdiv(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16mf2_m)))
-vint16mf2_t vdiv(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16mf4)))
-vint16mf4_t vdiv(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16mf4_m)))
-vint16mf4_t vdiv(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i32m1)))
-vint32m1_t vdiv(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i32m1_m)))
-vint32m1_t vdiv(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i32m2)))
-vint32m2_t vdiv(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i32m2_m)))
-vint32m2_t vdiv(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i32m4)))
-vint32m4_t vdiv(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i32m4_m)))
-vint32m4_t vdiv(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i32m8)))
-vint32m8_t vdiv(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i32m8_m)))
-vint32m8_t vdiv(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i32mf2)))
-vint32mf2_t vdiv(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i32mf2_m)))
-vint32mf2_t vdiv(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i64m1)))
-vint64m1_t vdiv(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i64m1_m)))
-vint64m1_t vdiv(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i64m2)))
-vint64m2_t vdiv(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i64m2_m)))
-vint64m2_t vdiv(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i64m4)))
-vint64m4_t vdiv(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i64m4_m)))
-vint64m4_t vdiv(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i64m8)))
-vint64m8_t vdiv(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i64m8_m)))
-vint64m8_t vdiv(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8m1)))
-vint8m1_t vdiv(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8m1_m)))
-vint8m1_t vdiv(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8m2)))
-vint8m2_t vdiv(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8m2_m)))
-vint8m2_t vdiv(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8m4)))
-vint8m4_t vdiv(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8m4_m)))
-vint8m4_t vdiv(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8m8)))
-vint8m8_t vdiv(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8m8_m)))
-vint8m8_t vdiv(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8mf2)))
-vint8mf2_t vdiv(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8mf2_m)))
-vint8mf2_t vdiv(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8mf4)))
-vint8mf4_t vdiv(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8mf4_m)))
-vint8mf4_t vdiv(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8mf8)))
-vint8mf8_t vdiv(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8mf8_m)))
-vint8mf8_t vdiv(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16m1)))
-vint16m1_t vdiv(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16m1_m)))
-vint16m1_t vdiv(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16m2)))
-vint16m2_t vdiv(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16m2_m)))
-vint16m2_t vdiv(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16m4)))
-vint16m4_t vdiv(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16m4_m)))
-vint16m4_t vdiv(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16m8)))
-vint16m8_t vdiv(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16m8_m)))
-vint16m8_t vdiv(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16mf2)))
-vint16mf2_t vdiv(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16mf2_m)))
-vint16mf2_t vdiv(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16mf4)))
-vint16mf4_t vdiv(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16mf4_m)))
-vint16mf4_t vdiv(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i32m1)))
-vint32m1_t vdiv(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i32m1_m)))
-vint32m1_t vdiv(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i32m2)))
-vint32m2_t vdiv(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i32m2_m)))
-vint32m2_t vdiv(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i32m4)))
-vint32m4_t vdiv(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i32m4_m)))
-vint32m4_t vdiv(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i32m8)))
-vint32m8_t vdiv(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i32m8_m)))
-vint32m8_t vdiv(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i32mf2)))
-vint32mf2_t vdiv(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i32mf2_m)))
-vint32mf2_t vdiv(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i64m1)))
-vint64m1_t vdiv(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i64m1_m)))
-vint64m1_t vdiv(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i64m2)))
-vint64m2_t vdiv(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i64m2_m)))
-vint64m2_t vdiv(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i64m4)))
-vint64m4_t vdiv(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i64m4_m)))
-vint64m4_t vdiv(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i64m8)))
-vint64m8_t vdiv(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i64m8_m)))
-vint64m8_t vdiv(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8m1)))
-vuint8m1_t vremu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8m1_m)))
-vuint8m1_t vremu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8m2)))
-vuint8m2_t vremu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8m2_m)))
-vuint8m2_t vremu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8m4)))
-vuint8m4_t vremu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8m4_m)))
-vuint8m4_t vremu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8m8)))
-vuint8m8_t vremu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8m8_m)))
-vuint8m8_t vremu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8mf2)))
-vuint8mf2_t vremu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8mf2_m)))
-vuint8mf2_t vremu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8mf4)))
-vuint8mf4_t vremu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8mf4_m)))
-vuint8mf4_t vremu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8mf8)))
-vuint8mf8_t vremu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8mf8_m)))
-vuint8mf8_t vremu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16m1)))
-vuint16m1_t vremu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16m1_m)))
-vuint16m1_t vremu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16m2)))
-vuint16m2_t vremu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16m2_m)))
-vuint16m2_t vremu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16m4)))
-vuint16m4_t vremu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16m4_m)))
-vuint16m4_t vremu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16m8)))
-vuint16m8_t vremu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16m8_m)))
-vuint16m8_t vremu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16mf2)))
-vuint16mf2_t vremu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16mf2_m)))
-vuint16mf2_t vremu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16mf4)))
-vuint16mf4_t vremu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16mf4_m)))
-vuint16mf4_t vremu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u32m1)))
-vuint32m1_t vremu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u32m1_m)))
-vuint32m1_t vremu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u32m2)))
-vuint32m2_t vremu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u32m2_m)))
-vuint32m2_t vremu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u32m4)))
-vuint32m4_t vremu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u32m4_m)))
-vuint32m4_t vremu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u32m8)))
-vuint32m8_t vremu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u32m8_m)))
-vuint32m8_t vremu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u32mf2)))
-vuint32mf2_t vremu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u32mf2_m)))
-vuint32mf2_t vremu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u64m1)))
-vuint64m1_t vremu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u64m1_m)))
-vuint64m1_t vremu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u64m2)))
-vuint64m2_t vremu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u64m2_m)))
-vuint64m2_t vremu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u64m4)))
-vuint64m4_t vremu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u64m4_m)))
-vuint64m4_t vremu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u64m8)))
-vuint64m8_t vremu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u64m8_m)))
-vuint64m8_t vremu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8m1)))
-vuint8m1_t vremu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8m1_m)))
-vuint8m1_t vremu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8m2)))
-vuint8m2_t vremu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8m2_m)))
-vuint8m2_t vremu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8m4)))
-vuint8m4_t vremu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8m4_m)))
-vuint8m4_t vremu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8m8)))
-vuint8m8_t vremu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8m8_m)))
-vuint8m8_t vremu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8mf2)))
-vuint8mf2_t vremu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8mf2_m)))
-vuint8mf2_t vremu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8mf4)))
-vuint8mf4_t vremu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8mf4_m)))
-vuint8mf4_t vremu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8mf8)))
-vuint8mf8_t vremu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8mf8_m)))
-vuint8mf8_t vremu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16m1)))
-vuint16m1_t vremu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16m1_m)))
-vuint16m1_t vremu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16m2)))
-vuint16m2_t vremu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16m2_m)))
-vuint16m2_t vremu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16m4)))
-vuint16m4_t vremu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16m4_m)))
-vuint16m4_t vremu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16m8)))
-vuint16m8_t vremu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16m8_m)))
-vuint16m8_t vremu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16mf2)))
-vuint16mf2_t vremu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16mf2_m)))
-vuint16mf2_t vremu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16mf4)))
-vuint16mf4_t vremu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16mf4_m)))
-vuint16mf4_t vremu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u32m1)))
-vuint32m1_t vremu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u32m1_m)))
-vuint32m1_t vremu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u32m2)))
-vuint32m2_t vremu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u32m2_m)))
-vuint32m2_t vremu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u32m4)))
-vuint32m4_t vremu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u32m4_m)))
-vuint32m4_t vremu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u32m8)))
-vuint32m8_t vremu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u32m8_m)))
-vuint32m8_t vremu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u32mf2)))
-vuint32mf2_t vremu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u32mf2_m)))
-vuint32mf2_t vremu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u64m1)))
-vuint64m1_t vremu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u64m1_m)))
-vuint64m1_t vremu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u64m2)))
-vuint64m2_t vremu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u64m2_m)))
-vuint64m2_t vremu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u64m4)))
-vuint64m4_t vremu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u64m4_m)))
-vuint64m4_t vremu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u64m8)))
-vuint64m8_t vremu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u64m8_m)))
-vuint64m8_t vremu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8m1)))
-vint8m1_t vrem(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8m1_m)))
-vint8m1_t vrem(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8m2)))
-vint8m2_t vrem(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8m2_m)))
-vint8m2_t vrem(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8m4)))
-vint8m4_t vrem(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8m4_m)))
-vint8m4_t vrem(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8m8)))
-vint8m8_t vrem(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8m8_m)))
-vint8m8_t vrem(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8mf2)))
-vint8mf2_t vrem(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8mf2_m)))
-vint8mf2_t vrem(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8mf4)))
-vint8mf4_t vrem(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8mf4_m)))
-vint8mf4_t vrem(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8mf8)))
-vint8mf8_t vrem(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8mf8_m)))
-vint8mf8_t vrem(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16m1)))
-vint16m1_t vrem(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16m1_m)))
-vint16m1_t vrem(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16m2)))
-vint16m2_t vrem(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16m2_m)))
-vint16m2_t vrem(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16m4)))
-vint16m4_t vrem(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16m4_m)))
-vint16m4_t vrem(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16m8)))
-vint16m8_t vrem(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16m8_m)))
-vint16m8_t vrem(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16mf2)))
-vint16mf2_t vrem(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16mf2_m)))
-vint16mf2_t vrem(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16mf4)))
-vint16mf4_t vrem(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16mf4_m)))
-vint16mf4_t vrem(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i32m1)))
-vint32m1_t vrem(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i32m1_m)))
-vint32m1_t vrem(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i32m2)))
-vint32m2_t vrem(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i32m2_m)))
-vint32m2_t vrem(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i32m4)))
-vint32m4_t vrem(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i32m4_m)))
-vint32m4_t vrem(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i32m8)))
-vint32m8_t vrem(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i32m8_m)))
-vint32m8_t vrem(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i32mf2)))
-vint32mf2_t vrem(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i32mf2_m)))
-vint32mf2_t vrem(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i64m1)))
-vint64m1_t vrem(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i64m1_m)))
-vint64m1_t vrem(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i64m2)))
-vint64m2_t vrem(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i64m2_m)))
-vint64m2_t vrem(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i64m4)))
-vint64m4_t vrem(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i64m4_m)))
-vint64m4_t vrem(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i64m8)))
-vint64m8_t vrem(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i64m8_m)))
-vint64m8_t vrem(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8m1)))
-vint8m1_t vrem(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8m1_m)))
-vint8m1_t vrem(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8m2)))
-vint8m2_t vrem(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8m2_m)))
-vint8m2_t vrem(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8m4)))
-vint8m4_t vrem(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8m4_m)))
-vint8m4_t vrem(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8m8)))
-vint8m8_t vrem(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8m8_m)))
-vint8m8_t vrem(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8mf2)))
-vint8mf2_t vrem(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8mf2_m)))
-vint8mf2_t vrem(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8mf4)))
-vint8mf4_t vrem(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8mf4_m)))
-vint8mf4_t vrem(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8mf8)))
-vint8mf8_t vrem(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8mf8_m)))
-vint8mf8_t vrem(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16m1)))
-vint16m1_t vrem(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16m1_m)))
-vint16m1_t vrem(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16m2)))
-vint16m2_t vrem(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16m2_m)))
-vint16m2_t vrem(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16m4)))
-vint16m4_t vrem(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16m4_m)))
-vint16m4_t vrem(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16m8)))
-vint16m8_t vrem(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16m8_m)))
-vint16m8_t vrem(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16mf2)))
-vint16mf2_t vrem(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16mf2_m)))
-vint16mf2_t vrem(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16mf4)))
-vint16mf4_t vrem(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16mf4_m)))
-vint16mf4_t vrem(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i32m1)))
-vint32m1_t vrem(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i32m1_m)))
-vint32m1_t vrem(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i32m2)))
-vint32m2_t vrem(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i32m2_m)))
-vint32m2_t vrem(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i32m4)))
-vint32m4_t vrem(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i32m4_m)))
-vint32m4_t vrem(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i32m8)))
-vint32m8_t vrem(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i32m8_m)))
-vint32m8_t vrem(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i32mf2)))
-vint32mf2_t vrem(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i32mf2_m)))
-vint32mf2_t vrem(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i64m1)))
-vint64m1_t vrem(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i64m1_m)))
-vint64m1_t vrem(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i64m2)))
-vint64m2_t vrem(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i64m2_m)))
-vint64m2_t vrem(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i64m4)))
-vint64m4_t vrem(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i64m4_m)))
-vint64m4_t vrem(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i64m8)))
-vint64m8_t vrem(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i64m8_m)))
-vint64m8_t vrem(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16mf4)))
-vint16mf4_t vwmul(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16mf4_m)))
-vint16mf4_t vwmul(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16mf2)))
-vint16mf2_t vwmul(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16mf2_m)))
-vint16mf2_t vwmul(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16m1)))
-vint16m1_t vwmul(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16m1_m)))
-vint16m1_t vwmul(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16m2)))
-vint16m2_t vwmul(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16m2_m)))
-vint16m2_t vwmul(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16m4)))
-vint16m4_t vwmul(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16m4_m)))
-vint16m4_t vwmul(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16m8)))
-vint16m8_t vwmul(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16m8_m)))
-vint16m8_t vwmul(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i32mf2)))
-vint32mf2_t vwmul(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i32mf2_m)))
-vint32mf2_t vwmul(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i32m1)))
-vint32m1_t vwmul(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i32m1_m)))
-vint32m1_t vwmul(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i32m2)))
-vint32m2_t vwmul(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i32m2_m)))
-vint32m2_t vwmul(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i32m4)))
-vint32m4_t vwmul(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i32m4_m)))
-vint32m4_t vwmul(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i32m8)))
-vint32m8_t vwmul(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i32m8_m)))
-vint32m8_t vwmul(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i64m1)))
-vint64m1_t vwmul(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i64m1_m)))
-vint64m1_t vwmul(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i64m2)))
-vint64m2_t vwmul(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i64m2_m)))
-vint64m2_t vwmul(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i64m4)))
-vint64m4_t vwmul(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i64m4_m)))
-vint64m4_t vwmul(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i64m8)))
-vint64m8_t vwmul(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i64m8_m)))
-vint64m8_t vwmul(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u32m1)))
-void vsuxei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u32m1_m)))
-void vsuxei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u32m2)))
-void vsuxei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u32m2_m)))
-void vsuxei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u32m4)))
-void vsuxei8(uint32_t * op0, vuint8m1_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u32m4_m)))
-void vsuxei8(vbool8_t op0, uint32_t * op1, vuint8m1_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u32m8)))
-void vsuxei8(uint32_t * op0, vuint8m2_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u32m8_m)))
-void vsuxei8(vbool4_t op0, uint32_t * op1, vuint8m2_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u32mf2)))
-void vsuxei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u32mf2_m)))
-void vsuxei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16mf4)))
-vint16mf4_t vwmul(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16mf4_m)))
-vint16mf4_t vwmul(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16mf2)))
-vint16mf2_t vwmul(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16mf2_m)))
-vint16mf2_t vwmul(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16m1)))
-vint16m1_t vwmul(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16m1_m)))
-vint16m1_t vwmul(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16m2)))
-vint16m2_t vwmul(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16m2_m)))
-vint16m2_t vwmul(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16m4)))
-vint16m4_t vwmul(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16m4_m)))
-vint16m4_t vwmul(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16m8)))
-vint16m8_t vwmul(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16m8_m)))
-vint16m8_t vwmul(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i32mf2)))
-vint32mf2_t vwmul(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i32mf2_m)))
-vint32mf2_t vwmul(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i32m1)))
-vint32m1_t vwmul(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i32m1_m)))
-vint32m1_t vwmul(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i32m2)))
-vint32m2_t vwmul(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i32m2_m)))
-vint32m2_t vwmul(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i32m4)))
-vint32m4_t vwmul(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i32m4_m)))
-vint32m4_t vwmul(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i32m8)))
-vint32m8_t vwmul(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i32m8_m)))
-vint32m8_t vwmul(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i64m1)))
-vint64m1_t vwmul(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i64m1_m)))
-vint64m1_t vwmul(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i64m2)))
-vint64m2_t vwmul(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i64m2_m)))
-vint64m2_t vwmul(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i64m4)))
-vint64m4_t vwmul(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i64m4_m)))
-vint64m4_t vwmul(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i64m8)))
-vint64m8_t vwmul(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i64m8_m)))
-vint64m8_t vwmul(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16mf4)))
-vuint16mf4_t vwmulu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16mf4_m)))
-vuint16mf4_t vwmulu(vbool64_t op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16mf2)))
-vuint16mf2_t vwmulu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16mf2_m)))
-vuint16mf2_t vwmulu(vbool32_t op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16m1)))
-vuint16m1_t vwmulu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16m1_m)))
-vuint16m1_t vwmulu(vbool16_t op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16m2)))
-vuint16m2_t vwmulu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16m2_m)))
-vuint16m2_t vwmulu(vbool8_t op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16m4)))
-vuint16m4_t vwmulu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16m4_m)))
-vuint16m4_t vwmulu(vbool4_t op0, vuint16m4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16m8)))
-vuint16m8_t vwmulu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16m8_m)))
-vuint16m8_t vwmulu(vbool2_t op0, vuint16m8_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u32mf2)))
-vuint32mf2_t vwmulu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u32mf2_m)))
-vuint32mf2_t vwmulu(vbool64_t op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u32m1)))
-vuint32m1_t vwmulu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u32m1_m)))
-vuint32m1_t vwmulu(vbool32_t op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u32m2)))
-vuint32m2_t vwmulu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u32m2_m)))
-vuint32m2_t vwmulu(vbool16_t op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u32m4)))
-vuint32m4_t vwmulu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u32m4_m)))
-vuint32m4_t vwmulu(vbool8_t op0, vuint32m4_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u32m8)))
-vuint32m8_t vwmulu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u32m8_m)))
-vuint32m8_t vwmulu(vbool4_t op0, vuint32m8_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u64m1)))
-vuint64m1_t vwmulu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u64m1_m)))
-vuint64m1_t vwmulu(vbool64_t op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u64m2)))
-vuint64m2_t vwmulu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u64m2_m)))
-vuint64m2_t vwmulu(vbool32_t op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u64m4)))
-vuint64m4_t vwmulu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u64m4_m)))
-vuint64m4_t vwmulu(vbool16_t op0, vuint64m4_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u64m8)))
-vuint64m8_t vwmulu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u64m8_m)))
-vuint64m8_t vwmulu(vbool8_t op0, vuint64m8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16mf4)))
-vuint16mf4_t vwmulu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16mf4_m)))
-vuint16mf4_t vwmulu(vbool64_t op0, vuint16mf4_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16mf2)))
-vuint16mf2_t vwmulu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16mf2_m)))
-vuint16mf2_t vwmulu(vbool32_t op0, vuint16mf2_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16m1)))
-vuint16m1_t vwmulu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16m1_m)))
-vuint16m1_t vwmulu(vbool16_t op0, vuint16m1_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16m2)))
-vuint16m2_t vwmulu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16m2_m)))
-vuint16m2_t vwmulu(vbool8_t op0, vuint16m2_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16m4)))
-vuint16m4_t vwmulu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16m4_m)))
-vuint16m4_t vwmulu(vbool4_t op0, vuint16m4_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16m8)))
-vuint16m8_t vwmulu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16m8_m)))
-vuint16m8_t vwmulu(vbool2_t op0, vuint16m8_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u32mf2)))
-vuint32mf2_t vwmulu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u32mf2_m)))
-vuint32mf2_t vwmulu(vbool64_t op0, vuint32mf2_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u32m1)))
-vuint32m1_t vwmulu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u32m1_m)))
-vuint32m1_t vwmulu(vbool32_t op0, vuint32m1_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u32m2)))
-vuint32m2_t vwmulu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u32m2_m)))
-vuint32m2_t vwmulu(vbool16_t op0, vuint32m2_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u32m4)))
-vuint32m4_t vwmulu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u32m4_m)))
-vuint32m4_t vwmulu(vbool8_t op0, vuint32m4_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u32m8)))
-vuint32m8_t vwmulu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u32m8_m)))
-vuint32m8_t vwmulu(vbool4_t op0, vuint32m8_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u64m1)))
-vuint64m1_t vwmulu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u64m1_m)))
-vuint64m1_t vwmulu(vbool64_t op0, vuint64m1_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u64m2)))
-vuint64m2_t vwmulu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u64m2_m)))
-vuint64m2_t vwmulu(vbool32_t op0, vuint64m2_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u64m4)))
-vuint64m4_t vwmulu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u64m4_m)))
-vuint64m4_t vwmulu(vbool16_t op0, vuint64m4_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u64m8)))
-vuint64m8_t vwmulu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u64m8_m)))
-vuint64m8_t vwmulu(vbool8_t op0, vuint64m8_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16mf4)))
-vint16mf4_t vwmulsu(vint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16mf4_m)))
-vint16mf4_t vwmulsu(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16mf2)))
-vint16mf2_t vwmulsu(vint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16mf2_m)))
-vint16mf2_t vwmulsu(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16m1)))
-vint16m1_t vwmulsu(vint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16m1_m)))
-vint16m1_t vwmulsu(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16m2)))
-vint16m2_t vwmulsu(vint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16m2_m)))
-vint16m2_t vwmulsu(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16m4)))
-vint16m4_t vwmulsu(vint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16m4_m)))
-vint16m4_t vwmulsu(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16m8)))
-vint16m8_t vwmulsu(vint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16m8_m)))
-vint16m8_t vwmulsu(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i32mf2)))
-vint32mf2_t vwmulsu(vint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i32mf2_m)))
-vint32mf2_t vwmulsu(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i32m1)))
-vint32m1_t vwmulsu(vint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i32m1_m)))
-vint32m1_t vwmulsu(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i32m2)))
-vint32m2_t vwmulsu(vint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i32m2_m)))
-vint32m2_t vwmulsu(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i32m4)))
-vint32m4_t vwmulsu(vint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i32m4_m)))
-vint32m4_t vwmulsu(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i32m8)))
-vint32m8_t vwmulsu(vint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i32m8_m)))
-vint32m8_t vwmulsu(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i64m1)))
-vint64m1_t vwmulsu(vint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i64m1_m)))
-vint64m1_t vwmulsu(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i64m2)))
-vint64m2_t vwmulsu(vint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i64m2_m)))
-vint64m2_t vwmulsu(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i64m4)))
-vint64m4_t vwmulsu(vint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i64m4_m)))
-vint64m4_t vwmulsu(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i64m8)))
-vint64m8_t vwmulsu(vint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i64m8_m)))
-vint64m8_t vwmulsu(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16mf4)))
-vint16mf4_t vwmulsu(vint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16mf4_m)))
-vint16mf4_t vwmulsu(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16mf2)))
-vint16mf2_t vwmulsu(vint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16mf2_m)))
-vint16mf2_t vwmulsu(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16m1)))
-vint16m1_t vwmulsu(vint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16m1_m)))
-vint16m1_t vwmulsu(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16m2)))
-vint16m2_t vwmulsu(vint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16m2_m)))
-vint16m2_t vwmulsu(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16m4)))
-vint16m4_t vwmulsu(vint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16m4_m)))
-vint16m4_t vwmulsu(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16m8)))
-vint16m8_t vwmulsu(vint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16m8_m)))
-vint16m8_t vwmulsu(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i32mf2)))
-vint32mf2_t vwmulsu(vint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i32mf2_m)))
-vint32mf2_t vwmulsu(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i32m1)))
-vint32m1_t vwmulsu(vint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i32m1_m)))
-vint32m1_t vwmulsu(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i32m2)))
-vint32m2_t vwmulsu(vint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i32m2_m)))
-vint32m2_t vwmulsu(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i32m4)))
-vint32m4_t vwmulsu(vint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i32m4_m)))
-vint32m4_t vwmulsu(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i32m8)))
-vint32m8_t vwmulsu(vint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i32m8_m)))
-vint32m8_t vwmulsu(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i64m1)))
-vint64m1_t vwmulsu(vint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i64m1_m)))
-vint64m1_t vwmulsu(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i64m2)))
-vint64m2_t vwmulsu(vint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i64m2_m)))
-vint64m2_t vwmulsu(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i64m4)))
-vint64m4_t vwmulsu(vint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i64m4_m)))
-vint64m4_t vwmulsu(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i64m8)))
-vint64m8_t vwmulsu(vint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i64m8_m)))
-vint64m8_t vwmulsu(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8m1)))
-vint8m1_t vmacc(vint8m1_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8m1_m)))
-vint8m1_t vmacc(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8m2)))
-vint8m2_t vmacc(vint8m2_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8m2_m)))
-vint8m2_t vmacc(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8m4)))
-vint8m4_t vmacc(vint8m4_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8m4_m)))
-vint8m4_t vmacc(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8m8)))
-vint8m8_t vmacc(vint8m8_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8m8_m)))
-vint8m8_t vmacc(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8mf2)))
-vint8mf2_t vmacc(vint8mf2_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8mf2_m)))
-vint8mf2_t vmacc(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8mf4)))
-vint8mf4_t vmacc(vint8mf4_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8mf4_m)))
-vint8mf4_t vmacc(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8mf8)))
-vint8mf8_t vmacc(vint8mf8_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8mf8_m)))
-vint8mf8_t vmacc(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16m1)))
-vint16m1_t vmacc(vint16m1_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16m1_m)))
-vint16m1_t vmacc(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16m2)))
-vint16m2_t vmacc(vint16m2_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16m2_m)))
-vint16m2_t vmacc(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16m4)))
-vint16m4_t vmacc(vint16m4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16m4_m)))
-vint16m4_t vmacc(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16m8)))
-vint16m8_t vmacc(vint16m8_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16m8_m)))
-vint16m8_t vmacc(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16mf2)))
-vint16mf2_t vmacc(vint16mf2_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16mf2_m)))
-vint16mf2_t vmacc(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16mf4)))
-vint16mf4_t vmacc(vint16mf4_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16mf4_m)))
-vint16mf4_t vmacc(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i32m1)))
-vint32m1_t vmacc(vint32m1_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i32m1_m)))
-vint32m1_t vmacc(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i32m2)))
-vint32m2_t vmacc(vint32m2_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i32m2_m)))
-vint32m2_t vmacc(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i32m4)))
-vint32m4_t vmacc(vint32m4_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i32m4_m)))
-vint32m4_t vmacc(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i32m8)))
-vint32m8_t vmacc(vint32m8_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i32m8_m)))
-vint32m8_t vmacc(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i32mf2)))
-vint32mf2_t vmacc(vint32mf2_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i32mf2_m)))
-vint32mf2_t vmacc(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i64m1)))
-vint64m1_t vmacc(vint64m1_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i64m1_m)))
-vint64m1_t vmacc(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i64m2)))
-vint64m2_t vmacc(vint64m2_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i64m2_m)))
-vint64m2_t vmacc(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i64m4)))
-vint64m4_t vmacc(vint64m4_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i64m4_m)))
-vint64m4_t vmacc(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i64m8)))
-vint64m8_t vmacc(vint64m8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i64m8_m)))
-vint64m8_t vmacc(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8m1)))
-vint8m1_t vmacc(vint8m1_t op0, int8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8m1_m)))
-vint8m1_t vmacc(vbool8_t op0, vint8m1_t op1, int8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8m2)))
-vint8m2_t vmacc(vint8m2_t op0, int8_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8m2_m)))
-vint8m2_t vmacc(vbool4_t op0, vint8m2_t op1, int8_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8m4)))
-vint8m4_t vmacc(vint8m4_t op0, int8_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8m4_m)))
-vint8m4_t vmacc(vbool2_t op0, vint8m4_t op1, int8_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8m8)))
-vint8m8_t vmacc(vint8m8_t op0, int8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8m8_m)))
-vint8m8_t vmacc(vbool1_t op0, vint8m8_t op1, int8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8mf2)))
-vint8mf2_t vmacc(vint8mf2_t op0, int8_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8mf2_m)))
-vint8mf2_t vmacc(vbool16_t op0, vint8mf2_t op1, int8_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8mf4)))
-vint8mf4_t vmacc(vint8mf4_t op0, int8_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8mf4_m)))
-vint8mf4_t vmacc(vbool32_t op0, vint8mf4_t op1, int8_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8mf8)))
-vint8mf8_t vmacc(vint8mf8_t op0, int8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8mf8_m)))
-vint8mf8_t vmacc(vbool64_t op0, vint8mf8_t op1, int8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16m1)))
-vint16m1_t vmacc(vint16m1_t op0, int16_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16m1_m)))
-vint16m1_t vmacc(vbool16_t op0, vint16m1_t op1, int16_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16m2)))
-vint16m2_t vmacc(vint16m2_t op0, int16_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16m2_m)))
-vint16m2_t vmacc(vbool8_t op0, vint16m2_t op1, int16_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16m4)))
-vint16m4_t vmacc(vint16m4_t op0, int16_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16m4_m)))
-vint16m4_t vmacc(vbool4_t op0, vint16m4_t op1, int16_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16m8)))
-vint16m8_t vmacc(vint16m8_t op0, int16_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16m8_m)))
-vint16m8_t vmacc(vbool2_t op0, vint16m8_t op1, int16_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16mf2)))
-vint16mf2_t vmacc(vint16mf2_t op0, int16_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16mf2_m)))
-vint16mf2_t vmacc(vbool32_t op0, vint16mf2_t op1, int16_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16mf4)))
-vint16mf4_t vmacc(vint16mf4_t op0, int16_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16mf4_m)))
-vint16mf4_t vmacc(vbool64_t op0, vint16mf4_t op1, int16_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i32m1)))
-vint32m1_t vmacc(vint32m1_t op0, int32_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i32m1_m)))
-vint32m1_t vmacc(vbool32_t op0, vint32m1_t op1, int32_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i32m2)))
-vint32m2_t vmacc(vint32m2_t op0, int32_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i32m2_m)))
-vint32m2_t vmacc(vbool16_t op0, vint32m2_t op1, int32_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i32m4)))
-vint32m4_t vmacc(vint32m4_t op0, int32_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i32m4_m)))
-vint32m4_t vmacc(vbool8_t op0, vint32m4_t op1, int32_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i32m8)))
-vint32m8_t vmacc(vint32m8_t op0, int32_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i32m8_m)))
-vint32m8_t vmacc(vbool4_t op0, vint32m8_t op1, int32_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i32mf2)))
-vint32mf2_t vmacc(vint32mf2_t op0, int32_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i32mf2_m)))
-vint32mf2_t vmacc(vbool64_t op0, vint32mf2_t op1, int32_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i64m1)))
-vint64m1_t vmacc(vint64m1_t op0, int64_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i64m1_m)))
-vint64m1_t vmacc(vbool64_t op0, vint64m1_t op1, int64_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i64m2)))
-vint64m2_t vmacc(vint64m2_t op0, int64_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i64m2_m)))
-vint64m2_t vmacc(vbool32_t op0, vint64m2_t op1, int64_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i64m4)))
-vint64m4_t vmacc(vint64m4_t op0, int64_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i64m4_m)))
-vint64m4_t vmacc(vbool16_t op0, vint64m4_t op1, int64_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i64m8)))
-vint64m8_t vmacc(vint64m8_t op0, int64_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i64m8_m)))
-vint64m8_t vmacc(vbool8_t op0, vint64m8_t op1, int64_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8m1)))
-vuint8m1_t vmacc(vuint8m1_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8m1_m)))
-vuint8m1_t vmacc(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8m2)))
-vuint8m2_t vmacc(vuint8m2_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8m2_m)))
-vuint8m2_t vmacc(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8m4)))
-vuint8m4_t vmacc(vuint8m4_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8m4_m)))
-vuint8m4_t vmacc(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8m8)))
-vuint8m8_t vmacc(vuint8m8_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8m8_m)))
-vuint8m8_t vmacc(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8mf2)))
-vuint8mf2_t vmacc(vuint8mf2_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8mf2_m)))
-vuint8mf2_t vmacc(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8mf4)))
-vuint8mf4_t vmacc(vuint8mf4_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8mf4_m)))
-vuint8mf4_t vmacc(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8mf8)))
-vuint8mf8_t vmacc(vuint8mf8_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8mf8_m)))
-vuint8mf8_t vmacc(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16m1)))
-vuint16m1_t vmacc(vuint16m1_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16m1_m)))
-vuint16m1_t vmacc(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16m2)))
-vuint16m2_t vmacc(vuint16m2_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16m2_m)))
-vuint16m2_t vmacc(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16m4)))
-vuint16m4_t vmacc(vuint16m4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16m4_m)))
-vuint16m4_t vmacc(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16m8)))
-vuint16m8_t vmacc(vuint16m8_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16m8_m)))
-vuint16m8_t vmacc(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16mf2)))
-vuint16mf2_t vmacc(vuint16mf2_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16mf2_m)))
-vuint16mf2_t vmacc(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16mf4)))
-vuint16mf4_t vmacc(vuint16mf4_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16mf4_m)))
-vuint16mf4_t vmacc(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u32m1)))
-vuint32m1_t vmacc(vuint32m1_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u32m1_m)))
-vuint32m1_t vmacc(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u32m2)))
-vuint32m2_t vmacc(vuint32m2_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u32m2_m)))
-vuint32m2_t vmacc(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u32m4)))
-vuint32m4_t vmacc(vuint32m4_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u32m4_m)))
-vuint32m4_t vmacc(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u32m8)))
-vuint32m8_t vmacc(vuint32m8_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u32m8_m)))
-vuint32m8_t vmacc(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u32mf2)))
-vuint32mf2_t vmacc(vuint32mf2_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u32mf2_m)))
-vuint32mf2_t vmacc(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u64m1)))
-vuint64m1_t vmacc(vuint64m1_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u64m1_m)))
-vuint64m1_t vmacc(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u64m2)))
-vuint64m2_t vmacc(vuint64m2_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u64m2_m)))
-vuint64m2_t vmacc(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u64m4)))
-vuint64m4_t vmacc(vuint64m4_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u64m4_m)))
-vuint64m4_t vmacc(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u64m8)))
-vuint64m8_t vmacc(vuint64m8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u64m8_m)))
-vuint64m8_t vmacc(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8m1)))
-vuint8m1_t vmacc(vuint8m1_t op0, uint8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8m1_m)))
-vuint8m1_t vmacc(vbool8_t op0, vuint8m1_t op1, uint8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8m2)))
-vuint8m2_t vmacc(vuint8m2_t op0, uint8_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8m2_m)))
-vuint8m2_t vmacc(vbool4_t op0, vuint8m2_t op1, uint8_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8m4)))
-vuint8m4_t vmacc(vuint8m4_t op0, uint8_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8m4_m)))
-vuint8m4_t vmacc(vbool2_t op0, vuint8m4_t op1, uint8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8m8)))
-vuint8m8_t vmacc(vuint8m8_t op0, uint8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8m8_m)))
-vuint8m8_t vmacc(vbool1_t op0, vuint8m8_t op1, uint8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8mf2)))
-vuint8mf2_t vmacc(vuint8mf2_t op0, uint8_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8mf2_m)))
-vuint8mf2_t vmacc(vbool16_t op0, vuint8mf2_t op1, uint8_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8mf4)))
-vuint8mf4_t vmacc(vuint8mf4_t op0, uint8_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8mf4_m)))
-vuint8mf4_t vmacc(vbool32_t op0, vuint8mf4_t op1, uint8_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8mf8)))
-vuint8mf8_t vmacc(vuint8mf8_t op0, uint8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8mf8_m)))
-vuint8mf8_t vmacc(vbool64_t op0, vuint8mf8_t op1, uint8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16m1)))
-vuint16m1_t vmacc(vuint16m1_t op0, uint16_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16m1_m)))
-vuint16m1_t vmacc(vbool16_t op0, vuint16m1_t op1, uint16_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16m2)))
-vuint16m2_t vmacc(vuint16m2_t op0, uint16_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16m2_m)))
-vuint16m2_t vmacc(vbool8_t op0, vuint16m2_t op1, uint16_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16m4)))
-vuint16m4_t vmacc(vuint16m4_t op0, uint16_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16m4_m)))
-vuint16m4_t vmacc(vbool4_t op0, vuint16m4_t op1, uint16_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16m8)))
-vuint16m8_t vmacc(vuint16m8_t op0, uint16_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16m8_m)))
-vuint16m8_t vmacc(vbool2_t op0, vuint16m8_t op1, uint16_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16mf2)))
-vuint16mf2_t vmacc(vuint16mf2_t op0, uint16_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16mf2_m)))
-vuint16mf2_t vmacc(vbool32_t op0, vuint16mf2_t op1, uint16_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16mf4)))
-vuint16mf4_t vmacc(vuint16mf4_t op0, uint16_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16mf4_m)))
-vuint16mf4_t vmacc(vbool64_t op0, vuint16mf4_t op1, uint16_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u32m1)))
-vuint32m1_t vmacc(vuint32m1_t op0, uint32_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u32m1_m)))
-vuint32m1_t vmacc(vbool32_t op0, vuint32m1_t op1, uint32_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u32m2)))
-vuint32m2_t vmacc(vuint32m2_t op0, uint32_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u32m2_m)))
-vuint32m2_t vmacc(vbool16_t op0, vuint32m2_t op1, uint32_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u32m4)))
-vuint32m4_t vmacc(vuint32m4_t op0, uint32_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u32m4_m)))
-vuint32m4_t vmacc(vbool8_t op0, vuint32m4_t op1, uint32_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u32m8)))
-vuint32m8_t vmacc(vuint32m8_t op0, uint32_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u32m8_m)))
-vuint32m8_t vmacc(vbool4_t op0, vuint32m8_t op1, uint32_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u32mf2)))
-vuint32mf2_t vmacc(vuint32mf2_t op0, uint32_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u32mf2_m)))
-vuint32mf2_t vmacc(vbool64_t op0, vuint32mf2_t op1, uint32_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u64m1)))
-vuint64m1_t vmacc(vuint64m1_t op0, uint64_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u64m1_m)))
-vuint64m1_t vmacc(vbool64_t op0, vuint64m1_t op1, uint64_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u64m2)))
-vuint64m2_t vmacc(vuint64m2_t op0, uint64_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u64m2_m)))
-vuint64m2_t vmacc(vbool32_t op0, vuint64m2_t op1, uint64_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u64m4)))
-vuint64m4_t vmacc(vuint64m4_t op0, uint64_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u64m4_m)))
-vuint64m4_t vmacc(vbool16_t op0, vuint64m4_t op1, uint64_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u64m8)))
-vuint64m8_t vmacc(vuint64m8_t op0, uint64_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u64m8_m)))
-vuint64m8_t vmacc(vbool8_t op0, vuint64m8_t op1, uint64_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8m1)))
-vint8m1_t vnmsac(vint8m1_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8m1_m)))
-vint8m1_t vnmsac(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8m2)))
-vint8m2_t vnmsac(vint8m2_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8m2_m)))
-vint8m2_t vnmsac(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8m4)))
-vint8m4_t vnmsac(vint8m4_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8m4_m)))
-vint8m4_t vnmsac(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8m8)))
-vint8m8_t vnmsac(vint8m8_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8m8_m)))
-vint8m8_t vnmsac(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8mf2)))
-vint8mf2_t vnmsac(vint8mf2_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8mf2_m)))
-vint8mf2_t vnmsac(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8mf4)))
-vint8mf4_t vnmsac(vint8mf4_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8mf4_m)))
-vint8mf4_t vnmsac(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8mf8)))
-vint8mf8_t vnmsac(vint8mf8_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8mf8_m)))
-vint8mf8_t vnmsac(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16m1)))
-vint16m1_t vnmsac(vint16m1_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16m1_m)))
-vint16m1_t vnmsac(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16m2)))
-vint16m2_t vnmsac(vint16m2_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16m2_m)))
-vint16m2_t vnmsac(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16m4)))
-vint16m4_t vnmsac(vint16m4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16m4_m)))
-vint16m4_t vnmsac(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16m8)))
-vint16m8_t vnmsac(vint16m8_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16m8_m)))
-vint16m8_t vnmsac(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16mf2)))
-vint16mf2_t vnmsac(vint16mf2_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16mf2_m)))
-vint16mf2_t vnmsac(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16mf4)))
-vint16mf4_t vnmsac(vint16mf4_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16mf4_m)))
-vint16mf4_t vnmsac(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i32m1)))
-vint32m1_t vnmsac(vint32m1_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i32m1_m)))
-vint32m1_t vnmsac(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i32m2)))
-vint32m2_t vnmsac(vint32m2_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i32m2_m)))
-vint32m2_t vnmsac(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i32m4)))
-vint32m4_t vnmsac(vint32m4_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i32m4_m)))
-vint32m4_t vnmsac(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i32m8)))
-vint32m8_t vnmsac(vint32m8_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i32m8_m)))
-vint32m8_t vnmsac(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i32mf2)))
-vint32mf2_t vnmsac(vint32mf2_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i32mf2_m)))
-vint32mf2_t vnmsac(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i64m1)))
-vint64m1_t vnmsac(vint64m1_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i64m1_m)))
-vint64m1_t vnmsac(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i64m2)))
-vint64m2_t vnmsac(vint64m2_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i64m2_m)))
-vint64m2_t vnmsac(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i64m4)))
-vint64m4_t vnmsac(vint64m4_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i64m4_m)))
-vint64m4_t vnmsac(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i64m8)))
-vint64m8_t vnmsac(vint64m8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i64m8_m)))
-vint64m8_t vnmsac(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i32m1)))
-void vsuxei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i32m1_m)))
-void vsuxei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i32m2)))
-void vsuxei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i32m2_m)))
-void vsuxei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i32m4)))
-void vsuxei16(int32_t * op0, vuint16m2_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i32m4_m)))
-void vsuxei16(vbool8_t op0, int32_t * op1, vuint16m2_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i32m8)))
-void vsuxei16(int32_t * op0, vuint16m4_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i32m8_m)))
-void vsuxei16(vbool4_t op0, int32_t * op1, vuint16m4_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i32mf2)))
-void vsuxei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i32mf2_m)))
-void vsuxei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8m1)))
-vint8m1_t vnmsac(vint8m1_t op0, int8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8m1_m)))
-vint8m1_t vnmsac(vbool8_t op0, vint8m1_t op1, int8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8m2)))
-vint8m2_t vnmsac(vint8m2_t op0, int8_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8m2_m)))
-vint8m2_t vnmsac(vbool4_t op0, vint8m2_t op1, int8_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8m4)))
-vint8m4_t vnmsac(vint8m4_t op0, int8_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8m4_m)))
-vint8m4_t vnmsac(vbool2_t op0, vint8m4_t op1, int8_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8m8)))
-vint8m8_t vnmsac(vint8m8_t op0, int8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8m8_m)))
-vint8m8_t vnmsac(vbool1_t op0, vint8m8_t op1, int8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8mf2)))
-vint8mf2_t vnmsac(vint8mf2_t op0, int8_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8mf2_m)))
-vint8mf2_t vnmsac(vbool16_t op0, vint8mf2_t op1, int8_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8mf4)))
-vint8mf4_t vnmsac(vint8mf4_t op0, int8_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8mf4_m)))
-vint8mf4_t vnmsac(vbool32_t op0, vint8mf4_t op1, int8_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8mf8)))
-vint8mf8_t vnmsac(vint8mf8_t op0, int8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8mf8_m)))
-vint8mf8_t vnmsac(vbool64_t op0, vint8mf8_t op1, int8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16m1)))
-vint16m1_t vnmsac(vint16m1_t op0, int16_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16m1_m)))
-vint16m1_t vnmsac(vbool16_t op0, vint16m1_t op1, int16_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16m2)))
-vint16m2_t vnmsac(vint16m2_t op0, int16_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16m2_m)))
-vint16m2_t vnmsac(vbool8_t op0, vint16m2_t op1, int16_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16m4)))
-vint16m4_t vnmsac(vint16m4_t op0, int16_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16m4_m)))
-vint16m4_t vnmsac(vbool4_t op0, vint16m4_t op1, int16_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16m8)))
-vint16m8_t vnmsac(vint16m8_t op0, int16_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16m8_m)))
-vint16m8_t vnmsac(vbool2_t op0, vint16m8_t op1, int16_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16mf2)))
-vint16mf2_t vnmsac(vint16mf2_t op0, int16_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16mf2_m)))
-vint16mf2_t vnmsac(vbool32_t op0, vint16mf2_t op1, int16_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16mf4)))
-vint16mf4_t vnmsac(vint16mf4_t op0, int16_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16mf4_m)))
-vint16mf4_t vnmsac(vbool64_t op0, vint16mf4_t op1, int16_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i32m1)))
-vint32m1_t vnmsac(vint32m1_t op0, int32_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i32m1_m)))
-vint32m1_t vnmsac(vbool32_t op0, vint32m1_t op1, int32_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i32m2)))
-vint32m2_t vnmsac(vint32m2_t op0, int32_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i32m2_m)))
-vint32m2_t vnmsac(vbool16_t op0, vint32m2_t op1, int32_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i32m4)))
-vint32m4_t vnmsac(vint32m4_t op0, int32_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i32m4_m)))
-vint32m4_t vnmsac(vbool8_t op0, vint32m4_t op1, int32_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i32m8)))
-vint32m8_t vnmsac(vint32m8_t op0, int32_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i32m8_m)))
-vint32m8_t vnmsac(vbool4_t op0, vint32m8_t op1, int32_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i32mf2)))
-vint32mf2_t vnmsac(vint32mf2_t op0, int32_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i32mf2_m)))
-vint32mf2_t vnmsac(vbool64_t op0, vint32mf2_t op1, int32_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i64m1)))
-vint64m1_t vnmsac(vint64m1_t op0, int64_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i64m1_m)))
-vint64m1_t vnmsac(vbool64_t op0, vint64m1_t op1, int64_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i64m2)))
-vint64m2_t vnmsac(vint64m2_t op0, int64_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i64m2_m)))
-vint64m2_t vnmsac(vbool32_t op0, vint64m2_t op1, int64_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i64m4)))
-vint64m4_t vnmsac(vint64m4_t op0, int64_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i64m4_m)))
-vint64m4_t vnmsac(vbool16_t op0, vint64m4_t op1, int64_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i64m8)))
-vint64m8_t vnmsac(vint64m8_t op0, int64_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i64m8_m)))
-vint64m8_t vnmsac(vbool8_t op0, vint64m8_t op1, int64_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8m1)))
-vuint8m1_t vnmsac(vuint8m1_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8m1_m)))
-vuint8m1_t vnmsac(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8m2)))
-vuint8m2_t vnmsac(vuint8m2_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8m2_m)))
-vuint8m2_t vnmsac(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8m4)))
-vuint8m4_t vnmsac(vuint8m4_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8m4_m)))
-vuint8m4_t vnmsac(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8m8)))
-vuint8m8_t vnmsac(vuint8m8_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8m8_m)))
-vuint8m8_t vnmsac(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8mf2)))
-vuint8mf2_t vnmsac(vuint8mf2_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8mf2_m)))
-vuint8mf2_t vnmsac(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8mf4)))
-vuint8mf4_t vnmsac(vuint8mf4_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8mf4_m)))
-vuint8mf4_t vnmsac(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8mf8)))
-vuint8mf8_t vnmsac(vuint8mf8_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8mf8_m)))
-vuint8mf8_t vnmsac(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16m1)))
-vuint16m1_t vnmsac(vuint16m1_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16m1_m)))
-vuint16m1_t vnmsac(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16m2)))
-vuint16m2_t vnmsac(vuint16m2_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16m2_m)))
-vuint16m2_t vnmsac(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16m4)))
-vuint16m4_t vnmsac(vuint16m4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16m4_m)))
-vuint16m4_t vnmsac(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16m8)))
-vuint16m8_t vnmsac(vuint16m8_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16m8_m)))
-vuint16m8_t vnmsac(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16mf2)))
-vuint16mf2_t vnmsac(vuint16mf2_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16mf2_m)))
-vuint16mf2_t vnmsac(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16mf4)))
-vuint16mf4_t vnmsac(vuint16mf4_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16mf4_m)))
-vuint16mf4_t vnmsac(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u32m1)))
-vuint32m1_t vnmsac(vuint32m1_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u32m1_m)))
-vuint32m1_t vnmsac(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u32m2)))
-vuint32m2_t vnmsac(vuint32m2_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u32m2_m)))
-vuint32m2_t vnmsac(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u32m4)))
-vuint32m4_t vnmsac(vuint32m4_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u32m4_m)))
-vuint32m4_t vnmsac(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u32m8)))
-vuint32m8_t vnmsac(vuint32m8_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u32m8_m)))
-vuint32m8_t vnmsac(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u32mf2)))
-vuint32mf2_t vnmsac(vuint32mf2_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u32mf2_m)))
-vuint32mf2_t vnmsac(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u64m1)))
-vuint64m1_t vnmsac(vuint64m1_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u64m1_m)))
-vuint64m1_t vnmsac(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u64m2)))
-vuint64m2_t vnmsac(vuint64m2_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u64m2_m)))
-vuint64m2_t vnmsac(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u64m4)))
-vuint64m4_t vnmsac(vuint64m4_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u64m4_m)))
-vuint64m4_t vnmsac(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u64m8)))
-vuint64m8_t vnmsac(vuint64m8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u64m8_m)))
-vuint64m8_t vnmsac(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8m1)))
-vuint8m1_t vnmsac(vuint8m1_t op0, uint8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8m1_m)))
-vuint8m1_t vnmsac(vbool8_t op0, vuint8m1_t op1, uint8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8m2)))
-vuint8m2_t vnmsac(vuint8m2_t op0, uint8_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8m2_m)))
-vuint8m2_t vnmsac(vbool4_t op0, vuint8m2_t op1, uint8_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8m4)))
-vuint8m4_t vnmsac(vuint8m4_t op0, uint8_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8m4_m)))
-vuint8m4_t vnmsac(vbool2_t op0, vuint8m4_t op1, uint8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8m8)))
-vuint8m8_t vnmsac(vuint8m8_t op0, uint8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8m8_m)))
-vuint8m8_t vnmsac(vbool1_t op0, vuint8m8_t op1, uint8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8mf2)))
-vuint8mf2_t vnmsac(vuint8mf2_t op0, uint8_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8mf2_m)))
-vuint8mf2_t vnmsac(vbool16_t op0, vuint8mf2_t op1, uint8_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8mf4)))
-vuint8mf4_t vnmsac(vuint8mf4_t op0, uint8_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8mf4_m)))
-vuint8mf4_t vnmsac(vbool32_t op0, vuint8mf4_t op1, uint8_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8mf8)))
-vuint8mf8_t vnmsac(vuint8mf8_t op0, uint8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8mf8_m)))
-vuint8mf8_t vnmsac(vbool64_t op0, vuint8mf8_t op1, uint8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16m1)))
-vuint16m1_t vnmsac(vuint16m1_t op0, uint16_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16m1_m)))
-vuint16m1_t vnmsac(vbool16_t op0, vuint16m1_t op1, uint16_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16m2)))
-vuint16m2_t vnmsac(vuint16m2_t op0, uint16_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16m2_m)))
-vuint16m2_t vnmsac(vbool8_t op0, vuint16m2_t op1, uint16_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16m4)))
-vuint16m4_t vnmsac(vuint16m4_t op0, uint16_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16m4_m)))
-vuint16m4_t vnmsac(vbool4_t op0, vuint16m4_t op1, uint16_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16m8)))
-vuint16m8_t vnmsac(vuint16m8_t op0, uint16_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16m8_m)))
-vuint16m8_t vnmsac(vbool2_t op0, vuint16m8_t op1, uint16_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16mf2)))
-vuint16mf2_t vnmsac(vuint16mf2_t op0, uint16_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16mf2_m)))
-vuint16mf2_t vnmsac(vbool32_t op0, vuint16mf2_t op1, uint16_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16mf4)))
-vuint16mf4_t vnmsac(vuint16mf4_t op0, uint16_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16mf4_m)))
-vuint16mf4_t vnmsac(vbool64_t op0, vuint16mf4_t op1, uint16_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u32m1)))
-vuint32m1_t vnmsac(vuint32m1_t op0, uint32_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u32m1_m)))
-vuint32m1_t vnmsac(vbool32_t op0, vuint32m1_t op1, uint32_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u32m2)))
-vuint32m2_t vnmsac(vuint32m2_t op0, uint32_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u32m2_m)))
-vuint32m2_t vnmsac(vbool16_t op0, vuint32m2_t op1, uint32_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u32m4)))
-vuint32m4_t vnmsac(vuint32m4_t op0, uint32_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u32m4_m)))
-vuint32m4_t vnmsac(vbool8_t op0, vuint32m4_t op1, uint32_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u32m8)))
-vuint32m8_t vnmsac(vuint32m8_t op0, uint32_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u32m8_m)))
-vuint32m8_t vnmsac(vbool4_t op0, vuint32m8_t op1, uint32_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u32mf2)))
-vuint32mf2_t vnmsac(vuint32mf2_t op0, uint32_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u32mf2_m)))
-vuint32mf2_t vnmsac(vbool64_t op0, vuint32mf2_t op1, uint32_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u64m1)))
-vuint64m1_t vnmsac(vuint64m1_t op0, uint64_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u64m1_m)))
-vuint64m1_t vnmsac(vbool64_t op0, vuint64m1_t op1, uint64_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u64m2)))
-vuint64m2_t vnmsac(vuint64m2_t op0, uint64_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u64m2_m)))
-vuint64m2_t vnmsac(vbool32_t op0, vuint64m2_t op1, uint64_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u64m4)))
-vuint64m4_t vnmsac(vuint64m4_t op0, uint64_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u64m4_m)))
-vuint64m4_t vnmsac(vbool16_t op0, vuint64m4_t op1, uint64_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u64m8)))
-vuint64m8_t vnmsac(vuint64m8_t op0, uint64_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u64m8_m)))
-vuint64m8_t vnmsac(vbool8_t op0, vuint64m8_t op1, uint64_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8m1)))
-vint8m1_t vmadd(vint8m1_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8m1_m)))
-vint8m1_t vmadd(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8m2)))
-vint8m2_t vmadd(vint8m2_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8m2_m)))
-vint8m2_t vmadd(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8m4)))
-vint8m4_t vmadd(vint8m4_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8m4_m)))
-vint8m4_t vmadd(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8m8)))
-vint8m8_t vmadd(vint8m8_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8m8_m)))
-vint8m8_t vmadd(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8mf2)))
-vint8mf2_t vmadd(vint8mf2_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8mf2_m)))
-vint8mf2_t vmadd(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8mf4)))
-vint8mf4_t vmadd(vint8mf4_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8mf4_m)))
-vint8mf4_t vmadd(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8mf8)))
-vint8mf8_t vmadd(vint8mf8_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8mf8_m)))
-vint8mf8_t vmadd(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16m1)))
-vint16m1_t vmadd(vint16m1_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16m1_m)))
-vint16m1_t vmadd(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16m2)))
-vint16m2_t vmadd(vint16m2_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16m2_m)))
-vint16m2_t vmadd(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16m4)))
-vint16m4_t vmadd(vint16m4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16m4_m)))
-vint16m4_t vmadd(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16m8)))
-vint16m8_t vmadd(vint16m8_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16m8_m)))
-vint16m8_t vmadd(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16mf2)))
-vint16mf2_t vmadd(vint16mf2_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16mf2_m)))
-vint16mf2_t vmadd(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16mf4)))
-vint16mf4_t vmadd(vint16mf4_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16mf4_m)))
-vint16mf4_t vmadd(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i32m1)))
-vint32m1_t vmadd(vint32m1_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i32m1_m)))
-vint32m1_t vmadd(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i32m2)))
-vint32m2_t vmadd(vint32m2_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i32m2_m)))
-vint32m2_t vmadd(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i32m4)))
-vint32m4_t vmadd(vint32m4_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i32m4_m)))
-vint32m4_t vmadd(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i32m8)))
-vint32m8_t vmadd(vint32m8_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i32m8_m)))
-vint32m8_t vmadd(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i32mf2)))
-vint32mf2_t vmadd(vint32mf2_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i32mf2_m)))
-vint32mf2_t vmadd(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i64m1)))
-vint64m1_t vmadd(vint64m1_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i64m1_m)))
-vint64m1_t vmadd(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i64m2)))
-vint64m2_t vmadd(vint64m2_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i64m2_m)))
-vint64m2_t vmadd(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i64m4)))
-vint64m4_t vmadd(vint64m4_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i64m4_m)))
-vint64m4_t vmadd(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i64m8)))
-vint64m8_t vmadd(vint64m8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i64m8_m)))
-vint64m8_t vmadd(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8m1)))
-vint8m1_t vmadd(vint8m1_t op0, int8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8m1_m)))
-vint8m1_t vmadd(vbool8_t op0, vint8m1_t op1, int8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8m2)))
-vint8m2_t vmadd(vint8m2_t op0, int8_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8m2_m)))
-vint8m2_t vmadd(vbool4_t op0, vint8m2_t op1, int8_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8m4)))
-vint8m4_t vmadd(vint8m4_t op0, int8_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8m4_m)))
-vint8m4_t vmadd(vbool2_t op0, vint8m4_t op1, int8_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8m8)))
-vint8m8_t vmadd(vint8m8_t op0, int8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8m8_m)))
-vint8m8_t vmadd(vbool1_t op0, vint8m8_t op1, int8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8mf2)))
-vint8mf2_t vmadd(vint8mf2_t op0, int8_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8mf2_m)))
-vint8mf2_t vmadd(vbool16_t op0, vint8mf2_t op1, int8_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8mf4)))
-vint8mf4_t vmadd(vint8mf4_t op0, int8_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8mf4_m)))
-vint8mf4_t vmadd(vbool32_t op0, vint8mf4_t op1, int8_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8mf8)))
-vint8mf8_t vmadd(vint8mf8_t op0, int8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8mf8_m)))
-vint8mf8_t vmadd(vbool64_t op0, vint8mf8_t op1, int8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16m1)))
-vint16m1_t vmadd(vint16m1_t op0, int16_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16m1_m)))
-vint16m1_t vmadd(vbool16_t op0, vint16m1_t op1, int16_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16m2)))
-vint16m2_t vmadd(vint16m2_t op0, int16_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16m2_m)))
-vint16m2_t vmadd(vbool8_t op0, vint16m2_t op1, int16_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16m4)))
-vint16m4_t vmadd(vint16m4_t op0, int16_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16m4_m)))
-vint16m4_t vmadd(vbool4_t op0, vint16m4_t op1, int16_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16m8)))
-vint16m8_t vmadd(vint16m8_t op0, int16_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16m8_m)))
-vint16m8_t vmadd(vbool2_t op0, vint16m8_t op1, int16_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16mf2)))
-vint16mf2_t vmadd(vint16mf2_t op0, int16_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16mf2_m)))
-vint16mf2_t vmadd(vbool32_t op0, vint16mf2_t op1, int16_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16mf4)))
-vint16mf4_t vmadd(vint16mf4_t op0, int16_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16mf4_m)))
-vint16mf4_t vmadd(vbool64_t op0, vint16mf4_t op1, int16_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i32m1)))
-vint32m1_t vmadd(vint32m1_t op0, int32_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i32m1_m)))
-vint32m1_t vmadd(vbool32_t op0, vint32m1_t op1, int32_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i32m2)))
-vint32m2_t vmadd(vint32m2_t op0, int32_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i32m2_m)))
-vint32m2_t vmadd(vbool16_t op0, vint32m2_t op1, int32_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i32m4)))
-vint32m4_t vmadd(vint32m4_t op0, int32_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i32m4_m)))
-vint32m4_t vmadd(vbool8_t op0, vint32m4_t op1, int32_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i32m8)))
-vint32m8_t vmadd(vint32m8_t op0, int32_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i32m8_m)))
-vint32m8_t vmadd(vbool4_t op0, vint32m8_t op1, int32_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i32mf2)))
-vint32mf2_t vmadd(vint32mf2_t op0, int32_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i32mf2_m)))
-vint32mf2_t vmadd(vbool64_t op0, vint32mf2_t op1, int32_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i64m1)))
-vint64m1_t vmadd(vint64m1_t op0, int64_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i64m1_m)))
-vint64m1_t vmadd(vbool64_t op0, vint64m1_t op1, int64_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i64m2)))
-vint64m2_t vmadd(vint64m2_t op0, int64_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i64m2_m)))
-vint64m2_t vmadd(vbool32_t op0, vint64m2_t op1, int64_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i64m4)))
-vint64m4_t vmadd(vint64m4_t op0, int64_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i64m4_m)))
-vint64m4_t vmadd(vbool16_t op0, vint64m4_t op1, int64_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i64m8)))
-vint64m8_t vmadd(vint64m8_t op0, int64_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i64m8_m)))
-vint64m8_t vmadd(vbool8_t op0, vint64m8_t op1, int64_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8m1)))
-vuint8m1_t vmadd(vuint8m1_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8m1_m)))
-vuint8m1_t vmadd(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8m2)))
-vuint8m2_t vmadd(vuint8m2_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8m2_m)))
-vuint8m2_t vmadd(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8m4)))
-vuint8m4_t vmadd(vuint8m4_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8m4_m)))
-vuint8m4_t vmadd(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8m8)))
-vuint8m8_t vmadd(vuint8m8_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8m8_m)))
-vuint8m8_t vmadd(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8mf2)))
-vuint8mf2_t vmadd(vuint8mf2_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8mf2_m)))
-vuint8mf2_t vmadd(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8mf4)))
-vuint8mf4_t vmadd(vuint8mf4_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8mf4_m)))
-vuint8mf4_t vmadd(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8mf8)))
-vuint8mf8_t vmadd(vuint8mf8_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8mf8_m)))
-vuint8mf8_t vmadd(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16m1)))
-vuint16m1_t vmadd(vuint16m1_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16m1_m)))
-vuint16m1_t vmadd(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16m2)))
-vuint16m2_t vmadd(vuint16m2_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16m2_m)))
-vuint16m2_t vmadd(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16m4)))
-vuint16m4_t vmadd(vuint16m4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16m4_m)))
-vuint16m4_t vmadd(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16m8)))
-vuint16m8_t vmadd(vuint16m8_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16m8_m)))
-vuint16m8_t vmadd(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16mf2)))
-vuint16mf2_t vmadd(vuint16mf2_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16mf2_m)))
-vuint16mf2_t vmadd(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16mf4)))
-vuint16mf4_t vmadd(vuint16mf4_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16mf4_m)))
-vuint16mf4_t vmadd(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u32m1)))
-vuint32m1_t vmadd(vuint32m1_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u32m1_m)))
-vuint32m1_t vmadd(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u32m2)))
-vuint32m2_t vmadd(vuint32m2_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u32m2_m)))
-vuint32m2_t vmadd(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u32m4)))
-vuint32m4_t vmadd(vuint32m4_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u32m4_m)))
-vuint32m4_t vmadd(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u32m8)))
-vuint32m8_t vmadd(vuint32m8_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u32m8_m)))
-vuint32m8_t vmadd(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u32mf2)))
-vuint32mf2_t vmadd(vuint32mf2_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u32mf2_m)))
-vuint32mf2_t vmadd(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u64m1)))
-vuint64m1_t vmadd(vuint64m1_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u64m1_m)))
-vuint64m1_t vmadd(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u64m2)))
-vuint64m2_t vmadd(vuint64m2_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u64m2_m)))
-vuint64m2_t vmadd(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u64m4)))
-vuint64m4_t vmadd(vuint64m4_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u64m4_m)))
-vuint64m4_t vmadd(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u64m8)))
-vuint64m8_t vmadd(vuint64m8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u64m8_m)))
-vuint64m8_t vmadd(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8m1)))
-vuint8m1_t vmadd(vuint8m1_t op0, uint8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8m1_m)))
-vuint8m1_t vmadd(vbool8_t op0, vuint8m1_t op1, uint8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8m2)))
-vuint8m2_t vmadd(vuint8m2_t op0, uint8_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8m2_m)))
-vuint8m2_t vmadd(vbool4_t op0, vuint8m2_t op1, uint8_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8m4)))
-vuint8m4_t vmadd(vuint8m4_t op0, uint8_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8m4_m)))
-vuint8m4_t vmadd(vbool2_t op0, vuint8m4_t op1, uint8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8m8)))
-vuint8m8_t vmadd(vuint8m8_t op0, uint8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8m8_m)))
-vuint8m8_t vmadd(vbool1_t op0, vuint8m8_t op1, uint8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8mf2)))
-vuint8mf2_t vmadd(vuint8mf2_t op0, uint8_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8mf2_m)))
-vuint8mf2_t vmadd(vbool16_t op0, vuint8mf2_t op1, uint8_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8mf4)))
-vuint8mf4_t vmadd(vuint8mf4_t op0, uint8_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8mf4_m)))
-vuint8mf4_t vmadd(vbool32_t op0, vuint8mf4_t op1, uint8_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8mf8)))
-vuint8mf8_t vmadd(vuint8mf8_t op0, uint8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8mf8_m)))
-vuint8mf8_t vmadd(vbool64_t op0, vuint8mf8_t op1, uint8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16m1)))
-vuint16m1_t vmadd(vuint16m1_t op0, uint16_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16m1_m)))
-vuint16m1_t vmadd(vbool16_t op0, vuint16m1_t op1, uint16_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16m2)))
-vuint16m2_t vmadd(vuint16m2_t op0, uint16_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16m2_m)))
-vuint16m2_t vmadd(vbool8_t op0, vuint16m2_t op1, uint16_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16m4)))
-vuint16m4_t vmadd(vuint16m4_t op0, uint16_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16m4_m)))
-vuint16m4_t vmadd(vbool4_t op0, vuint16m4_t op1, uint16_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16m8)))
-vuint16m8_t vmadd(vuint16m8_t op0, uint16_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16m8_m)))
-vuint16m8_t vmadd(vbool2_t op0, vuint16m8_t op1, uint16_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16mf2)))
-vuint16mf2_t vmadd(vuint16mf2_t op0, uint16_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16mf2_m)))
-vuint16mf2_t vmadd(vbool32_t op0, vuint16mf2_t op1, uint16_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16mf4)))
-vuint16mf4_t vmadd(vuint16mf4_t op0, uint16_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16mf4_m)))
-vuint16mf4_t vmadd(vbool64_t op0, vuint16mf4_t op1, uint16_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u32m1)))
-vuint32m1_t vmadd(vuint32m1_t op0, uint32_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u32m1_m)))
-vuint32m1_t vmadd(vbool32_t op0, vuint32m1_t op1, uint32_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u32m2)))
-vuint32m2_t vmadd(vuint32m2_t op0, uint32_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u32m2_m)))
-vuint32m2_t vmadd(vbool16_t op0, vuint32m2_t op1, uint32_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u32m4)))
-vuint32m4_t vmadd(vuint32m4_t op0, uint32_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u32m4_m)))
-vuint32m4_t vmadd(vbool8_t op0, vuint32m4_t op1, uint32_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u32m8)))
-vuint32m8_t vmadd(vuint32m8_t op0, uint32_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u32m8_m)))
-vuint32m8_t vmadd(vbool4_t op0, vuint32m8_t op1, uint32_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u32mf2)))
-vuint32mf2_t vmadd(vuint32mf2_t op0, uint32_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u32mf2_m)))
-vuint32mf2_t vmadd(vbool64_t op0, vuint32mf2_t op1, uint32_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u64m1)))
-vuint64m1_t vmadd(vuint64m1_t op0, uint64_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u64m1_m)))
-vuint64m1_t vmadd(vbool64_t op0, vuint64m1_t op1, uint64_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u64m2)))
-vuint64m2_t vmadd(vuint64m2_t op0, uint64_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u64m2_m)))
-vuint64m2_t vmadd(vbool32_t op0, vuint64m2_t op1, uint64_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u64m4)))
-vuint64m4_t vmadd(vuint64m4_t op0, uint64_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u64m4_m)))
-vuint64m4_t vmadd(vbool16_t op0, vuint64m4_t op1, uint64_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u64m8)))
-vuint64m8_t vmadd(vuint64m8_t op0, uint64_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u64m8_m)))
-vuint64m8_t vmadd(vbool8_t op0, vuint64m8_t op1, uint64_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8m1)))
-vint8m1_t vnmsub(vint8m1_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8m1_m)))
-vint8m1_t vnmsub(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8m2)))
-vint8m2_t vnmsub(vint8m2_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8m2_m)))
-vint8m2_t vnmsub(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8m4)))
-vint8m4_t vnmsub(vint8m4_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8m4_m)))
-vint8m4_t vnmsub(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8m8)))
-vint8m8_t vnmsub(vint8m8_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8m8_m)))
-vint8m8_t vnmsub(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8mf2)))
-vint8mf2_t vnmsub(vint8mf2_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8mf2_m)))
-vint8mf2_t vnmsub(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8mf4)))
-vint8mf4_t vnmsub(vint8mf4_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8mf4_m)))
-vint8mf4_t vnmsub(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8mf8)))
-vint8mf8_t vnmsub(vint8mf8_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8mf8_m)))
-vint8mf8_t vnmsub(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16m1)))
-vint16m1_t vnmsub(vint16m1_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16m1_m)))
-vint16m1_t vnmsub(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16m2)))
-vint16m2_t vnmsub(vint16m2_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16m2_m)))
-vint16m2_t vnmsub(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16m4)))
-vint16m4_t vnmsub(vint16m4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16m4_m)))
-vint16m4_t vnmsub(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16m8)))
-vint16m8_t vnmsub(vint16m8_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16m8_m)))
-vint16m8_t vnmsub(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16mf2)))
-vint16mf2_t vnmsub(vint16mf2_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16mf2_m)))
-vint16mf2_t vnmsub(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16mf4)))
-vint16mf4_t vnmsub(vint16mf4_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16mf4_m)))
-vint16mf4_t vnmsub(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i32m1)))
-vint32m1_t vnmsub(vint32m1_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i32m1_m)))
-vint32m1_t vnmsub(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i32m2)))
-vint32m2_t vnmsub(vint32m2_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i32m2_m)))
-vint32m2_t vnmsub(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i32m4)))
-vint32m4_t vnmsub(vint32m4_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i32m4_m)))
-vint32m4_t vnmsub(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i32m8)))
-vint32m8_t vnmsub(vint32m8_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i32m8_m)))
-vint32m8_t vnmsub(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i32mf2)))
-vint32mf2_t vnmsub(vint32mf2_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i32mf2_m)))
-vint32mf2_t vnmsub(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i64m1)))
-vint64m1_t vnmsub(vint64m1_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i64m1_m)))
-vint64m1_t vnmsub(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i64m2)))
-vint64m2_t vnmsub(vint64m2_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i64m2_m)))
-vint64m2_t vnmsub(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i64m4)))
-vint64m4_t vnmsub(vint64m4_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i64m4_m)))
-vint64m4_t vnmsub(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i64m8)))
-vint64m8_t vnmsub(vint64m8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i64m8_m)))
-vint64m8_t vnmsub(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8m1)))
-vint8m1_t vnmsub(vint8m1_t op0, int8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8m1_m)))
-vint8m1_t vnmsub(vbool8_t op0, vint8m1_t op1, int8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8m2)))
-vint8m2_t vnmsub(vint8m2_t op0, int8_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8m2_m)))
-vint8m2_t vnmsub(vbool4_t op0, vint8m2_t op1, int8_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8m4)))
-vint8m4_t vnmsub(vint8m4_t op0, int8_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8m4_m)))
-vint8m4_t vnmsub(vbool2_t op0, vint8m4_t op1, int8_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8m8)))
-vint8m8_t vnmsub(vint8m8_t op0, int8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8m8_m)))
-vint8m8_t vnmsub(vbool1_t op0, vint8m8_t op1, int8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8mf2)))
-vint8mf2_t vnmsub(vint8mf2_t op0, int8_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8mf2_m)))
-vint8mf2_t vnmsub(vbool16_t op0, vint8mf2_t op1, int8_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8mf4)))
-vint8mf4_t vnmsub(vint8mf4_t op0, int8_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8mf4_m)))
-vint8mf4_t vnmsub(vbool32_t op0, vint8mf4_t op1, int8_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8mf8)))
-vint8mf8_t vnmsub(vint8mf8_t op0, int8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8mf8_m)))
-vint8mf8_t vnmsub(vbool64_t op0, vint8mf8_t op1, int8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16m1)))
-vint16m1_t vnmsub(vint16m1_t op0, int16_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16m1_m)))
-vint16m1_t vnmsub(vbool16_t op0, vint16m1_t op1, int16_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16m2)))
-vint16m2_t vnmsub(vint16m2_t op0, int16_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16m2_m)))
-vint16m2_t vnmsub(vbool8_t op0, vint16m2_t op1, int16_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16m4)))
-vint16m4_t vnmsub(vint16m4_t op0, int16_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16m4_m)))
-vint16m4_t vnmsub(vbool4_t op0, vint16m4_t op1, int16_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16m8)))
-vint16m8_t vnmsub(vint16m8_t op0, int16_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16m8_m)))
-vint16m8_t vnmsub(vbool2_t op0, vint16m8_t op1, int16_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16mf2)))
-vint16mf2_t vnmsub(vint16mf2_t op0, int16_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16mf2_m)))
-vint16mf2_t vnmsub(vbool32_t op0, vint16mf2_t op1, int16_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16mf4)))
-vint16mf4_t vnmsub(vint16mf4_t op0, int16_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16mf4_m)))
-vint16mf4_t vnmsub(vbool64_t op0, vint16mf4_t op1, int16_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i32m1)))
-vint32m1_t vnmsub(vint32m1_t op0, int32_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i32m1_m)))
-vint32m1_t vnmsub(vbool32_t op0, vint32m1_t op1, int32_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i32m2)))
-vint32m2_t vnmsub(vint32m2_t op0, int32_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i32m2_m)))
-vint32m2_t vnmsub(vbool16_t op0, vint32m2_t op1, int32_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i32m4)))
-vint32m4_t vnmsub(vint32m4_t op0, int32_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i32m4_m)))
-vint32m4_t vnmsub(vbool8_t op0, vint32m4_t op1, int32_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i32m8)))
-vint32m8_t vnmsub(vint32m8_t op0, int32_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i32m8_m)))
-vint32m8_t vnmsub(vbool4_t op0, vint32m8_t op1, int32_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i32mf2)))
-vint32mf2_t vnmsub(vint32mf2_t op0, int32_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i32mf2_m)))
-vint32mf2_t vnmsub(vbool64_t op0, vint32mf2_t op1, int32_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i64m1)))
-vint64m1_t vnmsub(vint64m1_t op0, int64_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i64m1_m)))
-vint64m1_t vnmsub(vbool64_t op0, vint64m1_t op1, int64_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i64m2)))
-vint64m2_t vnmsub(vint64m2_t op0, int64_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i64m2_m)))
-vint64m2_t vnmsub(vbool32_t op0, vint64m2_t op1, int64_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i64m4)))
-vint64m4_t vnmsub(vint64m4_t op0, int64_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i64m4_m)))
-vint64m4_t vnmsub(vbool16_t op0, vint64m4_t op1, int64_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i64m8)))
-vint64m8_t vnmsub(vint64m8_t op0, int64_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i64m8_m)))
-vint64m8_t vnmsub(vbool8_t op0, vint64m8_t op1, int64_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8m1)))
-vuint8m1_t vnmsub(vuint8m1_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8m1_m)))
-vuint8m1_t vnmsub(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8m2)))
-vuint8m2_t vnmsub(vuint8m2_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8m2_m)))
-vuint8m2_t vnmsub(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8m4)))
-vuint8m4_t vnmsub(vuint8m4_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8m4_m)))
-vuint8m4_t vnmsub(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8m8)))
-vuint8m8_t vnmsub(vuint8m8_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8m8_m)))
-vuint8m8_t vnmsub(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8mf2)))
-vuint8mf2_t vnmsub(vuint8mf2_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8mf2_m)))
-vuint8mf2_t vnmsub(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8mf4)))
-vuint8mf4_t vnmsub(vuint8mf4_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8mf4_m)))
-vuint8mf4_t vnmsub(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8mf8)))
-vuint8mf8_t vnmsub(vuint8mf8_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8mf8_m)))
-vuint8mf8_t vnmsub(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16m1)))
-vuint16m1_t vnmsub(vuint16m1_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16m1_m)))
-vuint16m1_t vnmsub(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16m2)))
-vuint16m2_t vnmsub(vuint16m2_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16m2_m)))
-vuint16m2_t vnmsub(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16m4)))
-vuint16m4_t vnmsub(vuint16m4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16m4_m)))
-vuint16m4_t vnmsub(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16m8)))
-vuint16m8_t vnmsub(vuint16m8_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16m8_m)))
-vuint16m8_t vnmsub(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16mf2)))
-vuint16mf2_t vnmsub(vuint16mf2_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16mf2_m)))
-vuint16mf2_t vnmsub(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16mf4)))
-vuint16mf4_t vnmsub(vuint16mf4_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16mf4_m)))
-vuint16mf4_t vnmsub(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u32m1)))
-vuint32m1_t vnmsub(vuint32m1_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u32m1_m)))
-vuint32m1_t vnmsub(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u32m2)))
-vuint32m2_t vnmsub(vuint32m2_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u32m2_m)))
-vuint32m2_t vnmsub(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u32m4)))
-vuint32m4_t vnmsub(vuint32m4_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u32m4_m)))
-vuint32m4_t vnmsub(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u32m8)))
-vuint32m8_t vnmsub(vuint32m8_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u32m8_m)))
-vuint32m8_t vnmsub(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u32mf2)))
-vuint32mf2_t vnmsub(vuint32mf2_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u32mf2_m)))
-vuint32mf2_t vnmsub(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u64m1)))
-vuint64m1_t vnmsub(vuint64m1_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u64m1_m)))
-vuint64m1_t vnmsub(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u64m2)))
-vuint64m2_t vnmsub(vuint64m2_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u64m2_m)))
-vuint64m2_t vnmsub(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u64m4)))
-vuint64m4_t vnmsub(vuint64m4_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u64m4_m)))
-vuint64m4_t vnmsub(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u64m8)))
-vuint64m8_t vnmsub(vuint64m8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u64m8_m)))
-vuint64m8_t vnmsub(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u32m1)))
-void vsuxei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u32m1_m)))
-void vsuxei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u32m2)))
-void vsuxei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u32m2_m)))
-void vsuxei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u32m4)))
-void vsuxei16(uint32_t * op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u32m4_m)))
-void vsuxei16(vbool8_t op0, uint32_t * op1, vuint16m2_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u32m8)))
-void vsuxei16(uint32_t * op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u32m8_m)))
-void vsuxei16(vbool4_t op0, uint32_t * op1, vuint16m4_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u32mf2)))
-void vsuxei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u32mf2_m)))
-void vsuxei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8m1)))
-vuint8m1_t vnmsub(vuint8m1_t op0, uint8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8m1_m)))
-vuint8m1_t vnmsub(vbool8_t op0, vuint8m1_t op1, uint8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8m2)))
-vuint8m2_t vnmsub(vuint8m2_t op0, uint8_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8m2_m)))
-vuint8m2_t vnmsub(vbool4_t op0, vuint8m2_t op1, uint8_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8m4)))
-vuint8m4_t vnmsub(vuint8m4_t op0, uint8_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8m4_m)))
-vuint8m4_t vnmsub(vbool2_t op0, vuint8m4_t op1, uint8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8m8)))
-vuint8m8_t vnmsub(vuint8m8_t op0, uint8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8m8_m)))
-vuint8m8_t vnmsub(vbool1_t op0, vuint8m8_t op1, uint8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8mf2)))
-vuint8mf2_t vnmsub(vuint8mf2_t op0, uint8_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8mf2_m)))
-vuint8mf2_t vnmsub(vbool16_t op0, vuint8mf2_t op1, uint8_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8mf4)))
-vuint8mf4_t vnmsub(vuint8mf4_t op0, uint8_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8mf4_m)))
-vuint8mf4_t vnmsub(vbool32_t op0, vuint8mf4_t op1, uint8_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8mf8)))
-vuint8mf8_t vnmsub(vuint8mf8_t op0, uint8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8mf8_m)))
-vuint8mf8_t vnmsub(vbool64_t op0, vuint8mf8_t op1, uint8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16m1)))
-vuint16m1_t vnmsub(vuint16m1_t op0, uint16_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16m1_m)))
-vuint16m1_t vnmsub(vbool16_t op0, vuint16m1_t op1, uint16_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16m2)))
-vuint16m2_t vnmsub(vuint16m2_t op0, uint16_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16m2_m)))
-vuint16m2_t vnmsub(vbool8_t op0, vuint16m2_t op1, uint16_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16m4)))
-vuint16m4_t vnmsub(vuint16m4_t op0, uint16_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16m4_m)))
-vuint16m4_t vnmsub(vbool4_t op0, vuint16m4_t op1, uint16_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16m8)))
-vuint16m8_t vnmsub(vuint16m8_t op0, uint16_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16m8_m)))
-vuint16m8_t vnmsub(vbool2_t op0, vuint16m8_t op1, uint16_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16mf2)))
-vuint16mf2_t vnmsub(vuint16mf2_t op0, uint16_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16mf2_m)))
-vuint16mf2_t vnmsub(vbool32_t op0, vuint16mf2_t op1, uint16_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16mf4)))
-vuint16mf4_t vnmsub(vuint16mf4_t op0, uint16_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16mf4_m)))
-vuint16mf4_t vnmsub(vbool64_t op0, vuint16mf4_t op1, uint16_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u32m1)))
-vuint32m1_t vnmsub(vuint32m1_t op0, uint32_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u32m1_m)))
-vuint32m1_t vnmsub(vbool32_t op0, vuint32m1_t op1, uint32_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u32m2)))
-vuint32m2_t vnmsub(vuint32m2_t op0, uint32_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u32m2_m)))
-vuint32m2_t vnmsub(vbool16_t op0, vuint32m2_t op1, uint32_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u32m4)))
-vuint32m4_t vnmsub(vuint32m4_t op0, uint32_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u32m4_m)))
-vuint32m4_t vnmsub(vbool8_t op0, vuint32m4_t op1, uint32_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u32m8)))
-vuint32m8_t vnmsub(vuint32m8_t op0, uint32_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u32m8_m)))
-vuint32m8_t vnmsub(vbool4_t op0, vuint32m8_t op1, uint32_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u32mf2)))
-vuint32mf2_t vnmsub(vuint32mf2_t op0, uint32_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u32mf2_m)))
-vuint32mf2_t vnmsub(vbool64_t op0, vuint32mf2_t op1, uint32_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u64m1)))
-vuint64m1_t vnmsub(vuint64m1_t op0, uint64_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u64m1_m)))
-vuint64m1_t vnmsub(vbool64_t op0, vuint64m1_t op1, uint64_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u64m2)))
-vuint64m2_t vnmsub(vuint64m2_t op0, uint64_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u64m2_m)))
-vuint64m2_t vnmsub(vbool32_t op0, vuint64m2_t op1, uint64_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u64m4)))
-vuint64m4_t vnmsub(vuint64m4_t op0, uint64_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u64m4_m)))
-vuint64m4_t vnmsub(vbool16_t op0, vuint64m4_t op1, uint64_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u64m8)))
-vuint64m8_t vnmsub(vuint64m8_t op0, uint64_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u64m8_m)))
-vuint64m8_t vnmsub(vbool8_t op0, vuint64m8_t op1, uint64_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16mf4)))
-vuint16mf4_t vwmaccu(vuint16mf4_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16mf4_m)))
-vuint16mf4_t vwmaccu(vbool64_t op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16mf2)))
-vuint16mf2_t vwmaccu(vuint16mf2_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16mf2_m)))
-vuint16mf2_t vwmaccu(vbool32_t op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16m1)))
-vuint16m1_t vwmaccu(vuint16m1_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16m1_m)))
-vuint16m1_t vwmaccu(vbool16_t op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16m2)))
-vuint16m2_t vwmaccu(vuint16m2_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16m2_m)))
-vuint16m2_t vwmaccu(vbool8_t op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16m4)))
-vuint16m4_t vwmaccu(vuint16m4_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16m4_m)))
-vuint16m4_t vwmaccu(vbool4_t op0, vuint16m4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16m8)))
-vuint16m8_t vwmaccu(vuint16m8_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16m8_m)))
-vuint16m8_t vwmaccu(vbool2_t op0, vuint16m8_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u32mf2)))
-vuint32mf2_t vwmaccu(vuint32mf2_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u32mf2_m)))
-vuint32mf2_t vwmaccu(vbool64_t op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u32m1)))
-vuint32m1_t vwmaccu(vuint32m1_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u32m1_m)))
-vuint32m1_t vwmaccu(vbool32_t op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u32m2)))
-vuint32m2_t vwmaccu(vuint32m2_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u32m2_m)))
-vuint32m2_t vwmaccu(vbool16_t op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u32m4)))
-vuint32m4_t vwmaccu(vuint32m4_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u32m4_m)))
-vuint32m4_t vwmaccu(vbool8_t op0, vuint32m4_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u32m8)))
-vuint32m8_t vwmaccu(vuint32m8_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u32m8_m)))
-vuint32m8_t vwmaccu(vbool4_t op0, vuint32m8_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u64m1)))
-vuint64m1_t vwmaccu(vuint64m1_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u64m1_m)))
-vuint64m1_t vwmaccu(vbool64_t op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u64m2)))
-vuint64m2_t vwmaccu(vuint64m2_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u64m2_m)))
-vuint64m2_t vwmaccu(vbool32_t op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u64m4)))
-vuint64m4_t vwmaccu(vuint64m4_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u64m4_m)))
-vuint64m4_t vwmaccu(vbool16_t op0, vuint64m4_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u64m8)))
-vuint64m8_t vwmaccu(vuint64m8_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u64m8_m)))
-vuint64m8_t vwmaccu(vbool8_t op0, vuint64m8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16mf4)))
-vuint16mf4_t vwmaccu(vuint16mf4_t op0, uint8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16mf4_m)))
-vuint16mf4_t vwmaccu(vbool64_t op0, vuint16mf4_t op1, uint8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16mf2)))
-vuint16mf2_t vwmaccu(vuint16mf2_t op0, uint8_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16mf2_m)))
-vuint16mf2_t vwmaccu(vbool32_t op0, vuint16mf2_t op1, uint8_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16m1)))
-vuint16m1_t vwmaccu(vuint16m1_t op0, uint8_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16m1_m)))
-vuint16m1_t vwmaccu(vbool16_t op0, vuint16m1_t op1, uint8_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16m2)))
-vuint16m2_t vwmaccu(vuint16m2_t op0, uint8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16m2_m)))
-vuint16m2_t vwmaccu(vbool8_t op0, vuint16m2_t op1, uint8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16m4)))
-vuint16m4_t vwmaccu(vuint16m4_t op0, uint8_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16m4_m)))
-vuint16m4_t vwmaccu(vbool4_t op0, vuint16m4_t op1, uint8_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16m8)))
-vuint16m8_t vwmaccu(vuint16m8_t op0, uint8_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16m8_m)))
-vuint16m8_t vwmaccu(vbool2_t op0, vuint16m8_t op1, uint8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u32mf2)))
-vuint32mf2_t vwmaccu(vuint32mf2_t op0, uint16_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u32mf2_m)))
-vuint32mf2_t vwmaccu(vbool64_t op0, vuint32mf2_t op1, uint16_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u32m1)))
-vuint32m1_t vwmaccu(vuint32m1_t op0, uint16_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u32m1_m)))
-vuint32m1_t vwmaccu(vbool32_t op0, vuint32m1_t op1, uint16_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u32m2)))
-vuint32m2_t vwmaccu(vuint32m2_t op0, uint16_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u32m2_m)))
-vuint32m2_t vwmaccu(vbool16_t op0, vuint32m2_t op1, uint16_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u32m4)))
-vuint32m4_t vwmaccu(vuint32m4_t op0, uint16_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u32m4_m)))
-vuint32m4_t vwmaccu(vbool8_t op0, vuint32m4_t op1, uint16_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u32m8)))
-vuint32m8_t vwmaccu(vuint32m8_t op0, uint16_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u32m8_m)))
-vuint32m8_t vwmaccu(vbool4_t op0, vuint32m8_t op1, uint16_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u64m1)))
-vuint64m1_t vwmaccu(vuint64m1_t op0, uint32_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u64m1_m)))
-vuint64m1_t vwmaccu(vbool64_t op0, vuint64m1_t op1, uint32_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u64m2)))
-vuint64m2_t vwmaccu(vuint64m2_t op0, uint32_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u64m2_m)))
-vuint64m2_t vwmaccu(vbool32_t op0, vuint64m2_t op1, uint32_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u64m4)))
-vuint64m4_t vwmaccu(vuint64m4_t op0, uint32_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u64m4_m)))
-vuint64m4_t vwmaccu(vbool16_t op0, vuint64m4_t op1, uint32_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u64m8)))
-vuint64m8_t vwmaccu(vuint64m8_t op0, uint32_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u64m8_m)))
-vuint64m8_t vwmaccu(vbool8_t op0, vuint64m8_t op1, uint32_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16mf4)))
-vint16mf4_t vwmacc(vint16mf4_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16mf4_m)))
-vint16mf4_t vwmacc(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16mf2)))
-vint16mf2_t vwmacc(vint16mf2_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16mf2_m)))
-vint16mf2_t vwmacc(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16m1)))
-vint16m1_t vwmacc(vint16m1_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16m1_m)))
-vint16m1_t vwmacc(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16m2)))
-vint16m2_t vwmacc(vint16m2_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16m2_m)))
-vint16m2_t vwmacc(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16m4)))
-vint16m4_t vwmacc(vint16m4_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16m4_m)))
-vint16m4_t vwmacc(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16m8)))
-vint16m8_t vwmacc(vint16m8_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16m8_m)))
-vint16m8_t vwmacc(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i32mf2)))
-vint32mf2_t vwmacc(vint32mf2_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i32mf2_m)))
-vint32mf2_t vwmacc(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i32m1)))
-vint32m1_t vwmacc(vint32m1_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i32m1_m)))
-vint32m1_t vwmacc(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i32m2)))
-vint32m2_t vwmacc(vint32m2_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i32m2_m)))
-vint32m2_t vwmacc(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i32m4)))
-vint32m4_t vwmacc(vint32m4_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i32m4_m)))
-vint32m4_t vwmacc(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i32m8)))
-vint32m8_t vwmacc(vint32m8_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i32m8_m)))
-vint32m8_t vwmacc(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i64m1)))
-vint64m1_t vwmacc(vint64m1_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i64m1_m)))
-vint64m1_t vwmacc(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i64m2)))
-vint64m2_t vwmacc(vint64m2_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i64m2_m)))
-vint64m2_t vwmacc(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i64m4)))
-vint64m4_t vwmacc(vint64m4_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i64m4_m)))
-vint64m4_t vwmacc(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i64m8)))
-vint64m8_t vwmacc(vint64m8_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i64m8_m)))
-vint64m8_t vwmacc(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16mf4)))
-vint16mf4_t vwmacc(vint16mf4_t op0, int8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16mf4_m)))
-vint16mf4_t vwmacc(vbool64_t op0, vint16mf4_t op1, int8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16mf2)))
-vint16mf2_t vwmacc(vint16mf2_t op0, int8_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16mf2_m)))
-vint16mf2_t vwmacc(vbool32_t op0, vint16mf2_t op1, int8_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16m1)))
-vint16m1_t vwmacc(vint16m1_t op0, int8_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16m1_m)))
-vint16m1_t vwmacc(vbool16_t op0, vint16m1_t op1, int8_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16m2)))
-vint16m2_t vwmacc(vint16m2_t op0, int8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16m2_m)))
-vint16m2_t vwmacc(vbool8_t op0, vint16m2_t op1, int8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16m4)))
-vint16m4_t vwmacc(vint16m4_t op0, int8_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16m4_m)))
-vint16m4_t vwmacc(vbool4_t op0, vint16m4_t op1, int8_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16m8)))
-vint16m8_t vwmacc(vint16m8_t op0, int8_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16m8_m)))
-vint16m8_t vwmacc(vbool2_t op0, vint16m8_t op1, int8_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i32mf2)))
-vint32mf2_t vwmacc(vint32mf2_t op0, int16_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i32mf2_m)))
-vint32mf2_t vwmacc(vbool64_t op0, vint32mf2_t op1, int16_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i32m1)))
-vint32m1_t vwmacc(vint32m1_t op0, int16_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i32m1_m)))
-vint32m1_t vwmacc(vbool32_t op0, vint32m1_t op1, int16_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i32m2)))
-vint32m2_t vwmacc(vint32m2_t op0, int16_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i32m2_m)))
-vint32m2_t vwmacc(vbool16_t op0, vint32m2_t op1, int16_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i32m4)))
-vint32m4_t vwmacc(vint32m4_t op0, int16_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i32m4_m)))
-vint32m4_t vwmacc(vbool8_t op0, vint32m4_t op1, int16_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i32m8)))
-vint32m8_t vwmacc(vint32m8_t op0, int16_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i32m8_m)))
-vint32m8_t vwmacc(vbool4_t op0, vint32m8_t op1, int16_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i64m1)))
-vint64m1_t vwmacc(vint64m1_t op0, int32_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i64m1_m)))
-vint64m1_t vwmacc(vbool64_t op0, vint64m1_t op1, int32_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i64m2)))
-vint64m2_t vwmacc(vint64m2_t op0, int32_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i64m2_m)))
-vint64m2_t vwmacc(vbool32_t op0, vint64m2_t op1, int32_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i64m4)))
-vint64m4_t vwmacc(vint64m4_t op0, int32_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i64m4_m)))
-vint64m4_t vwmacc(vbool16_t op0, vint64m4_t op1, int32_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i64m8)))
-vint64m8_t vwmacc(vint64m8_t op0, int32_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i64m8_m)))
-vint64m8_t vwmacc(vbool8_t op0, vint64m8_t op1, int32_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16mf4)))
-vint16mf4_t vwmaccsu(vint16mf4_t op0, vint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16mf4_m)))
-vint16mf4_t vwmaccsu(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16mf2)))
-vint16mf2_t vwmaccsu(vint16mf2_t op0, vint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16mf2_m)))
-vint16mf2_t vwmaccsu(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16m1)))
-vint16m1_t vwmaccsu(vint16m1_t op0, vint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16m1_m)))
-vint16m1_t vwmaccsu(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16m2)))
-vint16m2_t vwmaccsu(vint16m2_t op0, vint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16m2_m)))
-vint16m2_t vwmaccsu(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16m4)))
-vint16m4_t vwmaccsu(vint16m4_t op0, vint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16m4_m)))
-vint16m4_t vwmaccsu(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16m8)))
-vint16m8_t vwmaccsu(vint16m8_t op0, vint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16m8_m)))
-vint16m8_t vwmaccsu(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i32mf2)))
-vint32mf2_t vwmaccsu(vint32mf2_t op0, vint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i32mf2_m)))
-vint32mf2_t vwmaccsu(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i32m1)))
-vint32m1_t vwmaccsu(vint32m1_t op0, vint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i32m1_m)))
-vint32m1_t vwmaccsu(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i32m2)))
-vint32m2_t vwmaccsu(vint32m2_t op0, vint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i32m2_m)))
-vint32m2_t vwmaccsu(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i32m4)))
-vint32m4_t vwmaccsu(vint32m4_t op0, vint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i32m4_m)))
-vint32m4_t vwmaccsu(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i32m8)))
-vint32m8_t vwmaccsu(vint32m8_t op0, vint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i32m8_m)))
-vint32m8_t vwmaccsu(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i64m1)))
-vint64m1_t vwmaccsu(vint64m1_t op0, vint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i64m1_m)))
-vint64m1_t vwmaccsu(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i64m2)))
-vint64m2_t vwmaccsu(vint64m2_t op0, vint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i64m2_m)))
-vint64m2_t vwmaccsu(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i64m4)))
-vint64m4_t vwmaccsu(vint64m4_t op0, vint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i64m4_m)))
-vint64m4_t vwmaccsu(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i64m8)))
-vint64m8_t vwmaccsu(vint64m8_t op0, vint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i64m8_m)))
-vint64m8_t vwmaccsu(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16mf4)))
-vint16mf4_t vwmaccsu(vint16mf4_t op0, int8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16mf4_m)))
-vint16mf4_t vwmaccsu(vbool64_t op0, vint16mf4_t op1, int8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16mf2)))
-vint16mf2_t vwmaccsu(vint16mf2_t op0, int8_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16mf2_m)))
-vint16mf2_t vwmaccsu(vbool32_t op0, vint16mf2_t op1, int8_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16m1)))
-vint16m1_t vwmaccsu(vint16m1_t op0, int8_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16m1_m)))
-vint16m1_t vwmaccsu(vbool16_t op0, vint16m1_t op1, int8_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16m2)))
-vint16m2_t vwmaccsu(vint16m2_t op0, int8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16m2_m)))
-vint16m2_t vwmaccsu(vbool8_t op0, vint16m2_t op1, int8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16m4)))
-vint16m4_t vwmaccsu(vint16m4_t op0, int8_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16m4_m)))
-vint16m4_t vwmaccsu(vbool4_t op0, vint16m4_t op1, int8_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16m8)))
-vint16m8_t vwmaccsu(vint16m8_t op0, int8_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16m8_m)))
-vint16m8_t vwmaccsu(vbool2_t op0, vint16m8_t op1, int8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i32mf2)))
-vint32mf2_t vwmaccsu(vint32mf2_t op0, int16_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i32mf2_m)))
-vint32mf2_t vwmaccsu(vbool64_t op0, vint32mf2_t op1, int16_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i32m1)))
-vint32m1_t vwmaccsu(vint32m1_t op0, int16_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i32m1_m)))
-vint32m1_t vwmaccsu(vbool32_t op0, vint32m1_t op1, int16_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i32m2)))
-vint32m2_t vwmaccsu(vint32m2_t op0, int16_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i32m2_m)))
-vint32m2_t vwmaccsu(vbool16_t op0, vint32m2_t op1, int16_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i32m4)))
-vint32m4_t vwmaccsu(vint32m4_t op0, int16_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i32m4_m)))
-vint32m4_t vwmaccsu(vbool8_t op0, vint32m4_t op1, int16_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i32m8)))
-vint32m8_t vwmaccsu(vint32m8_t op0, int16_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i32m8_m)))
-vint32m8_t vwmaccsu(vbool4_t op0, vint32m8_t op1, int16_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i64m1)))
-vint64m1_t vwmaccsu(vint64m1_t op0, int32_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i64m1_m)))
-vint64m1_t vwmaccsu(vbool64_t op0, vint64m1_t op1, int32_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i64m2)))
-vint64m2_t vwmaccsu(vint64m2_t op0, int32_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i64m2_m)))
-vint64m2_t vwmaccsu(vbool32_t op0, vint64m2_t op1, int32_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i64m4)))
-vint64m4_t vwmaccsu(vint64m4_t op0, int32_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i64m4_m)))
-vint64m4_t vwmaccsu(vbool16_t op0, vint64m4_t op1, int32_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i64m8)))
-vint64m8_t vwmaccsu(vint64m8_t op0, int32_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i64m8_m)))
-vint64m8_t vwmaccsu(vbool8_t op0, vint64m8_t op1, int32_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16mf4)))
-vint16mf4_t vwmaccus(vint16mf4_t op0, uint8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16mf4_m)))
-vint16mf4_t vwmaccus(vbool64_t op0, vint16mf4_t op1, uint8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16mf2)))
-vint16mf2_t vwmaccus(vint16mf2_t op0, uint8_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16mf2_m)))
-vint16mf2_t vwmaccus(vbool32_t op0, vint16mf2_t op1, uint8_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16m1)))
-vint16m1_t vwmaccus(vint16m1_t op0, uint8_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16m1_m)))
-vint16m1_t vwmaccus(vbool16_t op0, vint16m1_t op1, uint8_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16m2)))
-vint16m2_t vwmaccus(vint16m2_t op0, uint8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16m2_m)))
-vint16m2_t vwmaccus(vbool8_t op0, vint16m2_t op1, uint8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16m4)))
-vint16m4_t vwmaccus(vint16m4_t op0, uint8_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16m4_m)))
-vint16m4_t vwmaccus(vbool4_t op0, vint16m4_t op1, uint8_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16m8)))
-vint16m8_t vwmaccus(vint16m8_t op0, uint8_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16m8_m)))
-vint16m8_t vwmaccus(vbool2_t op0, vint16m8_t op1, uint8_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i32mf2)))
-vint32mf2_t vwmaccus(vint32mf2_t op0, uint16_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i32mf2_m)))
-vint32mf2_t vwmaccus(vbool64_t op0, vint32mf2_t op1, uint16_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i32m1)))
-vint32m1_t vwmaccus(vint32m1_t op0, uint16_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i32m1_m)))
-vint32m1_t vwmaccus(vbool32_t op0, vint32m1_t op1, uint16_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i32m2)))
-vint32m2_t vwmaccus(vint32m2_t op0, uint16_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i32m2_m)))
-vint32m2_t vwmaccus(vbool16_t op0, vint32m2_t op1, uint16_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i32m4)))
-vint32m4_t vwmaccus(vint32m4_t op0, uint16_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i32m4_m)))
-vint32m4_t vwmaccus(vbool8_t op0, vint32m4_t op1, uint16_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i32m8)))
-vint32m8_t vwmaccus(vint32m8_t op0, uint16_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i32m8_m)))
-vint32m8_t vwmaccus(vbool4_t op0, vint32m8_t op1, uint16_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i64m1)))
-vint64m1_t vwmaccus(vint64m1_t op0, uint32_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i64m1_m)))
-vint64m1_t vwmaccus(vbool64_t op0, vint64m1_t op1, uint32_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i64m2)))
-vint64m2_t vwmaccus(vint64m2_t op0, uint32_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i64m2_m)))
-vint64m2_t vwmaccus(vbool32_t op0, vint64m2_t op1, uint32_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i64m4)))
-vint64m4_t vwmaccus(vint64m4_t op0, uint32_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i64m4_m)))
-vint64m4_t vwmaccus(vbool16_t op0, vint64m4_t op1, uint32_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i64m8)))
-vint64m8_t vwmaccus(vint64m8_t op0, uint32_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i64m8_m)))
-vint64m8_t vwmaccus(vbool8_t op0, vint64m8_t op1, uint32_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i8m1)))
-vint8m1_t vmerge(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i8m2)))
-vint8m2_t vmerge(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i8m4)))
-vint8m4_t vmerge(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i8m8)))
-vint8m8_t vmerge(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i8mf2)))
-vint8mf2_t vmerge(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i8mf4)))
-vint8mf4_t vmerge(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i8mf8)))
-vint8mf8_t vmerge(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i16m1)))
-vint16m1_t vmerge(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i16m2)))
-vint16m2_t vmerge(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i16m4)))
-vint16m4_t vmerge(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i16m8)))
-vint16m8_t vmerge(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i16mf2)))
-vint16mf2_t vmerge(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i16mf4)))
-vint16mf4_t vmerge(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i32m1)))
-vint32m1_t vmerge(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i32m2)))
-vint32m2_t vmerge(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i32m4)))
-vint32m4_t vmerge(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i32m8)))
-vint32m8_t vmerge(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i32mf2)))
-vint32mf2_t vmerge(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i64m1)))
-vint64m1_t vmerge(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i64m2)))
-vint64m2_t vmerge(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i64m4)))
-vint64m4_t vmerge(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i64m8)))
-vint64m8_t vmerge(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i8m1)))
-vint8m1_t vmerge(vbool8_t op0, vint8m1_t op1, int8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i8m2)))
-vint8m2_t vmerge(vbool4_t op0, vint8m2_t op1, int8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i8m4)))
-vint8m4_t vmerge(vbool2_t op0, vint8m4_t op1, int8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i8m8)))
-vint8m8_t vmerge(vbool1_t op0, vint8m8_t op1, int8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i8mf2)))
-vint8mf2_t vmerge(vbool16_t op0, vint8mf2_t op1, int8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i8mf4)))
-vint8mf4_t vmerge(vbool32_t op0, vint8mf4_t op1, int8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i8mf8)))
-vint8mf8_t vmerge(vbool64_t op0, vint8mf8_t op1, int8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i16m1)))
-vint16m1_t vmerge(vbool16_t op0, vint16m1_t op1, int16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i16m2)))
-vint16m2_t vmerge(vbool8_t op0, vint16m2_t op1, int16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i16m4)))
-vint16m4_t vmerge(vbool4_t op0, vint16m4_t op1, int16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i16m8)))
-vint16m8_t vmerge(vbool2_t op0, vint16m8_t op1, int16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i16mf2)))
-vint16mf2_t vmerge(vbool32_t op0, vint16mf2_t op1, int16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i16mf4)))
-vint16mf4_t vmerge(vbool64_t op0, vint16mf4_t op1, int16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i32m1)))
-vint32m1_t vmerge(vbool32_t op0, vint32m1_t op1, int32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i32m2)))
-vint32m2_t vmerge(vbool16_t op0, vint32m2_t op1, int32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i32m4)))
-vint32m4_t vmerge(vbool8_t op0, vint32m4_t op1, int32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i32m8)))
-vint32m8_t vmerge(vbool4_t op0, vint32m8_t op1, int32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i32mf2)))
-vint32mf2_t vmerge(vbool64_t op0, vint32mf2_t op1, int32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i64m1)))
-vint64m1_t vmerge(vbool64_t op0, vint64m1_t op1, int64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i64m2)))
-vint64m2_t vmerge(vbool32_t op0, vint64m2_t op1, int64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i64m4)))
-vint64m4_t vmerge(vbool16_t op0, vint64m4_t op1, int64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i64m8)))
-vint64m8_t vmerge(vbool8_t op0, vint64m8_t op1, int64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i32m1)))
-void vsuxei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i32m1_m)))
-void vsuxei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i32m2)))
-void vsuxei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i32m2_m)))
-void vsuxei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i32m4)))
-void vsuxei32(int32_t * op0, vuint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i32m4_m)))
-void vsuxei32(vbool8_t op0, int32_t * op1, vuint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i32m8)))
-void vsuxei32(int32_t * op0, vuint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i32m8_m)))
-void vsuxei32(vbool4_t op0, int32_t * op1, vuint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i32mf2)))
-void vsuxei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i32mf2_m)))
-void vsuxei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u8m1)))
-vuint8m1_t vmerge(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u8m2)))
-vuint8m2_t vmerge(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u8m4)))
-vuint8m4_t vmerge(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u8m8)))
-vuint8m8_t vmerge(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u8mf2)))
-vuint8mf2_t vmerge(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u8mf4)))
-vuint8mf4_t vmerge(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u8mf8)))
-vuint8mf8_t vmerge(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u16m1)))
-vuint16m1_t vmerge(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u16m2)))
-vuint16m2_t vmerge(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u16m4)))
-vuint16m4_t vmerge(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u16m8)))
-vuint16m8_t vmerge(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u16mf2)))
-vuint16mf2_t vmerge(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u16mf4)))
-vuint16mf4_t vmerge(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u32m1)))
-vuint32m1_t vmerge(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u32m2)))
-vuint32m2_t vmerge(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u32m4)))
-vuint32m4_t vmerge(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u32m8)))
-vuint32m8_t vmerge(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u32mf2)))
-vuint32mf2_t vmerge(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u64m1)))
-vuint64m1_t vmerge(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u64m2)))
-vuint64m2_t vmerge(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u64m4)))
-vuint64m4_t vmerge(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u64m8)))
-vuint64m8_t vmerge(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u8m1)))
-vuint8m1_t vmerge(vbool8_t op0, vuint8m1_t op1, uint8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u8m2)))
-vuint8m2_t vmerge(vbool4_t op0, vuint8m2_t op1, uint8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u8m4)))
-vuint8m4_t vmerge(vbool2_t op0, vuint8m4_t op1, uint8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u8m8)))
-vuint8m8_t vmerge(vbool1_t op0, vuint8m8_t op1, uint8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u8mf2)))
-vuint8mf2_t vmerge(vbool16_t op0, vuint8mf2_t op1, uint8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u8mf4)))
-vuint8mf4_t vmerge(vbool32_t op0, vuint8mf4_t op1, uint8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u8mf8)))
-vuint8mf8_t vmerge(vbool64_t op0, vuint8mf8_t op1, uint8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u16m1)))
-vuint16m1_t vmerge(vbool16_t op0, vuint16m1_t op1, uint16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u16m2)))
-vuint16m2_t vmerge(vbool8_t op0, vuint16m2_t op1, uint16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u16m4)))
-vuint16m4_t vmerge(vbool4_t op0, vuint16m4_t op1, uint16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u16m8)))
-vuint16m8_t vmerge(vbool2_t op0, vuint16m8_t op1, uint16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u16mf2)))
-vuint16mf2_t vmerge(vbool32_t op0, vuint16mf2_t op1, uint16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u16mf4)))
-vuint16mf4_t vmerge(vbool64_t op0, vuint16mf4_t op1, uint16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u32m1)))
-vuint32m1_t vmerge(vbool32_t op0, vuint32m1_t op1, uint32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u32m2)))
-vuint32m2_t vmerge(vbool16_t op0, vuint32m2_t op1, uint32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u32m4)))
-vuint32m4_t vmerge(vbool8_t op0, vuint32m4_t op1, uint32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u32m8)))
-vuint32m8_t vmerge(vbool4_t op0, vuint32m8_t op1, uint32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u32mf2)))
-vuint32mf2_t vmerge(vbool64_t op0, vuint32mf2_t op1, uint32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u64m1)))
-vuint64m1_t vmerge(vbool64_t op0, vuint64m1_t op1, uint64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u64m2)))
-vuint64m2_t vmerge(vbool32_t op0, vuint64m2_t op1, uint64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u64m4)))
-vuint64m4_t vmerge(vbool16_t op0, vuint64m4_t op1, uint64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u64m8)))
-vuint64m8_t vmerge(vbool8_t op0, vuint64m8_t op1, uint64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u8m1)))
-vuint8m1_t vmv_v(vuint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u8m2)))
-vuint8m2_t vmv_v(vuint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u8m4)))
-vuint8m4_t vmv_v(vuint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u8m8)))
-vuint8m8_t vmv_v(vuint8m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u8mf2)))
-vuint8mf2_t vmv_v(vuint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u8mf4)))
-vuint8mf4_t vmv_v(vuint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u8mf8)))
-vuint8mf8_t vmv_v(vuint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u16m1)))
-vuint16m1_t vmv_v(vuint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u16m2)))
-vuint16m2_t vmv_v(vuint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u16m4)))
-vuint16m4_t vmv_v(vuint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u16m8)))
-vuint16m8_t vmv_v(vuint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u16mf2)))
-vuint16mf2_t vmv_v(vuint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u16mf4)))
-vuint16mf4_t vmv_v(vuint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u32m1)))
-vuint32m1_t vmv_v(vuint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u32m2)))
-vuint32m2_t vmv_v(vuint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u32m4)))
-vuint32m4_t vmv_v(vuint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u32m8)))
-vuint32m8_t vmv_v(vuint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u32mf2)))
-vuint32mf2_t vmv_v(vuint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u64m1)))
-vuint64m1_t vmv_v(vuint64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u64m2)))
-vuint64m2_t vmv_v(vuint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u64m4)))
-vuint64m4_t vmv_v(vuint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u64m8)))
-vuint64m8_t vmv_v(vuint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i8m1)))
-vint8m1_t vmv_v(vint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i8m2)))
-vint8m2_t vmv_v(vint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i8m4)))
-vint8m4_t vmv_v(vint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i8m8)))
-vint8m8_t vmv_v(vint8m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i8mf2)))
-vint8mf2_t vmv_v(vint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i8mf4)))
-vint8mf4_t vmv_v(vint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i8mf8)))
-vint8mf8_t vmv_v(vint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i16m1)))
-vint16m1_t vmv_v(vint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i16m2)))
-vint16m2_t vmv_v(vint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i16m4)))
-vint16m4_t vmv_v(vint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i16m8)))
-vint16m8_t vmv_v(vint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i16mf2)))
-vint16mf2_t vmv_v(vint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i16mf4)))
-vint16mf4_t vmv_v(vint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i32m1)))
-vint32m1_t vmv_v(vint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i32m2)))
-vint32m2_t vmv_v(vint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i32m4)))
-vint32m4_t vmv_v(vint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i32m8)))
-vint32m8_t vmv_v(vint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i32mf2)))
-vint32mf2_t vmv_v(vint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i64m1)))
-vint64m1_t vmv_v(vint64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i64m2)))
-vint64m2_t vmv_v(vint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i64m4)))
-vint64m4_t vmv_v(vint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i64m8)))
-vint64m8_t vmv_v(vint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8m1)))
-vuint8m1_t vsaddu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8m1_m)))
-vuint8m1_t vsaddu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8m2)))
-vuint8m2_t vsaddu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8m2_m)))
-vuint8m2_t vsaddu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8m4)))
-vuint8m4_t vsaddu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8m4_m)))
-vuint8m4_t vsaddu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8m8)))
-vuint8m8_t vsaddu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8m8_m)))
-vuint8m8_t vsaddu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8mf2)))
-vuint8mf2_t vsaddu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8mf2_m)))
-vuint8mf2_t vsaddu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8mf4)))
-vuint8mf4_t vsaddu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8mf4_m)))
-vuint8mf4_t vsaddu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8mf8)))
-vuint8mf8_t vsaddu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8mf8_m)))
-vuint8mf8_t vsaddu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16m1)))
-vuint16m1_t vsaddu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16m1_m)))
-vuint16m1_t vsaddu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16m2)))
-vuint16m2_t vsaddu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16m2_m)))
-vuint16m2_t vsaddu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16m4)))
-vuint16m4_t vsaddu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16m4_m)))
-vuint16m4_t vsaddu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16m8)))
-vuint16m8_t vsaddu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16m8_m)))
-vuint16m8_t vsaddu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16mf2)))
-vuint16mf2_t vsaddu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16mf2_m)))
-vuint16mf2_t vsaddu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16mf4)))
-vuint16mf4_t vsaddu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16mf4_m)))
-vuint16mf4_t vsaddu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u32m1)))
-vuint32m1_t vsaddu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u32m1_m)))
-vuint32m1_t vsaddu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u32m2)))
-vuint32m2_t vsaddu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u32m2_m)))
-vuint32m2_t vsaddu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u32m4)))
-vuint32m4_t vsaddu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u32m4_m)))
-vuint32m4_t vsaddu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u32m8)))
-vuint32m8_t vsaddu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u32m8_m)))
-vuint32m8_t vsaddu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u32mf2)))
-vuint32mf2_t vsaddu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u32mf2_m)))
-vuint32mf2_t vsaddu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u64m1)))
-vuint64m1_t vsaddu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u64m1_m)))
-vuint64m1_t vsaddu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u64m2)))
-vuint64m2_t vsaddu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u64m2_m)))
-vuint64m2_t vsaddu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u64m4)))
-vuint64m4_t vsaddu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u64m4_m)))
-vuint64m4_t vsaddu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u64m8)))
-vuint64m8_t vsaddu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u64m8_m)))
-vuint64m8_t vsaddu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8m1)))
-vuint8m1_t vsaddu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8m1_m)))
-vuint8m1_t vsaddu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8m2)))
-vuint8m2_t vsaddu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8m2_m)))
-vuint8m2_t vsaddu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8m4)))
-vuint8m4_t vsaddu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8m4_m)))
-vuint8m4_t vsaddu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8m8)))
-vuint8m8_t vsaddu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8m8_m)))
-vuint8m8_t vsaddu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8mf2)))
-vuint8mf2_t vsaddu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8mf2_m)))
-vuint8mf2_t vsaddu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8mf4)))
-vuint8mf4_t vsaddu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8mf4_m)))
-vuint8mf4_t vsaddu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8mf8)))
-vuint8mf8_t vsaddu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8mf8_m)))
-vuint8mf8_t vsaddu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16m1)))
-vuint16m1_t vsaddu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16m1_m)))
-vuint16m1_t vsaddu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16m2)))
-vuint16m2_t vsaddu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16m2_m)))
-vuint16m2_t vsaddu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16m4)))
-vuint16m4_t vsaddu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16m4_m)))
-vuint16m4_t vsaddu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16m8)))
-vuint16m8_t vsaddu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16m8_m)))
-vuint16m8_t vsaddu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16mf2)))
-vuint16mf2_t vsaddu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16mf2_m)))
-vuint16mf2_t vsaddu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16mf4)))
-vuint16mf4_t vsaddu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16mf4_m)))
-vuint16mf4_t vsaddu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u32m1)))
-vuint32m1_t vsaddu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u32m1_m)))
-vuint32m1_t vsaddu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u32m2)))
-vuint32m2_t vsaddu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u32m2_m)))
-vuint32m2_t vsaddu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u32m4)))
-vuint32m4_t vsaddu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u32m4_m)))
-vuint32m4_t vsaddu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u32m8)))
-vuint32m8_t vsaddu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u32m8_m)))
-vuint32m8_t vsaddu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u32mf2)))
-vuint32mf2_t vsaddu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u32mf2_m)))
-vuint32mf2_t vsaddu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u64m1)))
-vuint64m1_t vsaddu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u64m1_m)))
-vuint64m1_t vsaddu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u64m2)))
-vuint64m2_t vsaddu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u64m2_m)))
-vuint64m2_t vsaddu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u64m4)))
-vuint64m4_t vsaddu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u64m4_m)))
-vuint64m4_t vsaddu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u64m8)))
-vuint64m8_t vsaddu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u64m8_m)))
-vuint64m8_t vsaddu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8m1)))
-vint8m1_t vsadd(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8m1_m)))
-vint8m1_t vsadd(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8m2)))
-vint8m2_t vsadd(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8m2_m)))
-vint8m2_t vsadd(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8m4)))
-vint8m4_t vsadd(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8m4_m)))
-vint8m4_t vsadd(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8m8)))
-vint8m8_t vsadd(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8m8_m)))
-vint8m8_t vsadd(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8mf2)))
-vint8mf2_t vsadd(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8mf2_m)))
-vint8mf2_t vsadd(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8mf4)))
-vint8mf4_t vsadd(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8mf4_m)))
-vint8mf4_t vsadd(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8mf8)))
-vint8mf8_t vsadd(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8mf8_m)))
-vint8mf8_t vsadd(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16m1)))
-vint16m1_t vsadd(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16m1_m)))
-vint16m1_t vsadd(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16m2)))
-vint16m2_t vsadd(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16m2_m)))
-vint16m2_t vsadd(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16m4)))
-vint16m4_t vsadd(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16m4_m)))
-vint16m4_t vsadd(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16m8)))
-vint16m8_t vsadd(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16m8_m)))
-vint16m8_t vsadd(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16mf2)))
-vint16mf2_t vsadd(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16mf2_m)))
-vint16mf2_t vsadd(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16mf4)))
-vint16mf4_t vsadd(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16mf4_m)))
-vint16mf4_t vsadd(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i32m1)))
-vint32m1_t vsadd(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i32m1_m)))
-vint32m1_t vsadd(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i32m2)))
-vint32m2_t vsadd(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i32m2_m)))
-vint32m2_t vsadd(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i32m4)))
-vint32m4_t vsadd(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i32m4_m)))
-vint32m4_t vsadd(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i32m8)))
-vint32m8_t vsadd(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i32m8_m)))
-vint32m8_t vsadd(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i32mf2)))
-vint32mf2_t vsadd(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i32mf2_m)))
-vint32mf2_t vsadd(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i64m1)))
-vint64m1_t vsadd(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i64m1_m)))
-vint64m1_t vsadd(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i64m2)))
-vint64m2_t vsadd(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i64m2_m)))
-vint64m2_t vsadd(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i64m4)))
-vint64m4_t vsadd(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i64m4_m)))
-vint64m4_t vsadd(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i64m8)))
-vint64m8_t vsadd(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i64m8_m)))
-vint64m8_t vsadd(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8m1)))
-vint8m1_t vsadd(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8m1_m)))
-vint8m1_t vsadd(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8m2)))
-vint8m2_t vsadd(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8m2_m)))
-vint8m2_t vsadd(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8m4)))
-vint8m4_t vsadd(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8m4_m)))
-vint8m4_t vsadd(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8m8)))
-vint8m8_t vsadd(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8m8_m)))
-vint8m8_t vsadd(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8mf2)))
-vint8mf2_t vsadd(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8mf2_m)))
-vint8mf2_t vsadd(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8mf4)))
-vint8mf4_t vsadd(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8mf4_m)))
-vint8mf4_t vsadd(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8mf8)))
-vint8mf8_t vsadd(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8mf8_m)))
-vint8mf8_t vsadd(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16m1)))
-vint16m1_t vsadd(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16m1_m)))
-vint16m1_t vsadd(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16m2)))
-vint16m2_t vsadd(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16m2_m)))
-vint16m2_t vsadd(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16m4)))
-vint16m4_t vsadd(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16m4_m)))
-vint16m4_t vsadd(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16m8)))
-vint16m8_t vsadd(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16m8_m)))
-vint16m8_t vsadd(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16mf2)))
-vint16mf2_t vsadd(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16mf2_m)))
-vint16mf2_t vsadd(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16mf4)))
-vint16mf4_t vsadd(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16mf4_m)))
-vint16mf4_t vsadd(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i32m1)))
-vint32m1_t vsadd(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i32m1_m)))
-vint32m1_t vsadd(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i32m2)))
-vint32m2_t vsadd(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i32m2_m)))
-vint32m2_t vsadd(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i32m4)))
-vint32m4_t vsadd(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i32m4_m)))
-vint32m4_t vsadd(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i32m8)))
-vint32m8_t vsadd(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i32m8_m)))
-vint32m8_t vsadd(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i32mf2)))
-vint32mf2_t vsadd(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i32mf2_m)))
-vint32mf2_t vsadd(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i64m1)))
-vint64m1_t vsadd(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i64m1_m)))
-vint64m1_t vsadd(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i64m2)))
-vint64m2_t vsadd(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i64m2_m)))
-vint64m2_t vsadd(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i64m4)))
-vint64m4_t vsadd(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i64m4_m)))
-vint64m4_t vsadd(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i64m8)))
-vint64m8_t vsadd(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i64m8_m)))
-vint64m8_t vsadd(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u32m1)))
-void vsuxei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u32m1_m)))
-void vsuxei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u32m2)))
-void vsuxei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u32m2_m)))
-void vsuxei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u32m4)))
-void vsuxei32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u32m4_m)))
-void vsuxei32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u32m8)))
-void vsuxei32(uint32_t * op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u32m8_m)))
-void vsuxei32(vbool4_t op0, uint32_t * op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u32mf2)))
-void vsuxei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u32mf2_m)))
-void vsuxei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8m1)))
-vuint8m1_t vssubu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8m1_m)))
-vuint8m1_t vssubu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8m2)))
-vuint8m2_t vssubu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8m2_m)))
-vuint8m2_t vssubu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8m4)))
-vuint8m4_t vssubu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8m4_m)))
-vuint8m4_t vssubu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8m8)))
-vuint8m8_t vssubu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8m8_m)))
-vuint8m8_t vssubu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8mf2)))
-vuint8mf2_t vssubu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8mf2_m)))
-vuint8mf2_t vssubu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8mf4)))
-vuint8mf4_t vssubu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8mf4_m)))
-vuint8mf4_t vssubu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8mf8)))
-vuint8mf8_t vssubu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8mf8_m)))
-vuint8mf8_t vssubu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16m1)))
-vuint16m1_t vssubu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16m1_m)))
-vuint16m1_t vssubu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16m2)))
-vuint16m2_t vssubu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16m2_m)))
-vuint16m2_t vssubu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16m4)))
-vuint16m4_t vssubu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16m4_m)))
-vuint16m4_t vssubu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16m8)))
-vuint16m8_t vssubu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16m8_m)))
-vuint16m8_t vssubu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16mf2)))
-vuint16mf2_t vssubu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16mf2_m)))
-vuint16mf2_t vssubu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16mf4)))
-vuint16mf4_t vssubu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16mf4_m)))
-vuint16mf4_t vssubu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u32m1)))
-vuint32m1_t vssubu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u32m1_m)))
-vuint32m1_t vssubu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u32m2)))
-vuint32m2_t vssubu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u32m2_m)))
-vuint32m2_t vssubu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u32m4)))
-vuint32m4_t vssubu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u32m4_m)))
-vuint32m4_t vssubu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u32m8)))
-vuint32m8_t vssubu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u32m8_m)))
-vuint32m8_t vssubu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u32mf2)))
-vuint32mf2_t vssubu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u32mf2_m)))
-vuint32mf2_t vssubu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u64m1)))
-vuint64m1_t vssubu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u64m1_m)))
-vuint64m1_t vssubu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u64m2)))
-vuint64m2_t vssubu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u64m2_m)))
-vuint64m2_t vssubu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u64m4)))
-vuint64m4_t vssubu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u64m4_m)))
-vuint64m4_t vssubu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u64m8)))
-vuint64m8_t vssubu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u64m8_m)))
-vuint64m8_t vssubu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8m1)))
-vuint8m1_t vssubu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8m1_m)))
-vuint8m1_t vssubu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8m2)))
-vuint8m2_t vssubu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8m2_m)))
-vuint8m2_t vssubu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8m4)))
-vuint8m4_t vssubu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8m4_m)))
-vuint8m4_t vssubu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8m8)))
-vuint8m8_t vssubu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8m8_m)))
-vuint8m8_t vssubu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8mf2)))
-vuint8mf2_t vssubu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8mf2_m)))
-vuint8mf2_t vssubu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8mf4)))
-vuint8mf4_t vssubu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8mf4_m)))
-vuint8mf4_t vssubu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8mf8)))
-vuint8mf8_t vssubu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8mf8_m)))
-vuint8mf8_t vssubu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16m1)))
-vuint16m1_t vssubu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16m1_m)))
-vuint16m1_t vssubu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16m2)))
-vuint16m2_t vssubu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16m2_m)))
-vuint16m2_t vssubu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16m4)))
-vuint16m4_t vssubu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16m4_m)))
-vuint16m4_t vssubu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16m8)))
-vuint16m8_t vssubu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16m8_m)))
-vuint16m8_t vssubu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16mf2)))
-vuint16mf2_t vssubu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16mf2_m)))
-vuint16mf2_t vssubu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16mf4)))
-vuint16mf4_t vssubu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16mf4_m)))
-vuint16mf4_t vssubu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u32m1)))
-vuint32m1_t vssubu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u32m1_m)))
-vuint32m1_t vssubu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u32m2)))
-vuint32m2_t vssubu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u32m2_m)))
-vuint32m2_t vssubu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u32m4)))
-vuint32m4_t vssubu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u32m4_m)))
-vuint32m4_t vssubu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u32m8)))
-vuint32m8_t vssubu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u32m8_m)))
-vuint32m8_t vssubu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u32mf2)))
-vuint32mf2_t vssubu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u32mf2_m)))
-vuint32mf2_t vssubu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u64m1)))
-vuint64m1_t vssubu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u64m1_m)))
-vuint64m1_t vssubu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u64m2)))
-vuint64m2_t vssubu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u64m2_m)))
-vuint64m2_t vssubu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u64m4)))
-vuint64m4_t vssubu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u64m4_m)))
-vuint64m4_t vssubu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u64m8)))
-vuint64m8_t vssubu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u64m8_m)))
-vuint64m8_t vssubu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8m1)))
-vint8m1_t vssub(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8m1_m)))
-vint8m1_t vssub(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8m2)))
-vint8m2_t vssub(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8m2_m)))
-vint8m2_t vssub(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8m4)))
-vint8m4_t vssub(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8m4_m)))
-vint8m4_t vssub(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8m8)))
-vint8m8_t vssub(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8m8_m)))
-vint8m8_t vssub(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8mf2)))
-vint8mf2_t vssub(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8mf2_m)))
-vint8mf2_t vssub(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8mf4)))
-vint8mf4_t vssub(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8mf4_m)))
-vint8mf4_t vssub(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8mf8)))
-vint8mf8_t vssub(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8mf8_m)))
-vint8mf8_t vssub(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16m1)))
-vint16m1_t vssub(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16m1_m)))
-vint16m1_t vssub(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16m2)))
-vint16m2_t vssub(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16m2_m)))
-vint16m2_t vssub(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16m4)))
-vint16m4_t vssub(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16m4_m)))
-vint16m4_t vssub(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16m8)))
-vint16m8_t vssub(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16m8_m)))
-vint16m8_t vssub(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16mf2)))
-vint16mf2_t vssub(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16mf2_m)))
-vint16mf2_t vssub(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16mf4)))
-vint16mf4_t vssub(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16mf4_m)))
-vint16mf4_t vssub(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i32m1)))
-vint32m1_t vssub(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i32m1_m)))
-vint32m1_t vssub(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i32m2)))
-vint32m2_t vssub(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i32m2_m)))
-vint32m2_t vssub(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i32m4)))
-vint32m4_t vssub(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i32m4_m)))
-vint32m4_t vssub(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i32m8)))
-vint32m8_t vssub(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i32m8_m)))
-vint32m8_t vssub(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i32mf2)))
-vint32mf2_t vssub(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i32mf2_m)))
-vint32mf2_t vssub(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i64m1)))
-vint64m1_t vssub(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i64m1_m)))
-vint64m1_t vssub(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i64m2)))
-vint64m2_t vssub(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i64m2_m)))
-vint64m2_t vssub(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i64m4)))
-vint64m4_t vssub(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i64m4_m)))
-vint64m4_t vssub(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i64m8)))
-vint64m8_t vssub(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i64m8_m)))
-vint64m8_t vssub(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8m1)))
-vint8m1_t vssub(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8m1_m)))
-vint8m1_t vssub(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8m2)))
-vint8m2_t vssub(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8m2_m)))
-vint8m2_t vssub(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8m4)))
-vint8m4_t vssub(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8m4_m)))
-vint8m4_t vssub(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8m8)))
-vint8m8_t vssub(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8m8_m)))
-vint8m8_t vssub(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8mf2)))
-vint8mf2_t vssub(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8mf2_m)))
-vint8mf2_t vssub(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8mf4)))
-vint8mf4_t vssub(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8mf4_m)))
-vint8mf4_t vssub(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8mf8)))
-vint8mf8_t vssub(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8mf8_m)))
-vint8mf8_t vssub(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16m1)))
-vint16m1_t vssub(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16m1_m)))
-vint16m1_t vssub(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16m2)))
-vint16m2_t vssub(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16m2_m)))
-vint16m2_t vssub(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16m4)))
-vint16m4_t vssub(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16m4_m)))
-vint16m4_t vssub(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16m8)))
-vint16m8_t vssub(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16m8_m)))
-vint16m8_t vssub(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16mf2)))
-vint16mf2_t vssub(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16mf2_m)))
-vint16mf2_t vssub(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16mf4)))
-vint16mf4_t vssub(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16mf4_m)))
-vint16mf4_t vssub(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i32m1)))
-vint32m1_t vssub(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i32m1_m)))
-vint32m1_t vssub(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i32m2)))
-vint32m2_t vssub(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i32m2_m)))
-vint32m2_t vssub(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i32m4)))
-vint32m4_t vssub(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i32m4_m)))
-vint32m4_t vssub(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i32m8)))
-vint32m8_t vssub(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i32m8_m)))
-vint32m8_t vssub(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i32mf2)))
-vint32mf2_t vssub(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i32mf2_m)))
-vint32mf2_t vssub(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i64m1)))
-vint64m1_t vssub(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i64m1_m)))
-vint64m1_t vssub(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i64m2)))
-vint64m2_t vssub(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i64m2_m)))
-vint64m2_t vssub(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i64m4)))
-vint64m4_t vssub(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i64m4_m)))
-vint64m4_t vssub(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i64m8)))
-vint64m8_t vssub(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i64m8_m)))
-vint64m8_t vssub(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8m1)))
-vuint8m1_t vaaddu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8m1_m)))
-vuint8m1_t vaaddu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8m2)))
-vuint8m2_t vaaddu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8m2_m)))
-vuint8m2_t vaaddu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8m4)))
-vuint8m4_t vaaddu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8m4_m)))
-vuint8m4_t vaaddu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8m8)))
-vuint8m8_t vaaddu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8m8_m)))
-vuint8m8_t vaaddu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8mf2)))
-vuint8mf2_t vaaddu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8mf2_m)))
-vuint8mf2_t vaaddu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8mf4)))
-vuint8mf4_t vaaddu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8mf4_m)))
-vuint8mf4_t vaaddu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8mf8)))
-vuint8mf8_t vaaddu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8mf8_m)))
-vuint8mf8_t vaaddu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16m1)))
-vuint16m1_t vaaddu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16m1_m)))
-vuint16m1_t vaaddu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16m2)))
-vuint16m2_t vaaddu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16m2_m)))
-vuint16m2_t vaaddu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16m4)))
-vuint16m4_t vaaddu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16m4_m)))
-vuint16m4_t vaaddu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16m8)))
-vuint16m8_t vaaddu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16m8_m)))
-vuint16m8_t vaaddu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16mf2)))
-vuint16mf2_t vaaddu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16mf2_m)))
-vuint16mf2_t vaaddu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16mf4)))
-vuint16mf4_t vaaddu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16mf4_m)))
-vuint16mf4_t vaaddu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u32m1)))
-vuint32m1_t vaaddu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u32m1_m)))
-vuint32m1_t vaaddu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u32m2)))
-vuint32m2_t vaaddu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u32m2_m)))
-vuint32m2_t vaaddu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u32m4)))
-vuint32m4_t vaaddu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u32m4_m)))
-vuint32m4_t vaaddu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u32m8)))
-vuint32m8_t vaaddu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u32m8_m)))
-vuint32m8_t vaaddu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u32mf2)))
-vuint32mf2_t vaaddu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u32mf2_m)))
-vuint32mf2_t vaaddu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u64m1)))
-vuint64m1_t vaaddu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u64m1_m)))
-vuint64m1_t vaaddu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u64m2)))
-vuint64m2_t vaaddu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u64m2_m)))
-vuint64m2_t vaaddu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u64m4)))
-vuint64m4_t vaaddu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u64m4_m)))
-vuint64m4_t vaaddu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u64m8)))
-vuint64m8_t vaaddu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u64m8_m)))
-vuint64m8_t vaaddu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8m1)))
-vuint8m1_t vaaddu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8m1_m)))
-vuint8m1_t vaaddu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8m2)))
-vuint8m2_t vaaddu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8m2_m)))
-vuint8m2_t vaaddu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8m4)))
-vuint8m4_t vaaddu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8m4_m)))
-vuint8m4_t vaaddu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8m8)))
-vuint8m8_t vaaddu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8m8_m)))
-vuint8m8_t vaaddu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8mf2)))
-vuint8mf2_t vaaddu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8mf2_m)))
-vuint8mf2_t vaaddu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8mf4)))
-vuint8mf4_t vaaddu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8mf4_m)))
-vuint8mf4_t vaaddu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8mf8)))
-vuint8mf8_t vaaddu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8mf8_m)))
-vuint8mf8_t vaaddu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16m1)))
-vuint16m1_t vaaddu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16m1_m)))
-vuint16m1_t vaaddu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16m2)))
-vuint16m2_t vaaddu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16m2_m)))
-vuint16m2_t vaaddu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16m4)))
-vuint16m4_t vaaddu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16m4_m)))
-vuint16m4_t vaaddu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16m8)))
-vuint16m8_t vaaddu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16m8_m)))
-vuint16m8_t vaaddu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16mf2)))
-vuint16mf2_t vaaddu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16mf2_m)))
-vuint16mf2_t vaaddu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16mf4)))
-vuint16mf4_t vaaddu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16mf4_m)))
-vuint16mf4_t vaaddu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u32m1)))
-vuint32m1_t vaaddu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u32m1_m)))
-vuint32m1_t vaaddu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u32m2)))
-vuint32m2_t vaaddu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u32m2_m)))
-vuint32m2_t vaaddu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u32m4)))
-vuint32m4_t vaaddu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u32m4_m)))
-vuint32m4_t vaaddu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u32m8)))
-vuint32m8_t vaaddu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u32m8_m)))
-vuint32m8_t vaaddu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u32mf2)))
-vuint32mf2_t vaaddu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u32mf2_m)))
-vuint32mf2_t vaaddu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u64m1)))
-vuint64m1_t vaaddu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u64m1_m)))
-vuint64m1_t vaaddu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u64m2)))
-vuint64m2_t vaaddu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u64m2_m)))
-vuint64m2_t vaaddu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u64m4)))
-vuint64m4_t vaaddu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u64m4_m)))
-vuint64m4_t vaaddu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u64m8)))
-vuint64m8_t vaaddu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u64m8_m)))
-vuint64m8_t vaaddu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8m1)))
-vint8m1_t vaadd(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8m1_m)))
-vint8m1_t vaadd(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8m2)))
-vint8m2_t vaadd(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8m2_m)))
-vint8m2_t vaadd(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8m4)))
-vint8m4_t vaadd(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8m4_m)))
-vint8m4_t vaadd(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8m8)))
-vint8m8_t vaadd(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8m8_m)))
-vint8m8_t vaadd(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8mf2)))
-vint8mf2_t vaadd(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8mf2_m)))
-vint8mf2_t vaadd(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8mf4)))
-vint8mf4_t vaadd(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8mf4_m)))
-vint8mf4_t vaadd(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8mf8)))
-vint8mf8_t vaadd(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8mf8_m)))
-vint8mf8_t vaadd(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16m1)))
-vint16m1_t vaadd(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16m1_m)))
-vint16m1_t vaadd(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16m2)))
-vint16m2_t vaadd(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16m2_m)))
-vint16m2_t vaadd(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16m4)))
-vint16m4_t vaadd(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16m4_m)))
-vint16m4_t vaadd(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16m8)))
-vint16m8_t vaadd(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16m8_m)))
-vint16m8_t vaadd(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16mf2)))
-vint16mf2_t vaadd(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16mf2_m)))
-vint16mf2_t vaadd(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16mf4)))
-vint16mf4_t vaadd(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16mf4_m)))
-vint16mf4_t vaadd(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i32m1)))
-vint32m1_t vaadd(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i32m1_m)))
-vint32m1_t vaadd(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i32m2)))
-vint32m2_t vaadd(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i32m2_m)))
-vint32m2_t vaadd(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i32m4)))
-vint32m4_t vaadd(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i32m4_m)))
-vint32m4_t vaadd(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i32m8)))
-vint32m8_t vaadd(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i32m8_m)))
-vint32m8_t vaadd(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i32mf2)))
-vint32mf2_t vaadd(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i32mf2_m)))
-vint32mf2_t vaadd(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i64m1)))
-vint64m1_t vaadd(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i64m1_m)))
-vint64m1_t vaadd(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i64m2)))
-vint64m2_t vaadd(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i64m2_m)))
-vint64m2_t vaadd(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i64m4)))
-vint64m4_t vaadd(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i64m4_m)))
-vint64m4_t vaadd(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i64m8)))
-vint64m8_t vaadd(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i64m8_m)))
-vint64m8_t vaadd(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8m1)))
-vint8m1_t vaadd(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8m1_m)))
-vint8m1_t vaadd(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8m2)))
-vint8m2_t vaadd(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8m2_m)))
-vint8m2_t vaadd(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8m4)))
-vint8m4_t vaadd(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8m4_m)))
-vint8m4_t vaadd(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8m8)))
-vint8m8_t vaadd(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8m8_m)))
-vint8m8_t vaadd(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8mf2)))
-vint8mf2_t vaadd(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8mf2_m)))
-vint8mf2_t vaadd(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8mf4)))
-vint8mf4_t vaadd(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8mf4_m)))
-vint8mf4_t vaadd(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8mf8)))
-vint8mf8_t vaadd(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8mf8_m)))
-vint8mf8_t vaadd(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16m1)))
-vint16m1_t vaadd(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16m1_m)))
-vint16m1_t vaadd(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16m2)))
-vint16m2_t vaadd(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16m2_m)))
-vint16m2_t vaadd(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16m4)))
-vint16m4_t vaadd(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16m4_m)))
-vint16m4_t vaadd(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16m8)))
-vint16m8_t vaadd(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16m8_m)))
-vint16m8_t vaadd(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16mf2)))
-vint16mf2_t vaadd(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16mf2_m)))
-vint16mf2_t vaadd(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16mf4)))
-vint16mf4_t vaadd(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16mf4_m)))
-vint16mf4_t vaadd(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i32m1)))
-vint32m1_t vaadd(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i32m1_m)))
-vint32m1_t vaadd(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i32m2)))
-vint32m2_t vaadd(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i32m2_m)))
-vint32m2_t vaadd(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i32m4)))
-vint32m4_t vaadd(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i32m4_m)))
-vint32m4_t vaadd(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i32m8)))
-vint32m8_t vaadd(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i32m8_m)))
-vint32m8_t vaadd(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i32mf2)))
-vint32mf2_t vaadd(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i32mf2_m)))
-vint32mf2_t vaadd(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i64m1)))
-vint64m1_t vaadd(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i64m1_m)))
-vint64m1_t vaadd(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i64m2)))
-vint64m2_t vaadd(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i64m2_m)))
-vint64m2_t vaadd(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i64m4)))
-vint64m4_t vaadd(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i64m4_m)))
-vint64m4_t vaadd(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i64m8)))
-vint64m8_t vaadd(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i64m8_m)))
-vint64m8_t vaadd(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8m1)))
-vuint8m1_t vasubu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8m1_m)))
-vuint8m1_t vasubu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8m2)))
-vuint8m2_t vasubu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8m2_m)))
-vuint8m2_t vasubu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8m4)))
-vuint8m4_t vasubu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8m4_m)))
-vuint8m4_t vasubu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8m8)))
-vuint8m8_t vasubu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8m8_m)))
-vuint8m8_t vasubu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8mf2)))
-vuint8mf2_t vasubu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8mf2_m)))
-vuint8mf2_t vasubu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8mf4)))
-vuint8mf4_t vasubu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8mf4_m)))
-vuint8mf4_t vasubu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8mf8)))
-vuint8mf8_t vasubu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8mf8_m)))
-vuint8mf8_t vasubu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16m1)))
-vuint16m1_t vasubu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16m1_m)))
-vuint16m1_t vasubu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16m2)))
-vuint16m2_t vasubu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16m2_m)))
-vuint16m2_t vasubu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16m4)))
-vuint16m4_t vasubu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16m4_m)))
-vuint16m4_t vasubu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16m8)))
-vuint16m8_t vasubu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16m8_m)))
-vuint16m8_t vasubu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16mf2)))
-vuint16mf2_t vasubu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16mf2_m)))
-vuint16mf2_t vasubu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16mf4)))
-vuint16mf4_t vasubu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16mf4_m)))
-vuint16mf4_t vasubu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u32m1)))
-vuint32m1_t vasubu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u32m1_m)))
-vuint32m1_t vasubu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u32m2)))
-vuint32m2_t vasubu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u32m2_m)))
-vuint32m2_t vasubu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u32m4)))
-vuint32m4_t vasubu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u32m4_m)))
-vuint32m4_t vasubu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u32m8)))
-vuint32m8_t vasubu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u32m8_m)))
-vuint32m8_t vasubu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u32mf2)))
-vuint32mf2_t vasubu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u32mf2_m)))
-vuint32mf2_t vasubu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u64m1)))
-vuint64m1_t vasubu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u64m1_m)))
-vuint64m1_t vasubu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u64m2)))
-vuint64m2_t vasubu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u64m2_m)))
-vuint64m2_t vasubu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u64m4)))
-vuint64m4_t vasubu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u64m4_m)))
-vuint64m4_t vasubu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u64m8)))
-vuint64m8_t vasubu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u64m8_m)))
-vuint64m8_t vasubu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8m1)))
-vuint8m1_t vasubu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8m1_m)))
-vuint8m1_t vasubu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8m2)))
-vuint8m2_t vasubu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8m2_m)))
-vuint8m2_t vasubu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8m4)))
-vuint8m4_t vasubu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8m4_m)))
-vuint8m4_t vasubu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8m8)))
-vuint8m8_t vasubu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8m8_m)))
-vuint8m8_t vasubu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8mf2)))
-vuint8mf2_t vasubu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8mf2_m)))
-vuint8mf2_t vasubu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8mf4)))
-vuint8mf4_t vasubu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8mf4_m)))
-vuint8mf4_t vasubu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8mf8)))
-vuint8mf8_t vasubu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8mf8_m)))
-vuint8mf8_t vasubu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16m1)))
-vuint16m1_t vasubu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16m1_m)))
-vuint16m1_t vasubu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16m2)))
-vuint16m2_t vasubu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16m2_m)))
-vuint16m2_t vasubu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16m4)))
-vuint16m4_t vasubu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16m4_m)))
-vuint16m4_t vasubu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16m8)))
-vuint16m8_t vasubu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16m8_m)))
-vuint16m8_t vasubu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16mf2)))
-vuint16mf2_t vasubu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16mf2_m)))
-vuint16mf2_t vasubu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16mf4)))
-vuint16mf4_t vasubu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16mf4_m)))
-vuint16mf4_t vasubu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u32m1)))
-vuint32m1_t vasubu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u32m1_m)))
-vuint32m1_t vasubu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u32m2)))
-vuint32m2_t vasubu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u32m2_m)))
-vuint32m2_t vasubu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u32m4)))
-vuint32m4_t vasubu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u32m4_m)))
-vuint32m4_t vasubu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u32m8)))
-vuint32m8_t vasubu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u32m8_m)))
-vuint32m8_t vasubu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u32mf2)))
-vuint32mf2_t vasubu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u32mf2_m)))
-vuint32mf2_t vasubu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u64m1)))
-vuint64m1_t vasubu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u64m1_m)))
-vuint64m1_t vasubu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u64m2)))
-vuint64m2_t vasubu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u64m2_m)))
-vuint64m2_t vasubu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u64m4)))
-vuint64m4_t vasubu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u64m4_m)))
-vuint64m4_t vasubu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u64m8)))
-vuint64m8_t vasubu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u64m8_m)))
-vuint64m8_t vasubu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8m1)))
-void vsuxei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8m1_m)))
-void vsuxei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8m2)))
-void vsuxei8(int8_t * op0, vuint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8m2_m)))
-void vsuxei8(vbool4_t op0, int8_t * op1, vuint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8m4)))
-void vsuxei8(int8_t * op0, vuint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8m4_m)))
-void vsuxei8(vbool2_t op0, int8_t * op1, vuint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8m8)))
-void vsuxei8(int8_t * op0, vuint8m8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8m8_m)))
-void vsuxei8(vbool1_t op0, int8_t * op1, vuint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8mf2)))
-void vsuxei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8mf2_m)))
-void vsuxei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8mf4)))
-void vsuxei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8mf4_m)))
-void vsuxei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8mf8)))
-void vsuxei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8mf8_m)))
-void vsuxei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i32m1)))
-void vsuxei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i32m1_m)))
-void vsuxei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i32m2)))
-void vsuxei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i32m2_m)))
-void vsuxei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i32m4)))
-void vsuxei64(int32_t * op0, vuint64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i32m4_m)))
-void vsuxei64(vbool8_t op0, int32_t * op1, vuint64m8_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i32mf2)))
-void vsuxei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i32mf2_m)))
-void vsuxei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8m1)))
-vint8m1_t vasub(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8m1_m)))
-vint8m1_t vasub(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8m2)))
-vint8m2_t vasub(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8m2_m)))
-vint8m2_t vasub(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8m4)))
-vint8m4_t vasub(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8m4_m)))
-vint8m4_t vasub(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8m8)))
-vint8m8_t vasub(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8m8_m)))
-vint8m8_t vasub(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8mf2)))
-vint8mf2_t vasub(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8mf2_m)))
-vint8mf2_t vasub(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8mf4)))
-vint8mf4_t vasub(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8mf4_m)))
-vint8mf4_t vasub(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8mf8)))
-vint8mf8_t vasub(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8mf8_m)))
-vint8mf8_t vasub(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16m1)))
-vint16m1_t vasub(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16m1_m)))
-vint16m1_t vasub(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16m2)))
-vint16m2_t vasub(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16m2_m)))
-vint16m2_t vasub(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16m4)))
-vint16m4_t vasub(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16m4_m)))
-vint16m4_t vasub(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16m8)))
-vint16m8_t vasub(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16m8_m)))
-vint16m8_t vasub(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16mf2)))
-vint16mf2_t vasub(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16mf2_m)))
-vint16mf2_t vasub(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16mf4)))
-vint16mf4_t vasub(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16mf4_m)))
-vint16mf4_t vasub(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i32m1)))
-vint32m1_t vasub(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i32m1_m)))
-vint32m1_t vasub(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i32m2)))
-vint32m2_t vasub(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i32m2_m)))
-vint32m2_t vasub(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i32m4)))
-vint32m4_t vasub(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i32m4_m)))
-vint32m4_t vasub(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i32m8)))
-vint32m8_t vasub(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i32m8_m)))
-vint32m8_t vasub(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i32mf2)))
-vint32mf2_t vasub(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i32mf2_m)))
-vint32mf2_t vasub(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i64m1)))
-vint64m1_t vasub(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i64m1_m)))
-vint64m1_t vasub(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i64m2)))
-vint64m2_t vasub(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i64m2_m)))
-vint64m2_t vasub(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i64m4)))
-vint64m4_t vasub(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i64m4_m)))
-vint64m4_t vasub(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i64m8)))
-vint64m8_t vasub(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i64m8_m)))
-vint64m8_t vasub(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8m1)))
-vint8m1_t vasub(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8m1_m)))
-vint8m1_t vasub(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8m2)))
-vint8m2_t vasub(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8m2_m)))
-vint8m2_t vasub(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8m4)))
-vint8m4_t vasub(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8m4_m)))
-vint8m4_t vasub(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8m8)))
-vint8m8_t vasub(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8m8_m)))
-vint8m8_t vasub(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8mf2)))
-vint8mf2_t vasub(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8mf2_m)))
-vint8mf2_t vasub(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8mf4)))
-vint8mf4_t vasub(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8mf4_m)))
-vint8mf4_t vasub(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8mf8)))
-vint8mf8_t vasub(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8mf8_m)))
-vint8mf8_t vasub(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16m1)))
-vint16m1_t vasub(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16m1_m)))
-vint16m1_t vasub(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16m2)))
-vint16m2_t vasub(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16m2_m)))
-vint16m2_t vasub(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16m4)))
-vint16m4_t vasub(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16m4_m)))
-vint16m4_t vasub(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16m8)))
-vint16m8_t vasub(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16m8_m)))
-vint16m8_t vasub(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16mf2)))
-vint16mf2_t vasub(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16mf2_m)))
-vint16mf2_t vasub(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16mf4)))
-vint16mf4_t vasub(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16mf4_m)))
-vint16mf4_t vasub(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i32m1)))
-vint32m1_t vasub(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i32m1_m)))
-vint32m1_t vasub(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i32m2)))
-vint32m2_t vasub(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i32m2_m)))
-vint32m2_t vasub(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i32m4)))
-vint32m4_t vasub(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i32m4_m)))
-vint32m4_t vasub(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i32m8)))
-vint32m8_t vasub(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i32m8_m)))
-vint32m8_t vasub(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i32mf2)))
-vint32mf2_t vasub(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i32mf2_m)))
-vint32mf2_t vasub(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i64m1)))
-vint64m1_t vasub(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i64m1_m)))
-vint64m1_t vasub(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i64m2)))
-vint64m2_t vasub(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i64m2_m)))
-vint64m2_t vasub(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i64m4)))
-vint64m4_t vasub(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i64m4_m)))
-vint64m4_t vasub(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i64m8)))
-vint64m8_t vasub(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i64m8_m)))
-vint64m8_t vasub(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8m1)))
-vint8m1_t vsmul(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8m1_m)))
-vint8m1_t vsmul(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8m2)))
-vint8m2_t vsmul(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8m2_m)))
-vint8m2_t vsmul(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8m4)))
-vint8m4_t vsmul(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8m4_m)))
-vint8m4_t vsmul(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8m8)))
-vint8m8_t vsmul(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8m8_m)))
-vint8m8_t vsmul(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8mf2)))
-vint8mf2_t vsmul(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8mf2_m)))
-vint8mf2_t vsmul(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8mf4)))
-vint8mf4_t vsmul(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8mf4_m)))
-vint8mf4_t vsmul(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8mf8)))
-vint8mf8_t vsmul(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8mf8_m)))
-vint8mf8_t vsmul(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16m1)))
-vint16m1_t vsmul(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16m1_m)))
-vint16m1_t vsmul(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16m2)))
-vint16m2_t vsmul(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16m2_m)))
-vint16m2_t vsmul(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16m4)))
-vint16m4_t vsmul(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16m4_m)))
-vint16m4_t vsmul(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16m8)))
-vint16m8_t vsmul(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16m8_m)))
-vint16m8_t vsmul(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16mf2)))
-vint16mf2_t vsmul(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16mf2_m)))
-vint16mf2_t vsmul(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16mf4)))
-vint16mf4_t vsmul(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16mf4_m)))
-vint16mf4_t vsmul(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i32m1)))
-vint32m1_t vsmul(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i32m1_m)))
-vint32m1_t vsmul(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i32m2)))
-vint32m2_t vsmul(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i32m2_m)))
-vint32m2_t vsmul(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i32m4)))
-vint32m4_t vsmul(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i32m4_m)))
-vint32m4_t vsmul(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i32m8)))
-vint32m8_t vsmul(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i32m8_m)))
-vint32m8_t vsmul(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i32mf2)))
-vint32mf2_t vsmul(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i32mf2_m)))
-vint32mf2_t vsmul(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i64m1)))
-vint64m1_t vsmul(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i64m1_m)))
-vint64m1_t vsmul(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i64m2)))
-vint64m2_t vsmul(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i64m2_m)))
-vint64m2_t vsmul(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i64m4)))
-vint64m4_t vsmul(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i64m4_m)))
-vint64m4_t vsmul(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i64m8)))
-vint64m8_t vsmul(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i64m8_m)))
-vint64m8_t vsmul(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8m1)))
-vint8m1_t vsmul(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8m1_m)))
-vint8m1_t vsmul(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8m2)))
-vint8m2_t vsmul(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8m2_m)))
-vint8m2_t vsmul(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8m4)))
-vint8m4_t vsmul(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8m4_m)))
-vint8m4_t vsmul(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8m8)))
-vint8m8_t vsmul(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8m8_m)))
-vint8m8_t vsmul(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8mf2)))
-vint8mf2_t vsmul(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8mf2_m)))
-vint8mf2_t vsmul(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8mf4)))
-vint8mf4_t vsmul(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8mf4_m)))
-vint8mf4_t vsmul(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8mf8)))
-vint8mf8_t vsmul(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8mf8_m)))
-vint8mf8_t vsmul(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16m1)))
-vint16m1_t vsmul(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16m1_m)))
-vint16m1_t vsmul(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16m2)))
-vint16m2_t vsmul(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16m2_m)))
-vint16m2_t vsmul(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16m4)))
-vint16m4_t vsmul(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16m4_m)))
-vint16m4_t vsmul(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16m8)))
-vint16m8_t vsmul(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16m8_m)))
-vint16m8_t vsmul(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16mf2)))
-vint16mf2_t vsmul(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16mf2_m)))
-vint16mf2_t vsmul(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16mf4)))
-vint16mf4_t vsmul(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16mf4_m)))
-vint16mf4_t vsmul(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i32m1)))
-vint32m1_t vsmul(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i32m1_m)))
-vint32m1_t vsmul(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i32m2)))
-vint32m2_t vsmul(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i32m2_m)))
-vint32m2_t vsmul(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i32m4)))
-vint32m4_t vsmul(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i32m4_m)))
-vint32m4_t vsmul(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i32m8)))
-vint32m8_t vsmul(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i32m8_m)))
-vint32m8_t vsmul(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i32mf2)))
-vint32mf2_t vsmul(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i32mf2_m)))
-vint32mf2_t vsmul(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i64m1)))
-vint64m1_t vsmul(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i64m1_m)))
-vint64m1_t vsmul(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i64m2)))
-vint64m2_t vsmul(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i64m2_m)))
-vint64m2_t vsmul(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i64m4)))
-vint64m4_t vsmul(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i64m4_m)))
-vint64m4_t vsmul(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i64m8)))
-vint64m8_t vsmul(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i64m8_m)))
-vint64m8_t vsmul(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8m1)))
-vuint8m1_t vssrl(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8m1_m)))
-vuint8m1_t vssrl(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8m2)))
-vuint8m2_t vssrl(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8m2_m)))
-vuint8m2_t vssrl(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8m4)))
-vuint8m4_t vssrl(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8m4_m)))
-vuint8m4_t vssrl(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8m8)))
-vuint8m8_t vssrl(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8m8_m)))
-vuint8m8_t vssrl(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8mf2)))
-vuint8mf2_t vssrl(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8mf2_m)))
-vuint8mf2_t vssrl(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8mf4)))
-vuint8mf4_t vssrl(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8mf4_m)))
-vuint8mf4_t vssrl(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8mf8)))
-vuint8mf8_t vssrl(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8mf8_m)))
-vuint8mf8_t vssrl(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16m1)))
-vuint16m1_t vssrl(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16m1_m)))
-vuint16m1_t vssrl(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16m2)))
-vuint16m2_t vssrl(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16m2_m)))
-vuint16m2_t vssrl(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16m4)))
-vuint16m4_t vssrl(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16m4_m)))
-vuint16m4_t vssrl(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16m8)))
-vuint16m8_t vssrl(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16m8_m)))
-vuint16m8_t vssrl(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16mf2)))
-vuint16mf2_t vssrl(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16mf2_m)))
-vuint16mf2_t vssrl(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16mf4)))
-vuint16mf4_t vssrl(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16mf4_m)))
-vuint16mf4_t vssrl(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u32m1)))
-vuint32m1_t vssrl(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u32m1_m)))
-vuint32m1_t vssrl(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u32m2)))
-vuint32m2_t vssrl(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u32m2_m)))
-vuint32m2_t vssrl(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u32m4)))
-vuint32m4_t vssrl(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u32m4_m)))
-vuint32m4_t vssrl(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u32m8)))
-vuint32m8_t vssrl(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u32m8_m)))
-vuint32m8_t vssrl(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u32mf2)))
-vuint32mf2_t vssrl(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u32mf2_m)))
-vuint32mf2_t vssrl(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u64m1)))
-vuint64m1_t vssrl(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u64m1_m)))
-vuint64m1_t vssrl(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u64m2)))
-vuint64m2_t vssrl(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u64m2_m)))
-vuint64m2_t vssrl(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u64m4)))
-vuint64m4_t vssrl(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u64m4_m)))
-vuint64m4_t vssrl(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u64m8)))
-vuint64m8_t vssrl(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u64m8_m)))
-vuint64m8_t vssrl(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8m1)))
-vuint8m1_t vssrl(vuint8m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8m1_m)))
-vuint8m1_t vssrl(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8m2)))
-vuint8m2_t vssrl(vuint8m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8m2_m)))
-vuint8m2_t vssrl(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8m4)))
-vuint8m4_t vssrl(vuint8m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8m4_m)))
-vuint8m4_t vssrl(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8m8)))
-vuint8m8_t vssrl(vuint8m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8m8_m)))
-vuint8m8_t vssrl(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8mf2)))
-vuint8mf2_t vssrl(vuint8mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8mf2_m)))
-vuint8mf2_t vssrl(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8mf4)))
-vuint8mf4_t vssrl(vuint8mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8mf4_m)))
-vuint8mf4_t vssrl(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8mf8)))
-vuint8mf8_t vssrl(vuint8mf8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8mf8_m)))
-vuint8mf8_t vssrl(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16m1)))
-vuint16m1_t vssrl(vuint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16m1_m)))
-vuint16m1_t vssrl(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16m2)))
-vuint16m2_t vssrl(vuint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16m2_m)))
-vuint16m2_t vssrl(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16m4)))
-vuint16m4_t vssrl(vuint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16m4_m)))
-vuint16m4_t vssrl(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16m8)))
-vuint16m8_t vssrl(vuint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16m8_m)))
-vuint16m8_t vssrl(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16mf2)))
-vuint16mf2_t vssrl(vuint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16mf2_m)))
-vuint16mf2_t vssrl(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16mf4)))
-vuint16mf4_t vssrl(vuint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16mf4_m)))
-vuint16mf4_t vssrl(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u32m1)))
-vuint32m1_t vssrl(vuint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u32m1_m)))
-vuint32m1_t vssrl(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u32m2)))
-vuint32m2_t vssrl(vuint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u32m2_m)))
-vuint32m2_t vssrl(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u32m4)))
-vuint32m4_t vssrl(vuint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u32m4_m)))
-vuint32m4_t vssrl(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u32m8)))
-vuint32m8_t vssrl(vuint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u32m8_m)))
-vuint32m8_t vssrl(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u32mf2)))
-vuint32mf2_t vssrl(vuint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u32mf2_m)))
-vuint32mf2_t vssrl(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u64m1)))
-vuint64m1_t vssrl(vuint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u64m1_m)))
-vuint64m1_t vssrl(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u64m2)))
-vuint64m2_t vssrl(vuint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u64m2_m)))
-vuint64m2_t vssrl(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u64m4)))
-vuint64m4_t vssrl(vuint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u64m4_m)))
-vuint64m4_t vssrl(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u64m8)))
-vuint64m8_t vssrl(vuint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u64m8_m)))
-vuint64m8_t vssrl(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8m1)))
-vint8m1_t vssra(vint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8m1_m)))
-vint8m1_t vssra(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8m2)))
-vint8m2_t vssra(vint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8m2_m)))
-vint8m2_t vssra(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8m4)))
-vint8m4_t vssra(vint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8m4_m)))
-vint8m4_t vssra(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8m8)))
-vint8m8_t vssra(vint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8m8_m)))
-vint8m8_t vssra(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8mf2)))
-vint8mf2_t vssra(vint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8mf2_m)))
-vint8mf2_t vssra(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8mf4)))
-vint8mf4_t vssra(vint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8mf4_m)))
-vint8mf4_t vssra(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8mf8)))
-vint8mf8_t vssra(vint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8mf8_m)))
-vint8mf8_t vssra(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16m1)))
-vint16m1_t vssra(vint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16m1_m)))
-vint16m1_t vssra(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16m2)))
-vint16m2_t vssra(vint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16m2_m)))
-vint16m2_t vssra(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16m4)))
-vint16m4_t vssra(vint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16m4_m)))
-vint16m4_t vssra(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16m8)))
-vint16m8_t vssra(vint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16m8_m)))
-vint16m8_t vssra(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16mf2)))
-vint16mf2_t vssra(vint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16mf2_m)))
-vint16mf2_t vssra(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16mf4)))
-vint16mf4_t vssra(vint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16mf4_m)))
-vint16mf4_t vssra(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i32m1)))
-vint32m1_t vssra(vint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i32m1_m)))
-vint32m1_t vssra(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i32m2)))
-vint32m2_t vssra(vint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i32m2_m)))
-vint32m2_t vssra(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i32m4)))
-vint32m4_t vssra(vint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i32m4_m)))
-vint32m4_t vssra(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i32m8)))
-vint32m8_t vssra(vint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i32m8_m)))
-vint32m8_t vssra(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i32mf2)))
-vint32mf2_t vssra(vint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i32mf2_m)))
-vint32mf2_t vssra(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i64m1)))
-vint64m1_t vssra(vint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i64m1_m)))
-vint64m1_t vssra(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i64m2)))
-vint64m2_t vssra(vint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i64m2_m)))
-vint64m2_t vssra(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i64m4)))
-vint64m4_t vssra(vint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i64m4_m)))
-vint64m4_t vssra(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i64m8)))
-vint64m8_t vssra(vint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i64m8_m)))
-vint64m8_t vssra(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8m1)))
-vint8m1_t vssra(vint8m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8m1_m)))
-vint8m1_t vssra(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8m2)))
-vint8m2_t vssra(vint8m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8m2_m)))
-vint8m2_t vssra(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8m4)))
-vint8m4_t vssra(vint8m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8m4_m)))
-vint8m4_t vssra(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8m8)))
-vint8m8_t vssra(vint8m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8m8_m)))
-vint8m8_t vssra(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8mf2)))
-vint8mf2_t vssra(vint8mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8mf2_m)))
-vint8mf2_t vssra(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8mf4)))
-vint8mf4_t vssra(vint8mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8mf4_m)))
-vint8mf4_t vssra(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8mf8)))
-vint8mf8_t vssra(vint8mf8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8mf8_m)))
-vint8mf8_t vssra(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16m1)))
-vint16m1_t vssra(vint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16m1_m)))
-vint16m1_t vssra(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16m2)))
-vint16m2_t vssra(vint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16m2_m)))
-vint16m2_t vssra(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16m4)))
-vint16m4_t vssra(vint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16m4_m)))
-vint16m4_t vssra(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16m8)))
-vint16m8_t vssra(vint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16m8_m)))
-vint16m8_t vssra(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16mf2)))
-vint16mf2_t vssra(vint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16mf2_m)))
-vint16mf2_t vssra(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16mf4)))
-vint16mf4_t vssra(vint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16mf4_m)))
-vint16mf4_t vssra(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i32m1)))
-vint32m1_t vssra(vint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i32m1_m)))
-vint32m1_t vssra(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i32m2)))
-vint32m2_t vssra(vint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i32m2_m)))
-vint32m2_t vssra(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i32m4)))
-vint32m4_t vssra(vint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i32m4_m)))
-vint32m4_t vssra(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i32m8)))
-vint32m8_t vssra(vint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i32m8_m)))
-vint32m8_t vssra(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i32mf2)))
-vint32mf2_t vssra(vint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i32mf2_m)))
-vint32mf2_t vssra(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i64m1)))
-vint64m1_t vssra(vint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i64m1_m)))
-vint64m1_t vssra(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i64m2)))
-vint64m2_t vssra(vint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i64m2_m)))
-vint64m2_t vssra(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i64m4)))
-vint64m4_t vssra(vint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i64m4_m)))
-vint64m4_t vssra(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i64m8)))
-vint64m8_t vssra(vint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i64m8_m)))
-vint64m8_t vssra(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8m1)))
-vuint8m1_t vnclipu(vuint16m2_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8m1_m)))
-vuint8m1_t vnclipu(vbool8_t op0, vuint8m1_t op1, vuint16m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8m2)))
-vuint8m2_t vnclipu(vuint16m4_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8m2_m)))
-vuint8m2_t vnclipu(vbool4_t op0, vuint8m2_t op1, vuint16m4_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8m4)))
-vuint8m4_t vnclipu(vuint16m8_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8m4_m)))
-vuint8m4_t vnclipu(vbool2_t op0, vuint8m4_t op1, vuint16m8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8mf2)))
-vuint8mf2_t vnclipu(vuint16m1_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8mf2_m)))
-vuint8mf2_t vnclipu(vbool16_t op0, vuint8mf2_t op1, vuint16m1_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8mf4)))
-vuint8mf4_t vnclipu(vuint16mf2_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8mf4_m)))
-vuint8mf4_t vnclipu(vbool32_t op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8mf8)))
-vuint8mf8_t vnclipu(vuint16mf4_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8mf8_m)))
-vuint8mf8_t vnclipu(vbool64_t op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u16m1)))
-vuint16m1_t vnclipu(vuint32m2_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u16m1_m)))
-vuint16m1_t vnclipu(vbool16_t op0, vuint16m1_t op1, vuint32m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u16m2)))
-vuint16m2_t vnclipu(vuint32m4_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u16m2_m)))
-vuint16m2_t vnclipu(vbool8_t op0, vuint16m2_t op1, vuint32m4_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u16m4)))
-vuint16m4_t vnclipu(vuint32m8_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u16m4_m)))
-vuint16m4_t vnclipu(vbool4_t op0, vuint16m4_t op1, vuint32m8_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u16mf2)))
-vuint16mf2_t vnclipu(vuint32m1_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u16mf2_m)))
-vuint16mf2_t vnclipu(vbool32_t op0, vuint16mf2_t op1, vuint32m1_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u16mf4)))
-vuint16mf4_t vnclipu(vuint32mf2_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u16mf4_m)))
-vuint16mf4_t vnclipu(vbool64_t op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u32m1)))
-vuint32m1_t vnclipu(vuint64m2_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u32m1_m)))
-vuint32m1_t vnclipu(vbool32_t op0, vuint32m1_t op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u32m2)))
-vuint32m2_t vnclipu(vuint64m4_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u32m2_m)))
-vuint32m2_t vnclipu(vbool16_t op0, vuint32m2_t op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u32m4)))
-vuint32m4_t vnclipu(vuint64m8_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u32m4_m)))
-vuint32m4_t vnclipu(vbool8_t op0, vuint32m4_t op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u32mf2)))
-vuint32mf2_t vnclipu(vuint64m1_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u32mf2_m)))
-vuint32mf2_t vnclipu(vbool64_t op0, vuint32mf2_t op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8m1)))
-vuint8m1_t vnclipu(vuint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8m1_m)))
-vuint8m1_t vnclipu(vbool8_t op0, vuint8m1_t op1, vuint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8m2)))
-vuint8m2_t vnclipu(vuint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8m2_m)))
-vuint8m2_t vnclipu(vbool4_t op0, vuint8m2_t op1, vuint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8m4)))
-vuint8m4_t vnclipu(vuint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8m4_m)))
-vuint8m4_t vnclipu(vbool2_t op0, vuint8m4_t op1, vuint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8mf2)))
-vuint8mf2_t vnclipu(vuint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8mf2_m)))
-vuint8mf2_t vnclipu(vbool16_t op0, vuint8mf2_t op1, vuint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8mf4)))
-vuint8mf4_t vnclipu(vuint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8mf4_m)))
-vuint8mf4_t vnclipu(vbool32_t op0, vuint8mf4_t op1, vuint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8mf8)))
-vuint8mf8_t vnclipu(vuint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8mf8_m)))
-vuint8mf8_t vnclipu(vbool64_t op0, vuint8mf8_t op1, vuint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u16m1)))
-vuint16m1_t vnclipu(vuint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u16m1_m)))
-vuint16m1_t vnclipu(vbool16_t op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u16m2)))
-vuint16m2_t vnclipu(vuint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u16m2_m)))
-vuint16m2_t vnclipu(vbool8_t op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u16m4)))
-vuint16m4_t vnclipu(vuint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u16m4_m)))
-vuint16m4_t vnclipu(vbool4_t op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u16mf2)))
-vuint16mf2_t vnclipu(vuint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u16mf2_m)))
-vuint16mf2_t vnclipu(vbool32_t op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u16mf4)))
-vuint16mf4_t vnclipu(vuint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u16mf4_m)))
-vuint16mf4_t vnclipu(vbool64_t op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u32m1)))
-vuint32m1_t vnclipu(vuint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u32m1_m)))
-vuint32m1_t vnclipu(vbool32_t op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u32m2)))
-vuint32m2_t vnclipu(vuint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u32m2_m)))
-vuint32m2_t vnclipu(vbool16_t op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u32m4)))
-vuint32m4_t vnclipu(vuint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u32m4_m)))
-vuint32m4_t vnclipu(vbool8_t op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u32mf2)))
-vuint32mf2_t vnclipu(vuint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u32mf2_m)))
-vuint32mf2_t vnclipu(vbool64_t op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u32m1)))
-void vsuxei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u32m1_m)))
-void vsuxei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u32m2)))
-void vsuxei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u32m2_m)))
-void vsuxei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u32m4)))
-void vsuxei64(uint32_t * op0, vuint64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u32m4_m)))
-void vsuxei64(vbool8_t op0, uint32_t * op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u32mf2)))
-void vsuxei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u32mf2_m)))
-void vsuxei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8m1)))
-vint8m1_t vnclip(vint16m2_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8m1_m)))
-vint8m1_t vnclip(vbool8_t op0, vint8m1_t op1, vint16m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8m2)))
-vint8m2_t vnclip(vint16m4_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8m2_m)))
-vint8m2_t vnclip(vbool4_t op0, vint8m2_t op1, vint16m4_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8m4)))
-vint8m4_t vnclip(vint16m8_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8m4_m)))
-vint8m4_t vnclip(vbool2_t op0, vint8m4_t op1, vint16m8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8mf2)))
-vint8mf2_t vnclip(vint16m1_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8mf2_m)))
-vint8mf2_t vnclip(vbool16_t op0, vint8mf2_t op1, vint16m1_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8mf4)))
-vint8mf4_t vnclip(vint16mf2_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8mf4_m)))
-vint8mf4_t vnclip(vbool32_t op0, vint8mf4_t op1, vint16mf2_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8mf8)))
-vint8mf8_t vnclip(vint16mf4_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8mf8_m)))
-vint8mf8_t vnclip(vbool64_t op0, vint8mf8_t op1, vint16mf4_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i16m1)))
-vint16m1_t vnclip(vint32m2_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i16m1_m)))
-vint16m1_t vnclip(vbool16_t op0, vint16m1_t op1, vint32m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i16m2)))
-vint16m2_t vnclip(vint32m4_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i16m2_m)))
-vint16m2_t vnclip(vbool8_t op0, vint16m2_t op1, vint32m4_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i16m4)))
-vint16m4_t vnclip(vint32m8_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i16m4_m)))
-vint16m4_t vnclip(vbool4_t op0, vint16m4_t op1, vint32m8_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i16mf2)))
-vint16mf2_t vnclip(vint32m1_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i16mf2_m)))
-vint16mf2_t vnclip(vbool32_t op0, vint16mf2_t op1, vint32m1_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i16mf4)))
-vint16mf4_t vnclip(vint32mf2_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i16mf4_m)))
-vint16mf4_t vnclip(vbool64_t op0, vint16mf4_t op1, vint32mf2_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i32m1)))
-vint32m1_t vnclip(vint64m2_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i32m1_m)))
-vint32m1_t vnclip(vbool32_t op0, vint32m1_t op1, vint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i32m2)))
-vint32m2_t vnclip(vint64m4_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i32m2_m)))
-vint32m2_t vnclip(vbool16_t op0, vint32m2_t op1, vint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i32m4)))
-vint32m4_t vnclip(vint64m8_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i32m4_m)))
-vint32m4_t vnclip(vbool8_t op0, vint32m4_t op1, vint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i32mf2)))
-vint32mf2_t vnclip(vint64m1_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i32mf2_m)))
-vint32mf2_t vnclip(vbool64_t op0, vint32mf2_t op1, vint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8m1)))
-vint8m1_t vnclip(vint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8m1_m)))
-vint8m1_t vnclip(vbool8_t op0, vint8m1_t op1, vint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8m2)))
-vint8m2_t vnclip(vint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8m2_m)))
-vint8m2_t vnclip(vbool4_t op0, vint8m2_t op1, vint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8m4)))
-vint8m4_t vnclip(vint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8m4_m)))
-vint8m4_t vnclip(vbool2_t op0, vint8m4_t op1, vint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8mf2)))
-vint8mf2_t vnclip(vint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8mf2_m)))
-vint8mf2_t vnclip(vbool16_t op0, vint8mf2_t op1, vint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8mf4)))
-vint8mf4_t vnclip(vint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8mf4_m)))
-vint8mf4_t vnclip(vbool32_t op0, vint8mf4_t op1, vint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8mf8)))
-vint8mf8_t vnclip(vint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8mf8_m)))
-vint8mf8_t vnclip(vbool64_t op0, vint8mf8_t op1, vint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i16m1)))
-vint16m1_t vnclip(vint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i16m1_m)))
-vint16m1_t vnclip(vbool16_t op0, vint16m1_t op1, vint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i16m2)))
-vint16m2_t vnclip(vint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i16m2_m)))
-vint16m2_t vnclip(vbool8_t op0, vint16m2_t op1, vint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i16m4)))
-vint16m4_t vnclip(vint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i16m4_m)))
-vint16m4_t vnclip(vbool4_t op0, vint16m4_t op1, vint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i16mf2)))
-vint16mf2_t vnclip(vint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i16mf2_m)))
-vint16mf2_t vnclip(vbool32_t op0, vint16mf2_t op1, vint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i16mf4)))
-vint16mf4_t vnclip(vint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i16mf4_m)))
-vint16mf4_t vnclip(vbool64_t op0, vint16mf4_t op1, vint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i32m1)))
-vint32m1_t vnclip(vint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i32m1_m)))
-vint32m1_t vnclip(vbool32_t op0, vint32m1_t op1, vint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i32m2)))
-vint32m2_t vnclip(vint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i32m2_m)))
-vint32m2_t vnclip(vbool16_t op0, vint32m2_t op1, vint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i32m4)))
-vint32m4_t vnclip(vint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i32m4_m)))
-vint32m4_t vnclip(vbool8_t op0, vint32m4_t op1, vint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i32mf2)))
-vint32mf2_t vnclip(vint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i32mf2_m)))
-vint32mf2_t vnclip(vbool64_t op0, vint32mf2_t op1, vint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i64m1)))
-void vsuxei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i64m1_m)))
-void vsuxei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i64m2)))
-void vsuxei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i64m2_m)))
-void vsuxei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i64m4)))
-void vsuxei8(int64_t * op0, vuint8mf2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i64m4_m)))
-void vsuxei8(vbool16_t op0, int64_t * op1, vuint8mf2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i64m8)))
-void vsuxei8(int64_t * op0, vuint8m1_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i64m8_m)))
-void vsuxei8(vbool8_t op0, int64_t * op1, vuint8m1_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u64m1)))
-void vsuxei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u64m1_m)))
-void vsuxei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u64m2)))
-void vsuxei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u64m2_m)))
-void vsuxei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u64m4)))
-void vsuxei8(uint64_t * op0, vuint8mf2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u64m4_m)))
-void vsuxei8(vbool16_t op0, uint64_t * op1, vuint8mf2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u64m8)))
-void vsuxei8(uint64_t * op0, vuint8m1_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u64m8_m)))
-void vsuxei8(vbool8_t op0, uint64_t * op1, vuint8m1_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i64m1)))
-void vsuxei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i64m1_m)))
-void vsuxei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i64m2)))
-void vsuxei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i64m2_m)))
-void vsuxei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i64m4)))
-void vsuxei16(int64_t * op0, vuint16m1_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i64m4_m)))
-void vsuxei16(vbool16_t op0, int64_t * op1, vuint16m1_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i64m8)))
-void vsuxei16(int64_t * op0, vuint16m2_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i64m8_m)))
-void vsuxei16(vbool8_t op0, int64_t * op1, vuint16m2_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u64m1)))
-void vsuxei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u64m1_m)))
-void vsuxei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u64m2)))
-void vsuxei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u64m2_m)))
-void vsuxei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u64m4)))
-void vsuxei16(uint64_t * op0, vuint16m1_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u64m4_m)))
-void vsuxei16(vbool16_t op0, uint64_t * op1, vuint16m1_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u64m8)))
-void vsuxei16(uint64_t * op0, vuint16m2_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u64m8_m)))
-void vsuxei16(vbool8_t op0, uint64_t * op1, vuint16m2_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i64m1)))
-void vsuxei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i64m1_m)))
-void vsuxei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i64m2)))
-void vsuxei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i64m2_m)))
-void vsuxei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i64m4)))
-void vsuxei32(int64_t * op0, vuint32m2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i64m4_m)))
-void vsuxei32(vbool16_t op0, int64_t * op1, vuint32m2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i64m8)))
-void vsuxei32(int64_t * op0, vuint32m4_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i64m8_m)))
-void vsuxei32(vbool8_t op0, int64_t * op1, vuint32m4_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u64m1)))
-void vsuxei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u64m1_m)))
-void vsuxei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u64m2)))
-void vsuxei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u64m2_m)))
-void vsuxei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u64m4)))
-void vsuxei32(uint64_t * op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u64m4_m)))
-void vsuxei32(vbool16_t op0, uint64_t * op1, vuint32m2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u64m8)))
-void vsuxei32(uint64_t * op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u64m8_m)))
-void vsuxei32(vbool8_t op0, uint64_t * op1, vuint32m4_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i64m1)))
-void vsuxei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i64m1_m)))
-void vsuxei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i64m2)))
-void vsuxei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i64m2_m)))
-void vsuxei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i64m4)))
-void vsuxei64(int64_t * op0, vuint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i64m4_m)))
-void vsuxei64(vbool16_t op0, int64_t * op1, vuint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i64m8)))
-void vsuxei64(int64_t * op0, vuint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i64m8_m)))
-void vsuxei64(vbool8_t op0, int64_t * op1, vuint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8m1_i8m1)))
-vint8m1_t vredsum(vint8m1_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8m1_i8m1_m)))
-vint8m1_t vredsum(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8m2_i8m1)))
-vint8m1_t vredsum(vint8m1_t op0, vint8m2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8m2_i8m1_m)))
-vint8m1_t vredsum(vbool4_t op0, vint8m1_t op1, vint8m2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8m4_i8m1)))
-vint8m1_t vredsum(vint8m1_t op0, vint8m4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8m4_i8m1_m)))
-vint8m1_t vredsum(vbool2_t op0, vint8m1_t op1, vint8m4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8m8_i8m1)))
-vint8m1_t vredsum(vint8m1_t op0, vint8m8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8m8_i8m1_m)))
-vint8m1_t vredsum(vbool1_t op0, vint8m1_t op1, vint8m8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8mf2_i8m1)))
-vint8m1_t vredsum(vint8m1_t op0, vint8mf2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8mf2_i8m1_m)))
-vint8m1_t vredsum(vbool16_t op0, vint8m1_t op1, vint8mf2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8mf4_i8m1)))
-vint8m1_t vredsum(vint8m1_t op0, vint8mf4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8mf4_i8m1_m)))
-vint8m1_t vredsum(vbool32_t op0, vint8m1_t op1, vint8mf4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8mf8_i8m1)))
-vint8m1_t vredsum(vint8m1_t op0, vint8mf8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8mf8_i8m1_m)))
-vint8m1_t vredsum(vbool64_t op0, vint8m1_t op1, vint8mf8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16m1_i16m1)))
-vint16m1_t vredsum(vint16m1_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16m1_i16m1_m)))
-vint16m1_t vredsum(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16m2_i16m1)))
-vint16m1_t vredsum(vint16m1_t op0, vint16m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16m2_i16m1_m)))
-vint16m1_t vredsum(vbool8_t op0, vint16m1_t op1, vint16m2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16m4_i16m1)))
-vint16m1_t vredsum(vint16m1_t op0, vint16m4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16m4_i16m1_m)))
-vint16m1_t vredsum(vbool4_t op0, vint16m1_t op1, vint16m4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16m8_i16m1)))
-vint16m1_t vredsum(vint16m1_t op0, vint16m8_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16m8_i16m1_m)))
-vint16m1_t vredsum(vbool2_t op0, vint16m1_t op1, vint16m8_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16mf2_i16m1)))
-vint16m1_t vredsum(vint16m1_t op0, vint16mf2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16mf2_i16m1_m)))
-vint16m1_t vredsum(vbool32_t op0, vint16m1_t op1, vint16mf2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16mf4_i16m1)))
-vint16m1_t vredsum(vint16m1_t op0, vint16mf4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16mf4_i16m1_m)))
-vint16m1_t vredsum(vbool64_t op0, vint16m1_t op1, vint16mf4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i32m1_i32m1)))
-vint32m1_t vredsum(vint32m1_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i32m1_i32m1_m)))
-vint32m1_t vredsum(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i32m2_i32m1)))
-vint32m1_t vredsum(vint32m1_t op0, vint32m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i32m2_i32m1_m)))
-vint32m1_t vredsum(vbool16_t op0, vint32m1_t op1, vint32m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i32m4_i32m1)))
-vint32m1_t vredsum(vint32m1_t op0, vint32m4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i32m4_i32m1_m)))
-vint32m1_t vredsum(vbool8_t op0, vint32m1_t op1, vint32m4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i32m8_i32m1)))
-vint32m1_t vredsum(vint32m1_t op0, vint32m8_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i32m8_i32m1_m)))
-vint32m1_t vredsum(vbool4_t op0, vint32m1_t op1, vint32m8_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i32mf2_i32m1)))
-vint32m1_t vredsum(vint32m1_t op0, vint32mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i32mf2_i32m1_m)))
-vint32m1_t vredsum(vbool64_t op0, vint32m1_t op1, vint32mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i64m1_i64m1)))
-vint64m1_t vredsum(vint64m1_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i64m1_i64m1_m)))
-vint64m1_t vredsum(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i64m2_i64m1)))
-vint64m1_t vredsum(vint64m1_t op0, vint64m2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i64m2_i64m1_m)))
-vint64m1_t vredsum(vbool32_t op0, vint64m1_t op1, vint64m2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i64m4_i64m1)))
-vint64m1_t vredsum(vint64m1_t op0, vint64m4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i64m4_i64m1_m)))
-vint64m1_t vredsum(vbool16_t op0, vint64m1_t op1, vint64m4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i64m8_i64m1)))
-vint64m1_t vredsum(vint64m1_t op0, vint64m8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i64m8_i64m1_m)))
-vint64m1_t vredsum(vbool8_t op0, vint64m1_t op1, vint64m8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8m1_u8m1)))
-vuint8m1_t vredsum(vuint8m1_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8m1_u8m1_m)))
-vuint8m1_t vredsum(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8m2_u8m1)))
-vuint8m1_t vredsum(vuint8m1_t op0, vuint8m2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8m2_u8m1_m)))
-vuint8m1_t vredsum(vbool4_t op0, vuint8m1_t op1, vuint8m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8m4_u8m1)))
-vuint8m1_t vredsum(vuint8m1_t op0, vuint8m4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8m4_u8m1_m)))
-vuint8m1_t vredsum(vbool2_t op0, vuint8m1_t op1, vuint8m4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8m8_u8m1)))
-vuint8m1_t vredsum(vuint8m1_t op0, vuint8m8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8m8_u8m1_m)))
-vuint8m1_t vredsum(vbool1_t op0, vuint8m1_t op1, vuint8m8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8mf2_u8m1)))
-vuint8m1_t vredsum(vuint8m1_t op0, vuint8mf2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8mf2_u8m1_m)))
-vuint8m1_t vredsum(vbool16_t op0, vuint8m1_t op1, vuint8mf2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8mf4_u8m1)))
-vuint8m1_t vredsum(vuint8m1_t op0, vuint8mf4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8mf4_u8m1_m)))
-vuint8m1_t vredsum(vbool32_t op0, vuint8m1_t op1, vuint8mf4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8mf8_u8m1)))
-vuint8m1_t vredsum(vuint8m1_t op0, vuint8mf8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8mf8_u8m1_m)))
-vuint8m1_t vredsum(vbool64_t op0, vuint8m1_t op1, vuint8mf8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16m1_u16m1)))
-vuint16m1_t vredsum(vuint16m1_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16m1_u16m1_m)))
-vuint16m1_t vredsum(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16m2_u16m1)))
-vuint16m1_t vredsum(vuint16m1_t op0, vuint16m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16m2_u16m1_m)))
-vuint16m1_t vredsum(vbool8_t op0, vuint16m1_t op1, vuint16m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16m4_u16m1)))
-vuint16m1_t vredsum(vuint16m1_t op0, vuint16m4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16m4_u16m1_m)))
-vuint16m1_t vredsum(vbool4_t op0, vuint16m1_t op1, vuint16m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16m8_u16m1)))
-vuint16m1_t vredsum(vuint16m1_t op0, vuint16m8_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16m8_u16m1_m)))
-vuint16m1_t vredsum(vbool2_t op0, vuint16m1_t op1, vuint16m8_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16mf2_u16m1)))
-vuint16m1_t vredsum(vuint16m1_t op0, vuint16mf2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16mf2_u16m1_m)))
-vuint16m1_t vredsum(vbool32_t op0, vuint16m1_t op1, vuint16mf2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16mf4_u16m1)))
-vuint16m1_t vredsum(vuint16m1_t op0, vuint16mf4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16mf4_u16m1_m)))
-vuint16m1_t vredsum(vbool64_t op0, vuint16m1_t op1, vuint16mf4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u32m1_u32m1)))
-vuint32m1_t vredsum(vuint32m1_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u32m1_u32m1_m)))
-vuint32m1_t vredsum(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u32m2_u32m1)))
-vuint32m1_t vredsum(vuint32m1_t op0, vuint32m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u32m2_u32m1_m)))
-vuint32m1_t vredsum(vbool16_t op0, vuint32m1_t op1, vuint32m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u32m4_u32m1)))
-vuint32m1_t vredsum(vuint32m1_t op0, vuint32m4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u32m4_u32m1_m)))
-vuint32m1_t vredsum(vbool8_t op0, vuint32m1_t op1, vuint32m4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u32m8_u32m1)))
-vuint32m1_t vredsum(vuint32m1_t op0, vuint32m8_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u32m8_u32m1_m)))
-vuint32m1_t vredsum(vbool4_t op0, vuint32m1_t op1, vuint32m8_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u32mf2_u32m1)))
-vuint32m1_t vredsum(vuint32m1_t op0, vuint32mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u32mf2_u32m1_m)))
-vuint32m1_t vredsum(vbool64_t op0, vuint32m1_t op1, vuint32mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u64m1_u64m1)))
-vuint64m1_t vredsum(vuint64m1_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u64m1_u64m1_m)))
-vuint64m1_t vredsum(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u64m2_u64m1)))
-vuint64m1_t vredsum(vuint64m1_t op0, vuint64m2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u64m2_u64m1_m)))
-vuint64m1_t vredsum(vbool32_t op0, vuint64m1_t op1, vuint64m2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u64m4_u64m1)))
-vuint64m1_t vredsum(vuint64m1_t op0, vuint64m4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u64m4_u64m1_m)))
-vuint64m1_t vredsum(vbool16_t op0, vuint64m1_t op1, vuint64m4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u64m8_u64m1)))
-vuint64m1_t vredsum(vuint64m1_t op0, vuint64m8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u64m8_u64m1_m)))
-vuint64m1_t vredsum(vbool8_t op0, vuint64m1_t op1, vuint64m8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8m1_u8m1)))
-vuint8m1_t vredmaxu(vuint8m1_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8m1_u8m1_m)))
-vuint8m1_t vredmaxu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8m2_u8m1)))
-vuint8m1_t vredmaxu(vuint8m1_t op0, vuint8m2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8m2_u8m1_m)))
-vuint8m1_t vredmaxu(vbool4_t op0, vuint8m1_t op1, vuint8m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8m4_u8m1)))
-vuint8m1_t vredmaxu(vuint8m1_t op0, vuint8m4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8m4_u8m1_m)))
-vuint8m1_t vredmaxu(vbool2_t op0, vuint8m1_t op1, vuint8m4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8m8_u8m1)))
-vuint8m1_t vredmaxu(vuint8m1_t op0, vuint8m8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8m8_u8m1_m)))
-vuint8m1_t vredmaxu(vbool1_t op0, vuint8m1_t op1, vuint8m8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8mf2_u8m1)))
-vuint8m1_t vredmaxu(vuint8m1_t op0, vuint8mf2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8mf2_u8m1_m)))
-vuint8m1_t vredmaxu(vbool16_t op0, vuint8m1_t op1, vuint8mf2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8mf4_u8m1)))
-vuint8m1_t vredmaxu(vuint8m1_t op0, vuint8mf4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8mf4_u8m1_m)))
-vuint8m1_t vredmaxu(vbool32_t op0, vuint8m1_t op1, vuint8mf4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8mf8_u8m1)))
-vuint8m1_t vredmaxu(vuint8m1_t op0, vuint8mf8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8mf8_u8m1_m)))
-vuint8m1_t vredmaxu(vbool64_t op0, vuint8m1_t op1, vuint8mf8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16m1_u16m1)))
-vuint16m1_t vredmaxu(vuint16m1_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16m1_u16m1_m)))
-vuint16m1_t vredmaxu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16m2_u16m1)))
-vuint16m1_t vredmaxu(vuint16m1_t op0, vuint16m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16m2_u16m1_m)))
-vuint16m1_t vredmaxu(vbool8_t op0, vuint16m1_t op1, vuint16m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16m4_u16m1)))
-vuint16m1_t vredmaxu(vuint16m1_t op0, vuint16m4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16m4_u16m1_m)))
-vuint16m1_t vredmaxu(vbool4_t op0, vuint16m1_t op1, vuint16m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16m8_u16m1)))
-vuint16m1_t vredmaxu(vuint16m1_t op0, vuint16m8_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16m8_u16m1_m)))
-vuint16m1_t vredmaxu(vbool2_t op0, vuint16m1_t op1, vuint16m8_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16mf2_u16m1)))
-vuint16m1_t vredmaxu(vuint16m1_t op0, vuint16mf2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16mf2_u16m1_m)))
-vuint16m1_t vredmaxu(vbool32_t op0, vuint16m1_t op1, vuint16mf2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16mf4_u16m1)))
-vuint16m1_t vredmaxu(vuint16m1_t op0, vuint16mf4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16mf4_u16m1_m)))
-vuint16m1_t vredmaxu(vbool64_t op0, vuint16m1_t op1, vuint16mf4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u32m1_u32m1)))
-vuint32m1_t vredmaxu(vuint32m1_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u32m1_u32m1_m)))
-vuint32m1_t vredmaxu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u32m2_u32m1)))
-vuint32m1_t vredmaxu(vuint32m1_t op0, vuint32m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u32m2_u32m1_m)))
-vuint32m1_t vredmaxu(vbool16_t op0, vuint32m1_t op1, vuint32m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u32m4_u32m1)))
-vuint32m1_t vredmaxu(vuint32m1_t op0, vuint32m4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u32m4_u32m1_m)))
-vuint32m1_t vredmaxu(vbool8_t op0, vuint32m1_t op1, vuint32m4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u32m8_u32m1)))
-vuint32m1_t vredmaxu(vuint32m1_t op0, vuint32m8_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u32m8_u32m1_m)))
-vuint32m1_t vredmaxu(vbool4_t op0, vuint32m1_t op1, vuint32m8_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u32mf2_u32m1)))
-vuint32m1_t vredmaxu(vuint32m1_t op0, vuint32mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u32mf2_u32m1_m)))
-vuint32m1_t vredmaxu(vbool64_t op0, vuint32m1_t op1, vuint32mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u64m1_u64m1)))
-vuint64m1_t vredmaxu(vuint64m1_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u64m1_u64m1_m)))
-vuint64m1_t vredmaxu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u64m2_u64m1)))
-vuint64m1_t vredmaxu(vuint64m1_t op0, vuint64m2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u64m2_u64m1_m)))
-vuint64m1_t vredmaxu(vbool32_t op0, vuint64m1_t op1, vuint64m2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u64m4_u64m1)))
-vuint64m1_t vredmaxu(vuint64m1_t op0, vuint64m4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u64m4_u64m1_m)))
-vuint64m1_t vredmaxu(vbool16_t op0, vuint64m1_t op1, vuint64m4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u64m8_u64m1)))
-vuint64m1_t vredmaxu(vuint64m1_t op0, vuint64m8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u64m8_u64m1_m)))
-vuint64m1_t vredmaxu(vbool8_t op0, vuint64m1_t op1, vuint64m8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8m1_i8m1)))
-vint8m1_t vredmax(vint8m1_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8m1_i8m1_m)))
-vint8m1_t vredmax(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8m2_i8m1)))
-vint8m1_t vredmax(vint8m1_t op0, vint8m2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8m2_i8m1_m)))
-vint8m1_t vredmax(vbool4_t op0, vint8m1_t op1, vint8m2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8m4_i8m1)))
-vint8m1_t vredmax(vint8m1_t op0, vint8m4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8m4_i8m1_m)))
-vint8m1_t vredmax(vbool2_t op0, vint8m1_t op1, vint8m4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8m8_i8m1)))
-vint8m1_t vredmax(vint8m1_t op0, vint8m8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8m8_i8m1_m)))
-vint8m1_t vredmax(vbool1_t op0, vint8m1_t op1, vint8m8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8mf2_i8m1)))
-vint8m1_t vredmax(vint8m1_t op0, vint8mf2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8mf2_i8m1_m)))
-vint8m1_t vredmax(vbool16_t op0, vint8m1_t op1, vint8mf2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8mf4_i8m1)))
-vint8m1_t vredmax(vint8m1_t op0, vint8mf4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8mf4_i8m1_m)))
-vint8m1_t vredmax(vbool32_t op0, vint8m1_t op1, vint8mf4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8mf8_i8m1)))
-vint8m1_t vredmax(vint8m1_t op0, vint8mf8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8mf8_i8m1_m)))
-vint8m1_t vredmax(vbool64_t op0, vint8m1_t op1, vint8mf8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16m1_i16m1)))
-vint16m1_t vredmax(vint16m1_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16m1_i16m1_m)))
-vint16m1_t vredmax(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16m2_i16m1)))
-vint16m1_t vredmax(vint16m1_t op0, vint16m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16m2_i16m1_m)))
-vint16m1_t vredmax(vbool8_t op0, vint16m1_t op1, vint16m2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16m4_i16m1)))
-vint16m1_t vredmax(vint16m1_t op0, vint16m4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16m4_i16m1_m)))
-vint16m1_t vredmax(vbool4_t op0, vint16m1_t op1, vint16m4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16m8_i16m1)))
-vint16m1_t vredmax(vint16m1_t op0, vint16m8_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16m8_i16m1_m)))
-vint16m1_t vredmax(vbool2_t op0, vint16m1_t op1, vint16m8_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16mf2_i16m1)))
-vint16m1_t vredmax(vint16m1_t op0, vint16mf2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16mf2_i16m1_m)))
-vint16m1_t vredmax(vbool32_t op0, vint16m1_t op1, vint16mf2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16mf4_i16m1)))
-vint16m1_t vredmax(vint16m1_t op0, vint16mf4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16mf4_i16m1_m)))
-vint16m1_t vredmax(vbool64_t op0, vint16m1_t op1, vint16mf4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i32m1_i32m1)))
-vint32m1_t vredmax(vint32m1_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i32m1_i32m1_m)))
-vint32m1_t vredmax(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i32m2_i32m1)))
-vint32m1_t vredmax(vint32m1_t op0, vint32m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i32m2_i32m1_m)))
-vint32m1_t vredmax(vbool16_t op0, vint32m1_t op1, vint32m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i32m4_i32m1)))
-vint32m1_t vredmax(vint32m1_t op0, vint32m4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i32m4_i32m1_m)))
-vint32m1_t vredmax(vbool8_t op0, vint32m1_t op1, vint32m4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i32m8_i32m1)))
-vint32m1_t vredmax(vint32m1_t op0, vint32m8_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i32m8_i32m1_m)))
-vint32m1_t vredmax(vbool4_t op0, vint32m1_t op1, vint32m8_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i32mf2_i32m1)))
-vint32m1_t vredmax(vint32m1_t op0, vint32mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i32mf2_i32m1_m)))
-vint32m1_t vredmax(vbool64_t op0, vint32m1_t op1, vint32mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i64m1_i64m1)))
-vint64m1_t vredmax(vint64m1_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i64m1_i64m1_m)))
-vint64m1_t vredmax(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i64m2_i64m1)))
-vint64m1_t vredmax(vint64m1_t op0, vint64m2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i64m2_i64m1_m)))
-vint64m1_t vredmax(vbool32_t op0, vint64m1_t op1, vint64m2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i64m4_i64m1)))
-vint64m1_t vredmax(vint64m1_t op0, vint64m4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i64m4_i64m1_m)))
-vint64m1_t vredmax(vbool16_t op0, vint64m1_t op1, vint64m4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i64m8_i64m1)))
-vint64m1_t vredmax(vint64m1_t op0, vint64m8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i64m8_i64m1_m)))
-vint64m1_t vredmax(vbool8_t op0, vint64m1_t op1, vint64m8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8m1_u8m1)))
-vuint8m1_t vredminu(vuint8m1_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8m1_u8m1_m)))
-vuint8m1_t vredminu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8m2_u8m1)))
-vuint8m1_t vredminu(vuint8m1_t op0, vuint8m2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8m2_u8m1_m)))
-vuint8m1_t vredminu(vbool4_t op0, vuint8m1_t op1, vuint8m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8m4_u8m1)))
-vuint8m1_t vredminu(vuint8m1_t op0, vuint8m4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8m4_u8m1_m)))
-vuint8m1_t vredminu(vbool2_t op0, vuint8m1_t op1, vuint8m4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8m8_u8m1)))
-vuint8m1_t vredminu(vuint8m1_t op0, vuint8m8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8m8_u8m1_m)))
-vuint8m1_t vredminu(vbool1_t op0, vuint8m1_t op1, vuint8m8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8mf2_u8m1)))
-vuint8m1_t vredminu(vuint8m1_t op0, vuint8mf2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8mf2_u8m1_m)))
-vuint8m1_t vredminu(vbool16_t op0, vuint8m1_t op1, vuint8mf2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8mf4_u8m1)))
-vuint8m1_t vredminu(vuint8m1_t op0, vuint8mf4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8mf4_u8m1_m)))
-vuint8m1_t vredminu(vbool32_t op0, vuint8m1_t op1, vuint8mf4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8mf8_u8m1)))
-vuint8m1_t vredminu(vuint8m1_t op0, vuint8mf8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8mf8_u8m1_m)))
-vuint8m1_t vredminu(vbool64_t op0, vuint8m1_t op1, vuint8mf8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16m1_u16m1)))
-vuint16m1_t vredminu(vuint16m1_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16m1_u16m1_m)))
-vuint16m1_t vredminu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16m2_u16m1)))
-vuint16m1_t vredminu(vuint16m1_t op0, vuint16m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16m2_u16m1_m)))
-vuint16m1_t vredminu(vbool8_t op0, vuint16m1_t op1, vuint16m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16m4_u16m1)))
-vuint16m1_t vredminu(vuint16m1_t op0, vuint16m4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16m4_u16m1_m)))
-vuint16m1_t vredminu(vbool4_t op0, vuint16m1_t op1, vuint16m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16m8_u16m1)))
-vuint16m1_t vredminu(vuint16m1_t op0, vuint16m8_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16m8_u16m1_m)))
-vuint16m1_t vredminu(vbool2_t op0, vuint16m1_t op1, vuint16m8_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16mf2_u16m1)))
-vuint16m1_t vredminu(vuint16m1_t op0, vuint16mf2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16mf2_u16m1_m)))
-vuint16m1_t vredminu(vbool32_t op0, vuint16m1_t op1, vuint16mf2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16mf4_u16m1)))
-vuint16m1_t vredminu(vuint16m1_t op0, vuint16mf4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16mf4_u16m1_m)))
-vuint16m1_t vredminu(vbool64_t op0, vuint16m1_t op1, vuint16mf4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u32m1_u32m1)))
-vuint32m1_t vredminu(vuint32m1_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u32m1_u32m1_m)))
-vuint32m1_t vredminu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u32m2_u32m1)))
-vuint32m1_t vredminu(vuint32m1_t op0, vuint32m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u32m2_u32m1_m)))
-vuint32m1_t vredminu(vbool16_t op0, vuint32m1_t op1, vuint32m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u32m4_u32m1)))
-vuint32m1_t vredminu(vuint32m1_t op0, vuint32m4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u32m4_u32m1_m)))
-vuint32m1_t vredminu(vbool8_t op0, vuint32m1_t op1, vuint32m4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u32m8_u32m1)))
-vuint32m1_t vredminu(vuint32m1_t op0, vuint32m8_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u32m8_u32m1_m)))
-vuint32m1_t vredminu(vbool4_t op0, vuint32m1_t op1, vuint32m8_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u32mf2_u32m1)))
-vuint32m1_t vredminu(vuint32m1_t op0, vuint32mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u32mf2_u32m1_m)))
-vuint32m1_t vredminu(vbool64_t op0, vuint32m1_t op1, vuint32mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u64m1_u64m1)))
-vuint64m1_t vredminu(vuint64m1_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u64m1_u64m1_m)))
-vuint64m1_t vredminu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u64m2_u64m1)))
-vuint64m1_t vredminu(vuint64m1_t op0, vuint64m2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u64m2_u64m1_m)))
-vuint64m1_t vredminu(vbool32_t op0, vuint64m1_t op1, vuint64m2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u64m4_u64m1)))
-vuint64m1_t vredminu(vuint64m1_t op0, vuint64m4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u64m4_u64m1_m)))
-vuint64m1_t vredminu(vbool16_t op0, vuint64m1_t op1, vuint64m4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u64m8_u64m1)))
-vuint64m1_t vredminu(vuint64m1_t op0, vuint64m8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u64m8_u64m1_m)))
-vuint64m1_t vredminu(vbool8_t op0, vuint64m1_t op1, vuint64m8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8m1_i8m1)))
-vint8m1_t vredmin(vint8m1_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8m1_i8m1_m)))
-vint8m1_t vredmin(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8m2_i8m1)))
-vint8m1_t vredmin(vint8m1_t op0, vint8m2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8m2_i8m1_m)))
-vint8m1_t vredmin(vbool4_t op0, vint8m1_t op1, vint8m2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8m4_i8m1)))
-vint8m1_t vredmin(vint8m1_t op0, vint8m4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8m4_i8m1_m)))
-vint8m1_t vredmin(vbool2_t op0, vint8m1_t op1, vint8m4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8m8_i8m1)))
-vint8m1_t vredmin(vint8m1_t op0, vint8m8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8m8_i8m1_m)))
-vint8m1_t vredmin(vbool1_t op0, vint8m1_t op1, vint8m8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8mf2_i8m1)))
-vint8m1_t vredmin(vint8m1_t op0, vint8mf2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8mf2_i8m1_m)))
-vint8m1_t vredmin(vbool16_t op0, vint8m1_t op1, vint8mf2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8mf4_i8m1)))
-vint8m1_t vredmin(vint8m1_t op0, vint8mf4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8mf4_i8m1_m)))
-vint8m1_t vredmin(vbool32_t op0, vint8m1_t op1, vint8mf4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8mf8_i8m1)))
-vint8m1_t vredmin(vint8m1_t op0, vint8mf8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8mf8_i8m1_m)))
-vint8m1_t vredmin(vbool64_t op0, vint8m1_t op1, vint8mf8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16m1_i16m1)))
-vint16m1_t vredmin(vint16m1_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16m1_i16m1_m)))
-vint16m1_t vredmin(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16m2_i16m1)))
-vint16m1_t vredmin(vint16m1_t op0, vint16m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16m2_i16m1_m)))
-vint16m1_t vredmin(vbool8_t op0, vint16m1_t op1, vint16m2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16m4_i16m1)))
-vint16m1_t vredmin(vint16m1_t op0, vint16m4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16m4_i16m1_m)))
-vint16m1_t vredmin(vbool4_t op0, vint16m1_t op1, vint16m4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16m8_i16m1)))
-vint16m1_t vredmin(vint16m1_t op0, vint16m8_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16m8_i16m1_m)))
-vint16m1_t vredmin(vbool2_t op0, vint16m1_t op1, vint16m8_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16mf2_i16m1)))
-vint16m1_t vredmin(vint16m1_t op0, vint16mf2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16mf2_i16m1_m)))
-vint16m1_t vredmin(vbool32_t op0, vint16m1_t op1, vint16mf2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16mf4_i16m1)))
-vint16m1_t vredmin(vint16m1_t op0, vint16mf4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16mf4_i16m1_m)))
-vint16m1_t vredmin(vbool64_t op0, vint16m1_t op1, vint16mf4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i32m1_i32m1)))
-vint32m1_t vredmin(vint32m1_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i32m1_i32m1_m)))
-vint32m1_t vredmin(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i32m2_i32m1)))
-vint32m1_t vredmin(vint32m1_t op0, vint32m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i32m2_i32m1_m)))
-vint32m1_t vredmin(vbool16_t op0, vint32m1_t op1, vint32m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i32m4_i32m1)))
-vint32m1_t vredmin(vint32m1_t op0, vint32m4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i32m4_i32m1_m)))
-vint32m1_t vredmin(vbool8_t op0, vint32m1_t op1, vint32m4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i32m8_i32m1)))
-vint32m1_t vredmin(vint32m1_t op0, vint32m8_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i32m8_i32m1_m)))
-vint32m1_t vredmin(vbool4_t op0, vint32m1_t op1, vint32m8_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i32mf2_i32m1)))
-vint32m1_t vredmin(vint32m1_t op0, vint32mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i32mf2_i32m1_m)))
-vint32m1_t vredmin(vbool64_t op0, vint32m1_t op1, vint32mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i64m1_i64m1)))
-vint64m1_t vredmin(vint64m1_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i64m1_i64m1_m)))
-vint64m1_t vredmin(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i64m2_i64m1)))
-vint64m1_t vredmin(vint64m1_t op0, vint64m2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i64m2_i64m1_m)))
-vint64m1_t vredmin(vbool32_t op0, vint64m1_t op1, vint64m2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i64m4_i64m1)))
-vint64m1_t vredmin(vint64m1_t op0, vint64m4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i64m4_i64m1_m)))
-vint64m1_t vredmin(vbool16_t op0, vint64m1_t op1, vint64m4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i64m8_i64m1)))
-vint64m1_t vredmin(vint64m1_t op0, vint64m8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i64m8_i64m1_m)))
-vint64m1_t vredmin(vbool8_t op0, vint64m1_t op1, vint64m8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8m1_i8m1)))
-vint8m1_t vredand(vint8m1_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8m1_i8m1_m)))
-vint8m1_t vredand(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8m2_i8m1)))
-vint8m1_t vredand(vint8m1_t op0, vint8m2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8m2_i8m1_m)))
-vint8m1_t vredand(vbool4_t op0, vint8m1_t op1, vint8m2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8m4_i8m1)))
-vint8m1_t vredand(vint8m1_t op0, vint8m4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8m4_i8m1_m)))
-vint8m1_t vredand(vbool2_t op0, vint8m1_t op1, vint8m4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8m8_i8m1)))
-vint8m1_t vredand(vint8m1_t op0, vint8m8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8m8_i8m1_m)))
-vint8m1_t vredand(vbool1_t op0, vint8m1_t op1, vint8m8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8mf2_i8m1)))
-vint8m1_t vredand(vint8m1_t op0, vint8mf2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8mf2_i8m1_m)))
-vint8m1_t vredand(vbool16_t op0, vint8m1_t op1, vint8mf2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8mf4_i8m1)))
-vint8m1_t vredand(vint8m1_t op0, vint8mf4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8mf4_i8m1_m)))
-vint8m1_t vredand(vbool32_t op0, vint8m1_t op1, vint8mf4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8mf8_i8m1)))
-vint8m1_t vredand(vint8m1_t op0, vint8mf8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8mf8_i8m1_m)))
-vint8m1_t vredand(vbool64_t op0, vint8m1_t op1, vint8mf8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16m1_i16m1)))
-vint16m1_t vredand(vint16m1_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16m1_i16m1_m)))
-vint16m1_t vredand(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16m2_i16m1)))
-vint16m1_t vredand(vint16m1_t op0, vint16m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16m2_i16m1_m)))
-vint16m1_t vredand(vbool8_t op0, vint16m1_t op1, vint16m2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16m4_i16m1)))
-vint16m1_t vredand(vint16m1_t op0, vint16m4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16m4_i16m1_m)))
-vint16m1_t vredand(vbool4_t op0, vint16m1_t op1, vint16m4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16m8_i16m1)))
-vint16m1_t vredand(vint16m1_t op0, vint16m8_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16m8_i16m1_m)))
-vint16m1_t vredand(vbool2_t op0, vint16m1_t op1, vint16m8_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16mf2_i16m1)))
-vint16m1_t vredand(vint16m1_t op0, vint16mf2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16mf2_i16m1_m)))
-vint16m1_t vredand(vbool32_t op0, vint16m1_t op1, vint16mf2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16mf4_i16m1)))
-vint16m1_t vredand(vint16m1_t op0, vint16mf4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16mf4_i16m1_m)))
-vint16m1_t vredand(vbool64_t op0, vint16m1_t op1, vint16mf4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i32m1_i32m1)))
-vint32m1_t vredand(vint32m1_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i32m1_i32m1_m)))
-vint32m1_t vredand(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i32m2_i32m1)))
-vint32m1_t vredand(vint32m1_t op0, vint32m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i32m2_i32m1_m)))
-vint32m1_t vredand(vbool16_t op0, vint32m1_t op1, vint32m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i32m4_i32m1)))
-vint32m1_t vredand(vint32m1_t op0, vint32m4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i32m4_i32m1_m)))
-vint32m1_t vredand(vbool8_t op0, vint32m1_t op1, vint32m4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i32m8_i32m1)))
-vint32m1_t vredand(vint32m1_t op0, vint32m8_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i32m8_i32m1_m)))
-vint32m1_t vredand(vbool4_t op0, vint32m1_t op1, vint32m8_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i32mf2_i32m1)))
-vint32m1_t vredand(vint32m1_t op0, vint32mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i32mf2_i32m1_m)))
-vint32m1_t vredand(vbool64_t op0, vint32m1_t op1, vint32mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i64m1_i64m1)))
-vint64m1_t vredand(vint64m1_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i64m1_i64m1_m)))
-vint64m1_t vredand(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i64m2_i64m1)))
-vint64m1_t vredand(vint64m1_t op0, vint64m2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i64m2_i64m1_m)))
-vint64m1_t vredand(vbool32_t op0, vint64m1_t op1, vint64m2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i64m4_i64m1)))
-vint64m1_t vredand(vint64m1_t op0, vint64m4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i64m4_i64m1_m)))
-vint64m1_t vredand(vbool16_t op0, vint64m1_t op1, vint64m4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i64m8_i64m1)))
-vint64m1_t vredand(vint64m1_t op0, vint64m8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i64m8_i64m1_m)))
-vint64m1_t vredand(vbool8_t op0, vint64m1_t op1, vint64m8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8m1_u8m1)))
-vuint8m1_t vredand(vuint8m1_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8m1_u8m1_m)))
-vuint8m1_t vredand(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8m2_u8m1)))
-vuint8m1_t vredand(vuint8m1_t op0, vuint8m2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8m2_u8m1_m)))
-vuint8m1_t vredand(vbool4_t op0, vuint8m1_t op1, vuint8m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8m4_u8m1)))
-vuint8m1_t vredand(vuint8m1_t op0, vuint8m4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8m4_u8m1_m)))
-vuint8m1_t vredand(vbool2_t op0, vuint8m1_t op1, vuint8m4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8m8_u8m1)))
-vuint8m1_t vredand(vuint8m1_t op0, vuint8m8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8m8_u8m1_m)))
-vuint8m1_t vredand(vbool1_t op0, vuint8m1_t op1, vuint8m8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8mf2_u8m1)))
-vuint8m1_t vredand(vuint8m1_t op0, vuint8mf2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8mf2_u8m1_m)))
-vuint8m1_t vredand(vbool16_t op0, vuint8m1_t op1, vuint8mf2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8mf4_u8m1)))
-vuint8m1_t vredand(vuint8m1_t op0, vuint8mf4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8mf4_u8m1_m)))
-vuint8m1_t vredand(vbool32_t op0, vuint8m1_t op1, vuint8mf4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8mf8_u8m1)))
-vuint8m1_t vredand(vuint8m1_t op0, vuint8mf8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8mf8_u8m1_m)))
-vuint8m1_t vredand(vbool64_t op0, vuint8m1_t op1, vuint8mf8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16m1_u16m1)))
-vuint16m1_t vredand(vuint16m1_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16m1_u16m1_m)))
-vuint16m1_t vredand(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16m2_u16m1)))
-vuint16m1_t vredand(vuint16m1_t op0, vuint16m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16m2_u16m1_m)))
-vuint16m1_t vredand(vbool8_t op0, vuint16m1_t op1, vuint16m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16m4_u16m1)))
-vuint16m1_t vredand(vuint16m1_t op0, vuint16m4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16m4_u16m1_m)))
-vuint16m1_t vredand(vbool4_t op0, vuint16m1_t op1, vuint16m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16m8_u16m1)))
-vuint16m1_t vredand(vuint16m1_t op0, vuint16m8_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16m8_u16m1_m)))
-vuint16m1_t vredand(vbool2_t op0, vuint16m1_t op1, vuint16m8_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16mf2_u16m1)))
-vuint16m1_t vredand(vuint16m1_t op0, vuint16mf2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16mf2_u16m1_m)))
-vuint16m1_t vredand(vbool32_t op0, vuint16m1_t op1, vuint16mf2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16mf4_u16m1)))
-vuint16m1_t vredand(vuint16m1_t op0, vuint16mf4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16mf4_u16m1_m)))
-vuint16m1_t vredand(vbool64_t op0, vuint16m1_t op1, vuint16mf4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u32m1_u32m1)))
-vuint32m1_t vredand(vuint32m1_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u32m1_u32m1_m)))
-vuint32m1_t vredand(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u32m2_u32m1)))
-vuint32m1_t vredand(vuint32m1_t op0, vuint32m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u32m2_u32m1_m)))
-vuint32m1_t vredand(vbool16_t op0, vuint32m1_t op1, vuint32m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u32m4_u32m1)))
-vuint32m1_t vredand(vuint32m1_t op0, vuint32m4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u32m4_u32m1_m)))
-vuint32m1_t vredand(vbool8_t op0, vuint32m1_t op1, vuint32m4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u32m8_u32m1)))
-vuint32m1_t vredand(vuint32m1_t op0, vuint32m8_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u32m8_u32m1_m)))
-vuint32m1_t vredand(vbool4_t op0, vuint32m1_t op1, vuint32m8_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u32mf2_u32m1)))
-vuint32m1_t vredand(vuint32m1_t op0, vuint32mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u32mf2_u32m1_m)))
-vuint32m1_t vredand(vbool64_t op0, vuint32m1_t op1, vuint32mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u64m1_u64m1)))
-vuint64m1_t vredand(vuint64m1_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u64m1_u64m1_m)))
-vuint64m1_t vredand(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u64m2_u64m1)))
-vuint64m1_t vredand(vuint64m1_t op0, vuint64m2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u64m2_u64m1_m)))
-vuint64m1_t vredand(vbool32_t op0, vuint64m1_t op1, vuint64m2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u64m4_u64m1)))
-vuint64m1_t vredand(vuint64m1_t op0, vuint64m4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u64m4_u64m1_m)))
-vuint64m1_t vredand(vbool16_t op0, vuint64m1_t op1, vuint64m4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u64m8_u64m1)))
-vuint64m1_t vredand(vuint64m1_t op0, vuint64m8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u64m8_u64m1_m)))
-vuint64m1_t vredand(vbool8_t op0, vuint64m1_t op1, vuint64m8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u64m1)))
-void vsuxei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u64m1_m)))
-void vsuxei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u64m2)))
-void vsuxei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u64m2_m)))
-void vsuxei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u64m4)))
-void vsuxei64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u64m4_m)))
-void vsuxei64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u64m8)))
-void vsuxei64(uint64_t * op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u64m8_m)))
-void vsuxei64(vbool8_t op0, uint64_t * op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8m1_i8m1)))
-vint8m1_t vredor(vint8m1_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8m1_i8m1_m)))
-vint8m1_t vredor(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8m2_i8m1)))
-vint8m1_t vredor(vint8m1_t op0, vint8m2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8m2_i8m1_m)))
-vint8m1_t vredor(vbool4_t op0, vint8m1_t op1, vint8m2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8m4_i8m1)))
-vint8m1_t vredor(vint8m1_t op0, vint8m4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8m4_i8m1_m)))
-vint8m1_t vredor(vbool2_t op0, vint8m1_t op1, vint8m4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8m8_i8m1)))
-vint8m1_t vredor(vint8m1_t op0, vint8m8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8m8_i8m1_m)))
-vint8m1_t vredor(vbool1_t op0, vint8m1_t op1, vint8m8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8mf2_i8m1)))
-vint8m1_t vredor(vint8m1_t op0, vint8mf2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8mf2_i8m1_m)))
-vint8m1_t vredor(vbool16_t op0, vint8m1_t op1, vint8mf2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8mf4_i8m1)))
-vint8m1_t vredor(vint8m1_t op0, vint8mf4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8mf4_i8m1_m)))
-vint8m1_t vredor(vbool32_t op0, vint8m1_t op1, vint8mf4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8mf8_i8m1)))
-vint8m1_t vredor(vint8m1_t op0, vint8mf8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8mf8_i8m1_m)))
-vint8m1_t vredor(vbool64_t op0, vint8m1_t op1, vint8mf8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16m1_i16m1)))
-vint16m1_t vredor(vint16m1_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16m1_i16m1_m)))
-vint16m1_t vredor(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16m2_i16m1)))
-vint16m1_t vredor(vint16m1_t op0, vint16m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16m2_i16m1_m)))
-vint16m1_t vredor(vbool8_t op0, vint16m1_t op1, vint16m2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16m4_i16m1)))
-vint16m1_t vredor(vint16m1_t op0, vint16m4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16m4_i16m1_m)))
-vint16m1_t vredor(vbool4_t op0, vint16m1_t op1, vint16m4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16m8_i16m1)))
-vint16m1_t vredor(vint16m1_t op0, vint16m8_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16m8_i16m1_m)))
-vint16m1_t vredor(vbool2_t op0, vint16m1_t op1, vint16m8_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16mf2_i16m1)))
-vint16m1_t vredor(vint16m1_t op0, vint16mf2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16mf2_i16m1_m)))
-vint16m1_t vredor(vbool32_t op0, vint16m1_t op1, vint16mf2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16mf4_i16m1)))
-vint16m1_t vredor(vint16m1_t op0, vint16mf4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16mf4_i16m1_m)))
-vint16m1_t vredor(vbool64_t op0, vint16m1_t op1, vint16mf4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i32m1_i32m1)))
-vint32m1_t vredor(vint32m1_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i32m1_i32m1_m)))
-vint32m1_t vredor(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i32m2_i32m1)))
-vint32m1_t vredor(vint32m1_t op0, vint32m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i32m2_i32m1_m)))
-vint32m1_t vredor(vbool16_t op0, vint32m1_t op1, vint32m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i32m4_i32m1)))
-vint32m1_t vredor(vint32m1_t op0, vint32m4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i32m4_i32m1_m)))
-vint32m1_t vredor(vbool8_t op0, vint32m1_t op1, vint32m4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i32m8_i32m1)))
-vint32m1_t vredor(vint32m1_t op0, vint32m8_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i32m8_i32m1_m)))
-vint32m1_t vredor(vbool4_t op0, vint32m1_t op1, vint32m8_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i32mf2_i32m1)))
-vint32m1_t vredor(vint32m1_t op0, vint32mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i32mf2_i32m1_m)))
-vint32m1_t vredor(vbool64_t op0, vint32m1_t op1, vint32mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i64m1_i64m1)))
-vint64m1_t vredor(vint64m1_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i64m1_i64m1_m)))
-vint64m1_t vredor(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i64m2_i64m1)))
-vint64m1_t vredor(vint64m1_t op0, vint64m2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i64m2_i64m1_m)))
-vint64m1_t vredor(vbool32_t op0, vint64m1_t op1, vint64m2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i64m4_i64m1)))
-vint64m1_t vredor(vint64m1_t op0, vint64m4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i64m4_i64m1_m)))
-vint64m1_t vredor(vbool16_t op0, vint64m1_t op1, vint64m4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i64m8_i64m1)))
-vint64m1_t vredor(vint64m1_t op0, vint64m8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i64m8_i64m1_m)))
-vint64m1_t vredor(vbool8_t op0, vint64m1_t op1, vint64m8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8m1_u8m1)))
-vuint8m1_t vredor(vuint8m1_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8m1_u8m1_m)))
-vuint8m1_t vredor(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8m2_u8m1)))
-vuint8m1_t vredor(vuint8m1_t op0, vuint8m2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8m2_u8m1_m)))
-vuint8m1_t vredor(vbool4_t op0, vuint8m1_t op1, vuint8m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8m4_u8m1)))
-vuint8m1_t vredor(vuint8m1_t op0, vuint8m4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8m4_u8m1_m)))
-vuint8m1_t vredor(vbool2_t op0, vuint8m1_t op1, vuint8m4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8m8_u8m1)))
-vuint8m1_t vredor(vuint8m1_t op0, vuint8m8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8m8_u8m1_m)))
-vuint8m1_t vredor(vbool1_t op0, vuint8m1_t op1, vuint8m8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8mf2_u8m1)))
-vuint8m1_t vredor(vuint8m1_t op0, vuint8mf2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8mf2_u8m1_m)))
-vuint8m1_t vredor(vbool16_t op0, vuint8m1_t op1, vuint8mf2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8mf4_u8m1)))
-vuint8m1_t vredor(vuint8m1_t op0, vuint8mf4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8mf4_u8m1_m)))
-vuint8m1_t vredor(vbool32_t op0, vuint8m1_t op1, vuint8mf4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8mf8_u8m1)))
-vuint8m1_t vredor(vuint8m1_t op0, vuint8mf8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8mf8_u8m1_m)))
-vuint8m1_t vredor(vbool64_t op0, vuint8m1_t op1, vuint8mf8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16m1_u16m1)))
-vuint16m1_t vredor(vuint16m1_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16m1_u16m1_m)))
-vuint16m1_t vredor(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16m2_u16m1)))
-vuint16m1_t vredor(vuint16m1_t op0, vuint16m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16m2_u16m1_m)))
-vuint16m1_t vredor(vbool8_t op0, vuint16m1_t op1, vuint16m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16m4_u16m1)))
-vuint16m1_t vredor(vuint16m1_t op0, vuint16m4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16m4_u16m1_m)))
-vuint16m1_t vredor(vbool4_t op0, vuint16m1_t op1, vuint16m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16m8_u16m1)))
-vuint16m1_t vredor(vuint16m1_t op0, vuint16m8_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16m8_u16m1_m)))
-vuint16m1_t vredor(vbool2_t op0, vuint16m1_t op1, vuint16m8_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16mf2_u16m1)))
-vuint16m1_t vredor(vuint16m1_t op0, vuint16mf2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16mf2_u16m1_m)))
-vuint16m1_t vredor(vbool32_t op0, vuint16m1_t op1, vuint16mf2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16mf4_u16m1)))
-vuint16m1_t vredor(vuint16m1_t op0, vuint16mf4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16mf4_u16m1_m)))
-vuint16m1_t vredor(vbool64_t op0, vuint16m1_t op1, vuint16mf4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u32m1_u32m1)))
-vuint32m1_t vredor(vuint32m1_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u32m1_u32m1_m)))
-vuint32m1_t vredor(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u32m2_u32m1)))
-vuint32m1_t vredor(vuint32m1_t op0, vuint32m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u32m2_u32m1_m)))
-vuint32m1_t vredor(vbool16_t op0, vuint32m1_t op1, vuint32m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u32m4_u32m1)))
-vuint32m1_t vredor(vuint32m1_t op0, vuint32m4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u32m4_u32m1_m)))
-vuint32m1_t vredor(vbool8_t op0, vuint32m1_t op1, vuint32m4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u32m8_u32m1)))
-vuint32m1_t vredor(vuint32m1_t op0, vuint32m8_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u32m8_u32m1_m)))
-vuint32m1_t vredor(vbool4_t op0, vuint32m1_t op1, vuint32m8_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u32mf2_u32m1)))
-vuint32m1_t vredor(vuint32m1_t op0, vuint32mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u32mf2_u32m1_m)))
-vuint32m1_t vredor(vbool64_t op0, vuint32m1_t op1, vuint32mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u64m1_u64m1)))
-vuint64m1_t vredor(vuint64m1_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u64m1_u64m1_m)))
-vuint64m1_t vredor(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u64m2_u64m1)))
-vuint64m1_t vredor(vuint64m1_t op0, vuint64m2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u64m2_u64m1_m)))
-vuint64m1_t vredor(vbool32_t op0, vuint64m1_t op1, vuint64m2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u64m4_u64m1)))
-vuint64m1_t vredor(vuint64m1_t op0, vuint64m4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u64m4_u64m1_m)))
-vuint64m1_t vredor(vbool16_t op0, vuint64m1_t op1, vuint64m4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u64m8_u64m1)))
-vuint64m1_t vredor(vuint64m1_t op0, vuint64m8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u64m8_u64m1_m)))
-vuint64m1_t vredor(vbool8_t op0, vuint64m1_t op1, vuint64m8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8m1_i8m1)))
-vint8m1_t vredxor(vint8m1_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8m1_i8m1_m)))
-vint8m1_t vredxor(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8m2_i8m1)))
-vint8m1_t vredxor(vint8m1_t op0, vint8m2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8m2_i8m1_m)))
-vint8m1_t vredxor(vbool4_t op0, vint8m1_t op1, vint8m2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8m4_i8m1)))
-vint8m1_t vredxor(vint8m1_t op0, vint8m4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8m4_i8m1_m)))
-vint8m1_t vredxor(vbool2_t op0, vint8m1_t op1, vint8m4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8m8_i8m1)))
-vint8m1_t vredxor(vint8m1_t op0, vint8m8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8m8_i8m1_m)))
-vint8m1_t vredxor(vbool1_t op0, vint8m1_t op1, vint8m8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8mf2_i8m1)))
-vint8m1_t vredxor(vint8m1_t op0, vint8mf2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8mf2_i8m1_m)))
-vint8m1_t vredxor(vbool16_t op0, vint8m1_t op1, vint8mf2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8mf4_i8m1)))
-vint8m1_t vredxor(vint8m1_t op0, vint8mf4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8mf4_i8m1_m)))
-vint8m1_t vredxor(vbool32_t op0, vint8m1_t op1, vint8mf4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8mf8_i8m1)))
-vint8m1_t vredxor(vint8m1_t op0, vint8mf8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8mf8_i8m1_m)))
-vint8m1_t vredxor(vbool64_t op0, vint8m1_t op1, vint8mf8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16m1_i16m1)))
-vint16m1_t vredxor(vint16m1_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16m1_i16m1_m)))
-vint16m1_t vredxor(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16m2_i16m1)))
-vint16m1_t vredxor(vint16m1_t op0, vint16m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16m2_i16m1_m)))
-vint16m1_t vredxor(vbool8_t op0, vint16m1_t op1, vint16m2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16m4_i16m1)))
-vint16m1_t vredxor(vint16m1_t op0, vint16m4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16m4_i16m1_m)))
-vint16m1_t vredxor(vbool4_t op0, vint16m1_t op1, vint16m4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16m8_i16m1)))
-vint16m1_t vredxor(vint16m1_t op0, vint16m8_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16m8_i16m1_m)))
-vint16m1_t vredxor(vbool2_t op0, vint16m1_t op1, vint16m8_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16mf2_i16m1)))
-vint16m1_t vredxor(vint16m1_t op0, vint16mf2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16mf2_i16m1_m)))
-vint16m1_t vredxor(vbool32_t op0, vint16m1_t op1, vint16mf2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16mf4_i16m1)))
-vint16m1_t vredxor(vint16m1_t op0, vint16mf4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16mf4_i16m1_m)))
-vint16m1_t vredxor(vbool64_t op0, vint16m1_t op1, vint16mf4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i32m1_i32m1)))
-vint32m1_t vredxor(vint32m1_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i32m1_i32m1_m)))
-vint32m1_t vredxor(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i32m2_i32m1)))
-vint32m1_t vredxor(vint32m1_t op0, vint32m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i32m2_i32m1_m)))
-vint32m1_t vredxor(vbool16_t op0, vint32m1_t op1, vint32m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i32m4_i32m1)))
-vint32m1_t vredxor(vint32m1_t op0, vint32m4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i32m4_i32m1_m)))
-vint32m1_t vredxor(vbool8_t op0, vint32m1_t op1, vint32m4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i32m8_i32m1)))
-vint32m1_t vredxor(vint32m1_t op0, vint32m8_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i32m8_i32m1_m)))
-vint32m1_t vredxor(vbool4_t op0, vint32m1_t op1, vint32m8_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i32mf2_i32m1)))
-vint32m1_t vredxor(vint32m1_t op0, vint32mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i32mf2_i32m1_m)))
-vint32m1_t vredxor(vbool64_t op0, vint32m1_t op1, vint32mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i64m1_i64m1)))
-vint64m1_t vredxor(vint64m1_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i64m1_i64m1_m)))
-vint64m1_t vredxor(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i64m2_i64m1)))
-vint64m1_t vredxor(vint64m1_t op0, vint64m2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i64m2_i64m1_m)))
-vint64m1_t vredxor(vbool32_t op0, vint64m1_t op1, vint64m2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i64m4_i64m1)))
-vint64m1_t vredxor(vint64m1_t op0, vint64m4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i64m4_i64m1_m)))
-vint64m1_t vredxor(vbool16_t op0, vint64m1_t op1, vint64m4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i64m8_i64m1)))
-vint64m1_t vredxor(vint64m1_t op0, vint64m8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i64m8_i64m1_m)))
-vint64m1_t vredxor(vbool8_t op0, vint64m1_t op1, vint64m8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8m1_u8m1)))
-vuint8m1_t vredxor(vuint8m1_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8m1_u8m1_m)))
-vuint8m1_t vredxor(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8m2_u8m1)))
-vuint8m1_t vredxor(vuint8m1_t op0, vuint8m2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8m2_u8m1_m)))
-vuint8m1_t vredxor(vbool4_t op0, vuint8m1_t op1, vuint8m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8m4_u8m1)))
-vuint8m1_t vredxor(vuint8m1_t op0, vuint8m4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8m4_u8m1_m)))
-vuint8m1_t vredxor(vbool2_t op0, vuint8m1_t op1, vuint8m4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8m8_u8m1)))
-vuint8m1_t vredxor(vuint8m1_t op0, vuint8m8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8m8_u8m1_m)))
-vuint8m1_t vredxor(vbool1_t op0, vuint8m1_t op1, vuint8m8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8mf2_u8m1)))
-vuint8m1_t vredxor(vuint8m1_t op0, vuint8mf2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8mf2_u8m1_m)))
-vuint8m1_t vredxor(vbool16_t op0, vuint8m1_t op1, vuint8mf2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8mf4_u8m1)))
-vuint8m1_t vredxor(vuint8m1_t op0, vuint8mf4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8mf4_u8m1_m)))
-vuint8m1_t vredxor(vbool32_t op0, vuint8m1_t op1, vuint8mf4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8mf8_u8m1)))
-vuint8m1_t vredxor(vuint8m1_t op0, vuint8mf8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8mf8_u8m1_m)))
-vuint8m1_t vredxor(vbool64_t op0, vuint8m1_t op1, vuint8mf8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16m1_u16m1)))
-vuint16m1_t vredxor(vuint16m1_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16m1_u16m1_m)))
-vuint16m1_t vredxor(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16m2_u16m1)))
-vuint16m1_t vredxor(vuint16m1_t op0, vuint16m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16m2_u16m1_m)))
-vuint16m1_t vredxor(vbool8_t op0, vuint16m1_t op1, vuint16m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16m4_u16m1)))
-vuint16m1_t vredxor(vuint16m1_t op0, vuint16m4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16m4_u16m1_m)))
-vuint16m1_t vredxor(vbool4_t op0, vuint16m1_t op1, vuint16m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16m8_u16m1)))
-vuint16m1_t vredxor(vuint16m1_t op0, vuint16m8_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16m8_u16m1_m)))
-vuint16m1_t vredxor(vbool2_t op0, vuint16m1_t op1, vuint16m8_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16mf2_u16m1)))
-vuint16m1_t vredxor(vuint16m1_t op0, vuint16mf2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16mf2_u16m1_m)))
-vuint16m1_t vredxor(vbool32_t op0, vuint16m1_t op1, vuint16mf2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16mf4_u16m1)))
-vuint16m1_t vredxor(vuint16m1_t op0, vuint16mf4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16mf4_u16m1_m)))
-vuint16m1_t vredxor(vbool64_t op0, vuint16m1_t op1, vuint16mf4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u32m1_u32m1)))
-vuint32m1_t vredxor(vuint32m1_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u32m1_u32m1_m)))
-vuint32m1_t vredxor(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u32m2_u32m1)))
-vuint32m1_t vredxor(vuint32m1_t op0, vuint32m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u32m2_u32m1_m)))
-vuint32m1_t vredxor(vbool16_t op0, vuint32m1_t op1, vuint32m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u32m4_u32m1)))
-vuint32m1_t vredxor(vuint32m1_t op0, vuint32m4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u32m4_u32m1_m)))
-vuint32m1_t vredxor(vbool8_t op0, vuint32m1_t op1, vuint32m4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u32m8_u32m1)))
-vuint32m1_t vredxor(vuint32m1_t op0, vuint32m8_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u32m8_u32m1_m)))
-vuint32m1_t vredxor(vbool4_t op0, vuint32m1_t op1, vuint32m8_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u32mf2_u32m1)))
-vuint32m1_t vredxor(vuint32m1_t op0, vuint32mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u32mf2_u32m1_m)))
-vuint32m1_t vredxor(vbool64_t op0, vuint32m1_t op1, vuint32mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u64m1_u64m1)))
-vuint64m1_t vredxor(vuint64m1_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u64m1_u64m1_m)))
-vuint64m1_t vredxor(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u64m2_u64m1)))
-vuint64m1_t vredxor(vuint64m1_t op0, vuint64m2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u64m2_u64m1_m)))
-vuint64m1_t vredxor(vbool32_t op0, vuint64m1_t op1, vuint64m2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u64m4_u64m1)))
-vuint64m1_t vredxor(vuint64m1_t op0, vuint64m4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u64m4_u64m1_m)))
-vuint64m1_t vredxor(vbool16_t op0, vuint64m1_t op1, vuint64m4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u64m8_u64m1)))
-vuint64m1_t vredxor(vuint64m1_t op0, vuint64m8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u64m8_u64m1_m)))
-vuint64m1_t vredxor(vbool8_t op0, vuint64m1_t op1, vuint64m8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8m1_i16m1)))
-vint16m1_t vwredsum(vint16m1_t op0, vint8m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8m1_i16m1_m)))
-vint16m1_t vwredsum(vbool8_t op0, vint16m1_t op1, vint8m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8m2_i16m1)))
-vint16m1_t vwredsum(vint16m1_t op0, vint8m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8m2_i16m1_m)))
-vint16m1_t vwredsum(vbool4_t op0, vint16m1_t op1, vint8m2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8m4_i16m1)))
-vint16m1_t vwredsum(vint16m1_t op0, vint8m4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8m4_i16m1_m)))
-vint16m1_t vwredsum(vbool2_t op0, vint16m1_t op1, vint8m4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8m8_i16m1)))
-vint16m1_t vwredsum(vint16m1_t op0, vint8m8_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8m8_i16m1_m)))
-vint16m1_t vwredsum(vbool1_t op0, vint16m1_t op1, vint8m8_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8mf2_i16m1)))
-vint16m1_t vwredsum(vint16m1_t op0, vint8mf2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8mf2_i16m1_m)))
-vint16m1_t vwredsum(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8mf4_i16m1)))
-vint16m1_t vwredsum(vint16m1_t op0, vint8mf4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8mf4_i16m1_m)))
-vint16m1_t vwredsum(vbool32_t op0, vint16m1_t op1, vint8mf4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8mf8_i16m1)))
-vint16m1_t vwredsum(vint16m1_t op0, vint8mf8_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8mf8_i16m1_m)))
-vint16m1_t vwredsum(vbool64_t op0, vint16m1_t op1, vint8mf8_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16m1_i32m1)))
-vint32m1_t vwredsum(vint32m1_t op0, vint16m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16m1_i32m1_m)))
-vint32m1_t vwredsum(vbool16_t op0, vint32m1_t op1, vint16m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16m2_i32m1)))
-vint32m1_t vwredsum(vint32m1_t op0, vint16m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16m2_i32m1_m)))
-vint32m1_t vwredsum(vbool8_t op0, vint32m1_t op1, vint16m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16m4_i32m1)))
-vint32m1_t vwredsum(vint32m1_t op0, vint16m4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16m4_i32m1_m)))
-vint32m1_t vwredsum(vbool4_t op0, vint32m1_t op1, vint16m4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16m8_i32m1)))
-vint32m1_t vwredsum(vint32m1_t op0, vint16m8_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16m8_i32m1_m)))
-vint32m1_t vwredsum(vbool2_t op0, vint32m1_t op1, vint16m8_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16mf2_i32m1)))
-vint32m1_t vwredsum(vint32m1_t op0, vint16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16mf2_i32m1_m)))
-vint32m1_t vwredsum(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16mf4_i32m1)))
-vint32m1_t vwredsum(vint32m1_t op0, vint16mf4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16mf4_i32m1_m)))
-vint32m1_t vwredsum(vbool64_t op0, vint32m1_t op1, vint16mf4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i32m1_i64m1)))
-vint64m1_t vwredsum(vint64m1_t op0, vint32m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i32m1_i64m1_m)))
-vint64m1_t vwredsum(vbool32_t op0, vint64m1_t op1, vint32m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i32m2_i64m1)))
-vint64m1_t vwredsum(vint64m1_t op0, vint32m2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i32m2_i64m1_m)))
-vint64m1_t vwredsum(vbool16_t op0, vint64m1_t op1, vint32m2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i32m4_i64m1)))
-vint64m1_t vwredsum(vint64m1_t op0, vint32m4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i32m4_i64m1_m)))
-vint64m1_t vwredsum(vbool8_t op0, vint64m1_t op1, vint32m4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i32m8_i64m1)))
-vint64m1_t vwredsum(vint64m1_t op0, vint32m8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i32m8_i64m1_m)))
-vint64m1_t vwredsum(vbool4_t op0, vint64m1_t op1, vint32m8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i32mf2_i64m1)))
-vint64m1_t vwredsum(vint64m1_t op0, vint32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i32mf2_i64m1_m)))
-vint64m1_t vwredsum(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8m1_u16m1)))
-vuint16m1_t vwredsumu(vuint16m1_t op0, vuint8m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8m1_u16m1_m)))
-vuint16m1_t vwredsumu(vbool8_t op0, vuint16m1_t op1, vuint8m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8m2_u16m1)))
-vuint16m1_t vwredsumu(vuint16m1_t op0, vuint8m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8m2_u16m1_m)))
-vuint16m1_t vwredsumu(vbool4_t op0, vuint16m1_t op1, vuint8m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8m4_u16m1)))
-vuint16m1_t vwredsumu(vuint16m1_t op0, vuint8m4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8m4_u16m1_m)))
-vuint16m1_t vwredsumu(vbool2_t op0, vuint16m1_t op1, vuint8m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8m8_u16m1)))
-vuint16m1_t vwredsumu(vuint16m1_t op0, vuint8m8_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8m8_u16m1_m)))
-vuint16m1_t vwredsumu(vbool1_t op0, vuint16m1_t op1, vuint8m8_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8mf2_u16m1)))
-vuint16m1_t vwredsumu(vuint16m1_t op0, vuint8mf2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8mf2_u16m1_m)))
-vuint16m1_t vwredsumu(vbool16_t op0, vuint16m1_t op1, vuint8mf2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8mf4_u16m1)))
-vuint16m1_t vwredsumu(vuint16m1_t op0, vuint8mf4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8mf4_u16m1_m)))
-vuint16m1_t vwredsumu(vbool32_t op0, vuint16m1_t op1, vuint8mf4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8mf8_u16m1)))
-vuint16m1_t vwredsumu(vuint16m1_t op0, vuint8mf8_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8mf8_u16m1_m)))
-vuint16m1_t vwredsumu(vbool64_t op0, vuint16m1_t op1, vuint8mf8_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16m1_u32m1)))
-vuint32m1_t vwredsumu(vuint32m1_t op0, vuint16m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16m1_u32m1_m)))
-vuint32m1_t vwredsumu(vbool16_t op0, vuint32m1_t op1, vuint16m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16m2_u32m1)))
-vuint32m1_t vwredsumu(vuint32m1_t op0, vuint16m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16m2_u32m1_m)))
-vuint32m1_t vwredsumu(vbool8_t op0, vuint32m1_t op1, vuint16m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16m4_u32m1)))
-vuint32m1_t vwredsumu(vuint32m1_t op0, vuint16m4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16m4_u32m1_m)))
-vuint32m1_t vwredsumu(vbool4_t op0, vuint32m1_t op1, vuint16m4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16m8_u32m1)))
-vuint32m1_t vwredsumu(vuint32m1_t op0, vuint16m8_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16m8_u32m1_m)))
-vuint32m1_t vwredsumu(vbool2_t op0, vuint32m1_t op1, vuint16m8_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16mf2_u32m1)))
-vuint32m1_t vwredsumu(vuint32m1_t op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16mf2_u32m1_m)))
-vuint32m1_t vwredsumu(vbool32_t op0, vuint32m1_t op1, vuint16mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16mf4_u32m1)))
-vuint32m1_t vwredsumu(vuint32m1_t op0, vuint16mf4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16mf4_u32m1_m)))
-vuint32m1_t vwredsumu(vbool64_t op0, vuint32m1_t op1, vuint16mf4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u32m1_u64m1)))
-vuint64m1_t vwredsumu(vuint64m1_t op0, vuint32m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u32m1_u64m1_m)))
-vuint64m1_t vwredsumu(vbool32_t op0, vuint64m1_t op1, vuint32m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u32m2_u64m1)))
-vuint64m1_t vwredsumu(vuint64m1_t op0, vuint32m2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u32m2_u64m1_m)))
-vuint64m1_t vwredsumu(vbool16_t op0, vuint64m1_t op1, vuint32m2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u32m4_u64m1)))
-vuint64m1_t vwredsumu(vuint64m1_t op0, vuint32m4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u32m4_u64m1_m)))
-vuint64m1_t vwredsumu(vbool8_t op0, vuint64m1_t op1, vuint32m4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u32m8_u64m1)))
-vuint64m1_t vwredsumu(vuint64m1_t op0, vuint32m8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u32m8_u64m1_m)))
-vuint64m1_t vwredsumu(vbool4_t op0, vuint64m1_t op1, vuint32m8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u32mf2_u64m1)))
-vuint64m1_t vwredsumu(vuint64m1_t op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u32mf2_u64m1_m)))
-vuint64m1_t vwredsumu(vbool64_t op0, vuint64m1_t op1, vuint32mf2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8m1)))
-void vsuxei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8m1_m)))
-void vsuxei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8m2)))
-void vsuxei8(uint8_t * op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8m2_m)))
-void vsuxei8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8m4)))
-void vsuxei8(uint8_t * op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8m4_m)))
-void vsuxei8(vbool2_t op0, uint8_t * op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8m8)))
-void vsuxei8(uint8_t * op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8m8_m)))
-void vsuxei8(vbool1_t op0, uint8_t * op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8mf2)))
-void vsuxei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8mf2_m)))
-void vsuxei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8mf4)))
-void vsuxei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8mf4_m)))
-void vsuxei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8mf8)))
-void vsuxei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8mf8_m)))
-void vsuxei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnot_m_b8)))
-vbool8_t vmnot(vbool8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnot_m_b4)))
-vbool4_t vmnot(vbool4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnot_m_b2)))
-vbool2_t vmnot(vbool2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnot_m_b1)))
-vbool1_t vmnot(vbool1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnot_m_b16)))
-vbool16_t vmnot(vbool16_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnot_m_b32)))
-vbool32_t vmnot(vbool32_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnot_m_b64)))
-vbool64_t vmnot(vbool64_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u8m1_m)))
-vuint8m1_t viota(vbool8_t op0, vuint8m1_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u8m2_m)))
-vuint8m2_t viota(vbool4_t op0, vuint8m2_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u8m4_m)))
-vuint8m4_t viota(vbool2_t op0, vuint8m4_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u8m8_m)))
-vuint8m8_t viota(vbool1_t op0, vuint8m8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u8mf2_m)))
-vuint8mf2_t viota(vbool16_t op0, vuint8mf2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u8mf4_m)))
-vuint8mf4_t viota(vbool32_t op0, vuint8mf4_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u8mf8_m)))
-vuint8mf8_t viota(vbool64_t op0, vuint8mf8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u16m1_m)))
-vuint16m1_t viota(vbool16_t op0, vuint16m1_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u16m2_m)))
-vuint16m2_t viota(vbool8_t op0, vuint16m2_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u16m4_m)))
-vuint16m4_t viota(vbool4_t op0, vuint16m4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u16m8_m)))
-vuint16m8_t viota(vbool2_t op0, vuint16m8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u16mf2_m)))
-vuint16mf2_t viota(vbool32_t op0, vuint16mf2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u16mf4_m)))
-vuint16mf4_t viota(vbool64_t op0, vuint16mf4_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u32m1_m)))
-vuint32m1_t viota(vbool32_t op0, vuint32m1_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u32m2_m)))
-vuint32m2_t viota(vbool16_t op0, vuint32m2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u32m4_m)))
-vuint32m4_t viota(vbool8_t op0, vuint32m4_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u32m8_m)))
-vuint32m8_t viota(vbool4_t op0, vuint32m8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u32mf2_m)))
-vuint32mf2_t viota(vbool64_t op0, vuint32mf2_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u64m1_m)))
-vuint64m1_t viota(vbool64_t op0, vuint64m1_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u64m2_m)))
-vuint64m2_t viota(vbool32_t op0, vuint64m2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u64m4_m)))
-vuint64m4_t viota(vbool16_t op0, vuint64m4_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u64m8_m)))
-vuint64m8_t viota(vbool8_t op0, vuint64m8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i8m1_m)))
-vint8m1_t vid(vbool8_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i8m2_m)))
-vint8m2_t vid(vbool4_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i8m4_m)))
-vint8m4_t vid(vbool2_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i8m8_m)))
-vint8m8_t vid(vbool1_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i8mf2_m)))
-vint8mf2_t vid(vbool16_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i8mf4_m)))
-vint8mf4_t vid(vbool32_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i8mf8_m)))
-vint8mf8_t vid(vbool64_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i16m1_m)))
-vint16m1_t vid(vbool16_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i16m2_m)))
-vint16m2_t vid(vbool8_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i16m4_m)))
-vint16m4_t vid(vbool4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i16m8_m)))
-vint16m8_t vid(vbool2_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i16mf2_m)))
-vint16mf2_t vid(vbool32_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i16mf4_m)))
-vint16mf4_t vid(vbool64_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i32m1_m)))
-vint32m1_t vid(vbool32_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i32m2_m)))
-vint32m2_t vid(vbool16_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i32m4_m)))
-vint32m4_t vid(vbool8_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i32m8_m)))
-vint32m8_t vid(vbool4_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i32mf2_m)))
-vint32mf2_t vid(vbool64_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i64m1_m)))
-vint64m1_t vid(vbool64_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i64m2_m)))
-vint64m2_t vid(vbool32_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i64m4_m)))
-vint64m4_t vid(vbool16_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i64m8_m)))
-vint64m8_t vid(vbool8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u8m1_m)))
-vuint8m1_t vid(vbool8_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u8m2_m)))
-vuint8m2_t vid(vbool4_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u8m4_m)))
-vuint8m4_t vid(vbool2_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u8m8_m)))
-vuint8m8_t vid(vbool1_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u8mf2_m)))
-vuint8mf2_t vid(vbool16_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u8mf4_m)))
-vuint8mf4_t vid(vbool32_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u8mf8_m)))
-vuint8mf8_t vid(vbool64_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u16m1_m)))
-vuint16m1_t vid(vbool16_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u16m2_m)))
-vuint16m2_t vid(vbool8_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u16m4_m)))
-vuint16m4_t vid(vbool4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u16m8_m)))
-vuint16m8_t vid(vbool2_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u16mf2_m)))
-vuint16mf2_t vid(vbool32_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u16mf4_m)))
-vuint16mf4_t vid(vbool64_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u32m1_m)))
-vuint32m1_t vid(vbool32_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u32m2_m)))
-vuint32m2_t vid(vbool16_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u32m4_m)))
-vuint32m4_t vid(vbool8_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u32m8_m)))
-vuint32m8_t vid(vbool4_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u32mf2_m)))
-vuint32mf2_t vid(vbool64_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u64m1_m)))
-vuint64m1_t vid(vbool64_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u64m2_m)))
-vuint64m2_t vid(vbool32_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u64m4_m)))
-vuint64m4_t vid(vbool16_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u64m8_m)))
-vuint64m8_t vid(vbool8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i8m1_i8)))
-int8_t vmv_x(vint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i8m2_i8)))
-int8_t vmv_x(vint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i8m4_i8)))
-int8_t vmv_x(vint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i8m8_i8)))
-int8_t vmv_x(vint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i8mf2_i8)))
-int8_t vmv_x(vint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i8mf4_i8)))
-int8_t vmv_x(vint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i8mf8_i8)))
-int8_t vmv_x(vint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i16m1_i16)))
-int16_t vmv_x(vint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i16m2_i16)))
-int16_t vmv_x(vint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i16m4_i16)))
-int16_t vmv_x(vint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i16m8_i16)))
-int16_t vmv_x(vint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i16mf2_i16)))
-int16_t vmv_x(vint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i16mf4_i16)))
-int16_t vmv_x(vint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i32m1_i32)))
-int32_t vmv_x(vint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i32m2_i32)))
-int32_t vmv_x(vint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i32m4_i32)))
-int32_t vmv_x(vint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i32m8_i32)))
-int32_t vmv_x(vint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i32mf2_i32)))
-int32_t vmv_x(vint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i64m1_i64)))
-int64_t vmv_x(vint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i64m2_i64)))
-int64_t vmv_x(vint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i64m4_i64)))
-int64_t vmv_x(vint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i64m8_i64)))
-int64_t vmv_x(vint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u8m1_u8)))
-uint8_t vmv_x(vuint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u8m2_u8)))
-uint8_t vmv_x(vuint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u8m4_u8)))
-uint8_t vmv_x(vuint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u8m8_u8)))
-uint8_t vmv_x(vuint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u8mf2_u8)))
-uint8_t vmv_x(vuint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u8mf4_u8)))
-uint8_t vmv_x(vuint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u8mf8_u8)))
-uint8_t vmv_x(vuint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u16m1_u16)))
-uint16_t vmv_x(vuint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u16m2_u16)))
-uint16_t vmv_x(vuint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u16m4_u16)))
-uint16_t vmv_x(vuint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u16m8_u16)))
-uint16_t vmv_x(vuint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u16mf2_u16)))
-uint16_t vmv_x(vuint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u16mf4_u16)))
-uint16_t vmv_x(vuint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u32m1_u32)))
-uint32_t vmv_x(vuint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u32m2_u32)))
-uint32_t vmv_x(vuint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u32m4_u32)))
-uint32_t vmv_x(vuint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u32m8_u32)))
-uint32_t vmv_x(vuint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u32mf2_u32)))
-uint32_t vmv_x(vuint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u64m1_u64)))
-uint64_t vmv_x(vuint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u64m2_u64)))
-uint64_t vmv_x(vuint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u64m4_u64)))
-uint64_t vmv_x(vuint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u64m8_u64)))
-uint64_t vmv_x(vuint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i8m1)))
-vint8m1_t vmv_s(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i8m2)))
-vint8m2_t vmv_s(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i8m4)))
-vint8m4_t vmv_s(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i8m8)))
-vint8m8_t vmv_s(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i8mf2)))
-vint8mf2_t vmv_s(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i8mf4)))
-vint8mf4_t vmv_s(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i8mf8)))
-vint8mf8_t vmv_s(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i16m1)))
-vint16m1_t vmv_s(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i16m2)))
-vint16m2_t vmv_s(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i16m4)))
-vint16m4_t vmv_s(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i16m8)))
-vint16m8_t vmv_s(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i16mf2)))
-vint16mf2_t vmv_s(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i16mf4)))
-vint16mf4_t vmv_s(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i32m1)))
-vint32m1_t vmv_s(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i32m2)))
-vint32m2_t vmv_s(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i32m4)))
-vint32m4_t vmv_s(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i32m8)))
-vint32m8_t vmv_s(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i32mf2)))
-vint32mf2_t vmv_s(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i64m1)))
-vint64m1_t vmv_s(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i64m2)))
-vint64m2_t vmv_s(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i64m4)))
-vint64m4_t vmv_s(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i64m8)))
-vint64m8_t vmv_s(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u8m1)))
-vuint8m1_t vmv_s(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u8m2)))
-vuint8m2_t vmv_s(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u8m4)))
-vuint8m4_t vmv_s(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u8m8)))
-vuint8m8_t vmv_s(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u8mf2)))
-vuint8mf2_t vmv_s(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u8mf4)))
-vuint8mf4_t vmv_s(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u8mf8)))
-vuint8mf8_t vmv_s(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u16m1)))
-vuint16m1_t vmv_s(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u16m2)))
-vuint16m2_t vmv_s(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u16m4)))
-vuint16m4_t vmv_s(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u16m8)))
-vuint16m8_t vmv_s(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u16mf2)))
-vuint16mf2_t vmv_s(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u16mf4)))
-vuint16mf4_t vmv_s(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u32m1)))
-vuint32m1_t vmv_s(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u32m2)))
-vuint32m2_t vmv_s(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u32m4)))
-vuint32m4_t vmv_s(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u32m8)))
-vuint32m8_t vmv_s(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u32mf2)))
-vuint32mf2_t vmv_s(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u64m1)))
-vuint64m1_t vmv_s(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u64m2)))
-vuint64m2_t vmv_s(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u64m4)))
-vuint64m4_t vmv_s(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u64m8)))
-vuint64m8_t vmv_s(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u16m1)))
-vuint16m1_t vfmv_s(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u16m2)))
-vuint16m2_t vfmv_s(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u16m4)))
-vuint16m4_t vfmv_s(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u16m8)))
-vuint16m8_t vfmv_s(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u16mf2)))
-vuint16mf2_t vfmv_s(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u16mf4)))
-vuint16mf4_t vfmv_s(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u32m1)))
-vuint32m1_t vfmv_s(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u32m2)))
-vuint32m2_t vfmv_s(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u32m4)))
-vuint32m4_t vfmv_s(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u32m8)))
-vuint32m8_t vfmv_s(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u32mf2)))
-vuint32mf2_t vfmv_s(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u64m1)))
-vuint64m1_t vfmv_s(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u64m2)))
-vuint64m2_t vfmv_s(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u64m4)))
-vuint64m4_t vfmv_s(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u64m8)))
-vuint64m8_t vfmv_s(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8m1)))
-vint8m1_t vslideup(vint8m1_t op0, vint8m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8m1_m)))
-vint8m1_t vslideup(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8m2)))
-vint8m2_t vslideup(vint8m2_t op0, vint8m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8m2_m)))
-vint8m2_t vslideup(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8m4)))
-vint8m4_t vslideup(vint8m4_t op0, vint8m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8m4_m)))
-vint8m4_t vslideup(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8m8)))
-vint8m8_t vslideup(vint8m8_t op0, vint8m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8m8_m)))
-vint8m8_t vslideup(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8mf2)))
-vint8mf2_t vslideup(vint8mf2_t op0, vint8mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8mf2_m)))
-vint8mf2_t vslideup(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8mf4)))
-vint8mf4_t vslideup(vint8mf4_t op0, vint8mf4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8mf4_m)))
-vint8mf4_t vslideup(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8mf8)))
-vint8mf8_t vslideup(vint8mf8_t op0, vint8mf8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8mf8_m)))
-vint8mf8_t vslideup(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16m1)))
-vint16m1_t vslideup(vint16m1_t op0, vint16m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16m1_m)))
-vint16m1_t vslideup(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16m2)))
-vint16m2_t vslideup(vint16m2_t op0, vint16m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16m2_m)))
-vint16m2_t vslideup(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16m4)))
-vint16m4_t vslideup(vint16m4_t op0, vint16m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16m4_m)))
-vint16m4_t vslideup(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16m8)))
-vint16m8_t vslideup(vint16m8_t op0, vint16m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16m8_m)))
-vint16m8_t vslideup(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16mf2)))
-vint16mf2_t vslideup(vint16mf2_t op0, vint16mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16mf2_m)))
-vint16mf2_t vslideup(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16mf4)))
-vint16mf4_t vslideup(vint16mf4_t op0, vint16mf4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16mf4_m)))
-vint16mf4_t vslideup(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i32m1)))
-vint32m1_t vslideup(vint32m1_t op0, vint32m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i32m1_m)))
-vint32m1_t vslideup(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i32m2)))
-vint32m2_t vslideup(vint32m2_t op0, vint32m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i32m2_m)))
-vint32m2_t vslideup(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i32m4)))
-vint32m4_t vslideup(vint32m4_t op0, vint32m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i32m4_m)))
-vint32m4_t vslideup(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i32m8)))
-vint32m8_t vslideup(vint32m8_t op0, vint32m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i32m8_m)))
-vint32m8_t vslideup(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i32mf2)))
-vint32mf2_t vslideup(vint32mf2_t op0, vint32mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i32mf2_m)))
-vint32mf2_t vslideup(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i64m1)))
-vint64m1_t vslideup(vint64m1_t op0, vint64m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i64m1_m)))
-vint64m1_t vslideup(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i64m2)))
-vint64m2_t vslideup(vint64m2_t op0, vint64m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i64m2_m)))
-vint64m2_t vslideup(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i64m4)))
-vint64m4_t vslideup(vint64m4_t op0, vint64m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i64m4_m)))
-vint64m4_t vslideup(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i64m8)))
-vint64m8_t vslideup(vint64m8_t op0, vint64m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i64m8_m)))
-vint64m8_t vslideup(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8m1)))
-vuint8m1_t vslideup(vuint8m1_t op0, vuint8m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8m1_m)))
-vuint8m1_t vslideup(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8m2)))
-vuint8m2_t vslideup(vuint8m2_t op0, vuint8m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8m2_m)))
-vuint8m2_t vslideup(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8m4)))
-vuint8m4_t vslideup(vuint8m4_t op0, vuint8m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8m4_m)))
-vuint8m4_t vslideup(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8m8)))
-vuint8m8_t vslideup(vuint8m8_t op0, vuint8m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8m8_m)))
-vuint8m8_t vslideup(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8mf2)))
-vuint8mf2_t vslideup(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8mf2_m)))
-vuint8mf2_t vslideup(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8mf4)))
-vuint8mf4_t vslideup(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8mf4_m)))
-vuint8mf4_t vslideup(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8mf8)))
-vuint8mf8_t vslideup(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8mf8_m)))
-vuint8mf8_t vslideup(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16m1)))
-vuint16m1_t vslideup(vuint16m1_t op0, vuint16m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16m1_m)))
-vuint16m1_t vslideup(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16m2)))
-vuint16m2_t vslideup(vuint16m2_t op0, vuint16m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16m2_m)))
-vuint16m2_t vslideup(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16m4)))
-vuint16m4_t vslideup(vuint16m4_t op0, vuint16m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16m4_m)))
-vuint16m4_t vslideup(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16m8)))
-vuint16m8_t vslideup(vuint16m8_t op0, vuint16m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16m8_m)))
-vuint16m8_t vslideup(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16mf2)))
-vuint16mf2_t vslideup(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16mf2_m)))
-vuint16mf2_t vslideup(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16mf4)))
-vuint16mf4_t vslideup(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16mf4_m)))
-vuint16mf4_t vslideup(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u32m1)))
-vuint32m1_t vslideup(vuint32m1_t op0, vuint32m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u32m1_m)))
-vuint32m1_t vslideup(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u32m2)))
-vuint32m2_t vslideup(vuint32m2_t op0, vuint32m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u32m2_m)))
-vuint32m2_t vslideup(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u32m4)))
-vuint32m4_t vslideup(vuint32m4_t op0, vuint32m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u32m4_m)))
-vuint32m4_t vslideup(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u32m8)))
-vuint32m8_t vslideup(vuint32m8_t op0, vuint32m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u32m8_m)))
-vuint32m8_t vslideup(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u32mf2)))
-vuint32mf2_t vslideup(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u32mf2_m)))
-vuint32mf2_t vslideup(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u64m1)))
-vuint64m1_t vslideup(vuint64m1_t op0, vuint64m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u64m1_m)))
-vuint64m1_t vslideup(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u64m2)))
-vuint64m2_t vslideup(vuint64m2_t op0, vuint64m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u64m2_m)))
-vuint64m2_t vslideup(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u64m4)))
-vuint64m4_t vslideup(vuint64m4_t op0, vuint64m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u64m4_m)))
-vuint64m4_t vslideup(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u64m8)))
-vuint64m8_t vslideup(vuint64m8_t op0, vuint64m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u64m8_m)))
-vuint64m8_t vslideup(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8m1)))
-vint8m1_t vslidedown(vint8m1_t op0, vint8m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8m1_m)))
-vint8m1_t vslidedown(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8m2)))
-vint8m2_t vslidedown(vint8m2_t op0, vint8m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8m2_m)))
-vint8m2_t vslidedown(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8m4)))
-vint8m4_t vslidedown(vint8m4_t op0, vint8m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8m4_m)))
-vint8m4_t vslidedown(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8m8)))
-vint8m8_t vslidedown(vint8m8_t op0, vint8m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8m8_m)))
-vint8m8_t vslidedown(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8mf2)))
-vint8mf2_t vslidedown(vint8mf2_t op0, vint8mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8mf2_m)))
-vint8mf2_t vslidedown(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8mf4)))
-vint8mf4_t vslidedown(vint8mf4_t op0, vint8mf4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8mf4_m)))
-vint8mf4_t vslidedown(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8mf8)))
-vint8mf8_t vslidedown(vint8mf8_t op0, vint8mf8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8mf8_m)))
-vint8mf8_t vslidedown(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16m1)))
-vint16m1_t vslidedown(vint16m1_t op0, vint16m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16m1_m)))
-vint16m1_t vslidedown(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16m2)))
-vint16m2_t vslidedown(vint16m2_t op0, vint16m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16m2_m)))
-vint16m2_t vslidedown(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16m4)))
-vint16m4_t vslidedown(vint16m4_t op0, vint16m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16m4_m)))
-vint16m4_t vslidedown(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16m8)))
-vint16m8_t vslidedown(vint16m8_t op0, vint16m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16m8_m)))
-vint16m8_t vslidedown(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16mf2)))
-vint16mf2_t vslidedown(vint16mf2_t op0, vint16mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16mf2_m)))
-vint16mf2_t vslidedown(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16mf4)))
-vint16mf4_t vslidedown(vint16mf4_t op0, vint16mf4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16mf4_m)))
-vint16mf4_t vslidedown(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i32m1)))
-vint32m1_t vslidedown(vint32m1_t op0, vint32m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i32m1_m)))
-vint32m1_t vslidedown(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i32m2)))
-vint32m2_t vslidedown(vint32m2_t op0, vint32m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i32m2_m)))
-vint32m2_t vslidedown(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i32m4)))
-vint32m4_t vslidedown(vint32m4_t op0, vint32m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i32m4_m)))
-vint32m4_t vslidedown(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i32m8)))
-vint32m8_t vslidedown(vint32m8_t op0, vint32m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i32m8_m)))
-vint32m8_t vslidedown(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i32mf2)))
-vint32mf2_t vslidedown(vint32mf2_t op0, vint32mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i32mf2_m)))
-vint32mf2_t vslidedown(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i64m1)))
-vint64m1_t vslidedown(vint64m1_t op0, vint64m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i64m1_m)))
-vint64m1_t vslidedown(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i64m2)))
-vint64m2_t vslidedown(vint64m2_t op0, vint64m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i64m2_m)))
-vint64m2_t vslidedown(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i64m4)))
-vint64m4_t vslidedown(vint64m4_t op0, vint64m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i64m4_m)))
-vint64m4_t vslidedown(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i64m8)))
-vint64m8_t vslidedown(vint64m8_t op0, vint64m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i64m8_m)))
-vint64m8_t vslidedown(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8m1)))
-vuint8m1_t vslidedown(vuint8m1_t op0, vuint8m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8m1_m)))
-vuint8m1_t vslidedown(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8m2)))
-vuint8m2_t vslidedown(vuint8m2_t op0, vuint8m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8m2_m)))
-vuint8m2_t vslidedown(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8m4)))
-vuint8m4_t vslidedown(vuint8m4_t op0, vuint8m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8m4_m)))
-vuint8m4_t vslidedown(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8m8)))
-vuint8m8_t vslidedown(vuint8m8_t op0, vuint8m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8m8_m)))
-vuint8m8_t vslidedown(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8mf2)))
-vuint8mf2_t vslidedown(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8mf2_m)))
-vuint8mf2_t vslidedown(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8mf4)))
-vuint8mf4_t vslidedown(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8mf4_m)))
-vuint8mf4_t vslidedown(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8mf8)))
-vuint8mf8_t vslidedown(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8mf8_m)))
-vuint8mf8_t vslidedown(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16m1)))
-vuint16m1_t vslidedown(vuint16m1_t op0, vuint16m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16m1_m)))
-vuint16m1_t vslidedown(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16m2)))
-vuint16m2_t vslidedown(vuint16m2_t op0, vuint16m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16m2_m)))
-vuint16m2_t vslidedown(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16m4)))
-vuint16m4_t vslidedown(vuint16m4_t op0, vuint16m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16m4_m)))
-vuint16m4_t vslidedown(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16m8)))
-vuint16m8_t vslidedown(vuint16m8_t op0, vuint16m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16m8_m)))
-vuint16m8_t vslidedown(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16mf2)))
-vuint16mf2_t vslidedown(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16mf2_m)))
-vuint16mf2_t vslidedown(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16mf4)))
-vuint16mf4_t vslidedown(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16mf4_m)))
-vuint16mf4_t vslidedown(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u32m1)))
-vuint32m1_t vslidedown(vuint32m1_t op0, vuint32m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u32m1_m)))
-vuint32m1_t vslidedown(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u32m2)))
-vuint32m2_t vslidedown(vuint32m2_t op0, vuint32m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u32m2_m)))
-vuint32m2_t vslidedown(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u32m4)))
-vuint32m4_t vslidedown(vuint32m4_t op0, vuint32m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u32m4_m)))
-vuint32m4_t vslidedown(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u32m8)))
-vuint32m8_t vslidedown(vuint32m8_t op0, vuint32m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u32m8_m)))
-vuint32m8_t vslidedown(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u32mf2)))
-vuint32mf2_t vslidedown(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u32mf2_m)))
-vuint32mf2_t vslidedown(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u64m1)))
-vuint64m1_t vslidedown(vuint64m1_t op0, vuint64m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u64m1_m)))
-vuint64m1_t vslidedown(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u64m2)))
-vuint64m2_t vslidedown(vuint64m2_t op0, vuint64m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u64m2_m)))
-vuint64m2_t vslidedown(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u64m4)))
-vuint64m4_t vslidedown(vuint64m4_t op0, vuint64m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u64m4_m)))
-vuint64m4_t vslidedown(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u64m8)))
-vuint64m8_t vslidedown(vuint64m8_t op0, vuint64m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u64m8_m)))
-vuint64m8_t vslidedown(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8m1)))
-vint8m1_t vslide1up(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8m1_m)))
-vint8m1_t vslide1up(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8m2)))
-vint8m2_t vslide1up(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8m2_m)))
-vint8m2_t vslide1up(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8m4)))
-vint8m4_t vslide1up(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8m4_m)))
-vint8m4_t vslide1up(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8m8)))
-vint8m8_t vslide1up(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8m8_m)))
-vint8m8_t vslide1up(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8mf2)))
-vint8mf2_t vslide1up(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8mf2_m)))
-vint8mf2_t vslide1up(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8mf4)))
-vint8mf4_t vslide1up(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8mf4_m)))
-vint8mf4_t vslide1up(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8mf8)))
-vint8mf8_t vslide1up(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8mf8_m)))
-vint8mf8_t vslide1up(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16m1)))
-vint16m1_t vslide1up(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16m1_m)))
-vint16m1_t vslide1up(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16m2)))
-vint16m2_t vslide1up(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16m2_m)))
-vint16m2_t vslide1up(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16m4)))
-vint16m4_t vslide1up(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16m4_m)))
-vint16m4_t vslide1up(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16m8)))
-vint16m8_t vslide1up(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16m8_m)))
-vint16m8_t vslide1up(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16mf2)))
-vint16mf2_t vslide1up(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16mf2_m)))
-vint16mf2_t vslide1up(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16mf4)))
-vint16mf4_t vslide1up(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16mf4_m)))
-vint16mf4_t vslide1up(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i32m1)))
-vint32m1_t vslide1up(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i32m1_m)))
-vint32m1_t vslide1up(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i32m2)))
-vint32m2_t vslide1up(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i32m2_m)))
-vint32m2_t vslide1up(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i32m4)))
-vint32m4_t vslide1up(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i32m4_m)))
-vint32m4_t vslide1up(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i32m8)))
-vint32m8_t vslide1up(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i32m8_m)))
-vint32m8_t vslide1up(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i32mf2)))
-vint32mf2_t vslide1up(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i32mf2_m)))
-vint32mf2_t vslide1up(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i64m1)))
-vint64m1_t vslide1up(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i64m1_m)))
-vint64m1_t vslide1up(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i64m2)))
-vint64m2_t vslide1up(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i64m2_m)))
-vint64m2_t vslide1up(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i64m4)))
-vint64m4_t vslide1up(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i64m4_m)))
-vint64m4_t vslide1up(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i64m8)))
-vint64m8_t vslide1up(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i64m8_m)))
-vint64m8_t vslide1up(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8m1)))
-vuint8m1_t vslide1up(vuint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8m1_m)))
-vuint8m1_t vslide1up(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8m2)))
-vuint8m2_t vslide1up(vuint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8m2_m)))
-vuint8m2_t vslide1up(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8m4)))
-vuint8m4_t vslide1up(vuint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8m4_m)))
-vuint8m4_t vslide1up(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8m8)))
-vuint8m8_t vslide1up(vuint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8m8_m)))
-vuint8m8_t vslide1up(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8mf2)))
-vuint8mf2_t vslide1up(vuint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8mf2_m)))
-vuint8mf2_t vslide1up(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8mf4)))
-vuint8mf4_t vslide1up(vuint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8mf4_m)))
-vuint8mf4_t vslide1up(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8mf8)))
-vuint8mf8_t vslide1up(vuint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8mf8_m)))
-vuint8mf8_t vslide1up(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16m1)))
-vuint16m1_t vslide1up(vuint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16m1_m)))
-vuint16m1_t vslide1up(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16m2)))
-vuint16m2_t vslide1up(vuint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16m2_m)))
-vuint16m2_t vslide1up(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16m4)))
-vuint16m4_t vslide1up(vuint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16m4_m)))
-vuint16m4_t vslide1up(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16m8)))
-vuint16m8_t vslide1up(vuint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16m8_m)))
-vuint16m8_t vslide1up(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16mf2)))
-vuint16mf2_t vslide1up(vuint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16mf2_m)))
-vuint16mf2_t vslide1up(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16mf4)))
-vuint16mf4_t vslide1up(vuint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16mf4_m)))
-vuint16mf4_t vslide1up(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u32m1)))
-vuint32m1_t vslide1up(vuint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u32m1_m)))
-vuint32m1_t vslide1up(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u32m2)))
-vuint32m2_t vslide1up(vuint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u32m2_m)))
-vuint32m2_t vslide1up(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u32m4)))
-vuint32m4_t vslide1up(vuint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u32m4_m)))
-vuint32m4_t vslide1up(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u32m8)))
-vuint32m8_t vslide1up(vuint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u32m8_m)))
-vuint32m8_t vslide1up(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u32mf2)))
-vuint32mf2_t vslide1up(vuint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u32mf2_m)))
-vuint32mf2_t vslide1up(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u64m1)))
-vuint64m1_t vslide1up(vuint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u64m1_m)))
-vuint64m1_t vslide1up(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u64m2)))
-vuint64m2_t vslide1up(vuint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u64m2_m)))
-vuint64m2_t vslide1up(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u64m4)))
-vuint64m4_t vslide1up(vuint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u64m4_m)))
-vuint64m4_t vslide1up(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u64m8)))
-vuint64m8_t vslide1up(vuint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u64m8_m)))
-vuint64m8_t vslide1up(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8m1)))
-vint8m1_t vslide1down(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8m1_m)))
-vint8m1_t vslide1down(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8m2)))
-vint8m2_t vslide1down(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8m2_m)))
-vint8m2_t vslide1down(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8m4)))
-vint8m4_t vslide1down(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8m4_m)))
-vint8m4_t vslide1down(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8m8)))
-vint8m8_t vslide1down(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8m8_m)))
-vint8m8_t vslide1down(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8mf2)))
-vint8mf2_t vslide1down(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8mf2_m)))
-vint8mf2_t vslide1down(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8mf4)))
-vint8mf4_t vslide1down(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8mf4_m)))
-vint8mf4_t vslide1down(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8mf8)))
-vint8mf8_t vslide1down(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8mf8_m)))
-vint8mf8_t vslide1down(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16m1)))
-vint16m1_t vslide1down(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16m1_m)))
-vint16m1_t vslide1down(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16m2)))
-vint16m2_t vslide1down(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16m2_m)))
-vint16m2_t vslide1down(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16m4)))
-vint16m4_t vslide1down(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16m4_m)))
-vint16m4_t vslide1down(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16m8)))
-vint16m8_t vslide1down(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16m8_m)))
-vint16m8_t vslide1down(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16mf2)))
-vint16mf2_t vslide1down(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16mf2_m)))
-vint16mf2_t vslide1down(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16mf4)))
-vint16mf4_t vslide1down(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16mf4_m)))
-vint16mf4_t vslide1down(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i32m1)))
-vint32m1_t vslide1down(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i32m1_m)))
-vint32m1_t vslide1down(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i32m2)))
-vint32m2_t vslide1down(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i32m2_m)))
-vint32m2_t vslide1down(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i32m4)))
-vint32m4_t vslide1down(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i32m4_m)))
-vint32m4_t vslide1down(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i32m8)))
-vint32m8_t vslide1down(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i32m8_m)))
-vint32m8_t vslide1down(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i32mf2)))
-vint32mf2_t vslide1down(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i32mf2_m)))
-vint32mf2_t vslide1down(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i64m1)))
-vint64m1_t vslide1down(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i64m1_m)))
-vint64m1_t vslide1down(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i64m2)))
-vint64m2_t vslide1down(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i64m2_m)))
-vint64m2_t vslide1down(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i64m4)))
-vint64m4_t vslide1down(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i64m4_m)))
-vint64m4_t vslide1down(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i64m8)))
-vint64m8_t vslide1down(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i64m8_m)))
-vint64m8_t vslide1down(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8m1)))
-vuint8m1_t vslide1down(vuint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8m1_m)))
-vuint8m1_t vslide1down(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8m2)))
-vuint8m2_t vslide1down(vuint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8m2_m)))
-vuint8m2_t vslide1down(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8m4)))
-vuint8m4_t vslide1down(vuint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8m4_m)))
-vuint8m4_t vslide1down(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8m8)))
-vuint8m8_t vslide1down(vuint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8m8_m)))
-vuint8m8_t vslide1down(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8mf2)))
-vuint8mf2_t vslide1down(vuint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8mf2_m)))
-vuint8mf2_t vslide1down(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8mf4)))
-vuint8mf4_t vslide1down(vuint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8mf4_m)))
-vuint8mf4_t vslide1down(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8mf8)))
-vuint8mf8_t vslide1down(vuint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8mf8_m)))
-vuint8mf8_t vslide1down(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16m1)))
-vuint16m1_t vslide1down(vuint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16m1_m)))
-vuint16m1_t vslide1down(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16m2)))
-vuint16m2_t vslide1down(vuint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16m2_m)))
-vuint16m2_t vslide1down(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16m4)))
-vuint16m4_t vslide1down(vuint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16m4_m)))
-vuint16m4_t vslide1down(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16m8)))
-vuint16m8_t vslide1down(vuint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16m8_m)))
-vuint16m8_t vslide1down(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16mf2)))
-vuint16mf2_t vslide1down(vuint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16mf2_m)))
-vuint16mf2_t vslide1down(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16mf4)))
-vuint16mf4_t vslide1down(vuint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16mf4_m)))
-vuint16mf4_t vslide1down(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u32m1)))
-vuint32m1_t vslide1down(vuint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u32m1_m)))
-vuint32m1_t vslide1down(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u32m2)))
-vuint32m2_t vslide1down(vuint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u32m2_m)))
-vuint32m2_t vslide1down(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u32m4)))
-vuint32m4_t vslide1down(vuint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u32m4_m)))
-vuint32m4_t vslide1down(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u32m8)))
-vuint32m8_t vslide1down(vuint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u32m8_m)))
-vuint32m8_t vslide1down(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u32mf2)))
-vuint32mf2_t vslide1down(vuint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u32mf2_m)))
-vuint32mf2_t vslide1down(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u64m1)))
-vuint64m1_t vslide1down(vuint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u64m1_m)))
-vuint64m1_t vslide1down(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u64m2)))
-vuint64m2_t vslide1down(vuint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u64m2_m)))
-vuint64m2_t vslide1down(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u64m4)))
-vuint64m4_t vslide1down(vuint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u64m4_m)))
-vuint64m4_t vslide1down(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u64m8)))
-vuint64m8_t vslide1down(vuint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u64m8_m)))
-vuint64m8_t vslide1down(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8m1)))
-vint8m1_t vrgather(vint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8m1_m)))
-vint8m1_t vrgather(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8m2)))
-vint8m2_t vrgather(vint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8m2_m)))
-vint8m2_t vrgather(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8m4)))
-vint8m4_t vrgather(vint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8m4_m)))
-vint8m4_t vrgather(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8m8)))
-vint8m8_t vrgather(vint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8m8_m)))
-vint8m8_t vrgather(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8mf2)))
-vint8mf2_t vrgather(vint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8mf2_m)))
-vint8mf2_t vrgather(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8mf4)))
-vint8mf4_t vrgather(vint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8mf4_m)))
-vint8mf4_t vrgather(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8mf8)))
-vint8mf8_t vrgather(vint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8mf8_m)))
-vint8mf8_t vrgather(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16m1)))
-vint16m1_t vrgather(vint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16m1_m)))
-vint16m1_t vrgather(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16m2)))
-vint16m2_t vrgather(vint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16m2_m)))
-vint16m2_t vrgather(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16m4)))
-vint16m4_t vrgather(vint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16m4_m)))
-vint16m4_t vrgather(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16m8)))
-vint16m8_t vrgather(vint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16m8_m)))
-vint16m8_t vrgather(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16mf2)))
-vint16mf2_t vrgather(vint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16mf2_m)))
-vint16mf2_t vrgather(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16mf4)))
-vint16mf4_t vrgather(vint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16mf4_m)))
-vint16mf4_t vrgather(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i32m1)))
-vint32m1_t vrgather(vint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i32m1_m)))
-vint32m1_t vrgather(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i32m2)))
-vint32m2_t vrgather(vint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i32m2_m)))
-vint32m2_t vrgather(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i32m4)))
-vint32m4_t vrgather(vint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i32m4_m)))
-vint32m4_t vrgather(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i32m8)))
-vint32m8_t vrgather(vint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i32m8_m)))
-vint32m8_t vrgather(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i32mf2)))
-vint32mf2_t vrgather(vint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i32mf2_m)))
-vint32mf2_t vrgather(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i64m1)))
-vint64m1_t vrgather(vint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i64m1_m)))
-vint64m1_t vrgather(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i64m2)))
-vint64m2_t vrgather(vint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i64m2_m)))
-vint64m2_t vrgather(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i64m4)))
-vint64m4_t vrgather(vint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i64m4_m)))
-vint64m4_t vrgather(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i64m8)))
-vint64m8_t vrgather(vint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i64m8_m)))
-vint64m8_t vrgather(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8m1)))
-vint8m1_t vrgather(vint8m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8m1_m)))
-vint8m1_t vrgather(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8m2)))
-vint8m2_t vrgather(vint8m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8m2_m)))
-vint8m2_t vrgather(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8m4)))
-vint8m4_t vrgather(vint8m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8m4_m)))
-vint8m4_t vrgather(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8m8)))
-vint8m8_t vrgather(vint8m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8m8_m)))
-vint8m8_t vrgather(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8mf2)))
-vint8mf2_t vrgather(vint8mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8mf2_m)))
-vint8mf2_t vrgather(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8mf4)))
-vint8mf4_t vrgather(vint8mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8mf4_m)))
-vint8mf4_t vrgather(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8mf8)))
-vint8mf8_t vrgather(vint8mf8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8mf8_m)))
-vint8mf8_t vrgather(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16m1)))
-vint16m1_t vrgather(vint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16m1_m)))
-vint16m1_t vrgather(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16m2)))
-vint16m2_t vrgather(vint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16m2_m)))
-vint16m2_t vrgather(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16m4)))
-vint16m4_t vrgather(vint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16m4_m)))
-vint16m4_t vrgather(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16m8)))
-vint16m8_t vrgather(vint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16m8_m)))
-vint16m8_t vrgather(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16mf2)))
-vint16mf2_t vrgather(vint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16mf2_m)))
-vint16mf2_t vrgather(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16mf4)))
-vint16mf4_t vrgather(vint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16mf4_m)))
-vint16mf4_t vrgather(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i32m1)))
-vint32m1_t vrgather(vint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i32m1_m)))
-vint32m1_t vrgather(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i32m2)))
-vint32m2_t vrgather(vint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i32m2_m)))
-vint32m2_t vrgather(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i32m4)))
-vint32m4_t vrgather(vint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i32m4_m)))
-vint32m4_t vrgather(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i32m8)))
-vint32m8_t vrgather(vint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i32m8_m)))
-vint32m8_t vrgather(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i32mf2)))
-vint32mf2_t vrgather(vint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i32mf2_m)))
-vint32mf2_t vrgather(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i64m1)))
-vint64m1_t vrgather(vint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i64m1_m)))
-vint64m1_t vrgather(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i64m2)))
-vint64m2_t vrgather(vint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i64m2_m)))
-vint64m2_t vrgather(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i64m4)))
-vint64m4_t vrgather(vint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i64m4_m)))
-vint64m4_t vrgather(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i64m8)))
-vint64m8_t vrgather(vint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i64m8_m)))
-vint64m8_t vrgather(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8m1)))
-vint8m1_t vrgatherei16(vint8m1_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8m1_m)))
-vint8m1_t vrgatherei16(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8m2)))
-vint8m2_t vrgatherei16(vint8m2_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8m2_m)))
-vint8m2_t vrgatherei16(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8m4)))
-vint8m4_t vrgatherei16(vint8m4_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8m4_m)))
-vint8m4_t vrgatherei16(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8mf2)))
-vint8mf2_t vrgatherei16(vint8mf2_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8mf2_m)))
-vint8mf2_t vrgatherei16(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8mf4)))
-vint8mf4_t vrgatherei16(vint8mf4_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8mf4_m)))
-vint8mf4_t vrgatherei16(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8mf8)))
-vint8mf8_t vrgatherei16(vint8mf8_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8mf8_m)))
-vint8mf8_t vrgatherei16(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16m1)))
-vint16m1_t vrgatherei16(vint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16m1_m)))
-vint16m1_t vrgatherei16(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16m2)))
-vint16m2_t vrgatherei16(vint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16m2_m)))
-vint16m2_t vrgatherei16(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16m4)))
-vint16m4_t vrgatherei16(vint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16m4_m)))
-vint16m4_t vrgatherei16(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16m8)))
-vint16m8_t vrgatherei16(vint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16m8_m)))
-vint16m8_t vrgatherei16(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16mf2)))
-vint16mf2_t vrgatherei16(vint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16mf2_m)))
-vint16mf2_t vrgatherei16(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16mf4)))
-vint16mf4_t vrgatherei16(vint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16mf4_m)))
-vint16mf4_t vrgatherei16(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i32m1)))
-vint32m1_t vrgatherei16(vint32m1_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i32m1_m)))
-vint32m1_t vrgatherei16(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i32m2)))
-vint32m2_t vrgatherei16(vint32m2_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i32m2_m)))
-vint32m2_t vrgatherei16(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i32m4)))
-vint32m4_t vrgatherei16(vint32m4_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i32m4_m)))
-vint32m4_t vrgatherei16(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i32m8)))
-vint32m8_t vrgatherei16(vint32m8_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i32m8_m)))
-vint32m8_t vrgatherei16(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i32mf2)))
-vint32mf2_t vrgatherei16(vint32mf2_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i32mf2_m)))
-vint32mf2_t vrgatherei16(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i64m1)))
-vint64m1_t vrgatherei16(vint64m1_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i64m1_m)))
-vint64m1_t vrgatherei16(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i64m2)))
-vint64m2_t vrgatherei16(vint64m2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i64m2_m)))
-vint64m2_t vrgatherei16(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i64m4)))
-vint64m4_t vrgatherei16(vint64m4_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i64m4_m)))
-vint64m4_t vrgatherei16(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i64m8)))
-vint64m8_t vrgatherei16(vint64m8_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i64m8_m)))
-vint64m8_t vrgatherei16(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8m1)))
-vuint8m1_t vrgather(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8m1_m)))
-vuint8m1_t vrgather(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8m2)))
-vuint8m2_t vrgather(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8m2_m)))
-vuint8m2_t vrgather(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8m4)))
-vuint8m4_t vrgather(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8m4_m)))
-vuint8m4_t vrgather(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8m8)))
-vuint8m8_t vrgather(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8m8_m)))
-vuint8m8_t vrgather(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8mf2)))
-vuint8mf2_t vrgather(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8mf2_m)))
-vuint8mf2_t vrgather(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8mf4)))
-vuint8mf4_t vrgather(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8mf4_m)))
-vuint8mf4_t vrgather(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8mf8)))
-vuint8mf8_t vrgather(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8mf8_m)))
-vuint8mf8_t vrgather(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16m1)))
-vuint16m1_t vrgather(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16m1_m)))
-vuint16m1_t vrgather(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16m2)))
-vuint16m2_t vrgather(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16m2_m)))
-vuint16m2_t vrgather(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16m4)))
-vuint16m4_t vrgather(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16m4_m)))
-vuint16m4_t vrgather(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16m8)))
-vuint16m8_t vrgather(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16m8_m)))
-vuint16m8_t vrgather(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16mf2)))
-vuint16mf2_t vrgather(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16mf2_m)))
-vuint16mf2_t vrgather(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16mf4)))
-vuint16mf4_t vrgather(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16mf4_m)))
-vuint16mf4_t vrgather(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u32m1)))
-vuint32m1_t vrgather(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u32m1_m)))
-vuint32m1_t vrgather(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u32m2)))
-vuint32m2_t vrgather(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u32m2_m)))
-vuint32m2_t vrgather(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u32m4)))
-vuint32m4_t vrgather(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u32m4_m)))
-vuint32m4_t vrgather(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u32m8)))
-vuint32m8_t vrgather(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u32m8_m)))
-vuint32m8_t vrgather(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u32mf2)))
-vuint32mf2_t vrgather(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u32mf2_m)))
-vuint32mf2_t vrgather(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u64m1)))
-vuint64m1_t vrgather(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u64m1_m)))
-vuint64m1_t vrgather(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u64m2)))
-vuint64m2_t vrgather(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u64m2_m)))
-vuint64m2_t vrgather(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u64m4)))
-vuint64m4_t vrgather(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u64m4_m)))
-vuint64m4_t vrgather(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u64m8)))
-vuint64m8_t vrgather(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u64m8_m)))
-vuint64m8_t vrgather(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8m1)))
-vuint8m1_t vrgather(vuint8m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8m1_m)))
-vuint8m1_t vrgather(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8m2)))
-vuint8m2_t vrgather(vuint8m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8m2_m)))
-vuint8m2_t vrgather(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8m4)))
-vuint8m4_t vrgather(vuint8m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8m4_m)))
-vuint8m4_t vrgather(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8m8)))
-vuint8m8_t vrgather(vuint8m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8m8_m)))
-vuint8m8_t vrgather(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8mf2)))
-vuint8mf2_t vrgather(vuint8mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8mf2_m)))
-vuint8mf2_t vrgather(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8mf4)))
-vuint8mf4_t vrgather(vuint8mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8mf4_m)))
-vuint8mf4_t vrgather(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8mf8)))
-vuint8mf8_t vrgather(vuint8mf8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8mf8_m)))
-vuint8mf8_t vrgather(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16m1)))
-vuint16m1_t vrgather(vuint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16m1_m)))
-vuint16m1_t vrgather(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16m2)))
-vuint16m2_t vrgather(vuint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16m2_m)))
-vuint16m2_t vrgather(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16m4)))
-vuint16m4_t vrgather(vuint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16m4_m)))
-vuint16m4_t vrgather(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16m8)))
-vuint16m8_t vrgather(vuint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16m8_m)))
-vuint16m8_t vrgather(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16mf2)))
-vuint16mf2_t vrgather(vuint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16mf2_m)))
-vuint16mf2_t vrgather(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16mf4)))
-vuint16mf4_t vrgather(vuint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16mf4_m)))
-vuint16mf4_t vrgather(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u32m1)))
-vuint32m1_t vrgather(vuint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u32m1_m)))
-vuint32m1_t vrgather(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u32m2)))
-vuint32m2_t vrgather(vuint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u32m2_m)))
-vuint32m2_t vrgather(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u32m4)))
-vuint32m4_t vrgather(vuint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u32m4_m)))
-vuint32m4_t vrgather(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u32m8)))
-vuint32m8_t vrgather(vuint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u32m8_m)))
-vuint32m8_t vrgather(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u32mf2)))
-vuint32mf2_t vrgather(vuint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u32mf2_m)))
-vuint32mf2_t vrgather(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u64m1)))
-vuint64m1_t vrgather(vuint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u64m1_m)))
-vuint64m1_t vrgather(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u64m2)))
-vuint64m2_t vrgather(vuint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u64m2_m)))
-vuint64m2_t vrgather(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u64m4)))
-vuint64m4_t vrgather(vuint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u64m4_m)))
-vuint64m4_t vrgather(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u64m8)))
-vuint64m8_t vrgather(vuint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u64m8_m)))
-vuint64m8_t vrgather(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8m1)))
-vuint8m1_t vrgatherei16(vuint8m1_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8m1_m)))
-vuint8m1_t vrgatherei16(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8m2)))
-vuint8m2_t vrgatherei16(vuint8m2_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8m2_m)))
-vuint8m2_t vrgatherei16(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8m4)))
-vuint8m4_t vrgatherei16(vuint8m4_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8m4_m)))
-vuint8m4_t vrgatherei16(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8mf2)))
-vuint8mf2_t vrgatherei16(vuint8mf2_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8mf2_m)))
-vuint8mf2_t vrgatherei16(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8mf4)))
-vuint8mf4_t vrgatherei16(vuint8mf4_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8mf4_m)))
-vuint8mf4_t vrgatherei16(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8mf8)))
-vuint8mf8_t vrgatherei16(vuint8mf8_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8mf8_m)))
-vuint8mf8_t vrgatherei16(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16m1)))
-vuint16m1_t vrgatherei16(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16m1_m)))
-vuint16m1_t vrgatherei16(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16m2)))
-vuint16m2_t vrgatherei16(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16m2_m)))
-vuint16m2_t vrgatherei16(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16m4)))
-vuint16m4_t vrgatherei16(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16m4_m)))
-vuint16m4_t vrgatherei16(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16m8)))
-vuint16m8_t vrgatherei16(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16m8_m)))
-vuint16m8_t vrgatherei16(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16mf2)))
-vuint16mf2_t vrgatherei16(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16mf2_m)))
-vuint16mf2_t vrgatherei16(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16mf4)))
-vuint16mf4_t vrgatherei16(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16mf4_m)))
-vuint16mf4_t vrgatherei16(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u32m1)))
-vuint32m1_t vrgatherei16(vuint32m1_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u32m1_m)))
-vuint32m1_t vrgatherei16(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u32m2)))
-vuint32m2_t vrgatherei16(vuint32m2_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u32m2_m)))
-vuint32m2_t vrgatherei16(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u32m4)))
-vuint32m4_t vrgatherei16(vuint32m4_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u32m4_m)))
-vuint32m4_t vrgatherei16(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u32m8)))
-vuint32m8_t vrgatherei16(vuint32m8_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u32m8_m)))
-vuint32m8_t vrgatherei16(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u32mf2)))
-vuint32mf2_t vrgatherei16(vuint32mf2_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u32mf2_m)))
-vuint32mf2_t vrgatherei16(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u64m1)))
-vuint64m1_t vrgatherei16(vuint64m1_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u64m1_m)))
-vuint64m1_t vrgatherei16(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u64m2)))
-vuint64m2_t vrgatherei16(vuint64m2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u64m2_m)))
-vuint64m2_t vrgatherei16(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u64m4)))
-vuint64m4_t vrgatherei16(vuint64m4_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u64m4_m)))
-vuint64m4_t vrgatherei16(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u64m8)))
-vuint64m8_t vrgatherei16(vuint64m8_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u64m8_m)))
-vuint64m8_t vrgatherei16(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i8m1)))
-vint8m1_t vcompress(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i8m2)))
-vint8m2_t vcompress(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i8m4)))
-vint8m4_t vcompress(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i8m8)))
-vint8m8_t vcompress(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i8mf2)))
-vint8mf2_t vcompress(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i8mf4)))
-vint8mf4_t vcompress(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i8mf8)))
-vint8mf8_t vcompress(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i16m1)))
-vint16m1_t vcompress(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i16m2)))
-vint16m2_t vcompress(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i16m4)))
-vint16m4_t vcompress(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i16m8)))
-vint16m8_t vcompress(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i16mf2)))
-vint16mf2_t vcompress(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i16mf4)))
-vint16mf4_t vcompress(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i32m1)))
-vint32m1_t vcompress(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i32m2)))
-vint32m2_t vcompress(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i32m4)))
-vint32m4_t vcompress(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i32m8)))
-vint32m8_t vcompress(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i32mf2)))
-vint32mf2_t vcompress(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i64m1)))
-vint64m1_t vcompress(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i64m2)))
-vint64m2_t vcompress(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i64m4)))
-vint64m4_t vcompress(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i64m8)))
-vint64m8_t vcompress(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u8m1)))
-vuint8m1_t vcompress(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u8m2)))
-vuint8m2_t vcompress(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u8m4)))
-vuint8m4_t vcompress(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u8m8)))
-vuint8m8_t vcompress(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u8mf2)))
-vuint8mf2_t vcompress(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u8mf4)))
-vuint8mf4_t vcompress(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u8mf8)))
-vuint8mf8_t vcompress(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u16m1)))
-vuint16m1_t vcompress(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u16m2)))
-vuint16m2_t vcompress(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u16m4)))
-vuint16m4_t vcompress(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u16m8)))
-vuint16m8_t vcompress(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u16mf2)))
-vuint16mf2_t vcompress(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u16mf4)))
-vuint16mf4_t vcompress(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u32m1)))
-vuint32m1_t vcompress(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u32m2)))
-vuint32m2_t vcompress(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u32m4)))
-vuint32m4_t vcompress(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u32m8)))
-vuint32m8_t vcompress(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u32mf2)))
-vuint32mf2_t vcompress(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u64m1)))
-vuint64m1_t vcompress(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u64m2)))
-vuint64m2_t vcompress(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u64m4)))
-vuint64m4_t vcompress(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u64m8)))
-vuint64m8_t vcompress(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i8m2_i8m1)))
-vint8m1_t vget_i8m1(vint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i8m4_i8m1)))
-vint8m1_t vget_i8m1(vint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i8m8_i8m1)))
-vint8m1_t vget_i8m1(vint8m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i16m2_i16m1)))
-vint16m1_t vget_i16m1(vint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i16m4_i16m1)))
-vint16m1_t vget_i16m1(vint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i16m8_i16m1)))
-vint16m1_t vget_i16m1(vint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i32m2_i32m1)))
-vint32m1_t vget_i32m1(vint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i32m4_i32m1)))
-vint32m1_t vget_i32m1(vint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i32m8_i32m1)))
-vint32m1_t vget_i32m1(vint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i64m2_i64m1)))
-vint64m1_t vget_i64m1(vint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i64m4_i64m1)))
-vint64m1_t vget_i64m1(vint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i64m8_i64m1)))
-vint64m1_t vget_i64m1(vint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u8m2_u8m1)))
-vuint8m1_t vget_u8m1(vuint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u8m4_u8m1)))
-vuint8m1_t vget_u8m1(vuint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u8m8_u8m1)))
-vuint8m1_t vget_u8m1(vuint8m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u16m2_u16m1)))
-vuint16m1_t vget_u16m1(vuint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u16m4_u16m1)))
-vuint16m1_t vget_u16m1(vuint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u16m8_u16m1)))
-vuint16m1_t vget_u16m1(vuint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u32m2_u32m1)))
-vuint32m1_t vget_u32m1(vuint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u32m4_u32m1)))
-vuint32m1_t vget_u32m1(vuint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u32m8_u32m1)))
-vuint32m1_t vget_u32m1(vuint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u64m2_u64m1)))
-vuint64m1_t vget_u64m1(vuint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u64m4_u64m1)))
-vuint64m1_t vget_u64m1(vuint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u64m8_u64m1)))
-vuint64m1_t vget_u64m1(vuint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i8m4_i8m2)))
-vint8m2_t vget_i8m2(vint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i8m8_i8m2)))
-vint8m2_t vget_i8m2(vint8m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i16m4_i16m2)))
-vint16m2_t vget_i16m2(vint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i16m8_i16m2)))
-vint16m2_t vget_i16m2(vint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i32m4_i32m2)))
-vint32m2_t vget_i32m2(vint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i32m8_i32m2)))
-vint32m2_t vget_i32m2(vint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i64m4_i64m2)))
-vint64m2_t vget_i64m2(vint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i64m8_i64m2)))
-vint64m2_t vget_i64m2(vint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u8m4_u8m2)))
-vuint8m2_t vget_u8m2(vuint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u8m8_u8m2)))
-vuint8m2_t vget_u8m2(vuint8m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u16m4_u16m2)))
-vuint16m2_t vget_u16m2(vuint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u16m8_u16m2)))
-vuint16m2_t vget_u16m2(vuint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u32m4_u32m2)))
-vuint32m2_t vget_u32m2(vuint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u32m8_u32m2)))
-vuint32m2_t vget_u32m2(vuint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u64m4_u64m2)))
-vuint64m2_t vget_u64m2(vuint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u64m8_u64m2)))
-vuint64m2_t vget_u64m2(vuint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i8m8_i8m4)))
-vint8m4_t vget_i8m4(vint8m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i16m8_i16m4)))
-vint16m4_t vget_i16m4(vint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i32m8_i32m4)))
-vint32m4_t vget_i32m4(vint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i64m8_i64m4)))
-vint64m4_t vget_i64m4(vint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u8m8_u8m4)))
-vuint8m4_t vget_u8m4(vuint8m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u16m8_u16m4)))
-vuint16m4_t vget_u16m4(vuint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u32m8_u32m4)))
-vuint32m4_t vget_u32m4(vuint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u64m8_u64m4)))
-vuint64m4_t vget_u64m4(vuint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i8m1_i8m2)))
-vint8m2_t vset(vint8m2_t op0, size_t op1, vint8m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i16m1_i16m2)))
-vint16m2_t vset(vint16m2_t op0, size_t op1, vint16m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i32m1_i32m2)))
-vint32m2_t vset(vint32m2_t op0, size_t op1, vint32m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i64m1_i64m2)))
-vint64m2_t vset(vint64m2_t op0, size_t op1, vint64m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u8m1_u8m2)))
-vuint8m2_t vset(vuint8m2_t op0, size_t op1, vuint8m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u16m1_u16m2)))
-vuint16m2_t vset(vuint16m2_t op0, size_t op1, vuint16m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u32m1_u32m2)))
-vuint32m2_t vset(vuint32m2_t op0, size_t op1, vuint32m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u64m1_u64m2)))
-vuint64m2_t vset(vuint64m2_t op0, size_t op1, vuint64m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i8m1_i8m4)))
-vint8m4_t vset(vint8m4_t op0, size_t op1, vint8m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i8m2_i8m4)))
-vint8m4_t vset(vint8m4_t op0, size_t op1, vint8m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i16m1_i16m4)))
-vint16m4_t vset(vint16m4_t op0, size_t op1, vint16m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i16m2_i16m4)))
-vint16m4_t vset(vint16m4_t op0, size_t op1, vint16m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i32m1_i32m4)))
-vint32m4_t vset(vint32m4_t op0, size_t op1, vint32m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i32m2_i32m4)))
-vint32m4_t vset(vint32m4_t op0, size_t op1, vint32m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i64m1_i64m4)))
-vint64m4_t vset(vint64m4_t op0, size_t op1, vint64m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i64m2_i64m4)))
-vint64m4_t vset(vint64m4_t op0, size_t op1, vint64m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u8m1_u8m4)))
-vuint8m4_t vset(vuint8m4_t op0, size_t op1, vuint8m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u8m2_u8m4)))
-vuint8m4_t vset(vuint8m4_t op0, size_t op1, vuint8m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u16m1_u16m4)))
-vuint16m4_t vset(vuint16m4_t op0, size_t op1, vuint16m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u16m2_u16m4)))
-vuint16m4_t vset(vuint16m4_t op0, size_t op1, vuint16m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u32m1_u32m4)))
-vuint32m4_t vset(vuint32m4_t op0, size_t op1, vuint32m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u32m2_u32m4)))
-vuint32m4_t vset(vuint32m4_t op0, size_t op1, vuint32m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u64m1_u64m4)))
-vuint64m4_t vset(vuint64m4_t op0, size_t op1, vuint64m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u64m2_u64m4)))
-vuint64m4_t vset(vuint64m4_t op0, size_t op1, vuint64m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i8m1_i8m8)))
-vint8m8_t vset(vint8m8_t op0, size_t op1, vint8m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i8m2_i8m8)))
-vint8m8_t vset(vint8m8_t op0, size_t op1, vint8m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i8m4_i8m8)))
-vint8m8_t vset(vint8m8_t op0, size_t op1, vint8m4_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i16m1_i16m8)))
-vint16m8_t vset(vint16m8_t op0, size_t op1, vint16m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i16m2_i16m8)))
-vint16m8_t vset(vint16m8_t op0, size_t op1, vint16m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i16m4_i16m8)))
-vint16m8_t vset(vint16m8_t op0, size_t op1, vint16m4_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i32m1_i32m8)))
-vint32m8_t vset(vint32m8_t op0, size_t op1, vint32m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i32m2_i32m8)))
-vint32m8_t vset(vint32m8_t op0, size_t op1, vint32m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i32m4_i32m8)))
-vint32m8_t vset(vint32m8_t op0, size_t op1, vint32m4_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i64m1_i64m8)))
-vint64m8_t vset(vint64m8_t op0, size_t op1, vint64m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i64m2_i64m8)))
-vint64m8_t vset(vint64m8_t op0, size_t op1, vint64m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i64m4_i64m8)))
-vint64m8_t vset(vint64m8_t op0, size_t op1, vint64m4_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u8m1_u8m8)))
-vuint8m8_t vset(vuint8m8_t op0, size_t op1, vuint8m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u8m2_u8m8)))
-vuint8m8_t vset(vuint8m8_t op0, size_t op1, vuint8m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u8m4_u8m8)))
-vuint8m8_t vset(vuint8m8_t op0, size_t op1, vuint8m4_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u16m1_u16m8)))
-vuint16m8_t vset(vuint16m8_t op0, size_t op1, vuint16m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u16m2_u16m8)))
-vuint16m8_t vset(vuint16m8_t op0, size_t op1, vuint16m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u16m4_u16m8)))
-vuint16m8_t vset(vuint16m8_t op0, size_t op1, vuint16m4_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u32m1_u32m8)))
-vuint32m8_t vset(vuint32m8_t op0, size_t op1, vuint32m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u32m2_u32m8)))
-vuint32m8_t vset(vuint32m8_t op0, size_t op1, vuint32m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u32m4_u32m8)))
-vuint32m8_t vset(vuint32m8_t op0, size_t op1, vuint32m4_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u64m1_u64m8)))
-vuint64m8_t vset(vuint64m8_t op0, size_t op1, vuint64m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u64m2_u64m8)))
-vuint64m8_t vset(vuint64m8_t op0, size_t op1, vuint64m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u64m4_u64m8)))
-vuint64m8_t vset(vuint64m8_t op0, size_t op1, vuint64m4_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8m1)))
-void vsoxei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8m1_m)))
-void vsoxei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8m2)))
-void vsoxei8(int8_t * op0, vuint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8m2_m)))
-void vsoxei8(vbool4_t op0, int8_t * op1, vuint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8m4)))
-void vsoxei8(int8_t * op0, vuint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8m4_m)))
-void vsoxei8(vbool2_t op0, int8_t * op1, vuint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8m8)))
-void vsoxei8(int8_t * op0, vuint8m8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8m8_m)))
-void vsoxei8(vbool1_t op0, int8_t * op1, vuint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8mf2)))
-void vsoxei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8mf2_m)))
-void vsoxei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8mf4)))
-void vsoxei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8mf4_m)))
-void vsoxei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8mf8)))
-void vsoxei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8mf8_m)))
-void vsoxei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8m1)))
-void vsoxei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8m1_m)))
-void vsoxei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8m2)))
-void vsoxei8(uint8_t * op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8m2_m)))
-void vsoxei8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8m4)))
-void vsoxei8(uint8_t * op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8m4_m)))
-void vsoxei8(vbool2_t op0, uint8_t * op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8m8)))
-void vsoxei8(uint8_t * op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8m8_m)))
-void vsoxei8(vbool1_t op0, uint8_t * op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8mf2)))
-void vsoxei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8mf2_m)))
-void vsoxei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8mf4)))
-void vsoxei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8mf4_m)))
-void vsoxei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8mf8)))
-void vsoxei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8mf8_m)))
-void vsoxei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8m1)))
-void vsoxei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8m1_m)))
-void vsoxei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8m2)))
-void vsoxei16(int8_t * op0, vuint16m4_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8m2_m)))
-void vsoxei16(vbool4_t op0, int8_t * op1, vuint16m4_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8m4)))
-void vsoxei16(int8_t * op0, vuint16m8_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8m4_m)))
-void vsoxei16(vbool2_t op0, int8_t * op1, vuint16m8_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8mf2)))
-void vsoxei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8mf2_m)))
-void vsoxei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8mf4)))
-void vsoxei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8mf4_m)))
-void vsoxei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8mf8)))
-void vsoxei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8mf8_m)))
-void vsoxei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8m1)))
-void vsoxei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8m1_m)))
-void vsoxei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8m2)))
-void vsoxei16(uint8_t * op0, vuint16m4_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8m2_m)))
-void vsoxei16(vbool4_t op0, uint8_t * op1, vuint16m4_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8m4)))
-void vsoxei16(uint8_t * op0, vuint16m8_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8m4_m)))
-void vsoxei16(vbool2_t op0, uint8_t * op1, vuint16m8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8mf2)))
-void vsoxei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8mf2_m)))
-void vsoxei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8mf4)))
-void vsoxei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8mf4_m)))
-void vsoxei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8mf8)))
-void vsoxei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8mf8_m)))
-void vsoxei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i8m1)))
-void vsoxei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i8m1_m)))
-void vsoxei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i8m2)))
-void vsoxei32(int8_t * op0, vuint32m8_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i8m2_m)))
-void vsoxei32(vbool4_t op0, int8_t * op1, vuint32m8_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i8mf2)))
-void vsoxei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i8mf2_m)))
-void vsoxei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i8mf4)))
-void vsoxei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i8mf4_m)))
-void vsoxei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i8mf8)))
-void vsoxei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i8mf8_m)))
-void vsoxei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u8m1)))
-void vsoxei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u8m1_m)))
-void vsoxei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u8m2)))
-void vsoxei32(uint8_t * op0, vuint32m8_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u8m2_m)))
-void vsoxei32(vbool4_t op0, uint8_t * op1, vuint32m8_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u8mf2)))
-void vsoxei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u8mf2_m)))
-void vsoxei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u8mf4)))
-void vsoxei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u8mf4_m)))
-void vsoxei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u8mf8)))
-void vsoxei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u8mf8_m)))
-void vsoxei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i8m1)))
-void vsoxei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i8m1_m)))
-void vsoxei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i8mf2)))
-void vsoxei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i8mf2_m)))
-void vsoxei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i8mf4)))
-void vsoxei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i8mf4_m)))
-void vsoxei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i8mf8)))
-void vsoxei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i8mf8_m)))
-void vsoxei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u8m1)))
-void vsoxei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u8m1_m)))
-void vsoxei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u8mf2)))
-void vsoxei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u8mf2_m)))
-void vsoxei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u8mf4)))
-void vsoxei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u8mf4_m)))
-void vsoxei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u8mf8)))
-void vsoxei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u8mf8_m)))
-void vsoxei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16m1)))
-void vsoxei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16m1_m)))
-void vsoxei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16m2)))
-void vsoxei8(int16_t * op0, vuint8m1_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16m2_m)))
-void vsoxei8(vbool8_t op0, int16_t * op1, vuint8m1_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16m4)))
-void vsoxei8(int16_t * op0, vuint8m2_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16m4_m)))
-void vsoxei8(vbool4_t op0, int16_t * op1, vuint8m2_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16m8)))
-void vsoxei8(int16_t * op0, vuint8m4_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16m8_m)))
-void vsoxei8(vbool2_t op0, int16_t * op1, vuint8m4_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16mf2)))
-void vsoxei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16mf2_m)))
-void vsoxei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16mf4)))
-void vsoxei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16mf4_m)))
-void vsoxei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16m1)))
-void vsoxei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16m1_m)))
-void vsoxei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16m2)))
-void vsoxei8(uint16_t * op0, vuint8m1_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16m2_m)))
-void vsoxei8(vbool8_t op0, uint16_t * op1, vuint8m1_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16m4)))
-void vsoxei8(uint16_t * op0, vuint8m2_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16m4_m)))
-void vsoxei8(vbool4_t op0, uint16_t * op1, vuint8m2_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16m8)))
-void vsoxei8(uint16_t * op0, vuint8m4_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16m8_m)))
-void vsoxei8(vbool2_t op0, uint16_t * op1, vuint8m4_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16mf2)))
-void vsoxei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16mf2_m)))
-void vsoxei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16mf4)))
-void vsoxei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16mf4_m)))
-void vsoxei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16m1)))
-void vsoxei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16m1_m)))
-void vsoxei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16m2)))
-void vsoxei16(int16_t * op0, vuint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16m2_m)))
-void vsoxei16(vbool8_t op0, int16_t * op1, vuint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16m4)))
-void vsoxei16(int16_t * op0, vuint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16m4_m)))
-void vsoxei16(vbool4_t op0, int16_t * op1, vuint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16m8)))
-void vsoxei16(int16_t * op0, vuint16m8_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16m8_m)))
-void vsoxei16(vbool2_t op0, int16_t * op1, vuint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16mf2)))
-void vsoxei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16mf2_m)))
-void vsoxei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16mf4)))
-void vsoxei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16mf4_m)))
-void vsoxei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16m1)))
-void vsoxei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16m1_m)))
-void vsoxei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16m2)))
-void vsoxei16(uint16_t * op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16m2_m)))
-void vsoxei16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16m4)))
-void vsoxei16(uint16_t * op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16m4_m)))
-void vsoxei16(vbool4_t op0, uint16_t * op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16m8)))
-void vsoxei16(uint16_t * op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16m8_m)))
-void vsoxei16(vbool2_t op0, uint16_t * op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16mf2)))
-void vsoxei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16mf2_m)))
-void vsoxei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16mf4)))
-void vsoxei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16mf4_m)))
-void vsoxei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i16m1)))
-void vsoxei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i16m1_m)))
-void vsoxei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i16m2)))
-void vsoxei32(int16_t * op0, vuint32m4_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i16m2_m)))
-void vsoxei32(vbool8_t op0, int16_t * op1, vuint32m4_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i16m4)))
-void vsoxei32(int16_t * op0, vuint32m8_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i16m4_m)))
-void vsoxei32(vbool4_t op0, int16_t * op1, vuint32m8_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i16mf2)))
-void vsoxei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i16mf2_m)))
-void vsoxei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i16mf4)))
-void vsoxei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i16mf4_m)))
-void vsoxei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u16m1)))
-void vsoxei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u16m1_m)))
-void vsoxei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u16m2)))
-void vsoxei32(uint16_t * op0, vuint32m4_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u16m2_m)))
-void vsoxei32(vbool8_t op0, uint16_t * op1, vuint32m4_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u16m4)))
-void vsoxei32(uint16_t * op0, vuint32m8_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u16m4_m)))
-void vsoxei32(vbool4_t op0, uint16_t * op1, vuint32m8_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u16mf2)))
-void vsoxei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u16mf2_m)))
-void vsoxei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u16mf4)))
-void vsoxei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u16mf4_m)))
-void vsoxei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i16m1)))
-void vsoxei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i16m1_m)))
-void vsoxei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i16m2)))
-void vsoxei64(int16_t * op0, vuint64m8_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i16m2_m)))
-void vsoxei64(vbool8_t op0, int16_t * op1, vuint64m8_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i16mf2)))
-void vsoxei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i16mf2_m)))
-void vsoxei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i16mf4)))
-void vsoxei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i16mf4_m)))
-void vsoxei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u16m1)))
-void vsoxei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u16m1_m)))
-void vsoxei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u16m2)))
-void vsoxei64(uint16_t * op0, vuint64m8_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u16m2_m)))
-void vsoxei64(vbool8_t op0, uint16_t * op1, vuint64m8_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u16mf2)))
-void vsoxei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u16mf2_m)))
-void vsoxei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u16mf4)))
-void vsoxei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u16mf4_m)))
-void vsoxei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i32m1)))
-void vsoxei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i32m1_m)))
-void vsoxei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i32m2)))
-void vsoxei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i32m2_m)))
-void vsoxei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i32m4)))
-void vsoxei8(int32_t * op0, vuint8m1_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i32m4_m)))
-void vsoxei8(vbool8_t op0, int32_t * op1, vuint8m1_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i32m8)))
-void vsoxei8(int32_t * op0, vuint8m2_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i32m8_m)))
-void vsoxei8(vbool4_t op0, int32_t * op1, vuint8m2_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i32mf2)))
-void vsoxei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i32mf2_m)))
-void vsoxei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u32m1)))
-void vsoxei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u32m1_m)))
-void vsoxei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u32m2)))
-void vsoxei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u32m2_m)))
-void vsoxei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u32m4)))
-void vsoxei8(uint32_t * op0, vuint8m1_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u32m4_m)))
-void vsoxei8(vbool8_t op0, uint32_t * op1, vuint8m1_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u32m8)))
-void vsoxei8(uint32_t * op0, vuint8m2_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u32m8_m)))
-void vsoxei8(vbool4_t op0, uint32_t * op1, vuint8m2_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u32mf2)))
-void vsoxei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u32mf2_m)))
-void vsoxei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i32m1)))
-void vsoxei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i32m1_m)))
-void vsoxei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i32m2)))
-void vsoxei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i32m2_m)))
-void vsoxei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i32m4)))
-void vsoxei16(int32_t * op0, vuint16m2_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i32m4_m)))
-void vsoxei16(vbool8_t op0, int32_t * op1, vuint16m2_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i32m8)))
-void vsoxei16(int32_t * op0, vuint16m4_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i32m8_m)))
-void vsoxei16(vbool4_t op0, int32_t * op1, vuint16m4_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i32mf2)))
-void vsoxei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i32mf2_m)))
-void vsoxei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u32m1)))
-void vsoxei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u32m1_m)))
-void vsoxei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u32m2)))
-void vsoxei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u32m2_m)))
-void vsoxei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u32m4)))
-void vsoxei16(uint32_t * op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u32m4_m)))
-void vsoxei16(vbool8_t op0, uint32_t * op1, vuint16m2_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u32m8)))
-void vsoxei16(uint32_t * op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u32m8_m)))
-void vsoxei16(vbool4_t op0, uint32_t * op1, vuint16m4_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u32mf2)))
-void vsoxei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u32mf2_m)))
-void vsoxei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i32m1)))
-void vsoxei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i32m1_m)))
-void vsoxei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i32m2)))
-void vsoxei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i32m2_m)))
-void vsoxei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i32m4)))
-void vsoxei32(int32_t * op0, vuint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i32m4_m)))
-void vsoxei32(vbool8_t op0, int32_t * op1, vuint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i32m8)))
-void vsoxei32(int32_t * op0, vuint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i32m8_m)))
-void vsoxei32(vbool4_t op0, int32_t * op1, vuint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i32mf2)))
-void vsoxei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i32mf2_m)))
-void vsoxei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u32m1)))
-void vsoxei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u32m1_m)))
-void vsoxei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u32m2)))
-void vsoxei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u32m2_m)))
-void vsoxei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u32m4)))
-void vsoxei32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u32m4_m)))
-void vsoxei32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u32m8)))
-void vsoxei32(uint32_t * op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u32m8_m)))
-void vsoxei32(vbool4_t op0, uint32_t * op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u32mf2)))
-void vsoxei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u32mf2_m)))
-void vsoxei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i32m1)))
-void vsoxei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i32m1_m)))
-void vsoxei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i32m2)))
-void vsoxei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i32m2_m)))
-void vsoxei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i32m4)))
-void vsoxei64(int32_t * op0, vuint64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i32m4_m)))
-void vsoxei64(vbool8_t op0, int32_t * op1, vuint64m8_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i32mf2)))
-void vsoxei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i32mf2_m)))
-void vsoxei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u32m1)))
-void vsoxei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u32m1_m)))
-void vsoxei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u32m2)))
-void vsoxei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u32m2_m)))
-void vsoxei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u32m4)))
-void vsoxei64(uint32_t * op0, vuint64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u32m4_m)))
-void vsoxei64(vbool8_t op0, uint32_t * op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u32mf2)))
-void vsoxei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u32mf2_m)))
-void vsoxei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i64m1)))
-void vsoxei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i64m1_m)))
-void vsoxei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i64m2)))
-void vsoxei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i64m2_m)))
-void vsoxei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i64m4)))
-void vsoxei8(int64_t * op0, vuint8mf2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i64m4_m)))
-void vsoxei8(vbool16_t op0, int64_t * op1, vuint8mf2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i64m8)))
-void vsoxei8(int64_t * op0, vuint8m1_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i64m8_m)))
-void vsoxei8(vbool8_t op0, int64_t * op1, vuint8m1_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u64m1)))
-void vsoxei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u64m1_m)))
-void vsoxei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u64m2)))
-void vsoxei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u64m2_m)))
-void vsoxei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u64m4)))
-void vsoxei8(uint64_t * op0, vuint8mf2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u64m4_m)))
-void vsoxei8(vbool16_t op0, uint64_t * op1, vuint8mf2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u64m8)))
-void vsoxei8(uint64_t * op0, vuint8m1_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u64m8_m)))
-void vsoxei8(vbool8_t op0, uint64_t * op1, vuint8m1_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i64m1)))
-void vsoxei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i64m1_m)))
-void vsoxei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i64m2)))
-void vsoxei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i64m2_m)))
-void vsoxei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i64m4)))
-void vsoxei16(int64_t * op0, vuint16m1_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i64m4_m)))
-void vsoxei16(vbool16_t op0, int64_t * op1, vuint16m1_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i64m8)))
-void vsoxei16(int64_t * op0, vuint16m2_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i64m8_m)))
-void vsoxei16(vbool8_t op0, int64_t * op1, vuint16m2_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u64m1)))
-void vsoxei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u64m1_m)))
-void vsoxei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u64m2)))
-void vsoxei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u64m2_m)))
-void vsoxei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u64m4)))
-void vsoxei16(uint64_t * op0, vuint16m1_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u64m4_m)))
-void vsoxei16(vbool16_t op0, uint64_t * op1, vuint16m1_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u64m8)))
-void vsoxei16(uint64_t * op0, vuint16m2_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u64m8_m)))
-void vsoxei16(vbool8_t op0, uint64_t * op1, vuint16m2_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i64m1)))
-void vsoxei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i64m1_m)))
-void vsoxei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i64m2)))
-void vsoxei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i64m2_m)))
-void vsoxei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i64m4)))
-void vsoxei32(int64_t * op0, vuint32m2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i64m4_m)))
-void vsoxei32(vbool16_t op0, int64_t * op1, vuint32m2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i64m8)))
-void vsoxei32(int64_t * op0, vuint32m4_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i64m8_m)))
-void vsoxei32(vbool8_t op0, int64_t * op1, vuint32m4_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u64m1)))
-void vsoxei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u64m1_m)))
-void vsoxei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u64m2)))
-void vsoxei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u64m2_m)))
-void vsoxei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u64m4)))
-void vsoxei32(uint64_t * op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u64m4_m)))
-void vsoxei32(vbool16_t op0, uint64_t * op1, vuint32m2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u64m8)))
-void vsoxei32(uint64_t * op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u64m8_m)))
-void vsoxei32(vbool8_t op0, uint64_t * op1, vuint32m4_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i64m1)))
-void vsoxei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i64m1_m)))
-void vsoxei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i64m2)))
-void vsoxei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i64m2_m)))
-void vsoxei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i64m4)))
-void vsoxei64(int64_t * op0, vuint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i64m4_m)))
-void vsoxei64(vbool16_t op0, int64_t * op1, vuint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i64m8)))
-void vsoxei64(int64_t * op0, vuint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i64m8_m)))
-void vsoxei64(vbool8_t op0, int64_t * op1, vuint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u64m1)))
-void vsoxei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u64m1_m)))
-void vsoxei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u64m2)))
-void vsoxei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u64m2_m)))
-void vsoxei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u64m4)))
-void vsoxei64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u64m4_m)))
-void vsoxei64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u64m8)))
-void vsoxei64(uint64_t * op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u64m8_m)))
-void vsoxei64(vbool8_t op0, uint64_t * op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_i16m1_m)))
-vint16m1_t vle16ff(vbool16_t op0, vint16m1_t op1, const int16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_i16m2_m)))
-vint16m2_t vle16ff(vbool8_t op0, vint16m2_t op1, const int16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_i16m4_m)))
-vint16m4_t vle16ff(vbool4_t op0, vint16m4_t op1, const int16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_i16m8_m)))
-vint16m8_t vle16ff(vbool2_t op0, vint16m8_t op1, const int16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_i16mf2_m)))
-vint16mf2_t vle16ff(vbool32_t op0, vint16mf2_t op1, const int16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_i16mf4_m)))
-vint16mf4_t vle16ff(vbool64_t op0, vint16mf4_t op1, const int16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_u16m1_m)))
-vuint16m1_t vle16ff(vbool16_t op0, vuint16m1_t op1, const uint16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_u16m2_m)))
-vuint16m2_t vle16ff(vbool8_t op0, vuint16m2_t op1, const uint16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_u16m4_m)))
-vuint16m4_t vle16ff(vbool4_t op0, vuint16m4_t op1, const uint16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_u16m8_m)))
-vuint16m8_t vle16ff(vbool2_t op0, vuint16m8_t op1, const uint16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_u16mf2_m)))
-vuint16mf2_t vle16ff(vbool32_t op0, vuint16mf2_t op1, const uint16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_u16mf4_m)))
-vuint16mf4_t vle16ff(vbool64_t op0, vuint16mf4_t op1, const uint16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_i32m1_m)))
-vint32m1_t vle32ff(vbool32_t op0, vint32m1_t op1, const int32_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_i32m2_m)))
-vint32m2_t vle32ff(vbool16_t op0, vint32m2_t op1, const int32_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_i32m4_m)))
-vint32m4_t vle32ff(vbool8_t op0, vint32m4_t op1, const int32_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_i32m8_m)))
-vint32m8_t vle32ff(vbool4_t op0, vint32m8_t op1, const int32_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_i32mf2_m)))
-vint32mf2_t vle32ff(vbool64_t op0, vint32mf2_t op1, const int32_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_u32m1_m)))
-vuint32m1_t vle32ff(vbool32_t op0, vuint32m1_t op1, const uint32_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_u32m2_m)))
-vuint32m2_t vle32ff(vbool16_t op0, vuint32m2_t op1, const uint32_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_u32m4_m)))
-vuint32m4_t vle32ff(vbool8_t op0, vuint32m4_t op1, const uint32_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_u32m8_m)))
-vuint32m8_t vle32ff(vbool4_t op0, vuint32m8_t op1, const uint32_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_u32mf2_m)))
-vuint32mf2_t vle32ff(vbool64_t op0, vuint32mf2_t op1, const uint32_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_i64m1_m)))
-vint64m1_t vle64ff(vbool64_t op0, vint64m1_t op1, const int64_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_i64m2_m)))
-vint64m2_t vle64ff(vbool32_t op0, vint64m2_t op1, const int64_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_i64m4_m)))
-vint64m4_t vle64ff(vbool16_t op0, vint64m4_t op1, const int64_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_i64m8_m)))
-vint64m8_t vle64ff(vbool8_t op0, vint64m8_t op1, const int64_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_u64m1_m)))
-vuint64m1_t vle64ff(vbool64_t op0, vuint64m1_t op1, const uint64_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_u64m2_m)))
-vuint64m2_t vle64ff(vbool32_t op0, vuint64m2_t op1, const uint64_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_u64m4_m)))
-vuint64m4_t vle64ff(vbool16_t op0, vuint64m4_t op1, const uint64_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_u64m8_m)))
-vuint64m8_t vle64ff(vbool8_t op0, vuint64m8_t op1, const uint64_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_i8m1_m)))
-vint8m1_t vle8(vbool8_t op0, vint8m1_t op1, const int8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_i8m2_m)))
-vint8m2_t vle8(vbool4_t op0, vint8m2_t op1, const int8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_i8m4_m)))
-vint8m4_t vle8(vbool2_t op0, vint8m4_t op1, const int8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_i8m8_m)))
-vint8m8_t vle8(vbool1_t op0, vint8m8_t op1, const int8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_i8mf2_m)))
-vint8mf2_t vle8(vbool16_t op0, vint8mf2_t op1, const int8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_i8mf4_m)))
-vint8mf4_t vle8(vbool32_t op0, vint8mf4_t op1, const int8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_i8mf8_m)))
-vint8mf8_t vle8(vbool64_t op0, vint8mf8_t op1, const int8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_u8m1_m)))
-vuint8m1_t vle8(vbool8_t op0, vuint8m1_t op1, const uint8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_u8m2_m)))
-vuint8m2_t vle8(vbool4_t op0, vuint8m2_t op1, const uint8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_u8m4_m)))
-vuint8m4_t vle8(vbool2_t op0, vuint8m4_t op1, const uint8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_u8m8_m)))
-vuint8m8_t vle8(vbool1_t op0, vuint8m8_t op1, const uint8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_u8mf2_m)))
-vuint8mf2_t vle8(vbool16_t op0, vuint8mf2_t op1, const uint8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_u8mf4_m)))
-vuint8mf4_t vle8(vbool32_t op0, vuint8mf4_t op1, const uint8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_u8mf8_m)))
-vuint8mf8_t vle8(vbool64_t op0, vuint8mf8_t op1, const uint8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_i8m1_m)))
-vint8m1_t vle8ff(vbool8_t op0, vint8m1_t op1, const int8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_i8m2_m)))
-vint8m2_t vle8ff(vbool4_t op0, vint8m2_t op1, const int8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_i8m4_m)))
-vint8m4_t vle8ff(vbool2_t op0, vint8m4_t op1, const int8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_i8m8_m)))
-vint8m8_t vle8ff(vbool1_t op0, vint8m8_t op1, const int8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_i8mf2_m)))
-vint8mf2_t vle8ff(vbool16_t op0, vint8mf2_t op1, const int8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_i8mf4_m)))
-vint8mf4_t vle8ff(vbool32_t op0, vint8mf4_t op1, const int8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_i8mf8_m)))
-vint8mf8_t vle8ff(vbool64_t op0, vint8mf8_t op1, const int8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_u8m1_m)))
-vuint8m1_t vle8ff(vbool8_t op0, vuint8m1_t op1, const uint8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_u8m2_m)))
-vuint8m2_t vle8ff(vbool4_t op0, vuint8m2_t op1, const uint8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_u8m4_m)))
-vuint8m4_t vle8ff(vbool2_t op0, vuint8m4_t op1, const uint8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_u8m8_m)))
-vuint8m8_t vle8ff(vbool1_t op0, vuint8m8_t op1, const uint8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_u8mf2_m)))
-vuint8mf2_t vle8ff(vbool16_t op0, vuint8mf2_t op1, const uint8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_u8mf4_m)))
-vuint8mf4_t vle8ff(vbool32_t op0, vuint8mf4_t op1, const uint8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_u8mf8_m)))
-vuint8mf8_t vle8ff(vbool64_t op0, vuint8mf8_t op1, const uint8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8m1)))
-vint8m1_t vneg(vint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8m1_m)))
-vint8m1_t vneg(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8m2)))
-vint8m2_t vneg(vint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8m2_m)))
-vint8m2_t vneg(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8m4)))
-vint8m4_t vneg(vint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8m4_m)))
-vint8m4_t vneg(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8m8)))
-vint8m8_t vneg(vint8m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8m8_m)))
-vint8m8_t vneg(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8mf2)))
-vint8mf2_t vneg(vint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8mf2_m)))
-vint8mf2_t vneg(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8mf4)))
-vint8mf4_t vneg(vint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8mf4_m)))
-vint8mf4_t vneg(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8mf8)))
-vint8mf8_t vneg(vint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8mf8_m)))
-vint8mf8_t vneg(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16m1)))
-vint16m1_t vneg(vint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16m1_m)))
-vint16m1_t vneg(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16m2)))
-vint16m2_t vneg(vint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16m2_m)))
-vint16m2_t vneg(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16m4)))
-vint16m4_t vneg(vint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16m4_m)))
-vint16m4_t vneg(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16m8)))
-vint16m8_t vneg(vint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16m8_m)))
-vint16m8_t vneg(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16mf2)))
-vint16mf2_t vneg(vint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16mf2_m)))
-vint16mf2_t vneg(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16mf4)))
-vint16mf4_t vneg(vint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16mf4_m)))
-vint16mf4_t vneg(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i32m1)))
-vint32m1_t vneg(vint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i32m1_m)))
-vint32m1_t vneg(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i32m2)))
-vint32m2_t vneg(vint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i32m2_m)))
-vint32m2_t vneg(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i32m4)))
-vint32m4_t vneg(vint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i32m4_m)))
-vint32m4_t vneg(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i32m8)))
-vint32m8_t vneg(vint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i32m8_m)))
-vint32m8_t vneg(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i32mf2)))
-vint32mf2_t vneg(vint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i32mf2_m)))
-vint32mf2_t vneg(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i64m1)))
-vint64m1_t vneg(vint64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i64m1_m)))
-vint64m1_t vneg(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i64m2)))
-vint64m2_t vneg(vint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i64m2_m)))
-vint64m2_t vneg(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i64m4)))
-vint64m4_t vneg(vint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i64m4_m)))
-vint64m4_t vneg(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i64m8)))
-vint64m8_t vneg(vint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i64m8_m)))
-vint64m8_t vneg(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8m1)))
-vint8m1_t vnot(vint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8m1_m)))
-vint8m1_t vnot(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8m2)))
-vint8m2_t vnot(vint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8m2_m)))
-vint8m2_t vnot(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8m4)))
-vint8m4_t vnot(vint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8m4_m)))
-vint8m4_t vnot(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8m8)))
-vint8m8_t vnot(vint8m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8m8_m)))
-vint8m8_t vnot(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8mf2)))
-vint8mf2_t vnot(vint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8mf2_m)))
-vint8mf2_t vnot(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8mf4)))
-vint8mf4_t vnot(vint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8mf4_m)))
-vint8mf4_t vnot(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8mf8)))
-vint8mf8_t vnot(vint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8mf8_m)))
-vint8mf8_t vnot(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16m1)))
-vint16m1_t vnot(vint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16m1_m)))
-vint16m1_t vnot(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16m2)))
-vint16m2_t vnot(vint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16m2_m)))
-vint16m2_t vnot(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16m4)))
-vint16m4_t vnot(vint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16m4_m)))
-vint16m4_t vnot(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16m8)))
-vint16m8_t vnot(vint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16m8_m)))
-vint16m8_t vnot(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16mf2)))
-vint16mf2_t vnot(vint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16mf2_m)))
-vint16mf2_t vnot(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16mf4)))
-vint16mf4_t vnot(vint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16mf4_m)))
-vint16mf4_t vnot(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i32m1)))
-vint32m1_t vnot(vint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i32m1_m)))
-vint32m1_t vnot(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i32m2)))
-vint32m2_t vnot(vint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i32m2_m)))
-vint32m2_t vnot(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i32m4)))
-vint32m4_t vnot(vint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i32m4_m)))
-vint32m4_t vnot(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i32m8)))
-vint32m8_t vnot(vint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i32m8_m)))
-vint32m8_t vnot(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i32mf2)))
-vint32mf2_t vnot(vint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i32mf2_m)))
-vint32mf2_t vnot(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i64m1)))
-vint64m1_t vnot(vint64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i64m1_m)))
-vint64m1_t vnot(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i64m2)))
-vint64m2_t vnot(vint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i64m2_m)))
-vint64m2_t vnot(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i64m4)))
-vint64m4_t vnot(vint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i64m4_m)))
-vint64m4_t vnot(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i64m8)))
-vint64m8_t vnot(vint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i64m8_m)))
-vint64m8_t vnot(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_i8m1_m)))
-vint8m1_t vlse8(vbool8_t op0, vint8m1_t op1, const int8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_i8m2_m)))
-vint8m2_t vlse8(vbool4_t op0, vint8m2_t op1, const int8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_i8m4_m)))
-vint8m4_t vlse8(vbool2_t op0, vint8m4_t op1, const int8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_i8m8_m)))
-vint8m8_t vlse8(vbool1_t op0, vint8m8_t op1, const int8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_i8mf2_m)))
-vint8mf2_t vlse8(vbool16_t op0, vint8mf2_t op1, const int8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_i8mf4_m)))
-vint8mf4_t vlse8(vbool32_t op0, vint8mf4_t op1, const int8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_i8mf8_m)))
-vint8mf8_t vlse8(vbool64_t op0, vint8mf8_t op1, const int8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8m1)))
-vuint8m1_t vnot(vuint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8m1_m)))
-vuint8m1_t vnot(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8m2)))
-vuint8m2_t vnot(vuint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8m2_m)))
-vuint8m2_t vnot(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8m4)))
-vuint8m4_t vnot(vuint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8m4_m)))
-vuint8m4_t vnot(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8m8)))
-vuint8m8_t vnot(vuint8m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8m8_m)))
-vuint8m8_t vnot(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8mf2)))
-vuint8mf2_t vnot(vuint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8mf2_m)))
-vuint8mf2_t vnot(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8mf4)))
-vuint8mf4_t vnot(vuint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8mf4_m)))
-vuint8mf4_t vnot(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8mf8)))
-vuint8mf8_t vnot(vuint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8mf8_m)))
-vuint8mf8_t vnot(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16m1)))
-vuint16m1_t vnot(vuint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16m1_m)))
-vuint16m1_t vnot(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16m2)))
-vuint16m2_t vnot(vuint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16m2_m)))
-vuint16m2_t vnot(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16m4)))
-vuint16m4_t vnot(vuint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16m4_m)))
-vuint16m4_t vnot(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16m8)))
-vuint16m8_t vnot(vuint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16m8_m)))
-vuint16m8_t vnot(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16mf2)))
-vuint16mf2_t vnot(vuint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16mf2_m)))
-vuint16mf2_t vnot(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16mf4)))
-vuint16mf4_t vnot(vuint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16mf4_m)))
-vuint16mf4_t vnot(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u32m1)))
-vuint32m1_t vnot(vuint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u32m1_m)))
-vuint32m1_t vnot(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u32m2)))
-vuint32m2_t vnot(vuint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u32m2_m)))
-vuint32m2_t vnot(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u32m4)))
-vuint32m4_t vnot(vuint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u32m4_m)))
-vuint32m4_t vnot(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u32m8)))
-vuint32m8_t vnot(vuint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u32m8_m)))
-vuint32m8_t vnot(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u32mf2)))
-vuint32mf2_t vnot(vuint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u32mf2_m)))
-vuint32mf2_t vnot(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u64m1)))
-vuint64m1_t vnot(vuint64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u64m1_m)))
-vuint64m1_t vnot(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u64m2)))
-vuint64m2_t vnot(vuint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u64m2_m)))
-vuint64m2_t vnot(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u64m4)))
-vuint64m4_t vnot(vuint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u64m4_m)))
-vuint64m4_t vnot(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u64m8)))
-vuint64m8_t vnot(vuint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u64m8_m)))
-vuint64m8_t vnot(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmmv_m_b8)))
-vbool8_t vmmv(vbool8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmmv_m_b4)))
-vbool4_t vmmv(vbool4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmmv_m_b2)))
-vbool2_t vmmv(vbool2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmmv_m_b1)))
-vbool1_t vmmv(vbool1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmmv_m_b16)))
-vbool16_t vmmv(vbool16_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmmv_m_b32)))
-vbool32_t vmmv(vbool32_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmmv_m_b64)))
-vbool64_t vmmv(vbool64_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16m2)))
-vuint16m2_t vwcvtu_x(vuint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16m2_m)))
-vuint16m2_t vwcvtu_x(vbool8_t op0, vuint16m2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16m4)))
-vuint16m4_t vwcvtu_x(vuint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16m4_m)))
-vuint16m4_t vwcvtu_x(vbool4_t op0, vuint16m4_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16m8)))
-vuint16m8_t vwcvtu_x(vuint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16m8_m)))
-vuint16m8_t vwcvtu_x(vbool2_t op0, vuint16m8_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16m1)))
-vuint16m1_t vwcvtu_x(vuint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16m1_m)))
-vuint16m1_t vwcvtu_x(vbool16_t op0, vuint16m1_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16mf2)))
-vuint16mf2_t vwcvtu_x(vuint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16mf2_m)))
-vuint16mf2_t vwcvtu_x(vbool32_t op0, vuint16mf2_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16mf4)))
-vuint16mf4_t vwcvtu_x(vuint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16mf4_m)))
-vuint16mf4_t vwcvtu_x(vbool64_t op0, vuint16mf4_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u32m2)))
-vuint32m2_t vwcvtu_x(vuint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u32m2_m)))
-vuint32m2_t vwcvtu_x(vbool16_t op0, vuint32m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u32m4)))
-vuint32m4_t vwcvtu_x(vuint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u32m4_m)))
-vuint32m4_t vwcvtu_x(vbool8_t op0, vuint32m4_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u32m8)))
-vuint32m8_t vwcvtu_x(vuint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u32m8_m)))
-vuint32m8_t vwcvtu_x(vbool4_t op0, vuint32m8_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u32m1)))
-vuint32m1_t vwcvtu_x(vuint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u32m1_m)))
-vuint32m1_t vwcvtu_x(vbool32_t op0, vuint32m1_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u32mf2)))
-vuint32mf2_t vwcvtu_x(vuint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u32mf2_m)))
-vuint32mf2_t vwcvtu_x(vbool64_t op0, vuint32mf2_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u64m2)))
-vuint64m2_t vwcvtu_x(vuint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u64m2_m)))
-vuint64m2_t vwcvtu_x(vbool32_t op0, vuint64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u64m4)))
-vuint64m4_t vwcvtu_x(vuint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u64m4_m)))
-vuint64m4_t vwcvtu_x(vbool16_t op0, vuint64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u64m8)))
-vuint64m8_t vwcvtu_x(vuint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u64m8_m)))
-vuint64m8_t vwcvtu_x(vbool8_t op0, vuint64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u64m1)))
-vuint64m1_t vwcvtu_x(vuint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u64m1_m)))
-vuint64m1_t vwcvtu_x(vbool64_t op0, vuint64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8m1)))
-vint8m1_t vncvt_x(vint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8m1_m)))
-vint8m1_t vncvt_x(vbool8_t op0, vint8m1_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8m2)))
-vint8m2_t vncvt_x(vint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8m2_m)))
-vint8m2_t vncvt_x(vbool4_t op0, vint8m2_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8m4)))
-vint8m4_t vncvt_x(vint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8m4_m)))
-vint8m4_t vncvt_x(vbool2_t op0, vint8m4_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8mf2)))
-vint8mf2_t vncvt_x(vint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8mf2_m)))
-vint8mf2_t vncvt_x(vbool16_t op0, vint8mf2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8mf4)))
-vint8mf4_t vncvt_x(vint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8mf4_m)))
-vint8mf4_t vncvt_x(vbool32_t op0, vint8mf4_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8mf8)))
-vint8mf8_t vncvt_x(vint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8mf8_m)))
-vint8mf8_t vncvt_x(vbool64_t op0, vint8mf8_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i16m1)))
-vint16m1_t vncvt_x(vint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i16m1_m)))
-vint16m1_t vncvt_x(vbool16_t op0, vint16m1_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i16m2)))
-vint16m2_t vncvt_x(vint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i16m2_m)))
-vint16m2_t vncvt_x(vbool8_t op0, vint16m2_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i16m4)))
-vint16m4_t vncvt_x(vint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i16m4_m)))
-vint16m4_t vncvt_x(vbool4_t op0, vint16m4_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i16mf2)))
-vint16mf2_t vncvt_x(vint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i16mf2_m)))
-vint16mf2_t vncvt_x(vbool32_t op0, vint16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i16mf4)))
-vint16mf4_t vncvt_x(vint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i16mf4_m)))
-vint16mf4_t vncvt_x(vbool64_t op0, vint16mf4_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i32m1)))
-vint32m1_t vncvt_x(vint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i32m1_m)))
-vint32m1_t vncvt_x(vbool32_t op0, vint32m1_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i32m2)))
-vint32m2_t vncvt_x(vint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i32m2_m)))
-vint32m2_t vncvt_x(vbool16_t op0, vint32m2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i32m4)))
-vint32m4_t vncvt_x(vint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i32m4_m)))
-vint32m4_t vncvt_x(vbool8_t op0, vint32m4_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i32mf2)))
-vint32mf2_t vncvt_x(vint64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i32mf2_m)))
-vint32mf2_t vncvt_x(vbool64_t op0, vint32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_i16m1_m)))
-vint16m1_t vle16(vbool16_t op0, vint16m1_t op1, const int16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_i16m2_m)))
-vint16m2_t vle16(vbool8_t op0, vint16m2_t op1, const int16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_i16m4_m)))
-vint16m4_t vle16(vbool4_t op0, vint16m4_t op1, const int16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_i16m8_m)))
-vint16m8_t vle16(vbool2_t op0, vint16m8_t op1, const int16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_i16mf2_m)))
-vint16mf2_t vle16(vbool32_t op0, vint16mf2_t op1, const int16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_i16mf4_m)))
-vint16mf4_t vle16(vbool64_t op0, vint16mf4_t op1, const int16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_u16m1_m)))
-vuint16m1_t vle16(vbool16_t op0, vuint16m1_t op1, const uint16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_u16m2_m)))
-vuint16m2_t vle16(vbool8_t op0, vuint16m2_t op1, const uint16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_u16m4_m)))
-vuint16m4_t vle16(vbool4_t op0, vuint16m4_t op1, const uint16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_u16m8_m)))
-vuint16m8_t vle16(vbool2_t op0, vuint16m8_t op1, const uint16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_u16mf2_m)))
-vuint16mf2_t vle16(vbool32_t op0, vuint16mf2_t op1, const uint16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_u16mf4_m)))
-vuint16mf4_t vle16(vbool64_t op0, vuint16mf4_t op1, const uint16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_i32m1_m)))
-vint32m1_t vle32(vbool32_t op0, vint32m1_t op1, const int32_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_i32m2_m)))
-vint32m2_t vle32(vbool16_t op0, vint32m2_t op1, const int32_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_i32m4_m)))
-vint32m4_t vle32(vbool8_t op0, vint32m4_t op1, const int32_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_i32m8_m)))
-vint32m8_t vle32(vbool4_t op0, vint32m8_t op1, const int32_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_i32mf2_m)))
-vint32mf2_t vle32(vbool64_t op0, vint32mf2_t op1, const int32_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_u32m1_m)))
-vuint32m1_t vle32(vbool32_t op0, vuint32m1_t op1, const uint32_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_u32m2_m)))
-vuint32m2_t vle32(vbool16_t op0, vuint32m2_t op1, const uint32_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_u32m4_m)))
-vuint32m4_t vle32(vbool8_t op0, vuint32m4_t op1, const uint32_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_u32m8_m)))
-vuint32m8_t vle32(vbool4_t op0, vuint32m8_t op1, const uint32_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_u32mf2_m)))
-vuint32mf2_t vle32(vbool64_t op0, vuint32mf2_t op1, const uint32_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_u8m1_m)))
-vuint8m1_t vlse8(vbool8_t op0, vuint8m1_t op1, const uint8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_u8m2_m)))
-vuint8m2_t vlse8(vbool4_t op0, vuint8m2_t op1, const uint8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_u8m4_m)))
-vuint8m4_t vlse8(vbool2_t op0, vuint8m4_t op1, const uint8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_u8m8_m)))
-vuint8m8_t vlse8(vbool1_t op0, vuint8m8_t op1, const uint8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_u8mf2_m)))
-vuint8mf2_t vlse8(vbool16_t op0, vuint8mf2_t op1, const uint8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_u8mf4_m)))
-vuint8mf4_t vlse8(vbool32_t op0, vuint8mf4_t op1, const uint8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_u8mf8_m)))
-vuint8mf8_t vlse8(vbool64_t op0, vuint8mf8_t op1, const uint8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_i64m1_m)))
-vint64m1_t vle64(vbool64_t op0, vint64m1_t op1, const int64_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_i64m2_m)))
-vint64m2_t vle64(vbool32_t op0, vint64m2_t op1, const int64_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_i64m4_m)))
-vint64m4_t vle64(vbool16_t op0, vint64m4_t op1, const int64_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_i64m8_m)))
-vint64m8_t vle64(vbool8_t op0, vint64m8_t op1, const int64_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_u64m1_m)))
-vuint64m1_t vle64(vbool64_t op0, vuint64m1_t op1, const uint64_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_u64m2_m)))
-vuint64m2_t vle64(vbool32_t op0, vuint64m2_t op1, const uint64_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_u64m4_m)))
-vuint64m4_t vle64(vbool16_t op0, vuint64m4_t op1, const uint64_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_u64m8_m)))
-vuint64m8_t vle64(vbool8_t op0, vuint64m8_t op1, const uint64_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16m1)))
-void vse16(int16_t * op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16m1_m)))
-void vse16(vbool16_t op0, int16_t * op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16m2)))
-void vse16(int16_t * op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16m2_m)))
-void vse16(vbool8_t op0, int16_t * op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16m4)))
-void vse16(int16_t * op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16m4_m)))
-void vse16(vbool4_t op0, int16_t * op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16m8)))
-void vse16(int16_t * op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16m8_m)))
-void vse16(vbool2_t op0, int16_t * op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16mf2)))
-void vse16(int16_t * op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16mf2_m)))
-void vse16(vbool32_t op0, int16_t * op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16mf4)))
-void vse16(int16_t * op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16mf4_m)))
-void vse16(vbool64_t op0, int16_t * op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16m1)))
-void vse16(uint16_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16m1_m)))
-void vse16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16m2)))
-void vse16(uint16_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16m2_m)))
-void vse16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16m4)))
-void vse16(uint16_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16m4_m)))
-void vse16(vbool4_t op0, uint16_t * op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16m8)))
-void vse16(uint16_t * op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16m8_m)))
-void vse16(vbool2_t op0, uint16_t * op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16mf2)))
-void vse16(uint16_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16mf2_m)))
-void vse16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16mf4)))
-void vse16(uint16_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16mf4_m)))
-void vse16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_i32m1)))
-void vse32(int32_t * op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_i32m1_m)))
-void vse32(vbool32_t op0, int32_t * op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_i32m2)))
-void vse32(int32_t * op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_i32m2_m)))
-void vse32(vbool16_t op0, int32_t * op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_i32m4)))
-void vse32(int32_t * op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_i32m4_m)))
-void vse32(vbool8_t op0, int32_t * op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_i32m8)))
-void vse32(int32_t * op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_i32m8_m)))
-void vse32(vbool4_t op0, int32_t * op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_i32mf2)))
-void vse32(int32_t * op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_i32mf2_m)))
-void vse32(vbool64_t op0, int32_t * op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_u32m1)))
-void vse32(uint32_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_u32m1_m)))
-void vse32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_u32m2)))
-void vse32(uint32_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_u32m2_m)))
-void vse32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_u32m4)))
-void vse32(uint32_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_u32m4_m)))
-void vse32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_u32m8)))
-void vse32(uint32_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_u32m8_m)))
-void vse32(vbool4_t op0, uint32_t * op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_u32mf2)))
-void vse32(uint32_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_u32mf2_m)))
-void vse32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8m1)))
-vint8m1_t vluxei8(const int8_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8m1_m)))
-vint8m1_t vluxei8(vbool8_t op0, vint8m1_t op1, const int8_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8m2)))
-vint8m2_t vluxei8(const int8_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8m2_m)))
-vint8m2_t vluxei8(vbool4_t op0, vint8m2_t op1, const int8_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8m4)))
-vint8m4_t vluxei8(const int8_t * op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8m4_m)))
-vint8m4_t vluxei8(vbool2_t op0, vint8m4_t op1, const int8_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8m8)))
-vint8m8_t vluxei8(const int8_t * op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8m8_m)))
-vint8m8_t vluxei8(vbool1_t op0, vint8m8_t op1, const int8_t * op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8mf2)))
-vint8mf2_t vluxei8(const int8_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8mf2_m)))
-vint8mf2_t vluxei8(vbool16_t op0, vint8mf2_t op1, const int8_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8mf4)))
-vint8mf4_t vluxei8(const int8_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8mf4_m)))
-vint8mf4_t vluxei8(vbool32_t op0, vint8mf4_t op1, const int8_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8mf8)))
-vint8mf8_t vluxei8(const int8_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8mf8_m)))
-vint8mf8_t vluxei8(vbool64_t op0, vint8mf8_t op1, const int8_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_i64m1)))
-void vse64(int64_t * op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_i64m1_m)))
-void vse64(vbool64_t op0, int64_t * op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_i64m2)))
-void vse64(int64_t * op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_i64m2_m)))
-void vse64(vbool32_t op0, int64_t * op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_i64m4)))
-void vse64(int64_t * op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_i64m4_m)))
-void vse64(vbool16_t op0, int64_t * op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_i64m8)))
-void vse64(int64_t * op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_i64m8_m)))
-void vse64(vbool8_t op0, int64_t * op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_u64m1)))
-void vse64(uint64_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_u64m1_m)))
-void vse64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_u64m2)))
-void vse64(uint64_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_u64m2_m)))
-void vse64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_u64m4)))
-void vse64(uint64_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_u64m4_m)))
-void vse64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_u64m8)))
-void vse64(uint64_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_u64m8_m)))
-void vse64(vbool8_t op0, uint64_t * op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_i16m1_m)))
-vint16m1_t vlse16(vbool16_t op0, vint16m1_t op1, const int16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_i16m2_m)))
-vint16m2_t vlse16(vbool8_t op0, vint16m2_t op1, const int16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_i16m4_m)))
-vint16m4_t vlse16(vbool4_t op0, vint16m4_t op1, const int16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_i16m8_m)))
-vint16m8_t vlse16(vbool2_t op0, vint16m8_t op1, const int16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_i16mf2_m)))
-vint16mf2_t vlse16(vbool32_t op0, vint16mf2_t op1, const int16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_i16mf4_m)))
-vint16mf4_t vlse16(vbool64_t op0, vint16mf4_t op1, const int16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_u16m1_m)))
-vuint16m1_t vlse16(vbool16_t op0, vuint16m1_t op1, const uint16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_u16m2_m)))
-vuint16m2_t vlse16(vbool8_t op0, vuint16m2_t op1, const uint16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_u16m4_m)))
-vuint16m4_t vlse16(vbool4_t op0, vuint16m4_t op1, const uint16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_u16m8_m)))
-vuint16m8_t vlse16(vbool2_t op0, vuint16m8_t op1, const uint16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_u16mf2_m)))
-vuint16mf2_t vlse16(vbool32_t op0, vuint16mf2_t op1, const uint16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_u16mf4_m)))
-vuint16mf4_t vlse16(vbool64_t op0, vuint16mf4_t op1, const uint16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_i32m1_m)))
-vint32m1_t vlse32(vbool32_t op0, vint32m1_t op1, const int32_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_i32m2_m)))
-vint32m2_t vlse32(vbool16_t op0, vint32m2_t op1, const int32_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_i32m4_m)))
-vint32m4_t vlse32(vbool8_t op0, vint32m4_t op1, const int32_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_i32m8_m)))
-vint32m8_t vlse32(vbool4_t op0, vint32m8_t op1, const int32_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_i32mf2_m)))
-vint32mf2_t vlse32(vbool64_t op0, vint32mf2_t op1, const int32_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_u32m1_m)))
-vuint32m1_t vlse32(vbool32_t op0, vuint32m1_t op1, const uint32_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_u32m2_m)))
-vuint32m2_t vlse32(vbool16_t op0, vuint32m2_t op1, const uint32_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_u32m4_m)))
-vuint32m4_t vlse32(vbool8_t op0, vuint32m4_t op1, const uint32_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_u32m8_m)))
-vuint32m8_t vlse32(vbool4_t op0, vuint32m8_t op1, const uint32_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_u32mf2_m)))
-vuint32mf2_t vlse32(vbool64_t op0, vuint32mf2_t op1, const uint32_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_i64m1_m)))
-vint64m1_t vlse64(vbool64_t op0, vint64m1_t op1, const int64_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_i64m2_m)))
-vint64m2_t vlse64(vbool32_t op0, vint64m2_t op1, const int64_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_i64m4_m)))
-vint64m4_t vlse64(vbool16_t op0, vint64m4_t op1, const int64_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_i64m8_m)))
-vint64m8_t vlse64(vbool8_t op0, vint64m8_t op1, const int64_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b8)))
-long vfirst(vbool8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b8_m)))
-long vfirst(vbool8_t op0, vbool8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b4)))
-long vfirst(vbool4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b4_m)))
-long vfirst(vbool4_t op0, vbool4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b2)))
-long vfirst(vbool2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b2_m)))
-long vfirst(vbool2_t op0, vbool2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b1)))
-long vfirst(vbool1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b1_m)))
-long vfirst(vbool1_t op0, vbool1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b16)))
-long vfirst(vbool16_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b16_m)))
-long vfirst(vbool16_t op0, vbool16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b32)))
-long vfirst(vbool32_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b32_m)))
-long vfirst(vbool32_t op0, vbool32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b64)))
-long vfirst(vbool64_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b64_m)))
-long vfirst(vbool64_t op0, vbool64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf2_i8m1)))
-vint8m1_t vlmul_ext_i8m1(vint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf4_i8m1)))
-vint8m1_t vlmul_ext_i8m1(vint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf8_i8m1)))
-vint8m1_t vlmul_ext_i8m1(vint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16mf2_i16m1)))
-vint16m1_t vlmul_ext_i16m1(vint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16mf4_i16m1)))
-vint16m1_t vlmul_ext_i16m1(vint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i32mf2_i32m1)))
-vint32m1_t vlmul_ext_i32m1(vint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf4_i8mf2)))
-vint8mf2_t vlmul_ext_i8mf2(vint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf8_i8mf2)))
-vint8mf2_t vlmul_ext_i8mf2(vint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16mf4_i16mf2)))
-vint16mf2_t vlmul_ext_i16mf2(vint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf8_i8mf4)))
-vint8mf4_t vlmul_ext_i8mf4(vint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8m1_i8m2)))
-vint8m2_t vlmul_ext_i8m2(vint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf2_i8m2)))
-vint8m2_t vlmul_ext_i8m2(vint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf4_i8m2)))
-vint8m2_t vlmul_ext_i8m2(vint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf8_i8m2)))
-vint8m2_t vlmul_ext_i8m2(vint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16m1_i16m2)))
-vint16m2_t vlmul_ext_i16m2(vint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16mf2_i16m2)))
-vint16m2_t vlmul_ext_i16m2(vint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16mf4_i16m2)))
-vint16m2_t vlmul_ext_i16m2(vint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i32m1_i32m2)))
-vint32m2_t vlmul_ext_i32m2(vint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i32mf2_i32m2)))
-vint32m2_t vlmul_ext_i32m2(vint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i64m1_i64m2)))
-vint64m2_t vlmul_ext_i64m2(vint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8m1_i8m4)))
-vint8m4_t vlmul_ext_i8m4(vint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8m2_i8m4)))
-vint8m4_t vlmul_ext_i8m4(vint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf2_i8m4)))
-vint8m4_t vlmul_ext_i8m4(vint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf4_i8m4)))
-vint8m4_t vlmul_ext_i8m4(vint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf8_i8m4)))
-vint8m4_t vlmul_ext_i8m4(vint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16m1_i16m4)))
-vint16m4_t vlmul_ext_i16m4(vint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16m2_i16m4)))
-vint16m4_t vlmul_ext_i16m4(vint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16mf2_i16m4)))
-vint16m4_t vlmul_ext_i16m4(vint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16mf4_i16m4)))
-vint16m4_t vlmul_ext_i16m4(vint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i32m1_i32m4)))
-vint32m4_t vlmul_ext_i32m4(vint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i32m2_i32m4)))
-vint32m4_t vlmul_ext_i32m4(vint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i32mf2_i32m4)))
-vint32m4_t vlmul_ext_i32m4(vint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i64m1_i64m4)))
-vint64m4_t vlmul_ext_i64m4(vint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i64m2_i64m4)))
-vint64m4_t vlmul_ext_i64m4(vint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8m1_i8m8)))
-vint8m8_t vlmul_ext_i8m8(vint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8m2_i8m8)))
-vint8m8_t vlmul_ext_i8m8(vint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8m4_i8m8)))
-vint8m8_t vlmul_ext_i8m8(vint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf2_i8m8)))
-vint8m8_t vlmul_ext_i8m8(vint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf4_i8m8)))
-vint8m8_t vlmul_ext_i8m8(vint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf8_i8m8)))
-vint8m8_t vlmul_ext_i8m8(vint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16m1_i16m8)))
-vint16m8_t vlmul_ext_i16m8(vint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16m2_i16m8)))
-vint16m8_t vlmul_ext_i16m8(vint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16m4_i16m8)))
-vint16m8_t vlmul_ext_i16m8(vint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16mf2_i16m8)))
-vint16m8_t vlmul_ext_i16m8(vint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16mf4_i16m8)))
-vint16m8_t vlmul_ext_i16m8(vint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i32m1_i32m8)))
-vint32m8_t vlmul_ext_i32m8(vint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i32m2_i32m8)))
-vint32m8_t vlmul_ext_i32m8(vint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i32m4_i32m8)))
-vint32m8_t vlmul_ext_i32m8(vint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i32mf2_i32m8)))
-vint32m8_t vlmul_ext_i32m8(vint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i64m1_i64m8)))
-vint64m8_t vlmul_ext_i64m8(vint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i64m2_i64m8)))
-vint64m8_t vlmul_ext_i64m8(vint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i64m4_i64m8)))
-vint64m8_t vlmul_ext_i64m8(vint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf2_u8m1)))
-vuint8m1_t vlmul_ext_u8m1(vuint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf4_u8m1)))
-vuint8m1_t vlmul_ext_u8m1(vuint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf8_u8m1)))
-vuint8m1_t vlmul_ext_u8m1(vuint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16mf2_u16m1)))
-vuint16m1_t vlmul_ext_u16m1(vuint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16mf4_u16m1)))
-vuint16m1_t vlmul_ext_u16m1(vuint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u32mf2_u32m1)))
-vuint32m1_t vlmul_ext_u32m1(vuint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf4_u8mf2)))
-vuint8mf2_t vlmul_ext_u8mf2(vuint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf8_u8mf2)))
-vuint8mf2_t vlmul_ext_u8mf2(vuint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16mf4_u16mf2)))
-vuint16mf2_t vlmul_ext_u16mf2(vuint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf8_u8mf4)))
-vuint8mf4_t vlmul_ext_u8mf4(vuint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8m1_u8m2)))
-vuint8m2_t vlmul_ext_u8m2(vuint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf2_u8m2)))
-vuint8m2_t vlmul_ext_u8m2(vuint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf4_u8m2)))
-vuint8m2_t vlmul_ext_u8m2(vuint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf8_u8m2)))
-vuint8m2_t vlmul_ext_u8m2(vuint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16m1_u16m2)))
-vuint16m2_t vlmul_ext_u16m2(vuint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16mf2_u16m2)))
-vuint16m2_t vlmul_ext_u16m2(vuint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16mf4_u16m2)))
-vuint16m2_t vlmul_ext_u16m2(vuint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u32m1_u32m2)))
-vuint32m2_t vlmul_ext_u32m2(vuint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u32mf2_u32m2)))
-vuint32m2_t vlmul_ext_u32m2(vuint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u64m1_u64m2)))
-vuint64m2_t vlmul_ext_u64m2(vuint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8m1_u8m4)))
-vuint8m4_t vlmul_ext_u8m4(vuint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8m2_u8m4)))
-vuint8m4_t vlmul_ext_u8m4(vuint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf2_u8m4)))
-vuint8m4_t vlmul_ext_u8m4(vuint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf4_u8m4)))
-vuint8m4_t vlmul_ext_u8m4(vuint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf8_u8m4)))
-vuint8m4_t vlmul_ext_u8m4(vuint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16m1_u16m4)))
-vuint16m4_t vlmul_ext_u16m4(vuint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16m2_u16m4)))
-vuint16m4_t vlmul_ext_u16m4(vuint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16mf2_u16m4)))
-vuint16m4_t vlmul_ext_u16m4(vuint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16mf4_u16m4)))
-vuint16m4_t vlmul_ext_u16m4(vuint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u32m1_u32m4)))
-vuint32m4_t vlmul_ext_u32m4(vuint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u32m2_u32m4)))
-vuint32m4_t vlmul_ext_u32m4(vuint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u32mf2_u32m4)))
-vuint32m4_t vlmul_ext_u32m4(vuint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u64m1_u64m4)))
-vuint64m4_t vlmul_ext_u64m4(vuint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u64m2_u64m4)))
-vuint64m4_t vlmul_ext_u64m4(vuint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8m1_u8m8)))
-vuint8m8_t vlmul_ext_u8m8(vuint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8m2_u8m8)))
-vuint8m8_t vlmul_ext_u8m8(vuint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8m4_u8m8)))
-vuint8m8_t vlmul_ext_u8m8(vuint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf2_u8m8)))
-vuint8m8_t vlmul_ext_u8m8(vuint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf4_u8m8)))
-vuint8m8_t vlmul_ext_u8m8(vuint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf8_u8m8)))
-vuint8m8_t vlmul_ext_u8m8(vuint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16m1_u16m8)))
-vuint16m8_t vlmul_ext_u16m8(vuint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16m2_u16m8)))
-vuint16m8_t vlmul_ext_u16m8(vuint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16m4_u16m8)))
-vuint16m8_t vlmul_ext_u16m8(vuint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16mf2_u16m8)))
-vuint16m8_t vlmul_ext_u16m8(vuint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16mf4_u16m8)))
-vuint16m8_t vlmul_ext_u16m8(vuint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u32m1_u32m8)))
-vuint32m8_t vlmul_ext_u32m8(vuint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u32m2_u32m8)))
-vuint32m8_t vlmul_ext_u32m8(vuint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u32m4_u32m8)))
-vuint32m8_t vlmul_ext_u32m8(vuint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u32mf2_u32m8)))
-vuint32m8_t vlmul_ext_u32m8(vuint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u64m1_u64m8)))
-vuint64m8_t vlmul_ext_u64m8(vuint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u64m2_u64m8)))
-vuint64m8_t vlmul_ext_u64m8(vuint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u64m4_u64m8)))
-vuint64m8_t vlmul_ext_u64m8(vuint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m1_i8mf2)))
-vint8mf2_t vlmul_trunc_i8mf2(vint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m2_i8mf2)))
-vint8mf2_t vlmul_trunc_i8mf2(vint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m4_i8mf2)))
-vint8mf2_t vlmul_trunc_i8mf2(vint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m8_i8mf2)))
-vint8mf2_t vlmul_trunc_i8mf2(vint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m1_i16mf2)))
-vint16mf2_t vlmul_trunc_i16mf2(vint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m2_i16mf2)))
-vint16mf2_t vlmul_trunc_i16mf2(vint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m4_i16mf2)))
-vint16mf2_t vlmul_trunc_i16mf2(vint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m8_i16mf2)))
-vint16mf2_t vlmul_trunc_i16mf2(vint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i32m1_i32mf2)))
-vint32mf2_t vlmul_trunc_i32mf2(vint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i32m2_i32mf2)))
-vint32mf2_t vlmul_trunc_i32mf2(vint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i32m4_i32mf2)))
-vint32mf2_t vlmul_trunc_i32mf2(vint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i32m8_i32mf2)))
-vint32mf2_t vlmul_trunc_i32mf2(vint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m1_i8mf4)))
-vint8mf4_t vlmul_trunc_i8mf4(vint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m2_i8mf4)))
-vint8mf4_t vlmul_trunc_i8mf4(vint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m4_i8mf4)))
-vint8mf4_t vlmul_trunc_i8mf4(vint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m8_i8mf4)))
-vint8mf4_t vlmul_trunc_i8mf4(vint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8mf2_i8mf4)))
-vint8mf4_t vlmul_trunc_i8mf4(vint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m1_i16mf4)))
-vint16mf4_t vlmul_trunc_i16mf4(vint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m2_i16mf4)))
-vint16mf4_t vlmul_trunc_i16mf4(vint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m4_i16mf4)))
-vint16mf4_t vlmul_trunc_i16mf4(vint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m8_i16mf4)))
-vint16mf4_t vlmul_trunc_i16mf4(vint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16mf2_i16mf4)))
-vint16mf4_t vlmul_trunc_i16mf4(vint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m1_i8mf8)))
-vint8mf8_t vlmul_trunc_i8mf8(vint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m2_i8mf8)))
-vint8mf8_t vlmul_trunc_i8mf8(vint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m4_i8mf8)))
-vint8mf8_t vlmul_trunc_i8mf8(vint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m8_i8mf8)))
-vint8mf8_t vlmul_trunc_i8mf8(vint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8mf2_i8mf8)))
-vint8mf8_t vlmul_trunc_i8mf8(vint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8mf4_i8mf8)))
-vint8mf8_t vlmul_trunc_i8mf8(vint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m2_i8m1)))
-vint8m1_t vlmul_trunc_i8m1(vint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m4_i8m1)))
-vint8m1_t vlmul_trunc_i8m1(vint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m8_i8m1)))
-vint8m1_t vlmul_trunc_i8m1(vint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m2_i16m1)))
-vint16m1_t vlmul_trunc_i16m1(vint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m4_i16m1)))
-vint16m1_t vlmul_trunc_i16m1(vint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m8_i16m1)))
-vint16m1_t vlmul_trunc_i16m1(vint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i32m2_i32m1)))
-vint32m1_t vlmul_trunc_i32m1(vint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i32m4_i32m1)))
-vint32m1_t vlmul_trunc_i32m1(vint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i32m8_i32m1)))
-vint32m1_t vlmul_trunc_i32m1(vint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i64m2_i64m1)))
-vint64m1_t vlmul_trunc_i64m1(vint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i64m4_i64m1)))
-vint64m1_t vlmul_trunc_i64m1(vint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i64m8_i64m1)))
-vint64m1_t vlmul_trunc_i64m1(vint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m4_i8m2)))
-vint8m2_t vlmul_trunc_i8m2(vint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m8_i8m2)))
-vint8m2_t vlmul_trunc_i8m2(vint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m4_i16m2)))
-vint16m2_t vlmul_trunc_i16m2(vint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m8_i16m2)))
-vint16m2_t vlmul_trunc_i16m2(vint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i32m4_i32m2)))
-vint32m2_t vlmul_trunc_i32m2(vint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i32m8_i32m2)))
-vint32m2_t vlmul_trunc_i32m2(vint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i64m4_i64m2)))
-vint64m2_t vlmul_trunc_i64m2(vint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i64m8_i64m2)))
-vint64m2_t vlmul_trunc_i64m2(vint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m8_i8m4)))
-vint8m4_t vlmul_trunc_i8m4(vint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m8_i16m4)))
-vint16m4_t vlmul_trunc_i16m4(vint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i32m8_i32m4)))
-vint32m4_t vlmul_trunc_i32m4(vint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i64m8_i64m4)))
-vint64m4_t vlmul_trunc_i64m4(vint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m1_u8mf2)))
-vuint8mf2_t vlmul_trunc_u8mf2(vuint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m2_u8mf2)))
-vuint8mf2_t vlmul_trunc_u8mf2(vuint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m4_u8mf2)))
-vuint8mf2_t vlmul_trunc_u8mf2(vuint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m8_u8mf2)))
-vuint8mf2_t vlmul_trunc_u8mf2(vuint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m1_u16mf2)))
-vuint16mf2_t vlmul_trunc_u16mf2(vuint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m2_u16mf2)))
-vuint16mf2_t vlmul_trunc_u16mf2(vuint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m4_u16mf2)))
-vuint16mf2_t vlmul_trunc_u16mf2(vuint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m8_u16mf2)))
-vuint16mf2_t vlmul_trunc_u16mf2(vuint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u32m1_u32mf2)))
-vuint32mf2_t vlmul_trunc_u32mf2(vuint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u32m2_u32mf2)))
-vuint32mf2_t vlmul_trunc_u32mf2(vuint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u32m4_u32mf2)))
-vuint32mf2_t vlmul_trunc_u32mf2(vuint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u32m8_u32mf2)))
-vuint32mf2_t vlmul_trunc_u32mf2(vuint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m1_u8mf4)))
-vuint8mf4_t vlmul_trunc_u8mf4(vuint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m2_u8mf4)))
-vuint8mf4_t vlmul_trunc_u8mf4(vuint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m4_u8mf4)))
-vuint8mf4_t vlmul_trunc_u8mf4(vuint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m8_u8mf4)))
-vuint8mf4_t vlmul_trunc_u8mf4(vuint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8mf2_u8mf4)))
-vuint8mf4_t vlmul_trunc_u8mf4(vuint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m1_u16mf4)))
-vuint16mf4_t vlmul_trunc_u16mf4(vuint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m2_u16mf4)))
-vuint16mf4_t vlmul_trunc_u16mf4(vuint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m4_u16mf4)))
-vuint16mf4_t vlmul_trunc_u16mf4(vuint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m8_u16mf4)))
-vuint16mf4_t vlmul_trunc_u16mf4(vuint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16mf2_u16mf4)))
-vuint16mf4_t vlmul_trunc_u16mf4(vuint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m1_u8mf8)))
-vuint8mf8_t vlmul_trunc_u8mf8(vuint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m2_u8mf8)))
-vuint8mf8_t vlmul_trunc_u8mf8(vuint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m4_u8mf8)))
-vuint8mf8_t vlmul_trunc_u8mf8(vuint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m8_u8mf8)))
-vuint8mf8_t vlmul_trunc_u8mf8(vuint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8mf2_u8mf8)))
-vuint8mf8_t vlmul_trunc_u8mf8(vuint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8mf4_u8mf8)))
-vuint8mf8_t vlmul_trunc_u8mf8(vuint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m2_u8m1)))
-vuint8m1_t vlmul_trunc_u8m1(vuint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m4_u8m1)))
-vuint8m1_t vlmul_trunc_u8m1(vuint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m8_u8m1)))
-vuint8m1_t vlmul_trunc_u8m1(vuint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m2_u16m1)))
-vuint16m1_t vlmul_trunc_u16m1(vuint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m4_u16m1)))
-vuint16m1_t vlmul_trunc_u16m1(vuint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m8_u16m1)))
-vuint16m1_t vlmul_trunc_u16m1(vuint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u32m2_u32m1)))
-vuint32m1_t vlmul_trunc_u32m1(vuint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u32m4_u32m1)))
-vuint32m1_t vlmul_trunc_u32m1(vuint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u32m8_u32m1)))
-vuint32m1_t vlmul_trunc_u32m1(vuint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u64m2_u64m1)))
-vuint64m1_t vlmul_trunc_u64m1(vuint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u64m4_u64m1)))
-vuint64m1_t vlmul_trunc_u64m1(vuint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u64m8_u64m1)))
-vuint64m1_t vlmul_trunc_u64m1(vuint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m4_u8m2)))
-vuint8m2_t vlmul_trunc_u8m2(vuint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m8_u8m2)))
-vuint8m2_t vlmul_trunc_u8m2(vuint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m4_u16m2)))
-vuint16m2_t vlmul_trunc_u16m2(vuint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m8_u16m2)))
-vuint16m2_t vlmul_trunc_u16m2(vuint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u32m4_u32m2)))
-vuint32m2_t vlmul_trunc_u32m2(vuint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u32m8_u32m2)))
-vuint32m2_t vlmul_trunc_u32m2(vuint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u64m4_u64m2)))
-vuint64m2_t vlmul_trunc_u64m2(vuint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u64m8_u64m2)))
-vuint64m2_t vlmul_trunc_u64m2(vuint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m8_u8m4)))
-vuint8m4_t vlmul_trunc_u8m4(vuint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m8_u16m4)))
-vuint16m4_t vlmul_trunc_u16m4(vuint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u32m8_u32m4)))
-vuint32m4_t vlmul_trunc_u32m4(vuint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u64m8_u64m4)))
-vuint64m4_t vlmul_trunc_u64m4(vuint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmand_mm_b8)))
-vbool8_t vmand(vbool8_t op0, vbool8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmand_mm_b4)))
-vbool4_t vmand(vbool4_t op0, vbool4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmand_mm_b2)))
-vbool2_t vmand(vbool2_t op0, vbool2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmand_mm_b1)))
-vbool1_t vmand(vbool1_t op0, vbool1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmand_mm_b16)))
-vbool16_t vmand(vbool16_t op0, vbool16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmand_mm_b32)))
-vbool32_t vmand(vbool32_t op0, vbool32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmand_mm_b64)))
-vbool64_t vmand(vbool64_t op0, vbool64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmandnot_mm_b8)))
-vbool8_t vmandnot(vbool8_t op0, vbool8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmandnot_mm_b4)))
-vbool4_t vmandnot(vbool4_t op0, vbool4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmandnot_mm_b2)))
-vbool2_t vmandnot(vbool2_t op0, vbool2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmandnot_mm_b1)))
-vbool1_t vmandnot(vbool1_t op0, vbool1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmandnot_mm_b16)))
-vbool16_t vmandnot(vbool16_t op0, vbool16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmandnot_mm_b32)))
-vbool32_t vmandnot(vbool32_t op0, vbool32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmandnot_mm_b64)))
-vbool64_t vmandnot(vbool64_t op0, vbool64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnand_mm_b8)))
-vbool8_t vmnand(vbool8_t op0, vbool8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnand_mm_b4)))
-vbool4_t vmnand(vbool4_t op0, vbool4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnand_mm_b2)))
-vbool2_t vmnand(vbool2_t op0, vbool2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnand_mm_b1)))
-vbool1_t vmnand(vbool1_t op0, vbool1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnand_mm_b16)))
-vbool16_t vmnand(vbool16_t op0, vbool16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnand_mm_b32)))
-vbool32_t vmnand(vbool32_t op0, vbool32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnand_mm_b64)))
-vbool64_t vmnand(vbool64_t op0, vbool64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnor_mm_b8)))
-vbool8_t vmnor(vbool8_t op0, vbool8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnor_mm_b4)))
-vbool4_t vmnor(vbool4_t op0, vbool4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnor_mm_b2)))
-vbool2_t vmnor(vbool2_t op0, vbool2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnor_mm_b1)))
-vbool1_t vmnor(vbool1_t op0, vbool1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnor_mm_b16)))
-vbool16_t vmnor(vbool16_t op0, vbool16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnor_mm_b32)))
-vbool32_t vmnor(vbool32_t op0, vbool32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnor_mm_b64)))
-vbool64_t vmnor(vbool64_t op0, vbool64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmor_mm_b8)))
-vbool8_t vmor(vbool8_t op0, vbool8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmor_mm_b4)))
-vbool4_t vmor(vbool4_t op0, vbool4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmor_mm_b2)))
-vbool2_t vmor(vbool2_t op0, vbool2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmor_mm_b1)))
-vbool1_t vmor(vbool1_t op0, vbool1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmor_mm_b16)))
-vbool16_t vmor(vbool16_t op0, vbool16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmor_mm_b32)))
-vbool32_t vmor(vbool32_t op0, vbool32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmor_mm_b64)))
-vbool64_t vmor(vbool64_t op0, vbool64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmornot_mm_b8)))
-vbool8_t vmornot(vbool8_t op0, vbool8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmornot_mm_b4)))
-vbool4_t vmornot(vbool4_t op0, vbool4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmornot_mm_b2)))
-vbool2_t vmornot(vbool2_t op0, vbool2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmornot_mm_b1)))
-vbool1_t vmornot(vbool1_t op0, vbool1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmornot_mm_b16)))
-vbool16_t vmornot(vbool16_t op0, vbool16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmornot_mm_b32)))
-vbool32_t vmornot(vbool32_t op0, vbool32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmornot_mm_b64)))
-vbool64_t vmornot(vbool64_t op0, vbool64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b8)))
-vbool8_t vmsbf(vbool8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b8_m)))
-vbool8_t vmsbf(vbool8_t op0, vbool8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b4)))
-vbool4_t vmsbf(vbool4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b4_m)))
-vbool4_t vmsbf(vbool4_t op0, vbool4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b2)))
-vbool2_t vmsbf(vbool2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b2_m)))
-vbool2_t vmsbf(vbool2_t op0, vbool2_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b1)))
-vbool1_t vmsbf(vbool1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b1_m)))
-vbool1_t vmsbf(vbool1_t op0, vbool1_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b16)))
-vbool16_t vmsbf(vbool16_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b16_m)))
-vbool16_t vmsbf(vbool16_t op0, vbool16_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b32)))
-vbool32_t vmsbf(vbool32_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b32_m)))
-vbool32_t vmsbf(vbool32_t op0, vbool32_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b64)))
-vbool64_t vmsbf(vbool64_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b64_m)))
-vbool64_t vmsbf(vbool64_t op0, vbool64_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b8)))
-vbool8_t vmsif(vbool8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b8_m)))
-vbool8_t vmsif(vbool8_t op0, vbool8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b4)))
-vbool4_t vmsif(vbool4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b4_m)))
-vbool4_t vmsif(vbool4_t op0, vbool4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b2)))
-vbool2_t vmsif(vbool2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b2_m)))
-vbool2_t vmsif(vbool2_t op0, vbool2_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b1)))
-vbool1_t vmsif(vbool1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b1_m)))
-vbool1_t vmsif(vbool1_t op0, vbool1_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b16)))
-vbool16_t vmsif(vbool16_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b16_m)))
-vbool16_t vmsif(vbool16_t op0, vbool16_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b32)))
-vbool32_t vmsif(vbool32_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b32_m)))
-vbool32_t vmsif(vbool32_t op0, vbool32_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b64)))
-vbool64_t vmsif(vbool64_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b64_m)))
-vbool64_t vmsif(vbool64_t op0, vbool64_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b8)))
-vbool8_t vmsof(vbool8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b8_m)))
-vbool8_t vmsof(vbool8_t op0, vbool8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b4)))
-vbool4_t vmsof(vbool4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b4_m)))
-vbool4_t vmsof(vbool4_t op0, vbool4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b2)))
-vbool2_t vmsof(vbool2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b2_m)))
-vbool2_t vmsof(vbool2_t op0, vbool2_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b1)))
-vbool1_t vmsof(vbool1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b1_m)))
-vbool1_t vmsof(vbool1_t op0, vbool1_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b16)))
-vbool16_t vmsof(vbool16_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b16_m)))
-vbool16_t vmsof(vbool16_t op0, vbool16_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b32)))
-vbool32_t vmsof(vbool32_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b32_m)))
-vbool32_t vmsof(vbool32_t op0, vbool32_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b64)))
-vbool64_t vmsof(vbool64_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b64_m)))
-vbool64_t vmsof(vbool64_t op0, vbool64_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxnor_mm_b8)))
-vbool8_t vmxnor(vbool8_t op0, vbool8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxnor_mm_b4)))
-vbool4_t vmxnor(vbool4_t op0, vbool4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxnor_mm_b2)))
-vbool2_t vmxnor(vbool2_t op0, vbool2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxnor_mm_b1)))
-vbool1_t vmxnor(vbool1_t op0, vbool1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxnor_mm_b16)))
-vbool16_t vmxnor(vbool16_t op0, vbool16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxnor_mm_b32)))
-vbool32_t vmxnor(vbool32_t op0, vbool32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxnor_mm_b64)))
-vbool64_t vmxnor(vbool64_t op0, vbool64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxor_mm_b8)))
-vbool8_t vmxor(vbool8_t op0, vbool8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxor_mm_b4)))
-vbool4_t vmxor(vbool4_t op0, vbool4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxor_mm_b2)))
-vbool2_t vmxor(vbool2_t op0, vbool2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxor_mm_b1)))
-vbool1_t vmxor(vbool1_t op0, vbool1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxor_mm_b16)))
-vbool16_t vmxor(vbool16_t op0, vbool16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxor_mm_b32)))
-vbool32_t vmxor(vbool32_t op0, vbool32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxor_mm_b64)))
-vbool64_t vmxor(vbool64_t op0, vbool64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b8)))
-unsigned long vpopc(vbool8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b8_m)))
-unsigned long vpopc(vbool8_t op0, vbool8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b4)))
-unsigned long vpopc(vbool4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b4_m)))
-unsigned long vpopc(vbool4_t op0, vbool4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b2)))
-unsigned long vpopc(vbool2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b2_m)))
-unsigned long vpopc(vbool2_t op0, vbool2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b1)))
-unsigned long vpopc(vbool1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b1_m)))
-unsigned long vpopc(vbool1_t op0, vbool1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b16)))
-unsigned long vpopc(vbool16_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b16_m)))
-unsigned long vpopc(vbool16_t op0, vbool16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b32)))
-unsigned long vpopc(vbool32_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b32_m)))
-unsigned long vpopc(vbool32_t op0, vbool32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b64)))
-unsigned long vpopc(vbool64_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b64_m)))
-unsigned long vpopc(vbool64_t op0, vbool64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m1_i16m1)))
-vint16m1_t vreinterpret_i16m1(vint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m2_i16m2)))
-vint16m2_t vreinterpret_i16m2(vint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m4_i16m4)))
-vint16m4_t vreinterpret_i16m4(vint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m8_i16m8)))
-vint16m8_t vreinterpret_i16m8(vint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8mf2_i16mf2)))
-vint16mf2_t vreinterpret_i16mf2(vint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8mf4_i16mf4)))
-vint16mf4_t vreinterpret_i16mf4(vint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m1_i16m1)))
-vint16m1_t vreinterpret_i16m1(vint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m2_i16m2)))
-vint16m2_t vreinterpret_i16m2(vint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m4_i16m4)))
-vint16m4_t vreinterpret_i16m4(vint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m8_i16m8)))
-vint16m8_t vreinterpret_i16m8(vint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32mf2_i16mf2)))
-vint16mf2_t vreinterpret_i16mf2(vint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m1_i16m1)))
-vint16m1_t vreinterpret_i16m1(vint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m2_i16m2)))
-vint16m2_t vreinterpret_i16m2(vint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m4_i16m4)))
-vint16m4_t vreinterpret_i16m4(vint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m8_i16m8)))
-vint16m8_t vreinterpret_i16m8(vint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m1_i32m1)))
-vint32m1_t vreinterpret_i32m1(vint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m2_i32m2)))
-vint32m2_t vreinterpret_i32m2(vint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m4_i32m4)))
-vint32m4_t vreinterpret_i32m4(vint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m8_i32m8)))
-vint32m8_t vreinterpret_i32m8(vint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8mf2_i32mf2)))
-vint32mf2_t vreinterpret_i32mf2(vint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m1_i32m1)))
-vint32m1_t vreinterpret_i32m1(vint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m2_i32m2)))
-vint32m2_t vreinterpret_i32m2(vint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m4_i32m4)))
-vint32m4_t vreinterpret_i32m4(vint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m8_i32m8)))
-vint32m8_t vreinterpret_i32m8(vint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16mf2_i32mf2)))
-vint32mf2_t vreinterpret_i32mf2(vint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m1_i32m1)))
-vint32m1_t vreinterpret_i32m1(vint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m2_i32m2)))
-vint32m2_t vreinterpret_i32m2(vint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m4_i32m4)))
-vint32m4_t vreinterpret_i32m4(vint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m8_i32m8)))
-vint32m8_t vreinterpret_i32m8(vint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m1_i64m1)))
-vint64m1_t vreinterpret_i64m1(vint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m2_i64m2)))
-vint64m2_t vreinterpret_i64m2(vint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m4_i64m4)))
-vint64m4_t vreinterpret_i64m4(vint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m8_i64m8)))
-vint64m8_t vreinterpret_i64m8(vint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m1_i64m1)))
-vint64m1_t vreinterpret_i64m1(vint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m2_i64m2)))
-vint64m2_t vreinterpret_i64m2(vint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m4_i64m4)))
-vint64m4_t vreinterpret_i64m4(vint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m8_i64m8)))
-vint64m8_t vreinterpret_i64m8(vint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m1_i64m1)))
-vint64m1_t vreinterpret_i64m1(vint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m2_i64m2)))
-vint64m2_t vreinterpret_i64m2(vint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m4_i64m4)))
-vint64m4_t vreinterpret_i64m4(vint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m8_i64m8)))
-vint64m8_t vreinterpret_i64m8(vint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m1_i8m1)))
-vint8m1_t vreinterpret_i8m1(vint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m2_i8m2)))
-vint8m2_t vreinterpret_i8m2(vint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m4_i8m4)))
-vint8m4_t vreinterpret_i8m4(vint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m8_i8m8)))
-vint8m8_t vreinterpret_i8m8(vint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16mf2_i8mf2)))
-vint8mf2_t vreinterpret_i8mf2(vint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16mf4_i8mf4)))
-vint8mf4_t vreinterpret_i8mf4(vint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m1_i8m1)))
-vint8m1_t vreinterpret_i8m1(vint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m2_i8m2)))
-vint8m2_t vreinterpret_i8m2(vint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m4_i8m4)))
-vint8m4_t vreinterpret_i8m4(vint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m8_i8m8)))
-vint8m8_t vreinterpret_i8m8(vint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32mf2_i8mf2)))
-vint8mf2_t vreinterpret_i8mf2(vint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m1_i8m1)))
-vint8m1_t vreinterpret_i8m1(vint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m2_i8m2)))
-vint8m2_t vreinterpret_i8m2(vint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m4_i8m4)))
-vint8m4_t vreinterpret_i8m4(vint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m8_i8m8)))
-vint8m8_t vreinterpret_i8m8(vint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m1_i8m1)))
-vint8m1_t vreinterpret_i8m1(vuint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m2_i8m2)))
-vint8m2_t vreinterpret_i8m2(vuint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m4_i8m4)))
-vint8m4_t vreinterpret_i8m4(vuint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m8_i8m8)))
-vint8m8_t vreinterpret_i8m8(vuint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8mf2_i8mf2)))
-vint8mf2_t vreinterpret_i8mf2(vuint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8mf4_i8mf4)))
-vint8mf4_t vreinterpret_i8mf4(vuint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8mf8_i8mf8)))
-vint8mf8_t vreinterpret_i8mf8(vuint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m1_i16m1)))
-vint16m1_t vreinterpret_i16m1(vuint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m2_i16m2)))
-vint16m2_t vreinterpret_i16m2(vuint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m4_i16m4)))
-vint16m4_t vreinterpret_i16m4(vuint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m8_i16m8)))
-vint16m8_t vreinterpret_i16m8(vuint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16mf2_i16mf2)))
-vint16mf2_t vreinterpret_i16mf2(vuint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16mf4_i16mf4)))
-vint16mf4_t vreinterpret_i16mf4(vuint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m1_i32m1)))
-vint32m1_t vreinterpret_i32m1(vuint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m2_i32m2)))
-vint32m2_t vreinterpret_i32m2(vuint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m4_i32m4)))
-vint32m4_t vreinterpret_i32m4(vuint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m8_i32m8)))
-vint32m8_t vreinterpret_i32m8(vuint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32mf2_i32mf2)))
-vint32mf2_t vreinterpret_i32mf2(vuint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m1_i64m1)))
-vint64m1_t vreinterpret_i64m1(vuint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m2_i64m2)))
-vint64m2_t vreinterpret_i64m2(vuint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m4_i64m4)))
-vint64m4_t vreinterpret_i64m4(vuint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m8_i64m8)))
-vint64m8_t vreinterpret_i64m8(vuint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m1_u16m1)))
-vuint16m1_t vreinterpret_u16m1(vuint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m2_u16m2)))
-vuint16m2_t vreinterpret_u16m2(vuint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m4_u16m4)))
-vuint16m4_t vreinterpret_u16m4(vuint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m8_u16m8)))
-vuint16m8_t vreinterpret_u16m8(vuint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8mf2_u16mf2)))
-vuint16mf2_t vreinterpret_u16mf2(vuint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8mf4_u16mf4)))
-vuint16mf4_t vreinterpret_u16mf4(vuint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m1_u16m1)))
-vuint16m1_t vreinterpret_u16m1(vuint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m2_u16m2)))
-vuint16m2_t vreinterpret_u16m2(vuint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m4_u16m4)))
-vuint16m4_t vreinterpret_u16m4(vuint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m8_u16m8)))
-vuint16m8_t vreinterpret_u16m8(vuint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32mf2_u16mf2)))
-vuint16mf2_t vreinterpret_u16mf2(vuint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m1_u16m1)))
-vuint16m1_t vreinterpret_u16m1(vuint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m2_u16m2)))
-vuint16m2_t vreinterpret_u16m2(vuint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m4_u16m4)))
-vuint16m4_t vreinterpret_u16m4(vuint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m8_u16m8)))
-vuint16m8_t vreinterpret_u16m8(vuint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m1_u32m1)))
-vuint32m1_t vreinterpret_u32m1(vuint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m2_u32m2)))
-vuint32m2_t vreinterpret_u32m2(vuint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m4_u32m4)))
-vuint32m4_t vreinterpret_u32m4(vuint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m8_u32m8)))
-vuint32m8_t vreinterpret_u32m8(vuint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8mf2_u32mf2)))
-vuint32mf2_t vreinterpret_u32mf2(vuint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m1_u32m1)))
-vuint32m1_t vreinterpret_u32m1(vuint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m2_u32m2)))
-vuint32m2_t vreinterpret_u32m2(vuint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m4_u32m4)))
-vuint32m4_t vreinterpret_u32m4(vuint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m8_u32m8)))
-vuint32m8_t vreinterpret_u32m8(vuint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16mf2_u32mf2)))
-vuint32mf2_t vreinterpret_u32mf2(vuint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m1_u32m1)))
-vuint32m1_t vreinterpret_u32m1(vuint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m2_u32m2)))
-vuint32m2_t vreinterpret_u32m2(vuint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m4_u32m4)))
-vuint32m4_t vreinterpret_u32m4(vuint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m8_u32m8)))
-vuint32m8_t vreinterpret_u32m8(vuint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m1_u64m1)))
-vuint64m1_t vreinterpret_u64m1(vuint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m2_u64m2)))
-vuint64m2_t vreinterpret_u64m2(vuint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m4_u64m4)))
-vuint64m4_t vreinterpret_u64m4(vuint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m8_u64m8)))
-vuint64m8_t vreinterpret_u64m8(vuint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m1_u64m1)))
-vuint64m1_t vreinterpret_u64m1(vuint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m2_u64m2)))
-vuint64m2_t vreinterpret_u64m2(vuint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m4_u64m4)))
-vuint64m4_t vreinterpret_u64m4(vuint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m8_u64m8)))
-vuint64m8_t vreinterpret_u64m8(vuint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m1_u64m1)))
-vuint64m1_t vreinterpret_u64m1(vuint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m2_u64m2)))
-vuint64m2_t vreinterpret_u64m2(vuint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m4_u64m4)))
-vuint64m4_t vreinterpret_u64m4(vuint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m8_u64m8)))
-vuint64m8_t vreinterpret_u64m8(vuint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m1_u8m1)))
-vuint8m1_t vreinterpret_u8m1(vuint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m2_u8m2)))
-vuint8m2_t vreinterpret_u8m2(vuint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m4_u8m4)))
-vuint8m4_t vreinterpret_u8m4(vuint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m8_u8m8)))
-vuint8m8_t vreinterpret_u8m8(vuint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16mf2_u8mf2)))
-vuint8mf2_t vreinterpret_u8mf2(vuint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16mf4_u8mf4)))
-vuint8mf4_t vreinterpret_u8mf4(vuint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m1_u8m1)))
-vuint8m1_t vreinterpret_u8m1(vuint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m2_u8m2)))
-vuint8m2_t vreinterpret_u8m2(vuint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m4_u8m4)))
-vuint8m4_t vreinterpret_u8m4(vuint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m8_u8m8)))
-vuint8m8_t vreinterpret_u8m8(vuint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32mf2_u8mf2)))
-vuint8mf2_t vreinterpret_u8mf2(vuint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m1_u8m1)))
-vuint8m1_t vreinterpret_u8m1(vuint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m2_u8m2)))
-vuint8m2_t vreinterpret_u8m2(vuint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m4_u8m4)))
-vuint8m4_t vreinterpret_u8m4(vuint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m8_u8m8)))
-vuint8m8_t vreinterpret_u8m8(vuint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m1_u8m1)))
-vuint8m1_t vreinterpret_u8m1(vint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m2_u8m2)))
-vuint8m2_t vreinterpret_u8m2(vint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m4_u8m4)))
-vuint8m4_t vreinterpret_u8m4(vint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m8_u8m8)))
-vuint8m8_t vreinterpret_u8m8(vint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8mf2_u8mf2)))
-vuint8mf2_t vreinterpret_u8mf2(vint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8mf4_u8mf4)))
-vuint8mf4_t vreinterpret_u8mf4(vint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8mf8_u8mf8)))
-vuint8mf8_t vreinterpret_u8mf8(vint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m1_u16m1)))
-vuint16m1_t vreinterpret_u16m1(vint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m2_u16m2)))
-vuint16m2_t vreinterpret_u16m2(vint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m4_u16m4)))
-vuint16m4_t vreinterpret_u16m4(vint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m8_u16m8)))
-vuint16m8_t vreinterpret_u16m8(vint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16mf2_u16mf2)))
-vuint16mf2_t vreinterpret_u16mf2(vint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16mf4_u16mf4)))
-vuint16mf4_t vreinterpret_u16mf4(vint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m1_u32m1)))
-vuint32m1_t vreinterpret_u32m1(vint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m2_u32m2)))
-vuint32m2_t vreinterpret_u32m2(vint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m4_u32m4)))
-vuint32m4_t vreinterpret_u32m4(vint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m8_u32m8)))
-vuint32m8_t vreinterpret_u32m8(vint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32mf2_u32mf2)))
-vuint32mf2_t vreinterpret_u32mf2(vint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m1_u64m1)))
-vuint64m1_t vreinterpret_u64m1(vint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m2_u64m2)))
-vuint64m2_t vreinterpret_u64m2(vint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m4_u64m4)))
-vuint64m4_t vreinterpret_u64m4(vint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m8_u64m8)))
-vuint64m8_t vreinterpret_u64m8(vint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse1_v_b8)))
-void vse1(uint8_t * op0, vbool8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse1_v_b4)))
-void vse1(uint8_t * op0, vbool4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse1_v_b2)))
-void vse1(uint8_t * op0, vbool2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse1_v_b1)))
-void vse1(uint8_t * op0, vbool1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse1_v_b16)))
-void vse1(uint8_t * op0, vbool16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse1_v_b32)))
-void vse1(uint8_t * op0, vbool32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse1_v_b64)))
-void vse1(uint8_t * op0, vbool64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16mf4)))
-vint16mf4_t vsext_vf2(vint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16mf4_m)))
-vint16mf4_t vsext_vf2(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16mf2)))
-vint16mf2_t vsext_vf2(vint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16mf2_m)))
-vint16mf2_t vsext_vf2(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16m1)))
-vint16m1_t vsext_vf2(vint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16m1_m)))
-vint16m1_t vsext_vf2(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16m2)))
-vint16m2_t vsext_vf2(vint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16m2_m)))
-vint16m2_t vsext_vf2(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16m4)))
-vint16m4_t vsext_vf2(vint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16m4_m)))
-vint16m4_t vsext_vf2(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16m8)))
-vint16m8_t vsext_vf2(vint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16m8_m)))
-vint16m8_t vsext_vf2(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i32mf2)))
-vint32mf2_t vsext_vf2(vint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i32mf2_m)))
-vint32mf2_t vsext_vf2(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i32m1)))
-vint32m1_t vsext_vf2(vint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i32m1_m)))
-vint32m1_t vsext_vf2(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i32m2)))
-vint32m2_t vsext_vf2(vint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i32m2_m)))
-vint32m2_t vsext_vf2(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i32m4)))
-vint32m4_t vsext_vf2(vint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i32m4_m)))
-vint32m4_t vsext_vf2(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i32m8)))
-vint32m8_t vsext_vf2(vint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i32m8_m)))
-vint32m8_t vsext_vf2(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i64m1)))
-vint64m1_t vsext_vf2(vint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i64m1_m)))
-vint64m1_t vsext_vf2(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i64m2)))
-vint64m2_t vsext_vf2(vint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i64m2_m)))
-vint64m2_t vsext_vf2(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i64m4)))
-vint64m4_t vsext_vf2(vint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i64m4_m)))
-vint64m4_t vsext_vf2(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i64m8)))
-vint64m8_t vsext_vf2(vint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i64m8_m)))
-vint64m8_t vsext_vf2(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i32mf2)))
-vint32mf2_t vsext_vf4(vint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i32mf2_m)))
-vint32mf2_t vsext_vf4(vbool64_t op0, vint32mf2_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i32m1)))
-vint32m1_t vsext_vf4(vint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i32m1_m)))
-vint32m1_t vsext_vf4(vbool32_t op0, vint32m1_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i32m2)))
-vint32m2_t vsext_vf4(vint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i32m2_m)))
-vint32m2_t vsext_vf4(vbool16_t op0, vint32m2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i32m4)))
-vint32m4_t vsext_vf4(vint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i32m4_m)))
-vint32m4_t vsext_vf4(vbool8_t op0, vint32m4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i32m8)))
-vint32m8_t vsext_vf4(vint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i32m8_m)))
-vint32m8_t vsext_vf4(vbool4_t op0, vint32m8_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i64m1)))
-vint64m1_t vsext_vf4(vint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i64m1_m)))
-vint64m1_t vsext_vf4(vbool64_t op0, vint64m1_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i64m2)))
-vint64m2_t vsext_vf4(vint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i64m2_m)))
-vint64m2_t vsext_vf4(vbool32_t op0, vint64m2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i64m4)))
-vint64m4_t vsext_vf4(vint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i64m4_m)))
-vint64m4_t vsext_vf4(vbool16_t op0, vint64m4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i64m8)))
-vint64m8_t vsext_vf4(vint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i64m8_m)))
-vint64m8_t vsext_vf4(vbool8_t op0, vint64m8_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf8_i64m1)))
-vint64m1_t vsext_vf8(vint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf8_i64m1_m)))
-vint64m1_t vsext_vf8(vbool64_t op0, vint64m1_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf8_i64m2)))
-vint64m2_t vsext_vf8(vint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf8_i64m2_m)))
-vint64m2_t vsext_vf8(vbool32_t op0, vint64m2_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf8_i64m4)))
-vint64m4_t vsext_vf8(vint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf8_i64m4_m)))
-vint64m4_t vsext_vf8(vbool16_t op0, vint64m4_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf8_i64m8)))
-vint64m8_t vsext_vf8(vint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf8_i64m8_m)))
-vint64m8_t vsext_vf8(vbool8_t op0, vint64m8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16mf4)))
-vuint16mf4_t vzext_vf2(vuint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16mf4_m)))
-vuint16mf4_t vzext_vf2(vbool64_t op0, vuint16mf4_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16mf2)))
-vuint16mf2_t vzext_vf2(vuint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16mf2_m)))
-vuint16mf2_t vzext_vf2(vbool32_t op0, vuint16mf2_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16m1)))
-vuint16m1_t vzext_vf2(vuint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16m1_m)))
-vuint16m1_t vzext_vf2(vbool16_t op0, vuint16m1_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16m2)))
-vuint16m2_t vzext_vf2(vuint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16m2_m)))
-vuint16m2_t vzext_vf2(vbool8_t op0, vuint16m2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16m4)))
-vuint16m4_t vzext_vf2(vuint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16m4_m)))
-vuint16m4_t vzext_vf2(vbool4_t op0, vuint16m4_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16m8)))
-vuint16m8_t vzext_vf2(vuint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16m8_m)))
-vuint16m8_t vzext_vf2(vbool2_t op0, vuint16m8_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u32mf2)))
-vuint32mf2_t vzext_vf2(vuint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u32mf2_m)))
-vuint32mf2_t vzext_vf2(vbool64_t op0, vuint32mf2_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u32m1)))
-vuint32m1_t vzext_vf2(vuint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u32m1_m)))
-vuint32m1_t vzext_vf2(vbool32_t op0, vuint32m1_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u32m2)))
-vuint32m2_t vzext_vf2(vuint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u32m2_m)))
-vuint32m2_t vzext_vf2(vbool16_t op0, vuint32m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u32m4)))
-vuint32m4_t vzext_vf2(vuint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u32m4_m)))
-vuint32m4_t vzext_vf2(vbool8_t op0, vuint32m4_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u32m8)))
-vuint32m8_t vzext_vf2(vuint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u32m8_m)))
-vuint32m8_t vzext_vf2(vbool4_t op0, vuint32m8_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u64m1)))
-vuint64m1_t vzext_vf2(vuint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u64m1_m)))
-vuint64m1_t vzext_vf2(vbool64_t op0, vuint64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u64m2)))
-vuint64m2_t vzext_vf2(vuint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u64m2_m)))
-vuint64m2_t vzext_vf2(vbool32_t op0, vuint64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u64m4)))
-vuint64m4_t vzext_vf2(vuint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u64m4_m)))
-vuint64m4_t vzext_vf2(vbool16_t op0, vuint64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u64m8)))
-vuint64m8_t vzext_vf2(vuint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u64m8_m)))
-vuint64m8_t vzext_vf2(vbool8_t op0, vuint64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u32mf2)))
-vuint32mf2_t vzext_vf4(vuint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u32mf2_m)))
-vuint32mf2_t vzext_vf4(vbool64_t op0, vuint32mf2_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u32m1)))
-vuint32m1_t vzext_vf4(vuint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u32m1_m)))
-vuint32m1_t vzext_vf4(vbool32_t op0, vuint32m1_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u32m2)))
-vuint32m2_t vzext_vf4(vuint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u32m2_m)))
-vuint32m2_t vzext_vf4(vbool16_t op0, vuint32m2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u32m4)))
-vuint32m4_t vzext_vf4(vuint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u32m4_m)))
-vuint32m4_t vzext_vf4(vbool8_t op0, vuint32m4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u32m8)))
-vuint32m8_t vzext_vf4(vuint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u32m8_m)))
-vuint32m8_t vzext_vf4(vbool4_t op0, vuint32m8_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u64m1)))
-vuint64m1_t vzext_vf4(vuint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u64m1_m)))
-vuint64m1_t vzext_vf4(vbool64_t op0, vuint64m1_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u64m2)))
-vuint64m2_t vzext_vf4(vuint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u64m2_m)))
-vuint64m2_t vzext_vf4(vbool32_t op0, vuint64m2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u64m4)))
-vuint64m4_t vzext_vf4(vuint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u64m4_m)))
-vuint64m4_t vzext_vf4(vbool16_t op0, vuint64m4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u64m8)))
-vuint64m8_t vzext_vf4(vuint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u64m8_m)))
-vuint64m8_t vzext_vf4(vbool8_t op0, vuint64m8_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf8_u64m1)))
-vuint64m1_t vzext_vf8(vuint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf8_u64m1_m)))
-vuint64m1_t vzext_vf8(vbool64_t op0, vuint64m1_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf8_u64m2)))
-vuint64m2_t vzext_vf8(vuint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf8_u64m2_m)))
-vuint64m2_t vzext_vf8(vbool32_t op0, vuint64m2_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf8_u64m4)))
-vuint64m4_t vzext_vf8(vuint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf8_u64m4_m)))
-vuint64m4_t vzext_vf8(vbool16_t op0, vuint64m4_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf8_u64m8)))
-vuint64m8_t vzext_vf8(vuint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf8_u64m8_m)))
-vuint64m8_t vzext_vf8(vbool8_t op0, vuint64m8_t op1, vuint8m1_t op2, size_t op3);
-
-#if defined(__riscv_f)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_f32m1)))
-void vsse32(float * op0, ptrdiff_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_f32m1_m)))
-void vsse32(vbool32_t op0, float * op1, ptrdiff_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_f32m2)))
-void vsse32(float * op0, ptrdiff_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_f32m2_m)))
-void vsse32(vbool16_t op0, float * op1, ptrdiff_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_f32m4)))
-void vsse32(float * op0, ptrdiff_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_f32m4_m)))
-void vsse32(vbool8_t op0, float * op1, ptrdiff_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_f32m8)))
-void vsse32(float * op0, ptrdiff_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_f32m8_m)))
-void vsse32(vbool4_t op0, float * op1, ptrdiff_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_f32mf2)))
-void vsse32(float * op0, ptrdiff_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_f32mf2_m)))
-void vsse32(vbool64_t op0, float * op1, ptrdiff_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f32m1)))
-vfloat32m1_t vluxei8(const float * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f32m1_m)))
-vfloat32m1_t vluxei8(vbool32_t op0, vfloat32m1_t op1, const float * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f32m2)))
-vfloat32m2_t vluxei8(const float * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f32m2_m)))
-vfloat32m2_t vluxei8(vbool16_t op0, vfloat32m2_t op1, const float * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f32m4)))
-vfloat32m4_t vluxei8(const float * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f32m4_m)))
-vfloat32m4_t vluxei8(vbool8_t op0, vfloat32m4_t op1, const float * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f32m8)))
-vfloat32m8_t vluxei8(const float * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f32m8_m)))
-vfloat32m8_t vluxei8(vbool4_t op0, vfloat32m8_t op1, const float * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f32mf2)))
-vfloat32mf2_t vluxei8(const float * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f32mf2_m)))
-vfloat32mf2_t vluxei8(vbool64_t op0, vfloat32mf2_t op1, const float * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f32m1)))
-vfloat32m1_t vluxei16(const float * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f32m1_m)))
-vfloat32m1_t vluxei16(vbool32_t op0, vfloat32m1_t op1, const float * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f32m2)))
-vfloat32m2_t vluxei16(const float * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f32m2_m)))
-vfloat32m2_t vluxei16(vbool16_t op0, vfloat32m2_t op1, const float * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f32m4)))
-vfloat32m4_t vluxei16(const float * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f32m4_m)))
-vfloat32m4_t vluxei16(vbool8_t op0, vfloat32m4_t op1, const float * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f32m8)))
-vfloat32m8_t vluxei16(const float * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f32m8_m)))
-vfloat32m8_t vluxei16(vbool4_t op0, vfloat32m8_t op1, const float * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f32mf2)))
-vfloat32mf2_t vluxei16(const float * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f32mf2_m)))
-vfloat32mf2_t vluxei16(vbool64_t op0, vfloat32mf2_t op1, const float * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f32m1)))
-vfloat32m1_t vluxei32(const float * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f32m1_m)))
-vfloat32m1_t vluxei32(vbool32_t op0, vfloat32m1_t op1, const float * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f32m2)))
-vfloat32m2_t vluxei32(const float * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f32m2_m)))
-vfloat32m2_t vluxei32(vbool16_t op0, vfloat32m2_t op1, const float * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f32m4)))
-vfloat32m4_t vluxei32(const float * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f32m4_m)))
-vfloat32m4_t vluxei32(vbool8_t op0, vfloat32m4_t op1, const float * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f32m8)))
-vfloat32m8_t vluxei32(const float * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f32m8_m)))
-vfloat32m8_t vluxei32(vbool4_t op0, vfloat32m8_t op1, const float * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f32mf2)))
-vfloat32mf2_t vluxei32(const float * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f32mf2_m)))
-vfloat32mf2_t vluxei32(vbool64_t op0, vfloat32mf2_t op1, const float * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f32m1)))
-vfloat32m1_t vluxei64(const float * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f32m1_m)))
-vfloat32m1_t vluxei64(vbool32_t op0, vfloat32m1_t op1, const float * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f32m2)))
-vfloat32m2_t vluxei64(const float * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f32m2_m)))
-vfloat32m2_t vluxei64(vbool16_t op0, vfloat32m2_t op1, const float * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f32m4)))
-vfloat32m4_t vluxei64(const float * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f32m4_m)))
-vfloat32m4_t vluxei64(vbool8_t op0, vfloat32m4_t op1, const float * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f32mf2)))
-vfloat32mf2_t vluxei64(const float * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f32mf2_m)))
-vfloat32mf2_t vluxei64(vbool64_t op0, vfloat32mf2_t op1, const float * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f32m1)))
-vfloat32m1_t vloxei8(const float * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f32m1_m)))
-vfloat32m1_t vloxei8(vbool32_t op0, vfloat32m1_t op1, const float * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f32m2)))
-vfloat32m2_t vloxei8(const float * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f32m2_m)))
-vfloat32m2_t vloxei8(vbool16_t op0, vfloat32m2_t op1, const float * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f32m4)))
-vfloat32m4_t vloxei8(const float * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f32m4_m)))
-vfloat32m4_t vloxei8(vbool8_t op0, vfloat32m4_t op1, const float * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f32m8)))
-vfloat32m8_t vloxei8(const float * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f32m8_m)))
-vfloat32m8_t vloxei8(vbool4_t op0, vfloat32m8_t op1, const float * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f32mf2)))
-vfloat32mf2_t vloxei8(const float * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f32mf2_m)))
-vfloat32mf2_t vloxei8(vbool64_t op0, vfloat32mf2_t op1, const float * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f32m1)))
-vfloat32m1_t vloxei16(const float * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f32m1_m)))
-vfloat32m1_t vloxei16(vbool32_t op0, vfloat32m1_t op1, const float * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f32m2)))
-vfloat32m2_t vloxei16(const float * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f32m2_m)))
-vfloat32m2_t vloxei16(vbool16_t op0, vfloat32m2_t op1, const float * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f32m4)))
-vfloat32m4_t vloxei16(const float * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f32m4_m)))
-vfloat32m4_t vloxei16(vbool8_t op0, vfloat32m4_t op1, const float * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f32m8)))
-vfloat32m8_t vloxei16(const float * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f32m8_m)))
-vfloat32m8_t vloxei16(vbool4_t op0, vfloat32m8_t op1, const float * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f32mf2)))
-vfloat32mf2_t vloxei16(const float * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f32mf2_m)))
-vfloat32mf2_t vloxei16(vbool64_t op0, vfloat32mf2_t op1, const float * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f32m1)))
-vfloat32m1_t vloxei32(const float * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f32m1_m)))
-vfloat32m1_t vloxei32(vbool32_t op0, vfloat32m1_t op1, const float * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f32m2)))
-vfloat32m2_t vloxei32(const float * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f32m2_m)))
-vfloat32m2_t vloxei32(vbool16_t op0, vfloat32m2_t op1, const float * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f32m4)))
-vfloat32m4_t vloxei32(const float * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f32m4_m)))
-vfloat32m4_t vloxei32(vbool8_t op0, vfloat32m4_t op1, const float * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f32m8)))
-vfloat32m8_t vloxei32(const float * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f32m8_m)))
-vfloat32m8_t vloxei32(vbool4_t op0, vfloat32m8_t op1, const float * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f32mf2)))
-vfloat32mf2_t vloxei32(const float * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f32mf2_m)))
-vfloat32mf2_t vloxei32(vbool64_t op0, vfloat32mf2_t op1, const float * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f32m1)))
-vfloat32m1_t vloxei64(const float * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f32m1_m)))
-vfloat32m1_t vloxei64(vbool32_t op0, vfloat32m1_t op1, const float * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f32m2)))
-vfloat32m2_t vloxei64(const float * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f32m2_m)))
-vfloat32m2_t vloxei64(vbool16_t op0, vfloat32m2_t op1, const float * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f32m4)))
-vfloat32m4_t vloxei64(const float * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f32m4_m)))
-vfloat32m4_t vloxei64(vbool8_t op0, vfloat32m4_t op1, const float * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f32mf2)))
-vfloat32mf2_t vloxei64(const float * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f32mf2_m)))
-vfloat32mf2_t vloxei64(vbool64_t op0, vfloat32mf2_t op1, const float * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f32m1)))
-vfloat32m1_t vmv_v(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f32m2)))
-vfloat32m2_t vmv_v(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f32m4)))
-vfloat32m4_t vmv_v(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f32m8)))
-vfloat32m8_t vmv_v(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f32mf2)))
-vfloat32mf2_t vmv_v(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f32m1)))
-vfloat32m1_t vfadd(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f32m1_m)))
-vfloat32m1_t vfadd(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f32m2)))
-vfloat32m2_t vfadd(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f32m2_m)))
-vfloat32m2_t vfadd(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f32m4)))
-vfloat32m4_t vfadd(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f32m4_m)))
-vfloat32m4_t vfadd(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f32m8)))
-vfloat32m8_t vfadd(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f32m8_m)))
-vfloat32m8_t vfadd(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f32mf2)))
-vfloat32mf2_t vfadd(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f32mf2_m)))
-vfloat32mf2_t vfadd(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f32m1)))
-vfloat32m1_t vfadd(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f32m1_m)))
-vfloat32m1_t vfadd(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f32m2)))
-vfloat32m2_t vfadd(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f32m2_m)))
-vfloat32m2_t vfadd(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f32m4)))
-vfloat32m4_t vfadd(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f32m4_m)))
-vfloat32m4_t vfadd(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f32m8)))
-vfloat32m8_t vfadd(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f32m8_m)))
-vfloat32m8_t vfadd(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f32mf2)))
-vfloat32mf2_t vfadd(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f32mf2_m)))
-vfloat32mf2_t vfadd(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f32m1)))
-vfloat32m1_t vfsub(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f32m1_m)))
-vfloat32m1_t vfsub(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f32m2)))
-vfloat32m2_t vfsub(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f32m2_m)))
-vfloat32m2_t vfsub(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f32m4)))
-vfloat32m4_t vfsub(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f32m4_m)))
-vfloat32m4_t vfsub(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f32m8)))
-vfloat32m8_t vfsub(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f32m8_m)))
-vfloat32m8_t vfsub(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f32mf2)))
-vfloat32mf2_t vfsub(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f32mf2_m)))
-vfloat32mf2_t vfsub(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f32m1)))
-vfloat32m1_t vfsub(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f32m1_m)))
-vfloat32m1_t vfsub(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f32m2)))
-vfloat32m2_t vfsub(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f32m2_m)))
-vfloat32m2_t vfsub(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f32m4)))
-vfloat32m4_t vfsub(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f32m4_m)))
-vfloat32m4_t vfsub(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f32m8)))
-vfloat32m8_t vfsub(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f32m8_m)))
-vfloat32m8_t vfsub(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f32mf2)))
-vfloat32mf2_t vfsub(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f32mf2_m)))
-vfloat32mf2_t vfsub(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f32m1)))
-vfloat32m1_t vfrsub(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f32m1_m)))
-vfloat32m1_t vfrsub(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f32m2)))
-vfloat32m2_t vfrsub(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f32m2_m)))
-vfloat32m2_t vfrsub(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f32m4)))
-vfloat32m4_t vfrsub(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f32m4_m)))
-vfloat32m4_t vfrsub(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f32m8)))
-vfloat32m8_t vfrsub(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f32m8_m)))
-vfloat32m8_t vfrsub(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f32mf2)))
-vfloat32mf2_t vfrsub(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f32mf2_m)))
-vfloat32mf2_t vfrsub(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f32m1)))
-vfloat32m1_t vfmul(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f32m1_m)))
-vfloat32m1_t vfmul(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f32m2)))
-vfloat32m2_t vfmul(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f32m2_m)))
-vfloat32m2_t vfmul(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f32m4)))
-vfloat32m4_t vfmul(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f32m4_m)))
-vfloat32m4_t vfmul(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f32m8)))
-vfloat32m8_t vfmul(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f32m8_m)))
-vfloat32m8_t vfmul(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f32mf2)))
-vfloat32mf2_t vfmul(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f32mf2_m)))
-vfloat32mf2_t vfmul(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f32m1)))
-vfloat32m1_t vfmul(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f32m1_m)))
-vfloat32m1_t vfmul(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f32m2)))
-vfloat32m2_t vfmul(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f32m2_m)))
-vfloat32m2_t vfmul(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f32m4)))
-vfloat32m4_t vfmul(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f32m4_m)))
-vfloat32m4_t vfmul(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f32m8)))
-vfloat32m8_t vfmul(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f32m8_m)))
-vfloat32m8_t vfmul(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f32mf2)))
-vfloat32mf2_t vfmul(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f32mf2_m)))
-vfloat32mf2_t vfmul(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f32m1)))
-vfloat32m1_t vfdiv(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f32m1_m)))
-vfloat32m1_t vfdiv(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f32m2)))
-vfloat32m2_t vfdiv(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f32m2_m)))
-vfloat32m2_t vfdiv(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f32m4)))
-vfloat32m4_t vfdiv(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f32m4_m)))
-vfloat32m4_t vfdiv(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f32m8)))
-vfloat32m8_t vfdiv(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f32m8_m)))
-vfloat32m8_t vfdiv(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f32mf2)))
-vfloat32mf2_t vfdiv(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f32mf2_m)))
-vfloat32mf2_t vfdiv(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f32m1)))
-vfloat32m1_t vfdiv(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f32m1_m)))
-vfloat32m1_t vfdiv(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f32m2)))
-vfloat32m2_t vfdiv(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f32m2_m)))
-vfloat32m2_t vfdiv(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f32m4)))
-vfloat32m4_t vfdiv(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f32m4_m)))
-vfloat32m4_t vfdiv(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f32m8)))
-vfloat32m8_t vfdiv(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f32m8_m)))
-vfloat32m8_t vfdiv(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f32mf2)))
-vfloat32mf2_t vfdiv(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f32mf2_m)))
-vfloat32mf2_t vfdiv(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f32m1)))
-vfloat32m1_t vfrdiv(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f32m1_m)))
-vfloat32m1_t vfrdiv(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f32m2)))
-vfloat32m2_t vfrdiv(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f32m2_m)))
-vfloat32m2_t vfrdiv(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f32m4)))
-vfloat32m4_t vfrdiv(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f32m4_m)))
-vfloat32m4_t vfrdiv(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f32m8)))
-vfloat32m8_t vfrdiv(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f32m8_m)))
-vfloat32m8_t vfrdiv(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f32mf2)))
-vfloat32mf2_t vfrdiv(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f32mf2_m)))
-vfloat32mf2_t vfrdiv(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f32m1)))
-vfloat32m1_t vfmacc(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f32m1_m)))
-vfloat32m1_t vfmacc(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f32m2)))
-vfloat32m2_t vfmacc(vfloat32m2_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f32m2_m)))
-vfloat32m2_t vfmacc(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f32m4)))
-vfloat32m4_t vfmacc(vfloat32m4_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f32m4_m)))
-vfloat32m4_t vfmacc(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f32m8)))
-vfloat32m8_t vfmacc(vfloat32m8_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f32m8_m)))
-vfloat32m8_t vfmacc(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f32mf2)))
-vfloat32mf2_t vfmacc(vfloat32mf2_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f32mf2_m)))
-vfloat32mf2_t vfmacc(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f32m1)))
-vfloat32m1_t vfmacc(vfloat32m1_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f32m1_m)))
-vfloat32m1_t vfmacc(vbool32_t op0, vfloat32m1_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f32m2)))
-vfloat32m2_t vfmacc(vfloat32m2_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f32m2_m)))
-vfloat32m2_t vfmacc(vbool16_t op0, vfloat32m2_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f32m4)))
-vfloat32m4_t vfmacc(vfloat32m4_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f32m4_m)))
-vfloat32m4_t vfmacc(vbool8_t op0, vfloat32m4_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f32m8)))
-vfloat32m8_t vfmacc(vfloat32m8_t op0, float op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f32m8_m)))
-vfloat32m8_t vfmacc(vbool4_t op0, vfloat32m8_t op1, float op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f32mf2)))
-vfloat32mf2_t vfmacc(vfloat32mf2_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f32mf2_m)))
-vfloat32mf2_t vfmacc(vbool64_t op0, vfloat32mf2_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f32m1)))
-vfloat32m1_t vfnmacc(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f32m1_m)))
-vfloat32m1_t vfnmacc(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f32m2)))
-vfloat32m2_t vfnmacc(vfloat32m2_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f32m2_m)))
-vfloat32m2_t vfnmacc(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f32m4)))
-vfloat32m4_t vfnmacc(vfloat32m4_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f32m4_m)))
-vfloat32m4_t vfnmacc(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f32m8)))
-vfloat32m8_t vfnmacc(vfloat32m8_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f32m8_m)))
-vfloat32m8_t vfnmacc(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f32mf2)))
-vfloat32mf2_t vfnmacc(vfloat32mf2_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f32mf2_m)))
-vfloat32mf2_t vfnmacc(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f32m1)))
-vfloat32m1_t vfnmacc(vfloat32m1_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f32m1_m)))
-vfloat32m1_t vfnmacc(vbool32_t op0, vfloat32m1_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f32m2)))
-vfloat32m2_t vfnmacc(vfloat32m2_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f32m2_m)))
-vfloat32m2_t vfnmacc(vbool16_t op0, vfloat32m2_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f32m4)))
-vfloat32m4_t vfnmacc(vfloat32m4_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f32m4_m)))
-vfloat32m4_t vfnmacc(vbool8_t op0, vfloat32m4_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f32m8)))
-vfloat32m8_t vfnmacc(vfloat32m8_t op0, float op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f32m8_m)))
-vfloat32m8_t vfnmacc(vbool4_t op0, vfloat32m8_t op1, float op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f32mf2)))
-vfloat32mf2_t vfnmacc(vfloat32mf2_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f32mf2_m)))
-vfloat32mf2_t vfnmacc(vbool64_t op0, vfloat32mf2_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f32m1)))
-vfloat32m1_t vfmsac(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f32m1_m)))
-vfloat32m1_t vfmsac(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f32m2)))
-vfloat32m2_t vfmsac(vfloat32m2_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f32m2_m)))
-vfloat32m2_t vfmsac(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f32m4)))
-vfloat32m4_t vfmsac(vfloat32m4_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f32m4_m)))
-vfloat32m4_t vfmsac(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f32m8)))
-vfloat32m8_t vfmsac(vfloat32m8_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f32m8_m)))
-vfloat32m8_t vfmsac(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f32mf2)))
-vfloat32mf2_t vfmsac(vfloat32mf2_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f32mf2_m)))
-vfloat32mf2_t vfmsac(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f32m1)))
-vfloat32m1_t vfmsac(vfloat32m1_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f32m1_m)))
-vfloat32m1_t vfmsac(vbool32_t op0, vfloat32m1_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f32m2)))
-vfloat32m2_t vfmsac(vfloat32m2_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f32m2_m)))
-vfloat32m2_t vfmsac(vbool16_t op0, vfloat32m2_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f32m4)))
-vfloat32m4_t vfmsac(vfloat32m4_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f32m4_m)))
-vfloat32m4_t vfmsac(vbool8_t op0, vfloat32m4_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f32m8)))
-vfloat32m8_t vfmsac(vfloat32m8_t op0, float op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f32m8_m)))
-vfloat32m8_t vfmsac(vbool4_t op0, vfloat32m8_t op1, float op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f32mf2)))
-vfloat32mf2_t vfmsac(vfloat32mf2_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f32mf2_m)))
-vfloat32mf2_t vfmsac(vbool64_t op0, vfloat32mf2_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f32m1)))
-vfloat32m1_t vfnmsac(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f32m1_m)))
-vfloat32m1_t vfnmsac(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f32m2)))
-vfloat32m2_t vfnmsac(vfloat32m2_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f32m2_m)))
-vfloat32m2_t vfnmsac(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f32m4)))
-vfloat32m4_t vfnmsac(vfloat32m4_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f32m4_m)))
-vfloat32m4_t vfnmsac(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f32m8)))
-vfloat32m8_t vfnmsac(vfloat32m8_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f32m8_m)))
-vfloat32m8_t vfnmsac(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f32mf2)))
-vfloat32mf2_t vfnmsac(vfloat32mf2_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f32mf2_m)))
-vfloat32mf2_t vfnmsac(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f32m1)))
-vfloat32m1_t vfnmsac(vfloat32m1_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f32m1_m)))
-vfloat32m1_t vfnmsac(vbool32_t op0, vfloat32m1_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f32m2)))
-vfloat32m2_t vfnmsac(vfloat32m2_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f32m2_m)))
-vfloat32m2_t vfnmsac(vbool16_t op0, vfloat32m2_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f32m4)))
-vfloat32m4_t vfnmsac(vfloat32m4_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f32m4_m)))
-vfloat32m4_t vfnmsac(vbool8_t op0, vfloat32m4_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f32m8)))
-vfloat32m8_t vfnmsac(vfloat32m8_t op0, float op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f32m8_m)))
-vfloat32m8_t vfnmsac(vbool4_t op0, vfloat32m8_t op1, float op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f32mf2)))
-vfloat32mf2_t vfnmsac(vfloat32mf2_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f32mf2_m)))
-vfloat32mf2_t vfnmsac(vbool64_t op0, vfloat32mf2_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f32m1)))
-vfloat32m1_t vfmadd(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f32m1_m)))
-vfloat32m1_t vfmadd(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f32m2)))
-vfloat32m2_t vfmadd(vfloat32m2_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f32m2_m)))
-vfloat32m2_t vfmadd(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f32m4)))
-vfloat32m4_t vfmadd(vfloat32m4_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f32m4_m)))
-vfloat32m4_t vfmadd(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f32m8)))
-vfloat32m8_t vfmadd(vfloat32m8_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f32m8_m)))
-vfloat32m8_t vfmadd(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f32mf2)))
-vfloat32mf2_t vfmadd(vfloat32mf2_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f32mf2_m)))
-vfloat32mf2_t vfmadd(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f32m1)))
-vfloat32m1_t vfmadd(vfloat32m1_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f32m1_m)))
-vfloat32m1_t vfmadd(vbool32_t op0, vfloat32m1_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f32m2)))
-vfloat32m2_t vfmadd(vfloat32m2_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f32m2_m)))
-vfloat32m2_t vfmadd(vbool16_t op0, vfloat32m2_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f32m4)))
-vfloat32m4_t vfmadd(vfloat32m4_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f32m4_m)))
-vfloat32m4_t vfmadd(vbool8_t op0, vfloat32m4_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f32m8)))
-vfloat32m8_t vfmadd(vfloat32m8_t op0, float op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f32m8_m)))
-vfloat32m8_t vfmadd(vbool4_t op0, vfloat32m8_t op1, float op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f32mf2)))
-vfloat32mf2_t vfmadd(vfloat32mf2_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f32mf2_m)))
-vfloat32mf2_t vfmadd(vbool64_t op0, vfloat32mf2_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f32m1)))
-vfloat32m1_t vfnmadd(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f32m1_m)))
-vfloat32m1_t vfnmadd(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f32m2)))
-vfloat32m2_t vfnmadd(vfloat32m2_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f32m2_m)))
-vfloat32m2_t vfnmadd(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f32m4)))
-vfloat32m4_t vfnmadd(vfloat32m4_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f32m4_m)))
-vfloat32m4_t vfnmadd(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f32m8)))
-vfloat32m8_t vfnmadd(vfloat32m8_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f32m8_m)))
-vfloat32m8_t vfnmadd(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f32mf2)))
-vfloat32mf2_t vfnmadd(vfloat32mf2_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f32mf2_m)))
-vfloat32mf2_t vfnmadd(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f32m1)))
-vfloat32m1_t vfnmadd(vfloat32m1_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f32m1_m)))
-vfloat32m1_t vfnmadd(vbool32_t op0, vfloat32m1_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f32m2)))
-vfloat32m2_t vfnmadd(vfloat32m2_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f32m2_m)))
-vfloat32m2_t vfnmadd(vbool16_t op0, vfloat32m2_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f32m4)))
-vfloat32m4_t vfnmadd(vfloat32m4_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f32m4_m)))
-vfloat32m4_t vfnmadd(vbool8_t op0, vfloat32m4_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f32m8)))
-vfloat32m8_t vfnmadd(vfloat32m8_t op0, float op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f32m8_m)))
-vfloat32m8_t vfnmadd(vbool4_t op0, vfloat32m8_t op1, float op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f32mf2)))
-vfloat32mf2_t vfnmadd(vfloat32mf2_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f32mf2_m)))
-vfloat32mf2_t vfnmadd(vbool64_t op0, vfloat32mf2_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f32m1)))
-vfloat32m1_t vfmsub(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f32m1_m)))
-vfloat32m1_t vfmsub(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f32m2)))
-vfloat32m2_t vfmsub(vfloat32m2_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f32m2_m)))
-vfloat32m2_t vfmsub(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f32m4)))
-vfloat32m4_t vfmsub(vfloat32m4_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f32m4_m)))
-vfloat32m4_t vfmsub(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f32m8)))
-vfloat32m8_t vfmsub(vfloat32m8_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f32m8_m)))
-vfloat32m8_t vfmsub(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f32mf2)))
-vfloat32mf2_t vfmsub(vfloat32mf2_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f32mf2_m)))
-vfloat32mf2_t vfmsub(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f32m1)))
-vfloat32m1_t vfmsub(vfloat32m1_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f32m1_m)))
-vfloat32m1_t vfmsub(vbool32_t op0, vfloat32m1_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f32m2)))
-vfloat32m2_t vfmsub(vfloat32m2_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f32m2_m)))
-vfloat32m2_t vfmsub(vbool16_t op0, vfloat32m2_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f32m4)))
-vfloat32m4_t vfmsub(vfloat32m4_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f32m4_m)))
-vfloat32m4_t vfmsub(vbool8_t op0, vfloat32m4_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f32m8)))
-vfloat32m8_t vfmsub(vfloat32m8_t op0, float op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f32m8_m)))
-vfloat32m8_t vfmsub(vbool4_t op0, vfloat32m8_t op1, float op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f32mf2)))
-vfloat32mf2_t vfmsub(vfloat32mf2_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f32mf2_m)))
-vfloat32mf2_t vfmsub(vbool64_t op0, vfloat32mf2_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f32m1)))
-vfloat32m1_t vfnmsub(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f32m1_m)))
-vfloat32m1_t vfnmsub(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f32m2)))
-vfloat32m2_t vfnmsub(vfloat32m2_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f32m2_m)))
-vfloat32m2_t vfnmsub(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f32m4)))
-vfloat32m4_t vfnmsub(vfloat32m4_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f32m4_m)))
-vfloat32m4_t vfnmsub(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f32m8)))
-vfloat32m8_t vfnmsub(vfloat32m8_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f32m8_m)))
-vfloat32m8_t vfnmsub(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f32mf2)))
-vfloat32mf2_t vfnmsub(vfloat32mf2_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f32mf2_m)))
-vfloat32mf2_t vfnmsub(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f32m1)))
-vfloat32m1_t vfnmsub(vfloat32m1_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f32m1_m)))
-vfloat32m1_t vfnmsub(vbool32_t op0, vfloat32m1_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f32m2)))
-vfloat32m2_t vfnmsub(vfloat32m2_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f32m2_m)))
-vfloat32m2_t vfnmsub(vbool16_t op0, vfloat32m2_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f32m4)))
-vfloat32m4_t vfnmsub(vfloat32m4_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f32m4_m)))
-vfloat32m4_t vfnmsub(vbool8_t op0, vfloat32m4_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f32m8)))
-vfloat32m8_t vfnmsub(vfloat32m8_t op0, float op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f32m8_m)))
-vfloat32m8_t vfnmsub(vbool4_t op0, vfloat32m8_t op1, float op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f32mf2)))
-vfloat32mf2_t vfnmsub(vfloat32mf2_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f32mf2_m)))
-vfloat32mf2_t vfnmsub(vbool64_t op0, vfloat32mf2_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f32m1)))
-vfloat32m1_t vfmin(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f32m1_m)))
-vfloat32m1_t vfmin(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f32m2)))
-vfloat32m2_t vfmin(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f32m2_m)))
-vfloat32m2_t vfmin(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f32m4)))
-vfloat32m4_t vfmin(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f32m4_m)))
-vfloat32m4_t vfmin(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f32m8)))
-vfloat32m8_t vfmin(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f32m8_m)))
-vfloat32m8_t vfmin(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f32mf2)))
-vfloat32mf2_t vfmin(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f32mf2_m)))
-vfloat32mf2_t vfmin(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f32m1)))
-vfloat32m1_t vfmin(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f32m1_m)))
-vfloat32m1_t vfmin(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f32m2)))
-vfloat32m2_t vfmin(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f32m2_m)))
-vfloat32m2_t vfmin(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f32m4)))
-vfloat32m4_t vfmin(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f32m4_m)))
-vfloat32m4_t vfmin(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f32m8)))
-vfloat32m8_t vfmin(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f32m8_m)))
-vfloat32m8_t vfmin(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f32mf2)))
-vfloat32mf2_t vfmin(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f32mf2_m)))
-vfloat32mf2_t vfmin(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f32m1)))
-vfloat32m1_t vfmax(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f32m1_m)))
-vfloat32m1_t vfmax(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f32m2)))
-vfloat32m2_t vfmax(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f32m2_m)))
-vfloat32m2_t vfmax(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f32m4)))
-vfloat32m4_t vfmax(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f32m4_m)))
-vfloat32m4_t vfmax(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f32m8)))
-vfloat32m8_t vfmax(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f32m8_m)))
-vfloat32m8_t vfmax(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f32mf2)))
-vfloat32mf2_t vfmax(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f32mf2_m)))
-vfloat32mf2_t vfmax(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f32m1)))
-vfloat32m1_t vfmax(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f32m1_m)))
-vfloat32m1_t vfmax(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f32m2)))
-vfloat32m2_t vfmax(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f32m2_m)))
-vfloat32m2_t vfmax(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f32m4)))
-vfloat32m4_t vfmax(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f32m4_m)))
-vfloat32m4_t vfmax(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f32m8)))
-vfloat32m8_t vfmax(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f32m8_m)))
-vfloat32m8_t vfmax(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f32mf2)))
-vfloat32mf2_t vfmax(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f32mf2_m)))
-vfloat32mf2_t vfmax(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f32m1)))
-vfloat32m1_t vfsgnj(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f32m1_m)))
-vfloat32m1_t vfsgnj(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f32m2)))
-vfloat32m2_t vfsgnj(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f32m2_m)))
-vfloat32m2_t vfsgnj(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f32m4)))
-vfloat32m4_t vfsgnj(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f32m4_m)))
-vfloat32m4_t vfsgnj(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f32m8)))
-vfloat32m8_t vfsgnj(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f32m8_m)))
-vfloat32m8_t vfsgnj(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f32mf2)))
-vfloat32mf2_t vfsgnj(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f32mf2_m)))
-vfloat32mf2_t vfsgnj(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f32m1)))
-vfloat32m1_t vfsgnj(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f32m1_m)))
-vfloat32m1_t vfsgnj(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f32m2)))
-vfloat32m2_t vfsgnj(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f32m2_m)))
-vfloat32m2_t vfsgnj(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f32m4)))
-vfloat32m4_t vfsgnj(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f32m4_m)))
-vfloat32m4_t vfsgnj(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f32m8)))
-vfloat32m8_t vfsgnj(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f32m8_m)))
-vfloat32m8_t vfsgnj(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f32mf2)))
-vfloat32mf2_t vfsgnj(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f32mf2_m)))
-vfloat32mf2_t vfsgnj(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f32m1)))
-vfloat32m1_t vfsgnjn(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f32m1_m)))
-vfloat32m1_t vfsgnjn(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f32m2)))
-vfloat32m2_t vfsgnjn(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f32m2_m)))
-vfloat32m2_t vfsgnjn(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f32m4)))
-vfloat32m4_t vfsgnjn(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f32m4_m)))
-vfloat32m4_t vfsgnjn(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f32m8)))
-vfloat32m8_t vfsgnjn(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f32m8_m)))
-vfloat32m8_t vfsgnjn(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f32mf2)))
-vfloat32mf2_t vfsgnjn(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f32mf2_m)))
-vfloat32mf2_t vfsgnjn(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f32m1)))
-vfloat32m1_t vfsgnjn(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f32m1_m)))
-vfloat32m1_t vfsgnjn(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f32m2)))
-vfloat32m2_t vfsgnjn(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f32m2_m)))
-vfloat32m2_t vfsgnjn(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f32m4)))
-vfloat32m4_t vfsgnjn(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f32m4_m)))
-vfloat32m4_t vfsgnjn(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f32m8)))
-vfloat32m8_t vfsgnjn(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f32m8_m)))
-vfloat32m8_t vfsgnjn(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f32mf2)))
-vfloat32mf2_t vfsgnjn(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f32mf2_m)))
-vfloat32mf2_t vfsgnjn(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f32m1)))
-vfloat32m1_t vfsgnjx(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f32m1_m)))
-vfloat32m1_t vfsgnjx(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f32m2)))
-vfloat32m2_t vfsgnjx(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f32m2_m)))
-vfloat32m2_t vfsgnjx(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f32m4)))
-vfloat32m4_t vfsgnjx(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f32m4_m)))
-vfloat32m4_t vfsgnjx(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f32m8)))
-vfloat32m8_t vfsgnjx(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f32m8_m)))
-vfloat32m8_t vfsgnjx(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f32mf2)))
-vfloat32mf2_t vfsgnjx(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f32mf2_m)))
-vfloat32mf2_t vfsgnjx(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f32m1)))
-vfloat32m1_t vfsgnjx(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f32m1_m)))
-vfloat32m1_t vfsgnjx(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f32m2)))
-vfloat32m2_t vfsgnjx(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f32m2_m)))
-vfloat32m2_t vfsgnjx(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f32m4)))
-vfloat32m4_t vfsgnjx(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f32m4_m)))
-vfloat32m4_t vfsgnjx(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f32m8)))
-vfloat32m8_t vfsgnjx(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f32m8_m)))
-vfloat32m8_t vfsgnjx(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f32mf2)))
-vfloat32mf2_t vfsgnjx(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f32mf2_m)))
-vfloat32mf2_t vfsgnjx(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f32m1)))
-vfloat32m1_t vfabs(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f32m1_m)))
-vfloat32m1_t vfabs(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f32m2)))
-vfloat32m2_t vfabs(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f32m2_m)))
-vfloat32m2_t vfabs(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f32m4)))
-vfloat32m4_t vfabs(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f32m4_m)))
-vfloat32m4_t vfabs(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f32m8)))
-vfloat32m8_t vfabs(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f32m8_m)))
-vfloat32m8_t vfabs(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f32mf2)))
-vfloat32mf2_t vfabs(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f32mf2_m)))
-vfloat32mf2_t vfabs(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f32m1_b32)))
-vbool32_t vmfeq(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f32m1_b32_m)))
-vbool32_t vmfeq(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f32m2_b16)))
-vbool16_t vmfeq(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f32m2_b16_m)))
-vbool16_t vmfeq(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f32m4_b8)))
-vbool8_t vmfeq(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f32m4_b8_m)))
-vbool8_t vmfeq(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f32m8_b4)))
-vbool4_t vmfeq(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f32m8_b4_m)))
-vbool4_t vmfeq(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f32mf2_b64)))
-vbool64_t vmfeq(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f32mf2_b64_m)))
-vbool64_t vmfeq(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f32m1_b32)))
-vbool32_t vmfeq(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f32m1_b32_m)))
-vbool32_t vmfeq(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f32m2_b16)))
-vbool16_t vmfeq(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f32m2_b16_m)))
-vbool16_t vmfeq(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f32m4_b8)))
-vbool8_t vmfeq(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f32m4_b8_m)))
-vbool8_t vmfeq(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f32m8_b4)))
-vbool4_t vmfeq(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f32m8_b4_m)))
-vbool4_t vmfeq(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f32mf2_b64)))
-vbool64_t vmfeq(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f32mf2_b64_m)))
-vbool64_t vmfeq(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f32m1_b32)))
-vbool32_t vmfne(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f32m1_b32_m)))
-vbool32_t vmfne(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f32m2_b16)))
-vbool16_t vmfne(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f32m2_b16_m)))
-vbool16_t vmfne(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f32m4_b8)))
-vbool8_t vmfne(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f32m4_b8_m)))
-vbool8_t vmfne(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f32m8_b4)))
-vbool4_t vmfne(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f32m8_b4_m)))
-vbool4_t vmfne(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f32mf2_b64)))
-vbool64_t vmfne(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f32mf2_b64_m)))
-vbool64_t vmfne(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f32m1_b32)))
-vbool32_t vmfne(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f32m1_b32_m)))
-vbool32_t vmfne(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f32m2_b16)))
-vbool16_t vmfne(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f32m2_b16_m)))
-vbool16_t vmfne(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f32m4_b8)))
-vbool8_t vmfne(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f32m4_b8_m)))
-vbool8_t vmfne(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f32m8_b4)))
-vbool4_t vmfne(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f32m8_b4_m)))
-vbool4_t vmfne(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f32mf2_b64)))
-vbool64_t vmfne(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f32mf2_b64_m)))
-vbool64_t vmfne(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f32m1_b32)))
-vbool32_t vmflt(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f32m1_b32_m)))
-vbool32_t vmflt(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f32m2_b16)))
-vbool16_t vmflt(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f32m2_b16_m)))
-vbool16_t vmflt(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f32m4_b8)))
-vbool8_t vmflt(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f32m4_b8_m)))
-vbool8_t vmflt(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f32m8_b4)))
-vbool4_t vmflt(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f32m8_b4_m)))
-vbool4_t vmflt(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f32mf2_b64)))
-vbool64_t vmflt(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f32mf2_b64_m)))
-vbool64_t vmflt(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f32m1_b32)))
-vbool32_t vmflt(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f32m1_b32_m)))
-vbool32_t vmflt(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f32m2_b16)))
-vbool16_t vmflt(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f32m2_b16_m)))
-vbool16_t vmflt(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f32m4_b8)))
-vbool8_t vmflt(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f32m4_b8_m)))
-vbool8_t vmflt(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f32m8_b4)))
-vbool4_t vmflt(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f32m8_b4_m)))
-vbool4_t vmflt(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f32mf2_b64)))
-vbool64_t vmflt(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f32mf2_b64_m)))
-vbool64_t vmflt(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f32m1_b32)))
-vbool32_t vmfle(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f32m1_b32_m)))
-vbool32_t vmfle(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f32m2_b16)))
-vbool16_t vmfle(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f32m2_b16_m)))
-vbool16_t vmfle(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f32m4_b8)))
-vbool8_t vmfle(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f32m4_b8_m)))
-vbool8_t vmfle(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f32m8_b4)))
-vbool4_t vmfle(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f32m8_b4_m)))
-vbool4_t vmfle(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f32mf2_b64)))
-vbool64_t vmfle(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f32mf2_b64_m)))
-vbool64_t vmfle(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f32m1_b32)))
-vbool32_t vmfle(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f32m1_b32_m)))
-vbool32_t vmfle(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f32m2_b16)))
-vbool16_t vmfle(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f32m2_b16_m)))
-vbool16_t vmfle(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f32m4_b8)))
-vbool8_t vmfle(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f32m4_b8_m)))
-vbool8_t vmfle(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f32m8_b4)))
-vbool4_t vmfle(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f32m8_b4_m)))
-vbool4_t vmfle(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f32mf2_b64)))
-vbool64_t vmfle(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f32mf2_b64_m)))
-vbool64_t vmfle(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f32m1_b32)))
-vbool32_t vmfgt(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f32m1_b32_m)))
-vbool32_t vmfgt(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f32m2_b16)))
-vbool16_t vmfgt(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f32m2_b16_m)))
-vbool16_t vmfgt(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f32m4_b8)))
-vbool8_t vmfgt(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f32m4_b8_m)))
-vbool8_t vmfgt(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f32m8_b4)))
-vbool4_t vmfgt(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f32m8_b4_m)))
-vbool4_t vmfgt(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f32mf2_b64)))
-vbool64_t vmfgt(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f32mf2_b64_m)))
-vbool64_t vmfgt(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f32m1_b32)))
-vbool32_t vmfgt(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f32m1_b32_m)))
-vbool32_t vmfgt(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f32m2_b16)))
-vbool16_t vmfgt(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f32m2_b16_m)))
-vbool16_t vmfgt(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f32m4_b8)))
-vbool8_t vmfgt(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f32m4_b8_m)))
-vbool8_t vmfgt(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f32m8_b4)))
-vbool4_t vmfgt(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f32m8_b4_m)))
-vbool4_t vmfgt(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f32mf2_b64)))
-vbool64_t vmfgt(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f32mf2_b64_m)))
-vbool64_t vmfgt(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f32m1_b32)))
-vbool32_t vmfge(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f32m1_b32_m)))
-vbool32_t vmfge(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f32m2_b16)))
-vbool16_t vmfge(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f32m2_b16_m)))
-vbool16_t vmfge(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f32m4_b8)))
-vbool8_t vmfge(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f32m4_b8_m)))
-vbool8_t vmfge(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f32m8_b4)))
-vbool4_t vmfge(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f32m8_b4_m)))
-vbool4_t vmfge(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f32mf2_b64)))
-vbool64_t vmfge(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f32mf2_b64_m)))
-vbool64_t vmfge(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f32m1_b32)))
-vbool32_t vmfge(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f32m1_b32_m)))
-vbool32_t vmfge(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f32m2_b16)))
-vbool16_t vmfge(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f32m2_b16_m)))
-vbool16_t vmfge(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f32m4_b8)))
-vbool8_t vmfge(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f32m4_b8_m)))
-vbool8_t vmfge(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f32m8_b4)))
-vbool4_t vmfge(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f32m8_b4_m)))
-vbool4_t vmfge(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f32mf2_b64)))
-vbool64_t vmfge(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f32mf2_b64_m)))
-vbool64_t vmfge(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f32m1)))
-vfloat32m1_t vmerge(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f32m2)))
-vfloat32m2_t vmerge(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f32m4)))
-vfloat32m4_t vmerge(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f32m8)))
-vfloat32m8_t vmerge(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f32mf2)))
-vfloat32mf2_t vmerge(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f32m1)))
-vfloat32m1_t vfmerge(vbool32_t op0, vfloat32m1_t op1, float op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f32m2)))
-vfloat32m2_t vfmerge(vbool16_t op0, vfloat32m2_t op1, float op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f32m4)))
-vfloat32m4_t vfmerge(vbool8_t op0, vfloat32m4_t op1, float op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f32m8)))
-vfloat32m8_t vfmerge(vbool4_t op0, vfloat32m8_t op1, float op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f32mf2)))
-vfloat32mf2_t vfmerge(vbool64_t op0, vfloat32mf2_t op1, float op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f32m1_f32m1)))
-vfloat32m1_t vfredmax(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f32m1_f32m1_m)))
-vfloat32m1_t vfredmax(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f32m2_f32m1)))
-vfloat32m1_t vfredmax(vfloat32m1_t op0, vfloat32m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f32m2_f32m1_m)))
-vfloat32m1_t vfredmax(vbool16_t op0, vfloat32m1_t op1, vfloat32m2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f32m4_f32m1)))
-vfloat32m1_t vfredmax(vfloat32m1_t op0, vfloat32m4_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f32m4_f32m1_m)))
-vfloat32m1_t vfredmax(vbool8_t op0, vfloat32m1_t op1, vfloat32m4_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f32m8_f32m1)))
-vfloat32m1_t vfredmax(vfloat32m1_t op0, vfloat32m8_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f32m8_f32m1_m)))
-vfloat32m1_t vfredmax(vbool4_t op0, vfloat32m1_t op1, vfloat32m8_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f32mf2_f32m1)))
-vfloat32m1_t vfredmax(vfloat32m1_t op0, vfloat32mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f32mf2_f32m1_m)))
-vfloat32m1_t vfredmax(vbool64_t op0, vfloat32m1_t op1, vfloat32mf2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f32m1_f32m1)))
-vfloat32m1_t vfredmin(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f32m1_f32m1_m)))
-vfloat32m1_t vfredmin(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f32m2_f32m1)))
-vfloat32m1_t vfredmin(vfloat32m1_t op0, vfloat32m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f32m2_f32m1_m)))
-vfloat32m1_t vfredmin(vbool16_t op0, vfloat32m1_t op1, vfloat32m2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f32m4_f32m1)))
-vfloat32m1_t vfredmin(vfloat32m1_t op0, vfloat32m4_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f32m4_f32m1_m)))
-vfloat32m1_t vfredmin(vbool8_t op0, vfloat32m1_t op1, vfloat32m4_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f32m8_f32m1)))
-vfloat32m1_t vfredmin(vfloat32m1_t op0, vfloat32m8_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f32m8_f32m1_m)))
-vfloat32m1_t vfredmin(vbool4_t op0, vfloat32m1_t op1, vfloat32m8_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f32mf2_f32m1)))
-vfloat32m1_t vfredmin(vfloat32m1_t op0, vfloat32mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f32mf2_f32m1_m)))
-vfloat32m1_t vfredmin(vbool64_t op0, vfloat32m1_t op1, vfloat32mf2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f32m1_f32m1)))
-vfloat32m1_t vfredsum(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f32m1_f32m1_m)))
-vfloat32m1_t vfredsum(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f32m2_f32m1)))
-vfloat32m1_t vfredsum(vfloat32m1_t op0, vfloat32m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f32m2_f32m1_m)))
-vfloat32m1_t vfredsum(vbool16_t op0, vfloat32m1_t op1, vfloat32m2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f32m4_f32m1)))
-vfloat32m1_t vfredsum(vfloat32m1_t op0, vfloat32m4_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f32m4_f32m1_m)))
-vfloat32m1_t vfredsum(vbool8_t op0, vfloat32m1_t op1, vfloat32m4_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f32m8_f32m1)))
-vfloat32m1_t vfredsum(vfloat32m1_t op0, vfloat32m8_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f32m8_f32m1_m)))
-vfloat32m1_t vfredsum(vbool4_t op0, vfloat32m1_t op1, vfloat32m8_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f32mf2_f32m1)))
-vfloat32m1_t vfredsum(vfloat32m1_t op0, vfloat32mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f32mf2_f32m1_m)))
-vfloat32m1_t vfredsum(vbool64_t op0, vfloat32m1_t op1, vfloat32mf2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f32m1_f32m1)))
-vfloat32m1_t vfredosum(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f32m1_f32m1_m)))
-vfloat32m1_t vfredosum(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f32m2_f32m1)))
-vfloat32m1_t vfredosum(vfloat32m1_t op0, vfloat32m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f32m2_f32m1_m)))
-vfloat32m1_t vfredosum(vbool16_t op0, vfloat32m1_t op1, vfloat32m2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f32m4_f32m1)))
-vfloat32m1_t vfredosum(vfloat32m1_t op0, vfloat32m4_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f32m4_f32m1_m)))
-vfloat32m1_t vfredosum(vbool8_t op0, vfloat32m1_t op1, vfloat32m4_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f32m8_f32m1)))
-vfloat32m1_t vfredosum(vfloat32m1_t op0, vfloat32m8_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f32m8_f32m1_m)))
-vfloat32m1_t vfredosum(vbool4_t op0, vfloat32m1_t op1, vfloat32m8_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f32mf2_f32m1)))
-vfloat32m1_t vfredosum(vfloat32m1_t op0, vfloat32mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f32mf2_f32m1_m)))
-vfloat32m1_t vfredosum(vbool64_t op0, vfloat32m1_t op1, vfloat32mf2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f32m1_f32)))
-float vfmv_f(vfloat32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f32m2_f32)))
-float vfmv_f(vfloat32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f32m4_f32)))
-float vfmv_f(vfloat32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f32m8_f32)))
-float vfmv_f(vfloat32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f32mf2_f32)))
-float vfmv_f(vfloat32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f32m1)))
-vfloat32m1_t vfmv_s(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f32m2)))
-vfloat32m2_t vfmv_s(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f32m4)))
-vfloat32m4_t vfmv_s(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f32m8)))
-vfloat32m8_t vfmv_s(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f32mf2)))
-vfloat32mf2_t vfmv_s(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f32m1)))
-vfloat32m1_t vslideup(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f32m1_m)))
-vfloat32m1_t vslideup(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f32m2)))
-vfloat32m2_t vslideup(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f32m2_m)))
-vfloat32m2_t vslideup(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f32m4)))
-vfloat32m4_t vslideup(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f32m4_m)))
-vfloat32m4_t vslideup(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f32m8)))
-vfloat32m8_t vslideup(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f32m8_m)))
-vfloat32m8_t vslideup(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f32mf2)))
-vfloat32mf2_t vslideup(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f32mf2_m)))
-vfloat32mf2_t vslideup(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f32m1)))
-vfloat32m1_t vslidedown(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f32m1_m)))
-vfloat32m1_t vslidedown(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f32m2)))
-vfloat32m2_t vslidedown(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f32m2_m)))
-vfloat32m2_t vslidedown(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f32m4)))
-vfloat32m4_t vslidedown(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f32m4_m)))
-vfloat32m4_t vslidedown(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f32m8)))
-vfloat32m8_t vslidedown(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f32m8_m)))
-vfloat32m8_t vslidedown(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f32mf2)))
-vfloat32mf2_t vslidedown(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f32mf2_m)))
-vfloat32mf2_t vslidedown(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f32m1)))
-vfloat32m1_t vfslide1up(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f32m1_m)))
-vfloat32m1_t vfslide1up(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f32m2)))
-vfloat32m2_t vfslide1up(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f32m2_m)))
-vfloat32m2_t vfslide1up(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f32m4)))
-vfloat32m4_t vfslide1up(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f32m4_m)))
-vfloat32m4_t vfslide1up(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f32m8)))
-vfloat32m8_t vfslide1up(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f32m8_m)))
-vfloat32m8_t vfslide1up(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f32mf2)))
-vfloat32mf2_t vfslide1up(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f32mf2_m)))
-vfloat32mf2_t vfslide1up(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f32m1)))
-vfloat32m1_t vfslide1down(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f32m1_m)))
-vfloat32m1_t vfslide1down(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f32m2)))
-vfloat32m2_t vfslide1down(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f32m2_m)))
-vfloat32m2_t vfslide1down(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f32m4)))
-vfloat32m4_t vfslide1down(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f32m4_m)))
-vfloat32m4_t vfslide1down(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f32m8)))
-vfloat32m8_t vfslide1down(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f32m8_m)))
-vfloat32m8_t vfslide1down(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f32mf2)))
-vfloat32mf2_t vfslide1down(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f32mf2_m)))
-vfloat32mf2_t vfslide1down(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f32m1)))
-vfloat32m1_t vrgather(vfloat32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f32m1_m)))
-vfloat32m1_t vrgather(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f32m2)))
-vfloat32m2_t vrgather(vfloat32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f32m2_m)))
-vfloat32m2_t vrgather(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f32m4)))
-vfloat32m4_t vrgather(vfloat32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f32m4_m)))
-vfloat32m4_t vrgather(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f32m8)))
-vfloat32m8_t vrgather(vfloat32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f32m8_m)))
-vfloat32m8_t vrgather(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f32mf2)))
-vfloat32mf2_t vrgather(vfloat32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f32mf2_m)))
-vfloat32mf2_t vrgather(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f32m1)))
-vfloat32m1_t vrgather(vfloat32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f32m1_m)))
-vfloat32m1_t vrgather(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f32m2)))
-vfloat32m2_t vrgather(vfloat32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f32m2_m)))
-vfloat32m2_t vrgather(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f32m4)))
-vfloat32m4_t vrgather(vfloat32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f32m4_m)))
-vfloat32m4_t vrgather(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f32m8)))
-vfloat32m8_t vrgather(vfloat32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f32m8_m)))
-vfloat32m8_t vrgather(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f32mf2)))
-vfloat32mf2_t vrgather(vfloat32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f32mf2_m)))
-vfloat32mf2_t vrgather(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f32m1)))
-vfloat32m1_t vrgatherei16(vfloat32m1_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f32m1_m)))
-vfloat32m1_t vrgatherei16(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f32m2)))
-vfloat32m2_t vrgatherei16(vfloat32m2_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f32m2_m)))
-vfloat32m2_t vrgatherei16(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f32m4)))
-vfloat32m4_t vrgatherei16(vfloat32m4_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f32m4_m)))
-vfloat32m4_t vrgatherei16(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f32m8)))
-vfloat32m8_t vrgatherei16(vfloat32m8_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f32m8_m)))
-vfloat32m8_t vrgatherei16(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f32mf2)))
-vfloat32mf2_t vrgatherei16(vfloat32mf2_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f32mf2_m)))
-vfloat32mf2_t vrgatherei16(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f32m1)))
-vfloat32m1_t vcompress(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f32m2)))
-vfloat32m2_t vcompress(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f32m4)))
-vfloat32m4_t vcompress(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f32m8)))
-vfloat32m8_t vcompress(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f32mf2)))
-vfloat32mf2_t vcompress(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f32m2_f32m1)))
-vfloat32m1_t vget_f32m1(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f32m4_f32m1)))
-vfloat32m1_t vget_f32m1(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f32m8_f32m1)))
-vfloat32m1_t vget_f32m1(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f32m4_f32m2)))
-vfloat32m2_t vget_f32m2(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f32m8_f32m2)))
-vfloat32m2_t vget_f32m2(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f32m8_f32m4)))
-vfloat32m4_t vget_f32m4(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f32m1_f32m2)))
-vfloat32m2_t vset(vfloat32m2_t op0, size_t op1, vfloat32m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f32m1_f32m4)))
-vfloat32m4_t vset(vfloat32m4_t op0, size_t op1, vfloat32m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f32m2_f32m4)))
-vfloat32m4_t vset(vfloat32m4_t op0, size_t op1, vfloat32m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f32m1)))
-void vsuxei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f32m1_m)))
-void vsuxei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f32m2)))
-void vsuxei8(float * op0, vuint8mf2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f32m2_m)))
-void vsuxei8(vbool16_t op0, float * op1, vuint8mf2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f32m4)))
-void vsuxei8(float * op0, vuint8m1_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f32m4_m)))
-void vsuxei8(vbool8_t op0, float * op1, vuint8m1_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f32m8)))
-void vsuxei8(float * op0, vuint8m2_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f32m8_m)))
-void vsuxei8(vbool4_t op0, float * op1, vuint8m2_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f32mf2)))
-void vsuxei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f32mf2_m)))
-void vsuxei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f32m1_f32m8)))
-vfloat32m8_t vset(vfloat32m8_t op0, size_t op1, vfloat32m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f32m2_f32m8)))
-vfloat32m8_t vset(vfloat32m8_t op0, size_t op1, vfloat32m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f32m4_f32m8)))
-vfloat32m8_t vset(vfloat32m8_t op0, size_t op1, vfloat32m4_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f32m1)))
-void vsuxei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f32m1_m)))
-void vsuxei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f32m2)))
-void vsuxei16(float * op0, vuint16m1_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f32m2_m)))
-void vsuxei16(vbool16_t op0, float * op1, vuint16m1_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f32m4)))
-void vsuxei16(float * op0, vuint16m2_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f32m4_m)))
-void vsuxei16(vbool8_t op0, float * op1, vuint16m2_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f32m8)))
-void vsuxei16(float * op0, vuint16m4_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f32m8_m)))
-void vsuxei16(vbool4_t op0, float * op1, vuint16m4_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f32mf2)))
-void vsuxei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f32mf2_m)))
-void vsuxei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f32m1)))
-void vsuxei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f32m1_m)))
-void vsuxei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f32m2)))
-void vsuxei32(float * op0, vuint32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f32m2_m)))
-void vsuxei32(vbool16_t op0, float * op1, vuint32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f32m4)))
-void vsuxei32(float * op0, vuint32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f32m4_m)))
-void vsuxei32(vbool8_t op0, float * op1, vuint32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f32m8)))
-void vsuxei32(float * op0, vuint32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f32m8_m)))
-void vsuxei32(vbool4_t op0, float * op1, vuint32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f32mf2)))
-void vsuxei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f32mf2_m)))
-void vsuxei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f32m1)))
-void vsuxei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f32m1_m)))
-void vsuxei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f32m2)))
-void vsuxei64(float * op0, vuint64m4_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f32m2_m)))
-void vsuxei64(vbool16_t op0, float * op1, vuint64m4_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f32m4)))
-void vsuxei64(float * op0, vuint64m8_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f32m4_m)))
-void vsuxei64(vbool8_t op0, float * op1, vuint64m8_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f32mf2)))
-void vsuxei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f32mf2_m)))
-void vsuxei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f32m1)))
-void vsoxei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f32m1_m)))
-void vsoxei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f32m2)))
-void vsoxei8(float * op0, vuint8mf2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f32m2_m)))
-void vsoxei8(vbool16_t op0, float * op1, vuint8mf2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f32m4)))
-void vsoxei8(float * op0, vuint8m1_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f32m4_m)))
-void vsoxei8(vbool8_t op0, float * op1, vuint8m1_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f32m8)))
-void vsoxei8(float * op0, vuint8m2_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f32m8_m)))
-void vsoxei8(vbool4_t op0, float * op1, vuint8m2_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f32mf2)))
-void vsoxei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f32mf2_m)))
-void vsoxei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f32m1)))
-void vsoxei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f32m1_m)))
-void vsoxei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f32m2)))
-void vsoxei16(float * op0, vuint16m1_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f32m2_m)))
-void vsoxei16(vbool16_t op0, float * op1, vuint16m1_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f32m4)))
-void vsoxei16(float * op0, vuint16m2_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f32m4_m)))
-void vsoxei16(vbool8_t op0, float * op1, vuint16m2_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f32m8)))
-void vsoxei16(float * op0, vuint16m4_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f32m8_m)))
-void vsoxei16(vbool4_t op0, float * op1, vuint16m4_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f32mf2)))
-void vsoxei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f32mf2_m)))
-void vsoxei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f32m1)))
-void vsoxei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f32m1_m)))
-void vsoxei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f32m2)))
-void vsoxei32(float * op0, vuint32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f32m2_m)))
-void vsoxei32(vbool16_t op0, float * op1, vuint32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f32m4)))
-void vsoxei32(float * op0, vuint32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f32m4_m)))
-void vsoxei32(vbool8_t op0, float * op1, vuint32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f32m8)))
-void vsoxei32(float * op0, vuint32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f32m8_m)))
-void vsoxei32(vbool4_t op0, float * op1, vuint32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f32mf2)))
-void vsoxei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f32mf2_m)))
-void vsoxei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f32m1)))
-void vsoxei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f32m1_m)))
-void vsoxei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f32m2)))
-void vsoxei64(float * op0, vuint64m4_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f32m2_m)))
-void vsoxei64(vbool16_t op0, float * op1, vuint64m4_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f32m4)))
-void vsoxei64(float * op0, vuint64m8_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f32m4_m)))
-void vsoxei64(vbool8_t op0, float * op1, vuint64m8_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f32mf2)))
-void vsoxei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f32mf2_m)))
-void vsoxei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_f32m1_m)))
-vfloat32m1_t vle32ff(vbool32_t op0, vfloat32m1_t op1, const float * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_f32m2_m)))
-vfloat32m2_t vle32ff(vbool16_t op0, vfloat32m2_t op1, const float * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_f32m4_m)))
-vfloat32m4_t vle32ff(vbool8_t op0, vfloat32m4_t op1, const float * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_f32m8_m)))
-vfloat32m8_t vle32ff(vbool4_t op0, vfloat32m8_t op1, const float * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_f32mf2_m)))
-vfloat32mf2_t vle32ff(vbool64_t op0, vfloat32mf2_t op1, const float * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f32m1)))
-vfloat32m1_t vfneg(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f32m1_m)))
-vfloat32m1_t vfneg(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f32m2)))
-vfloat32m2_t vfneg(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f32m2_m)))
-vfloat32m2_t vfneg(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f32m4)))
-vfloat32m4_t vfneg(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f32m4_m)))
-vfloat32m4_t vfneg(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f32m8)))
-vfloat32m8_t vfneg(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f32m8_m)))
-vfloat32m8_t vfneg(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f32mf2)))
-vfloat32mf2_t vfneg(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f32mf2_m)))
-vfloat32mf2_t vfneg(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_f32m1_m)))
-vfloat32m1_t vle32(vbool32_t op0, vfloat32m1_t op1, const float * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_f32m2_m)))
-vfloat32m2_t vle32(vbool16_t op0, vfloat32m2_t op1, const float * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_f32m4_m)))
-vfloat32m4_t vle32(vbool8_t op0, vfloat32m4_t op1, const float * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_f32m8_m)))
-vfloat32m8_t vle32(vbool4_t op0, vfloat32m8_t op1, const float * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_f32mf2_m)))
-vfloat32mf2_t vle32(vbool64_t op0, vfloat32mf2_t op1, const float * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_f32m1)))
-void vse32(float * op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_f32m1_m)))
-void vse32(vbool32_t op0, float * op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_f32m2)))
-void vse32(float * op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_f32m2_m)))
-void vse32(vbool16_t op0, float * op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_f32m4)))
-void vse32(float * op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_f32m4_m)))
-void vse32(vbool8_t op0, float * op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_f32m8)))
-void vse32(float * op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_f32m8_m)))
-void vse32(vbool4_t op0, float * op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_f32mf2)))
-void vse32(float * op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_f32mf2_m)))
-void vse32(vbool64_t op0, float * op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_f32m1_m)))
-vfloat32m1_t vlse32(vbool32_t op0, vfloat32m1_t op1, const float * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_f32m2_m)))
-vfloat32m2_t vlse32(vbool16_t op0, vfloat32m2_t op1, const float * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_f32m4_m)))
-vfloat32m4_t vlse32(vbool8_t op0, vfloat32m4_t op1, const float * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_f32m8_m)))
-vfloat32m8_t vlse32(vbool4_t op0, vfloat32m8_t op1, const float * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_f32mf2_m)))
-vfloat32mf2_t vlse32(vbool64_t op0, vfloat32mf2_t op1, const float * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u32m1)))
-vuint32m1_t vfclass(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u32m1_m)))
-vuint32m1_t vfclass(vbool32_t op0, vuint32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u32m2)))
-vuint32m2_t vfclass(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u32m2_m)))
-vuint32m2_t vfclass(vbool16_t op0, vuint32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u32m4)))
-vuint32m4_t vfclass(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u32m4_m)))
-vuint32m4_t vfclass(vbool8_t op0, vuint32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u32m8)))
-vuint32m8_t vfclass(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u32m8_m)))
-vuint32m8_t vfclass(vbool4_t op0, vuint32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u32mf2)))
-vuint32mf2_t vfclass(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u32mf2_m)))
-vuint32mf2_t vfclass(vbool64_t op0, vuint32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f32m1)))
-vfloat32m1_t vfcvt_f(vint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f32m1_m)))
-vfloat32m1_t vfcvt_f(vbool32_t op0, vfloat32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f32m2)))
-vfloat32m2_t vfcvt_f(vint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f32m2_m)))
-vfloat32m2_t vfcvt_f(vbool16_t op0, vfloat32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f32m4)))
-vfloat32m4_t vfcvt_f(vint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f32m4_m)))
-vfloat32m4_t vfcvt_f(vbool8_t op0, vfloat32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f32m8)))
-vfloat32m8_t vfcvt_f(vint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f32m8_m)))
-vfloat32m8_t vfcvt_f(vbool4_t op0, vfloat32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f32mf2)))
-vfloat32mf2_t vfcvt_f(vint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f32mf2_m)))
-vfloat32mf2_t vfcvt_f(vbool64_t op0, vfloat32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f32m1)))
-vfloat32m1_t vfcvt_f(vuint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f32m1_m)))
-vfloat32m1_t vfcvt_f(vbool32_t op0, vfloat32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f32m2)))
-vfloat32m2_t vfcvt_f(vuint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f32m2_m)))
-vfloat32m2_t vfcvt_f(vbool16_t op0, vfloat32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f32m4)))
-vfloat32m4_t vfcvt_f(vuint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f32m4_m)))
-vfloat32m4_t vfcvt_f(vbool8_t op0, vfloat32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f32m8)))
-vfloat32m8_t vfcvt_f(vuint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f32m8_m)))
-vfloat32m8_t vfcvt_f(vbool4_t op0, vfloat32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f32mf2)))
-vfloat32mf2_t vfcvt_f(vuint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f32mf2_m)))
-vfloat32mf2_t vfcvt_f(vbool64_t op0, vfloat32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i32m1)))
-vint32m1_t vfcvt_rtz_x(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i32m1_m)))
-vint32m1_t vfcvt_rtz_x(vbool32_t op0, vint32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i32m2)))
-vint32m2_t vfcvt_rtz_x(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i32m2_m)))
-vint32m2_t vfcvt_rtz_x(vbool16_t op0, vint32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i32m4)))
-vint32m4_t vfcvt_rtz_x(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i32m4_m)))
-vint32m4_t vfcvt_rtz_x(vbool8_t op0, vint32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i32m8)))
-vint32m8_t vfcvt_rtz_x(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i32m8_m)))
-vint32m8_t vfcvt_rtz_x(vbool4_t op0, vint32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i32mf2)))
-vint32mf2_t vfcvt_rtz_x(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i32mf2_m)))
-vint32mf2_t vfcvt_rtz_x(vbool64_t op0, vint32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u32m1)))
-vuint32m1_t vfcvt_rtz_xu(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u32m1_m)))
-vuint32m1_t vfcvt_rtz_xu(vbool32_t op0, vuint32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u32m2)))
-vuint32m2_t vfcvt_rtz_xu(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u32m2_m)))
-vuint32m2_t vfcvt_rtz_xu(vbool16_t op0, vuint32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u32m4)))
-vuint32m4_t vfcvt_rtz_xu(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u32m4_m)))
-vuint32m4_t vfcvt_rtz_xu(vbool8_t op0, vuint32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u32m8)))
-vuint32m8_t vfcvt_rtz_xu(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u32m8_m)))
-vuint32m8_t vfcvt_rtz_xu(vbool4_t op0, vuint32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u32mf2)))
-vuint32mf2_t vfcvt_rtz_xu(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u32mf2_m)))
-vuint32mf2_t vfcvt_rtz_xu(vbool64_t op0, vuint32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i32m1)))
-vint32m1_t vfcvt_x(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i32m1_m)))
-vint32m1_t vfcvt_x(vbool32_t op0, vint32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i32m2)))
-vint32m2_t vfcvt_x(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i32m2_m)))
-vint32m2_t vfcvt_x(vbool16_t op0, vint32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i32m4)))
-vint32m4_t vfcvt_x(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i32m4_m)))
-vint32m4_t vfcvt_x(vbool8_t op0, vint32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i32m8)))
-vint32m8_t vfcvt_x(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i32m8_m)))
-vint32m8_t vfcvt_x(vbool4_t op0, vint32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i32mf2)))
-vint32mf2_t vfcvt_x(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i32mf2_m)))
-vint32mf2_t vfcvt_x(vbool64_t op0, vint32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u32m1)))
-vuint32m1_t vfcvt_xu(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u32m1_m)))
-vuint32m1_t vfcvt_xu(vbool32_t op0, vuint32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u32m2)))
-vuint32m2_t vfcvt_xu(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u32m2_m)))
-vuint32m2_t vfcvt_xu(vbool16_t op0, vuint32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u32m4)))
-vuint32m4_t vfcvt_xu(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u32m4_m)))
-vuint32m4_t vfcvt_xu(vbool8_t op0, vuint32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u32m8)))
-vuint32m8_t vfcvt_xu(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u32m8_m)))
-vuint32m8_t vfcvt_xu(vbool4_t op0, vuint32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u32mf2)))
-vuint32mf2_t vfcvt_xu(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u32mf2_m)))
-vuint32mf2_t vfcvt_xu(vbool64_t op0, vuint32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f32mf2)))
-vfloat32mf2_t vfncvt_f(vint64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f32mf2_m)))
-vfloat32mf2_t vfncvt_f(vbool64_t op0, vfloat32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f32m1)))
-vfloat32m1_t vfncvt_f(vint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f32m1_m)))
-vfloat32m1_t vfncvt_f(vbool32_t op0, vfloat32m1_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f32m2)))
-vfloat32m2_t vfncvt_f(vint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f32m2_m)))
-vfloat32m2_t vfncvt_f(vbool16_t op0, vfloat32m2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f32m4)))
-vfloat32m4_t vfncvt_f(vint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f32m4_m)))
-vfloat32m4_t vfncvt_f(vbool8_t op0, vfloat32m4_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f32mf2)))
-vfloat32mf2_t vfncvt_f(vuint64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f32mf2_m)))
-vfloat32mf2_t vfncvt_f(vbool64_t op0, vfloat32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f32m1)))
-vfloat32m1_t vfncvt_f(vuint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f32m1_m)))
-vfloat32m1_t vfncvt_f(vbool32_t op0, vfloat32m1_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f32m2)))
-vfloat32m2_t vfncvt_f(vuint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f32m2_m)))
-vfloat32m2_t vfncvt_f(vbool16_t op0, vfloat32m2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f32m4)))
-vfloat32m4_t vfncvt_f(vuint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f32m4_m)))
-vfloat32m4_t vfncvt_f(vbool8_t op0, vfloat32m4_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i16mf4)))
-vint16mf4_t vfncvt_rtz_x(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i16mf4_m)))
-vint16mf4_t vfncvt_rtz_x(vbool64_t op0, vint16mf4_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i16mf2)))
-vint16mf2_t vfncvt_rtz_x(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i16mf2_m)))
-vint16mf2_t vfncvt_rtz_x(vbool32_t op0, vint16mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i16m1)))
-vint16m1_t vfncvt_rtz_x(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i16m1_m)))
-vint16m1_t vfncvt_rtz_x(vbool16_t op0, vint16m1_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i16m2)))
-vint16m2_t vfncvt_rtz_x(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i16m2_m)))
-vint16m2_t vfncvt_rtz_x(vbool8_t op0, vint16m2_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i16m4)))
-vint16m4_t vfncvt_rtz_x(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i16m4_m)))
-vint16m4_t vfncvt_rtz_x(vbool4_t op0, vint16m4_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u16mf4)))
-vuint16mf4_t vfncvt_rtz_xu(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u16mf4_m)))
-vuint16mf4_t vfncvt_rtz_xu(vbool64_t op0, vuint16mf4_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u16mf2)))
-vuint16mf2_t vfncvt_rtz_xu(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u16mf2_m)))
-vuint16mf2_t vfncvt_rtz_xu(vbool32_t op0, vuint16mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u16m1)))
-vuint16m1_t vfncvt_rtz_xu(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u16m1_m)))
-vuint16m1_t vfncvt_rtz_xu(vbool16_t op0, vuint16m1_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u16m2)))
-vuint16m2_t vfncvt_rtz_xu(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u16m2_m)))
-vuint16m2_t vfncvt_rtz_xu(vbool8_t op0, vuint16m2_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u16m4)))
-vuint16m4_t vfncvt_rtz_xu(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u16m4_m)))
-vuint16m4_t vfncvt_rtz_xu(vbool4_t op0, vuint16m4_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i16mf4)))
-vint16mf4_t vfncvt_x(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i16mf4_m)))
-vint16mf4_t vfncvt_x(vbool64_t op0, vint16mf4_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i16mf2)))
-vint16mf2_t vfncvt_x(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i16mf2_m)))
-vint16mf2_t vfncvt_x(vbool32_t op0, vint16mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i16m1)))
-vint16m1_t vfncvt_x(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i16m1_m)))
-vint16m1_t vfncvt_x(vbool16_t op0, vint16m1_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i16m2)))
-vint16m2_t vfncvt_x(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i16m2_m)))
-vint16m2_t vfncvt_x(vbool8_t op0, vint16m2_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i16m4)))
-vint16m4_t vfncvt_x(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i16m4_m)))
-vint16m4_t vfncvt_x(vbool4_t op0, vint16m4_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u16mf4)))
-vuint16mf4_t vfncvt_xu(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u16mf4_m)))
-vuint16mf4_t vfncvt_xu(vbool64_t op0, vuint16mf4_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u16mf2)))
-vuint16mf2_t vfncvt_xu(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u16mf2_m)))
-vuint16mf2_t vfncvt_xu(vbool32_t op0, vuint16mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u16m1)))
-vuint16m1_t vfncvt_xu(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u16m1_m)))
-vuint16m1_t vfncvt_xu(vbool16_t op0, vuint16m1_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u16m2)))
-vuint16m2_t vfncvt_xu(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u16m2_m)))
-vuint16m2_t vfncvt_xu(vbool8_t op0, vuint16m2_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u16m4)))
-vuint16m4_t vfncvt_xu(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u16m4_m)))
-vuint16m4_t vfncvt_xu(vbool4_t op0, vuint16m4_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f32m1)))
-vfloat32m1_t vfrec7(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f32m1_m)))
-vfloat32m1_t vfrec7(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f32m2)))
-vfloat32m2_t vfrec7(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f32m2_m)))
-vfloat32m2_t vfrec7(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f32m4)))
-vfloat32m4_t vfrec7(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f32m4_m)))
-vfloat32m4_t vfrec7(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f32m8)))
-vfloat32m8_t vfrec7(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f32m8_m)))
-vfloat32m8_t vfrec7(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f32mf2)))
-vfloat32mf2_t vfrec7(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f32mf2_m)))
-vfloat32mf2_t vfrec7(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f32m1)))
-vfloat32m1_t vfrsqrt7(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f32m1_m)))
-vfloat32m1_t vfrsqrt7(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f32m2)))
-vfloat32m2_t vfrsqrt7(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f32m2_m)))
-vfloat32m2_t vfrsqrt7(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f32m4)))
-vfloat32m4_t vfrsqrt7(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f32m4_m)))
-vfloat32m4_t vfrsqrt7(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f32m8)))
-vfloat32m8_t vfrsqrt7(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f32m8_m)))
-vfloat32m8_t vfrsqrt7(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f32mf2)))
-vfloat32mf2_t vfrsqrt7(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f32mf2_m)))
-vfloat32mf2_t vfrsqrt7(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f32m1)))
-vfloat32m1_t vfsqrt(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f32m1_m)))
-vfloat32m1_t vfsqrt(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f32m2)))
-vfloat32m2_t vfsqrt(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f32m2_m)))
-vfloat32m2_t vfsqrt(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f32m4)))
-vfloat32m4_t vfsqrt(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f32m4_m)))
-vfloat32m4_t vfsqrt(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f32m8)))
-vfloat32m8_t vfsqrt(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f32m8_m)))
-vfloat32m8_t vfsqrt(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f32mf2)))
-vfloat32mf2_t vfsqrt(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f32mf2_m)))
-vfloat32mf2_t vfsqrt(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f32mf2)))
-vfloat32mf2_t vfwcvt_f(vint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f32mf2_m)))
-vfloat32mf2_t vfwcvt_f(vbool64_t op0, vfloat32mf2_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f32m1)))
-vfloat32m1_t vfwcvt_f(vint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f32m1_m)))
-vfloat32m1_t vfwcvt_f(vbool32_t op0, vfloat32m1_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f32m2)))
-vfloat32m2_t vfwcvt_f(vint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f32m2_m)))
-vfloat32m2_t vfwcvt_f(vbool16_t op0, vfloat32m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f32m4)))
-vfloat32m4_t vfwcvt_f(vint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f32m4_m)))
-vfloat32m4_t vfwcvt_f(vbool8_t op0, vfloat32m4_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f32m8)))
-vfloat32m8_t vfwcvt_f(vint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f32m8_m)))
-vfloat32m8_t vfwcvt_f(vbool4_t op0, vfloat32m8_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f32mf2)))
-vfloat32mf2_t vfwcvt_f(vuint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f32mf2_m)))
-vfloat32mf2_t vfwcvt_f(vbool64_t op0, vfloat32mf2_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f32m1)))
-vfloat32m1_t vfwcvt_f(vuint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f32m1_m)))
-vfloat32m1_t vfwcvt_f(vbool32_t op0, vfloat32m1_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f32m2)))
-vfloat32m2_t vfwcvt_f(vuint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f32m2_m)))
-vfloat32m2_t vfwcvt_f(vbool16_t op0, vfloat32m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f32m4)))
-vfloat32m4_t vfwcvt_f(vuint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f32m4_m)))
-vfloat32m4_t vfwcvt_f(vbool8_t op0, vfloat32m4_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f32m8)))
-vfloat32m8_t vfwcvt_f(vuint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f32m8_m)))
-vfloat32m8_t vfwcvt_f(vbool4_t op0, vfloat32m8_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i64m1)))
-vint64m1_t vfwcvt_rtz_x(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i64m1_m)))
-vint64m1_t vfwcvt_rtz_x(vbool64_t op0, vint64m1_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i64m2)))
-vint64m2_t vfwcvt_rtz_x(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i64m2_m)))
-vint64m2_t vfwcvt_rtz_x(vbool32_t op0, vint64m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i64m4)))
-vint64m4_t vfwcvt_rtz_x(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i64m4_m)))
-vint64m4_t vfwcvt_rtz_x(vbool16_t op0, vint64m4_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i64m8)))
-vint64m8_t vfwcvt_rtz_x(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i64m8_m)))
-vint64m8_t vfwcvt_rtz_x(vbool8_t op0, vint64m8_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m1)))
-vuint64m1_t vfwcvt_rtz_xu(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m1_m)))
-vuint64m1_t vfwcvt_rtz_xu(vbool64_t op0, vuint64m1_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m2)))
-vuint64m2_t vfwcvt_rtz_xu(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m2_m)))
-vuint64m2_t vfwcvt_rtz_xu(vbool32_t op0, vuint64m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m4)))
-vuint64m4_t vfwcvt_rtz_xu(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m4_m)))
-vuint64m4_t vfwcvt_rtz_xu(vbool16_t op0, vuint64m4_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m8)))
-vuint64m8_t vfwcvt_rtz_xu(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m8_m)))
-vuint64m8_t vfwcvt_rtz_xu(vbool8_t op0, vuint64m8_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i64m1)))
-vint64m1_t vfwcvt_x(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i64m1_m)))
-vint64m1_t vfwcvt_x(vbool64_t op0, vint64m1_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i64m2)))
-vint64m2_t vfwcvt_x(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i64m2_m)))
-vint64m2_t vfwcvt_x(vbool32_t op0, vint64m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i64m4)))
-vint64m4_t vfwcvt_x(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i64m4_m)))
-vint64m4_t vfwcvt_x(vbool16_t op0, vint64m4_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i64m8)))
-vint64m8_t vfwcvt_x(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i64m8_m)))
-vint64m8_t vfwcvt_x(vbool8_t op0, vint64m8_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u64m1)))
-vuint64m1_t vfwcvt_xu(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u64m1_m)))
-vuint64m1_t vfwcvt_xu(vbool64_t op0, vuint64m1_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u64m2)))
-vuint64m2_t vfwcvt_xu(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u64m2_m)))
-vuint64m2_t vfwcvt_xu(vbool32_t op0, vuint64m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u64m4)))
-vuint64m4_t vfwcvt_xu(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u64m4_m)))
-vuint64m4_t vfwcvt_xu(vbool16_t op0, vuint64m4_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u64m8)))
-vuint64m8_t vfwcvt_xu(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u64m8_m)))
-vuint64m8_t vfwcvt_xu(vbool8_t op0, vuint64m8_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f32mf2_f32m1)))
-vfloat32m1_t vlmul_ext_f32m1(vfloat32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f32m1_f32m2)))
-vfloat32m2_t vlmul_ext_f32m2(vfloat32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f32mf2_f32m2)))
-vfloat32m2_t vlmul_ext_f32m2(vfloat32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f32m1_f32m4)))
-vfloat32m4_t vlmul_ext_f32m4(vfloat32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f32m2_f32m4)))
-vfloat32m4_t vlmul_ext_f32m4(vfloat32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f32mf2_f32m4)))
-vfloat32m4_t vlmul_ext_f32m4(vfloat32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f32m1_f32m8)))
-vfloat32m8_t vlmul_ext_f32m8(vfloat32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f32m2_f32m8)))
-vfloat32m8_t vlmul_ext_f32m8(vfloat32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f32m4_f32m8)))
-vfloat32m8_t vlmul_ext_f32m8(vfloat32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f32mf2_f32m8)))
-vfloat32m8_t vlmul_ext_f32m8(vfloat32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f32m1_f32mf2)))
-vfloat32mf2_t vlmul_trunc_f32mf2(vfloat32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f32m2_f32mf2)))
-vfloat32mf2_t vlmul_trunc_f32mf2(vfloat32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f32m4_f32mf2)))
-vfloat32mf2_t vlmul_trunc_f32mf2(vfloat32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f32m8_f32mf2)))
-vfloat32mf2_t vlmul_trunc_f32mf2(vfloat32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f32m2_f32m1)))
-vfloat32m1_t vlmul_trunc_f32m1(vfloat32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f32m4_f32m1)))
-vfloat32m1_t vlmul_trunc_f32m1(vfloat32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f32m8_f32m1)))
-vfloat32m1_t vlmul_trunc_f32m1(vfloat32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f32m4_f32m2)))
-vfloat32m2_t vlmul_trunc_f32m2(vfloat32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f32m8_f32m2)))
-vfloat32m2_t vlmul_trunc_f32m2(vfloat32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f32m8_f32m4)))
-vfloat32m4_t vlmul_trunc_f32m4(vfloat32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m1_f32m1)))
-vfloat32m1_t vreinterpret_f32m1(vint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m2_f32m2)))
-vfloat32m2_t vreinterpret_f32m2(vint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m4_f32m4)))
-vfloat32m4_t vreinterpret_f32m4(vint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m8_f32m8)))
-vfloat32m8_t vreinterpret_f32m8(vint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32mf2_f32mf2)))
-vfloat32mf2_t vreinterpret_f32mf2(vint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m1_f32m1)))
-vfloat32m1_t vreinterpret_f32m1(vuint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m2_f32m2)))
-vfloat32m2_t vreinterpret_f32m2(vuint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m4_f32m4)))
-vfloat32m4_t vreinterpret_f32m4(vuint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m8_f32m8)))
-vfloat32m8_t vreinterpret_f32m8(vuint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32mf2_f32mf2)))
-vfloat32mf2_t vreinterpret_f32mf2(vuint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f32m1_i32m1)))
-vint32m1_t vreinterpret_i32m1(vfloat32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f32m2_i32m2)))
-vint32m2_t vreinterpret_i32m2(vfloat32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f32m4_i32m4)))
-vint32m4_t vreinterpret_i32m4(vfloat32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f32m8_i32m8)))
-vint32m8_t vreinterpret_i32m8(vfloat32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f32mf2_i32mf2)))
-vint32mf2_t vreinterpret_i32mf2(vfloat32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f32m1_u32m1)))
-vuint32m1_t vreinterpret_u32m1(vfloat32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f32m2_u32m2)))
-vuint32m2_t vreinterpret_u32m2(vfloat32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f32m4_u32m4)))
-vuint32m4_t vreinterpret_u32m4(vfloat32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f32m8_u32m8)))
-vuint32m8_t vreinterpret_u32m8(vfloat32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f32mf2_u32mf2)))
-vuint32mf2_t vreinterpret_u32mf2(vfloat32mf2_t op0);
-
-#endif
-
-#if defined(__riscv_d)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_f64m1_m)))
-vfloat64m1_t vlse64(vbool64_t op0, vfloat64m1_t op1, const double * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_f64m2_m)))
-vfloat64m2_t vlse64(vbool32_t op0, vfloat64m2_t op1, const double * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_f64m4_m)))
-vfloat64m4_t vlse64(vbool16_t op0, vfloat64m4_t op1, const double * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_f64m8_m)))
-vfloat64m8_t vlse64(vbool8_t op0, vfloat64m8_t op1, const double * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_f64m1)))
-void vsse64(double * op0, ptrdiff_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_f64m1_m)))
-void vsse64(vbool64_t op0, double * op1, ptrdiff_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_f64m2)))
-void vsse64(double * op0, ptrdiff_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_f64m2_m)))
-void vsse64(vbool32_t op0, double * op1, ptrdiff_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_f64m4)))
-void vsse64(double * op0, ptrdiff_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_f64m4_m)))
-void vsse64(vbool16_t op0, double * op1, ptrdiff_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_f64m8)))
-void vsse64(double * op0, ptrdiff_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_f64m8_m)))
-void vsse64(vbool8_t op0, double * op1, ptrdiff_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f64m1)))
-vfloat64m1_t vluxei8(const double * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f64m1_m)))
-vfloat64m1_t vluxei8(vbool64_t op0, vfloat64m1_t op1, const double * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f64m2)))
-vfloat64m2_t vluxei8(const double * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f64m2_m)))
-vfloat64m2_t vluxei8(vbool32_t op0, vfloat64m2_t op1, const double * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f64m4)))
-vfloat64m4_t vluxei8(const double * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f64m4_m)))
-vfloat64m4_t vluxei8(vbool16_t op0, vfloat64m4_t op1, const double * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f64m8)))
-vfloat64m8_t vluxei8(const double * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f64m8_m)))
-vfloat64m8_t vluxei8(vbool8_t op0, vfloat64m8_t op1, const double * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f64m1)))
-vfloat64m1_t vluxei16(const double * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f64m1_m)))
-vfloat64m1_t vluxei16(vbool64_t op0, vfloat64m1_t op1, const double * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f64m2)))
-vfloat64m2_t vluxei16(const double * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f64m2_m)))
-vfloat64m2_t vluxei16(vbool32_t op0, vfloat64m2_t op1, const double * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f64m4)))
-vfloat64m4_t vluxei16(const double * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f64m4_m)))
-vfloat64m4_t vluxei16(vbool16_t op0, vfloat64m4_t op1, const double * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f64m8)))
-vfloat64m8_t vluxei16(const double * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f64m8_m)))
-vfloat64m8_t vluxei16(vbool8_t op0, vfloat64m8_t op1, const double * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f64m1)))
-vfloat64m1_t vluxei32(const double * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f64m1_m)))
-vfloat64m1_t vluxei32(vbool64_t op0, vfloat64m1_t op1, const double * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f64m2)))
-vfloat64m2_t vluxei32(const double * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f64m2_m)))
-vfloat64m2_t vluxei32(vbool32_t op0, vfloat64m2_t op1, const double * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f64m4)))
-vfloat64m4_t vluxei32(const double * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f64m4_m)))
-vfloat64m4_t vluxei32(vbool16_t op0, vfloat64m4_t op1, const double * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f64m8)))
-vfloat64m8_t vluxei32(const double * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f64m8_m)))
-vfloat64m8_t vluxei32(vbool8_t op0, vfloat64m8_t op1, const double * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f64m1)))
-vfloat64m1_t vluxei64(const double * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f64m1_m)))
-vfloat64m1_t vluxei64(vbool64_t op0, vfloat64m1_t op1, const double * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f64m2)))
-vfloat64m2_t vluxei64(const double * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f64m2_m)))
-vfloat64m2_t vluxei64(vbool32_t op0, vfloat64m2_t op1, const double * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f64m4)))
-vfloat64m4_t vluxei64(const double * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f64m4_m)))
-vfloat64m4_t vluxei64(vbool16_t op0, vfloat64m4_t op1, const double * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f64m8)))
-vfloat64m8_t vluxei64(const double * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f64m8_m)))
-vfloat64m8_t vluxei64(vbool8_t op0, vfloat64m8_t op1, const double * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f64m1)))
-vfloat64m1_t vloxei8(const double * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f64m1_m)))
-vfloat64m1_t vloxei8(vbool64_t op0, vfloat64m1_t op1, const double * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f64m2)))
-vfloat64m2_t vloxei8(const double * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f64m2_m)))
-vfloat64m2_t vloxei8(vbool32_t op0, vfloat64m2_t op1, const double * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f64m4)))
-vfloat64m4_t vloxei8(const double * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f64m4_m)))
-vfloat64m4_t vloxei8(vbool16_t op0, vfloat64m4_t op1, const double * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f64m8)))
-vfloat64m8_t vloxei8(const double * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f64m8_m)))
-vfloat64m8_t vloxei8(vbool8_t op0, vfloat64m8_t op1, const double * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f64m1)))
-vfloat64m1_t vloxei16(const double * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f64m1_m)))
-vfloat64m1_t vloxei16(vbool64_t op0, vfloat64m1_t op1, const double * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f64m2)))
-vfloat64m2_t vloxei16(const double * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f64m2_m)))
-vfloat64m2_t vloxei16(vbool32_t op0, vfloat64m2_t op1, const double * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f64m4)))
-vfloat64m4_t vloxei16(const double * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f64m4_m)))
-vfloat64m4_t vloxei16(vbool16_t op0, vfloat64m4_t op1, const double * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f64m8)))
-vfloat64m8_t vloxei16(const double * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f64m8_m)))
-vfloat64m8_t vloxei16(vbool8_t op0, vfloat64m8_t op1, const double * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f64m1)))
-vfloat64m1_t vloxei32(const double * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f64m1_m)))
-vfloat64m1_t vloxei32(vbool64_t op0, vfloat64m1_t op1, const double * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f64m2)))
-vfloat64m2_t vloxei32(const double * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f64m2_m)))
-vfloat64m2_t vloxei32(vbool32_t op0, vfloat64m2_t op1, const double * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f64m4)))
-vfloat64m4_t vloxei32(const double * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f64m4_m)))
-vfloat64m4_t vloxei32(vbool16_t op0, vfloat64m4_t op1, const double * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f64m8)))
-vfloat64m8_t vloxei32(const double * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f64m8_m)))
-vfloat64m8_t vloxei32(vbool8_t op0, vfloat64m8_t op1, const double * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f64m1)))
-vfloat64m1_t vloxei64(const double * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f64m1_m)))
-vfloat64m1_t vloxei64(vbool64_t op0, vfloat64m1_t op1, const double * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f64m2)))
-vfloat64m2_t vloxei64(const double * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f64m2_m)))
-vfloat64m2_t vloxei64(vbool32_t op0, vfloat64m2_t op1, const double * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f64m4)))
-vfloat64m4_t vloxei64(const double * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f64m4_m)))
-vfloat64m4_t vloxei64(vbool16_t op0, vfloat64m4_t op1, const double * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f64m8)))
-vfloat64m8_t vloxei64(const double * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f64m8_m)))
-vfloat64m8_t vloxei64(vbool8_t op0, vfloat64m8_t op1, const double * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f64m1)))
-vfloat64m1_t vmv_v(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f64m2)))
-vfloat64m2_t vmv_v(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f64m4)))
-vfloat64m4_t vmv_v(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f64m8)))
-vfloat64m8_t vmv_v(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f64m1)))
-vfloat64m1_t vfadd(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f64m1_m)))
-vfloat64m1_t vfadd(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f64m2)))
-vfloat64m2_t vfadd(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f64m2_m)))
-vfloat64m2_t vfadd(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f64m4)))
-vfloat64m4_t vfadd(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f64m4_m)))
-vfloat64m4_t vfadd(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f64m8)))
-vfloat64m8_t vfadd(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f64m8_m)))
-vfloat64m8_t vfadd(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f64m1)))
-vfloat64m1_t vfadd(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f64m1_m)))
-vfloat64m1_t vfadd(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f64m2)))
-vfloat64m2_t vfadd(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f64m2_m)))
-vfloat64m2_t vfadd(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f64m4)))
-vfloat64m4_t vfadd(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f64m4_m)))
-vfloat64m4_t vfadd(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f64m8)))
-vfloat64m8_t vfadd(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f64m8_m)))
-vfloat64m8_t vfadd(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f64m1)))
-vfloat64m1_t vfsub(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f64m1_m)))
-vfloat64m1_t vfsub(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f64m2)))
-vfloat64m2_t vfsub(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f64m2_m)))
-vfloat64m2_t vfsub(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f64m4)))
-vfloat64m4_t vfsub(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f64m4_m)))
-vfloat64m4_t vfsub(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f64m8)))
-vfloat64m8_t vfsub(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f64m8_m)))
-vfloat64m8_t vfsub(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f64m1)))
-vfloat64m1_t vfsub(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f64m1_m)))
-vfloat64m1_t vfsub(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f64m2)))
-vfloat64m2_t vfsub(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f64m2_m)))
-vfloat64m2_t vfsub(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f64m4)))
-vfloat64m4_t vfsub(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f64m4_m)))
-vfloat64m4_t vfsub(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f64m8)))
-vfloat64m8_t vfsub(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f64m8_m)))
-vfloat64m8_t vfsub(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f64m1)))
-vfloat64m1_t vfrsub(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f64m1_m)))
-vfloat64m1_t vfrsub(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f64m2)))
-vfloat64m2_t vfrsub(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f64m2_m)))
-vfloat64m2_t vfrsub(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f64m4)))
-vfloat64m4_t vfrsub(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f64m4_m)))
-vfloat64m4_t vfrsub(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f64m8)))
-vfloat64m8_t vfrsub(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f64m8_m)))
-vfloat64m8_t vfrsub(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f64m1)))
-vfloat64m1_t vfmul(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f64m1_m)))
-vfloat64m1_t vfmul(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f64m2)))
-vfloat64m2_t vfmul(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f64m2_m)))
-vfloat64m2_t vfmul(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f64m4)))
-vfloat64m4_t vfmul(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f64m4_m)))
-vfloat64m4_t vfmul(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f64m8)))
-vfloat64m8_t vfmul(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f64m8_m)))
-vfloat64m8_t vfmul(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f64m1)))
-vfloat64m1_t vfmul(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f64m1_m)))
-vfloat64m1_t vfmul(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f64m2)))
-vfloat64m2_t vfmul(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f64m2_m)))
-vfloat64m2_t vfmul(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f64m4)))
-vfloat64m4_t vfmul(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f64m4_m)))
-vfloat64m4_t vfmul(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f64m8)))
-vfloat64m8_t vfmul(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f64m8_m)))
-vfloat64m8_t vfmul(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f64m1)))
-vfloat64m1_t vfdiv(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f64m1_m)))
-vfloat64m1_t vfdiv(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f64m2)))
-vfloat64m2_t vfdiv(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f64m2_m)))
-vfloat64m2_t vfdiv(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f64m4)))
-vfloat64m4_t vfdiv(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f64m4_m)))
-vfloat64m4_t vfdiv(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f64m8)))
-vfloat64m8_t vfdiv(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f64m8_m)))
-vfloat64m8_t vfdiv(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f64m1)))
-vfloat64m1_t vfdiv(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f64m1_m)))
-vfloat64m1_t vfdiv(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f64m2)))
-vfloat64m2_t vfdiv(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f64m2_m)))
-vfloat64m2_t vfdiv(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f64m4)))
-vfloat64m4_t vfdiv(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f64m4_m)))
-vfloat64m4_t vfdiv(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f64m8)))
-vfloat64m8_t vfdiv(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f64m8_m)))
-vfloat64m8_t vfdiv(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f64m1)))
-vfloat64m1_t vfrdiv(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f64m1_m)))
-vfloat64m1_t vfrdiv(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f64m2)))
-vfloat64m2_t vfrdiv(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f64m2_m)))
-vfloat64m2_t vfrdiv(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f64m4)))
-vfloat64m4_t vfrdiv(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f64m4_m)))
-vfloat64m4_t vfrdiv(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f64m8)))
-vfloat64m8_t vfrdiv(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f64m8_m)))
-vfloat64m8_t vfrdiv(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f64m1)))
-vfloat64m1_t vfmacc(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f64m1_m)))
-vfloat64m1_t vfmacc(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f64m2)))
-vfloat64m2_t vfmacc(vfloat64m2_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f64m2_m)))
-vfloat64m2_t vfmacc(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f64m4)))
-vfloat64m4_t vfmacc(vfloat64m4_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f64m4_m)))
-vfloat64m4_t vfmacc(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f64m8)))
-vfloat64m8_t vfmacc(vfloat64m8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f64m8_m)))
-vfloat64m8_t vfmacc(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f64m1)))
-vfloat64m1_t vfmacc(vfloat64m1_t op0, double op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f64m1_m)))
-vfloat64m1_t vfmacc(vbool64_t op0, vfloat64m1_t op1, double op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f64m2)))
-vfloat64m2_t vfmacc(vfloat64m2_t op0, double op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f64m2_m)))
-vfloat64m2_t vfmacc(vbool32_t op0, vfloat64m2_t op1, double op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f64m4)))
-vfloat64m4_t vfmacc(vfloat64m4_t op0, double op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f64m4_m)))
-vfloat64m4_t vfmacc(vbool16_t op0, vfloat64m4_t op1, double op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f64m8)))
-vfloat64m8_t vfmacc(vfloat64m8_t op0, double op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f64m8_m)))
-vfloat64m8_t vfmacc(vbool8_t op0, vfloat64m8_t op1, double op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f64m1)))
-vfloat64m1_t vfnmacc(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f64m1_m)))
-vfloat64m1_t vfnmacc(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f64m2)))
-vfloat64m2_t vfnmacc(vfloat64m2_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f64m2_m)))
-vfloat64m2_t vfnmacc(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f64m4)))
-vfloat64m4_t vfnmacc(vfloat64m4_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f64m4_m)))
-vfloat64m4_t vfnmacc(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f64m8)))
-vfloat64m8_t vfnmacc(vfloat64m8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f64m8_m)))
-vfloat64m8_t vfnmacc(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f64m1)))
-vfloat64m1_t vfnmacc(vfloat64m1_t op0, double op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f64m1_m)))
-vfloat64m1_t vfnmacc(vbool64_t op0, vfloat64m1_t op1, double op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f64m2)))
-vfloat64m2_t vfnmacc(vfloat64m2_t op0, double op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f64m2_m)))
-vfloat64m2_t vfnmacc(vbool32_t op0, vfloat64m2_t op1, double op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f64m4)))
-vfloat64m4_t vfnmacc(vfloat64m4_t op0, double op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f64m4_m)))
-vfloat64m4_t vfnmacc(vbool16_t op0, vfloat64m4_t op1, double op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f64m8)))
-vfloat64m8_t vfnmacc(vfloat64m8_t op0, double op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f64m8_m)))
-vfloat64m8_t vfnmacc(vbool8_t op0, vfloat64m8_t op1, double op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f64m1)))
-vfloat64m1_t vfmsac(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f64m1_m)))
-vfloat64m1_t vfmsac(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f64m2)))
-vfloat64m2_t vfmsac(vfloat64m2_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f64m2_m)))
-vfloat64m2_t vfmsac(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f64m4)))
-vfloat64m4_t vfmsac(vfloat64m4_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f64m4_m)))
-vfloat64m4_t vfmsac(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f64m8)))
-vfloat64m8_t vfmsac(vfloat64m8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f64m8_m)))
-vfloat64m8_t vfmsac(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f64m1)))
-vfloat64m1_t vfmsac(vfloat64m1_t op0, double op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f64m1_m)))
-vfloat64m1_t vfmsac(vbool64_t op0, vfloat64m1_t op1, double op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f64m2)))
-vfloat64m2_t vfmsac(vfloat64m2_t op0, double op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f64m2_m)))
-vfloat64m2_t vfmsac(vbool32_t op0, vfloat64m2_t op1, double op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f64m4)))
-vfloat64m4_t vfmsac(vfloat64m4_t op0, double op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f64m4_m)))
-vfloat64m4_t vfmsac(vbool16_t op0, vfloat64m4_t op1, double op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f64m8)))
-vfloat64m8_t vfmsac(vfloat64m8_t op0, double op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f64m8_m)))
-vfloat64m8_t vfmsac(vbool8_t op0, vfloat64m8_t op1, double op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f64m1)))
-vfloat64m1_t vfnmsac(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f64m1_m)))
-vfloat64m1_t vfnmsac(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f64m2)))
-vfloat64m2_t vfnmsac(vfloat64m2_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f64m2_m)))
-vfloat64m2_t vfnmsac(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f64m4)))
-vfloat64m4_t vfnmsac(vfloat64m4_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f64m4_m)))
-vfloat64m4_t vfnmsac(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f64m8)))
-vfloat64m8_t vfnmsac(vfloat64m8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f64m8_m)))
-vfloat64m8_t vfnmsac(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f64m1)))
-vfloat64m1_t vfnmsac(vfloat64m1_t op0, double op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f64m1_m)))
-vfloat64m1_t vfnmsac(vbool64_t op0, vfloat64m1_t op1, double op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f64m2)))
-vfloat64m2_t vfnmsac(vfloat64m2_t op0, double op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f64m2_m)))
-vfloat64m2_t vfnmsac(vbool32_t op0, vfloat64m2_t op1, double op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f64m4)))
-vfloat64m4_t vfnmsac(vfloat64m4_t op0, double op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f64m4_m)))
-vfloat64m4_t vfnmsac(vbool16_t op0, vfloat64m4_t op1, double op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f64m8)))
-vfloat64m8_t vfnmsac(vfloat64m8_t op0, double op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f64m8_m)))
-vfloat64m8_t vfnmsac(vbool8_t op0, vfloat64m8_t op1, double op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f64m1)))
-vfloat64m1_t vfmadd(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f64m1_m)))
-vfloat64m1_t vfmadd(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f64m2)))
-vfloat64m2_t vfmadd(vfloat64m2_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f64m2_m)))
-vfloat64m2_t vfmadd(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f64m4)))
-vfloat64m4_t vfmadd(vfloat64m4_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f64m4_m)))
-vfloat64m4_t vfmadd(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f64m8)))
-vfloat64m8_t vfmadd(vfloat64m8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f64m8_m)))
-vfloat64m8_t vfmadd(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f64m1)))
-vfloat64m1_t vfmadd(vfloat64m1_t op0, double op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f64m1_m)))
-vfloat64m1_t vfmadd(vbool64_t op0, vfloat64m1_t op1, double op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f64m2)))
-vfloat64m2_t vfmadd(vfloat64m2_t op0, double op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f64m2_m)))
-vfloat64m2_t vfmadd(vbool32_t op0, vfloat64m2_t op1, double op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f64m4)))
-vfloat64m4_t vfmadd(vfloat64m4_t op0, double op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f64m4_m)))
-vfloat64m4_t vfmadd(vbool16_t op0, vfloat64m4_t op1, double op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f64m8)))
-vfloat64m8_t vfmadd(vfloat64m8_t op0, double op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f64m8_m)))
-vfloat64m8_t vfmadd(vbool8_t op0, vfloat64m8_t op1, double op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f64m1)))
-vfloat64m1_t vfnmadd(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f64m1_m)))
-vfloat64m1_t vfnmadd(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f64m2)))
-vfloat64m2_t vfnmadd(vfloat64m2_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f64m2_m)))
-vfloat64m2_t vfnmadd(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f64m4)))
-vfloat64m4_t vfnmadd(vfloat64m4_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f64m4_m)))
-vfloat64m4_t vfnmadd(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f64m8)))
-vfloat64m8_t vfnmadd(vfloat64m8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f64m8_m)))
-vfloat64m8_t vfnmadd(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f64m1)))
-vfloat64m1_t vfnmadd(vfloat64m1_t op0, double op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f64m1_m)))
-vfloat64m1_t vfnmadd(vbool64_t op0, vfloat64m1_t op1, double op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f64m2)))
-vfloat64m2_t vfnmadd(vfloat64m2_t op0, double op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f64m2_m)))
-vfloat64m2_t vfnmadd(vbool32_t op0, vfloat64m2_t op1, double op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f64m4)))
-vfloat64m4_t vfnmadd(vfloat64m4_t op0, double op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f64m4_m)))
-vfloat64m4_t vfnmadd(vbool16_t op0, vfloat64m4_t op1, double op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f64m8)))
-vfloat64m8_t vfnmadd(vfloat64m8_t op0, double op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f64m8_m)))
-vfloat64m8_t vfnmadd(vbool8_t op0, vfloat64m8_t op1, double op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f64m1)))
-vfloat64m1_t vfmsub(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f64m1_m)))
-vfloat64m1_t vfmsub(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f64m2)))
-vfloat64m2_t vfmsub(vfloat64m2_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f64m2_m)))
-vfloat64m2_t vfmsub(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f64m4)))
-vfloat64m4_t vfmsub(vfloat64m4_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f64m4_m)))
-vfloat64m4_t vfmsub(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f64m8)))
-vfloat64m8_t vfmsub(vfloat64m8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f64m8_m)))
-vfloat64m8_t vfmsub(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f64m1)))
-vfloat64m1_t vfmsub(vfloat64m1_t op0, double op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f64m1_m)))
-vfloat64m1_t vfmsub(vbool64_t op0, vfloat64m1_t op1, double op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f64m2)))
-vfloat64m2_t vfmsub(vfloat64m2_t op0, double op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f64m2_m)))
-vfloat64m2_t vfmsub(vbool32_t op0, vfloat64m2_t op1, double op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f64m4)))
-vfloat64m4_t vfmsub(vfloat64m4_t op0, double op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f64m4_m)))
-vfloat64m4_t vfmsub(vbool16_t op0, vfloat64m4_t op1, double op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f64m8)))
-vfloat64m8_t vfmsub(vfloat64m8_t op0, double op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f64m8_m)))
-vfloat64m8_t vfmsub(vbool8_t op0, vfloat64m8_t op1, double op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f64m1)))
-vfloat64m1_t vfnmsub(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f64m1_m)))
-vfloat64m1_t vfnmsub(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f64m2)))
-vfloat64m2_t vfnmsub(vfloat64m2_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f64m2_m)))
-vfloat64m2_t vfnmsub(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f64m4)))
-vfloat64m4_t vfnmsub(vfloat64m4_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f64m4_m)))
-vfloat64m4_t vfnmsub(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f64m8)))
-vfloat64m8_t vfnmsub(vfloat64m8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f64m8_m)))
-vfloat64m8_t vfnmsub(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f64m1)))
-vfloat64m1_t vfnmsub(vfloat64m1_t op0, double op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f64m1_m)))
-vfloat64m1_t vfnmsub(vbool64_t op0, vfloat64m1_t op1, double op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f64m2)))
-vfloat64m2_t vfnmsub(vfloat64m2_t op0, double op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f64m2_m)))
-vfloat64m2_t vfnmsub(vbool32_t op0, vfloat64m2_t op1, double op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f64m4)))
-vfloat64m4_t vfnmsub(vfloat64m4_t op0, double op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f64m4_m)))
-vfloat64m4_t vfnmsub(vbool16_t op0, vfloat64m4_t op1, double op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f64m8)))
-vfloat64m8_t vfnmsub(vfloat64m8_t op0, double op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f64m8_m)))
-vfloat64m8_t vfnmsub(vbool8_t op0, vfloat64m8_t op1, double op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f64m1)))
-vfloat64m1_t vfmin(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f64m1_m)))
-vfloat64m1_t vfmin(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f64m2)))
-vfloat64m2_t vfmin(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f64m2_m)))
-vfloat64m2_t vfmin(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f64m4)))
-vfloat64m4_t vfmin(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f64m4_m)))
-vfloat64m4_t vfmin(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f64m8)))
-vfloat64m8_t vfmin(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f64m8_m)))
-vfloat64m8_t vfmin(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f64m1)))
-vfloat64m1_t vfmin(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f64m1_m)))
-vfloat64m1_t vfmin(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f64m2)))
-vfloat64m2_t vfmin(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f64m2_m)))
-vfloat64m2_t vfmin(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f64m4)))
-vfloat64m4_t vfmin(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f64m4_m)))
-vfloat64m4_t vfmin(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f64m8)))
-vfloat64m8_t vfmin(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f64m8_m)))
-vfloat64m8_t vfmin(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f64m1)))
-vfloat64m1_t vfmax(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f64m1_m)))
-vfloat64m1_t vfmax(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f64m2)))
-vfloat64m2_t vfmax(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f64m2_m)))
-vfloat64m2_t vfmax(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f64m4)))
-vfloat64m4_t vfmax(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f64m4_m)))
-vfloat64m4_t vfmax(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f64m8)))
-vfloat64m8_t vfmax(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f64m8_m)))
-vfloat64m8_t vfmax(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f64m1)))
-vfloat64m1_t vfmax(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f64m1_m)))
-vfloat64m1_t vfmax(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f64m2)))
-vfloat64m2_t vfmax(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f64m2_m)))
-vfloat64m2_t vfmax(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f64m4)))
-vfloat64m4_t vfmax(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f64m4_m)))
-vfloat64m4_t vfmax(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f64m8)))
-vfloat64m8_t vfmax(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f64m8_m)))
-vfloat64m8_t vfmax(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f64m1)))
-vfloat64m1_t vfsgnj(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f64m1_m)))
-vfloat64m1_t vfsgnj(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f64m2)))
-vfloat64m2_t vfsgnj(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f64m2_m)))
-vfloat64m2_t vfsgnj(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f64m4)))
-vfloat64m4_t vfsgnj(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f64m4_m)))
-vfloat64m4_t vfsgnj(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f64m8)))
-vfloat64m8_t vfsgnj(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f64m8_m)))
-vfloat64m8_t vfsgnj(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f64m1)))
-vfloat64m1_t vfsgnj(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f64m1_m)))
-vfloat64m1_t vfsgnj(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f64m2)))
-vfloat64m2_t vfsgnj(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f64m2_m)))
-vfloat64m2_t vfsgnj(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f64m4)))
-vfloat64m4_t vfsgnj(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f64m4_m)))
-vfloat64m4_t vfsgnj(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f64m8)))
-vfloat64m8_t vfsgnj(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f64m8_m)))
-vfloat64m8_t vfsgnj(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f64m1)))
-vfloat64m1_t vfsgnjn(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f64m1_m)))
-vfloat64m1_t vfsgnjn(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f64m2)))
-vfloat64m2_t vfsgnjn(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f64m2_m)))
-vfloat64m2_t vfsgnjn(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f64m4)))
-vfloat64m4_t vfsgnjn(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f64m4_m)))
-vfloat64m4_t vfsgnjn(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f64m8)))
-vfloat64m8_t vfsgnjn(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f64m8_m)))
-vfloat64m8_t vfsgnjn(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f64m1)))
-vfloat64m1_t vfsgnjn(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f64m1_m)))
-vfloat64m1_t vfsgnjn(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f64m2)))
-vfloat64m2_t vfsgnjn(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f64m2_m)))
-vfloat64m2_t vfsgnjn(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f64m4)))
-vfloat64m4_t vfsgnjn(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f64m4_m)))
-vfloat64m4_t vfsgnjn(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f64m8)))
-vfloat64m8_t vfsgnjn(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f64m8_m)))
-vfloat64m8_t vfsgnjn(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f64m1)))
-vfloat64m1_t vfsgnjx(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f64m1_m)))
-vfloat64m1_t vfsgnjx(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f64m2)))
-vfloat64m2_t vfsgnjx(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f64m2_m)))
-vfloat64m2_t vfsgnjx(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f64m4)))
-vfloat64m4_t vfsgnjx(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f64m4_m)))
-vfloat64m4_t vfsgnjx(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f64m8)))
-vfloat64m8_t vfsgnjx(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f64m8_m)))
-vfloat64m8_t vfsgnjx(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f64m1)))
-vfloat64m1_t vfsgnjx(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f64m1_m)))
-vfloat64m1_t vfsgnjx(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f64m2)))
-vfloat64m2_t vfsgnjx(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f64m2_m)))
-vfloat64m2_t vfsgnjx(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f64m4)))
-vfloat64m4_t vfsgnjx(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f64m4_m)))
-vfloat64m4_t vfsgnjx(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f64m8)))
-vfloat64m8_t vfsgnjx(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f64m8_m)))
-vfloat64m8_t vfsgnjx(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f64m1)))
-vfloat64m1_t vfabs(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f64m1_m)))
-vfloat64m1_t vfabs(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f64m2)))
-vfloat64m2_t vfabs(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f64m2_m)))
-vfloat64m2_t vfabs(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f64m4)))
-vfloat64m4_t vfabs(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f64m4_m)))
-vfloat64m4_t vfabs(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f64m8)))
-vfloat64m8_t vfabs(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f64m8_m)))
-vfloat64m8_t vfabs(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f64m1_b64)))
-vbool64_t vmfeq(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f64m1_b64_m)))
-vbool64_t vmfeq(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f64m2_b32)))
-vbool32_t vmfeq(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f64m2_b32_m)))
-vbool32_t vmfeq(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f64m4_b16)))
-vbool16_t vmfeq(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f64m4_b16_m)))
-vbool16_t vmfeq(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f64m8_b8)))
-vbool8_t vmfeq(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f64m8_b8_m)))
-vbool8_t vmfeq(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f64m1_b64)))
-vbool64_t vmfeq(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f64m1_b64_m)))
-vbool64_t vmfeq(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f64m2_b32)))
-vbool32_t vmfeq(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f64m2_b32_m)))
-vbool32_t vmfeq(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f64m4_b16)))
-vbool16_t vmfeq(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f64m4_b16_m)))
-vbool16_t vmfeq(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f64m8_b8)))
-vbool8_t vmfeq(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f64m8_b8_m)))
-vbool8_t vmfeq(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f64m1_b64)))
-vbool64_t vmfne(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f64m1_b64_m)))
-vbool64_t vmfne(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f64m2_b32)))
-vbool32_t vmfne(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f64m2_b32_m)))
-vbool32_t vmfne(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f64m4_b16)))
-vbool16_t vmfne(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f64m4_b16_m)))
-vbool16_t vmfne(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f64m8_b8)))
-vbool8_t vmfne(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f64m8_b8_m)))
-vbool8_t vmfne(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f64m1_b64)))
-vbool64_t vmfne(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f64m1_b64_m)))
-vbool64_t vmfne(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f64m2_b32)))
-vbool32_t vmfne(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f64m2_b32_m)))
-vbool32_t vmfne(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f64m4_b16)))
-vbool16_t vmfne(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f64m4_b16_m)))
-vbool16_t vmfne(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f64m8_b8)))
-vbool8_t vmfne(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f64m8_b8_m)))
-vbool8_t vmfne(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f64m1_b64)))
-vbool64_t vmflt(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f64m1_b64_m)))
-vbool64_t vmflt(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f64m2_b32)))
-vbool32_t vmflt(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f64m2_b32_m)))
-vbool32_t vmflt(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f64m4_b16)))
-vbool16_t vmflt(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f64m4_b16_m)))
-vbool16_t vmflt(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f64m8_b8)))
-vbool8_t vmflt(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f64m8_b8_m)))
-vbool8_t vmflt(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f64m1_b64)))
-vbool64_t vmflt(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f64m1_b64_m)))
-vbool64_t vmflt(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f64m2_b32)))
-vbool32_t vmflt(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f64m2_b32_m)))
-vbool32_t vmflt(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f64m4_b16)))
-vbool16_t vmflt(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f64m4_b16_m)))
-vbool16_t vmflt(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f64m8_b8)))
-vbool8_t vmflt(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f64m8_b8_m)))
-vbool8_t vmflt(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f64m1_b64)))
-vbool64_t vmfle(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f64m1_b64_m)))
-vbool64_t vmfle(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f64m2_b32)))
-vbool32_t vmfle(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f64m2_b32_m)))
-vbool32_t vmfle(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f64m4_b16)))
-vbool16_t vmfle(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f64m4_b16_m)))
-vbool16_t vmfle(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f64m8_b8)))
-vbool8_t vmfle(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f64m8_b8_m)))
-vbool8_t vmfle(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f64m1_b64)))
-vbool64_t vmfle(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f64m1_b64_m)))
-vbool64_t vmfle(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f64m2_b32)))
-vbool32_t vmfle(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f64m2_b32_m)))
-vbool32_t vmfle(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f64m4_b16)))
-vbool16_t vmfle(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f64m4_b16_m)))
-vbool16_t vmfle(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f64m8_b8)))
-vbool8_t vmfle(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f64m8_b8_m)))
-vbool8_t vmfle(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f64m1_b64)))
-vbool64_t vmfgt(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f64m1_b64_m)))
-vbool64_t vmfgt(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f64m2_b32)))
-vbool32_t vmfgt(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f64m2_b32_m)))
-vbool32_t vmfgt(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f64m4_b16)))
-vbool16_t vmfgt(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f64m4_b16_m)))
-vbool16_t vmfgt(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f64m8_b8)))
-vbool8_t vmfgt(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f64m8_b8_m)))
-vbool8_t vmfgt(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f64m1_b64)))
-vbool64_t vmfgt(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f64m1_b64_m)))
-vbool64_t vmfgt(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f64m2_b32)))
-vbool32_t vmfgt(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f64m2_b32_m)))
-vbool32_t vmfgt(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f64m4_b16)))
-vbool16_t vmfgt(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f64m4_b16_m)))
-vbool16_t vmfgt(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f64m8_b8)))
-vbool8_t vmfgt(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f64m8_b8_m)))
-vbool8_t vmfgt(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f64m1_b64)))
-vbool64_t vmfge(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f64m1_b64_m)))
-vbool64_t vmfge(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f64m2_b32)))
-vbool32_t vmfge(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f64m2_b32_m)))
-vbool32_t vmfge(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f64m4_b16)))
-vbool16_t vmfge(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f64m4_b16_m)))
-vbool16_t vmfge(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f64m8_b8)))
-vbool8_t vmfge(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f64m8_b8_m)))
-vbool8_t vmfge(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f64m1_b64)))
-vbool64_t vmfge(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f64m1_b64_m)))
-vbool64_t vmfge(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f64m2_b32)))
-vbool32_t vmfge(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f64m2_b32_m)))
-vbool32_t vmfge(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f64m4_b16)))
-vbool16_t vmfge(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f64m4_b16_m)))
-vbool16_t vmfge(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f64m8_b8)))
-vbool8_t vmfge(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f64m8_b8_m)))
-vbool8_t vmfge(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f64m1)))
-vfloat64m1_t vmerge(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f64m2)))
-vfloat64m2_t vmerge(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f64m4)))
-vfloat64m4_t vmerge(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f64m8)))
-vfloat64m8_t vmerge(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f64m1)))
-vfloat64m1_t vfmerge(vbool64_t op0, vfloat64m1_t op1, double op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f64m2)))
-vfloat64m2_t vfmerge(vbool32_t op0, vfloat64m2_t op1, double op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f64m4)))
-vfloat64m4_t vfmerge(vbool16_t op0, vfloat64m4_t op1, double op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f64m8)))
-vfloat64m8_t vfmerge(vbool8_t op0, vfloat64m8_t op1, double op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f64m1_f64m1)))
-vfloat64m1_t vfredmax(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f64m1_f64m1_m)))
-vfloat64m1_t vfredmax(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f64m2_f64m1)))
-vfloat64m1_t vfredmax(vfloat64m1_t op0, vfloat64m2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f64m2_f64m1_m)))
-vfloat64m1_t vfredmax(vbool32_t op0, vfloat64m1_t op1, vfloat64m2_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f64m4_f64m1)))
-vfloat64m1_t vfredmax(vfloat64m1_t op0, vfloat64m4_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f64m4_f64m1_m)))
-vfloat64m1_t vfredmax(vbool16_t op0, vfloat64m1_t op1, vfloat64m4_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f64m8_f64m1)))
-vfloat64m1_t vfredmax(vfloat64m1_t op0, vfloat64m8_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f64m8_f64m1_m)))
-vfloat64m1_t vfredmax(vbool8_t op0, vfloat64m1_t op1, vfloat64m8_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f64m1_f64m1)))
-vfloat64m1_t vfredmin(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f64m1_f64m1_m)))
-vfloat64m1_t vfredmin(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f64m2_f64m1)))
-vfloat64m1_t vfredmin(vfloat64m1_t op0, vfloat64m2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f64m2_f64m1_m)))
-vfloat64m1_t vfredmin(vbool32_t op0, vfloat64m1_t op1, vfloat64m2_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f64m4_f64m1)))
-vfloat64m1_t vfredmin(vfloat64m1_t op0, vfloat64m4_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f64m4_f64m1_m)))
-vfloat64m1_t vfredmin(vbool16_t op0, vfloat64m1_t op1, vfloat64m4_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f64m8_f64m1)))
-vfloat64m1_t vfredmin(vfloat64m1_t op0, vfloat64m8_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f64m8_f64m1_m)))
-vfloat64m1_t vfredmin(vbool8_t op0, vfloat64m1_t op1, vfloat64m8_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f64m1_f64m1)))
-vfloat64m1_t vfredsum(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f64m1_f64m1_m)))
-vfloat64m1_t vfredsum(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f64m2_f64m1)))
-vfloat64m1_t vfredsum(vfloat64m1_t op0, vfloat64m2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f64m2_f64m1_m)))
-vfloat64m1_t vfredsum(vbool32_t op0, vfloat64m1_t op1, vfloat64m2_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f64m4_f64m1)))
-vfloat64m1_t vfredsum(vfloat64m1_t op0, vfloat64m4_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f64m4_f64m1_m)))
-vfloat64m1_t vfredsum(vbool16_t op0, vfloat64m1_t op1, vfloat64m4_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f64m8_f64m1)))
-vfloat64m1_t vfredsum(vfloat64m1_t op0, vfloat64m8_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f64m8_f64m1_m)))
-vfloat64m1_t vfredsum(vbool8_t op0, vfloat64m1_t op1, vfloat64m8_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f64m1_f64m1)))
-vfloat64m1_t vfredosum(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f64m1_f64m1_m)))
-vfloat64m1_t vfredosum(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f64m2_f64m1)))
-vfloat64m1_t vfredosum(vfloat64m1_t op0, vfloat64m2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f64m2_f64m1_m)))
-vfloat64m1_t vfredosum(vbool32_t op0, vfloat64m1_t op1, vfloat64m2_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f64m4_f64m1)))
-vfloat64m1_t vfredosum(vfloat64m1_t op0, vfloat64m4_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f64m4_f64m1_m)))
-vfloat64m1_t vfredosum(vbool16_t op0, vfloat64m1_t op1, vfloat64m4_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f64m8_f64m1)))
-vfloat64m1_t vfredosum(vfloat64m1_t op0, vfloat64m8_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f64m8_f64m1_m)))
-vfloat64m1_t vfredosum(vbool8_t op0, vfloat64m1_t op1, vfloat64m8_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f64m1_f64)))
-double vfmv_f(vfloat64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f64m2_f64)))
-double vfmv_f(vfloat64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f64m4_f64)))
-double vfmv_f(vfloat64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f64m8_f64)))
-double vfmv_f(vfloat64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f64m1)))
-vfloat64m1_t vfmv_s(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f64m2)))
-vfloat64m2_t vfmv_s(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f64m4)))
-vfloat64m4_t vfmv_s(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f64m8)))
-vfloat64m8_t vfmv_s(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f64m1)))
-vfloat64m1_t vslideup(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f64m1_m)))
-vfloat64m1_t vslideup(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f64m2)))
-vfloat64m2_t vslideup(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f64m2_m)))
-vfloat64m2_t vslideup(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f64m4)))
-vfloat64m4_t vslideup(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f64m4_m)))
-vfloat64m4_t vslideup(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f64m8)))
-vfloat64m8_t vslideup(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f64m8_m)))
-vfloat64m8_t vslideup(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f64m1)))
-vfloat64m1_t vslidedown(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f64m1_m)))
-vfloat64m1_t vslidedown(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f64m2)))
-vfloat64m2_t vslidedown(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f64m2_m)))
-vfloat64m2_t vslidedown(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f64m4)))
-vfloat64m4_t vslidedown(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f64m4_m)))
-vfloat64m4_t vslidedown(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f64m8)))
-vfloat64m8_t vslidedown(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f64m8_m)))
-vfloat64m8_t vslidedown(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f64m1)))
-vfloat64m1_t vfslide1up(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f64m1_m)))
-vfloat64m1_t vfslide1up(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f64m2)))
-vfloat64m2_t vfslide1up(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f64m2_m)))
-vfloat64m2_t vfslide1up(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f64m4)))
-vfloat64m4_t vfslide1up(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f64m4_m)))
-vfloat64m4_t vfslide1up(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f64m8)))
-vfloat64m8_t vfslide1up(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f64m8_m)))
-vfloat64m8_t vfslide1up(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f64m1)))
-vfloat64m1_t vfslide1down(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f64m1_m)))
-vfloat64m1_t vfslide1down(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f64m2)))
-vfloat64m2_t vfslide1down(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f64m2_m)))
-vfloat64m2_t vfslide1down(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f64m4)))
-vfloat64m4_t vfslide1down(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f64m4_m)))
-vfloat64m4_t vfslide1down(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f64m8)))
-vfloat64m8_t vfslide1down(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f64m8_m)))
-vfloat64m8_t vfslide1down(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f64m1)))
-vfloat64m1_t vrgather(vfloat64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f64m1_m)))
-vfloat64m1_t vrgather(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f64m2)))
-vfloat64m2_t vrgather(vfloat64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f64m2_m)))
-vfloat64m2_t vrgather(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f64m4)))
-vfloat64m4_t vrgather(vfloat64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f64m4_m)))
-vfloat64m4_t vrgather(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f64m8)))
-vfloat64m8_t vrgather(vfloat64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f64m8_m)))
-vfloat64m8_t vrgather(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f64m1)))
-vfloat64m1_t vrgather(vfloat64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f64m1_m)))
-vfloat64m1_t vrgather(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f64m2)))
-vfloat64m2_t vrgather(vfloat64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f64m2_m)))
-vfloat64m2_t vrgather(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f64m4)))
-vfloat64m4_t vrgather(vfloat64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f64m4_m)))
-vfloat64m4_t vrgather(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f64m8)))
-vfloat64m8_t vrgather(vfloat64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f64m8_m)))
-vfloat64m8_t vrgather(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f64m1)))
-vfloat64m1_t vrgatherei16(vfloat64m1_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f64m1_m)))
-vfloat64m1_t vrgatherei16(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f64m2)))
-vfloat64m2_t vrgatherei16(vfloat64m2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f64m2_m)))
-vfloat64m2_t vrgatherei16(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f64m4)))
-vfloat64m4_t vrgatherei16(vfloat64m4_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f64m4_m)))
-vfloat64m4_t vrgatherei16(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f64m8)))
-vfloat64m8_t vrgatherei16(vfloat64m8_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f64m8_m)))
-vfloat64m8_t vrgatherei16(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f64m1)))
-vfloat64m1_t vcompress(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f64m2)))
-vfloat64m2_t vcompress(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f64m4)))
-vfloat64m4_t vcompress(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f64m8)))
-vfloat64m8_t vcompress(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f64m2_f64m1)))
-vfloat64m1_t vget_f64m1(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f64m4_f64m1)))
-vfloat64m1_t vget_f64m1(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f64m8_f64m1)))
-vfloat64m1_t vget_f64m1(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f64m4_f64m2)))
-vfloat64m2_t vget_f64m2(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f64m8_f64m2)))
-vfloat64m2_t vget_f64m2(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f64m8_f64m4)))
-vfloat64m4_t vget_f64m4(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f64m1_f64m2)))
-vfloat64m2_t vset(vfloat64m2_t op0, size_t op1, vfloat64m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f64m1_f64m4)))
-vfloat64m4_t vset(vfloat64m4_t op0, size_t op1, vfloat64m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f64m2_f64m4)))
-vfloat64m4_t vset(vfloat64m4_t op0, size_t op1, vfloat64m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f64m1_f64m8)))
-vfloat64m8_t vset(vfloat64m8_t op0, size_t op1, vfloat64m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f64m2_f64m8)))
-vfloat64m8_t vset(vfloat64m8_t op0, size_t op1, vfloat64m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f64m4_f64m8)))
-vfloat64m8_t vset(vfloat64m8_t op0, size_t op1, vfloat64m4_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f64m1)))
-void vsuxei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f64m1_m)))
-void vsuxei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f64m2)))
-void vsuxei8(double * op0, vuint8mf4_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f64m2_m)))
-void vsuxei8(vbool32_t op0, double * op1, vuint8mf4_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f64m4)))
-void vsuxei8(double * op0, vuint8mf2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f64m4_m)))
-void vsuxei8(vbool16_t op0, double * op1, vuint8mf2_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f64m8)))
-void vsuxei8(double * op0, vuint8m1_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f64m8_m)))
-void vsuxei8(vbool8_t op0, double * op1, vuint8m1_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f64m1)))
-void vsuxei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f64m1_m)))
-void vsuxei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f64m2)))
-void vsuxei16(double * op0, vuint16mf2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f64m2_m)))
-void vsuxei16(vbool32_t op0, double * op1, vuint16mf2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f64m4)))
-void vsuxei16(double * op0, vuint16m1_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f64m4_m)))
-void vsuxei16(vbool16_t op0, double * op1, vuint16m1_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f64m8)))
-void vsuxei16(double * op0, vuint16m2_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f64m8_m)))
-void vsuxei16(vbool8_t op0, double * op1, vuint16m2_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f64m1)))
-void vsuxei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f64m1_m)))
-void vsuxei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f64m2)))
-void vsuxei32(double * op0, vuint32m1_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f64m2_m)))
-void vsuxei32(vbool32_t op0, double * op1, vuint32m1_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f64m4)))
-void vsuxei32(double * op0, vuint32m2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f64m4_m)))
-void vsuxei32(vbool16_t op0, double * op1, vuint32m2_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f64m8)))
-void vsuxei32(double * op0, vuint32m4_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f64m8_m)))
-void vsuxei32(vbool8_t op0, double * op1, vuint32m4_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f64m1)))
-void vsuxei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f64m1_m)))
-void vsuxei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f64m2)))
-void vsuxei64(double * op0, vuint64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f64m2_m)))
-void vsuxei64(vbool32_t op0, double * op1, vuint64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f64m4)))
-void vsuxei64(double * op0, vuint64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f64m4_m)))
-void vsuxei64(vbool16_t op0, double * op1, vuint64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f64m8)))
-void vsuxei64(double * op0, vuint64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f64m8_m)))
-void vsuxei64(vbool8_t op0, double * op1, vuint64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f64m1)))
-void vsoxei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f64m1_m)))
-void vsoxei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f64m2)))
-void vsoxei8(double * op0, vuint8mf4_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f64m2_m)))
-void vsoxei8(vbool32_t op0, double * op1, vuint8mf4_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f64m4)))
-void vsoxei8(double * op0, vuint8mf2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f64m4_m)))
-void vsoxei8(vbool16_t op0, double * op1, vuint8mf2_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f64m8)))
-void vsoxei8(double * op0, vuint8m1_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f64m8_m)))
-void vsoxei8(vbool8_t op0, double * op1, vuint8m1_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f64m1)))
-void vsoxei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f64m1_m)))
-void vsoxei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f64m2)))
-void vsoxei16(double * op0, vuint16mf2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f64m2_m)))
-void vsoxei16(vbool32_t op0, double * op1, vuint16mf2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f64m4)))
-void vsoxei16(double * op0, vuint16m1_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f64m4_m)))
-void vsoxei16(vbool16_t op0, double * op1, vuint16m1_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f64m8)))
-void vsoxei16(double * op0, vuint16m2_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f64m8_m)))
-void vsoxei16(vbool8_t op0, double * op1, vuint16m2_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f64m1)))
-void vsoxei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f64m1_m)))
-void vsoxei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f64m2)))
-void vsoxei32(double * op0, vuint32m1_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f64m2_m)))
-void vsoxei32(vbool32_t op0, double * op1, vuint32m1_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f64m4)))
-void vsoxei32(double * op0, vuint32m2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f64m4_m)))
-void vsoxei32(vbool16_t op0, double * op1, vuint32m2_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f64m8)))
-void vsoxei32(double * op0, vuint32m4_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f64m8_m)))
-void vsoxei32(vbool8_t op0, double * op1, vuint32m4_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f64m1)))
-void vsoxei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f64m1_m)))
-void vsoxei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f64m2)))
-void vsoxei64(double * op0, vuint64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f64m2_m)))
-void vsoxei64(vbool32_t op0, double * op1, vuint64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f64m4)))
-void vsoxei64(double * op0, vuint64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f64m4_m)))
-void vsoxei64(vbool16_t op0, double * op1, vuint64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f64m8)))
-void vsoxei64(double * op0, vuint64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f64m8_m)))
-void vsoxei64(vbool8_t op0, double * op1, vuint64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_f64m1_m)))
-vfloat64m1_t vle64ff(vbool64_t op0, vfloat64m1_t op1, const double * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_f64m2_m)))
-vfloat64m2_t vle64ff(vbool32_t op0, vfloat64m2_t op1, const double * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_f64m4_m)))
-vfloat64m4_t vle64ff(vbool16_t op0, vfloat64m4_t op1, const double * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_f64m8_m)))
-vfloat64m8_t vle64ff(vbool8_t op0, vfloat64m8_t op1, const double * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f64m1)))
-vfloat64m1_t vfneg(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f64m1_m)))
-vfloat64m1_t vfneg(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f64m2)))
-vfloat64m2_t vfneg(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f64m2_m)))
-vfloat64m2_t vfneg(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f64m4)))
-vfloat64m4_t vfneg(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f64m4_m)))
-vfloat64m4_t vfneg(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f64m8)))
-vfloat64m8_t vfneg(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f64m8_m)))
-vfloat64m8_t vfneg(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_f64m1_m)))
-vfloat64m1_t vle64(vbool64_t op0, vfloat64m1_t op1, const double * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_f64m2_m)))
-vfloat64m2_t vle64(vbool32_t op0, vfloat64m2_t op1, const double * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_f64m4_m)))
-vfloat64m4_t vle64(vbool16_t op0, vfloat64m4_t op1, const double * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_f64m8_m)))
-vfloat64m8_t vle64(vbool8_t op0, vfloat64m8_t op1, const double * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_f64m1)))
-void vse64(double * op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_f64m1_m)))
-void vse64(vbool64_t op0, double * op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_f64m2)))
-void vse64(double * op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_f64m2_m)))
-void vse64(vbool32_t op0, double * op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_f64m4)))
-void vse64(double * op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_f64m4_m)))
-void vse64(vbool16_t op0, double * op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_f64m8)))
-void vse64(double * op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_f64m8_m)))
-void vse64(vbool8_t op0, double * op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u64m1)))
-vuint64m1_t vfclass(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u64m1_m)))
-vuint64m1_t vfclass(vbool64_t op0, vuint64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u64m2)))
-vuint64m2_t vfclass(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u64m2_m)))
-vuint64m2_t vfclass(vbool32_t op0, vuint64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u64m4)))
-vuint64m4_t vfclass(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u64m4_m)))
-vuint64m4_t vfclass(vbool16_t op0, vuint64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u64m8)))
-vuint64m8_t vfclass(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u64m8_m)))
-vuint64m8_t vfclass(vbool8_t op0, vuint64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f64m1)))
-vfloat64m1_t vfcvt_f(vint64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f64m1_m)))
-vfloat64m1_t vfcvt_f(vbool64_t op0, vfloat64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f64m2)))
-vfloat64m2_t vfcvt_f(vint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f64m2_m)))
-vfloat64m2_t vfcvt_f(vbool32_t op0, vfloat64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f64m4)))
-vfloat64m4_t vfcvt_f(vint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f64m4_m)))
-vfloat64m4_t vfcvt_f(vbool16_t op0, vfloat64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f64m8)))
-vfloat64m8_t vfcvt_f(vint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f64m8_m)))
-vfloat64m8_t vfcvt_f(vbool8_t op0, vfloat64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f64m1)))
-vfloat64m1_t vfcvt_f(vuint64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f64m1_m)))
-vfloat64m1_t vfcvt_f(vbool64_t op0, vfloat64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f64m2)))
-vfloat64m2_t vfcvt_f(vuint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f64m2_m)))
-vfloat64m2_t vfcvt_f(vbool32_t op0, vfloat64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f64m4)))
-vfloat64m4_t vfcvt_f(vuint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f64m4_m)))
-vfloat64m4_t vfcvt_f(vbool16_t op0, vfloat64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f64m8)))
-vfloat64m8_t vfcvt_f(vuint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f64m8_m)))
-vfloat64m8_t vfcvt_f(vbool8_t op0, vfloat64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i64m1)))
-vint64m1_t vfcvt_rtz_x(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i64m1_m)))
-vint64m1_t vfcvt_rtz_x(vbool64_t op0, vint64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i64m2)))
-vint64m2_t vfcvt_rtz_x(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i64m2_m)))
-vint64m2_t vfcvt_rtz_x(vbool32_t op0, vint64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i64m4)))
-vint64m4_t vfcvt_rtz_x(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i64m4_m)))
-vint64m4_t vfcvt_rtz_x(vbool16_t op0, vint64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i64m8)))
-vint64m8_t vfcvt_rtz_x(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i64m8_m)))
-vint64m8_t vfcvt_rtz_x(vbool8_t op0, vint64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u64m1)))
-vuint64m1_t vfcvt_rtz_xu(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u64m1_m)))
-vuint64m1_t vfcvt_rtz_xu(vbool64_t op0, vuint64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u64m2)))
-vuint64m2_t vfcvt_rtz_xu(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u64m2_m)))
-vuint64m2_t vfcvt_rtz_xu(vbool32_t op0, vuint64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u64m4)))
-vuint64m4_t vfcvt_rtz_xu(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u64m4_m)))
-vuint64m4_t vfcvt_rtz_xu(vbool16_t op0, vuint64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u64m8)))
-vuint64m8_t vfcvt_rtz_xu(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u64m8_m)))
-vuint64m8_t vfcvt_rtz_xu(vbool8_t op0, vuint64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i64m1)))
-vint64m1_t vfcvt_x(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i64m1_m)))
-vint64m1_t vfcvt_x(vbool64_t op0, vint64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i64m2)))
-vint64m2_t vfcvt_x(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i64m2_m)))
-vint64m2_t vfcvt_x(vbool32_t op0, vint64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i64m4)))
-vint64m4_t vfcvt_x(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i64m4_m)))
-vint64m4_t vfcvt_x(vbool16_t op0, vint64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i64m8)))
-vint64m8_t vfcvt_x(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i64m8_m)))
-vint64m8_t vfcvt_x(vbool8_t op0, vint64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u64m1)))
-vuint64m1_t vfcvt_xu(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u64m1_m)))
-vuint64m1_t vfcvt_xu(vbool64_t op0, vuint64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u64m2)))
-vuint64m2_t vfcvt_xu(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u64m2_m)))
-vuint64m2_t vfcvt_xu(vbool32_t op0, vuint64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u64m4)))
-vuint64m4_t vfcvt_xu(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u64m4_m)))
-vuint64m4_t vfcvt_xu(vbool16_t op0, vuint64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u64m8)))
-vuint64m8_t vfcvt_xu(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u64m8_m)))
-vuint64m8_t vfcvt_xu(vbool8_t op0, vuint64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i32mf2)))
-vint32mf2_t vfncvt_rtz_x(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i32mf2_m)))
-vint32mf2_t vfncvt_rtz_x(vbool64_t op0, vint32mf2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i32m1)))
-vint32m1_t vfncvt_rtz_x(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i32m1_m)))
-vint32m1_t vfncvt_rtz_x(vbool32_t op0, vint32m1_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i32m2)))
-vint32m2_t vfncvt_rtz_x(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i32m2_m)))
-vint32m2_t vfncvt_rtz_x(vbool16_t op0, vint32m2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i32m4)))
-vint32m4_t vfncvt_rtz_x(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i32m4_m)))
-vint32m4_t vfncvt_rtz_x(vbool8_t op0, vint32m4_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u32mf2)))
-vuint32mf2_t vfncvt_rtz_xu(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u32mf2_m)))
-vuint32mf2_t vfncvt_rtz_xu(vbool64_t op0, vuint32mf2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u32m1)))
-vuint32m1_t vfncvt_rtz_xu(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u32m1_m)))
-vuint32m1_t vfncvt_rtz_xu(vbool32_t op0, vuint32m1_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u32m2)))
-vuint32m2_t vfncvt_rtz_xu(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u32m2_m)))
-vuint32m2_t vfncvt_rtz_xu(vbool16_t op0, vuint32m2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u32m4)))
-vuint32m4_t vfncvt_rtz_xu(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u32m4_m)))
-vuint32m4_t vfncvt_rtz_xu(vbool8_t op0, vuint32m4_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i32mf2)))
-vint32mf2_t vfncvt_x(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i32mf2_m)))
-vint32mf2_t vfncvt_x(vbool64_t op0, vint32mf2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i32m1)))
-vint32m1_t vfncvt_x(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i32m1_m)))
-vint32m1_t vfncvt_x(vbool32_t op0, vint32m1_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i32m2)))
-vint32m2_t vfncvt_x(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i32m2_m)))
-vint32m2_t vfncvt_x(vbool16_t op0, vint32m2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i32m4)))
-vint32m4_t vfncvt_x(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i32m4_m)))
-vint32m4_t vfncvt_x(vbool8_t op0, vint32m4_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u32mf2)))
-vuint32mf2_t vfncvt_xu(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u32mf2_m)))
-vuint32mf2_t vfncvt_xu(vbool64_t op0, vuint32mf2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u32m1)))
-vuint32m1_t vfncvt_xu(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u32m1_m)))
-vuint32m1_t vfncvt_xu(vbool32_t op0, vuint32m1_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u32m2)))
-vuint32m2_t vfncvt_xu(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u32m2_m)))
-vuint32m2_t vfncvt_xu(vbool16_t op0, vuint32m2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u32m4)))
-vuint32m4_t vfncvt_xu(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u32m4_m)))
-vuint32m4_t vfncvt_xu(vbool8_t op0, vuint32m4_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f64m1)))
-vfloat64m1_t vfrec7(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f64m1_m)))
-vfloat64m1_t vfrec7(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f64m2)))
-vfloat64m2_t vfrec7(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f64m2_m)))
-vfloat64m2_t vfrec7(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f64m4)))
-vfloat64m4_t vfrec7(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f64m4_m)))
-vfloat64m4_t vfrec7(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f64m8)))
-vfloat64m8_t vfrec7(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f64m8_m)))
-vfloat64m8_t vfrec7(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f64m1)))
-vfloat64m1_t vfrsqrt7(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f64m1_m)))
-vfloat64m1_t vfrsqrt7(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f64m2)))
-vfloat64m2_t vfrsqrt7(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f64m2_m)))
-vfloat64m2_t vfrsqrt7(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f64m4)))
-vfloat64m4_t vfrsqrt7(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f64m4_m)))
-vfloat64m4_t vfrsqrt7(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f64m8)))
-vfloat64m8_t vfrsqrt7(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f64m8_m)))
-vfloat64m8_t vfrsqrt7(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f64m1)))
-vfloat64m1_t vfsqrt(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f64m1_m)))
-vfloat64m1_t vfsqrt(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f64m2)))
-vfloat64m2_t vfsqrt(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f64m2_m)))
-vfloat64m2_t vfsqrt(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f64m4)))
-vfloat64m4_t vfsqrt(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f64m4_m)))
-vfloat64m4_t vfsqrt(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f64m8)))
-vfloat64m8_t vfsqrt(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f64m8_m)))
-vfloat64m8_t vfsqrt(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f64m1)))
-vfloat64m1_t vfwcvt_f(vint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f64m1_m)))
-vfloat64m1_t vfwcvt_f(vbool64_t op0, vfloat64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f64m2)))
-vfloat64m2_t vfwcvt_f(vint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f64m2_m)))
-vfloat64m2_t vfwcvt_f(vbool32_t op0, vfloat64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f64m4)))
-vfloat64m4_t vfwcvt_f(vint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f64m4_m)))
-vfloat64m4_t vfwcvt_f(vbool16_t op0, vfloat64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f64m8)))
-vfloat64m8_t vfwcvt_f(vint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f64m8_m)))
-vfloat64m8_t vfwcvt_f(vbool8_t op0, vfloat64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f64m1)))
-vfloat64m1_t vfwcvt_f(vuint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f64m1_m)))
-vfloat64m1_t vfwcvt_f(vbool64_t op0, vfloat64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f64m2)))
-vfloat64m2_t vfwcvt_f(vuint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f64m2_m)))
-vfloat64m2_t vfwcvt_f(vbool32_t op0, vfloat64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f64m4)))
-vfloat64m4_t vfwcvt_f(vuint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f64m4_m)))
-vfloat64m4_t vfwcvt_f(vbool16_t op0, vfloat64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f64m8)))
-vfloat64m8_t vfwcvt_f(vuint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f64m8_m)))
-vfloat64m8_t vfwcvt_f(vbool8_t op0, vfloat64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f64m1_f64m2)))
-vfloat64m2_t vlmul_ext_f64m2(vfloat64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f64m1_f64m4)))
-vfloat64m4_t vlmul_ext_f64m4(vfloat64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f64m2_f64m4)))
-vfloat64m4_t vlmul_ext_f64m4(vfloat64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f64m1_f64m8)))
-vfloat64m8_t vlmul_ext_f64m8(vfloat64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f64m2_f64m8)))
-vfloat64m8_t vlmul_ext_f64m8(vfloat64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f64m4_f64m8)))
-vfloat64m8_t vlmul_ext_f64m8(vfloat64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f64m2_f64m1)))
-vfloat64m1_t vlmul_trunc_f64m1(vfloat64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f64m4_f64m1)))
-vfloat64m1_t vlmul_trunc_f64m1(vfloat64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f64m8_f64m1)))
-vfloat64m1_t vlmul_trunc_f64m1(vfloat64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f64m4_f64m2)))
-vfloat64m2_t vlmul_trunc_f64m2(vfloat64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f64m8_f64m2)))
-vfloat64m2_t vlmul_trunc_f64m2(vfloat64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f64m8_f64m4)))
-vfloat64m4_t vlmul_trunc_f64m4(vfloat64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m1_f64m1)))
-vfloat64m1_t vreinterpret_f64m1(vint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m2_f64m2)))
-vfloat64m2_t vreinterpret_f64m2(vint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m4_f64m4)))
-vfloat64m4_t vreinterpret_f64m4(vint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m8_f64m8)))
-vfloat64m8_t vreinterpret_f64m8(vint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m1_f64m1)))
-vfloat64m1_t vreinterpret_f64m1(vuint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m2_f64m2)))
-vfloat64m2_t vreinterpret_f64m2(vuint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m4_f64m4)))
-vfloat64m4_t vreinterpret_f64m4(vuint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m8_f64m8)))
-vfloat64m8_t vreinterpret_f64m8(vuint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f64m1_i64m1)))
-vint64m1_t vreinterpret_i64m1(vfloat64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f64m2_i64m2)))
-vint64m2_t vreinterpret_i64m2(vfloat64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f64m4_i64m4)))
-vint64m4_t vreinterpret_i64m4(vfloat64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f64m8_i64m8)))
-vint64m8_t vreinterpret_i64m8(vfloat64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f64m1_u64m1)))
-vuint64m1_t vreinterpret_u64m1(vfloat64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f64m2_u64m2)))
-vuint64m2_t vreinterpret_u64m2(vfloat64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f64m4_u64m4)))
-vuint64m4_t vreinterpret_u64m4(vfloat64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f64m8_u64m8)))
-vuint64m8_t vreinterpret_u64m8(vfloat64m8_t op0);
-
-#endif
-
-#if defined(__riscv_f) && defined(__riscv_d)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f64m1)))
-vfloat64m1_t vfwadd_vv(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f64m1_m)))
-vfloat64m1_t vfwadd_vv(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f64m2)))
-vfloat64m2_t vfwadd_vv(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f64m2_m)))
-vfloat64m2_t vfwadd_vv(vbool32_t op0, vfloat64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f64m4)))
-vfloat64m4_t vfwadd_vv(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f64m4_m)))
-vfloat64m4_t vfwadd_vv(vbool16_t op0, vfloat64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f64m8)))
-vfloat64m8_t vfwadd_vv(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f64m8_m)))
-vfloat64m8_t vfwadd_vv(vbool8_t op0, vfloat64m8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f64m1)))
-vfloat64m1_t vfwadd_vf(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f64m1_m)))
-vfloat64m1_t vfwadd_vf(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f64m2)))
-vfloat64m2_t vfwadd_vf(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f64m2_m)))
-vfloat64m2_t vfwadd_vf(vbool32_t op0, vfloat64m2_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f64m4)))
-vfloat64m4_t vfwadd_vf(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f64m4_m)))
-vfloat64m4_t vfwadd_vf(vbool16_t op0, vfloat64m4_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f64m8)))
-vfloat64m8_t vfwadd_vf(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f64m8_m)))
-vfloat64m8_t vfwadd_vf(vbool8_t op0, vfloat64m8_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f64m1)))
-vfloat64m1_t vfwsub_vv(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f64m1_m)))
-vfloat64m1_t vfwsub_vv(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f64m2)))
-vfloat64m2_t vfwsub_vv(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f64m2_m)))
-vfloat64m2_t vfwsub_vv(vbool32_t op0, vfloat64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f64m4)))
-vfloat64m4_t vfwsub_vv(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f64m4_m)))
-vfloat64m4_t vfwsub_vv(vbool16_t op0, vfloat64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f64m8)))
-vfloat64m8_t vfwsub_vv(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f64m8_m)))
-vfloat64m8_t vfwsub_vv(vbool8_t op0, vfloat64m8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f64m1)))
-vfloat64m1_t vfwsub_vf(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f64m1_m)))
-vfloat64m1_t vfwsub_vf(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f64m2)))
-vfloat64m2_t vfwsub_vf(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f64m2_m)))
-vfloat64m2_t vfwsub_vf(vbool32_t op0, vfloat64m2_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f64m4)))
-vfloat64m4_t vfwsub_vf(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f64m4_m)))
-vfloat64m4_t vfwsub_vf(vbool16_t op0, vfloat64m4_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f64m8)))
-vfloat64m8_t vfwsub_vf(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f64m8_m)))
-vfloat64m8_t vfwsub_vf(vbool8_t op0, vfloat64m8_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f64m1)))
-vfloat64m1_t vfwadd_wv(vfloat64m1_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f64m1_m)))
-vfloat64m1_t vfwadd_wv(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f64m2)))
-vfloat64m2_t vfwadd_wv(vfloat64m2_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f64m2_m)))
-vfloat64m2_t vfwadd_wv(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f64m4)))
-vfloat64m4_t vfwadd_wv(vfloat64m4_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f64m4_m)))
-vfloat64m4_t vfwadd_wv(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f64m8)))
-vfloat64m8_t vfwadd_wv(vfloat64m8_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f64m8_m)))
-vfloat64m8_t vfwadd_wv(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f64m1)))
-vfloat64m1_t vfwadd_wf(vfloat64m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f64m1_m)))
-vfloat64m1_t vfwadd_wf(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f64m2)))
-vfloat64m2_t vfwadd_wf(vfloat64m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f64m2_m)))
-vfloat64m2_t vfwadd_wf(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f64m4)))
-vfloat64m4_t vfwadd_wf(vfloat64m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f64m4_m)))
-vfloat64m4_t vfwadd_wf(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f64m8)))
-vfloat64m8_t vfwadd_wf(vfloat64m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f64m8_m)))
-vfloat64m8_t vfwadd_wf(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f64m1)))
-vfloat64m1_t vfwsub_wv(vfloat64m1_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f64m1_m)))
-vfloat64m1_t vfwsub_wv(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f64m2)))
-vfloat64m2_t vfwsub_wv(vfloat64m2_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f64m2_m)))
-vfloat64m2_t vfwsub_wv(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f64m4)))
-vfloat64m4_t vfwsub_wv(vfloat64m4_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f64m4_m)))
-vfloat64m4_t vfwsub_wv(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f64m8)))
-vfloat64m8_t vfwsub_wv(vfloat64m8_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f64m8_m)))
-vfloat64m8_t vfwsub_wv(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f64m1)))
-vfloat64m1_t vfwsub_wf(vfloat64m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f64m1_m)))
-vfloat64m1_t vfwsub_wf(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f64m2)))
-vfloat64m2_t vfwsub_wf(vfloat64m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f64m2_m)))
-vfloat64m2_t vfwsub_wf(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f64m4)))
-vfloat64m4_t vfwsub_wf(vfloat64m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f64m4_m)))
-vfloat64m4_t vfwsub_wf(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f64m8)))
-vfloat64m8_t vfwsub_wf(vfloat64m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f64m8_m)))
-vfloat64m8_t vfwsub_wf(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f64m1)))
-vfloat64m1_t vfwmul(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f64m1_m)))
-vfloat64m1_t vfwmul(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f64m2)))
-vfloat64m2_t vfwmul(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f64m2_m)))
-vfloat64m2_t vfwmul(vbool32_t op0, vfloat64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f64m4)))
-vfloat64m4_t vfwmul(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f64m4_m)))
-vfloat64m4_t vfwmul(vbool16_t op0, vfloat64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f64m8)))
-vfloat64m8_t vfwmul(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f64m8_m)))
-vfloat64m8_t vfwmul(vbool8_t op0, vfloat64m8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f64m1)))
-vfloat64m1_t vfwmul(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f64m1_m)))
-vfloat64m1_t vfwmul(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f64m2)))
-vfloat64m2_t vfwmul(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f64m2_m)))
-vfloat64m2_t vfwmul(vbool32_t op0, vfloat64m2_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f64m4)))
-vfloat64m4_t vfwmul(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f64m4_m)))
-vfloat64m4_t vfwmul(vbool16_t op0, vfloat64m4_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f64m8)))
-vfloat64m8_t vfwmul(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f64m8_m)))
-vfloat64m8_t vfwmul(vbool8_t op0, vfloat64m8_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f64m1)))
-vfloat64m1_t vfwmacc(vfloat64m1_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f64m1_m)))
-vfloat64m1_t vfwmacc(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f64m2)))
-vfloat64m2_t vfwmacc(vfloat64m2_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f64m2_m)))
-vfloat64m2_t vfwmacc(vbool32_t op0, vfloat64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f64m4)))
-vfloat64m4_t vfwmacc(vfloat64m4_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f64m4_m)))
-vfloat64m4_t vfwmacc(vbool16_t op0, vfloat64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f64m8)))
-vfloat64m8_t vfwmacc(vfloat64m8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f64m8_m)))
-vfloat64m8_t vfwmacc(vbool8_t op0, vfloat64m8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f64m1)))
-vfloat64m1_t vfwmacc(vfloat64m1_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f64m1_m)))
-vfloat64m1_t vfwmacc(vbool64_t op0, vfloat64m1_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f64m2)))
-vfloat64m2_t vfwmacc(vfloat64m2_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f64m2_m)))
-vfloat64m2_t vfwmacc(vbool32_t op0, vfloat64m2_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f64m4)))
-vfloat64m4_t vfwmacc(vfloat64m4_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f64m4_m)))
-vfloat64m4_t vfwmacc(vbool16_t op0, vfloat64m4_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f64m8)))
-vfloat64m8_t vfwmacc(vfloat64m8_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f64m8_m)))
-vfloat64m8_t vfwmacc(vbool8_t op0, vfloat64m8_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f64m1)))
-vfloat64m1_t vfwnmacc(vfloat64m1_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f64m1_m)))
-vfloat64m1_t vfwnmacc(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f64m2)))
-vfloat64m2_t vfwnmacc(vfloat64m2_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f64m2_m)))
-vfloat64m2_t vfwnmacc(vbool32_t op0, vfloat64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f64m4)))
-vfloat64m4_t vfwnmacc(vfloat64m4_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f64m4_m)))
-vfloat64m4_t vfwnmacc(vbool16_t op0, vfloat64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f64m8)))
-vfloat64m8_t vfwnmacc(vfloat64m8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f64m8_m)))
-vfloat64m8_t vfwnmacc(vbool8_t op0, vfloat64m8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f64m1)))
-vfloat64m1_t vfwnmacc(vfloat64m1_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f64m1_m)))
-vfloat64m1_t vfwnmacc(vbool64_t op0, vfloat64m1_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f64m2)))
-vfloat64m2_t vfwnmacc(vfloat64m2_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f64m2_m)))
-vfloat64m2_t vfwnmacc(vbool32_t op0, vfloat64m2_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f64m4)))
-vfloat64m4_t vfwnmacc(vfloat64m4_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f64m4_m)))
-vfloat64m4_t vfwnmacc(vbool16_t op0, vfloat64m4_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f64m8)))
-vfloat64m8_t vfwnmacc(vfloat64m8_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f64m8_m)))
-vfloat64m8_t vfwnmacc(vbool8_t op0, vfloat64m8_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f64m1)))
-vfloat64m1_t vfwmsac(vfloat64m1_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f64m1_m)))
-vfloat64m1_t vfwmsac(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f64m2)))
-vfloat64m2_t vfwmsac(vfloat64m2_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f64m2_m)))
-vfloat64m2_t vfwmsac(vbool32_t op0, vfloat64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f64m4)))
-vfloat64m4_t vfwmsac(vfloat64m4_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f64m4_m)))
-vfloat64m4_t vfwmsac(vbool16_t op0, vfloat64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f64m8)))
-vfloat64m8_t vfwmsac(vfloat64m8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f64m8_m)))
-vfloat64m8_t vfwmsac(vbool8_t op0, vfloat64m8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f64m1)))
-vfloat64m1_t vfwmsac(vfloat64m1_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f64m1_m)))
-vfloat64m1_t vfwmsac(vbool64_t op0, vfloat64m1_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f64m2)))
-vfloat64m2_t vfwmsac(vfloat64m2_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f64m2_m)))
-vfloat64m2_t vfwmsac(vbool32_t op0, vfloat64m2_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f64m4)))
-vfloat64m4_t vfwmsac(vfloat64m4_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f64m4_m)))
-vfloat64m4_t vfwmsac(vbool16_t op0, vfloat64m4_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f64m8)))
-vfloat64m8_t vfwmsac(vfloat64m8_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f64m8_m)))
-vfloat64m8_t vfwmsac(vbool8_t op0, vfloat64m8_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f64m1)))
-vfloat64m1_t vfwnmsac(vfloat64m1_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f64m1_m)))
-vfloat64m1_t vfwnmsac(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f64m2)))
-vfloat64m2_t vfwnmsac(vfloat64m2_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f64m2_m)))
-vfloat64m2_t vfwnmsac(vbool32_t op0, vfloat64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f64m4)))
-vfloat64m4_t vfwnmsac(vfloat64m4_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f64m4_m)))
-vfloat64m4_t vfwnmsac(vbool16_t op0, vfloat64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f64m8)))
-vfloat64m8_t vfwnmsac(vfloat64m8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f64m8_m)))
-vfloat64m8_t vfwnmsac(vbool8_t op0, vfloat64m8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f64m1)))
-vfloat64m1_t vfwnmsac(vfloat64m1_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f64m1_m)))
-vfloat64m1_t vfwnmsac(vbool64_t op0, vfloat64m1_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f64m2)))
-vfloat64m2_t vfwnmsac(vfloat64m2_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f64m2_m)))
-vfloat64m2_t vfwnmsac(vbool32_t op0, vfloat64m2_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f64m4)))
-vfloat64m4_t vfwnmsac(vfloat64m4_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f64m4_m)))
-vfloat64m4_t vfwnmsac(vbool16_t op0, vfloat64m4_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f64m8)))
-vfloat64m8_t vfwnmsac(vfloat64m8_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f64m8_m)))
-vfloat64m8_t vfwnmsac(vbool8_t op0, vfloat64m8_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f32m1_f64m1)))
-vfloat64m1_t vfwredsum(vfloat64m1_t op0, vfloat32m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f32m1_f64m1_m)))
-vfloat64m1_t vfwredsum(vbool32_t op0, vfloat64m1_t op1, vfloat32m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f32m2_f64m1)))
-vfloat64m1_t vfwredsum(vfloat64m1_t op0, vfloat32m2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f32m2_f64m1_m)))
-vfloat64m1_t vfwredsum(vbool16_t op0, vfloat64m1_t op1, vfloat32m2_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f32m4_f64m1)))
-vfloat64m1_t vfwredsum(vfloat64m1_t op0, vfloat32m4_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f32m4_f64m1_m)))
-vfloat64m1_t vfwredsum(vbool8_t op0, vfloat64m1_t op1, vfloat32m4_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f32m8_f64m1)))
-vfloat64m1_t vfwredsum(vfloat64m1_t op0, vfloat32m8_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f32m8_f64m1_m)))
-vfloat64m1_t vfwredsum(vbool4_t op0, vfloat64m1_t op1, vfloat32m8_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f32mf2_f64m1)))
-vfloat64m1_t vfwredsum(vfloat64m1_t op0, vfloat32mf2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f32mf2_f64m1_m)))
-vfloat64m1_t vfwredsum(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f32m1_f64m1)))
-vfloat64m1_t vfwredosum(vfloat64m1_t op0, vfloat32m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f32m1_f64m1_m)))
-vfloat64m1_t vfwredosum(vbool32_t op0, vfloat64m1_t op1, vfloat32m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f32m2_f64m1)))
-vfloat64m1_t vfwredosum(vfloat64m1_t op0, vfloat32m2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f32m2_f64m1_m)))
-vfloat64m1_t vfwredosum(vbool16_t op0, vfloat64m1_t op1, vfloat32m2_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f32m4_f64m1)))
-vfloat64m1_t vfwredosum(vfloat64m1_t op0, vfloat32m4_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f32m4_f64m1_m)))
-vfloat64m1_t vfwredosum(vbool8_t op0, vfloat64m1_t op1, vfloat32m4_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f32m8_f64m1)))
-vfloat64m1_t vfwredosum(vfloat64m1_t op0, vfloat32m8_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f32m8_f64m1_m)))
-vfloat64m1_t vfwredosum(vbool4_t op0, vfloat64m1_t op1, vfloat32m8_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f32mf2_f64m1)))
-vfloat64m1_t vfwredosum(vfloat64m1_t op0, vfloat32mf2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f32mf2_f64m1_m)))
-vfloat64m1_t vfwredosum(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f32mf2)))
-vfloat32mf2_t vfncvt_f(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f32mf2_m)))
-vfloat32mf2_t vfncvt_f(vbool64_t op0, vfloat32mf2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f32m1)))
-vfloat32m1_t vfncvt_f(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f32m1_m)))
-vfloat32m1_t vfncvt_f(vbool32_t op0, vfloat32m1_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f32m2)))
-vfloat32m2_t vfncvt_f(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f32m2_m)))
-vfloat32m2_t vfncvt_f(vbool16_t op0, vfloat32m2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f32m4)))
-vfloat32m4_t vfncvt_f(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f32m4_m)))
-vfloat32m4_t vfncvt_f(vbool8_t op0, vfloat32m4_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f32mf2)))
-vfloat32mf2_t vfncvt_rod_f(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f32mf2_m)))
-vfloat32mf2_t vfncvt_rod_f(vbool64_t op0, vfloat32mf2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f32m1)))
-vfloat32m1_t vfncvt_rod_f(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f32m1_m)))
-vfloat32m1_t vfncvt_rod_f(vbool32_t op0, vfloat32m1_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f32m2)))
-vfloat32m2_t vfncvt_rod_f(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f32m2_m)))
-vfloat32m2_t vfncvt_rod_f(vbool16_t op0, vfloat32m2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f32m4)))
-vfloat32m4_t vfncvt_rod_f(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f32m4_m)))
-vfloat32m4_t vfncvt_rod_f(vbool8_t op0, vfloat32m4_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f64m1)))
-vfloat64m1_t vfwcvt_f(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f64m1_m)))
-vfloat64m1_t vfwcvt_f(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f64m2)))
-vfloat64m2_t vfwcvt_f(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f64m2_m)))
-vfloat64m2_t vfwcvt_f(vbool32_t op0, vfloat64m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f64m4)))
-vfloat64m4_t vfwcvt_f(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f64m4_m)))
-vfloat64m4_t vfwcvt_f(vbool16_t op0, vfloat64m4_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f64m8)))
-vfloat64m8_t vfwcvt_f(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f64m8_m)))
-vfloat64m8_t vfwcvt_f(vbool8_t op0, vfloat64m8_t op1, vfloat32m4_t op2, size_t op3);
-
-#endif
-
-#if defined(__riscv_zfh)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16m1)))
-void vsse16(_Float16 * op0, ptrdiff_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16m1_m)))
-void vsse16(vbool16_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16m2)))
-void vsse16(_Float16 * op0, ptrdiff_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16m2_m)))
-void vsse16(vbool8_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16m4)))
-void vsse16(_Float16 * op0, ptrdiff_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16m4_m)))
-void vsse16(vbool4_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16m8)))
-void vsse16(_Float16 * op0, ptrdiff_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16m8_m)))
-void vsse16(vbool2_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16mf2)))
-void vsse16(_Float16 * op0, ptrdiff_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16mf2_m)))
-void vsse16(vbool32_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16mf4)))
-void vsse16(_Float16 * op0, ptrdiff_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16mf4_m)))
-void vsse16(vbool64_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16m1)))
-vfloat16m1_t vluxei8(const _Float16 * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16m1_m)))
-vfloat16m1_t vluxei8(vbool16_t op0, vfloat16m1_t op1, const _Float16 * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16m2)))
-vfloat16m2_t vluxei8(const _Float16 * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16m2_m)))
-vfloat16m2_t vluxei8(vbool8_t op0, vfloat16m2_t op1, const _Float16 * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16m4)))
-vfloat16m4_t vluxei8(const _Float16 * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16m4_m)))
-vfloat16m4_t vluxei8(vbool4_t op0, vfloat16m4_t op1, const _Float16 * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16m8)))
-vfloat16m8_t vluxei8(const _Float16 * op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16m8_m)))
-vfloat16m8_t vluxei8(vbool2_t op0, vfloat16m8_t op1, const _Float16 * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16mf2)))
-vfloat16mf2_t vluxei8(const _Float16 * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16mf2_m)))
-vfloat16mf2_t vluxei8(vbool32_t op0, vfloat16mf2_t op1, const _Float16 * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16mf4)))
-vfloat16mf4_t vluxei8(const _Float16 * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16mf4_m)))
-vfloat16mf4_t vluxei8(vbool64_t op0, vfloat16mf4_t op1, const _Float16 * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16m1)))
-vfloat16m1_t vluxei16(const _Float16 * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16m1_m)))
-vfloat16m1_t vluxei16(vbool16_t op0, vfloat16m1_t op1, const _Float16 * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16m2)))
-vfloat16m2_t vluxei16(const _Float16 * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16m2_m)))
-vfloat16m2_t vluxei16(vbool8_t op0, vfloat16m2_t op1, const _Float16 * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16m4)))
-vfloat16m4_t vluxei16(const _Float16 * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16m4_m)))
-vfloat16m4_t vluxei16(vbool4_t op0, vfloat16m4_t op1, const _Float16 * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16m8)))
-vfloat16m8_t vluxei16(const _Float16 * op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16m8_m)))
-vfloat16m8_t vluxei16(vbool2_t op0, vfloat16m8_t op1, const _Float16 * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16mf2)))
-vfloat16mf2_t vluxei16(const _Float16 * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16mf2_m)))
-vfloat16mf2_t vluxei16(vbool32_t op0, vfloat16mf2_t op1, const _Float16 * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16mf4)))
-vfloat16mf4_t vluxei16(const _Float16 * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16mf4_m)))
-vfloat16mf4_t vluxei16(vbool64_t op0, vfloat16mf4_t op1, const _Float16 * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f16m1)))
-vfloat16m1_t vluxei32(const _Float16 * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f16m1_m)))
-vfloat16m1_t vluxei32(vbool16_t op0, vfloat16m1_t op1, const _Float16 * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f16m2)))
-vfloat16m2_t vluxei32(const _Float16 * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f16m2_m)))
-vfloat16m2_t vluxei32(vbool8_t op0, vfloat16m2_t op1, const _Float16 * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f16m4)))
-vfloat16m4_t vluxei32(const _Float16 * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f16m4_m)))
-vfloat16m4_t vluxei32(vbool4_t op0, vfloat16m4_t op1, const _Float16 * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f16mf2)))
-vfloat16mf2_t vluxei32(const _Float16 * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f16mf2_m)))
-vfloat16mf2_t vluxei32(vbool32_t op0, vfloat16mf2_t op1, const _Float16 * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f16mf4)))
-vfloat16mf4_t vluxei32(const _Float16 * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f16mf4_m)))
-vfloat16mf4_t vluxei32(vbool64_t op0, vfloat16mf4_t op1, const _Float16 * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f16m1)))
-vfloat16m1_t vluxei64(const _Float16 * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f16m1_m)))
-vfloat16m1_t vluxei64(vbool16_t op0, vfloat16m1_t op1, const _Float16 * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f16m2)))
-vfloat16m2_t vluxei64(const _Float16 * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f16m2_m)))
-vfloat16m2_t vluxei64(vbool8_t op0, vfloat16m2_t op1, const _Float16 * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f16mf2)))
-vfloat16mf2_t vluxei64(const _Float16 * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f16mf2_m)))
-vfloat16mf2_t vluxei64(vbool32_t op0, vfloat16mf2_t op1, const _Float16 * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f16mf4)))
-vfloat16mf4_t vluxei64(const _Float16 * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f16mf4_m)))
-vfloat16mf4_t vluxei64(vbool64_t op0, vfloat16mf4_t op1, const _Float16 * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16m1)))
-vfloat16m1_t vloxei8(const _Float16 * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16m1_m)))
-vfloat16m1_t vloxei8(vbool16_t op0, vfloat16m1_t op1, const _Float16 * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16m2)))
-vfloat16m2_t vloxei8(const _Float16 * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16m2_m)))
-vfloat16m2_t vloxei8(vbool8_t op0, vfloat16m2_t op1, const _Float16 * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16m4)))
-vfloat16m4_t vloxei8(const _Float16 * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16m4_m)))
-vfloat16m4_t vloxei8(vbool4_t op0, vfloat16m4_t op1, const _Float16 * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16m8)))
-vfloat16m8_t vloxei8(const _Float16 * op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16m8_m)))
-vfloat16m8_t vloxei8(vbool2_t op0, vfloat16m8_t op1, const _Float16 * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16mf2)))
-vfloat16mf2_t vloxei8(const _Float16 * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16mf2_m)))
-vfloat16mf2_t vloxei8(vbool32_t op0, vfloat16mf2_t op1, const _Float16 * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16mf4)))
-vfloat16mf4_t vloxei8(const _Float16 * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16mf4_m)))
-vfloat16mf4_t vloxei8(vbool64_t op0, vfloat16mf4_t op1, const _Float16 * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16m1)))
-vfloat16m1_t vloxei16(const _Float16 * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16m1_m)))
-vfloat16m1_t vloxei16(vbool16_t op0, vfloat16m1_t op1, const _Float16 * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16m2)))
-vfloat16m2_t vloxei16(const _Float16 * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16m2_m)))
-vfloat16m2_t vloxei16(vbool8_t op0, vfloat16m2_t op1, const _Float16 * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16m4)))
-vfloat16m4_t vloxei16(const _Float16 * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16m4_m)))
-vfloat16m4_t vloxei16(vbool4_t op0, vfloat16m4_t op1, const _Float16 * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16m8)))
-vfloat16m8_t vloxei16(const _Float16 * op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16m8_m)))
-vfloat16m8_t vloxei16(vbool2_t op0, vfloat16m8_t op1, const _Float16 * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16mf2)))
-vfloat16mf2_t vloxei16(const _Float16 * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16mf2_m)))
-vfloat16mf2_t vloxei16(vbool32_t op0, vfloat16mf2_t op1, const _Float16 * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16mf4)))
-vfloat16mf4_t vloxei16(const _Float16 * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16mf4_m)))
-vfloat16mf4_t vloxei16(vbool64_t op0, vfloat16mf4_t op1, const _Float16 * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f16m1)))
-vfloat16m1_t vloxei32(const _Float16 * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f16m1_m)))
-vfloat16m1_t vloxei32(vbool16_t op0, vfloat16m1_t op1, const _Float16 * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f16m2)))
-vfloat16m2_t vloxei32(const _Float16 * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f16m2_m)))
-vfloat16m2_t vloxei32(vbool8_t op0, vfloat16m2_t op1, const _Float16 * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f16m4)))
-vfloat16m4_t vloxei32(const _Float16 * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f16m4_m)))
-vfloat16m4_t vloxei32(vbool4_t op0, vfloat16m4_t op1, const _Float16 * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f16mf2)))
-vfloat16mf2_t vloxei32(const _Float16 * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f16mf2_m)))
-vfloat16mf2_t vloxei32(vbool32_t op0, vfloat16mf2_t op1, const _Float16 * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f16mf4)))
-vfloat16mf4_t vloxei32(const _Float16 * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f16mf4_m)))
-vfloat16mf4_t vloxei32(vbool64_t op0, vfloat16mf4_t op1, const _Float16 * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f16m1)))
-vfloat16m1_t vloxei64(const _Float16 * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f16m1_m)))
-vfloat16m1_t vloxei64(vbool16_t op0, vfloat16m1_t op1, const _Float16 * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f16m2)))
-vfloat16m2_t vloxei64(const _Float16 * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f16m2_m)))
-vfloat16m2_t vloxei64(vbool8_t op0, vfloat16m2_t op1, const _Float16 * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f16mf2)))
-vfloat16mf2_t vloxei64(const _Float16 * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f16mf2_m)))
-vfloat16mf2_t vloxei64(vbool32_t op0, vfloat16mf2_t op1, const _Float16 * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f16mf4)))
-vfloat16mf4_t vloxei64(const _Float16 * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f16mf4_m)))
-vfloat16mf4_t vloxei64(vbool64_t op0, vfloat16mf4_t op1, const _Float16 * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f16m1)))
-vfloat16m1_t vmv_v(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f16m2)))
-vfloat16m2_t vmv_v(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f16m4)))
-vfloat16m4_t vmv_v(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f16m8)))
-vfloat16m8_t vmv_v(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f16mf2)))
-vfloat16mf2_t vmv_v(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f16mf4)))
-vfloat16mf4_t vmv_v(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16m1)))
-vfloat16m1_t vfadd(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16m1_m)))
-vfloat16m1_t vfadd(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16m2)))
-vfloat16m2_t vfadd(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16m2_m)))
-vfloat16m2_t vfadd(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16m4)))
-vfloat16m4_t vfadd(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16m4_m)))
-vfloat16m4_t vfadd(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16m8)))
-vfloat16m8_t vfadd(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16m8_m)))
-vfloat16m8_t vfadd(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16mf2)))
-vfloat16mf2_t vfadd(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16mf2_m)))
-vfloat16mf2_t vfadd(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16mf4)))
-vfloat16mf4_t vfadd(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16mf4_m)))
-vfloat16mf4_t vfadd(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16m1)))
-vfloat16m1_t vfadd(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16m1_m)))
-vfloat16m1_t vfadd(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16m2)))
-vfloat16m2_t vfadd(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16m2_m)))
-vfloat16m2_t vfadd(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16m4)))
-vfloat16m4_t vfadd(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16m4_m)))
-vfloat16m4_t vfadd(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16m8)))
-vfloat16m8_t vfadd(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16m8_m)))
-vfloat16m8_t vfadd(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16mf2)))
-vfloat16mf2_t vfadd(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16mf2_m)))
-vfloat16mf2_t vfadd(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16mf4)))
-vfloat16mf4_t vfadd(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16mf4_m)))
-vfloat16mf4_t vfadd(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16m1)))
-vfloat16m1_t vfsub(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16m1_m)))
-vfloat16m1_t vfsub(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16m2)))
-vfloat16m2_t vfsub(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16m2_m)))
-vfloat16m2_t vfsub(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16m4)))
-vfloat16m4_t vfsub(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16m4_m)))
-vfloat16m4_t vfsub(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16m8)))
-vfloat16m8_t vfsub(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16m8_m)))
-vfloat16m8_t vfsub(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16mf2)))
-vfloat16mf2_t vfsub(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16mf2_m)))
-vfloat16mf2_t vfsub(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16mf4)))
-vfloat16mf4_t vfsub(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16mf4_m)))
-vfloat16mf4_t vfsub(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16m1)))
-vfloat16m1_t vfsub(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16m1_m)))
-vfloat16m1_t vfsub(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16m2)))
-vfloat16m2_t vfsub(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16m2_m)))
-vfloat16m2_t vfsub(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16m4)))
-vfloat16m4_t vfsub(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16m4_m)))
-vfloat16m4_t vfsub(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16m8)))
-vfloat16m8_t vfsub(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16m8_m)))
-vfloat16m8_t vfsub(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16mf2)))
-vfloat16mf2_t vfsub(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16mf2_m)))
-vfloat16mf2_t vfsub(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16mf4)))
-vfloat16mf4_t vfsub(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16mf4_m)))
-vfloat16mf4_t vfsub(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16m1)))
-vfloat16m1_t vfrsub(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16m1_m)))
-vfloat16m1_t vfrsub(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16m2)))
-vfloat16m2_t vfrsub(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16m2_m)))
-vfloat16m2_t vfrsub(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16m4)))
-vfloat16m4_t vfrsub(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16m4_m)))
-vfloat16m4_t vfrsub(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16m8)))
-vfloat16m8_t vfrsub(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16m8_m)))
-vfloat16m8_t vfrsub(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16mf2)))
-vfloat16mf2_t vfrsub(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16mf2_m)))
-vfloat16mf2_t vfrsub(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16mf4)))
-vfloat16mf4_t vfrsub(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16mf4_m)))
-vfloat16mf4_t vfrsub(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16m1)))
-vfloat16m1_t vfmul(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16m1_m)))
-vfloat16m1_t vfmul(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16m2)))
-vfloat16m2_t vfmul(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16m2_m)))
-vfloat16m2_t vfmul(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16m4)))
-vfloat16m4_t vfmul(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16m4_m)))
-vfloat16m4_t vfmul(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16m8)))
-vfloat16m8_t vfmul(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16m8_m)))
-vfloat16m8_t vfmul(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16mf2)))
-vfloat16mf2_t vfmul(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16mf2_m)))
-vfloat16mf2_t vfmul(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16mf4)))
-vfloat16mf4_t vfmul(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16mf4_m)))
-vfloat16mf4_t vfmul(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16m1)))
-vfloat16m1_t vfmul(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16m1_m)))
-vfloat16m1_t vfmul(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16m2)))
-vfloat16m2_t vfmul(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16m2_m)))
-vfloat16m2_t vfmul(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16m4)))
-vfloat16m4_t vfmul(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16m4_m)))
-vfloat16m4_t vfmul(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16m8)))
-vfloat16m8_t vfmul(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16m8_m)))
-vfloat16m8_t vfmul(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16mf2)))
-vfloat16mf2_t vfmul(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16mf2_m)))
-vfloat16mf2_t vfmul(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16mf4)))
-vfloat16mf4_t vfmul(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16mf4_m)))
-vfloat16mf4_t vfmul(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16m1)))
-vfloat16m1_t vfdiv(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16m1_m)))
-vfloat16m1_t vfdiv(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16m2)))
-vfloat16m2_t vfdiv(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16m2_m)))
-vfloat16m2_t vfdiv(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16m4)))
-vfloat16m4_t vfdiv(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16m4_m)))
-vfloat16m4_t vfdiv(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16m8)))
-vfloat16m8_t vfdiv(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16m8_m)))
-vfloat16m8_t vfdiv(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16mf2)))
-vfloat16mf2_t vfdiv(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16mf2_m)))
-vfloat16mf2_t vfdiv(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16mf4)))
-vfloat16mf4_t vfdiv(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16mf4_m)))
-vfloat16mf4_t vfdiv(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16m1)))
-vfloat16m1_t vfdiv(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16m1_m)))
-vfloat16m1_t vfdiv(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16m2)))
-vfloat16m2_t vfdiv(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16m2_m)))
-vfloat16m2_t vfdiv(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16m4)))
-vfloat16m4_t vfdiv(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16m4_m)))
-vfloat16m4_t vfdiv(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16m8)))
-vfloat16m8_t vfdiv(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16m8_m)))
-vfloat16m8_t vfdiv(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16mf2)))
-vfloat16mf2_t vfdiv(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16mf2_m)))
-vfloat16mf2_t vfdiv(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16mf4)))
-vfloat16mf4_t vfdiv(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16mf4_m)))
-vfloat16mf4_t vfdiv(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16m1)))
-vfloat16m1_t vfrdiv(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16m1_m)))
-vfloat16m1_t vfrdiv(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16m2)))
-vfloat16m2_t vfrdiv(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16m2_m)))
-vfloat16m2_t vfrdiv(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16m4)))
-vfloat16m4_t vfrdiv(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16m4_m)))
-vfloat16m4_t vfrdiv(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16m8)))
-vfloat16m8_t vfrdiv(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16m8_m)))
-vfloat16m8_t vfrdiv(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16mf2)))
-vfloat16mf2_t vfrdiv(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16mf2_m)))
-vfloat16mf2_t vfrdiv(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16mf4)))
-vfloat16mf4_t vfrdiv(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16mf4_m)))
-vfloat16mf4_t vfrdiv(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16m1)))
-vfloat16m1_t vfmacc(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16m1_m)))
-vfloat16m1_t vfmacc(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16m2)))
-vfloat16m2_t vfmacc(vfloat16m2_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16m2_m)))
-vfloat16m2_t vfmacc(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16m4)))
-vfloat16m4_t vfmacc(vfloat16m4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16m4_m)))
-vfloat16m4_t vfmacc(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16m8)))
-vfloat16m8_t vfmacc(vfloat16m8_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16m8_m)))
-vfloat16m8_t vfmacc(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16mf2)))
-vfloat16mf2_t vfmacc(vfloat16mf2_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16mf2_m)))
-vfloat16mf2_t vfmacc(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16mf4)))
-vfloat16mf4_t vfmacc(vfloat16mf4_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16mf4_m)))
-vfloat16mf4_t vfmacc(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16m1)))
-vfloat16m1_t vfmacc(vfloat16m1_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16m1_m)))
-vfloat16m1_t vfmacc(vbool16_t op0, vfloat16m1_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16m2)))
-vfloat16m2_t vfmacc(vfloat16m2_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16m2_m)))
-vfloat16m2_t vfmacc(vbool8_t op0, vfloat16m2_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16m4)))
-vfloat16m4_t vfmacc(vfloat16m4_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16m4_m)))
-vfloat16m4_t vfmacc(vbool4_t op0, vfloat16m4_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16m8)))
-vfloat16m8_t vfmacc(vfloat16m8_t op0, _Float16 op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16m8_m)))
-vfloat16m8_t vfmacc(vbool2_t op0, vfloat16m8_t op1, _Float16 op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16mf2)))
-vfloat16mf2_t vfmacc(vfloat16mf2_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16mf2_m)))
-vfloat16mf2_t vfmacc(vbool32_t op0, vfloat16mf2_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16mf4)))
-vfloat16mf4_t vfmacc(vfloat16mf4_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16mf4_m)))
-vfloat16mf4_t vfmacc(vbool64_t op0, vfloat16mf4_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16m1)))
-vfloat16m1_t vfnmacc(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16m1_m)))
-vfloat16m1_t vfnmacc(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16m2)))
-vfloat16m2_t vfnmacc(vfloat16m2_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16m2_m)))
-vfloat16m2_t vfnmacc(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16m4)))
-vfloat16m4_t vfnmacc(vfloat16m4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16m4_m)))
-vfloat16m4_t vfnmacc(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16m8)))
-vfloat16m8_t vfnmacc(vfloat16m8_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16m8_m)))
-vfloat16m8_t vfnmacc(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16mf2)))
-vfloat16mf2_t vfnmacc(vfloat16mf2_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16mf2_m)))
-vfloat16mf2_t vfnmacc(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16mf4)))
-vfloat16mf4_t vfnmacc(vfloat16mf4_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16mf4_m)))
-vfloat16mf4_t vfnmacc(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16m1)))
-vfloat16m1_t vfnmacc(vfloat16m1_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16m1_m)))
-vfloat16m1_t vfnmacc(vbool16_t op0, vfloat16m1_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16m2)))
-vfloat16m2_t vfnmacc(vfloat16m2_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16m2_m)))
-vfloat16m2_t vfnmacc(vbool8_t op0, vfloat16m2_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16m4)))
-vfloat16m4_t vfnmacc(vfloat16m4_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16m4_m)))
-vfloat16m4_t vfnmacc(vbool4_t op0, vfloat16m4_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16m8)))
-vfloat16m8_t vfnmacc(vfloat16m8_t op0, _Float16 op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16m8_m)))
-vfloat16m8_t vfnmacc(vbool2_t op0, vfloat16m8_t op1, _Float16 op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16mf2)))
-vfloat16mf2_t vfnmacc(vfloat16mf2_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16mf2_m)))
-vfloat16mf2_t vfnmacc(vbool32_t op0, vfloat16mf2_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16mf4)))
-vfloat16mf4_t vfnmacc(vfloat16mf4_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16mf4_m)))
-vfloat16mf4_t vfnmacc(vbool64_t op0, vfloat16mf4_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16m1)))
-vfloat16m1_t vfmsac(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16m1_m)))
-vfloat16m1_t vfmsac(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16m2)))
-vfloat16m2_t vfmsac(vfloat16m2_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16m2_m)))
-vfloat16m2_t vfmsac(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16m4)))
-vfloat16m4_t vfmsac(vfloat16m4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16m4_m)))
-vfloat16m4_t vfmsac(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16m8)))
-vfloat16m8_t vfmsac(vfloat16m8_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16m8_m)))
-vfloat16m8_t vfmsac(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16mf2)))
-vfloat16mf2_t vfmsac(vfloat16mf2_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16mf2_m)))
-vfloat16mf2_t vfmsac(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16mf4)))
-vfloat16mf4_t vfmsac(vfloat16mf4_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16mf4_m)))
-vfloat16mf4_t vfmsac(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16m1)))
-vfloat16m1_t vfmsac(vfloat16m1_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16m1_m)))
-vfloat16m1_t vfmsac(vbool16_t op0, vfloat16m1_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16m2)))
-vfloat16m2_t vfmsac(vfloat16m2_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16m2_m)))
-vfloat16m2_t vfmsac(vbool8_t op0, vfloat16m2_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16m4)))
-vfloat16m4_t vfmsac(vfloat16m4_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16m4_m)))
-vfloat16m4_t vfmsac(vbool4_t op0, vfloat16m4_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16m8)))
-vfloat16m8_t vfmsac(vfloat16m8_t op0, _Float16 op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16m8_m)))
-vfloat16m8_t vfmsac(vbool2_t op0, vfloat16m8_t op1, _Float16 op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16mf2)))
-vfloat16mf2_t vfmsac(vfloat16mf2_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16mf2_m)))
-vfloat16mf2_t vfmsac(vbool32_t op0, vfloat16mf2_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16mf4)))
-vfloat16mf4_t vfmsac(vfloat16mf4_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16mf4_m)))
-vfloat16mf4_t vfmsac(vbool64_t op0, vfloat16mf4_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16m1)))
-vfloat16m1_t vfnmsac(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16m1_m)))
-vfloat16m1_t vfnmsac(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16m2)))
-vfloat16m2_t vfnmsac(vfloat16m2_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16m2_m)))
-vfloat16m2_t vfnmsac(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16m4)))
-vfloat16m4_t vfnmsac(vfloat16m4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16m4_m)))
-vfloat16m4_t vfnmsac(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16m8)))
-vfloat16m8_t vfnmsac(vfloat16m8_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16m8_m)))
-vfloat16m8_t vfnmsac(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16mf2)))
-vfloat16mf2_t vfnmsac(vfloat16mf2_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16mf2_m)))
-vfloat16mf2_t vfnmsac(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16mf4)))
-vfloat16mf4_t vfnmsac(vfloat16mf4_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16mf4_m)))
-vfloat16mf4_t vfnmsac(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16m1)))
-vfloat16m1_t vfnmsac(vfloat16m1_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16m1_m)))
-vfloat16m1_t vfnmsac(vbool16_t op0, vfloat16m1_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16m2)))
-vfloat16m2_t vfnmsac(vfloat16m2_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16m2_m)))
-vfloat16m2_t vfnmsac(vbool8_t op0, vfloat16m2_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16m4)))
-vfloat16m4_t vfnmsac(vfloat16m4_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16m4_m)))
-vfloat16m4_t vfnmsac(vbool4_t op0, vfloat16m4_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16m8)))
-vfloat16m8_t vfnmsac(vfloat16m8_t op0, _Float16 op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16m8_m)))
-vfloat16m8_t vfnmsac(vbool2_t op0, vfloat16m8_t op1, _Float16 op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16mf2)))
-vfloat16mf2_t vfnmsac(vfloat16mf2_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16mf2_m)))
-vfloat16mf2_t vfnmsac(vbool32_t op0, vfloat16mf2_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16mf4)))
-vfloat16mf4_t vfnmsac(vfloat16mf4_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16mf4_m)))
-vfloat16mf4_t vfnmsac(vbool64_t op0, vfloat16mf4_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16m1)))
-vfloat16m1_t vfmadd(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16m1_m)))
-vfloat16m1_t vfmadd(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16m2)))
-vfloat16m2_t vfmadd(vfloat16m2_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16m2_m)))
-vfloat16m2_t vfmadd(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16m4)))
-vfloat16m4_t vfmadd(vfloat16m4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16m4_m)))
-vfloat16m4_t vfmadd(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16m8)))
-vfloat16m8_t vfmadd(vfloat16m8_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16m8_m)))
-vfloat16m8_t vfmadd(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16mf2)))
-vfloat16mf2_t vfmadd(vfloat16mf2_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16mf2_m)))
-vfloat16mf2_t vfmadd(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16mf4)))
-vfloat16mf4_t vfmadd(vfloat16mf4_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16mf4_m)))
-vfloat16mf4_t vfmadd(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16m1)))
-vfloat16m1_t vfmadd(vfloat16m1_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16m1_m)))
-vfloat16m1_t vfmadd(vbool16_t op0, vfloat16m1_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16m2)))
-vfloat16m2_t vfmadd(vfloat16m2_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16m2_m)))
-vfloat16m2_t vfmadd(vbool8_t op0, vfloat16m2_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16m4)))
-vfloat16m4_t vfmadd(vfloat16m4_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16m4_m)))
-vfloat16m4_t vfmadd(vbool4_t op0, vfloat16m4_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16m8)))
-vfloat16m8_t vfmadd(vfloat16m8_t op0, _Float16 op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16m8_m)))
-vfloat16m8_t vfmadd(vbool2_t op0, vfloat16m8_t op1, _Float16 op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16mf2)))
-vfloat16mf2_t vfmadd(vfloat16mf2_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16mf2_m)))
-vfloat16mf2_t vfmadd(vbool32_t op0, vfloat16mf2_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16mf4)))
-vfloat16mf4_t vfmadd(vfloat16mf4_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16mf4_m)))
-vfloat16mf4_t vfmadd(vbool64_t op0, vfloat16mf4_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16m1)))
-vfloat16m1_t vfnmadd(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16m1_m)))
-vfloat16m1_t vfnmadd(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16m2)))
-vfloat16m2_t vfnmadd(vfloat16m2_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16m2_m)))
-vfloat16m2_t vfnmadd(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16m4)))
-vfloat16m4_t vfnmadd(vfloat16m4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16m4_m)))
-vfloat16m4_t vfnmadd(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16m8)))
-vfloat16m8_t vfnmadd(vfloat16m8_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16m8_m)))
-vfloat16m8_t vfnmadd(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16mf2)))
-vfloat16mf2_t vfnmadd(vfloat16mf2_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16mf2_m)))
-vfloat16mf2_t vfnmadd(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16mf4)))
-vfloat16mf4_t vfnmadd(vfloat16mf4_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16mf4_m)))
-vfloat16mf4_t vfnmadd(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16m1)))
-vfloat16m1_t vfnmadd(vfloat16m1_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16m1_m)))
-vfloat16m1_t vfnmadd(vbool16_t op0, vfloat16m1_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16m2)))
-vfloat16m2_t vfnmadd(vfloat16m2_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16m2_m)))
-vfloat16m2_t vfnmadd(vbool8_t op0, vfloat16m2_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16m4)))
-vfloat16m4_t vfnmadd(vfloat16m4_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16m4_m)))
-vfloat16m4_t vfnmadd(vbool4_t op0, vfloat16m4_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16m8)))
-vfloat16m8_t vfnmadd(vfloat16m8_t op0, _Float16 op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16m8_m)))
-vfloat16m8_t vfnmadd(vbool2_t op0, vfloat16m8_t op1, _Float16 op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16mf2)))
-vfloat16mf2_t vfnmadd(vfloat16mf2_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16mf2_m)))
-vfloat16mf2_t vfnmadd(vbool32_t op0, vfloat16mf2_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16mf4)))
-vfloat16mf4_t vfnmadd(vfloat16mf4_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16mf4_m)))
-vfloat16mf4_t vfnmadd(vbool64_t op0, vfloat16mf4_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16m1)))
-vfloat16m1_t vfmsub(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16m1_m)))
-vfloat16m1_t vfmsub(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16m2)))
-vfloat16m2_t vfmsub(vfloat16m2_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16m2_m)))
-vfloat16m2_t vfmsub(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16m4)))
-vfloat16m4_t vfmsub(vfloat16m4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16m4_m)))
-vfloat16m4_t vfmsub(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16m8)))
-vfloat16m8_t vfmsub(vfloat16m8_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16m8_m)))
-vfloat16m8_t vfmsub(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16mf2)))
-vfloat16mf2_t vfmsub(vfloat16mf2_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16mf2_m)))
-vfloat16mf2_t vfmsub(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16mf4)))
-vfloat16mf4_t vfmsub(vfloat16mf4_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16mf4_m)))
-vfloat16mf4_t vfmsub(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16m1)))
-vfloat16m1_t vfmsub(vfloat16m1_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16m1_m)))
-vfloat16m1_t vfmsub(vbool16_t op0, vfloat16m1_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16m2)))
-vfloat16m2_t vfmsub(vfloat16m2_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16m2_m)))
-vfloat16m2_t vfmsub(vbool8_t op0, vfloat16m2_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16m4)))
-vfloat16m4_t vfmsub(vfloat16m4_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16m4_m)))
-vfloat16m4_t vfmsub(vbool4_t op0, vfloat16m4_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16m8)))
-vfloat16m8_t vfmsub(vfloat16m8_t op0, _Float16 op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16m8_m)))
-vfloat16m8_t vfmsub(vbool2_t op0, vfloat16m8_t op1, _Float16 op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16mf2)))
-vfloat16mf2_t vfmsub(vfloat16mf2_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16mf2_m)))
-vfloat16mf2_t vfmsub(vbool32_t op0, vfloat16mf2_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16mf4)))
-vfloat16mf4_t vfmsub(vfloat16mf4_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16mf4_m)))
-vfloat16mf4_t vfmsub(vbool64_t op0, vfloat16mf4_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16m1)))
-vfloat16m1_t vfnmsub(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16m1_m)))
-vfloat16m1_t vfnmsub(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16m2)))
-vfloat16m2_t vfnmsub(vfloat16m2_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16m2_m)))
-vfloat16m2_t vfnmsub(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16m4)))
-vfloat16m4_t vfnmsub(vfloat16m4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16m4_m)))
-vfloat16m4_t vfnmsub(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16m8)))
-vfloat16m8_t vfnmsub(vfloat16m8_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16m8_m)))
-vfloat16m8_t vfnmsub(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16mf2)))
-vfloat16mf2_t vfnmsub(vfloat16mf2_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16mf2_m)))
-vfloat16mf2_t vfnmsub(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16mf4)))
-vfloat16mf4_t vfnmsub(vfloat16mf4_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16mf4_m)))
-vfloat16mf4_t vfnmsub(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16m1)))
-vfloat16m1_t vfnmsub(vfloat16m1_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16m1_m)))
-vfloat16m1_t vfnmsub(vbool16_t op0, vfloat16m1_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16m2)))
-vfloat16m2_t vfnmsub(vfloat16m2_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16m2_m)))
-vfloat16m2_t vfnmsub(vbool8_t op0, vfloat16m2_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16m4)))
-vfloat16m4_t vfnmsub(vfloat16m4_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16m4_m)))
-vfloat16m4_t vfnmsub(vbool4_t op0, vfloat16m4_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16m8)))
-vfloat16m8_t vfnmsub(vfloat16m8_t op0, _Float16 op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16m8_m)))
-vfloat16m8_t vfnmsub(vbool2_t op0, vfloat16m8_t op1, _Float16 op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16mf2)))
-vfloat16mf2_t vfnmsub(vfloat16mf2_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16mf2_m)))
-vfloat16mf2_t vfnmsub(vbool32_t op0, vfloat16mf2_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16mf4)))
-vfloat16mf4_t vfnmsub(vfloat16mf4_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16mf4_m)))
-vfloat16mf4_t vfnmsub(vbool64_t op0, vfloat16mf4_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16m1)))
-vfloat16m1_t vfmin(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16m1_m)))
-vfloat16m1_t vfmin(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16m2)))
-vfloat16m2_t vfmin(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16m2_m)))
-vfloat16m2_t vfmin(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16m4)))
-vfloat16m4_t vfmin(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16m4_m)))
-vfloat16m4_t vfmin(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16m8)))
-vfloat16m8_t vfmin(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16m8_m)))
-vfloat16m8_t vfmin(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16mf2)))
-vfloat16mf2_t vfmin(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16mf2_m)))
-vfloat16mf2_t vfmin(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16mf4)))
-vfloat16mf4_t vfmin(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16mf4_m)))
-vfloat16mf4_t vfmin(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16m1)))
-vfloat16m1_t vfmin(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16m1_m)))
-vfloat16m1_t vfmin(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16m2)))
-vfloat16m2_t vfmin(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16m2_m)))
-vfloat16m2_t vfmin(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16m4)))
-vfloat16m4_t vfmin(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16m4_m)))
-vfloat16m4_t vfmin(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16m8)))
-vfloat16m8_t vfmin(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16m8_m)))
-vfloat16m8_t vfmin(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16mf2)))
-vfloat16mf2_t vfmin(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16mf2_m)))
-vfloat16mf2_t vfmin(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16mf4)))
-vfloat16mf4_t vfmin(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16mf4_m)))
-vfloat16mf4_t vfmin(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16m1)))
-vfloat16m1_t vfmax(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16m1_m)))
-vfloat16m1_t vfmax(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16m2)))
-vfloat16m2_t vfmax(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16m2_m)))
-vfloat16m2_t vfmax(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16m4)))
-vfloat16m4_t vfmax(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16m4_m)))
-vfloat16m4_t vfmax(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16m8)))
-vfloat16m8_t vfmax(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16m8_m)))
-vfloat16m8_t vfmax(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16mf2)))
-vfloat16mf2_t vfmax(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16mf2_m)))
-vfloat16mf2_t vfmax(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16mf4)))
-vfloat16mf4_t vfmax(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16mf4_m)))
-vfloat16mf4_t vfmax(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16m1)))
-vfloat16m1_t vfmax(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16m1_m)))
-vfloat16m1_t vfmax(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16m2)))
-vfloat16m2_t vfmax(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16m2_m)))
-vfloat16m2_t vfmax(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16m4)))
-vfloat16m4_t vfmax(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16m4_m)))
-vfloat16m4_t vfmax(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16m8)))
-vfloat16m8_t vfmax(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16m8_m)))
-vfloat16m8_t vfmax(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16mf2)))
-vfloat16mf2_t vfmax(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16mf2_m)))
-vfloat16mf2_t vfmax(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16mf4)))
-vfloat16mf4_t vfmax(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16mf4_m)))
-vfloat16mf4_t vfmax(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16m1)))
-vfloat16m1_t vfsgnj(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16m1_m)))
-vfloat16m1_t vfsgnj(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16m2)))
-vfloat16m2_t vfsgnj(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16m2_m)))
-vfloat16m2_t vfsgnj(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16m4)))
-vfloat16m4_t vfsgnj(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16m4_m)))
-vfloat16m4_t vfsgnj(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16m8)))
-vfloat16m8_t vfsgnj(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16m8_m)))
-vfloat16m8_t vfsgnj(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16mf2)))
-vfloat16mf2_t vfsgnj(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16mf2_m)))
-vfloat16mf2_t vfsgnj(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16mf4)))
-vfloat16mf4_t vfsgnj(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16mf4_m)))
-vfloat16mf4_t vfsgnj(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16m1)))
-vfloat16m1_t vfsgnj(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16m1_m)))
-vfloat16m1_t vfsgnj(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16m2)))
-vfloat16m2_t vfsgnj(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16m2_m)))
-vfloat16m2_t vfsgnj(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16m4)))
-vfloat16m4_t vfsgnj(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16m4_m)))
-vfloat16m4_t vfsgnj(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16m8)))
-vfloat16m8_t vfsgnj(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16m8_m)))
-vfloat16m8_t vfsgnj(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16mf2)))
-vfloat16mf2_t vfsgnj(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16mf2_m)))
-vfloat16mf2_t vfsgnj(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16mf4)))
-vfloat16mf4_t vfsgnj(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16mf4_m)))
-vfloat16mf4_t vfsgnj(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16m1)))
-vfloat16m1_t vfsgnjn(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16m1_m)))
-vfloat16m1_t vfsgnjn(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16m2)))
-vfloat16m2_t vfsgnjn(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16m2_m)))
-vfloat16m2_t vfsgnjn(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16m4)))
-vfloat16m4_t vfsgnjn(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16m4_m)))
-vfloat16m4_t vfsgnjn(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16m8)))
-vfloat16m8_t vfsgnjn(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16m8_m)))
-vfloat16m8_t vfsgnjn(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16mf2)))
-vfloat16mf2_t vfsgnjn(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16mf2_m)))
-vfloat16mf2_t vfsgnjn(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16mf4)))
-vfloat16mf4_t vfsgnjn(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16mf4_m)))
-vfloat16mf4_t vfsgnjn(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16m1)))
-vfloat16m1_t vfsgnjn(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16m1_m)))
-vfloat16m1_t vfsgnjn(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16m2)))
-vfloat16m2_t vfsgnjn(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16m2_m)))
-vfloat16m2_t vfsgnjn(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16m4)))
-vfloat16m4_t vfsgnjn(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16m4_m)))
-vfloat16m4_t vfsgnjn(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16m8)))
-vfloat16m8_t vfsgnjn(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16m8_m)))
-vfloat16m8_t vfsgnjn(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16mf2)))
-vfloat16mf2_t vfsgnjn(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16mf2_m)))
-vfloat16mf2_t vfsgnjn(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16mf4)))
-vfloat16mf4_t vfsgnjn(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16mf4_m)))
-vfloat16mf4_t vfsgnjn(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16m1)))
-vfloat16m1_t vfsgnjx(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16m1_m)))
-vfloat16m1_t vfsgnjx(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16m2)))
-vfloat16m2_t vfsgnjx(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16m2_m)))
-vfloat16m2_t vfsgnjx(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16m4)))
-vfloat16m4_t vfsgnjx(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16m4_m)))
-vfloat16m4_t vfsgnjx(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16m8)))
-vfloat16m8_t vfsgnjx(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16m8_m)))
-vfloat16m8_t vfsgnjx(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16mf2)))
-vfloat16mf2_t vfsgnjx(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16mf2_m)))
-vfloat16mf2_t vfsgnjx(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16mf4)))
-vfloat16mf4_t vfsgnjx(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16mf4_m)))
-vfloat16mf4_t vfsgnjx(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16m1)))
-vfloat16m1_t vfsgnjx(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16m1_m)))
-vfloat16m1_t vfsgnjx(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16m2)))
-vfloat16m2_t vfsgnjx(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16m2_m)))
-vfloat16m2_t vfsgnjx(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16m4)))
-vfloat16m4_t vfsgnjx(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16m4_m)))
-vfloat16m4_t vfsgnjx(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16m8)))
-vfloat16m8_t vfsgnjx(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16m8_m)))
-vfloat16m8_t vfsgnjx(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16mf2)))
-vfloat16mf2_t vfsgnjx(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16mf2_m)))
-vfloat16mf2_t vfsgnjx(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16mf4)))
-vfloat16mf4_t vfsgnjx(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16mf4_m)))
-vfloat16mf4_t vfsgnjx(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16m1)))
-vfloat16m1_t vfabs(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16m1_m)))
-vfloat16m1_t vfabs(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16m2)))
-vfloat16m2_t vfabs(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16m2_m)))
-vfloat16m2_t vfabs(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16m4)))
-vfloat16m4_t vfabs(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16m4_m)))
-vfloat16m4_t vfabs(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16m8)))
-vfloat16m8_t vfabs(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16m8_m)))
-vfloat16m8_t vfabs(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16mf2)))
-vfloat16mf2_t vfabs(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16mf2_m)))
-vfloat16mf2_t vfabs(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16mf4)))
-vfloat16mf4_t vfabs(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16mf4_m)))
-vfloat16mf4_t vfabs(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16m1_b16)))
-vbool16_t vmfeq(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16m1_b16_m)))
-vbool16_t vmfeq(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16m2_b8)))
-vbool8_t vmfeq(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16m2_b8_m)))
-vbool8_t vmfeq(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16m4_b4)))
-vbool4_t vmfeq(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16m4_b4_m)))
-vbool4_t vmfeq(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16m8_b2)))
-vbool2_t vmfeq(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16m8_b2_m)))
-vbool2_t vmfeq(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16mf2_b32)))
-vbool32_t vmfeq(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16mf2_b32_m)))
-vbool32_t vmfeq(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16mf4_b64)))
-vbool64_t vmfeq(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16mf4_b64_m)))
-vbool64_t vmfeq(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16m1_b16)))
-vbool16_t vmfeq(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16m1_b16_m)))
-vbool16_t vmfeq(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16m2_b8)))
-vbool8_t vmfeq(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16m2_b8_m)))
-vbool8_t vmfeq(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16m4_b4)))
-vbool4_t vmfeq(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16m4_b4_m)))
-vbool4_t vmfeq(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16m8_b2)))
-vbool2_t vmfeq(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16m8_b2_m)))
-vbool2_t vmfeq(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16mf2_b32)))
-vbool32_t vmfeq(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16mf2_b32_m)))
-vbool32_t vmfeq(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16mf4_b64)))
-vbool64_t vmfeq(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16mf4_b64_m)))
-vbool64_t vmfeq(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16m1_b16)))
-vbool16_t vmfne(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16m1_b16_m)))
-vbool16_t vmfne(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16m2_b8)))
-vbool8_t vmfne(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16m2_b8_m)))
-vbool8_t vmfne(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16m4_b4)))
-vbool4_t vmfne(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16m4_b4_m)))
-vbool4_t vmfne(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16m8_b2)))
-vbool2_t vmfne(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16m8_b2_m)))
-vbool2_t vmfne(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16mf2_b32)))
-vbool32_t vmfne(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16mf2_b32_m)))
-vbool32_t vmfne(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16mf4_b64)))
-vbool64_t vmfne(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16mf4_b64_m)))
-vbool64_t vmfne(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16m1_b16)))
-vbool16_t vmfne(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16m1_b16_m)))
-vbool16_t vmfne(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16m2_b8)))
-vbool8_t vmfne(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16m2_b8_m)))
-vbool8_t vmfne(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16m4_b4)))
-vbool4_t vmfne(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16m4_b4_m)))
-vbool4_t vmfne(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16m8_b2)))
-vbool2_t vmfne(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16m8_b2_m)))
-vbool2_t vmfne(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16mf2_b32)))
-vbool32_t vmfne(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16mf2_b32_m)))
-vbool32_t vmfne(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16mf4_b64)))
-vbool64_t vmfne(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16mf4_b64_m)))
-vbool64_t vmfne(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16m1_b16)))
-vbool16_t vmflt(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16m1_b16_m)))
-vbool16_t vmflt(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16m2_b8)))
-vbool8_t vmflt(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16m2_b8_m)))
-vbool8_t vmflt(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16m4_b4)))
-vbool4_t vmflt(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16m4_b4_m)))
-vbool4_t vmflt(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16m8_b2)))
-vbool2_t vmflt(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16m8_b2_m)))
-vbool2_t vmflt(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16mf2_b32)))
-vbool32_t vmflt(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16mf2_b32_m)))
-vbool32_t vmflt(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16mf4_b64)))
-vbool64_t vmflt(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16mf4_b64_m)))
-vbool64_t vmflt(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16m1_b16)))
-vbool16_t vmflt(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16m1_b16_m)))
-vbool16_t vmflt(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16m2_b8)))
-vbool8_t vmflt(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16m2_b8_m)))
-vbool8_t vmflt(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16m4_b4)))
-vbool4_t vmflt(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16m4_b4_m)))
-vbool4_t vmflt(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16m8_b2)))
-vbool2_t vmflt(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16m8_b2_m)))
-vbool2_t vmflt(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16mf2_b32)))
-vbool32_t vmflt(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16mf2_b32_m)))
-vbool32_t vmflt(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16mf4_b64)))
-vbool64_t vmflt(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16mf4_b64_m)))
-vbool64_t vmflt(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16m1_b16)))
-vbool16_t vmfle(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16m1_b16_m)))
-vbool16_t vmfle(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16m2_b8)))
-vbool8_t vmfle(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16m2_b8_m)))
-vbool8_t vmfle(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16m4_b4)))
-vbool4_t vmfle(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16m4_b4_m)))
-vbool4_t vmfle(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16m8_b2)))
-vbool2_t vmfle(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16m8_b2_m)))
-vbool2_t vmfle(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16mf2_b32)))
-vbool32_t vmfle(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16mf2_b32_m)))
-vbool32_t vmfle(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16mf4_b64)))
-vbool64_t vmfle(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16mf4_b64_m)))
-vbool64_t vmfle(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16m1_b16)))
-vbool16_t vmfle(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16m1_b16_m)))
-vbool16_t vmfle(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16m2_b8)))
-vbool8_t vmfle(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16m2_b8_m)))
-vbool8_t vmfle(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16m4_b4)))
-vbool4_t vmfle(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16m4_b4_m)))
-vbool4_t vmfle(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16m8_b2)))
-vbool2_t vmfle(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16m8_b2_m)))
-vbool2_t vmfle(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16mf2_b32)))
-vbool32_t vmfle(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16mf2_b32_m)))
-vbool32_t vmfle(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16mf4_b64)))
-vbool64_t vmfle(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16mf4_b64_m)))
-vbool64_t vmfle(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16m1_b16)))
-vbool16_t vmfgt(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16m1_b16_m)))
-vbool16_t vmfgt(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16m2_b8)))
-vbool8_t vmfgt(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16m2_b8_m)))
-vbool8_t vmfgt(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16m4_b4)))
-vbool4_t vmfgt(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16m4_b4_m)))
-vbool4_t vmfgt(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16m8_b2)))
-vbool2_t vmfgt(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16m8_b2_m)))
-vbool2_t vmfgt(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16mf2_b32)))
-vbool32_t vmfgt(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16mf2_b32_m)))
-vbool32_t vmfgt(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16mf4_b64)))
-vbool64_t vmfgt(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16mf4_b64_m)))
-vbool64_t vmfgt(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16m1_b16)))
-vbool16_t vmfgt(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16m1_b16_m)))
-vbool16_t vmfgt(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16m2_b8)))
-vbool8_t vmfgt(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16m2_b8_m)))
-vbool8_t vmfgt(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16m4_b4)))
-vbool4_t vmfgt(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16m4_b4_m)))
-vbool4_t vmfgt(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16m8_b2)))
-vbool2_t vmfgt(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16m8_b2_m)))
-vbool2_t vmfgt(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16mf2_b32)))
-vbool32_t vmfgt(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16mf2_b32_m)))
-vbool32_t vmfgt(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16mf4_b64)))
-vbool64_t vmfgt(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16mf4_b64_m)))
-vbool64_t vmfgt(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16m1_b16)))
-vbool16_t vmfge(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16m1_b16_m)))
-vbool16_t vmfge(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16m2_b8)))
-vbool8_t vmfge(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16m2_b8_m)))
-vbool8_t vmfge(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16m4_b4)))
-vbool4_t vmfge(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16m4_b4_m)))
-vbool4_t vmfge(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16m8_b2)))
-vbool2_t vmfge(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16m8_b2_m)))
-vbool2_t vmfge(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16mf2_b32)))
-vbool32_t vmfge(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16mf2_b32_m)))
-vbool32_t vmfge(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16mf4_b64)))
-vbool64_t vmfge(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16mf4_b64_m)))
-vbool64_t vmfge(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16m1_b16)))
-vbool16_t vmfge(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16m1_b16_m)))
-vbool16_t vmfge(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16m2_b8)))
-vbool8_t vmfge(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16m2_b8_m)))
-vbool8_t vmfge(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16m4_b4)))
-vbool4_t vmfge(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16m4_b4_m)))
-vbool4_t vmfge(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16m8_b2)))
-vbool2_t vmfge(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16m8_b2_m)))
-vbool2_t vmfge(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16mf2_b32)))
-vbool32_t vmfge(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16mf2_b32_m)))
-vbool32_t vmfge(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16mf4_b64)))
-vbool64_t vmfge(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16mf4_b64_m)))
-vbool64_t vmfge(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f16m1)))
-vfloat16m1_t vmerge(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f16m2)))
-vfloat16m2_t vmerge(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f16m4)))
-vfloat16m4_t vmerge(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f16m8)))
-vfloat16m8_t vmerge(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f16mf2)))
-vfloat16mf2_t vmerge(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f16mf4)))
-vfloat16mf4_t vmerge(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f16m1)))
-vfloat16m1_t vfmerge(vbool16_t op0, vfloat16m1_t op1, _Float16 op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f16m2)))
-vfloat16m2_t vfmerge(vbool8_t op0, vfloat16m2_t op1, _Float16 op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f16m4)))
-vfloat16m4_t vfmerge(vbool4_t op0, vfloat16m4_t op1, _Float16 op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f16m8)))
-vfloat16m8_t vfmerge(vbool2_t op0, vfloat16m8_t op1, _Float16 op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f16mf2)))
-vfloat16mf2_t vfmerge(vbool32_t op0, vfloat16mf2_t op1, _Float16 op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f16mf4)))
-vfloat16mf4_t vfmerge(vbool64_t op0, vfloat16mf4_t op1, _Float16 op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16m1_f16m1)))
-vfloat16m1_t vfredmax(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16m1_f16m1_m)))
-vfloat16m1_t vfredmax(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16m2_f16m1)))
-vfloat16m1_t vfredmax(vfloat16m1_t op0, vfloat16m2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16m2_f16m1_m)))
-vfloat16m1_t vfredmax(vbool8_t op0, vfloat16m1_t op1, vfloat16m2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16m4_f16m1)))
-vfloat16m1_t vfredmax(vfloat16m1_t op0, vfloat16m4_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16m4_f16m1_m)))
-vfloat16m1_t vfredmax(vbool4_t op0, vfloat16m1_t op1, vfloat16m4_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16m8_f16m1)))
-vfloat16m1_t vfredmax(vfloat16m1_t op0, vfloat16m8_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16m8_f16m1_m)))
-vfloat16m1_t vfredmax(vbool2_t op0, vfloat16m1_t op1, vfloat16m8_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16mf2_f16m1)))
-vfloat16m1_t vfredmax(vfloat16m1_t op0, vfloat16mf2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16mf2_f16m1_m)))
-vfloat16m1_t vfredmax(vbool32_t op0, vfloat16m1_t op1, vfloat16mf2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16mf4_f16m1)))
-vfloat16m1_t vfredmax(vfloat16m1_t op0, vfloat16mf4_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16mf4_f16m1_m)))
-vfloat16m1_t vfredmax(vbool64_t op0, vfloat16m1_t op1, vfloat16mf4_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16m1_f16m1)))
-vfloat16m1_t vfredmin(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16m1_f16m1_m)))
-vfloat16m1_t vfredmin(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16m2_f16m1)))
-vfloat16m1_t vfredmin(vfloat16m1_t op0, vfloat16m2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16m2_f16m1_m)))
-vfloat16m1_t vfredmin(vbool8_t op0, vfloat16m1_t op1, vfloat16m2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16m4_f16m1)))
-vfloat16m1_t vfredmin(vfloat16m1_t op0, vfloat16m4_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16m4_f16m1_m)))
-vfloat16m1_t vfredmin(vbool4_t op0, vfloat16m1_t op1, vfloat16m4_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16m8_f16m1)))
-vfloat16m1_t vfredmin(vfloat16m1_t op0, vfloat16m8_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16m8_f16m1_m)))
-vfloat16m1_t vfredmin(vbool2_t op0, vfloat16m1_t op1, vfloat16m8_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16mf2_f16m1)))
-vfloat16m1_t vfredmin(vfloat16m1_t op0, vfloat16mf2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16mf2_f16m1_m)))
-vfloat16m1_t vfredmin(vbool32_t op0, vfloat16m1_t op1, vfloat16mf2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16mf4_f16m1)))
-vfloat16m1_t vfredmin(vfloat16m1_t op0, vfloat16mf4_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16mf4_f16m1_m)))
-vfloat16m1_t vfredmin(vbool64_t op0, vfloat16m1_t op1, vfloat16mf4_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16m1_f16m1)))
-vfloat16m1_t vfredsum(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16m1_f16m1_m)))
-vfloat16m1_t vfredsum(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16m2_f16m1)))
-vfloat16m1_t vfredsum(vfloat16m1_t op0, vfloat16m2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16m2_f16m1_m)))
-vfloat16m1_t vfredsum(vbool8_t op0, vfloat16m1_t op1, vfloat16m2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16m4_f16m1)))
-vfloat16m1_t vfredsum(vfloat16m1_t op0, vfloat16m4_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16m4_f16m1_m)))
-vfloat16m1_t vfredsum(vbool4_t op0, vfloat16m1_t op1, vfloat16m4_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16m8_f16m1)))
-vfloat16m1_t vfredsum(vfloat16m1_t op0, vfloat16m8_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16m8_f16m1_m)))
-vfloat16m1_t vfredsum(vbool2_t op0, vfloat16m1_t op1, vfloat16m8_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16mf2_f16m1)))
-vfloat16m1_t vfredsum(vfloat16m1_t op0, vfloat16mf2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16mf2_f16m1_m)))
-vfloat16m1_t vfredsum(vbool32_t op0, vfloat16m1_t op1, vfloat16mf2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16mf4_f16m1)))
-vfloat16m1_t vfredsum(vfloat16m1_t op0, vfloat16mf4_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16mf4_f16m1_m)))
-vfloat16m1_t vfredsum(vbool64_t op0, vfloat16m1_t op1, vfloat16mf4_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16m1_f16m1)))
-vfloat16m1_t vfredosum(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16m1_f16m1_m)))
-vfloat16m1_t vfredosum(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16m2_f16m1)))
-vfloat16m1_t vfredosum(vfloat16m1_t op0, vfloat16m2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16m2_f16m1_m)))
-vfloat16m1_t vfredosum(vbool8_t op0, vfloat16m1_t op1, vfloat16m2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16m4_f16m1)))
-vfloat16m1_t vfredosum(vfloat16m1_t op0, vfloat16m4_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16m4_f16m1_m)))
-vfloat16m1_t vfredosum(vbool4_t op0, vfloat16m1_t op1, vfloat16m4_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16m8_f16m1)))
-vfloat16m1_t vfredosum(vfloat16m1_t op0, vfloat16m8_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16m8_f16m1_m)))
-vfloat16m1_t vfredosum(vbool2_t op0, vfloat16m1_t op1, vfloat16m8_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16mf2_f16m1)))
-vfloat16m1_t vfredosum(vfloat16m1_t op0, vfloat16mf2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16mf2_f16m1_m)))
-vfloat16m1_t vfredosum(vbool32_t op0, vfloat16m1_t op1, vfloat16mf2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16mf4_f16m1)))
-vfloat16m1_t vfredosum(vfloat16m1_t op0, vfloat16mf4_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16mf4_f16m1_m)))
-vfloat16m1_t vfredosum(vbool64_t op0, vfloat16m1_t op1, vfloat16mf4_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16m1)))
-void vsuxei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16m1_m)))
-void vsuxei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16m2)))
-void vsuxei8(_Float16 * op0, vuint8m1_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16m2_m)))
-void vsuxei8(vbool8_t op0, _Float16 * op1, vuint8m1_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16m4)))
-void vsuxei8(_Float16 * op0, vuint8m2_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16m4_m)))
-void vsuxei8(vbool4_t op0, _Float16 * op1, vuint8m2_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16m8)))
-void vsuxei8(_Float16 * op0, vuint8m4_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16m8_m)))
-void vsuxei8(vbool2_t op0, _Float16 * op1, vuint8m4_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16mf2)))
-void vsuxei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16mf2_m)))
-void vsuxei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16mf4)))
-void vsuxei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16mf4_m)))
-void vsuxei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16m1)))
-void vsuxei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16m1_m)))
-void vsuxei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16m2)))
-void vsuxei16(_Float16 * op0, vuint16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16m2_m)))
-void vsuxei16(vbool8_t op0, _Float16 * op1, vuint16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16m4)))
-void vsuxei16(_Float16 * op0, vuint16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16m4_m)))
-void vsuxei16(vbool4_t op0, _Float16 * op1, vuint16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16m8)))
-void vsuxei16(_Float16 * op0, vuint16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16m8_m)))
-void vsuxei16(vbool2_t op0, _Float16 * op1, vuint16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16mf2)))
-void vsuxei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16mf2_m)))
-void vsuxei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16mf4)))
-void vsuxei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16mf4_m)))
-void vsuxei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f16m1_f16)))
-_Float16 vfmv_f(vfloat16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f16m2_f16)))
-_Float16 vfmv_f(vfloat16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f16m4_f16)))
-_Float16 vfmv_f(vfloat16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f16m8_f16)))
-_Float16 vfmv_f(vfloat16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f16mf2_f16)))
-_Float16 vfmv_f(vfloat16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f16mf4_f16)))
-_Float16 vfmv_f(vfloat16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f16m1)))
-vfloat16m1_t vfmv_s(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f16m2)))
-vfloat16m2_t vfmv_s(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f16m4)))
-vfloat16m4_t vfmv_s(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f16m8)))
-vfloat16m8_t vfmv_s(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f16mf2)))
-vfloat16mf2_t vfmv_s(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f16mf4)))
-vfloat16mf4_t vfmv_s(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16m1)))
-vfloat16m1_t vslideup(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16m1_m)))
-vfloat16m1_t vslideup(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16m2)))
-vfloat16m2_t vslideup(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16m2_m)))
-vfloat16m2_t vslideup(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16m4)))
-vfloat16m4_t vslideup(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16m4_m)))
-vfloat16m4_t vslideup(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16m8)))
-vfloat16m8_t vslideup(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16m8_m)))
-vfloat16m8_t vslideup(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16mf2)))
-vfloat16mf2_t vslideup(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16mf2_m)))
-vfloat16mf2_t vslideup(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16mf4)))
-vfloat16mf4_t vslideup(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16mf4_m)))
-vfloat16mf4_t vslideup(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16m1)))
-vfloat16m1_t vslidedown(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16m1_m)))
-vfloat16m1_t vslidedown(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16m2)))
-vfloat16m2_t vslidedown(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16m2_m)))
-vfloat16m2_t vslidedown(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16m4)))
-vfloat16m4_t vslidedown(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16m4_m)))
-vfloat16m4_t vslidedown(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16m8)))
-vfloat16m8_t vslidedown(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16m8_m)))
-vfloat16m8_t vslidedown(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16mf2)))
-vfloat16mf2_t vslidedown(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16mf2_m)))
-vfloat16mf2_t vslidedown(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16mf4)))
-vfloat16mf4_t vslidedown(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16mf4_m)))
-vfloat16mf4_t vslidedown(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16m1)))
-vfloat16m1_t vfslide1up(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16m1_m)))
-vfloat16m1_t vfslide1up(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16m2)))
-vfloat16m2_t vfslide1up(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16m2_m)))
-vfloat16m2_t vfslide1up(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16m4)))
-vfloat16m4_t vfslide1up(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16m4_m)))
-vfloat16m4_t vfslide1up(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16m8)))
-vfloat16m8_t vfslide1up(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16m8_m)))
-vfloat16m8_t vfslide1up(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16mf2)))
-vfloat16mf2_t vfslide1up(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16mf2_m)))
-vfloat16mf2_t vfslide1up(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16mf4)))
-vfloat16mf4_t vfslide1up(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16mf4_m)))
-vfloat16mf4_t vfslide1up(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f16m1)))
-void vsuxei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f16m1_m)))
-void vsuxei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f16m2)))
-void vsuxei32(_Float16 * op0, vuint32m4_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f16m2_m)))
-void vsuxei32(vbool8_t op0, _Float16 * op1, vuint32m4_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f16m4)))
-void vsuxei32(_Float16 * op0, vuint32m8_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f16m4_m)))
-void vsuxei32(vbool4_t op0, _Float16 * op1, vuint32m8_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f16mf2)))
-void vsuxei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f16mf2_m)))
-void vsuxei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f16mf4)))
-void vsuxei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f16mf4_m)))
-void vsuxei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16m1)))
-vfloat16m1_t vfslide1down(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16m1_m)))
-vfloat16m1_t vfslide1down(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16m2)))
-vfloat16m2_t vfslide1down(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16m2_m)))
-vfloat16m2_t vfslide1down(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16m4)))
-vfloat16m4_t vfslide1down(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16m4_m)))
-vfloat16m4_t vfslide1down(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16m8)))
-vfloat16m8_t vfslide1down(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16m8_m)))
-vfloat16m8_t vfslide1down(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16mf2)))
-vfloat16mf2_t vfslide1down(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16mf2_m)))
-vfloat16mf2_t vfslide1down(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16mf4)))
-vfloat16mf4_t vfslide1down(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16mf4_m)))
-vfloat16mf4_t vfslide1down(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16m1)))
-vfloat16m1_t vrgather(vfloat16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16m1_m)))
-vfloat16m1_t vrgather(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16m2)))
-vfloat16m2_t vrgather(vfloat16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16m2_m)))
-vfloat16m2_t vrgather(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16m4)))
-vfloat16m4_t vrgather(vfloat16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16m4_m)))
-vfloat16m4_t vrgather(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16m8)))
-vfloat16m8_t vrgather(vfloat16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16m8_m)))
-vfloat16m8_t vrgather(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16mf2)))
-vfloat16mf2_t vrgather(vfloat16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16mf2_m)))
-vfloat16mf2_t vrgather(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16mf4)))
-vfloat16mf4_t vrgather(vfloat16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16mf4_m)))
-vfloat16mf4_t vrgather(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16m1)))
-vfloat16m1_t vrgather(vfloat16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16m1_m)))
-vfloat16m1_t vrgather(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16m2)))
-vfloat16m2_t vrgather(vfloat16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16m2_m)))
-vfloat16m2_t vrgather(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16m4)))
-vfloat16m4_t vrgather(vfloat16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16m4_m)))
-vfloat16m4_t vrgather(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16m8)))
-vfloat16m8_t vrgather(vfloat16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16m8_m)))
-vfloat16m8_t vrgather(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16mf2)))
-vfloat16mf2_t vrgather(vfloat16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16mf2_m)))
-vfloat16mf2_t vrgather(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16mf4)))
-vfloat16mf4_t vrgather(vfloat16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16mf4_m)))
-vfloat16mf4_t vrgather(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16m1)))
-vfloat16m1_t vrgatherei16(vfloat16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16m1_m)))
-vfloat16m1_t vrgatherei16(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16m2)))
-vfloat16m2_t vrgatherei16(vfloat16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16m2_m)))
-vfloat16m2_t vrgatherei16(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16m4)))
-vfloat16m4_t vrgatherei16(vfloat16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16m4_m)))
-vfloat16m4_t vrgatherei16(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16m8)))
-vfloat16m8_t vrgatherei16(vfloat16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16m8_m)))
-vfloat16m8_t vrgatherei16(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16mf2)))
-vfloat16mf2_t vrgatherei16(vfloat16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16mf2_m)))
-vfloat16mf2_t vrgatherei16(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16mf4)))
-vfloat16mf4_t vrgatherei16(vfloat16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16mf4_m)))
-vfloat16mf4_t vrgatherei16(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f16m1)))
-vfloat16m1_t vcompress(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f16m2)))
-vfloat16m2_t vcompress(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f16m4)))
-vfloat16m4_t vcompress(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f16m8)))
-vfloat16m8_t vcompress(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f16mf2)))
-vfloat16mf2_t vcompress(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f16mf4)))
-vfloat16mf4_t vcompress(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f16m1)))
-void vsuxei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f16m1_m)))
-void vsuxei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f16m2)))
-void vsuxei64(_Float16 * op0, vuint64m8_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f16m2_m)))
-void vsuxei64(vbool8_t op0, _Float16 * op1, vuint64m8_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f16mf2)))
-void vsuxei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f16mf2_m)))
-void vsuxei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f16mf4)))
-void vsuxei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f16mf4_m)))
-void vsuxei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f16m2_f16m1)))
-vfloat16m1_t vget_f16m1(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f16m4_f16m1)))
-vfloat16m1_t vget_f16m1(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f16m8_f16m1)))
-vfloat16m1_t vget_f16m1(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f16m4_f16m2)))
-vfloat16m2_t vget_f16m2(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f16m8_f16m2)))
-vfloat16m2_t vget_f16m2(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f16m8_f16m4)))
-vfloat16m4_t vget_f16m4(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f16m1_f16m2)))
-vfloat16m2_t vset(vfloat16m2_t op0, size_t op1, vfloat16m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f16m1_f16m4)))
-vfloat16m4_t vset(vfloat16m4_t op0, size_t op1, vfloat16m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f16m2_f16m4)))
-vfloat16m4_t vset(vfloat16m4_t op0, size_t op1, vfloat16m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f16m1_f16m8)))
-vfloat16m8_t vset(vfloat16m8_t op0, size_t op1, vfloat16m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f16m2_f16m8)))
-vfloat16m8_t vset(vfloat16m8_t op0, size_t op1, vfloat16m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f16m4_f16m8)))
-vfloat16m8_t vset(vfloat16m8_t op0, size_t op1, vfloat16m4_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16m1)))
-void vsoxei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16m1_m)))
-void vsoxei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16m2)))
-void vsoxei8(_Float16 * op0, vuint8m1_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16m2_m)))
-void vsoxei8(vbool8_t op0, _Float16 * op1, vuint8m1_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16m4)))
-void vsoxei8(_Float16 * op0, vuint8m2_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16m4_m)))
-void vsoxei8(vbool4_t op0, _Float16 * op1, vuint8m2_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16m8)))
-void vsoxei8(_Float16 * op0, vuint8m4_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16m8_m)))
-void vsoxei8(vbool2_t op0, _Float16 * op1, vuint8m4_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16mf2)))
-void vsoxei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16mf2_m)))
-void vsoxei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16mf4)))
-void vsoxei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16mf4_m)))
-void vsoxei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16m1)))
-void vsoxei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16m1_m)))
-void vsoxei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16m2)))
-void vsoxei16(_Float16 * op0, vuint16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16m2_m)))
-void vsoxei16(vbool8_t op0, _Float16 * op1, vuint16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16m4)))
-void vsoxei16(_Float16 * op0, vuint16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16m4_m)))
-void vsoxei16(vbool4_t op0, _Float16 * op1, vuint16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16m8)))
-void vsoxei16(_Float16 * op0, vuint16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16m8_m)))
-void vsoxei16(vbool2_t op0, _Float16 * op1, vuint16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16mf2)))
-void vsoxei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16mf2_m)))
-void vsoxei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16mf4)))
-void vsoxei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16mf4_m)))
-void vsoxei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f16m1)))
-void vsoxei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f16m1_m)))
-void vsoxei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f16m2)))
-void vsoxei32(_Float16 * op0, vuint32m4_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f16m2_m)))
-void vsoxei32(vbool8_t op0, _Float16 * op1, vuint32m4_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f16m4)))
-void vsoxei32(_Float16 * op0, vuint32m8_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f16m4_m)))
-void vsoxei32(vbool4_t op0, _Float16 * op1, vuint32m8_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f16mf2)))
-void vsoxei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f16mf2_m)))
-void vsoxei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f16mf4)))
-void vsoxei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f16mf4_m)))
-void vsoxei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f16m1)))
-void vsoxei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f16m1_m)))
-void vsoxei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f16m2)))
-void vsoxei64(_Float16 * op0, vuint64m8_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f16m2_m)))
-void vsoxei64(vbool8_t op0, _Float16 * op1, vuint64m8_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f16mf2)))
-void vsoxei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f16mf2_m)))
-void vsoxei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f16mf4)))
-void vsoxei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f16mf4_m)))
-void vsoxei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_f16m1_m)))
-vfloat16m1_t vle16ff(vbool16_t op0, vfloat16m1_t op1, const _Float16 * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_f16m2_m)))
-vfloat16m2_t vle16ff(vbool8_t op0, vfloat16m2_t op1, const _Float16 * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_f16m4_m)))
-vfloat16m4_t vle16ff(vbool4_t op0, vfloat16m4_t op1, const _Float16 * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_f16m8_m)))
-vfloat16m8_t vle16ff(vbool2_t op0, vfloat16m8_t op1, const _Float16 * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_f16mf2_m)))
-vfloat16mf2_t vle16ff(vbool32_t op0, vfloat16mf2_t op1, const _Float16 * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_f16mf4_m)))
-vfloat16mf4_t vle16ff(vbool64_t op0, vfloat16mf4_t op1, const _Float16 * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16m1)))
-vfloat16m1_t vfneg(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16m1_m)))
-vfloat16m1_t vfneg(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16m2)))
-vfloat16m2_t vfneg(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16m2_m)))
-vfloat16m2_t vfneg(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16m4)))
-vfloat16m4_t vfneg(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16m4_m)))
-vfloat16m4_t vfneg(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16m8)))
-vfloat16m8_t vfneg(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16m8_m)))
-vfloat16m8_t vfneg(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16mf2)))
-vfloat16mf2_t vfneg(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16mf2_m)))
-vfloat16mf2_t vfneg(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16mf4)))
-vfloat16mf4_t vfneg(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16mf4_m)))
-vfloat16mf4_t vfneg(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_f16m1_m)))
-vfloat16m1_t vle16(vbool16_t op0, vfloat16m1_t op1, const _Float16 * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_f16m2_m)))
-vfloat16m2_t vle16(vbool8_t op0, vfloat16m2_t op1, const _Float16 * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_f16m4_m)))
-vfloat16m4_t vle16(vbool4_t op0, vfloat16m4_t op1, const _Float16 * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_f16m8_m)))
-vfloat16m8_t vle16(vbool2_t op0, vfloat16m8_t op1, const _Float16 * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_f16mf2_m)))
-vfloat16mf2_t vle16(vbool32_t op0, vfloat16mf2_t op1, const _Float16 * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_f16mf4_m)))
-vfloat16mf4_t vle16(vbool64_t op0, vfloat16mf4_t op1, const _Float16 * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16m1)))
-void vse16(_Float16 * op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16m1_m)))
-void vse16(vbool16_t op0, _Float16 * op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16m2)))
-void vse16(_Float16 * op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16m2_m)))
-void vse16(vbool8_t op0, _Float16 * op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16m4)))
-void vse16(_Float16 * op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16m4_m)))
-void vse16(vbool4_t op0, _Float16 * op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16m8)))
-void vse16(_Float16 * op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16m8_m)))
-void vse16(vbool2_t op0, _Float16 * op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16mf2)))
-void vse16(_Float16 * op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16mf2_m)))
-void vse16(vbool32_t op0, _Float16 * op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16mf4)))
-void vse16(_Float16 * op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16mf4_m)))
-void vse16(vbool64_t op0, _Float16 * op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_f16m1_m)))
-vfloat16m1_t vlse16(vbool16_t op0, vfloat16m1_t op1, const _Float16 * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_f16m2_m)))
-vfloat16m2_t vlse16(vbool8_t op0, vfloat16m2_t op1, const _Float16 * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_f16m4_m)))
-vfloat16m4_t vlse16(vbool4_t op0, vfloat16m4_t op1, const _Float16 * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_f16m8_m)))
-vfloat16m8_t vlse16(vbool2_t op0, vfloat16m8_t op1, const _Float16 * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_f16mf2_m)))
-vfloat16mf2_t vlse16(vbool32_t op0, vfloat16mf2_t op1, const _Float16 * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_f16mf4_m)))
-vfloat16mf4_t vlse16(vbool64_t op0, vfloat16mf4_t op1, const _Float16 * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16m1)))
-vuint16m1_t vfclass(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16m1_m)))
-vuint16m1_t vfclass(vbool16_t op0, vuint16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16m2)))
-vuint16m2_t vfclass(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16m2_m)))
-vuint16m2_t vfclass(vbool8_t op0, vuint16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16m4)))
-vuint16m4_t vfclass(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16m4_m)))
-vuint16m4_t vfclass(vbool4_t op0, vuint16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16m8)))
-vuint16m8_t vfclass(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16m8_m)))
-vuint16m8_t vfclass(vbool2_t op0, vuint16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16mf2)))
-vuint16mf2_t vfclass(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16mf2_m)))
-vuint16mf2_t vfclass(vbool32_t op0, vuint16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16mf4)))
-vuint16mf4_t vfclass(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16mf4_m)))
-vuint16mf4_t vfclass(vbool64_t op0, vuint16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16m1)))
-vfloat16m1_t vfcvt_f(vint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16m1_m)))
-vfloat16m1_t vfcvt_f(vbool16_t op0, vfloat16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16m2)))
-vfloat16m2_t vfcvt_f(vint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16m2_m)))
-vfloat16m2_t vfcvt_f(vbool8_t op0, vfloat16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16m4)))
-vfloat16m4_t vfcvt_f(vint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16m4_m)))
-vfloat16m4_t vfcvt_f(vbool4_t op0, vfloat16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16m8)))
-vfloat16m8_t vfcvt_f(vint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16m8_m)))
-vfloat16m8_t vfcvt_f(vbool2_t op0, vfloat16m8_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16mf2)))
-vfloat16mf2_t vfcvt_f(vint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16mf2_m)))
-vfloat16mf2_t vfcvt_f(vbool32_t op0, vfloat16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16mf4)))
-vfloat16mf4_t vfcvt_f(vint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16mf4_m)))
-vfloat16mf4_t vfcvt_f(vbool64_t op0, vfloat16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16m1)))
-vfloat16m1_t vfcvt_f(vuint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16m1_m)))
-vfloat16m1_t vfcvt_f(vbool16_t op0, vfloat16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16m2)))
-vfloat16m2_t vfcvt_f(vuint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16m2_m)))
-vfloat16m2_t vfcvt_f(vbool8_t op0, vfloat16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16m4)))
-vfloat16m4_t vfcvt_f(vuint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16m4_m)))
-vfloat16m4_t vfcvt_f(vbool4_t op0, vfloat16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16m8)))
-vfloat16m8_t vfcvt_f(vuint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16m8_m)))
-vfloat16m8_t vfcvt_f(vbool2_t op0, vfloat16m8_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16mf2)))
-vfloat16mf2_t vfcvt_f(vuint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16mf2_m)))
-vfloat16mf2_t vfcvt_f(vbool32_t op0, vfloat16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16mf4)))
-vfloat16mf4_t vfcvt_f(vuint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16mf4_m)))
-vfloat16mf4_t vfcvt_f(vbool64_t op0, vfloat16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16m1)))
-vint16m1_t vfcvt_rtz_x(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16m1_m)))
-vint16m1_t vfcvt_rtz_x(vbool16_t op0, vint16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16m2)))
-vint16m2_t vfcvt_rtz_x(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16m2_m)))
-vint16m2_t vfcvt_rtz_x(vbool8_t op0, vint16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16m4)))
-vint16m4_t vfcvt_rtz_x(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16m4_m)))
-vint16m4_t vfcvt_rtz_x(vbool4_t op0, vint16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16m8)))
-vint16m8_t vfcvt_rtz_x(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16m8_m)))
-vint16m8_t vfcvt_rtz_x(vbool2_t op0, vint16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16mf2)))
-vint16mf2_t vfcvt_rtz_x(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16mf2_m)))
-vint16mf2_t vfcvt_rtz_x(vbool32_t op0, vint16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16mf4)))
-vint16mf4_t vfcvt_rtz_x(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16mf4_m)))
-vint16mf4_t vfcvt_rtz_x(vbool64_t op0, vint16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16m1)))
-vuint16m1_t vfcvt_rtz_xu(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16m1_m)))
-vuint16m1_t vfcvt_rtz_xu(vbool16_t op0, vuint16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16m2)))
-vuint16m2_t vfcvt_rtz_xu(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16m2_m)))
-vuint16m2_t vfcvt_rtz_xu(vbool8_t op0, vuint16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16m4)))
-vuint16m4_t vfcvt_rtz_xu(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16m4_m)))
-vuint16m4_t vfcvt_rtz_xu(vbool4_t op0, vuint16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16m8)))
-vuint16m8_t vfcvt_rtz_xu(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16m8_m)))
-vuint16m8_t vfcvt_rtz_xu(vbool2_t op0, vuint16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16mf2)))
-vuint16mf2_t vfcvt_rtz_xu(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16mf2_m)))
-vuint16mf2_t vfcvt_rtz_xu(vbool32_t op0, vuint16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16mf4)))
-vuint16mf4_t vfcvt_rtz_xu(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16mf4_m)))
-vuint16mf4_t vfcvt_rtz_xu(vbool64_t op0, vuint16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16m1)))
-vint16m1_t vfcvt_x(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16m1_m)))
-vint16m1_t vfcvt_x(vbool16_t op0, vint16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16m2)))
-vint16m2_t vfcvt_x(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16m2_m)))
-vint16m2_t vfcvt_x(vbool8_t op0, vint16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16m4)))
-vint16m4_t vfcvt_x(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16m4_m)))
-vint16m4_t vfcvt_x(vbool4_t op0, vint16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16m8)))
-vint16m8_t vfcvt_x(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16m8_m)))
-vint16m8_t vfcvt_x(vbool2_t op0, vint16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16mf2)))
-vint16mf2_t vfcvt_x(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16mf2_m)))
-vint16mf2_t vfcvt_x(vbool32_t op0, vint16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16mf4)))
-vint16mf4_t vfcvt_x(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16mf4_m)))
-vint16mf4_t vfcvt_x(vbool64_t op0, vint16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16m1)))
-vuint16m1_t vfcvt_xu(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16m1_m)))
-vuint16m1_t vfcvt_xu(vbool16_t op0, vuint16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16m2)))
-vuint16m2_t vfcvt_xu(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16m2_m)))
-vuint16m2_t vfcvt_xu(vbool8_t op0, vuint16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16m4)))
-vuint16m4_t vfcvt_xu(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16m4_m)))
-vuint16m4_t vfcvt_xu(vbool4_t op0, vuint16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16m8)))
-vuint16m8_t vfcvt_xu(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16m8_m)))
-vuint16m8_t vfcvt_xu(vbool2_t op0, vuint16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16mf2)))
-vuint16mf2_t vfcvt_xu(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16mf2_m)))
-vuint16mf2_t vfcvt_xu(vbool32_t op0, vuint16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16mf4)))
-vuint16mf4_t vfcvt_xu(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16mf4_m)))
-vuint16mf4_t vfcvt_xu(vbool64_t op0, vuint16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f16mf4)))
-vfloat16mf4_t vfncvt_f(vint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f16mf4_m)))
-vfloat16mf4_t vfncvt_f(vbool64_t op0, vfloat16mf4_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f16mf2)))
-vfloat16mf2_t vfncvt_f(vint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f16mf2_m)))
-vfloat16mf2_t vfncvt_f(vbool32_t op0, vfloat16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f16m1)))
-vfloat16m1_t vfncvt_f(vint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f16m1_m)))
-vfloat16m1_t vfncvt_f(vbool16_t op0, vfloat16m1_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f16m2)))
-vfloat16m2_t vfncvt_f(vint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f16m2_m)))
-vfloat16m2_t vfncvt_f(vbool8_t op0, vfloat16m2_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f16m4)))
-vfloat16m4_t vfncvt_f(vint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f16m4_m)))
-vfloat16m4_t vfncvt_f(vbool4_t op0, vfloat16m4_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f16mf4)))
-vfloat16mf4_t vfncvt_f(vuint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f16mf4_m)))
-vfloat16mf4_t vfncvt_f(vbool64_t op0, vfloat16mf4_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f16mf2)))
-vfloat16mf2_t vfncvt_f(vuint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f16mf2_m)))
-vfloat16mf2_t vfncvt_f(vbool32_t op0, vfloat16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f16m1)))
-vfloat16m1_t vfncvt_f(vuint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f16m1_m)))
-vfloat16m1_t vfncvt_f(vbool16_t op0, vfloat16m1_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f16m2)))
-vfloat16m2_t vfncvt_f(vuint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f16m2_m)))
-vfloat16m2_t vfncvt_f(vbool8_t op0, vfloat16m2_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f16m4)))
-vfloat16m4_t vfncvt_f(vuint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f16m4_m)))
-vfloat16m4_t vfncvt_f(vbool4_t op0, vfloat16m4_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8mf8)))
-vint8mf8_t vfncvt_rtz_x(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8mf8_m)))
-vint8mf8_t vfncvt_rtz_x(vbool64_t op0, vint8mf8_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8mf4)))
-vint8mf4_t vfncvt_rtz_x(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8mf4_m)))
-vint8mf4_t vfncvt_rtz_x(vbool32_t op0, vint8mf4_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8mf2)))
-vint8mf2_t vfncvt_rtz_x(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8mf2_m)))
-vint8mf2_t vfncvt_rtz_x(vbool16_t op0, vint8mf2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8m1)))
-vint8m1_t vfncvt_rtz_x(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8m1_m)))
-vint8m1_t vfncvt_rtz_x(vbool8_t op0, vint8m1_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8m2)))
-vint8m2_t vfncvt_rtz_x(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8m2_m)))
-vint8m2_t vfncvt_rtz_x(vbool4_t op0, vint8m2_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8m4)))
-vint8m4_t vfncvt_rtz_x(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8m4_m)))
-vint8m4_t vfncvt_rtz_x(vbool2_t op0, vint8m4_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf8)))
-vuint8mf8_t vfncvt_rtz_xu(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf8_m)))
-vuint8mf8_t vfncvt_rtz_xu(vbool64_t op0, vuint8mf8_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf4)))
-vuint8mf4_t vfncvt_rtz_xu(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf4_m)))
-vuint8mf4_t vfncvt_rtz_xu(vbool32_t op0, vuint8mf4_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf2)))
-vuint8mf2_t vfncvt_rtz_xu(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf2_m)))
-vuint8mf2_t vfncvt_rtz_xu(vbool16_t op0, vuint8mf2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8m1)))
-vuint8m1_t vfncvt_rtz_xu(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8m1_m)))
-vuint8m1_t vfncvt_rtz_xu(vbool8_t op0, vuint8m1_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8m2)))
-vuint8m2_t vfncvt_rtz_xu(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8m2_m)))
-vuint8m2_t vfncvt_rtz_xu(vbool4_t op0, vuint8m2_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8m4)))
-vuint8m4_t vfncvt_rtz_xu(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8m4_m)))
-vuint8m4_t vfncvt_rtz_xu(vbool2_t op0, vuint8m4_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8mf8)))
-vint8mf8_t vfncvt_x(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8mf8_m)))
-vint8mf8_t vfncvt_x(vbool64_t op0, vint8mf8_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8mf4)))
-vint8mf4_t vfncvt_x(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8mf4_m)))
-vint8mf4_t vfncvt_x(vbool32_t op0, vint8mf4_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8mf2)))
-vint8mf2_t vfncvt_x(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8mf2_m)))
-vint8mf2_t vfncvt_x(vbool16_t op0, vint8mf2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8m1)))
-vint8m1_t vfncvt_x(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8m1_m)))
-vint8m1_t vfncvt_x(vbool8_t op0, vint8m1_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8m2)))
-vint8m2_t vfncvt_x(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8m2_m)))
-vint8m2_t vfncvt_x(vbool4_t op0, vint8m2_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8m4)))
-vint8m4_t vfncvt_x(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8m4_m)))
-vint8m4_t vfncvt_x(vbool2_t op0, vint8m4_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8mf8)))
-vuint8mf8_t vfncvt_xu(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8mf8_m)))
-vuint8mf8_t vfncvt_xu(vbool64_t op0, vuint8mf8_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8mf4)))
-vuint8mf4_t vfncvt_xu(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8mf4_m)))
-vuint8mf4_t vfncvt_xu(vbool32_t op0, vuint8mf4_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8mf2)))
-vuint8mf2_t vfncvt_xu(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8mf2_m)))
-vuint8mf2_t vfncvt_xu(vbool16_t op0, vuint8mf2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8m1)))
-vuint8m1_t vfncvt_xu(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8m1_m)))
-vuint8m1_t vfncvt_xu(vbool8_t op0, vuint8m1_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8m2)))
-vuint8m2_t vfncvt_xu(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8m2_m)))
-vuint8m2_t vfncvt_xu(vbool4_t op0, vuint8m2_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8m4)))
-vuint8m4_t vfncvt_xu(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8m4_m)))
-vuint8m4_t vfncvt_xu(vbool2_t op0, vuint8m4_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16m1)))
-vfloat16m1_t vfrec7(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16m1_m)))
-vfloat16m1_t vfrec7(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16m2)))
-vfloat16m2_t vfrec7(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16m2_m)))
-vfloat16m2_t vfrec7(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16m4)))
-vfloat16m4_t vfrec7(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16m4_m)))
-vfloat16m4_t vfrec7(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16m8)))
-vfloat16m8_t vfrec7(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16m8_m)))
-vfloat16m8_t vfrec7(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16mf2)))
-vfloat16mf2_t vfrec7(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16mf2_m)))
-vfloat16mf2_t vfrec7(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16mf4)))
-vfloat16mf4_t vfrec7(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16mf4_m)))
-vfloat16mf4_t vfrec7(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16m1)))
-vfloat16m1_t vfrsqrt7(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16m1_m)))
-vfloat16m1_t vfrsqrt7(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16m2)))
-vfloat16m2_t vfrsqrt7(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16m2_m)))
-vfloat16m2_t vfrsqrt7(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16m4)))
-vfloat16m4_t vfrsqrt7(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16m4_m)))
-vfloat16m4_t vfrsqrt7(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16m8)))
-vfloat16m8_t vfrsqrt7(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16m8_m)))
-vfloat16m8_t vfrsqrt7(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16mf2)))
-vfloat16mf2_t vfrsqrt7(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16mf2_m)))
-vfloat16mf2_t vfrsqrt7(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16mf4)))
-vfloat16mf4_t vfrsqrt7(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16mf4_m)))
-vfloat16mf4_t vfrsqrt7(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16m1)))
-vfloat16m1_t vfsqrt(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16m1_m)))
-vfloat16m1_t vfsqrt(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16m2)))
-vfloat16m2_t vfsqrt(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16m2_m)))
-vfloat16m2_t vfsqrt(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16m4)))
-vfloat16m4_t vfsqrt(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16m4_m)))
-vfloat16m4_t vfsqrt(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16m8)))
-vfloat16m8_t vfsqrt(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16m8_m)))
-vfloat16m8_t vfsqrt(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16mf2)))
-vfloat16mf2_t vfsqrt(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16mf2_m)))
-vfloat16mf2_t vfsqrt(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16mf4)))
-vfloat16mf4_t vfsqrt(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16mf4_m)))
-vfloat16mf4_t vfsqrt(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16mf4)))
-vfloat16mf4_t vfwcvt_f(vint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16mf4_m)))
-vfloat16mf4_t vfwcvt_f(vbool64_t op0, vfloat16mf4_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16mf2)))
-vfloat16mf2_t vfwcvt_f(vint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16mf2_m)))
-vfloat16mf2_t vfwcvt_f(vbool32_t op0, vfloat16mf2_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16m1)))
-vfloat16m1_t vfwcvt_f(vint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16m1_m)))
-vfloat16m1_t vfwcvt_f(vbool16_t op0, vfloat16m1_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16m2)))
-vfloat16m2_t vfwcvt_f(vint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16m2_m)))
-vfloat16m2_t vfwcvt_f(vbool8_t op0, vfloat16m2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16m4)))
-vfloat16m4_t vfwcvt_f(vint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16m4_m)))
-vfloat16m4_t vfwcvt_f(vbool4_t op0, vfloat16m4_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16m8)))
-vfloat16m8_t vfwcvt_f(vint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16m8_m)))
-vfloat16m8_t vfwcvt_f(vbool2_t op0, vfloat16m8_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16mf4)))
-vfloat16mf4_t vfwcvt_f(vuint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16mf4_m)))
-vfloat16mf4_t vfwcvt_f(vbool64_t op0, vfloat16mf4_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16mf2)))
-vfloat16mf2_t vfwcvt_f(vuint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16mf2_m)))
-vfloat16mf2_t vfwcvt_f(vbool32_t op0, vfloat16mf2_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16m1)))
-vfloat16m1_t vfwcvt_f(vuint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16m1_m)))
-vfloat16m1_t vfwcvt_f(vbool16_t op0, vfloat16m1_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16m2)))
-vfloat16m2_t vfwcvt_f(vuint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16m2_m)))
-vfloat16m2_t vfwcvt_f(vbool8_t op0, vfloat16m2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16m4)))
-vfloat16m4_t vfwcvt_f(vuint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16m4_m)))
-vfloat16m4_t vfwcvt_f(vbool4_t op0, vfloat16m4_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16m8)))
-vfloat16m8_t vfwcvt_f(vuint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16m8_m)))
-vfloat16m8_t vfwcvt_f(vbool2_t op0, vfloat16m8_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i32mf2)))
-vint32mf2_t vfwcvt_rtz_x(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i32mf2_m)))
-vint32mf2_t vfwcvt_rtz_x(vbool64_t op0, vint32mf2_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i32m1)))
-vint32m1_t vfwcvt_rtz_x(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i32m1_m)))
-vint32m1_t vfwcvt_rtz_x(vbool32_t op0, vint32m1_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i32m2)))
-vint32m2_t vfwcvt_rtz_x(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i32m2_m)))
-vint32m2_t vfwcvt_rtz_x(vbool16_t op0, vint32m2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i32m4)))
-vint32m4_t vfwcvt_rtz_x(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i32m4_m)))
-vint32m4_t vfwcvt_rtz_x(vbool8_t op0, vint32m4_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i32m8)))
-vint32m8_t vfwcvt_rtz_x(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i32m8_m)))
-vint32m8_t vfwcvt_rtz_x(vbool4_t op0, vint32m8_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u32mf2)))
-vuint32mf2_t vfwcvt_rtz_xu(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u32mf2_m)))
-vuint32mf2_t vfwcvt_rtz_xu(vbool64_t op0, vuint32mf2_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m1)))
-vuint32m1_t vfwcvt_rtz_xu(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m1_m)))
-vuint32m1_t vfwcvt_rtz_xu(vbool32_t op0, vuint32m1_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m2)))
-vuint32m2_t vfwcvt_rtz_xu(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m2_m)))
-vuint32m2_t vfwcvt_rtz_xu(vbool16_t op0, vuint32m2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m4)))
-vuint32m4_t vfwcvt_rtz_xu(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m4_m)))
-vuint32m4_t vfwcvt_rtz_xu(vbool8_t op0, vuint32m4_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m8)))
-vuint32m8_t vfwcvt_rtz_xu(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m8_m)))
-vuint32m8_t vfwcvt_rtz_xu(vbool4_t op0, vuint32m8_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i32mf2)))
-vint32mf2_t vfwcvt_x(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i32mf2_m)))
-vint32mf2_t vfwcvt_x(vbool64_t op0, vint32mf2_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i32m1)))
-vint32m1_t vfwcvt_x(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i32m1_m)))
-vint32m1_t vfwcvt_x(vbool32_t op0, vint32m1_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i32m2)))
-vint32m2_t vfwcvt_x(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i32m2_m)))
-vint32m2_t vfwcvt_x(vbool16_t op0, vint32m2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i32m4)))
-vint32m4_t vfwcvt_x(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i32m4_m)))
-vint32m4_t vfwcvt_x(vbool8_t op0, vint32m4_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i32m8)))
-vint32m8_t vfwcvt_x(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i32m8_m)))
-vint32m8_t vfwcvt_x(vbool4_t op0, vint32m8_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u32mf2)))
-vuint32mf2_t vfwcvt_xu(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u32mf2_m)))
-vuint32mf2_t vfwcvt_xu(vbool64_t op0, vuint32mf2_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u32m1)))
-vuint32m1_t vfwcvt_xu(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u32m1_m)))
-vuint32m1_t vfwcvt_xu(vbool32_t op0, vuint32m1_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u32m2)))
-vuint32m2_t vfwcvt_xu(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u32m2_m)))
-vuint32m2_t vfwcvt_xu(vbool16_t op0, vuint32m2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u32m4)))
-vuint32m4_t vfwcvt_xu(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u32m4_m)))
-vuint32m4_t vfwcvt_xu(vbool8_t op0, vuint32m4_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u32m8)))
-vuint32m8_t vfwcvt_xu(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u32m8_m)))
-vuint32m8_t vfwcvt_xu(vbool4_t op0, vuint32m8_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16mf2_f16m1)))
-vfloat16m1_t vlmul_ext_f16m1(vfloat16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16mf4_f16m1)))
-vfloat16m1_t vlmul_ext_f16m1(vfloat16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16mf4_f16mf2)))
-vfloat16mf2_t vlmul_ext_f16mf2(vfloat16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16m1_f16m2)))
-vfloat16m2_t vlmul_ext_f16m2(vfloat16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16mf2_f16m2)))
-vfloat16m2_t vlmul_ext_f16m2(vfloat16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16mf4_f16m2)))
-vfloat16m2_t vlmul_ext_f16m2(vfloat16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16m1_f16m4)))
-vfloat16m4_t vlmul_ext_f16m4(vfloat16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16m2_f16m4)))
-vfloat16m4_t vlmul_ext_f16m4(vfloat16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16mf2_f16m4)))
-vfloat16m4_t vlmul_ext_f16m4(vfloat16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16mf4_f16m4)))
-vfloat16m4_t vlmul_ext_f16m4(vfloat16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16m1_f16m8)))
-vfloat16m8_t vlmul_ext_f16m8(vfloat16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16m2_f16m8)))
-vfloat16m8_t vlmul_ext_f16m8(vfloat16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16m4_f16m8)))
-vfloat16m8_t vlmul_ext_f16m8(vfloat16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16mf2_f16m8)))
-vfloat16m8_t vlmul_ext_f16m8(vfloat16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16mf4_f16m8)))
-vfloat16m8_t vlmul_ext_f16m8(vfloat16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m1_f16mf2)))
-vfloat16mf2_t vlmul_trunc_f16mf2(vfloat16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m2_f16mf2)))
-vfloat16mf2_t vlmul_trunc_f16mf2(vfloat16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m4_f16mf2)))
-vfloat16mf2_t vlmul_trunc_f16mf2(vfloat16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m8_f16mf2)))
-vfloat16mf2_t vlmul_trunc_f16mf2(vfloat16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m1_f16mf4)))
-vfloat16mf4_t vlmul_trunc_f16mf4(vfloat16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m2_f16mf4)))
-vfloat16mf4_t vlmul_trunc_f16mf4(vfloat16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m4_f16mf4)))
-vfloat16mf4_t vlmul_trunc_f16mf4(vfloat16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m8_f16mf4)))
-vfloat16mf4_t vlmul_trunc_f16mf4(vfloat16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16mf2_f16mf4)))
-vfloat16mf4_t vlmul_trunc_f16mf4(vfloat16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m2_f16m1)))
-vfloat16m1_t vlmul_trunc_f16m1(vfloat16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m4_f16m1)))
-vfloat16m1_t vlmul_trunc_f16m1(vfloat16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m8_f16m1)))
-vfloat16m1_t vlmul_trunc_f16m1(vfloat16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m4_f16m2)))
-vfloat16m2_t vlmul_trunc_f16m2(vfloat16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m8_f16m2)))
-vfloat16m2_t vlmul_trunc_f16m2(vfloat16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m8_f16m4)))
-vfloat16m4_t vlmul_trunc_f16m4(vfloat16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m1_f16m1)))
-vfloat16m1_t vreinterpret_f16m1(vint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m2_f16m2)))
-vfloat16m2_t vreinterpret_f16m2(vint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m4_f16m4)))
-vfloat16m4_t vreinterpret_f16m4(vint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m8_f16m8)))
-vfloat16m8_t vreinterpret_f16m8(vint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16mf2_f16mf2)))
-vfloat16mf2_t vreinterpret_f16mf2(vint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16mf4_f16mf4)))
-vfloat16mf4_t vreinterpret_f16mf4(vint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m1_f16m1)))
-vfloat16m1_t vreinterpret_f16m1(vuint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m2_f16m2)))
-vfloat16m2_t vreinterpret_f16m2(vuint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m4_f16m4)))
-vfloat16m4_t vreinterpret_f16m4(vuint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m8_f16m8)))
-vfloat16m8_t vreinterpret_f16m8(vuint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16mf2_f16mf2)))
-vfloat16mf2_t vreinterpret_f16mf2(vuint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16mf4_f16mf4)))
-vfloat16mf4_t vreinterpret_f16mf4(vuint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16m1_i16m1)))
-vint16m1_t vreinterpret_i16m1(vfloat16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16m2_i16m2)))
-vint16m2_t vreinterpret_i16m2(vfloat16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16m4_i16m4)))
-vint16m4_t vreinterpret_i16m4(vfloat16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16m8_i16m8)))
-vint16m8_t vreinterpret_i16m8(vfloat16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16mf2_i16mf2)))
-vint16mf2_t vreinterpret_i16mf2(vfloat16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16mf4_i16mf4)))
-vint16mf4_t vreinterpret_i16mf4(vfloat16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16m1_u16m1)))
-vuint16m1_t vreinterpret_u16m1(vfloat16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16m2_u16m2)))
-vuint16m2_t vreinterpret_u16m2(vfloat16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16m4_u16m4)))
-vuint16m4_t vreinterpret_u16m4(vfloat16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16m8_u16m8)))
-vuint16m8_t vreinterpret_u16m8(vfloat16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16mf2_u16mf2)))
-vuint16mf2_t vreinterpret_u16mf2(vfloat16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16mf4_u16mf4)))
-vuint16mf4_t vreinterpret_u16mf4(vfloat16mf4_t op0);
-
-#endif
-
-#if defined(__riscv_f) && defined(__riscv_zfh)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f32mf2)))
-vfloat32mf2_t vfwadd_vv(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f32mf2_m)))
-vfloat32mf2_t vfwadd_vv(vbool64_t op0, vfloat32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f32m1)))
-vfloat32m1_t vfwadd_vv(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f32m1_m)))
-vfloat32m1_t vfwadd_vv(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f32m2)))
-vfloat32m2_t vfwadd_vv(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f32m2_m)))
-vfloat32m2_t vfwadd_vv(vbool16_t op0, vfloat32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f32m4)))
-vfloat32m4_t vfwadd_vv(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f32m4_m)))
-vfloat32m4_t vfwadd_vv(vbool8_t op0, vfloat32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f32m8)))
-vfloat32m8_t vfwadd_vv(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f32m8_m)))
-vfloat32m8_t vfwadd_vv(vbool4_t op0, vfloat32m8_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f32mf2)))
-vfloat32mf2_t vfwadd_vf(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f32mf2_m)))
-vfloat32mf2_t vfwadd_vf(vbool64_t op0, vfloat32mf2_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f32m1)))
-vfloat32m1_t vfwadd_vf(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f32m1_m)))
-vfloat32m1_t vfwadd_vf(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f32m2)))
-vfloat32m2_t vfwadd_vf(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f32m2_m)))
-vfloat32m2_t vfwadd_vf(vbool16_t op0, vfloat32m2_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f32m4)))
-vfloat32m4_t vfwadd_vf(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f32m4_m)))
-vfloat32m4_t vfwadd_vf(vbool8_t op0, vfloat32m4_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f32m8)))
-vfloat32m8_t vfwadd_vf(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f32m8_m)))
-vfloat32m8_t vfwadd_vf(vbool4_t op0, vfloat32m8_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f32mf2)))
-vfloat32mf2_t vfwsub_vv(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f32mf2_m)))
-vfloat32mf2_t vfwsub_vv(vbool64_t op0, vfloat32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f32m1)))
-vfloat32m1_t vfwsub_vv(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f32m1_m)))
-vfloat32m1_t vfwsub_vv(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f32m2)))
-vfloat32m2_t vfwsub_vv(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f32m2_m)))
-vfloat32m2_t vfwsub_vv(vbool16_t op0, vfloat32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f32m4)))
-vfloat32m4_t vfwsub_vv(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f32m4_m)))
-vfloat32m4_t vfwsub_vv(vbool8_t op0, vfloat32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f32m8)))
-vfloat32m8_t vfwsub_vv(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f32m8_m)))
-vfloat32m8_t vfwsub_vv(vbool4_t op0, vfloat32m8_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f32mf2)))
-vfloat32mf2_t vfwsub_vf(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f32mf2_m)))
-vfloat32mf2_t vfwsub_vf(vbool64_t op0, vfloat32mf2_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f32m1)))
-vfloat32m1_t vfwsub_vf(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f32m1_m)))
-vfloat32m1_t vfwsub_vf(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f32m2)))
-vfloat32m2_t vfwsub_vf(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f32m2_m)))
-vfloat32m2_t vfwsub_vf(vbool16_t op0, vfloat32m2_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f32m4)))
-vfloat32m4_t vfwsub_vf(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f32m4_m)))
-vfloat32m4_t vfwsub_vf(vbool8_t op0, vfloat32m4_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f32m8)))
-vfloat32m8_t vfwsub_vf(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f32m8_m)))
-vfloat32m8_t vfwsub_vf(vbool4_t op0, vfloat32m8_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f32mf2)))
-vfloat32mf2_t vfwadd_wv(vfloat32mf2_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f32mf2_m)))
-vfloat32mf2_t vfwadd_wv(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f32m1)))
-vfloat32m1_t vfwadd_wv(vfloat32m1_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f32m1_m)))
-vfloat32m1_t vfwadd_wv(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f32m2)))
-vfloat32m2_t vfwadd_wv(vfloat32m2_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f32m2_m)))
-vfloat32m2_t vfwadd_wv(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f32m4)))
-vfloat32m4_t vfwadd_wv(vfloat32m4_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f32m4_m)))
-vfloat32m4_t vfwadd_wv(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f32m8)))
-vfloat32m8_t vfwadd_wv(vfloat32m8_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f32m8_m)))
-vfloat32m8_t vfwadd_wv(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f32mf2)))
-vfloat32mf2_t vfwadd_wf(vfloat32mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f32mf2_m)))
-vfloat32mf2_t vfwadd_wf(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f32m1)))
-vfloat32m1_t vfwadd_wf(vfloat32m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f32m1_m)))
-vfloat32m1_t vfwadd_wf(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f32m2)))
-vfloat32m2_t vfwadd_wf(vfloat32m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f32m2_m)))
-vfloat32m2_t vfwadd_wf(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f32m4)))
-vfloat32m4_t vfwadd_wf(vfloat32m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f32m4_m)))
-vfloat32m4_t vfwadd_wf(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f32m8)))
-vfloat32m8_t vfwadd_wf(vfloat32m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f32m8_m)))
-vfloat32m8_t vfwadd_wf(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f32mf2)))
-vfloat32mf2_t vfwsub_wv(vfloat32mf2_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f32mf2_m)))
-vfloat32mf2_t vfwsub_wv(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f32m1)))
-vfloat32m1_t vfwsub_wv(vfloat32m1_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f32m1_m)))
-vfloat32m1_t vfwsub_wv(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f32m2)))
-vfloat32m2_t vfwsub_wv(vfloat32m2_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f32m2_m)))
-vfloat32m2_t vfwsub_wv(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f32m4)))
-vfloat32m4_t vfwsub_wv(vfloat32m4_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f32m4_m)))
-vfloat32m4_t vfwsub_wv(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f32m8)))
-vfloat32m8_t vfwsub_wv(vfloat32m8_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f32m8_m)))
-vfloat32m8_t vfwsub_wv(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f32mf2)))
-vfloat32mf2_t vfwsub_wf(vfloat32mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f32mf2_m)))
-vfloat32mf2_t vfwsub_wf(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f32m1)))
-vfloat32m1_t vfwsub_wf(vfloat32m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f32m1_m)))
-vfloat32m1_t vfwsub_wf(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f32m2)))
-vfloat32m2_t vfwsub_wf(vfloat32m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f32m2_m)))
-vfloat32m2_t vfwsub_wf(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f32m4)))
-vfloat32m4_t vfwsub_wf(vfloat32m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f32m4_m)))
-vfloat32m4_t vfwsub_wf(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f32m8)))
-vfloat32m8_t vfwsub_wf(vfloat32m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f32m8_m)))
-vfloat32m8_t vfwsub_wf(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f32mf2)))
-vfloat32mf2_t vfwmul(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f32mf2_m)))
-vfloat32mf2_t vfwmul(vbool64_t op0, vfloat32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f32m1)))
-vfloat32m1_t vfwmul(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f32m1_m)))
-vfloat32m1_t vfwmul(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f32m2)))
-vfloat32m2_t vfwmul(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f32m2_m)))
-vfloat32m2_t vfwmul(vbool16_t op0, vfloat32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f32m4)))
-vfloat32m4_t vfwmul(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f32m4_m)))
-vfloat32m4_t vfwmul(vbool8_t op0, vfloat32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f32m8)))
-vfloat32m8_t vfwmul(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f32m8_m)))
-vfloat32m8_t vfwmul(vbool4_t op0, vfloat32m8_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f32mf2)))
-vfloat32mf2_t vfwmul(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f32mf2_m)))
-vfloat32mf2_t vfwmul(vbool64_t op0, vfloat32mf2_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f32m1)))
-vfloat32m1_t vfwmul(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f32m1_m)))
-vfloat32m1_t vfwmul(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f32m2)))
-vfloat32m2_t vfwmul(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f32m2_m)))
-vfloat32m2_t vfwmul(vbool16_t op0, vfloat32m2_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f32m4)))
-vfloat32m4_t vfwmul(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f32m4_m)))
-vfloat32m4_t vfwmul(vbool8_t op0, vfloat32m4_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f32m8)))
-vfloat32m8_t vfwmul(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f32m8_m)))
-vfloat32m8_t vfwmul(vbool4_t op0, vfloat32m8_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f32mf2)))
-vfloat32mf2_t vfwmacc(vfloat32mf2_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f32mf2_m)))
-vfloat32mf2_t vfwmacc(vbool64_t op0, vfloat32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f32m1)))
-vfloat32m1_t vfwmacc(vfloat32m1_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f32m1_m)))
-vfloat32m1_t vfwmacc(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f32m2)))
-vfloat32m2_t vfwmacc(vfloat32m2_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f32m2_m)))
-vfloat32m2_t vfwmacc(vbool16_t op0, vfloat32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f32m4)))
-vfloat32m4_t vfwmacc(vfloat32m4_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f32m4_m)))
-vfloat32m4_t vfwmacc(vbool8_t op0, vfloat32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f32m8)))
-vfloat32m8_t vfwmacc(vfloat32m8_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f32m8_m)))
-vfloat32m8_t vfwmacc(vbool4_t op0, vfloat32m8_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f32mf2)))
-vfloat32mf2_t vfwmacc(vfloat32mf2_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f32mf2_m)))
-vfloat32mf2_t vfwmacc(vbool64_t op0, vfloat32mf2_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f32m1)))
-vfloat32m1_t vfwmacc(vfloat32m1_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f32m1_m)))
-vfloat32m1_t vfwmacc(vbool32_t op0, vfloat32m1_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f32m2)))
-vfloat32m2_t vfwmacc(vfloat32m2_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f32m2_m)))
-vfloat32m2_t vfwmacc(vbool16_t op0, vfloat32m2_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f32m4)))
-vfloat32m4_t vfwmacc(vfloat32m4_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f32m4_m)))
-vfloat32m4_t vfwmacc(vbool8_t op0, vfloat32m4_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f32m8)))
-vfloat32m8_t vfwmacc(vfloat32m8_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f32m8_m)))
-vfloat32m8_t vfwmacc(vbool4_t op0, vfloat32m8_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f32mf2)))
-vfloat32mf2_t vfwnmacc(vfloat32mf2_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f32mf2_m)))
-vfloat32mf2_t vfwnmacc(vbool64_t op0, vfloat32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f32m1)))
-vfloat32m1_t vfwnmacc(vfloat32m1_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f32m1_m)))
-vfloat32m1_t vfwnmacc(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f32m2)))
-vfloat32m2_t vfwnmacc(vfloat32m2_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f32m2_m)))
-vfloat32m2_t vfwnmacc(vbool16_t op0, vfloat32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f32m4)))
-vfloat32m4_t vfwnmacc(vfloat32m4_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f32m4_m)))
-vfloat32m4_t vfwnmacc(vbool8_t op0, vfloat32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f32m8)))
-vfloat32m8_t vfwnmacc(vfloat32m8_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f32m8_m)))
-vfloat32m8_t vfwnmacc(vbool4_t op0, vfloat32m8_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f32mf2)))
-vfloat32mf2_t vfwnmacc(vfloat32mf2_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f32mf2_m)))
-vfloat32mf2_t vfwnmacc(vbool64_t op0, vfloat32mf2_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f32m1)))
-vfloat32m1_t vfwnmacc(vfloat32m1_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f32m1_m)))
-vfloat32m1_t vfwnmacc(vbool32_t op0, vfloat32m1_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f32m2)))
-vfloat32m2_t vfwnmacc(vfloat32m2_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f32m2_m)))
-vfloat32m2_t vfwnmacc(vbool16_t op0, vfloat32m2_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f32m4)))
-vfloat32m4_t vfwnmacc(vfloat32m4_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f32m4_m)))
-vfloat32m4_t vfwnmacc(vbool8_t op0, vfloat32m4_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f32m8)))
-vfloat32m8_t vfwnmacc(vfloat32m8_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f32m8_m)))
-vfloat32m8_t vfwnmacc(vbool4_t op0, vfloat32m8_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f32mf2)))
-vfloat32mf2_t vfwmsac(vfloat32mf2_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f32mf2_m)))
-vfloat32mf2_t vfwmsac(vbool64_t op0, vfloat32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f32m1)))
-vfloat32m1_t vfwmsac(vfloat32m1_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f32m1_m)))
-vfloat32m1_t vfwmsac(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f32m2)))
-vfloat32m2_t vfwmsac(vfloat32m2_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f32m2_m)))
-vfloat32m2_t vfwmsac(vbool16_t op0, vfloat32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f32m4)))
-vfloat32m4_t vfwmsac(vfloat32m4_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f32m4_m)))
-vfloat32m4_t vfwmsac(vbool8_t op0, vfloat32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f32m8)))
-vfloat32m8_t vfwmsac(vfloat32m8_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f32m8_m)))
-vfloat32m8_t vfwmsac(vbool4_t op0, vfloat32m8_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f32mf2)))
-vfloat32mf2_t vfwmsac(vfloat32mf2_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f32mf2_m)))
-vfloat32mf2_t vfwmsac(vbool64_t op0, vfloat32mf2_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f32m1)))
-vfloat32m1_t vfwmsac(vfloat32m1_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f32m1_m)))
-vfloat32m1_t vfwmsac(vbool32_t op0, vfloat32m1_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f32m2)))
-vfloat32m2_t vfwmsac(vfloat32m2_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f32m2_m)))
-vfloat32m2_t vfwmsac(vbool16_t op0, vfloat32m2_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f32m4)))
-vfloat32m4_t vfwmsac(vfloat32m4_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f32m4_m)))
-vfloat32m4_t vfwmsac(vbool8_t op0, vfloat32m4_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f32m8)))
-vfloat32m8_t vfwmsac(vfloat32m8_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f32m8_m)))
-vfloat32m8_t vfwmsac(vbool4_t op0, vfloat32m8_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f32mf2)))
-vfloat32mf2_t vfwnmsac(vfloat32mf2_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f32mf2_m)))
-vfloat32mf2_t vfwnmsac(vbool64_t op0, vfloat32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f32m1)))
-vfloat32m1_t vfwnmsac(vfloat32m1_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f32m1_m)))
-vfloat32m1_t vfwnmsac(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f32m2)))
-vfloat32m2_t vfwnmsac(vfloat32m2_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f32m2_m)))
-vfloat32m2_t vfwnmsac(vbool16_t op0, vfloat32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f32m4)))
-vfloat32m4_t vfwnmsac(vfloat32m4_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f32m4_m)))
-vfloat32m4_t vfwnmsac(vbool8_t op0, vfloat32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f32m8)))
-vfloat32m8_t vfwnmsac(vfloat32m8_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f32m8_m)))
-vfloat32m8_t vfwnmsac(vbool4_t op0, vfloat32m8_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f32mf2)))
-vfloat32mf2_t vfwnmsac(vfloat32mf2_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f32mf2_m)))
-vfloat32mf2_t vfwnmsac(vbool64_t op0, vfloat32mf2_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f32m1)))
-vfloat32m1_t vfwnmsac(vfloat32m1_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f32m1_m)))
-vfloat32m1_t vfwnmsac(vbool32_t op0, vfloat32m1_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f32m2)))
-vfloat32m2_t vfwnmsac(vfloat32m2_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f32m2_m)))
-vfloat32m2_t vfwnmsac(vbool16_t op0, vfloat32m2_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f32m4)))
-vfloat32m4_t vfwnmsac(vfloat32m4_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f32m4_m)))
-vfloat32m4_t vfwnmsac(vbool8_t op0, vfloat32m4_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f32m8)))
-vfloat32m8_t vfwnmsac(vfloat32m8_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f32m8_m)))
-vfloat32m8_t vfwnmsac(vbool4_t op0, vfloat32m8_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16m1_f32m1)))
-vfloat32m1_t vfwredsum(vfloat32m1_t op0, vfloat16m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16m1_f32m1_m)))
-vfloat32m1_t vfwredsum(vbool16_t op0, vfloat32m1_t op1, vfloat16m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16m2_f32m1)))
-vfloat32m1_t vfwredsum(vfloat32m1_t op0, vfloat16m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16m2_f32m1_m)))
-vfloat32m1_t vfwredsum(vbool8_t op0, vfloat32m1_t op1, vfloat16m2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16m4_f32m1)))
-vfloat32m1_t vfwredsum(vfloat32m1_t op0, vfloat16m4_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16m4_f32m1_m)))
-vfloat32m1_t vfwredsum(vbool4_t op0, vfloat32m1_t op1, vfloat16m4_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16m8_f32m1)))
-vfloat32m1_t vfwredsum(vfloat32m1_t op0, vfloat16m8_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16m8_f32m1_m)))
-vfloat32m1_t vfwredsum(vbool2_t op0, vfloat32m1_t op1, vfloat16m8_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16mf2_f32m1)))
-vfloat32m1_t vfwredsum(vfloat32m1_t op0, vfloat16mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16mf2_f32m1_m)))
-vfloat32m1_t vfwredsum(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16mf4_f32m1)))
-vfloat32m1_t vfwredsum(vfloat32m1_t op0, vfloat16mf4_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16mf4_f32m1_m)))
-vfloat32m1_t vfwredsum(vbool64_t op0, vfloat32m1_t op1, vfloat16mf4_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16m1_f32m1)))
-vfloat32m1_t vfwredosum(vfloat32m1_t op0, vfloat16m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16m1_f32m1_m)))
-vfloat32m1_t vfwredosum(vbool16_t op0, vfloat32m1_t op1, vfloat16m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16m2_f32m1)))
-vfloat32m1_t vfwredosum(vfloat32m1_t op0, vfloat16m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16m2_f32m1_m)))
-vfloat32m1_t vfwredosum(vbool8_t op0, vfloat32m1_t op1, vfloat16m2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16m4_f32m1)))
-vfloat32m1_t vfwredosum(vfloat32m1_t op0, vfloat16m4_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16m4_f32m1_m)))
-vfloat32m1_t vfwredosum(vbool4_t op0, vfloat32m1_t op1, vfloat16m4_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16m8_f32m1)))
-vfloat32m1_t vfwredosum(vfloat32m1_t op0, vfloat16m8_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16m8_f32m1_m)))
-vfloat32m1_t vfwredosum(vbool2_t op0, vfloat32m1_t op1, vfloat16m8_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16mf2_f32m1)))
-vfloat32m1_t vfwredosum(vfloat32m1_t op0, vfloat16mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16mf2_f32m1_m)))
-vfloat32m1_t vfwredosum(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16mf4_f32m1)))
-vfloat32m1_t vfwredosum(vfloat32m1_t op0, vfloat16mf4_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16mf4_f32m1_m)))
-vfloat32m1_t vfwredosum(vbool64_t op0, vfloat32m1_t op1, vfloat16mf4_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f16mf4)))
-vfloat16mf4_t vfncvt_f(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f16mf4_m)))
-vfloat16mf4_t vfncvt_f(vbool64_t op0, vfloat16mf4_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f16mf2)))
-vfloat16mf2_t vfncvt_f(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f16mf2_m)))
-vfloat16mf2_t vfncvt_f(vbool32_t op0, vfloat16mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f16m1)))
-vfloat16m1_t vfncvt_f(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f16m1_m)))
-vfloat16m1_t vfncvt_f(vbool16_t op0, vfloat16m1_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f16m2)))
-vfloat16m2_t vfncvt_f(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f16m2_m)))
-vfloat16m2_t vfncvt_f(vbool8_t op0, vfloat16m2_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f16m4)))
-vfloat16m4_t vfncvt_f(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f16m4_m)))
-vfloat16m4_t vfncvt_f(vbool4_t op0, vfloat16m4_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f16mf4)))
-vfloat16mf4_t vfncvt_rod_f(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f16mf4_m)))
-vfloat16mf4_t vfncvt_rod_f(vbool64_t op0, vfloat16mf4_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f16mf2)))
-vfloat16mf2_t vfncvt_rod_f(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f16mf2_m)))
-vfloat16mf2_t vfncvt_rod_f(vbool32_t op0, vfloat16mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f16m1)))
-vfloat16m1_t vfncvt_rod_f(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f16m1_m)))
-vfloat16m1_t vfncvt_rod_f(vbool16_t op0, vfloat16m1_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f16m2)))
-vfloat16m2_t vfncvt_rod_f(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f16m2_m)))
-vfloat16m2_t vfncvt_rod_f(vbool8_t op0, vfloat16m2_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f16m4)))
-vfloat16m4_t vfncvt_rod_f(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f16m4_m)))
-vfloat16m4_t vfncvt_rod_f(vbool4_t op0, vfloat16m4_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f32mf2)))
-vfloat32mf2_t vfwcvt_f(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f32mf2_m)))
-vfloat32mf2_t vfwcvt_f(vbool64_t op0, vfloat32mf2_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f32m1)))
-vfloat32m1_t vfwcvt_f(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f32m1_m)))
-vfloat32m1_t vfwcvt_f(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f32m2)))
-vfloat32m2_t vfwcvt_f(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f32m2_m)))
-vfloat32m2_t vfwcvt_f(vbool16_t op0, vfloat32m2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f32m4)))
-vfloat32m4_t vfwcvt_f(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f32m4_m)))
-vfloat32m4_t vfwcvt_f(vbool8_t op0, vfloat32m4_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f32m8)))
-vfloat32m8_t vfwcvt_f(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f32m8_m)))
-vfloat32m8_t vfwcvt_f(vbool4_t op0, vfloat32m8_t op1, vfloat16m4_t op2, size_t op3);
-
-#endif
-
-#if defined(__riscv_zvamo)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i32m1)))
-vint32m1_t vamoswapei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i32m1_m)))
-vint32m1_t vamoswapei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i32m2)))
-vint32m2_t vamoswapei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i32m2_m)))
-vint32m2_t vamoswapei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i32m4)))
-vint32m4_t vamoswapei16(int32_t * op0, vuint16m2_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i32m4_m)))
-vint32m4_t vamoswapei16(vbool8_t op0, int32_t * op1, vuint16m2_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i32m8)))
-vint32m8_t vamoswapei16(int32_t * op0, vuint16m4_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i32m8_m)))
-vint32m8_t vamoswapei16(vbool4_t op0, int32_t * op1, vuint16m4_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i32mf2)))
-vint32mf2_t vamoswapei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i32mf2_m)))
-vint32mf2_t vamoswapei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u32m1)))
-vuint32m1_t vamoswapei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u32m1_m)))
-vuint32m1_t vamoswapei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u32m2)))
-vuint32m2_t vamoswapei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u32m2_m)))
-vuint32m2_t vamoswapei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u32m4)))
-vuint32m4_t vamoswapei16(uint32_t * op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u32m4_m)))
-vuint32m4_t vamoswapei16(vbool8_t op0, uint32_t * op1, vuint16m2_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u32m8)))
-vuint32m8_t vamoswapei16(uint32_t * op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u32m8_m)))
-vuint32m8_t vamoswapei16(vbool4_t op0, uint32_t * op1, vuint16m4_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u32mf2)))
-vuint32mf2_t vamoswapei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u32mf2_m)))
-vuint32mf2_t vamoswapei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i32m1)))
-vint32m1_t vamoswapei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i32m1_m)))
-vint32m1_t vamoswapei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i32m2)))
-vint32m2_t vamoswapei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i32m2_m)))
-vint32m2_t vamoswapei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i32m4)))
-vint32m4_t vamoswapei32(int32_t * op0, vuint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i32m4_m)))
-vint32m4_t vamoswapei32(vbool8_t op0, int32_t * op1, vuint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i32m8)))
-vint32m8_t vamoswapei32(int32_t * op0, vuint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i32m8_m)))
-vint32m8_t vamoswapei32(vbool4_t op0, int32_t * op1, vuint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i32mf2)))
-vint32mf2_t vamoswapei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i32mf2_m)))
-vint32mf2_t vamoswapei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u32m1)))
-vuint32m1_t vamoswapei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u32m1_m)))
-vuint32m1_t vamoswapei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u32m2)))
-vuint32m2_t vamoswapei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u32m2_m)))
-vuint32m2_t vamoswapei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u32m4)))
-vuint32m4_t vamoswapei32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u32m4_m)))
-vuint32m4_t vamoswapei32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u32m8)))
-vuint32m8_t vamoswapei32(uint32_t * op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u32m8_m)))
-vuint32m8_t vamoswapei32(vbool4_t op0, uint32_t * op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u32mf2)))
-vuint32mf2_t vamoswapei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u32mf2_m)))
-vuint32mf2_t vamoswapei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i32m1)))
-vint32m1_t vamoswapei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i32m1_m)))
-vint32m1_t vamoswapei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i32m2)))
-vint32m2_t vamoswapei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i32m2_m)))
-vint32m2_t vamoswapei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i32m4)))
-vint32m4_t vamoswapei64(int32_t * op0, vuint64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i32m4_m)))
-vint32m4_t vamoswapei64(vbool8_t op0, int32_t * op1, vuint64m8_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i32mf2)))
-vint32mf2_t vamoswapei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i32mf2_m)))
-vint32mf2_t vamoswapei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u32m1)))
-vuint32m1_t vamoswapei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u32m1_m)))
-vuint32m1_t vamoswapei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u32m2)))
-vuint32m2_t vamoswapei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u32m2_m)))
-vuint32m2_t vamoswapei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u32m4)))
-vuint32m4_t vamoswapei64(uint32_t * op0, vuint64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u32m4_m)))
-vuint32m4_t vamoswapei64(vbool8_t op0, uint32_t * op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u32mf2)))
-vuint32mf2_t vamoswapei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u32mf2_m)))
-vuint32mf2_t vamoswapei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i64m1)))
-vint64m1_t vamoswapei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i64m1_m)))
-vint64m1_t vamoswapei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i64m2)))
-vint64m2_t vamoswapei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i64m2_m)))
-vint64m2_t vamoswapei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i64m4)))
-vint64m4_t vamoswapei8(int64_t * op0, vuint8mf2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i64m4_m)))
-vint64m4_t vamoswapei8(vbool16_t op0, int64_t * op1, vuint8mf2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i64m8)))
-vint64m8_t vamoswapei8(int64_t * op0, vuint8m1_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i64m8_m)))
-vint64m8_t vamoswapei8(vbool8_t op0, int64_t * op1, vuint8m1_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u64m1)))
-vuint64m1_t vamoswapei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u64m1_m)))
-vuint64m1_t vamoswapei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u64m2)))
-vuint64m2_t vamoswapei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u64m2_m)))
-vuint64m2_t vamoswapei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u64m4)))
-vuint64m4_t vamoswapei8(uint64_t * op0, vuint8mf2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u64m4_m)))
-vuint64m4_t vamoswapei8(vbool16_t op0, uint64_t * op1, vuint8mf2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u64m8)))
-vuint64m8_t vamoswapei8(uint64_t * op0, vuint8m1_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u64m8_m)))
-vuint64m8_t vamoswapei8(vbool8_t op0, uint64_t * op1, vuint8m1_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i64m1)))
-vint64m1_t vamoswapei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i64m1_m)))
-vint64m1_t vamoswapei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i64m2)))
-vint64m2_t vamoswapei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i64m2_m)))
-vint64m2_t vamoswapei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i64m4)))
-vint64m4_t vamoswapei16(int64_t * op0, vuint16m1_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i64m4_m)))
-vint64m4_t vamoswapei16(vbool16_t op0, int64_t * op1, vuint16m1_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i64m8)))
-vint64m8_t vamoswapei16(int64_t * op0, vuint16m2_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i64m8_m)))
-vint64m8_t vamoswapei16(vbool8_t op0, int64_t * op1, vuint16m2_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u64m1)))
-vuint64m1_t vamoswapei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u64m1_m)))
-vuint64m1_t vamoswapei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u64m2)))
-vuint64m2_t vamoswapei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u64m2_m)))
-vuint64m2_t vamoswapei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u64m4)))
-vuint64m4_t vamoswapei16(uint64_t * op0, vuint16m1_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u64m4_m)))
-vuint64m4_t vamoswapei16(vbool16_t op0, uint64_t * op1, vuint16m1_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u64m8)))
-vuint64m8_t vamoswapei16(uint64_t * op0, vuint16m2_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u64m8_m)))
-vuint64m8_t vamoswapei16(vbool8_t op0, uint64_t * op1, vuint16m2_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i64m1)))
-vint64m1_t vamoswapei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i64m1_m)))
-vint64m1_t vamoswapei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i64m2)))
-vint64m2_t vamoswapei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i64m2_m)))
-vint64m2_t vamoswapei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i64m4)))
-vint64m4_t vamoswapei32(int64_t * op0, vuint32m2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i64m4_m)))
-vint64m4_t vamoswapei32(vbool16_t op0, int64_t * op1, vuint32m2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i64m8)))
-vint64m8_t vamoswapei32(int64_t * op0, vuint32m4_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i64m8_m)))
-vint64m8_t vamoswapei32(vbool8_t op0, int64_t * op1, vuint32m4_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u64m1)))
-vuint64m1_t vamoswapei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u64m1_m)))
-vuint64m1_t vamoswapei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u64m2)))
-vuint64m2_t vamoswapei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u64m2_m)))
-vuint64m2_t vamoswapei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u64m4)))
-vuint64m4_t vamoswapei32(uint64_t * op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u64m4_m)))
-vuint64m4_t vamoswapei32(vbool16_t op0, uint64_t * op1, vuint32m2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u64m8)))
-vuint64m8_t vamoswapei32(uint64_t * op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u64m8_m)))
-vuint64m8_t vamoswapei32(vbool8_t op0, uint64_t * op1, vuint32m4_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i64m1)))
-vint64m1_t vamoswapei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i64m1_m)))
-vint64m1_t vamoswapei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i64m2)))
-vint64m2_t vamoswapei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i64m2_m)))
-vint64m2_t vamoswapei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i64m4)))
-vint64m4_t vamoswapei64(int64_t * op0, vuint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i64m4_m)))
-vint64m4_t vamoswapei64(vbool16_t op0, int64_t * op1, vuint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i64m8)))
-vint64m8_t vamoswapei64(int64_t * op0, vuint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i64m8_m)))
-vint64m8_t vamoswapei64(vbool8_t op0, int64_t * op1, vuint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u64m1)))
-vuint64m1_t vamoswapei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u64m1_m)))
-vuint64m1_t vamoswapei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u64m2)))
-vuint64m2_t vamoswapei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u64m2_m)))
-vuint64m2_t vamoswapei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u64m4)))
-vuint64m4_t vamoswapei64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u64m4_m)))
-vuint64m4_t vamoswapei64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u64m8)))
-vuint64m8_t vamoswapei64(uint64_t * op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u64m8_m)))
-vuint64m8_t vamoswapei64(vbool8_t op0, uint64_t * op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i32m1)))
-vint32m1_t vamoaddei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i32m1_m)))
-vint32m1_t vamoaddei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i32m2)))
-vint32m2_t vamoaddei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i32m2_m)))
-vint32m2_t vamoaddei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i32m4)))
-vint32m4_t vamoaddei8(int32_t * op0, vuint8m1_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i32m4_m)))
-vint32m4_t vamoaddei8(vbool8_t op0, int32_t * op1, vuint8m1_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i32m8)))
-vint32m8_t vamoaddei8(int32_t * op0, vuint8m2_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i32m8_m)))
-vint32m8_t vamoaddei8(vbool4_t op0, int32_t * op1, vuint8m2_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i32mf2)))
-vint32mf2_t vamoaddei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i32mf2_m)))
-vint32mf2_t vamoaddei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u32m1)))
-vuint32m1_t vamoaddei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u32m1_m)))
-vuint32m1_t vamoaddei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u32m2)))
-vuint32m2_t vamoaddei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u32m2_m)))
-vuint32m2_t vamoaddei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u32m4)))
-vuint32m4_t vamoaddei8(uint32_t * op0, vuint8m1_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u32m4_m)))
-vuint32m4_t vamoaddei8(vbool8_t op0, uint32_t * op1, vuint8m1_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u32m8)))
-vuint32m8_t vamoaddei8(uint32_t * op0, vuint8m2_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u32m8_m)))
-vuint32m8_t vamoaddei8(vbool4_t op0, uint32_t * op1, vuint8m2_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u32mf2)))
-vuint32mf2_t vamoaddei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u32mf2_m)))
-vuint32mf2_t vamoaddei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i32m1)))
-vint32m1_t vamoaddei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i32m1_m)))
-vint32m1_t vamoaddei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i32m2)))
-vint32m2_t vamoaddei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i32m2_m)))
-vint32m2_t vamoaddei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i32m4)))
-vint32m4_t vamoaddei16(int32_t * op0, vuint16m2_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i32m4_m)))
-vint32m4_t vamoaddei16(vbool8_t op0, int32_t * op1, vuint16m2_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i32m8)))
-vint32m8_t vamoaddei16(int32_t * op0, vuint16m4_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i32m8_m)))
-vint32m8_t vamoaddei16(vbool4_t op0, int32_t * op1, vuint16m4_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i32mf2)))
-vint32mf2_t vamoaddei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i32mf2_m)))
-vint32mf2_t vamoaddei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u32m1)))
-vuint32m1_t vamoaddei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u32m1_m)))
-vuint32m1_t vamoaddei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u32m2)))
-vuint32m2_t vamoaddei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u32m2_m)))
-vuint32m2_t vamoaddei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u32m4)))
-vuint32m4_t vamoaddei16(uint32_t * op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u32m4_m)))
-vuint32m4_t vamoaddei16(vbool8_t op0, uint32_t * op1, vuint16m2_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u32m8)))
-vuint32m8_t vamoaddei16(uint32_t * op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u32m8_m)))
-vuint32m8_t vamoaddei16(vbool4_t op0, uint32_t * op1, vuint16m4_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u32mf2)))
-vuint32mf2_t vamoaddei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u32mf2_m)))
-vuint32mf2_t vamoaddei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i32m1)))
-vint32m1_t vamoaddei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i32m1_m)))
-vint32m1_t vamoaddei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i32m2)))
-vint32m2_t vamoaddei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i32m2_m)))
-vint32m2_t vamoaddei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i32m4)))
-vint32m4_t vamoaddei32(int32_t * op0, vuint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i32m4_m)))
-vint32m4_t vamoaddei32(vbool8_t op0, int32_t * op1, vuint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i32m8)))
-vint32m8_t vamoaddei32(int32_t * op0, vuint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i32m8_m)))
-vint32m8_t vamoaddei32(vbool4_t op0, int32_t * op1, vuint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i32mf2)))
-vint32mf2_t vamoaddei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i32mf2_m)))
-vint32mf2_t vamoaddei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u32m1)))
-vuint32m1_t vamoaddei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u32m1_m)))
-vuint32m1_t vamoaddei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u32m2)))
-vuint32m2_t vamoaddei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u32m2_m)))
-vuint32m2_t vamoaddei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u32m4)))
-vuint32m4_t vamoaddei32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u32m4_m)))
-vuint32m4_t vamoaddei32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u32m8)))
-vuint32m8_t vamoaddei32(uint32_t * op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u32m8_m)))
-vuint32m8_t vamoaddei32(vbool4_t op0, uint32_t * op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u32mf2)))
-vuint32mf2_t vamoaddei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u32mf2_m)))
-vuint32mf2_t vamoaddei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i32m1)))
-vint32m1_t vamoaddei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i32m1_m)))
-vint32m1_t vamoaddei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i32m2)))
-vint32m2_t vamoaddei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i32m2_m)))
-vint32m2_t vamoaddei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i32m4)))
-vint32m4_t vamoaddei64(int32_t * op0, vuint64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i32m4_m)))
-vint32m4_t vamoaddei64(vbool8_t op0, int32_t * op1, vuint64m8_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i32mf2)))
-vint32mf2_t vamoaddei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i32mf2_m)))
-vint32mf2_t vamoaddei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u32m1)))
-vuint32m1_t vamoaddei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u32m1_m)))
-vuint32m1_t vamoaddei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u32m2)))
-vuint32m2_t vamoaddei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u32m2_m)))
-vuint32m2_t vamoaddei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u32m4)))
-vuint32m4_t vamoaddei64(uint32_t * op0, vuint64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u32m4_m)))
-vuint32m4_t vamoaddei64(vbool8_t op0, uint32_t * op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u32mf2)))
-vuint32mf2_t vamoaddei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u32mf2_m)))
-vuint32mf2_t vamoaddei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i64m1)))
-vint64m1_t vamoaddei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i64m1_m)))
-vint64m1_t vamoaddei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i64m2)))
-vint64m2_t vamoaddei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i64m2_m)))
-vint64m2_t vamoaddei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i64m4)))
-vint64m4_t vamoaddei8(int64_t * op0, vuint8mf2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i64m4_m)))
-vint64m4_t vamoaddei8(vbool16_t op0, int64_t * op1, vuint8mf2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i64m8)))
-vint64m8_t vamoaddei8(int64_t * op0, vuint8m1_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i64m8_m)))
-vint64m8_t vamoaddei8(vbool8_t op0, int64_t * op1, vuint8m1_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u64m1)))
-vuint64m1_t vamoaddei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u64m1_m)))
-vuint64m1_t vamoaddei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u64m2)))
-vuint64m2_t vamoaddei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u64m2_m)))
-vuint64m2_t vamoaddei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u64m4)))
-vuint64m4_t vamoaddei8(uint64_t * op0, vuint8mf2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u64m4_m)))
-vuint64m4_t vamoaddei8(vbool16_t op0, uint64_t * op1, vuint8mf2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u64m8)))
-vuint64m8_t vamoaddei8(uint64_t * op0, vuint8m1_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u64m8_m)))
-vuint64m8_t vamoaddei8(vbool8_t op0, uint64_t * op1, vuint8m1_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i64m1)))
-vint64m1_t vamoaddei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i64m1_m)))
-vint64m1_t vamoaddei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i64m2)))
-vint64m2_t vamoaddei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i64m2_m)))
-vint64m2_t vamoaddei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i64m4)))
-vint64m4_t vamoaddei16(int64_t * op0, vuint16m1_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i64m4_m)))
-vint64m4_t vamoaddei16(vbool16_t op0, int64_t * op1, vuint16m1_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i64m8)))
-vint64m8_t vamoaddei16(int64_t * op0, vuint16m2_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i64m8_m)))
-vint64m8_t vamoaddei16(vbool8_t op0, int64_t * op1, vuint16m2_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u64m1)))
-vuint64m1_t vamoaddei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u64m1_m)))
-vuint64m1_t vamoaddei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u64m2)))
-vuint64m2_t vamoaddei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u64m2_m)))
-vuint64m2_t vamoaddei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u64m4)))
-vuint64m4_t vamoaddei16(uint64_t * op0, vuint16m1_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u64m4_m)))
-vuint64m4_t vamoaddei16(vbool16_t op0, uint64_t * op1, vuint16m1_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u64m8)))
-vuint64m8_t vamoaddei16(uint64_t * op0, vuint16m2_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u64m8_m)))
-vuint64m8_t vamoaddei16(vbool8_t op0, uint64_t * op1, vuint16m2_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i64m1)))
-vint64m1_t vamoaddei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i64m1_m)))
-vint64m1_t vamoaddei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i64m2)))
-vint64m2_t vamoaddei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i64m2_m)))
-vint64m2_t vamoaddei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i64m4)))
-vint64m4_t vamoaddei32(int64_t * op0, vuint32m2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i64m4_m)))
-vint64m4_t vamoaddei32(vbool16_t op0, int64_t * op1, vuint32m2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i64m8)))
-vint64m8_t vamoaddei32(int64_t * op0, vuint32m4_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i64m8_m)))
-vint64m8_t vamoaddei32(vbool8_t op0, int64_t * op1, vuint32m4_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u64m1)))
-vuint64m1_t vamoaddei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u64m1_m)))
-vuint64m1_t vamoaddei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u64m2)))
-vuint64m2_t vamoaddei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u64m2_m)))
-vuint64m2_t vamoaddei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u64m4)))
-vuint64m4_t vamoaddei32(uint64_t * op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u64m4_m)))
-vuint64m4_t vamoaddei32(vbool16_t op0, uint64_t * op1, vuint32m2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u64m8)))
-vuint64m8_t vamoaddei32(uint64_t * op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u64m8_m)))
-vuint64m8_t vamoaddei32(vbool8_t op0, uint64_t * op1, vuint32m4_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i64m1)))
-vint64m1_t vamoaddei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i64m1_m)))
-vint64m1_t vamoaddei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i64m2)))
-vint64m2_t vamoaddei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i64m2_m)))
-vint64m2_t vamoaddei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i64m4)))
-vint64m4_t vamoaddei64(int64_t * op0, vuint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i64m4_m)))
-vint64m4_t vamoaddei64(vbool16_t op0, int64_t * op1, vuint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i64m8)))
-vint64m8_t vamoaddei64(int64_t * op0, vuint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i64m8_m)))
-vint64m8_t vamoaddei64(vbool8_t op0, int64_t * op1, vuint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u64m1)))
-vuint64m1_t vamoaddei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u64m1_m)))
-vuint64m1_t vamoaddei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u64m2)))
-vuint64m2_t vamoaddei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u64m2_m)))
-vuint64m2_t vamoaddei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u64m4)))
-vuint64m4_t vamoaddei64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u64m4_m)))
-vuint64m4_t vamoaddei64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u64m8)))
-vuint64m8_t vamoaddei64(uint64_t * op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u64m8_m)))
-vuint64m8_t vamoaddei64(vbool8_t op0, uint64_t * op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i32m1)))
-vint32m1_t vamoxorei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i32m1_m)))
-vint32m1_t vamoxorei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i32m2)))
-vint32m2_t vamoxorei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i32m2_m)))
-vint32m2_t vamoxorei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i32m4)))
-vint32m4_t vamoxorei8(int32_t * op0, vuint8m1_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i32m4_m)))
-vint32m4_t vamoxorei8(vbool8_t op0, int32_t * op1, vuint8m1_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i32m8)))
-vint32m8_t vamoxorei8(int32_t * op0, vuint8m2_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i32m8_m)))
-vint32m8_t vamoxorei8(vbool4_t op0, int32_t * op1, vuint8m2_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i32mf2)))
-vint32mf2_t vamoxorei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i32mf2_m)))
-vint32mf2_t vamoxorei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u32m1)))
-vuint32m1_t vamoxorei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u32m1_m)))
-vuint32m1_t vamoxorei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u32m2)))
-vuint32m2_t vamoxorei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u32m2_m)))
-vuint32m2_t vamoxorei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u32m4)))
-vuint32m4_t vamoxorei8(uint32_t * op0, vuint8m1_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u32m4_m)))
-vuint32m4_t vamoxorei8(vbool8_t op0, uint32_t * op1, vuint8m1_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u32m8)))
-vuint32m8_t vamoxorei8(uint32_t * op0, vuint8m2_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u32m8_m)))
-vuint32m8_t vamoxorei8(vbool4_t op0, uint32_t * op1, vuint8m2_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u32mf2)))
-vuint32mf2_t vamoxorei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u32mf2_m)))
-vuint32mf2_t vamoxorei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i32m1)))
-vint32m1_t vamoxorei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i32m1_m)))
-vint32m1_t vamoxorei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i32m2)))
-vint32m2_t vamoxorei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i32m2_m)))
-vint32m2_t vamoxorei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i32m4)))
-vint32m4_t vamoxorei16(int32_t * op0, vuint16m2_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i32m4_m)))
-vint32m4_t vamoxorei16(vbool8_t op0, int32_t * op1, vuint16m2_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i32m8)))
-vint32m8_t vamoxorei16(int32_t * op0, vuint16m4_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i32m8_m)))
-vint32m8_t vamoxorei16(vbool4_t op0, int32_t * op1, vuint16m4_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i32mf2)))
-vint32mf2_t vamoxorei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i32mf2_m)))
-vint32mf2_t vamoxorei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u32m1)))
-vuint32m1_t vamoxorei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u32m1_m)))
-vuint32m1_t vamoxorei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u32m2)))
-vuint32m2_t vamoxorei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u32m2_m)))
-vuint32m2_t vamoxorei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u32m4)))
-vuint32m4_t vamoxorei16(uint32_t * op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u32m4_m)))
-vuint32m4_t vamoxorei16(vbool8_t op0, uint32_t * op1, vuint16m2_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u32m8)))
-vuint32m8_t vamoxorei16(uint32_t * op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u32m8_m)))
-vuint32m8_t vamoxorei16(vbool4_t op0, uint32_t * op1, vuint16m4_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u32mf2)))
-vuint32mf2_t vamoxorei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u32mf2_m)))
-vuint32mf2_t vamoxorei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i32m1)))
-vint32m1_t vamoxorei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i32m1_m)))
-vint32m1_t vamoxorei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i32m2)))
-vint32m2_t vamoxorei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i32m2_m)))
-vint32m2_t vamoxorei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i32m4)))
-vint32m4_t vamoxorei32(int32_t * op0, vuint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i32m4_m)))
-vint32m4_t vamoxorei32(vbool8_t op0, int32_t * op1, vuint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i32m8)))
-vint32m8_t vamoxorei32(int32_t * op0, vuint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i32m8_m)))
-vint32m8_t vamoxorei32(vbool4_t op0, int32_t * op1, vuint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i32mf2)))
-vint32mf2_t vamoxorei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i32mf2_m)))
-vint32mf2_t vamoxorei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u32m1)))
-vuint32m1_t vamoxorei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u32m1_m)))
-vuint32m1_t vamoxorei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u32m2)))
-vuint32m2_t vamoxorei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u32m2_m)))
-vuint32m2_t vamoxorei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u32m4)))
-vuint32m4_t vamoxorei32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u32m4_m)))
-vuint32m4_t vamoxorei32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u32m8)))
-vuint32m8_t vamoxorei32(uint32_t * op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u32m8_m)))
-vuint32m8_t vamoxorei32(vbool4_t op0, uint32_t * op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u32mf2)))
-vuint32mf2_t vamoxorei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u32mf2_m)))
-vuint32mf2_t vamoxorei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i32m1)))
-vint32m1_t vamoxorei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i32m1_m)))
-vint32m1_t vamoxorei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i32m2)))
-vint32m2_t vamoxorei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i32m2_m)))
-vint32m2_t vamoxorei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i32m4)))
-vint32m4_t vamoxorei64(int32_t * op0, vuint64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i32m4_m)))
-vint32m4_t vamoxorei64(vbool8_t op0, int32_t * op1, vuint64m8_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i32mf2)))
-vint32mf2_t vamoxorei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i32mf2_m)))
-vint32mf2_t vamoxorei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u32m1)))
-vuint32m1_t vamoxorei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u32m1_m)))
-vuint32m1_t vamoxorei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u32m2)))
-vuint32m2_t vamoxorei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u32m2_m)))
-vuint32m2_t vamoxorei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u32m4)))
-vuint32m4_t vamoxorei64(uint32_t * op0, vuint64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u32m4_m)))
-vuint32m4_t vamoxorei64(vbool8_t op0, uint32_t * op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u32mf2)))
-vuint32mf2_t vamoxorei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u32mf2_m)))
-vuint32mf2_t vamoxorei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i64m1)))
-vint64m1_t vamoxorei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i64m1_m)))
-vint64m1_t vamoxorei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i64m2)))
-vint64m2_t vamoxorei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i64m2_m)))
-vint64m2_t vamoxorei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i64m4)))
-vint64m4_t vamoxorei8(int64_t * op0, vuint8mf2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i64m4_m)))
-vint64m4_t vamoxorei8(vbool16_t op0, int64_t * op1, vuint8mf2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i64m8)))
-vint64m8_t vamoxorei8(int64_t * op0, vuint8m1_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i64m8_m)))
-vint64m8_t vamoxorei8(vbool8_t op0, int64_t * op1, vuint8m1_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u64m1)))
-vuint64m1_t vamoxorei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u64m1_m)))
-vuint64m1_t vamoxorei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u64m2)))
-vuint64m2_t vamoxorei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u64m2_m)))
-vuint64m2_t vamoxorei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u64m4)))
-vuint64m4_t vamoxorei8(uint64_t * op0, vuint8mf2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u64m4_m)))
-vuint64m4_t vamoxorei8(vbool16_t op0, uint64_t * op1, vuint8mf2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u64m8)))
-vuint64m8_t vamoxorei8(uint64_t * op0, vuint8m1_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u64m8_m)))
-vuint64m8_t vamoxorei8(vbool8_t op0, uint64_t * op1, vuint8m1_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i64m1)))
-vint64m1_t vamoxorei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i64m1_m)))
-vint64m1_t vamoxorei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i64m2)))
-vint64m2_t vamoxorei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i64m2_m)))
-vint64m2_t vamoxorei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i64m4)))
-vint64m4_t vamoxorei16(int64_t * op0, vuint16m1_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i64m4_m)))
-vint64m4_t vamoxorei16(vbool16_t op0, int64_t * op1, vuint16m1_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i64m8)))
-vint64m8_t vamoxorei16(int64_t * op0, vuint16m2_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i64m8_m)))
-vint64m8_t vamoxorei16(vbool8_t op0, int64_t * op1, vuint16m2_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u64m1)))
-vuint64m1_t vamoxorei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u64m1_m)))
-vuint64m1_t vamoxorei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u64m2)))
-vuint64m2_t vamoxorei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u64m2_m)))
-vuint64m2_t vamoxorei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u64m4)))
-vuint64m4_t vamoxorei16(uint64_t * op0, vuint16m1_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u64m4_m)))
-vuint64m4_t vamoxorei16(vbool16_t op0, uint64_t * op1, vuint16m1_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u64m8)))
-vuint64m8_t vamoxorei16(uint64_t * op0, vuint16m2_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u64m8_m)))
-vuint64m8_t vamoxorei16(vbool8_t op0, uint64_t * op1, vuint16m2_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i64m1)))
-vint64m1_t vamoxorei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i64m1_m)))
-vint64m1_t vamoxorei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i64m2)))
-vint64m2_t vamoxorei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i64m2_m)))
-vint64m2_t vamoxorei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i64m4)))
-vint64m4_t vamoxorei32(int64_t * op0, vuint32m2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i64m4_m)))
-vint64m4_t vamoxorei32(vbool16_t op0, int64_t * op1, vuint32m2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i64m8)))
-vint64m8_t vamoxorei32(int64_t * op0, vuint32m4_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i64m8_m)))
-vint64m8_t vamoxorei32(vbool8_t op0, int64_t * op1, vuint32m4_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u64m1)))
-vuint64m1_t vamoxorei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u64m1_m)))
-vuint64m1_t vamoxorei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u64m2)))
-vuint64m2_t vamoxorei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u64m2_m)))
-vuint64m2_t vamoxorei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u64m4)))
-vuint64m4_t vamoxorei32(uint64_t * op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u64m4_m)))
-vuint64m4_t vamoxorei32(vbool16_t op0, uint64_t * op1, vuint32m2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u64m8)))
-vuint64m8_t vamoxorei32(uint64_t * op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u64m8_m)))
-vuint64m8_t vamoxorei32(vbool8_t op0, uint64_t * op1, vuint32m4_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i64m1)))
-vint64m1_t vamoxorei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i64m1_m)))
-vint64m1_t vamoxorei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i64m2)))
-vint64m2_t vamoxorei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i64m2_m)))
-vint64m2_t vamoxorei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i64m4)))
-vint64m4_t vamoxorei64(int64_t * op0, vuint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i64m4_m)))
-vint64m4_t vamoxorei64(vbool16_t op0, int64_t * op1, vuint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i64m8)))
-vint64m8_t vamoxorei64(int64_t * op0, vuint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i64m8_m)))
-vint64m8_t vamoxorei64(vbool8_t op0, int64_t * op1, vuint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u64m1)))
-vuint64m1_t vamoxorei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u64m1_m)))
-vuint64m1_t vamoxorei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u64m2)))
-vuint64m2_t vamoxorei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u64m2_m)))
-vuint64m2_t vamoxorei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u64m4)))
-vuint64m4_t vamoxorei64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u64m4_m)))
-vuint64m4_t vamoxorei64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u64m8)))
-vuint64m8_t vamoxorei64(uint64_t * op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u64m8_m)))
-vuint64m8_t vamoxorei64(vbool8_t op0, uint64_t * op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i32m1)))
-vint32m1_t vamoandei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i32m1_m)))
-vint32m1_t vamoandei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i32m2)))
-vint32m2_t vamoandei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i32m2_m)))
-vint32m2_t vamoandei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i32m4)))
-vint32m4_t vamoandei8(int32_t * op0, vuint8m1_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i32m4_m)))
-vint32m4_t vamoandei8(vbool8_t op0, int32_t * op1, vuint8m1_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i32m8)))
-vint32m8_t vamoandei8(int32_t * op0, vuint8m2_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i32m8_m)))
-vint32m8_t vamoandei8(vbool4_t op0, int32_t * op1, vuint8m2_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i32mf2)))
-vint32mf2_t vamoandei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i32mf2_m)))
-vint32mf2_t vamoandei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u32m1)))
-vuint32m1_t vamoandei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u32m1_m)))
-vuint32m1_t vamoandei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u32m2)))
-vuint32m2_t vamoandei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u32m2_m)))
-vuint32m2_t vamoandei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u32m4)))
-vuint32m4_t vamoandei8(uint32_t * op0, vuint8m1_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u32m4_m)))
-vuint32m4_t vamoandei8(vbool8_t op0, uint32_t * op1, vuint8m1_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u32m8)))
-vuint32m8_t vamoandei8(uint32_t * op0, vuint8m2_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u32m8_m)))
-vuint32m8_t vamoandei8(vbool4_t op0, uint32_t * op1, vuint8m2_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u32mf2)))
-vuint32mf2_t vamoandei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u32mf2_m)))
-vuint32mf2_t vamoandei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i32m1)))
-vint32m1_t vamoandei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i32m1_m)))
-vint32m1_t vamoandei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i32m2)))
-vint32m2_t vamoandei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i32m2_m)))
-vint32m2_t vamoandei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i32m4)))
-vint32m4_t vamoandei16(int32_t * op0, vuint16m2_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i32m4_m)))
-vint32m4_t vamoandei16(vbool8_t op0, int32_t * op1, vuint16m2_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i32m8)))
-vint32m8_t vamoandei16(int32_t * op0, vuint16m4_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i32m8_m)))
-vint32m8_t vamoandei16(vbool4_t op0, int32_t * op1, vuint16m4_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i32mf2)))
-vint32mf2_t vamoandei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i32mf2_m)))
-vint32mf2_t vamoandei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u32m1)))
-vuint32m1_t vamoandei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u32m1_m)))
-vuint32m1_t vamoandei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u32m2)))
-vuint32m2_t vamoandei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u32m2_m)))
-vuint32m2_t vamoandei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u32m4)))
-vuint32m4_t vamoandei16(uint32_t * op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u32m4_m)))
-vuint32m4_t vamoandei16(vbool8_t op0, uint32_t * op1, vuint16m2_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u32m8)))
-vuint32m8_t vamoandei16(uint32_t * op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u32m8_m)))
-vuint32m8_t vamoandei16(vbool4_t op0, uint32_t * op1, vuint16m4_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u32mf2)))
-vuint32mf2_t vamoandei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u32mf2_m)))
-vuint32mf2_t vamoandei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i32m1)))
-vint32m1_t vamoandei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i32m1_m)))
-vint32m1_t vamoandei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i32m2)))
-vint32m2_t vamoandei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i32m2_m)))
-vint32m2_t vamoandei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i32m4)))
-vint32m4_t vamoandei32(int32_t * op0, vuint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i32m4_m)))
-vint32m4_t vamoandei32(vbool8_t op0, int32_t * op1, vuint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i32m8)))
-vint32m8_t vamoandei32(int32_t * op0, vuint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i32m8_m)))
-vint32m8_t vamoandei32(vbool4_t op0, int32_t * op1, vuint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i32mf2)))
-vint32mf2_t vamoandei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i32mf2_m)))
-vint32mf2_t vamoandei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u32m1)))
-vuint32m1_t vamoandei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u32m1_m)))
-vuint32m1_t vamoandei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u32m2)))
-vuint32m2_t vamoandei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u32m2_m)))
-vuint32m2_t vamoandei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u32m4)))
-vuint32m4_t vamoandei32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u32m4_m)))
-vuint32m4_t vamoandei32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u32m8)))
-vuint32m8_t vamoandei32(uint32_t * op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u32m8_m)))
-vuint32m8_t vamoandei32(vbool4_t op0, uint32_t * op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u32mf2)))
-vuint32mf2_t vamoandei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u32mf2_m)))
-vuint32mf2_t vamoandei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i32m1)))
-vint32m1_t vamoandei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i32m1_m)))
-vint32m1_t vamoandei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i32m2)))
-vint32m2_t vamoandei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i32m2_m)))
-vint32m2_t vamoandei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i32m4)))
-vint32m4_t vamoandei64(int32_t * op0, vuint64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i32m4_m)))
-vint32m4_t vamoandei64(vbool8_t op0, int32_t * op1, vuint64m8_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i32mf2)))
-vint32mf2_t vamoandei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i32mf2_m)))
-vint32mf2_t vamoandei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u32m1)))
-vuint32m1_t vamoandei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u32m1_m)))
-vuint32m1_t vamoandei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u32m2)))
-vuint32m2_t vamoandei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u32m2_m)))
-vuint32m2_t vamoandei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u32m4)))
-vuint32m4_t vamoandei64(uint32_t * op0, vuint64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u32m4_m)))
-vuint32m4_t vamoandei64(vbool8_t op0, uint32_t * op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u32mf2)))
-vuint32mf2_t vamoandei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u32mf2_m)))
-vuint32mf2_t vamoandei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i64m1)))
-vint64m1_t vamoandei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i64m1_m)))
-vint64m1_t vamoandei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i64m2)))
-vint64m2_t vamoandei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i64m2_m)))
-vint64m2_t vamoandei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i64m4)))
-vint64m4_t vamoandei8(int64_t * op0, vuint8mf2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i64m4_m)))
-vint64m4_t vamoandei8(vbool16_t op0, int64_t * op1, vuint8mf2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i64m8)))
-vint64m8_t vamoandei8(int64_t * op0, vuint8m1_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i64m8_m)))
-vint64m8_t vamoandei8(vbool8_t op0, int64_t * op1, vuint8m1_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u64m1)))
-vuint64m1_t vamoandei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u64m1_m)))
-vuint64m1_t vamoandei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u64m2)))
-vuint64m2_t vamoandei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u64m2_m)))
-vuint64m2_t vamoandei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u64m4)))
-vuint64m4_t vamoandei8(uint64_t * op0, vuint8mf2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u64m4_m)))
-vuint64m4_t vamoandei8(vbool16_t op0, uint64_t * op1, vuint8mf2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u64m8)))
-vuint64m8_t vamoandei8(uint64_t * op0, vuint8m1_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u64m8_m)))
-vuint64m8_t vamoandei8(vbool8_t op0, uint64_t * op1, vuint8m1_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i64m1)))
-vint64m1_t vamoandei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i64m1_m)))
-vint64m1_t vamoandei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i64m2)))
-vint64m2_t vamoandei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i64m2_m)))
-vint64m2_t vamoandei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i64m4)))
-vint64m4_t vamoandei16(int64_t * op0, vuint16m1_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i64m4_m)))
-vint64m4_t vamoandei16(vbool16_t op0, int64_t * op1, vuint16m1_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i64m8)))
-vint64m8_t vamoandei16(int64_t * op0, vuint16m2_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i64m8_m)))
-vint64m8_t vamoandei16(vbool8_t op0, int64_t * op1, vuint16m2_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u64m1)))
-vuint64m1_t vamoandei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u64m1_m)))
-vuint64m1_t vamoandei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u64m2)))
-vuint64m2_t vamoandei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u64m2_m)))
-vuint64m2_t vamoandei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u64m4)))
-vuint64m4_t vamoandei16(uint64_t * op0, vuint16m1_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u64m4_m)))
-vuint64m4_t vamoandei16(vbool16_t op0, uint64_t * op1, vuint16m1_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u64m8)))
-vuint64m8_t vamoandei16(uint64_t * op0, vuint16m2_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u64m8_m)))
-vuint64m8_t vamoandei16(vbool8_t op0, uint64_t * op1, vuint16m2_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i64m1)))
-vint64m1_t vamoandei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i64m1_m)))
-vint64m1_t vamoandei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i64m2)))
-vint64m2_t vamoandei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i64m2_m)))
-vint64m2_t vamoandei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i64m4)))
-vint64m4_t vamoandei32(int64_t * op0, vuint32m2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i64m4_m)))
-vint64m4_t vamoandei32(vbool16_t op0, int64_t * op1, vuint32m2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i64m8)))
-vint64m8_t vamoandei32(int64_t * op0, vuint32m4_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i64m8_m)))
-vint64m8_t vamoandei32(vbool8_t op0, int64_t * op1, vuint32m4_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u64m1)))
-vuint64m1_t vamoandei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u64m1_m)))
-vuint64m1_t vamoandei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u64m2)))
-vuint64m2_t vamoandei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u64m2_m)))
-vuint64m2_t vamoandei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u64m4)))
-vuint64m4_t vamoandei32(uint64_t * op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u64m4_m)))
-vuint64m4_t vamoandei32(vbool16_t op0, uint64_t * op1, vuint32m2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u64m8)))
-vuint64m8_t vamoandei32(uint64_t * op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u64m8_m)))
-vuint64m8_t vamoandei32(vbool8_t op0, uint64_t * op1, vuint32m4_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i64m1)))
-vint64m1_t vamoandei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i64m1_m)))
-vint64m1_t vamoandei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i64m2)))
-vint64m2_t vamoandei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i64m2_m)))
-vint64m2_t vamoandei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i64m4)))
-vint64m4_t vamoandei64(int64_t * op0, vuint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i64m4_m)))
-vint64m4_t vamoandei64(vbool16_t op0, int64_t * op1, vuint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i64m8)))
-vint64m8_t vamoandei64(int64_t * op0, vuint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i64m8_m)))
-vint64m8_t vamoandei64(vbool8_t op0, int64_t * op1, vuint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u64m1)))
-vuint64m1_t vamoandei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u64m1_m)))
-vuint64m1_t vamoandei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u64m2)))
-vuint64m2_t vamoandei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u64m2_m)))
-vuint64m2_t vamoandei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u64m4)))
-vuint64m4_t vamoandei64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u64m4_m)))
-vuint64m4_t vamoandei64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u64m8)))
-vuint64m8_t vamoandei64(uint64_t * op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u64m8_m)))
-vuint64m8_t vamoandei64(vbool8_t op0, uint64_t * op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i32m1)))
-vint32m1_t vamoorei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i32m1_m)))
-vint32m1_t vamoorei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i32m2)))
-vint32m2_t vamoorei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i32m2_m)))
-vint32m2_t vamoorei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i32m4)))
-vint32m4_t vamoorei8(int32_t * op0, vuint8m1_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i32m4_m)))
-vint32m4_t vamoorei8(vbool8_t op0, int32_t * op1, vuint8m1_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i32m8)))
-vint32m8_t vamoorei8(int32_t * op0, vuint8m2_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i32m8_m)))
-vint32m8_t vamoorei8(vbool4_t op0, int32_t * op1, vuint8m2_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i32mf2)))
-vint32mf2_t vamoorei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i32mf2_m)))
-vint32mf2_t vamoorei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u32m1)))
-vuint32m1_t vamoorei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u32m1_m)))
-vuint32m1_t vamoorei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u32m2)))
-vuint32m2_t vamoorei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u32m2_m)))
-vuint32m2_t vamoorei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u32m4)))
-vuint32m4_t vamoorei8(uint32_t * op0, vuint8m1_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u32m4_m)))
-vuint32m4_t vamoorei8(vbool8_t op0, uint32_t * op1, vuint8m1_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u32m8)))
-vuint32m8_t vamoorei8(uint32_t * op0, vuint8m2_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u32m8_m)))
-vuint32m8_t vamoorei8(vbool4_t op0, uint32_t * op1, vuint8m2_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u32mf2)))
-vuint32mf2_t vamoorei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u32mf2_m)))
-vuint32mf2_t vamoorei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i32m1)))
-vint32m1_t vamoorei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i32m1_m)))
-vint32m1_t vamoorei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i32m2)))
-vint32m2_t vamoorei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i32m2_m)))
-vint32m2_t vamoorei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i32m4)))
-vint32m4_t vamoorei16(int32_t * op0, vuint16m2_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i32m4_m)))
-vint32m4_t vamoorei16(vbool8_t op0, int32_t * op1, vuint16m2_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i32m8)))
-vint32m8_t vamoorei16(int32_t * op0, vuint16m4_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i32m8_m)))
-vint32m8_t vamoorei16(vbool4_t op0, int32_t * op1, vuint16m4_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i32mf2)))
-vint32mf2_t vamoorei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i32mf2_m)))
-vint32mf2_t vamoorei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u32m1)))
-vuint32m1_t vamoorei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u32m1_m)))
-vuint32m1_t vamoorei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u32m2)))
-vuint32m2_t vamoorei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u32m2_m)))
-vuint32m2_t vamoorei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u32m4)))
-vuint32m4_t vamoorei16(uint32_t * op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u32m4_m)))
-vuint32m4_t vamoorei16(vbool8_t op0, uint32_t * op1, vuint16m2_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u32m8)))
-vuint32m8_t vamoorei16(uint32_t * op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u32m8_m)))
-vuint32m8_t vamoorei16(vbool4_t op0, uint32_t * op1, vuint16m4_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u32mf2)))
-vuint32mf2_t vamoorei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u32mf2_m)))
-vuint32mf2_t vamoorei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i32m1)))
-vint32m1_t vamoorei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i32m1_m)))
-vint32m1_t vamoorei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i32m2)))
-vint32m2_t vamoorei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i32m2_m)))
-vint32m2_t vamoorei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i32m4)))
-vint32m4_t vamoorei32(int32_t * op0, vuint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i32m4_m)))
-vint32m4_t vamoorei32(vbool8_t op0, int32_t * op1, vuint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i32m8)))
-vint32m8_t vamoorei32(int32_t * op0, vuint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i32m8_m)))
-vint32m8_t vamoorei32(vbool4_t op0, int32_t * op1, vuint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i32mf2)))
-vint32mf2_t vamoorei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i32mf2_m)))
-vint32mf2_t vamoorei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u32m1)))
-vuint32m1_t vamoorei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u32m1_m)))
-vuint32m1_t vamoorei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u32m2)))
-vuint32m2_t vamoorei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u32m2_m)))
-vuint32m2_t vamoorei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u32m4)))
-vuint32m4_t vamoorei32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u32m4_m)))
-vuint32m4_t vamoorei32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u32m8)))
-vuint32m8_t vamoorei32(uint32_t * op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u32m8_m)))
-vuint32m8_t vamoorei32(vbool4_t op0, uint32_t * op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u32mf2)))
-vuint32mf2_t vamoorei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u32mf2_m)))
-vuint32mf2_t vamoorei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i32m1)))
-vint32m1_t vamoorei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i32m1_m)))
-vint32m1_t vamoorei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i32m2)))
-vint32m2_t vamoorei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i32m2_m)))
-vint32m2_t vamoorei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i32m4)))
-vint32m4_t vamoorei64(int32_t * op0, vuint64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i32m4_m)))
-vint32m4_t vamoorei64(vbool8_t op0, int32_t * op1, vuint64m8_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i32mf2)))
-vint32mf2_t vamoorei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i32mf2_m)))
-vint32mf2_t vamoorei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u32m1)))
-vuint32m1_t vamoorei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u32m1_m)))
-vuint32m1_t vamoorei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u32m2)))
-vuint32m2_t vamoorei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u32m2_m)))
-vuint32m2_t vamoorei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u32m4)))
-vuint32m4_t vamoorei64(uint32_t * op0, vuint64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u32m4_m)))
-vuint32m4_t vamoorei64(vbool8_t op0, uint32_t * op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u32mf2)))
-vuint32mf2_t vamoorei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u32mf2_m)))
-vuint32mf2_t vamoorei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i64m1)))
-vint64m1_t vamoorei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i64m1_m)))
-vint64m1_t vamoorei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i64m2)))
-vint64m2_t vamoorei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i64m2_m)))
-vint64m2_t vamoorei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i64m4)))
-vint64m4_t vamoorei8(int64_t * op0, vuint8mf2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i64m4_m)))
-vint64m4_t vamoorei8(vbool16_t op0, int64_t * op1, vuint8mf2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i64m8)))
-vint64m8_t vamoorei8(int64_t * op0, vuint8m1_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i64m8_m)))
-vint64m8_t vamoorei8(vbool8_t op0, int64_t * op1, vuint8m1_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u64m1)))
-vuint64m1_t vamoorei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u64m1_m)))
-vuint64m1_t vamoorei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u64m2)))
-vuint64m2_t vamoorei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u64m2_m)))
-vuint64m2_t vamoorei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u64m4)))
-vuint64m4_t vamoorei8(uint64_t * op0, vuint8mf2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u64m4_m)))
-vuint64m4_t vamoorei8(vbool16_t op0, uint64_t * op1, vuint8mf2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u64m8)))
-vuint64m8_t vamoorei8(uint64_t * op0, vuint8m1_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u64m8_m)))
-vuint64m8_t vamoorei8(vbool8_t op0, uint64_t * op1, vuint8m1_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i64m1)))
-vint64m1_t vamoorei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i64m1_m)))
-vint64m1_t vamoorei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i64m2)))
-vint64m2_t vamoorei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i64m2_m)))
-vint64m2_t vamoorei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i64m4)))
-vint64m4_t vamoorei16(int64_t * op0, vuint16m1_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i64m4_m)))
-vint64m4_t vamoorei16(vbool16_t op0, int64_t * op1, vuint16m1_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i64m8)))
-vint64m8_t vamoorei16(int64_t * op0, vuint16m2_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i64m8_m)))
-vint64m8_t vamoorei16(vbool8_t op0, int64_t * op1, vuint16m2_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u64m1)))
-vuint64m1_t vamoorei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u64m1_m)))
-vuint64m1_t vamoorei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u64m2)))
-vuint64m2_t vamoorei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u64m2_m)))
-vuint64m2_t vamoorei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u64m4)))
-vuint64m4_t vamoorei16(uint64_t * op0, vuint16m1_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u64m4_m)))
-vuint64m4_t vamoorei16(vbool16_t op0, uint64_t * op1, vuint16m1_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u64m8)))
-vuint64m8_t vamoorei16(uint64_t * op0, vuint16m2_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u64m8_m)))
-vuint64m8_t vamoorei16(vbool8_t op0, uint64_t * op1, vuint16m2_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i64m1)))
-vint64m1_t vamoorei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i64m1_m)))
-vint64m1_t vamoorei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i64m2)))
-vint64m2_t vamoorei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i64m2_m)))
-vint64m2_t vamoorei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i64m4)))
-vint64m4_t vamoorei32(int64_t * op0, vuint32m2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i64m4_m)))
-vint64m4_t vamoorei32(vbool16_t op0, int64_t * op1, vuint32m2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i64m8)))
-vint64m8_t vamoorei32(int64_t * op0, vuint32m4_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i64m8_m)))
-vint64m8_t vamoorei32(vbool8_t op0, int64_t * op1, vuint32m4_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u64m1)))
-vuint64m1_t vamoorei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u64m1_m)))
-vuint64m1_t vamoorei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u64m2)))
-vuint64m2_t vamoorei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u64m2_m)))
-vuint64m2_t vamoorei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u64m4)))
-vuint64m4_t vamoorei32(uint64_t * op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u64m4_m)))
-vuint64m4_t vamoorei32(vbool16_t op0, uint64_t * op1, vuint32m2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u64m8)))
-vuint64m8_t vamoorei32(uint64_t * op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u64m8_m)))
-vuint64m8_t vamoorei32(vbool8_t op0, uint64_t * op1, vuint32m4_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i64m1)))
-vint64m1_t vamoorei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i64m1_m)))
-vint64m1_t vamoorei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i64m2)))
-vint64m2_t vamoorei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i64m2_m)))
-vint64m2_t vamoorei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i64m4)))
-vint64m4_t vamoorei64(int64_t * op0, vuint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i64m4_m)))
-vint64m4_t vamoorei64(vbool16_t op0, int64_t * op1, vuint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i64m8)))
-vint64m8_t vamoorei64(int64_t * op0, vuint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i64m8_m)))
-vint64m8_t vamoorei64(vbool8_t op0, int64_t * op1, vuint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u64m1)))
-vuint64m1_t vamoorei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u64m1_m)))
-vuint64m1_t vamoorei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u64m2)))
-vuint64m2_t vamoorei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u64m2_m)))
-vuint64m2_t vamoorei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u64m4)))
-vuint64m4_t vamoorei64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u64m4_m)))
-vuint64m4_t vamoorei64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u64m8)))
-vuint64m8_t vamoorei64(uint64_t * op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u64m8_m)))
-vuint64m8_t vamoorei64(vbool8_t op0, uint64_t * op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i32m1)))
-vint32m1_t vamominei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i32m1_m)))
-vint32m1_t vamominei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i32m2)))
-vint32m2_t vamominei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i32m2_m)))
-vint32m2_t vamominei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i32m4)))
-vint32m4_t vamominei8(int32_t * op0, vuint8m1_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i32m4_m)))
-vint32m4_t vamominei8(vbool8_t op0, int32_t * op1, vuint8m1_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i32m8)))
-vint32m8_t vamominei8(int32_t * op0, vuint8m2_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i32m8_m)))
-vint32m8_t vamominei8(vbool4_t op0, int32_t * op1, vuint8m2_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i32mf2)))
-vint32mf2_t vamominei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i32mf2_m)))
-vint32mf2_t vamominei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i32m1)))
-vint32m1_t vamominei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i32m1_m)))
-vint32m1_t vamominei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i32m2)))
-vint32m2_t vamominei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i32m2_m)))
-vint32m2_t vamominei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i32m4)))
-vint32m4_t vamominei16(int32_t * op0, vuint16m2_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i32m4_m)))
-vint32m4_t vamominei16(vbool8_t op0, int32_t * op1, vuint16m2_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i32m8)))
-vint32m8_t vamominei16(int32_t * op0, vuint16m4_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i32m8_m)))
-vint32m8_t vamominei16(vbool4_t op0, int32_t * op1, vuint16m4_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i32mf2)))
-vint32mf2_t vamominei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i32mf2_m)))
-vint32mf2_t vamominei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i32m1)))
-vint32m1_t vamominei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i32m1_m)))
-vint32m1_t vamominei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i32m2)))
-vint32m2_t vamominei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i32m2_m)))
-vint32m2_t vamominei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i32m4)))
-vint32m4_t vamominei32(int32_t * op0, vuint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i32m4_m)))
-vint32m4_t vamominei32(vbool8_t op0, int32_t * op1, vuint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i32m8)))
-vint32m8_t vamominei32(int32_t * op0, vuint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i32m8_m)))
-vint32m8_t vamominei32(vbool4_t op0, int32_t * op1, vuint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i32mf2)))
-vint32mf2_t vamominei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i32mf2_m)))
-vint32mf2_t vamominei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i32m1)))
-vint32m1_t vamominei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i32m1_m)))
-vint32m1_t vamominei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i32m2)))
-vint32m2_t vamominei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i32m2_m)))
-vint32m2_t vamominei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i32m4)))
-vint32m4_t vamominei64(int32_t * op0, vuint64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i32m4_m)))
-vint32m4_t vamominei64(vbool8_t op0, int32_t * op1, vuint64m8_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i32mf2)))
-vint32mf2_t vamominei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i32mf2_m)))
-vint32mf2_t vamominei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i64m1)))
-vint64m1_t vamominei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i64m1_m)))
-vint64m1_t vamominei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i64m2)))
-vint64m2_t vamominei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i64m2_m)))
-vint64m2_t vamominei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i64m4)))
-vint64m4_t vamominei8(int64_t * op0, vuint8mf2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i64m4_m)))
-vint64m4_t vamominei8(vbool16_t op0, int64_t * op1, vuint8mf2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i64m8)))
-vint64m8_t vamominei8(int64_t * op0, vuint8m1_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i64m8_m)))
-vint64m8_t vamominei8(vbool8_t op0, int64_t * op1, vuint8m1_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i64m1)))
-vint64m1_t vamominei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i64m1_m)))
-vint64m1_t vamominei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i64m2)))
-vint64m2_t vamominei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i64m2_m)))
-vint64m2_t vamominei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i64m4)))
-vint64m4_t vamominei16(int64_t * op0, vuint16m1_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i64m4_m)))
-vint64m4_t vamominei16(vbool16_t op0, int64_t * op1, vuint16m1_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i64m8)))
-vint64m8_t vamominei16(int64_t * op0, vuint16m2_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i64m8_m)))
-vint64m8_t vamominei16(vbool8_t op0, int64_t * op1, vuint16m2_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i64m1)))
-vint64m1_t vamominei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i64m1_m)))
-vint64m1_t vamominei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i64m2)))
-vint64m2_t vamominei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i64m2_m)))
-vint64m2_t vamominei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i64m4)))
-vint64m4_t vamominei32(int64_t * op0, vuint32m2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i64m4_m)))
-vint64m4_t vamominei32(vbool16_t op0, int64_t * op1, vuint32m2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i64m8)))
-vint64m8_t vamominei32(int64_t * op0, vuint32m4_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i64m8_m)))
-vint64m8_t vamominei32(vbool8_t op0, int64_t * op1, vuint32m4_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i64m1)))
-vint64m1_t vamominei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i64m1_m)))
-vint64m1_t vamominei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i64m2)))
-vint64m2_t vamominei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i64m2_m)))
-vint64m2_t vamominei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i64m4)))
-vint64m4_t vamominei64(int64_t * op0, vuint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i64m4_m)))
-vint64m4_t vamominei64(vbool16_t op0, int64_t * op1, vuint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i64m8)))
-vint64m8_t vamominei64(int64_t * op0, vuint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i64m8_m)))
-vint64m8_t vamominei64(vbool8_t op0, int64_t * op1, vuint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i32m1)))
-vint32m1_t vamomaxei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i32m1_m)))
-vint32m1_t vamomaxei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i32m2)))
-vint32m2_t vamomaxei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i32m2_m)))
-vint32m2_t vamomaxei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i32m4)))
-vint32m4_t vamomaxei8(int32_t * op0, vuint8m1_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i32m4_m)))
-vint32m4_t vamomaxei8(vbool8_t op0, int32_t * op1, vuint8m1_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i32m8)))
-vint32m8_t vamomaxei8(int32_t * op0, vuint8m2_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i32m8_m)))
-vint32m8_t vamomaxei8(vbool4_t op0, int32_t * op1, vuint8m2_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i32mf2)))
-vint32mf2_t vamomaxei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i32mf2_m)))
-vint32mf2_t vamomaxei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i32m1)))
-vint32m1_t vamomaxei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i32m1_m)))
-vint32m1_t vamomaxei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i32m2)))
-vint32m2_t vamomaxei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i32m2_m)))
-vint32m2_t vamomaxei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i32m4)))
-vint32m4_t vamomaxei16(int32_t * op0, vuint16m2_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i32m4_m)))
-vint32m4_t vamomaxei16(vbool8_t op0, int32_t * op1, vuint16m2_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i32m8)))
-vint32m8_t vamomaxei16(int32_t * op0, vuint16m4_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i32m8_m)))
-vint32m8_t vamomaxei16(vbool4_t op0, int32_t * op1, vuint16m4_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i32mf2)))
-vint32mf2_t vamomaxei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i32mf2_m)))
-vint32mf2_t vamomaxei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i32m1)))
-vint32m1_t vamomaxei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i32m1_m)))
-vint32m1_t vamomaxei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i32m2)))
-vint32m2_t vamomaxei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i32m2_m)))
-vint32m2_t vamomaxei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i32m4)))
-vint32m4_t vamomaxei32(int32_t * op0, vuint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i32m4_m)))
-vint32m4_t vamomaxei32(vbool8_t op0, int32_t * op1, vuint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i32m8)))
-vint32m8_t vamomaxei32(int32_t * op0, vuint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i32m8_m)))
-vint32m8_t vamomaxei32(vbool4_t op0, int32_t * op1, vuint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i32mf2)))
-vint32mf2_t vamomaxei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i32mf2_m)))
-vint32mf2_t vamomaxei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i32m1)))
-vint32m1_t vamomaxei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i32m1_m)))
-vint32m1_t vamomaxei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i32m2)))
-vint32m2_t vamomaxei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i32m2_m)))
-vint32m2_t vamomaxei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i32m4)))
-vint32m4_t vamomaxei64(int32_t * op0, vuint64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i32m4_m)))
-vint32m4_t vamomaxei64(vbool8_t op0, int32_t * op1, vuint64m8_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i32mf2)))
-vint32mf2_t vamomaxei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i32mf2_m)))
-vint32mf2_t vamomaxei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i64m1)))
-vint64m1_t vamomaxei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i64m1_m)))
-vint64m1_t vamomaxei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i64m2)))
-vint64m2_t vamomaxei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i64m2_m)))
-vint64m2_t vamomaxei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i64m4)))
-vint64m4_t vamomaxei8(int64_t * op0, vuint8mf2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i64m4_m)))
-vint64m4_t vamomaxei8(vbool16_t op0, int64_t * op1, vuint8mf2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i64m8)))
-vint64m8_t vamomaxei8(int64_t * op0, vuint8m1_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i64m8_m)))
-vint64m8_t vamomaxei8(vbool8_t op0, int64_t * op1, vuint8m1_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i64m1)))
-vint64m1_t vamomaxei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i64m1_m)))
-vint64m1_t vamomaxei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i64m2)))
-vint64m2_t vamomaxei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i64m2_m)))
-vint64m2_t vamomaxei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i64m4)))
-vint64m4_t vamomaxei16(int64_t * op0, vuint16m1_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i64m4_m)))
-vint64m4_t vamomaxei16(vbool16_t op0, int64_t * op1, vuint16m1_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i64m8)))
-vint64m8_t vamomaxei16(int64_t * op0, vuint16m2_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i64m8_m)))
-vint64m8_t vamomaxei16(vbool8_t op0, int64_t * op1, vuint16m2_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i64m1)))
-vint64m1_t vamomaxei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i64m1_m)))
-vint64m1_t vamomaxei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i64m2)))
-vint64m2_t vamomaxei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i64m2_m)))
-vint64m2_t vamomaxei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i64m4)))
-vint64m4_t vamomaxei32(int64_t * op0, vuint32m2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i64m4_m)))
-vint64m4_t vamomaxei32(vbool16_t op0, int64_t * op1, vuint32m2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i64m8)))
-vint64m8_t vamomaxei32(int64_t * op0, vuint32m4_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i64m8_m)))
-vint64m8_t vamomaxei32(vbool8_t op0, int64_t * op1, vuint32m4_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i64m1)))
-vint64m1_t vamomaxei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i64m1_m)))
-vint64m1_t vamomaxei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i64m2)))
-vint64m2_t vamomaxei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i64m2_m)))
-vint64m2_t vamomaxei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i64m4)))
-vint64m4_t vamomaxei64(int64_t * op0, vuint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i64m4_m)))
-vint64m4_t vamomaxei64(vbool16_t op0, int64_t * op1, vuint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i64m8)))
-vint64m8_t vamomaxei64(int64_t * op0, vuint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i64m8_m)))
-vint64m8_t vamomaxei64(vbool8_t op0, int64_t * op1, vuint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u32m1)))
-vuint32m1_t vamominuei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u32m1_m)))
-vuint32m1_t vamominuei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u32m2)))
-vuint32m2_t vamominuei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u32m2_m)))
-vuint32m2_t vamominuei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u32m4)))
-vuint32m4_t vamominuei8(uint32_t * op0, vuint8m1_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u32m4_m)))
-vuint32m4_t vamominuei8(vbool8_t op0, uint32_t * op1, vuint8m1_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u32m8)))
-vuint32m8_t vamominuei8(uint32_t * op0, vuint8m2_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u32m8_m)))
-vuint32m8_t vamominuei8(vbool4_t op0, uint32_t * op1, vuint8m2_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u32mf2)))
-vuint32mf2_t vamominuei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u32mf2_m)))
-vuint32mf2_t vamominuei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u32m1)))
-vuint32m1_t vamominuei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u32m1_m)))
-vuint32m1_t vamominuei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u32m2)))
-vuint32m2_t vamominuei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u32m2_m)))
-vuint32m2_t vamominuei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u32m4)))
-vuint32m4_t vamominuei16(uint32_t * op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u32m4_m)))
-vuint32m4_t vamominuei16(vbool8_t op0, uint32_t * op1, vuint16m2_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u32m8)))
-vuint32m8_t vamominuei16(uint32_t * op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u32m8_m)))
-vuint32m8_t vamominuei16(vbool4_t op0, uint32_t * op1, vuint16m4_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u32mf2)))
-vuint32mf2_t vamominuei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u32mf2_m)))
-vuint32mf2_t vamominuei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u32m1)))
-vuint32m1_t vamominuei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u32m1_m)))
-vuint32m1_t vamominuei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u32m2)))
-vuint32m2_t vamominuei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u32m2_m)))
-vuint32m2_t vamominuei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u32m4)))
-vuint32m4_t vamominuei32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u32m4_m)))
-vuint32m4_t vamominuei32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u32m8)))
-vuint32m8_t vamominuei32(uint32_t * op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u32m8_m)))
-vuint32m8_t vamominuei32(vbool4_t op0, uint32_t * op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u32mf2)))
-vuint32mf2_t vamominuei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u32mf2_m)))
-vuint32mf2_t vamominuei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u32m1)))
-vuint32m1_t vamominuei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u32m1_m)))
-vuint32m1_t vamominuei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u32m2)))
-vuint32m2_t vamominuei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u32m2_m)))
-vuint32m2_t vamominuei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u32m4)))
-vuint32m4_t vamominuei64(uint32_t * op0, vuint64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u32m4_m)))
-vuint32m4_t vamominuei64(vbool8_t op0, uint32_t * op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u32mf2)))
-vuint32mf2_t vamominuei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u32mf2_m)))
-vuint32mf2_t vamominuei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u64m1)))
-vuint64m1_t vamominuei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u64m1_m)))
-vuint64m1_t vamominuei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u64m2)))
-vuint64m2_t vamominuei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u64m2_m)))
-vuint64m2_t vamominuei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u64m4)))
-vuint64m4_t vamominuei8(uint64_t * op0, vuint8mf2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u64m4_m)))
-vuint64m4_t vamominuei8(vbool16_t op0, uint64_t * op1, vuint8mf2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u64m8)))
-vuint64m8_t vamominuei8(uint64_t * op0, vuint8m1_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u64m8_m)))
-vuint64m8_t vamominuei8(vbool8_t op0, uint64_t * op1, vuint8m1_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u64m1)))
-vuint64m1_t vamominuei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u64m1_m)))
-vuint64m1_t vamominuei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u64m2)))
-vuint64m2_t vamominuei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u64m2_m)))
-vuint64m2_t vamominuei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u64m4)))
-vuint64m4_t vamominuei16(uint64_t * op0, vuint16m1_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u64m4_m)))
-vuint64m4_t vamominuei16(vbool16_t op0, uint64_t * op1, vuint16m1_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u64m8)))
-vuint64m8_t vamominuei16(uint64_t * op0, vuint16m2_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u64m8_m)))
-vuint64m8_t vamominuei16(vbool8_t op0, uint64_t * op1, vuint16m2_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u64m1)))
-vuint64m1_t vamominuei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u64m1_m)))
-vuint64m1_t vamominuei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u64m2)))
-vuint64m2_t vamominuei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u64m2_m)))
-vuint64m2_t vamominuei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u64m4)))
-vuint64m4_t vamominuei32(uint64_t * op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u64m4_m)))
-vuint64m4_t vamominuei32(vbool16_t op0, uint64_t * op1, vuint32m2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u64m8)))
-vuint64m8_t vamominuei32(uint64_t * op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u64m8_m)))
-vuint64m8_t vamominuei32(vbool8_t op0, uint64_t * op1, vuint32m4_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u64m1)))
-vuint64m1_t vamominuei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u64m1_m)))
-vuint64m1_t vamominuei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u64m2)))
-vuint64m2_t vamominuei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u64m2_m)))
-vuint64m2_t vamominuei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u64m4)))
-vuint64m4_t vamominuei64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u64m4_m)))
-vuint64m4_t vamominuei64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u64m8)))
-vuint64m8_t vamominuei64(uint64_t * op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u64m8_m)))
-vuint64m8_t vamominuei64(vbool8_t op0, uint64_t * op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u32m1)))
-vuint32m1_t vamomaxuei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u32m1_m)))
-vuint32m1_t vamomaxuei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u32m2)))
-vuint32m2_t vamomaxuei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u32m2_m)))
-vuint32m2_t vamomaxuei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u32m4)))
-vuint32m4_t vamomaxuei8(uint32_t * op0, vuint8m1_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u32m4_m)))
-vuint32m4_t vamomaxuei8(vbool8_t op0, uint32_t * op1, vuint8m1_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u32m8)))
-vuint32m8_t vamomaxuei8(uint32_t * op0, vuint8m2_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u32m8_m)))
-vuint32m8_t vamomaxuei8(vbool4_t op0, uint32_t * op1, vuint8m2_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u32mf2)))
-vuint32mf2_t vamomaxuei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u32mf2_m)))
-vuint32mf2_t vamomaxuei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u32m1)))
-vuint32m1_t vamomaxuei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u32m1_m)))
-vuint32m1_t vamomaxuei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u32m2)))
-vuint32m2_t vamomaxuei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u32m2_m)))
-vuint32m2_t vamomaxuei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u32m4)))
-vuint32m4_t vamomaxuei16(uint32_t * op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u32m4_m)))
-vuint32m4_t vamomaxuei16(vbool8_t op0, uint32_t * op1, vuint16m2_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u32m8)))
-vuint32m8_t vamomaxuei16(uint32_t * op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u32m8_m)))
-vuint32m8_t vamomaxuei16(vbool4_t op0, uint32_t * op1, vuint16m4_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u32mf2)))
-vuint32mf2_t vamomaxuei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u32mf2_m)))
-vuint32mf2_t vamomaxuei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u32m1)))
-vuint32m1_t vamomaxuei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u32m1_m)))
-vuint32m1_t vamomaxuei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u32m2)))
-vuint32m2_t vamomaxuei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u32m2_m)))
-vuint32m2_t vamomaxuei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u32m4)))
-vuint32m4_t vamomaxuei32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u32m4_m)))
-vuint32m4_t vamomaxuei32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u32m8)))
-vuint32m8_t vamomaxuei32(uint32_t * op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u32m8_m)))
-vuint32m8_t vamomaxuei32(vbool4_t op0, uint32_t * op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u32mf2)))
-vuint32mf2_t vamomaxuei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u32mf2_m)))
-vuint32mf2_t vamomaxuei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u32m1)))
-vuint32m1_t vamomaxuei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u32m1_m)))
-vuint32m1_t vamomaxuei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u32m2)))
-vuint32m2_t vamomaxuei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u32m2_m)))
-vuint32m2_t vamomaxuei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u32m4)))
-vuint32m4_t vamomaxuei64(uint32_t * op0, vuint64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u32m4_m)))
-vuint32m4_t vamomaxuei64(vbool8_t op0, uint32_t * op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u32mf2)))
-vuint32mf2_t vamomaxuei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u32mf2_m)))
-vuint32mf2_t vamomaxuei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u64m1)))
-vuint64m1_t vamomaxuei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u64m1_m)))
-vuint64m1_t vamomaxuei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u64m2)))
-vuint64m2_t vamomaxuei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u64m2_m)))
-vuint64m2_t vamomaxuei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u64m4)))
-vuint64m4_t vamomaxuei8(uint64_t * op0, vuint8mf2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u64m4_m)))
-vuint64m4_t vamomaxuei8(vbool16_t op0, uint64_t * op1, vuint8mf2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u64m8)))
-vuint64m8_t vamomaxuei8(uint64_t * op0, vuint8m1_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u64m8_m)))
-vuint64m8_t vamomaxuei8(vbool8_t op0, uint64_t * op1, vuint8m1_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u64m1)))
-vuint64m1_t vamomaxuei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u64m1_m)))
-vuint64m1_t vamomaxuei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u64m2)))
-vuint64m2_t vamomaxuei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u64m2_m)))
-vuint64m2_t vamomaxuei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u64m4)))
-vuint64m4_t vamomaxuei16(uint64_t * op0, vuint16m1_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u64m4_m)))
-vuint64m4_t vamomaxuei16(vbool16_t op0, uint64_t * op1, vuint16m1_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u64m8)))
-vuint64m8_t vamomaxuei16(uint64_t * op0, vuint16m2_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u64m8_m)))
-vuint64m8_t vamomaxuei16(vbool8_t op0, uint64_t * op1, vuint16m2_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u64m1)))
-vuint64m1_t vamomaxuei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u64m1_m)))
-vuint64m1_t vamomaxuei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u64m2)))
-vuint64m2_t vamomaxuei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u64m2_m)))
-vuint64m2_t vamomaxuei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u64m4)))
-vuint64m4_t vamomaxuei32(uint64_t * op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u64m4_m)))
-vuint64m4_t vamomaxuei32(vbool16_t op0, uint64_t * op1, vuint32m2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u64m8)))
-vuint64m8_t vamomaxuei32(uint64_t * op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u64m8_m)))
-vuint64m8_t vamomaxuei32(vbool8_t op0, uint64_t * op1, vuint32m4_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u64m1)))
-vuint64m1_t vamomaxuei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u64m1_m)))
-vuint64m1_t vamomaxuei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u64m2)))
-vuint64m2_t vamomaxuei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u64m2_m)))
-vuint64m2_t vamomaxuei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u64m4)))
-vuint64m4_t vamomaxuei64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u64m4_m)))
-vuint64m4_t vamomaxuei64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u64m8)))
-vuint64m8_t vamomaxuei64(uint64_t * op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u64m8_m)))
-vuint64m8_t vamomaxuei64(vbool8_t op0, uint64_t * op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i32m1)))
-vint32m1_t vamoswapei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i32m1_m)))
-vint32m1_t vamoswapei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i32m2)))
-vint32m2_t vamoswapei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i32m2_m)))
-vint32m2_t vamoswapei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i32m4)))
-vint32m4_t vamoswapei8(int32_t * op0, vuint8m1_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i32m4_m)))
-vint32m4_t vamoswapei8(vbool8_t op0, int32_t * op1, vuint8m1_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i32m8)))
-vint32m8_t vamoswapei8(int32_t * op0, vuint8m2_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i32m8_m)))
-vint32m8_t vamoswapei8(vbool4_t op0, int32_t * op1, vuint8m2_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i32mf2)))
-vint32mf2_t vamoswapei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i32mf2_m)))
-vint32mf2_t vamoswapei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u32m1)))
-vuint32m1_t vamoswapei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u32m1_m)))
-vuint32m1_t vamoswapei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u32m2)))
-vuint32m2_t vamoswapei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u32m2_m)))
-vuint32m2_t vamoswapei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u32m4)))
-vuint32m4_t vamoswapei8(uint32_t * op0, vuint8m1_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u32m4_m)))
-vuint32m4_t vamoswapei8(vbool8_t op0, uint32_t * op1, vuint8m1_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u32m8)))
-vuint32m8_t vamoswapei8(uint32_t * op0, vuint8m2_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u32m8_m)))
-vuint32m8_t vamoswapei8(vbool4_t op0, uint32_t * op1, vuint8m2_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u32mf2)))
-vuint32mf2_t vamoswapei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u32mf2_m)))
-vuint32mf2_t vamoswapei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, size_t op4);
-
-#endif
-
-#if defined(__riscv_f) && defined(__riscv_zvamo)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f32m1)))
-vfloat32m1_t vamoswapei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f32m1_m)))
-vfloat32m1_t vamoswapei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f32m2)))
-vfloat32m2_t vamoswapei8(float * op0, vuint8mf2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f32m2_m)))
-vfloat32m2_t vamoswapei8(vbool16_t op0, float * op1, vuint8mf2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f32m4)))
-vfloat32m4_t vamoswapei8(float * op0, vuint8m1_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f32m4_m)))
-vfloat32m4_t vamoswapei8(vbool8_t op0, float * op1, vuint8m1_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f32m8)))
-vfloat32m8_t vamoswapei8(float * op0, vuint8m2_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f32m8_m)))
-vfloat32m8_t vamoswapei8(vbool4_t op0, float * op1, vuint8m2_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f32mf2)))
-vfloat32mf2_t vamoswapei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f32mf2_m)))
-vfloat32mf2_t vamoswapei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f32m1)))
-vfloat32m1_t vamoswapei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f32m1_m)))
-vfloat32m1_t vamoswapei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f32m2)))
-vfloat32m2_t vamoswapei16(float * op0, vuint16m1_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f32m2_m)))
-vfloat32m2_t vamoswapei16(vbool16_t op0, float * op1, vuint16m1_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f32m4)))
-vfloat32m4_t vamoswapei16(float * op0, vuint16m2_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f32m4_m)))
-vfloat32m4_t vamoswapei16(vbool8_t op0, float * op1, vuint16m2_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f32m8)))
-vfloat32m8_t vamoswapei16(float * op0, vuint16m4_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f32m8_m)))
-vfloat32m8_t vamoswapei16(vbool4_t op0, float * op1, vuint16m4_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f32mf2)))
-vfloat32mf2_t vamoswapei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f32mf2_m)))
-vfloat32mf2_t vamoswapei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f32m1)))
-vfloat32m1_t vamoswapei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f32m1_m)))
-vfloat32m1_t vamoswapei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f32m2)))
-vfloat32m2_t vamoswapei32(float * op0, vuint32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f32m2_m)))
-vfloat32m2_t vamoswapei32(vbool16_t op0, float * op1, vuint32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f32m4)))
-vfloat32m4_t vamoswapei32(float * op0, vuint32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f32m4_m)))
-vfloat32m4_t vamoswapei32(vbool8_t op0, float * op1, vuint32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f32m8)))
-vfloat32m8_t vamoswapei32(float * op0, vuint32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f32m8_m)))
-vfloat32m8_t vamoswapei32(vbool4_t op0, float * op1, vuint32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f32mf2)))
-vfloat32mf2_t vamoswapei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f32mf2_m)))
-vfloat32mf2_t vamoswapei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f32m1)))
-vfloat32m1_t vamoswapei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f32m1_m)))
-vfloat32m1_t vamoswapei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f32m2)))
-vfloat32m2_t vamoswapei64(float * op0, vuint64m4_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f32m2_m)))
-vfloat32m2_t vamoswapei64(vbool16_t op0, float * op1, vuint64m4_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f32m4)))
-vfloat32m4_t vamoswapei64(float * op0, vuint64m8_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f32m4_m)))
-vfloat32m4_t vamoswapei64(vbool8_t op0, float * op1, vuint64m8_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f32mf2)))
-vfloat32mf2_t vamoswapei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f32mf2_m)))
-vfloat32mf2_t vamoswapei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, size_t op4);
-
-#endif
-
-#if defined(__riscv_d) && defined(__riscv_zvamo)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f64m1)))
-vfloat64m1_t vamoswapei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f64m1_m)))
-vfloat64m1_t vamoswapei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f64m2)))
-vfloat64m2_t vamoswapei8(double * op0, vuint8mf4_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f64m2_m)))
-vfloat64m2_t vamoswapei8(vbool32_t op0, double * op1, vuint8mf4_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f64m4)))
-vfloat64m4_t vamoswapei8(double * op0, vuint8mf2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f64m4_m)))
-vfloat64m4_t vamoswapei8(vbool16_t op0, double * op1, vuint8mf2_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f64m8)))
-vfloat64m8_t vamoswapei8(double * op0, vuint8m1_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f64m8_m)))
-vfloat64m8_t vamoswapei8(vbool8_t op0, double * op1, vuint8m1_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f64m1)))
-vfloat64m1_t vamoswapei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f64m1_m)))
-vfloat64m1_t vamoswapei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f64m2)))
-vfloat64m2_t vamoswapei16(double * op0, vuint16mf2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f64m2_m)))
-vfloat64m2_t vamoswapei16(vbool32_t op0, double * op1, vuint16mf2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f64m4)))
-vfloat64m4_t vamoswapei16(double * op0, vuint16m1_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f64m4_m)))
-vfloat64m4_t vamoswapei16(vbool16_t op0, double * op1, vuint16m1_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f64m8)))
-vfloat64m8_t vamoswapei16(double * op0, vuint16m2_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f64m8_m)))
-vfloat64m8_t vamoswapei16(vbool8_t op0, double * op1, vuint16m2_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f64m1)))
-vfloat64m1_t vamoswapei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f64m1_m)))
-vfloat64m1_t vamoswapei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f64m2)))
-vfloat64m2_t vamoswapei32(double * op0, vuint32m1_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f64m2_m)))
-vfloat64m2_t vamoswapei32(vbool32_t op0, double * op1, vuint32m1_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f64m4)))
-vfloat64m4_t vamoswapei32(double * op0, vuint32m2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f64m4_m)))
-vfloat64m4_t vamoswapei32(vbool16_t op0, double * op1, vuint32m2_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f64m8)))
-vfloat64m8_t vamoswapei32(double * op0, vuint32m4_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f64m8_m)))
-vfloat64m8_t vamoswapei32(vbool8_t op0, double * op1, vuint32m4_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f64m1)))
-vfloat64m1_t vamoswapei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f64m1_m)))
-vfloat64m1_t vamoswapei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f64m2)))
-vfloat64m2_t vamoswapei64(double * op0, vuint64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f64m2_m)))
-vfloat64m2_t vamoswapei64(vbool32_t op0, double * op1, vuint64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f64m4)))
-vfloat64m4_t vamoswapei64(double * op0, vuint64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f64m4_m)))
-vfloat64m4_t vamoswapei64(vbool16_t op0, double * op1, vuint64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f64m8)))
-vfloat64m8_t vamoswapei64(double * op0, vuint64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f64m8_m)))
-vfloat64m8_t vamoswapei64(vbool8_t op0, double * op1, vuint64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-#endif
-
-#if defined(__riscv_zvlsseg)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i64m1)))
-void vloxseg2ei8(vint64m1_t * op0, vint64m1_t * op1, const int64_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i64m1_m)))
-void vloxseg2ei8(vint64m1_t * op0, vint64m1_t * op1, vbool64_t op2, vint64m1_t op3, vint64m1_t op4, const int64_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i64m2)))
-void vloxseg2ei8(vint64m2_t * op0, vint64m2_t * op1, const int64_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i64m2_m)))
-void vloxseg2ei8(vint64m2_t * op0, vint64m2_t * op1, vbool32_t op2, vint64m2_t op3, vint64m2_t op4, const int64_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i64m4)))
-void vloxseg2ei8(vint64m4_t * op0, vint64m4_t * op1, const int64_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i64m4_m)))
-void vloxseg2ei8(vint64m4_t * op0, vint64m4_t * op1, vbool16_t op2, vint64m4_t op3, vint64m4_t op4, const int64_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u64m1)))
-void vloxseg2ei8(vuint64m1_t * op0, vuint64m1_t * op1, const uint64_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u64m1_m)))
-void vloxseg2ei8(vuint64m1_t * op0, vuint64m1_t * op1, vbool64_t op2, vuint64m1_t op3, vuint64m1_t op4, const uint64_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u64m2)))
-void vloxseg2ei8(vuint64m2_t * op0, vuint64m2_t * op1, const uint64_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u64m2_m)))
-void vloxseg2ei8(vuint64m2_t * op0, vuint64m2_t * op1, vbool32_t op2, vuint64m2_t op3, vuint64m2_t op4, const uint64_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u64m4)))
-void vloxseg2ei8(vuint64m4_t * op0, vuint64m4_t * op1, const uint64_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u64m4_m)))
-void vloxseg2ei8(vuint64m4_t * op0, vuint64m4_t * op1, vbool16_t op2, vuint64m4_t op3, vuint64m4_t op4, const uint64_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i64m1)))
-void vloxseg3ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, const int64_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i64m1_m)))
-void vloxseg3ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vbool64_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, const int64_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i64m2)))
-void vloxseg3ei8(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, const int64_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i64m2_m)))
-void vloxseg3ei8(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vbool32_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, const int64_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u64m1)))
-void vloxseg3ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, const uint64_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u64m1_m)))
-void vloxseg3ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vbool64_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, const uint64_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u64m2)))
-void vloxseg3ei8(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, const uint64_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u64m2_m)))
-void vloxseg3ei8(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vbool32_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, const uint64_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i64m1)))
-void vloxseg4ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, const int64_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i64m1_m)))
-void vloxseg4ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vbool64_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, const int64_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i64m2)))
-void vloxseg4ei8(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, const int64_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i64m2_m)))
-void vloxseg4ei8(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, vbool32_t op4, vint64m2_t op5, vint64m2_t op6, vint64m2_t op7, vint64m2_t op8, const int64_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u64m1)))
-void vloxseg4ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, const uint64_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u64m1_m)))
-void vloxseg4ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vbool64_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, const uint64_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u64m2)))
-void vloxseg4ei8(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, const uint64_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u64m2_m)))
-void vloxseg4ei8(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, vbool32_t op4, vuint64m2_t op5, vuint64m2_t op6, vuint64m2_t op7, vuint64m2_t op8, const uint64_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i64m1)))
-void vloxseg5ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, const int64_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i64m1_m)))
-void vloxseg5ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vbool64_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, const int64_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u64m1)))
-void vloxseg5ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, const uint64_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u64m1_m)))
-void vloxseg5ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vbool64_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, const uint64_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i64m1)))
-void vloxseg6ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, const int64_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i64m1_m)))
-void vloxseg6ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vbool64_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, const int64_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u64m1)))
-void vloxseg6ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, const uint64_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u64m1_m)))
-void vloxseg6ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vbool64_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, const uint64_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i64m1)))
-void vloxseg7ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, const int64_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i64m1_m)))
-void vloxseg7ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vbool64_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, const int64_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u64m1)))
-void vloxseg7ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, const uint64_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u64m1_m)))
-void vloxseg7ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vbool64_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, const uint64_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i64m1)))
-void vloxseg8ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, const int64_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i64m1_m)))
-void vloxseg8ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, vbool64_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, vint64m1_t op15, vint64m1_t op16, const int64_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u64m1)))
-void vloxseg8ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, const uint64_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u64m1_m)))
-void vloxseg8ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, vbool64_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, vuint64m1_t op15, vuint64m1_t op16, const uint64_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i64m1)))
-void vloxseg2ei16(vint64m1_t * op0, vint64m1_t * op1, const int64_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i64m1_m)))
-void vloxseg2ei16(vint64m1_t * op0, vint64m1_t * op1, vbool64_t op2, vint64m1_t op3, vint64m1_t op4, const int64_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i64m2)))
-void vloxseg2ei16(vint64m2_t * op0, vint64m2_t * op1, const int64_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i64m2_m)))
-void vloxseg2ei16(vint64m2_t * op0, vint64m2_t * op1, vbool32_t op2, vint64m2_t op3, vint64m2_t op4, const int64_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i64m4)))
-void vloxseg2ei16(vint64m4_t * op0, vint64m4_t * op1, const int64_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i64m4_m)))
-void vloxseg2ei16(vint64m4_t * op0, vint64m4_t * op1, vbool16_t op2, vint64m4_t op3, vint64m4_t op4, const int64_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u64m1)))
-void vloxseg2ei16(vuint64m1_t * op0, vuint64m1_t * op1, const uint64_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u64m1_m)))
-void vloxseg2ei16(vuint64m1_t * op0, vuint64m1_t * op1, vbool64_t op2, vuint64m1_t op3, vuint64m1_t op4, const uint64_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u64m2)))
-void vloxseg2ei16(vuint64m2_t * op0, vuint64m2_t * op1, const uint64_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u64m2_m)))
-void vloxseg2ei16(vuint64m2_t * op0, vuint64m2_t * op1, vbool32_t op2, vuint64m2_t op3, vuint64m2_t op4, const uint64_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u64m4)))
-void vloxseg2ei16(vuint64m4_t * op0, vuint64m4_t * op1, const uint64_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u64m4_m)))
-void vloxseg2ei16(vuint64m4_t * op0, vuint64m4_t * op1, vbool16_t op2, vuint64m4_t op3, vuint64m4_t op4, const uint64_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i64m1)))
-void vloxseg3ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, const int64_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i64m1_m)))
-void vloxseg3ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vbool64_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, const int64_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i64m2)))
-void vloxseg3ei16(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, const int64_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i64m2_m)))
-void vloxseg3ei16(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vbool32_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, const int64_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u64m1)))
-void vloxseg3ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, const uint64_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u64m1_m)))
-void vloxseg3ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vbool64_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, const uint64_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u64m2)))
-void vloxseg3ei16(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, const uint64_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u64m2_m)))
-void vloxseg3ei16(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vbool32_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, const uint64_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i64m1)))
-void vloxseg4ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, const int64_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i64m1_m)))
-void vloxseg4ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vbool64_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, const int64_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i64m2)))
-void vloxseg4ei16(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, const int64_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i64m2_m)))
-void vloxseg4ei16(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, vbool32_t op4, vint64m2_t op5, vint64m2_t op6, vint64m2_t op7, vint64m2_t op8, const int64_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u64m1)))
-void vloxseg4ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, const uint64_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u64m1_m)))
-void vloxseg4ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vbool64_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, const uint64_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u64m2)))
-void vloxseg4ei16(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, const uint64_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u64m2_m)))
-void vloxseg4ei16(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, vbool32_t op4, vuint64m2_t op5, vuint64m2_t op6, vuint64m2_t op7, vuint64m2_t op8, const uint64_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i64m1)))
-void vloxseg5ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, const int64_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i64m1_m)))
-void vloxseg5ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vbool64_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, const int64_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u64m1)))
-void vloxseg5ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, const uint64_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u64m1_m)))
-void vloxseg5ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vbool64_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, const uint64_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i64m1)))
-void vloxseg6ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, const int64_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i64m1_m)))
-void vloxseg6ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vbool64_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, const int64_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u64m1)))
-void vloxseg6ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, const uint64_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u64m1_m)))
-void vloxseg6ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vbool64_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, const uint64_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i64m1)))
-void vloxseg7ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, const int64_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i64m1_m)))
-void vloxseg7ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vbool64_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, const int64_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u64m1)))
-void vloxseg7ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, const uint64_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u64m1_m)))
-void vloxseg7ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vbool64_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, const uint64_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i64m1)))
-void vloxseg8ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, const int64_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i64m1_m)))
-void vloxseg8ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, vbool64_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, vint64m1_t op15, vint64m1_t op16, const int64_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u64m1)))
-void vloxseg8ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, const uint64_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u64m1_m)))
-void vloxseg8ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, vbool64_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, vuint64m1_t op15, vuint64m1_t op16, const uint64_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i64m1)))
-void vloxseg2ei32(vint64m1_t * op0, vint64m1_t * op1, const int64_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i64m1_m)))
-void vloxseg2ei32(vint64m1_t * op0, vint64m1_t * op1, vbool64_t op2, vint64m1_t op3, vint64m1_t op4, const int64_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i64m2)))
-void vloxseg2ei32(vint64m2_t * op0, vint64m2_t * op1, const int64_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i64m2_m)))
-void vloxseg2ei32(vint64m2_t * op0, vint64m2_t * op1, vbool32_t op2, vint64m2_t op3, vint64m2_t op4, const int64_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i64m4)))
-void vloxseg2ei32(vint64m4_t * op0, vint64m4_t * op1, const int64_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i64m4_m)))
-void vloxseg2ei32(vint64m4_t * op0, vint64m4_t * op1, vbool16_t op2, vint64m4_t op3, vint64m4_t op4, const int64_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u64m1)))
-void vloxseg2ei32(vuint64m1_t * op0, vuint64m1_t * op1, const uint64_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u64m1_m)))
-void vloxseg2ei32(vuint64m1_t * op0, vuint64m1_t * op1, vbool64_t op2, vuint64m1_t op3, vuint64m1_t op4, const uint64_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u64m2)))
-void vloxseg2ei32(vuint64m2_t * op0, vuint64m2_t * op1, const uint64_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u64m2_m)))
-void vloxseg2ei32(vuint64m2_t * op0, vuint64m2_t * op1, vbool32_t op2, vuint64m2_t op3, vuint64m2_t op4, const uint64_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u64m4)))
-void vloxseg2ei32(vuint64m4_t * op0, vuint64m4_t * op1, const uint64_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u64m4_m)))
-void vloxseg2ei32(vuint64m4_t * op0, vuint64m4_t * op1, vbool16_t op2, vuint64m4_t op3, vuint64m4_t op4, const uint64_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i64m1)))
-void vloxseg3ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, const int64_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i64m1_m)))
-void vloxseg3ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vbool64_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, const int64_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i64m2)))
-void vloxseg3ei32(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, const int64_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i64m2_m)))
-void vloxseg3ei32(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vbool32_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, const int64_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u64m1)))
-void vloxseg3ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, const uint64_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u64m1_m)))
-void vloxseg3ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vbool64_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, const uint64_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u64m2)))
-void vloxseg3ei32(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, const uint64_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u64m2_m)))
-void vloxseg3ei32(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vbool32_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, const uint64_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i64m1)))
-void vloxseg4ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, const int64_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i64m1_m)))
-void vloxseg4ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vbool64_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, const int64_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i64m2)))
-void vloxseg4ei32(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, const int64_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i64m2_m)))
-void vloxseg4ei32(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, vbool32_t op4, vint64m2_t op5, vint64m2_t op6, vint64m2_t op7, vint64m2_t op8, const int64_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u64m1)))
-void vloxseg4ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, const uint64_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u64m1_m)))
-void vloxseg4ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vbool64_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, const uint64_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u64m2)))
-void vloxseg4ei32(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, const uint64_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u64m2_m)))
-void vloxseg4ei32(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, vbool32_t op4, vuint64m2_t op5, vuint64m2_t op6, vuint64m2_t op7, vuint64m2_t op8, const uint64_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i64m1)))
-void vloxseg5ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, const int64_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i64m1_m)))
-void vloxseg5ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vbool64_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, const int64_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u64m1)))
-void vloxseg5ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, const uint64_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u64m1_m)))
-void vloxseg5ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vbool64_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, const uint64_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i64m1)))
-void vloxseg6ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, const int64_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i64m1_m)))
-void vloxseg6ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vbool64_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, const int64_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u64m1)))
-void vloxseg6ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, const uint64_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u64m1_m)))
-void vloxseg6ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vbool64_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, const uint64_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i64m1)))
-void vloxseg7ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, const int64_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i64m1_m)))
-void vloxseg7ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vbool64_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, const int64_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u64m1)))
-void vloxseg7ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, const uint64_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u64m1_m)))
-void vloxseg7ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vbool64_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, const uint64_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i64m1)))
-void vloxseg8ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, const int64_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i64m1_m)))
-void vloxseg8ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, vbool64_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, vint64m1_t op15, vint64m1_t op16, const int64_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u64m1)))
-void vloxseg8ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, const uint64_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u64m1_m)))
-void vloxseg8ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, vbool64_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, vuint64m1_t op15, vuint64m1_t op16, const uint64_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i64m1)))
-void vloxseg2ei64(vint64m1_t * op0, vint64m1_t * op1, const int64_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i64m1_m)))
-void vloxseg2ei64(vint64m1_t * op0, vint64m1_t * op1, vbool64_t op2, vint64m1_t op3, vint64m1_t op4, const int64_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i64m2)))
-void vloxseg2ei64(vint64m2_t * op0, vint64m2_t * op1, const int64_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i64m2_m)))
-void vloxseg2ei64(vint64m2_t * op0, vint64m2_t * op1, vbool32_t op2, vint64m2_t op3, vint64m2_t op4, const int64_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i64m4)))
-void vloxseg2ei64(vint64m4_t * op0, vint64m4_t * op1, const int64_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i64m4_m)))
-void vloxseg2ei64(vint64m4_t * op0, vint64m4_t * op1, vbool16_t op2, vint64m4_t op3, vint64m4_t op4, const int64_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u64m1)))
-void vloxseg2ei64(vuint64m1_t * op0, vuint64m1_t * op1, const uint64_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u64m1_m)))
-void vloxseg2ei64(vuint64m1_t * op0, vuint64m1_t * op1, vbool64_t op2, vuint64m1_t op3, vuint64m1_t op4, const uint64_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u64m2)))
-void vloxseg2ei64(vuint64m2_t * op0, vuint64m2_t * op1, const uint64_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u64m2_m)))
-void vloxseg2ei64(vuint64m2_t * op0, vuint64m2_t * op1, vbool32_t op2, vuint64m2_t op3, vuint64m2_t op4, const uint64_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u64m4)))
-void vloxseg2ei64(vuint64m4_t * op0, vuint64m4_t * op1, const uint64_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u64m4_m)))
-void vloxseg2ei64(vuint64m4_t * op0, vuint64m4_t * op1, vbool16_t op2, vuint64m4_t op3, vuint64m4_t op4, const uint64_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i64m1)))
-void vloxseg3ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, const int64_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i64m1_m)))
-void vloxseg3ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vbool64_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, const int64_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i64m2)))
-void vloxseg3ei64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, const int64_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i64m2_m)))
-void vloxseg3ei64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vbool32_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, const int64_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u64m1)))
-void vloxseg3ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, const uint64_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u64m1_m)))
-void vloxseg3ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vbool64_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, const uint64_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u64m2)))
-void vloxseg3ei64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, const uint64_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u64m2_m)))
-void vloxseg3ei64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vbool32_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, const uint64_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i64m1)))
-void vloxseg4ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, const int64_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i64m1_m)))
-void vloxseg4ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vbool64_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, const int64_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i64m2)))
-void vloxseg4ei64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, const int64_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i64m2_m)))
-void vloxseg4ei64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, vbool32_t op4, vint64m2_t op5, vint64m2_t op6, vint64m2_t op7, vint64m2_t op8, const int64_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u64m1)))
-void vloxseg4ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, const uint64_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u64m1_m)))
-void vloxseg4ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vbool64_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, const uint64_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u64m2)))
-void vloxseg4ei64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, const uint64_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u64m2_m)))
-void vloxseg4ei64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, vbool32_t op4, vuint64m2_t op5, vuint64m2_t op6, vuint64m2_t op7, vuint64m2_t op8, const uint64_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i64m1)))
-void vloxseg5ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, const int64_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i64m1_m)))
-void vloxseg5ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vbool64_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, const int64_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u64m1)))
-void vloxseg5ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, const uint64_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u64m1_m)))
-void vloxseg5ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vbool64_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, const uint64_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i64m1)))
-void vloxseg6ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, const int64_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i64m1_m)))
-void vloxseg6ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vbool64_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, const int64_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u64m1)))
-void vloxseg6ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, const uint64_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u64m1_m)))
-void vloxseg6ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vbool64_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, const uint64_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i64m1)))
-void vloxseg7ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, const int64_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i64m1_m)))
-void vloxseg7ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vbool64_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, const int64_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u64m1)))
-void vloxseg7ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, const uint64_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u64m1_m)))
-void vloxseg7ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vbool64_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, const uint64_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i64m1)))
-void vloxseg8ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, const int64_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i64m1_m)))
-void vloxseg8ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, vbool64_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, vint64m1_t op15, vint64m1_t op16, const int64_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u64m1)))
-void vloxseg8ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, const uint64_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u64m1_m)))
-void vloxseg8ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, vbool64_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, vuint64m1_t op15, vuint64m1_t op16, const uint64_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_i8m1)))
-void vsseg3e8(int8_t * op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_i8m1_m)))
-void vsseg3e8(vbool8_t op0, int8_t * op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_i8m2)))
-void vsseg3e8(int8_t * op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_i8m2_m)))
-void vsseg3e8(vbool4_t op0, int8_t * op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_i8mf2)))
-void vsseg3e8(int8_t * op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_i8mf2_m)))
-void vsseg3e8(vbool16_t op0, int8_t * op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_i8mf4)))
-void vsseg3e8(int8_t * op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_i8mf4_m)))
-void vsseg3e8(vbool32_t op0, int8_t * op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_i8mf8)))
-void vsseg3e8(int8_t * op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_i8mf8_m)))
-void vsseg3e8(vbool64_t op0, int8_t * op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_u8m1)))
-void vsseg3e8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_u8m1_m)))
-void vsseg3e8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_u8m2)))
-void vsseg3e8(uint8_t * op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_u8m2_m)))
-void vsseg3e8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_u8mf2)))
-void vsseg3e8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_u8mf2_m)))
-void vsseg3e8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_u8mf4)))
-void vsseg3e8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_u8mf4_m)))
-void vsseg3e8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_u8mf8)))
-void vsseg3e8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_u8mf8_m)))
-void vsseg3e8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_i8m1)))
-void vsseg4e8(int8_t * op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_i8m1_m)))
-void vsseg4e8(vbool8_t op0, int8_t * op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_i8m2)))
-void vsseg4e8(int8_t * op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_i8m2_m)))
-void vsseg4e8(vbool4_t op0, int8_t * op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_i8mf2)))
-void vsseg4e8(int8_t * op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_i8mf2_m)))
-void vsseg4e8(vbool16_t op0, int8_t * op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_i8mf4)))
-void vsseg4e8(int8_t * op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_i8mf4_m)))
-void vsseg4e8(vbool32_t op0, int8_t * op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_i8mf8)))
-void vsseg4e8(int8_t * op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_i8mf8_m)))
-void vsseg4e8(vbool64_t op0, int8_t * op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_u8m1)))
-void vsseg4e8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_u8m1_m)))
-void vsseg4e8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_u8m2)))
-void vsseg4e8(uint8_t * op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_u8m2_m)))
-void vsseg4e8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_u8mf2)))
-void vsseg4e8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_u8mf2_m)))
-void vsseg4e8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_u8mf4)))
-void vsseg4e8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_u8mf4_m)))
-void vsseg4e8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_u8mf8)))
-void vsseg4e8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_u8mf8_m)))
-void vsseg4e8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_i8m1)))
-void vsseg5e8(int8_t * op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_i8m1_m)))
-void vsseg5e8(vbool8_t op0, int8_t * op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_i8mf2)))
-void vsseg5e8(int8_t * op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_i8mf2_m)))
-void vsseg5e8(vbool16_t op0, int8_t * op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_i8mf4)))
-void vsseg5e8(int8_t * op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_i8mf4_m)))
-void vsseg5e8(vbool32_t op0, int8_t * op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_i8mf8)))
-void vsseg5e8(int8_t * op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_i8mf8_m)))
-void vsseg5e8(vbool64_t op0, int8_t * op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_u8m1)))
-void vsseg5e8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_u8m1_m)))
-void vsseg5e8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_u8mf2)))
-void vsseg5e8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_u8mf2_m)))
-void vsseg5e8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_u8mf4)))
-void vsseg5e8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_u8mf4_m)))
-void vsseg5e8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_u8mf8)))
-void vsseg5e8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_u8mf8_m)))
-void vsseg5e8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_i8m1)))
-void vsseg6e8(int8_t * op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_i8m1_m)))
-void vsseg6e8(vbool8_t op0, int8_t * op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_i8mf2)))
-void vsseg6e8(int8_t * op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_i8mf2_m)))
-void vsseg6e8(vbool16_t op0, int8_t * op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_i8mf4)))
-void vsseg6e8(int8_t * op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_i8mf4_m)))
-void vsseg6e8(vbool32_t op0, int8_t * op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_i8mf8)))
-void vsseg6e8(int8_t * op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_i8mf8_m)))
-void vsseg6e8(vbool64_t op0, int8_t * op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_u8m1)))
-void vsseg6e8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_u8m1_m)))
-void vsseg6e8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_u8mf2)))
-void vsseg6e8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_u8mf2_m)))
-void vsseg6e8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_u8mf4)))
-void vsseg6e8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_u8mf4_m)))
-void vsseg6e8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_u8mf8)))
-void vsseg6e8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_u8mf8_m)))
-void vsseg6e8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_i8m1)))
-void vsseg7e8(int8_t * op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_i8m1_m)))
-void vsseg7e8(vbool8_t op0, int8_t * op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_i8mf2)))
-void vsseg7e8(int8_t * op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_i8mf2_m)))
-void vsseg7e8(vbool16_t op0, int8_t * op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_i8mf4)))
-void vsseg7e8(int8_t * op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_i8mf4_m)))
-void vsseg7e8(vbool32_t op0, int8_t * op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_i8mf8)))
-void vsseg7e8(int8_t * op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_i8mf8_m)))
-void vsseg7e8(vbool64_t op0, int8_t * op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_u8m1)))
-void vsseg7e8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_u8m1_m)))
-void vsseg7e8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_u8mf2)))
-void vsseg7e8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_u8mf2_m)))
-void vsseg7e8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_u8mf4)))
-void vsseg7e8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_u8mf4_m)))
-void vsseg7e8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_u8mf8)))
-void vsseg7e8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_u8mf8_m)))
-void vsseg7e8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_i8m1)))
-void vsseg8e8(int8_t * op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_i8m1_m)))
-void vsseg8e8(vbool8_t op0, int8_t * op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_i8mf2)))
-void vsseg8e8(int8_t * op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_i8mf2_m)))
-void vsseg8e8(vbool16_t op0, int8_t * op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_i8mf4)))
-void vsseg8e8(int8_t * op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_i8mf4_m)))
-void vsseg8e8(vbool32_t op0, int8_t * op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_i8mf8)))
-void vsseg8e8(int8_t * op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_i8mf8_m)))
-void vsseg8e8(vbool64_t op0, int8_t * op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_u8m1)))
-void vsseg8e8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_u8m1_m)))
-void vsseg8e8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_u8mf2)))
-void vsseg8e8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_u8mf2_m)))
-void vsseg8e8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_u8mf4)))
-void vsseg8e8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_u8mf4_m)))
-void vsseg8e8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_u8mf8)))
-void vsseg8e8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_u8mf8_m)))
-void vsseg8e8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_i16m1)))
-void vsseg2e16(int16_t * op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_i16m1_m)))
-void vsseg2e16(vbool16_t op0, int16_t * op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_i16m2)))
-void vsseg2e16(int16_t * op0, vint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_i16m2_m)))
-void vsseg2e16(vbool8_t op0, int16_t * op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_i16m4)))
-void vsseg2e16(int16_t * op0, vint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_i16m4_m)))
-void vsseg2e16(vbool4_t op0, int16_t * op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_i16mf2)))
-void vsseg2e16(int16_t * op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_i16mf2_m)))
-void vsseg2e16(vbool32_t op0, int16_t * op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_i16mf4)))
-void vsseg2e16(int16_t * op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_i16mf4_m)))
-void vsseg2e16(vbool64_t op0, int16_t * op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_u16m1)))
-void vsseg2e16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_u16m1_m)))
-void vsseg2e16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_u16m2)))
-void vsseg2e16(uint16_t * op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_u16m2_m)))
-void vsseg2e16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_u16m4)))
-void vsseg2e16(uint16_t * op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_u16m4_m)))
-void vsseg2e16(vbool4_t op0, uint16_t * op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_u16mf2)))
-void vsseg2e16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_u16mf2_m)))
-void vsseg2e16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_u16mf4)))
-void vsseg2e16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_u16mf4_m)))
-void vsseg2e16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_i16m1)))
-void vsseg3e16(int16_t * op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_i16m1_m)))
-void vsseg3e16(vbool16_t op0, int16_t * op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_i16m2)))
-void vsseg3e16(int16_t * op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_i16m2_m)))
-void vsseg3e16(vbool8_t op0, int16_t * op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_i16mf2)))
-void vsseg3e16(int16_t * op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_i16mf2_m)))
-void vsseg3e16(vbool32_t op0, int16_t * op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_i16mf4)))
-void vsseg3e16(int16_t * op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_i16mf4_m)))
-void vsseg3e16(vbool64_t op0, int16_t * op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_u16m1)))
-void vsseg3e16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_u16m1_m)))
-void vsseg3e16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_u16m2)))
-void vsseg3e16(uint16_t * op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_u16m2_m)))
-void vsseg3e16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_u16mf2)))
-void vsseg3e16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_u16mf2_m)))
-void vsseg3e16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_u16mf4)))
-void vsseg3e16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_u16mf4_m)))
-void vsseg3e16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_i16m1)))
-void vsseg4e16(int16_t * op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_i16m1_m)))
-void vsseg4e16(vbool16_t op0, int16_t * op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_i16m2)))
-void vsseg4e16(int16_t * op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_i16m2_m)))
-void vsseg4e16(vbool8_t op0, int16_t * op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_i16mf2)))
-void vsseg4e16(int16_t * op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_i16mf2_m)))
-void vsseg4e16(vbool32_t op0, int16_t * op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_i16mf4)))
-void vsseg4e16(int16_t * op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_i16mf4_m)))
-void vsseg4e16(vbool64_t op0, int16_t * op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_u16m1)))
-void vsseg4e16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_u16m1_m)))
-void vsseg4e16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_u16m2)))
-void vsseg4e16(uint16_t * op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_u16m2_m)))
-void vsseg4e16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_u16mf2)))
-void vsseg4e16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_u16mf2_m)))
-void vsseg4e16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_u16mf4)))
-void vsseg4e16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_u16mf4_m)))
-void vsseg4e16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_i16m1)))
-void vsseg5e16(int16_t * op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_i16m1_m)))
-void vsseg5e16(vbool16_t op0, int16_t * op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_i16mf2)))
-void vsseg5e16(int16_t * op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_i16mf2_m)))
-void vsseg5e16(vbool32_t op0, int16_t * op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_i16mf4)))
-void vsseg5e16(int16_t * op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_i16mf4_m)))
-void vsseg5e16(vbool64_t op0, int16_t * op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_u16m1)))
-void vsseg5e16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_u16m1_m)))
-void vsseg5e16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_u16mf2)))
-void vsseg5e16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_u16mf2_m)))
-void vsseg5e16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_u16mf4)))
-void vsseg5e16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_u16mf4_m)))
-void vsseg5e16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_i16m1)))
-void vsseg6e16(int16_t * op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_i16m1_m)))
-void vsseg6e16(vbool16_t op0, int16_t * op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_i16mf2)))
-void vsseg6e16(int16_t * op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_i16mf2_m)))
-void vsseg6e16(vbool32_t op0, int16_t * op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_i16mf4)))
-void vsseg6e16(int16_t * op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_i16mf4_m)))
-void vsseg6e16(vbool64_t op0, int16_t * op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_u16m1)))
-void vsseg6e16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_u16m1_m)))
-void vsseg6e16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_u16mf2)))
-void vsseg6e16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_u16mf2_m)))
-void vsseg6e16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_u16mf4)))
-void vsseg6e16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_u16mf4_m)))
-void vsseg6e16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_i16m1)))
-void vsseg7e16(int16_t * op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_i16m1_m)))
-void vsseg7e16(vbool16_t op0, int16_t * op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_i16mf2)))
-void vsseg7e16(int16_t * op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_i16mf2_m)))
-void vsseg7e16(vbool32_t op0, int16_t * op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_i16mf4)))
-void vsseg7e16(int16_t * op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_i16mf4_m)))
-void vsseg7e16(vbool64_t op0, int16_t * op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_u16m1)))
-void vsseg7e16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_u16m1_m)))
-void vsseg7e16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_u16mf2)))
-void vsseg7e16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_u16mf2_m)))
-void vsseg7e16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_u16mf4)))
-void vsseg7e16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_u16mf4_m)))
-void vsseg7e16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_i16m1)))
-void vsseg8e16(int16_t * op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_i16m1_m)))
-void vsseg8e16(vbool16_t op0, int16_t * op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_i16mf2)))
-void vsseg8e16(int16_t * op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_i16mf2_m)))
-void vsseg8e16(vbool32_t op0, int16_t * op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_i16mf4)))
-void vsseg8e16(int16_t * op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_i16mf4_m)))
-void vsseg8e16(vbool64_t op0, int16_t * op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_u16m1)))
-void vsseg8e16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_u16m1_m)))
-void vsseg8e16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_u16mf2)))
-void vsseg8e16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_u16mf2_m)))
-void vsseg8e16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_u16mf4)))
-void vsseg8e16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_u16mf4_m)))
-void vsseg8e16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_i32m1)))
-void vsseg2e32(int32_t * op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_i32m1_m)))
-void vsseg2e32(vbool32_t op0, int32_t * op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_i32m2)))
-void vsseg2e32(int32_t * op0, vint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_i32m2_m)))
-void vsseg2e32(vbool16_t op0, int32_t * op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_i32m4)))
-void vsseg2e32(int32_t * op0, vint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_i32m4_m)))
-void vsseg2e32(vbool8_t op0, int32_t * op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_i32mf2)))
-void vsseg2e32(int32_t * op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_i32mf2_m)))
-void vsseg2e32(vbool64_t op0, int32_t * op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_u32m1)))
-void vsseg2e32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_u32m1_m)))
-void vsseg2e32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_u32m2)))
-void vsseg2e32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_u32m2_m)))
-void vsseg2e32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_u32m4)))
-void vsseg2e32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_u32m4_m)))
-void vsseg2e32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_u32mf2)))
-void vsseg2e32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_u32mf2_m)))
-void vsseg2e32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_i32m1)))
-void vsseg3e32(int32_t * op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_i32m1_m)))
-void vsseg3e32(vbool32_t op0, int32_t * op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_i32m2)))
-void vsseg3e32(int32_t * op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_i32m2_m)))
-void vsseg3e32(vbool16_t op0, int32_t * op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_i32mf2)))
-void vsseg3e32(int32_t * op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_i32mf2_m)))
-void vsseg3e32(vbool64_t op0, int32_t * op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_u32m1)))
-void vsseg3e32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_u32m1_m)))
-void vsseg3e32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_u32m2)))
-void vsseg3e32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_u32m2_m)))
-void vsseg3e32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_u32mf2)))
-void vsseg3e32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_u32mf2_m)))
-void vsseg3e32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_i32m1)))
-void vsseg4e32(int32_t * op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_i32m1_m)))
-void vsseg4e32(vbool32_t op0, int32_t * op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_i32m2)))
-void vsseg4e32(int32_t * op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_i32m2_m)))
-void vsseg4e32(vbool16_t op0, int32_t * op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_i32mf2)))
-void vsseg4e32(int32_t * op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_i32mf2_m)))
-void vsseg4e32(vbool64_t op0, int32_t * op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_u32m1)))
-void vsseg4e32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_u32m1_m)))
-void vsseg4e32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_u32m2)))
-void vsseg4e32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_u32m2_m)))
-void vsseg4e32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_u32mf2)))
-void vsseg4e32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_u32mf2_m)))
-void vsseg4e32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_i32m1)))
-void vsseg5e32(int32_t * op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_i32m1_m)))
-void vsseg5e32(vbool32_t op0, int32_t * op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_i32mf2)))
-void vsseg5e32(int32_t * op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_i32mf2_m)))
-void vsseg5e32(vbool64_t op0, int32_t * op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_u32m1)))
-void vsseg5e32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_u32m1_m)))
-void vsseg5e32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_u32mf2)))
-void vsseg5e32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_u32mf2_m)))
-void vsseg5e32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_i32m1)))
-void vsseg6e32(int32_t * op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_i32m1_m)))
-void vsseg6e32(vbool32_t op0, int32_t * op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_i32mf2)))
-void vsseg6e32(int32_t * op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_i32mf2_m)))
-void vsseg6e32(vbool64_t op0, int32_t * op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_u32m1)))
-void vsseg6e32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_u32m1_m)))
-void vsseg6e32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_u32mf2)))
-void vsseg6e32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_u32mf2_m)))
-void vsseg6e32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_i32m1)))
-void vsseg7e32(int32_t * op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_i32m1_m)))
-void vsseg7e32(vbool32_t op0, int32_t * op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_i32mf2)))
-void vsseg7e32(int32_t * op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_i32mf2_m)))
-void vsseg7e32(vbool64_t op0, int32_t * op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_u32m1)))
-void vsseg7e32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_u32m1_m)))
-void vsseg7e32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_u32mf2)))
-void vsseg7e32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_u32mf2_m)))
-void vsseg7e32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_i32m1)))
-void vsseg8e32(int32_t * op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_i32m1_m)))
-void vsseg8e32(vbool32_t op0, int32_t * op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_i32mf2)))
-void vsseg8e32(int32_t * op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_i32mf2_m)))
-void vsseg8e32(vbool64_t op0, int32_t * op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_u32m1)))
-void vsseg8e32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_u32m1_m)))
-void vsseg8e32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_u32mf2)))
-void vsseg8e32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_u32mf2_m)))
-void vsseg8e32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_i64m1)))
-void vsseg2e64(int64_t * op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_i64m1_m)))
-void vsseg2e64(vbool64_t op0, int64_t * op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_i64m2)))
-void vsseg2e64(int64_t * op0, vint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_i64m2_m)))
-void vsseg2e64(vbool32_t op0, int64_t * op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_i64m4)))
-void vsseg2e64(int64_t * op0, vint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_i64m4_m)))
-void vsseg2e64(vbool16_t op0, int64_t * op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_u64m1)))
-void vsseg2e64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_u64m1_m)))
-void vsseg2e64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_u64m2)))
-void vsseg2e64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_u64m2_m)))
-void vsseg2e64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_u64m4)))
-void vsseg2e64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_u64m4_m)))
-void vsseg2e64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_i64m1)))
-void vsseg3e64(int64_t * op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_i64m1_m)))
-void vsseg3e64(vbool64_t op0, int64_t * op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_i64m2)))
-void vsseg3e64(int64_t * op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_i64m2_m)))
-void vsseg3e64(vbool32_t op0, int64_t * op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_u64m1)))
-void vsseg3e64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_u64m1_m)))
-void vsseg3e64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_u64m2)))
-void vsseg3e64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_u64m2_m)))
-void vsseg3e64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_i64m1)))
-void vsseg4e64(int64_t * op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_i64m1_m)))
-void vsseg4e64(vbool64_t op0, int64_t * op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_i64m2)))
-void vsseg4e64(int64_t * op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_i64m2_m)))
-void vsseg4e64(vbool32_t op0, int64_t * op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_u64m1)))
-void vsseg4e64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_u64m1_m)))
-void vsseg4e64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_u64m2)))
-void vsseg4e64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_u64m2_m)))
-void vsseg4e64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e64_v_i64m1)))
-void vsseg5e64(int64_t * op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e64_v_i64m1_m)))
-void vsseg5e64(vbool64_t op0, int64_t * op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e64_v_u64m1)))
-void vsseg5e64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e64_v_u64m1_m)))
-void vsseg5e64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e64_v_i64m1)))
-void vsseg6e64(int64_t * op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e64_v_i64m1_m)))
-void vsseg6e64(vbool64_t op0, int64_t * op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e64_v_u64m1)))
-void vsseg6e64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e64_v_u64m1_m)))
-void vsseg6e64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e64_v_i64m1)))
-void vsseg7e64(int64_t * op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e64_v_i64m1_m)))
-void vsseg7e64(vbool64_t op0, int64_t * op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e64_v_u64m1)))
-void vsseg7e64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e64_v_u64m1_m)))
-void vsseg7e64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e64_v_i64m1)))
-void vsseg8e64(int64_t * op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e64_v_i64m1_m)))
-void vsseg8e64(vbool64_t op0, int64_t * op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e64_v_u64m1)))
-void vsseg8e64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e64_v_u64m1_m)))
-void vsseg8e64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_i8m1)))
-void vssseg3e8(int8_t * op0, ptrdiff_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_i8m1_m)))
-void vssseg3e8(vbool8_t op0, int8_t * op1, ptrdiff_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_i8m2)))
-void vssseg3e8(int8_t * op0, ptrdiff_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_i8m2_m)))
-void vssseg3e8(vbool4_t op0, int8_t * op1, ptrdiff_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_i8mf2)))
-void vssseg3e8(int8_t * op0, ptrdiff_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_i8mf2_m)))
-void vssseg3e8(vbool16_t op0, int8_t * op1, ptrdiff_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_i8mf4)))
-void vssseg3e8(int8_t * op0, ptrdiff_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_i8mf4_m)))
-void vssseg3e8(vbool32_t op0, int8_t * op1, ptrdiff_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_i8mf8)))
-void vssseg3e8(int8_t * op0, ptrdiff_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_i8mf8_m)))
-void vssseg3e8(vbool64_t op0, int8_t * op1, ptrdiff_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_u8m1)))
-void vssseg3e8(uint8_t * op0, ptrdiff_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_u8m1_m)))
-void vssseg3e8(vbool8_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_u8m2)))
-void vssseg3e8(uint8_t * op0, ptrdiff_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_u8m2_m)))
-void vssseg3e8(vbool4_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_u8mf2)))
-void vssseg3e8(uint8_t * op0, ptrdiff_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_u8mf2_m)))
-void vssseg3e8(vbool16_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_u8mf4)))
-void vssseg3e8(uint8_t * op0, ptrdiff_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_u8mf4_m)))
-void vssseg3e8(vbool32_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_u8mf8)))
-void vssseg3e8(uint8_t * op0, ptrdiff_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_u8mf8_m)))
-void vssseg3e8(vbool64_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_i8m1)))
-void vssseg4e8(int8_t * op0, ptrdiff_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_i8m1_m)))
-void vssseg4e8(vbool8_t op0, int8_t * op1, ptrdiff_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_i8m2)))
-void vssseg4e8(int8_t * op0, ptrdiff_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_i8m2_m)))
-void vssseg4e8(vbool4_t op0, int8_t * op1, ptrdiff_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_i8mf2)))
-void vssseg4e8(int8_t * op0, ptrdiff_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_i8mf2_m)))
-void vssseg4e8(vbool16_t op0, int8_t * op1, ptrdiff_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_i8mf4)))
-void vssseg4e8(int8_t * op0, ptrdiff_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_i8mf4_m)))
-void vssseg4e8(vbool32_t op0, int8_t * op1, ptrdiff_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_i8mf8)))
-void vssseg4e8(int8_t * op0, ptrdiff_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_i8mf8_m)))
-void vssseg4e8(vbool64_t op0, int8_t * op1, ptrdiff_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_u8m1)))
-void vssseg4e8(uint8_t * op0, ptrdiff_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_u8m1_m)))
-void vssseg4e8(vbool8_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_u8m2)))
-void vssseg4e8(uint8_t * op0, ptrdiff_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_u8m2_m)))
-void vssseg4e8(vbool4_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_u8mf2)))
-void vssseg4e8(uint8_t * op0, ptrdiff_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_u8mf2_m)))
-void vssseg4e8(vbool16_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_u8mf4)))
-void vssseg4e8(uint8_t * op0, ptrdiff_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_u8mf4_m)))
-void vssseg4e8(vbool32_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_u8mf8)))
-void vssseg4e8(uint8_t * op0, ptrdiff_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_u8mf8_m)))
-void vssseg4e8(vbool64_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_i8m1)))
-void vssseg5e8(int8_t * op0, ptrdiff_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_i8m1_m)))
-void vssseg5e8(vbool8_t op0, int8_t * op1, ptrdiff_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_i8mf2)))
-void vssseg5e8(int8_t * op0, ptrdiff_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_i8mf2_m)))
-void vssseg5e8(vbool16_t op0, int8_t * op1, ptrdiff_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_i8mf4)))
-void vssseg5e8(int8_t * op0, ptrdiff_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_i8mf4_m)))
-void vssseg5e8(vbool32_t op0, int8_t * op1, ptrdiff_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_i8mf8)))
-void vssseg5e8(int8_t * op0, ptrdiff_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_i8mf8_m)))
-void vssseg5e8(vbool64_t op0, int8_t * op1, ptrdiff_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_u8m1)))
-void vssseg5e8(uint8_t * op0, ptrdiff_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_u8m1_m)))
-void vssseg5e8(vbool8_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_u8mf2)))
-void vssseg5e8(uint8_t * op0, ptrdiff_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_u8mf2_m)))
-void vssseg5e8(vbool16_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_u8mf4)))
-void vssseg5e8(uint8_t * op0, ptrdiff_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_u8mf4_m)))
-void vssseg5e8(vbool32_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_u8mf8)))
-void vssseg5e8(uint8_t * op0, ptrdiff_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_u8mf8_m)))
-void vssseg5e8(vbool64_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_i8m1)))
-void vssseg6e8(int8_t * op0, ptrdiff_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_i8m1_m)))
-void vssseg6e8(vbool8_t op0, int8_t * op1, ptrdiff_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_i8mf2)))
-void vssseg6e8(int8_t * op0, ptrdiff_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_i8mf2_m)))
-void vssseg6e8(vbool16_t op0, int8_t * op1, ptrdiff_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_i8mf4)))
-void vssseg6e8(int8_t * op0, ptrdiff_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_i8mf4_m)))
-void vssseg6e8(vbool32_t op0, int8_t * op1, ptrdiff_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_i8mf8)))
-void vssseg6e8(int8_t * op0, ptrdiff_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_i8mf8_m)))
-void vssseg6e8(vbool64_t op0, int8_t * op1, ptrdiff_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_u8m1)))
-void vssseg6e8(uint8_t * op0, ptrdiff_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_u8m1_m)))
-void vssseg6e8(vbool8_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_u8mf2)))
-void vssseg6e8(uint8_t * op0, ptrdiff_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_u8mf2_m)))
-void vssseg6e8(vbool16_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_u8mf4)))
-void vssseg6e8(uint8_t * op0, ptrdiff_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_u8mf4_m)))
-void vssseg6e8(vbool32_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_u8mf8)))
-void vssseg6e8(uint8_t * op0, ptrdiff_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_u8mf8_m)))
-void vssseg6e8(vbool64_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_i8m1)))
-void vssseg7e8(int8_t * op0, ptrdiff_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_i8m1_m)))
-void vssseg7e8(vbool8_t op0, int8_t * op1, ptrdiff_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_i8mf2)))
-void vssseg7e8(int8_t * op0, ptrdiff_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_i8mf2_m)))
-void vssseg7e8(vbool16_t op0, int8_t * op1, ptrdiff_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_i8mf4)))
-void vssseg7e8(int8_t * op0, ptrdiff_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_i8mf4_m)))
-void vssseg7e8(vbool32_t op0, int8_t * op1, ptrdiff_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_i8mf8)))
-void vssseg7e8(int8_t * op0, ptrdiff_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_i8mf8_m)))
-void vssseg7e8(vbool64_t op0, int8_t * op1, ptrdiff_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_u8m1)))
-void vssseg7e8(uint8_t * op0, ptrdiff_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_u8m1_m)))
-void vssseg7e8(vbool8_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_u8mf2)))
-void vssseg7e8(uint8_t * op0, ptrdiff_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_u8mf2_m)))
-void vssseg7e8(vbool16_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_u8mf4)))
-void vssseg7e8(uint8_t * op0, ptrdiff_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_u8mf4_m)))
-void vssseg7e8(vbool32_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_u8mf8)))
-void vssseg7e8(uint8_t * op0, ptrdiff_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_u8mf8_m)))
-void vssseg7e8(vbool64_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_i8m1)))
-void vssseg8e8(int8_t * op0, ptrdiff_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_i8m1_m)))
-void vssseg8e8(vbool8_t op0, int8_t * op1, ptrdiff_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_i8mf2)))
-void vssseg8e8(int8_t * op0, ptrdiff_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_i8mf2_m)))
-void vssseg8e8(vbool16_t op0, int8_t * op1, ptrdiff_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_i8mf4)))
-void vssseg8e8(int8_t * op0, ptrdiff_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_i8mf4_m)))
-void vssseg8e8(vbool32_t op0, int8_t * op1, ptrdiff_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_i8mf8)))
-void vssseg8e8(int8_t * op0, ptrdiff_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_i8mf8_m)))
-void vssseg8e8(vbool64_t op0, int8_t * op1, ptrdiff_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_u8m1)))
-void vssseg8e8(uint8_t * op0, ptrdiff_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_u8m1_m)))
-void vssseg8e8(vbool8_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_u8mf2)))
-void vssseg8e8(uint8_t * op0, ptrdiff_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_u8mf2_m)))
-void vssseg8e8(vbool16_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_u8mf4)))
-void vssseg8e8(uint8_t * op0, ptrdiff_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_u8mf4_m)))
-void vssseg8e8(vbool32_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_u8mf8)))
-void vssseg8e8(uint8_t * op0, ptrdiff_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_u8mf8_m)))
-void vssseg8e8(vbool64_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_i16m1)))
-void vssseg2e16(int16_t * op0, ptrdiff_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_i16m1_m)))
-void vssseg2e16(vbool16_t op0, int16_t * op1, ptrdiff_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_i16m2)))
-void vssseg2e16(int16_t * op0, ptrdiff_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_i16m2_m)))
-void vssseg2e16(vbool8_t op0, int16_t * op1, ptrdiff_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_i16m4)))
-void vssseg2e16(int16_t * op0, ptrdiff_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_i16m4_m)))
-void vssseg2e16(vbool4_t op0, int16_t * op1, ptrdiff_t op2, vint16m4_t op3, vint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_i16mf2)))
-void vssseg2e16(int16_t * op0, ptrdiff_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_i16mf2_m)))
-void vssseg2e16(vbool32_t op0, int16_t * op1, ptrdiff_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_i16mf4)))
-void vssseg2e16(int16_t * op0, ptrdiff_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_i16mf4_m)))
-void vssseg2e16(vbool64_t op0, int16_t * op1, ptrdiff_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_u16m1)))
-void vssseg2e16(uint16_t * op0, ptrdiff_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_u16m1_m)))
-void vssseg2e16(vbool16_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_u16m2)))
-void vssseg2e16(uint16_t * op0, ptrdiff_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_u16m2_m)))
-void vssseg2e16(vbool8_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_u16m4)))
-void vssseg2e16(uint16_t * op0, ptrdiff_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_u16m4_m)))
-void vssseg2e16(vbool4_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m4_t op3, vuint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_u16mf2)))
-void vssseg2e16(uint16_t * op0, ptrdiff_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_u16mf2_m)))
-void vssseg2e16(vbool32_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_u16mf4)))
-void vssseg2e16(uint16_t * op0, ptrdiff_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_u16mf4_m)))
-void vssseg2e16(vbool64_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_i16m1)))
-void vssseg3e16(int16_t * op0, ptrdiff_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_i16m1_m)))
-void vssseg3e16(vbool16_t op0, int16_t * op1, ptrdiff_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_i16m2)))
-void vssseg3e16(int16_t * op0, ptrdiff_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_i16m2_m)))
-void vssseg3e16(vbool8_t op0, int16_t * op1, ptrdiff_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_i16mf2)))
-void vssseg3e16(int16_t * op0, ptrdiff_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_i16mf2_m)))
-void vssseg3e16(vbool32_t op0, int16_t * op1, ptrdiff_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_i16mf4)))
-void vssseg3e16(int16_t * op0, ptrdiff_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_i16mf4_m)))
-void vssseg3e16(vbool64_t op0, int16_t * op1, ptrdiff_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_u16m1)))
-void vssseg3e16(uint16_t * op0, ptrdiff_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_u16m1_m)))
-void vssseg3e16(vbool16_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_u16m2)))
-void vssseg3e16(uint16_t * op0, ptrdiff_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_u16m2_m)))
-void vssseg3e16(vbool8_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_u16mf2)))
-void vssseg3e16(uint16_t * op0, ptrdiff_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_u16mf2_m)))
-void vssseg3e16(vbool32_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_u16mf4)))
-void vssseg3e16(uint16_t * op0, ptrdiff_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_u16mf4_m)))
-void vssseg3e16(vbool64_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_i16m1)))
-void vssseg4e16(int16_t * op0, ptrdiff_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_i16m1_m)))
-void vssseg4e16(vbool16_t op0, int16_t * op1, ptrdiff_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_i16m2)))
-void vssseg4e16(int16_t * op0, ptrdiff_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_i16m2_m)))
-void vssseg4e16(vbool8_t op0, int16_t * op1, ptrdiff_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_i16mf2)))
-void vssseg4e16(int16_t * op0, ptrdiff_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_i16mf2_m)))
-void vssseg4e16(vbool32_t op0, int16_t * op1, ptrdiff_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_i16mf4)))
-void vssseg4e16(int16_t * op0, ptrdiff_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_i16mf4_m)))
-void vssseg4e16(vbool64_t op0, int16_t * op1, ptrdiff_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_u16m1)))
-void vssseg4e16(uint16_t * op0, ptrdiff_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_u16m1_m)))
-void vssseg4e16(vbool16_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_u16m2)))
-void vssseg4e16(uint16_t * op0, ptrdiff_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_u16m2_m)))
-void vssseg4e16(vbool8_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_u16mf2)))
-void vssseg4e16(uint16_t * op0, ptrdiff_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_u16mf2_m)))
-void vssseg4e16(vbool32_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_u16mf4)))
-void vssseg4e16(uint16_t * op0, ptrdiff_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_u16mf4_m)))
-void vssseg4e16(vbool64_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_i16m1)))
-void vssseg5e16(int16_t * op0, ptrdiff_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_i16m1_m)))
-void vssseg5e16(vbool16_t op0, int16_t * op1, ptrdiff_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_i16mf2)))
-void vssseg5e16(int16_t * op0, ptrdiff_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_i16mf2_m)))
-void vssseg5e16(vbool32_t op0, int16_t * op1, ptrdiff_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_i16mf4)))
-void vssseg5e16(int16_t * op0, ptrdiff_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_i16mf4_m)))
-void vssseg5e16(vbool64_t op0, int16_t * op1, ptrdiff_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_u16m1)))
-void vssseg5e16(uint16_t * op0, ptrdiff_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_u16m1_m)))
-void vssseg5e16(vbool16_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_u16mf2)))
-void vssseg5e16(uint16_t * op0, ptrdiff_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_u16mf2_m)))
-void vssseg5e16(vbool32_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_u16mf4)))
-void vssseg5e16(uint16_t * op0, ptrdiff_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_u16mf4_m)))
-void vssseg5e16(vbool64_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_i16m1)))
-void vssseg6e16(int16_t * op0, ptrdiff_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_i16m1_m)))
-void vssseg6e16(vbool16_t op0, int16_t * op1, ptrdiff_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_i16mf2)))
-void vssseg6e16(int16_t * op0, ptrdiff_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_i16mf2_m)))
-void vssseg6e16(vbool32_t op0, int16_t * op1, ptrdiff_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_i16mf4)))
-void vssseg6e16(int16_t * op0, ptrdiff_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_i16mf4_m)))
-void vssseg6e16(vbool64_t op0, int16_t * op1, ptrdiff_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_u16m1)))
-void vssseg6e16(uint16_t * op0, ptrdiff_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_u16m1_m)))
-void vssseg6e16(vbool16_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_u16mf2)))
-void vssseg6e16(uint16_t * op0, ptrdiff_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_u16mf2_m)))
-void vssseg6e16(vbool32_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_u16mf4)))
-void vssseg6e16(uint16_t * op0, ptrdiff_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_u16mf4_m)))
-void vssseg6e16(vbool64_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_i16m1)))
-void vssseg7e16(int16_t * op0, ptrdiff_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_i16m1_m)))
-void vssseg7e16(vbool16_t op0, int16_t * op1, ptrdiff_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_i16mf2)))
-void vssseg7e16(int16_t * op0, ptrdiff_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_i16mf2_m)))
-void vssseg7e16(vbool32_t op0, int16_t * op1, ptrdiff_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_i16mf4)))
-void vssseg7e16(int16_t * op0, ptrdiff_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_i16mf4_m)))
-void vssseg7e16(vbool64_t op0, int16_t * op1, ptrdiff_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_u16m1)))
-void vssseg7e16(uint16_t * op0, ptrdiff_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_u16m1_m)))
-void vssseg7e16(vbool16_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_u16mf2)))
-void vssseg7e16(uint16_t * op0, ptrdiff_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_u16mf2_m)))
-void vssseg7e16(vbool32_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_u16mf4)))
-void vssseg7e16(uint16_t * op0, ptrdiff_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_u16mf4_m)))
-void vssseg7e16(vbool64_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_i16m1)))
-void vssseg8e16(int16_t * op0, ptrdiff_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_i16m1_m)))
-void vssseg8e16(vbool16_t op0, int16_t * op1, ptrdiff_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_i16mf2)))
-void vssseg8e16(int16_t * op0, ptrdiff_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_i16mf2_m)))
-void vssseg8e16(vbool32_t op0, int16_t * op1, ptrdiff_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_i16mf4)))
-void vssseg8e16(int16_t * op0, ptrdiff_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_i16mf4_m)))
-void vssseg8e16(vbool64_t op0, int16_t * op1, ptrdiff_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_u16m1)))
-void vssseg8e16(uint16_t * op0, ptrdiff_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_u16m1_m)))
-void vssseg8e16(vbool16_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_u16mf2)))
-void vssseg8e16(uint16_t * op0, ptrdiff_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_u16mf2_m)))
-void vssseg8e16(vbool32_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_u16mf4)))
-void vssseg8e16(uint16_t * op0, ptrdiff_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_u16mf4_m)))
-void vssseg8e16(vbool64_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_i32m1)))
-void vssseg2e32(int32_t * op0, ptrdiff_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_i32m1_m)))
-void vssseg2e32(vbool32_t op0, int32_t * op1, ptrdiff_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_i32m2)))
-void vssseg2e32(int32_t * op0, ptrdiff_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_i32m2_m)))
-void vssseg2e32(vbool16_t op0, int32_t * op1, ptrdiff_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_i32m4)))
-void vssseg2e32(int32_t * op0, ptrdiff_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_i32m4_m)))
-void vssseg2e32(vbool8_t op0, int32_t * op1, ptrdiff_t op2, vint32m4_t op3, vint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_i32mf2)))
-void vssseg2e32(int32_t * op0, ptrdiff_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_i32mf2_m)))
-void vssseg2e32(vbool64_t op0, int32_t * op1, ptrdiff_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_u32m1)))
-void vssseg2e32(uint32_t * op0, ptrdiff_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_u32m1_m)))
-void vssseg2e32(vbool32_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_u32m2)))
-void vssseg2e32(uint32_t * op0, ptrdiff_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_u32m2_m)))
-void vssseg2e32(vbool16_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_u32m4)))
-void vssseg2e32(uint32_t * op0, ptrdiff_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_u32m4_m)))
-void vssseg2e32(vbool8_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m4_t op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_u32mf2)))
-void vssseg2e32(uint32_t * op0, ptrdiff_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_u32mf2_m)))
-void vssseg2e32(vbool64_t op0, uint32_t * op1, ptrdiff_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_i32m1)))
-void vssseg3e32(int32_t * op0, ptrdiff_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_i32m1_m)))
-void vssseg3e32(vbool32_t op0, int32_t * op1, ptrdiff_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_i32m2)))
-void vssseg3e32(int32_t * op0, ptrdiff_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_i32m2_m)))
-void vssseg3e32(vbool16_t op0, int32_t * op1, ptrdiff_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_i32mf2)))
-void vssseg3e32(int32_t * op0, ptrdiff_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_i32mf2_m)))
-void vssseg3e32(vbool64_t op0, int32_t * op1, ptrdiff_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_u32m1)))
-void vssseg3e32(uint32_t * op0, ptrdiff_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_u32m1_m)))
-void vssseg3e32(vbool32_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_u32m2)))
-void vssseg3e32(uint32_t * op0, ptrdiff_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_u32m2_m)))
-void vssseg3e32(vbool16_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_u32mf2)))
-void vssseg3e32(uint32_t * op0, ptrdiff_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_u32mf2_m)))
-void vssseg3e32(vbool64_t op0, uint32_t * op1, ptrdiff_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_i32m1)))
-void vssseg4e32(int32_t * op0, ptrdiff_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_i32m1_m)))
-void vssseg4e32(vbool32_t op0, int32_t * op1, ptrdiff_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_i32m2)))
-void vssseg4e32(int32_t * op0, ptrdiff_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_i32m2_m)))
-void vssseg4e32(vbool16_t op0, int32_t * op1, ptrdiff_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_i32mf2)))
-void vssseg4e32(int32_t * op0, ptrdiff_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_i32mf2_m)))
-void vssseg4e32(vbool64_t op0, int32_t * op1, ptrdiff_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_u32m1)))
-void vssseg4e32(uint32_t * op0, ptrdiff_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_u32m1_m)))
-void vssseg4e32(vbool32_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_u32m2)))
-void vssseg4e32(uint32_t * op0, ptrdiff_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_u32m2_m)))
-void vssseg4e32(vbool16_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_u32mf2)))
-void vssseg4e32(uint32_t * op0, ptrdiff_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_u32mf2_m)))
-void vssseg4e32(vbool64_t op0, uint32_t * op1, ptrdiff_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_i32m1)))
-void vssseg5e32(int32_t * op0, ptrdiff_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_i32m1_m)))
-void vssseg5e32(vbool32_t op0, int32_t * op1, ptrdiff_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_i32mf2)))
-void vssseg5e32(int32_t * op0, ptrdiff_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_i32mf2_m)))
-void vssseg5e32(vbool64_t op0, int32_t * op1, ptrdiff_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_u32m1)))
-void vssseg5e32(uint32_t * op0, ptrdiff_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_u32m1_m)))
-void vssseg5e32(vbool32_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_u32mf2)))
-void vssseg5e32(uint32_t * op0, ptrdiff_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_u32mf2_m)))
-void vssseg5e32(vbool64_t op0, uint32_t * op1, ptrdiff_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_i32m1)))
-void vssseg6e32(int32_t * op0, ptrdiff_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_i32m1_m)))
-void vssseg6e32(vbool32_t op0, int32_t * op1, ptrdiff_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_i32mf2)))
-void vssseg6e32(int32_t * op0, ptrdiff_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_i32mf2_m)))
-void vssseg6e32(vbool64_t op0, int32_t * op1, ptrdiff_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_u32m1)))
-void vssseg6e32(uint32_t * op0, ptrdiff_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_u32m1_m)))
-void vssseg6e32(vbool32_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_u32mf2)))
-void vssseg6e32(uint32_t * op0, ptrdiff_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_u32mf2_m)))
-void vssseg6e32(vbool64_t op0, uint32_t * op1, ptrdiff_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_i32m1)))
-void vssseg7e32(int32_t * op0, ptrdiff_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_i32m1_m)))
-void vssseg7e32(vbool32_t op0, int32_t * op1, ptrdiff_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_i32mf2)))
-void vssseg7e32(int32_t * op0, ptrdiff_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_i32mf2_m)))
-void vssseg7e32(vbool64_t op0, int32_t * op1, ptrdiff_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_u32m1)))
-void vssseg7e32(uint32_t * op0, ptrdiff_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_u32m1_m)))
-void vssseg7e32(vbool32_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_u32mf2)))
-void vssseg7e32(uint32_t * op0, ptrdiff_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_u32mf2_m)))
-void vssseg7e32(vbool64_t op0, uint32_t * op1, ptrdiff_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_i32m1)))
-void vssseg8e32(int32_t * op0, ptrdiff_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_i32m1_m)))
-void vssseg8e32(vbool32_t op0, int32_t * op1, ptrdiff_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_i32mf2)))
-void vssseg8e32(int32_t * op0, ptrdiff_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_i32mf2_m)))
-void vssseg8e32(vbool64_t op0, int32_t * op1, ptrdiff_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_u32m1)))
-void vssseg8e32(uint32_t * op0, ptrdiff_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_u32m1_m)))
-void vssseg8e32(vbool32_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_u32mf2)))
-void vssseg8e32(uint32_t * op0, ptrdiff_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_u32mf2_m)))
-void vssseg8e32(vbool64_t op0, uint32_t * op1, ptrdiff_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_i64m1)))
-void vssseg2e64(int64_t * op0, ptrdiff_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_i64m1_m)))
-void vssseg2e64(vbool64_t op0, int64_t * op1, ptrdiff_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_i64m2)))
-void vssseg2e64(int64_t * op0, ptrdiff_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_i64m2_m)))
-void vssseg2e64(vbool32_t op0, int64_t * op1, ptrdiff_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_i64m4)))
-void vssseg2e64(int64_t * op0, ptrdiff_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_i64m4_m)))
-void vssseg2e64(vbool16_t op0, int64_t * op1, ptrdiff_t op2, vint64m4_t op3, vint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_u64m1)))
-void vssseg2e64(uint64_t * op0, ptrdiff_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_u64m1_m)))
-void vssseg2e64(vbool64_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_u64m2)))
-void vssseg2e64(uint64_t * op0, ptrdiff_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_u64m2_m)))
-void vssseg2e64(vbool32_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_u64m4)))
-void vssseg2e64(uint64_t * op0, ptrdiff_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_u64m4_m)))
-void vssseg2e64(vbool16_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m4_t op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_i64m1)))
-void vssseg3e64(int64_t * op0, ptrdiff_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_i64m1_m)))
-void vssseg3e64(vbool64_t op0, int64_t * op1, ptrdiff_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_i64m2)))
-void vssseg3e64(int64_t * op0, ptrdiff_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_i64m2_m)))
-void vssseg3e64(vbool32_t op0, int64_t * op1, ptrdiff_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_u64m1)))
-void vssseg3e64(uint64_t * op0, ptrdiff_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_u64m1_m)))
-void vssseg3e64(vbool64_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_u64m2)))
-void vssseg3e64(uint64_t * op0, ptrdiff_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_u64m2_m)))
-void vssseg3e64(vbool32_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_i64m1)))
-void vssseg4e64(int64_t * op0, ptrdiff_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_i64m1_m)))
-void vssseg4e64(vbool64_t op0, int64_t * op1, ptrdiff_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_i64m2)))
-void vssseg4e64(int64_t * op0, ptrdiff_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_i64m2_m)))
-void vssseg4e64(vbool32_t op0, int64_t * op1, ptrdiff_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_u64m1)))
-void vssseg4e64(uint64_t * op0, ptrdiff_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_u64m1_m)))
-void vssseg4e64(vbool64_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_u64m2)))
-void vssseg4e64(uint64_t * op0, ptrdiff_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_u64m2_m)))
-void vssseg4e64(vbool32_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e64_v_i64m1)))
-void vssseg5e64(int64_t * op0, ptrdiff_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e64_v_i64m1_m)))
-void vssseg5e64(vbool64_t op0, int64_t * op1, ptrdiff_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e64_v_u64m1)))
-void vssseg5e64(uint64_t * op0, ptrdiff_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e64_v_u64m1_m)))
-void vssseg5e64(vbool64_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e64_v_i64m1)))
-void vssseg6e64(int64_t * op0, ptrdiff_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e64_v_i64m1_m)))
-void vssseg6e64(vbool64_t op0, int64_t * op1, ptrdiff_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e64_v_u64m1)))
-void vssseg6e64(uint64_t * op0, ptrdiff_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e64_v_u64m1_m)))
-void vssseg6e64(vbool64_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e64_v_i64m1)))
-void vssseg7e64(int64_t * op0, ptrdiff_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e64_v_i64m1_m)))
-void vssseg7e64(vbool64_t op0, int64_t * op1, ptrdiff_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e64_v_u64m1)))
-void vssseg7e64(uint64_t * op0, ptrdiff_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e64_v_u64m1_m)))
-void vssseg7e64(vbool64_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e64_v_i64m1)))
-void vssseg8e64(int64_t * op0, ptrdiff_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e64_v_i64m1_m)))
-void vssseg8e64(vbool64_t op0, int64_t * op1, ptrdiff_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e64_v_u64m1)))
-void vssseg8e64(uint64_t * op0, ptrdiff_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e64_v_u64m1_m)))
-void vssseg8e64(vbool64_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i8m1)))
-void vsuxseg3ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i8m1_m)))
-void vsuxseg3ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i8m2)))
-void vsuxseg3ei8(int8_t * op0, vuint8m2_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i8m2_m)))
-void vsuxseg3ei8(vbool4_t op0, int8_t * op1, vuint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i8mf2)))
-void vsuxseg3ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i8mf2_m)))
-void vsuxseg3ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i8mf4)))
-void vsuxseg3ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i8mf4_m)))
-void vsuxseg3ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i8mf8)))
-void vsuxseg3ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i8mf8_m)))
-void vsuxseg3ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u8m1)))
-void vsuxseg3ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u8m1_m)))
-void vsuxseg3ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u8m2)))
-void vsuxseg3ei8(uint8_t * op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u8m2_m)))
-void vsuxseg3ei8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u8mf2)))
-void vsuxseg3ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u8mf2_m)))
-void vsuxseg3ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u8mf4)))
-void vsuxseg3ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u8mf4_m)))
-void vsuxseg3ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u8mf8)))
-void vsuxseg3ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u8mf8_m)))
-void vsuxseg3ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i8m1)))
-void vsuxseg4ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i8m1_m)))
-void vsuxseg4ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i8m2)))
-void vsuxseg4ei8(int8_t * op0, vuint8m2_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i8m2_m)))
-void vsuxseg4ei8(vbool4_t op0, int8_t * op1, vuint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i8mf2)))
-void vsuxseg4ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i8mf2_m)))
-void vsuxseg4ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i8mf4)))
-void vsuxseg4ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i8mf4_m)))
-void vsuxseg4ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i8mf8)))
-void vsuxseg4ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i8mf8_m)))
-void vsuxseg4ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u8m1)))
-void vsuxseg4ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u8m1_m)))
-void vsuxseg4ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u8m2)))
-void vsuxseg4ei8(uint8_t * op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u8m2_m)))
-void vsuxseg4ei8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u8mf2)))
-void vsuxseg4ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u8mf2_m)))
-void vsuxseg4ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u8mf4)))
-void vsuxseg4ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u8mf4_m)))
-void vsuxseg4ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u8mf8)))
-void vsuxseg4ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u8mf8_m)))
-void vsuxseg4ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i8m1)))
-void vsuxseg5ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i8m1_m)))
-void vsuxseg5ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i8mf2)))
-void vsuxseg5ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i8mf2_m)))
-void vsuxseg5ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i8mf4)))
-void vsuxseg5ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i8mf4_m)))
-void vsuxseg5ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i8mf8)))
-void vsuxseg5ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i8mf8_m)))
-void vsuxseg5ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u8m1)))
-void vsuxseg5ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u8m1_m)))
-void vsuxseg5ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u8mf2)))
-void vsuxseg5ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u8mf2_m)))
-void vsuxseg5ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u8mf4)))
-void vsuxseg5ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u8mf4_m)))
-void vsuxseg5ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u8mf8)))
-void vsuxseg5ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u8mf8_m)))
-void vsuxseg5ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i8m1)))
-void vsuxseg6ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i8m1_m)))
-void vsuxseg6ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i8mf2)))
-void vsuxseg6ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i8mf2_m)))
-void vsuxseg6ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i8mf4)))
-void vsuxseg6ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i8mf4_m)))
-void vsuxseg6ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i8mf8)))
-void vsuxseg6ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i8mf8_m)))
-void vsuxseg6ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u8m1)))
-void vsuxseg6ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u8m1_m)))
-void vsuxseg6ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u8mf2)))
-void vsuxseg6ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u8mf2_m)))
-void vsuxseg6ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u8mf4)))
-void vsuxseg6ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u8mf4_m)))
-void vsuxseg6ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u8mf8)))
-void vsuxseg6ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u8mf8_m)))
-void vsuxseg6ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i8m1)))
-void vsuxseg7ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i8m1_m)))
-void vsuxseg7ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i8mf2)))
-void vsuxseg7ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i8mf2_m)))
-void vsuxseg7ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i8mf4)))
-void vsuxseg7ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i8mf4_m)))
-void vsuxseg7ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i8mf8)))
-void vsuxseg7ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i8mf8_m)))
-void vsuxseg7ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u8m1)))
-void vsuxseg7ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u8m1_m)))
-void vsuxseg7ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u8mf2)))
-void vsuxseg7ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u8mf2_m)))
-void vsuxseg7ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u8mf4)))
-void vsuxseg7ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u8mf4_m)))
-void vsuxseg7ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u8mf8)))
-void vsuxseg7ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u8mf8_m)))
-void vsuxseg7ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i8m1)))
-void vsuxseg8ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i8m1_m)))
-void vsuxseg8ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i8mf2)))
-void vsuxseg8ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i8mf2_m)))
-void vsuxseg8ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i8mf4)))
-void vsuxseg8ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i8mf4_m)))
-void vsuxseg8ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i8mf8)))
-void vsuxseg8ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i8mf8_m)))
-void vsuxseg8ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u8m1)))
-void vsuxseg8ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u8m1_m)))
-void vsuxseg8ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u8mf2)))
-void vsuxseg8ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u8mf2_m)))
-void vsuxseg8ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u8mf4)))
-void vsuxseg8ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u8mf4_m)))
-void vsuxseg8ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u8mf8)))
-void vsuxseg8ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u8mf8_m)))
-void vsuxseg8ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8m1)))
-void vsuxseg2ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8m1_m)))
-void vsuxseg2ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8m2)))
-void vsuxseg2ei16(int8_t * op0, vuint16m4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8m2_m)))
-void vsuxseg2ei16(vbool4_t op0, int8_t * op1, vuint16m4_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8m4)))
-void vsuxseg2ei16(int8_t * op0, vuint16m8_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8m4_m)))
-void vsuxseg2ei16(vbool2_t op0, int8_t * op1, vuint16m8_t op2, vint8m4_t op3, vint8m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8mf2)))
-void vsuxseg2ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8mf2_m)))
-void vsuxseg2ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8mf4)))
-void vsuxseg2ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8mf4_m)))
-void vsuxseg2ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8mf8)))
-void vsuxseg2ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8mf8_m)))
-void vsuxseg2ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8m1)))
-void vsuxseg2ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8m1_m)))
-void vsuxseg2ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8m2)))
-void vsuxseg2ei16(uint8_t * op0, vuint16m4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8m2_m)))
-void vsuxseg2ei16(vbool4_t op0, uint8_t * op1, vuint16m4_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8m4)))
-void vsuxseg2ei16(uint8_t * op0, vuint16m8_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8m4_m)))
-void vsuxseg2ei16(vbool2_t op0, uint8_t * op1, vuint16m8_t op2, vuint8m4_t op3, vuint8m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8mf2)))
-void vsuxseg2ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8mf2_m)))
-void vsuxseg2ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8mf4)))
-void vsuxseg2ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8mf4_m)))
-void vsuxseg2ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8mf8)))
-void vsuxseg2ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8mf8_m)))
-void vsuxseg2ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i8m1)))
-void vsuxseg3ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i8m1_m)))
-void vsuxseg3ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i8m2)))
-void vsuxseg3ei16(int8_t * op0, vuint16m4_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i8m2_m)))
-void vsuxseg3ei16(vbool4_t op0, int8_t * op1, vuint16m4_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i8mf2)))
-void vsuxseg3ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i8mf2_m)))
-void vsuxseg3ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i8mf4)))
-void vsuxseg3ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i8mf4_m)))
-void vsuxseg3ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i8mf8)))
-void vsuxseg3ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i8mf8_m)))
-void vsuxseg3ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u8m1)))
-void vsuxseg3ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u8m1_m)))
-void vsuxseg3ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u8m2)))
-void vsuxseg3ei16(uint8_t * op0, vuint16m4_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u8m2_m)))
-void vsuxseg3ei16(vbool4_t op0, uint8_t * op1, vuint16m4_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u8mf2)))
-void vsuxseg3ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u8mf2_m)))
-void vsuxseg3ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u8mf4)))
-void vsuxseg3ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u8mf4_m)))
-void vsuxseg3ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u8mf8)))
-void vsuxseg3ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u8mf8_m)))
-void vsuxseg3ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i8m1)))
-void vsuxseg4ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i8m1_m)))
-void vsuxseg4ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i8m2)))
-void vsuxseg4ei16(int8_t * op0, vuint16m4_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i8m2_m)))
-void vsuxseg4ei16(vbool4_t op0, int8_t * op1, vuint16m4_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i8mf2)))
-void vsuxseg4ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i8mf2_m)))
-void vsuxseg4ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i8mf4)))
-void vsuxseg4ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i8mf4_m)))
-void vsuxseg4ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i8mf8)))
-void vsuxseg4ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i8mf8_m)))
-void vsuxseg4ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u8m1)))
-void vsuxseg4ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u8m1_m)))
-void vsuxseg4ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u8m2)))
-void vsuxseg4ei16(uint8_t * op0, vuint16m4_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u8m2_m)))
-void vsuxseg4ei16(vbool4_t op0, uint8_t * op1, vuint16m4_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u8mf2)))
-void vsuxseg4ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u8mf2_m)))
-void vsuxseg4ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u8mf4)))
-void vsuxseg4ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u8mf4_m)))
-void vsuxseg4ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u8mf8)))
-void vsuxseg4ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u8mf8_m)))
-void vsuxseg4ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i8m1)))
-void vsuxseg5ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i8m1_m)))
-void vsuxseg5ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i8mf2)))
-void vsuxseg5ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i8mf2_m)))
-void vsuxseg5ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i8mf4)))
-void vsuxseg5ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i8mf4_m)))
-void vsuxseg5ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i8mf8)))
-void vsuxseg5ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i8mf8_m)))
-void vsuxseg5ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u8m1)))
-void vsuxseg5ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u8m1_m)))
-void vsuxseg5ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u8mf2)))
-void vsuxseg5ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u8mf2_m)))
-void vsuxseg5ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u8mf4)))
-void vsuxseg5ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u8mf4_m)))
-void vsuxseg5ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u8mf8)))
-void vsuxseg5ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u8mf8_m)))
-void vsuxseg5ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i8m1)))
-void vsuxseg6ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i8m1_m)))
-void vsuxseg6ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i8mf2)))
-void vsuxseg6ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i8mf2_m)))
-void vsuxseg6ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i8mf4)))
-void vsuxseg6ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i8mf4_m)))
-void vsuxseg6ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i8mf8)))
-void vsuxseg6ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i8mf8_m)))
-void vsuxseg6ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u8m1)))
-void vsuxseg6ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u8m1_m)))
-void vsuxseg6ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u8mf2)))
-void vsuxseg6ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u8mf2_m)))
-void vsuxseg6ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u8mf4)))
-void vsuxseg6ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u8mf4_m)))
-void vsuxseg6ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u8mf8)))
-void vsuxseg6ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u8mf8_m)))
-void vsuxseg6ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i8m1)))
-void vsuxseg7ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i8m1_m)))
-void vsuxseg7ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i8mf2)))
-void vsuxseg7ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i8mf2_m)))
-void vsuxseg7ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i8mf4)))
-void vsuxseg7ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i8mf4_m)))
-void vsuxseg7ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i8mf8)))
-void vsuxseg7ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i8mf8_m)))
-void vsuxseg7ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u8m1)))
-void vsuxseg7ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u8m1_m)))
-void vsuxseg7ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u8mf2)))
-void vsuxseg7ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u8mf2_m)))
-void vsuxseg7ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u8mf4)))
-void vsuxseg7ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u8mf4_m)))
-void vsuxseg7ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u8mf8)))
-void vsuxseg7ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u8mf8_m)))
-void vsuxseg7ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i8m1)))
-void vsuxseg8ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i8m1_m)))
-void vsuxseg8ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i8mf2)))
-void vsuxseg8ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i8mf2_m)))
-void vsuxseg8ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i8mf4)))
-void vsuxseg8ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i8mf4_m)))
-void vsuxseg8ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i8mf8)))
-void vsuxseg8ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i8mf8_m)))
-void vsuxseg8ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u8m1)))
-void vsuxseg8ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u8m1_m)))
-void vsuxseg8ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u8mf2)))
-void vsuxseg8ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u8mf2_m)))
-void vsuxseg8ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u8mf4)))
-void vsuxseg8ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u8mf4_m)))
-void vsuxseg8ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u8mf8)))
-void vsuxseg8ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u8mf8_m)))
-void vsuxseg8ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i8m1)))
-void vsuxseg2ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i8m1_m)))
-void vsuxseg2ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i8m2)))
-void vsuxseg2ei32(int8_t * op0, vuint32m8_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i8m2_m)))
-void vsuxseg2ei32(vbool4_t op0, int8_t * op1, vuint32m8_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i8mf2)))
-void vsuxseg2ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i8mf2_m)))
-void vsuxseg2ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i8mf4)))
-void vsuxseg2ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i8mf4_m)))
-void vsuxseg2ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i8mf8)))
-void vsuxseg2ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i8mf8_m)))
-void vsuxseg2ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u8m1)))
-void vsuxseg2ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u8m1_m)))
-void vsuxseg2ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u8m2)))
-void vsuxseg2ei32(uint8_t * op0, vuint32m8_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u8m2_m)))
-void vsuxseg2ei32(vbool4_t op0, uint8_t * op1, vuint32m8_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u8mf2)))
-void vsuxseg2ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u8mf2_m)))
-void vsuxseg2ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u8mf4)))
-void vsuxseg2ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u8mf4_m)))
-void vsuxseg2ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u8mf8)))
-void vsuxseg2ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u8mf8_m)))
-void vsuxseg2ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i8m1)))
-void vsuxseg3ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i8m1_m)))
-void vsuxseg3ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i8m2)))
-void vsuxseg3ei32(int8_t * op0, vuint32m8_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i8m2_m)))
-void vsuxseg3ei32(vbool4_t op0, int8_t * op1, vuint32m8_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i8mf2)))
-void vsuxseg3ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i8mf2_m)))
-void vsuxseg3ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i8mf4)))
-void vsuxseg3ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i8mf4_m)))
-void vsuxseg3ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i8mf8)))
-void vsuxseg3ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i8mf8_m)))
-void vsuxseg3ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u8m1)))
-void vsuxseg3ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u8m1_m)))
-void vsuxseg3ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u8m2)))
-void vsuxseg3ei32(uint8_t * op0, vuint32m8_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u8m2_m)))
-void vsuxseg3ei32(vbool4_t op0, uint8_t * op1, vuint32m8_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u8mf2)))
-void vsuxseg3ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u8mf2_m)))
-void vsuxseg3ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u8mf4)))
-void vsuxseg3ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u8mf4_m)))
-void vsuxseg3ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u8mf8)))
-void vsuxseg3ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u8mf8_m)))
-void vsuxseg3ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i8m1)))
-void vsuxseg4ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i8m1_m)))
-void vsuxseg4ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i8m2)))
-void vsuxseg4ei32(int8_t * op0, vuint32m8_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i8m2_m)))
-void vsuxseg4ei32(vbool4_t op0, int8_t * op1, vuint32m8_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i8mf2)))
-void vsuxseg4ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i8mf2_m)))
-void vsuxseg4ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i8mf4)))
-void vsuxseg4ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i8mf4_m)))
-void vsuxseg4ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i8mf8)))
-void vsuxseg4ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i8mf8_m)))
-void vsuxseg4ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u8m1)))
-void vsuxseg4ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u8m1_m)))
-void vsuxseg4ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u8m2)))
-void vsuxseg4ei32(uint8_t * op0, vuint32m8_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u8m2_m)))
-void vsuxseg4ei32(vbool4_t op0, uint8_t * op1, vuint32m8_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u8mf2)))
-void vsuxseg4ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u8mf2_m)))
-void vsuxseg4ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u8mf4)))
-void vsuxseg4ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u8mf4_m)))
-void vsuxseg4ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u8mf8)))
-void vsuxseg4ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u8mf8_m)))
-void vsuxseg4ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i8m1)))
-void vsuxseg5ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i8m1_m)))
-void vsuxseg5ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i8mf2)))
-void vsuxseg5ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i8mf2_m)))
-void vsuxseg5ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i8mf4)))
-void vsuxseg5ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i8mf4_m)))
-void vsuxseg5ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i8mf8)))
-void vsuxseg5ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i8mf8_m)))
-void vsuxseg5ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u8m1)))
-void vsuxseg5ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u8m1_m)))
-void vsuxseg5ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u8mf2)))
-void vsuxseg5ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u8mf2_m)))
-void vsuxseg5ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u8mf4)))
-void vsuxseg5ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u8mf4_m)))
-void vsuxseg5ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u8mf8)))
-void vsuxseg5ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u8mf8_m)))
-void vsuxseg5ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i8m1)))
-void vsuxseg6ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i8m1_m)))
-void vsuxseg6ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i8mf2)))
-void vsuxseg6ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i8mf2_m)))
-void vsuxseg6ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i8mf4)))
-void vsuxseg6ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i8mf4_m)))
-void vsuxseg6ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i8mf8)))
-void vsuxseg6ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i8mf8_m)))
-void vsuxseg6ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u8m1)))
-void vsuxseg6ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u8m1_m)))
-void vsuxseg6ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u8mf2)))
-void vsuxseg6ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u8mf2_m)))
-void vsuxseg6ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u8mf4)))
-void vsuxseg6ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u8mf4_m)))
-void vsuxseg6ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u8mf8)))
-void vsuxseg6ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u8mf8_m)))
-void vsuxseg6ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i8m1)))
-void vsuxseg7ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i8m1_m)))
-void vsuxseg7ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i8mf2)))
-void vsuxseg7ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i8mf2_m)))
-void vsuxseg7ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i8mf4)))
-void vsuxseg7ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i8mf4_m)))
-void vsuxseg7ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i8mf8)))
-void vsuxseg7ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i8mf8_m)))
-void vsuxseg7ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u8m1)))
-void vsuxseg7ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u8m1_m)))
-void vsuxseg7ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u8mf2)))
-void vsuxseg7ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u8mf2_m)))
-void vsuxseg7ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u8mf4)))
-void vsuxseg7ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u8mf4_m)))
-void vsuxseg7ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u8mf8)))
-void vsuxseg7ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u8mf8_m)))
-void vsuxseg7ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i8m1)))
-void vsuxseg8ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i8m1_m)))
-void vsuxseg8ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i8mf2)))
-void vsuxseg8ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i8mf2_m)))
-void vsuxseg8ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i8mf4)))
-void vsuxseg8ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i8mf4_m)))
-void vsuxseg8ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i8mf8)))
-void vsuxseg8ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i8mf8_m)))
-void vsuxseg8ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u8m1)))
-void vsuxseg8ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u8m1_m)))
-void vsuxseg8ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u8mf2)))
-void vsuxseg8ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u8mf2_m)))
-void vsuxseg8ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u8mf4)))
-void vsuxseg8ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u8mf4_m)))
-void vsuxseg8ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u8mf8)))
-void vsuxseg8ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u8mf8_m)))
-void vsuxseg8ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i8m1)))
-void vsuxseg2ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i8m1_m)))
-void vsuxseg2ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i8mf2)))
-void vsuxseg2ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i8mf2_m)))
-void vsuxseg2ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i8mf4)))
-void vsuxseg2ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i8mf4_m)))
-void vsuxseg2ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i8mf8)))
-void vsuxseg2ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i8mf8_m)))
-void vsuxseg2ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u8m1)))
-void vsuxseg2ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u8m1_m)))
-void vsuxseg2ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u8mf2)))
-void vsuxseg2ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u8mf2_m)))
-void vsuxseg2ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u8mf4)))
-void vsuxseg2ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u8mf4_m)))
-void vsuxseg2ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u8mf8)))
-void vsuxseg2ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u8mf8_m)))
-void vsuxseg2ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i8m1)))
-void vsuxseg3ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i8m1_m)))
-void vsuxseg3ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i8mf2)))
-void vsuxseg3ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i8mf2_m)))
-void vsuxseg3ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i8mf4)))
-void vsuxseg3ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i8mf4_m)))
-void vsuxseg3ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i8mf8)))
-void vsuxseg3ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i8mf8_m)))
-void vsuxseg3ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u8m1)))
-void vsuxseg3ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u8m1_m)))
-void vsuxseg3ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u8mf2)))
-void vsuxseg3ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u8mf2_m)))
-void vsuxseg3ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u8mf4)))
-void vsuxseg3ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u8mf4_m)))
-void vsuxseg3ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u8mf8)))
-void vsuxseg3ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u8mf8_m)))
-void vsuxseg3ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i8m1)))
-void vsuxseg4ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i8m1_m)))
-void vsuxseg4ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i8mf2)))
-void vsuxseg4ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i8mf2_m)))
-void vsuxseg4ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i8mf4)))
-void vsuxseg4ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i8mf4_m)))
-void vsuxseg4ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i8mf8)))
-void vsuxseg4ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i8mf8_m)))
-void vsuxseg4ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u8m1)))
-void vsuxseg4ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u8m1_m)))
-void vsuxseg4ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u8mf2)))
-void vsuxseg4ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u8mf2_m)))
-void vsuxseg4ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u8mf4)))
-void vsuxseg4ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u8mf4_m)))
-void vsuxseg4ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u8mf8)))
-void vsuxseg4ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u8mf8_m)))
-void vsuxseg4ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i8m1)))
-void vsuxseg5ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i8m1_m)))
-void vsuxseg5ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i8mf2)))
-void vsuxseg5ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i8mf2_m)))
-void vsuxseg5ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i8mf4)))
-void vsuxseg5ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i8mf4_m)))
-void vsuxseg5ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i8mf8)))
-void vsuxseg5ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i8mf8_m)))
-void vsuxseg5ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u8m1)))
-void vsuxseg5ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u8m1_m)))
-void vsuxseg5ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u8mf2)))
-void vsuxseg5ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u8mf2_m)))
-void vsuxseg5ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u8mf4)))
-void vsuxseg5ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u8mf4_m)))
-void vsuxseg5ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u8mf8)))
-void vsuxseg5ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u8mf8_m)))
-void vsuxseg5ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i8m1)))
-void vsuxseg6ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i8m1_m)))
-void vsuxseg6ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i8mf2)))
-void vsuxseg6ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i8mf2_m)))
-void vsuxseg6ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i8mf4)))
-void vsuxseg6ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i8mf4_m)))
-void vsuxseg6ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i8mf8)))
-void vsuxseg6ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i8mf8_m)))
-void vsuxseg6ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u8m1)))
-void vsuxseg6ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u8m1_m)))
-void vsuxseg6ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u8mf2)))
-void vsuxseg6ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u8mf2_m)))
-void vsuxseg6ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u8mf4)))
-void vsuxseg6ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u8mf4_m)))
-void vsuxseg6ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u8mf8)))
-void vsuxseg6ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u8mf8_m)))
-void vsuxseg6ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i8m1)))
-void vsuxseg7ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i8m1_m)))
-void vsuxseg7ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i8mf2)))
-void vsuxseg7ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i8mf2_m)))
-void vsuxseg7ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i8mf4)))
-void vsuxseg7ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i8mf4_m)))
-void vsuxseg7ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i8mf8)))
-void vsuxseg7ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i8mf8_m)))
-void vsuxseg7ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u8m1)))
-void vsuxseg7ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u8m1_m)))
-void vsuxseg7ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u8mf2)))
-void vsuxseg7ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u8mf2_m)))
-void vsuxseg7ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u8mf4)))
-void vsuxseg7ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u8mf4_m)))
-void vsuxseg7ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u8mf8)))
-void vsuxseg7ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u8mf8_m)))
-void vsuxseg7ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i8m1)))
-void vsuxseg8ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i8m1_m)))
-void vsuxseg8ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i8mf2)))
-void vsuxseg8ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i8mf2_m)))
-void vsuxseg8ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i8mf4)))
-void vsuxseg8ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i8mf4_m)))
-void vsuxseg8ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i8mf8)))
-void vsuxseg8ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i8mf8_m)))
-void vsuxseg8ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u8m1)))
-void vsuxseg8ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u8m1_m)))
-void vsuxseg8ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u8mf2)))
-void vsuxseg8ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u8mf2_m)))
-void vsuxseg8ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u8mf4)))
-void vsuxseg8ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u8mf4_m)))
-void vsuxseg8ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u8mf8)))
-void vsuxseg8ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u8mf8_m)))
-void vsuxseg8ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i16m1)))
-void vsuxseg2ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i16m1_m)))
-void vsuxseg2ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i16m2)))
-void vsuxseg2ei8(int16_t * op0, vuint8m1_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i16m2_m)))
-void vsuxseg2ei8(vbool8_t op0, int16_t * op1, vuint8m1_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i16m4)))
-void vsuxseg2ei8(int16_t * op0, vuint8m2_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i16m4_m)))
-void vsuxseg2ei8(vbool4_t op0, int16_t * op1, vuint8m2_t op2, vint16m4_t op3, vint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i16mf2)))
-void vsuxseg2ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i16mf2_m)))
-void vsuxseg2ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i16mf4)))
-void vsuxseg2ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i16mf4_m)))
-void vsuxseg2ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u16m1)))
-void vsuxseg2ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u16m1_m)))
-void vsuxseg2ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u16m2)))
-void vsuxseg2ei8(uint16_t * op0, vuint8m1_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u16m2_m)))
-void vsuxseg2ei8(vbool8_t op0, uint16_t * op1, vuint8m1_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u16m4)))
-void vsuxseg2ei8(uint16_t * op0, vuint8m2_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u16m4_m)))
-void vsuxseg2ei8(vbool4_t op0, uint16_t * op1, vuint8m2_t op2, vuint16m4_t op3, vuint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u16mf2)))
-void vsuxseg2ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u16mf2_m)))
-void vsuxseg2ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u16mf4)))
-void vsuxseg2ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u16mf4_m)))
-void vsuxseg2ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i16m1)))
-void vsuxseg3ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i16m1_m)))
-void vsuxseg3ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i16m2)))
-void vsuxseg3ei8(int16_t * op0, vuint8m1_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i16m2_m)))
-void vsuxseg3ei8(vbool8_t op0, int16_t * op1, vuint8m1_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i16mf2)))
-void vsuxseg3ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i16mf2_m)))
-void vsuxseg3ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i16mf4)))
-void vsuxseg3ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i16mf4_m)))
-void vsuxseg3ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u16m1)))
-void vsuxseg3ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u16m1_m)))
-void vsuxseg3ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u16m2)))
-void vsuxseg3ei8(uint16_t * op0, vuint8m1_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u16m2_m)))
-void vsuxseg3ei8(vbool8_t op0, uint16_t * op1, vuint8m1_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u16mf2)))
-void vsuxseg3ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u16mf2_m)))
-void vsuxseg3ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u16mf4)))
-void vsuxseg3ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u16mf4_m)))
-void vsuxseg3ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i16m1)))
-void vsuxseg4ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i16m1_m)))
-void vsuxseg4ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i16m2)))
-void vsuxseg4ei8(int16_t * op0, vuint8m1_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i16m2_m)))
-void vsuxseg4ei8(vbool8_t op0, int16_t * op1, vuint8m1_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i16mf2)))
-void vsuxseg4ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i16mf2_m)))
-void vsuxseg4ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i16mf4)))
-void vsuxseg4ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i16mf4_m)))
-void vsuxseg4ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u16m1)))
-void vsuxseg4ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u16m1_m)))
-void vsuxseg4ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u16m2)))
-void vsuxseg4ei8(uint16_t * op0, vuint8m1_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u16m2_m)))
-void vsuxseg4ei8(vbool8_t op0, uint16_t * op1, vuint8m1_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u16mf2)))
-void vsuxseg4ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u16mf2_m)))
-void vsuxseg4ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u16mf4)))
-void vsuxseg4ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u16mf4_m)))
-void vsuxseg4ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i16m1)))
-void vsuxseg5ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i16m1_m)))
-void vsuxseg5ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i16mf2)))
-void vsuxseg5ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i16mf2_m)))
-void vsuxseg5ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i16mf4)))
-void vsuxseg5ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i16mf4_m)))
-void vsuxseg5ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u16m1)))
-void vsuxseg5ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u16m1_m)))
-void vsuxseg5ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u16mf2)))
-void vsuxseg5ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u16mf2_m)))
-void vsuxseg5ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u16mf4)))
-void vsuxseg5ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u16mf4_m)))
-void vsuxseg5ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i16m1)))
-void vsuxseg6ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i16m1_m)))
-void vsuxseg6ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i16mf2)))
-void vsuxseg6ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i16mf2_m)))
-void vsuxseg6ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i16mf4)))
-void vsuxseg6ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i16mf4_m)))
-void vsuxseg6ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u16m1)))
-void vsuxseg6ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u16m1_m)))
-void vsuxseg6ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u16mf2)))
-void vsuxseg6ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u16mf2_m)))
-void vsuxseg6ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u16mf4)))
-void vsuxseg6ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u16mf4_m)))
-void vsuxseg6ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i16m1)))
-void vsuxseg7ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i16m1_m)))
-void vsuxseg7ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i16mf2)))
-void vsuxseg7ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i16mf2_m)))
-void vsuxseg7ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i16mf4)))
-void vsuxseg7ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i16mf4_m)))
-void vsuxseg7ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u16m1)))
-void vsuxseg7ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u16m1_m)))
-void vsuxseg7ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u16mf2)))
-void vsuxseg7ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u16mf2_m)))
-void vsuxseg7ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u16mf4)))
-void vsuxseg7ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u16mf4_m)))
-void vsuxseg7ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i16m1)))
-void vsuxseg8ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i16m1_m)))
-void vsuxseg8ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i16mf2)))
-void vsuxseg8ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i16mf2_m)))
-void vsuxseg8ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i16mf4)))
-void vsuxseg8ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i16mf4_m)))
-void vsuxseg8ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u16m1)))
-void vsuxseg8ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u16m1_m)))
-void vsuxseg8ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u16mf2)))
-void vsuxseg8ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u16mf2_m)))
-void vsuxseg8ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u16mf4)))
-void vsuxseg8ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u16mf4_m)))
-void vsuxseg8ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i16m1)))
-void vsuxseg2ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i16m1_m)))
-void vsuxseg2ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i16m2)))
-void vsuxseg2ei16(int16_t * op0, vuint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i16m2_m)))
-void vsuxseg2ei16(vbool8_t op0, int16_t * op1, vuint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i16m4)))
-void vsuxseg2ei16(int16_t * op0, vuint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i16m4_m)))
-void vsuxseg2ei16(vbool4_t op0, int16_t * op1, vuint16m4_t op2, vint16m4_t op3, vint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i16mf2)))
-void vsuxseg2ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i16mf2_m)))
-void vsuxseg2ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i16mf4)))
-void vsuxseg2ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i16mf4_m)))
-void vsuxseg2ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u16m1)))
-void vsuxseg2ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u16m1_m)))
-void vsuxseg2ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u16m2)))
-void vsuxseg2ei16(uint16_t * op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u16m2_m)))
-void vsuxseg2ei16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u16m4)))
-void vsuxseg2ei16(uint16_t * op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u16m4_m)))
-void vsuxseg2ei16(vbool4_t op0, uint16_t * op1, vuint16m4_t op2, vuint16m4_t op3, vuint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u16mf2)))
-void vsuxseg2ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u16mf2_m)))
-void vsuxseg2ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u16mf4)))
-void vsuxseg2ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u16mf4_m)))
-void vsuxseg2ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i16m1)))
-void vsuxseg3ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i16m1_m)))
-void vsuxseg3ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i16m2)))
-void vsuxseg3ei16(int16_t * op0, vuint16m2_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i16m2_m)))
-void vsuxseg3ei16(vbool8_t op0, int16_t * op1, vuint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i16mf2)))
-void vsuxseg3ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i16mf2_m)))
-void vsuxseg3ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i16mf4)))
-void vsuxseg3ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i16mf4_m)))
-void vsuxseg3ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u16m1)))
-void vsuxseg3ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u16m1_m)))
-void vsuxseg3ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u16m2)))
-void vsuxseg3ei16(uint16_t * op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u16m2_m)))
-void vsuxseg3ei16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u16mf2)))
-void vsuxseg3ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u16mf2_m)))
-void vsuxseg3ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u16mf4)))
-void vsuxseg3ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u16mf4_m)))
-void vsuxseg3ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i16m1)))
-void vsuxseg4ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i16m1_m)))
-void vsuxseg4ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i16m2)))
-void vsuxseg4ei16(int16_t * op0, vuint16m2_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i16m2_m)))
-void vsuxseg4ei16(vbool8_t op0, int16_t * op1, vuint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i16mf2)))
-void vsuxseg4ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i16mf2_m)))
-void vsuxseg4ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i16mf4)))
-void vsuxseg4ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i16mf4_m)))
-void vsuxseg4ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u16m1)))
-void vsuxseg4ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u16m1_m)))
-void vsuxseg4ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u16m2)))
-void vsuxseg4ei16(uint16_t * op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u16m2_m)))
-void vsuxseg4ei16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u16mf2)))
-void vsuxseg4ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u16mf2_m)))
-void vsuxseg4ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u16mf4)))
-void vsuxseg4ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u16mf4_m)))
-void vsuxseg4ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i16m1)))
-void vsuxseg5ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i16m1_m)))
-void vsuxseg5ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i16mf2)))
-void vsuxseg5ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i16mf2_m)))
-void vsuxseg5ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i16mf4)))
-void vsuxseg5ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i16mf4_m)))
-void vsuxseg5ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u16m1)))
-void vsuxseg5ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u16m1_m)))
-void vsuxseg5ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u16mf2)))
-void vsuxseg5ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u16mf2_m)))
-void vsuxseg5ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u16mf4)))
-void vsuxseg5ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u16mf4_m)))
-void vsuxseg5ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i16m1)))
-void vsuxseg6ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i16m1_m)))
-void vsuxseg6ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i16mf2)))
-void vsuxseg6ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i16mf2_m)))
-void vsuxseg6ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i16mf4)))
-void vsuxseg6ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i16mf4_m)))
-void vsuxseg6ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u16m1)))
-void vsuxseg6ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u16m1_m)))
-void vsuxseg6ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u16mf2)))
-void vsuxseg6ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u16mf2_m)))
-void vsuxseg6ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u16mf4)))
-void vsuxseg6ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u16mf4_m)))
-void vsuxseg6ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i16m1)))
-void vsuxseg7ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i16m1_m)))
-void vsuxseg7ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i16mf2)))
-void vsuxseg7ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i16mf2_m)))
-void vsuxseg7ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i16mf4)))
-void vsuxseg7ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i16mf4_m)))
-void vsuxseg7ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u16m1)))
-void vsuxseg7ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u16m1_m)))
-void vsuxseg7ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u16mf2)))
-void vsuxseg7ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u16mf2_m)))
-void vsuxseg7ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u16mf4)))
-void vsuxseg7ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u16mf4_m)))
-void vsuxseg7ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i16m1)))
-void vsuxseg8ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i16m1_m)))
-void vsuxseg8ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i16mf2)))
-void vsuxseg8ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i16mf2_m)))
-void vsuxseg8ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i16mf4)))
-void vsuxseg8ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i16mf4_m)))
-void vsuxseg8ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u16m1)))
-void vsuxseg8ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u16m1_m)))
-void vsuxseg8ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u16mf2)))
-void vsuxseg8ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u16mf2_m)))
-void vsuxseg8ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u16mf4)))
-void vsuxseg8ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u16mf4_m)))
-void vsuxseg8ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i16m1)))
-void vsuxseg2ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i16m1_m)))
-void vsuxseg2ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i16m2)))
-void vsuxseg2ei32(int16_t * op0, vuint32m4_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i16m2_m)))
-void vsuxseg2ei32(vbool8_t op0, int16_t * op1, vuint32m4_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i16m4)))
-void vsuxseg2ei32(int16_t * op0, vuint32m8_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i16m4_m)))
-void vsuxseg2ei32(vbool4_t op0, int16_t * op1, vuint32m8_t op2, vint16m4_t op3, vint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i16mf2)))
-void vsuxseg2ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i16mf2_m)))
-void vsuxseg2ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i16mf4)))
-void vsuxseg2ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i16mf4_m)))
-void vsuxseg2ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u16m1)))
-void vsuxseg2ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u16m1_m)))
-void vsuxseg2ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u16m2)))
-void vsuxseg2ei32(uint16_t * op0, vuint32m4_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u16m2_m)))
-void vsuxseg2ei32(vbool8_t op0, uint16_t * op1, vuint32m4_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u16m4)))
-void vsuxseg2ei32(uint16_t * op0, vuint32m8_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u16m4_m)))
-void vsuxseg2ei32(vbool4_t op0, uint16_t * op1, vuint32m8_t op2, vuint16m4_t op3, vuint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u16mf2)))
-void vsuxseg2ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u16mf2_m)))
-void vsuxseg2ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u16mf4)))
-void vsuxseg2ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u16mf4_m)))
-void vsuxseg2ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i16m1)))
-void vsuxseg3ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i16m1_m)))
-void vsuxseg3ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i16m2)))
-void vsuxseg3ei32(int16_t * op0, vuint32m4_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i16m2_m)))
-void vsuxseg3ei32(vbool8_t op0, int16_t * op1, vuint32m4_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i16mf2)))
-void vsuxseg3ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i16mf2_m)))
-void vsuxseg3ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i16mf4)))
-void vsuxseg3ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i16mf4_m)))
-void vsuxseg3ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u16m1)))
-void vsuxseg3ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u16m1_m)))
-void vsuxseg3ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u16m2)))
-void vsuxseg3ei32(uint16_t * op0, vuint32m4_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u16m2_m)))
-void vsuxseg3ei32(vbool8_t op0, uint16_t * op1, vuint32m4_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u16mf2)))
-void vsuxseg3ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u16mf2_m)))
-void vsuxseg3ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u16mf4)))
-void vsuxseg3ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u16mf4_m)))
-void vsuxseg3ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i16m1)))
-void vsuxseg4ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i16m1_m)))
-void vsuxseg4ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i16m2)))
-void vsuxseg4ei32(int16_t * op0, vuint32m4_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i16m2_m)))
-void vsuxseg4ei32(vbool8_t op0, int16_t * op1, vuint32m4_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i16mf2)))
-void vsuxseg4ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i16mf2_m)))
-void vsuxseg4ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i16mf4)))
-void vsuxseg4ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i16mf4_m)))
-void vsuxseg4ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u16m1)))
-void vsuxseg4ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u16m1_m)))
-void vsuxseg4ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u16m2)))
-void vsuxseg4ei32(uint16_t * op0, vuint32m4_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u16m2_m)))
-void vsuxseg4ei32(vbool8_t op0, uint16_t * op1, vuint32m4_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u16mf2)))
-void vsuxseg4ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u16mf2_m)))
-void vsuxseg4ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u16mf4)))
-void vsuxseg4ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u16mf4_m)))
-void vsuxseg4ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i16m1)))
-void vsuxseg5ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i16m1_m)))
-void vsuxseg5ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i16mf2)))
-void vsuxseg5ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i16mf2_m)))
-void vsuxseg5ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i16mf4)))
-void vsuxseg5ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i16mf4_m)))
-void vsuxseg5ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u16m1)))
-void vsuxseg5ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u16m1_m)))
-void vsuxseg5ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u16mf2)))
-void vsuxseg5ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u16mf2_m)))
-void vsuxseg5ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u16mf4)))
-void vsuxseg5ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u16mf4_m)))
-void vsuxseg5ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i16m1)))
-void vsuxseg6ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i16m1_m)))
-void vsuxseg6ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i16mf2)))
-void vsuxseg6ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i16mf2_m)))
-void vsuxseg6ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i16mf4)))
-void vsuxseg6ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i16mf4_m)))
-void vsuxseg6ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u16m1)))
-void vsuxseg6ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u16m1_m)))
-void vsuxseg6ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u16mf2)))
-void vsuxseg6ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u16mf2_m)))
-void vsuxseg6ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u16mf4)))
-void vsuxseg6ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u16mf4_m)))
-void vsuxseg6ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i16m1)))
-void vsuxseg7ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i16m1_m)))
-void vsuxseg7ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i16mf2)))
-void vsuxseg7ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i16mf2_m)))
-void vsuxseg7ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i16mf4)))
-void vsuxseg7ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i16mf4_m)))
-void vsuxseg7ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u16m1)))
-void vsuxseg7ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u16m1_m)))
-void vsuxseg7ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u16mf2)))
-void vsuxseg7ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u16mf2_m)))
-void vsuxseg7ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u16mf4)))
-void vsuxseg7ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u16mf4_m)))
-void vsuxseg7ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i16m1)))
-void vsuxseg8ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i16m1_m)))
-void vsuxseg8ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i16mf2)))
-void vsuxseg8ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i16mf2_m)))
-void vsuxseg8ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i16mf4)))
-void vsuxseg8ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i16mf4_m)))
-void vsuxseg8ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u16m1)))
-void vsuxseg8ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u16m1_m)))
-void vsuxseg8ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u16mf2)))
-void vsuxseg8ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u16mf2_m)))
-void vsuxseg8ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u16mf4)))
-void vsuxseg8ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u16mf4_m)))
-void vsuxseg8ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i16m1)))
-void vsuxseg2ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i16m1_m)))
-void vsuxseg2ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i16m2)))
-void vsuxseg2ei64(int16_t * op0, vuint64m8_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i16m2_m)))
-void vsuxseg2ei64(vbool8_t op0, int16_t * op1, vuint64m8_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i16mf2)))
-void vsuxseg2ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i16mf2_m)))
-void vsuxseg2ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i16mf4)))
-void vsuxseg2ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i16mf4_m)))
-void vsuxseg2ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u16m1)))
-void vsuxseg2ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u16m1_m)))
-void vsuxseg2ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u16m2)))
-void vsuxseg2ei64(uint16_t * op0, vuint64m8_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u16m2_m)))
-void vsuxseg2ei64(vbool8_t op0, uint16_t * op1, vuint64m8_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u16mf2)))
-void vsuxseg2ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u16mf2_m)))
-void vsuxseg2ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u16mf4)))
-void vsuxseg2ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u16mf4_m)))
-void vsuxseg2ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i16m1)))
-void vsuxseg3ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i16m1_m)))
-void vsuxseg3ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i16m2)))
-void vsuxseg3ei64(int16_t * op0, vuint64m8_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i16m2_m)))
-void vsuxseg3ei64(vbool8_t op0, int16_t * op1, vuint64m8_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i16mf2)))
-void vsuxseg3ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i16mf2_m)))
-void vsuxseg3ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i16mf4)))
-void vsuxseg3ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i16mf4_m)))
-void vsuxseg3ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u16m1)))
-void vsuxseg3ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u16m1_m)))
-void vsuxseg3ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u16m2)))
-void vsuxseg3ei64(uint16_t * op0, vuint64m8_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u16m2_m)))
-void vsuxseg3ei64(vbool8_t op0, uint16_t * op1, vuint64m8_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u16mf2)))
-void vsuxseg3ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u16mf2_m)))
-void vsuxseg3ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u16mf4)))
-void vsuxseg3ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u16mf4_m)))
-void vsuxseg3ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i16m1)))
-void vsuxseg4ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i16m1_m)))
-void vsuxseg4ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i16m2)))
-void vsuxseg4ei64(int16_t * op0, vuint64m8_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i16m2_m)))
-void vsuxseg4ei64(vbool8_t op0, int16_t * op1, vuint64m8_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i16mf2)))
-void vsuxseg4ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i16mf2_m)))
-void vsuxseg4ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i16mf4)))
-void vsuxseg4ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i16mf4_m)))
-void vsuxseg4ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u16m1)))
-void vsuxseg4ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u16m1_m)))
-void vsuxseg4ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u16m2)))
-void vsuxseg4ei64(uint16_t * op0, vuint64m8_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u16m2_m)))
-void vsuxseg4ei64(vbool8_t op0, uint16_t * op1, vuint64m8_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u16mf2)))
-void vsuxseg4ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u16mf2_m)))
-void vsuxseg4ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u16mf4)))
-void vsuxseg4ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u16mf4_m)))
-void vsuxseg4ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i16m1)))
-void vsuxseg5ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i16m1_m)))
-void vsuxseg5ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i16mf2)))
-void vsuxseg5ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i16mf2_m)))
-void vsuxseg5ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i16mf4)))
-void vsuxseg5ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i16mf4_m)))
-void vsuxseg5ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u16m1)))
-void vsuxseg5ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u16m1_m)))
-void vsuxseg5ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u16mf2)))
-void vsuxseg5ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u16mf2_m)))
-void vsuxseg5ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u16mf4)))
-void vsuxseg5ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u16mf4_m)))
-void vsuxseg5ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i16m1)))
-void vsuxseg6ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i16m1_m)))
-void vsuxseg6ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i16mf2)))
-void vsuxseg6ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i16mf2_m)))
-void vsuxseg6ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i16mf4)))
-void vsuxseg6ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i16mf4_m)))
-void vsuxseg6ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u16m1)))
-void vsuxseg6ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u16m1_m)))
-void vsuxseg6ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u16mf2)))
-void vsuxseg6ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u16mf2_m)))
-void vsuxseg6ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u16mf4)))
-void vsuxseg6ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u16mf4_m)))
-void vsuxseg6ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i16m1)))
-void vsuxseg7ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i16m1_m)))
-void vsuxseg7ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i16mf2)))
-void vsuxseg7ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i16mf2_m)))
-void vsuxseg7ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i16mf4)))
-void vsuxseg7ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i16mf4_m)))
-void vsuxseg7ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u16m1)))
-void vsuxseg7ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u16m1_m)))
-void vsuxseg7ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u16mf2)))
-void vsuxseg7ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u16mf2_m)))
-void vsuxseg7ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u16mf4)))
-void vsuxseg7ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u16mf4_m)))
-void vsuxseg7ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i16m1)))
-void vsuxseg8ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i16m1_m)))
-void vsuxseg8ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i16mf2)))
-void vsuxseg8ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i16mf2_m)))
-void vsuxseg8ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i16mf4)))
-void vsuxseg8ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i16mf4_m)))
-void vsuxseg8ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u16m1)))
-void vsuxseg8ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u16m1_m)))
-void vsuxseg8ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u16mf2)))
-void vsuxseg8ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u16mf2_m)))
-void vsuxseg8ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u16mf4)))
-void vsuxseg8ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u16mf4_m)))
-void vsuxseg8ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i32m1)))
-void vsuxseg2ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i32m1_m)))
-void vsuxseg2ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i32m2)))
-void vsuxseg2ei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i32m2_m)))
-void vsuxseg2ei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i32m4)))
-void vsuxseg2ei8(int32_t * op0, vuint8m1_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i32m4_m)))
-void vsuxseg2ei8(vbool8_t op0, int32_t * op1, vuint8m1_t op2, vint32m4_t op3, vint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i32mf2)))
-void vsuxseg2ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i32mf2_m)))
-void vsuxseg2ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u32m1)))
-void vsuxseg2ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u32m1_m)))
-void vsuxseg2ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u32m2)))
-void vsuxseg2ei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u32m2_m)))
-void vsuxseg2ei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u32m4)))
-void vsuxseg2ei8(uint32_t * op0, vuint8m1_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u32m4_m)))
-void vsuxseg2ei8(vbool8_t op0, uint32_t * op1, vuint8m1_t op2, vuint32m4_t op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u32mf2)))
-void vsuxseg2ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u32mf2_m)))
-void vsuxseg2ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i32m1)))
-void vsuxseg3ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i32m1_m)))
-void vsuxseg3ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i32m2)))
-void vsuxseg3ei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i32m2_m)))
-void vsuxseg3ei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i32mf2)))
-void vsuxseg3ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i32mf2_m)))
-void vsuxseg3ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u32m1)))
-void vsuxseg3ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u32m1_m)))
-void vsuxseg3ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u32m2)))
-void vsuxseg3ei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u32m2_m)))
-void vsuxseg3ei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u32mf2)))
-void vsuxseg3ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u32mf2_m)))
-void vsuxseg3ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i32m1)))
-void vsuxseg4ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i32m1_m)))
-void vsuxseg4ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i32m2)))
-void vsuxseg4ei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i32m2_m)))
-void vsuxseg4ei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i32mf2)))
-void vsuxseg4ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i32mf2_m)))
-void vsuxseg4ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u32m1)))
-void vsuxseg4ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u32m1_m)))
-void vsuxseg4ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u32m2)))
-void vsuxseg4ei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u32m2_m)))
-void vsuxseg4ei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u32mf2)))
-void vsuxseg4ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u32mf2_m)))
-void vsuxseg4ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i32m1)))
-void vsuxseg5ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i32m1_m)))
-void vsuxseg5ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i32mf2)))
-void vsuxseg5ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i32mf2_m)))
-void vsuxseg5ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u32m1)))
-void vsuxseg5ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u32m1_m)))
-void vsuxseg5ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u32mf2)))
-void vsuxseg5ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u32mf2_m)))
-void vsuxseg5ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i32m1)))
-void vsuxseg6ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i32m1_m)))
-void vsuxseg6ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i32mf2)))
-void vsuxseg6ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i32mf2_m)))
-void vsuxseg6ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u32m1)))
-void vsuxseg6ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u32m1_m)))
-void vsuxseg6ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u32mf2)))
-void vsuxseg6ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u32mf2_m)))
-void vsuxseg6ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i32m1)))
-void vsuxseg7ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i32m1_m)))
-void vsuxseg7ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i32mf2)))
-void vsuxseg7ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i32mf2_m)))
-void vsuxseg7ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u32m1)))
-void vsuxseg7ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u32m1_m)))
-void vsuxseg7ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u32mf2)))
-void vsuxseg7ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u32mf2_m)))
-void vsuxseg7ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i32m1)))
-void vsuxseg8ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i32m1_m)))
-void vsuxseg8ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i32mf2)))
-void vsuxseg8ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i32mf2_m)))
-void vsuxseg8ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u32m1)))
-void vsuxseg8ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u32m1_m)))
-void vsuxseg8ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u32mf2)))
-void vsuxseg8ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u32mf2_m)))
-void vsuxseg8ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i32m1)))
-void vsuxseg2ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i32m1_m)))
-void vsuxseg2ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i32m2)))
-void vsuxseg2ei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i32m2_m)))
-void vsuxseg2ei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i32m4)))
-void vsuxseg2ei16(int32_t * op0, vuint16m2_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i32m4_m)))
-void vsuxseg2ei16(vbool8_t op0, int32_t * op1, vuint16m2_t op2, vint32m4_t op3, vint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i32mf2)))
-void vsuxseg2ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i32mf2_m)))
-void vsuxseg2ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u32m1)))
-void vsuxseg2ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u32m1_m)))
-void vsuxseg2ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u32m2)))
-void vsuxseg2ei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u32m2_m)))
-void vsuxseg2ei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u32m4)))
-void vsuxseg2ei16(uint32_t * op0, vuint16m2_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u32m4_m)))
-void vsuxseg2ei16(vbool8_t op0, uint32_t * op1, vuint16m2_t op2, vuint32m4_t op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u32mf2)))
-void vsuxseg2ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u32mf2_m)))
-void vsuxseg2ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i32m1)))
-void vsuxseg3ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i32m1_m)))
-void vsuxseg3ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i32m2)))
-void vsuxseg3ei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i32m2_m)))
-void vsuxseg3ei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i32mf2)))
-void vsuxseg3ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i32mf2_m)))
-void vsuxseg3ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u32m1)))
-void vsuxseg3ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u32m1_m)))
-void vsuxseg3ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u32m2)))
-void vsuxseg3ei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u32m2_m)))
-void vsuxseg3ei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u32mf2)))
-void vsuxseg3ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u32mf2_m)))
-void vsuxseg3ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i32m1)))
-void vsuxseg4ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i32m1_m)))
-void vsuxseg4ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i32m2)))
-void vsuxseg4ei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i32m2_m)))
-void vsuxseg4ei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i32mf2)))
-void vsuxseg4ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i32mf2_m)))
-void vsuxseg4ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u32m1)))
-void vsuxseg4ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u32m1_m)))
-void vsuxseg4ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u32m2)))
-void vsuxseg4ei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u32m2_m)))
-void vsuxseg4ei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u32mf2)))
-void vsuxseg4ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u32mf2_m)))
-void vsuxseg4ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i32m1)))
-void vsuxseg5ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i32m1_m)))
-void vsuxseg5ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i32mf2)))
-void vsuxseg5ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i32mf2_m)))
-void vsuxseg5ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u32m1)))
-void vsuxseg5ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u32m1_m)))
-void vsuxseg5ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u32mf2)))
-void vsuxseg5ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u32mf2_m)))
-void vsuxseg5ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i32m1)))
-void vsuxseg6ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i32m1_m)))
-void vsuxseg6ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i32mf2)))
-void vsuxseg6ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i32mf2_m)))
-void vsuxseg6ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u32m1)))
-void vsuxseg6ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u32m1_m)))
-void vsuxseg6ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u32mf2)))
-void vsuxseg6ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u32mf2_m)))
-void vsuxseg6ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i32m1)))
-void vsuxseg7ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i32m1_m)))
-void vsuxseg7ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i32mf2)))
-void vsuxseg7ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i32mf2_m)))
-void vsuxseg7ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u32m1)))
-void vsuxseg7ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u32m1_m)))
-void vsuxseg7ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u32mf2)))
-void vsuxseg7ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u32mf2_m)))
-void vsuxseg7ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i32m1)))
-void vsuxseg8ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i32m1_m)))
-void vsuxseg8ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i32mf2)))
-void vsuxseg8ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i32mf2_m)))
-void vsuxseg8ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u32m1)))
-void vsuxseg8ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u32m1_m)))
-void vsuxseg8ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u32mf2)))
-void vsuxseg8ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u32mf2_m)))
-void vsuxseg8ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i32m1)))
-void vsuxseg2ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i32m1_m)))
-void vsuxseg2ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i32m2)))
-void vsuxseg2ei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i32m2_m)))
-void vsuxseg2ei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i32m4)))
-void vsuxseg2ei32(int32_t * op0, vuint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i32m4_m)))
-void vsuxseg2ei32(vbool8_t op0, int32_t * op1, vuint32m4_t op2, vint32m4_t op3, vint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i32mf2)))
-void vsuxseg2ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i32mf2_m)))
-void vsuxseg2ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u32m1)))
-void vsuxseg2ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u32m1_m)))
-void vsuxseg2ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u32m2)))
-void vsuxseg2ei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u32m2_m)))
-void vsuxseg2ei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u32m4)))
-void vsuxseg2ei32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u32m4_m)))
-void vsuxseg2ei32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u32mf2)))
-void vsuxseg2ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u32mf2_m)))
-void vsuxseg2ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i32m1)))
-void vsuxseg3ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i32m1_m)))
-void vsuxseg3ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i32m2)))
-void vsuxseg3ei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i32m2_m)))
-void vsuxseg3ei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i32mf2)))
-void vsuxseg3ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i32mf2_m)))
-void vsuxseg3ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u32m1)))
-void vsuxseg3ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u32m1_m)))
-void vsuxseg3ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u32m2)))
-void vsuxseg3ei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u32m2_m)))
-void vsuxseg3ei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u32mf2)))
-void vsuxseg3ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u32mf2_m)))
-void vsuxseg3ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i32m1)))
-void vsuxseg4ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i32m1_m)))
-void vsuxseg4ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i32m2)))
-void vsuxseg4ei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i32m2_m)))
-void vsuxseg4ei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i32mf2)))
-void vsuxseg4ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i32mf2_m)))
-void vsuxseg4ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u32m1)))
-void vsuxseg4ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u32m1_m)))
-void vsuxseg4ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u32m2)))
-void vsuxseg4ei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u32m2_m)))
-void vsuxseg4ei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u32mf2)))
-void vsuxseg4ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u32mf2_m)))
-void vsuxseg4ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i32m1)))
-void vsuxseg5ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i32m1_m)))
-void vsuxseg5ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i32mf2)))
-void vsuxseg5ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i32mf2_m)))
-void vsuxseg5ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u32m1)))
-void vsuxseg5ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u32m1_m)))
-void vsuxseg5ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u32mf2)))
-void vsuxseg5ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u32mf2_m)))
-void vsuxseg5ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i32m1)))
-void vsuxseg6ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i32m1_m)))
-void vsuxseg6ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i32mf2)))
-void vsuxseg6ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i32mf2_m)))
-void vsuxseg6ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u32m1)))
-void vsuxseg6ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u32m1_m)))
-void vsuxseg6ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u32mf2)))
-void vsuxseg6ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u32mf2_m)))
-void vsuxseg6ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i32m1)))
-void vsuxseg7ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i32m1_m)))
-void vsuxseg7ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i32mf2)))
-void vsuxseg7ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i32mf2_m)))
-void vsuxseg7ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u32m1)))
-void vsuxseg7ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u32m1_m)))
-void vsuxseg7ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u32mf2)))
-void vsuxseg7ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u32mf2_m)))
-void vsuxseg7ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i32m1)))
-void vsuxseg8ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i32m1_m)))
-void vsuxseg8ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i32mf2)))
-void vsuxseg8ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i32mf2_m)))
-void vsuxseg8ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u32m1)))
-void vsuxseg8ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u32m1_m)))
-void vsuxseg8ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u32mf2)))
-void vsuxseg8ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u32mf2_m)))
-void vsuxseg8ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i32m1)))
-void vsuxseg2ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i32m1_m)))
-void vsuxseg2ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i32m2)))
-void vsuxseg2ei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i32m2_m)))
-void vsuxseg2ei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i32m4)))
-void vsuxseg2ei64(int32_t * op0, vuint64m8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i32m4_m)))
-void vsuxseg2ei64(vbool8_t op0, int32_t * op1, vuint64m8_t op2, vint32m4_t op3, vint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i32mf2)))
-void vsuxseg2ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i32mf2_m)))
-void vsuxseg2ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u32m1)))
-void vsuxseg2ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u32m1_m)))
-void vsuxseg2ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u32m2)))
-void vsuxseg2ei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u32m2_m)))
-void vsuxseg2ei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u32m4)))
-void vsuxseg2ei64(uint32_t * op0, vuint64m8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u32m4_m)))
-void vsuxseg2ei64(vbool8_t op0, uint32_t * op1, vuint64m8_t op2, vuint32m4_t op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u32mf2)))
-void vsuxseg2ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u32mf2_m)))
-void vsuxseg2ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i32m1)))
-void vsuxseg3ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i32m1_m)))
-void vsuxseg3ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i32m2)))
-void vsuxseg3ei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i32m2_m)))
-void vsuxseg3ei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i32mf2)))
-void vsuxseg3ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i32mf2_m)))
-void vsuxseg3ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u32m1)))
-void vsuxseg3ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u32m1_m)))
-void vsuxseg3ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u32m2)))
-void vsuxseg3ei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u32m2_m)))
-void vsuxseg3ei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u32mf2)))
-void vsuxseg3ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u32mf2_m)))
-void vsuxseg3ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i32m1)))
-void vsuxseg4ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i32m1_m)))
-void vsuxseg4ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i32m2)))
-void vsuxseg4ei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i32m2_m)))
-void vsuxseg4ei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i32mf2)))
-void vsuxseg4ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i32mf2_m)))
-void vsuxseg4ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u32m1)))
-void vsuxseg4ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u32m1_m)))
-void vsuxseg4ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u32m2)))
-void vsuxseg4ei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u32m2_m)))
-void vsuxseg4ei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u32mf2)))
-void vsuxseg4ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u32mf2_m)))
-void vsuxseg4ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i32m1)))
-void vsuxseg5ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i32m1_m)))
-void vsuxseg5ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i32mf2)))
-void vsuxseg5ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i32mf2_m)))
-void vsuxseg5ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u32m1)))
-void vsuxseg5ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u32m1_m)))
-void vsuxseg5ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u32mf2)))
-void vsuxseg5ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u32mf2_m)))
-void vsuxseg5ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i32m1)))
-void vsuxseg6ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i32m1_m)))
-void vsuxseg6ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i32mf2)))
-void vsuxseg6ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i32mf2_m)))
-void vsuxseg6ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u32m1)))
-void vsuxseg6ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u32m1_m)))
-void vsuxseg6ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u32mf2)))
-void vsuxseg6ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u32mf2_m)))
-void vsuxseg6ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i32m1)))
-void vsuxseg7ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i32m1_m)))
-void vsuxseg7ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i32mf2)))
-void vsuxseg7ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i32mf2_m)))
-void vsuxseg7ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u32m1)))
-void vsuxseg7ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u32m1_m)))
-void vsuxseg7ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u32mf2)))
-void vsuxseg7ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u32mf2_m)))
-void vsuxseg7ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i32m1)))
-void vsuxseg8ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i32m1_m)))
-void vsuxseg8ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i32mf2)))
-void vsuxseg8ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i32mf2_m)))
-void vsuxseg8ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u32m1)))
-void vsuxseg8ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u32m1_m)))
-void vsuxseg8ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u32mf2)))
-void vsuxseg8ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u32mf2_m)))
-void vsuxseg8ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i64m1)))
-void vsuxseg2ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i64m1_m)))
-void vsuxseg2ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i64m2)))
-void vsuxseg2ei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i64m2_m)))
-void vsuxseg2ei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i64m4)))
-void vsuxseg2ei8(int64_t * op0, vuint8mf2_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i64m4_m)))
-void vsuxseg2ei8(vbool16_t op0, int64_t * op1, vuint8mf2_t op2, vint64m4_t op3, vint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u64m1)))
-void vsuxseg2ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u64m1_m)))
-void vsuxseg2ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u64m2)))
-void vsuxseg2ei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u64m2_m)))
-void vsuxseg2ei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u64m4)))
-void vsuxseg2ei8(uint64_t * op0, vuint8mf2_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u64m4_m)))
-void vsuxseg2ei8(vbool16_t op0, uint64_t * op1, vuint8mf2_t op2, vuint64m4_t op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i64m1)))
-void vsuxseg3ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i64m1_m)))
-void vsuxseg3ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i64m2)))
-void vsuxseg3ei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i64m2_m)))
-void vsuxseg3ei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u64m1)))
-void vsuxseg3ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u64m1_m)))
-void vsuxseg3ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u64m2)))
-void vsuxseg3ei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u64m2_m)))
-void vsuxseg3ei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i64m1)))
-void vsuxseg4ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i64m1_m)))
-void vsuxseg4ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i64m2)))
-void vsuxseg4ei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i64m2_m)))
-void vsuxseg4ei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u64m1)))
-void vsuxseg4ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u64m1_m)))
-void vsuxseg4ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u64m2)))
-void vsuxseg4ei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u64m2_m)))
-void vsuxseg4ei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i64m1)))
-void vsuxseg5ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i64m1_m)))
-void vsuxseg5ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u64m1)))
-void vsuxseg5ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u64m1_m)))
-void vsuxseg5ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i64m1)))
-void vsuxseg6ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i64m1_m)))
-void vsuxseg6ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u64m1)))
-void vsuxseg6ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u64m1_m)))
-void vsuxseg6ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i64m1)))
-void vsuxseg7ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i64m1_m)))
-void vsuxseg7ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u64m1)))
-void vsuxseg7ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u64m1_m)))
-void vsuxseg7ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i64m1)))
-void vsuxseg8ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i64m1_m)))
-void vsuxseg8ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u64m1)))
-void vsuxseg8ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u64m1_m)))
-void vsuxseg8ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i64m1)))
-void vsuxseg2ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i64m1_m)))
-void vsuxseg2ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i64m2)))
-void vsuxseg2ei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i64m2_m)))
-void vsuxseg2ei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i64m4)))
-void vsuxseg2ei16(int64_t * op0, vuint16m1_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i64m4_m)))
-void vsuxseg2ei16(vbool16_t op0, int64_t * op1, vuint16m1_t op2, vint64m4_t op3, vint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u64m1)))
-void vsuxseg2ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u64m1_m)))
-void vsuxseg2ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u64m2)))
-void vsuxseg2ei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u64m2_m)))
-void vsuxseg2ei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u64m4)))
-void vsuxseg2ei16(uint64_t * op0, vuint16m1_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u64m4_m)))
-void vsuxseg2ei16(vbool16_t op0, uint64_t * op1, vuint16m1_t op2, vuint64m4_t op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i64m1)))
-void vsuxseg3ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i64m1_m)))
-void vsuxseg3ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i64m2)))
-void vsuxseg3ei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i64m2_m)))
-void vsuxseg3ei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u64m1)))
-void vsuxseg3ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u64m1_m)))
-void vsuxseg3ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u64m2)))
-void vsuxseg3ei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u64m2_m)))
-void vsuxseg3ei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i64m1)))
-void vsuxseg4ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i64m1_m)))
-void vsuxseg4ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i64m2)))
-void vsuxseg4ei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i64m2_m)))
-void vsuxseg4ei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u64m1)))
-void vsuxseg4ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u64m1_m)))
-void vsuxseg4ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u64m2)))
-void vsuxseg4ei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u64m2_m)))
-void vsuxseg4ei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i64m1)))
-void vsuxseg5ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i64m1_m)))
-void vsuxseg5ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u64m1)))
-void vsuxseg5ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u64m1_m)))
-void vsuxseg5ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i64m1)))
-void vsuxseg6ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i64m1_m)))
-void vsuxseg6ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u64m1)))
-void vsuxseg6ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u64m1_m)))
-void vsuxseg6ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i64m1)))
-void vsuxseg7ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i64m1_m)))
-void vsuxseg7ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u64m1)))
-void vsuxseg7ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u64m1_m)))
-void vsuxseg7ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i64m1)))
-void vsuxseg8ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i64m1_m)))
-void vsuxseg8ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u64m1)))
-void vsuxseg8ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u64m1_m)))
-void vsuxseg8ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i64m1)))
-void vsuxseg2ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i64m1_m)))
-void vsuxseg2ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i64m2)))
-void vsuxseg2ei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i64m2_m)))
-void vsuxseg2ei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i64m4)))
-void vsuxseg2ei32(int64_t * op0, vuint32m2_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i64m4_m)))
-void vsuxseg2ei32(vbool16_t op0, int64_t * op1, vuint32m2_t op2, vint64m4_t op3, vint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u64m1)))
-void vsuxseg2ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u64m1_m)))
-void vsuxseg2ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u64m2)))
-void vsuxseg2ei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u64m2_m)))
-void vsuxseg2ei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u64m4)))
-void vsuxseg2ei32(uint64_t * op0, vuint32m2_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u64m4_m)))
-void vsuxseg2ei32(vbool16_t op0, uint64_t * op1, vuint32m2_t op2, vuint64m4_t op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i64m1)))
-void vsuxseg3ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i64m1_m)))
-void vsuxseg3ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i64m2)))
-void vsuxseg3ei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i64m2_m)))
-void vsuxseg3ei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u64m1)))
-void vsuxseg3ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u64m1_m)))
-void vsuxseg3ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u64m2)))
-void vsuxseg3ei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u64m2_m)))
-void vsuxseg3ei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i64m1)))
-void vsuxseg4ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i64m1_m)))
-void vsuxseg4ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i64m2)))
-void vsuxseg4ei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i64m2_m)))
-void vsuxseg4ei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u64m1)))
-void vsuxseg4ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u64m1_m)))
-void vsuxseg4ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u64m2)))
-void vsuxseg4ei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u64m2_m)))
-void vsuxseg4ei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i64m1)))
-void vsuxseg5ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i64m1_m)))
-void vsuxseg5ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u64m1)))
-void vsuxseg5ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u64m1_m)))
-void vsuxseg5ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i64m1)))
-void vsuxseg6ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i64m1_m)))
-void vsuxseg6ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u64m1)))
-void vsuxseg6ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u64m1_m)))
-void vsuxseg6ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i64m1)))
-void vsuxseg7ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i64m1_m)))
-void vsuxseg7ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u64m1)))
-void vsuxseg7ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u64m1_m)))
-void vsuxseg7ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i64m1)))
-void vsuxseg8ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i64m1_m)))
-void vsuxseg8ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u64m1)))
-void vsuxseg8ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u64m1_m)))
-void vsuxseg8ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i64m1)))
-void vsuxseg2ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i64m1_m)))
-void vsuxseg2ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i64m2)))
-void vsuxseg2ei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i64m2_m)))
-void vsuxseg2ei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i64m4)))
-void vsuxseg2ei64(int64_t * op0, vuint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i64m4_m)))
-void vsuxseg2ei64(vbool16_t op0, int64_t * op1, vuint64m4_t op2, vint64m4_t op3, vint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u64m1)))
-void vsuxseg2ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u64m1_m)))
-void vsuxseg2ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u64m2)))
-void vsuxseg2ei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u64m2_m)))
-void vsuxseg2ei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u64m4)))
-void vsuxseg2ei64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u64m4_m)))
-void vsuxseg2ei64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i64m1)))
-void vsuxseg3ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i64m1_m)))
-void vsuxseg3ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i64m2)))
-void vsuxseg3ei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i64m2_m)))
-void vsuxseg3ei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u64m1)))
-void vsuxseg3ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u64m1_m)))
-void vsuxseg3ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u64m2)))
-void vsuxseg3ei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u64m2_m)))
-void vsuxseg3ei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i64m1)))
-void vsuxseg4ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i64m1_m)))
-void vsuxseg4ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i64m2)))
-void vsuxseg4ei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i64m2_m)))
-void vsuxseg4ei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u64m1)))
-void vsuxseg4ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u64m1_m)))
-void vsuxseg4ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u64m2)))
-void vsuxseg4ei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u64m2_m)))
-void vsuxseg4ei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i64m1)))
-void vsuxseg5ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i64m1_m)))
-void vsuxseg5ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u64m1)))
-void vsuxseg5ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u64m1_m)))
-void vsuxseg5ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i64m1)))
-void vsuxseg6ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i64m1_m)))
-void vsuxseg6ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u64m1)))
-void vsuxseg6ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u64m1_m)))
-void vsuxseg6ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i64m1)))
-void vsuxseg7ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i64m1_m)))
-void vsuxseg7ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u64m1)))
-void vsuxseg7ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u64m1_m)))
-void vsuxseg7ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i64m1)))
-void vsuxseg8ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i64m1_m)))
-void vsuxseg8ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u64m1)))
-void vsuxseg8ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u64m1_m)))
-void vsuxseg8ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8m1)))
-void vsoxseg2ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8m1_m)))
-void vsoxseg2ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8m2)))
-void vsoxseg2ei8(int8_t * op0, vuint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8m2_m)))
-void vsoxseg2ei8(vbool4_t op0, int8_t * op1, vuint8m2_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8m4)))
-void vsoxseg2ei8(int8_t * op0, vuint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8m4_m)))
-void vsoxseg2ei8(vbool2_t op0, int8_t * op1, vuint8m4_t op2, vint8m4_t op3, vint8m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8mf2)))
-void vsoxseg2ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8mf2_m)))
-void vsoxseg2ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8mf4)))
-void vsoxseg2ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8mf4_m)))
-void vsoxseg2ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8mf8)))
-void vsoxseg2ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8mf8_m)))
-void vsoxseg2ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8m1)))
-void vsoxseg2ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8m1_m)))
-void vsoxseg2ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8m2)))
-void vsoxseg2ei8(uint8_t * op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8m2_m)))
-void vsoxseg2ei8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8m4)))
-void vsoxseg2ei8(uint8_t * op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8m4_m)))
-void vsoxseg2ei8(vbool2_t op0, uint8_t * op1, vuint8m4_t op2, vuint8m4_t op3, vuint8m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8mf2)))
-void vsoxseg2ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8mf2_m)))
-void vsoxseg2ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8mf4)))
-void vsoxseg2ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8mf4_m)))
-void vsoxseg2ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8mf8)))
-void vsoxseg2ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8mf8_m)))
-void vsoxseg2ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i8m1)))
-void vsoxseg3ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i8m1_m)))
-void vsoxseg3ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i8m2)))
-void vsoxseg3ei8(int8_t * op0, vuint8m2_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i8m2_m)))
-void vsoxseg3ei8(vbool4_t op0, int8_t * op1, vuint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i8mf2)))
-void vsoxseg3ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i8mf2_m)))
-void vsoxseg3ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i8mf4)))
-void vsoxseg3ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i8mf4_m)))
-void vsoxseg3ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i8mf8)))
-void vsoxseg3ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i8mf8_m)))
-void vsoxseg3ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u8m1)))
-void vsoxseg3ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u8m1_m)))
-void vsoxseg3ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u8m2)))
-void vsoxseg3ei8(uint8_t * op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u8m2_m)))
-void vsoxseg3ei8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u8mf2)))
-void vsoxseg3ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u8mf2_m)))
-void vsoxseg3ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u8mf4)))
-void vsoxseg3ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u8mf4_m)))
-void vsoxseg3ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u8mf8)))
-void vsoxseg3ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u8mf8_m)))
-void vsoxseg3ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i8m1)))
-void vsoxseg4ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i8m1_m)))
-void vsoxseg4ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i8m2)))
-void vsoxseg4ei8(int8_t * op0, vuint8m2_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i8m2_m)))
-void vsoxseg4ei8(vbool4_t op0, int8_t * op1, vuint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i8mf2)))
-void vsoxseg4ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i8mf2_m)))
-void vsoxseg4ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i8mf4)))
-void vsoxseg4ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i8mf4_m)))
-void vsoxseg4ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i8mf8)))
-void vsoxseg4ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i8mf8_m)))
-void vsoxseg4ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u8m1)))
-void vsoxseg4ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u8m1_m)))
-void vsoxseg4ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u8m2)))
-void vsoxseg4ei8(uint8_t * op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u8m2_m)))
-void vsoxseg4ei8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u8mf2)))
-void vsoxseg4ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u8mf2_m)))
-void vsoxseg4ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u8mf4)))
-void vsoxseg4ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u8mf4_m)))
-void vsoxseg4ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u8mf8)))
-void vsoxseg4ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u8mf8_m)))
-void vsoxseg4ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i8m1)))
-void vsoxseg5ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i8m1_m)))
-void vsoxseg5ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i8mf2)))
-void vsoxseg5ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i8mf2_m)))
-void vsoxseg5ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i8mf4)))
-void vsoxseg5ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i8mf4_m)))
-void vsoxseg5ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i8mf8)))
-void vsoxseg5ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i8mf8_m)))
-void vsoxseg5ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u8m1)))
-void vsoxseg5ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u8m1_m)))
-void vsoxseg5ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u8mf2)))
-void vsoxseg5ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u8mf2_m)))
-void vsoxseg5ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u8mf4)))
-void vsoxseg5ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u8mf4_m)))
-void vsoxseg5ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u8mf8)))
-void vsoxseg5ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u8mf8_m)))
-void vsoxseg5ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i8m1)))
-void vsoxseg6ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i8m1_m)))
-void vsoxseg6ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i8mf2)))
-void vsoxseg6ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i8mf2_m)))
-void vsoxseg6ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i8mf4)))
-void vsoxseg6ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i8mf4_m)))
-void vsoxseg6ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i8mf8)))
-void vsoxseg6ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i8mf8_m)))
-void vsoxseg6ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u8m1)))
-void vsoxseg6ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u8m1_m)))
-void vsoxseg6ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u8mf2)))
-void vsoxseg6ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u8mf2_m)))
-void vsoxseg6ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u8mf4)))
-void vsoxseg6ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u8mf4_m)))
-void vsoxseg6ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u8mf8)))
-void vsoxseg6ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u8mf8_m)))
-void vsoxseg6ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i8m1)))
-void vsoxseg7ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i8m1_m)))
-void vsoxseg7ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i8mf2)))
-void vsoxseg7ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i8mf2_m)))
-void vsoxseg7ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i8mf4)))
-void vsoxseg7ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i8mf4_m)))
-void vsoxseg7ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i8mf8)))
-void vsoxseg7ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i8mf8_m)))
-void vsoxseg7ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u8m1)))
-void vsoxseg7ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u8m1_m)))
-void vsoxseg7ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u8mf2)))
-void vsoxseg7ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u8mf2_m)))
-void vsoxseg7ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u8mf4)))
-void vsoxseg7ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u8mf4_m)))
-void vsoxseg7ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u8mf8)))
-void vsoxseg7ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u8mf8_m)))
-void vsoxseg7ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i8m1)))
-void vsoxseg8ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i8m1_m)))
-void vsoxseg8ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i8mf2)))
-void vsoxseg8ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i8mf2_m)))
-void vsoxseg8ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i8mf4)))
-void vsoxseg8ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i8mf4_m)))
-void vsoxseg8ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i8mf8)))
-void vsoxseg8ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i8mf8_m)))
-void vsoxseg8ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u8m1)))
-void vsoxseg8ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u8m1_m)))
-void vsoxseg8ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u8mf2)))
-void vsoxseg8ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u8mf2_m)))
-void vsoxseg8ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u8mf4)))
-void vsoxseg8ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u8mf4_m)))
-void vsoxseg8ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u8mf8)))
-void vsoxseg8ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u8mf8_m)))
-void vsoxseg8ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8m1)))
-void vsoxseg2ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8m1_m)))
-void vsoxseg2ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8m2)))
-void vsoxseg2ei16(int8_t * op0, vuint16m4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8m2_m)))
-void vsoxseg2ei16(vbool4_t op0, int8_t * op1, vuint16m4_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8m4)))
-void vsoxseg2ei16(int8_t * op0, vuint16m8_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8m4_m)))
-void vsoxseg2ei16(vbool2_t op0, int8_t * op1, vuint16m8_t op2, vint8m4_t op3, vint8m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8mf2)))
-void vsoxseg2ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8mf2_m)))
-void vsoxseg2ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8mf4)))
-void vsoxseg2ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8mf4_m)))
-void vsoxseg2ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8mf8)))
-void vsoxseg2ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8mf8_m)))
-void vsoxseg2ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8m1)))
-void vsoxseg2ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8m1_m)))
-void vsoxseg2ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8m2)))
-void vsoxseg2ei16(uint8_t * op0, vuint16m4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8m2_m)))
-void vsoxseg2ei16(vbool4_t op0, uint8_t * op1, vuint16m4_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8m4)))
-void vsoxseg2ei16(uint8_t * op0, vuint16m8_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8m4_m)))
-void vsoxseg2ei16(vbool2_t op0, uint8_t * op1, vuint16m8_t op2, vuint8m4_t op3, vuint8m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8mf2)))
-void vsoxseg2ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8mf2_m)))
-void vsoxseg2ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8mf4)))
-void vsoxseg2ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8mf4_m)))
-void vsoxseg2ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8mf8)))
-void vsoxseg2ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8mf8_m)))
-void vsoxseg2ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i8m1)))
-void vsoxseg3ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i8m1_m)))
-void vsoxseg3ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i8m2)))
-void vsoxseg3ei16(int8_t * op0, vuint16m4_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i8m2_m)))
-void vsoxseg3ei16(vbool4_t op0, int8_t * op1, vuint16m4_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i8mf2)))
-void vsoxseg3ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i8mf2_m)))
-void vsoxseg3ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i8mf4)))
-void vsoxseg3ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i8mf4_m)))
-void vsoxseg3ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i8mf8)))
-void vsoxseg3ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i8mf8_m)))
-void vsoxseg3ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u8m1)))
-void vsoxseg3ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u8m1_m)))
-void vsoxseg3ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u8m2)))
-void vsoxseg3ei16(uint8_t * op0, vuint16m4_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u8m2_m)))
-void vsoxseg3ei16(vbool4_t op0, uint8_t * op1, vuint16m4_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u8mf2)))
-void vsoxseg3ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u8mf2_m)))
-void vsoxseg3ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u8mf4)))
-void vsoxseg3ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u8mf4_m)))
-void vsoxseg3ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u8mf8)))
-void vsoxseg3ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u8mf8_m)))
-void vsoxseg3ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i8m1)))
-void vsoxseg4ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i8m1_m)))
-void vsoxseg4ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i8m2)))
-void vsoxseg4ei16(int8_t * op0, vuint16m4_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i8m2_m)))
-void vsoxseg4ei16(vbool4_t op0, int8_t * op1, vuint16m4_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i8mf2)))
-void vsoxseg4ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i8mf2_m)))
-void vsoxseg4ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i8mf4)))
-void vsoxseg4ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i8mf4_m)))
-void vsoxseg4ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i8mf8)))
-void vsoxseg4ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i8mf8_m)))
-void vsoxseg4ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u8m1)))
-void vsoxseg4ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u8m1_m)))
-void vsoxseg4ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u8m2)))
-void vsoxseg4ei16(uint8_t * op0, vuint16m4_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u8m2_m)))
-void vsoxseg4ei16(vbool4_t op0, uint8_t * op1, vuint16m4_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u8mf2)))
-void vsoxseg4ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u8mf2_m)))
-void vsoxseg4ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u8mf4)))
-void vsoxseg4ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u8mf4_m)))
-void vsoxseg4ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u8mf8)))
-void vsoxseg4ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u8mf8_m)))
-void vsoxseg4ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i8m1)))
-void vsoxseg5ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i8m1_m)))
-void vsoxseg5ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i8mf2)))
-void vsoxseg5ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i8mf2_m)))
-void vsoxseg5ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i8mf4)))
-void vsoxseg5ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i8mf4_m)))
-void vsoxseg5ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i8mf8)))
-void vsoxseg5ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i8mf8_m)))
-void vsoxseg5ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u8m1)))
-void vsoxseg5ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u8m1_m)))
-void vsoxseg5ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u8mf2)))
-void vsoxseg5ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u8mf2_m)))
-void vsoxseg5ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u8mf4)))
-void vsoxseg5ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u8mf4_m)))
-void vsoxseg5ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u8mf8)))
-void vsoxseg5ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u8mf8_m)))
-void vsoxseg5ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i8m1)))
-void vsoxseg6ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i8m1_m)))
-void vsoxseg6ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i8mf2)))
-void vsoxseg6ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i8mf2_m)))
-void vsoxseg6ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i8mf4)))
-void vsoxseg6ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i8mf4_m)))
-void vsoxseg6ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i8mf8)))
-void vsoxseg6ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i8mf8_m)))
-void vsoxseg6ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u8m1)))
-void vsoxseg6ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u8m1_m)))
-void vsoxseg6ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u8mf2)))
-void vsoxseg6ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u8mf2_m)))
-void vsoxseg6ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u8mf4)))
-void vsoxseg6ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u8mf4_m)))
-void vsoxseg6ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u8mf8)))
-void vsoxseg6ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u8mf8_m)))
-void vsoxseg6ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i8m1)))
-void vsoxseg7ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i8m1_m)))
-void vsoxseg7ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i8mf2)))
-void vsoxseg7ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i8mf2_m)))
-void vsoxseg7ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i8mf4)))
-void vsoxseg7ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i8mf4_m)))
-void vsoxseg7ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i8mf8)))
-void vsoxseg7ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i8mf8_m)))
-void vsoxseg7ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u8m1)))
-void vsoxseg7ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u8m1_m)))
-void vsoxseg7ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u8mf2)))
-void vsoxseg7ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u8mf2_m)))
-void vsoxseg7ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u8mf4)))
-void vsoxseg7ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u8mf4_m)))
-void vsoxseg7ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u8mf8)))
-void vsoxseg7ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u8mf8_m)))
-void vsoxseg7ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i8m1)))
-void vsoxseg8ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i8m1_m)))
-void vsoxseg8ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i8mf2)))
-void vsoxseg8ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i8mf2_m)))
-void vsoxseg8ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i8mf4)))
-void vsoxseg8ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i8mf4_m)))
-void vsoxseg8ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i8mf8)))
-void vsoxseg8ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i8mf8_m)))
-void vsoxseg8ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u8m1)))
-void vsoxseg8ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u8m1_m)))
-void vsoxseg8ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u8mf2)))
-void vsoxseg8ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u8mf2_m)))
-void vsoxseg8ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u8mf4)))
-void vsoxseg8ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u8mf4_m)))
-void vsoxseg8ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u8mf8)))
-void vsoxseg8ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u8mf8_m)))
-void vsoxseg8ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i8m1)))
-void vsoxseg2ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i8m1_m)))
-void vsoxseg2ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i8m2)))
-void vsoxseg2ei32(int8_t * op0, vuint32m8_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i8m2_m)))
-void vsoxseg2ei32(vbool4_t op0, int8_t * op1, vuint32m8_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i8mf2)))
-void vsoxseg2ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i8mf2_m)))
-void vsoxseg2ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i8mf4)))
-void vsoxseg2ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i8mf4_m)))
-void vsoxseg2ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i8mf8)))
-void vsoxseg2ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i8mf8_m)))
-void vsoxseg2ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u8m1)))
-void vsoxseg2ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u8m1_m)))
-void vsoxseg2ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u8m2)))
-void vsoxseg2ei32(uint8_t * op0, vuint32m8_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u8m2_m)))
-void vsoxseg2ei32(vbool4_t op0, uint8_t * op1, vuint32m8_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u8mf2)))
-void vsoxseg2ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u8mf2_m)))
-void vsoxseg2ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u8mf4)))
-void vsoxseg2ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u8mf4_m)))
-void vsoxseg2ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u8mf8)))
-void vsoxseg2ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u8mf8_m)))
-void vsoxseg2ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i8m1)))
-void vsoxseg3ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i8m1_m)))
-void vsoxseg3ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i8m2)))
-void vsoxseg3ei32(int8_t * op0, vuint32m8_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i8m2_m)))
-void vsoxseg3ei32(vbool4_t op0, int8_t * op1, vuint32m8_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i8mf2)))
-void vsoxseg3ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i8mf2_m)))
-void vsoxseg3ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i8mf4)))
-void vsoxseg3ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i8mf4_m)))
-void vsoxseg3ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i8mf8)))
-void vsoxseg3ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i8mf8_m)))
-void vsoxseg3ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u8m1)))
-void vsoxseg3ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u8m1_m)))
-void vsoxseg3ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u8m2)))
-void vsoxseg3ei32(uint8_t * op0, vuint32m8_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u8m2_m)))
-void vsoxseg3ei32(vbool4_t op0, uint8_t * op1, vuint32m8_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u8mf2)))
-void vsoxseg3ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u8mf2_m)))
-void vsoxseg3ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u8mf4)))
-void vsoxseg3ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u8mf4_m)))
-void vsoxseg3ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u8mf8)))
-void vsoxseg3ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u8mf8_m)))
-void vsoxseg3ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i8m1)))
-void vsoxseg4ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i8m1_m)))
-void vsoxseg4ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i8m2)))
-void vsoxseg4ei32(int8_t * op0, vuint32m8_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i8m2_m)))
-void vsoxseg4ei32(vbool4_t op0, int8_t * op1, vuint32m8_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i8mf2)))
-void vsoxseg4ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i8mf2_m)))
-void vsoxseg4ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i8mf4)))
-void vsoxseg4ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i8mf4_m)))
-void vsoxseg4ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i8mf8)))
-void vsoxseg4ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i8mf8_m)))
-void vsoxseg4ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u8m1)))
-void vsoxseg4ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u8m1_m)))
-void vsoxseg4ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u8m2)))
-void vsoxseg4ei32(uint8_t * op0, vuint32m8_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u8m2_m)))
-void vsoxseg4ei32(vbool4_t op0, uint8_t * op1, vuint32m8_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u8mf2)))
-void vsoxseg4ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u8mf2_m)))
-void vsoxseg4ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u8mf4)))
-void vsoxseg4ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u8mf4_m)))
-void vsoxseg4ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u8mf8)))
-void vsoxseg4ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u8mf8_m)))
-void vsoxseg4ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i8m1)))
-void vsoxseg5ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i8m1_m)))
-void vsoxseg5ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i8mf2)))
-void vsoxseg5ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i8mf2_m)))
-void vsoxseg5ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i8mf4)))
-void vsoxseg5ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i8mf4_m)))
-void vsoxseg5ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i8mf8)))
-void vsoxseg5ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i8mf8_m)))
-void vsoxseg5ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u8m1)))
-void vsoxseg5ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u8m1_m)))
-void vsoxseg5ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u8mf2)))
-void vsoxseg5ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u8mf2_m)))
-void vsoxseg5ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u8mf4)))
-void vsoxseg5ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u8mf4_m)))
-void vsoxseg5ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u8mf8)))
-void vsoxseg5ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u8mf8_m)))
-void vsoxseg5ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i8m1)))
-void vsoxseg6ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i8m1_m)))
-void vsoxseg6ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i8mf2)))
-void vsoxseg6ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i8mf2_m)))
-void vsoxseg6ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i8mf4)))
-void vsoxseg6ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i8mf4_m)))
-void vsoxseg6ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i8mf8)))
-void vsoxseg6ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i8mf8_m)))
-void vsoxseg6ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u8m1)))
-void vsoxseg6ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u8m1_m)))
-void vsoxseg6ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u8mf2)))
-void vsoxseg6ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u8mf2_m)))
-void vsoxseg6ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u8mf4)))
-void vsoxseg6ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u8mf4_m)))
-void vsoxseg6ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u8mf8)))
-void vsoxseg6ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u8mf8_m)))
-void vsoxseg6ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i8m1)))
-void vsoxseg7ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i8m1_m)))
-void vsoxseg7ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i8mf2)))
-void vsoxseg7ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i8mf2_m)))
-void vsoxseg7ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i8mf4)))
-void vsoxseg7ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i8mf4_m)))
-void vsoxseg7ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i8mf8)))
-void vsoxseg7ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i8mf8_m)))
-void vsoxseg7ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u8m1)))
-void vsoxseg7ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u8m1_m)))
-void vsoxseg7ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u8mf2)))
-void vsoxseg7ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u8mf2_m)))
-void vsoxseg7ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u8mf4)))
-void vsoxseg7ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u8mf4_m)))
-void vsoxseg7ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u8mf8)))
-void vsoxseg7ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u8mf8_m)))
-void vsoxseg7ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i8m1)))
-void vsoxseg8ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i8m1_m)))
-void vsoxseg8ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i8mf2)))
-void vsoxseg8ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i8mf2_m)))
-void vsoxseg8ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i8mf4)))
-void vsoxseg8ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i8mf4_m)))
-void vsoxseg8ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i8mf8)))
-void vsoxseg8ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i8mf8_m)))
-void vsoxseg8ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u8m1)))
-void vsoxseg8ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u8m1_m)))
-void vsoxseg8ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u8mf2)))
-void vsoxseg8ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u8mf2_m)))
-void vsoxseg8ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u8mf4)))
-void vsoxseg8ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u8mf4_m)))
-void vsoxseg8ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u8mf8)))
-void vsoxseg8ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u8mf8_m)))
-void vsoxseg8ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i8m1)))
-void vsoxseg2ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i8m1_m)))
-void vsoxseg2ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i8mf2)))
-void vsoxseg2ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i8mf2_m)))
-void vsoxseg2ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i8mf4)))
-void vsoxseg2ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i8mf4_m)))
-void vsoxseg2ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i8mf8)))
-void vsoxseg2ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i8mf8_m)))
-void vsoxseg2ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u8m1)))
-void vsoxseg2ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u8m1_m)))
-void vsoxseg2ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u8mf2)))
-void vsoxseg2ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u8mf2_m)))
-void vsoxseg2ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u8mf4)))
-void vsoxseg2ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u8mf4_m)))
-void vsoxseg2ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u8mf8)))
-void vsoxseg2ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u8mf8_m)))
-void vsoxseg2ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i8m1)))
-void vsoxseg3ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i8m1_m)))
-void vsoxseg3ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i8mf2)))
-void vsoxseg3ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i8mf2_m)))
-void vsoxseg3ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i8mf4)))
-void vsoxseg3ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i8mf4_m)))
-void vsoxseg3ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i8mf8)))
-void vsoxseg3ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i8mf8_m)))
-void vsoxseg3ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u8m1)))
-void vsoxseg3ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u8m1_m)))
-void vsoxseg3ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u8mf2)))
-void vsoxseg3ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u8mf2_m)))
-void vsoxseg3ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u8mf4)))
-void vsoxseg3ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u8mf4_m)))
-void vsoxseg3ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u8mf8)))
-void vsoxseg3ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u8mf8_m)))
-void vsoxseg3ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i8m1)))
-void vsoxseg4ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i8m1_m)))
-void vsoxseg4ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i8mf2)))
-void vsoxseg4ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i8mf2_m)))
-void vsoxseg4ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i8mf4)))
-void vsoxseg4ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i8mf4_m)))
-void vsoxseg4ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i8mf8)))
-void vsoxseg4ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i8mf8_m)))
-void vsoxseg4ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u8m1)))
-void vsoxseg4ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u8m1_m)))
-void vsoxseg4ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u8mf2)))
-void vsoxseg4ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u8mf2_m)))
-void vsoxseg4ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u8mf4)))
-void vsoxseg4ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u8mf4_m)))
-void vsoxseg4ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u8mf8)))
-void vsoxseg4ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u8mf8_m)))
-void vsoxseg4ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i8m1)))
-void vsoxseg5ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i8m1_m)))
-void vsoxseg5ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i8mf2)))
-void vsoxseg5ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i8mf2_m)))
-void vsoxseg5ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i8mf4)))
-void vsoxseg5ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i8mf4_m)))
-void vsoxseg5ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i8mf8)))
-void vsoxseg5ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i8mf8_m)))
-void vsoxseg5ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u8m1)))
-void vsoxseg5ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u8m1_m)))
-void vsoxseg5ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u8mf2)))
-void vsoxseg5ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u8mf2_m)))
-void vsoxseg5ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u8mf4)))
-void vsoxseg5ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u8mf4_m)))
-void vsoxseg5ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u8mf8)))
-void vsoxseg5ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u8mf8_m)))
-void vsoxseg5ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i8m1)))
-void vsoxseg6ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i8m1_m)))
-void vsoxseg6ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i8mf2)))
-void vsoxseg6ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i8mf2_m)))
-void vsoxseg6ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i8mf4)))
-void vsoxseg6ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i8mf4_m)))
-void vsoxseg6ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i8mf8)))
-void vsoxseg6ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i8mf8_m)))
-void vsoxseg6ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u8m1)))
-void vsoxseg6ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u8m1_m)))
-void vsoxseg6ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u8mf2)))
-void vsoxseg6ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u8mf2_m)))
-void vsoxseg6ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u8mf4)))
-void vsoxseg6ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u8mf4_m)))
-void vsoxseg6ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u8mf8)))
-void vsoxseg6ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u8mf8_m)))
-void vsoxseg6ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i8m1)))
-void vsoxseg7ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i8m1_m)))
-void vsoxseg7ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i8mf2)))
-void vsoxseg7ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i8mf2_m)))
-void vsoxseg7ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i8mf4)))
-void vsoxseg7ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i8mf4_m)))
-void vsoxseg7ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i8mf8)))
-void vsoxseg7ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i8mf8_m)))
-void vsoxseg7ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u8m1)))
-void vsoxseg7ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u8m1_m)))
-void vsoxseg7ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u8mf2)))
-void vsoxseg7ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u8mf2_m)))
-void vsoxseg7ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u8mf4)))
-void vsoxseg7ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u8mf4_m)))
-void vsoxseg7ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u8mf8)))
-void vsoxseg7ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u8mf8_m)))
-void vsoxseg7ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i8m1)))
-void vsoxseg8ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i8m1_m)))
-void vsoxseg8ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i8mf2)))
-void vsoxseg8ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i8mf2_m)))
-void vsoxseg8ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i8mf4)))
-void vsoxseg8ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i8mf4_m)))
-void vsoxseg8ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i8mf8)))
-void vsoxseg8ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i8mf8_m)))
-void vsoxseg8ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u8m1)))
-void vsoxseg8ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u8m1_m)))
-void vsoxseg8ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u8mf2)))
-void vsoxseg8ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u8mf2_m)))
-void vsoxseg8ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u8mf4)))
-void vsoxseg8ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u8mf4_m)))
-void vsoxseg8ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u8mf8)))
-void vsoxseg8ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u8mf8_m)))
-void vsoxseg8ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i16m1)))
-void vsoxseg2ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i16m1_m)))
-void vsoxseg2ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i16m2)))
-void vsoxseg2ei8(int16_t * op0, vuint8m1_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i16m2_m)))
-void vsoxseg2ei8(vbool8_t op0, int16_t * op1, vuint8m1_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i16m4)))
-void vsoxseg2ei8(int16_t * op0, vuint8m2_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i16m4_m)))
-void vsoxseg2ei8(vbool4_t op0, int16_t * op1, vuint8m2_t op2, vint16m4_t op3, vint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i16mf2)))
-void vsoxseg2ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i16mf2_m)))
-void vsoxseg2ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i16mf4)))
-void vsoxseg2ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i16mf4_m)))
-void vsoxseg2ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u16m1)))
-void vsoxseg2ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u16m1_m)))
-void vsoxseg2ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u16m2)))
-void vsoxseg2ei8(uint16_t * op0, vuint8m1_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u16m2_m)))
-void vsoxseg2ei8(vbool8_t op0, uint16_t * op1, vuint8m1_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u16m4)))
-void vsoxseg2ei8(uint16_t * op0, vuint8m2_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u16m4_m)))
-void vsoxseg2ei8(vbool4_t op0, uint16_t * op1, vuint8m2_t op2, vuint16m4_t op3, vuint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u16mf2)))
-void vsoxseg2ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u16mf2_m)))
-void vsoxseg2ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u16mf4)))
-void vsoxseg2ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u16mf4_m)))
-void vsoxseg2ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i16m1)))
-void vsoxseg3ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i16m1_m)))
-void vsoxseg3ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i16m2)))
-void vsoxseg3ei8(int16_t * op0, vuint8m1_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i16m2_m)))
-void vsoxseg3ei8(vbool8_t op0, int16_t * op1, vuint8m1_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i16mf2)))
-void vsoxseg3ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i16mf2_m)))
-void vsoxseg3ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i16mf4)))
-void vsoxseg3ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i16mf4_m)))
-void vsoxseg3ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u16m1)))
-void vsoxseg3ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u16m1_m)))
-void vsoxseg3ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u16m2)))
-void vsoxseg3ei8(uint16_t * op0, vuint8m1_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u16m2_m)))
-void vsoxseg3ei8(vbool8_t op0, uint16_t * op1, vuint8m1_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u16mf2)))
-void vsoxseg3ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u16mf2_m)))
-void vsoxseg3ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u16mf4)))
-void vsoxseg3ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u16mf4_m)))
-void vsoxseg3ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i16m1)))
-void vsoxseg4ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i16m1_m)))
-void vsoxseg4ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i16m2)))
-void vsoxseg4ei8(int16_t * op0, vuint8m1_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i16m2_m)))
-void vsoxseg4ei8(vbool8_t op0, int16_t * op1, vuint8m1_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i16mf2)))
-void vsoxseg4ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i16mf2_m)))
-void vsoxseg4ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i16mf4)))
-void vsoxseg4ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i16mf4_m)))
-void vsoxseg4ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u16m1)))
-void vsoxseg4ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u16m1_m)))
-void vsoxseg4ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u16m2)))
-void vsoxseg4ei8(uint16_t * op0, vuint8m1_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u16m2_m)))
-void vsoxseg4ei8(vbool8_t op0, uint16_t * op1, vuint8m1_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u16mf2)))
-void vsoxseg4ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u16mf2_m)))
-void vsoxseg4ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u16mf4)))
-void vsoxseg4ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u16mf4_m)))
-void vsoxseg4ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i16m1)))
-void vsoxseg5ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i16m1_m)))
-void vsoxseg5ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i16mf2)))
-void vsoxseg5ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i16mf2_m)))
-void vsoxseg5ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i16mf4)))
-void vsoxseg5ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i16mf4_m)))
-void vsoxseg5ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u16m1)))
-void vsoxseg5ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u16m1_m)))
-void vsoxseg5ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u16mf2)))
-void vsoxseg5ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u16mf2_m)))
-void vsoxseg5ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u16mf4)))
-void vsoxseg5ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u16mf4_m)))
-void vsoxseg5ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i16m1)))
-void vsoxseg6ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i16m1_m)))
-void vsoxseg6ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i16mf2)))
-void vsoxseg6ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i16mf2_m)))
-void vsoxseg6ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i16mf4)))
-void vsoxseg6ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i16mf4_m)))
-void vsoxseg6ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u16m1)))
-void vsoxseg6ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u16m1_m)))
-void vsoxseg6ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u16mf2)))
-void vsoxseg6ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u16mf2_m)))
-void vsoxseg6ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u16mf4)))
-void vsoxseg6ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u16mf4_m)))
-void vsoxseg6ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i16m1)))
-void vsoxseg7ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i16m1_m)))
-void vsoxseg7ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i16mf2)))
-void vsoxseg7ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i16mf2_m)))
-void vsoxseg7ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i16mf4)))
-void vsoxseg7ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i16mf4_m)))
-void vsoxseg7ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u16m1)))
-void vsoxseg7ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u16m1_m)))
-void vsoxseg7ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u16mf2)))
-void vsoxseg7ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u16mf2_m)))
-void vsoxseg7ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u16mf4)))
-void vsoxseg7ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u16mf4_m)))
-void vsoxseg7ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i16m1)))
-void vsoxseg8ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i16m1_m)))
-void vsoxseg8ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i16mf2)))
-void vsoxseg8ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i16mf2_m)))
-void vsoxseg8ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i16mf4)))
-void vsoxseg8ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i16mf4_m)))
-void vsoxseg8ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u16m1)))
-void vsoxseg8ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u16m1_m)))
-void vsoxseg8ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u16mf2)))
-void vsoxseg8ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u16mf2_m)))
-void vsoxseg8ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u16mf4)))
-void vsoxseg8ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u16mf4_m)))
-void vsoxseg8ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i16m1)))
-void vsoxseg2ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i16m1_m)))
-void vsoxseg2ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i16m2)))
-void vsoxseg2ei16(int16_t * op0, vuint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i16m2_m)))
-void vsoxseg2ei16(vbool8_t op0, int16_t * op1, vuint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i16m4)))
-void vsoxseg2ei16(int16_t * op0, vuint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i16m4_m)))
-void vsoxseg2ei16(vbool4_t op0, int16_t * op1, vuint16m4_t op2, vint16m4_t op3, vint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i16mf2)))
-void vsoxseg2ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i16mf2_m)))
-void vsoxseg2ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i16mf4)))
-void vsoxseg2ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i16mf4_m)))
-void vsoxseg2ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u16m1)))
-void vsoxseg2ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u16m1_m)))
-void vsoxseg2ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u16m2)))
-void vsoxseg2ei16(uint16_t * op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u16m2_m)))
-void vsoxseg2ei16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u16m4)))
-void vsoxseg2ei16(uint16_t * op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u16m4_m)))
-void vsoxseg2ei16(vbool4_t op0, uint16_t * op1, vuint16m4_t op2, vuint16m4_t op3, vuint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u16mf2)))
-void vsoxseg2ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u16mf2_m)))
-void vsoxseg2ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u16mf4)))
-void vsoxseg2ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u16mf4_m)))
-void vsoxseg2ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i16m1)))
-void vsoxseg3ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i16m1_m)))
-void vsoxseg3ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i16m2)))
-void vsoxseg3ei16(int16_t * op0, vuint16m2_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i16m2_m)))
-void vsoxseg3ei16(vbool8_t op0, int16_t * op1, vuint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i16mf2)))
-void vsoxseg3ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i16mf2_m)))
-void vsoxseg3ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i16mf4)))
-void vsoxseg3ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i16mf4_m)))
-void vsoxseg3ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u16m1)))
-void vsoxseg3ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u16m1_m)))
-void vsoxseg3ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u16m2)))
-void vsoxseg3ei16(uint16_t * op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u16m2_m)))
-void vsoxseg3ei16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u16mf2)))
-void vsoxseg3ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u16mf2_m)))
-void vsoxseg3ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u16mf4)))
-void vsoxseg3ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u16mf4_m)))
-void vsoxseg3ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i16m1)))
-void vsoxseg4ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i16m1_m)))
-void vsoxseg4ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i16m2)))
-void vsoxseg4ei16(int16_t * op0, vuint16m2_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i16m2_m)))
-void vsoxseg4ei16(vbool8_t op0, int16_t * op1, vuint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i16mf2)))
-void vsoxseg4ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i16mf2_m)))
-void vsoxseg4ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i16mf4)))
-void vsoxseg4ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i16mf4_m)))
-void vsoxseg4ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u16m1)))
-void vsoxseg4ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u16m1_m)))
-void vsoxseg4ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u16m2)))
-void vsoxseg4ei16(uint16_t * op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u16m2_m)))
-void vsoxseg4ei16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u16mf2)))
-void vsoxseg4ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u16mf2_m)))
-void vsoxseg4ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u16mf4)))
-void vsoxseg4ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u16mf4_m)))
-void vsoxseg4ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i16m1)))
-void vsoxseg5ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i16m1_m)))
-void vsoxseg5ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i16mf2)))
-void vsoxseg5ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i16mf2_m)))
-void vsoxseg5ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i16mf4)))
-void vsoxseg5ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i16mf4_m)))
-void vsoxseg5ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u16m1)))
-void vsoxseg5ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u16m1_m)))
-void vsoxseg5ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u16mf2)))
-void vsoxseg5ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u16mf2_m)))
-void vsoxseg5ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u16mf4)))
-void vsoxseg5ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u16mf4_m)))
-void vsoxseg5ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i16m1)))
-void vsoxseg6ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i16m1_m)))
-void vsoxseg6ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i16mf2)))
-void vsoxseg6ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i16mf2_m)))
-void vsoxseg6ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i16mf4)))
-void vsoxseg6ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i16mf4_m)))
-void vsoxseg6ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u16m1)))
-void vsoxseg6ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u16m1_m)))
-void vsoxseg6ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u16mf2)))
-void vsoxseg6ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u16mf2_m)))
-void vsoxseg6ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u16mf4)))
-void vsoxseg6ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u16mf4_m)))
-void vsoxseg6ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i16m1)))
-void vsoxseg7ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i16m1_m)))
-void vsoxseg7ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i16mf2)))
-void vsoxseg7ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i16mf2_m)))
-void vsoxseg7ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i16mf4)))
-void vsoxseg7ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i16mf4_m)))
-void vsoxseg7ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u16m1)))
-void vsoxseg7ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u16m1_m)))
-void vsoxseg7ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u16mf2)))
-void vsoxseg7ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u16mf2_m)))
-void vsoxseg7ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u16mf4)))
-void vsoxseg7ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u16mf4_m)))
-void vsoxseg7ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i16m1)))
-void vsoxseg8ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i16m1_m)))
-void vsoxseg8ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i16mf2)))
-void vsoxseg8ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i16mf2_m)))
-void vsoxseg8ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i16mf4)))
-void vsoxseg8ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i16mf4_m)))
-void vsoxseg8ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u16m1)))
-void vsoxseg8ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u16m1_m)))
-void vsoxseg8ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u16mf2)))
-void vsoxseg8ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u16mf2_m)))
-void vsoxseg8ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u16mf4)))
-void vsoxseg8ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u16mf4_m)))
-void vsoxseg8ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i16m1)))
-void vsoxseg2ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i16m1_m)))
-void vsoxseg2ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i16m2)))
-void vsoxseg2ei32(int16_t * op0, vuint32m4_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i16m2_m)))
-void vsoxseg2ei32(vbool8_t op0, int16_t * op1, vuint32m4_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i16m4)))
-void vsoxseg2ei32(int16_t * op0, vuint32m8_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i16m4_m)))
-void vsoxseg2ei32(vbool4_t op0, int16_t * op1, vuint32m8_t op2, vint16m4_t op3, vint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i16mf2)))
-void vsoxseg2ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i16mf2_m)))
-void vsoxseg2ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i16mf4)))
-void vsoxseg2ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i16mf4_m)))
-void vsoxseg2ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u16m1)))
-void vsoxseg2ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u16m1_m)))
-void vsoxseg2ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u16m2)))
-void vsoxseg2ei32(uint16_t * op0, vuint32m4_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u16m2_m)))
-void vsoxseg2ei32(vbool8_t op0, uint16_t * op1, vuint32m4_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u16m4)))
-void vsoxseg2ei32(uint16_t * op0, vuint32m8_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u16m4_m)))
-void vsoxseg2ei32(vbool4_t op0, uint16_t * op1, vuint32m8_t op2, vuint16m4_t op3, vuint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u16mf2)))
-void vsoxseg2ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u16mf2_m)))
-void vsoxseg2ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u16mf4)))
-void vsoxseg2ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u16mf4_m)))
-void vsoxseg2ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i16m1)))
-void vsoxseg3ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i16m1_m)))
-void vsoxseg3ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i16m2)))
-void vsoxseg3ei32(int16_t * op0, vuint32m4_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i16m2_m)))
-void vsoxseg3ei32(vbool8_t op0, int16_t * op1, vuint32m4_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i16mf2)))
-void vsoxseg3ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i16mf2_m)))
-void vsoxseg3ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i16mf4)))
-void vsoxseg3ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i16mf4_m)))
-void vsoxseg3ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u16m1)))
-void vsoxseg3ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u16m1_m)))
-void vsoxseg3ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u16m2)))
-void vsoxseg3ei32(uint16_t * op0, vuint32m4_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u16m2_m)))
-void vsoxseg3ei32(vbool8_t op0, uint16_t * op1, vuint32m4_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u16mf2)))
-void vsoxseg3ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u16mf2_m)))
-void vsoxseg3ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u16mf4)))
-void vsoxseg3ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u16mf4_m)))
-void vsoxseg3ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i16m1)))
-void vsoxseg4ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i16m1_m)))
-void vsoxseg4ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i16m2)))
-void vsoxseg4ei32(int16_t * op0, vuint32m4_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i16m2_m)))
-void vsoxseg4ei32(vbool8_t op0, int16_t * op1, vuint32m4_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i16mf2)))
-void vsoxseg4ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i16mf2_m)))
-void vsoxseg4ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i16mf4)))
-void vsoxseg4ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i16mf4_m)))
-void vsoxseg4ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u16m1)))
-void vsoxseg4ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u16m1_m)))
-void vsoxseg4ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u16m2)))
-void vsoxseg4ei32(uint16_t * op0, vuint32m4_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u16m2_m)))
-void vsoxseg4ei32(vbool8_t op0, uint16_t * op1, vuint32m4_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u16mf2)))
-void vsoxseg4ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u16mf2_m)))
-void vsoxseg4ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u16mf4)))
-void vsoxseg4ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u16mf4_m)))
-void vsoxseg4ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i16m1)))
-void vsoxseg5ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i16m1_m)))
-void vsoxseg5ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i16mf2)))
-void vsoxseg5ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i16mf2_m)))
-void vsoxseg5ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i16mf4)))
-void vsoxseg5ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i16mf4_m)))
-void vsoxseg5ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u16m1)))
-void vsoxseg5ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u16m1_m)))
-void vsoxseg5ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u16mf2)))
-void vsoxseg5ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u16mf2_m)))
-void vsoxseg5ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u16mf4)))
-void vsoxseg5ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u16mf4_m)))
-void vsoxseg5ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i16m1)))
-void vsoxseg6ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i16m1_m)))
-void vsoxseg6ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i16mf2)))
-void vsoxseg6ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i16mf2_m)))
-void vsoxseg6ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i16mf4)))
-void vsoxseg6ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i16mf4_m)))
-void vsoxseg6ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u16m1)))
-void vsoxseg6ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u16m1_m)))
-void vsoxseg6ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u16mf2)))
-void vsoxseg6ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u16mf2_m)))
-void vsoxseg6ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u16mf4)))
-void vsoxseg6ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u16mf4_m)))
-void vsoxseg6ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i16m1)))
-void vsoxseg7ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i16m1_m)))
-void vsoxseg7ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i16mf2)))
-void vsoxseg7ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i16mf2_m)))
-void vsoxseg7ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i16mf4)))
-void vsoxseg7ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i16mf4_m)))
-void vsoxseg7ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u16m1)))
-void vsoxseg7ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u16m1_m)))
-void vsoxseg7ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u16mf2)))
-void vsoxseg7ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u16mf2_m)))
-void vsoxseg7ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u16mf4)))
-void vsoxseg7ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u16mf4_m)))
-void vsoxseg7ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i16m1)))
-void vsoxseg8ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i16m1_m)))
-void vsoxseg8ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i16mf2)))
-void vsoxseg8ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i16mf2_m)))
-void vsoxseg8ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i16mf4)))
-void vsoxseg8ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i16mf4_m)))
-void vsoxseg8ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u16m1)))
-void vsoxseg8ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u16m1_m)))
-void vsoxseg8ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u16mf2)))
-void vsoxseg8ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u16mf2_m)))
-void vsoxseg8ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u16mf4)))
-void vsoxseg8ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u16mf4_m)))
-void vsoxseg8ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i16m1)))
-void vsoxseg2ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i16m1_m)))
-void vsoxseg2ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i16m2)))
-void vsoxseg2ei64(int16_t * op0, vuint64m8_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i16m2_m)))
-void vsoxseg2ei64(vbool8_t op0, int16_t * op1, vuint64m8_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i16mf2)))
-void vsoxseg2ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i16mf2_m)))
-void vsoxseg2ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i16mf4)))
-void vsoxseg2ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i16mf4_m)))
-void vsoxseg2ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u16m1)))
-void vsoxseg2ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u16m1_m)))
-void vsoxseg2ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u16m2)))
-void vsoxseg2ei64(uint16_t * op0, vuint64m8_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u16m2_m)))
-void vsoxseg2ei64(vbool8_t op0, uint16_t * op1, vuint64m8_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u16mf2)))
-void vsoxseg2ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u16mf2_m)))
-void vsoxseg2ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u16mf4)))
-void vsoxseg2ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u16mf4_m)))
-void vsoxseg2ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i16m1)))
-void vsoxseg3ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i16m1_m)))
-void vsoxseg3ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i16m2)))
-void vsoxseg3ei64(int16_t * op0, vuint64m8_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i16m2_m)))
-void vsoxseg3ei64(vbool8_t op0, int16_t * op1, vuint64m8_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i16mf2)))
-void vsoxseg3ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i16mf2_m)))
-void vsoxseg3ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i16mf4)))
-void vsoxseg3ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i16mf4_m)))
-void vsoxseg3ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u16m1)))
-void vsoxseg3ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u16m1_m)))
-void vsoxseg3ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u16m2)))
-void vsoxseg3ei64(uint16_t * op0, vuint64m8_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u16m2_m)))
-void vsoxseg3ei64(vbool8_t op0, uint16_t * op1, vuint64m8_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u16mf2)))
-void vsoxseg3ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u16mf2_m)))
-void vsoxseg3ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u16mf4)))
-void vsoxseg3ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u16mf4_m)))
-void vsoxseg3ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i16m1)))
-void vsoxseg4ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i16m1_m)))
-void vsoxseg4ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i16m2)))
-void vsoxseg4ei64(int16_t * op0, vuint64m8_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i16m2_m)))
-void vsoxseg4ei64(vbool8_t op0, int16_t * op1, vuint64m8_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i16mf2)))
-void vsoxseg4ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i16mf2_m)))
-void vsoxseg4ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i16mf4)))
-void vsoxseg4ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i16mf4_m)))
-void vsoxseg4ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u16m1)))
-void vsoxseg4ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u16m1_m)))
-void vsoxseg4ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u16m2)))
-void vsoxseg4ei64(uint16_t * op0, vuint64m8_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u16m2_m)))
-void vsoxseg4ei64(vbool8_t op0, uint16_t * op1, vuint64m8_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u16mf2)))
-void vsoxseg4ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u16mf2_m)))
-void vsoxseg4ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u16mf4)))
-void vsoxseg4ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u16mf4_m)))
-void vsoxseg4ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i16m1)))
-void vsoxseg5ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i16m1_m)))
-void vsoxseg5ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i16mf2)))
-void vsoxseg5ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i16mf2_m)))
-void vsoxseg5ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i16mf4)))
-void vsoxseg5ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i16mf4_m)))
-void vsoxseg5ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u16m1)))
-void vsoxseg5ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u16m1_m)))
-void vsoxseg5ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u16mf2)))
-void vsoxseg5ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u16mf2_m)))
-void vsoxseg5ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u16mf4)))
-void vsoxseg5ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u16mf4_m)))
-void vsoxseg5ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i16m1)))
-void vsoxseg6ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i16m1_m)))
-void vsoxseg6ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i16mf2)))
-void vsoxseg6ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i16mf2_m)))
-void vsoxseg6ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i16mf4)))
-void vsoxseg6ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i16mf4_m)))
-void vsoxseg6ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u16m1)))
-void vsoxseg6ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u16m1_m)))
-void vsoxseg6ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u16mf2)))
-void vsoxseg6ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u16mf2_m)))
-void vsoxseg6ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u16mf4)))
-void vsoxseg6ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u16mf4_m)))
-void vsoxseg6ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i16m1)))
-void vsoxseg7ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i16m1_m)))
-void vsoxseg7ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i16mf2)))
-void vsoxseg7ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i16mf2_m)))
-void vsoxseg7ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i16mf4)))
-void vsoxseg7ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i16mf4_m)))
-void vsoxseg7ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u16m1)))
-void vsoxseg7ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u16m1_m)))
-void vsoxseg7ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u16mf2)))
-void vsoxseg7ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u16mf2_m)))
-void vsoxseg7ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u16mf4)))
-void vsoxseg7ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u16mf4_m)))
-void vsoxseg7ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i16m1)))
-void vsoxseg8ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i16m1_m)))
-void vsoxseg8ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i16mf2)))
-void vsoxseg8ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i16mf2_m)))
-void vsoxseg8ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i16mf4)))
-void vsoxseg8ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i16mf4_m)))
-void vsoxseg8ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u16m1)))
-void vsoxseg8ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u16m1_m)))
-void vsoxseg8ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u16mf2)))
-void vsoxseg8ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u16mf2_m)))
-void vsoxseg8ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u16mf4)))
-void vsoxseg8ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u16mf4_m)))
-void vsoxseg8ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i32m1)))
-void vsoxseg2ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i32m1_m)))
-void vsoxseg2ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i32m2)))
-void vsoxseg2ei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i32m2_m)))
-void vsoxseg2ei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i32m4)))
-void vsoxseg2ei8(int32_t * op0, vuint8m1_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i32m4_m)))
-void vsoxseg2ei8(vbool8_t op0, int32_t * op1, vuint8m1_t op2, vint32m4_t op3, vint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i32mf2)))
-void vsoxseg2ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i32mf2_m)))
-void vsoxseg2ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u32m1)))
-void vsoxseg2ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u32m1_m)))
-void vsoxseg2ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u32m2)))
-void vsoxseg2ei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u32m2_m)))
-void vsoxseg2ei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u32m4)))
-void vsoxseg2ei8(uint32_t * op0, vuint8m1_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u32m4_m)))
-void vsoxseg2ei8(vbool8_t op0, uint32_t * op1, vuint8m1_t op2, vuint32m4_t op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u32mf2)))
-void vsoxseg2ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u32mf2_m)))
-void vsoxseg2ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i32m1)))
-void vsoxseg3ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i32m1_m)))
-void vsoxseg3ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i32m2)))
-void vsoxseg3ei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i32m2_m)))
-void vsoxseg3ei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i32mf2)))
-void vsoxseg3ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i32mf2_m)))
-void vsoxseg3ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u32m1)))
-void vsoxseg3ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u32m1_m)))
-void vsoxseg3ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u32m2)))
-void vsoxseg3ei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u32m2_m)))
-void vsoxseg3ei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u32mf2)))
-void vsoxseg3ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u32mf2_m)))
-void vsoxseg3ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i32m1)))
-void vsoxseg4ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i32m1_m)))
-void vsoxseg4ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i32m2)))
-void vsoxseg4ei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i32m2_m)))
-void vsoxseg4ei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i32mf2)))
-void vsoxseg4ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i32mf2_m)))
-void vsoxseg4ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u32m1)))
-void vsoxseg4ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u32m1_m)))
-void vsoxseg4ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u32m2)))
-void vsoxseg4ei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u32m2_m)))
-void vsoxseg4ei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u32mf2)))
-void vsoxseg4ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u32mf2_m)))
-void vsoxseg4ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i32m1)))
-void vsoxseg5ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i32m1_m)))
-void vsoxseg5ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i32mf2)))
-void vsoxseg5ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i32mf2_m)))
-void vsoxseg5ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u32m1)))
-void vsoxseg5ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u32m1_m)))
-void vsoxseg5ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u32mf2)))
-void vsoxseg5ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u32mf2_m)))
-void vsoxseg5ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i32m1)))
-void vsoxseg6ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i32m1_m)))
-void vsoxseg6ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i32mf2)))
-void vsoxseg6ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i32mf2_m)))
-void vsoxseg6ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u32m1)))
-void vsoxseg6ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u32m1_m)))
-void vsoxseg6ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u32mf2)))
-void vsoxseg6ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u32mf2_m)))
-void vsoxseg6ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i32m1)))
-void vsoxseg7ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i32m1_m)))
-void vsoxseg7ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i32mf2)))
-void vsoxseg7ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i32mf2_m)))
-void vsoxseg7ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u32m1)))
-void vsoxseg7ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u32m1_m)))
-void vsoxseg7ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u32mf2)))
-void vsoxseg7ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u32mf2_m)))
-void vsoxseg7ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i32m1)))
-void vsoxseg8ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i32m1_m)))
-void vsoxseg8ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i32mf2)))
-void vsoxseg8ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i32mf2_m)))
-void vsoxseg8ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u32m1)))
-void vsoxseg8ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u32m1_m)))
-void vsoxseg8ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u32mf2)))
-void vsoxseg8ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u32mf2_m)))
-void vsoxseg8ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i32m1)))
-void vsoxseg2ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i32m1_m)))
-void vsoxseg2ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i32m2)))
-void vsoxseg2ei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i32m2_m)))
-void vsoxseg2ei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i32m4)))
-void vsoxseg2ei16(int32_t * op0, vuint16m2_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i32m4_m)))
-void vsoxseg2ei16(vbool8_t op0, int32_t * op1, vuint16m2_t op2, vint32m4_t op3, vint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i32mf2)))
-void vsoxseg2ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i32mf2_m)))
-void vsoxseg2ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u32m1)))
-void vsoxseg2ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u32m1_m)))
-void vsoxseg2ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u32m2)))
-void vsoxseg2ei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u32m2_m)))
-void vsoxseg2ei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u32m4)))
-void vsoxseg2ei16(uint32_t * op0, vuint16m2_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u32m4_m)))
-void vsoxseg2ei16(vbool8_t op0, uint32_t * op1, vuint16m2_t op2, vuint32m4_t op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u32mf2)))
-void vsoxseg2ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u32mf2_m)))
-void vsoxseg2ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i32m1)))
-void vsoxseg3ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i32m1_m)))
-void vsoxseg3ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i32m2)))
-void vsoxseg3ei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i32m2_m)))
-void vsoxseg3ei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i32mf2)))
-void vsoxseg3ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i32mf2_m)))
-void vsoxseg3ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u32m1)))
-void vsoxseg3ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u32m1_m)))
-void vsoxseg3ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u32m2)))
-void vsoxseg3ei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u32m2_m)))
-void vsoxseg3ei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u32mf2)))
-void vsoxseg3ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u32mf2_m)))
-void vsoxseg3ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i32m1)))
-void vsoxseg4ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i32m1_m)))
-void vsoxseg4ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i32m2)))
-void vsoxseg4ei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i32m2_m)))
-void vsoxseg4ei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i32mf2)))
-void vsoxseg4ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i32mf2_m)))
-void vsoxseg4ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u32m1)))
-void vsoxseg4ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u32m1_m)))
-void vsoxseg4ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u32m2)))
-void vsoxseg4ei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u32m2_m)))
-void vsoxseg4ei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u32mf2)))
-void vsoxseg4ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u32mf2_m)))
-void vsoxseg4ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i32m1)))
-void vsoxseg5ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i32m1_m)))
-void vsoxseg5ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i32mf2)))
-void vsoxseg5ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i32mf2_m)))
-void vsoxseg5ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u32m1)))
-void vsoxseg5ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u32m1_m)))
-void vsoxseg5ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u32mf2)))
-void vsoxseg5ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u32mf2_m)))
-void vsoxseg5ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i32m1)))
-void vsoxseg6ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i32m1_m)))
-void vsoxseg6ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i32mf2)))
-void vsoxseg6ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i32mf2_m)))
-void vsoxseg6ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u32m1)))
-void vsoxseg6ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u32m1_m)))
-void vsoxseg6ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u32mf2)))
-void vsoxseg6ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u32mf2_m)))
-void vsoxseg6ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i32m1)))
-void vsoxseg7ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i32m1_m)))
-void vsoxseg7ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i32mf2)))
-void vsoxseg7ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i32mf2_m)))
-void vsoxseg7ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u32m1)))
-void vsoxseg7ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u32m1_m)))
-void vsoxseg7ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u32mf2)))
-void vsoxseg7ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u32mf2_m)))
-void vsoxseg7ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i32m1)))
-void vsoxseg8ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i32m1_m)))
-void vsoxseg8ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i32mf2)))
-void vsoxseg8ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i32mf2_m)))
-void vsoxseg8ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u32m1)))
-void vsoxseg8ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u32m1_m)))
-void vsoxseg8ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u32mf2)))
-void vsoxseg8ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u32mf2_m)))
-void vsoxseg8ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i32m1)))
-void vsoxseg2ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i32m1_m)))
-void vsoxseg2ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i32m2)))
-void vsoxseg2ei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i32m2_m)))
-void vsoxseg2ei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i32m4)))
-void vsoxseg2ei32(int32_t * op0, vuint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i32m4_m)))
-void vsoxseg2ei32(vbool8_t op0, int32_t * op1, vuint32m4_t op2, vint32m4_t op3, vint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i32mf2)))
-void vsoxseg2ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i32mf2_m)))
-void vsoxseg2ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u32m1)))
-void vsoxseg2ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u32m1_m)))
-void vsoxseg2ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u32m2)))
-void vsoxseg2ei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u32m2_m)))
-void vsoxseg2ei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u32m4)))
-void vsoxseg2ei32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u32m4_m)))
-void vsoxseg2ei32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u32mf2)))
-void vsoxseg2ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u32mf2_m)))
-void vsoxseg2ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i32m1)))
-void vsoxseg3ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i32m1_m)))
-void vsoxseg3ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i32m2)))
-void vsoxseg3ei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i32m2_m)))
-void vsoxseg3ei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i32mf2)))
-void vsoxseg3ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i32mf2_m)))
-void vsoxseg3ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u32m1)))
-void vsoxseg3ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u32m1_m)))
-void vsoxseg3ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u32m2)))
-void vsoxseg3ei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u32m2_m)))
-void vsoxseg3ei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u32mf2)))
-void vsoxseg3ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u32mf2_m)))
-void vsoxseg3ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i32m1)))
-void vsoxseg4ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i32m1_m)))
-void vsoxseg4ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i32m2)))
-void vsoxseg4ei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i32m2_m)))
-void vsoxseg4ei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i32mf2)))
-void vsoxseg4ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i32mf2_m)))
-void vsoxseg4ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u32m1)))
-void vsoxseg4ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u32m1_m)))
-void vsoxseg4ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u32m2)))
-void vsoxseg4ei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u32m2_m)))
-void vsoxseg4ei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u32mf2)))
-void vsoxseg4ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u32mf2_m)))
-void vsoxseg4ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i32m1)))
-void vsoxseg5ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i32m1_m)))
-void vsoxseg5ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i32mf2)))
-void vsoxseg5ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i32mf2_m)))
-void vsoxseg5ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u32m1)))
-void vsoxseg5ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u32m1_m)))
-void vsoxseg5ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u32mf2)))
-void vsoxseg5ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u32mf2_m)))
-void vsoxseg5ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i32m1)))
-void vsoxseg6ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i32m1_m)))
-void vsoxseg6ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i32mf2)))
-void vsoxseg6ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i32mf2_m)))
-void vsoxseg6ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u32m1)))
-void vsoxseg6ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u32m1_m)))
-void vsoxseg6ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u32mf2)))
-void vsoxseg6ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u32mf2_m)))
-void vsoxseg6ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i32m1)))
-void vsoxseg7ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i32m1_m)))
-void vsoxseg7ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i32mf2)))
-void vsoxseg7ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i32mf2_m)))
-void vsoxseg7ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u32m1)))
-void vsoxseg7ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u32m1_m)))
-void vsoxseg7ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u32mf2)))
-void vsoxseg7ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u32mf2_m)))
-void vsoxseg7ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i32m1)))
-void vsoxseg8ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i32m1_m)))
-void vsoxseg8ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i32mf2)))
-void vsoxseg8ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i32mf2_m)))
-void vsoxseg8ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u32m1)))
-void vsoxseg8ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u32m1_m)))
-void vsoxseg8ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u32mf2)))
-void vsoxseg8ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u32mf2_m)))
-void vsoxseg8ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i32m1)))
-void vsoxseg2ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i32m1_m)))
-void vsoxseg2ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i32m2)))
-void vsoxseg2ei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i32m2_m)))
-void vsoxseg2ei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i32m4)))
-void vsoxseg2ei64(int32_t * op0, vuint64m8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i32m4_m)))
-void vsoxseg2ei64(vbool8_t op0, int32_t * op1, vuint64m8_t op2, vint32m4_t op3, vint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i32mf2)))
-void vsoxseg2ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i32mf2_m)))
-void vsoxseg2ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u32m1)))
-void vsoxseg2ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u32m1_m)))
-void vsoxseg2ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u32m2)))
-void vsoxseg2ei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u32m2_m)))
-void vsoxseg2ei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u32m4)))
-void vsoxseg2ei64(uint32_t * op0, vuint64m8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u32m4_m)))
-void vsoxseg2ei64(vbool8_t op0, uint32_t * op1, vuint64m8_t op2, vuint32m4_t op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u32mf2)))
-void vsoxseg2ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u32mf2_m)))
-void vsoxseg2ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i32m1)))
-void vsoxseg3ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i32m1_m)))
-void vsoxseg3ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i32m2)))
-void vsoxseg3ei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i32m2_m)))
-void vsoxseg3ei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i32mf2)))
-void vsoxseg3ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i32mf2_m)))
-void vsoxseg3ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u32m1)))
-void vsoxseg3ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u32m1_m)))
-void vsoxseg3ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u32m2)))
-void vsoxseg3ei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u32m2_m)))
-void vsoxseg3ei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u32mf2)))
-void vsoxseg3ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u32mf2_m)))
-void vsoxseg3ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i32m1)))
-void vsoxseg4ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i32m1_m)))
-void vsoxseg4ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i32m2)))
-void vsoxseg4ei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i32m2_m)))
-void vsoxseg4ei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i32mf2)))
-void vsoxseg4ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i32mf2_m)))
-void vsoxseg4ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u32m1)))
-void vsoxseg4ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u32m1_m)))
-void vsoxseg4ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u32m2)))
-void vsoxseg4ei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u32m2_m)))
-void vsoxseg4ei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u32mf2)))
-void vsoxseg4ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u32mf2_m)))
-void vsoxseg4ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i32m1)))
-void vsoxseg5ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i32m1_m)))
-void vsoxseg5ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i32mf2)))
-void vsoxseg5ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i32mf2_m)))
-void vsoxseg5ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u32m1)))
-void vsoxseg5ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u32m1_m)))
-void vsoxseg5ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u32mf2)))
-void vsoxseg5ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u32mf2_m)))
-void vsoxseg5ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i32m1)))
-void vsoxseg6ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i32m1_m)))
-void vsoxseg6ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i32mf2)))
-void vsoxseg6ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i32mf2_m)))
-void vsoxseg6ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u32m1)))
-void vsoxseg6ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u32m1_m)))
-void vsoxseg6ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u32mf2)))
-void vsoxseg6ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u32mf2_m)))
-void vsoxseg6ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i32m1)))
-void vsoxseg7ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i32m1_m)))
-void vsoxseg7ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i32mf2)))
-void vsoxseg7ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i32mf2_m)))
-void vsoxseg7ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u32m1)))
-void vsoxseg7ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u32m1_m)))
-void vsoxseg7ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u32mf2)))
-void vsoxseg7ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u32mf2_m)))
-void vsoxseg7ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i32m1)))
-void vsoxseg8ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i32m1_m)))
-void vsoxseg8ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i32mf2)))
-void vsoxseg8ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i32mf2_m)))
-void vsoxseg8ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u32m1)))
-void vsoxseg8ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u32m1_m)))
-void vsoxseg8ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u32mf2)))
-void vsoxseg8ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u32mf2_m)))
-void vsoxseg8ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i64m1)))
-void vsoxseg2ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i64m1_m)))
-void vsoxseg2ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i64m2)))
-void vsoxseg2ei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i64m2_m)))
-void vsoxseg2ei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i64m4)))
-void vsoxseg2ei8(int64_t * op0, vuint8mf2_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i64m4_m)))
-void vsoxseg2ei8(vbool16_t op0, int64_t * op1, vuint8mf2_t op2, vint64m4_t op3, vint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u64m1)))
-void vsoxseg2ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u64m1_m)))
-void vsoxseg2ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u64m2)))
-void vsoxseg2ei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u64m2_m)))
-void vsoxseg2ei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u64m4)))
-void vsoxseg2ei8(uint64_t * op0, vuint8mf2_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u64m4_m)))
-void vsoxseg2ei8(vbool16_t op0, uint64_t * op1, vuint8mf2_t op2, vuint64m4_t op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i64m1)))
-void vsoxseg3ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i64m1_m)))
-void vsoxseg3ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i64m2)))
-void vsoxseg3ei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i64m2_m)))
-void vsoxseg3ei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u64m1)))
-void vsoxseg3ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u64m1_m)))
-void vsoxseg3ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u64m2)))
-void vsoxseg3ei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u64m2_m)))
-void vsoxseg3ei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i64m1)))
-void vsoxseg4ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i64m1_m)))
-void vsoxseg4ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i64m2)))
-void vsoxseg4ei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i64m2_m)))
-void vsoxseg4ei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u64m1)))
-void vsoxseg4ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u64m1_m)))
-void vsoxseg4ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u64m2)))
-void vsoxseg4ei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u64m2_m)))
-void vsoxseg4ei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i64m1)))
-void vsoxseg5ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i64m1_m)))
-void vsoxseg5ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u64m1)))
-void vsoxseg5ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u64m1_m)))
-void vsoxseg5ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i64m1)))
-void vsoxseg6ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i64m1_m)))
-void vsoxseg6ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u64m1)))
-void vsoxseg6ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u64m1_m)))
-void vsoxseg6ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i64m1)))
-void vsoxseg7ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i64m1_m)))
-void vsoxseg7ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u64m1)))
-void vsoxseg7ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u64m1_m)))
-void vsoxseg7ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i64m1)))
-void vsoxseg8ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i64m1_m)))
-void vsoxseg8ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u64m1)))
-void vsoxseg8ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u64m1_m)))
-void vsoxseg8ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i64m1)))
-void vsoxseg2ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i64m1_m)))
-void vsoxseg2ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i64m2)))
-void vsoxseg2ei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i64m2_m)))
-void vsoxseg2ei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i64m4)))
-void vsoxseg2ei16(int64_t * op0, vuint16m1_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i64m4_m)))
-void vsoxseg2ei16(vbool16_t op0, int64_t * op1, vuint16m1_t op2, vint64m4_t op3, vint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u64m1)))
-void vsoxseg2ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u64m1_m)))
-void vsoxseg2ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u64m2)))
-void vsoxseg2ei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u64m2_m)))
-void vsoxseg2ei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u64m4)))
-void vsoxseg2ei16(uint64_t * op0, vuint16m1_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u64m4_m)))
-void vsoxseg2ei16(vbool16_t op0, uint64_t * op1, vuint16m1_t op2, vuint64m4_t op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i64m1)))
-void vsoxseg3ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i64m1_m)))
-void vsoxseg3ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i64m2)))
-void vsoxseg3ei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i64m2_m)))
-void vsoxseg3ei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u64m1)))
-void vsoxseg3ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u64m1_m)))
-void vsoxseg3ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u64m2)))
-void vsoxseg3ei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u64m2_m)))
-void vsoxseg3ei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i64m1)))
-void vsoxseg4ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i64m1_m)))
-void vsoxseg4ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i64m2)))
-void vsoxseg4ei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i64m2_m)))
-void vsoxseg4ei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u64m1)))
-void vsoxseg4ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u64m1_m)))
-void vsoxseg4ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u64m2)))
-void vsoxseg4ei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u64m2_m)))
-void vsoxseg4ei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i64m1)))
-void vsoxseg5ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i64m1_m)))
-void vsoxseg5ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u64m1)))
-void vsoxseg5ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u64m1_m)))
-void vsoxseg5ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i64m1)))
-void vsoxseg6ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i64m1_m)))
-void vsoxseg6ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u64m1)))
-void vsoxseg6ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u64m1_m)))
-void vsoxseg6ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i64m1)))
-void vsoxseg7ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i64m1_m)))
-void vsoxseg7ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u64m1)))
-void vsoxseg7ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u64m1_m)))
-void vsoxseg7ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i64m1)))
-void vsoxseg8ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i64m1_m)))
-void vsoxseg8ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u64m1)))
-void vsoxseg8ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u64m1_m)))
-void vsoxseg8ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i64m1)))
-void vsoxseg2ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i64m1_m)))
-void vsoxseg2ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i64m2)))
-void vsoxseg2ei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i64m2_m)))
-void vsoxseg2ei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i64m4)))
-void vsoxseg2ei32(int64_t * op0, vuint32m2_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i64m4_m)))
-void vsoxseg2ei32(vbool16_t op0, int64_t * op1, vuint32m2_t op2, vint64m4_t op3, vint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u64m1)))
-void vsoxseg2ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u64m1_m)))
-void vsoxseg2ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u64m2)))
-void vsoxseg2ei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u64m2_m)))
-void vsoxseg2ei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u64m4)))
-void vsoxseg2ei32(uint64_t * op0, vuint32m2_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u64m4_m)))
-void vsoxseg2ei32(vbool16_t op0, uint64_t * op1, vuint32m2_t op2, vuint64m4_t op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i64m1)))
-void vsoxseg3ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i64m1_m)))
-void vsoxseg3ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i64m2)))
-void vsoxseg3ei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i64m2_m)))
-void vsoxseg3ei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u64m1)))
-void vsoxseg3ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u64m1_m)))
-void vsoxseg3ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u64m2)))
-void vsoxseg3ei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u64m2_m)))
-void vsoxseg3ei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i64m1)))
-void vsoxseg4ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i64m1_m)))
-void vsoxseg4ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i64m2)))
-void vsoxseg4ei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i64m2_m)))
-void vsoxseg4ei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u64m1)))
-void vsoxseg4ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u64m1_m)))
-void vsoxseg4ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u64m2)))
-void vsoxseg4ei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u64m2_m)))
-void vsoxseg4ei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i64m1)))
-void vsoxseg5ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i64m1_m)))
-void vsoxseg5ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u64m1)))
-void vsoxseg5ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u64m1_m)))
-void vsoxseg5ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i64m1)))
-void vsoxseg6ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i64m1_m)))
-void vsoxseg6ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u64m1)))
-void vsoxseg6ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u64m1_m)))
-void vsoxseg6ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i64m1)))
-void vsoxseg7ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i64m1_m)))
-void vsoxseg7ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u64m1)))
-void vsoxseg7ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u64m1_m)))
-void vsoxseg7ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i64m1)))
-void vsoxseg8ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i64m1_m)))
-void vsoxseg8ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u64m1)))
-void vsoxseg8ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u64m1_m)))
-void vsoxseg8ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i64m1)))
-void vsoxseg2ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i64m1_m)))
-void vsoxseg2ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i64m2)))
-void vsoxseg2ei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i64m2_m)))
-void vsoxseg2ei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i64m4)))
-void vsoxseg2ei64(int64_t * op0, vuint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i64m4_m)))
-void vsoxseg2ei64(vbool16_t op0, int64_t * op1, vuint64m4_t op2, vint64m4_t op3, vint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u64m1)))
-void vsoxseg2ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u64m1_m)))
-void vsoxseg2ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u64m2)))
-void vsoxseg2ei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u64m2_m)))
-void vsoxseg2ei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u64m4)))
-void vsoxseg2ei64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u64m4_m)))
-void vsoxseg2ei64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i64m1)))
-void vsoxseg3ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i64m1_m)))
-void vsoxseg3ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i64m2)))
-void vsoxseg3ei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i64m2_m)))
-void vsoxseg3ei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u64m1)))
-void vsoxseg3ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u64m1_m)))
-void vsoxseg3ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u64m2)))
-void vsoxseg3ei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u64m2_m)))
-void vsoxseg3ei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i64m1)))
-void vsoxseg4ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i64m1_m)))
-void vsoxseg4ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i64m2)))
-void vsoxseg4ei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i64m2_m)))
-void vsoxseg4ei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u64m1)))
-void vsoxseg4ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u64m1_m)))
-void vsoxseg4ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u64m2)))
-void vsoxseg4ei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u64m2_m)))
-void vsoxseg4ei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i64m1)))
-void vsoxseg5ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i64m1_m)))
-void vsoxseg5ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u64m1)))
-void vsoxseg5ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u64m1_m)))
-void vsoxseg5ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i64m1)))
-void vsoxseg6ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i64m1_m)))
-void vsoxseg6ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u64m1)))
-void vsoxseg6ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u64m1_m)))
-void vsoxseg6ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i64m1)))
-void vsoxseg7ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i64m1_m)))
-void vsoxseg7ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u64m1)))
-void vsoxseg7ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u64m1_m)))
-void vsoxseg7ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i64m1)))
-void vsoxseg8ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i64m1_m)))
-void vsoxseg8ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u64m1)))
-void vsoxseg8ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u64m1_m)))
-void vsoxseg8ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_i8m1_m)))
-void vlseg2e8(vint8m1_t * op0, vint8m1_t * op1, vbool8_t op2, vint8m1_t op3, vint8m1_t op4, const int8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_i8m2_m)))
-void vlseg2e8(vint8m2_t * op0, vint8m2_t * op1, vbool4_t op2, vint8m2_t op3, vint8m2_t op4, const int8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_i8m4_m)))
-void vlseg2e8(vint8m4_t * op0, vint8m4_t * op1, vbool2_t op2, vint8m4_t op3, vint8m4_t op4, const int8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_i8mf2_m)))
-void vlseg2e8(vint8mf2_t * op0, vint8mf2_t * op1, vbool16_t op2, vint8mf2_t op3, vint8mf2_t op4, const int8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_i8mf4_m)))
-void vlseg2e8(vint8mf4_t * op0, vint8mf4_t * op1, vbool32_t op2, vint8mf4_t op3, vint8mf4_t op4, const int8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_i8mf8_m)))
-void vlseg2e8(vint8mf8_t * op0, vint8mf8_t * op1, vbool64_t op2, vint8mf8_t op3, vint8mf8_t op4, const int8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_u8m1_m)))
-void vlseg2e8(vuint8m1_t * op0, vuint8m1_t * op1, vbool8_t op2, vuint8m1_t op3, vuint8m1_t op4, const uint8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_u8m2_m)))
-void vlseg2e8(vuint8m2_t * op0, vuint8m2_t * op1, vbool4_t op2, vuint8m2_t op3, vuint8m2_t op4, const uint8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_u8m4_m)))
-void vlseg2e8(vuint8m4_t * op0, vuint8m4_t * op1, vbool2_t op2, vuint8m4_t op3, vuint8m4_t op4, const uint8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_u8mf2_m)))
-void vlseg2e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vbool16_t op2, vuint8mf2_t op3, vuint8mf2_t op4, const uint8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_u8mf4_m)))
-void vlseg2e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vbool32_t op2, vuint8mf4_t op3, vuint8mf4_t op4, const uint8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_u8mf8_m)))
-void vlseg2e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vbool64_t op2, vuint8mf8_t op3, vuint8mf8_t op4, const uint8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8_v_i8m1_m)))
-void vlseg3e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vbool8_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, const int8_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8_v_i8m2_m)))
-void vlseg3e8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vbool4_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, const int8_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8_v_i8mf2_m)))
-void vlseg3e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vbool16_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, const int8_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8_v_i8mf4_m)))
-void vlseg3e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vbool32_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, const int8_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8_v_i8mf8_m)))
-void vlseg3e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vbool64_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, const int8_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8_v_u8m1_m)))
-void vlseg3e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vbool8_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, const uint8_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8_v_u8m2_m)))
-void vlseg3e8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vbool4_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, const uint8_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8_v_u8mf2_m)))
-void vlseg3e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vbool16_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, const uint8_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8_v_u8mf4_m)))
-void vlseg3e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vbool32_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, const uint8_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8_v_u8mf8_m)))
-void vlseg3e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vbool64_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, const uint8_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8_v_i8m1_m)))
-void vlseg4e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vbool8_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, const int8_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8_v_i8m2_m)))
-void vlseg4e8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, vbool4_t op4, vint8m2_t op5, vint8m2_t op6, vint8m2_t op7, vint8m2_t op8, const int8_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8_v_i8mf2_m)))
-void vlseg4e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vbool16_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, const int8_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8_v_i8mf4_m)))
-void vlseg4e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vbool32_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, const int8_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8_v_i8mf8_m)))
-void vlseg4e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vbool64_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, const int8_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8_v_u8m1_m)))
-void vlseg4e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vbool8_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, const uint8_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8_v_u8m2_m)))
-void vlseg4e8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, vbool4_t op4, vuint8m2_t op5, vuint8m2_t op6, vuint8m2_t op7, vuint8m2_t op8, const uint8_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8_v_u8mf2_m)))
-void vlseg4e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vbool16_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, const uint8_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8_v_u8mf4_m)))
-void vlseg4e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vbool32_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, const uint8_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8_v_u8mf8_m)))
-void vlseg4e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vbool64_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, const uint8_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8_v_i8m1_m)))
-void vlseg5e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vbool8_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, const int8_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8_v_i8mf2_m)))
-void vlseg5e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vbool16_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, const int8_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8_v_i8mf4_m)))
-void vlseg5e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vbool32_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, const int8_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8_v_i8mf8_m)))
-void vlseg5e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vbool64_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, const int8_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8_v_u8m1_m)))
-void vlseg5e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vbool8_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, const uint8_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8_v_u8mf2_m)))
-void vlseg5e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vbool16_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, const uint8_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8_v_u8mf4_m)))
-void vlseg5e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vbool32_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, const uint8_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8_v_u8mf8_m)))
-void vlseg5e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vbool64_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, const uint8_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8_v_i8m1_m)))
-void vlseg6e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vbool8_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, const int8_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8_v_i8mf2_m)))
-void vlseg6e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vbool16_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, const int8_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8_v_i8mf4_m)))
-void vlseg6e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vbool32_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, const int8_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8_v_i8mf8_m)))
-void vlseg6e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vbool64_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, const int8_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8_v_u8m1_m)))
-void vlseg6e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vbool8_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, const uint8_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8_v_u8mf2_m)))
-void vlseg6e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vbool16_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, const uint8_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8_v_u8mf4_m)))
-void vlseg6e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vbool32_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, const uint8_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8_v_u8mf8_m)))
-void vlseg6e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vbool64_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, const uint8_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8_v_i8m1_m)))
-void vlseg7e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vbool8_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, const int8_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8_v_i8mf2_m)))
-void vlseg7e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vbool16_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, const int8_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8_v_i8mf4_m)))
-void vlseg7e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vbool32_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, const int8_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8_v_i8mf8_m)))
-void vlseg7e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vbool64_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, const int8_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8_v_u8m1_m)))
-void vlseg7e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vbool8_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, const uint8_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8_v_u8mf2_m)))
-void vlseg7e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vbool16_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, const uint8_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8_v_u8mf4_m)))
-void vlseg7e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vbool32_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, const uint8_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8_v_u8mf8_m)))
-void vlseg7e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vbool64_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, const uint8_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8_v_i8m1_m)))
-void vlseg8e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, vbool8_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, vint8m1_t op15, vint8m1_t op16, const int8_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8_v_i8mf2_m)))
-void vlseg8e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, vbool16_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, vint8mf2_t op15, vint8mf2_t op16, const int8_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8_v_i8mf4_m)))
-void vlseg8e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, vbool32_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, vint8mf4_t op15, vint8mf4_t op16, const int8_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8_v_i8mf8_m)))
-void vlseg8e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, vbool64_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, vint8mf8_t op15, vint8mf8_t op16, const int8_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8_v_u8m1_m)))
-void vlseg8e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, vbool8_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, vuint8m1_t op15, vuint8m1_t op16, const uint8_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8_v_u8mf2_m)))
-void vlseg8e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, vbool16_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, vuint8mf2_t op15, vuint8mf2_t op16, const uint8_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8_v_u8mf4_m)))
-void vlseg8e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, vbool32_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, vuint8mf4_t op15, vuint8mf4_t op16, const uint8_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8_v_u8mf8_m)))
-void vlseg8e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, vbool64_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, vuint8mf8_t op15, vuint8mf8_t op16, const uint8_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_i16m1_m)))
-void vlseg2e16(vint16m1_t * op0, vint16m1_t * op1, vbool16_t op2, vint16m1_t op3, vint16m1_t op4, const int16_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_i16m2_m)))
-void vlseg2e16(vint16m2_t * op0, vint16m2_t * op1, vbool8_t op2, vint16m2_t op3, vint16m2_t op4, const int16_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_i16m4_m)))
-void vlseg2e16(vint16m4_t * op0, vint16m4_t * op1, vbool4_t op2, vint16m4_t op3, vint16m4_t op4, const int16_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_i16mf2_m)))
-void vlseg2e16(vint16mf2_t * op0, vint16mf2_t * op1, vbool32_t op2, vint16mf2_t op3, vint16mf2_t op4, const int16_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_i16mf4_m)))
-void vlseg2e16(vint16mf4_t * op0, vint16mf4_t * op1, vbool64_t op2, vint16mf4_t op3, vint16mf4_t op4, const int16_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_u16m1_m)))
-void vlseg2e16(vuint16m1_t * op0, vuint16m1_t * op1, vbool16_t op2, vuint16m1_t op3, vuint16m1_t op4, const uint16_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_u16m2_m)))
-void vlseg2e16(vuint16m2_t * op0, vuint16m2_t * op1, vbool8_t op2, vuint16m2_t op3, vuint16m2_t op4, const uint16_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_u16m4_m)))
-void vlseg2e16(vuint16m4_t * op0, vuint16m4_t * op1, vbool4_t op2, vuint16m4_t op3, vuint16m4_t op4, const uint16_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_u16mf2_m)))
-void vlseg2e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vbool32_t op2, vuint16mf2_t op3, vuint16mf2_t op4, const uint16_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_u16mf4_m)))
-void vlseg2e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vbool64_t op2, vuint16mf4_t op3, vuint16mf4_t op4, const uint16_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_i16m1_m)))
-void vlseg3e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vbool16_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, const int16_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_i16m2_m)))
-void vlseg3e16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vbool8_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, const int16_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_i16mf2_m)))
-void vlseg3e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vbool32_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, const int16_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_i16mf4_m)))
-void vlseg3e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vbool64_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, const int16_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_u16m1_m)))
-void vlseg3e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vbool16_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, const uint16_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_u16m2_m)))
-void vlseg3e16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vbool8_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, const uint16_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_u16mf2_m)))
-void vlseg3e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vbool32_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, const uint16_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_u16mf4_m)))
-void vlseg3e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vbool64_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, const uint16_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_i16m1_m)))
-void vlseg4e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vbool16_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, const int16_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_i16m2_m)))
-void vlseg4e16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, vbool8_t op4, vint16m2_t op5, vint16m2_t op6, vint16m2_t op7, vint16m2_t op8, const int16_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_i16mf2_m)))
-void vlseg4e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vbool32_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, const int16_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_i16mf4_m)))
-void vlseg4e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vbool64_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, const int16_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_u16m1_m)))
-void vlseg4e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vbool16_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, const uint16_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_u16m2_m)))
-void vlseg4e16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, vbool8_t op4, vuint16m2_t op5, vuint16m2_t op6, vuint16m2_t op7, vuint16m2_t op8, const uint16_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_u16mf2_m)))
-void vlseg4e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vbool32_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, const uint16_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_u16mf4_m)))
-void vlseg4e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vbool64_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, const uint16_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16_v_i16m1_m)))
-void vlseg5e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vbool16_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, const int16_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16_v_i16mf2_m)))
-void vlseg5e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vbool32_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, const int16_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16_v_i16mf4_m)))
-void vlseg5e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vbool64_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, const int16_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16_v_u16m1_m)))
-void vlseg5e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vbool16_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, const uint16_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16_v_u16mf2_m)))
-void vlseg5e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vbool32_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, const uint16_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16_v_u16mf4_m)))
-void vlseg5e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vbool64_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, const uint16_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16_v_i16m1_m)))
-void vlseg6e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vbool16_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, const int16_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16_v_i16mf2_m)))
-void vlseg6e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vbool32_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, const int16_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16_v_i16mf4_m)))
-void vlseg6e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vbool64_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, const int16_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16_v_u16m1_m)))
-void vlseg6e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vbool16_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, const uint16_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16_v_u16mf2_m)))
-void vlseg6e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vbool32_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, const uint16_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16_v_u16mf4_m)))
-void vlseg6e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vbool64_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, const uint16_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16_v_i16m1_m)))
-void vlseg7e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vbool16_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, const int16_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16_v_i16mf2_m)))
-void vlseg7e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vbool32_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, const int16_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16_v_i16mf4_m)))
-void vlseg7e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vbool64_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, const int16_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16_v_u16m1_m)))
-void vlseg7e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vbool16_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, const uint16_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16_v_u16mf2_m)))
-void vlseg7e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vbool32_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, const uint16_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16_v_u16mf4_m)))
-void vlseg7e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vbool64_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, const uint16_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16_v_i16m1_m)))
-void vlseg8e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, vbool16_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, vint16m1_t op15, vint16m1_t op16, const int16_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16_v_i16mf2_m)))
-void vlseg8e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, vbool32_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, vint16mf2_t op15, vint16mf2_t op16, const int16_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16_v_i16mf4_m)))
-void vlseg8e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, vbool64_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, vint16mf4_t op15, vint16mf4_t op16, const int16_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16_v_u16m1_m)))
-void vlseg8e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, vbool16_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, vuint16m1_t op15, vuint16m1_t op16, const uint16_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16_v_u16mf2_m)))
-void vlseg8e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, vbool32_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, vuint16mf2_t op15, vuint16mf2_t op16, const uint16_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16_v_u16mf4_m)))
-void vlseg8e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, vbool64_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, vuint16mf4_t op15, vuint16mf4_t op16, const uint16_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_i32m1_m)))
-void vlseg2e32(vint32m1_t * op0, vint32m1_t * op1, vbool32_t op2, vint32m1_t op3, vint32m1_t op4, const int32_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_i32m2_m)))
-void vlseg2e32(vint32m2_t * op0, vint32m2_t * op1, vbool16_t op2, vint32m2_t op3, vint32m2_t op4, const int32_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_i32m4_m)))
-void vlseg2e32(vint32m4_t * op0, vint32m4_t * op1, vbool8_t op2, vint32m4_t op3, vint32m4_t op4, const int32_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_i32mf2_m)))
-void vlseg2e32(vint32mf2_t * op0, vint32mf2_t * op1, vbool64_t op2, vint32mf2_t op3, vint32mf2_t op4, const int32_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_u32m1_m)))
-void vlseg2e32(vuint32m1_t * op0, vuint32m1_t * op1, vbool32_t op2, vuint32m1_t op3, vuint32m1_t op4, const uint32_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_u32m2_m)))
-void vlseg2e32(vuint32m2_t * op0, vuint32m2_t * op1, vbool16_t op2, vuint32m2_t op3, vuint32m2_t op4, const uint32_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_u32m4_m)))
-void vlseg2e32(vuint32m4_t * op0, vuint32m4_t * op1, vbool8_t op2, vuint32m4_t op3, vuint32m4_t op4, const uint32_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_u32mf2_m)))
-void vlseg2e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vbool64_t op2, vuint32mf2_t op3, vuint32mf2_t op4, const uint32_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32_v_i32m1_m)))
-void vlseg3e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vbool32_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, const int32_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32_v_i32m2_m)))
-void vlseg3e32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vbool16_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, const int32_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32_v_i32mf2_m)))
-void vlseg3e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vbool64_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, const int32_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32_v_u32m1_m)))
-void vlseg3e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vbool32_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, const uint32_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32_v_u32m2_m)))
-void vlseg3e32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vbool16_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, const uint32_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32_v_u32mf2_m)))
-void vlseg3e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vbool64_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, const uint32_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32_v_i32m1_m)))
-void vlseg4e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vbool32_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, const int32_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32_v_i32m2_m)))
-void vlseg4e32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, vbool16_t op4, vint32m2_t op5, vint32m2_t op6, vint32m2_t op7, vint32m2_t op8, const int32_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32_v_i32mf2_m)))
-void vlseg4e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vbool64_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, const int32_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32_v_u32m1_m)))
-void vlseg4e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vbool32_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, const uint32_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32_v_u32m2_m)))
-void vlseg4e32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, vbool16_t op4, vuint32m2_t op5, vuint32m2_t op6, vuint32m2_t op7, vuint32m2_t op8, const uint32_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32_v_u32mf2_m)))
-void vlseg4e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vbool64_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, const uint32_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32_v_i32m1_m)))
-void vlseg5e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vbool32_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, const int32_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32_v_i32mf2_m)))
-void vlseg5e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vbool64_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, const int32_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32_v_u32m1_m)))
-void vlseg5e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vbool32_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, const uint32_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32_v_u32mf2_m)))
-void vlseg5e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vbool64_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, const uint32_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32_v_i32m1_m)))
-void vlseg6e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vbool32_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, const int32_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32_v_i32mf2_m)))
-void vlseg6e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vbool64_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, const int32_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32_v_u32m1_m)))
-void vlseg6e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vbool32_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, const uint32_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32_v_u32mf2_m)))
-void vlseg6e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vbool64_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, const uint32_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32_v_i32m1_m)))
-void vlseg7e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vbool32_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, const int32_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32_v_i32mf2_m)))
-void vlseg7e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vbool64_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, const int32_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32_v_u32m1_m)))
-void vlseg7e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vbool32_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, const uint32_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32_v_u32mf2_m)))
-void vlseg7e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vbool64_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, const uint32_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32_v_i32m1_m)))
-void vlseg8e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, vbool32_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, vint32m1_t op15, vint32m1_t op16, const int32_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32_v_i32mf2_m)))
-void vlseg8e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, vbool64_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, vint32mf2_t op15, vint32mf2_t op16, const int32_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32_v_u32m1_m)))
-void vlseg8e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, vbool32_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, vuint32m1_t op15, vuint32m1_t op16, const uint32_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32_v_u32mf2_m)))
-void vlseg8e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, vbool64_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, vuint32mf2_t op15, vuint32mf2_t op16, const uint32_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64_v_i64m1_m)))
-void vlseg2e64(vint64m1_t * op0, vint64m1_t * op1, vbool64_t op2, vint64m1_t op3, vint64m1_t op4, const int64_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64_v_i64m2_m)))
-void vlseg2e64(vint64m2_t * op0, vint64m2_t * op1, vbool32_t op2, vint64m2_t op3, vint64m2_t op4, const int64_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64_v_i64m4_m)))
-void vlseg2e64(vint64m4_t * op0, vint64m4_t * op1, vbool16_t op2, vint64m4_t op3, vint64m4_t op4, const int64_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64_v_u64m1_m)))
-void vlseg2e64(vuint64m1_t * op0, vuint64m1_t * op1, vbool64_t op2, vuint64m1_t op3, vuint64m1_t op4, const uint64_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64_v_u64m2_m)))
-void vlseg2e64(vuint64m2_t * op0, vuint64m2_t * op1, vbool32_t op2, vuint64m2_t op3, vuint64m2_t op4, const uint64_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64_v_u64m4_m)))
-void vlseg2e64(vuint64m4_t * op0, vuint64m4_t * op1, vbool16_t op2, vuint64m4_t op3, vuint64m4_t op4, const uint64_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64_v_i64m1_m)))
-void vlseg3e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vbool64_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, const int64_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64_v_i64m2_m)))
-void vlseg3e64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vbool32_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, const int64_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64_v_u64m1_m)))
-void vlseg3e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vbool64_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, const uint64_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64_v_u64m2_m)))
-void vlseg3e64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vbool32_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, const uint64_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64_v_i64m1_m)))
-void vlseg4e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vbool64_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, const int64_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64_v_i64m2_m)))
-void vlseg4e64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, vbool32_t op4, vint64m2_t op5, vint64m2_t op6, vint64m2_t op7, vint64m2_t op8, const int64_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64_v_u64m1_m)))
-void vlseg4e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vbool64_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, const uint64_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64_v_u64m2_m)))
-void vlseg4e64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, vbool32_t op4, vuint64m2_t op5, vuint64m2_t op6, vuint64m2_t op7, vuint64m2_t op8, const uint64_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e64_v_i64m1_m)))
-void vlseg5e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vbool64_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, const int64_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e64_v_u64m1_m)))
-void vlseg5e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vbool64_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, const uint64_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e64_v_i64m1_m)))
-void vlseg6e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vbool64_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, const int64_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e64_v_u64m1_m)))
-void vlseg6e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vbool64_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, const uint64_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e64_v_i64m1_m)))
-void vlseg7e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vbool64_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, const int64_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e64_v_u64m1_m)))
-void vlseg7e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vbool64_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, const uint64_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e64_v_i64m1_m)))
-void vlseg8e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, vbool64_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, vint64m1_t op15, vint64m1_t op16, const int64_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e64_v_u64m1_m)))
-void vlseg8e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, vbool64_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, vuint64m1_t op15, vuint64m1_t op16, const uint64_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8ff_v_i8m1_m)))
-void vlseg3e8ff(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vbool8_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, const int8_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8ff_v_i8m2_m)))
-void vlseg3e8ff(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vbool4_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, const int8_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8ff_v_i8mf2_m)))
-void vlseg3e8ff(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vbool16_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, const int8_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8ff_v_i8mf4_m)))
-void vlseg3e8ff(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vbool32_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, const int8_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8ff_v_i8mf8_m)))
-void vlseg3e8ff(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vbool64_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, const int8_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8ff_v_u8m1_m)))
-void vlseg3e8ff(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vbool8_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, const uint8_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8ff_v_u8m2_m)))
-void vlseg3e8ff(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vbool4_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, const uint8_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8ff_v_u8mf2_m)))
-void vlseg3e8ff(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vbool16_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, const uint8_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8ff_v_u8mf4_m)))
-void vlseg3e8ff(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vbool32_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, const uint8_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8ff_v_u8mf8_m)))
-void vlseg3e8ff(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vbool64_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, const uint8_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8ff_v_i8m1_m)))
-void vlseg4e8ff(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vbool8_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, const int8_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8ff_v_i8m2_m)))
-void vlseg4e8ff(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, vbool4_t op4, vint8m2_t op5, vint8m2_t op6, vint8m2_t op7, vint8m2_t op8, const int8_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8ff_v_i8mf2_m)))
-void vlseg4e8ff(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vbool16_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, const int8_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8ff_v_i8mf4_m)))
-void vlseg4e8ff(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vbool32_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, const int8_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8ff_v_i8mf8_m)))
-void vlseg4e8ff(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vbool64_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, const int8_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8ff_v_u8m1_m)))
-void vlseg4e8ff(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vbool8_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, const uint8_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8ff_v_u8m2_m)))
-void vlseg4e8ff(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, vbool4_t op4, vuint8m2_t op5, vuint8m2_t op6, vuint8m2_t op7, vuint8m2_t op8, const uint8_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8ff_v_u8mf2_m)))
-void vlseg4e8ff(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vbool16_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, const uint8_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8ff_v_u8mf4_m)))
-void vlseg4e8ff(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vbool32_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, const uint8_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8ff_v_u8mf8_m)))
-void vlseg4e8ff(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vbool64_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, const uint8_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8ff_v_i8m1_m)))
-void vlseg5e8ff(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vbool8_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, const int8_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8ff_v_i8mf2_m)))
-void vlseg5e8ff(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vbool16_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, const int8_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8ff_v_i8mf4_m)))
-void vlseg5e8ff(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vbool32_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, const int8_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8ff_v_i8mf8_m)))
-void vlseg5e8ff(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vbool64_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, const int8_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8ff_v_u8m1_m)))
-void vlseg5e8ff(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vbool8_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, const uint8_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8ff_v_u8mf2_m)))
-void vlseg5e8ff(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vbool16_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, const uint8_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8ff_v_u8mf4_m)))
-void vlseg5e8ff(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vbool32_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, const uint8_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8ff_v_u8mf8_m)))
-void vlseg5e8ff(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vbool64_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, const uint8_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8ff_v_i8m1_m)))
-void vlseg6e8ff(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vbool8_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, const int8_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8ff_v_i8mf2_m)))
-void vlseg6e8ff(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vbool16_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, const int8_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8ff_v_i8mf4_m)))
-void vlseg6e8ff(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vbool32_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, const int8_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8ff_v_i8mf8_m)))
-void vlseg6e8ff(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vbool64_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, const int8_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8ff_v_u8m1_m)))
-void vlseg6e8ff(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vbool8_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, const uint8_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8ff_v_u8mf2_m)))
-void vlseg6e8ff(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vbool16_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, const uint8_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8ff_v_u8mf4_m)))
-void vlseg6e8ff(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vbool32_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, const uint8_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8ff_v_u8mf8_m)))
-void vlseg6e8ff(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vbool64_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, const uint8_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8ff_v_i8m1_m)))
-void vlseg7e8ff(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vbool8_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, const int8_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8ff_v_i8mf2_m)))
-void vlseg7e8ff(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vbool16_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, const int8_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8ff_v_i8mf4_m)))
-void vlseg7e8ff(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vbool32_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, const int8_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8ff_v_i8mf8_m)))
-void vlseg7e8ff(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vbool64_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, const int8_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8ff_v_u8m1_m)))
-void vlseg7e8ff(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vbool8_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, const uint8_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8ff_v_u8mf2_m)))
-void vlseg7e8ff(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vbool16_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, const uint8_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8ff_v_u8mf4_m)))
-void vlseg7e8ff(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vbool32_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, const uint8_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8ff_v_u8mf8_m)))
-void vlseg7e8ff(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vbool64_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, const uint8_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8ff_v_i8m1_m)))
-void vlseg8e8ff(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, vbool8_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, vint8m1_t op15, vint8m1_t op16, const int8_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8ff_v_i8mf2_m)))
-void vlseg8e8ff(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, vbool16_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, vint8mf2_t op15, vint8mf2_t op16, const int8_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8ff_v_i8mf4_m)))
-void vlseg8e8ff(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, vbool32_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, vint8mf4_t op15, vint8mf4_t op16, const int8_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8ff_v_i8mf8_m)))
-void vlseg8e8ff(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, vbool64_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, vint8mf8_t op15, vint8mf8_t op16, const int8_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8ff_v_u8m1_m)))
-void vlseg8e8ff(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, vbool8_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, vuint8m1_t op15, vuint8m1_t op16, const uint8_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8ff_v_u8mf2_m)))
-void vlseg8e8ff(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, vbool16_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, vuint8mf2_t op15, vuint8mf2_t op16, const uint8_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8ff_v_u8mf4_m)))
-void vlseg8e8ff(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, vbool32_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, vuint8mf4_t op15, vuint8mf4_t op16, const uint8_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8ff_v_u8mf8_m)))
-void vlseg8e8ff(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, vbool64_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, vuint8mf8_t op15, vuint8mf8_t op16, const uint8_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_i16m1_m)))
-void vlseg2e16ff(vint16m1_t * op0, vint16m1_t * op1, vbool16_t op2, vint16m1_t op3, vint16m1_t op4, const int16_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_i16m2_m)))
-void vlseg2e16ff(vint16m2_t * op0, vint16m2_t * op1, vbool8_t op2, vint16m2_t op3, vint16m2_t op4, const int16_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_i16m4_m)))
-void vlseg2e16ff(vint16m4_t * op0, vint16m4_t * op1, vbool4_t op2, vint16m4_t op3, vint16m4_t op4, const int16_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_i16mf2_m)))
-void vlseg2e16ff(vint16mf2_t * op0, vint16mf2_t * op1, vbool32_t op2, vint16mf2_t op3, vint16mf2_t op4, const int16_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_i16mf4_m)))
-void vlseg2e16ff(vint16mf4_t * op0, vint16mf4_t * op1, vbool64_t op2, vint16mf4_t op3, vint16mf4_t op4, const int16_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_u16m1_m)))
-void vlseg2e16ff(vuint16m1_t * op0, vuint16m1_t * op1, vbool16_t op2, vuint16m1_t op3, vuint16m1_t op4, const uint16_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_u16m2_m)))
-void vlseg2e16ff(vuint16m2_t * op0, vuint16m2_t * op1, vbool8_t op2, vuint16m2_t op3, vuint16m2_t op4, const uint16_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_u16m4_m)))
-void vlseg2e16ff(vuint16m4_t * op0, vuint16m4_t * op1, vbool4_t op2, vuint16m4_t op3, vuint16m4_t op4, const uint16_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_u16mf2_m)))
-void vlseg2e16ff(vuint16mf2_t * op0, vuint16mf2_t * op1, vbool32_t op2, vuint16mf2_t op3, vuint16mf2_t op4, const uint16_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_u16mf4_m)))
-void vlseg2e16ff(vuint16mf4_t * op0, vuint16mf4_t * op1, vbool64_t op2, vuint16mf4_t op3, vuint16mf4_t op4, const uint16_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_i16m1_m)))
-void vlseg3e16ff(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vbool16_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, const int16_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_i16m2_m)))
-void vlseg3e16ff(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vbool8_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, const int16_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_i16mf2_m)))
-void vlseg3e16ff(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vbool32_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, const int16_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_i16mf4_m)))
-void vlseg3e16ff(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vbool64_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, const int16_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_u16m1_m)))
-void vlseg3e16ff(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vbool16_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, const uint16_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_u16m2_m)))
-void vlseg3e16ff(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vbool8_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, const uint16_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_u16mf2_m)))
-void vlseg3e16ff(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vbool32_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, const uint16_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_u16mf4_m)))
-void vlseg3e16ff(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vbool64_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, const uint16_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_i16m1_m)))
-void vlseg4e16ff(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vbool16_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, const int16_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_i16m2_m)))
-void vlseg4e16ff(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, vbool8_t op4, vint16m2_t op5, vint16m2_t op6, vint16m2_t op7, vint16m2_t op8, const int16_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_i16mf2_m)))
-void vlseg4e16ff(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vbool32_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, const int16_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_i16mf4_m)))
-void vlseg4e16ff(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vbool64_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, const int16_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_u16m1_m)))
-void vlseg4e16ff(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vbool16_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, const uint16_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_u16m2_m)))
-void vlseg4e16ff(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, vbool8_t op4, vuint16m2_t op5, vuint16m2_t op6, vuint16m2_t op7, vuint16m2_t op8, const uint16_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_u16mf2_m)))
-void vlseg4e16ff(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vbool32_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, const uint16_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_u16mf4_m)))
-void vlseg4e16ff(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vbool64_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, const uint16_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16ff_v_i16m1_m)))
-void vlseg5e16ff(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vbool16_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, const int16_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16ff_v_i16mf2_m)))
-void vlseg5e16ff(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vbool32_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, const int16_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16ff_v_i16mf4_m)))
-void vlseg5e16ff(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vbool64_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, const int16_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16ff_v_u16m1_m)))
-void vlseg5e16ff(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vbool16_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, const uint16_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16ff_v_u16mf2_m)))
-void vlseg5e16ff(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vbool32_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, const uint16_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16ff_v_u16mf4_m)))
-void vlseg5e16ff(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vbool64_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, const uint16_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16ff_v_i16m1_m)))
-void vlseg6e16ff(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vbool16_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, const int16_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16ff_v_i16mf2_m)))
-void vlseg6e16ff(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vbool32_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, const int16_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16ff_v_i16mf4_m)))
-void vlseg6e16ff(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vbool64_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, const int16_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16ff_v_u16m1_m)))
-void vlseg6e16ff(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vbool16_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, const uint16_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16ff_v_u16mf2_m)))
-void vlseg6e16ff(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vbool32_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, const uint16_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16ff_v_u16mf4_m)))
-void vlseg6e16ff(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vbool64_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, const uint16_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16ff_v_i16m1_m)))
-void vlseg7e16ff(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vbool16_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, const int16_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16ff_v_i16mf2_m)))
-void vlseg7e16ff(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vbool32_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, const int16_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16ff_v_i16mf4_m)))
-void vlseg7e16ff(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vbool64_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, const int16_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16ff_v_u16m1_m)))
-void vlseg7e16ff(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vbool16_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, const uint16_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16ff_v_u16mf2_m)))
-void vlseg7e16ff(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vbool32_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, const uint16_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16ff_v_u16mf4_m)))
-void vlseg7e16ff(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vbool64_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, const uint16_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16ff_v_i16m1_m)))
-void vlseg8e16ff(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, vbool16_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, vint16m1_t op15, vint16m1_t op16, const int16_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16ff_v_i16mf2_m)))
-void vlseg8e16ff(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, vbool32_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, vint16mf2_t op15, vint16mf2_t op16, const int16_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16ff_v_i16mf4_m)))
-void vlseg8e16ff(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, vbool64_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, vint16mf4_t op15, vint16mf4_t op16, const int16_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16ff_v_u16m1_m)))
-void vlseg8e16ff(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, vbool16_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, vuint16m1_t op15, vuint16m1_t op16, const uint16_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16ff_v_u16mf2_m)))
-void vlseg8e16ff(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, vbool32_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, vuint16mf2_t op15, vuint16mf2_t op16, const uint16_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16ff_v_u16mf4_m)))
-void vlseg8e16ff(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, vbool64_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, vuint16mf4_t op15, vuint16mf4_t op16, const uint16_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_i32m1_m)))
-void vlseg2e32ff(vint32m1_t * op0, vint32m1_t * op1, vbool32_t op2, vint32m1_t op3, vint32m1_t op4, const int32_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_i32m2_m)))
-void vlseg2e32ff(vint32m2_t * op0, vint32m2_t * op1, vbool16_t op2, vint32m2_t op3, vint32m2_t op4, const int32_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_i32m4_m)))
-void vlseg2e32ff(vint32m4_t * op0, vint32m4_t * op1, vbool8_t op2, vint32m4_t op3, vint32m4_t op4, const int32_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_i32mf2_m)))
-void vlseg2e32ff(vint32mf2_t * op0, vint32mf2_t * op1, vbool64_t op2, vint32mf2_t op3, vint32mf2_t op4, const int32_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_i8m1_m)))
-void vlseg2e8ff(vint8m1_t * op0, vint8m1_t * op1, vbool8_t op2, vint8m1_t op3, vint8m1_t op4, const int8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_i8m2_m)))
-void vlseg2e8ff(vint8m2_t * op0, vint8m2_t * op1, vbool4_t op2, vint8m2_t op3, vint8m2_t op4, const int8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_i8m4_m)))
-void vlseg2e8ff(vint8m4_t * op0, vint8m4_t * op1, vbool2_t op2, vint8m4_t op3, vint8m4_t op4, const int8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_i8mf2_m)))
-void vlseg2e8ff(vint8mf2_t * op0, vint8mf2_t * op1, vbool16_t op2, vint8mf2_t op3, vint8mf2_t op4, const int8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_i8mf4_m)))
-void vlseg2e8ff(vint8mf4_t * op0, vint8mf4_t * op1, vbool32_t op2, vint8mf4_t op3, vint8mf4_t op4, const int8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_i8mf8_m)))
-void vlseg2e8ff(vint8mf8_t * op0, vint8mf8_t * op1, vbool64_t op2, vint8mf8_t op3, vint8mf8_t op4, const int8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_u32m1_m)))
-void vlseg2e32ff(vuint32m1_t * op0, vuint32m1_t * op1, vbool32_t op2, vuint32m1_t op3, vuint32m1_t op4, const uint32_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_u32m2_m)))
-void vlseg2e32ff(vuint32m2_t * op0, vuint32m2_t * op1, vbool16_t op2, vuint32m2_t op3, vuint32m2_t op4, const uint32_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_u32m4_m)))
-void vlseg2e32ff(vuint32m4_t * op0, vuint32m4_t * op1, vbool8_t op2, vuint32m4_t op3, vuint32m4_t op4, const uint32_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_u32mf2_m)))
-void vlseg2e32ff(vuint32mf2_t * op0, vuint32mf2_t * op1, vbool64_t op2, vuint32mf2_t op3, vuint32mf2_t op4, const uint32_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32ff_v_i32m1_m)))
-void vlseg3e32ff(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vbool32_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, const int32_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32ff_v_i32m2_m)))
-void vlseg3e32ff(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vbool16_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, const int32_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32ff_v_i32mf2_m)))
-void vlseg3e32ff(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vbool64_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, const int32_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32ff_v_u32m1_m)))
-void vlseg3e32ff(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vbool32_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, const uint32_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32ff_v_u32m2_m)))
-void vlseg3e32ff(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vbool16_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, const uint32_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32ff_v_u32mf2_m)))
-void vlseg3e32ff(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vbool64_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, const uint32_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32ff_v_i32m1_m)))
-void vlseg4e32ff(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vbool32_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, const int32_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32ff_v_i32m2_m)))
-void vlseg4e32ff(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, vbool16_t op4, vint32m2_t op5, vint32m2_t op6, vint32m2_t op7, vint32m2_t op8, const int32_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32ff_v_i32mf2_m)))
-void vlseg4e32ff(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vbool64_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, const int32_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32ff_v_u32m1_m)))
-void vlseg4e32ff(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vbool32_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, const uint32_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32ff_v_u32m2_m)))
-void vlseg4e32ff(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, vbool16_t op4, vuint32m2_t op5, vuint32m2_t op6, vuint32m2_t op7, vuint32m2_t op8, const uint32_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32ff_v_u32mf2_m)))
-void vlseg4e32ff(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vbool64_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, const uint32_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32ff_v_i32m1_m)))
-void vlseg5e32ff(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vbool32_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, const int32_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32ff_v_i32mf2_m)))
-void vlseg5e32ff(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vbool64_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, const int32_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32ff_v_u32m1_m)))
-void vlseg5e32ff(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vbool32_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, const uint32_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32ff_v_u32mf2_m)))
-void vlseg5e32ff(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vbool64_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, const uint32_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32ff_v_i32m1_m)))
-void vlseg6e32ff(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vbool32_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, const int32_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32ff_v_i32mf2_m)))
-void vlseg6e32ff(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vbool64_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, const int32_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32ff_v_u32m1_m)))
-void vlseg6e32ff(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vbool32_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, const uint32_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32ff_v_u32mf2_m)))
-void vlseg6e32ff(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vbool64_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, const uint32_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32ff_v_i32m1_m)))
-void vlseg7e32ff(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vbool32_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, const int32_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32ff_v_i32mf2_m)))
-void vlseg7e32ff(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vbool64_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, const int32_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_u8m1_m)))
-void vlseg2e8ff(vuint8m1_t * op0, vuint8m1_t * op1, vbool8_t op2, vuint8m1_t op3, vuint8m1_t op4, const uint8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_u8m2_m)))
-void vlseg2e8ff(vuint8m2_t * op0, vuint8m2_t * op1, vbool4_t op2, vuint8m2_t op3, vuint8m2_t op4, const uint8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_u8m4_m)))
-void vlseg2e8ff(vuint8m4_t * op0, vuint8m4_t * op1, vbool2_t op2, vuint8m4_t op3, vuint8m4_t op4, const uint8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_u8mf2_m)))
-void vlseg2e8ff(vuint8mf2_t * op0, vuint8mf2_t * op1, vbool16_t op2, vuint8mf2_t op3, vuint8mf2_t op4, const uint8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_u8mf4_m)))
-void vlseg2e8ff(vuint8mf4_t * op0, vuint8mf4_t * op1, vbool32_t op2, vuint8mf4_t op3, vuint8mf4_t op4, const uint8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_u8mf8_m)))
-void vlseg2e8ff(vuint8mf8_t * op0, vuint8mf8_t * op1, vbool64_t op2, vuint8mf8_t op3, vuint8mf8_t op4, const uint8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32ff_v_u32m1_m)))
-void vlseg7e32ff(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vbool32_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, const uint32_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32ff_v_u32mf2_m)))
-void vlseg7e32ff(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vbool64_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, const uint32_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32ff_v_i32m1_m)))
-void vlseg8e32ff(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, vbool32_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, vint32m1_t op15, vint32m1_t op16, const int32_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32ff_v_i32mf2_m)))
-void vlseg8e32ff(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, vbool64_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, vint32mf2_t op15, vint32mf2_t op16, const int32_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32ff_v_u32m1_m)))
-void vlseg8e32ff(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, vbool32_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, vuint32m1_t op15, vuint32m1_t op16, const uint32_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32ff_v_u32mf2_m)))
-void vlseg8e32ff(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, vbool64_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, vuint32mf2_t op15, vuint32mf2_t op16, const uint32_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64ff_v_i64m1_m)))
-void vlseg2e64ff(vint64m1_t * op0, vint64m1_t * op1, vbool64_t op2, vint64m1_t op3, vint64m1_t op4, const int64_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64ff_v_i64m2_m)))
-void vlseg2e64ff(vint64m2_t * op0, vint64m2_t * op1, vbool32_t op2, vint64m2_t op3, vint64m2_t op4, const int64_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64ff_v_i64m4_m)))
-void vlseg2e64ff(vint64m4_t * op0, vint64m4_t * op1, vbool16_t op2, vint64m4_t op3, vint64m4_t op4, const int64_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64ff_v_u64m1_m)))
-void vlseg2e64ff(vuint64m1_t * op0, vuint64m1_t * op1, vbool64_t op2, vuint64m1_t op3, vuint64m1_t op4, const uint64_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64ff_v_u64m2_m)))
-void vlseg2e64ff(vuint64m2_t * op0, vuint64m2_t * op1, vbool32_t op2, vuint64m2_t op3, vuint64m2_t op4, const uint64_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64ff_v_u64m4_m)))
-void vlseg2e64ff(vuint64m4_t * op0, vuint64m4_t * op1, vbool16_t op2, vuint64m4_t op3, vuint64m4_t op4, const uint64_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64ff_v_i64m1_m)))
-void vlseg3e64ff(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vbool64_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, const int64_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64ff_v_i64m2_m)))
-void vlseg3e64ff(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vbool32_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, const int64_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64ff_v_u64m1_m)))
-void vlseg3e64ff(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vbool64_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, const uint64_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64ff_v_u64m2_m)))
-void vlseg3e64ff(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vbool32_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, const uint64_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64ff_v_i64m1_m)))
-void vlseg4e64ff(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vbool64_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, const int64_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64ff_v_i64m2_m)))
-void vlseg4e64ff(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, vbool32_t op4, vint64m2_t op5, vint64m2_t op6, vint64m2_t op7, vint64m2_t op8, const int64_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64ff_v_u64m1_m)))
-void vlseg4e64ff(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vbool64_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, const uint64_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64ff_v_u64m2_m)))
-void vlseg4e64ff(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, vbool32_t op4, vuint64m2_t op5, vuint64m2_t op6, vuint64m2_t op7, vuint64m2_t op8, const uint64_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e64ff_v_i64m1_m)))
-void vlseg5e64ff(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vbool64_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, const int64_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_i8m1_m)))
-void vlsseg2e8(vint8m1_t * op0, vint8m1_t * op1, vbool8_t op2, vint8m1_t op3, vint8m1_t op4, const int8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_i8m2_m)))
-void vlsseg2e8(vint8m2_t * op0, vint8m2_t * op1, vbool4_t op2, vint8m2_t op3, vint8m2_t op4, const int8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_i8m4_m)))
-void vlsseg2e8(vint8m4_t * op0, vint8m4_t * op1, vbool2_t op2, vint8m4_t op3, vint8m4_t op4, const int8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_i8mf2_m)))
-void vlsseg2e8(vint8mf2_t * op0, vint8mf2_t * op1, vbool16_t op2, vint8mf2_t op3, vint8mf2_t op4, const int8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_i8mf4_m)))
-void vlsseg2e8(vint8mf4_t * op0, vint8mf4_t * op1, vbool32_t op2, vint8mf4_t op3, vint8mf4_t op4, const int8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_i8mf8_m)))
-void vlsseg2e8(vint8mf8_t * op0, vint8mf8_t * op1, vbool64_t op2, vint8mf8_t op3, vint8mf8_t op4, const int8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e64ff_v_u64m1_m)))
-void vlseg5e64ff(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vbool64_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, const uint64_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e64ff_v_i64m1_m)))
-void vlseg6e64ff(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vbool64_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, const int64_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e64ff_v_u64m1_m)))
-void vlseg6e64ff(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vbool64_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, const uint64_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e64ff_v_i64m1_m)))
-void vlseg7e64ff(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vbool64_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, const int64_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e64ff_v_u64m1_m)))
-void vlseg7e64ff(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vbool64_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, const uint64_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e64ff_v_i64m1_m)))
-void vlseg8e64ff(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, vbool64_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, vint64m1_t op15, vint64m1_t op16, const int64_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e64ff_v_u64m1_m)))
-void vlseg8e64ff(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, vbool64_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, vuint64m1_t op15, vuint64m1_t op16, const uint64_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_u8m1_m)))
-void vlsseg2e8(vuint8m1_t * op0, vuint8m1_t * op1, vbool8_t op2, vuint8m1_t op3, vuint8m1_t op4, const uint8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_u8m2_m)))
-void vlsseg2e8(vuint8m2_t * op0, vuint8m2_t * op1, vbool4_t op2, vuint8m2_t op3, vuint8m2_t op4, const uint8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_u8m4_m)))
-void vlsseg2e8(vuint8m4_t * op0, vuint8m4_t * op1, vbool2_t op2, vuint8m4_t op3, vuint8m4_t op4, const uint8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_u8mf2_m)))
-void vlsseg2e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vbool16_t op2, vuint8mf2_t op3, vuint8mf2_t op4, const uint8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_u8mf4_m)))
-void vlsseg2e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vbool32_t op2, vuint8mf4_t op3, vuint8mf4_t op4, const uint8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_u8mf8_m)))
-void vlsseg2e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vbool64_t op2, vuint8mf8_t op3, vuint8mf8_t op4, const uint8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8m1)))
-void vluxseg2ei8(vint8m1_t * op0, vint8m1_t * op1, const int8_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8m1_m)))
-void vluxseg2ei8(vint8m1_t * op0, vint8m1_t * op1, vbool8_t op2, vint8m1_t op3, vint8m1_t op4, const int8_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8m2)))
-void vluxseg2ei8(vint8m2_t * op0, vint8m2_t * op1, const int8_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8m2_m)))
-void vluxseg2ei8(vint8m2_t * op0, vint8m2_t * op1, vbool4_t op2, vint8m2_t op3, vint8m2_t op4, const int8_t * op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8m4)))
-void vluxseg2ei8(vint8m4_t * op0, vint8m4_t * op1, const int8_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8m4_m)))
-void vluxseg2ei8(vint8m4_t * op0, vint8m4_t * op1, vbool2_t op2, vint8m4_t op3, vint8m4_t op4, const int8_t * op5, vuint8m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8mf2)))
-void vluxseg2ei8(vint8mf2_t * op0, vint8mf2_t * op1, const int8_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8mf2_m)))
-void vluxseg2ei8(vint8mf2_t * op0, vint8mf2_t * op1, vbool16_t op2, vint8mf2_t op3, vint8mf2_t op4, const int8_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8mf4)))
-void vluxseg2ei8(vint8mf4_t * op0, vint8mf4_t * op1, const int8_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8mf4_m)))
-void vluxseg2ei8(vint8mf4_t * op0, vint8mf4_t * op1, vbool32_t op2, vint8mf4_t op3, vint8mf4_t op4, const int8_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8mf8)))
-void vluxseg2ei8(vint8mf8_t * op0, vint8mf8_t * op1, const int8_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8mf8_m)))
-void vluxseg2ei8(vint8mf8_t * op0, vint8mf8_t * op1, vbool64_t op2, vint8mf8_t op3, vint8mf8_t op4, const int8_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e8_v_i8m1_m)))
-void vlsseg3e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vbool8_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, const int8_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e8_v_i8m2_m)))
-void vlsseg3e8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vbool4_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, const int8_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e8_v_i8mf2_m)))
-void vlsseg3e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vbool16_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, const int8_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e8_v_i8mf4_m)))
-void vlsseg3e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vbool32_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, const int8_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e8_v_i8mf8_m)))
-void vlsseg3e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vbool64_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, const int8_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8m1)))
-void vluxseg2ei8(vuint8m1_t * op0, vuint8m1_t * op1, const uint8_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8m1_m)))
-void vluxseg2ei8(vuint8m1_t * op0, vuint8m1_t * op1, vbool8_t op2, vuint8m1_t op3, vuint8m1_t op4, const uint8_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8m2)))
-void vluxseg2ei8(vuint8m2_t * op0, vuint8m2_t * op1, const uint8_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8m2_m)))
-void vluxseg2ei8(vuint8m2_t * op0, vuint8m2_t * op1, vbool4_t op2, vuint8m2_t op3, vuint8m2_t op4, const uint8_t * op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8m4)))
-void vluxseg2ei8(vuint8m4_t * op0, vuint8m4_t * op1, const uint8_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8m4_m)))
-void vluxseg2ei8(vuint8m4_t * op0, vuint8m4_t * op1, vbool2_t op2, vuint8m4_t op3, vuint8m4_t op4, const uint8_t * op5, vuint8m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8mf2)))
-void vluxseg2ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, const uint8_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8mf2_m)))
-void vluxseg2ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vbool16_t op2, vuint8mf2_t op3, vuint8mf2_t op4, const uint8_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8mf4)))
-void vluxseg2ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, const uint8_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8mf4_m)))
-void vluxseg2ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vbool32_t op2, vuint8mf4_t op3, vuint8mf4_t op4, const uint8_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8mf8)))
-void vluxseg2ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, const uint8_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8mf8_m)))
-void vluxseg2ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vbool64_t op2, vuint8mf8_t op3, vuint8mf8_t op4, const uint8_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e8_v_u8m1_m)))
-void vlsseg3e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vbool8_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, const uint8_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e8_v_u8m2_m)))
-void vlsseg3e8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vbool4_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, const uint8_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e8_v_u8mf2_m)))
-void vlsseg3e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vbool16_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, const uint8_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e8_v_u8mf4_m)))
-void vlsseg3e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vbool32_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, const uint8_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e8_v_u8mf8_m)))
-void vlsseg3e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vbool64_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, const uint8_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e8_v_i8m1_m)))
-void vlsseg4e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vbool8_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, const int8_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e8_v_i8m2_m)))
-void vlsseg4e8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, vbool4_t op4, vint8m2_t op5, vint8m2_t op6, vint8m2_t op7, vint8m2_t op8, const int8_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e8_v_i8mf2_m)))
-void vlsseg4e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vbool16_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, const int8_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e8_v_i8mf4_m)))
-void vlsseg4e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vbool32_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, const int8_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e8_v_i8mf8_m)))
-void vlsseg4e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vbool64_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, const int8_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e8_v_u8m1_m)))
-void vlsseg4e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vbool8_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, const uint8_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e8_v_u8m2_m)))
-void vlsseg4e8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, vbool4_t op4, vuint8m2_t op5, vuint8m2_t op6, vuint8m2_t op7, vuint8m2_t op8, const uint8_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e8_v_u8mf2_m)))
-void vlsseg4e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vbool16_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, const uint8_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e8_v_u8mf4_m)))
-void vlsseg4e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vbool32_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, const uint8_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e8_v_u8mf8_m)))
-void vlsseg4e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vbool64_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, const uint8_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e8_v_i8m1_m)))
-void vlsseg5e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vbool8_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, const int8_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e8_v_i8mf2_m)))
-void vlsseg5e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vbool16_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, const int8_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e8_v_i8mf4_m)))
-void vlsseg5e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vbool32_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, const int8_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e8_v_i8mf8_m)))
-void vlsseg5e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vbool64_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, const int8_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e8_v_u8m1_m)))
-void vlsseg5e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vbool8_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, const uint8_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e8_v_u8mf2_m)))
-void vlsseg5e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vbool16_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, const uint8_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e8_v_u8mf4_m)))
-void vlsseg5e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vbool32_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, const uint8_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e8_v_u8mf8_m)))
-void vlsseg5e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vbool64_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, const uint8_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e8_v_i8m1_m)))
-void vlsseg6e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vbool8_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, const int8_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e8_v_i8mf2_m)))
-void vlsseg6e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vbool16_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, const int8_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e8_v_i8mf4_m)))
-void vlsseg6e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vbool32_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, const int8_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e8_v_i8mf8_m)))
-void vlsseg6e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vbool64_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, const int8_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e8_v_u8m1_m)))
-void vlsseg6e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vbool8_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, const uint8_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e8_v_u8mf2_m)))
-void vlsseg6e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vbool16_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, const uint8_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e8_v_u8mf4_m)))
-void vlsseg6e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vbool32_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, const uint8_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e8_v_u8mf8_m)))
-void vlsseg6e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vbool64_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, const uint8_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e8_v_i8m1_m)))
-void vlsseg7e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vbool8_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, const int8_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e8_v_i8mf2_m)))
-void vlsseg7e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vbool16_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, const int8_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e8_v_i8mf4_m)))
-void vlsseg7e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vbool32_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, const int8_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e8_v_i8mf8_m)))
-void vlsseg7e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vbool64_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, const int8_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e8_v_u8m1_m)))
-void vlsseg7e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vbool8_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, const uint8_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e8_v_u8mf2_m)))
-void vlsseg7e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vbool16_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, const uint8_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e8_v_u8mf4_m)))
-void vlsseg7e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vbool32_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, const uint8_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e8_v_u8mf8_m)))
-void vlsseg7e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vbool64_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, const uint8_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e8_v_i8m1_m)))
-void vlsseg8e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, vbool8_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, vint8m1_t op15, vint8m1_t op16, const int8_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e8_v_i8mf2_m)))
-void vlsseg8e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, vbool16_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, vint8mf2_t op15, vint8mf2_t op16, const int8_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e8_v_i8mf4_m)))
-void vlsseg8e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, vbool32_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, vint8mf4_t op15, vint8mf4_t op16, const int8_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e8_v_i8mf8_m)))
-void vlsseg8e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, vbool64_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, vint8mf8_t op15, vint8mf8_t op16, const int8_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8m1)))
-void vsseg2e8(int8_t * op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8m1_m)))
-void vsseg2e8(vbool8_t op0, int8_t * op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8m2)))
-void vsseg2e8(int8_t * op0, vint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8m2_m)))
-void vsseg2e8(vbool4_t op0, int8_t * op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8m4)))
-void vsseg2e8(int8_t * op0, vint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8m4_m)))
-void vsseg2e8(vbool2_t op0, int8_t * op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8mf2)))
-void vsseg2e8(int8_t * op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8mf2_m)))
-void vsseg2e8(vbool16_t op0, int8_t * op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8mf4)))
-void vsseg2e8(int8_t * op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8mf4_m)))
-void vsseg2e8(vbool32_t op0, int8_t * op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8mf8)))
-void vsseg2e8(int8_t * op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8mf8_m)))
-void vsseg2e8(vbool64_t op0, int8_t * op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e8_v_u8m1_m)))
-void vlsseg8e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, vbool8_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, vuint8m1_t op15, vuint8m1_t op16, const uint8_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e8_v_u8mf2_m)))
-void vlsseg8e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, vbool16_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, vuint8mf2_t op15, vuint8mf2_t op16, const uint8_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e8_v_u8mf4_m)))
-void vlsseg8e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, vbool32_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, vuint8mf4_t op15, vuint8mf4_t op16, const uint8_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e8_v_u8mf8_m)))
-void vlsseg8e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, vbool64_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, vuint8mf8_t op15, vuint8mf8_t op16, const uint8_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_i16m1_m)))
-void vlsseg2e16(vint16m1_t * op0, vint16m1_t * op1, vbool16_t op2, vint16m1_t op3, vint16m1_t op4, const int16_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_i16m2_m)))
-void vlsseg2e16(vint16m2_t * op0, vint16m2_t * op1, vbool8_t op2, vint16m2_t op3, vint16m2_t op4, const int16_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_i16m4_m)))
-void vlsseg2e16(vint16m4_t * op0, vint16m4_t * op1, vbool4_t op2, vint16m4_t op3, vint16m4_t op4, const int16_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_i16mf2_m)))
-void vlsseg2e16(vint16mf2_t * op0, vint16mf2_t * op1, vbool32_t op2, vint16mf2_t op3, vint16mf2_t op4, const int16_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_i16mf4_m)))
-void vlsseg2e16(vint16mf4_t * op0, vint16mf4_t * op1, vbool64_t op2, vint16mf4_t op3, vint16mf4_t op4, const int16_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_u16m1_m)))
-void vlsseg2e16(vuint16m1_t * op0, vuint16m1_t * op1, vbool16_t op2, vuint16m1_t op3, vuint16m1_t op4, const uint16_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_u16m2_m)))
-void vlsseg2e16(vuint16m2_t * op0, vuint16m2_t * op1, vbool8_t op2, vuint16m2_t op3, vuint16m2_t op4, const uint16_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_u16m4_m)))
-void vlsseg2e16(vuint16m4_t * op0, vuint16m4_t * op1, vbool4_t op2, vuint16m4_t op3, vuint16m4_t op4, const uint16_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_u16mf2_m)))
-void vlsseg2e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vbool32_t op2, vuint16mf2_t op3, vuint16mf2_t op4, const uint16_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_u16mf4_m)))
-void vlsseg2e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vbool64_t op2, vuint16mf4_t op3, vuint16mf4_t op4, const uint16_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_i16m1_m)))
-void vlsseg3e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vbool16_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, const int16_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_i16m2_m)))
-void vlsseg3e16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vbool8_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, const int16_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_i16mf2_m)))
-void vlsseg3e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vbool32_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, const int16_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_i16mf4_m)))
-void vlsseg3e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vbool64_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, const int16_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_u16m1_m)))
-void vlsseg3e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vbool16_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, const uint16_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_u16m2_m)))
-void vlsseg3e16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vbool8_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, const uint16_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_u16mf2_m)))
-void vlsseg3e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vbool32_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, const uint16_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_u16mf4_m)))
-void vlsseg3e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vbool64_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, const uint16_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_i16m1_m)))
-void vlsseg4e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vbool16_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, const int16_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_i16m2_m)))
-void vlsseg4e16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, vbool8_t op4, vint16m2_t op5, vint16m2_t op6, vint16m2_t op7, vint16m2_t op8, const int16_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_i16mf2_m)))
-void vlsseg4e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vbool32_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, const int16_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_i16mf4_m)))
-void vlsseg4e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vbool64_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, const int16_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_u16m1_m)))
-void vlsseg4e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vbool16_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, const uint16_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_u16m2_m)))
-void vlsseg4e16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, vbool8_t op4, vuint16m2_t op5, vuint16m2_t op6, vuint16m2_t op7, vuint16m2_t op8, const uint16_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_u16mf2_m)))
-void vlsseg4e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vbool32_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, const uint16_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_u16mf4_m)))
-void vlsseg4e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vbool64_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, const uint16_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e16_v_i16m1_m)))
-void vlsseg5e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vbool16_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, const int16_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e16_v_i16mf2_m)))
-void vlsseg5e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vbool32_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, const int16_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e16_v_i16mf4_m)))
-void vlsseg5e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vbool64_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, const int16_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e16_v_u16m1_m)))
-void vlsseg5e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vbool16_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, const uint16_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e16_v_u16mf2_m)))
-void vlsseg5e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vbool32_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, const uint16_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e16_v_u16mf4_m)))
-void vlsseg5e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vbool64_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, const uint16_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e16_v_i16m1_m)))
-void vlsseg6e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vbool16_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, const int16_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e16_v_i16mf2_m)))
-void vlsseg6e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vbool32_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, const int16_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e16_v_i16mf4_m)))
-void vlsseg6e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vbool64_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, const int16_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8m1)))
-void vsseg2e8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8m1_m)))
-void vsseg2e8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8m2)))
-void vsseg2e8(uint8_t * op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8m2_m)))
-void vsseg2e8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8m4)))
-void vsseg2e8(uint8_t * op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8m4_m)))
-void vsseg2e8(vbool2_t op0, uint8_t * op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8mf2)))
-void vsseg2e8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8mf2_m)))
-void vsseg2e8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8mf4)))
-void vsseg2e8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8mf4_m)))
-void vsseg2e8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8mf8)))
-void vsseg2e8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8mf8_m)))
-void vsseg2e8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e16_v_u16m1_m)))
-void vlsseg6e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vbool16_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, const uint16_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e16_v_u16mf2_m)))
-void vlsseg6e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vbool32_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, const uint16_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e16_v_u16mf4_m)))
-void vlsseg6e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vbool64_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, const uint16_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e16_v_i16m1_m)))
-void vlsseg7e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vbool16_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, const int16_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e16_v_i16mf2_m)))
-void vlsseg7e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vbool32_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, const int16_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e16_v_i16mf4_m)))
-void vlsseg7e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vbool64_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, const int16_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e16_v_u16m1_m)))
-void vlsseg7e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vbool16_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, const uint16_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e16_v_u16mf2_m)))
-void vlsseg7e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vbool32_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, const uint16_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e16_v_u16mf4_m)))
-void vlsseg7e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vbool64_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, const uint16_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e16_v_i16m1_m)))
-void vlsseg8e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, vbool16_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, vint16m1_t op15, vint16m1_t op16, const int16_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e16_v_i16mf2_m)))
-void vlsseg8e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, vbool32_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, vint16mf2_t op15, vint16mf2_t op16, const int16_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e16_v_i16mf4_m)))
-void vlsseg8e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, vbool64_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, vint16mf4_t op15, vint16mf4_t op16, const int16_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e16_v_u16m1_m)))
-void vlsseg8e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, vbool16_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, vuint16m1_t op15, vuint16m1_t op16, const uint16_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e16_v_u16mf2_m)))
-void vlsseg8e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, vbool32_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, vuint16mf2_t op15, vuint16mf2_t op16, const uint16_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e16_v_u16mf4_m)))
-void vlsseg8e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, vbool64_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, vuint16mf4_t op15, vuint16mf4_t op16, const uint16_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_i32m1_m)))
-void vlsseg2e32(vint32m1_t * op0, vint32m1_t * op1, vbool32_t op2, vint32m1_t op3, vint32m1_t op4, const int32_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_i32m2_m)))
-void vlsseg2e32(vint32m2_t * op0, vint32m2_t * op1, vbool16_t op2, vint32m2_t op3, vint32m2_t op4, const int32_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_i32m4_m)))
-void vlsseg2e32(vint32m4_t * op0, vint32m4_t * op1, vbool8_t op2, vint32m4_t op3, vint32m4_t op4, const int32_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_i32mf2_m)))
-void vlsseg2e32(vint32mf2_t * op0, vint32mf2_t * op1, vbool64_t op2, vint32mf2_t op3, vint32mf2_t op4, const int32_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_u32m1_m)))
-void vlsseg2e32(vuint32m1_t * op0, vuint32m1_t * op1, vbool32_t op2, vuint32m1_t op3, vuint32m1_t op4, const uint32_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_u32m2_m)))
-void vlsseg2e32(vuint32m2_t * op0, vuint32m2_t * op1, vbool16_t op2, vuint32m2_t op3, vuint32m2_t op4, const uint32_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_u32m4_m)))
-void vlsseg2e32(vuint32m4_t * op0, vuint32m4_t * op1, vbool8_t op2, vuint32m4_t op3, vuint32m4_t op4, const uint32_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_u32mf2_m)))
-void vlsseg2e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vbool64_t op2, vuint32mf2_t op3, vuint32mf2_t op4, const uint32_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e32_v_i32m1_m)))
-void vlsseg3e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vbool32_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, const int32_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e32_v_i32m2_m)))
-void vlsseg3e32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vbool16_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, const int32_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e32_v_i32mf2_m)))
-void vlsseg3e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vbool64_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, const int32_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e32_v_u32m1_m)))
-void vlsseg3e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vbool32_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, const uint32_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e32_v_u32m2_m)))
-void vlsseg3e32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vbool16_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, const uint32_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e32_v_u32mf2_m)))
-void vlsseg3e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vbool64_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, const uint32_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e32_v_i32m1_m)))
-void vlsseg4e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vbool32_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, const int32_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e32_v_i32m2_m)))
-void vlsseg4e32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, vbool16_t op4, vint32m2_t op5, vint32m2_t op6, vint32m2_t op7, vint32m2_t op8, const int32_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e32_v_i32mf2_m)))
-void vlsseg4e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vbool64_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, const int32_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e32_v_u32m1_m)))
-void vlsseg4e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vbool32_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, const uint32_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e32_v_u32m2_m)))
-void vlsseg4e32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, vbool16_t op4, vuint32m2_t op5, vuint32m2_t op6, vuint32m2_t op7, vuint32m2_t op8, const uint32_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e32_v_u32mf2_m)))
-void vlsseg4e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vbool64_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, const uint32_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e32_v_i32m1_m)))
-void vlsseg5e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vbool32_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, const int32_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e32_v_i32mf2_m)))
-void vlsseg5e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vbool64_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, const int32_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e32_v_u32m1_m)))
-void vlsseg5e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vbool32_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, const uint32_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e32_v_u32mf2_m)))
-void vlsseg5e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vbool64_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, const uint32_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e32_v_i32m1_m)))
-void vlsseg6e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vbool32_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, const int32_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e32_v_i32mf2_m)))
-void vlsseg6e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vbool64_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, const int32_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e32_v_u32m1_m)))
-void vlsseg6e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vbool32_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, const uint32_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e32_v_u32mf2_m)))
-void vlsseg6e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vbool64_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, const uint32_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e32_v_i32m1_m)))
-void vlsseg7e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vbool32_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, const int32_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e32_v_i32mf2_m)))
-void vlsseg7e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vbool64_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, const int32_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e32_v_u32m1_m)))
-void vlsseg7e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vbool32_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, const uint32_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e32_v_u32mf2_m)))
-void vlsseg7e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vbool64_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, const uint32_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e32_v_i32m1_m)))
-void vlsseg8e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, vbool32_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, vint32m1_t op15, vint32m1_t op16, const int32_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e32_v_i32mf2_m)))
-void vlsseg8e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, vbool64_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, vint32mf2_t op15, vint32mf2_t op16, const int32_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e32_v_u32m1_m)))
-void vlsseg8e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, vbool32_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, vuint32m1_t op15, vuint32m1_t op16, const uint32_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e32_v_u32mf2_m)))
-void vlsseg8e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, vbool64_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, vuint32mf2_t op15, vuint32mf2_t op16, const uint32_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e64_v_i64m1_m)))
-void vlsseg2e64(vint64m1_t * op0, vint64m1_t * op1, vbool64_t op2, vint64m1_t op3, vint64m1_t op4, const int64_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e64_v_i64m2_m)))
-void vlsseg2e64(vint64m2_t * op0, vint64m2_t * op1, vbool32_t op2, vint64m2_t op3, vint64m2_t op4, const int64_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e64_v_i64m4_m)))
-void vlsseg2e64(vint64m4_t * op0, vint64m4_t * op1, vbool16_t op2, vint64m4_t op3, vint64m4_t op4, const int64_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e64_v_u64m1_m)))
-void vlsseg2e64(vuint64m1_t * op0, vuint64m1_t * op1, vbool64_t op2, vuint64m1_t op3, vuint64m1_t op4, const uint64_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e64_v_u64m2_m)))
-void vlsseg2e64(vuint64m2_t * op0, vuint64m2_t * op1, vbool32_t op2, vuint64m2_t op3, vuint64m2_t op4, const uint64_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e64_v_u64m4_m)))
-void vlsseg2e64(vuint64m4_t * op0, vuint64m4_t * op1, vbool16_t op2, vuint64m4_t op3, vuint64m4_t op4, const uint64_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e64_v_i64m1_m)))
-void vlsseg3e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vbool64_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, const int64_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e64_v_i64m2_m)))
-void vlsseg3e64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vbool32_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, const int64_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e64_v_u64m1_m)))
-void vlsseg3e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vbool64_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, const uint64_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e64_v_u64m2_m)))
-void vlsseg3e64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vbool32_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, const uint64_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e64_v_i64m1_m)))
-void vlsseg4e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vbool64_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, const int64_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e64_v_i64m2_m)))
-void vlsseg4e64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, vbool32_t op4, vint64m2_t op5, vint64m2_t op6, vint64m2_t op7, vint64m2_t op8, const int64_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e64_v_u64m1_m)))
-void vlsseg4e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vbool64_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, const uint64_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e64_v_u64m2_m)))
-void vlsseg4e64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, vbool32_t op4, vuint64m2_t op5, vuint64m2_t op6, vuint64m2_t op7, vuint64m2_t op8, const uint64_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e64_v_i64m1_m)))
-void vlsseg5e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vbool64_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, const int64_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e64_v_u64m1_m)))
-void vlsseg5e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vbool64_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, const uint64_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e64_v_i64m1_m)))
-void vlsseg6e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vbool64_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, const int64_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e64_v_u64m1_m)))
-void vlsseg6e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vbool64_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, const uint64_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e64_v_i64m1_m)))
-void vlsseg7e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vbool64_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, const int64_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e64_v_u64m1_m)))
-void vlsseg7e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vbool64_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, const uint64_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e64_v_i64m1_m)))
-void vlsseg8e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, vbool64_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, vint64m1_t op15, vint64m1_t op16, const int64_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e64_v_u64m1_m)))
-void vlsseg8e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, vbool64_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, vuint64m1_t op15, vuint64m1_t op16, const uint64_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i8m1)))
-void vluxseg3ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, const int8_t * op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i8m1_m)))
-void vluxseg3ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vbool8_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, const int8_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i8m2)))
-void vluxseg3ei8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, const int8_t * op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i8m2_m)))
-void vluxseg3ei8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vbool4_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, const int8_t * op7, vuint8m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i8mf2)))
-void vluxseg3ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, const int8_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i8mf2_m)))
-void vluxseg3ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vbool16_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, const int8_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i8mf4)))
-void vluxseg3ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, const int8_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i8mf4_m)))
-void vluxseg3ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vbool32_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, const int8_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i8mf8)))
-void vluxseg3ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, const int8_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i8mf8_m)))
-void vluxseg3ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vbool64_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, const int8_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u8m1)))
-void vluxseg3ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, const uint8_t * op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u8m1_m)))
-void vluxseg3ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vbool8_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, const uint8_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u8m2)))
-void vluxseg3ei8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, const uint8_t * op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u8m2_m)))
-void vluxseg3ei8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vbool4_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, const uint8_t * op7, vuint8m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u8mf2)))
-void vluxseg3ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, const uint8_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u8mf2_m)))
-void vluxseg3ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vbool16_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, const uint8_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u8mf4)))
-void vluxseg3ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, const uint8_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u8mf4_m)))
-void vluxseg3ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vbool32_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, const uint8_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u8mf8)))
-void vluxseg3ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, const uint8_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u8mf8_m)))
-void vluxseg3ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vbool64_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, const uint8_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i8m1)))
-void vluxseg4ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, const int8_t * op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i8m1_m)))
-void vluxseg4ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vbool8_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, const int8_t * op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i8m2)))
-void vluxseg4ei8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, const int8_t * op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i8m2_m)))
-void vluxseg4ei8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, vbool4_t op4, vint8m2_t op5, vint8m2_t op6, vint8m2_t op7, vint8m2_t op8, const int8_t * op9, vuint8m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i8mf2)))
-void vluxseg4ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, const int8_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i8mf2_m)))
-void vluxseg4ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vbool16_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, const int8_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i8mf4)))
-void vluxseg4ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, const int8_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i8mf4_m)))
-void vluxseg4ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vbool32_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, const int8_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i8mf8)))
-void vluxseg4ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, const int8_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i8mf8_m)))
-void vluxseg4ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vbool64_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, const int8_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u8m1)))
-void vluxseg4ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, const uint8_t * op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u8m1_m)))
-void vluxseg4ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vbool8_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, const uint8_t * op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u8m2)))
-void vluxseg4ei8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, const uint8_t * op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u8m2_m)))
-void vluxseg4ei8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, vbool4_t op4, vuint8m2_t op5, vuint8m2_t op6, vuint8m2_t op7, vuint8m2_t op8, const uint8_t * op9, vuint8m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u8mf2)))
-void vluxseg4ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, const uint8_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u8mf2_m)))
-void vluxseg4ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vbool16_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, const uint8_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u8mf4)))
-void vluxseg4ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, const uint8_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u8mf4_m)))
-void vluxseg4ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vbool32_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, const uint8_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u8mf8)))
-void vluxseg4ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, const uint8_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u8mf8_m)))
-void vluxseg4ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vbool64_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, const uint8_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i8m1)))
-void vluxseg5ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, const int8_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i8m1_m)))
-void vluxseg5ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vbool8_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, const int8_t * op11, vuint8m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i8mf2)))
-void vluxseg5ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, const int8_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i8mf2_m)))
-void vluxseg5ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vbool16_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, const int8_t * op11, vuint8mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i8mf4)))
-void vluxseg5ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, const int8_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i8mf4_m)))
-void vluxseg5ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vbool32_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, const int8_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i8mf8)))
-void vluxseg5ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, const int8_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i8mf8_m)))
-void vluxseg5ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vbool64_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, const int8_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u8m1)))
-void vluxseg5ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, const uint8_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u8m1_m)))
-void vluxseg5ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vbool8_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, const uint8_t * op11, vuint8m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u8mf2)))
-void vluxseg5ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, const uint8_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u8mf2_m)))
-void vluxseg5ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vbool16_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, const uint8_t * op11, vuint8mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u8mf4)))
-void vluxseg5ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, const uint8_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u8mf4_m)))
-void vluxseg5ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vbool32_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, const uint8_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u8mf8)))
-void vluxseg5ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, const uint8_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u8mf8_m)))
-void vluxseg5ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vbool64_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, const uint8_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i8m1)))
-void vluxseg6ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, const int8_t * op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i8m1_m)))
-void vluxseg6ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vbool8_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, const int8_t * op13, vuint8m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i8mf2)))
-void vluxseg6ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, const int8_t * op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i8mf2_m)))
-void vluxseg6ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vbool16_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, const int8_t * op13, vuint8mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i8mf4)))
-void vluxseg6ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, const int8_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i8mf4_m)))
-void vluxseg6ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vbool32_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, const int8_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i8mf8)))
-void vluxseg6ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, const int8_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i8mf8_m)))
-void vluxseg6ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vbool64_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, const int8_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u8m1)))
-void vluxseg6ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, const uint8_t * op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u8m1_m)))
-void vluxseg6ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vbool8_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, const uint8_t * op13, vuint8m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u8mf2)))
-void vluxseg6ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, const uint8_t * op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u8mf2_m)))
-void vluxseg6ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vbool16_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, const uint8_t * op13, vuint8mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u8mf4)))
-void vluxseg6ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, const uint8_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u8mf4_m)))
-void vluxseg6ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vbool32_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, const uint8_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u8mf8)))
-void vluxseg6ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, const uint8_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u8mf8_m)))
-void vluxseg6ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vbool64_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, const uint8_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i8m1)))
-void vluxseg7ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, const int8_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i8m1_m)))
-void vluxseg7ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vbool8_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, const int8_t * op15, vuint8m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i8mf2)))
-void vluxseg7ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, const int8_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i8mf2_m)))
-void vluxseg7ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vbool16_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, const int8_t * op15, vuint8mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i8mf4)))
-void vluxseg7ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, const int8_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i8mf4_m)))
-void vluxseg7ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vbool32_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, const int8_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i8mf8)))
-void vluxseg7ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, const int8_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i8mf8_m)))
-void vluxseg7ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vbool64_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, const int8_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u8m1)))
-void vluxseg7ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, const uint8_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u8m1_m)))
-void vluxseg7ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vbool8_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, const uint8_t * op15, vuint8m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u8mf2)))
-void vluxseg7ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, const uint8_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u8mf2_m)))
-void vluxseg7ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vbool16_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, const uint8_t * op15, vuint8mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u8mf4)))
-void vluxseg7ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, const uint8_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u8mf4_m)))
-void vluxseg7ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vbool32_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, const uint8_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u8mf8)))
-void vluxseg7ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, const uint8_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u8mf8_m)))
-void vluxseg7ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vbool64_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, const uint8_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i8m1)))
-void vluxseg8ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, const int8_t * op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i8m1_m)))
-void vluxseg8ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, vbool8_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, vint8m1_t op15, vint8m1_t op16, const int8_t * op17, vuint8m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i8mf2)))
-void vluxseg8ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, const int8_t * op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i8mf2_m)))
-void vluxseg8ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, vbool16_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, vint8mf2_t op15, vint8mf2_t op16, const int8_t * op17, vuint8mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i8mf4)))
-void vluxseg8ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, const int8_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i8mf4_m)))
-void vluxseg8ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, vbool32_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, vint8mf4_t op15, vint8mf4_t op16, const int8_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i8mf8)))
-void vluxseg8ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, const int8_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i8mf8_m)))
-void vluxseg8ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, vbool64_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, vint8mf8_t op15, vint8mf8_t op16, const int8_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u8m1)))
-void vluxseg8ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, const uint8_t * op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u8m1_m)))
-void vluxseg8ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, vbool8_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, vuint8m1_t op15, vuint8m1_t op16, const uint8_t * op17, vuint8m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u8mf2)))
-void vluxseg8ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, const uint8_t * op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u8mf2_m)))
-void vluxseg8ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, vbool16_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, vuint8mf2_t op15, vuint8mf2_t op16, const uint8_t * op17, vuint8mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u8mf4)))
-void vluxseg8ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, const uint8_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u8mf4_m)))
-void vluxseg8ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, vbool32_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, vuint8mf4_t op15, vuint8mf4_t op16, const uint8_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u8mf8)))
-void vluxseg8ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, const uint8_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u8mf8_m)))
-void vluxseg8ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, vbool64_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, vuint8mf8_t op15, vuint8mf8_t op16, const uint8_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8m1)))
-void vluxseg2ei16(vint8m1_t * op0, vint8m1_t * op1, const int8_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8m1_m)))
-void vluxseg2ei16(vint8m1_t * op0, vint8m1_t * op1, vbool8_t op2, vint8m1_t op3, vint8m1_t op4, const int8_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8m2)))
-void vluxseg2ei16(vint8m2_t * op0, vint8m2_t * op1, const int8_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8m2_m)))
-void vluxseg2ei16(vint8m2_t * op0, vint8m2_t * op1, vbool4_t op2, vint8m2_t op3, vint8m2_t op4, const int8_t * op5, vuint16m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8m4)))
-void vluxseg2ei16(vint8m4_t * op0, vint8m4_t * op1, const int8_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8m4_m)))
-void vluxseg2ei16(vint8m4_t * op0, vint8m4_t * op1, vbool2_t op2, vint8m4_t op3, vint8m4_t op4, const int8_t * op5, vuint16m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8mf2)))
-void vluxseg2ei16(vint8mf2_t * op0, vint8mf2_t * op1, const int8_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8mf2_m)))
-void vluxseg2ei16(vint8mf2_t * op0, vint8mf2_t * op1, vbool16_t op2, vint8mf2_t op3, vint8mf2_t op4, const int8_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8mf4)))
-void vluxseg2ei16(vint8mf4_t * op0, vint8mf4_t * op1, const int8_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8mf4_m)))
-void vluxseg2ei16(vint8mf4_t * op0, vint8mf4_t * op1, vbool32_t op2, vint8mf4_t op3, vint8mf4_t op4, const int8_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8mf8)))
-void vluxseg2ei16(vint8mf8_t * op0, vint8mf8_t * op1, const int8_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8mf8_m)))
-void vluxseg2ei16(vint8mf8_t * op0, vint8mf8_t * op1, vbool64_t op2, vint8mf8_t op3, vint8mf8_t op4, const int8_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8m1)))
-void vluxseg2ei16(vuint8m1_t * op0, vuint8m1_t * op1, const uint8_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8m1_m)))
-void vluxseg2ei16(vuint8m1_t * op0, vuint8m1_t * op1, vbool8_t op2, vuint8m1_t op3, vuint8m1_t op4, const uint8_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8m2)))
-void vluxseg2ei16(vuint8m2_t * op0, vuint8m2_t * op1, const uint8_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8m2_m)))
-void vluxseg2ei16(vuint8m2_t * op0, vuint8m2_t * op1, vbool4_t op2, vuint8m2_t op3, vuint8m2_t op4, const uint8_t * op5, vuint16m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8m4)))
-void vluxseg2ei16(vuint8m4_t * op0, vuint8m4_t * op1, const uint8_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8m4_m)))
-void vluxseg2ei16(vuint8m4_t * op0, vuint8m4_t * op1, vbool2_t op2, vuint8m4_t op3, vuint8m4_t op4, const uint8_t * op5, vuint16m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8mf2)))
-void vluxseg2ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, const uint8_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8mf2_m)))
-void vluxseg2ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vbool16_t op2, vuint8mf2_t op3, vuint8mf2_t op4, const uint8_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8mf4)))
-void vluxseg2ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, const uint8_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8mf4_m)))
-void vluxseg2ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vbool32_t op2, vuint8mf4_t op3, vuint8mf4_t op4, const uint8_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8mf8)))
-void vluxseg2ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, const uint8_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8mf8_m)))
-void vluxseg2ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vbool64_t op2, vuint8mf8_t op3, vuint8mf8_t op4, const uint8_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i8m1)))
-void vluxseg3ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, const int8_t * op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i8m1_m)))
-void vluxseg3ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vbool8_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, const int8_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i8m2)))
-void vluxseg3ei16(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, const int8_t * op3, vuint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i8m2_m)))
-void vluxseg3ei16(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vbool4_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, const int8_t * op7, vuint16m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i8mf2)))
-void vluxseg3ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, const int8_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i8mf2_m)))
-void vluxseg3ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vbool16_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, const int8_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i8mf4)))
-void vluxseg3ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, const int8_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i8mf4_m)))
-void vluxseg3ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vbool32_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, const int8_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i8mf8)))
-void vluxseg3ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, const int8_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i8mf8_m)))
-void vluxseg3ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vbool64_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, const int8_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u8m1)))
-void vluxseg3ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, const uint8_t * op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u8m1_m)))
-void vluxseg3ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vbool8_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, const uint8_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u8m2)))
-void vluxseg3ei16(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, const uint8_t * op3, vuint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u8m2_m)))
-void vluxseg3ei16(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vbool4_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, const uint8_t * op7, vuint16m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u8mf2)))
-void vluxseg3ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, const uint8_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u8mf2_m)))
-void vluxseg3ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vbool16_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, const uint8_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u8mf4)))
-void vluxseg3ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, const uint8_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u8mf4_m)))
-void vluxseg3ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vbool32_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, const uint8_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u8mf8)))
-void vluxseg3ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, const uint8_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u8mf8_m)))
-void vluxseg3ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vbool64_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, const uint8_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i8m1)))
-void vluxseg4ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, const int8_t * op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i8m1_m)))
-void vluxseg4ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vbool8_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, const int8_t * op9, vuint16m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i8m2)))
-void vluxseg4ei16(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, const int8_t * op4, vuint16m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i8m2_m)))
-void vluxseg4ei16(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, vbool4_t op4, vint8m2_t op5, vint8m2_t op6, vint8m2_t op7, vint8m2_t op8, const int8_t * op9, vuint16m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i8mf2)))
-void vluxseg4ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, const int8_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i8mf2_m)))
-void vluxseg4ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vbool16_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, const int8_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i8mf4)))
-void vluxseg4ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, const int8_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i8mf4_m)))
-void vluxseg4ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vbool32_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, const int8_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i8mf8)))
-void vluxseg4ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, const int8_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i8mf8_m)))
-void vluxseg4ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vbool64_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, const int8_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u8m1)))
-void vluxseg4ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, const uint8_t * op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u8m1_m)))
-void vluxseg4ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vbool8_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, const uint8_t * op9, vuint16m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u8m2)))
-void vluxseg4ei16(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, const uint8_t * op4, vuint16m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u8m2_m)))
-void vluxseg4ei16(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, vbool4_t op4, vuint8m2_t op5, vuint8m2_t op6, vuint8m2_t op7, vuint8m2_t op8, const uint8_t * op9, vuint16m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u8mf2)))
-void vluxseg4ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, const uint8_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u8mf2_m)))
-void vluxseg4ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vbool16_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, const uint8_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u8mf4)))
-void vluxseg4ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, const uint8_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u8mf4_m)))
-void vluxseg4ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vbool32_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, const uint8_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u8mf8)))
-void vluxseg4ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, const uint8_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u8mf8_m)))
-void vluxseg4ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vbool64_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, const uint8_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i8m1)))
-void vluxseg5ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, const int8_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i8m1_m)))
-void vluxseg5ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vbool8_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, const int8_t * op11, vuint16m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i8mf2)))
-void vluxseg5ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, const int8_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i8mf2_m)))
-void vluxseg5ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vbool16_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, const int8_t * op11, vuint16m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i8mf4)))
-void vluxseg5ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, const int8_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i8mf4_m)))
-void vluxseg5ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vbool32_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, const int8_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i8mf8)))
-void vluxseg5ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, const int8_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i8mf8_m)))
-void vluxseg5ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vbool64_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, const int8_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u8m1)))
-void vluxseg5ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, const uint8_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u8m1_m)))
-void vluxseg5ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vbool8_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, const uint8_t * op11, vuint16m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u8mf2)))
-void vluxseg5ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, const uint8_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u8mf2_m)))
-void vluxseg5ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vbool16_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, const uint8_t * op11, vuint16m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u8mf4)))
-void vluxseg5ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, const uint8_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u8mf4_m)))
-void vluxseg5ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vbool32_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, const uint8_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u8mf8)))
-void vluxseg5ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, const uint8_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u8mf8_m)))
-void vluxseg5ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vbool64_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, const uint8_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i8m1)))
-void vluxseg6ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, const int8_t * op6, vuint16m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i8m1_m)))
-void vluxseg6ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vbool8_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, const int8_t * op13, vuint16m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i8mf2)))
-void vluxseg6ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, const int8_t * op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i8mf2_m)))
-void vluxseg6ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vbool16_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, const int8_t * op13, vuint16m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i8mf4)))
-void vluxseg6ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, const int8_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i8mf4_m)))
-void vluxseg6ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vbool32_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, const int8_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i8mf8)))
-void vluxseg6ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, const int8_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i8mf8_m)))
-void vluxseg6ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vbool64_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, const int8_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u8m1)))
-void vluxseg6ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, const uint8_t * op6, vuint16m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u8m1_m)))
-void vluxseg6ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vbool8_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, const uint8_t * op13, vuint16m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u8mf2)))
-void vluxseg6ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, const uint8_t * op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u8mf2_m)))
-void vluxseg6ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vbool16_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, const uint8_t * op13, vuint16m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u8mf4)))
-void vluxseg6ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, const uint8_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u8mf4_m)))
-void vluxseg6ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vbool32_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, const uint8_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u8mf8)))
-void vluxseg6ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, const uint8_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u8mf8_m)))
-void vluxseg6ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vbool64_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, const uint8_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i8m1)))
-void vluxseg7ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, const int8_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i8m1_m)))
-void vluxseg7ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vbool8_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, const int8_t * op15, vuint16m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i8mf2)))
-void vluxseg7ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, const int8_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i8mf2_m)))
-void vluxseg7ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vbool16_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, const int8_t * op15, vuint16m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i8mf4)))
-void vluxseg7ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, const int8_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i8mf4_m)))
-void vluxseg7ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vbool32_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, const int8_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i8mf8)))
-void vluxseg7ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, const int8_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i8mf8_m)))
-void vluxseg7ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vbool64_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, const int8_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u8m1)))
-void vluxseg7ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, const uint8_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u8m1_m)))
-void vluxseg7ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vbool8_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, const uint8_t * op15, vuint16m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u8mf2)))
-void vluxseg7ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, const uint8_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u8mf2_m)))
-void vluxseg7ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vbool16_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, const uint8_t * op15, vuint16m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u8mf4)))
-void vluxseg7ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, const uint8_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u8mf4_m)))
-void vluxseg7ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vbool32_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, const uint8_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u8mf8)))
-void vluxseg7ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, const uint8_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u8mf8_m)))
-void vluxseg7ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vbool64_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, const uint8_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i8m1)))
-void vluxseg8ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, const int8_t * op8, vuint16m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i8m1_m)))
-void vluxseg8ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, vbool8_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, vint8m1_t op15, vint8m1_t op16, const int8_t * op17, vuint16m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i8mf2)))
-void vluxseg8ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, const int8_t * op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i8mf2_m)))
-void vluxseg8ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, vbool16_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, vint8mf2_t op15, vint8mf2_t op16, const int8_t * op17, vuint16m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i8mf4)))
-void vluxseg8ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, const int8_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i8mf4_m)))
-void vluxseg8ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, vbool32_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, vint8mf4_t op15, vint8mf4_t op16, const int8_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i8mf8)))
-void vluxseg8ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, const int8_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i8mf8_m)))
-void vluxseg8ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, vbool64_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, vint8mf8_t op15, vint8mf8_t op16, const int8_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u8m1)))
-void vluxseg8ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, const uint8_t * op8, vuint16m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u8m1_m)))
-void vluxseg8ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, vbool8_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, vuint8m1_t op15, vuint8m1_t op16, const uint8_t * op17, vuint16m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u8mf2)))
-void vluxseg8ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, const uint8_t * op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u8mf2_m)))
-void vluxseg8ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, vbool16_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, vuint8mf2_t op15, vuint8mf2_t op16, const uint8_t * op17, vuint16m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u8mf4)))
-void vluxseg8ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, const uint8_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u8mf4_m)))
-void vluxseg8ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, vbool32_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, vuint8mf4_t op15, vuint8mf4_t op16, const uint8_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u8mf8)))
-void vluxseg8ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, const uint8_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u8mf8_m)))
-void vluxseg8ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, vbool64_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, vuint8mf8_t op15, vuint8mf8_t op16, const uint8_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i8m1)))
-void vluxseg2ei32(vint8m1_t * op0, vint8m1_t * op1, const int8_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i8m1_m)))
-void vluxseg2ei32(vint8m1_t * op0, vint8m1_t * op1, vbool8_t op2, vint8m1_t op3, vint8m1_t op4, const int8_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i8m2)))
-void vluxseg2ei32(vint8m2_t * op0, vint8m2_t * op1, const int8_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i8m2_m)))
-void vluxseg2ei32(vint8m2_t * op0, vint8m2_t * op1, vbool4_t op2, vint8m2_t op3, vint8m2_t op4, const int8_t * op5, vuint32m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i8mf2)))
-void vluxseg2ei32(vint8mf2_t * op0, vint8mf2_t * op1, const int8_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i8mf2_m)))
-void vluxseg2ei32(vint8mf2_t * op0, vint8mf2_t * op1, vbool16_t op2, vint8mf2_t op3, vint8mf2_t op4, const int8_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i8mf4)))
-void vluxseg2ei32(vint8mf4_t * op0, vint8mf4_t * op1, const int8_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i8mf4_m)))
-void vluxseg2ei32(vint8mf4_t * op0, vint8mf4_t * op1, vbool32_t op2, vint8mf4_t op3, vint8mf4_t op4, const int8_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i8mf8)))
-void vluxseg2ei32(vint8mf8_t * op0, vint8mf8_t * op1, const int8_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i8mf8_m)))
-void vluxseg2ei32(vint8mf8_t * op0, vint8mf8_t * op1, vbool64_t op2, vint8mf8_t op3, vint8mf8_t op4, const int8_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u8m1)))
-void vluxseg2ei32(vuint8m1_t * op0, vuint8m1_t * op1, const uint8_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u8m1_m)))
-void vluxseg2ei32(vuint8m1_t * op0, vuint8m1_t * op1, vbool8_t op2, vuint8m1_t op3, vuint8m1_t op4, const uint8_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u8m2)))
-void vluxseg2ei32(vuint8m2_t * op0, vuint8m2_t * op1, const uint8_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u8m2_m)))
-void vluxseg2ei32(vuint8m2_t * op0, vuint8m2_t * op1, vbool4_t op2, vuint8m2_t op3, vuint8m2_t op4, const uint8_t * op5, vuint32m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u8mf2)))
-void vluxseg2ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, const uint8_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u8mf2_m)))
-void vluxseg2ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vbool16_t op2, vuint8mf2_t op3, vuint8mf2_t op4, const uint8_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u8mf4)))
-void vluxseg2ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, const uint8_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u8mf4_m)))
-void vluxseg2ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vbool32_t op2, vuint8mf4_t op3, vuint8mf4_t op4, const uint8_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u8mf8)))
-void vluxseg2ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, const uint8_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u8mf8_m)))
-void vluxseg2ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vbool64_t op2, vuint8mf8_t op3, vuint8mf8_t op4, const uint8_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i8m1)))
-void vluxseg3ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, const int8_t * op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i8m1_m)))
-void vluxseg3ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vbool8_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, const int8_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i8m2)))
-void vluxseg3ei32(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, const int8_t * op3, vuint32m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i8m2_m)))
-void vluxseg3ei32(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vbool4_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, const int8_t * op7, vuint32m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i8mf2)))
-void vluxseg3ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, const int8_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i8mf2_m)))
-void vluxseg3ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vbool16_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, const int8_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i8mf4)))
-void vluxseg3ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, const int8_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i8mf4_m)))
-void vluxseg3ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vbool32_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, const int8_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i8mf8)))
-void vluxseg3ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, const int8_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i8mf8_m)))
-void vluxseg3ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vbool64_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, const int8_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u8m1)))
-void vluxseg3ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, const uint8_t * op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u8m1_m)))
-void vluxseg3ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vbool8_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, const uint8_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u8m2)))
-void vluxseg3ei32(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, const uint8_t * op3, vuint32m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u8m2_m)))
-void vluxseg3ei32(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vbool4_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, const uint8_t * op7, vuint32m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u8mf2)))
-void vluxseg3ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, const uint8_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u8mf2_m)))
-void vluxseg3ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vbool16_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, const uint8_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u8mf4)))
-void vluxseg3ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, const uint8_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u8mf4_m)))
-void vluxseg3ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vbool32_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, const uint8_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u8mf8)))
-void vluxseg3ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, const uint8_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u8mf8_m)))
-void vluxseg3ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vbool64_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, const uint8_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i8m1)))
-void vluxseg4ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, const int8_t * op4, vuint32m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i8m1_m)))
-void vluxseg4ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vbool8_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, const int8_t * op9, vuint32m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i8m2)))
-void vluxseg4ei32(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, const int8_t * op4, vuint32m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i8m2_m)))
-void vluxseg4ei32(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, vbool4_t op4, vint8m2_t op5, vint8m2_t op6, vint8m2_t op7, vint8m2_t op8, const int8_t * op9, vuint32m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i8mf2)))
-void vluxseg4ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, const int8_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i8mf2_m)))
-void vluxseg4ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vbool16_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, const int8_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i8mf4)))
-void vluxseg4ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, const int8_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i8mf4_m)))
-void vluxseg4ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vbool32_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, const int8_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i8mf8)))
-void vluxseg4ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, const int8_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i8mf8_m)))
-void vluxseg4ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vbool64_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, const int8_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u8m1)))
-void vluxseg4ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, const uint8_t * op4, vuint32m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u8m1_m)))
-void vluxseg4ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vbool8_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, const uint8_t * op9, vuint32m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u8m2)))
-void vluxseg4ei32(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, const uint8_t * op4, vuint32m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u8m2_m)))
-void vluxseg4ei32(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, vbool4_t op4, vuint8m2_t op5, vuint8m2_t op6, vuint8m2_t op7, vuint8m2_t op8, const uint8_t * op9, vuint32m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u8mf2)))
-void vluxseg4ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, const uint8_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u8mf2_m)))
-void vluxseg4ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vbool16_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, const uint8_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u8mf4)))
-void vluxseg4ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, const uint8_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u8mf4_m)))
-void vluxseg4ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vbool32_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, const uint8_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u8mf8)))
-void vluxseg4ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, const uint8_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u8mf8_m)))
-void vluxseg4ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vbool64_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, const uint8_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i8m1)))
-void vluxseg5ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, const int8_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i8m1_m)))
-void vluxseg5ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vbool8_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, const int8_t * op11, vuint32m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i8mf2)))
-void vluxseg5ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, const int8_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i8mf2_m)))
-void vluxseg5ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vbool16_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, const int8_t * op11, vuint32m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i8mf4)))
-void vluxseg5ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, const int8_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i8mf4_m)))
-void vluxseg5ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vbool32_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, const int8_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i8mf8)))
-void vluxseg5ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, const int8_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i8mf8_m)))
-void vluxseg5ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vbool64_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, const int8_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u8m1)))
-void vluxseg5ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, const uint8_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u8m1_m)))
-void vluxseg5ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vbool8_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, const uint8_t * op11, vuint32m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u8mf2)))
-void vluxseg5ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, const uint8_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u8mf2_m)))
-void vluxseg5ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vbool16_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, const uint8_t * op11, vuint32m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u8mf4)))
-void vluxseg5ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, const uint8_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u8mf4_m)))
-void vluxseg5ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vbool32_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, const uint8_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u8mf8)))
-void vluxseg5ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, const uint8_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u8mf8_m)))
-void vluxseg5ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vbool64_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, const uint8_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i8m1)))
-void vluxseg6ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, const int8_t * op6, vuint32m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i8m1_m)))
-void vluxseg6ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vbool8_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, const int8_t * op13, vuint32m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i8mf2)))
-void vluxseg6ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, const int8_t * op6, vuint32m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i8mf2_m)))
-void vluxseg6ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vbool16_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, const int8_t * op13, vuint32m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i8mf4)))
-void vluxseg6ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, const int8_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i8mf4_m)))
-void vluxseg6ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vbool32_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, const int8_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i8mf8)))
-void vluxseg6ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, const int8_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i8mf8_m)))
-void vluxseg6ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vbool64_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, const int8_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u8m1)))
-void vluxseg6ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, const uint8_t * op6, vuint32m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u8m1_m)))
-void vluxseg6ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vbool8_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, const uint8_t * op13, vuint32m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u8mf2)))
-void vluxseg6ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, const uint8_t * op6, vuint32m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u8mf2_m)))
-void vluxseg6ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vbool16_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, const uint8_t * op13, vuint32m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u8mf4)))
-void vluxseg6ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, const uint8_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u8mf4_m)))
-void vluxseg6ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vbool32_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, const uint8_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u8mf8)))
-void vluxseg6ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, const uint8_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u8mf8_m)))
-void vluxseg6ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vbool64_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, const uint8_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i8m1)))
-void vluxseg7ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, const int8_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i8m1_m)))
-void vluxseg7ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vbool8_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, const int8_t * op15, vuint32m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i8mf2)))
-void vluxseg7ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, const int8_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i8mf2_m)))
-void vluxseg7ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vbool16_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, const int8_t * op15, vuint32m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i8mf4)))
-void vluxseg7ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, const int8_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i8mf4_m)))
-void vluxseg7ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vbool32_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, const int8_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i8mf8)))
-void vluxseg7ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, const int8_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i8mf8_m)))
-void vluxseg7ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vbool64_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, const int8_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u8m1)))
-void vluxseg7ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, const uint8_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u8m1_m)))
-void vluxseg7ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vbool8_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, const uint8_t * op15, vuint32m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u8mf2)))
-void vluxseg7ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, const uint8_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u8mf2_m)))
-void vluxseg7ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vbool16_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, const uint8_t * op15, vuint32m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u8mf4)))
-void vluxseg7ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, const uint8_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u8mf4_m)))
-void vluxseg7ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vbool32_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, const uint8_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u8mf8)))
-void vluxseg7ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, const uint8_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u8mf8_m)))
-void vluxseg7ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vbool64_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, const uint8_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i8m1)))
-void vluxseg8ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, const int8_t * op8, vuint32m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i8m1_m)))
-void vluxseg8ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, vbool8_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, vint8m1_t op15, vint8m1_t op16, const int8_t * op17, vuint32m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i8mf2)))
-void vluxseg8ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, const int8_t * op8, vuint32m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i8mf2_m)))
-void vluxseg8ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, vbool16_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, vint8mf2_t op15, vint8mf2_t op16, const int8_t * op17, vuint32m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i8mf4)))
-void vluxseg8ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, const int8_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i8mf4_m)))
-void vluxseg8ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, vbool32_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, vint8mf4_t op15, vint8mf4_t op16, const int8_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i8mf8)))
-void vluxseg8ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, const int8_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i8mf8_m)))
-void vluxseg8ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, vbool64_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, vint8mf8_t op15, vint8mf8_t op16, const int8_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u8m1)))
-void vluxseg8ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, const uint8_t * op8, vuint32m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u8m1_m)))
-void vluxseg8ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, vbool8_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, vuint8m1_t op15, vuint8m1_t op16, const uint8_t * op17, vuint32m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u8mf2)))
-void vluxseg8ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, const uint8_t * op8, vuint32m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u8mf2_m)))
-void vluxseg8ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, vbool16_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, vuint8mf2_t op15, vuint8mf2_t op16, const uint8_t * op17, vuint32m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u8mf4)))
-void vluxseg8ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, const uint8_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u8mf4_m)))
-void vluxseg8ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, vbool32_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, vuint8mf4_t op15, vuint8mf4_t op16, const uint8_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u8mf8)))
-void vluxseg8ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, const uint8_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u8mf8_m)))
-void vluxseg8ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, vbool64_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, vuint8mf8_t op15, vuint8mf8_t op16, const uint8_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i8m1)))
-void vluxseg2ei64(vint8m1_t * op0, vint8m1_t * op1, const int8_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i8m1_m)))
-void vluxseg2ei64(vint8m1_t * op0, vint8m1_t * op1, vbool8_t op2, vint8m1_t op3, vint8m1_t op4, const int8_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i8mf2)))
-void vluxseg2ei64(vint8mf2_t * op0, vint8mf2_t * op1, const int8_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i8mf2_m)))
-void vluxseg2ei64(vint8mf2_t * op0, vint8mf2_t * op1, vbool16_t op2, vint8mf2_t op3, vint8mf2_t op4, const int8_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i8mf4)))
-void vluxseg2ei64(vint8mf4_t * op0, vint8mf4_t * op1, const int8_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i8mf4_m)))
-void vluxseg2ei64(vint8mf4_t * op0, vint8mf4_t * op1, vbool32_t op2, vint8mf4_t op3, vint8mf4_t op4, const int8_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i8mf8)))
-void vluxseg2ei64(vint8mf8_t * op0, vint8mf8_t * op1, const int8_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i8mf8_m)))
-void vluxseg2ei64(vint8mf8_t * op0, vint8mf8_t * op1, vbool64_t op2, vint8mf8_t op3, vint8mf8_t op4, const int8_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u8m1)))
-void vluxseg2ei64(vuint8m1_t * op0, vuint8m1_t * op1, const uint8_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u8m1_m)))
-void vluxseg2ei64(vuint8m1_t * op0, vuint8m1_t * op1, vbool8_t op2, vuint8m1_t op3, vuint8m1_t op4, const uint8_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u8mf2)))
-void vluxseg2ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, const uint8_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u8mf2_m)))
-void vluxseg2ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vbool16_t op2, vuint8mf2_t op3, vuint8mf2_t op4, const uint8_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u8mf4)))
-void vluxseg2ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, const uint8_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u8mf4_m)))
-void vluxseg2ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vbool32_t op2, vuint8mf4_t op3, vuint8mf4_t op4, const uint8_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u8mf8)))
-void vluxseg2ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, const uint8_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u8mf8_m)))
-void vluxseg2ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vbool64_t op2, vuint8mf8_t op3, vuint8mf8_t op4, const uint8_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i8m1)))
-void vluxseg3ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, const int8_t * op3, vuint64m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i8m1_m)))
-void vluxseg3ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vbool8_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, const int8_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i8mf2)))
-void vluxseg3ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, const int8_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i8mf2_m)))
-void vluxseg3ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vbool16_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, const int8_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i8mf4)))
-void vluxseg3ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, const int8_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i8mf4_m)))
-void vluxseg3ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vbool32_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, const int8_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i8mf8)))
-void vluxseg3ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, const int8_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i8mf8_m)))
-void vluxseg3ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vbool64_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, const int8_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u8m1)))
-void vluxseg3ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, const uint8_t * op3, vuint64m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u8m1_m)))
-void vluxseg3ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vbool8_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, const uint8_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u8mf2)))
-void vluxseg3ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, const uint8_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u8mf2_m)))
-void vluxseg3ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vbool16_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, const uint8_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u8mf4)))
-void vluxseg3ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, const uint8_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u8mf4_m)))
-void vluxseg3ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vbool32_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, const uint8_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u8mf8)))
-void vluxseg3ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, const uint8_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u8mf8_m)))
-void vluxseg3ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vbool64_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, const uint8_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i8m1)))
-void vluxseg4ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, const int8_t * op4, vuint64m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i8m1_m)))
-void vluxseg4ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vbool8_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, const int8_t * op9, vuint64m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i8mf2)))
-void vluxseg4ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, const int8_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i8mf2_m)))
-void vluxseg4ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vbool16_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, const int8_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i8mf4)))
-void vluxseg4ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, const int8_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i8mf4_m)))
-void vluxseg4ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vbool32_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, const int8_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i8mf8)))
-void vluxseg4ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, const int8_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i8mf8_m)))
-void vluxseg4ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vbool64_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, const int8_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u8m1)))
-void vluxseg4ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, const uint8_t * op4, vuint64m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u8m1_m)))
-void vluxseg4ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vbool8_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, const uint8_t * op9, vuint64m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u8mf2)))
-void vluxseg4ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, const uint8_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u8mf2_m)))
-void vluxseg4ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vbool16_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, const uint8_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u8mf4)))
-void vluxseg4ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, const uint8_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u8mf4_m)))
-void vluxseg4ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vbool32_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, const uint8_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u8mf8)))
-void vluxseg4ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, const uint8_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u8mf8_m)))
-void vluxseg4ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vbool64_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, const uint8_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i8m1)))
-void vluxseg5ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, const int8_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i8m1_m)))
-void vluxseg5ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vbool8_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, const int8_t * op11, vuint64m8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i8mf2)))
-void vluxseg5ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, const int8_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i8mf2_m)))
-void vluxseg5ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vbool16_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, const int8_t * op11, vuint64m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i8mf4)))
-void vluxseg5ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, const int8_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i8mf4_m)))
-void vluxseg5ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vbool32_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, const int8_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i8mf8)))
-void vluxseg5ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, const int8_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i8mf8_m)))
-void vluxseg5ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vbool64_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, const int8_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u8m1)))
-void vluxseg5ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, const uint8_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u8m1_m)))
-void vluxseg5ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vbool8_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, const uint8_t * op11, vuint64m8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u8mf2)))
-void vluxseg5ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, const uint8_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u8mf2_m)))
-void vluxseg5ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vbool16_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, const uint8_t * op11, vuint64m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u8mf4)))
-void vluxseg5ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, const uint8_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u8mf4_m)))
-void vluxseg5ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vbool32_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, const uint8_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u8mf8)))
-void vluxseg5ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, const uint8_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u8mf8_m)))
-void vluxseg5ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vbool64_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, const uint8_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i8m1)))
-void vluxseg6ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, const int8_t * op6, vuint64m8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i8m1_m)))
-void vluxseg6ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vbool8_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, const int8_t * op13, vuint64m8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i8mf2)))
-void vluxseg6ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, const int8_t * op6, vuint64m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i8mf2_m)))
-void vluxseg6ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vbool16_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, const int8_t * op13, vuint64m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i8mf4)))
-void vluxseg6ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, const int8_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i8mf4_m)))
-void vluxseg6ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vbool32_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, const int8_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i8mf8)))
-void vluxseg6ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, const int8_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i8mf8_m)))
-void vluxseg6ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vbool64_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, const int8_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u8m1)))
-void vluxseg6ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, const uint8_t * op6, vuint64m8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u8m1_m)))
-void vluxseg6ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vbool8_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, const uint8_t * op13, vuint64m8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u8mf2)))
-void vluxseg6ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, const uint8_t * op6, vuint64m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u8mf2_m)))
-void vluxseg6ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vbool16_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, const uint8_t * op13, vuint64m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u8mf4)))
-void vluxseg6ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, const uint8_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u8mf4_m)))
-void vluxseg6ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vbool32_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, const uint8_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u8mf8)))
-void vluxseg6ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, const uint8_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u8mf8_m)))
-void vluxseg6ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vbool64_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, const uint8_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i8m1)))
-void vluxseg7ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, const int8_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i8m1_m)))
-void vluxseg7ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vbool8_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, const int8_t * op15, vuint64m8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i8mf2)))
-void vluxseg7ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, const int8_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i8mf2_m)))
-void vluxseg7ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vbool16_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, const int8_t * op15, vuint64m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i8mf4)))
-void vluxseg7ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, const int8_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i8mf4_m)))
-void vluxseg7ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vbool32_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, const int8_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i8mf8)))
-void vluxseg7ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, const int8_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i8mf8_m)))
-void vluxseg7ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vbool64_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, const int8_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u8m1)))
-void vluxseg7ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, const uint8_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u8m1_m)))
-void vluxseg7ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vbool8_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, const uint8_t * op15, vuint64m8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u8mf2)))
-void vluxseg7ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, const uint8_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u8mf2_m)))
-void vluxseg7ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vbool16_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, const uint8_t * op15, vuint64m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u8mf4)))
-void vluxseg7ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, const uint8_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u8mf4_m)))
-void vluxseg7ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vbool32_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, const uint8_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u8mf8)))
-void vluxseg7ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, const uint8_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u8mf8_m)))
-void vluxseg7ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vbool64_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, const uint8_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i8m1)))
-void vluxseg8ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, const int8_t * op8, vuint64m8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i8m1_m)))
-void vluxseg8ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, vbool8_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, vint8m1_t op15, vint8m1_t op16, const int8_t * op17, vuint64m8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i8mf2)))
-void vluxseg8ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, const int8_t * op8, vuint64m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i8mf2_m)))
-void vluxseg8ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, vbool16_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, vint8mf2_t op15, vint8mf2_t op16, const int8_t * op17, vuint64m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i8mf4)))
-void vluxseg8ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, const int8_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i8mf4_m)))
-void vluxseg8ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, vbool32_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, vint8mf4_t op15, vint8mf4_t op16, const int8_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i8mf8)))
-void vluxseg8ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, const int8_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i8mf8_m)))
-void vluxseg8ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, vbool64_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, vint8mf8_t op15, vint8mf8_t op16, const int8_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u8m1)))
-void vluxseg8ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, const uint8_t * op8, vuint64m8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u8m1_m)))
-void vluxseg8ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, vbool8_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, vuint8m1_t op15, vuint8m1_t op16, const uint8_t * op17, vuint64m8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u8mf2)))
-void vluxseg8ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, const uint8_t * op8, vuint64m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u8mf2_m)))
-void vluxseg8ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, vbool16_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, vuint8mf2_t op15, vuint8mf2_t op16, const uint8_t * op17, vuint64m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u8mf4)))
-void vluxseg8ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, const uint8_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u8mf4_m)))
-void vluxseg8ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, vbool32_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, vuint8mf4_t op15, vuint8mf4_t op16, const uint8_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u8mf8)))
-void vluxseg8ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, const uint8_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u8mf8_m)))
-void vluxseg8ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, vbool64_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, vuint8mf8_t op15, vuint8mf8_t op16, const uint8_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i16m1)))
-void vluxseg2ei8(vint16m1_t * op0, vint16m1_t * op1, const int16_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i16m1_m)))
-void vluxseg2ei8(vint16m1_t * op0, vint16m1_t * op1, vbool16_t op2, vint16m1_t op3, vint16m1_t op4, const int16_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i16m2)))
-void vluxseg2ei8(vint16m2_t * op0, vint16m2_t * op1, const int16_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i16m2_m)))
-void vluxseg2ei8(vint16m2_t * op0, vint16m2_t * op1, vbool8_t op2, vint16m2_t op3, vint16m2_t op4, const int16_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i16m4)))
-void vluxseg2ei8(vint16m4_t * op0, vint16m4_t * op1, const int16_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i16m4_m)))
-void vluxseg2ei8(vint16m4_t * op0, vint16m4_t * op1, vbool4_t op2, vint16m4_t op3, vint16m4_t op4, const int16_t * op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i16mf2)))
-void vluxseg2ei8(vint16mf2_t * op0, vint16mf2_t * op1, const int16_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i16mf2_m)))
-void vluxseg2ei8(vint16mf2_t * op0, vint16mf2_t * op1, vbool32_t op2, vint16mf2_t op3, vint16mf2_t op4, const int16_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i16mf4)))
-void vluxseg2ei8(vint16mf4_t * op0, vint16mf4_t * op1, const int16_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i16mf4_m)))
-void vluxseg2ei8(vint16mf4_t * op0, vint16mf4_t * op1, vbool64_t op2, vint16mf4_t op3, vint16mf4_t op4, const int16_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u16m1)))
-void vluxseg2ei8(vuint16m1_t * op0, vuint16m1_t * op1, const uint16_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u16m1_m)))
-void vluxseg2ei8(vuint16m1_t * op0, vuint16m1_t * op1, vbool16_t op2, vuint16m1_t op3, vuint16m1_t op4, const uint16_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u16m2)))
-void vluxseg2ei8(vuint16m2_t * op0, vuint16m2_t * op1, const uint16_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u16m2_m)))
-void vluxseg2ei8(vuint16m2_t * op0, vuint16m2_t * op1, vbool8_t op2, vuint16m2_t op3, vuint16m2_t op4, const uint16_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u16m4)))
-void vluxseg2ei8(vuint16m4_t * op0, vuint16m4_t * op1, const uint16_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u16m4_m)))
-void vluxseg2ei8(vuint16m4_t * op0, vuint16m4_t * op1, vbool4_t op2, vuint16m4_t op3, vuint16m4_t op4, const uint16_t * op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u16mf2)))
-void vluxseg2ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, const uint16_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u16mf2_m)))
-void vluxseg2ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vbool32_t op2, vuint16mf2_t op3, vuint16mf2_t op4, const uint16_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u16mf4)))
-void vluxseg2ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, const uint16_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u16mf4_m)))
-void vluxseg2ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vbool64_t op2, vuint16mf4_t op3, vuint16mf4_t op4, const uint16_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i16m1)))
-void vluxseg3ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, const int16_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i16m1_m)))
-void vluxseg3ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vbool16_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, const int16_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i16m2)))
-void vluxseg3ei8(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, const int16_t * op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i16m2_m)))
-void vluxseg3ei8(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vbool8_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, const int16_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i16mf2)))
-void vluxseg3ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, const int16_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i16mf2_m)))
-void vluxseg3ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vbool32_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, const int16_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i16mf4)))
-void vluxseg3ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, const int16_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i16mf4_m)))
-void vluxseg3ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vbool64_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, const int16_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u16m1)))
-void vluxseg3ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, const uint16_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u16m1_m)))
-void vluxseg3ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vbool16_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, const uint16_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u16m2)))
-void vluxseg3ei8(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, const uint16_t * op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u16m2_m)))
-void vluxseg3ei8(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vbool8_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, const uint16_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u16mf2)))
-void vluxseg3ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, const uint16_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u16mf2_m)))
-void vluxseg3ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vbool32_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, const uint16_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u16mf4)))
-void vluxseg3ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, const uint16_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u16mf4_m)))
-void vluxseg3ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vbool64_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, const uint16_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i16m1)))
-void vluxseg4ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, const int16_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i16m1_m)))
-void vluxseg4ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vbool16_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, const int16_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i16m2)))
-void vluxseg4ei8(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, const int16_t * op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i16m2_m)))
-void vluxseg4ei8(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, vbool8_t op4, vint16m2_t op5, vint16m2_t op6, vint16m2_t op7, vint16m2_t op8, const int16_t * op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i16mf2)))
-void vluxseg4ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, const int16_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i16mf2_m)))
-void vluxseg4ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vbool32_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, const int16_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i16mf4)))
-void vluxseg4ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, const int16_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i16mf4_m)))
-void vluxseg4ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vbool64_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, const int16_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u16m1)))
-void vluxseg4ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, const uint16_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u16m1_m)))
-void vluxseg4ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vbool16_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, const uint16_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u16m2)))
-void vluxseg4ei8(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, const uint16_t * op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u16m2_m)))
-void vluxseg4ei8(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, vbool8_t op4, vuint16m2_t op5, vuint16m2_t op6, vuint16m2_t op7, vuint16m2_t op8, const uint16_t * op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u16mf2)))
-void vluxseg4ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, const uint16_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u16mf2_m)))
-void vluxseg4ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vbool32_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, const uint16_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u16mf4)))
-void vluxseg4ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, const uint16_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u16mf4_m)))
-void vluxseg4ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vbool64_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, const uint16_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i16m1)))
-void vluxseg5ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, const int16_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i16m1_m)))
-void vluxseg5ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vbool16_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, const int16_t * op11, vuint8mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i16mf2)))
-void vluxseg5ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, const int16_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i16mf2_m)))
-void vluxseg5ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vbool32_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, const int16_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i16mf4)))
-void vluxseg5ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, const int16_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i16mf4_m)))
-void vluxseg5ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vbool64_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, const int16_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u16m1)))
-void vluxseg5ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, const uint16_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u16m1_m)))
-void vluxseg5ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vbool16_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, const uint16_t * op11, vuint8mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u16mf2)))
-void vluxseg5ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, const uint16_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u16mf2_m)))
-void vluxseg5ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vbool32_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, const uint16_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u16mf4)))
-void vluxseg5ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, const uint16_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u16mf4_m)))
-void vluxseg5ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vbool64_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, const uint16_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i16m1)))
-void vluxseg6ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, const int16_t * op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i16m1_m)))
-void vluxseg6ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vbool16_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, const int16_t * op13, vuint8mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i16mf2)))
-void vluxseg6ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, const int16_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i16mf2_m)))
-void vluxseg6ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vbool32_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, const int16_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i16mf4)))
-void vluxseg6ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, const int16_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i16mf4_m)))
-void vluxseg6ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vbool64_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, const int16_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u16m1)))
-void vluxseg6ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, const uint16_t * op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u16m1_m)))
-void vluxseg6ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vbool16_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, const uint16_t * op13, vuint8mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u16mf2)))
-void vluxseg6ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, const uint16_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u16mf2_m)))
-void vluxseg6ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vbool32_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, const uint16_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u16mf4)))
-void vluxseg6ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, const uint16_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u16mf4_m)))
-void vluxseg6ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vbool64_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, const uint16_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i16m1)))
-void vluxseg7ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, const int16_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i16m1_m)))
-void vluxseg7ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vbool16_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, const int16_t * op15, vuint8mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i16mf2)))
-void vluxseg7ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, const int16_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i16mf2_m)))
-void vluxseg7ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vbool32_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, const int16_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i16mf4)))
-void vluxseg7ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, const int16_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i16mf4_m)))
-void vluxseg7ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vbool64_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, const int16_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u16m1)))
-void vluxseg7ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, const uint16_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u16m1_m)))
-void vluxseg7ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vbool16_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, const uint16_t * op15, vuint8mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u16mf2)))
-void vluxseg7ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, const uint16_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u16mf2_m)))
-void vluxseg7ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vbool32_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, const uint16_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u16mf4)))
-void vluxseg7ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, const uint16_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u16mf4_m)))
-void vluxseg7ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vbool64_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, const uint16_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i16m1)))
-void vluxseg8ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, const int16_t * op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i16m1_m)))
-void vluxseg8ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, vbool16_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, vint16m1_t op15, vint16m1_t op16, const int16_t * op17, vuint8mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i16mf2)))
-void vluxseg8ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, const int16_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i16mf2_m)))
-void vluxseg8ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, vbool32_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, vint16mf2_t op15, vint16mf2_t op16, const int16_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i16mf4)))
-void vluxseg8ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, const int16_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i16mf4_m)))
-void vluxseg8ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, vbool64_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, vint16mf4_t op15, vint16mf4_t op16, const int16_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u16m1)))
-void vluxseg8ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, const uint16_t * op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u16m1_m)))
-void vluxseg8ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, vbool16_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, vuint16m1_t op15, vuint16m1_t op16, const uint16_t * op17, vuint8mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u16mf2)))
-void vluxseg8ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, const uint16_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u16mf2_m)))
-void vluxseg8ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, vbool32_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, vuint16mf2_t op15, vuint16mf2_t op16, const uint16_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u16mf4)))
-void vluxseg8ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, const uint16_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u16mf4_m)))
-void vluxseg8ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, vbool64_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, vuint16mf4_t op15, vuint16mf4_t op16, const uint16_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i16m1)))
-void vluxseg2ei16(vint16m1_t * op0, vint16m1_t * op1, const int16_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i16m1_m)))
-void vluxseg2ei16(vint16m1_t * op0, vint16m1_t * op1, vbool16_t op2, vint16m1_t op3, vint16m1_t op4, const int16_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i16m2)))
-void vluxseg2ei16(vint16m2_t * op0, vint16m2_t * op1, const int16_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i16m2_m)))
-void vluxseg2ei16(vint16m2_t * op0, vint16m2_t * op1, vbool8_t op2, vint16m2_t op3, vint16m2_t op4, const int16_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i16m4)))
-void vluxseg2ei16(vint16m4_t * op0, vint16m4_t * op1, const int16_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i16m4_m)))
-void vluxseg2ei16(vint16m4_t * op0, vint16m4_t * op1, vbool4_t op2, vint16m4_t op3, vint16m4_t op4, const int16_t * op5, vuint16m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i16mf2)))
-void vluxseg2ei16(vint16mf2_t * op0, vint16mf2_t * op1, const int16_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i16mf2_m)))
-void vluxseg2ei16(vint16mf2_t * op0, vint16mf2_t * op1, vbool32_t op2, vint16mf2_t op3, vint16mf2_t op4, const int16_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i16mf4)))
-void vluxseg2ei16(vint16mf4_t * op0, vint16mf4_t * op1, const int16_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i16mf4_m)))
-void vluxseg2ei16(vint16mf4_t * op0, vint16mf4_t * op1, vbool64_t op2, vint16mf4_t op3, vint16mf4_t op4, const int16_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u16m1)))
-void vluxseg2ei16(vuint16m1_t * op0, vuint16m1_t * op1, const uint16_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u16m1_m)))
-void vluxseg2ei16(vuint16m1_t * op0, vuint16m1_t * op1, vbool16_t op2, vuint16m1_t op3, vuint16m1_t op4, const uint16_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u16m2)))
-void vluxseg2ei16(vuint16m2_t * op0, vuint16m2_t * op1, const uint16_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u16m2_m)))
-void vluxseg2ei16(vuint16m2_t * op0, vuint16m2_t * op1, vbool8_t op2, vuint16m2_t op3, vuint16m2_t op4, const uint16_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u16m4)))
-void vluxseg2ei16(vuint16m4_t * op0, vuint16m4_t * op1, const uint16_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u16m4_m)))
-void vluxseg2ei16(vuint16m4_t * op0, vuint16m4_t * op1, vbool4_t op2, vuint16m4_t op3, vuint16m4_t op4, const uint16_t * op5, vuint16m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u16mf2)))
-void vluxseg2ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, const uint16_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u16mf2_m)))
-void vluxseg2ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vbool32_t op2, vuint16mf2_t op3, vuint16mf2_t op4, const uint16_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u16mf4)))
-void vluxseg2ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, const uint16_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u16mf4_m)))
-void vluxseg2ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vbool64_t op2, vuint16mf4_t op3, vuint16mf4_t op4, const uint16_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i16m1)))
-void vluxseg3ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, const int16_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i16m1_m)))
-void vluxseg3ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vbool16_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, const int16_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i16m2)))
-void vluxseg3ei16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, const int16_t * op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i16m2_m)))
-void vluxseg3ei16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vbool8_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, const int16_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i16mf2)))
-void vluxseg3ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, const int16_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i16mf2_m)))
-void vluxseg3ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vbool32_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, const int16_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i16mf4)))
-void vluxseg3ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, const int16_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i16mf4_m)))
-void vluxseg3ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vbool64_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, const int16_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u16m1)))
-void vluxseg3ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, const uint16_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u16m1_m)))
-void vluxseg3ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vbool16_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, const uint16_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u16m2)))
-void vluxseg3ei16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, const uint16_t * op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u16m2_m)))
-void vluxseg3ei16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vbool8_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, const uint16_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u16mf2)))
-void vluxseg3ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, const uint16_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u16mf2_m)))
-void vluxseg3ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vbool32_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, const uint16_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u16mf4)))
-void vluxseg3ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, const uint16_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u16mf4_m)))
-void vluxseg3ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vbool64_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, const uint16_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i16m1)))
-void vluxseg4ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, const int16_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i16m1_m)))
-void vluxseg4ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vbool16_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, const int16_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i16m2)))
-void vluxseg4ei16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, const int16_t * op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i16m2_m)))
-void vluxseg4ei16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, vbool8_t op4, vint16m2_t op5, vint16m2_t op6, vint16m2_t op7, vint16m2_t op8, const int16_t * op9, vuint16m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i16mf2)))
-void vluxseg4ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, const int16_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i16mf2_m)))
-void vluxseg4ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vbool32_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, const int16_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i16mf4)))
-void vluxseg4ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, const int16_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i16mf4_m)))
-void vluxseg4ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vbool64_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, const int16_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u16m1)))
-void vluxseg4ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, const uint16_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u16m1_m)))
-void vluxseg4ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vbool16_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, const uint16_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u16m2)))
-void vluxseg4ei16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, const uint16_t * op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u16m2_m)))
-void vluxseg4ei16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, vbool8_t op4, vuint16m2_t op5, vuint16m2_t op6, vuint16m2_t op7, vuint16m2_t op8, const uint16_t * op9, vuint16m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u16mf2)))
-void vluxseg4ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, const uint16_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u16mf2_m)))
-void vluxseg4ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vbool32_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, const uint16_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u16mf4)))
-void vluxseg4ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, const uint16_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u16mf4_m)))
-void vluxseg4ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vbool64_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, const uint16_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i16m1)))
-void vluxseg5ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, const int16_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i16m1_m)))
-void vluxseg5ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vbool16_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, const int16_t * op11, vuint16m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i16mf2)))
-void vluxseg5ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, const int16_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i16mf2_m)))
-void vluxseg5ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vbool32_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, const int16_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i16mf4)))
-void vluxseg5ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, const int16_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i16mf4_m)))
-void vluxseg5ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vbool64_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, const int16_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u16m1)))
-void vluxseg5ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, const uint16_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u16m1_m)))
-void vluxseg5ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vbool16_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, const uint16_t * op11, vuint16m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u16mf2)))
-void vluxseg5ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, const uint16_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u16mf2_m)))
-void vluxseg5ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vbool32_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, const uint16_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u16mf4)))
-void vluxseg5ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, const uint16_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u16mf4_m)))
-void vluxseg5ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vbool64_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, const uint16_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i16m1)))
-void vluxseg6ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, const int16_t * op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i16m1_m)))
-void vluxseg6ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vbool16_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, const int16_t * op13, vuint16m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i16mf2)))
-void vluxseg6ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, const int16_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i16mf2_m)))
-void vluxseg6ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vbool32_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, const int16_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i16mf4)))
-void vluxseg6ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, const int16_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i16mf4_m)))
-void vluxseg6ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vbool64_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, const int16_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u16m1)))
-void vluxseg6ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, const uint16_t * op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u16m1_m)))
-void vluxseg6ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vbool16_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, const uint16_t * op13, vuint16m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u16mf2)))
-void vluxseg6ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, const uint16_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u16mf2_m)))
-void vluxseg6ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vbool32_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, const uint16_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u16mf4)))
-void vluxseg6ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, const uint16_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u16mf4_m)))
-void vluxseg6ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vbool64_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, const uint16_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i16m1)))
-void vluxseg7ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, const int16_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i16m1_m)))
-void vluxseg7ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vbool16_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, const int16_t * op15, vuint16m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i16mf2)))
-void vluxseg7ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, const int16_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i16mf2_m)))
-void vluxseg7ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vbool32_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, const int16_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i16mf4)))
-void vluxseg7ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, const int16_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i16mf4_m)))
-void vluxseg7ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vbool64_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, const int16_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u16m1)))
-void vluxseg7ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, const uint16_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u16m1_m)))
-void vluxseg7ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vbool16_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, const uint16_t * op15, vuint16m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u16mf2)))
-void vluxseg7ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, const uint16_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u16mf2_m)))
-void vluxseg7ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vbool32_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, const uint16_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u16mf4)))
-void vluxseg7ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, const uint16_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u16mf4_m)))
-void vluxseg7ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vbool64_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, const uint16_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i16m1)))
-void vluxseg8ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, const int16_t * op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i16m1_m)))
-void vluxseg8ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, vbool16_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, vint16m1_t op15, vint16m1_t op16, const int16_t * op17, vuint16m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i16mf2)))
-void vluxseg8ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, const int16_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i16mf2_m)))
-void vluxseg8ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, vbool32_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, vint16mf2_t op15, vint16mf2_t op16, const int16_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i16mf4)))
-void vluxseg8ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, const int16_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i16mf4_m)))
-void vluxseg8ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, vbool64_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, vint16mf4_t op15, vint16mf4_t op16, const int16_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u16m1)))
-void vluxseg8ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, const uint16_t * op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u16m1_m)))
-void vluxseg8ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, vbool16_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, vuint16m1_t op15, vuint16m1_t op16, const uint16_t * op17, vuint16m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u16mf2)))
-void vluxseg8ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, const uint16_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u16mf2_m)))
-void vluxseg8ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, vbool32_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, vuint16mf2_t op15, vuint16mf2_t op16, const uint16_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u16mf4)))
-void vluxseg8ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, const uint16_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u16mf4_m)))
-void vluxseg8ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, vbool64_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, vuint16mf4_t op15, vuint16mf4_t op16, const uint16_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i16m1)))
-void vluxseg2ei32(vint16m1_t * op0, vint16m1_t * op1, const int16_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i16m1_m)))
-void vluxseg2ei32(vint16m1_t * op0, vint16m1_t * op1, vbool16_t op2, vint16m1_t op3, vint16m1_t op4, const int16_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i16m2)))
-void vluxseg2ei32(vint16m2_t * op0, vint16m2_t * op1, const int16_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i16m2_m)))
-void vluxseg2ei32(vint16m2_t * op0, vint16m2_t * op1, vbool8_t op2, vint16m2_t op3, vint16m2_t op4, const int16_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i16m4)))
-void vluxseg2ei32(vint16m4_t * op0, vint16m4_t * op1, const int16_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i16m4_m)))
-void vluxseg2ei32(vint16m4_t * op0, vint16m4_t * op1, vbool4_t op2, vint16m4_t op3, vint16m4_t op4, const int16_t * op5, vuint32m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i16mf2)))
-void vluxseg2ei32(vint16mf2_t * op0, vint16mf2_t * op1, const int16_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i16mf2_m)))
-void vluxseg2ei32(vint16mf2_t * op0, vint16mf2_t * op1, vbool32_t op2, vint16mf2_t op3, vint16mf2_t op4, const int16_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i16mf4)))
-void vluxseg2ei32(vint16mf4_t * op0, vint16mf4_t * op1, const int16_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i16mf4_m)))
-void vluxseg2ei32(vint16mf4_t * op0, vint16mf4_t * op1, vbool64_t op2, vint16mf4_t op3, vint16mf4_t op4, const int16_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u16m1)))
-void vluxseg2ei32(vuint16m1_t * op0, vuint16m1_t * op1, const uint16_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u16m1_m)))
-void vluxseg2ei32(vuint16m1_t * op0, vuint16m1_t * op1, vbool16_t op2, vuint16m1_t op3, vuint16m1_t op4, const uint16_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u16m2)))
-void vluxseg2ei32(vuint16m2_t * op0, vuint16m2_t * op1, const uint16_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u16m2_m)))
-void vluxseg2ei32(vuint16m2_t * op0, vuint16m2_t * op1, vbool8_t op2, vuint16m2_t op3, vuint16m2_t op4, const uint16_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u16m4)))
-void vluxseg2ei32(vuint16m4_t * op0, vuint16m4_t * op1, const uint16_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u16m4_m)))
-void vluxseg2ei32(vuint16m4_t * op0, vuint16m4_t * op1, vbool4_t op2, vuint16m4_t op3, vuint16m4_t op4, const uint16_t * op5, vuint32m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u16mf2)))
-void vluxseg2ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, const uint16_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u16mf2_m)))
-void vluxseg2ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vbool32_t op2, vuint16mf2_t op3, vuint16mf2_t op4, const uint16_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u16mf4)))
-void vluxseg2ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, const uint16_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u16mf4_m)))
-void vluxseg2ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vbool64_t op2, vuint16mf4_t op3, vuint16mf4_t op4, const uint16_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i16m1)))
-void vluxseg3ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, const int16_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i16m1_m)))
-void vluxseg3ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vbool16_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, const int16_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i16m2)))
-void vluxseg3ei32(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, const int16_t * op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i16m2_m)))
-void vluxseg3ei32(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vbool8_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, const int16_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i16mf2)))
-void vluxseg3ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, const int16_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i16mf2_m)))
-void vluxseg3ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vbool32_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, const int16_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i16mf4)))
-void vluxseg3ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, const int16_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i16mf4_m)))
-void vluxseg3ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vbool64_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, const int16_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u16m1)))
-void vluxseg3ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, const uint16_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u16m1_m)))
-void vluxseg3ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vbool16_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, const uint16_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u16m2)))
-void vluxseg3ei32(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, const uint16_t * op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u16m2_m)))
-void vluxseg3ei32(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vbool8_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, const uint16_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u16mf2)))
-void vluxseg3ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, const uint16_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u16mf2_m)))
-void vluxseg3ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vbool32_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, const uint16_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u16mf4)))
-void vluxseg3ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, const uint16_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u16mf4_m)))
-void vluxseg3ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vbool64_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, const uint16_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i16m1)))
-void vluxseg4ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, const int16_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i16m1_m)))
-void vluxseg4ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vbool16_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, const int16_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i16m2)))
-void vluxseg4ei32(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, const int16_t * op4, vuint32m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i16m2_m)))
-void vluxseg4ei32(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, vbool8_t op4, vint16m2_t op5, vint16m2_t op6, vint16m2_t op7, vint16m2_t op8, const int16_t * op9, vuint32m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i16mf2)))
-void vluxseg4ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, const int16_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i16mf2_m)))
-void vluxseg4ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vbool32_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, const int16_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i16mf4)))
-void vluxseg4ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, const int16_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i16mf4_m)))
-void vluxseg4ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vbool64_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, const int16_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u16m1)))
-void vluxseg4ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, const uint16_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u16m1_m)))
-void vluxseg4ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vbool16_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, const uint16_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u16m2)))
-void vluxseg4ei32(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, const uint16_t * op4, vuint32m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u16m2_m)))
-void vluxseg4ei32(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, vbool8_t op4, vuint16m2_t op5, vuint16m2_t op6, vuint16m2_t op7, vuint16m2_t op8, const uint16_t * op9, vuint32m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u16mf2)))
-void vluxseg4ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, const uint16_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u16mf2_m)))
-void vluxseg4ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vbool32_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, const uint16_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u16mf4)))
-void vluxseg4ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, const uint16_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u16mf4_m)))
-void vluxseg4ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vbool64_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, const uint16_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i16m1)))
-void vluxseg5ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, const int16_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i16m1_m)))
-void vluxseg5ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vbool16_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, const int16_t * op11, vuint32m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i16mf2)))
-void vluxseg5ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, const int16_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i16mf2_m)))
-void vluxseg5ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vbool32_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, const int16_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i16mf4)))
-void vluxseg5ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, const int16_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i16mf4_m)))
-void vluxseg5ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vbool64_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, const int16_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u16m1)))
-void vluxseg5ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, const uint16_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u16m1_m)))
-void vluxseg5ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vbool16_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, const uint16_t * op11, vuint32m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u16mf2)))
-void vluxseg5ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, const uint16_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u16mf2_m)))
-void vluxseg5ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vbool32_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, const uint16_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u16mf4)))
-void vluxseg5ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, const uint16_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u16mf4_m)))
-void vluxseg5ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vbool64_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, const uint16_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i16m1)))
-void vluxseg6ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, const int16_t * op6, vuint32m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i16m1_m)))
-void vluxseg6ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vbool16_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, const int16_t * op13, vuint32m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i16mf2)))
-void vluxseg6ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, const int16_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i16mf2_m)))
-void vluxseg6ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vbool32_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, const int16_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i16mf4)))
-void vluxseg6ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, const int16_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i16mf4_m)))
-void vluxseg6ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vbool64_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, const int16_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u16m1)))
-void vluxseg6ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, const uint16_t * op6, vuint32m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u16m1_m)))
-void vluxseg6ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vbool16_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, const uint16_t * op13, vuint32m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u16mf2)))
-void vluxseg6ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, const uint16_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u16mf2_m)))
-void vluxseg6ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vbool32_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, const uint16_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u16mf4)))
-void vluxseg6ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, const uint16_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u16mf4_m)))
-void vluxseg6ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vbool64_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, const uint16_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i16m1)))
-void vluxseg7ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, const int16_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i16m1_m)))
-void vluxseg7ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vbool16_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, const int16_t * op15, vuint32m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i16mf2)))
-void vluxseg7ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, const int16_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i16mf2_m)))
-void vluxseg7ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vbool32_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, const int16_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i16mf4)))
-void vluxseg7ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, const int16_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i16mf4_m)))
-void vluxseg7ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vbool64_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, const int16_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u16m1)))
-void vluxseg7ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, const uint16_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u16m1_m)))
-void vluxseg7ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vbool16_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, const uint16_t * op15, vuint32m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u16mf2)))
-void vluxseg7ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, const uint16_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u16mf2_m)))
-void vluxseg7ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vbool32_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, const uint16_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u16mf4)))
-void vluxseg7ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, const uint16_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u16mf4_m)))
-void vluxseg7ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vbool64_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, const uint16_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i16m1)))
-void vluxseg8ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, const int16_t * op8, vuint32m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i16m1_m)))
-void vluxseg8ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, vbool16_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, vint16m1_t op15, vint16m1_t op16, const int16_t * op17, vuint32m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i16mf2)))
-void vluxseg8ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, const int16_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i16mf2_m)))
-void vluxseg8ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, vbool32_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, vint16mf2_t op15, vint16mf2_t op16, const int16_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i16mf4)))
-void vluxseg8ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, const int16_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i16mf4_m)))
-void vluxseg8ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, vbool64_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, vint16mf4_t op15, vint16mf4_t op16, const int16_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8m1)))
-void vssseg2e8(int8_t * op0, ptrdiff_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8m1_m)))
-void vssseg2e8(vbool8_t op0, int8_t * op1, ptrdiff_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8m2)))
-void vssseg2e8(int8_t * op0, ptrdiff_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8m2_m)))
-void vssseg2e8(vbool4_t op0, int8_t * op1, ptrdiff_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8m4)))
-void vssseg2e8(int8_t * op0, ptrdiff_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8m4_m)))
-void vssseg2e8(vbool2_t op0, int8_t * op1, ptrdiff_t op2, vint8m4_t op3, vint8m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8mf2)))
-void vssseg2e8(int8_t * op0, ptrdiff_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8mf2_m)))
-void vssseg2e8(vbool16_t op0, int8_t * op1, ptrdiff_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8mf4)))
-void vssseg2e8(int8_t * op0, ptrdiff_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8mf4_m)))
-void vssseg2e8(vbool32_t op0, int8_t * op1, ptrdiff_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8mf8)))
-void vssseg2e8(int8_t * op0, ptrdiff_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8mf8_m)))
-void vssseg2e8(vbool64_t op0, int8_t * op1, ptrdiff_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u16m1)))
-void vluxseg8ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, const uint16_t * op8, vuint32m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u16m1_m)))
-void vluxseg8ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, vbool16_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, vuint16m1_t op15, vuint16m1_t op16, const uint16_t * op17, vuint32m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u16mf2)))
-void vluxseg8ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, const uint16_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u16mf2_m)))
-void vluxseg8ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, vbool32_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, vuint16mf2_t op15, vuint16mf2_t op16, const uint16_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u16mf4)))
-void vluxseg8ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, const uint16_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u16mf4_m)))
-void vluxseg8ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, vbool64_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, vuint16mf4_t op15, vuint16mf4_t op16, const uint16_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i16m1)))
-void vluxseg2ei64(vint16m1_t * op0, vint16m1_t * op1, const int16_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i16m1_m)))
-void vluxseg2ei64(vint16m1_t * op0, vint16m1_t * op1, vbool16_t op2, vint16m1_t op3, vint16m1_t op4, const int16_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i16m2)))
-void vluxseg2ei64(vint16m2_t * op0, vint16m2_t * op1, const int16_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i16m2_m)))
-void vluxseg2ei64(vint16m2_t * op0, vint16m2_t * op1, vbool8_t op2, vint16m2_t op3, vint16m2_t op4, const int16_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i16mf2)))
-void vluxseg2ei64(vint16mf2_t * op0, vint16mf2_t * op1, const int16_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i16mf2_m)))
-void vluxseg2ei64(vint16mf2_t * op0, vint16mf2_t * op1, vbool32_t op2, vint16mf2_t op3, vint16mf2_t op4, const int16_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i16mf4)))
-void vluxseg2ei64(vint16mf4_t * op0, vint16mf4_t * op1, const int16_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i16mf4_m)))
-void vluxseg2ei64(vint16mf4_t * op0, vint16mf4_t * op1, vbool64_t op2, vint16mf4_t op3, vint16mf4_t op4, const int16_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u16m1)))
-void vluxseg2ei64(vuint16m1_t * op0, vuint16m1_t * op1, const uint16_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u16m1_m)))
-void vluxseg2ei64(vuint16m1_t * op0, vuint16m1_t * op1, vbool16_t op2, vuint16m1_t op3, vuint16m1_t op4, const uint16_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u16m2)))
-void vluxseg2ei64(vuint16m2_t * op0, vuint16m2_t * op1, const uint16_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u16m2_m)))
-void vluxseg2ei64(vuint16m2_t * op0, vuint16m2_t * op1, vbool8_t op2, vuint16m2_t op3, vuint16m2_t op4, const uint16_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u16mf2)))
-void vluxseg2ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, const uint16_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u16mf2_m)))
-void vluxseg2ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vbool32_t op2, vuint16mf2_t op3, vuint16mf2_t op4, const uint16_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u16mf4)))
-void vluxseg2ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, const uint16_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u16mf4_m)))
-void vluxseg2ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vbool64_t op2, vuint16mf4_t op3, vuint16mf4_t op4, const uint16_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i16m1)))
-void vluxseg3ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, const int16_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i16m1_m)))
-void vluxseg3ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vbool16_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, const int16_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i16m2)))
-void vluxseg3ei64(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, const int16_t * op3, vuint64m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i16m2_m)))
-void vluxseg3ei64(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vbool8_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, const int16_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i16mf2)))
-void vluxseg3ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, const int16_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i16mf2_m)))
-void vluxseg3ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vbool32_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, const int16_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i16mf4)))
-void vluxseg3ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, const int16_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i16mf4_m)))
-void vluxseg3ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vbool64_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, const int16_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u16m1)))
-void vluxseg3ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, const uint16_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u16m1_m)))
-void vluxseg3ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vbool16_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, const uint16_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u16m2)))
-void vluxseg3ei64(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, const uint16_t * op3, vuint64m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u16m2_m)))
-void vluxseg3ei64(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vbool8_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, const uint16_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u16mf2)))
-void vluxseg3ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, const uint16_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u16mf2_m)))
-void vluxseg3ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vbool32_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, const uint16_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u16mf4)))
-void vluxseg3ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, const uint16_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u16mf4_m)))
-void vluxseg3ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vbool64_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, const uint16_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i16m1)))
-void vluxseg4ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, const int16_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i16m1_m)))
-void vluxseg4ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vbool16_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, const int16_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i16m2)))
-void vluxseg4ei64(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, const int16_t * op4, vuint64m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i16m2_m)))
-void vluxseg4ei64(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, vbool8_t op4, vint16m2_t op5, vint16m2_t op6, vint16m2_t op7, vint16m2_t op8, const int16_t * op9, vuint64m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i16mf2)))
-void vluxseg4ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, const int16_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i16mf2_m)))
-void vluxseg4ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vbool32_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, const int16_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i16mf4)))
-void vluxseg4ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, const int16_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i16mf4_m)))
-void vluxseg4ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vbool64_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, const int16_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u16m1)))
-void vluxseg4ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, const uint16_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u16m1_m)))
-void vluxseg4ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vbool16_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, const uint16_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u16m2)))
-void vluxseg4ei64(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, const uint16_t * op4, vuint64m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u16m2_m)))
-void vluxseg4ei64(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, vbool8_t op4, vuint16m2_t op5, vuint16m2_t op6, vuint16m2_t op7, vuint16m2_t op8, const uint16_t * op9, vuint64m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u16mf2)))
-void vluxseg4ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, const uint16_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u16mf2_m)))
-void vluxseg4ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vbool32_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, const uint16_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u16mf4)))
-void vluxseg4ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, const uint16_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u16mf4_m)))
-void vluxseg4ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vbool64_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, const uint16_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i16m1)))
-void vluxseg5ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, const int16_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i16m1_m)))
-void vluxseg5ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vbool16_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, const int16_t * op11, vuint64m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i16mf2)))
-void vluxseg5ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, const int16_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i16mf2_m)))
-void vluxseg5ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vbool32_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, const int16_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i16mf4)))
-void vluxseg5ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, const int16_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i16mf4_m)))
-void vluxseg5ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vbool64_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, const int16_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u16m1)))
-void vluxseg5ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, const uint16_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u16m1_m)))
-void vluxseg5ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vbool16_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, const uint16_t * op11, vuint64m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u16mf2)))
-void vluxseg5ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, const uint16_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u16mf2_m)))
-void vluxseg5ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vbool32_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, const uint16_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u16mf4)))
-void vluxseg5ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, const uint16_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u16mf4_m)))
-void vluxseg5ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vbool64_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, const uint16_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i16m1)))
-void vluxseg6ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, const int16_t * op6, vuint64m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i16m1_m)))
-void vluxseg6ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vbool16_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, const int16_t * op13, vuint64m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i16mf2)))
-void vluxseg6ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, const int16_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i16mf2_m)))
-void vluxseg6ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vbool32_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, const int16_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i16mf4)))
-void vluxseg6ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, const int16_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i16mf4_m)))
-void vluxseg6ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vbool64_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, const int16_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8m1)))
-void vssseg2e8(uint8_t * op0, ptrdiff_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8m1_m)))
-void vssseg2e8(vbool8_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8m2)))
-void vssseg2e8(uint8_t * op0, ptrdiff_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8m2_m)))
-void vssseg2e8(vbool4_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8m4)))
-void vssseg2e8(uint8_t * op0, ptrdiff_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8m4_m)))
-void vssseg2e8(vbool2_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m4_t op3, vuint8m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8mf2)))
-void vssseg2e8(uint8_t * op0, ptrdiff_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8mf2_m)))
-void vssseg2e8(vbool16_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8mf4)))
-void vssseg2e8(uint8_t * op0, ptrdiff_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8mf4_m)))
-void vssseg2e8(vbool32_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8mf8)))
-void vssseg2e8(uint8_t * op0, ptrdiff_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8mf8_m)))
-void vssseg2e8(vbool64_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u16m1)))
-void vluxseg6ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, const uint16_t * op6, vuint64m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u16m1_m)))
-void vluxseg6ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vbool16_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, const uint16_t * op13, vuint64m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u16mf2)))
-void vluxseg6ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, const uint16_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u16mf2_m)))
-void vluxseg6ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vbool32_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, const uint16_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u16mf4)))
-void vluxseg6ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, const uint16_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u16mf4_m)))
-void vluxseg6ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vbool64_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, const uint16_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i16m1)))
-void vluxseg7ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, const int16_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i16m1_m)))
-void vluxseg7ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vbool16_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, const int16_t * op15, vuint64m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i16mf2)))
-void vluxseg7ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, const int16_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i16mf2_m)))
-void vluxseg7ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vbool32_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, const int16_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i16mf4)))
-void vluxseg7ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, const int16_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i16mf4_m)))
-void vluxseg7ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vbool64_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, const int16_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u16m1)))
-void vluxseg7ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, const uint16_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u16m1_m)))
-void vluxseg7ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vbool16_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, const uint16_t * op15, vuint64m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u16mf2)))
-void vluxseg7ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, const uint16_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u16mf2_m)))
-void vluxseg7ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vbool32_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, const uint16_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u16mf4)))
-void vluxseg7ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, const uint16_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u16mf4_m)))
-void vluxseg7ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vbool64_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, const uint16_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i16m1)))
-void vluxseg8ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, const int16_t * op8, vuint64m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i16m1_m)))
-void vluxseg8ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, vbool16_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, vint16m1_t op15, vint16m1_t op16, const int16_t * op17, vuint64m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i16mf2)))
-void vluxseg8ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, const int16_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i16mf2_m)))
-void vluxseg8ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, vbool32_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, vint16mf2_t op15, vint16mf2_t op16, const int16_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i16mf4)))
-void vluxseg8ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, const int16_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i16mf4_m)))
-void vluxseg8ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, vbool64_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, vint16mf4_t op15, vint16mf4_t op16, const int16_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u16m1)))
-void vluxseg8ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, const uint16_t * op8, vuint64m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u16m1_m)))
-void vluxseg8ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, vbool16_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, vuint16m1_t op15, vuint16m1_t op16, const uint16_t * op17, vuint64m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u16mf2)))
-void vluxseg8ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, const uint16_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u16mf2_m)))
-void vluxseg8ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, vbool32_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, vuint16mf2_t op15, vuint16mf2_t op16, const uint16_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u16mf4)))
-void vluxseg8ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, const uint16_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u16mf4_m)))
-void vluxseg8ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, vbool64_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, vuint16mf4_t op15, vuint16mf4_t op16, const uint16_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i32m1)))
-void vluxseg2ei8(vint32m1_t * op0, vint32m1_t * op1, const int32_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i32m1_m)))
-void vluxseg2ei8(vint32m1_t * op0, vint32m1_t * op1, vbool32_t op2, vint32m1_t op3, vint32m1_t op4, const int32_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i32m2)))
-void vluxseg2ei8(vint32m2_t * op0, vint32m2_t * op1, const int32_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i32m2_m)))
-void vluxseg2ei8(vint32m2_t * op0, vint32m2_t * op1, vbool16_t op2, vint32m2_t op3, vint32m2_t op4, const int32_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i32m4)))
-void vluxseg2ei8(vint32m4_t * op0, vint32m4_t * op1, const int32_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i32m4_m)))
-void vluxseg2ei8(vint32m4_t * op0, vint32m4_t * op1, vbool8_t op2, vint32m4_t op3, vint32m4_t op4, const int32_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i32mf2)))
-void vluxseg2ei8(vint32mf2_t * op0, vint32mf2_t * op1, const int32_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i32mf2_m)))
-void vluxseg2ei8(vint32mf2_t * op0, vint32mf2_t * op1, vbool64_t op2, vint32mf2_t op3, vint32mf2_t op4, const int32_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u32m1)))
-void vluxseg2ei8(vuint32m1_t * op0, vuint32m1_t * op1, const uint32_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u32m1_m)))
-void vluxseg2ei8(vuint32m1_t * op0, vuint32m1_t * op1, vbool32_t op2, vuint32m1_t op3, vuint32m1_t op4, const uint32_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u32m2)))
-void vluxseg2ei8(vuint32m2_t * op0, vuint32m2_t * op1, const uint32_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u32m2_m)))
-void vluxseg2ei8(vuint32m2_t * op0, vuint32m2_t * op1, vbool16_t op2, vuint32m2_t op3, vuint32m2_t op4, const uint32_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u32m4)))
-void vluxseg2ei8(vuint32m4_t * op0, vuint32m4_t * op1, const uint32_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u32m4_m)))
-void vluxseg2ei8(vuint32m4_t * op0, vuint32m4_t * op1, vbool8_t op2, vuint32m4_t op3, vuint32m4_t op4, const uint32_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u32mf2)))
-void vluxseg2ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, const uint32_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u32mf2_m)))
-void vluxseg2ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vbool64_t op2, vuint32mf2_t op3, vuint32mf2_t op4, const uint32_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i32m1)))
-void vluxseg3ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, const int32_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i32m1_m)))
-void vluxseg3ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vbool32_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, const int32_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i32m2)))
-void vluxseg3ei8(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, const int32_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i32m2_m)))
-void vluxseg3ei8(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vbool16_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, const int32_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i32mf2)))
-void vluxseg3ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, const int32_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i32mf2_m)))
-void vluxseg3ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vbool64_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, const int32_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u32m1)))
-void vluxseg3ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, const uint32_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u32m1_m)))
-void vluxseg3ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vbool32_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, const uint32_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u32m2)))
-void vluxseg3ei8(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, const uint32_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u32m2_m)))
-void vluxseg3ei8(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vbool16_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, const uint32_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u32mf2)))
-void vluxseg3ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, const uint32_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u32mf2_m)))
-void vluxseg3ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vbool64_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, const uint32_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i32m1)))
-void vluxseg4ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, const int32_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i32m1_m)))
-void vluxseg4ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vbool32_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, const int32_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i32m2)))
-void vluxseg4ei8(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, const int32_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i32m2_m)))
-void vluxseg4ei8(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, vbool16_t op4, vint32m2_t op5, vint32m2_t op6, vint32m2_t op7, vint32m2_t op8, const int32_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i32mf2)))
-void vluxseg4ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, const int32_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i32mf2_m)))
-void vluxseg4ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vbool64_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, const int32_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8m1)))
-void vsuxseg2ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8m1_m)))
-void vsuxseg2ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8m2)))
-void vsuxseg2ei8(int8_t * op0, vuint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8m2_m)))
-void vsuxseg2ei8(vbool4_t op0, int8_t * op1, vuint8m2_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8m4)))
-void vsuxseg2ei8(int8_t * op0, vuint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8m4_m)))
-void vsuxseg2ei8(vbool2_t op0, int8_t * op1, vuint8m4_t op2, vint8m4_t op3, vint8m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8mf2)))
-void vsuxseg2ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8mf2_m)))
-void vsuxseg2ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8mf4)))
-void vsuxseg2ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8mf4_m)))
-void vsuxseg2ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8mf8)))
-void vsuxseg2ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8mf8_m)))
-void vsuxseg2ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u32m1)))
-void vluxseg4ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, const uint32_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u32m1_m)))
-void vluxseg4ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vbool32_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, const uint32_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u32m2)))
-void vluxseg4ei8(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, const uint32_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u32m2_m)))
-void vluxseg4ei8(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, vbool16_t op4, vuint32m2_t op5, vuint32m2_t op6, vuint32m2_t op7, vuint32m2_t op8, const uint32_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u32mf2)))
-void vluxseg4ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, const uint32_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u32mf2_m)))
-void vluxseg4ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vbool64_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, const uint32_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i32m1)))
-void vluxseg5ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, const int32_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i32m1_m)))
-void vluxseg5ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vbool32_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, const int32_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i32mf2)))
-void vluxseg5ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, const int32_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i32mf2_m)))
-void vluxseg5ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vbool64_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, const int32_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u32m1)))
-void vluxseg5ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, const uint32_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u32m1_m)))
-void vluxseg5ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vbool32_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, const uint32_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u32mf2)))
-void vluxseg5ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, const uint32_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u32mf2_m)))
-void vluxseg5ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vbool64_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, const uint32_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i32m1)))
-void vluxseg6ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, const int32_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i32m1_m)))
-void vluxseg6ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vbool32_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, const int32_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i32mf2)))
-void vluxseg6ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, const int32_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i32mf2_m)))
-void vluxseg6ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vbool64_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, const int32_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u32m1)))
-void vluxseg6ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, const uint32_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u32m1_m)))
-void vluxseg6ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vbool32_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, const uint32_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u32mf2)))
-void vluxseg6ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, const uint32_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u32mf2_m)))
-void vluxseg6ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vbool64_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, const uint32_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i32m1)))
-void vluxseg7ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, const int32_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i32m1_m)))
-void vluxseg7ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vbool32_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, const int32_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i32mf2)))
-void vluxseg7ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, const int32_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i32mf2_m)))
-void vluxseg7ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vbool64_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, const int32_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u32m1)))
-void vluxseg7ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, const uint32_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u32m1_m)))
-void vluxseg7ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vbool32_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, const uint32_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u32mf2)))
-void vluxseg7ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, const uint32_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u32mf2_m)))
-void vluxseg7ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vbool64_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, const uint32_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i32m1)))
-void vluxseg8ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, const int32_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i32m1_m)))
-void vluxseg8ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, vbool32_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, vint32m1_t op15, vint32m1_t op16, const int32_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i32mf2)))
-void vluxseg8ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, const int32_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i32mf2_m)))
-void vluxseg8ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, vbool64_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, vint32mf2_t op15, vint32mf2_t op16, const int32_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u32m1)))
-void vluxseg8ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, const uint32_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u32m1_m)))
-void vluxseg8ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, vbool32_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, vuint32m1_t op15, vuint32m1_t op16, const uint32_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u32mf2)))
-void vluxseg8ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, const uint32_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u32mf2_m)))
-void vluxseg8ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, vbool64_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, vuint32mf2_t op15, vuint32mf2_t op16, const uint32_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i32m1)))
-void vluxseg2ei16(vint32m1_t * op0, vint32m1_t * op1, const int32_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i32m1_m)))
-void vluxseg2ei16(vint32m1_t * op0, vint32m1_t * op1, vbool32_t op2, vint32m1_t op3, vint32m1_t op4, const int32_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i32m2)))
-void vluxseg2ei16(vint32m2_t * op0, vint32m2_t * op1, const int32_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i32m2_m)))
-void vluxseg2ei16(vint32m2_t * op0, vint32m2_t * op1, vbool16_t op2, vint32m2_t op3, vint32m2_t op4, const int32_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i32m4)))
-void vluxseg2ei16(vint32m4_t * op0, vint32m4_t * op1, const int32_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i32m4_m)))
-void vluxseg2ei16(vint32m4_t * op0, vint32m4_t * op1, vbool8_t op2, vint32m4_t op3, vint32m4_t op4, const int32_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i32mf2)))
-void vluxseg2ei16(vint32mf2_t * op0, vint32mf2_t * op1, const int32_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i32mf2_m)))
-void vluxseg2ei16(vint32mf2_t * op0, vint32mf2_t * op1, vbool64_t op2, vint32mf2_t op3, vint32mf2_t op4, const int32_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8m1)))
-void vsuxseg2ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8m1_m)))
-void vsuxseg2ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8m2)))
-void vsuxseg2ei8(uint8_t * op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8m2_m)))
-void vsuxseg2ei8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8m4)))
-void vsuxseg2ei8(uint8_t * op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8m4_m)))
-void vsuxseg2ei8(vbool2_t op0, uint8_t * op1, vuint8m4_t op2, vuint8m4_t op3, vuint8m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8mf2)))
-void vsuxseg2ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8mf2_m)))
-void vsuxseg2ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8mf4)))
-void vsuxseg2ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8mf4_m)))
-void vsuxseg2ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8mf8)))
-void vsuxseg2ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8mf8_m)))
-void vsuxseg2ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u32m1)))
-void vluxseg2ei16(vuint32m1_t * op0, vuint32m1_t * op1, const uint32_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u32m1_m)))
-void vluxseg2ei16(vuint32m1_t * op0, vuint32m1_t * op1, vbool32_t op2, vuint32m1_t op3, vuint32m1_t op4, const uint32_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u32m2)))
-void vluxseg2ei16(vuint32m2_t * op0, vuint32m2_t * op1, const uint32_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u32m2_m)))
-void vluxseg2ei16(vuint32m2_t * op0, vuint32m2_t * op1, vbool16_t op2, vuint32m2_t op3, vuint32m2_t op4, const uint32_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u32m4)))
-void vluxseg2ei16(vuint32m4_t * op0, vuint32m4_t * op1, const uint32_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u32m4_m)))
-void vluxseg2ei16(vuint32m4_t * op0, vuint32m4_t * op1, vbool8_t op2, vuint32m4_t op3, vuint32m4_t op4, const uint32_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u32mf2)))
-void vluxseg2ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, const uint32_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u32mf2_m)))
-void vluxseg2ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vbool64_t op2, vuint32mf2_t op3, vuint32mf2_t op4, const uint32_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i32m1)))
-void vluxseg3ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, const int32_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i32m1_m)))
-void vluxseg3ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vbool32_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, const int32_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i32m2)))
-void vluxseg3ei16(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, const int32_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i32m2_m)))
-void vluxseg3ei16(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vbool16_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, const int32_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i32mf2)))
-void vluxseg3ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, const int32_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i32mf2_m)))
-void vluxseg3ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vbool64_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, const int32_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u32m1)))
-void vluxseg3ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, const uint32_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u32m1_m)))
-void vluxseg3ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vbool32_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, const uint32_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u32m2)))
-void vluxseg3ei16(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, const uint32_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u32m2_m)))
-void vluxseg3ei16(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vbool16_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, const uint32_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u32mf2)))
-void vluxseg3ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, const uint32_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u32mf2_m)))
-void vluxseg3ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vbool64_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, const uint32_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i32m1)))
-void vluxseg4ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, const int32_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i32m1_m)))
-void vluxseg4ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vbool32_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, const int32_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i32m2)))
-void vluxseg4ei16(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, const int32_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i32m2_m)))
-void vluxseg4ei16(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, vbool16_t op4, vint32m2_t op5, vint32m2_t op6, vint32m2_t op7, vint32m2_t op8, const int32_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i32mf2)))
-void vluxseg4ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, const int32_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i32mf2_m)))
-void vluxseg4ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vbool64_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, const int32_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u32m1)))
-void vluxseg4ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, const uint32_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u32m1_m)))
-void vluxseg4ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vbool32_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, const uint32_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u32m2)))
-void vluxseg4ei16(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, const uint32_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u32m2_m)))
-void vluxseg4ei16(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, vbool16_t op4, vuint32m2_t op5, vuint32m2_t op6, vuint32m2_t op7, vuint32m2_t op8, const uint32_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u32mf2)))
-void vluxseg4ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, const uint32_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u32mf2_m)))
-void vluxseg4ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vbool64_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, const uint32_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i32m1)))
-void vluxseg5ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, const int32_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i32m1_m)))
-void vluxseg5ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vbool32_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, const int32_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i32mf2)))
-void vluxseg5ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, const int32_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i32mf2_m)))
-void vluxseg5ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vbool64_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, const int32_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u32m1)))
-void vluxseg5ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, const uint32_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u32m1_m)))
-void vluxseg5ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vbool32_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, const uint32_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u32mf2)))
-void vluxseg5ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, const uint32_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u32mf2_m)))
-void vluxseg5ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vbool64_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, const uint32_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i32m1)))
-void vluxseg6ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, const int32_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i32m1_m)))
-void vluxseg6ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vbool32_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, const int32_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i32mf2)))
-void vluxseg6ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, const int32_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i32mf2_m)))
-void vluxseg6ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vbool64_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, const int32_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u32m1)))
-void vluxseg6ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, const uint32_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u32m1_m)))
-void vluxseg6ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vbool32_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, const uint32_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u32mf2)))
-void vluxseg6ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, const uint32_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u32mf2_m)))
-void vluxseg6ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vbool64_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, const uint32_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i32m1)))
-void vluxseg7ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, const int32_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i32m1_m)))
-void vluxseg7ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vbool32_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, const int32_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i32mf2)))
-void vluxseg7ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, const int32_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i32mf2_m)))
-void vluxseg7ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vbool64_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, const int32_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u32m1)))
-void vluxseg7ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, const uint32_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u32m1_m)))
-void vluxseg7ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vbool32_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, const uint32_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u32mf2)))
-void vluxseg7ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, const uint32_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u32mf2_m)))
-void vluxseg7ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vbool64_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, const uint32_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i32m1)))
-void vluxseg8ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, const int32_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i32m1_m)))
-void vluxseg8ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, vbool32_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, vint32m1_t op15, vint32m1_t op16, const int32_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i32mf2)))
-void vluxseg8ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, const int32_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i32mf2_m)))
-void vluxseg8ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, vbool64_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, vint32mf2_t op15, vint32mf2_t op16, const int32_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u32m1)))
-void vluxseg8ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, const uint32_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u32m1_m)))
-void vluxseg8ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, vbool32_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, vuint32m1_t op15, vuint32m1_t op16, const uint32_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u32mf2)))
-void vluxseg8ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, const uint32_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u32mf2_m)))
-void vluxseg8ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, vbool64_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, vuint32mf2_t op15, vuint32mf2_t op16, const uint32_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i32m1)))
-void vluxseg2ei32(vint32m1_t * op0, vint32m1_t * op1, const int32_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i32m1_m)))
-void vluxseg2ei32(vint32m1_t * op0, vint32m1_t * op1, vbool32_t op2, vint32m1_t op3, vint32m1_t op4, const int32_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i32m2)))
-void vluxseg2ei32(vint32m2_t * op0, vint32m2_t * op1, const int32_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i32m2_m)))
-void vluxseg2ei32(vint32m2_t * op0, vint32m2_t * op1, vbool16_t op2, vint32m2_t op3, vint32m2_t op4, const int32_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i32m4)))
-void vluxseg2ei32(vint32m4_t * op0, vint32m4_t * op1, const int32_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i32m4_m)))
-void vluxseg2ei32(vint32m4_t * op0, vint32m4_t * op1, vbool8_t op2, vint32m4_t op3, vint32m4_t op4, const int32_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i32mf2)))
-void vluxseg2ei32(vint32mf2_t * op0, vint32mf2_t * op1, const int32_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i32mf2_m)))
-void vluxseg2ei32(vint32mf2_t * op0, vint32mf2_t * op1, vbool64_t op2, vint32mf2_t op3, vint32mf2_t op4, const int32_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u32m1)))
-void vluxseg2ei32(vuint32m1_t * op0, vuint32m1_t * op1, const uint32_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u32m1_m)))
-void vluxseg2ei32(vuint32m1_t * op0, vuint32m1_t * op1, vbool32_t op2, vuint32m1_t op3, vuint32m1_t op4, const uint32_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u32m2)))
-void vluxseg2ei32(vuint32m2_t * op0, vuint32m2_t * op1, const uint32_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u32m2_m)))
-void vluxseg2ei32(vuint32m2_t * op0, vuint32m2_t * op1, vbool16_t op2, vuint32m2_t op3, vuint32m2_t op4, const uint32_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u32m4)))
-void vluxseg2ei32(vuint32m4_t * op0, vuint32m4_t * op1, const uint32_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u32m4_m)))
-void vluxseg2ei32(vuint32m4_t * op0, vuint32m4_t * op1, vbool8_t op2, vuint32m4_t op3, vuint32m4_t op4, const uint32_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u32mf2)))
-void vluxseg2ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, const uint32_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u32mf2_m)))
-void vluxseg2ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vbool64_t op2, vuint32mf2_t op3, vuint32mf2_t op4, const uint32_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i32m1)))
-void vluxseg3ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, const int32_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i32m1_m)))
-void vluxseg3ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vbool32_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, const int32_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i32m2)))
-void vluxseg3ei32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, const int32_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i32m2_m)))
-void vluxseg3ei32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vbool16_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, const int32_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i32mf2)))
-void vluxseg3ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, const int32_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i32mf2_m)))
-void vluxseg3ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vbool64_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, const int32_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u32m1)))
-void vluxseg3ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, const uint32_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u32m1_m)))
-void vluxseg3ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vbool32_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, const uint32_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u32m2)))
-void vluxseg3ei32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, const uint32_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u32m2_m)))
-void vluxseg3ei32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vbool16_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, const uint32_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u32mf2)))
-void vluxseg3ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, const uint32_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u32mf2_m)))
-void vluxseg3ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vbool64_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, const uint32_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i32m1)))
-void vluxseg4ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, const int32_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i32m1_m)))
-void vluxseg4ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vbool32_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, const int32_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i32m2)))
-void vluxseg4ei32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, const int32_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i32m2_m)))
-void vluxseg4ei32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, vbool16_t op4, vint32m2_t op5, vint32m2_t op6, vint32m2_t op7, vint32m2_t op8, const int32_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i32mf2)))
-void vluxseg4ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, const int32_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i32mf2_m)))
-void vluxseg4ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vbool64_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, const int32_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u32m1)))
-void vluxseg4ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, const uint32_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u32m1_m)))
-void vluxseg4ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vbool32_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, const uint32_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u32m2)))
-void vluxseg4ei32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, const uint32_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u32m2_m)))
-void vluxseg4ei32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, vbool16_t op4, vuint32m2_t op5, vuint32m2_t op6, vuint32m2_t op7, vuint32m2_t op8, const uint32_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u32mf2)))
-void vluxseg4ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, const uint32_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u32mf2_m)))
-void vluxseg4ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vbool64_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, const uint32_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i32m1)))
-void vluxseg5ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, const int32_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i32m1_m)))
-void vluxseg5ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vbool32_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, const int32_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i32mf2)))
-void vluxseg5ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, const int32_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i32mf2_m)))
-void vluxseg5ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vbool64_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, const int32_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u32m1)))
-void vluxseg5ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, const uint32_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u32m1_m)))
-void vluxseg5ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vbool32_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, const uint32_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u32mf2)))
-void vluxseg5ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, const uint32_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u32mf2_m)))
-void vluxseg5ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vbool64_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, const uint32_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i32m1)))
-void vluxseg6ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, const int32_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i32m1_m)))
-void vluxseg6ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vbool32_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, const int32_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i32mf2)))
-void vluxseg6ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, const int32_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i32mf2_m)))
-void vluxseg6ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vbool64_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, const int32_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u32m1)))
-void vluxseg6ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, const uint32_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u32m1_m)))
-void vluxseg6ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vbool32_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, const uint32_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u32mf2)))
-void vluxseg6ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, const uint32_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u32mf2_m)))
-void vluxseg6ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vbool64_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, const uint32_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i32m1)))
-void vluxseg7ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, const int32_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i32m1_m)))
-void vluxseg7ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vbool32_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, const int32_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i32mf2)))
-void vluxseg7ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, const int32_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i32mf2_m)))
-void vluxseg7ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vbool64_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, const int32_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u32m1)))
-void vluxseg7ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, const uint32_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u32m1_m)))
-void vluxseg7ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vbool32_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, const uint32_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u32mf2)))
-void vluxseg7ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, const uint32_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u32mf2_m)))
-void vluxseg7ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vbool64_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, const uint32_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i32m1)))
-void vluxseg8ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, const int32_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i32m1_m)))
-void vluxseg8ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, vbool32_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, vint32m1_t op15, vint32m1_t op16, const int32_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i32mf2)))
-void vluxseg8ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, const int32_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i32mf2_m)))
-void vluxseg8ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, vbool64_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, vint32mf2_t op15, vint32mf2_t op16, const int32_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u32m1)))
-void vluxseg8ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, const uint32_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u32m1_m)))
-void vluxseg8ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, vbool32_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, vuint32m1_t op15, vuint32m1_t op16, const uint32_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u32mf2)))
-void vluxseg8ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, const uint32_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u32mf2_m)))
-void vluxseg8ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, vbool64_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, vuint32mf2_t op15, vuint32mf2_t op16, const uint32_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i32m1)))
-void vluxseg2ei64(vint32m1_t * op0, vint32m1_t * op1, const int32_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i32m1_m)))
-void vluxseg2ei64(vint32m1_t * op0, vint32m1_t * op1, vbool32_t op2, vint32m1_t op3, vint32m1_t op4, const int32_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i32m2)))
-void vluxseg2ei64(vint32m2_t * op0, vint32m2_t * op1, const int32_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i32m2_m)))
-void vluxseg2ei64(vint32m2_t * op0, vint32m2_t * op1, vbool16_t op2, vint32m2_t op3, vint32m2_t op4, const int32_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i32m4)))
-void vluxseg2ei64(vint32m4_t * op0, vint32m4_t * op1, const int32_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i32m4_m)))
-void vluxseg2ei64(vint32m4_t * op0, vint32m4_t * op1, vbool8_t op2, vint32m4_t op3, vint32m4_t op4, const int32_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i32mf2)))
-void vluxseg2ei64(vint32mf2_t * op0, vint32mf2_t * op1, const int32_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i32mf2_m)))
-void vluxseg2ei64(vint32mf2_t * op0, vint32mf2_t * op1, vbool64_t op2, vint32mf2_t op3, vint32mf2_t op4, const int32_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u32m1)))
-void vluxseg2ei64(vuint32m1_t * op0, vuint32m1_t * op1, const uint32_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u32m1_m)))
-void vluxseg2ei64(vuint32m1_t * op0, vuint32m1_t * op1, vbool32_t op2, vuint32m1_t op3, vuint32m1_t op4, const uint32_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u32m2)))
-void vluxseg2ei64(vuint32m2_t * op0, vuint32m2_t * op1, const uint32_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u32m2_m)))
-void vluxseg2ei64(vuint32m2_t * op0, vuint32m2_t * op1, vbool16_t op2, vuint32m2_t op3, vuint32m2_t op4, const uint32_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u32m4)))
-void vluxseg2ei64(vuint32m4_t * op0, vuint32m4_t * op1, const uint32_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u32m4_m)))
-void vluxseg2ei64(vuint32m4_t * op0, vuint32m4_t * op1, vbool8_t op2, vuint32m4_t op3, vuint32m4_t op4, const uint32_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u32mf2)))
-void vluxseg2ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, const uint32_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u32mf2_m)))
-void vluxseg2ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vbool64_t op2, vuint32mf2_t op3, vuint32mf2_t op4, const uint32_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i32m1)))
-void vluxseg3ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, const int32_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i32m1_m)))
-void vluxseg3ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vbool32_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, const int32_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i32m2)))
-void vluxseg3ei64(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, const int32_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i32m2_m)))
-void vluxseg3ei64(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vbool16_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, const int32_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i32mf2)))
-void vluxseg3ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, const int32_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i32mf2_m)))
-void vluxseg3ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vbool64_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, const int32_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u32m1)))
-void vluxseg3ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, const uint32_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u32m1_m)))
-void vluxseg3ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vbool32_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, const uint32_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u32m2)))
-void vluxseg3ei64(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, const uint32_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u32m2_m)))
-void vluxseg3ei64(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vbool16_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, const uint32_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u32mf2)))
-void vluxseg3ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, const uint32_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u32mf2_m)))
-void vluxseg3ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vbool64_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, const uint32_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i32m1)))
-void vluxseg4ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, const int32_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i32m1_m)))
-void vluxseg4ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vbool32_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, const int32_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i32m2)))
-void vluxseg4ei64(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, const int32_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i32m2_m)))
-void vluxseg4ei64(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, vbool16_t op4, vint32m2_t op5, vint32m2_t op6, vint32m2_t op7, vint32m2_t op8, const int32_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i32mf2)))
-void vluxseg4ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, const int32_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i32mf2_m)))
-void vluxseg4ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vbool64_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, const int32_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u32m1)))
-void vluxseg4ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, const uint32_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u32m1_m)))
-void vluxseg4ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vbool32_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, const uint32_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u32m2)))
-void vluxseg4ei64(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, const uint32_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u32m2_m)))
-void vluxseg4ei64(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, vbool16_t op4, vuint32m2_t op5, vuint32m2_t op6, vuint32m2_t op7, vuint32m2_t op8, const uint32_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u32mf2)))
-void vluxseg4ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, const uint32_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u32mf2_m)))
-void vluxseg4ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vbool64_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, const uint32_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i32m1)))
-void vluxseg5ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, const int32_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i32m1_m)))
-void vluxseg5ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vbool32_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, const int32_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i32mf2)))
-void vluxseg5ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, const int32_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i32mf2_m)))
-void vluxseg5ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vbool64_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, const int32_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u32m1)))
-void vluxseg5ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, const uint32_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u32m1_m)))
-void vluxseg5ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vbool32_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, const uint32_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u32mf2)))
-void vluxseg5ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, const uint32_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u32mf2_m)))
-void vluxseg5ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vbool64_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, const uint32_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i32m1)))
-void vluxseg6ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, const int32_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i32m1_m)))
-void vluxseg6ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vbool32_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, const int32_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i32mf2)))
-void vluxseg6ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, const int32_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i32mf2_m)))
-void vluxseg6ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vbool64_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, const int32_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u32m1)))
-void vluxseg6ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, const uint32_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u32m1_m)))
-void vluxseg6ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vbool32_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, const uint32_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u32mf2)))
-void vluxseg6ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, const uint32_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u32mf2_m)))
-void vluxseg6ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vbool64_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, const uint32_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i32m1)))
-void vluxseg7ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, const int32_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i32m1_m)))
-void vluxseg7ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vbool32_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, const int32_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i32mf2)))
-void vluxseg7ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, const int32_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i32mf2_m)))
-void vluxseg7ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vbool64_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, const int32_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u32m1)))
-void vluxseg7ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, const uint32_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u32m1_m)))
-void vluxseg7ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vbool32_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, const uint32_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u32mf2)))
-void vluxseg7ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, const uint32_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u32mf2_m)))
-void vluxseg7ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vbool64_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, const uint32_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i32m1)))
-void vluxseg8ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, const int32_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i32m1_m)))
-void vluxseg8ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, vbool32_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, vint32m1_t op15, vint32m1_t op16, const int32_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i32mf2)))
-void vluxseg8ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, const int32_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i32mf2_m)))
-void vluxseg8ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, vbool64_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, vint32mf2_t op15, vint32mf2_t op16, const int32_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u32m1)))
-void vluxseg8ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, const uint32_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u32m1_m)))
-void vluxseg8ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, vbool32_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, vuint32m1_t op15, vuint32m1_t op16, const uint32_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u32mf2)))
-void vluxseg8ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, const uint32_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u32mf2_m)))
-void vluxseg8ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, vbool64_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, vuint32mf2_t op15, vuint32mf2_t op16, const uint32_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i64m1)))
-void vluxseg2ei8(vint64m1_t * op0, vint64m1_t * op1, const int64_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i64m1_m)))
-void vluxseg2ei8(vint64m1_t * op0, vint64m1_t * op1, vbool64_t op2, vint64m1_t op3, vint64m1_t op4, const int64_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i64m2)))
-void vluxseg2ei8(vint64m2_t * op0, vint64m2_t * op1, const int64_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i64m2_m)))
-void vluxseg2ei8(vint64m2_t * op0, vint64m2_t * op1, vbool32_t op2, vint64m2_t op3, vint64m2_t op4, const int64_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i64m4)))
-void vluxseg2ei8(vint64m4_t * op0, vint64m4_t * op1, const int64_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i64m4_m)))
-void vluxseg2ei8(vint64m4_t * op0, vint64m4_t * op1, vbool16_t op2, vint64m4_t op3, vint64m4_t op4, const int64_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u64m1)))
-void vluxseg2ei8(vuint64m1_t * op0, vuint64m1_t * op1, const uint64_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u64m1_m)))
-void vluxseg2ei8(vuint64m1_t * op0, vuint64m1_t * op1, vbool64_t op2, vuint64m1_t op3, vuint64m1_t op4, const uint64_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u64m2)))
-void vluxseg2ei8(vuint64m2_t * op0, vuint64m2_t * op1, const uint64_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u64m2_m)))
-void vluxseg2ei8(vuint64m2_t * op0, vuint64m2_t * op1, vbool32_t op2, vuint64m2_t op3, vuint64m2_t op4, const uint64_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u64m4)))
-void vluxseg2ei8(vuint64m4_t * op0, vuint64m4_t * op1, const uint64_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u64m4_m)))
-void vluxseg2ei8(vuint64m4_t * op0, vuint64m4_t * op1, vbool16_t op2, vuint64m4_t op3, vuint64m4_t op4, const uint64_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i64m1)))
-void vluxseg3ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, const int64_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i64m1_m)))
-void vluxseg3ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vbool64_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, const int64_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i64m2)))
-void vluxseg3ei8(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, const int64_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i64m2_m)))
-void vluxseg3ei8(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vbool32_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, const int64_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u64m1)))
-void vluxseg3ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, const uint64_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u64m1_m)))
-void vluxseg3ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vbool64_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, const uint64_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u64m2)))
-void vluxseg3ei8(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, const uint64_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u64m2_m)))
-void vluxseg3ei8(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vbool32_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, const uint64_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i64m1)))
-void vluxseg4ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, const int64_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i64m1_m)))
-void vluxseg4ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vbool64_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, const int64_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i64m2)))
-void vluxseg4ei8(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, const int64_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i64m2_m)))
-void vluxseg4ei8(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, vbool32_t op4, vint64m2_t op5, vint64m2_t op6, vint64m2_t op7, vint64m2_t op8, const int64_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u64m1)))
-void vluxseg4ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, const uint64_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u64m1_m)))
-void vluxseg4ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vbool64_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, const uint64_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u64m2)))
-void vluxseg4ei8(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, const uint64_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u64m2_m)))
-void vluxseg4ei8(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, vbool32_t op4, vuint64m2_t op5, vuint64m2_t op6, vuint64m2_t op7, vuint64m2_t op8, const uint64_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i64m1)))
-void vluxseg5ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, const int64_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i64m1_m)))
-void vluxseg5ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vbool64_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, const int64_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u64m1)))
-void vluxseg5ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, const uint64_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u64m1_m)))
-void vluxseg5ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vbool64_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, const uint64_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i64m1)))
-void vluxseg6ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, const int64_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i64m1_m)))
-void vluxseg6ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vbool64_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, const int64_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u64m1)))
-void vluxseg6ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, const uint64_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u64m1_m)))
-void vluxseg6ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vbool64_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, const uint64_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i64m1)))
-void vluxseg7ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, const int64_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i64m1_m)))
-void vluxseg7ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vbool64_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, const int64_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u64m1)))
-void vluxseg7ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, const uint64_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u64m1_m)))
-void vluxseg7ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vbool64_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, const uint64_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i64m1)))
-void vluxseg8ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, const int64_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i64m1_m)))
-void vluxseg8ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, vbool64_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, vint64m1_t op15, vint64m1_t op16, const int64_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u64m1)))
-void vluxseg8ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, const uint64_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u64m1_m)))
-void vluxseg8ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, vbool64_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, vuint64m1_t op15, vuint64m1_t op16, const uint64_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i64m1)))
-void vluxseg2ei16(vint64m1_t * op0, vint64m1_t * op1, const int64_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i64m1_m)))
-void vluxseg2ei16(vint64m1_t * op0, vint64m1_t * op1, vbool64_t op2, vint64m1_t op3, vint64m1_t op4, const int64_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i64m2)))
-void vluxseg2ei16(vint64m2_t * op0, vint64m2_t * op1, const int64_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i64m2_m)))
-void vluxseg2ei16(vint64m2_t * op0, vint64m2_t * op1, vbool32_t op2, vint64m2_t op3, vint64m2_t op4, const int64_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i64m4)))
-void vluxseg2ei16(vint64m4_t * op0, vint64m4_t * op1, const int64_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i64m4_m)))
-void vluxseg2ei16(vint64m4_t * op0, vint64m4_t * op1, vbool16_t op2, vint64m4_t op3, vint64m4_t op4, const int64_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u64m1)))
-void vluxseg2ei16(vuint64m1_t * op0, vuint64m1_t * op1, const uint64_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u64m1_m)))
-void vluxseg2ei16(vuint64m1_t * op0, vuint64m1_t * op1, vbool64_t op2, vuint64m1_t op3, vuint64m1_t op4, const uint64_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u64m2)))
-void vluxseg2ei16(vuint64m2_t * op0, vuint64m2_t * op1, const uint64_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u64m2_m)))
-void vluxseg2ei16(vuint64m2_t * op0, vuint64m2_t * op1, vbool32_t op2, vuint64m2_t op3, vuint64m2_t op4, const uint64_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u64m4)))
-void vluxseg2ei16(vuint64m4_t * op0, vuint64m4_t * op1, const uint64_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u64m4_m)))
-void vluxseg2ei16(vuint64m4_t * op0, vuint64m4_t * op1, vbool16_t op2, vuint64m4_t op3, vuint64m4_t op4, const uint64_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i64m1)))
-void vluxseg3ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, const int64_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i64m1_m)))
-void vluxseg3ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vbool64_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, const int64_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i64m2)))
-void vluxseg3ei16(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, const int64_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i64m2_m)))
-void vluxseg3ei16(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vbool32_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, const int64_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u64m1)))
-void vluxseg3ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, const uint64_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u64m1_m)))
-void vluxseg3ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vbool64_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, const uint64_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u64m2)))
-void vluxseg3ei16(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, const uint64_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u64m2_m)))
-void vluxseg3ei16(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vbool32_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, const uint64_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i64m1)))
-void vluxseg4ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, const int64_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i64m1_m)))
-void vluxseg4ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vbool64_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, const int64_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i64m2)))
-void vluxseg4ei16(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, const int64_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i64m2_m)))
-void vluxseg4ei16(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, vbool32_t op4, vint64m2_t op5, vint64m2_t op6, vint64m2_t op7, vint64m2_t op8, const int64_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u64m1)))
-void vluxseg4ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, const uint64_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u64m1_m)))
-void vluxseg4ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vbool64_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, const uint64_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u64m2)))
-void vluxseg4ei16(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, const uint64_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u64m2_m)))
-void vluxseg4ei16(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, vbool32_t op4, vuint64m2_t op5, vuint64m2_t op6, vuint64m2_t op7, vuint64m2_t op8, const uint64_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i64m1)))
-void vluxseg5ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, const int64_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i64m1_m)))
-void vluxseg5ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vbool64_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, const int64_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u64m1)))
-void vluxseg5ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, const uint64_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u64m1_m)))
-void vluxseg5ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vbool64_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, const uint64_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i64m1)))
-void vluxseg6ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, const int64_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i64m1_m)))
-void vluxseg6ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vbool64_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, const int64_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u64m1)))
-void vluxseg6ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, const uint64_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u64m1_m)))
-void vluxseg6ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vbool64_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, const uint64_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i64m1)))
-void vluxseg7ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, const int64_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i64m1_m)))
-void vluxseg7ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vbool64_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, const int64_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u64m1)))
-void vluxseg7ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, const uint64_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u64m1_m)))
-void vluxseg7ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vbool64_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, const uint64_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i64m1)))
-void vluxseg8ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, const int64_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i64m1_m)))
-void vluxseg8ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, vbool64_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, vint64m1_t op15, vint64m1_t op16, const int64_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u64m1)))
-void vluxseg8ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, const uint64_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u64m1_m)))
-void vluxseg8ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, vbool64_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, vuint64m1_t op15, vuint64m1_t op16, const uint64_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i64m1)))
-void vluxseg2ei32(vint64m1_t * op0, vint64m1_t * op1, const int64_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i64m1_m)))
-void vluxseg2ei32(vint64m1_t * op0, vint64m1_t * op1, vbool64_t op2, vint64m1_t op3, vint64m1_t op4, const int64_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i64m2)))
-void vluxseg2ei32(vint64m2_t * op0, vint64m2_t * op1, const int64_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i64m2_m)))
-void vluxseg2ei32(vint64m2_t * op0, vint64m2_t * op1, vbool32_t op2, vint64m2_t op3, vint64m2_t op4, const int64_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i64m4)))
-void vluxseg2ei32(vint64m4_t * op0, vint64m4_t * op1, const int64_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i64m4_m)))
-void vluxseg2ei32(vint64m4_t * op0, vint64m4_t * op1, vbool16_t op2, vint64m4_t op3, vint64m4_t op4, const int64_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u64m1)))
-void vluxseg2ei32(vuint64m1_t * op0, vuint64m1_t * op1, const uint64_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u64m1_m)))
-void vluxseg2ei32(vuint64m1_t * op0, vuint64m1_t * op1, vbool64_t op2, vuint64m1_t op3, vuint64m1_t op4, const uint64_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u64m2)))
-void vluxseg2ei32(vuint64m2_t * op0, vuint64m2_t * op1, const uint64_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u64m2_m)))
-void vluxseg2ei32(vuint64m2_t * op0, vuint64m2_t * op1, vbool32_t op2, vuint64m2_t op3, vuint64m2_t op4, const uint64_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u64m4)))
-void vluxseg2ei32(vuint64m4_t * op0, vuint64m4_t * op1, const uint64_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u64m4_m)))
-void vluxseg2ei32(vuint64m4_t * op0, vuint64m4_t * op1, vbool16_t op2, vuint64m4_t op3, vuint64m4_t op4, const uint64_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i64m1)))
-void vluxseg3ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, const int64_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i64m1_m)))
-void vluxseg3ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vbool64_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, const int64_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i64m2)))
-void vluxseg3ei32(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, const int64_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i64m2_m)))
-void vluxseg3ei32(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vbool32_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, const int64_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u64m1)))
-void vluxseg3ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, const uint64_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u64m1_m)))
-void vluxseg3ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vbool64_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, const uint64_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u64m2)))
-void vluxseg3ei32(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, const uint64_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u64m2_m)))
-void vluxseg3ei32(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vbool32_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, const uint64_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i64m1)))
-void vluxseg4ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, const int64_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i64m1_m)))
-void vluxseg4ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vbool64_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, const int64_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i64m2)))
-void vluxseg4ei32(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, const int64_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i64m2_m)))
-void vluxseg4ei32(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, vbool32_t op4, vint64m2_t op5, vint64m2_t op6, vint64m2_t op7, vint64m2_t op8, const int64_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u64m1)))
-void vluxseg4ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, const uint64_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u64m1_m)))
-void vluxseg4ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vbool64_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, const uint64_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u64m2)))
-void vluxseg4ei32(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, const uint64_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u64m2_m)))
-void vluxseg4ei32(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, vbool32_t op4, vuint64m2_t op5, vuint64m2_t op6, vuint64m2_t op7, vuint64m2_t op8, const uint64_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i64m1)))
-void vluxseg5ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, const int64_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i64m1_m)))
-void vluxseg5ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vbool64_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, const int64_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u64m1)))
-void vluxseg5ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, const uint64_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u64m1_m)))
-void vluxseg5ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vbool64_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, const uint64_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i64m1)))
-void vluxseg6ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, const int64_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i64m1_m)))
-void vluxseg6ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vbool64_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, const int64_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u64m1)))
-void vluxseg6ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, const uint64_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u64m1_m)))
-void vluxseg6ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vbool64_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, const uint64_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i64m1)))
-void vluxseg7ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, const int64_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i64m1_m)))
-void vluxseg7ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vbool64_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, const int64_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u64m1)))
-void vluxseg7ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, const uint64_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u64m1_m)))
-void vluxseg7ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vbool64_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, const uint64_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i64m1)))
-void vluxseg8ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, const int64_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i64m1_m)))
-void vluxseg8ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, vbool64_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, vint64m1_t op15, vint64m1_t op16, const int64_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u64m1)))
-void vluxseg8ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, const uint64_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u64m1_m)))
-void vluxseg8ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, vbool64_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, vuint64m1_t op15, vuint64m1_t op16, const uint64_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i64m1)))
-void vluxseg2ei64(vint64m1_t * op0, vint64m1_t * op1, const int64_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i64m1_m)))
-void vluxseg2ei64(vint64m1_t * op0, vint64m1_t * op1, vbool64_t op2, vint64m1_t op3, vint64m1_t op4, const int64_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i64m2)))
-void vluxseg2ei64(vint64m2_t * op0, vint64m2_t * op1, const int64_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i64m2_m)))
-void vluxseg2ei64(vint64m2_t * op0, vint64m2_t * op1, vbool32_t op2, vint64m2_t op3, vint64m2_t op4, const int64_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i64m4)))
-void vluxseg2ei64(vint64m4_t * op0, vint64m4_t * op1, const int64_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i64m4_m)))
-void vluxseg2ei64(vint64m4_t * op0, vint64m4_t * op1, vbool16_t op2, vint64m4_t op3, vint64m4_t op4, const int64_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u64m1)))
-void vluxseg2ei64(vuint64m1_t * op0, vuint64m1_t * op1, const uint64_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u64m1_m)))
-void vluxseg2ei64(vuint64m1_t * op0, vuint64m1_t * op1, vbool64_t op2, vuint64m1_t op3, vuint64m1_t op4, const uint64_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u64m2)))
-void vluxseg2ei64(vuint64m2_t * op0, vuint64m2_t * op1, const uint64_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u64m2_m)))
-void vluxseg2ei64(vuint64m2_t * op0, vuint64m2_t * op1, vbool32_t op2, vuint64m2_t op3, vuint64m2_t op4, const uint64_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u64m4)))
-void vluxseg2ei64(vuint64m4_t * op0, vuint64m4_t * op1, const uint64_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u64m4_m)))
-void vluxseg2ei64(vuint64m4_t * op0, vuint64m4_t * op1, vbool16_t op2, vuint64m4_t op3, vuint64m4_t op4, const uint64_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i64m1)))
-void vluxseg3ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, const int64_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i64m1_m)))
-void vluxseg3ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vbool64_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, const int64_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i64m2)))
-void vluxseg3ei64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, const int64_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i64m2_m)))
-void vluxseg3ei64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vbool32_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, const int64_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u64m1)))
-void vluxseg3ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, const uint64_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u64m1_m)))
-void vluxseg3ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vbool64_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, const uint64_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u64m2)))
-void vluxseg3ei64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, const uint64_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u64m2_m)))
-void vluxseg3ei64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vbool32_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, const uint64_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i64m1)))
-void vluxseg4ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, const int64_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i64m1_m)))
-void vluxseg4ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vbool64_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, const int64_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i64m2)))
-void vluxseg4ei64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, const int64_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i64m2_m)))
-void vluxseg4ei64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, vbool32_t op4, vint64m2_t op5, vint64m2_t op6, vint64m2_t op7, vint64m2_t op8, const int64_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u64m1)))
-void vluxseg4ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, const uint64_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u64m1_m)))
-void vluxseg4ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vbool64_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, const uint64_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u64m2)))
-void vluxseg4ei64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, const uint64_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u64m2_m)))
-void vluxseg4ei64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, vbool32_t op4, vuint64m2_t op5, vuint64m2_t op6, vuint64m2_t op7, vuint64m2_t op8, const uint64_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i64m1)))
-void vluxseg5ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, const int64_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i64m1_m)))
-void vluxseg5ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vbool64_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, const int64_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u64m1)))
-void vluxseg5ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, const uint64_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u64m1_m)))
-void vluxseg5ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vbool64_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, const uint64_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i64m1)))
-void vluxseg6ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, const int64_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i64m1_m)))
-void vluxseg6ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vbool64_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, const int64_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u64m1)))
-void vluxseg6ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, const uint64_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u64m1_m)))
-void vluxseg6ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vbool64_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, const uint64_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i64m1)))
-void vluxseg7ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, const int64_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i64m1_m)))
-void vluxseg7ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vbool64_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, const int64_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u64m1)))
-void vluxseg7ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, const uint64_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u64m1_m)))
-void vluxseg7ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vbool64_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, const uint64_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i64m1)))
-void vluxseg8ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, const int64_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i64m1_m)))
-void vluxseg8ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, vbool64_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, vint64m1_t op15, vint64m1_t op16, const int64_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u64m1)))
-void vluxseg8ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, const uint64_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u64m1_m)))
-void vluxseg8ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, vbool64_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, vuint64m1_t op15, vuint64m1_t op16, const uint64_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8m1)))
-void vloxseg2ei8(vint8m1_t * op0, vint8m1_t * op1, const int8_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8m1_m)))
-void vloxseg2ei8(vint8m1_t * op0, vint8m1_t * op1, vbool8_t op2, vint8m1_t op3, vint8m1_t op4, const int8_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8m2)))
-void vloxseg2ei8(vint8m2_t * op0, vint8m2_t * op1, const int8_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8m2_m)))
-void vloxseg2ei8(vint8m2_t * op0, vint8m2_t * op1, vbool4_t op2, vint8m2_t op3, vint8m2_t op4, const int8_t * op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8m4)))
-void vloxseg2ei8(vint8m4_t * op0, vint8m4_t * op1, const int8_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8m4_m)))
-void vloxseg2ei8(vint8m4_t * op0, vint8m4_t * op1, vbool2_t op2, vint8m4_t op3, vint8m4_t op4, const int8_t * op5, vuint8m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8mf2)))
-void vloxseg2ei8(vint8mf2_t * op0, vint8mf2_t * op1, const int8_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8mf2_m)))
-void vloxseg2ei8(vint8mf2_t * op0, vint8mf2_t * op1, vbool16_t op2, vint8mf2_t op3, vint8mf2_t op4, const int8_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8mf4)))
-void vloxseg2ei8(vint8mf4_t * op0, vint8mf4_t * op1, const int8_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8mf4_m)))
-void vloxseg2ei8(vint8mf4_t * op0, vint8mf4_t * op1, vbool32_t op2, vint8mf4_t op3, vint8mf4_t op4, const int8_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8mf8)))
-void vloxseg2ei8(vint8mf8_t * op0, vint8mf8_t * op1, const int8_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8mf8_m)))
-void vloxseg2ei8(vint8mf8_t * op0, vint8mf8_t * op1, vbool64_t op2, vint8mf8_t op3, vint8mf8_t op4, const int8_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8m1)))
-void vloxseg2ei8(vuint8m1_t * op0, vuint8m1_t * op1, const uint8_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8m1_m)))
-void vloxseg2ei8(vuint8m1_t * op0, vuint8m1_t * op1, vbool8_t op2, vuint8m1_t op3, vuint8m1_t op4, const uint8_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8m2)))
-void vloxseg2ei8(vuint8m2_t * op0, vuint8m2_t * op1, const uint8_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8m2_m)))
-void vloxseg2ei8(vuint8m2_t * op0, vuint8m2_t * op1, vbool4_t op2, vuint8m2_t op3, vuint8m2_t op4, const uint8_t * op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8m4)))
-void vloxseg2ei8(vuint8m4_t * op0, vuint8m4_t * op1, const uint8_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8m4_m)))
-void vloxseg2ei8(vuint8m4_t * op0, vuint8m4_t * op1, vbool2_t op2, vuint8m4_t op3, vuint8m4_t op4, const uint8_t * op5, vuint8m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8mf2)))
-void vloxseg2ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, const uint8_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8mf2_m)))
-void vloxseg2ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vbool16_t op2, vuint8mf2_t op3, vuint8mf2_t op4, const uint8_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8mf4)))
-void vloxseg2ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, const uint8_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8mf4_m)))
-void vloxseg2ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vbool32_t op2, vuint8mf4_t op3, vuint8mf4_t op4, const uint8_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8mf8)))
-void vloxseg2ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, const uint8_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8mf8_m)))
-void vloxseg2ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vbool64_t op2, vuint8mf8_t op3, vuint8mf8_t op4, const uint8_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i8m1)))
-void vloxseg3ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, const int8_t * op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i8m1_m)))
-void vloxseg3ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vbool8_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, const int8_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i8m2)))
-void vloxseg3ei8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, const int8_t * op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i8m2_m)))
-void vloxseg3ei8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vbool4_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, const int8_t * op7, vuint8m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i8mf2)))
-void vloxseg3ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, const int8_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i8mf2_m)))
-void vloxseg3ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vbool16_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, const int8_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i8mf4)))
-void vloxseg3ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, const int8_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i8mf4_m)))
-void vloxseg3ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vbool32_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, const int8_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i8mf8)))
-void vloxseg3ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, const int8_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i8mf8_m)))
-void vloxseg3ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vbool64_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, const int8_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u8m1)))
-void vloxseg3ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, const uint8_t * op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u8m1_m)))
-void vloxseg3ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vbool8_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, const uint8_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u8m2)))
-void vloxseg3ei8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, const uint8_t * op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u8m2_m)))
-void vloxseg3ei8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vbool4_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, const uint8_t * op7, vuint8m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u8mf2)))
-void vloxseg3ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, const uint8_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u8mf2_m)))
-void vloxseg3ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vbool16_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, const uint8_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u8mf4)))
-void vloxseg3ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, const uint8_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u8mf4_m)))
-void vloxseg3ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vbool32_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, const uint8_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u8mf8)))
-void vloxseg3ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, const uint8_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u8mf8_m)))
-void vloxseg3ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vbool64_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, const uint8_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i8m1)))
-void vloxseg4ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, const int8_t * op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i8m1_m)))
-void vloxseg4ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vbool8_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, const int8_t * op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i8m2)))
-void vloxseg4ei8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, const int8_t * op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i8m2_m)))
-void vloxseg4ei8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, vbool4_t op4, vint8m2_t op5, vint8m2_t op6, vint8m2_t op7, vint8m2_t op8, const int8_t * op9, vuint8m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i8mf2)))
-void vloxseg4ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, const int8_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i8mf2_m)))
-void vloxseg4ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vbool16_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, const int8_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i8mf4)))
-void vloxseg4ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, const int8_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i8mf4_m)))
-void vloxseg4ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vbool32_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, const int8_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i8mf8)))
-void vloxseg4ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, const int8_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i8mf8_m)))
-void vloxseg4ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vbool64_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, const int8_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u8m1)))
-void vloxseg4ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, const uint8_t * op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u8m1_m)))
-void vloxseg4ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vbool8_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, const uint8_t * op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u8m2)))
-void vloxseg4ei8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, const uint8_t * op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u8m2_m)))
-void vloxseg4ei8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, vbool4_t op4, vuint8m2_t op5, vuint8m2_t op6, vuint8m2_t op7, vuint8m2_t op8, const uint8_t * op9, vuint8m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u8mf2)))
-void vloxseg4ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, const uint8_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u8mf2_m)))
-void vloxseg4ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vbool16_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, const uint8_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u8mf4)))
-void vloxseg4ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, const uint8_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u8mf4_m)))
-void vloxseg4ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vbool32_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, const uint8_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u8mf8)))
-void vloxseg4ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, const uint8_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u8mf8_m)))
-void vloxseg4ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vbool64_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, const uint8_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i8m1)))
-void vloxseg5ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, const int8_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i8m1_m)))
-void vloxseg5ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vbool8_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, const int8_t * op11, vuint8m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i8mf2)))
-void vloxseg5ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, const int8_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i8mf2_m)))
-void vloxseg5ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vbool16_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, const int8_t * op11, vuint8mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i8mf4)))
-void vloxseg5ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, const int8_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i8mf4_m)))
-void vloxseg5ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vbool32_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, const int8_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i8mf8)))
-void vloxseg5ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, const int8_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i8mf8_m)))
-void vloxseg5ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vbool64_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, const int8_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u8m1)))
-void vloxseg5ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, const uint8_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u8m1_m)))
-void vloxseg5ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vbool8_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, const uint8_t * op11, vuint8m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u8mf2)))
-void vloxseg5ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, const uint8_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u8mf2_m)))
-void vloxseg5ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vbool16_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, const uint8_t * op11, vuint8mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u8mf4)))
-void vloxseg5ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, const uint8_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u8mf4_m)))
-void vloxseg5ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vbool32_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, const uint8_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u8mf8)))
-void vloxseg5ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, const uint8_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u8mf8_m)))
-void vloxseg5ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vbool64_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, const uint8_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i8m1)))
-void vloxseg6ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, const int8_t * op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i8m1_m)))
-void vloxseg6ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vbool8_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, const int8_t * op13, vuint8m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i8mf2)))
-void vloxseg6ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, const int8_t * op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i8mf2_m)))
-void vloxseg6ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vbool16_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, const int8_t * op13, vuint8mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i8mf4)))
-void vloxseg6ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, const int8_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i8mf4_m)))
-void vloxseg6ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vbool32_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, const int8_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i8mf8)))
-void vloxseg6ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, const int8_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i8mf8_m)))
-void vloxseg6ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vbool64_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, const int8_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u8m1)))
-void vloxseg6ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, const uint8_t * op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u8m1_m)))
-void vloxseg6ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vbool8_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, const uint8_t * op13, vuint8m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u8mf2)))
-void vloxseg6ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, const uint8_t * op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u8mf2_m)))
-void vloxseg6ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vbool16_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, const uint8_t * op13, vuint8mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u8mf4)))
-void vloxseg6ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, const uint8_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u8mf4_m)))
-void vloxseg6ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vbool32_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, const uint8_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u8mf8)))
-void vloxseg6ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, const uint8_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u8mf8_m)))
-void vloxseg6ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vbool64_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, const uint8_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i8m1)))
-void vloxseg7ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, const int8_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i8m1_m)))
-void vloxseg7ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vbool8_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, const int8_t * op15, vuint8m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i8mf2)))
-void vloxseg7ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, const int8_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i8mf2_m)))
-void vloxseg7ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vbool16_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, const int8_t * op15, vuint8mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i8mf4)))
-void vloxseg7ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, const int8_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i8mf4_m)))
-void vloxseg7ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vbool32_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, const int8_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i8mf8)))
-void vloxseg7ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, const int8_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i8mf8_m)))
-void vloxseg7ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vbool64_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, const int8_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u8m1)))
-void vloxseg7ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, const uint8_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u8m1_m)))
-void vloxseg7ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vbool8_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, const uint8_t * op15, vuint8m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u8mf2)))
-void vloxseg7ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, const uint8_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u8mf2_m)))
-void vloxseg7ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vbool16_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, const uint8_t * op15, vuint8mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u8mf4)))
-void vloxseg7ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, const uint8_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u8mf4_m)))
-void vloxseg7ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vbool32_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, const uint8_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u8mf8)))
-void vloxseg7ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, const uint8_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u8mf8_m)))
-void vloxseg7ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vbool64_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, const uint8_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i8m1)))
-void vloxseg8ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, const int8_t * op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i8m1_m)))
-void vloxseg8ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, vbool8_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, vint8m1_t op15, vint8m1_t op16, const int8_t * op17, vuint8m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i8mf2)))
-void vloxseg8ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, const int8_t * op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i8mf2_m)))
-void vloxseg8ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, vbool16_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, vint8mf2_t op15, vint8mf2_t op16, const int8_t * op17, vuint8mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i8mf4)))
-void vloxseg8ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, const int8_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i8mf4_m)))
-void vloxseg8ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, vbool32_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, vint8mf4_t op15, vint8mf4_t op16, const int8_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i8mf8)))
-void vloxseg8ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, const int8_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i8mf8_m)))
-void vloxseg8ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, vbool64_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, vint8mf8_t op15, vint8mf8_t op16, const int8_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u8m1)))
-void vloxseg8ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, const uint8_t * op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u8m1_m)))
-void vloxseg8ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, vbool8_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, vuint8m1_t op15, vuint8m1_t op16, const uint8_t * op17, vuint8m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u8mf2)))
-void vloxseg8ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, const uint8_t * op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u8mf2_m)))
-void vloxseg8ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, vbool16_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, vuint8mf2_t op15, vuint8mf2_t op16, const uint8_t * op17, vuint8mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u8mf4)))
-void vloxseg8ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, const uint8_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u8mf4_m)))
-void vloxseg8ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, vbool32_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, vuint8mf4_t op15, vuint8mf4_t op16, const uint8_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u8mf8)))
-void vloxseg8ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, const uint8_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u8mf8_m)))
-void vloxseg8ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, vbool64_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, vuint8mf8_t op15, vuint8mf8_t op16, const uint8_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8m1)))
-void vloxseg2ei16(vint8m1_t * op0, vint8m1_t * op1, const int8_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8m1_m)))
-void vloxseg2ei16(vint8m1_t * op0, vint8m1_t * op1, vbool8_t op2, vint8m1_t op3, vint8m1_t op4, const int8_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8m2)))
-void vloxseg2ei16(vint8m2_t * op0, vint8m2_t * op1, const int8_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8m2_m)))
-void vloxseg2ei16(vint8m2_t * op0, vint8m2_t * op1, vbool4_t op2, vint8m2_t op3, vint8m2_t op4, const int8_t * op5, vuint16m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8m4)))
-void vloxseg2ei16(vint8m4_t * op0, vint8m4_t * op1, const int8_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8m4_m)))
-void vloxseg2ei16(vint8m4_t * op0, vint8m4_t * op1, vbool2_t op2, vint8m4_t op3, vint8m4_t op4, const int8_t * op5, vuint16m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8mf2)))
-void vloxseg2ei16(vint8mf2_t * op0, vint8mf2_t * op1, const int8_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8mf2_m)))
-void vloxseg2ei16(vint8mf2_t * op0, vint8mf2_t * op1, vbool16_t op2, vint8mf2_t op3, vint8mf2_t op4, const int8_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8mf4)))
-void vloxseg2ei16(vint8mf4_t * op0, vint8mf4_t * op1, const int8_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8mf4_m)))
-void vloxseg2ei16(vint8mf4_t * op0, vint8mf4_t * op1, vbool32_t op2, vint8mf4_t op3, vint8mf4_t op4, const int8_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8mf8)))
-void vloxseg2ei16(vint8mf8_t * op0, vint8mf8_t * op1, const int8_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8mf8_m)))
-void vloxseg2ei16(vint8mf8_t * op0, vint8mf8_t * op1, vbool64_t op2, vint8mf8_t op3, vint8mf8_t op4, const int8_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8m1)))
-void vloxseg2ei16(vuint8m1_t * op0, vuint8m1_t * op1, const uint8_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8m1_m)))
-void vloxseg2ei16(vuint8m1_t * op0, vuint8m1_t * op1, vbool8_t op2, vuint8m1_t op3, vuint8m1_t op4, const uint8_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8m2)))
-void vloxseg2ei16(vuint8m2_t * op0, vuint8m2_t * op1, const uint8_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8m2_m)))
-void vloxseg2ei16(vuint8m2_t * op0, vuint8m2_t * op1, vbool4_t op2, vuint8m2_t op3, vuint8m2_t op4, const uint8_t * op5, vuint16m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8m4)))
-void vloxseg2ei16(vuint8m4_t * op0, vuint8m4_t * op1, const uint8_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8m4_m)))
-void vloxseg2ei16(vuint8m4_t * op0, vuint8m4_t * op1, vbool2_t op2, vuint8m4_t op3, vuint8m4_t op4, const uint8_t * op5, vuint16m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8mf2)))
-void vloxseg2ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, const uint8_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8mf2_m)))
-void vloxseg2ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vbool16_t op2, vuint8mf2_t op3, vuint8mf2_t op4, const uint8_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8mf4)))
-void vloxseg2ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, const uint8_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8mf4_m)))
-void vloxseg2ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vbool32_t op2, vuint8mf4_t op3, vuint8mf4_t op4, const uint8_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8mf8)))
-void vloxseg2ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, const uint8_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8mf8_m)))
-void vloxseg2ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vbool64_t op2, vuint8mf8_t op3, vuint8mf8_t op4, const uint8_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i8m1)))
-void vloxseg3ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, const int8_t * op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i8m1_m)))
-void vloxseg3ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vbool8_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, const int8_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i8m2)))
-void vloxseg3ei16(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, const int8_t * op3, vuint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i8m2_m)))
-void vloxseg3ei16(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vbool4_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, const int8_t * op7, vuint16m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i8mf2)))
-void vloxseg3ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, const int8_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i8mf2_m)))
-void vloxseg3ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vbool16_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, const int8_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i8mf4)))
-void vloxseg3ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, const int8_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i8mf4_m)))
-void vloxseg3ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vbool32_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, const int8_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i8mf8)))
-void vloxseg3ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, const int8_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i8mf8_m)))
-void vloxseg3ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vbool64_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, const int8_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u8m1)))
-void vloxseg3ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, const uint8_t * op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u8m1_m)))
-void vloxseg3ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vbool8_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, const uint8_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u8m2)))
-void vloxseg3ei16(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, const uint8_t * op3, vuint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u8m2_m)))
-void vloxseg3ei16(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vbool4_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, const uint8_t * op7, vuint16m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u8mf2)))
-void vloxseg3ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, const uint8_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u8mf2_m)))
-void vloxseg3ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vbool16_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, const uint8_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u8mf4)))
-void vloxseg3ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, const uint8_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u8mf4_m)))
-void vloxseg3ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vbool32_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, const uint8_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u8mf8)))
-void vloxseg3ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, const uint8_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u8mf8_m)))
-void vloxseg3ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vbool64_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, const uint8_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i8m1)))
-void vloxseg4ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, const int8_t * op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i8m1_m)))
-void vloxseg4ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vbool8_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, const int8_t * op9, vuint16m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i8m2)))
-void vloxseg4ei16(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, const int8_t * op4, vuint16m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i8m2_m)))
-void vloxseg4ei16(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, vbool4_t op4, vint8m2_t op5, vint8m2_t op6, vint8m2_t op7, vint8m2_t op8, const int8_t * op9, vuint16m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i8mf2)))
-void vloxseg4ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, const int8_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i8mf2_m)))
-void vloxseg4ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vbool16_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, const int8_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i8mf4)))
-void vloxseg4ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, const int8_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i8mf4_m)))
-void vloxseg4ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vbool32_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, const int8_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i8mf8)))
-void vloxseg4ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, const int8_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i8mf8_m)))
-void vloxseg4ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vbool64_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, const int8_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u8m1)))
-void vloxseg4ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, const uint8_t * op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u8m1_m)))
-void vloxseg4ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vbool8_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, const uint8_t * op9, vuint16m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u8m2)))
-void vloxseg4ei16(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, const uint8_t * op4, vuint16m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u8m2_m)))
-void vloxseg4ei16(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, vbool4_t op4, vuint8m2_t op5, vuint8m2_t op6, vuint8m2_t op7, vuint8m2_t op8, const uint8_t * op9, vuint16m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u8mf2)))
-void vloxseg4ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, const uint8_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u8mf2_m)))
-void vloxseg4ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vbool16_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, const uint8_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u8mf4)))
-void vloxseg4ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, const uint8_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u8mf4_m)))
-void vloxseg4ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vbool32_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, const uint8_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u8mf8)))
-void vloxseg4ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, const uint8_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u8mf8_m)))
-void vloxseg4ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vbool64_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, const uint8_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i8m1)))
-void vloxseg5ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, const int8_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i8m1_m)))
-void vloxseg5ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vbool8_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, const int8_t * op11, vuint16m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i8mf2)))
-void vloxseg5ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, const int8_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i8mf2_m)))
-void vloxseg5ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vbool16_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, const int8_t * op11, vuint16m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i8mf4)))
-void vloxseg5ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, const int8_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i8mf4_m)))
-void vloxseg5ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vbool32_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, const int8_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i8mf8)))
-void vloxseg5ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, const int8_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i8mf8_m)))
-void vloxseg5ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vbool64_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, const int8_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u8m1)))
-void vloxseg5ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, const uint8_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u8m1_m)))
-void vloxseg5ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vbool8_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, const uint8_t * op11, vuint16m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u8mf2)))
-void vloxseg5ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, const uint8_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u8mf2_m)))
-void vloxseg5ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vbool16_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, const uint8_t * op11, vuint16m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u8mf4)))
-void vloxseg5ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, const uint8_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u8mf4_m)))
-void vloxseg5ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vbool32_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, const uint8_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u8mf8)))
-void vloxseg5ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, const uint8_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u8mf8_m)))
-void vloxseg5ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vbool64_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, const uint8_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i8m1)))
-void vloxseg6ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, const int8_t * op6, vuint16m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i8m1_m)))
-void vloxseg6ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vbool8_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, const int8_t * op13, vuint16m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i8mf2)))
-void vloxseg6ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, const int8_t * op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i8mf2_m)))
-void vloxseg6ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vbool16_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, const int8_t * op13, vuint16m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i8mf4)))
-void vloxseg6ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, const int8_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i8mf4_m)))
-void vloxseg6ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vbool32_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, const int8_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i8mf8)))
-void vloxseg6ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, const int8_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i8mf8_m)))
-void vloxseg6ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vbool64_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, const int8_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u8m1)))
-void vloxseg6ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, const uint8_t * op6, vuint16m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u8m1_m)))
-void vloxseg6ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vbool8_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, const uint8_t * op13, vuint16m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u8mf2)))
-void vloxseg6ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, const uint8_t * op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u8mf2_m)))
-void vloxseg6ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vbool16_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, const uint8_t * op13, vuint16m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u8mf4)))
-void vloxseg6ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, const uint8_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u8mf4_m)))
-void vloxseg6ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vbool32_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, const uint8_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u8mf8)))
-void vloxseg6ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, const uint8_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u8mf8_m)))
-void vloxseg6ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vbool64_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, const uint8_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i8m1)))
-void vloxseg7ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, const int8_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i8m1_m)))
-void vloxseg7ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vbool8_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, const int8_t * op15, vuint16m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i8mf2)))
-void vloxseg7ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, const int8_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i8mf2_m)))
-void vloxseg7ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vbool16_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, const int8_t * op15, vuint16m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i8mf4)))
-void vloxseg7ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, const int8_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i8mf4_m)))
-void vloxseg7ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vbool32_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, const int8_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i8mf8)))
-void vloxseg7ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, const int8_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i8mf8_m)))
-void vloxseg7ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vbool64_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, const int8_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u8m1)))
-void vloxseg7ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, const uint8_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u8m1_m)))
-void vloxseg7ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vbool8_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, const uint8_t * op15, vuint16m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u8mf2)))
-void vloxseg7ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, const uint8_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u8mf2_m)))
-void vloxseg7ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vbool16_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, const uint8_t * op15, vuint16m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u8mf4)))
-void vloxseg7ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, const uint8_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u8mf4_m)))
-void vloxseg7ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vbool32_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, const uint8_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u8mf8)))
-void vloxseg7ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, const uint8_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u8mf8_m)))
-void vloxseg7ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vbool64_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, const uint8_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i8m1)))
-void vloxseg8ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, const int8_t * op8, vuint16m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i8m1_m)))
-void vloxseg8ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, vbool8_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, vint8m1_t op15, vint8m1_t op16, const int8_t * op17, vuint16m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i8mf2)))
-void vloxseg8ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, const int8_t * op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i8mf2_m)))
-void vloxseg8ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, vbool16_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, vint8mf2_t op15, vint8mf2_t op16, const int8_t * op17, vuint16m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i8mf4)))
-void vloxseg8ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, const int8_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i8mf4_m)))
-void vloxseg8ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, vbool32_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, vint8mf4_t op15, vint8mf4_t op16, const int8_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i8mf8)))
-void vloxseg8ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, const int8_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i8mf8_m)))
-void vloxseg8ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, vbool64_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, vint8mf8_t op15, vint8mf8_t op16, const int8_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u8m1)))
-void vloxseg8ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, const uint8_t * op8, vuint16m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u8m1_m)))
-void vloxseg8ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, vbool8_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, vuint8m1_t op15, vuint8m1_t op16, const uint8_t * op17, vuint16m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u8mf2)))
-void vloxseg8ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, const uint8_t * op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u8mf2_m)))
-void vloxseg8ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, vbool16_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, vuint8mf2_t op15, vuint8mf2_t op16, const uint8_t * op17, vuint16m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u8mf4)))
-void vloxseg8ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, const uint8_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u8mf4_m)))
-void vloxseg8ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, vbool32_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, vuint8mf4_t op15, vuint8mf4_t op16, const uint8_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u8mf8)))
-void vloxseg8ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, const uint8_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u8mf8_m)))
-void vloxseg8ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, vbool64_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, vuint8mf8_t op15, vuint8mf8_t op16, const uint8_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i8m1)))
-void vloxseg2ei32(vint8m1_t * op0, vint8m1_t * op1, const int8_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i8m1_m)))
-void vloxseg2ei32(vint8m1_t * op0, vint8m1_t * op1, vbool8_t op2, vint8m1_t op3, vint8m1_t op4, const int8_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i8m2)))
-void vloxseg2ei32(vint8m2_t * op0, vint8m2_t * op1, const int8_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i8m2_m)))
-void vloxseg2ei32(vint8m2_t * op0, vint8m2_t * op1, vbool4_t op2, vint8m2_t op3, vint8m2_t op4, const int8_t * op5, vuint32m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i8mf2)))
-void vloxseg2ei32(vint8mf2_t * op0, vint8mf2_t * op1, const int8_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i8mf2_m)))
-void vloxseg2ei32(vint8mf2_t * op0, vint8mf2_t * op1, vbool16_t op2, vint8mf2_t op3, vint8mf2_t op4, const int8_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i8mf4)))
-void vloxseg2ei32(vint8mf4_t * op0, vint8mf4_t * op1, const int8_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i8mf4_m)))
-void vloxseg2ei32(vint8mf4_t * op0, vint8mf4_t * op1, vbool32_t op2, vint8mf4_t op3, vint8mf4_t op4, const int8_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i8mf8)))
-void vloxseg2ei32(vint8mf8_t * op0, vint8mf8_t * op1, const int8_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i8mf8_m)))
-void vloxseg2ei32(vint8mf8_t * op0, vint8mf8_t * op1, vbool64_t op2, vint8mf8_t op3, vint8mf8_t op4, const int8_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u8m1)))
-void vloxseg2ei32(vuint8m1_t * op0, vuint8m1_t * op1, const uint8_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u8m1_m)))
-void vloxseg2ei32(vuint8m1_t * op0, vuint8m1_t * op1, vbool8_t op2, vuint8m1_t op3, vuint8m1_t op4, const uint8_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u8m2)))
-void vloxseg2ei32(vuint8m2_t * op0, vuint8m2_t * op1, const uint8_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u8m2_m)))
-void vloxseg2ei32(vuint8m2_t * op0, vuint8m2_t * op1, vbool4_t op2, vuint8m2_t op3, vuint8m2_t op4, const uint8_t * op5, vuint32m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u8mf2)))
-void vloxseg2ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, const uint8_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u8mf2_m)))
-void vloxseg2ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vbool16_t op2, vuint8mf2_t op3, vuint8mf2_t op4, const uint8_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u8mf4)))
-void vloxseg2ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, const uint8_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u8mf4_m)))
-void vloxseg2ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vbool32_t op2, vuint8mf4_t op3, vuint8mf4_t op4, const uint8_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u8mf8)))
-void vloxseg2ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, const uint8_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u8mf8_m)))
-void vloxseg2ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vbool64_t op2, vuint8mf8_t op3, vuint8mf8_t op4, const uint8_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i8m1)))
-void vloxseg3ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, const int8_t * op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i8m1_m)))
-void vloxseg3ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vbool8_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, const int8_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i8m2)))
-void vloxseg3ei32(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, const int8_t * op3, vuint32m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i8m2_m)))
-void vloxseg3ei32(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vbool4_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, const int8_t * op7, vuint32m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i8mf2)))
-void vloxseg3ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, const int8_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i8mf2_m)))
-void vloxseg3ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vbool16_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, const int8_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i8mf4)))
-void vloxseg3ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, const int8_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i8mf4_m)))
-void vloxseg3ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vbool32_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, const int8_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i8mf8)))
-void vloxseg3ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, const int8_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i8mf8_m)))
-void vloxseg3ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vbool64_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, const int8_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u8m1)))
-void vloxseg3ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, const uint8_t * op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u8m1_m)))
-void vloxseg3ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vbool8_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, const uint8_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u8m2)))
-void vloxseg3ei32(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, const uint8_t * op3, vuint32m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u8m2_m)))
-void vloxseg3ei32(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vbool4_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, const uint8_t * op7, vuint32m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u8mf2)))
-void vloxseg3ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, const uint8_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u8mf2_m)))
-void vloxseg3ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vbool16_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, const uint8_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u8mf4)))
-void vloxseg3ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, const uint8_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u8mf4_m)))
-void vloxseg3ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vbool32_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, const uint8_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u8mf8)))
-void vloxseg3ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, const uint8_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u8mf8_m)))
-void vloxseg3ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vbool64_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, const uint8_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i8m1)))
-void vloxseg4ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, const int8_t * op4, vuint32m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i8m1_m)))
-void vloxseg4ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vbool8_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, const int8_t * op9, vuint32m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i8m2)))
-void vloxseg4ei32(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, const int8_t * op4, vuint32m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i8m2_m)))
-void vloxseg4ei32(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, vbool4_t op4, vint8m2_t op5, vint8m2_t op6, vint8m2_t op7, vint8m2_t op8, const int8_t * op9, vuint32m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i8mf2)))
-void vloxseg4ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, const int8_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i8mf2_m)))
-void vloxseg4ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vbool16_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, const int8_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i8mf4)))
-void vloxseg4ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, const int8_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i8mf4_m)))
-void vloxseg4ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vbool32_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, const int8_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i8mf8)))
-void vloxseg4ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, const int8_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i8mf8_m)))
-void vloxseg4ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vbool64_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, const int8_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u8m1)))
-void vloxseg4ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, const uint8_t * op4, vuint32m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u8m1_m)))
-void vloxseg4ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vbool8_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, const uint8_t * op9, vuint32m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u8m2)))
-void vloxseg4ei32(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, const uint8_t * op4, vuint32m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u8m2_m)))
-void vloxseg4ei32(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, vbool4_t op4, vuint8m2_t op5, vuint8m2_t op6, vuint8m2_t op7, vuint8m2_t op8, const uint8_t * op9, vuint32m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u8mf2)))
-void vloxseg4ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, const uint8_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u8mf2_m)))
-void vloxseg4ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vbool16_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, const uint8_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u8mf4)))
-void vloxseg4ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, const uint8_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u8mf4_m)))
-void vloxseg4ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vbool32_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, const uint8_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u8mf8)))
-void vloxseg4ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, const uint8_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u8mf8_m)))
-void vloxseg4ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vbool64_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, const uint8_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i8m1)))
-void vloxseg5ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, const int8_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i8m1_m)))
-void vloxseg5ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vbool8_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, const int8_t * op11, vuint32m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i8mf2)))
-void vloxseg5ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, const int8_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i8mf2_m)))
-void vloxseg5ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vbool16_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, const int8_t * op11, vuint32m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i8mf4)))
-void vloxseg5ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, const int8_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i8mf4_m)))
-void vloxseg5ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vbool32_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, const int8_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i8mf8)))
-void vloxseg5ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, const int8_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i8mf8_m)))
-void vloxseg5ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vbool64_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, const int8_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u8m1)))
-void vloxseg5ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, const uint8_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u8m1_m)))
-void vloxseg5ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vbool8_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, const uint8_t * op11, vuint32m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u8mf2)))
-void vloxseg5ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, const uint8_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u8mf2_m)))
-void vloxseg5ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vbool16_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, const uint8_t * op11, vuint32m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u8mf4)))
-void vloxseg5ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, const uint8_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u8mf4_m)))
-void vloxseg5ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vbool32_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, const uint8_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u8mf8)))
-void vloxseg5ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, const uint8_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u8mf8_m)))
-void vloxseg5ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vbool64_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, const uint8_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i8m1)))
-void vloxseg6ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, const int8_t * op6, vuint32m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i8m1_m)))
-void vloxseg6ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vbool8_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, const int8_t * op13, vuint32m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i8mf2)))
-void vloxseg6ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, const int8_t * op6, vuint32m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i8mf2_m)))
-void vloxseg6ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vbool16_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, const int8_t * op13, vuint32m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i8mf4)))
-void vloxseg6ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, const int8_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i8mf4_m)))
-void vloxseg6ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vbool32_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, const int8_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i8mf8)))
-void vloxseg6ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, const int8_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i8mf8_m)))
-void vloxseg6ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vbool64_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, const int8_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u8m1)))
-void vloxseg6ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, const uint8_t * op6, vuint32m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u8m1_m)))
-void vloxseg6ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vbool8_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, const uint8_t * op13, vuint32m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u8mf2)))
-void vloxseg6ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, const uint8_t * op6, vuint32m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u8mf2_m)))
-void vloxseg6ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vbool16_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, const uint8_t * op13, vuint32m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u8mf4)))
-void vloxseg6ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, const uint8_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u8mf4_m)))
-void vloxseg6ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vbool32_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, const uint8_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u8mf8)))
-void vloxseg6ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, const uint8_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u8mf8_m)))
-void vloxseg6ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vbool64_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, const uint8_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i8m1)))
-void vloxseg7ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, const int8_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i8m1_m)))
-void vloxseg7ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vbool8_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, const int8_t * op15, vuint32m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i8mf2)))
-void vloxseg7ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, const int8_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i8mf2_m)))
-void vloxseg7ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vbool16_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, const int8_t * op15, vuint32m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i8mf4)))
-void vloxseg7ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, const int8_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i8mf4_m)))
-void vloxseg7ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vbool32_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, const int8_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i8mf8)))
-void vloxseg7ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, const int8_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i8mf8_m)))
-void vloxseg7ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vbool64_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, const int8_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u8m1)))
-void vloxseg7ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, const uint8_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u8m1_m)))
-void vloxseg7ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vbool8_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, const uint8_t * op15, vuint32m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u8mf2)))
-void vloxseg7ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, const uint8_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u8mf2_m)))
-void vloxseg7ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vbool16_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, const uint8_t * op15, vuint32m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u8mf4)))
-void vloxseg7ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, const uint8_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u8mf4_m)))
-void vloxseg7ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vbool32_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, const uint8_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u8mf8)))
-void vloxseg7ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, const uint8_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u8mf8_m)))
-void vloxseg7ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vbool64_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, const uint8_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i8m1)))
-void vloxseg8ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, const int8_t * op8, vuint32m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i8m1_m)))
-void vloxseg8ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, vbool8_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, vint8m1_t op15, vint8m1_t op16, const int8_t * op17, vuint32m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i8mf2)))
-void vloxseg8ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, const int8_t * op8, vuint32m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i8mf2_m)))
-void vloxseg8ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, vbool16_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, vint8mf2_t op15, vint8mf2_t op16, const int8_t * op17, vuint32m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i8mf4)))
-void vloxseg8ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, const int8_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i8mf4_m)))
-void vloxseg8ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, vbool32_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, vint8mf4_t op15, vint8mf4_t op16, const int8_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i8mf8)))
-void vloxseg8ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, const int8_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i8mf8_m)))
-void vloxseg8ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, vbool64_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, vint8mf8_t op15, vint8mf8_t op16, const int8_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u8m1)))
-void vloxseg8ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, const uint8_t * op8, vuint32m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u8m1_m)))
-void vloxseg8ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, vbool8_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, vuint8m1_t op15, vuint8m1_t op16, const uint8_t * op17, vuint32m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u8mf2)))
-void vloxseg8ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, const uint8_t * op8, vuint32m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u8mf2_m)))
-void vloxseg8ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, vbool16_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, vuint8mf2_t op15, vuint8mf2_t op16, const uint8_t * op17, vuint32m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u8mf4)))
-void vloxseg8ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, const uint8_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u8mf4_m)))
-void vloxseg8ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, vbool32_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, vuint8mf4_t op15, vuint8mf4_t op16, const uint8_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u8mf8)))
-void vloxseg8ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, const uint8_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u8mf8_m)))
-void vloxseg8ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, vbool64_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, vuint8mf8_t op15, vuint8mf8_t op16, const uint8_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i8m1)))
-void vloxseg2ei64(vint8m1_t * op0, vint8m1_t * op1, const int8_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i8m1_m)))
-void vloxseg2ei64(vint8m1_t * op0, vint8m1_t * op1, vbool8_t op2, vint8m1_t op3, vint8m1_t op4, const int8_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i8mf2)))
-void vloxseg2ei64(vint8mf2_t * op0, vint8mf2_t * op1, const int8_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i8mf2_m)))
-void vloxseg2ei64(vint8mf2_t * op0, vint8mf2_t * op1, vbool16_t op2, vint8mf2_t op3, vint8mf2_t op4, const int8_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i8mf4)))
-void vloxseg2ei64(vint8mf4_t * op0, vint8mf4_t * op1, const int8_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i8mf4_m)))
-void vloxseg2ei64(vint8mf4_t * op0, vint8mf4_t * op1, vbool32_t op2, vint8mf4_t op3, vint8mf4_t op4, const int8_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i8mf8)))
-void vloxseg2ei64(vint8mf8_t * op0, vint8mf8_t * op1, const int8_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i8mf8_m)))
-void vloxseg2ei64(vint8mf8_t * op0, vint8mf8_t * op1, vbool64_t op2, vint8mf8_t op3, vint8mf8_t op4, const int8_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u8m1)))
-void vloxseg2ei64(vuint8m1_t * op0, vuint8m1_t * op1, const uint8_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u8m1_m)))
-void vloxseg2ei64(vuint8m1_t * op0, vuint8m1_t * op1, vbool8_t op2, vuint8m1_t op3, vuint8m1_t op4, const uint8_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u8mf2)))
-void vloxseg2ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, const uint8_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u8mf2_m)))
-void vloxseg2ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vbool16_t op2, vuint8mf2_t op3, vuint8mf2_t op4, const uint8_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u8mf4)))
-void vloxseg2ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, const uint8_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u8mf4_m)))
-void vloxseg2ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vbool32_t op2, vuint8mf4_t op3, vuint8mf4_t op4, const uint8_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u8mf8)))
-void vloxseg2ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, const uint8_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u8mf8_m)))
-void vloxseg2ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vbool64_t op2, vuint8mf8_t op3, vuint8mf8_t op4, const uint8_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i8m1)))
-void vloxseg3ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, const int8_t * op3, vuint64m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i8m1_m)))
-void vloxseg3ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vbool8_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, const int8_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i8mf2)))
-void vloxseg3ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, const int8_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i8mf2_m)))
-void vloxseg3ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vbool16_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, const int8_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i8mf4)))
-void vloxseg3ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, const int8_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i8mf4_m)))
-void vloxseg3ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vbool32_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, const int8_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i8mf8)))
-void vloxseg3ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, const int8_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i8mf8_m)))
-void vloxseg3ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vbool64_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, const int8_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u8m1)))
-void vloxseg3ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, const uint8_t * op3, vuint64m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u8m1_m)))
-void vloxseg3ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vbool8_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, const uint8_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u8mf2)))
-void vloxseg3ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, const uint8_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u8mf2_m)))
-void vloxseg3ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vbool16_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, const uint8_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u8mf4)))
-void vloxseg3ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, const uint8_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u8mf4_m)))
-void vloxseg3ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vbool32_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, const uint8_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u8mf8)))
-void vloxseg3ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, const uint8_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u8mf8_m)))
-void vloxseg3ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vbool64_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, const uint8_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i8m1)))
-void vloxseg4ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, const int8_t * op4, vuint64m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i8m1_m)))
-void vloxseg4ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vbool8_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, const int8_t * op9, vuint64m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i8mf2)))
-void vloxseg4ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, const int8_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i8mf2_m)))
-void vloxseg4ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vbool16_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, const int8_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i8mf4)))
-void vloxseg4ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, const int8_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i8mf4_m)))
-void vloxseg4ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vbool32_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, const int8_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i8mf8)))
-void vloxseg4ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, const int8_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i8mf8_m)))
-void vloxseg4ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vbool64_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, const int8_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u8m1)))
-void vloxseg4ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, const uint8_t * op4, vuint64m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u8m1_m)))
-void vloxseg4ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vbool8_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, const uint8_t * op9, vuint64m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u8mf2)))
-void vloxseg4ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, const uint8_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u8mf2_m)))
-void vloxseg4ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vbool16_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, const uint8_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u8mf4)))
-void vloxseg4ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, const uint8_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u8mf4_m)))
-void vloxseg4ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vbool32_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, const uint8_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u8mf8)))
-void vloxseg4ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, const uint8_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u8mf8_m)))
-void vloxseg4ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vbool64_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, const uint8_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i8m1)))
-void vloxseg5ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, const int8_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i8m1_m)))
-void vloxseg5ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vbool8_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, const int8_t * op11, vuint64m8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i8mf2)))
-void vloxseg5ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, const int8_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i8mf2_m)))
-void vloxseg5ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vbool16_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, const int8_t * op11, vuint64m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i8mf4)))
-void vloxseg5ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, const int8_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i8mf4_m)))
-void vloxseg5ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vbool32_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, const int8_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i8mf8)))
-void vloxseg5ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, const int8_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i8mf8_m)))
-void vloxseg5ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vbool64_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, const int8_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u8m1)))
-void vloxseg5ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, const uint8_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u8m1_m)))
-void vloxseg5ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vbool8_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, const uint8_t * op11, vuint64m8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u8mf2)))
-void vloxseg5ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, const uint8_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u8mf2_m)))
-void vloxseg5ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vbool16_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, const uint8_t * op11, vuint64m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u8mf4)))
-void vloxseg5ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, const uint8_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u8mf4_m)))
-void vloxseg5ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vbool32_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, const uint8_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u8mf8)))
-void vloxseg5ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, const uint8_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u8mf8_m)))
-void vloxseg5ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vbool64_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, const uint8_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i8m1)))
-void vloxseg6ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, const int8_t * op6, vuint64m8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i8m1_m)))
-void vloxseg6ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vbool8_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, const int8_t * op13, vuint64m8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i8mf2)))
-void vloxseg6ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, const int8_t * op6, vuint64m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i8mf2_m)))
-void vloxseg6ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vbool16_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, const int8_t * op13, vuint64m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i8mf4)))
-void vloxseg6ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, const int8_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i8mf4_m)))
-void vloxseg6ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vbool32_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, const int8_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i8mf8)))
-void vloxseg6ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, const int8_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i8mf8_m)))
-void vloxseg6ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vbool64_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, const int8_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u8m1)))
-void vloxseg6ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, const uint8_t * op6, vuint64m8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u8m1_m)))
-void vloxseg6ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vbool8_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, const uint8_t * op13, vuint64m8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u8mf2)))
-void vloxseg6ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, const uint8_t * op6, vuint64m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u8mf2_m)))
-void vloxseg6ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vbool16_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, const uint8_t * op13, vuint64m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u8mf4)))
-void vloxseg6ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, const uint8_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u8mf4_m)))
-void vloxseg6ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vbool32_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, const uint8_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u8mf8)))
-void vloxseg6ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, const uint8_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u8mf8_m)))
-void vloxseg6ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vbool64_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, const uint8_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i8m1)))
-void vloxseg7ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, const int8_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i8m1_m)))
-void vloxseg7ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vbool8_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, const int8_t * op15, vuint64m8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i8mf2)))
-void vloxseg7ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, const int8_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i8mf2_m)))
-void vloxseg7ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vbool16_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, const int8_t * op15, vuint64m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i8mf4)))
-void vloxseg7ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, const int8_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i8mf4_m)))
-void vloxseg7ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vbool32_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, const int8_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i8mf8)))
-void vloxseg7ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, const int8_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i8mf8_m)))
-void vloxseg7ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vbool64_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, const int8_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u8m1)))
-void vloxseg7ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, const uint8_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u8m1_m)))
-void vloxseg7ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vbool8_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, const uint8_t * op15, vuint64m8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u8mf2)))
-void vloxseg7ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, const uint8_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u8mf2_m)))
-void vloxseg7ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vbool16_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, const uint8_t * op15, vuint64m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u8mf4)))
-void vloxseg7ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, const uint8_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u8mf4_m)))
-void vloxseg7ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vbool32_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, const uint8_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u8mf8)))
-void vloxseg7ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, const uint8_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u8mf8_m)))
-void vloxseg7ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vbool64_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, const uint8_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i8m1)))
-void vloxseg8ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, const int8_t * op8, vuint64m8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i8m1_m)))
-void vloxseg8ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, vbool8_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, vint8m1_t op15, vint8m1_t op16, const int8_t * op17, vuint64m8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i8mf2)))
-void vloxseg8ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, const int8_t * op8, vuint64m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i8mf2_m)))
-void vloxseg8ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, vbool16_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, vint8mf2_t op15, vint8mf2_t op16, const int8_t * op17, vuint64m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i8mf4)))
-void vloxseg8ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, const int8_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i8mf4_m)))
-void vloxseg8ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, vbool32_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, vint8mf4_t op15, vint8mf4_t op16, const int8_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i8mf8)))
-void vloxseg8ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, const int8_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i8mf8_m)))
-void vloxseg8ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, vbool64_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, vint8mf8_t op15, vint8mf8_t op16, const int8_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u8m1)))
-void vloxseg8ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, const uint8_t * op8, vuint64m8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u8m1_m)))
-void vloxseg8ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, vbool8_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, vuint8m1_t op15, vuint8m1_t op16, const uint8_t * op17, vuint64m8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u8mf2)))
-void vloxseg8ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, const uint8_t * op8, vuint64m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u8mf2_m)))
-void vloxseg8ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, vbool16_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, vuint8mf2_t op15, vuint8mf2_t op16, const uint8_t * op17, vuint64m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u8mf4)))
-void vloxseg8ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, const uint8_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u8mf4_m)))
-void vloxseg8ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, vbool32_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, vuint8mf4_t op15, vuint8mf4_t op16, const uint8_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u8mf8)))
-void vloxseg8ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, const uint8_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u8mf8_m)))
-void vloxseg8ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, vbool64_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, vuint8mf8_t op15, vuint8mf8_t op16, const uint8_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i16m1)))
-void vloxseg2ei8(vint16m1_t * op0, vint16m1_t * op1, const int16_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i16m1_m)))
-void vloxseg2ei8(vint16m1_t * op0, vint16m1_t * op1, vbool16_t op2, vint16m1_t op3, vint16m1_t op4, const int16_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i16m2)))
-void vloxseg2ei8(vint16m2_t * op0, vint16m2_t * op1, const int16_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i16m2_m)))
-void vloxseg2ei8(vint16m2_t * op0, vint16m2_t * op1, vbool8_t op2, vint16m2_t op3, vint16m2_t op4, const int16_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i16m4)))
-void vloxseg2ei8(vint16m4_t * op0, vint16m4_t * op1, const int16_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i16m4_m)))
-void vloxseg2ei8(vint16m4_t * op0, vint16m4_t * op1, vbool4_t op2, vint16m4_t op3, vint16m4_t op4, const int16_t * op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i16mf2)))
-void vloxseg2ei8(vint16mf2_t * op0, vint16mf2_t * op1, const int16_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i16mf2_m)))
-void vloxseg2ei8(vint16mf2_t * op0, vint16mf2_t * op1, vbool32_t op2, vint16mf2_t op3, vint16mf2_t op4, const int16_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i16mf4)))
-void vloxseg2ei8(vint16mf4_t * op0, vint16mf4_t * op1, const int16_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i16mf4_m)))
-void vloxseg2ei8(vint16mf4_t * op0, vint16mf4_t * op1, vbool64_t op2, vint16mf4_t op3, vint16mf4_t op4, const int16_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u16m1)))
-void vloxseg2ei8(vuint16m1_t * op0, vuint16m1_t * op1, const uint16_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u16m1_m)))
-void vloxseg2ei8(vuint16m1_t * op0, vuint16m1_t * op1, vbool16_t op2, vuint16m1_t op3, vuint16m1_t op4, const uint16_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u16m2)))
-void vloxseg2ei8(vuint16m2_t * op0, vuint16m2_t * op1, const uint16_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u16m2_m)))
-void vloxseg2ei8(vuint16m2_t * op0, vuint16m2_t * op1, vbool8_t op2, vuint16m2_t op3, vuint16m2_t op4, const uint16_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u16m4)))
-void vloxseg2ei8(vuint16m4_t * op0, vuint16m4_t * op1, const uint16_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u16m4_m)))
-void vloxseg2ei8(vuint16m4_t * op0, vuint16m4_t * op1, vbool4_t op2, vuint16m4_t op3, vuint16m4_t op4, const uint16_t * op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u16mf2)))
-void vloxseg2ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, const uint16_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u16mf2_m)))
-void vloxseg2ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vbool32_t op2, vuint16mf2_t op3, vuint16mf2_t op4, const uint16_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u16mf4)))
-void vloxseg2ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, const uint16_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u16mf4_m)))
-void vloxseg2ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vbool64_t op2, vuint16mf4_t op3, vuint16mf4_t op4, const uint16_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i16m1)))
-void vloxseg3ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, const int16_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i16m1_m)))
-void vloxseg3ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vbool16_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, const int16_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i16m2)))
-void vloxseg3ei8(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, const int16_t * op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i16m2_m)))
-void vloxseg3ei8(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vbool8_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, const int16_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i16mf2)))
-void vloxseg3ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, const int16_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i16mf2_m)))
-void vloxseg3ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vbool32_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, const int16_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i16mf4)))
-void vloxseg3ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, const int16_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i16mf4_m)))
-void vloxseg3ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vbool64_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, const int16_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u16m1)))
-void vloxseg3ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, const uint16_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u16m1_m)))
-void vloxseg3ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vbool16_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, const uint16_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u16m2)))
-void vloxseg3ei8(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, const uint16_t * op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u16m2_m)))
-void vloxseg3ei8(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vbool8_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, const uint16_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u16mf2)))
-void vloxseg3ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, const uint16_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u16mf2_m)))
-void vloxseg3ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vbool32_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, const uint16_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u16mf4)))
-void vloxseg3ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, const uint16_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u16mf4_m)))
-void vloxseg3ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vbool64_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, const uint16_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i16m1)))
-void vloxseg4ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, const int16_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i16m1_m)))
-void vloxseg4ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vbool16_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, const int16_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i16m2)))
-void vloxseg4ei8(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, const int16_t * op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i16m2_m)))
-void vloxseg4ei8(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, vbool8_t op4, vint16m2_t op5, vint16m2_t op6, vint16m2_t op7, vint16m2_t op8, const int16_t * op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i16mf2)))
-void vloxseg4ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, const int16_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i16mf2_m)))
-void vloxseg4ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vbool32_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, const int16_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i16mf4)))
-void vloxseg4ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, const int16_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i16mf4_m)))
-void vloxseg4ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vbool64_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, const int16_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u16m1)))
-void vloxseg4ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, const uint16_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u16m1_m)))
-void vloxseg4ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vbool16_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, const uint16_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u16m2)))
-void vloxseg4ei8(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, const uint16_t * op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u16m2_m)))
-void vloxseg4ei8(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, vbool8_t op4, vuint16m2_t op5, vuint16m2_t op6, vuint16m2_t op7, vuint16m2_t op8, const uint16_t * op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u16mf2)))
-void vloxseg4ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, const uint16_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u16mf2_m)))
-void vloxseg4ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vbool32_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, const uint16_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u16mf4)))
-void vloxseg4ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, const uint16_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u16mf4_m)))
-void vloxseg4ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vbool64_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, const uint16_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i16m1)))
-void vloxseg5ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, const int16_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i16m1_m)))
-void vloxseg5ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vbool16_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, const int16_t * op11, vuint8mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i16mf2)))
-void vloxseg5ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, const int16_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i16mf2_m)))
-void vloxseg5ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vbool32_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, const int16_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i16mf4)))
-void vloxseg5ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, const int16_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i16mf4_m)))
-void vloxseg5ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vbool64_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, const int16_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u16m1)))
-void vloxseg5ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, const uint16_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u16m1_m)))
-void vloxseg5ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vbool16_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, const uint16_t * op11, vuint8mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u16mf2)))
-void vloxseg5ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, const uint16_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u16mf2_m)))
-void vloxseg5ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vbool32_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, const uint16_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u16mf4)))
-void vloxseg5ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, const uint16_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u16mf4_m)))
-void vloxseg5ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vbool64_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, const uint16_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i16m1)))
-void vloxseg6ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, const int16_t * op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i16m1_m)))
-void vloxseg6ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vbool16_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, const int16_t * op13, vuint8mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i16mf2)))
-void vloxseg6ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, const int16_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i16mf2_m)))
-void vloxseg6ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vbool32_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, const int16_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i16mf4)))
-void vloxseg6ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, const int16_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i16mf4_m)))
-void vloxseg6ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vbool64_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, const int16_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u16m1)))
-void vloxseg6ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, const uint16_t * op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u16m1_m)))
-void vloxseg6ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vbool16_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, const uint16_t * op13, vuint8mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u16mf2)))
-void vloxseg6ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, const uint16_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u16mf2_m)))
-void vloxseg6ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vbool32_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, const uint16_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u16mf4)))
-void vloxseg6ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, const uint16_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u16mf4_m)))
-void vloxseg6ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vbool64_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, const uint16_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i16m1)))
-void vloxseg7ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, const int16_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i16m1_m)))
-void vloxseg7ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vbool16_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, const int16_t * op15, vuint8mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i16mf2)))
-void vloxseg7ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, const int16_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i16mf2_m)))
-void vloxseg7ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vbool32_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, const int16_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i16mf4)))
-void vloxseg7ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, const int16_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i16mf4_m)))
-void vloxseg7ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vbool64_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, const int16_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u16m1)))
-void vloxseg7ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, const uint16_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u16m1_m)))
-void vloxseg7ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vbool16_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, const uint16_t * op15, vuint8mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u16mf2)))
-void vloxseg7ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, const uint16_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u16mf2_m)))
-void vloxseg7ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vbool32_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, const uint16_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u16mf4)))
-void vloxseg7ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, const uint16_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u16mf4_m)))
-void vloxseg7ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vbool64_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, const uint16_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i16m1)))
-void vloxseg8ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, const int16_t * op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i16m1_m)))
-void vloxseg8ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, vbool16_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, vint16m1_t op15, vint16m1_t op16, const int16_t * op17, vuint8mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i16mf2)))
-void vloxseg8ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, const int16_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i16mf2_m)))
-void vloxseg8ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, vbool32_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, vint16mf2_t op15, vint16mf2_t op16, const int16_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i16mf4)))
-void vloxseg8ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, const int16_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i16mf4_m)))
-void vloxseg8ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, vbool64_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, vint16mf4_t op15, vint16mf4_t op16, const int16_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u16m1)))
-void vloxseg8ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, const uint16_t * op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u16m1_m)))
-void vloxseg8ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, vbool16_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, vuint16m1_t op15, vuint16m1_t op16, const uint16_t * op17, vuint8mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u16mf2)))
-void vloxseg8ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, const uint16_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u16mf2_m)))
-void vloxseg8ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, vbool32_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, vuint16mf2_t op15, vuint16mf2_t op16, const uint16_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u16mf4)))
-void vloxseg8ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, const uint16_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u16mf4_m)))
-void vloxseg8ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, vbool64_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, vuint16mf4_t op15, vuint16mf4_t op16, const uint16_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i16m1)))
-void vloxseg2ei16(vint16m1_t * op0, vint16m1_t * op1, const int16_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i16m1_m)))
-void vloxseg2ei16(vint16m1_t * op0, vint16m1_t * op1, vbool16_t op2, vint16m1_t op3, vint16m1_t op4, const int16_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i16m2)))
-void vloxseg2ei16(vint16m2_t * op0, vint16m2_t * op1, const int16_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i16m2_m)))
-void vloxseg2ei16(vint16m2_t * op0, vint16m2_t * op1, vbool8_t op2, vint16m2_t op3, vint16m2_t op4, const int16_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i16m4)))
-void vloxseg2ei16(vint16m4_t * op0, vint16m4_t * op1, const int16_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i16m4_m)))
-void vloxseg2ei16(vint16m4_t * op0, vint16m4_t * op1, vbool4_t op2, vint16m4_t op3, vint16m4_t op4, const int16_t * op5, vuint16m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i16mf2)))
-void vloxseg2ei16(vint16mf2_t * op0, vint16mf2_t * op1, const int16_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i16mf2_m)))
-void vloxseg2ei16(vint16mf2_t * op0, vint16mf2_t * op1, vbool32_t op2, vint16mf2_t op3, vint16mf2_t op4, const int16_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i16mf4)))
-void vloxseg2ei16(vint16mf4_t * op0, vint16mf4_t * op1, const int16_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i16mf4_m)))
-void vloxseg2ei16(vint16mf4_t * op0, vint16mf4_t * op1, vbool64_t op2, vint16mf4_t op3, vint16mf4_t op4, const int16_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u16m1)))
-void vloxseg2ei16(vuint16m1_t * op0, vuint16m1_t * op1, const uint16_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u16m1_m)))
-void vloxseg2ei16(vuint16m1_t * op0, vuint16m1_t * op1, vbool16_t op2, vuint16m1_t op3, vuint16m1_t op4, const uint16_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u16m2)))
-void vloxseg2ei16(vuint16m2_t * op0, vuint16m2_t * op1, const uint16_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u16m2_m)))
-void vloxseg2ei16(vuint16m2_t * op0, vuint16m2_t * op1, vbool8_t op2, vuint16m2_t op3, vuint16m2_t op4, const uint16_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u16m4)))
-void vloxseg2ei16(vuint16m4_t * op0, vuint16m4_t * op1, const uint16_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u16m4_m)))
-void vloxseg2ei16(vuint16m4_t * op0, vuint16m4_t * op1, vbool4_t op2, vuint16m4_t op3, vuint16m4_t op4, const uint16_t * op5, vuint16m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u16mf2)))
-void vloxseg2ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, const uint16_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u16mf2_m)))
-void vloxseg2ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vbool32_t op2, vuint16mf2_t op3, vuint16mf2_t op4, const uint16_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u16mf4)))
-void vloxseg2ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, const uint16_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u16mf4_m)))
-void vloxseg2ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vbool64_t op2, vuint16mf4_t op3, vuint16mf4_t op4, const uint16_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i16m1)))
-void vloxseg3ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, const int16_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i16m1_m)))
-void vloxseg3ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vbool16_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, const int16_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i16m2)))
-void vloxseg3ei16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, const int16_t * op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i16m2_m)))
-void vloxseg3ei16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vbool8_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, const int16_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i16mf2)))
-void vloxseg3ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, const int16_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i16mf2_m)))
-void vloxseg3ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vbool32_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, const int16_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i16mf4)))
-void vloxseg3ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, const int16_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i16mf4_m)))
-void vloxseg3ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vbool64_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, const int16_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u16m1)))
-void vloxseg3ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, const uint16_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u16m1_m)))
-void vloxseg3ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vbool16_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, const uint16_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u16m2)))
-void vloxseg3ei16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, const uint16_t * op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u16m2_m)))
-void vloxseg3ei16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vbool8_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, const uint16_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u16mf2)))
-void vloxseg3ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, const uint16_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u16mf2_m)))
-void vloxseg3ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vbool32_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, const uint16_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u16mf4)))
-void vloxseg3ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, const uint16_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u16mf4_m)))
-void vloxseg3ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vbool64_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, const uint16_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i16m1)))
-void vloxseg4ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, const int16_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i16m1_m)))
-void vloxseg4ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vbool16_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, const int16_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i16m2)))
-void vloxseg4ei16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, const int16_t * op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i16m2_m)))
-void vloxseg4ei16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, vbool8_t op4, vint16m2_t op5, vint16m2_t op6, vint16m2_t op7, vint16m2_t op8, const int16_t * op9, vuint16m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i16mf2)))
-void vloxseg4ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, const int16_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i16mf2_m)))
-void vloxseg4ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vbool32_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, const int16_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i16mf4)))
-void vloxseg4ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, const int16_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i16mf4_m)))
-void vloxseg4ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vbool64_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, const int16_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u16m1)))
-void vloxseg4ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, const uint16_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u16m1_m)))
-void vloxseg4ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vbool16_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, const uint16_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u16m2)))
-void vloxseg4ei16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, const uint16_t * op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u16m2_m)))
-void vloxseg4ei16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, vbool8_t op4, vuint16m2_t op5, vuint16m2_t op6, vuint16m2_t op7, vuint16m2_t op8, const uint16_t * op9, vuint16m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u16mf2)))
-void vloxseg4ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, const uint16_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u16mf2_m)))
-void vloxseg4ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vbool32_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, const uint16_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u16mf4)))
-void vloxseg4ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, const uint16_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u16mf4_m)))
-void vloxseg4ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vbool64_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, const uint16_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i16m1)))
-void vloxseg5ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, const int16_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i16m1_m)))
-void vloxseg5ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vbool16_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, const int16_t * op11, vuint16m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i16mf2)))
-void vloxseg5ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, const int16_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i16mf2_m)))
-void vloxseg5ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vbool32_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, const int16_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i16mf4)))
-void vloxseg5ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, const int16_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i16mf4_m)))
-void vloxseg5ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vbool64_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, const int16_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u16m1)))
-void vloxseg5ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, const uint16_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u16m1_m)))
-void vloxseg5ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vbool16_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, const uint16_t * op11, vuint16m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u16mf2)))
-void vloxseg5ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, const uint16_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u16mf2_m)))
-void vloxseg5ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vbool32_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, const uint16_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u16mf4)))
-void vloxseg5ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, const uint16_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u16mf4_m)))
-void vloxseg5ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vbool64_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, const uint16_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i16m1)))
-void vloxseg6ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, const int16_t * op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i16m1_m)))
-void vloxseg6ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vbool16_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, const int16_t * op13, vuint16m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i16mf2)))
-void vloxseg6ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, const int16_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i16mf2_m)))
-void vloxseg6ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vbool32_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, const int16_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i16mf4)))
-void vloxseg6ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, const int16_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i16mf4_m)))
-void vloxseg6ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vbool64_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, const int16_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u16m1)))
-void vloxseg6ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, const uint16_t * op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u16m1_m)))
-void vloxseg6ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vbool16_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, const uint16_t * op13, vuint16m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u16mf2)))
-void vloxseg6ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, const uint16_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u16mf2_m)))
-void vloxseg6ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vbool32_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, const uint16_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u16mf4)))
-void vloxseg6ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, const uint16_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u16mf4_m)))
-void vloxseg6ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vbool64_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, const uint16_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i16m1)))
-void vloxseg7ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, const int16_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i16m1_m)))
-void vloxseg7ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vbool16_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, const int16_t * op15, vuint16m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i16mf2)))
-void vloxseg7ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, const int16_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i16mf2_m)))
-void vloxseg7ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vbool32_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, const int16_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i16mf4)))
-void vloxseg7ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, const int16_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i16mf4_m)))
-void vloxseg7ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vbool64_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, const int16_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u16m1)))
-void vloxseg7ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, const uint16_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u16m1_m)))
-void vloxseg7ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vbool16_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, const uint16_t * op15, vuint16m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u16mf2)))
-void vloxseg7ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, const uint16_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u16mf2_m)))
-void vloxseg7ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vbool32_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, const uint16_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u16mf4)))
-void vloxseg7ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, const uint16_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u16mf4_m)))
-void vloxseg7ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vbool64_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, const uint16_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i16m1)))
-void vloxseg8ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, const int16_t * op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i16m1_m)))
-void vloxseg8ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, vbool16_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, vint16m1_t op15, vint16m1_t op16, const int16_t * op17, vuint16m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i16mf2)))
-void vloxseg8ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, const int16_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i16mf2_m)))
-void vloxseg8ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, vbool32_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, vint16mf2_t op15, vint16mf2_t op16, const int16_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i16mf4)))
-void vloxseg8ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, const int16_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i16mf4_m)))
-void vloxseg8ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, vbool64_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, vint16mf4_t op15, vint16mf4_t op16, const int16_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u16m1)))
-void vloxseg8ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, const uint16_t * op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u16m1_m)))
-void vloxseg8ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, vbool16_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, vuint16m1_t op15, vuint16m1_t op16, const uint16_t * op17, vuint16m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u16mf2)))
-void vloxseg8ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, const uint16_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u16mf2_m)))
-void vloxseg8ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, vbool32_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, vuint16mf2_t op15, vuint16mf2_t op16, const uint16_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u16mf4)))
-void vloxseg8ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, const uint16_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u16mf4_m)))
-void vloxseg8ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, vbool64_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, vuint16mf4_t op15, vuint16mf4_t op16, const uint16_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i16m1)))
-void vloxseg2ei32(vint16m1_t * op0, vint16m1_t * op1, const int16_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i16m1_m)))
-void vloxseg2ei32(vint16m1_t * op0, vint16m1_t * op1, vbool16_t op2, vint16m1_t op3, vint16m1_t op4, const int16_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i16m2)))
-void vloxseg2ei32(vint16m2_t * op0, vint16m2_t * op1, const int16_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i16m2_m)))
-void vloxseg2ei32(vint16m2_t * op0, vint16m2_t * op1, vbool8_t op2, vint16m2_t op3, vint16m2_t op4, const int16_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i16m4)))
-void vloxseg2ei32(vint16m4_t * op0, vint16m4_t * op1, const int16_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i16m4_m)))
-void vloxseg2ei32(vint16m4_t * op0, vint16m4_t * op1, vbool4_t op2, vint16m4_t op3, vint16m4_t op4, const int16_t * op5, vuint32m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i16mf2)))
-void vloxseg2ei32(vint16mf2_t * op0, vint16mf2_t * op1, const int16_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i16mf2_m)))
-void vloxseg2ei32(vint16mf2_t * op0, vint16mf2_t * op1, vbool32_t op2, vint16mf2_t op3, vint16mf2_t op4, const int16_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i16mf4)))
-void vloxseg2ei32(vint16mf4_t * op0, vint16mf4_t * op1, const int16_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i16mf4_m)))
-void vloxseg2ei32(vint16mf4_t * op0, vint16mf4_t * op1, vbool64_t op2, vint16mf4_t op3, vint16mf4_t op4, const int16_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u16m1)))
-void vloxseg2ei32(vuint16m1_t * op0, vuint16m1_t * op1, const uint16_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u16m1_m)))
-void vloxseg2ei32(vuint16m1_t * op0, vuint16m1_t * op1, vbool16_t op2, vuint16m1_t op3, vuint16m1_t op4, const uint16_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u16m2)))
-void vloxseg2ei32(vuint16m2_t * op0, vuint16m2_t * op1, const uint16_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u16m2_m)))
-void vloxseg2ei32(vuint16m2_t * op0, vuint16m2_t * op1, vbool8_t op2, vuint16m2_t op3, vuint16m2_t op4, const uint16_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u16m4)))
-void vloxseg2ei32(vuint16m4_t * op0, vuint16m4_t * op1, const uint16_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u16m4_m)))
-void vloxseg2ei32(vuint16m4_t * op0, vuint16m4_t * op1, vbool4_t op2, vuint16m4_t op3, vuint16m4_t op4, const uint16_t * op5, vuint32m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u16mf2)))
-void vloxseg2ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, const uint16_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u16mf2_m)))
-void vloxseg2ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vbool32_t op2, vuint16mf2_t op3, vuint16mf2_t op4, const uint16_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u16mf4)))
-void vloxseg2ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, const uint16_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u16mf4_m)))
-void vloxseg2ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vbool64_t op2, vuint16mf4_t op3, vuint16mf4_t op4, const uint16_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i16m1)))
-void vloxseg3ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, const int16_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i16m1_m)))
-void vloxseg3ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vbool16_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, const int16_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i16m2)))
-void vloxseg3ei32(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, const int16_t * op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i16m2_m)))
-void vloxseg3ei32(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vbool8_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, const int16_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i16mf2)))
-void vloxseg3ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, const int16_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i16mf2_m)))
-void vloxseg3ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vbool32_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, const int16_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i16mf4)))
-void vloxseg3ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, const int16_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i16mf4_m)))
-void vloxseg3ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vbool64_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, const int16_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u16m1)))
-void vloxseg3ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, const uint16_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u16m1_m)))
-void vloxseg3ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vbool16_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, const uint16_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u16m2)))
-void vloxseg3ei32(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, const uint16_t * op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u16m2_m)))
-void vloxseg3ei32(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vbool8_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, const uint16_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u16mf2)))
-void vloxseg3ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, const uint16_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u16mf2_m)))
-void vloxseg3ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vbool32_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, const uint16_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u16mf4)))
-void vloxseg3ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, const uint16_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u16mf4_m)))
-void vloxseg3ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vbool64_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, const uint16_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i16m1)))
-void vloxseg4ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, const int16_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i16m1_m)))
-void vloxseg4ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vbool16_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, const int16_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i16m2)))
-void vloxseg4ei32(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, const int16_t * op4, vuint32m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i16m2_m)))
-void vloxseg4ei32(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, vbool8_t op4, vint16m2_t op5, vint16m2_t op6, vint16m2_t op7, vint16m2_t op8, const int16_t * op9, vuint32m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i16mf2)))
-void vloxseg4ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, const int16_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i16mf2_m)))
-void vloxseg4ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vbool32_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, const int16_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i16mf4)))
-void vloxseg4ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, const int16_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i16mf4_m)))
-void vloxseg4ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vbool64_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, const int16_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u16m1)))
-void vloxseg4ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, const uint16_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u16m1_m)))
-void vloxseg4ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vbool16_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, const uint16_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u16m2)))
-void vloxseg4ei32(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, const uint16_t * op4, vuint32m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u16m2_m)))
-void vloxseg4ei32(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, vbool8_t op4, vuint16m2_t op5, vuint16m2_t op6, vuint16m2_t op7, vuint16m2_t op8, const uint16_t * op9, vuint32m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u16mf2)))
-void vloxseg4ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, const uint16_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u16mf2_m)))
-void vloxseg4ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vbool32_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, const uint16_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u16mf4)))
-void vloxseg4ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, const uint16_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u16mf4_m)))
-void vloxseg4ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vbool64_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, const uint16_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i16m1)))
-void vloxseg5ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, const int16_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i16m1_m)))
-void vloxseg5ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vbool16_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, const int16_t * op11, vuint32m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i16mf2)))
-void vloxseg5ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, const int16_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i16mf2_m)))
-void vloxseg5ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vbool32_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, const int16_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i16mf4)))
-void vloxseg5ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, const int16_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i16mf4_m)))
-void vloxseg5ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vbool64_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, const int16_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u16m1)))
-void vloxseg5ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, const uint16_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u16m1_m)))
-void vloxseg5ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vbool16_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, const uint16_t * op11, vuint32m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u16mf2)))
-void vloxseg5ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, const uint16_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u16mf2_m)))
-void vloxseg5ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vbool32_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, const uint16_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u16mf4)))
-void vloxseg5ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, const uint16_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u16mf4_m)))
-void vloxseg5ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vbool64_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, const uint16_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i16m1)))
-void vloxseg6ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, const int16_t * op6, vuint32m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i16m1_m)))
-void vloxseg6ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vbool16_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, const int16_t * op13, vuint32m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i16mf2)))
-void vloxseg6ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, const int16_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i16mf2_m)))
-void vloxseg6ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vbool32_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, const int16_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i16mf4)))
-void vloxseg6ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, const int16_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i16mf4_m)))
-void vloxseg6ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vbool64_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, const int16_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u16m1)))
-void vloxseg6ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, const uint16_t * op6, vuint32m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u16m1_m)))
-void vloxseg6ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vbool16_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, const uint16_t * op13, vuint32m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u16mf2)))
-void vloxseg6ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, const uint16_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u16mf2_m)))
-void vloxseg6ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vbool32_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, const uint16_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u16mf4)))
-void vloxseg6ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, const uint16_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u16mf4_m)))
-void vloxseg6ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vbool64_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, const uint16_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i16m1)))
-void vloxseg7ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, const int16_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i16m1_m)))
-void vloxseg7ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vbool16_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, const int16_t * op15, vuint32m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i16mf2)))
-void vloxseg7ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, const int16_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i16mf2_m)))
-void vloxseg7ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vbool32_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, const int16_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i16mf4)))
-void vloxseg7ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, const int16_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i16mf4_m)))
-void vloxseg7ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vbool64_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, const int16_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u16m1)))
-void vloxseg7ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, const uint16_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u16m1_m)))
-void vloxseg7ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vbool16_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, const uint16_t * op15, vuint32m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u16mf2)))
-void vloxseg7ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, const uint16_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u16mf2_m)))
-void vloxseg7ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vbool32_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, const uint16_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u16mf4)))
-void vloxseg7ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, const uint16_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u16mf4_m)))
-void vloxseg7ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vbool64_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, const uint16_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i16m1)))
-void vloxseg8ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, const int16_t * op8, vuint32m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i16m1_m)))
-void vloxseg8ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, vbool16_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, vint16m1_t op15, vint16m1_t op16, const int16_t * op17, vuint32m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i16mf2)))
-void vloxseg8ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, const int16_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i16mf2_m)))
-void vloxseg8ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, vbool32_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, vint16mf2_t op15, vint16mf2_t op16, const int16_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i16mf4)))
-void vloxseg8ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, const int16_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i16mf4_m)))
-void vloxseg8ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, vbool64_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, vint16mf4_t op15, vint16mf4_t op16, const int16_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u16m1)))
-void vloxseg8ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, const uint16_t * op8, vuint32m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u16m1_m)))
-void vloxseg8ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, vbool16_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, vuint16m1_t op15, vuint16m1_t op16, const uint16_t * op17, vuint32m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u16mf2)))
-void vloxseg8ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, const uint16_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u16mf2_m)))
-void vloxseg8ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, vbool32_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, vuint16mf2_t op15, vuint16mf2_t op16, const uint16_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u16mf4)))
-void vloxseg8ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, const uint16_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u16mf4_m)))
-void vloxseg8ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, vbool64_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, vuint16mf4_t op15, vuint16mf4_t op16, const uint16_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i16m1)))
-void vloxseg2ei64(vint16m1_t * op0, vint16m1_t * op1, const int16_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i16m1_m)))
-void vloxseg2ei64(vint16m1_t * op0, vint16m1_t * op1, vbool16_t op2, vint16m1_t op3, vint16m1_t op4, const int16_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i16m2)))
-void vloxseg2ei64(vint16m2_t * op0, vint16m2_t * op1, const int16_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i16m2_m)))
-void vloxseg2ei64(vint16m2_t * op0, vint16m2_t * op1, vbool8_t op2, vint16m2_t op3, vint16m2_t op4, const int16_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i16mf2)))
-void vloxseg2ei64(vint16mf2_t * op0, vint16mf2_t * op1, const int16_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i16mf2_m)))
-void vloxseg2ei64(vint16mf2_t * op0, vint16mf2_t * op1, vbool32_t op2, vint16mf2_t op3, vint16mf2_t op4, const int16_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i16mf4)))
-void vloxseg2ei64(vint16mf4_t * op0, vint16mf4_t * op1, const int16_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i16mf4_m)))
-void vloxseg2ei64(vint16mf4_t * op0, vint16mf4_t * op1, vbool64_t op2, vint16mf4_t op3, vint16mf4_t op4, const int16_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u16m1)))
-void vloxseg2ei64(vuint16m1_t * op0, vuint16m1_t * op1, const uint16_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u16m1_m)))
-void vloxseg2ei64(vuint16m1_t * op0, vuint16m1_t * op1, vbool16_t op2, vuint16m1_t op3, vuint16m1_t op4, const uint16_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u16m2)))
-void vloxseg2ei64(vuint16m2_t * op0, vuint16m2_t * op1, const uint16_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u16m2_m)))
-void vloxseg2ei64(vuint16m2_t * op0, vuint16m2_t * op1, vbool8_t op2, vuint16m2_t op3, vuint16m2_t op4, const uint16_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u16mf2)))
-void vloxseg2ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, const uint16_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u16mf2_m)))
-void vloxseg2ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vbool32_t op2, vuint16mf2_t op3, vuint16mf2_t op4, const uint16_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u16mf4)))
-void vloxseg2ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, const uint16_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u16mf4_m)))
-void vloxseg2ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vbool64_t op2, vuint16mf4_t op3, vuint16mf4_t op4, const uint16_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i16m1)))
-void vloxseg3ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, const int16_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i16m1_m)))
-void vloxseg3ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vbool16_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, const int16_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i16m2)))
-void vloxseg3ei64(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, const int16_t * op3, vuint64m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i16m2_m)))
-void vloxseg3ei64(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vbool8_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, const int16_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i16mf2)))
-void vloxseg3ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, const int16_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i16mf2_m)))
-void vloxseg3ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vbool32_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, const int16_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i16mf4)))
-void vloxseg3ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, const int16_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i16mf4_m)))
-void vloxseg3ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vbool64_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, const int16_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u16m1)))
-void vloxseg3ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, const uint16_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u16m1_m)))
-void vloxseg3ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vbool16_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, const uint16_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u16m2)))
-void vloxseg3ei64(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, const uint16_t * op3, vuint64m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u16m2_m)))
-void vloxseg3ei64(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vbool8_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, const uint16_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u16mf2)))
-void vloxseg3ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, const uint16_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u16mf2_m)))
-void vloxseg3ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vbool32_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, const uint16_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u16mf4)))
-void vloxseg3ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, const uint16_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u16mf4_m)))
-void vloxseg3ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vbool64_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, const uint16_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i16m1)))
-void vloxseg4ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, const int16_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i16m1_m)))
-void vloxseg4ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vbool16_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, const int16_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i16m2)))
-void vloxseg4ei64(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, const int16_t * op4, vuint64m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i16m2_m)))
-void vloxseg4ei64(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, vbool8_t op4, vint16m2_t op5, vint16m2_t op6, vint16m2_t op7, vint16m2_t op8, const int16_t * op9, vuint64m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i16mf2)))
-void vloxseg4ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, const int16_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i16mf2_m)))
-void vloxseg4ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vbool32_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, const int16_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i16mf4)))
-void vloxseg4ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, const int16_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i16mf4_m)))
-void vloxseg4ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vbool64_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, const int16_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u16m1)))
-void vloxseg4ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, const uint16_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u16m1_m)))
-void vloxseg4ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vbool16_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, const uint16_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u16m2)))
-void vloxseg4ei64(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, const uint16_t * op4, vuint64m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u16m2_m)))
-void vloxseg4ei64(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, vbool8_t op4, vuint16m2_t op5, vuint16m2_t op6, vuint16m2_t op7, vuint16m2_t op8, const uint16_t * op9, vuint64m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u16mf2)))
-void vloxseg4ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, const uint16_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u16mf2_m)))
-void vloxseg4ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vbool32_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, const uint16_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u16mf4)))
-void vloxseg4ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, const uint16_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u16mf4_m)))
-void vloxseg4ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vbool64_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, const uint16_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i16m1)))
-void vloxseg5ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, const int16_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i16m1_m)))
-void vloxseg5ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vbool16_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, const int16_t * op11, vuint64m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i16mf2)))
-void vloxseg5ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, const int16_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i16mf2_m)))
-void vloxseg5ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vbool32_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, const int16_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i16mf4)))
-void vloxseg5ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, const int16_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i16mf4_m)))
-void vloxseg5ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vbool64_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, const int16_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u16m1)))
-void vloxseg5ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, const uint16_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u16m1_m)))
-void vloxseg5ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vbool16_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, const uint16_t * op11, vuint64m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u16mf2)))
-void vloxseg5ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, const uint16_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u16mf2_m)))
-void vloxseg5ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vbool32_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, const uint16_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u16mf4)))
-void vloxseg5ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, const uint16_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u16mf4_m)))
-void vloxseg5ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vbool64_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, const uint16_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i16m1)))
-void vloxseg6ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, const int16_t * op6, vuint64m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i16m1_m)))
-void vloxseg6ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vbool16_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, const int16_t * op13, vuint64m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i16mf2)))
-void vloxseg6ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, const int16_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i16mf2_m)))
-void vloxseg6ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vbool32_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, const int16_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i16mf4)))
-void vloxseg6ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, const int16_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i16mf4_m)))
-void vloxseg6ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vbool64_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, const int16_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u16m1)))
-void vloxseg6ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, const uint16_t * op6, vuint64m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u16m1_m)))
-void vloxseg6ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vbool16_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, const uint16_t * op13, vuint64m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u16mf2)))
-void vloxseg6ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, const uint16_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u16mf2_m)))
-void vloxseg6ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vbool32_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, const uint16_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u16mf4)))
-void vloxseg6ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, const uint16_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u16mf4_m)))
-void vloxseg6ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vbool64_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, const uint16_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i16m1)))
-void vloxseg7ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, const int16_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i16m1_m)))
-void vloxseg7ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vbool16_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, const int16_t * op15, vuint64m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i16mf2)))
-void vloxseg7ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, const int16_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i16mf2_m)))
-void vloxseg7ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vbool32_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, const int16_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i16mf4)))
-void vloxseg7ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, const int16_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i16mf4_m)))
-void vloxseg7ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vbool64_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, const int16_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u16m1)))
-void vloxseg7ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, const uint16_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u16m1_m)))
-void vloxseg7ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vbool16_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, const uint16_t * op15, vuint64m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u16mf2)))
-void vloxseg7ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, const uint16_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u16mf2_m)))
-void vloxseg7ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vbool32_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, const uint16_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u16mf4)))
-void vloxseg7ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, const uint16_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u16mf4_m)))
-void vloxseg7ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vbool64_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, const uint16_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i16m1)))
-void vloxseg8ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, const int16_t * op8, vuint64m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i16m1_m)))
-void vloxseg8ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, vbool16_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, vint16m1_t op15, vint16m1_t op16, const int16_t * op17, vuint64m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i16mf2)))
-void vloxseg8ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, const int16_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i16mf2_m)))
-void vloxseg8ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, vbool32_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, vint16mf2_t op15, vint16mf2_t op16, const int16_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i16mf4)))
-void vloxseg8ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, const int16_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i16mf4_m)))
-void vloxseg8ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, vbool64_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, vint16mf4_t op15, vint16mf4_t op16, const int16_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u16m1)))
-void vloxseg8ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, const uint16_t * op8, vuint64m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u16m1_m)))
-void vloxseg8ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, vbool16_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, vuint16m1_t op15, vuint16m1_t op16, const uint16_t * op17, vuint64m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u16mf2)))
-void vloxseg8ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, const uint16_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u16mf2_m)))
-void vloxseg8ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, vbool32_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, vuint16mf2_t op15, vuint16mf2_t op16, const uint16_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u16mf4)))
-void vloxseg8ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, const uint16_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u16mf4_m)))
-void vloxseg8ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, vbool64_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, vuint16mf4_t op15, vuint16mf4_t op16, const uint16_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i32m1)))
-void vloxseg2ei8(vint32m1_t * op0, vint32m1_t * op1, const int32_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i32m1_m)))
-void vloxseg2ei8(vint32m1_t * op0, vint32m1_t * op1, vbool32_t op2, vint32m1_t op3, vint32m1_t op4, const int32_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i32m2)))
-void vloxseg2ei8(vint32m2_t * op0, vint32m2_t * op1, const int32_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i32m2_m)))
-void vloxseg2ei8(vint32m2_t * op0, vint32m2_t * op1, vbool16_t op2, vint32m2_t op3, vint32m2_t op4, const int32_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i32m4)))
-void vloxseg2ei8(vint32m4_t * op0, vint32m4_t * op1, const int32_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i32m4_m)))
-void vloxseg2ei8(vint32m4_t * op0, vint32m4_t * op1, vbool8_t op2, vint32m4_t op3, vint32m4_t op4, const int32_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i32mf2)))
-void vloxseg2ei8(vint32mf2_t * op0, vint32mf2_t * op1, const int32_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i32mf2_m)))
-void vloxseg2ei8(vint32mf2_t * op0, vint32mf2_t * op1, vbool64_t op2, vint32mf2_t op3, vint32mf2_t op4, const int32_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u32m1)))
-void vloxseg2ei8(vuint32m1_t * op0, vuint32m1_t * op1, const uint32_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u32m1_m)))
-void vloxseg2ei8(vuint32m1_t * op0, vuint32m1_t * op1, vbool32_t op2, vuint32m1_t op3, vuint32m1_t op4, const uint32_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u32m2)))
-void vloxseg2ei8(vuint32m2_t * op0, vuint32m2_t * op1, const uint32_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u32m2_m)))
-void vloxseg2ei8(vuint32m2_t * op0, vuint32m2_t * op1, vbool16_t op2, vuint32m2_t op3, vuint32m2_t op4, const uint32_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u32m4)))
-void vloxseg2ei8(vuint32m4_t * op0, vuint32m4_t * op1, const uint32_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u32m4_m)))
-void vloxseg2ei8(vuint32m4_t * op0, vuint32m4_t * op1, vbool8_t op2, vuint32m4_t op3, vuint32m4_t op4, const uint32_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u32mf2)))
-void vloxseg2ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, const uint32_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u32mf2_m)))
-void vloxseg2ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vbool64_t op2, vuint32mf2_t op3, vuint32mf2_t op4, const uint32_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i32m1)))
-void vloxseg3ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, const int32_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i32m1_m)))
-void vloxseg3ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vbool32_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, const int32_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i32m2)))
-void vloxseg3ei8(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, const int32_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i32m2_m)))
-void vloxseg3ei8(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vbool16_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, const int32_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i32mf2)))
-void vloxseg3ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, const int32_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i32mf2_m)))
-void vloxseg3ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vbool64_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, const int32_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u32m1)))
-void vloxseg3ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, const uint32_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u32m1_m)))
-void vloxseg3ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vbool32_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, const uint32_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u32m2)))
-void vloxseg3ei8(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, const uint32_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u32m2_m)))
-void vloxseg3ei8(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vbool16_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, const uint32_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u32mf2)))
-void vloxseg3ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, const uint32_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u32mf2_m)))
-void vloxseg3ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vbool64_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, const uint32_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i32m1)))
-void vloxseg4ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, const int32_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i32m1_m)))
-void vloxseg4ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vbool32_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, const int32_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i32m2)))
-void vloxseg4ei8(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, const int32_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i32m2_m)))
-void vloxseg4ei8(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, vbool16_t op4, vint32m2_t op5, vint32m2_t op6, vint32m2_t op7, vint32m2_t op8, const int32_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i32mf2)))
-void vloxseg4ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, const int32_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i32mf2_m)))
-void vloxseg4ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vbool64_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, const int32_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u32m1)))
-void vloxseg4ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, const uint32_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u32m1_m)))
-void vloxseg4ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vbool32_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, const uint32_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u32m2)))
-void vloxseg4ei8(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, const uint32_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u32m2_m)))
-void vloxseg4ei8(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, vbool16_t op4, vuint32m2_t op5, vuint32m2_t op6, vuint32m2_t op7, vuint32m2_t op8, const uint32_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u32mf2)))
-void vloxseg4ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, const uint32_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u32mf2_m)))
-void vloxseg4ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vbool64_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, const uint32_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i32m1)))
-void vloxseg5ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, const int32_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i32m1_m)))
-void vloxseg5ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vbool32_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, const int32_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i32mf2)))
-void vloxseg5ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, const int32_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i32mf2_m)))
-void vloxseg5ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vbool64_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, const int32_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u32m1)))
-void vloxseg5ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, const uint32_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u32m1_m)))
-void vloxseg5ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vbool32_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, const uint32_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u32mf2)))
-void vloxseg5ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, const uint32_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u32mf2_m)))
-void vloxseg5ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vbool64_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, const uint32_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i32m1)))
-void vloxseg6ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, const int32_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i32m1_m)))
-void vloxseg6ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vbool32_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, const int32_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i32mf2)))
-void vloxseg6ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, const int32_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i32mf2_m)))
-void vloxseg6ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vbool64_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, const int32_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u32m1)))
-void vloxseg6ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, const uint32_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u32m1_m)))
-void vloxseg6ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vbool32_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, const uint32_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u32mf2)))
-void vloxseg6ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, const uint32_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u32mf2_m)))
-void vloxseg6ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vbool64_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, const uint32_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i32m1)))
-void vloxseg7ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, const int32_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i32m1_m)))
-void vloxseg7ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vbool32_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, const int32_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i32mf2)))
-void vloxseg7ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, const int32_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i32mf2_m)))
-void vloxseg7ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vbool64_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, const int32_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u32m1)))
-void vloxseg7ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, const uint32_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u32m1_m)))
-void vloxseg7ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vbool32_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, const uint32_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u32mf2)))
-void vloxseg7ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, const uint32_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u32mf2_m)))
-void vloxseg7ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vbool64_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, const uint32_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i32m1)))
-void vloxseg8ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, const int32_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i32m1_m)))
-void vloxseg8ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, vbool32_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, vint32m1_t op15, vint32m1_t op16, const int32_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i32mf2)))
-void vloxseg8ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, const int32_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i32mf2_m)))
-void vloxseg8ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, vbool64_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, vint32mf2_t op15, vint32mf2_t op16, const int32_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u32m1)))
-void vloxseg8ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, const uint32_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u32m1_m)))
-void vloxseg8ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, vbool32_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, vuint32m1_t op15, vuint32m1_t op16, const uint32_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u32mf2)))
-void vloxseg8ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, const uint32_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u32mf2_m)))
-void vloxseg8ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, vbool64_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, vuint32mf2_t op15, vuint32mf2_t op16, const uint32_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i32m1)))
-void vloxseg2ei16(vint32m1_t * op0, vint32m1_t * op1, const int32_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i32m1_m)))
-void vloxseg2ei16(vint32m1_t * op0, vint32m1_t * op1, vbool32_t op2, vint32m1_t op3, vint32m1_t op4, const int32_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i32m2)))
-void vloxseg2ei16(vint32m2_t * op0, vint32m2_t * op1, const int32_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i32m2_m)))
-void vloxseg2ei16(vint32m2_t * op0, vint32m2_t * op1, vbool16_t op2, vint32m2_t op3, vint32m2_t op4, const int32_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i32m4)))
-void vloxseg2ei16(vint32m4_t * op0, vint32m4_t * op1, const int32_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i32m4_m)))
-void vloxseg2ei16(vint32m4_t * op0, vint32m4_t * op1, vbool8_t op2, vint32m4_t op3, vint32m4_t op4, const int32_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i32mf2)))
-void vloxseg2ei16(vint32mf2_t * op0, vint32mf2_t * op1, const int32_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i32mf2_m)))
-void vloxseg2ei16(vint32mf2_t * op0, vint32mf2_t * op1, vbool64_t op2, vint32mf2_t op3, vint32mf2_t op4, const int32_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u32m1)))
-void vloxseg2ei16(vuint32m1_t * op0, vuint32m1_t * op1, const uint32_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u32m1_m)))
-void vloxseg2ei16(vuint32m1_t * op0, vuint32m1_t * op1, vbool32_t op2, vuint32m1_t op3, vuint32m1_t op4, const uint32_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u32m2)))
-void vloxseg2ei16(vuint32m2_t * op0, vuint32m2_t * op1, const uint32_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u32m2_m)))
-void vloxseg2ei16(vuint32m2_t * op0, vuint32m2_t * op1, vbool16_t op2, vuint32m2_t op3, vuint32m2_t op4, const uint32_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u32m4)))
-void vloxseg2ei16(vuint32m4_t * op0, vuint32m4_t * op1, const uint32_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u32m4_m)))
-void vloxseg2ei16(vuint32m4_t * op0, vuint32m4_t * op1, vbool8_t op2, vuint32m4_t op3, vuint32m4_t op4, const uint32_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u32mf2)))
-void vloxseg2ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, const uint32_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u32mf2_m)))
-void vloxseg2ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vbool64_t op2, vuint32mf2_t op3, vuint32mf2_t op4, const uint32_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i32m1)))
-void vloxseg3ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, const int32_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i32m1_m)))
-void vloxseg3ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vbool32_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, const int32_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i32m2)))
-void vloxseg3ei16(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, const int32_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i32m2_m)))
-void vloxseg3ei16(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vbool16_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, const int32_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i32mf2)))
-void vloxseg3ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, const int32_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i32mf2_m)))
-void vloxseg3ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vbool64_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, const int32_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u32m1)))
-void vloxseg3ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, const uint32_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u32m1_m)))
-void vloxseg3ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vbool32_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, const uint32_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u32m2)))
-void vloxseg3ei16(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, const uint32_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u32m2_m)))
-void vloxseg3ei16(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vbool16_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, const uint32_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u32mf2)))
-void vloxseg3ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, const uint32_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u32mf2_m)))
-void vloxseg3ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vbool64_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, const uint32_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i32m1)))
-void vloxseg4ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, const int32_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i32m1_m)))
-void vloxseg4ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vbool32_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, const int32_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i32m2)))
-void vloxseg4ei16(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, const int32_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i32m2_m)))
-void vloxseg4ei16(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, vbool16_t op4, vint32m2_t op5, vint32m2_t op6, vint32m2_t op7, vint32m2_t op8, const int32_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i32mf2)))
-void vloxseg4ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, const int32_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i32mf2_m)))
-void vloxseg4ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vbool64_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, const int32_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u32m1)))
-void vloxseg4ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, const uint32_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u32m1_m)))
-void vloxseg4ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vbool32_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, const uint32_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u32m2)))
-void vloxseg4ei16(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, const uint32_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u32m2_m)))
-void vloxseg4ei16(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, vbool16_t op4, vuint32m2_t op5, vuint32m2_t op6, vuint32m2_t op7, vuint32m2_t op8, const uint32_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u32mf2)))
-void vloxseg4ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, const uint32_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u32mf2_m)))
-void vloxseg4ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vbool64_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, const uint32_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i32m1)))
-void vloxseg5ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, const int32_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i32m1_m)))
-void vloxseg5ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vbool32_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, const int32_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i32mf2)))
-void vloxseg5ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, const int32_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i32mf2_m)))
-void vloxseg5ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vbool64_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, const int32_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u32m1)))
-void vloxseg5ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, const uint32_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u32m1_m)))
-void vloxseg5ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vbool32_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, const uint32_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u32mf2)))
-void vloxseg5ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, const uint32_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u32mf2_m)))
-void vloxseg5ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vbool64_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, const uint32_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i32m1)))
-void vloxseg6ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, const int32_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i32m1_m)))
-void vloxseg6ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vbool32_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, const int32_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i32mf2)))
-void vloxseg6ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, const int32_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i32mf2_m)))
-void vloxseg6ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vbool64_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, const int32_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u32m1)))
-void vloxseg6ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, const uint32_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u32m1_m)))
-void vloxseg6ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vbool32_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, const uint32_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u32mf2)))
-void vloxseg6ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, const uint32_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u32mf2_m)))
-void vloxseg6ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vbool64_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, const uint32_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i32m1)))
-void vloxseg7ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, const int32_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i32m1_m)))
-void vloxseg7ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vbool32_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, const int32_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i32mf2)))
-void vloxseg7ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, const int32_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i32mf2_m)))
-void vloxseg7ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vbool64_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, const int32_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u32m1)))
-void vloxseg7ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, const uint32_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u32m1_m)))
-void vloxseg7ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vbool32_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, const uint32_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u32mf2)))
-void vloxseg7ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, const uint32_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u32mf2_m)))
-void vloxseg7ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vbool64_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, const uint32_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i32m1)))
-void vloxseg8ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, const int32_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i32m1_m)))
-void vloxseg8ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, vbool32_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, vint32m1_t op15, vint32m1_t op16, const int32_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i32mf2)))
-void vloxseg8ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, const int32_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i32mf2_m)))
-void vloxseg8ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, vbool64_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, vint32mf2_t op15, vint32mf2_t op16, const int32_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u32m1)))
-void vloxseg8ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, const uint32_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u32m1_m)))
-void vloxseg8ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, vbool32_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, vuint32m1_t op15, vuint32m1_t op16, const uint32_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u32mf2)))
-void vloxseg8ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, const uint32_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u32mf2_m)))
-void vloxseg8ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, vbool64_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, vuint32mf2_t op15, vuint32mf2_t op16, const uint32_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i32m1)))
-void vloxseg2ei32(vint32m1_t * op0, vint32m1_t * op1, const int32_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i32m1_m)))
-void vloxseg2ei32(vint32m1_t * op0, vint32m1_t * op1, vbool32_t op2, vint32m1_t op3, vint32m1_t op4, const int32_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i32m2)))
-void vloxseg2ei32(vint32m2_t * op0, vint32m2_t * op1, const int32_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i32m2_m)))
-void vloxseg2ei32(vint32m2_t * op0, vint32m2_t * op1, vbool16_t op2, vint32m2_t op3, vint32m2_t op4, const int32_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i32m4)))
-void vloxseg2ei32(vint32m4_t * op0, vint32m4_t * op1, const int32_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i32m4_m)))
-void vloxseg2ei32(vint32m4_t * op0, vint32m4_t * op1, vbool8_t op2, vint32m4_t op3, vint32m4_t op4, const int32_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i32mf2)))
-void vloxseg2ei32(vint32mf2_t * op0, vint32mf2_t * op1, const int32_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i32mf2_m)))
-void vloxseg2ei32(vint32mf2_t * op0, vint32mf2_t * op1, vbool64_t op2, vint32mf2_t op3, vint32mf2_t op4, const int32_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u32m1)))
-void vloxseg2ei32(vuint32m1_t * op0, vuint32m1_t * op1, const uint32_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u32m1_m)))
-void vloxseg2ei32(vuint32m1_t * op0, vuint32m1_t * op1, vbool32_t op2, vuint32m1_t op3, vuint32m1_t op4, const uint32_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u32m2)))
-void vloxseg2ei32(vuint32m2_t * op0, vuint32m2_t * op1, const uint32_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u32m2_m)))
-void vloxseg2ei32(vuint32m2_t * op0, vuint32m2_t * op1, vbool16_t op2, vuint32m2_t op3, vuint32m2_t op4, const uint32_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u32m4)))
-void vloxseg2ei32(vuint32m4_t * op0, vuint32m4_t * op1, const uint32_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u32m4_m)))
-void vloxseg2ei32(vuint32m4_t * op0, vuint32m4_t * op1, vbool8_t op2, vuint32m4_t op3, vuint32m4_t op4, const uint32_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u32mf2)))
-void vloxseg2ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, const uint32_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u32mf2_m)))
-void vloxseg2ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vbool64_t op2, vuint32mf2_t op3, vuint32mf2_t op4, const uint32_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i32m1)))
-void vloxseg3ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, const int32_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i32m1_m)))
-void vloxseg3ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vbool32_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, const int32_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i32m2)))
-void vloxseg3ei32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, const int32_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i32m2_m)))
-void vloxseg3ei32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vbool16_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, const int32_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i32mf2)))
-void vloxseg3ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, const int32_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i32mf2_m)))
-void vloxseg3ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vbool64_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, const int32_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u32m1)))
-void vloxseg3ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, const uint32_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u32m1_m)))
-void vloxseg3ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vbool32_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, const uint32_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u32m2)))
-void vloxseg3ei32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, const uint32_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u32m2_m)))
-void vloxseg3ei32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vbool16_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, const uint32_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u32mf2)))
-void vloxseg3ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, const uint32_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u32mf2_m)))
-void vloxseg3ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vbool64_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, const uint32_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i32m1)))
-void vloxseg4ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, const int32_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i32m1_m)))
-void vloxseg4ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vbool32_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, const int32_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i32m2)))
-void vloxseg4ei32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, const int32_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i32m2_m)))
-void vloxseg4ei32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, vbool16_t op4, vint32m2_t op5, vint32m2_t op6, vint32m2_t op7, vint32m2_t op8, const int32_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i32mf2)))
-void vloxseg4ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, const int32_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i32mf2_m)))
-void vloxseg4ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vbool64_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, const int32_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u32m1)))
-void vloxseg4ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, const uint32_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u32m1_m)))
-void vloxseg4ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vbool32_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, const uint32_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u32m2)))
-void vloxseg4ei32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, const uint32_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u32m2_m)))
-void vloxseg4ei32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, vbool16_t op4, vuint32m2_t op5, vuint32m2_t op6, vuint32m2_t op7, vuint32m2_t op8, const uint32_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u32mf2)))
-void vloxseg4ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, const uint32_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u32mf2_m)))
-void vloxseg4ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vbool64_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, const uint32_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i32m1)))
-void vloxseg5ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, const int32_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i32m1_m)))
-void vloxseg5ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vbool32_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, const int32_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i32mf2)))
-void vloxseg5ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, const int32_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i32mf2_m)))
-void vloxseg5ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vbool64_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, const int32_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u32m1)))
-void vloxseg5ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, const uint32_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u32m1_m)))
-void vloxseg5ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vbool32_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, const uint32_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u32mf2)))
-void vloxseg5ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, const uint32_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u32mf2_m)))
-void vloxseg5ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vbool64_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, const uint32_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i32m1)))
-void vloxseg6ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, const int32_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i32m1_m)))
-void vloxseg6ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vbool32_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, const int32_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i32mf2)))
-void vloxseg6ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, const int32_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i32mf2_m)))
-void vloxseg6ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vbool64_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, const int32_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u32m1)))
-void vloxseg6ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, const uint32_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u32m1_m)))
-void vloxseg6ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vbool32_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, const uint32_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u32mf2)))
-void vloxseg6ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, const uint32_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u32mf2_m)))
-void vloxseg6ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vbool64_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, const uint32_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i32m1)))
-void vloxseg7ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, const int32_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i32m1_m)))
-void vloxseg7ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vbool32_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, const int32_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i32mf2)))
-void vloxseg7ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, const int32_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i32mf2_m)))
-void vloxseg7ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vbool64_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, const int32_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u32m1)))
-void vloxseg7ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, const uint32_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u32m1_m)))
-void vloxseg7ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vbool32_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, const uint32_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u32mf2)))
-void vloxseg7ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, const uint32_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u32mf2_m)))
-void vloxseg7ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vbool64_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, const uint32_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i32m1)))
-void vloxseg8ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, const int32_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i32m1_m)))
-void vloxseg8ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, vbool32_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, vint32m1_t op15, vint32m1_t op16, const int32_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i32mf2)))
-void vloxseg8ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, const int32_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i32mf2_m)))
-void vloxseg8ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, vbool64_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, vint32mf2_t op15, vint32mf2_t op16, const int32_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u32m1)))
-void vloxseg8ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, const uint32_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u32m1_m)))
-void vloxseg8ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, vbool32_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, vuint32m1_t op15, vuint32m1_t op16, const uint32_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u32mf2)))
-void vloxseg8ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, const uint32_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u32mf2_m)))
-void vloxseg8ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, vbool64_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, vuint32mf2_t op15, vuint32mf2_t op16, const uint32_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i32m1)))
-void vloxseg2ei64(vint32m1_t * op0, vint32m1_t * op1, const int32_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i32m1_m)))
-void vloxseg2ei64(vint32m1_t * op0, vint32m1_t * op1, vbool32_t op2, vint32m1_t op3, vint32m1_t op4, const int32_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i32m2)))
-void vloxseg2ei64(vint32m2_t * op0, vint32m2_t * op1, const int32_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i32m2_m)))
-void vloxseg2ei64(vint32m2_t * op0, vint32m2_t * op1, vbool16_t op2, vint32m2_t op3, vint32m2_t op4, const int32_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i32m4)))
-void vloxseg2ei64(vint32m4_t * op0, vint32m4_t * op1, const int32_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i32m4_m)))
-void vloxseg2ei64(vint32m4_t * op0, vint32m4_t * op1, vbool8_t op2, vint32m4_t op3, vint32m4_t op4, const int32_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i32mf2)))
-void vloxseg2ei64(vint32mf2_t * op0, vint32mf2_t * op1, const int32_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i32mf2_m)))
-void vloxseg2ei64(vint32mf2_t * op0, vint32mf2_t * op1, vbool64_t op2, vint32mf2_t op3, vint32mf2_t op4, const int32_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u32m1)))
-void vloxseg2ei64(vuint32m1_t * op0, vuint32m1_t * op1, const uint32_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u32m1_m)))
-void vloxseg2ei64(vuint32m1_t * op0, vuint32m1_t * op1, vbool32_t op2, vuint32m1_t op3, vuint32m1_t op4, const uint32_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u32m2)))
-void vloxseg2ei64(vuint32m2_t * op0, vuint32m2_t * op1, const uint32_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u32m2_m)))
-void vloxseg2ei64(vuint32m2_t * op0, vuint32m2_t * op1, vbool16_t op2, vuint32m2_t op3, vuint32m2_t op4, const uint32_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u32m4)))
-void vloxseg2ei64(vuint32m4_t * op0, vuint32m4_t * op1, const uint32_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u32m4_m)))
-void vloxseg2ei64(vuint32m4_t * op0, vuint32m4_t * op1, vbool8_t op2, vuint32m4_t op3, vuint32m4_t op4, const uint32_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u32mf2)))
-void vloxseg2ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, const uint32_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u32mf2_m)))
-void vloxseg2ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vbool64_t op2, vuint32mf2_t op3, vuint32mf2_t op4, const uint32_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i32m1)))
-void vloxseg3ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, const int32_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i32m1_m)))
-void vloxseg3ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vbool32_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, const int32_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i32m2)))
-void vloxseg3ei64(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, const int32_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i32m2_m)))
-void vloxseg3ei64(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vbool16_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, const int32_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i32mf2)))
-void vloxseg3ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, const int32_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i32mf2_m)))
-void vloxseg3ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vbool64_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, const int32_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u32m1)))
-void vloxseg3ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, const uint32_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u32m1_m)))
-void vloxseg3ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vbool32_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, const uint32_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u32m2)))
-void vloxseg3ei64(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, const uint32_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u32m2_m)))
-void vloxseg3ei64(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vbool16_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, const uint32_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u32mf2)))
-void vloxseg3ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, const uint32_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u32mf2_m)))
-void vloxseg3ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vbool64_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, const uint32_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i32m1)))
-void vloxseg4ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, const int32_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i32m1_m)))
-void vloxseg4ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vbool32_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, const int32_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i32m2)))
-void vloxseg4ei64(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, const int32_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i32m2_m)))
-void vloxseg4ei64(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, vbool16_t op4, vint32m2_t op5, vint32m2_t op6, vint32m2_t op7, vint32m2_t op8, const int32_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i32mf2)))
-void vloxseg4ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, const int32_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i32mf2_m)))
-void vloxseg4ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vbool64_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, const int32_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u32m1)))
-void vloxseg4ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, const uint32_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u32m1_m)))
-void vloxseg4ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vbool32_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, const uint32_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u32m2)))
-void vloxseg4ei64(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, const uint32_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u32m2_m)))
-void vloxseg4ei64(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, vbool16_t op4, vuint32m2_t op5, vuint32m2_t op6, vuint32m2_t op7, vuint32m2_t op8, const uint32_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u32mf2)))
-void vloxseg4ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, const uint32_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u32mf2_m)))
-void vloxseg4ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vbool64_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, const uint32_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i32m1)))
-void vloxseg5ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, const int32_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i32m1_m)))
-void vloxseg5ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vbool32_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, const int32_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i32mf2)))
-void vloxseg5ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, const int32_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i32mf2_m)))
-void vloxseg5ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vbool64_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, const int32_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u32m1)))
-void vloxseg5ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, const uint32_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u32m1_m)))
-void vloxseg5ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vbool32_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, const uint32_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u32mf2)))
-void vloxseg5ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, const uint32_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u32mf2_m)))
-void vloxseg5ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vbool64_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, const uint32_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i32m1)))
-void vloxseg6ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, const int32_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i32m1_m)))
-void vloxseg6ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vbool32_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, const int32_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i32mf2)))
-void vloxseg6ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, const int32_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i32mf2_m)))
-void vloxseg6ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vbool64_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, const int32_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u32m1)))
-void vloxseg6ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, const uint32_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u32m1_m)))
-void vloxseg6ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vbool32_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, const uint32_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u32mf2)))
-void vloxseg6ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, const uint32_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u32mf2_m)))
-void vloxseg6ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vbool64_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, const uint32_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i32m1)))
-void vloxseg7ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, const int32_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i32m1_m)))
-void vloxseg7ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vbool32_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, const int32_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i32mf2)))
-void vloxseg7ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, const int32_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i32mf2_m)))
-void vloxseg7ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vbool64_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, const int32_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u32m1)))
-void vloxseg7ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, const uint32_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u32m1_m)))
-void vloxseg7ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vbool32_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, const uint32_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u32mf2)))
-void vloxseg7ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, const uint32_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u32mf2_m)))
-void vloxseg7ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vbool64_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, const uint32_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i32m1)))
-void vloxseg8ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, const int32_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i32m1_m)))
-void vloxseg8ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, vbool32_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, vint32m1_t op15, vint32m1_t op16, const int32_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i32mf2)))
-void vloxseg8ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, const int32_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i32mf2_m)))
-void vloxseg8ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, vbool64_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, vint32mf2_t op15, vint32mf2_t op16, const int32_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u32m1)))
-void vloxseg8ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, const uint32_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u32m1_m)))
-void vloxseg8ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, vbool32_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, vuint32m1_t op15, vuint32m1_t op16, const uint32_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u32mf2)))
-void vloxseg8ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, const uint32_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u32mf2_m)))
-void vloxseg8ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, vbool64_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, vuint32mf2_t op15, vuint32mf2_t op16, const uint32_t * op17, vuint64m1_t op18, size_t op19);
-
-#endif
-
-#if defined(__riscv_f) && defined(__riscv_zvlsseg)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f32m1)))
-void vloxseg2ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, const float * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f32m1_m)))
-void vloxseg2ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vbool32_t op2, vfloat32m1_t op3, vfloat32m1_t op4, const float * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f32m2)))
-void vloxseg2ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, const float * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f32m2_m)))
-void vloxseg2ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, vbool16_t op2, vfloat32m2_t op3, vfloat32m2_t op4, const float * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f32m4)))
-void vloxseg2ei8(vfloat32m4_t * op0, vfloat32m4_t * op1, const float * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f32m4_m)))
-void vloxseg2ei8(vfloat32m4_t * op0, vfloat32m4_t * op1, vbool8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, const float * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f32mf2)))
-void vloxseg2ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, const float * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f32mf2_m)))
-void vloxseg2ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vbool64_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, const float * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f32m1)))
-void vloxseg3ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, const float * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f32m1_m)))
-void vloxseg3ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vbool32_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, const float * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f32m2)))
-void vloxseg3ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, const float * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f32m2_m)))
-void vloxseg3ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vbool16_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, const float * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f32mf2)))
-void vloxseg3ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, const float * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f32mf2_m)))
-void vloxseg3ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vbool64_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, const float * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f32m1)))
-void vloxseg4ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, const float * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f32m1_m)))
-void vloxseg4ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vbool32_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, const float * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f32m2)))
-void vloxseg4ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, const float * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f32m2_m)))
-void vloxseg4ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, vbool16_t op4, vfloat32m2_t op5, vfloat32m2_t op6, vfloat32m2_t op7, vfloat32m2_t op8, const float * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f32mf2)))
-void vloxseg4ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, const float * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f32mf2_m)))
-void vloxseg4ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vbool64_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, const float * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f32m1)))
-void vloxseg5ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, const float * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f32m1_m)))
-void vloxseg5ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vbool32_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, const float * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f32mf2)))
-void vloxseg5ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, const float * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f32mf2_m)))
-void vloxseg5ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vbool64_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, const float * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f32m1)))
-void vloxseg6ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, const float * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f32m1_m)))
-void vloxseg6ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vbool32_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, const float * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f32mf2)))
-void vloxseg6ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, const float * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f32mf2_m)))
-void vloxseg6ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vbool64_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, const float * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f32m1)))
-void vloxseg7ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, const float * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f32m1_m)))
-void vloxseg7ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vbool32_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, const float * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f32mf2)))
-void vloxseg7ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, const float * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f32mf2_m)))
-void vloxseg7ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vbool64_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, const float * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f32m1)))
-void vloxseg8ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, const float * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f32m1_m)))
-void vloxseg8ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, vbool32_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, vfloat32m1_t op15, vfloat32m1_t op16, const float * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f32mf2)))
-void vloxseg8ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, const float * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f32mf2_m)))
-void vloxseg8ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, vbool64_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, vfloat32mf2_t op15, vfloat32mf2_t op16, const float * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f32m1)))
-void vloxseg2ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, const float * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f32m1_m)))
-void vloxseg2ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vbool32_t op2, vfloat32m1_t op3, vfloat32m1_t op4, const float * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f32m2)))
-void vloxseg2ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, const float * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f32m2_m)))
-void vloxseg2ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, vbool16_t op2, vfloat32m2_t op3, vfloat32m2_t op4, const float * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f32m4)))
-void vloxseg2ei16(vfloat32m4_t * op0, vfloat32m4_t * op1, const float * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f32m4_m)))
-void vloxseg2ei16(vfloat32m4_t * op0, vfloat32m4_t * op1, vbool8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, const float * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f32mf2)))
-void vloxseg2ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, const float * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f32mf2_m)))
-void vloxseg2ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vbool64_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, const float * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f32m1)))
-void vloxseg3ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, const float * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f32m1_m)))
-void vloxseg3ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vbool32_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, const float * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f32m2)))
-void vloxseg3ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, const float * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f32m2_m)))
-void vloxseg3ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vbool16_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, const float * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f32mf2)))
-void vloxseg3ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, const float * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f32mf2_m)))
-void vloxseg3ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vbool64_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, const float * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f32m1)))
-void vloxseg4ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, const float * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f32m1_m)))
-void vloxseg4ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vbool32_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, const float * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f32m2)))
-void vloxseg4ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, const float * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f32m2_m)))
-void vloxseg4ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, vbool16_t op4, vfloat32m2_t op5, vfloat32m2_t op6, vfloat32m2_t op7, vfloat32m2_t op8, const float * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f32mf2)))
-void vloxseg4ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, const float * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f32mf2_m)))
-void vloxseg4ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vbool64_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, const float * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f32m1)))
-void vloxseg5ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, const float * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f32m1_m)))
-void vloxseg5ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vbool32_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, const float * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f32mf2)))
-void vloxseg5ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, const float * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f32mf2_m)))
-void vloxseg5ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vbool64_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, const float * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f32m1)))
-void vloxseg6ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, const float * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f32m1_m)))
-void vloxseg6ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vbool32_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, const float * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f32mf2)))
-void vloxseg6ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, const float * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f32mf2_m)))
-void vloxseg6ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vbool64_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, const float * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f32m1)))
-void vloxseg7ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, const float * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f32m1_m)))
-void vloxseg7ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vbool32_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, const float * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f32mf2)))
-void vloxseg7ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, const float * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f32mf2_m)))
-void vloxseg7ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vbool64_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, const float * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f32m1)))
-void vloxseg8ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, const float * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f32m1_m)))
-void vloxseg8ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, vbool32_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, vfloat32m1_t op15, vfloat32m1_t op16, const float * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f32mf2)))
-void vloxseg8ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, const float * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f32mf2_m)))
-void vloxseg8ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, vbool64_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, vfloat32mf2_t op15, vfloat32mf2_t op16, const float * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f32m1)))
-void vloxseg2ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, const float * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f32m1_m)))
-void vloxseg2ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vbool32_t op2, vfloat32m1_t op3, vfloat32m1_t op4, const float * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f32m2)))
-void vloxseg2ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, const float * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f32m2_m)))
-void vloxseg2ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, vbool16_t op2, vfloat32m2_t op3, vfloat32m2_t op4, const float * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f32m4)))
-void vloxseg2ei32(vfloat32m4_t * op0, vfloat32m4_t * op1, const float * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f32m4_m)))
-void vloxseg2ei32(vfloat32m4_t * op0, vfloat32m4_t * op1, vbool8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, const float * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f32mf2)))
-void vloxseg2ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, const float * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f32mf2_m)))
-void vloxseg2ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vbool64_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, const float * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f32m1)))
-void vloxseg3ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, const float * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f32m1_m)))
-void vloxseg3ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vbool32_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, const float * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f32m2)))
-void vloxseg3ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, const float * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f32m2_m)))
-void vloxseg3ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vbool16_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, const float * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f32mf2)))
-void vloxseg3ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, const float * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f32mf2_m)))
-void vloxseg3ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vbool64_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, const float * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f32m1)))
-void vloxseg4ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, const float * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f32m1_m)))
-void vloxseg4ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vbool32_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, const float * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f32m2)))
-void vloxseg4ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, const float * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f32m2_m)))
-void vloxseg4ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, vbool16_t op4, vfloat32m2_t op5, vfloat32m2_t op6, vfloat32m2_t op7, vfloat32m2_t op8, const float * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f32mf2)))
-void vloxseg4ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, const float * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f32mf2_m)))
-void vloxseg4ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vbool64_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, const float * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f32m1)))
-void vloxseg5ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, const float * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f32m1_m)))
-void vloxseg5ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vbool32_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, const float * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f32mf2)))
-void vloxseg5ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, const float * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f32mf2_m)))
-void vloxseg5ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vbool64_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, const float * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f32m1)))
-void vloxseg6ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, const float * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f32m1_m)))
-void vloxseg6ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vbool32_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, const float * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f32mf2)))
-void vloxseg6ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, const float * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f32mf2_m)))
-void vloxseg6ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vbool64_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, const float * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f32m1)))
-void vloxseg7ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, const float * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f32m1_m)))
-void vloxseg7ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vbool32_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, const float * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f32mf2)))
-void vloxseg7ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, const float * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f32mf2_m)))
-void vloxseg7ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vbool64_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, const float * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f32m1)))
-void vloxseg8ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, const float * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f32m1_m)))
-void vloxseg8ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, vbool32_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, vfloat32m1_t op15, vfloat32m1_t op16, const float * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f32mf2)))
-void vloxseg8ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, const float * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f32mf2_m)))
-void vloxseg8ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, vbool64_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, vfloat32mf2_t op15, vfloat32mf2_t op16, const float * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f32m1)))
-void vloxseg2ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, const float * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f32m1_m)))
-void vloxseg2ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vbool32_t op2, vfloat32m1_t op3, vfloat32m1_t op4, const float * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f32m2)))
-void vloxseg2ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, const float * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f32m2_m)))
-void vloxseg2ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, vbool16_t op2, vfloat32m2_t op3, vfloat32m2_t op4, const float * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f32m4)))
-void vloxseg2ei64(vfloat32m4_t * op0, vfloat32m4_t * op1, const float * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f32m4_m)))
-void vloxseg2ei64(vfloat32m4_t * op0, vfloat32m4_t * op1, vbool8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, const float * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f32mf2)))
-void vloxseg2ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, const float * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f32mf2_m)))
-void vloxseg2ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vbool64_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, const float * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f32m1)))
-void vloxseg3ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, const float * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f32m1_m)))
-void vloxseg3ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vbool32_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, const float * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f32m2)))
-void vloxseg3ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, const float * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f32m2_m)))
-void vloxseg3ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vbool16_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, const float * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f32mf2)))
-void vloxseg3ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, const float * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f32mf2_m)))
-void vloxseg3ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vbool64_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, const float * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f32m1)))
-void vloxseg4ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, const float * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f32m1_m)))
-void vloxseg4ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vbool32_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, const float * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f32m2)))
-void vloxseg4ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, const float * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f32m2_m)))
-void vloxseg4ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, vbool16_t op4, vfloat32m2_t op5, vfloat32m2_t op6, vfloat32m2_t op7, vfloat32m2_t op8, const float * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f32mf2)))
-void vloxseg4ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, const float * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f32mf2_m)))
-void vloxseg4ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vbool64_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, const float * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f32m1)))
-void vloxseg5ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, const float * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f32m1_m)))
-void vloxseg5ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vbool32_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, const float * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f32mf2)))
-void vloxseg5ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, const float * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f32mf2_m)))
-void vloxseg5ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vbool64_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, const float * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f32m1)))
-void vloxseg6ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, const float * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f32m1_m)))
-void vloxseg6ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vbool32_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, const float * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f32mf2)))
-void vloxseg6ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, const float * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f32mf2_m)))
-void vloxseg6ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vbool64_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, const float * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f32m1)))
-void vloxseg7ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, const float * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f32m1_m)))
-void vloxseg7ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vbool32_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, const float * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f32mf2)))
-void vloxseg7ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, const float * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f32mf2_m)))
-void vloxseg7ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vbool64_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, const float * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f32m1)))
-void vloxseg8ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, const float * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f32m1_m)))
-void vloxseg8ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, vbool32_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, vfloat32m1_t op15, vfloat32m1_t op16, const float * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f32mf2)))
-void vloxseg8ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, const float * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f32mf2_m)))
-void vloxseg8ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, vbool64_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, vfloat32mf2_t op15, vfloat32mf2_t op16, const float * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_f32m1)))
-void vsseg2e32(float * op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_f32m1_m)))
-void vsseg2e32(vbool32_t op0, float * op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_f32m2)))
-void vsseg2e32(float * op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_f32m2_m)))
-void vsseg2e32(vbool16_t op0, float * op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_f32m4)))
-void vsseg2e32(float * op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_f32m4_m)))
-void vsseg2e32(vbool8_t op0, float * op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_f32mf2)))
-void vsseg2e32(float * op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_f32mf2_m)))
-void vsseg2e32(vbool64_t op0, float * op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_f32m1)))
-void vsseg3e32(float * op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_f32m1_m)))
-void vsseg3e32(vbool32_t op0, float * op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_f32m2)))
-void vsseg3e32(float * op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_f32m2_m)))
-void vsseg3e32(vbool16_t op0, float * op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_f32mf2)))
-void vsseg3e32(float * op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_f32mf2_m)))
-void vsseg3e32(vbool64_t op0, float * op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_f32m1)))
-void vsseg4e32(float * op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_f32m1_m)))
-void vsseg4e32(vbool32_t op0, float * op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_f32m2)))
-void vsseg4e32(float * op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_f32m2_m)))
-void vsseg4e32(vbool16_t op0, float * op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_f32mf2)))
-void vsseg4e32(float * op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_f32mf2_m)))
-void vsseg4e32(vbool64_t op0, float * op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_f32m1)))
-void vsseg5e32(float * op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_f32m1_m)))
-void vsseg5e32(vbool32_t op0, float * op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_f32mf2)))
-void vsseg5e32(float * op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_f32mf2_m)))
-void vsseg5e32(vbool64_t op0, float * op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_f32m1)))
-void vsseg6e32(float * op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_f32m1_m)))
-void vsseg6e32(vbool32_t op0, float * op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_f32mf2)))
-void vsseg6e32(float * op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_f32mf2_m)))
-void vsseg6e32(vbool64_t op0, float * op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_f32m1)))
-void vsseg7e32(float * op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_f32m1_m)))
-void vsseg7e32(vbool32_t op0, float * op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_f32mf2)))
-void vsseg7e32(float * op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_f32mf2_m)))
-void vsseg7e32(vbool64_t op0, float * op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_f32m1)))
-void vsseg8e32(float * op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_f32m1_m)))
-void vsseg8e32(vbool32_t op0, float * op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_f32mf2)))
-void vsseg8e32(float * op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_f32mf2_m)))
-void vsseg8e32(vbool64_t op0, float * op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_f32m1)))
-void vssseg2e32(float * op0, ptrdiff_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_f32m1_m)))
-void vssseg2e32(vbool32_t op0, float * op1, ptrdiff_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_f32m2)))
-void vssseg2e32(float * op0, ptrdiff_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_f32m2_m)))
-void vssseg2e32(vbool16_t op0, float * op1, ptrdiff_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_f32m4)))
-void vssseg2e32(float * op0, ptrdiff_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_f32m4_m)))
-void vssseg2e32(vbool8_t op0, float * op1, ptrdiff_t op2, vfloat32m4_t op3, vfloat32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_f32mf2)))
-void vssseg2e32(float * op0, ptrdiff_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_f32mf2_m)))
-void vssseg2e32(vbool64_t op0, float * op1, ptrdiff_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_f32m1)))
-void vssseg3e32(float * op0, ptrdiff_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_f32m1_m)))
-void vssseg3e32(vbool32_t op0, float * op1, ptrdiff_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_f32m2)))
-void vssseg3e32(float * op0, ptrdiff_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_f32m2_m)))
-void vssseg3e32(vbool16_t op0, float * op1, ptrdiff_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_f32mf2)))
-void vssseg3e32(float * op0, ptrdiff_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_f32mf2_m)))
-void vssseg3e32(vbool64_t op0, float * op1, ptrdiff_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_f32m1)))
-void vssseg4e32(float * op0, ptrdiff_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_f32m1_m)))
-void vssseg4e32(vbool32_t op0, float * op1, ptrdiff_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_f32m2)))
-void vssseg4e32(float * op0, ptrdiff_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_f32m2_m)))
-void vssseg4e32(vbool16_t op0, float * op1, ptrdiff_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_f32mf2)))
-void vssseg4e32(float * op0, ptrdiff_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_f32mf2_m)))
-void vssseg4e32(vbool64_t op0, float * op1, ptrdiff_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_f32m1)))
-void vssseg5e32(float * op0, ptrdiff_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_f32m1_m)))
-void vssseg5e32(vbool32_t op0, float * op1, ptrdiff_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_f32mf2)))
-void vssseg5e32(float * op0, ptrdiff_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_f32mf2_m)))
-void vssseg5e32(vbool64_t op0, float * op1, ptrdiff_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_f32m1)))
-void vssseg6e32(float * op0, ptrdiff_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_f32m1_m)))
-void vssseg6e32(vbool32_t op0, float * op1, ptrdiff_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_f32mf2)))
-void vssseg6e32(float * op0, ptrdiff_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_f32mf2_m)))
-void vssseg6e32(vbool64_t op0, float * op1, ptrdiff_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_f32m1)))
-void vssseg7e32(float * op0, ptrdiff_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_f32m1_m)))
-void vssseg7e32(vbool32_t op0, float * op1, ptrdiff_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_f32mf2)))
-void vssseg7e32(float * op0, ptrdiff_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_f32mf2_m)))
-void vssseg7e32(vbool64_t op0, float * op1, ptrdiff_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_f32m1)))
-void vssseg8e32(float * op0, ptrdiff_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_f32m1_m)))
-void vssseg8e32(vbool32_t op0, float * op1, ptrdiff_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_f32mf2)))
-void vssseg8e32(float * op0, ptrdiff_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_f32mf2_m)))
-void vssseg8e32(vbool64_t op0, float * op1, ptrdiff_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f32m1)))
-void vsuxseg2ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f32m1_m)))
-void vsuxseg2ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f32m2)))
-void vsuxseg2ei8(float * op0, vuint8mf2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f32m2_m)))
-void vsuxseg2ei8(vbool16_t op0, float * op1, vuint8mf2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f32m4)))
-void vsuxseg2ei8(float * op0, vuint8m1_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f32m4_m)))
-void vsuxseg2ei8(vbool8_t op0, float * op1, vuint8m1_t op2, vfloat32m4_t op3, vfloat32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f32mf2)))
-void vsuxseg2ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f32mf2_m)))
-void vsuxseg2ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f32m1)))
-void vsuxseg3ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f32m1_m)))
-void vsuxseg3ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f32m2)))
-void vsuxseg3ei8(float * op0, vuint8mf2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f32m2_m)))
-void vsuxseg3ei8(vbool16_t op0, float * op1, vuint8mf2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f32mf2)))
-void vsuxseg3ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f32mf2_m)))
-void vsuxseg3ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f32m1)))
-void vsuxseg4ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f32m1_m)))
-void vsuxseg4ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f32m2)))
-void vsuxseg4ei8(float * op0, vuint8mf2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f32m2_m)))
-void vsuxseg4ei8(vbool16_t op0, float * op1, vuint8mf2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f32mf2)))
-void vsuxseg4ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f32mf2_m)))
-void vsuxseg4ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f32m1)))
-void vsuxseg5ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f32m1_m)))
-void vsuxseg5ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f32mf2)))
-void vsuxseg5ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f32mf2_m)))
-void vsuxseg5ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f32m1)))
-void vsuxseg6ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f32m1_m)))
-void vsuxseg6ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f32mf2)))
-void vsuxseg6ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f32mf2_m)))
-void vsuxseg6ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f32m1)))
-void vsuxseg7ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f32m1_m)))
-void vsuxseg7ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f32mf2)))
-void vsuxseg7ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f32mf2_m)))
-void vsuxseg7ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f32m1)))
-void vsuxseg8ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f32m1_m)))
-void vsuxseg8ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f32mf2)))
-void vsuxseg8ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f32mf2_m)))
-void vsuxseg8ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f32m1)))
-void vsuxseg2ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f32m1_m)))
-void vsuxseg2ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f32m2)))
-void vsuxseg2ei16(float * op0, vuint16m1_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f32m2_m)))
-void vsuxseg2ei16(vbool16_t op0, float * op1, vuint16m1_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f32m4)))
-void vsuxseg2ei16(float * op0, vuint16m2_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f32m4_m)))
-void vsuxseg2ei16(vbool8_t op0, float * op1, vuint16m2_t op2, vfloat32m4_t op3, vfloat32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f32mf2)))
-void vsuxseg2ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f32mf2_m)))
-void vsuxseg2ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f32m1)))
-void vsuxseg3ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f32m1_m)))
-void vsuxseg3ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f32m2)))
-void vsuxseg3ei16(float * op0, vuint16m1_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f32m2_m)))
-void vsuxseg3ei16(vbool16_t op0, float * op1, vuint16m1_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f32mf2)))
-void vsuxseg3ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f32mf2_m)))
-void vsuxseg3ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f32m1)))
-void vsuxseg4ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f32m1_m)))
-void vsuxseg4ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f32m2)))
-void vsuxseg4ei16(float * op0, vuint16m1_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f32m2_m)))
-void vsuxseg4ei16(vbool16_t op0, float * op1, vuint16m1_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f32mf2)))
-void vsuxseg4ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f32mf2_m)))
-void vsuxseg4ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f32m1)))
-void vsuxseg5ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f32m1_m)))
-void vsuxseg5ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f32mf2)))
-void vsuxseg5ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f32mf2_m)))
-void vsuxseg5ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f32m1)))
-void vsuxseg6ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f32m1_m)))
-void vsuxseg6ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f32mf2)))
-void vsuxseg6ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f32mf2_m)))
-void vsuxseg6ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f32m1)))
-void vsuxseg7ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f32m1_m)))
-void vsuxseg7ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f32mf2)))
-void vsuxseg7ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f32mf2_m)))
-void vsuxseg7ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f32m1)))
-void vsuxseg8ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f32m1_m)))
-void vsuxseg8ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f32mf2)))
-void vsuxseg8ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f32mf2_m)))
-void vsuxseg8ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f32m1)))
-void vsuxseg2ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f32m1_m)))
-void vsuxseg2ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f32m2)))
-void vsuxseg2ei32(float * op0, vuint32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f32m2_m)))
-void vsuxseg2ei32(vbool16_t op0, float * op1, vuint32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f32m4)))
-void vsuxseg2ei32(float * op0, vuint32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f32m4_m)))
-void vsuxseg2ei32(vbool8_t op0, float * op1, vuint32m4_t op2, vfloat32m4_t op3, vfloat32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f32mf2)))
-void vsuxseg2ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f32mf2_m)))
-void vsuxseg2ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f32m1)))
-void vsuxseg3ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f32m1_m)))
-void vsuxseg3ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f32m2)))
-void vsuxseg3ei32(float * op0, vuint32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f32m2_m)))
-void vsuxseg3ei32(vbool16_t op0, float * op1, vuint32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f32mf2)))
-void vsuxseg3ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f32mf2_m)))
-void vsuxseg3ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f32m1)))
-void vsuxseg4ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f32m1_m)))
-void vsuxseg4ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f32m2)))
-void vsuxseg4ei32(float * op0, vuint32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f32m2_m)))
-void vsuxseg4ei32(vbool16_t op0, float * op1, vuint32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f32mf2)))
-void vsuxseg4ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f32mf2_m)))
-void vsuxseg4ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f32m1)))
-void vsuxseg5ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f32m1_m)))
-void vsuxseg5ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f32mf2)))
-void vsuxseg5ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f32mf2_m)))
-void vsuxseg5ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f32m1)))
-void vsuxseg6ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f32m1_m)))
-void vsuxseg6ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f32mf2)))
-void vsuxseg6ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f32mf2_m)))
-void vsuxseg6ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f32m1)))
-void vsuxseg7ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f32m1_m)))
-void vsuxseg7ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f32mf2)))
-void vsuxseg7ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f32mf2_m)))
-void vsuxseg7ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f32m1)))
-void vsuxseg8ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f32m1_m)))
-void vsuxseg8ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f32mf2)))
-void vsuxseg8ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f32mf2_m)))
-void vsuxseg8ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f32m1)))
-void vsuxseg2ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f32m1_m)))
-void vsuxseg2ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f32m2)))
-void vsuxseg2ei64(float * op0, vuint64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f32m2_m)))
-void vsuxseg2ei64(vbool16_t op0, float * op1, vuint64m4_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f32m4)))
-void vsuxseg2ei64(float * op0, vuint64m8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f32m4_m)))
-void vsuxseg2ei64(vbool8_t op0, float * op1, vuint64m8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f32mf2)))
-void vsuxseg2ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f32mf2_m)))
-void vsuxseg2ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f32m1)))
-void vsuxseg3ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f32m1_m)))
-void vsuxseg3ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f32m2)))
-void vsuxseg3ei64(float * op0, vuint64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f32m2_m)))
-void vsuxseg3ei64(vbool16_t op0, float * op1, vuint64m4_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f32mf2)))
-void vsuxseg3ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f32mf2_m)))
-void vsuxseg3ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f32m1)))
-void vsuxseg4ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f32m1_m)))
-void vsuxseg4ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f32m2)))
-void vsuxseg4ei64(float * op0, vuint64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f32m2_m)))
-void vsuxseg4ei64(vbool16_t op0, float * op1, vuint64m4_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f32mf2)))
-void vsuxseg4ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f32mf2_m)))
-void vsuxseg4ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f32m1)))
-void vsuxseg5ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f32m1_m)))
-void vsuxseg5ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f32mf2)))
-void vsuxseg5ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f32mf2_m)))
-void vsuxseg5ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f32m1)))
-void vsuxseg6ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f32m1_m)))
-void vsuxseg6ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f32mf2)))
-void vsuxseg6ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f32mf2_m)))
-void vsuxseg6ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f32m1)))
-void vsuxseg7ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f32m1_m)))
-void vsuxseg7ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f32mf2)))
-void vsuxseg7ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f32mf2_m)))
-void vsuxseg7ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f32m1)))
-void vsuxseg8ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f32m1_m)))
-void vsuxseg8ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f32mf2)))
-void vsuxseg8ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f32mf2_m)))
-void vsuxseg8ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f32m1)))
-void vsoxseg2ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f32m1_m)))
-void vsoxseg2ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f32m2)))
-void vsoxseg2ei8(float * op0, vuint8mf2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f32m2_m)))
-void vsoxseg2ei8(vbool16_t op0, float * op1, vuint8mf2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f32m4)))
-void vsoxseg2ei8(float * op0, vuint8m1_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f32m4_m)))
-void vsoxseg2ei8(vbool8_t op0, float * op1, vuint8m1_t op2, vfloat32m4_t op3, vfloat32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f32mf2)))
-void vsoxseg2ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f32mf2_m)))
-void vsoxseg2ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f32m1)))
-void vsoxseg3ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f32m1_m)))
-void vsoxseg3ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f32m2)))
-void vsoxseg3ei8(float * op0, vuint8mf2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f32m2_m)))
-void vsoxseg3ei8(vbool16_t op0, float * op1, vuint8mf2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f32mf2)))
-void vsoxseg3ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f32mf2_m)))
-void vsoxseg3ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f32m1)))
-void vsoxseg4ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f32m1_m)))
-void vsoxseg4ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f32m2)))
-void vsoxseg4ei8(float * op0, vuint8mf2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f32m2_m)))
-void vsoxseg4ei8(vbool16_t op0, float * op1, vuint8mf2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f32mf2)))
-void vsoxseg4ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f32mf2_m)))
-void vsoxseg4ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f32m1)))
-void vsoxseg5ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f32m1_m)))
-void vsoxseg5ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f32mf2)))
-void vsoxseg5ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f32mf2_m)))
-void vsoxseg5ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f32m1)))
-void vsoxseg6ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f32m1_m)))
-void vsoxseg6ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f32mf2)))
-void vsoxseg6ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f32mf2_m)))
-void vsoxseg6ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f32m1)))
-void vsoxseg7ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f32m1_m)))
-void vsoxseg7ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f32mf2)))
-void vsoxseg7ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f32mf2_m)))
-void vsoxseg7ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f32m1)))
-void vsoxseg8ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f32m1_m)))
-void vsoxseg8ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f32mf2)))
-void vsoxseg8ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f32mf2_m)))
-void vsoxseg8ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f32m1)))
-void vsoxseg2ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f32m1_m)))
-void vsoxseg2ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f32m2)))
-void vsoxseg2ei16(float * op0, vuint16m1_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f32m2_m)))
-void vsoxseg2ei16(vbool16_t op0, float * op1, vuint16m1_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f32m4)))
-void vsoxseg2ei16(float * op0, vuint16m2_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f32m4_m)))
-void vsoxseg2ei16(vbool8_t op0, float * op1, vuint16m2_t op2, vfloat32m4_t op3, vfloat32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f32mf2)))
-void vsoxseg2ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f32mf2_m)))
-void vsoxseg2ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f32m1)))
-void vsoxseg3ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f32m1_m)))
-void vsoxseg3ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f32m2)))
-void vsoxseg3ei16(float * op0, vuint16m1_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f32m2_m)))
-void vsoxseg3ei16(vbool16_t op0, float * op1, vuint16m1_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f32mf2)))
-void vsoxseg3ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f32mf2_m)))
-void vsoxseg3ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f32m1)))
-void vsoxseg4ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f32m1_m)))
-void vsoxseg4ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f32m2)))
-void vsoxseg4ei16(float * op0, vuint16m1_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f32m2_m)))
-void vsoxseg4ei16(vbool16_t op0, float * op1, vuint16m1_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f32mf2)))
-void vsoxseg4ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f32mf2_m)))
-void vsoxseg4ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f32m1)))
-void vsoxseg5ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f32m1_m)))
-void vsoxseg5ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f32mf2)))
-void vsoxseg5ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f32mf2_m)))
-void vsoxseg5ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f32m1)))
-void vsoxseg6ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f32m1_m)))
-void vsoxseg6ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f32mf2)))
-void vsoxseg6ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f32mf2_m)))
-void vsoxseg6ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f32m1)))
-void vsoxseg7ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f32m1_m)))
-void vsoxseg7ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f32mf2)))
-void vsoxseg7ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f32mf2_m)))
-void vsoxseg7ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f32m1)))
-void vsoxseg8ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f32m1_m)))
-void vsoxseg8ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f32mf2)))
-void vsoxseg8ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f32mf2_m)))
-void vsoxseg8ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f32m1)))
-void vsoxseg2ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f32m1_m)))
-void vsoxseg2ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f32m2)))
-void vsoxseg2ei32(float * op0, vuint32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f32m2_m)))
-void vsoxseg2ei32(vbool16_t op0, float * op1, vuint32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f32m4)))
-void vsoxseg2ei32(float * op0, vuint32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f32m4_m)))
-void vsoxseg2ei32(vbool8_t op0, float * op1, vuint32m4_t op2, vfloat32m4_t op3, vfloat32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f32mf2)))
-void vsoxseg2ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f32mf2_m)))
-void vsoxseg2ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f32m1)))
-void vsoxseg3ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f32m1_m)))
-void vsoxseg3ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f32m2)))
-void vsoxseg3ei32(float * op0, vuint32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f32m2_m)))
-void vsoxseg3ei32(vbool16_t op0, float * op1, vuint32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f32mf2)))
-void vsoxseg3ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f32mf2_m)))
-void vsoxseg3ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f32m1)))
-void vsoxseg4ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f32m1_m)))
-void vsoxseg4ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f32m2)))
-void vsoxseg4ei32(float * op0, vuint32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f32m2_m)))
-void vsoxseg4ei32(vbool16_t op0, float * op1, vuint32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f32mf2)))
-void vsoxseg4ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f32mf2_m)))
-void vsoxseg4ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f32m1)))
-void vsoxseg5ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f32m1_m)))
-void vsoxseg5ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f32mf2)))
-void vsoxseg5ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f32mf2_m)))
-void vsoxseg5ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f32m1)))
-void vsoxseg6ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f32m1_m)))
-void vsoxseg6ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f32mf2)))
-void vsoxseg6ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f32mf2_m)))
-void vsoxseg6ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f32m1)))
-void vsoxseg7ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f32m1_m)))
-void vsoxseg7ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f32mf2)))
-void vsoxseg7ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f32mf2_m)))
-void vsoxseg7ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f32m1)))
-void vsoxseg8ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f32m1_m)))
-void vsoxseg8ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f32mf2)))
-void vsoxseg8ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f32mf2_m)))
-void vsoxseg8ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f32m1)))
-void vsoxseg2ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f32m1_m)))
-void vsoxseg2ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f32m2)))
-void vsoxseg2ei64(float * op0, vuint64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f32m2_m)))
-void vsoxseg2ei64(vbool16_t op0, float * op1, vuint64m4_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f32m4)))
-void vsoxseg2ei64(float * op0, vuint64m8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f32m4_m)))
-void vsoxseg2ei64(vbool8_t op0, float * op1, vuint64m8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f32mf2)))
-void vsoxseg2ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f32mf2_m)))
-void vsoxseg2ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f32m1)))
-void vsoxseg3ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f32m1_m)))
-void vsoxseg3ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f32m2)))
-void vsoxseg3ei64(float * op0, vuint64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f32m2_m)))
-void vsoxseg3ei64(vbool16_t op0, float * op1, vuint64m4_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f32mf2)))
-void vsoxseg3ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f32mf2_m)))
-void vsoxseg3ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f32m1)))
-void vsoxseg4ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f32m1_m)))
-void vsoxseg4ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f32m2)))
-void vsoxseg4ei64(float * op0, vuint64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f32m2_m)))
-void vsoxseg4ei64(vbool16_t op0, float * op1, vuint64m4_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f32mf2)))
-void vsoxseg4ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f32mf2_m)))
-void vsoxseg4ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f32m1)))
-void vsoxseg5ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f32m1_m)))
-void vsoxseg5ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f32mf2)))
-void vsoxseg5ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f32mf2_m)))
-void vsoxseg5ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f32m1)))
-void vsoxseg6ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f32m1_m)))
-void vsoxseg6ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f32mf2)))
-void vsoxseg6ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f32mf2_m)))
-void vsoxseg6ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f32m1)))
-void vsoxseg7ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f32m1_m)))
-void vsoxseg7ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f32mf2)))
-void vsoxseg7ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f32mf2_m)))
-void vsoxseg7ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f32m1)))
-void vsoxseg8ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f32m1_m)))
-void vsoxseg8ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f32mf2)))
-void vsoxseg8ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f32mf2_m)))
-void vsoxseg8ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_f32m1_m)))
-void vlseg2e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vbool32_t op2, vfloat32m1_t op3, vfloat32m1_t op4, const float * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_f32m2_m)))
-void vlseg2e32(vfloat32m2_t * op0, vfloat32m2_t * op1, vbool16_t op2, vfloat32m2_t op3, vfloat32m2_t op4, const float * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_f32m4_m)))
-void vlseg2e32(vfloat32m4_t * op0, vfloat32m4_t * op1, vbool8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, const float * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_f32mf2_m)))
-void vlseg2e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vbool64_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, const float * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32_v_f32m1_m)))
-void vlseg3e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vbool32_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, const float * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32_v_f32m2_m)))
-void vlseg3e32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vbool16_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, const float * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32_v_f32mf2_m)))
-void vlseg3e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vbool64_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, const float * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32_v_f32m1_m)))
-void vlseg4e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vbool32_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, const float * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32_v_f32m2_m)))
-void vlseg4e32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, vbool16_t op4, vfloat32m2_t op5, vfloat32m2_t op6, vfloat32m2_t op7, vfloat32m2_t op8, const float * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32_v_f32mf2_m)))
-void vlseg4e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vbool64_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, const float * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32_v_f32m1_m)))
-void vlseg5e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vbool32_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, const float * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32_v_f32mf2_m)))
-void vlseg5e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vbool64_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, const float * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32_v_f32m1_m)))
-void vlseg6e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vbool32_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, const float * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32_v_f32mf2_m)))
-void vlseg6e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vbool64_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, const float * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32_v_f32m1_m)))
-void vlseg7e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vbool32_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, const float * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32_v_f32mf2_m)))
-void vlseg7e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vbool64_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, const float * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32_v_f32m1_m)))
-void vlseg8e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, vbool32_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, vfloat32m1_t op15, vfloat32m1_t op16, const float * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32_v_f32mf2_m)))
-void vlseg8e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, vbool64_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, vfloat32mf2_t op15, vfloat32mf2_t op16, const float * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_f32m1_m)))
-void vlseg2e32ff(vfloat32m1_t * op0, vfloat32m1_t * op1, vbool32_t op2, vfloat32m1_t op3, vfloat32m1_t op4, const float * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_f32m2_m)))
-void vlseg2e32ff(vfloat32m2_t * op0, vfloat32m2_t * op1, vbool16_t op2, vfloat32m2_t op3, vfloat32m2_t op4, const float * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_f32m4_m)))
-void vlseg2e32ff(vfloat32m4_t * op0, vfloat32m4_t * op1, vbool8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, const float * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_f32mf2_m)))
-void vlseg2e32ff(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vbool64_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, const float * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32ff_v_f32m1_m)))
-void vlseg3e32ff(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vbool32_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, const float * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32ff_v_f32m2_m)))
-void vlseg3e32ff(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vbool16_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, const float * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32ff_v_f32mf2_m)))
-void vlseg3e32ff(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vbool64_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, const float * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32ff_v_f32m1_m)))
-void vlseg4e32ff(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vbool32_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, const float * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32ff_v_f32m2_m)))
-void vlseg4e32ff(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, vbool16_t op4, vfloat32m2_t op5, vfloat32m2_t op6, vfloat32m2_t op7, vfloat32m2_t op8, const float * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32ff_v_f32mf2_m)))
-void vlseg4e32ff(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vbool64_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, const float * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32ff_v_f32m1_m)))
-void vlseg5e32ff(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vbool32_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, const float * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32ff_v_f32mf2_m)))
-void vlseg5e32ff(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vbool64_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, const float * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32ff_v_f32m1_m)))
-void vlseg6e32ff(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vbool32_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, const float * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32ff_v_f32mf2_m)))
-void vlseg6e32ff(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vbool64_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, const float * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32ff_v_f32m1_m)))
-void vlseg7e32ff(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vbool32_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, const float * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32ff_v_f32mf2_m)))
-void vlseg7e32ff(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vbool64_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, const float * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32ff_v_f32m1_m)))
-void vlseg8e32ff(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, vbool32_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, vfloat32m1_t op15, vfloat32m1_t op16, const float * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32ff_v_f32mf2_m)))
-void vlseg8e32ff(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, vbool64_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, vfloat32mf2_t op15, vfloat32mf2_t op16, const float * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_f32m1_m)))
-void vlsseg2e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vbool32_t op2, vfloat32m1_t op3, vfloat32m1_t op4, const float * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_f32m2_m)))
-void vlsseg2e32(vfloat32m2_t * op0, vfloat32m2_t * op1, vbool16_t op2, vfloat32m2_t op3, vfloat32m2_t op4, const float * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_f32m4_m)))
-void vlsseg2e32(vfloat32m4_t * op0, vfloat32m4_t * op1, vbool8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, const float * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_f32mf2_m)))
-void vlsseg2e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vbool64_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, const float * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e32_v_f32m1_m)))
-void vlsseg3e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vbool32_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, const float * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e32_v_f32m2_m)))
-void vlsseg3e32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vbool16_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, const float * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e32_v_f32mf2_m)))
-void vlsseg3e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vbool64_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, const float * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e32_v_f32m1_m)))
-void vlsseg4e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vbool32_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, const float * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e32_v_f32m2_m)))
-void vlsseg4e32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, vbool16_t op4, vfloat32m2_t op5, vfloat32m2_t op6, vfloat32m2_t op7, vfloat32m2_t op8, const float * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e32_v_f32mf2_m)))
-void vlsseg4e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vbool64_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, const float * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e32_v_f32m1_m)))
-void vlsseg5e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vbool32_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, const float * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e32_v_f32mf2_m)))
-void vlsseg5e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vbool64_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, const float * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e32_v_f32m1_m)))
-void vlsseg6e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vbool32_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, const float * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e32_v_f32mf2_m)))
-void vlsseg6e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vbool64_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, const float * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e32_v_f32m1_m)))
-void vlsseg7e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vbool32_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, const float * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e32_v_f32mf2_m)))
-void vlsseg7e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vbool64_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, const float * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e32_v_f32m1_m)))
-void vlsseg8e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, vbool32_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, vfloat32m1_t op15, vfloat32m1_t op16, const float * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e32_v_f32mf2_m)))
-void vlsseg8e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, vbool64_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, vfloat32mf2_t op15, vfloat32mf2_t op16, const float * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f32m1)))
-void vluxseg2ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, const float * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f32m1_m)))
-void vluxseg2ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vbool32_t op2, vfloat32m1_t op3, vfloat32m1_t op4, const float * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f32m2)))
-void vluxseg2ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, const float * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f32m2_m)))
-void vluxseg2ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, vbool16_t op2, vfloat32m2_t op3, vfloat32m2_t op4, const float * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f32m4)))
-void vluxseg2ei8(vfloat32m4_t * op0, vfloat32m4_t * op1, const float * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f32m4_m)))
-void vluxseg2ei8(vfloat32m4_t * op0, vfloat32m4_t * op1, vbool8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, const float * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f32mf2)))
-void vluxseg2ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, const float * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f32mf2_m)))
-void vluxseg2ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vbool64_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, const float * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f32m1)))
-void vluxseg3ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, const float * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f32m1_m)))
-void vluxseg3ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vbool32_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, const float * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f32m2)))
-void vluxseg3ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, const float * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f32m2_m)))
-void vluxseg3ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vbool16_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, const float * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f32mf2)))
-void vluxseg3ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, const float * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f32mf2_m)))
-void vluxseg3ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vbool64_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, const float * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f32m1)))
-void vluxseg4ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, const float * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f32m1_m)))
-void vluxseg4ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vbool32_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, const float * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f32m2)))
-void vluxseg4ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, const float * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f32m2_m)))
-void vluxseg4ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, vbool16_t op4, vfloat32m2_t op5, vfloat32m2_t op6, vfloat32m2_t op7, vfloat32m2_t op8, const float * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f32mf2)))
-void vluxseg4ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, const float * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f32mf2_m)))
-void vluxseg4ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vbool64_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, const float * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f32m1)))
-void vluxseg5ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, const float * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f32m1_m)))
-void vluxseg5ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vbool32_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, const float * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f32mf2)))
-void vluxseg5ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, const float * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f32mf2_m)))
-void vluxseg5ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vbool64_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, const float * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f32m1)))
-void vluxseg6ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, const float * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f32m1_m)))
-void vluxseg6ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vbool32_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, const float * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f32mf2)))
-void vluxseg6ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, const float * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f32mf2_m)))
-void vluxseg6ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vbool64_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, const float * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f32m1)))
-void vluxseg7ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, const float * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f32m1_m)))
-void vluxseg7ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vbool32_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, const float * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f32mf2)))
-void vluxseg7ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, const float * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f32mf2_m)))
-void vluxseg7ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vbool64_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, const float * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f32m1)))
-void vluxseg8ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, const float * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f32m1_m)))
-void vluxseg8ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, vbool32_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, vfloat32m1_t op15, vfloat32m1_t op16, const float * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f32mf2)))
-void vluxseg8ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, const float * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f32mf2_m)))
-void vluxseg8ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, vbool64_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, vfloat32mf2_t op15, vfloat32mf2_t op16, const float * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f32m1)))
-void vluxseg2ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, const float * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f32m1_m)))
-void vluxseg2ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vbool32_t op2, vfloat32m1_t op3, vfloat32m1_t op4, const float * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f32m2)))
-void vluxseg2ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, const float * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f32m2_m)))
-void vluxseg2ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, vbool16_t op2, vfloat32m2_t op3, vfloat32m2_t op4, const float * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f32m4)))
-void vluxseg2ei16(vfloat32m4_t * op0, vfloat32m4_t * op1, const float * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f32m4_m)))
-void vluxseg2ei16(vfloat32m4_t * op0, vfloat32m4_t * op1, vbool8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, const float * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f32mf2)))
-void vluxseg2ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, const float * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f32mf2_m)))
-void vluxseg2ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vbool64_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, const float * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f32m1)))
-void vluxseg3ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, const float * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f32m1_m)))
-void vluxseg3ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vbool32_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, const float * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f32m2)))
-void vluxseg3ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, const float * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f32m2_m)))
-void vluxseg3ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vbool16_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, const float * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f32mf2)))
-void vluxseg3ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, const float * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f32mf2_m)))
-void vluxseg3ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vbool64_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, const float * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f32m1)))
-void vluxseg4ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, const float * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f32m1_m)))
-void vluxseg4ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vbool32_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, const float * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f32m2)))
-void vluxseg4ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, const float * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f32m2_m)))
-void vluxseg4ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, vbool16_t op4, vfloat32m2_t op5, vfloat32m2_t op6, vfloat32m2_t op7, vfloat32m2_t op8, const float * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f32mf2)))
-void vluxseg4ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, const float * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f32mf2_m)))
-void vluxseg4ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vbool64_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, const float * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f32m1)))
-void vluxseg5ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, const float * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f32m1_m)))
-void vluxseg5ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vbool32_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, const float * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f32mf2)))
-void vluxseg5ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, const float * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f32mf2_m)))
-void vluxseg5ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vbool64_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, const float * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f32m1)))
-void vluxseg6ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, const float * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f32m1_m)))
-void vluxseg6ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vbool32_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, const float * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f32mf2)))
-void vluxseg6ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, const float * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f32mf2_m)))
-void vluxseg6ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vbool64_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, const float * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f32m1)))
-void vluxseg7ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, const float * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f32m1_m)))
-void vluxseg7ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vbool32_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, const float * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f32mf2)))
-void vluxseg7ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, const float * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f32mf2_m)))
-void vluxseg7ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vbool64_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, const float * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f32m1)))
-void vluxseg8ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, const float * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f32m1_m)))
-void vluxseg8ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, vbool32_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, vfloat32m1_t op15, vfloat32m1_t op16, const float * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f32mf2)))
-void vluxseg8ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, const float * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f32mf2_m)))
-void vluxseg8ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, vbool64_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, vfloat32mf2_t op15, vfloat32mf2_t op16, const float * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f32m1)))
-void vluxseg2ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, const float * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f32m1_m)))
-void vluxseg2ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vbool32_t op2, vfloat32m1_t op3, vfloat32m1_t op4, const float * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f32m2)))
-void vluxseg2ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, const float * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f32m2_m)))
-void vluxseg2ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, vbool16_t op2, vfloat32m2_t op3, vfloat32m2_t op4, const float * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f32m4)))
-void vluxseg2ei32(vfloat32m4_t * op0, vfloat32m4_t * op1, const float * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f32m4_m)))
-void vluxseg2ei32(vfloat32m4_t * op0, vfloat32m4_t * op1, vbool8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, const float * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f32mf2)))
-void vluxseg2ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, const float * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f32mf2_m)))
-void vluxseg2ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vbool64_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, const float * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f32m1)))
-void vluxseg3ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, const float * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f32m1_m)))
-void vluxseg3ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vbool32_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, const float * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f32m2)))
-void vluxseg3ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, const float * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f32m2_m)))
-void vluxseg3ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vbool16_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, const float * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f32mf2)))
-void vluxseg3ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, const float * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f32mf2_m)))
-void vluxseg3ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vbool64_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, const float * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f32m1)))
-void vluxseg4ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, const float * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f32m1_m)))
-void vluxseg4ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vbool32_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, const float * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f32m2)))
-void vluxseg4ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, const float * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f32m2_m)))
-void vluxseg4ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, vbool16_t op4, vfloat32m2_t op5, vfloat32m2_t op6, vfloat32m2_t op7, vfloat32m2_t op8, const float * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f32mf2)))
-void vluxseg4ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, const float * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f32mf2_m)))
-void vluxseg4ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vbool64_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, const float * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f32m1)))
-void vluxseg5ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, const float * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f32m1_m)))
-void vluxseg5ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vbool32_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, const float * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f32mf2)))
-void vluxseg5ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, const float * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f32mf2_m)))
-void vluxseg5ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vbool64_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, const float * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f32m1)))
-void vluxseg6ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, const float * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f32m1_m)))
-void vluxseg6ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vbool32_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, const float * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f32mf2)))
-void vluxseg6ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, const float * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f32mf2_m)))
-void vluxseg6ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vbool64_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, const float * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f32m1)))
-void vluxseg7ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, const float * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f32m1_m)))
-void vluxseg7ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vbool32_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, const float * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f32mf2)))
-void vluxseg7ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, const float * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f32mf2_m)))
-void vluxseg7ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vbool64_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, const float * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f32m1)))
-void vluxseg8ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, const float * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f32m1_m)))
-void vluxseg8ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, vbool32_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, vfloat32m1_t op15, vfloat32m1_t op16, const float * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f32mf2)))
-void vluxseg8ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, const float * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f32mf2_m)))
-void vluxseg8ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, vbool64_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, vfloat32mf2_t op15, vfloat32mf2_t op16, const float * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f32m1)))
-void vluxseg2ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, const float * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f32m1_m)))
-void vluxseg2ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vbool32_t op2, vfloat32m1_t op3, vfloat32m1_t op4, const float * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f32m2)))
-void vluxseg2ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, const float * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f32m2_m)))
-void vluxseg2ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, vbool16_t op2, vfloat32m2_t op3, vfloat32m2_t op4, const float * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f32m4)))
-void vluxseg2ei64(vfloat32m4_t * op0, vfloat32m4_t * op1, const float * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f32m4_m)))
-void vluxseg2ei64(vfloat32m4_t * op0, vfloat32m4_t * op1, vbool8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, const float * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f32mf2)))
-void vluxseg2ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, const float * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f32mf2_m)))
-void vluxseg2ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vbool64_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, const float * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f32m1)))
-void vluxseg3ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, const float * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f32m1_m)))
-void vluxseg3ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vbool32_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, const float * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f32m2)))
-void vluxseg3ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, const float * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f32m2_m)))
-void vluxseg3ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vbool16_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, const float * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f32mf2)))
-void vluxseg3ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, const float * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f32mf2_m)))
-void vluxseg3ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vbool64_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, const float * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f32m1)))
-void vluxseg4ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, const float * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f32m1_m)))
-void vluxseg4ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vbool32_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, const float * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f32m2)))
-void vluxseg4ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, const float * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f32m2_m)))
-void vluxseg4ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, vbool16_t op4, vfloat32m2_t op5, vfloat32m2_t op6, vfloat32m2_t op7, vfloat32m2_t op8, const float * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f32mf2)))
-void vluxseg4ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, const float * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f32mf2_m)))
-void vluxseg4ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vbool64_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, const float * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f32m1)))
-void vluxseg5ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, const float * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f32m1_m)))
-void vluxseg5ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vbool32_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, const float * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f32mf2)))
-void vluxseg5ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, const float * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f32mf2_m)))
-void vluxseg5ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vbool64_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, const float * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f32m1)))
-void vluxseg6ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, const float * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f32m1_m)))
-void vluxseg6ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vbool32_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, const float * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f32mf2)))
-void vluxseg6ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, const float * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f32mf2_m)))
-void vluxseg6ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vbool64_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, const float * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f32m1)))
-void vluxseg7ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, const float * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f32m1_m)))
-void vluxseg7ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vbool32_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, const float * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f32mf2)))
-void vluxseg7ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, const float * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f32mf2_m)))
-void vluxseg7ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vbool64_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, const float * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f32m1)))
-void vluxseg8ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, const float * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f32m1_m)))
-void vluxseg8ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, vbool32_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, vfloat32m1_t op15, vfloat32m1_t op16, const float * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f32mf2)))
-void vluxseg8ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, const float * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f32mf2_m)))
-void vluxseg8ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, vbool64_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, vfloat32mf2_t op15, vfloat32mf2_t op16, const float * op17, vuint64m1_t op18, size_t op19);
-
-#endif
-
-#if defined(__riscv_d) && defined(__riscv_zvlsseg)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f64m1)))
-void vloxseg2ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, const double * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f64m1_m)))
-void vloxseg2ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vbool64_t op2, vfloat64m1_t op3, vfloat64m1_t op4, const double * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f64m2)))
-void vloxseg2ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, const double * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f64m2_m)))
-void vloxseg2ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, vbool32_t op2, vfloat64m2_t op3, vfloat64m2_t op4, const double * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f64m4)))
-void vloxseg2ei8(vfloat64m4_t * op0, vfloat64m4_t * op1, const double * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f64m4_m)))
-void vloxseg2ei8(vfloat64m4_t * op0, vfloat64m4_t * op1, vbool16_t op2, vfloat64m4_t op3, vfloat64m4_t op4, const double * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f64m1)))
-void vloxseg3ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, const double * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f64m1_m)))
-void vloxseg3ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vbool64_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, const double * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f64m2)))
-void vloxseg3ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, const double * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f64m2_m)))
-void vloxseg3ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vbool32_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, const double * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f64m1)))
-void vloxseg4ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, const double * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f64m1_m)))
-void vloxseg4ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vbool64_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, const double * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f64m2)))
-void vloxseg4ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, const double * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f64m2_m)))
-void vloxseg4ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, vbool32_t op4, vfloat64m2_t op5, vfloat64m2_t op6, vfloat64m2_t op7, vfloat64m2_t op8, const double * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f64m1)))
-void vloxseg5ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, const double * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f64m1_m)))
-void vloxseg5ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vbool64_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, const double * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f64m1)))
-void vloxseg6ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, const double * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f64m1_m)))
-void vloxseg6ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vbool64_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, const double * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f64m1)))
-void vloxseg7ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, const double * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f64m1_m)))
-void vloxseg7ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vbool64_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, const double * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f64m1)))
-void vloxseg8ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, const double * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f64m1_m)))
-void vloxseg8ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, vbool64_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, vfloat64m1_t op15, vfloat64m1_t op16, const double * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f64m1)))
-void vloxseg2ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, const double * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f64m1_m)))
-void vloxseg2ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vbool64_t op2, vfloat64m1_t op3, vfloat64m1_t op4, const double * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f64m2)))
-void vloxseg2ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, const double * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f64m2_m)))
-void vloxseg2ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, vbool32_t op2, vfloat64m2_t op3, vfloat64m2_t op4, const double * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f64m4)))
-void vloxseg2ei16(vfloat64m4_t * op0, vfloat64m4_t * op1, const double * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f64m4_m)))
-void vloxseg2ei16(vfloat64m4_t * op0, vfloat64m4_t * op1, vbool16_t op2, vfloat64m4_t op3, vfloat64m4_t op4, const double * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f64m1)))
-void vloxseg3ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, const double * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f64m1_m)))
-void vloxseg3ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vbool64_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, const double * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f64m2)))
-void vloxseg3ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, const double * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f64m2_m)))
-void vloxseg3ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vbool32_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, const double * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f64m1)))
-void vloxseg4ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, const double * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f64m1_m)))
-void vloxseg4ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vbool64_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, const double * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f64m2)))
-void vloxseg4ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, const double * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f64m2_m)))
-void vloxseg4ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, vbool32_t op4, vfloat64m2_t op5, vfloat64m2_t op6, vfloat64m2_t op7, vfloat64m2_t op8, const double * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f64m1)))
-void vloxseg5ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, const double * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f64m1_m)))
-void vloxseg5ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vbool64_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, const double * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f64m1)))
-void vloxseg6ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, const double * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f64m1_m)))
-void vloxseg6ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vbool64_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, const double * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f64m1)))
-void vloxseg7ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, const double * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f64m1_m)))
-void vloxseg7ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vbool64_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, const double * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f64m1)))
-void vloxseg8ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, const double * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f64m1_m)))
-void vloxseg8ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, vbool64_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, vfloat64m1_t op15, vfloat64m1_t op16, const double * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f64m1)))
-void vloxseg2ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, const double * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f64m1_m)))
-void vloxseg2ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vbool64_t op2, vfloat64m1_t op3, vfloat64m1_t op4, const double * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f64m2)))
-void vloxseg2ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, const double * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f64m2_m)))
-void vloxseg2ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, vbool32_t op2, vfloat64m2_t op3, vfloat64m2_t op4, const double * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f64m4)))
-void vloxseg2ei32(vfloat64m4_t * op0, vfloat64m4_t * op1, const double * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f64m4_m)))
-void vloxseg2ei32(vfloat64m4_t * op0, vfloat64m4_t * op1, vbool16_t op2, vfloat64m4_t op3, vfloat64m4_t op4, const double * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f64m1)))
-void vloxseg3ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, const double * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f64m1_m)))
-void vloxseg3ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vbool64_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, const double * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f64m2)))
-void vloxseg3ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, const double * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f64m2_m)))
-void vloxseg3ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vbool32_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, const double * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f64m1)))
-void vloxseg4ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, const double * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f64m1_m)))
-void vloxseg4ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vbool64_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, const double * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f64m2)))
-void vloxseg4ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, const double * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f64m2_m)))
-void vloxseg4ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, vbool32_t op4, vfloat64m2_t op5, vfloat64m2_t op6, vfloat64m2_t op7, vfloat64m2_t op8, const double * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f64m1)))
-void vloxseg5ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, const double * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f64m1_m)))
-void vloxseg5ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vbool64_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, const double * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f64m1)))
-void vloxseg6ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, const double * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f64m1_m)))
-void vloxseg6ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vbool64_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, const double * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f64m1)))
-void vloxseg7ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, const double * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f64m1_m)))
-void vloxseg7ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vbool64_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, const double * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f64m1)))
-void vloxseg8ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, const double * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f64m1_m)))
-void vloxseg8ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, vbool64_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, vfloat64m1_t op15, vfloat64m1_t op16, const double * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f64m1)))
-void vloxseg2ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, const double * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f64m1_m)))
-void vloxseg2ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vbool64_t op2, vfloat64m1_t op3, vfloat64m1_t op4, const double * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f64m2)))
-void vloxseg2ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, const double * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f64m2_m)))
-void vloxseg2ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, vbool32_t op2, vfloat64m2_t op3, vfloat64m2_t op4, const double * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f64m4)))
-void vloxseg2ei64(vfloat64m4_t * op0, vfloat64m4_t * op1, const double * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f64m4_m)))
-void vloxseg2ei64(vfloat64m4_t * op0, vfloat64m4_t * op1, vbool16_t op2, vfloat64m4_t op3, vfloat64m4_t op4, const double * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f64m1)))
-void vloxseg3ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, const double * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f64m1_m)))
-void vloxseg3ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vbool64_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, const double * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f64m2)))
-void vloxseg3ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, const double * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f64m2_m)))
-void vloxseg3ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vbool32_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, const double * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f64m1)))
-void vloxseg4ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, const double * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f64m1_m)))
-void vloxseg4ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vbool64_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, const double * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f64m2)))
-void vloxseg4ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, const double * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f64m2_m)))
-void vloxseg4ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, vbool32_t op4, vfloat64m2_t op5, vfloat64m2_t op6, vfloat64m2_t op7, vfloat64m2_t op8, const double * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f64m1)))
-void vloxseg5ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, const double * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f64m1_m)))
-void vloxseg5ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vbool64_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, const double * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f64m1)))
-void vloxseg6ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, const double * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f64m1_m)))
-void vloxseg6ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vbool64_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, const double * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f64m1)))
-void vloxseg7ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, const double * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f64m1_m)))
-void vloxseg7ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vbool64_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, const double * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f64m1)))
-void vloxseg8ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, const double * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f64m1_m)))
-void vloxseg8ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, vbool64_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, vfloat64m1_t op15, vfloat64m1_t op16, const double * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_f64m1)))
-void vsseg2e64(double * op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_f64m1_m)))
-void vsseg2e64(vbool64_t op0, double * op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_f64m2)))
-void vsseg2e64(double * op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_f64m2_m)))
-void vsseg2e64(vbool32_t op0, double * op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_f64m4)))
-void vsseg2e64(double * op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_f64m4_m)))
-void vsseg2e64(vbool16_t op0, double * op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_f64m1)))
-void vsseg3e64(double * op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_f64m1_m)))
-void vsseg3e64(vbool64_t op0, double * op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_f64m2)))
-void vsseg3e64(double * op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_f64m2_m)))
-void vsseg3e64(vbool32_t op0, double * op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_f64m1)))
-void vsseg4e64(double * op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_f64m1_m)))
-void vsseg4e64(vbool64_t op0, double * op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_f64m2)))
-void vsseg4e64(double * op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_f64m2_m)))
-void vsseg4e64(vbool32_t op0, double * op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e64_v_f64m1)))
-void vsseg5e64(double * op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e64_v_f64m1_m)))
-void vsseg5e64(vbool64_t op0, double * op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e64_v_f64m1)))
-void vsseg6e64(double * op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e64_v_f64m1_m)))
-void vsseg6e64(vbool64_t op0, double * op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e64_v_f64m1)))
-void vsseg7e64(double * op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e64_v_f64m1_m)))
-void vsseg7e64(vbool64_t op0, double * op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e64_v_f64m1)))
-void vsseg8e64(double * op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e64_v_f64m1_m)))
-void vsseg8e64(vbool64_t op0, double * op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_f64m1)))
-void vssseg2e64(double * op0, ptrdiff_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_f64m1_m)))
-void vssseg2e64(vbool64_t op0, double * op1, ptrdiff_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_f64m2)))
-void vssseg2e64(double * op0, ptrdiff_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_f64m2_m)))
-void vssseg2e64(vbool32_t op0, double * op1, ptrdiff_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_f64m4)))
-void vssseg2e64(double * op0, ptrdiff_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_f64m4_m)))
-void vssseg2e64(vbool16_t op0, double * op1, ptrdiff_t op2, vfloat64m4_t op3, vfloat64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_f64m1)))
-void vssseg3e64(double * op0, ptrdiff_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_f64m1_m)))
-void vssseg3e64(vbool64_t op0, double * op1, ptrdiff_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_f64m2)))
-void vssseg3e64(double * op0, ptrdiff_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_f64m2_m)))
-void vssseg3e64(vbool32_t op0, double * op1, ptrdiff_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_f64m1)))
-void vssseg4e64(double * op0, ptrdiff_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_f64m1_m)))
-void vssseg4e64(vbool64_t op0, double * op1, ptrdiff_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_f64m2)))
-void vssseg4e64(double * op0, ptrdiff_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_f64m2_m)))
-void vssseg4e64(vbool32_t op0, double * op1, ptrdiff_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e64_v_f64m1)))
-void vssseg5e64(double * op0, ptrdiff_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e64_v_f64m1_m)))
-void vssseg5e64(vbool64_t op0, double * op1, ptrdiff_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e64_v_f64m1)))
-void vssseg6e64(double * op0, ptrdiff_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e64_v_f64m1_m)))
-void vssseg6e64(vbool64_t op0, double * op1, ptrdiff_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e64_v_f64m1)))
-void vssseg7e64(double * op0, ptrdiff_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e64_v_f64m1_m)))
-void vssseg7e64(vbool64_t op0, double * op1, ptrdiff_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e64_v_f64m1)))
-void vssseg8e64(double * op0, ptrdiff_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e64_v_f64m1_m)))
-void vssseg8e64(vbool64_t op0, double * op1, ptrdiff_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f64m1)))
-void vsuxseg2ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f64m1_m)))
-void vsuxseg2ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f64m2)))
-void vsuxseg2ei8(double * op0, vuint8mf4_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f64m2_m)))
-void vsuxseg2ei8(vbool32_t op0, double * op1, vuint8mf4_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f64m4)))
-void vsuxseg2ei8(double * op0, vuint8mf2_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f64m4_m)))
-void vsuxseg2ei8(vbool16_t op0, double * op1, vuint8mf2_t op2, vfloat64m4_t op3, vfloat64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f64m1)))
-void vsuxseg3ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f64m1_m)))
-void vsuxseg3ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f64m2)))
-void vsuxseg3ei8(double * op0, vuint8mf4_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f64m2_m)))
-void vsuxseg3ei8(vbool32_t op0, double * op1, vuint8mf4_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f64m1)))
-void vsuxseg4ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f64m1_m)))
-void vsuxseg4ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f64m2)))
-void vsuxseg4ei8(double * op0, vuint8mf4_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f64m2_m)))
-void vsuxseg4ei8(vbool32_t op0, double * op1, vuint8mf4_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f64m1)))
-void vsuxseg5ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f64m1_m)))
-void vsuxseg5ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f64m1)))
-void vsuxseg6ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f64m1_m)))
-void vsuxseg6ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f64m1)))
-void vsuxseg7ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f64m1_m)))
-void vsuxseg7ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f64m1)))
-void vsuxseg8ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f64m1_m)))
-void vsuxseg8ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f64m1)))
-void vsuxseg2ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f64m1_m)))
-void vsuxseg2ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f64m2)))
-void vsuxseg2ei16(double * op0, vuint16mf2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f64m2_m)))
-void vsuxseg2ei16(vbool32_t op0, double * op1, vuint16mf2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f64m4)))
-void vsuxseg2ei16(double * op0, vuint16m1_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f64m4_m)))
-void vsuxseg2ei16(vbool16_t op0, double * op1, vuint16m1_t op2, vfloat64m4_t op3, vfloat64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f64m1)))
-void vsuxseg3ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f64m1_m)))
-void vsuxseg3ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f64m2)))
-void vsuxseg3ei16(double * op0, vuint16mf2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f64m2_m)))
-void vsuxseg3ei16(vbool32_t op0, double * op1, vuint16mf2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f64m1)))
-void vsuxseg4ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f64m1_m)))
-void vsuxseg4ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f64m2)))
-void vsuxseg4ei16(double * op0, vuint16mf2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f64m2_m)))
-void vsuxseg4ei16(vbool32_t op0, double * op1, vuint16mf2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f64m1)))
-void vsuxseg5ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f64m1_m)))
-void vsuxseg5ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f64m1)))
-void vsuxseg6ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f64m1_m)))
-void vsuxseg6ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f64m1)))
-void vsuxseg7ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f64m1_m)))
-void vsuxseg7ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f64m1)))
-void vsuxseg8ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f64m1_m)))
-void vsuxseg8ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f64m1)))
-void vsuxseg2ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f64m1_m)))
-void vsuxseg2ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f64m2)))
-void vsuxseg2ei32(double * op0, vuint32m1_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f64m2_m)))
-void vsuxseg2ei32(vbool32_t op0, double * op1, vuint32m1_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f64m4)))
-void vsuxseg2ei32(double * op0, vuint32m2_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f64m4_m)))
-void vsuxseg2ei32(vbool16_t op0, double * op1, vuint32m2_t op2, vfloat64m4_t op3, vfloat64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f64m1)))
-void vsuxseg3ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f64m1_m)))
-void vsuxseg3ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f64m2)))
-void vsuxseg3ei32(double * op0, vuint32m1_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f64m2_m)))
-void vsuxseg3ei32(vbool32_t op0, double * op1, vuint32m1_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f64m1)))
-void vsuxseg4ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f64m1_m)))
-void vsuxseg4ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f64m2)))
-void vsuxseg4ei32(double * op0, vuint32m1_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f64m2_m)))
-void vsuxseg4ei32(vbool32_t op0, double * op1, vuint32m1_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f64m1)))
-void vsuxseg5ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f64m1_m)))
-void vsuxseg5ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f64m1)))
-void vsuxseg6ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f64m1_m)))
-void vsuxseg6ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f64m1)))
-void vsuxseg7ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f64m1_m)))
-void vsuxseg7ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f64m1)))
-void vsuxseg8ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f64m1_m)))
-void vsuxseg8ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f64m1)))
-void vsuxseg2ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f64m1_m)))
-void vsuxseg2ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f64m2)))
-void vsuxseg2ei64(double * op0, vuint64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f64m2_m)))
-void vsuxseg2ei64(vbool32_t op0, double * op1, vuint64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f64m4)))
-void vsuxseg2ei64(double * op0, vuint64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f64m4_m)))
-void vsuxseg2ei64(vbool16_t op0, double * op1, vuint64m4_t op2, vfloat64m4_t op3, vfloat64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f64m1)))
-void vsuxseg3ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f64m1_m)))
-void vsuxseg3ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f64m2)))
-void vsuxseg3ei64(double * op0, vuint64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f64m2_m)))
-void vsuxseg3ei64(vbool32_t op0, double * op1, vuint64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f64m1)))
-void vsuxseg4ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f64m1_m)))
-void vsuxseg4ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f64m2)))
-void vsuxseg4ei64(double * op0, vuint64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f64m2_m)))
-void vsuxseg4ei64(vbool32_t op0, double * op1, vuint64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f64m1)))
-void vsuxseg5ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f64m1_m)))
-void vsuxseg5ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f64m1)))
-void vsuxseg6ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f64m1_m)))
-void vsuxseg6ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f64m1)))
-void vsuxseg7ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f64m1_m)))
-void vsuxseg7ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f64m1)))
-void vsuxseg8ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f64m1_m)))
-void vsuxseg8ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f64m1)))
-void vsoxseg2ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f64m1_m)))
-void vsoxseg2ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f64m2)))
-void vsoxseg2ei8(double * op0, vuint8mf4_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f64m2_m)))
-void vsoxseg2ei8(vbool32_t op0, double * op1, vuint8mf4_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f64m4)))
-void vsoxseg2ei8(double * op0, vuint8mf2_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f64m4_m)))
-void vsoxseg2ei8(vbool16_t op0, double * op1, vuint8mf2_t op2, vfloat64m4_t op3, vfloat64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f64m1)))
-void vsoxseg3ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f64m1_m)))
-void vsoxseg3ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f64m2)))
-void vsoxseg3ei8(double * op0, vuint8mf4_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f64m2_m)))
-void vsoxseg3ei8(vbool32_t op0, double * op1, vuint8mf4_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f64m1)))
-void vsoxseg4ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f64m1_m)))
-void vsoxseg4ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f64m2)))
-void vsoxseg4ei8(double * op0, vuint8mf4_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f64m2_m)))
-void vsoxseg4ei8(vbool32_t op0, double * op1, vuint8mf4_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f64m1)))
-void vsoxseg5ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f64m1_m)))
-void vsoxseg5ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f64m1)))
-void vsoxseg6ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f64m1_m)))
-void vsoxseg6ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f64m1)))
-void vsoxseg7ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f64m1_m)))
-void vsoxseg7ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f64m1)))
-void vsoxseg8ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f64m1_m)))
-void vsoxseg8ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f64m1)))
-void vsoxseg2ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f64m1_m)))
-void vsoxseg2ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f64m2)))
-void vsoxseg2ei16(double * op0, vuint16mf2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f64m2_m)))
-void vsoxseg2ei16(vbool32_t op0, double * op1, vuint16mf2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f64m4)))
-void vsoxseg2ei16(double * op0, vuint16m1_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f64m4_m)))
-void vsoxseg2ei16(vbool16_t op0, double * op1, vuint16m1_t op2, vfloat64m4_t op3, vfloat64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f64m1)))
-void vsoxseg3ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f64m1_m)))
-void vsoxseg3ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f64m2)))
-void vsoxseg3ei16(double * op0, vuint16mf2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f64m2_m)))
-void vsoxseg3ei16(vbool32_t op0, double * op1, vuint16mf2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f64m1)))
-void vsoxseg4ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f64m1_m)))
-void vsoxseg4ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f64m2)))
-void vsoxseg4ei16(double * op0, vuint16mf2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f64m2_m)))
-void vsoxseg4ei16(vbool32_t op0, double * op1, vuint16mf2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f64m1)))
-void vsoxseg5ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f64m1_m)))
-void vsoxseg5ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f64m1)))
-void vsoxseg6ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f64m1_m)))
-void vsoxseg6ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f64m1)))
-void vsoxseg7ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f64m1_m)))
-void vsoxseg7ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f64m1)))
-void vsoxseg8ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f64m1_m)))
-void vsoxseg8ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f64m1)))
-void vsoxseg2ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f64m1_m)))
-void vsoxseg2ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f64m2)))
-void vsoxseg2ei32(double * op0, vuint32m1_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f64m2_m)))
-void vsoxseg2ei32(vbool32_t op0, double * op1, vuint32m1_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f64m4)))
-void vsoxseg2ei32(double * op0, vuint32m2_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f64m4_m)))
-void vsoxseg2ei32(vbool16_t op0, double * op1, vuint32m2_t op2, vfloat64m4_t op3, vfloat64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f64m1)))
-void vsoxseg3ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f64m1_m)))
-void vsoxseg3ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f64m2)))
-void vsoxseg3ei32(double * op0, vuint32m1_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f64m2_m)))
-void vsoxseg3ei32(vbool32_t op0, double * op1, vuint32m1_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f64m1)))
-void vsoxseg4ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f64m1_m)))
-void vsoxseg4ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f64m2)))
-void vsoxseg4ei32(double * op0, vuint32m1_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f64m2_m)))
-void vsoxseg4ei32(vbool32_t op0, double * op1, vuint32m1_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f64m1)))
-void vsoxseg5ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f64m1_m)))
-void vsoxseg5ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f64m1)))
-void vsoxseg6ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f64m1_m)))
-void vsoxseg6ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f64m1)))
-void vsoxseg7ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f64m1_m)))
-void vsoxseg7ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f64m1)))
-void vsoxseg8ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f64m1_m)))
-void vsoxseg8ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f64m1)))
-void vsoxseg2ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f64m1_m)))
-void vsoxseg2ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f64m2)))
-void vsoxseg2ei64(double * op0, vuint64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f64m2_m)))
-void vsoxseg2ei64(vbool32_t op0, double * op1, vuint64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f64m4)))
-void vsoxseg2ei64(double * op0, vuint64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f64m4_m)))
-void vsoxseg2ei64(vbool16_t op0, double * op1, vuint64m4_t op2, vfloat64m4_t op3, vfloat64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f64m1)))
-void vsoxseg3ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f64m1_m)))
-void vsoxseg3ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f64m2)))
-void vsoxseg3ei64(double * op0, vuint64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f64m2_m)))
-void vsoxseg3ei64(vbool32_t op0, double * op1, vuint64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f64m1)))
-void vsoxseg4ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f64m1_m)))
-void vsoxseg4ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f64m2)))
-void vsoxseg4ei64(double * op0, vuint64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f64m2_m)))
-void vsoxseg4ei64(vbool32_t op0, double * op1, vuint64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f64m1)))
-void vsoxseg5ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f64m1_m)))
-void vsoxseg5ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f64m1)))
-void vsoxseg6ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f64m1_m)))
-void vsoxseg6ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f64m1)))
-void vsoxseg7ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f64m1_m)))
-void vsoxseg7ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f64m1)))
-void vsoxseg8ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f64m1_m)))
-void vsoxseg8ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64_v_f64m1_m)))
-void vlseg2e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vbool64_t op2, vfloat64m1_t op3, vfloat64m1_t op4, const double * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64_v_f64m2_m)))
-void vlseg2e64(vfloat64m2_t * op0, vfloat64m2_t * op1, vbool32_t op2, vfloat64m2_t op3, vfloat64m2_t op4, const double * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64_v_f64m4_m)))
-void vlseg2e64(vfloat64m4_t * op0, vfloat64m4_t * op1, vbool16_t op2, vfloat64m4_t op3, vfloat64m4_t op4, const double * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64_v_f64m1_m)))
-void vlseg3e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vbool64_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, const double * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64_v_f64m2_m)))
-void vlseg3e64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vbool32_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, const double * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64_v_f64m1_m)))
-void vlseg4e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vbool64_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, const double * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64_v_f64m2_m)))
-void vlseg4e64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, vbool32_t op4, vfloat64m2_t op5, vfloat64m2_t op6, vfloat64m2_t op7, vfloat64m2_t op8, const double * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e64_v_f64m1_m)))
-void vlseg5e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vbool64_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, const double * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e64_v_f64m1_m)))
-void vlseg6e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vbool64_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, const double * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e64_v_f64m1_m)))
-void vlseg7e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vbool64_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, const double * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e64_v_f64m1_m)))
-void vlseg8e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, vbool64_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, vfloat64m1_t op15, vfloat64m1_t op16, const double * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64ff_v_f64m1_m)))
-void vlseg2e64ff(vfloat64m1_t * op0, vfloat64m1_t * op1, vbool64_t op2, vfloat64m1_t op3, vfloat64m1_t op4, const double * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64ff_v_f64m2_m)))
-void vlseg2e64ff(vfloat64m2_t * op0, vfloat64m2_t * op1, vbool32_t op2, vfloat64m2_t op3, vfloat64m2_t op4, const double * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64ff_v_f64m4_m)))
-void vlseg2e64ff(vfloat64m4_t * op0, vfloat64m4_t * op1, vbool16_t op2, vfloat64m4_t op3, vfloat64m4_t op4, const double * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64ff_v_f64m1_m)))
-void vlseg3e64ff(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vbool64_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, const double * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64ff_v_f64m2_m)))
-void vlseg3e64ff(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vbool32_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, const double * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64ff_v_f64m1_m)))
-void vlseg4e64ff(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vbool64_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, const double * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64ff_v_f64m2_m)))
-void vlseg4e64ff(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, vbool32_t op4, vfloat64m2_t op5, vfloat64m2_t op6, vfloat64m2_t op7, vfloat64m2_t op8, const double * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e64ff_v_f64m1_m)))
-void vlseg5e64ff(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vbool64_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, const double * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e64ff_v_f64m1_m)))
-void vlseg6e64ff(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vbool64_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, const double * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e64ff_v_f64m1_m)))
-void vlseg7e64ff(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vbool64_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, const double * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e64ff_v_f64m1_m)))
-void vlseg8e64ff(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, vbool64_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, vfloat64m1_t op15, vfloat64m1_t op16, const double * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e64_v_f64m1_m)))
-void vlsseg2e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vbool64_t op2, vfloat64m1_t op3, vfloat64m1_t op4, const double * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e64_v_f64m2_m)))
-void vlsseg2e64(vfloat64m2_t * op0, vfloat64m2_t * op1, vbool32_t op2, vfloat64m2_t op3, vfloat64m2_t op4, const double * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e64_v_f64m4_m)))
-void vlsseg2e64(vfloat64m4_t * op0, vfloat64m4_t * op1, vbool16_t op2, vfloat64m4_t op3, vfloat64m4_t op4, const double * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e64_v_f64m1_m)))
-void vlsseg3e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vbool64_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, const double * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e64_v_f64m2_m)))
-void vlsseg3e64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vbool32_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, const double * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e64_v_f64m1_m)))
-void vlsseg4e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vbool64_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, const double * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e64_v_f64m2_m)))
-void vlsseg4e64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, vbool32_t op4, vfloat64m2_t op5, vfloat64m2_t op6, vfloat64m2_t op7, vfloat64m2_t op8, const double * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e64_v_f64m1_m)))
-void vlsseg5e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vbool64_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, const double * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e64_v_f64m1_m)))
-void vlsseg6e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vbool64_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, const double * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e64_v_f64m1_m)))
-void vlsseg7e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vbool64_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, const double * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e64_v_f64m1_m)))
-void vlsseg8e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, vbool64_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, vfloat64m1_t op15, vfloat64m1_t op16, const double * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f64m1)))
-void vluxseg2ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, const double * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f64m1_m)))
-void vluxseg2ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vbool64_t op2, vfloat64m1_t op3, vfloat64m1_t op4, const double * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f64m2)))
-void vluxseg2ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, const double * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f64m2_m)))
-void vluxseg2ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, vbool32_t op2, vfloat64m2_t op3, vfloat64m2_t op4, const double * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f64m4)))
-void vluxseg2ei8(vfloat64m4_t * op0, vfloat64m4_t * op1, const double * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f64m4_m)))
-void vluxseg2ei8(vfloat64m4_t * op0, vfloat64m4_t * op1, vbool16_t op2, vfloat64m4_t op3, vfloat64m4_t op4, const double * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f64m1)))
-void vluxseg3ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, const double * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f64m1_m)))
-void vluxseg3ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vbool64_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, const double * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f64m2)))
-void vluxseg3ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, const double * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f64m2_m)))
-void vluxseg3ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vbool32_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, const double * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f64m1)))
-void vluxseg4ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, const double * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f64m1_m)))
-void vluxseg4ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vbool64_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, const double * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f64m2)))
-void vluxseg4ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, const double * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f64m2_m)))
-void vluxseg4ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, vbool32_t op4, vfloat64m2_t op5, vfloat64m2_t op6, vfloat64m2_t op7, vfloat64m2_t op8, const double * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f64m1)))
-void vluxseg5ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, const double * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f64m1_m)))
-void vluxseg5ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vbool64_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, const double * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f64m1)))
-void vluxseg6ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, const double * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f64m1_m)))
-void vluxseg6ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vbool64_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, const double * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f64m1)))
-void vluxseg7ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, const double * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f64m1_m)))
-void vluxseg7ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vbool64_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, const double * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f64m1)))
-void vluxseg8ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, const double * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f64m1_m)))
-void vluxseg8ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, vbool64_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, vfloat64m1_t op15, vfloat64m1_t op16, const double * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f64m1)))
-void vluxseg2ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, const double * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f64m1_m)))
-void vluxseg2ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vbool64_t op2, vfloat64m1_t op3, vfloat64m1_t op4, const double * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f64m2)))
-void vluxseg2ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, const double * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f64m2_m)))
-void vluxseg2ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, vbool32_t op2, vfloat64m2_t op3, vfloat64m2_t op4, const double * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f64m4)))
-void vluxseg2ei16(vfloat64m4_t * op0, vfloat64m4_t * op1, const double * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f64m4_m)))
-void vluxseg2ei16(vfloat64m4_t * op0, vfloat64m4_t * op1, vbool16_t op2, vfloat64m4_t op3, vfloat64m4_t op4, const double * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f64m1)))
-void vluxseg3ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, const double * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f64m1_m)))
-void vluxseg3ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vbool64_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, const double * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f64m2)))
-void vluxseg3ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, const double * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f64m2_m)))
-void vluxseg3ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vbool32_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, const double * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f64m1)))
-void vluxseg4ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, const double * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f64m1_m)))
-void vluxseg4ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vbool64_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, const double * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f64m2)))
-void vluxseg4ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, const double * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f64m2_m)))
-void vluxseg4ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, vbool32_t op4, vfloat64m2_t op5, vfloat64m2_t op6, vfloat64m2_t op7, vfloat64m2_t op8, const double * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f64m1)))
-void vluxseg5ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, const double * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f64m1_m)))
-void vluxseg5ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vbool64_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, const double * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f64m1)))
-void vluxseg6ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, const double * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f64m1_m)))
-void vluxseg6ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vbool64_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, const double * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f64m1)))
-void vluxseg7ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, const double * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f64m1_m)))
-void vluxseg7ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vbool64_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, const double * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f64m1)))
-void vluxseg8ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, const double * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f64m1_m)))
-void vluxseg8ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, vbool64_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, vfloat64m1_t op15, vfloat64m1_t op16, const double * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f64m1)))
-void vluxseg2ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, const double * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f64m1_m)))
-void vluxseg2ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vbool64_t op2, vfloat64m1_t op3, vfloat64m1_t op4, const double * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f64m2)))
-void vluxseg2ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, const double * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f64m2_m)))
-void vluxseg2ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, vbool32_t op2, vfloat64m2_t op3, vfloat64m2_t op4, const double * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f64m4)))
-void vluxseg2ei32(vfloat64m4_t * op0, vfloat64m4_t * op1, const double * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f64m4_m)))
-void vluxseg2ei32(vfloat64m4_t * op0, vfloat64m4_t * op1, vbool16_t op2, vfloat64m4_t op3, vfloat64m4_t op4, const double * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f64m1)))
-void vluxseg3ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, const double * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f64m1_m)))
-void vluxseg3ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vbool64_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, const double * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f64m2)))
-void vluxseg3ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, const double * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f64m2_m)))
-void vluxseg3ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vbool32_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, const double * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f64m1)))
-void vluxseg4ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, const double * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f64m1_m)))
-void vluxseg4ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vbool64_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, const double * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f64m2)))
-void vluxseg4ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, const double * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f64m2_m)))
-void vluxseg4ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, vbool32_t op4, vfloat64m2_t op5, vfloat64m2_t op6, vfloat64m2_t op7, vfloat64m2_t op8, const double * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f64m1)))
-void vluxseg5ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, const double * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f64m1_m)))
-void vluxseg5ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vbool64_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, const double * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f64m1)))
-void vluxseg6ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, const double * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f64m1_m)))
-void vluxseg6ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vbool64_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, const double * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f64m1)))
-void vluxseg7ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, const double * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f64m1_m)))
-void vluxseg7ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vbool64_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, const double * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f64m1)))
-void vluxseg8ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, const double * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f64m1_m)))
-void vluxseg8ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, vbool64_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, vfloat64m1_t op15, vfloat64m1_t op16, const double * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f64m1)))
-void vluxseg2ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, const double * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f64m1_m)))
-void vluxseg2ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vbool64_t op2, vfloat64m1_t op3, vfloat64m1_t op4, const double * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f64m2)))
-void vluxseg2ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, const double * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f64m2_m)))
-void vluxseg2ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, vbool32_t op2, vfloat64m2_t op3, vfloat64m2_t op4, const double * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f64m4)))
-void vluxseg2ei64(vfloat64m4_t * op0, vfloat64m4_t * op1, const double * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f64m4_m)))
-void vluxseg2ei64(vfloat64m4_t * op0, vfloat64m4_t * op1, vbool16_t op2, vfloat64m4_t op3, vfloat64m4_t op4, const double * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f64m1)))
-void vluxseg3ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, const double * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f64m1_m)))
-void vluxseg3ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vbool64_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, const double * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f64m2)))
-void vluxseg3ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, const double * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f64m2_m)))
-void vluxseg3ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vbool32_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, const double * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f64m1)))
-void vluxseg4ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, const double * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f64m1_m)))
-void vluxseg4ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vbool64_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, const double * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f64m2)))
-void vluxseg4ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, const double * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f64m2_m)))
-void vluxseg4ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, vbool32_t op4, vfloat64m2_t op5, vfloat64m2_t op6, vfloat64m2_t op7, vfloat64m2_t op8, const double * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f64m1)))
-void vluxseg5ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, const double * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f64m1_m)))
-void vluxseg5ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vbool64_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, const double * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f64m1)))
-void vluxseg6ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, const double * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f64m1_m)))
-void vluxseg6ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vbool64_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, const double * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f64m1)))
-void vluxseg7ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, const double * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f64m1_m)))
-void vluxseg7ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vbool64_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, const double * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f64m1)))
-void vluxseg8ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, const double * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f64m1_m)))
-void vluxseg8ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, vbool64_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, vfloat64m1_t op15, vfloat64m1_t op16, const double * op17, vuint64m1_t op18, size_t op19);
-
-#endif
-
-#if defined(__riscv_zfh) && defined(__riscv_zvlsseg)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f16m1)))
-void vloxseg2ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, const _Float16 * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f16m1_m)))
-void vloxseg2ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vbool16_t op2, vfloat16m1_t op3, vfloat16m1_t op4, const _Float16 * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f16m2)))
-void vloxseg2ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, const _Float16 * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f16m2_m)))
-void vloxseg2ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, vbool8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, const _Float16 * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f16m4)))
-void vloxseg2ei8(vfloat16m4_t * op0, vfloat16m4_t * op1, const _Float16 * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f16m4_m)))
-void vloxseg2ei8(vfloat16m4_t * op0, vfloat16m4_t * op1, vbool4_t op2, vfloat16m4_t op3, vfloat16m4_t op4, const _Float16 * op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f16mf2)))
-void vloxseg2ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, const _Float16 * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f16mf2_m)))
-void vloxseg2ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vbool32_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, const _Float16 * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f16mf4)))
-void vloxseg2ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, const _Float16 * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f16mf4_m)))
-void vloxseg2ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vbool64_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, const _Float16 * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f16m1)))
-void vloxseg3ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, const _Float16 * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f16m1_m)))
-void vloxseg3ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vbool16_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, const _Float16 * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f16m2)))
-void vloxseg3ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, const _Float16 * op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f16m2_m)))
-void vloxseg3ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vbool8_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, const _Float16 * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f16mf2)))
-void vloxseg3ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, const _Float16 * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f16mf2_m)))
-void vloxseg3ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vbool32_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, const _Float16 * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f16mf4)))
-void vloxseg3ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, const _Float16 * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f16mf4_m)))
-void vloxseg3ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vbool64_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, const _Float16 * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f16m1)))
-void vloxseg4ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, const _Float16 * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f16m1_m)))
-void vloxseg4ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vbool16_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, const _Float16 * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f16m2)))
-void vloxseg4ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, const _Float16 * op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f16m2_m)))
-void vloxseg4ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, vbool8_t op4, vfloat16m2_t op5, vfloat16m2_t op6, vfloat16m2_t op7, vfloat16m2_t op8, const _Float16 * op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f16mf2)))
-void vloxseg4ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, const _Float16 * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f16mf2_m)))
-void vloxseg4ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vbool32_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, const _Float16 * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f16mf4)))
-void vloxseg4ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, const _Float16 * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f16mf4_m)))
-void vloxseg4ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vbool64_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, const _Float16 * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f16m1)))
-void vloxseg5ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, const _Float16 * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f16m1_m)))
-void vloxseg5ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vbool16_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, const _Float16 * op11, vuint8mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f16mf2)))
-void vloxseg5ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, const _Float16 * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f16mf2_m)))
-void vloxseg5ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vbool32_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, const _Float16 * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f16mf4)))
-void vloxseg5ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, const _Float16 * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f16mf4_m)))
-void vloxseg5ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vbool64_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, const _Float16 * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f16m1)))
-void vloxseg6ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, const _Float16 * op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f16m1_m)))
-void vloxseg6ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vbool16_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, const _Float16 * op13, vuint8mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f16mf2)))
-void vloxseg6ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, const _Float16 * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f16mf2_m)))
-void vloxseg6ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vbool32_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, const _Float16 * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f16mf4)))
-void vloxseg6ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, const _Float16 * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f16mf4_m)))
-void vloxseg6ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vbool64_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, const _Float16 * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f16m1)))
-void vloxseg7ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, const _Float16 * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f16m1_m)))
-void vloxseg7ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vbool16_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, const _Float16 * op15, vuint8mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f16mf2)))
-void vloxseg7ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, const _Float16 * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f16mf2_m)))
-void vloxseg7ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vbool32_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, const _Float16 * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f16mf4)))
-void vloxseg7ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, const _Float16 * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f16mf4_m)))
-void vloxseg7ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vbool64_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, const _Float16 * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f16m1)))
-void vloxseg8ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, const _Float16 * op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f16m1_m)))
-void vloxseg8ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, vbool16_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, vfloat16m1_t op15, vfloat16m1_t op16, const _Float16 * op17, vuint8mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f16mf2)))
-void vloxseg8ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, const _Float16 * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f16mf2_m)))
-void vloxseg8ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, vbool32_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, vfloat16mf2_t op15, vfloat16mf2_t op16, const _Float16 * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f16mf4)))
-void vloxseg8ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, const _Float16 * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f16mf4_m)))
-void vloxseg8ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, vbool64_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, vfloat16mf4_t op15, vfloat16mf4_t op16, const _Float16 * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f16m1)))
-void vloxseg2ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, const _Float16 * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f16m1_m)))
-void vloxseg2ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vbool16_t op2, vfloat16m1_t op3, vfloat16m1_t op4, const _Float16 * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f16m2)))
-void vloxseg2ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, const _Float16 * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f16m2_m)))
-void vloxseg2ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, vbool8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, const _Float16 * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f16m4)))
-void vloxseg2ei16(vfloat16m4_t * op0, vfloat16m4_t * op1, const _Float16 * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f16m4_m)))
-void vloxseg2ei16(vfloat16m4_t * op0, vfloat16m4_t * op1, vbool4_t op2, vfloat16m4_t op3, vfloat16m4_t op4, const _Float16 * op5, vuint16m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f16mf2)))
-void vloxseg2ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, const _Float16 * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f16mf2_m)))
-void vloxseg2ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vbool32_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, const _Float16 * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f16mf4)))
-void vloxseg2ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, const _Float16 * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f16mf4_m)))
-void vloxseg2ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vbool64_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, const _Float16 * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f16m1)))
-void vloxseg3ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, const _Float16 * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f16m1_m)))
-void vloxseg3ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vbool16_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, const _Float16 * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f16m2)))
-void vloxseg3ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, const _Float16 * op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f16m2_m)))
-void vloxseg3ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vbool8_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, const _Float16 * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f16mf2)))
-void vloxseg3ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, const _Float16 * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f16mf2_m)))
-void vloxseg3ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vbool32_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, const _Float16 * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f16mf4)))
-void vloxseg3ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, const _Float16 * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f16mf4_m)))
-void vloxseg3ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vbool64_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, const _Float16 * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f16m1)))
-void vloxseg4ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, const _Float16 * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f16m1_m)))
-void vloxseg4ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vbool16_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, const _Float16 * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f16m2)))
-void vloxseg4ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, const _Float16 * op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f16m2_m)))
-void vloxseg4ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, vbool8_t op4, vfloat16m2_t op5, vfloat16m2_t op6, vfloat16m2_t op7, vfloat16m2_t op8, const _Float16 * op9, vuint16m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f16mf2)))
-void vloxseg4ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, const _Float16 * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f16mf2_m)))
-void vloxseg4ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vbool32_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, const _Float16 * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f16mf4)))
-void vloxseg4ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, const _Float16 * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f16mf4_m)))
-void vloxseg4ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vbool64_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, const _Float16 * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f16m1)))
-void vloxseg5ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, const _Float16 * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f16m1_m)))
-void vloxseg5ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vbool16_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, const _Float16 * op11, vuint16m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f16mf2)))
-void vloxseg5ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, const _Float16 * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f16mf2_m)))
-void vloxseg5ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vbool32_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, const _Float16 * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f16mf4)))
-void vloxseg5ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, const _Float16 * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f16mf4_m)))
-void vloxseg5ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vbool64_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, const _Float16 * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f16m1)))
-void vloxseg6ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, const _Float16 * op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f16m1_m)))
-void vloxseg6ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vbool16_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, const _Float16 * op13, vuint16m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f16mf2)))
-void vloxseg6ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, const _Float16 * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f16mf2_m)))
-void vloxseg6ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vbool32_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, const _Float16 * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f16mf4)))
-void vloxseg6ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, const _Float16 * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f16mf4_m)))
-void vloxseg6ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vbool64_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, const _Float16 * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f16m1)))
-void vloxseg7ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, const _Float16 * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f16m1_m)))
-void vloxseg7ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vbool16_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, const _Float16 * op15, vuint16m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f16mf2)))
-void vloxseg7ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, const _Float16 * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f16mf2_m)))
-void vloxseg7ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vbool32_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, const _Float16 * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f16mf4)))
-void vloxseg7ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, const _Float16 * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f16mf4_m)))
-void vloxseg7ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vbool64_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, const _Float16 * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f16m1)))
-void vloxseg8ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, const _Float16 * op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f16m1_m)))
-void vloxseg8ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, vbool16_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, vfloat16m1_t op15, vfloat16m1_t op16, const _Float16 * op17, vuint16m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f16mf2)))
-void vloxseg8ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, const _Float16 * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f16mf2_m)))
-void vloxseg8ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, vbool32_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, vfloat16mf2_t op15, vfloat16mf2_t op16, const _Float16 * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f16mf4)))
-void vloxseg8ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, const _Float16 * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f16mf4_m)))
-void vloxseg8ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, vbool64_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, vfloat16mf4_t op15, vfloat16mf4_t op16, const _Float16 * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f16m1)))
-void vloxseg2ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, const _Float16 * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f16m1_m)))
-void vloxseg2ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vbool16_t op2, vfloat16m1_t op3, vfloat16m1_t op4, const _Float16 * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f16m2)))
-void vloxseg2ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, const _Float16 * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f16m2_m)))
-void vloxseg2ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, vbool8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, const _Float16 * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f16m4)))
-void vloxseg2ei32(vfloat16m4_t * op0, vfloat16m4_t * op1, const _Float16 * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f16m4_m)))
-void vloxseg2ei32(vfloat16m4_t * op0, vfloat16m4_t * op1, vbool4_t op2, vfloat16m4_t op3, vfloat16m4_t op4, const _Float16 * op5, vuint32m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f16mf2)))
-void vloxseg2ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, const _Float16 * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f16mf2_m)))
-void vloxseg2ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vbool32_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, const _Float16 * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f16mf4)))
-void vloxseg2ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, const _Float16 * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f16mf4_m)))
-void vloxseg2ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vbool64_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, const _Float16 * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f16m1)))
-void vloxseg3ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, const _Float16 * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f16m1_m)))
-void vloxseg3ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vbool16_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, const _Float16 * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f16m2)))
-void vloxseg3ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, const _Float16 * op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f16m2_m)))
-void vloxseg3ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vbool8_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, const _Float16 * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f16mf2)))
-void vloxseg3ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, const _Float16 * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f16mf2_m)))
-void vloxseg3ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vbool32_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, const _Float16 * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f16mf4)))
-void vloxseg3ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, const _Float16 * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f16mf4_m)))
-void vloxseg3ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vbool64_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, const _Float16 * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f16m1)))
-void vloxseg4ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, const _Float16 * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f16m1_m)))
-void vloxseg4ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vbool16_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, const _Float16 * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f16m2)))
-void vloxseg4ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, const _Float16 * op4, vuint32m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f16m2_m)))
-void vloxseg4ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, vbool8_t op4, vfloat16m2_t op5, vfloat16m2_t op6, vfloat16m2_t op7, vfloat16m2_t op8, const _Float16 * op9, vuint32m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f16mf2)))
-void vloxseg4ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, const _Float16 * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f16mf2_m)))
-void vloxseg4ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vbool32_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, const _Float16 * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f16mf4)))
-void vloxseg4ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, const _Float16 * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f16mf4_m)))
-void vloxseg4ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vbool64_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, const _Float16 * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f16m1)))
-void vloxseg5ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, const _Float16 * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f16m1_m)))
-void vloxseg5ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vbool16_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, const _Float16 * op11, vuint32m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f16mf2)))
-void vloxseg5ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, const _Float16 * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f16mf2_m)))
-void vloxseg5ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vbool32_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, const _Float16 * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f16mf4)))
-void vloxseg5ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, const _Float16 * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f16mf4_m)))
-void vloxseg5ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vbool64_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, const _Float16 * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f16m1)))
-void vloxseg6ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, const _Float16 * op6, vuint32m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f16m1_m)))
-void vloxseg6ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vbool16_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, const _Float16 * op13, vuint32m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f16mf2)))
-void vloxseg6ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, const _Float16 * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f16mf2_m)))
-void vloxseg6ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vbool32_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, const _Float16 * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f16mf4)))
-void vloxseg6ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, const _Float16 * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f16mf4_m)))
-void vloxseg6ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vbool64_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, const _Float16 * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f16m1)))
-void vloxseg7ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, const _Float16 * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f16m1_m)))
-void vloxseg7ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vbool16_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, const _Float16 * op15, vuint32m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f16mf2)))
-void vloxseg7ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, const _Float16 * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f16mf2_m)))
-void vloxseg7ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vbool32_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, const _Float16 * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f16mf4)))
-void vloxseg7ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, const _Float16 * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f16mf4_m)))
-void vloxseg7ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vbool64_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, const _Float16 * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f16m1)))
-void vloxseg8ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, const _Float16 * op8, vuint32m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f16m1_m)))
-void vloxseg8ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, vbool16_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, vfloat16m1_t op15, vfloat16m1_t op16, const _Float16 * op17, vuint32m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f16mf2)))
-void vloxseg8ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, const _Float16 * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f16mf2_m)))
-void vloxseg8ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, vbool32_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, vfloat16mf2_t op15, vfloat16mf2_t op16, const _Float16 * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f16mf4)))
-void vloxseg8ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, const _Float16 * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f16mf4_m)))
-void vloxseg8ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, vbool64_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, vfloat16mf4_t op15, vfloat16mf4_t op16, const _Float16 * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f16m1)))
-void vloxseg2ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, const _Float16 * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f16m1_m)))
-void vloxseg2ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vbool16_t op2, vfloat16m1_t op3, vfloat16m1_t op4, const _Float16 * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f16m2)))
-void vloxseg2ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, const _Float16 * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f16m2_m)))
-void vloxseg2ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, vbool8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, const _Float16 * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f16mf2)))
-void vloxseg2ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, const _Float16 * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f16mf2_m)))
-void vloxseg2ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vbool32_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, const _Float16 * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f16mf4)))
-void vloxseg2ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, const _Float16 * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f16mf4_m)))
-void vloxseg2ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vbool64_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, const _Float16 * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f16m1)))
-void vloxseg3ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, const _Float16 * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f16m1_m)))
-void vloxseg3ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vbool16_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, const _Float16 * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f16m2)))
-void vloxseg3ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, const _Float16 * op3, vuint64m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f16m2_m)))
-void vloxseg3ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vbool8_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, const _Float16 * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f16mf2)))
-void vloxseg3ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, const _Float16 * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f16mf2_m)))
-void vloxseg3ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vbool32_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, const _Float16 * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f16mf4)))
-void vloxseg3ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, const _Float16 * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f16mf4_m)))
-void vloxseg3ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vbool64_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, const _Float16 * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f16m1)))
-void vloxseg4ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, const _Float16 * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f16m1_m)))
-void vloxseg4ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vbool16_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, const _Float16 * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f16m2)))
-void vloxseg4ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, const _Float16 * op4, vuint64m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f16m2_m)))
-void vloxseg4ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, vbool8_t op4, vfloat16m2_t op5, vfloat16m2_t op6, vfloat16m2_t op7, vfloat16m2_t op8, const _Float16 * op9, vuint64m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f16mf2)))
-void vloxseg4ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, const _Float16 * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f16mf2_m)))
-void vloxseg4ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vbool32_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, const _Float16 * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f16mf4)))
-void vloxseg4ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, const _Float16 * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f16mf4_m)))
-void vloxseg4ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vbool64_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, const _Float16 * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f16m1)))
-void vloxseg5ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, const _Float16 * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f16m1_m)))
-void vloxseg5ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vbool16_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, const _Float16 * op11, vuint64m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f16mf2)))
-void vloxseg5ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, const _Float16 * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f16mf2_m)))
-void vloxseg5ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vbool32_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, const _Float16 * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f16mf4)))
-void vloxseg5ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, const _Float16 * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f16mf4_m)))
-void vloxseg5ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vbool64_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, const _Float16 * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f16m1)))
-void vloxseg6ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, const _Float16 * op6, vuint64m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f16m1_m)))
-void vloxseg6ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vbool16_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, const _Float16 * op13, vuint64m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f16mf2)))
-void vloxseg6ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, const _Float16 * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f16mf2_m)))
-void vloxseg6ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vbool32_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, const _Float16 * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f16mf4)))
-void vloxseg6ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, const _Float16 * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f16mf4_m)))
-void vloxseg6ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vbool64_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, const _Float16 * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f16m1)))
-void vloxseg7ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, const _Float16 * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f16m1_m)))
-void vloxseg7ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vbool16_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, const _Float16 * op15, vuint64m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f16mf2)))
-void vloxseg7ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, const _Float16 * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f16mf2_m)))
-void vloxseg7ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vbool32_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, const _Float16 * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f16mf4)))
-void vloxseg7ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, const _Float16 * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f16mf4_m)))
-void vloxseg7ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vbool64_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, const _Float16 * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f16m1)))
-void vloxseg8ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, const _Float16 * op8, vuint64m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f16m1_m)))
-void vloxseg8ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, vbool16_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, vfloat16m1_t op15, vfloat16m1_t op16, const _Float16 * op17, vuint64m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f16mf2)))
-void vloxseg8ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, const _Float16 * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f16mf2_m)))
-void vloxseg8ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, vbool32_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, vfloat16mf2_t op15, vfloat16mf2_t op16, const _Float16 * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f16mf4)))
-void vloxseg8ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, const _Float16 * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f16mf4_m)))
-void vloxseg8ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, vbool64_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, vfloat16mf4_t op15, vfloat16mf4_t op16, const _Float16 * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_f16m1)))
-void vsseg2e16(_Float16 * op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_f16m1_m)))
-void vsseg2e16(vbool16_t op0, _Float16 * op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_f16m2)))
-void vsseg2e16(_Float16 * op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_f16m2_m)))
-void vsseg2e16(vbool8_t op0, _Float16 * op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_f16m4)))
-void vsseg2e16(_Float16 * op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_f16m4_m)))
-void vsseg2e16(vbool4_t op0, _Float16 * op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_f16mf2)))
-void vsseg2e16(_Float16 * op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_f16mf2_m)))
-void vsseg2e16(vbool32_t op0, _Float16 * op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_f16mf4)))
-void vsseg2e16(_Float16 * op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_f16mf4_m)))
-void vsseg2e16(vbool64_t op0, _Float16 * op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_f16m1)))
-void vsseg3e16(_Float16 * op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_f16m1_m)))
-void vsseg3e16(vbool16_t op0, _Float16 * op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_f16m2)))
-void vsseg3e16(_Float16 * op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_f16m2_m)))
-void vsseg3e16(vbool8_t op0, _Float16 * op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_f16mf2)))
-void vsseg3e16(_Float16 * op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_f16mf2_m)))
-void vsseg3e16(vbool32_t op0, _Float16 * op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_f16mf4)))
-void vsseg3e16(_Float16 * op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_f16mf4_m)))
-void vsseg3e16(vbool64_t op0, _Float16 * op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_f16m1)))
-void vsseg4e16(_Float16 * op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_f16m1_m)))
-void vsseg4e16(vbool16_t op0, _Float16 * op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_f16m2)))
-void vsseg4e16(_Float16 * op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_f16m2_m)))
-void vsseg4e16(vbool8_t op0, _Float16 * op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_f16mf2)))
-void vsseg4e16(_Float16 * op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_f16mf2_m)))
-void vsseg4e16(vbool32_t op0, _Float16 * op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_f16mf4)))
-void vsseg4e16(_Float16 * op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_f16mf4_m)))
-void vsseg4e16(vbool64_t op0, _Float16 * op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_f16m1)))
-void vsseg5e16(_Float16 * op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_f16m1_m)))
-void vsseg5e16(vbool16_t op0, _Float16 * op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_f16mf2)))
-void vsseg5e16(_Float16 * op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_f16mf2_m)))
-void vsseg5e16(vbool32_t op0, _Float16 * op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_f16mf4)))
-void vsseg5e16(_Float16 * op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_f16mf4_m)))
-void vsseg5e16(vbool64_t op0, _Float16 * op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_f16m1)))
-void vsseg6e16(_Float16 * op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_f16m1_m)))
-void vsseg6e16(vbool16_t op0, _Float16 * op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_f16mf2)))
-void vsseg6e16(_Float16 * op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_f16mf2_m)))
-void vsseg6e16(vbool32_t op0, _Float16 * op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_f16mf4)))
-void vsseg6e16(_Float16 * op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_f16mf4_m)))
-void vsseg6e16(vbool64_t op0, _Float16 * op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_f16m1)))
-void vsseg7e16(_Float16 * op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_f16m1_m)))
-void vsseg7e16(vbool16_t op0, _Float16 * op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_f16mf2)))
-void vsseg7e16(_Float16 * op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_f16mf2_m)))
-void vsseg7e16(vbool32_t op0, _Float16 * op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_f16mf4)))
-void vsseg7e16(_Float16 * op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_f16mf4_m)))
-void vsseg7e16(vbool64_t op0, _Float16 * op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_f16m1)))
-void vsseg8e16(_Float16 * op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_f16m1_m)))
-void vsseg8e16(vbool16_t op0, _Float16 * op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_f16mf2)))
-void vsseg8e16(_Float16 * op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_f16mf2_m)))
-void vsseg8e16(vbool32_t op0, _Float16 * op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_f16mf4)))
-void vsseg8e16(_Float16 * op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_f16mf4_m)))
-void vsseg8e16(vbool64_t op0, _Float16 * op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_f16m1)))
-void vssseg2e16(_Float16 * op0, ptrdiff_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_f16m1_m)))
-void vssseg2e16(vbool16_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_f16m2)))
-void vssseg2e16(_Float16 * op0, ptrdiff_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_f16m2_m)))
-void vssseg2e16(vbool8_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_f16m4)))
-void vssseg2e16(_Float16 * op0, ptrdiff_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_f16m4_m)))
-void vssseg2e16(vbool4_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m4_t op3, vfloat16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_f16mf2)))
-void vssseg2e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_f16mf2_m)))
-void vssseg2e16(vbool32_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_f16mf4)))
-void vssseg2e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_f16mf4_m)))
-void vssseg2e16(vbool64_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_f16m1)))
-void vssseg3e16(_Float16 * op0, ptrdiff_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_f16m1_m)))
-void vssseg3e16(vbool16_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_f16m2)))
-void vssseg3e16(_Float16 * op0, ptrdiff_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_f16m2_m)))
-void vssseg3e16(vbool8_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_f16mf2)))
-void vssseg3e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_f16mf2_m)))
-void vssseg3e16(vbool32_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_f16mf4)))
-void vssseg3e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_f16mf4_m)))
-void vssseg3e16(vbool64_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_f16m1)))
-void vssseg4e16(_Float16 * op0, ptrdiff_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_f16m1_m)))
-void vssseg4e16(vbool16_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_f16m2)))
-void vssseg4e16(_Float16 * op0, ptrdiff_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_f16m2_m)))
-void vssseg4e16(vbool8_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_f16mf2)))
-void vssseg4e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_f16mf2_m)))
-void vssseg4e16(vbool32_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_f16mf4)))
-void vssseg4e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_f16mf4_m)))
-void vssseg4e16(vbool64_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_f16m1)))
-void vssseg5e16(_Float16 * op0, ptrdiff_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_f16m1_m)))
-void vssseg5e16(vbool16_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_f16mf2)))
-void vssseg5e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_f16mf2_m)))
-void vssseg5e16(vbool32_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_f16mf4)))
-void vssseg5e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_f16mf4_m)))
-void vssseg5e16(vbool64_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_f16m1)))
-void vssseg6e16(_Float16 * op0, ptrdiff_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_f16m1_m)))
-void vssseg6e16(vbool16_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_f16mf2)))
-void vssseg6e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_f16mf2_m)))
-void vssseg6e16(vbool32_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_f16mf4)))
-void vssseg6e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_f16mf4_m)))
-void vssseg6e16(vbool64_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_f16m1)))
-void vssseg7e16(_Float16 * op0, ptrdiff_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_f16m1_m)))
-void vssseg7e16(vbool16_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_f16mf2)))
-void vssseg7e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_f16mf2_m)))
-void vssseg7e16(vbool32_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_f16mf4)))
-void vssseg7e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_f16mf4_m)))
-void vssseg7e16(vbool64_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_f16m1)))
-void vssseg8e16(_Float16 * op0, ptrdiff_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_f16m1_m)))
-void vssseg8e16(vbool16_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_f16mf2)))
-void vssseg8e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_f16mf2_m)))
-void vssseg8e16(vbool32_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_f16mf4)))
-void vssseg8e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_f16mf4_m)))
-void vssseg8e16(vbool64_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f16m1)))
-void vsuxseg2ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f16m1_m)))
-void vsuxseg2ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f16m2)))
-void vsuxseg2ei8(_Float16 * op0, vuint8m1_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f16m2_m)))
-void vsuxseg2ei8(vbool8_t op0, _Float16 * op1, vuint8m1_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f16m4)))
-void vsuxseg2ei8(_Float16 * op0, vuint8m2_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f16m4_m)))
-void vsuxseg2ei8(vbool4_t op0, _Float16 * op1, vuint8m2_t op2, vfloat16m4_t op3, vfloat16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f16mf2)))
-void vsuxseg2ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f16mf2_m)))
-void vsuxseg2ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f16mf4)))
-void vsuxseg2ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f16mf4_m)))
-void vsuxseg2ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f16m1)))
-void vsuxseg3ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f16m1_m)))
-void vsuxseg3ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f16m2)))
-void vsuxseg3ei8(_Float16 * op0, vuint8m1_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f16m2_m)))
-void vsuxseg3ei8(vbool8_t op0, _Float16 * op1, vuint8m1_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f16mf2)))
-void vsuxseg3ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f16mf2_m)))
-void vsuxseg3ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f16mf4)))
-void vsuxseg3ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f16mf4_m)))
-void vsuxseg3ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f16m1)))
-void vsuxseg4ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f16m1_m)))
-void vsuxseg4ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f16m2)))
-void vsuxseg4ei8(_Float16 * op0, vuint8m1_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f16m2_m)))
-void vsuxseg4ei8(vbool8_t op0, _Float16 * op1, vuint8m1_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f16mf2)))
-void vsuxseg4ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f16mf2_m)))
-void vsuxseg4ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f16mf4)))
-void vsuxseg4ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f16mf4_m)))
-void vsuxseg4ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f16m1)))
-void vsuxseg5ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f16m1_m)))
-void vsuxseg5ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f16mf2)))
-void vsuxseg5ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f16mf2_m)))
-void vsuxseg5ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f16mf4)))
-void vsuxseg5ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f16mf4_m)))
-void vsuxseg5ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f16m1)))
-void vsuxseg6ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f16m1_m)))
-void vsuxseg6ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f16mf2)))
-void vsuxseg6ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f16mf2_m)))
-void vsuxseg6ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f16mf4)))
-void vsuxseg6ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f16mf4_m)))
-void vsuxseg6ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f16m1)))
-void vsuxseg7ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f16m1_m)))
-void vsuxseg7ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f16mf2)))
-void vsuxseg7ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f16mf2_m)))
-void vsuxseg7ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f16mf4)))
-void vsuxseg7ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f16mf4_m)))
-void vsuxseg7ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f16m1)))
-void vsuxseg8ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f16m1_m)))
-void vsuxseg8ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f16mf2)))
-void vsuxseg8ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f16mf2_m)))
-void vsuxseg8ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f16mf4)))
-void vsuxseg8ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f16mf4_m)))
-void vsuxseg8ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f16m1)))
-void vsuxseg2ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f16m1_m)))
-void vsuxseg2ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f16m2)))
-void vsuxseg2ei16(_Float16 * op0, vuint16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f16m2_m)))
-void vsuxseg2ei16(vbool8_t op0, _Float16 * op1, vuint16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f16m4)))
-void vsuxseg2ei16(_Float16 * op0, vuint16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f16m4_m)))
-void vsuxseg2ei16(vbool4_t op0, _Float16 * op1, vuint16m4_t op2, vfloat16m4_t op3, vfloat16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f16mf2)))
-void vsuxseg2ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f16mf2_m)))
-void vsuxseg2ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f16mf4)))
-void vsuxseg2ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f16mf4_m)))
-void vsuxseg2ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f16m1)))
-void vsuxseg3ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f16m1_m)))
-void vsuxseg3ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f16m2)))
-void vsuxseg3ei16(_Float16 * op0, vuint16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f16m2_m)))
-void vsuxseg3ei16(vbool8_t op0, _Float16 * op1, vuint16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f16mf2)))
-void vsuxseg3ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f16mf2_m)))
-void vsuxseg3ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f16mf4)))
-void vsuxseg3ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f16mf4_m)))
-void vsuxseg3ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f16m1)))
-void vsuxseg4ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f16m1_m)))
-void vsuxseg4ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f16m2)))
-void vsuxseg4ei16(_Float16 * op0, vuint16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f16m2_m)))
-void vsuxseg4ei16(vbool8_t op0, _Float16 * op1, vuint16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f16mf2)))
-void vsuxseg4ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f16mf2_m)))
-void vsuxseg4ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f16mf4)))
-void vsuxseg4ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f16mf4_m)))
-void vsuxseg4ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f16m1)))
-void vsuxseg5ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f16m1_m)))
-void vsuxseg5ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f16mf2)))
-void vsuxseg5ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f16mf2_m)))
-void vsuxseg5ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f16mf4)))
-void vsuxseg5ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f16mf4_m)))
-void vsuxseg5ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f16m1)))
-void vsuxseg6ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f16m1_m)))
-void vsuxseg6ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f16mf2)))
-void vsuxseg6ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f16mf2_m)))
-void vsuxseg6ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f16mf4)))
-void vsuxseg6ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f16mf4_m)))
-void vsuxseg6ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f16m1)))
-void vsuxseg7ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f16m1_m)))
-void vsuxseg7ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f16mf2)))
-void vsuxseg7ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f16mf2_m)))
-void vsuxseg7ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f16mf4)))
-void vsuxseg7ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f16mf4_m)))
-void vsuxseg7ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f16m1)))
-void vsuxseg8ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f16m1_m)))
-void vsuxseg8ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f16mf2)))
-void vsuxseg8ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f16mf2_m)))
-void vsuxseg8ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f16mf4)))
-void vsuxseg8ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f16mf4_m)))
-void vsuxseg8ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f16m1)))
-void vsuxseg2ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f16m1_m)))
-void vsuxseg2ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f16m2)))
-void vsuxseg2ei32(_Float16 * op0, vuint32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f16m2_m)))
-void vsuxseg2ei32(vbool8_t op0, _Float16 * op1, vuint32m4_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f16m4)))
-void vsuxseg2ei32(_Float16 * op0, vuint32m8_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f16m4_m)))
-void vsuxseg2ei32(vbool4_t op0, _Float16 * op1, vuint32m8_t op2, vfloat16m4_t op3, vfloat16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f16mf2)))
-void vsuxseg2ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f16mf2_m)))
-void vsuxseg2ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f16mf4)))
-void vsuxseg2ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f16mf4_m)))
-void vsuxseg2ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f16m1)))
-void vsuxseg3ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f16m1_m)))
-void vsuxseg3ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f16m2)))
-void vsuxseg3ei32(_Float16 * op0, vuint32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f16m2_m)))
-void vsuxseg3ei32(vbool8_t op0, _Float16 * op1, vuint32m4_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f16mf2)))
-void vsuxseg3ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f16mf2_m)))
-void vsuxseg3ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f16mf4)))
-void vsuxseg3ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f16mf4_m)))
-void vsuxseg3ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f16m1)))
-void vsuxseg4ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f16m1_m)))
-void vsuxseg4ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f16m2)))
-void vsuxseg4ei32(_Float16 * op0, vuint32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f16m2_m)))
-void vsuxseg4ei32(vbool8_t op0, _Float16 * op1, vuint32m4_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f16mf2)))
-void vsuxseg4ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f16mf2_m)))
-void vsuxseg4ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f16mf4)))
-void vsuxseg4ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f16mf4_m)))
-void vsuxseg4ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f16m1)))
-void vsuxseg5ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f16m1_m)))
-void vsuxseg5ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f16mf2)))
-void vsuxseg5ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f16mf2_m)))
-void vsuxseg5ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f16mf4)))
-void vsuxseg5ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f16mf4_m)))
-void vsuxseg5ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f16m1)))
-void vsuxseg6ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f16m1_m)))
-void vsuxseg6ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f16mf2)))
-void vsuxseg6ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f16mf2_m)))
-void vsuxseg6ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f16mf4)))
-void vsuxseg6ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f16mf4_m)))
-void vsuxseg6ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f16m1)))
-void vsuxseg7ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f16m1_m)))
-void vsuxseg7ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f16mf2)))
-void vsuxseg7ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f16mf2_m)))
-void vsuxseg7ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f16mf4)))
-void vsuxseg7ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f16mf4_m)))
-void vsuxseg7ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f16m1)))
-void vsuxseg8ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f16m1_m)))
-void vsuxseg8ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f16mf2)))
-void vsuxseg8ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f16mf2_m)))
-void vsuxseg8ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f16mf4)))
-void vsuxseg8ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f16mf4_m)))
-void vsuxseg8ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f16m1)))
-void vsuxseg2ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f16m1_m)))
-void vsuxseg2ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f16m2)))
-void vsuxseg2ei64(_Float16 * op0, vuint64m8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f16m2_m)))
-void vsuxseg2ei64(vbool8_t op0, _Float16 * op1, vuint64m8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f16mf2)))
-void vsuxseg2ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f16mf2_m)))
-void vsuxseg2ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f16mf4)))
-void vsuxseg2ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f16mf4_m)))
-void vsuxseg2ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f16m1)))
-void vsuxseg3ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f16m1_m)))
-void vsuxseg3ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f16m2)))
-void vsuxseg3ei64(_Float16 * op0, vuint64m8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f16m2_m)))
-void vsuxseg3ei64(vbool8_t op0, _Float16 * op1, vuint64m8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f16mf2)))
-void vsuxseg3ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f16mf2_m)))
-void vsuxseg3ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f16mf4)))
-void vsuxseg3ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f16mf4_m)))
-void vsuxseg3ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f16m1)))
-void vsuxseg4ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f16m1_m)))
-void vsuxseg4ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f16m2)))
-void vsuxseg4ei64(_Float16 * op0, vuint64m8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f16m2_m)))
-void vsuxseg4ei64(vbool8_t op0, _Float16 * op1, vuint64m8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f16mf2)))
-void vsuxseg4ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f16mf2_m)))
-void vsuxseg4ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f16mf4)))
-void vsuxseg4ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f16mf4_m)))
-void vsuxseg4ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f16m1)))
-void vsuxseg5ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f16m1_m)))
-void vsuxseg5ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f16mf2)))
-void vsuxseg5ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f16mf2_m)))
-void vsuxseg5ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f16mf4)))
-void vsuxseg5ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f16mf4_m)))
-void vsuxseg5ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f16m1)))
-void vsuxseg6ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f16m1_m)))
-void vsuxseg6ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f16mf2)))
-void vsuxseg6ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f16mf2_m)))
-void vsuxseg6ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f16mf4)))
-void vsuxseg6ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f16mf4_m)))
-void vsuxseg6ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f16m1)))
-void vsuxseg7ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f16m1_m)))
-void vsuxseg7ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f16mf2)))
-void vsuxseg7ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f16mf2_m)))
-void vsuxseg7ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f16mf4)))
-void vsuxseg7ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f16mf4_m)))
-void vsuxseg7ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f16m1)))
-void vsuxseg8ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f16m1_m)))
-void vsuxseg8ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f16mf2)))
-void vsuxseg8ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f16mf2_m)))
-void vsuxseg8ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f16mf4)))
-void vsuxseg8ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f16mf4_m)))
-void vsuxseg8ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f16m1)))
-void vsoxseg2ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f16m1_m)))
-void vsoxseg2ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f16m2)))
-void vsoxseg2ei8(_Float16 * op0, vuint8m1_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f16m2_m)))
-void vsoxseg2ei8(vbool8_t op0, _Float16 * op1, vuint8m1_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f16m4)))
-void vsoxseg2ei8(_Float16 * op0, vuint8m2_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f16m4_m)))
-void vsoxseg2ei8(vbool4_t op0, _Float16 * op1, vuint8m2_t op2, vfloat16m4_t op3, vfloat16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f16mf2)))
-void vsoxseg2ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f16mf2_m)))
-void vsoxseg2ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f16mf4)))
-void vsoxseg2ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f16mf4_m)))
-void vsoxseg2ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f16m1)))
-void vsoxseg3ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f16m1_m)))
-void vsoxseg3ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f16m2)))
-void vsoxseg3ei8(_Float16 * op0, vuint8m1_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f16m2_m)))
-void vsoxseg3ei8(vbool8_t op0, _Float16 * op1, vuint8m1_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f16mf2)))
-void vsoxseg3ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f16mf2_m)))
-void vsoxseg3ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f16mf4)))
-void vsoxseg3ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f16mf4_m)))
-void vsoxseg3ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f16m1)))
-void vsoxseg4ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f16m1_m)))
-void vsoxseg4ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f16m2)))
-void vsoxseg4ei8(_Float16 * op0, vuint8m1_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f16m2_m)))
-void vsoxseg4ei8(vbool8_t op0, _Float16 * op1, vuint8m1_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f16mf2)))
-void vsoxseg4ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f16mf2_m)))
-void vsoxseg4ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f16mf4)))
-void vsoxseg4ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f16mf4_m)))
-void vsoxseg4ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f16m1)))
-void vsoxseg5ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f16m1_m)))
-void vsoxseg5ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f16mf2)))
-void vsoxseg5ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f16mf2_m)))
-void vsoxseg5ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f16mf4)))
-void vsoxseg5ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f16mf4_m)))
-void vsoxseg5ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f16m1)))
-void vsoxseg6ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f16m1_m)))
-void vsoxseg6ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f16mf2)))
-void vsoxseg6ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f16mf2_m)))
-void vsoxseg6ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f16mf4)))
-void vsoxseg6ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f16mf4_m)))
-void vsoxseg6ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f16m1)))
-void vsoxseg7ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f16m1_m)))
-void vsoxseg7ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f16mf2)))
-void vsoxseg7ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f16mf2_m)))
-void vsoxseg7ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f16mf4)))
-void vsoxseg7ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f16mf4_m)))
-void vsoxseg7ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f16m1)))
-void vsoxseg8ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f16m1_m)))
-void vsoxseg8ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f16mf2)))
-void vsoxseg8ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f16mf2_m)))
-void vsoxseg8ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f16mf4)))
-void vsoxseg8ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f16mf4_m)))
-void vsoxseg8ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f16m1)))
-void vsoxseg2ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f16m1_m)))
-void vsoxseg2ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f16m2)))
-void vsoxseg2ei16(_Float16 * op0, vuint16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f16m2_m)))
-void vsoxseg2ei16(vbool8_t op0, _Float16 * op1, vuint16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f16m4)))
-void vsoxseg2ei16(_Float16 * op0, vuint16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f16m4_m)))
-void vsoxseg2ei16(vbool4_t op0, _Float16 * op1, vuint16m4_t op2, vfloat16m4_t op3, vfloat16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f16mf2)))
-void vsoxseg2ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f16mf2_m)))
-void vsoxseg2ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f16mf4)))
-void vsoxseg2ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f16mf4_m)))
-void vsoxseg2ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f16m1)))
-void vsoxseg3ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f16m1_m)))
-void vsoxseg3ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f16m2)))
-void vsoxseg3ei16(_Float16 * op0, vuint16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f16m2_m)))
-void vsoxseg3ei16(vbool8_t op0, _Float16 * op1, vuint16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f16mf2)))
-void vsoxseg3ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f16mf2_m)))
-void vsoxseg3ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f16mf4)))
-void vsoxseg3ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f16mf4_m)))
-void vsoxseg3ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f16m1)))
-void vsoxseg4ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f16m1_m)))
-void vsoxseg4ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f16m2)))
-void vsoxseg4ei16(_Float16 * op0, vuint16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f16m2_m)))
-void vsoxseg4ei16(vbool8_t op0, _Float16 * op1, vuint16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f16mf2)))
-void vsoxseg4ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f16mf2_m)))
-void vsoxseg4ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f16mf4)))
-void vsoxseg4ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f16mf4_m)))
-void vsoxseg4ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f16m1)))
-void vsoxseg5ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f16m1_m)))
-void vsoxseg5ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f16mf2)))
-void vsoxseg5ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f16mf2_m)))
-void vsoxseg5ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f16mf4)))
-void vsoxseg5ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f16mf4_m)))
-void vsoxseg5ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f16m1)))
-void vsoxseg6ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f16m1_m)))
-void vsoxseg6ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f16mf2)))
-void vsoxseg6ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f16mf2_m)))
-void vsoxseg6ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f16mf4)))
-void vsoxseg6ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f16mf4_m)))
-void vsoxseg6ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f16m1)))
-void vsoxseg7ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f16m1_m)))
-void vsoxseg7ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f16mf2)))
-void vsoxseg7ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f16mf2_m)))
-void vsoxseg7ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f16mf4)))
-void vsoxseg7ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f16mf4_m)))
-void vsoxseg7ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f16m1)))
-void vsoxseg8ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f16m1_m)))
-void vsoxseg8ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f16mf2)))
-void vsoxseg8ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f16mf2_m)))
-void vsoxseg8ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f16mf4)))
-void vsoxseg8ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f16mf4_m)))
-void vsoxseg8ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f16m1)))
-void vsoxseg2ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f16m1_m)))
-void vsoxseg2ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f16m2)))
-void vsoxseg2ei32(_Float16 * op0, vuint32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f16m2_m)))
-void vsoxseg2ei32(vbool8_t op0, _Float16 * op1, vuint32m4_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f16m4)))
-void vsoxseg2ei32(_Float16 * op0, vuint32m8_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f16m4_m)))
-void vsoxseg2ei32(vbool4_t op0, _Float16 * op1, vuint32m8_t op2, vfloat16m4_t op3, vfloat16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f16mf2)))
-void vsoxseg2ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f16mf2_m)))
-void vsoxseg2ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f16mf4)))
-void vsoxseg2ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f16mf4_m)))
-void vsoxseg2ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f16m1)))
-void vsoxseg3ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f16m1_m)))
-void vsoxseg3ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f16m2)))
-void vsoxseg3ei32(_Float16 * op0, vuint32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f16m2_m)))
-void vsoxseg3ei32(vbool8_t op0, _Float16 * op1, vuint32m4_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f16mf2)))
-void vsoxseg3ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f16mf2_m)))
-void vsoxseg3ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f16mf4)))
-void vsoxseg3ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f16mf4_m)))
-void vsoxseg3ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f16m1)))
-void vsoxseg4ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f16m1_m)))
-void vsoxseg4ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f16m2)))
-void vsoxseg4ei32(_Float16 * op0, vuint32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f16m2_m)))
-void vsoxseg4ei32(vbool8_t op0, _Float16 * op1, vuint32m4_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f16mf2)))
-void vsoxseg4ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f16mf2_m)))
-void vsoxseg4ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f16mf4)))
-void vsoxseg4ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f16mf4_m)))
-void vsoxseg4ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f16m1)))
-void vsoxseg5ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f16m1_m)))
-void vsoxseg5ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f16mf2)))
-void vsoxseg5ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f16mf2_m)))
-void vsoxseg5ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f16mf4)))
-void vsoxseg5ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f16mf4_m)))
-void vsoxseg5ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f16m1)))
-void vsoxseg6ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f16m1_m)))
-void vsoxseg6ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f16mf2)))
-void vsoxseg6ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f16mf2_m)))
-void vsoxseg6ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f16mf4)))
-void vsoxseg6ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f16mf4_m)))
-void vsoxseg6ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f16m1)))
-void vsoxseg7ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f16m1_m)))
-void vsoxseg7ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f16mf2)))
-void vsoxseg7ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f16mf2_m)))
-void vsoxseg7ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f16mf4)))
-void vsoxseg7ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f16mf4_m)))
-void vsoxseg7ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f16m1)))
-void vsoxseg8ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f16m1_m)))
-void vsoxseg8ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f16mf2)))
-void vsoxseg8ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f16mf2_m)))
-void vsoxseg8ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f16mf4)))
-void vsoxseg8ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f16mf4_m)))
-void vsoxseg8ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f16m1)))
-void vsoxseg2ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f16m1_m)))
-void vsoxseg2ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f16m2)))
-void vsoxseg2ei64(_Float16 * op0, vuint64m8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f16m2_m)))
-void vsoxseg2ei64(vbool8_t op0, _Float16 * op1, vuint64m8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f16mf2)))
-void vsoxseg2ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f16mf2_m)))
-void vsoxseg2ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f16mf4)))
-void vsoxseg2ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f16mf4_m)))
-void vsoxseg2ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f16m1)))
-void vsoxseg3ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f16m1_m)))
-void vsoxseg3ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f16m2)))
-void vsoxseg3ei64(_Float16 * op0, vuint64m8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f16m2_m)))
-void vsoxseg3ei64(vbool8_t op0, _Float16 * op1, vuint64m8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f16mf2)))
-void vsoxseg3ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f16mf2_m)))
-void vsoxseg3ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f16mf4)))
-void vsoxseg3ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f16mf4_m)))
-void vsoxseg3ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f16m1)))
-void vsoxseg4ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f16m1_m)))
-void vsoxseg4ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f16m2)))
-void vsoxseg4ei64(_Float16 * op0, vuint64m8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f16m2_m)))
-void vsoxseg4ei64(vbool8_t op0, _Float16 * op1, vuint64m8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f16mf2)))
-void vsoxseg4ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f16mf2_m)))
-void vsoxseg4ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f16mf4)))
-void vsoxseg4ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f16mf4_m)))
-void vsoxseg4ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f16m1)))
-void vsoxseg5ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f16m1_m)))
-void vsoxseg5ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f16mf2)))
-void vsoxseg5ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f16mf2_m)))
-void vsoxseg5ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f16mf4)))
-void vsoxseg5ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f16mf4_m)))
-void vsoxseg5ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f16m1)))
-void vsoxseg6ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f16m1_m)))
-void vsoxseg6ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f16mf2)))
-void vsoxseg6ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f16mf2_m)))
-void vsoxseg6ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f16mf4)))
-void vsoxseg6ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f16mf4_m)))
-void vsoxseg6ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f16m1)))
-void vsoxseg7ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f16m1_m)))
-void vsoxseg7ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f16mf2)))
-void vsoxseg7ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f16mf2_m)))
-void vsoxseg7ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f16mf4)))
-void vsoxseg7ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f16mf4_m)))
-void vsoxseg7ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f16m1)))
-void vsoxseg8ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f16m1_m)))
-void vsoxseg8ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f16mf2)))
-void vsoxseg8ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f16mf2_m)))
-void vsoxseg8ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f16mf4)))
-void vsoxseg8ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f16mf4_m)))
-void vsoxseg8ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_f16m1_m)))
-void vlseg2e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vbool16_t op2, vfloat16m1_t op3, vfloat16m1_t op4, const _Float16 * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_f16m2_m)))
-void vlseg2e16(vfloat16m2_t * op0, vfloat16m2_t * op1, vbool8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, const _Float16 * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_f16m4_m)))
-void vlseg2e16(vfloat16m4_t * op0, vfloat16m4_t * op1, vbool4_t op2, vfloat16m4_t op3, vfloat16m4_t op4, const _Float16 * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_f16mf2_m)))
-void vlseg2e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vbool32_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, const _Float16 * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_f16mf4_m)))
-void vlseg2e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vbool64_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, const _Float16 * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_f16m1_m)))
-void vlseg3e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vbool16_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, const _Float16 * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_f16m2_m)))
-void vlseg3e16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vbool8_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, const _Float16 * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_f16mf2_m)))
-void vlseg3e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vbool32_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, const _Float16 * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_f16mf4_m)))
-void vlseg3e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vbool64_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, const _Float16 * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_f16m1_m)))
-void vlseg4e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vbool16_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, const _Float16 * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_f16m2_m)))
-void vlseg4e16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, vbool8_t op4, vfloat16m2_t op5, vfloat16m2_t op6, vfloat16m2_t op7, vfloat16m2_t op8, const _Float16 * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_f16mf2_m)))
-void vlseg4e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vbool32_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, const _Float16 * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_f16mf4_m)))
-void vlseg4e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vbool64_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, const _Float16 * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16_v_f16m1_m)))
-void vlseg5e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vbool16_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, const _Float16 * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16_v_f16mf2_m)))
-void vlseg5e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vbool32_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, const _Float16 * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16_v_f16mf4_m)))
-void vlseg5e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vbool64_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, const _Float16 * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16_v_f16m1_m)))
-void vlseg6e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vbool16_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, const _Float16 * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16_v_f16mf2_m)))
-void vlseg6e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vbool32_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, const _Float16 * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16_v_f16mf4_m)))
-void vlseg6e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vbool64_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, const _Float16 * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16_v_f16m1_m)))
-void vlseg7e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vbool16_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, const _Float16 * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16_v_f16mf2_m)))
-void vlseg7e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vbool32_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, const _Float16 * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16_v_f16mf4_m)))
-void vlseg7e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vbool64_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, const _Float16 * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16_v_f16m1_m)))
-void vlseg8e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, vbool16_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, vfloat16m1_t op15, vfloat16m1_t op16, const _Float16 * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16_v_f16mf2_m)))
-void vlseg8e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, vbool32_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, vfloat16mf2_t op15, vfloat16mf2_t op16, const _Float16 * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16_v_f16mf4_m)))
-void vlseg8e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, vbool64_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, vfloat16mf4_t op15, vfloat16mf4_t op16, const _Float16 * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_f16m1_m)))
-void vlseg2e16ff(vfloat16m1_t * op0, vfloat16m1_t * op1, vbool16_t op2, vfloat16m1_t op3, vfloat16m1_t op4, const _Float16 * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_f16m2_m)))
-void vlseg2e16ff(vfloat16m2_t * op0, vfloat16m2_t * op1, vbool8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, const _Float16 * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_f16m4_m)))
-void vlseg2e16ff(vfloat16m4_t * op0, vfloat16m4_t * op1, vbool4_t op2, vfloat16m4_t op3, vfloat16m4_t op4, const _Float16 * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_f16mf2_m)))
-void vlseg2e16ff(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vbool32_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, const _Float16 * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_f16mf4_m)))
-void vlseg2e16ff(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vbool64_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, const _Float16 * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_f16m1_m)))
-void vlseg3e16ff(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vbool16_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, const _Float16 * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_f16m2_m)))
-void vlseg3e16ff(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vbool8_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, const _Float16 * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_f16mf2_m)))
-void vlseg3e16ff(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vbool32_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, const _Float16 * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_f16mf4_m)))
-void vlseg3e16ff(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vbool64_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, const _Float16 * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_f16m1_m)))
-void vlseg4e16ff(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vbool16_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, const _Float16 * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_f16m2_m)))
-void vlseg4e16ff(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, vbool8_t op4, vfloat16m2_t op5, vfloat16m2_t op6, vfloat16m2_t op7, vfloat16m2_t op8, const _Float16 * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_f16mf2_m)))
-void vlseg4e16ff(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vbool32_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, const _Float16 * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_f16mf4_m)))
-void vlseg4e16ff(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vbool64_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, const _Float16 * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16ff_v_f16m1_m)))
-void vlseg5e16ff(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vbool16_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, const _Float16 * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16ff_v_f16mf2_m)))
-void vlseg5e16ff(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vbool32_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, const _Float16 * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16ff_v_f16mf4_m)))
-void vlseg5e16ff(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vbool64_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, const _Float16 * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16ff_v_f16m1_m)))
-void vlseg6e16ff(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vbool16_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, const _Float16 * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16ff_v_f16mf2_m)))
-void vlseg6e16ff(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vbool32_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, const _Float16 * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16ff_v_f16mf4_m)))
-void vlseg6e16ff(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vbool64_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, const _Float16 * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16ff_v_f16m1_m)))
-void vlseg7e16ff(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vbool16_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, const _Float16 * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16ff_v_f16mf2_m)))
-void vlseg7e16ff(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vbool32_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, const _Float16 * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16ff_v_f16mf4_m)))
-void vlseg7e16ff(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vbool64_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, const _Float16 * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16ff_v_f16m1_m)))
-void vlseg8e16ff(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, vbool16_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, vfloat16m1_t op15, vfloat16m1_t op16, const _Float16 * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16ff_v_f16mf2_m)))
-void vlseg8e16ff(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, vbool32_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, vfloat16mf2_t op15, vfloat16mf2_t op16, const _Float16 * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16ff_v_f16mf4_m)))
-void vlseg8e16ff(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, vbool64_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, vfloat16mf4_t op15, vfloat16mf4_t op16, const _Float16 * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_f16m1_m)))
-void vlsseg2e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vbool16_t op2, vfloat16m1_t op3, vfloat16m1_t op4, const _Float16 * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_f16m2_m)))
-void vlsseg2e16(vfloat16m2_t * op0, vfloat16m2_t * op1, vbool8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, const _Float16 * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_f16m4_m)))
-void vlsseg2e16(vfloat16m4_t * op0, vfloat16m4_t * op1, vbool4_t op2, vfloat16m4_t op3, vfloat16m4_t op4, const _Float16 * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_f16mf2_m)))
-void vlsseg2e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vbool32_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, const _Float16 * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_f16mf4_m)))
-void vlsseg2e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vbool64_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, const _Float16 * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_f16m1_m)))
-void vlsseg3e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vbool16_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, const _Float16 * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_f16m2_m)))
-void vlsseg3e16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vbool8_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, const _Float16 * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_f16mf2_m)))
-void vlsseg3e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vbool32_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, const _Float16 * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_f16mf4_m)))
-void vlsseg3e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vbool64_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, const _Float16 * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_f16m1_m)))
-void vlsseg4e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vbool16_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, const _Float16 * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_f16m2_m)))
-void vlsseg4e16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, vbool8_t op4, vfloat16m2_t op5, vfloat16m2_t op6, vfloat16m2_t op7, vfloat16m2_t op8, const _Float16 * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_f16mf2_m)))
-void vlsseg4e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vbool32_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, const _Float16 * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_f16mf4_m)))
-void vlsseg4e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vbool64_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, const _Float16 * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e16_v_f16m1_m)))
-void vlsseg5e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vbool16_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, const _Float16 * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e16_v_f16mf2_m)))
-void vlsseg5e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vbool32_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, const _Float16 * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e16_v_f16mf4_m)))
-void vlsseg5e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vbool64_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, const _Float16 * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e16_v_f16m1_m)))
-void vlsseg6e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vbool16_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, const _Float16 * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e16_v_f16mf2_m)))
-void vlsseg6e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vbool32_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, const _Float16 * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e16_v_f16mf4_m)))
-void vlsseg6e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vbool64_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, const _Float16 * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e16_v_f16m1_m)))
-void vlsseg7e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vbool16_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, const _Float16 * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e16_v_f16mf2_m)))
-void vlsseg7e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vbool32_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, const _Float16 * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e16_v_f16mf4_m)))
-void vlsseg7e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vbool64_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, const _Float16 * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e16_v_f16m1_m)))
-void vlsseg8e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, vbool16_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, vfloat16m1_t op15, vfloat16m1_t op16, const _Float16 * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e16_v_f16mf2_m)))
-void vlsseg8e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, vbool32_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, vfloat16mf2_t op15, vfloat16mf2_t op16, const _Float16 * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e16_v_f16mf4_m)))
-void vlsseg8e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, vbool64_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, vfloat16mf4_t op15, vfloat16mf4_t op16, const _Float16 * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f16m1)))
-void vluxseg2ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, const _Float16 * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f16m1_m)))
-void vluxseg2ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vbool16_t op2, vfloat16m1_t op3, vfloat16m1_t op4, const _Float16 * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f16m2)))
-void vluxseg2ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, const _Float16 * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f16m2_m)))
-void vluxseg2ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, vbool8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, const _Float16 * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f16m4)))
-void vluxseg2ei8(vfloat16m4_t * op0, vfloat16m4_t * op1, const _Float16 * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f16m4_m)))
-void vluxseg2ei8(vfloat16m4_t * op0, vfloat16m4_t * op1, vbool4_t op2, vfloat16m4_t op3, vfloat16m4_t op4, const _Float16 * op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f16mf2)))
-void vluxseg2ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, const _Float16 * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f16mf2_m)))
-void vluxseg2ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vbool32_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, const _Float16 * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f16mf4)))
-void vluxseg2ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, const _Float16 * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f16mf4_m)))
-void vluxseg2ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vbool64_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, const _Float16 * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f16m1)))
-void vluxseg3ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, const _Float16 * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f16m1_m)))
-void vluxseg3ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vbool16_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, const _Float16 * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f16m2)))
-void vluxseg3ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, const _Float16 * op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f16m2_m)))
-void vluxseg3ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vbool8_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, const _Float16 * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f16mf2)))
-void vluxseg3ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, const _Float16 * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f16mf2_m)))
-void vluxseg3ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vbool32_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, const _Float16 * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f16mf4)))
-void vluxseg3ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, const _Float16 * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f16mf4_m)))
-void vluxseg3ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vbool64_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, const _Float16 * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f16m1)))
-void vluxseg4ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, const _Float16 * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f16m1_m)))
-void vluxseg4ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vbool16_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, const _Float16 * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f16m2)))
-void vluxseg4ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, const _Float16 * op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f16m2_m)))
-void vluxseg4ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, vbool8_t op4, vfloat16m2_t op5, vfloat16m2_t op6, vfloat16m2_t op7, vfloat16m2_t op8, const _Float16 * op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f16mf2)))
-void vluxseg4ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, const _Float16 * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f16mf2_m)))
-void vluxseg4ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vbool32_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, const _Float16 * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f16mf4)))
-void vluxseg4ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, const _Float16 * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f16mf4_m)))
-void vluxseg4ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vbool64_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, const _Float16 * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f16m1)))
-void vluxseg5ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, const _Float16 * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f16m1_m)))
-void vluxseg5ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vbool16_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, const _Float16 * op11, vuint8mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f16mf2)))
-void vluxseg5ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, const _Float16 * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f16mf2_m)))
-void vluxseg5ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vbool32_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, const _Float16 * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f16mf4)))
-void vluxseg5ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, const _Float16 * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f16mf4_m)))
-void vluxseg5ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vbool64_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, const _Float16 * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f16m1)))
-void vluxseg6ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, const _Float16 * op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f16m1_m)))
-void vluxseg6ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vbool16_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, const _Float16 * op13, vuint8mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f16mf2)))
-void vluxseg6ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, const _Float16 * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f16mf2_m)))
-void vluxseg6ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vbool32_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, const _Float16 * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f16mf4)))
-void vluxseg6ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, const _Float16 * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f16mf4_m)))
-void vluxseg6ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vbool64_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, const _Float16 * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f16m1)))
-void vluxseg7ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, const _Float16 * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f16m1_m)))
-void vluxseg7ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vbool16_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, const _Float16 * op15, vuint8mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f16mf2)))
-void vluxseg7ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, const _Float16 * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f16mf2_m)))
-void vluxseg7ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vbool32_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, const _Float16 * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f16mf4)))
-void vluxseg7ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, const _Float16 * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f16mf4_m)))
-void vluxseg7ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vbool64_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, const _Float16 * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f16m1)))
-void vluxseg8ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, const _Float16 * op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f16m1_m)))
-void vluxseg8ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, vbool16_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, vfloat16m1_t op15, vfloat16m1_t op16, const _Float16 * op17, vuint8mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f16mf2)))
-void vluxseg8ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, const _Float16 * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f16mf2_m)))
-void vluxseg8ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, vbool32_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, vfloat16mf2_t op15, vfloat16mf2_t op16, const _Float16 * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f16mf4)))
-void vluxseg8ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, const _Float16 * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f16mf4_m)))
-void vluxseg8ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, vbool64_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, vfloat16mf4_t op15, vfloat16mf4_t op16, const _Float16 * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f16m1)))
-void vluxseg2ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, const _Float16 * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f16m1_m)))
-void vluxseg2ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vbool16_t op2, vfloat16m1_t op3, vfloat16m1_t op4, const _Float16 * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f16m2)))
-void vluxseg2ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, const _Float16 * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f16m2_m)))
-void vluxseg2ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, vbool8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, const _Float16 * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f16m4)))
-void vluxseg2ei16(vfloat16m4_t * op0, vfloat16m4_t * op1, const _Float16 * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f16m4_m)))
-void vluxseg2ei16(vfloat16m4_t * op0, vfloat16m4_t * op1, vbool4_t op2, vfloat16m4_t op3, vfloat16m4_t op4, const _Float16 * op5, vuint16m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f16mf2)))
-void vluxseg2ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, const _Float16 * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f16mf2_m)))
-void vluxseg2ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vbool32_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, const _Float16 * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f16mf4)))
-void vluxseg2ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, const _Float16 * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f16mf4_m)))
-void vluxseg2ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vbool64_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, const _Float16 * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f16m1)))
-void vluxseg3ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, const _Float16 * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f16m1_m)))
-void vluxseg3ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vbool16_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, const _Float16 * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f16m2)))
-void vluxseg3ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, const _Float16 * op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f16m2_m)))
-void vluxseg3ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vbool8_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, const _Float16 * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f16mf2)))
-void vluxseg3ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, const _Float16 * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f16mf2_m)))
-void vluxseg3ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vbool32_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, const _Float16 * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f16mf4)))
-void vluxseg3ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, const _Float16 * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f16mf4_m)))
-void vluxseg3ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vbool64_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, const _Float16 * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f16m1)))
-void vluxseg4ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, const _Float16 * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f16m1_m)))
-void vluxseg4ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vbool16_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, const _Float16 * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f16m2)))
-void vluxseg4ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, const _Float16 * op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f16m2_m)))
-void vluxseg4ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, vbool8_t op4, vfloat16m2_t op5, vfloat16m2_t op6, vfloat16m2_t op7, vfloat16m2_t op8, const _Float16 * op9, vuint16m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f16mf2)))
-void vluxseg4ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, const _Float16 * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f16mf2_m)))
-void vluxseg4ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vbool32_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, const _Float16 * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f16mf4)))
-void vluxseg4ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, const _Float16 * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f16mf4_m)))
-void vluxseg4ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vbool64_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, const _Float16 * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f16m1)))
-void vluxseg5ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, const _Float16 * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f16m1_m)))
-void vluxseg5ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vbool16_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, const _Float16 * op11, vuint16m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f16mf2)))
-void vluxseg5ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, const _Float16 * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f16mf2_m)))
-void vluxseg5ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vbool32_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, const _Float16 * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f16mf4)))
-void vluxseg5ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, const _Float16 * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f16mf4_m)))
-void vluxseg5ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vbool64_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, const _Float16 * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f16m1)))
-void vluxseg6ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, const _Float16 * op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f16m1_m)))
-void vluxseg6ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vbool16_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, const _Float16 * op13, vuint16m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f16mf2)))
-void vluxseg6ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, const _Float16 * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f16mf2_m)))
-void vluxseg6ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vbool32_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, const _Float16 * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f16mf4)))
-void vluxseg6ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, const _Float16 * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f16mf4_m)))
-void vluxseg6ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vbool64_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, const _Float16 * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f16m1)))
-void vluxseg7ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, const _Float16 * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f16m1_m)))
-void vluxseg7ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vbool16_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, const _Float16 * op15, vuint16m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f16mf2)))
-void vluxseg7ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, const _Float16 * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f16mf2_m)))
-void vluxseg7ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vbool32_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, const _Float16 * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f16mf4)))
-void vluxseg7ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, const _Float16 * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f16mf4_m)))
-void vluxseg7ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vbool64_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, const _Float16 * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f16m1)))
-void vluxseg8ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, const _Float16 * op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f16m1_m)))
-void vluxseg8ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, vbool16_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, vfloat16m1_t op15, vfloat16m1_t op16, const _Float16 * op17, vuint16m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f16mf2)))
-void vluxseg8ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, const _Float16 * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f16mf2_m)))
-void vluxseg8ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, vbool32_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, vfloat16mf2_t op15, vfloat16mf2_t op16, const _Float16 * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f16mf4)))
-void vluxseg8ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, const _Float16 * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f16mf4_m)))
-void vluxseg8ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, vbool64_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, vfloat16mf4_t op15, vfloat16mf4_t op16, const _Float16 * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f16m1)))
-void vluxseg2ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, const _Float16 * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f16m1_m)))
-void vluxseg2ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vbool16_t op2, vfloat16m1_t op3, vfloat16m1_t op4, const _Float16 * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f16m2)))
-void vluxseg2ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, const _Float16 * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f16m2_m)))
-void vluxseg2ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, vbool8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, const _Float16 * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f16m4)))
-void vluxseg2ei32(vfloat16m4_t * op0, vfloat16m4_t * op1, const _Float16 * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f16m4_m)))
-void vluxseg2ei32(vfloat16m4_t * op0, vfloat16m4_t * op1, vbool4_t op2, vfloat16m4_t op3, vfloat16m4_t op4, const _Float16 * op5, vuint32m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f16mf2)))
-void vluxseg2ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, const _Float16 * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f16mf2_m)))
-void vluxseg2ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vbool32_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, const _Float16 * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f16mf4)))
-void vluxseg2ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, const _Float16 * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f16mf4_m)))
-void vluxseg2ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vbool64_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, const _Float16 * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f16m1)))
-void vluxseg3ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, const _Float16 * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f16m1_m)))
-void vluxseg3ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vbool16_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, const _Float16 * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f16m2)))
-void vluxseg3ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, const _Float16 * op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f16m2_m)))
-void vluxseg3ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vbool8_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, const _Float16 * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f16mf2)))
-void vluxseg3ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, const _Float16 * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f16mf2_m)))
-void vluxseg3ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vbool32_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, const _Float16 * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f16mf4)))
-void vluxseg3ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, const _Float16 * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f16mf4_m)))
-void vluxseg3ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vbool64_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, const _Float16 * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f16m1)))
-void vluxseg4ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, const _Float16 * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f16m1_m)))
-void vluxseg4ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vbool16_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, const _Float16 * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f16m2)))
-void vluxseg4ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, const _Float16 * op4, vuint32m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f16m2_m)))
-void vluxseg4ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, vbool8_t op4, vfloat16m2_t op5, vfloat16m2_t op6, vfloat16m2_t op7, vfloat16m2_t op8, const _Float16 * op9, vuint32m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f16mf2)))
-void vluxseg4ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, const _Float16 * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f16mf2_m)))
-void vluxseg4ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vbool32_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, const _Float16 * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f16mf4)))
-void vluxseg4ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, const _Float16 * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f16mf4_m)))
-void vluxseg4ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vbool64_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, const _Float16 * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f16m1)))
-void vluxseg5ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, const _Float16 * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f16m1_m)))
-void vluxseg5ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vbool16_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, const _Float16 * op11, vuint32m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f16mf2)))
-void vluxseg5ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, const _Float16 * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f16mf2_m)))
-void vluxseg5ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vbool32_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, const _Float16 * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f16mf4)))
-void vluxseg5ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, const _Float16 * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f16mf4_m)))
-void vluxseg5ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vbool64_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, const _Float16 * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f16m1)))
-void vluxseg6ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, const _Float16 * op6, vuint32m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f16m1_m)))
-void vluxseg6ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vbool16_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, const _Float16 * op13, vuint32m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f16mf2)))
-void vluxseg6ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, const _Float16 * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f16mf2_m)))
-void vluxseg6ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vbool32_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, const _Float16 * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f16mf4)))
-void vluxseg6ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, const _Float16 * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f16mf4_m)))
-void vluxseg6ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vbool64_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, const _Float16 * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f16m1)))
-void vluxseg7ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, const _Float16 * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f16m1_m)))
-void vluxseg7ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vbool16_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, const _Float16 * op15, vuint32m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f16mf2)))
-void vluxseg7ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, const _Float16 * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f16mf2_m)))
-void vluxseg7ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vbool32_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, const _Float16 * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f16mf4)))
-void vluxseg7ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, const _Float16 * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f16mf4_m)))
-void vluxseg7ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vbool64_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, const _Float16 * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f16m1)))
-void vluxseg8ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, const _Float16 * op8, vuint32m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f16m1_m)))
-void vluxseg8ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, vbool16_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, vfloat16m1_t op15, vfloat16m1_t op16, const _Float16 * op17, vuint32m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f16mf2)))
-void vluxseg8ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, const _Float16 * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f16mf2_m)))
-void vluxseg8ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, vbool32_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, vfloat16mf2_t op15, vfloat16mf2_t op16, const _Float16 * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f16mf4)))
-void vluxseg8ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, const _Float16 * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f16mf4_m)))
-void vluxseg8ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, vbool64_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, vfloat16mf4_t op15, vfloat16mf4_t op16, const _Float16 * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f16m1)))
-void vluxseg2ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, const _Float16 * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f16m1_m)))
-void vluxseg2ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vbool16_t op2, vfloat16m1_t op3, vfloat16m1_t op4, const _Float16 * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f16m2)))
-void vluxseg2ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, const _Float16 * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f16m2_m)))
-void vluxseg2ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, vbool8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, const _Float16 * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f16mf2)))
-void vluxseg2ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, const _Float16 * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f16mf2_m)))
-void vluxseg2ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vbool32_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, const _Float16 * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f16mf4)))
-void vluxseg2ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, const _Float16 * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f16mf4_m)))
-void vluxseg2ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vbool64_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, const _Float16 * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f16m1)))
-void vluxseg3ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, const _Float16 * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f16m1_m)))
-void vluxseg3ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vbool16_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, const _Float16 * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f16m2)))
-void vluxseg3ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, const _Float16 * op3, vuint64m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f16m2_m)))
-void vluxseg3ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vbool8_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, const _Float16 * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f16mf2)))
-void vluxseg3ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, const _Float16 * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f16mf2_m)))
-void vluxseg3ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vbool32_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, const _Float16 * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f16mf4)))
-void vluxseg3ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, const _Float16 * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f16mf4_m)))
-void vluxseg3ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vbool64_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, const _Float16 * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f16m1)))
-void vluxseg4ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, const _Float16 * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f16m1_m)))
-void vluxseg4ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vbool16_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, const _Float16 * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f16m2)))
-void vluxseg4ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, const _Float16 * op4, vuint64m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f16m2_m)))
-void vluxseg4ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, vbool8_t op4, vfloat16m2_t op5, vfloat16m2_t op6, vfloat16m2_t op7, vfloat16m2_t op8, const _Float16 * op9, vuint64m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f16mf2)))
-void vluxseg4ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, const _Float16 * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f16mf2_m)))
-void vluxseg4ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vbool32_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, const _Float16 * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f16mf4)))
-void vluxseg4ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, const _Float16 * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f16mf4_m)))
-void vluxseg4ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vbool64_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, const _Float16 * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f16m1)))
-void vluxseg5ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, const _Float16 * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f16m1_m)))
-void vluxseg5ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vbool16_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, const _Float16 * op11, vuint64m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f16mf2)))
-void vluxseg5ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, const _Float16 * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f16mf2_m)))
-void vluxseg5ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vbool32_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, const _Float16 * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f16mf4)))
-void vluxseg5ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, const _Float16 * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f16mf4_m)))
-void vluxseg5ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vbool64_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, const _Float16 * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f16m1)))
-void vluxseg6ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, const _Float16 * op6, vuint64m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f16m1_m)))
-void vluxseg6ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vbool16_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, const _Float16 * op13, vuint64m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f16mf2)))
-void vluxseg6ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, const _Float16 * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f16mf2_m)))
-void vluxseg6ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vbool32_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, const _Float16 * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f16mf4)))
-void vluxseg6ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, const _Float16 * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f16mf4_m)))
-void vluxseg6ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vbool64_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, const _Float16 * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f16m1)))
-void vluxseg7ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, const _Float16 * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f16m1_m)))
-void vluxseg7ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vbool16_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, const _Float16 * op15, vuint64m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f16mf2)))
-void vluxseg7ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, const _Float16 * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f16mf2_m)))
-void vluxseg7ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vbool32_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, const _Float16 * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f16mf4)))
-void vluxseg7ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, const _Float16 * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f16mf4_m)))
-void vluxseg7ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vbool64_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, const _Float16 * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f16m1)))
-void vluxseg8ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, const _Float16 * op8, vuint64m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f16m1_m)))
-void vluxseg8ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, vbool16_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, vfloat16m1_t op15, vfloat16m1_t op16, const _Float16 * op17, vuint64m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f16mf2)))
-void vluxseg8ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, const _Float16 * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f16mf2_m)))
-void vluxseg8ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, vbool32_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, vfloat16mf2_t op15, vfloat16mf2_t op16, const _Float16 * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f16mf4)))
-void vluxseg8ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, const _Float16 * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f16mf4_m)))
-void vluxseg8ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, vbool64_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, vfloat16mf4_t op15, vfloat16mf4_t op16, const _Float16 * op17, vuint64m1_t op18, size_t op19);
-
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif // __riscv_vector
-#endif // __RISCV_VECTOR_H
diff --git a/darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_builtin_vars.h b/darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_builtin_vars.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_builtin_vars.h
rename to darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_builtin_vars.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_cmath.h b/darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_cmath.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_cmath.h
rename to darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_cmath.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_complex_builtins.h b/darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_complex_builtins.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_complex_builtins.h
rename to darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_complex_builtins.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_device_functions.h b/darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_device_functions.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_device_functions.h
rename to darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_device_functions.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_intrinsics.h b/darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_intrinsics.h
similarity index 93%
rename from darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_intrinsics.h
rename to darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_intrinsics.h
index c7bff6a..e0875bb 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_intrinsics.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_intrinsics.h
@@ -483,4 +483,36 @@
 
 #endif // !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 320
 
+#if CUDA_VERSION >= 11000
+extern "C" {
+__device__ inline size_t __nv_cvta_generic_to_global_impl(const void *__ptr) {
+  return (size_t)(void __attribute__((address_space(1))) *)__ptr;
+}
+__device__ inline size_t __nv_cvta_generic_to_shared_impl(const void *__ptr) {
+  return (size_t)(void __attribute__((address_space(3))) *)__ptr;
+}
+__device__ inline size_t __nv_cvta_generic_to_constant_impl(const void *__ptr) {
+  return (size_t)(void __attribute__((address_space(4))) *)__ptr;
+}
+__device__ inline size_t __nv_cvta_generic_to_local_impl(const void *__ptr) {
+  return (size_t)(void __attribute__((address_space(5))) *)__ptr;
+}
+__device__ inline void *__nv_cvta_global_to_generic_impl(size_t __ptr) {
+  return (void *)(void __attribute__((address_space(1))) *)__ptr;
+}
+__device__ inline void *__nv_cvta_shared_to_generic_impl(size_t __ptr) {
+  return (void *)(void __attribute__((address_space(3))) *)__ptr;
+}
+__device__ inline void *__nv_cvta_constant_to_generic_impl(size_t __ptr) {
+  return (void *)(void __attribute__((address_space(4))) *)__ptr;
+}
+__device__ inline void *__nv_cvta_local_to_generic_impl(size_t __ptr) {
+  return (void *)(void __attribute__((address_space(5))) *)__ptr;
+}
+__device__ inline uint32_t __nvvm_get_smem_pointer(void *__ptr) {
+  return __nv_cvta_generic_to_shared_impl(__ptr);
+}
+} // extern "C"
+#endif // CUDA_VERSION >= 11000
+
 #endif // defined(__CLANG_CUDA_INTRINSICS_H__)
diff --git a/darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_libdevice_declares.h b/darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_libdevice_declares.h
similarity index 99%
rename from darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_libdevice_declares.h
rename to darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_libdevice_declares.h
index 6173b58..23f3596 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_libdevice_declares.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_libdevice_declares.h
@@ -16,6 +16,7 @@
 
 #if defined(__OPENMP_NVPTX__)
 #define __DEVICE__
+#pragma omp begin assumes ext_spmd_amenable no_openmp
 #elif defined(__CUDA__)
 #define __DEVICE__ __device__
 #endif
@@ -456,6 +457,11 @@
 __DEVICE__ float __nv_y1f(float __a);
 __DEVICE__ float __nv_ynf(int __a, float __b);
 __DEVICE__ double __nv_yn(int __a, double __b);
+
+#if defined(__OPENMP_NVPTX__)
+#pragma omp end assumes ext_spmd_amenable no_openmp
+#endif
+
 #if defined(__cplusplus)
 } // extern "C"
 #endif
diff --git a/darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_math.h b/darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_math.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_math.h
rename to darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_math.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_math_forward_declares.h b/darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_math_forward_declares.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_math_forward_declares.h
rename to darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_math_forward_declares.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_runtime_wrapper.h b/darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_runtime_wrapper.h
similarity index 86%
rename from darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_runtime_wrapper.h
rename to darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_runtime_wrapper.h
index f401964..512fc30 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_runtime_wrapper.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_runtime_wrapper.h
@@ -41,6 +41,7 @@
 #include <cmath>
 #include <cstdlib>
 #include <stdlib.h>
+#include <string.h>
 #undef __CUDACC__
 
 // Preserve common macros that will be changed below by us or by CUDA
@@ -64,9 +65,9 @@
 #endif
 
 // Make largest subset of device functions available during host
-// compilation -- SM_35 for the time being.
+// compilation.
 #ifndef __CUDA_ARCH__
-#define __CUDA_ARCH__ 350
+#define __CUDA_ARCH__ 9999
 #endif
 
 #include "__clang_cuda_builtin_vars.h"
@@ -205,11 +206,6 @@
 #endif
 
 #if CUDA_VERSION >= 9000
-// CUDA-9.2 needs host-side memcpy for some host functions in
-// device_functions.hpp
-#if CUDA_VERSION >= 9020
-#include <string.h>
-#endif
 #include "crt/math_functions.hpp"
 #else
 #include "math_functions.hpp"
@@ -275,7 +271,38 @@
 #undef __CUDABE__
 #endif
 #include "sm_20_atomic_functions.hpp"
+// Predicate functions used in `__builtin_assume` need to have no side effect.
+// However, sm_20_intrinsics.hpp doesn't define them with neither pure nor
+// const attribute. Rename definitions from sm_20_intrinsics.hpp and re-define
+// them as pure ones.
+#pragma push_macro("__isGlobal")
+#pragma push_macro("__isShared")
+#pragma push_macro("__isConstant")
+#pragma push_macro("__isLocal")
+#define __isGlobal __ignored_cuda___isGlobal
+#define __isShared __ignored_cuda___isShared
+#define __isConstant __ignored_cuda___isConstant
+#define __isLocal __ignored_cuda___isLocal
 #include "sm_20_intrinsics.hpp"
+#pragma pop_macro("__isGlobal")
+#pragma pop_macro("__isShared")
+#pragma pop_macro("__isConstant")
+#pragma pop_macro("__isLocal")
+#pragma push_macro("__DEVICE__")
+#define __DEVICE__ static __device__ __forceinline__ __attribute__((const))
+__DEVICE__ unsigned int __isGlobal(const void *p) {
+  return __nvvm_isspacep_global(p);
+}
+__DEVICE__ unsigned int __isShared(const void *p) {
+  return __nvvm_isspacep_shared(p);
+}
+__DEVICE__ unsigned int __isConstant(const void *p) {
+  return __nvvm_isspacep_const(p);
+}
+__DEVICE__ unsigned int __isLocal(const void *p) {
+  return __nvvm_isspacep_local(p);
+}
+#pragma pop_macro("__DEVICE__")
 #include "sm_32_atomic_functions.hpp"
 
 // Don't include sm_30_intrinsics.h and sm_32_intrinsics.h.  These define the
@@ -330,6 +357,34 @@
 
 #pragma pop_macro("__host__")
 
+// __clang_cuda_texture_intrinsics.h must be included first in order to provide
+// implementation for __nv_tex_surf_handler that CUDA's headers depend on.
+// The implementation requires c++11 and only works with CUDA-9 or newer.
+#if __cplusplus >= 201103L && CUDA_VERSION >= 9000
+// clang-format off
+#include <__clang_cuda_texture_intrinsics.h>
+// clang-format on
+#else
+#if CUDA_VERSION >= 9000
+// Provide a hint that texture support needs C++11.
+template <typename T> struct __nv_tex_needs_cxx11 {
+  const static bool value = false;
+};
+template <class T>
+__host__ __device__ void __nv_tex_surf_handler(const char *name, T *ptr,
+                                               cudaTextureObject_t obj,
+                                               float x) {
+  _Static_assert(__nv_tex_needs_cxx11<T>::value,
+                 "Texture support requires C++11");
+}
+#else
+// Textures in CUDA-8 and older are not supported by clang.There's no
+// convenient way to intercept texture use in these versions, so we can't
+// produce a meaningful error. The source code that attempts to use textures
+// will continue to fail as it does now.
+#endif // CUDA_VERSION
+#endif // __cplusplus >= 201103L && CUDA_VERSION >= 9000
+#include "texture_fetch_functions.h"
 #include "texture_indirect_functions.h"
 
 // Restore state of __CUDA_ARCH__ and __THROW we had on entry.
diff --git a/darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_texture_intrinsics.h b/darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_texture_intrinsics.h
new file mode 100644
index 0000000..3c0f002
--- /dev/null
+++ b/darwin-x86/lib64/clang/14.0.2/include/__clang_cuda_texture_intrinsics.h
@@ -0,0 +1,740 @@
+/*===--- __clang_cuda_texture_intrinsics.h - Device-side texture support ---===
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+ *===-----------------------------------------------------------------------===
+ *
+ * This header provides in-header implmentations for NVCC's built-in
+ * __nv_tex_surf_handler() which is used by CUDA's texture-related headers.  The
+ * built-in is unusual as it's actually a set of function overloads that use the
+ * first string literal argument as one of the overload parameters.
+ */
+#ifndef __CLANG_CUDA_TEXTURE_INTRINSICS_H__
+#define __CLANG_CUDA_TEXTURE_INTRINSICS_H__
+#ifndef __CUDA__
+#error "This file is for CUDA compilation only."
+#endif
+
+// __nv_tex_surf_handler() provided by this header as a macro.
+#define __nv_tex_surf_handler(__op, __ptr, ...)                                \
+  ::__cuda_tex::__tex_fetch<                                                   \
+      ::__cuda_tex::__Tag<::__cuda_tex::__tex_op_hash(__op)>>(__ptr,           \
+                                                              __VA_ARGS__)
+
+#pragma push_macro("__ASM_OUT")
+#pragma push_macro("__ASM_OUTP")
+#pragma push_macro("__Args")
+#pragma push_macro("__ID")
+#pragma push_macro("__IDV")
+#pragma push_macro("__IMPL_2DGATHER")
+#pragma push_macro("__IMPL_ALIAS")
+#pragma push_macro("__IMPL_ALIASI")
+#pragma push_macro("__IMPL_F1")
+#pragma push_macro("__IMPL_F3")
+#pragma push_macro("__IMPL_F3N")
+#pragma push_macro("__IMPL_F3S")
+#pragma push_macro("__IMPL_S")
+#pragma push_macro("__IMPL_S3")
+#pragma push_macro("__IMPL_S3I")
+#pragma push_macro("__IMPL_S3N")
+#pragma push_macro("__IMPL_S3NI")
+#pragma push_macro("__IMPL_S3S")
+#pragma push_macro("__IMPL_S3SI")
+#pragma push_macro("__IMPL_SI")
+#pragma push_macro("__L")
+#pragma push_macro("__STRIP_PARENS")
+
+// Put all functions into anonymous namespace so they have internal linkage.
+// The device-only function here must be internal in order to avoid ODR
+// violations in case they are used from the files compiled with
+// -fgpu-rdc. E.g. a library and an app using it may be built with a different
+// version of this header file.
+namespace {
+
+// Put the implmentation into its own namespace so we don't pollute the TU.
+namespace __cuda_tex {
+
+// First, we need a perfect hash function and a few constexpr helper functions
+// for converting a string literal into a numeric value which can be used to
+// parametrize a template. We can not use string literals for that as that would
+// require C++20.
+//
+// The hash function was generated with 'gperf' and then manually converted into
+// its constexpr equivalent.
+//
+// NOTE: the perfect hashing scheme comes with inherent self-test. If the hash
+// function has a collision for any of the texture operations, the compilation
+// will fail due to an attempt to redefine a tag with the same value. If the
+// header compiles, then the hash function is good enough for the job.
+
+constexpr int __tex_len(const char *s) {
+  return (s[0] == 0)    ? 0
+         : (s[1] == 0)  ? 1
+         : (s[2] == 0)  ? 2
+         : (s[3] == 0)  ? 3
+         : (s[4] == 0)  ? 4
+         : (s[5] == 0)  ? 5
+         : (s[6] == 0)  ? 6
+         : (s[7] == 0)  ? 7
+         : (s[8] == 0)  ? 8
+         : (s[9] == 0)  ? 9
+         : (s[10] == 0) ? 10
+         : (s[11] == 0) ? 11
+         : (s[12] == 0) ? 12
+         : (s[13] == 0) ? 13
+         : (s[14] == 0) ? 14
+         : (s[15] == 0) ? 15
+         : (s[16] == 0) ? 16
+         : (s[17] == 0) ? 17
+         : (s[18] == 0) ? 18
+         : (s[19] == 0) ? 19
+         : (s[20] == 0) ? 20
+         : (s[21] == 0) ? 21
+         : (s[22] == 0) ? 22
+         : (s[23] == 0) ? 23
+         : (s[24] == 0) ? 24
+         : (s[25] == 0) ? 25
+         : (s[26] == 0) ? 26
+         : (s[27] == 0) ? 27
+         : (s[28] == 0) ? 28
+         : (s[29] == 0) ? 29
+         : (s[30] == 0) ? 30
+         : (s[31] == 0) ? 31
+                        : 32;
+}
+
+constexpr int __tex_hash_map(int c) {
+  return (c == 49)    ? 10
+         : (c == 50)  ? 0
+         : (c == 51)  ? 100
+         : (c == 52)  ? 30
+         : (c == 67)  ? 10
+         : (c == 68)  ? 0
+         : (c == 69)  ? 25
+         : (c == 72)  ? 70
+         : (c == 77)  ? 0
+         : (c == 96)  ? 44
+         : (c == 99)  ? 10
+         : (c == 100) ? 5
+         : (c == 101) ? 60
+         : (c == 102) ? 40
+         : (c == 103) ? 70
+         : (c == 104) ? 25
+         : (c == 112) ? 0
+         : (c == 114) ? 45
+         : (c == 117) ? 5
+         : (c == 118) ? 85
+         : (c == 120) ? 20
+                      : 225;
+}
+
+constexpr int __tex_op_hash(const char *str) {
+  return __tex_len(str) + __tex_hash_map(str[7] + 1) + __tex_hash_map(str[6]) +
+         __tex_hash_map(str[5]) + __tex_hash_map(str[__tex_len(str) - 1]);
+}
+
+// Tag type to identify particular texture operation.
+template <int N> struct __Tag;
+#define __ID(__op) __Tag<__tex_op_hash(__op)>
+// Tags for variants of particular operation. E.g. tex2Dgather can translate
+// into 4 different instructions.
+#define __IDV(__op, __variant)                                                 \
+  __Tag<10000 + __tex_op_hash(__op) * 100 + __variant>
+
+// Helper classes for figuring out key data types for derived types.
+// E.g. char2 has __base_t = char, __fetch_t = char4
+template <class> struct __TypeInfoT;
+// Type info for the fundamental types.
+template <> struct __TypeInfoT<float> {
+  using __base_t = float;
+  using __fetch_t = float4;
+};
+template <> struct __TypeInfoT<char> {
+  using __base_t = char;
+  using __fetch_t = int4;
+};
+template <> struct __TypeInfoT<signed char> {
+  using __base_t = signed char;
+  using __fetch_t = int4;
+};
+template <> struct __TypeInfoT<unsigned char> {
+  using __base_t = unsigned char;
+  using __fetch_t = uint4;
+};
+template <> struct __TypeInfoT<short> {
+  using __base_t = short;
+  using __fetch_t = int4;
+};
+template <> struct __TypeInfoT<unsigned short> {
+  using __base_t = unsigned short;
+  using __fetch_t = uint4;
+};
+template <> struct __TypeInfoT<int> {
+  using __base_t = int;
+  using __fetch_t = int4;
+};
+template <> struct __TypeInfoT<unsigned int> {
+  using __base_t = unsigned int;
+  using __fetch_t = uint4;
+};
+
+// Derived base/fetch types for N-element vectors.
+template <class __T> struct __TypeInfoT {
+  using __base_t = decltype(__T::x);
+  using __fetch_t = typename __TypeInfoT<__base_t>::__fetch_t;
+};
+
+// Classes that implement specific texture ops.
+template <class __op> struct __tex_fetch_v4;
+
+// Helper macros to strip parens from a macro argument.
+#define __Args(...) __VA_ARGS__
+#define __STRIP_PARENS(__X) __X
+#define __L(__X) __STRIP_PARENS(__Args __X)
+
+// Construct inline assembly output args.
+// Results are stored in a temp var __r.
+// isResident bool is pointed to by __ir
+// Asm args for return values. It's a 4-element vector
+#define __ASM_OUT(__t)                                                         \
+  ("=" __t(__r.x), "=" __t(__r.y), "=" __t(__r.z), "=" __t(__r.w))
+// .. possibly combined with a predicate.
+#define __ASM_OUTP(__t) (__L(__ASM_OUT(__t)), "=h"(*__ir))
+
+// Implements a single variant of texture fetch instruction.
+#define __IMPL_F1(__rt, __dt, __args, __asm_op, __asm_outs, __asm_args)        \
+  template <>                                                                  \
+  __device__ __rt __run<__dt>(cudaTextureObject_t __obj, __L(__args)) {        \
+    __rt __r;                                                                  \
+    asm(__asm_op : __L(__asm_outs) : "l"(__obj), __L(__asm_args));             \
+    return __r;                                                                \
+  }
+
+// Implements texture fetch instructions for int4/uint4/float4 data types.
+#define __IMPL_F3(__args, __asm_op, __ctype, __asm_op_args, __asm_args)        \
+  __IMPL_F1(int4, int4, __args, __asm_op ".s32." __ctype "\t" __asm_op_args,   \
+            __ASM_OUT("r"), __asm_args)                                        \
+  __IMPL_F1(uint4, uint4, __args, __asm_op ".u32." __ctype "\t" __asm_op_args, \
+            __ASM_OUT("r"), __asm_args)                                        \
+  __IMPL_F1(float4, float4, __args,                                            \
+            __asm_op ".f32." __ctype "\t" __asm_op_args, __ASM_OUT("f"),       \
+            __asm_args)
+// Implements 'sparse' texture fetch instructions for int4/uint4/float4 data
+// types. Similar to above, but returns a boolean 'isPresent' value in addition
+// to texture data,
+#define __IMPL_F3S(__args, __asm_op, __ctype, __asm_op_args, __asm_args)       \
+  __IMPL_F1(int4, int4, __args, __asm_op ".s32." __ctype "\t" __asm_op_args,   \
+            __ASM_OUTP("r"), __asm_args)                                       \
+  __IMPL_F1(uint4, uint4, __args, __asm_op ".u32." __ctype "\t" __asm_op_args, \
+            __ASM_OUTP("r"), __asm_args)                                       \
+  __IMPL_F1(float4, float4, __args,                                            \
+            __asm_op ".f32." __ctype "\t" __asm_op_args, __ASM_OUTP("f"),      \
+            __asm_args)
+
+// Similar to F3, but for integer data which is returned as normalized floats.
+// Only instantiates fetch functions for int4/uint4.
+#define __IMPL_F3N(__args, __asm_op, __ctype, __asm_op_args, __asm_args)       \
+  __IMPL_F1(float4, int4, __args, __asm_op ".s32." __ctype "\t" __asm_op_args, \
+            __ASM_OUT("r"), __asm_args)                                        \
+  __IMPL_F1(float4, uint4, __args,                                             \
+            __asm_op ".u32." __ctype "\t" __asm_op_args, __ASM_OUT("r"),       \
+            __asm_args)
+
+// Instantiates __tex_fetch_v4 with regular fetch functions.
+#define __IMPL_S3I(__op, __args, __asm_op, __ctype, __asm_op_args, __asm_args) \
+  template <> struct __tex_fetch_v4<__op> {                                    \
+    template <class T>                                                         \
+    __device__ static T __run(cudaTextureObject_t __obj, __L(__args));         \
+    __IMPL_F3(__args, __asm_op, __ctype, __asm_op_args, __asm_args)            \
+  }
+
+// Same, but for sparse ops. Only available on sm_60+
+#if !defined(__CUDA_ARCH__) || (__CUDA_ARCH__ >= 600)
+#define __IMPL_S3SI(__op, __args, __asm_op, __ctype, __asm_op_args,            \
+                    __asm_args)                                                \
+  template <> struct __tex_fetch_v4<__op> {                                    \
+    template <class T>                                                         \
+    __device__ static T __run(cudaTextureObject_t __obj, __L(__args));         \
+    __IMPL_F3S(__args, __asm_op, __ctype, __asm_op_args, __asm_args)           \
+  }
+#else
+#define __IMPL_S3SI(__op, __args, __asm_op, __ctype, __asm_op_args, __asm_args)
+#endif
+
+// Same, but for normalized float ops.
+#define __IMPL_S3NI(__op, __args, __asm_op, __ctype, __asm_op_args,            \
+                    __asm_args)                                                \
+  template <> struct __tex_fetch_v4<__op> {                                    \
+    template <class T>                                                         \
+    __device__ static float4 __run(cudaTextureObject_t __obj, __L(__args));    \
+    __IMPL_F3N(__args, __asm_op, __ctype, __asm_op_args, __asm_args)           \
+  }
+
+// Regular and normalized float ops share a lot of similarities.  This macro
+// instantiates both variants -- normal for __op and normalized for __opn.
+#define __IMPL_SI(__op, __opn, __args, __asm_op, __ctype, __asm_op_args,       \
+                  __asm_args)                                                  \
+  __IMPL_S3I(__op, __args, __asm_op, __ctype, __asm_op_args, __asm_args);      \
+  __IMPL_S3NI(__opn, __args, __asm_op, __ctype, __asm_op_args, __asm_args)
+
+// Convenience macros which converts string literal __op into a __Tag,
+#define __IMPL_S3(__op, __args, __asm_op, __ctype, __asm_op_args, __asm_args)  \
+  __IMPL_S3I(__ID(__op), __args, __asm_op, __ctype, __asm_op_args, __asm_args)
+#define __IMPL_S3S(__op, __args, __asm_op, __ctype, __asm_op_args, __asm_args) \
+  __IMPL_S3SI(__ID(__op), __args, __asm_op, __ctype, __asm_op_args, __asm_args)
+#define __IMPL_S3N(__op, __args, __asm_op, __ctype, __asm_op_args, __asm_args) \
+  __IMPL_S3NI(__ID(__op), __args, __asm_op, __ctype, __asm_op_args, __asm_args)
+#define __IMPL_S(__op, __opn, __args, __asm_op, __ctype, __asm_op_args,        \
+                 __asm_args)                                                   \
+  __IMPL_SI(__ID(__op), __ID(__opn), __args, __asm_op, __ctype, __asm_op_args, \
+            __asm_args)
+
+// CUDA headers have some 'legacy' texture oprerations that duplicate
+// functionality. So, we just inherit it, instead of refining a copy.
+#define __IMPL_ALIASI(__op, __opn)                                             \
+  template <> struct __tex_fetch_v4<__op> : __tex_fetch_v4<__opn> {}
+#define __IMPL_ALIAS(__op, __opn) __IMPL_ALIASI(__ID(__op), __ID(__opn))
+
+// Now we can instantiate everything we need for each specific texture fetch
+// variant.
+__IMPL_S("__tex1D_v2", "__tex1D_rmnf_v2", (float __x), "tex.1d.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5}];", ("f"(__x)));
+__IMPL_S("__tex1Dfetch_v2", "__tex1Dfetch_rmnf_v2", (int __x), "tex.1d.v4",
+         "s32", "{%0, %1, %2, %3}, [%4, {%5}];", ("r"(__x)));
+__IMPL_ALIAS("__itex1D", "__tex1D_v2");
+__IMPL_ALIAS("__itex1Dfetch", "__tex1Dfetch_v2");
+
+__IMPL_S("__tex1DGrad_v2", "__tex1DGrad_rmnf_v2",
+         (float __x, float __dPdx, float __dPdy), "tex.grad.1d.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5}], {%6}, {%7};",
+         ("f"(__x), "f"(__dPdx), "f"(__dPdy)));
+__IMPL_ALIAS("__itex1DGrad", "__tex1DGrad_v2");
+
+__IMPL_S("__tex1DLayered_v2", "__tex1DLayered_rmnf_v2",
+         (float __x, int __layer), "tex.a1d.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6}];", ("r"(__layer), "f"(__x)));
+__IMPL_ALIAS("__itex1DLayered", "__tex1DLayered_v2");
+
+__IMPL_S("__tex1DLayeredGrad_v2", "__tex1DLayeredGrad_rmnf_v2",
+         (float __x, int __layer, float __dPdx, float __dPdy),
+         "tex.grad.a1d.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6}], {%7}, {%8};",
+         ("r"(__layer), "f"(__x), "f"(__dPdx), "f"(__dPdy)));
+__IMPL_ALIAS("__itex1DLayeredGrad", "__tex1DLayeredGrad_v2");
+
+__IMPL_S("__tex1DLayeredLod_v2", "__tex1DLayeredLod_rmnf_v2",
+         (float __x, int __layer, float __level), "tex.level.a1d.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6}], %7;",
+         ("r"(__layer), "f"(__x), "f"(__level)));
+__IMPL_ALIAS("__itex1DLayeredLod", "__tex1DLayeredLod_v2");
+
+__IMPL_S("__tex1DLod_v2", "__tex1DLod_rmnf_v2", (float __x, float __level),
+         "tex.level.1d.v4", "f32", "{%0, %1, %2, %3}, [%4, {%5}], %6;",
+         ("f"(__x), "f"(__level)));
+__IMPL_ALIAS("__itex1DLod", "__tex1DLod_v2");
+
+// 2D
+__IMPL_S("__tex2D_v2", "__tex2D_rmnf_v2", (float __x, float __y), "tex.2d.v4",
+         "f32", "{%0, %1, %2, %3}, [%4, {%5, %6}];", ("f"(__x), "f"(__y)));
+__IMPL_ALIAS("__itex2D", "__tex2D_v2");
+
+__IMPL_S3S("__itex2D_sparse", (float __x, float __y, unsigned char *__ir),
+           "{.reg .pred %%p0;\n\t"
+           "tex.2d.v4",
+           "f32",
+           "{%0, %1, %2, %3}|%%p0, [%5, {%6, %7}];\n\t"
+           " selp.u16 %4, 1, 0, %%p0; }",
+           ("f"(__x), "f"(__y)));
+
+__IMPL_S("__tex2DGrad_v2", "__tex2DGrad_rmnf_v2",
+         (float __x, float __y, const float2 *__dPdx, const float2 *__dPdy),
+         "tex.grad.2d.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6}], {%7, %8}, {%9, %10};",
+         ("f"(__x), "f"(__y), "f"(__dPdx->x), "f"(__dPdx->y), "f"(__dPdy->x),
+          "f"(__dPdy->y)));
+__IMPL_ALIAS("__itex2DGrad_v2", "__tex2DGrad_v2");
+
+__IMPL_S3S("__itex2DGrad_sparse",
+           (float __x, float __y, const float2 *__dPdx, const float2 *__dPdy,
+            unsigned char *__ir),
+           "{.reg .pred %%p0;\n\t"
+           "tex.grad.2d.v4",
+           "f32",
+           "{%0, %1, %2, %3}|%%p0, [%5, {%6, %7}], {%8, %9}, {%10, %11};\n\t"
+           "selp.u16 %4, 1, 0, %%p0; }",
+           ("f"(__x), "f"(__y), "f"(__dPdx->x), "f"(__dPdx->y), "f"(__dPdy->x),
+            "f"(__dPdy->y)));
+
+__IMPL_S("__tex2DLayered_v2", "__tex2DLayered_rmnf_v2",
+         (float __x, float __y, int __layer), "tex.a2d.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %7}];",
+         ("r"(__layer), "f"(__x), "f"(__y)));
+__IMPL_ALIAS("__itex2DLayered", "__tex2DLayered_v2");
+
+__IMPL_S3S("__itex2DLayered_sparse",
+           (float __x, float __y, int __layer, unsigned char *__ir),
+           "{.reg .pred %%p0;\n\t"
+           "tex.a2d.v4",
+           "f32",
+           "{%0, %1, %2, %3}|%%p0, [%5, {%6, %7, %8, %8}];\n\t"
+           "selp.u16 %4, 1, 0, %%p0; }",
+           ("r"(__layer), "f"(__x), "f"(__y)));
+
+__IMPL_S("__tex2DLayeredGrad_v2", "__tex2DLayeredGrad_rmnf_v2",
+         (float __x, float __y, int __layer, const float2 *__dPdx,
+          const float2 *__dPdy),
+         "tex.grad.a2d.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %7}], {%8, %9}, {%10, %11};",
+         ("r"(__layer), "f"(__x), "f"(__y), "f"(__dPdx->x), "f"(__dPdx->y),
+          "f"(__dPdy->x), "f"(__dPdy->y)));
+__IMPL_ALIAS("__itex2DLayeredGrad_v2", "__tex2DLayeredGrad_v2");
+
+__IMPL_S3S(
+    "__itex2DLayeredGrad_sparse",
+    (float __x, float __y, int __layer, const float2 *__dPdx,
+     const float2 *__dPdy, unsigned char *__ir),
+    "{.reg .pred %%p0;\n\t"
+    "tex.grad.a2d.v4",
+    "f32",
+    "{%0, %1, %2, %3}|%%p0, [%5, {%6, %7, %8, %8}], {%9, %10}, {%11, %12};\n\t"
+    "selp.u16 %4, 1, 0, %%p0; }",
+    ("r"(__layer), "f"(__x), "f"(__y), "f"(__dPdx->x), "f"(__dPdx->y),
+     "f"(__dPdy->x), "f"(__dPdy->y)));
+
+__IMPL_S("__tex2DLayeredLod_v2", "__tex2DLayeredLod_rmnf_v2",
+         (float __x, float __y, int __layer, float __level), "tex.level.a2d.v4",
+         "f32", "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %7}], %8;",
+         ("r"(__layer), "f"(__x), "f"(__y), "f"(__level)));
+__IMPL_ALIAS("__itex2DLayeredLod", "__tex2DLayeredLod_v2");
+
+__IMPL_S3S("__itex2DLayeredLod_sparse",
+           (float __x, float __y, int __layer, float __level,
+            unsigned char *__ir),
+           "{.reg .pred %%p0;\n\t"
+           "tex.level.a2d.v4",
+           "f32",
+           "{%0, %1, %2, %3}|%%p0, [%5, {%6, %7, %8, %8}], %9;\n\t"
+           "selp.u16 %4, 1, 0, %%p0; }",
+           ("r"(__layer), "f"(__x), "f"(__y), "f"(__level)));
+
+__IMPL_S("__tex2DLod_v2", "__tex2DLod_rmnf_v2",
+         (float __x, float __y, float __level), "tex.level.2d.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6}], %7;",
+         ("f"(__x), "f"(__y), "f"(__level)));
+__IMPL_ALIAS("__itex2DLod", "__tex2DLod_v2");
+
+__IMPL_S3S("__itex2DLod_sparse",
+           (float __x, float __y, float __level, unsigned char *__ir),
+           "{.reg .pred %%p0;\n\t"
+           "tex.level.2d.v4",
+           "f32",
+           "{%0, %1, %2, %3}|%%p0, [%5, {%6, %7}], %8;\n\t"
+           "selp.u16 %4, 1, 0, %%p0; }",
+           ("f"(__x), "f"(__y), "f"(__level)));
+
+// 2D gather is special. Unlike other variants that translate into exactly one
+// asm instruction, it uses one of the four different instructions selected by
+// __comp.  We implement each instruction variant separately, and dispatch the
+// right one from the manually implemented 'umbrella' fetch.
+#define __IMPL_2DGATHER(variant, instr)                                        \
+  __IMPL_SI(__IDV("__tex2Dgather_v2", variant),                                \
+            __IDV("__tex2Dgather_rmnf_v2", variant),                           \
+            (float __x, float __y, int __comp), instr, "f32",                  \
+            "{%0, %1, %2, %3}, [%4, {%5, %6}];", ("f"(__x), "f"(__y)));        \
+  __IMPL_ALIASI(__IDV("__itex2Dgather", variant),                              \
+                __IDV("__tex2Dgather_v2", variant));                           \
+  __IMPL_S3SI(__IDV("__itex2Dgather_sparse", variant),                         \
+              (float __x, float __y, unsigned char *__ir, int __comp),         \
+              "{.reg .pred %%p0;\n\t" instr, "f32",                            \
+              "{%0, %1, %2, %3}|%%p0, [%5, {%6, %7}];\n\t"                     \
+              "selp.u16 %4, 1, 0, %%p0; }",                                    \
+              ("f"(__x), "f"(__y)));
+__IMPL_2DGATHER(0, "tld4.r.2d.v4");
+__IMPL_2DGATHER(1, "tld4.g.2d.v4");
+__IMPL_2DGATHER(2, "tld4.b.2d.v4");
+__IMPL_2DGATHER(3, "tld4.a.2d.v4");
+
+// Umbrella dispatcher -- calls into specific 2Dgather variant.
+template <> struct __tex_fetch_v4<__ID("__tex2Dgather_v2")> {
+  template <class __T>
+  __device__ static __T __run(cudaTextureObject_t __obj, float __x, float __y,
+                              int __comp) {
+    switch (__comp) {
+    case 0:
+      return __tex_fetch_v4<__IDV("__tex2Dgather_v2", 0)>::__run<__T>(
+          __obj, __x, __y, __comp);
+    case 1:
+      return __tex_fetch_v4<__IDV("__tex2Dgather_v2", 1)>::__run<__T>(
+          __obj, __x, __y, __comp);
+    case 2:
+      return __tex_fetch_v4<__IDV("__tex2Dgather_v2", 2)>::__run<__T>(
+          __obj, __x, __y, __comp);
+    case 3:
+      return __tex_fetch_v4<__IDV("__tex2Dgather_v2", 3)>::__run<__T>(
+          __obj, __x, __y, __comp);
+    }
+  }
+};
+__IMPL_ALIAS("__itex2Dgather", "__tex2Dgather_v2");
+
+template <> struct __tex_fetch_v4<__ID("__tex2Dgather_rmnf_v2")> {
+  template <class __T>
+  __device__ static float4 __run(cudaTextureObject_t __obj, float __x,
+                                 float __y, int __comp) {
+    switch (__comp) {
+    case 0:
+      return __tex_fetch_v4<__IDV("__tex2Dgather_rmnf_v2", 0)>::__run<__T>(
+          __obj, __x, __y, __comp);
+    case 1:
+      return __tex_fetch_v4<__IDV("__tex2Dgather_rmnf_v2", 1)>::__run<__T>(
+          __obj, __x, __y, __comp);
+    case 2:
+      return __tex_fetch_v4<__IDV("__tex2Dgather_rmnf_v2", 2)>::__run<__T>(
+          __obj, __x, __y, __comp);
+    case 3:
+      return __tex_fetch_v4<__IDV("__tex2Dgather_rmnf_v2", 3)>::__run<__T>(
+          __obj, __x, __y, __comp);
+    }
+  }
+};
+
+#if !defined(__CUDA_ARCH__) || (__CUDA_ARCH__ >= 600)
+template <> struct __tex_fetch_v4<__ID("__itex2Dgather_sparse")> {
+  template <class __T>
+  __device__ static __T __run(cudaTextureObject_t __obj, float __x, float __y,
+                              unsigned char *__ir, int __comp) {
+    switch (__comp) {
+    case 0:
+      return __tex_fetch_v4<__IDV("__itex2Dgather_sparse", 0)>::__run<__T>(
+          __obj, __x, __y, __ir, __comp);
+    case 1:
+      return __tex_fetch_v4<__IDV("__itex2Dgather_sparse", 1)>::__run<__T>(
+          __obj, __x, __y, __ir, __comp);
+    case 2:
+      return __tex_fetch_v4<__IDV("__itex2Dgather_sparse", 2)>::__run<__T>(
+          __obj, __x, __y, __ir, __comp);
+    case 3:
+      return __tex_fetch_v4<__IDV("__itex2Dgather_sparse", 3)>::__run<__T>(
+          __obj, __x, __y, __ir, __comp);
+    }
+  }
+};
+#endif
+
+// 3D
+__IMPL_S("__tex3D_v2", "__tex3D_rmnf_v2", (float __x, float __y, float __z),
+         "tex.3d.v4", "f32", "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %7}];",
+         ("f"(__x), "f"(__y), "f"(__z)));
+__IMPL_ALIAS("__itex3D", "__tex3D_v2");
+
+__IMPL_S3S("__itex3D_sparse",
+           (float __x, float __y, float __z, unsigned char *__ir),
+           "{.reg .pred %%p0;\n\t"
+           "tex.3d.v4",
+           "f32",
+           "{%0, %1, %2, %3}|%%p0, [%5, {%6, %7, %8, %8}];\n\t"
+           "selp.u16 %4, 1, 0, %%p0; }",
+           ("f"(__x), "f"(__y), "f"(__z)));
+
+__IMPL_S("__tex3DGrad_v2", "__tex3DGrad_rmnf_v2",
+         (float __x, float __y, float __z, const float4 *__dPdx,
+          const float4 *__dPdy),
+         "tex.grad.3d.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %7}], "
+         "{%8, %9, %10, %10}, {%11, %12, %13, %13};",
+         ("f"(__x), "f"(__y), "f"(__z), "f"(__dPdx->x), "f"(__dPdx->y),
+          "f"(__dPdx->z), "f"(__dPdy->x), "f"(__dPdy->y), "f"(__dPdy->z)));
+__IMPL_ALIAS("__itex3DGrad_v2", "__tex3DGrad_v2");
+
+__IMPL_S3S("__itex3DGrad_sparse",
+           (float __x, float __y, float __z, const float4 *__dPdx,
+            const float4 *__dPdy, unsigned char *__ir),
+           "{.reg .pred %%p0;\n\t"
+           "tex.grad.3d.v4",
+           "f32",
+           "{%0, %1, %2, %3}|%%p0, [%5, {%6, %7, %8, %8}], "
+           "{%9, %10, %11, %11}, {%12, %13, %14, %14};\n\t"
+           "selp.u16 %4, 1, 0, %%p0; }",
+           ("f"(__x), "f"(__y), "f"(__z), "f"(__dPdx->x), "f"(__dPdx->y),
+            "f"(__dPdx->z), "f"(__dPdy->x), "f"(__dPdy->y), "f"(__dPdy->z)));
+
+__IMPL_S("__tex3DLod_v2", "__tex3DLod_rmnf_v2",
+         (float __x, float __y, float __z, float __level), "tex.level.3d.v4",
+         "f32", "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %7}], %8;",
+         ("f"(__x), "f"(__y), "f"(__z), "f"(__level)));
+__IMPL_ALIAS("__itex3DLod", "__tex3DLod_v2");
+
+__IMPL_S3S("__itex3DLod_sparse",
+           (float __x, float __y, float __z, float __level,
+            unsigned char *__ir),
+           "{.reg .pred %%p0;\n\t"
+           "tex.level.3d.v4",
+           "f32",
+           "{%0, %1, %2, %3}|%%p0, [%5, {%6, %7, %8, %8}], %9;\n\t"
+           "selp.u16 %4, 1, 0, %%p0; }",
+           ("f"(__x), "f"(__y), "f"(__z), "f"(__level)));
+
+// Cubemap
+__IMPL_S("__texCubemap_v2", "__texCubemap_rmnf_v2",
+         (float __x, float __y, float __z), "tex.cube.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %7}];",
+         ("f"(__x), "f"(__y), "f"(__z)));
+__IMPL_ALIAS("__itexCubemap", "__texCubemap_v2");
+
+__IMPL_S3S("__itexCubemap_sparse",
+           (float __x, float __y, float __z, unsigned char *__ir),
+           "{.reg .pred %%p0;\n\t"
+           "tex.cube.v4",
+           "f32",
+           "{%0, %1, %2, %3}|%%p0, [%5, {%6, %7, %8, %8}];\n\t"
+           "selp.u16 %4, 1, 0, %%p0; }",
+           ("f"(__x), "f"(__y), "f"(__z)));
+
+__IMPL_S("__texCubemapGrad_v2", "__texCubemapGrad_rmnf_v2",
+         (float __x, float __y, float __z, const float4 *__dPdx,
+          const float4 *__dPdy),
+         "tex.grad.cube.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %7}], "
+         "{%8, %9, %10, %10}, {%11, %12, %13, %13};",
+         ("f"(__x), "f"(__y), "f"(__z), "f"(__dPdx->x), "f"(__dPdx->y),
+          "f"(__dPdx->z), "f"(__dPdy->x), "f"(__dPdy->y), "f"(__dPdy->z)));
+__IMPL_ALIAS("__itexCubemapGrad_v2", "__texCubemapGrad_v2");
+
+__IMPL_S("__texCubemapLayered_v2", "__texCubemapLayered_rmnf_v2",
+         (float __x, float __y, float __z, int __layer), "tex.acube.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %8}];",
+         ("r"(__layer), "f"(__x), "f"(__y), "f"(__z)));
+__IMPL_ALIAS("__itexCubemapLayered", "__texCubemapLayered_v2");
+
+__IMPL_S("__texCubemapLayeredGrad_v2", "__texCubemapLayeredGrad_rmnf_v2",
+         (float __x, float __y, float __z, int __layer, const float4 *__dPdx,
+          const float4 *__dPdy),
+         "tex.grad.acube.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %8}], "
+         "{%9, %10, %11, %11}, {%12, %13, %14, %14};",
+         ("r"(__layer), "f"(__x), "f"(__y), "f"(__z), "f"(__dPdx->x),
+          "f"(__dPdx->y), "f"(__dPdx->z), "f"(__dPdy->x), "f"(__dPdy->y),
+          "f"(__dPdy->z)));
+__IMPL_ALIAS("__itexCubemapLayeredGrad_v2", "__texCubemapLayeredGrad_v2");
+
+__IMPL_S("__texCubemapLayeredLod_v2", "__texCubemapLayeredLod_rmnf_v2",
+         (float __x, float __y, float __z, int __layer, float __level),
+         "tex.level.acube.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %8}], %9;",
+         ("r"(__layer), "f"(__x), "f"(__y), "f"(__z), "f"(__level)));
+__IMPL_ALIAS("__itexCubemapLayeredLod", "__texCubemapLayeredLod_v2");
+
+__IMPL_S("__texCubemapLod_v2", "__texCubemapLod_rmnf_v2",
+         (float __x, float __y, float __z, float __level), "tex.level.cube.v4",
+         "f32", "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %7}], %8;",
+         ("f"(__x), "f"(__y), "f"(__z), "f"(__level)));
+__IMPL_ALIAS("__itexCubemapLod", "__texCubemapLod_v2");
+
+// Helper class for extracting slice of data from V4 fetch results.
+template <class __DestT, class __SrcT> struct __convert {
+  template <int __NElements = sizeof(__DestT) /
+                              sizeof(typename __TypeInfoT<__DestT>::__base_t)>
+  __device__ static __DestT __run(__SrcT __v);
+  template <> __device__ static __DestT __run<1>(__SrcT __v) { return {__v.x}; }
+  template <> __device__ static __DestT __run<2>(__SrcT __v) {
+    return {__v.x, __v.y};
+  }
+  template <> __device__ static __DestT __run<3>(__SrcT __v) {
+    return {__v.x, __v.y, __v.z};
+  }
+  template <> __device__ static __DestT __run<4>(__SrcT __v) {
+    return {__v.x, __v.y, __v.z, __v.w};
+  }
+};
+
+// These are the top-level function overloads the __nv_tex_surf_handler expands
+// to.  Each overload deals with one of the several ways __nv_tex_surf_handler
+// is called by CUDA headers. In the end, each of the overloads does the same
+// job -- it figures out which `__tex_fetch_v4::run` variant should be used to
+// fetch texture data and which `__convert::run` is needed to convert it into
+// appropriate return type.
+
+// __nv_tex_surf_handler("__tex...", &ret, cudaTextureObject_t handle, args...);
+//   Data type and return type are based on ret.
+template <class __op, class __T, class... __Args>
+__device__ static void __tex_fetch(__T *__ptr, cudaTextureObject_t __handle,
+                                   __Args... __args) {
+  using __FetchT = typename __TypeInfoT<__T>::__fetch_t;
+  *__ptr = __convert<__T, __FetchT>::__run(
+      __tex_fetch_v4<__op>::template __run<__FetchT>(__handle, __args...));
+}
+
+// texture<> objects get magically converted into a texture reference.  However,
+// there's no way to convert them to cudaTextureObject_t on C++ level. So, we
+// cheat a bit and use inline assembly to do it. It costs us an extra register
+// and a move, but that is easy for ptxas to optimize away.
+template <class __T>
+__device__ cudaTextureObject_t __tex_handle_to_obj(__T __handle) {
+  cudaTextureObject_t __obj;
+  asm("mov.b64 %0, %1; " : "=l"(__obj) : "l"(__handle));
+  return __obj;
+}
+
+// __nv_tex_surf_handler ("__tex...", &ret, textureReference, args...);
+//   Data type and return type is based on ret.
+template <class __op, class __T, class __HandleT, class... __Args>
+__device__ static void __tex_fetch(__T *__ptr, __HandleT __handle,
+                                   __Args... __args) {
+  using __FetchT = typename __TypeInfoT<__T>::__fetch_t;
+  *__ptr = __convert<__T, __FetchT>::__run(
+      __tex_fetch_v4<__op>::template __run<__FetchT>(
+          __tex_handle_to_obj(__handle), __args...));
+}
+
+// __nv_tex_surf_handler ("__tex...", &type_dummy, &ret, texture<...>, args...);
+// cudaReadModeNormalizedFloat fetches always return float4.
+template <class __op, class __DataT, class __RetT, int __TexT, class... __Args>
+__device__ static void
+__tex_fetch(__DataT *, __RetT *__ptr,
+            texture<__DataT, __TexT, cudaReadModeNormalizedFloat> __handle,
+            __Args... __args) {
+  using __FetchT = typename __TypeInfoT<__DataT>::__fetch_t;
+  *__ptr = __convert<__RetT, float4>::__run(
+      __tex_fetch_v4<__op>::template __run<__FetchT>(
+          __tex_handle_to_obj(__handle), __args...));
+}
+
+// __nv_tex_surf_handler ("__tex...", &type_dummy, &ret, texture<...>, args...);
+// For cudaReadModeElementType fetch return type is based on type_dummy.
+template <class __op, class __DataT, class __RetT, int __TexT, class... __Args>
+__device__ static void
+__tex_fetch(__DataT *, __RetT *__ptr,
+            texture<__DataT, __TexT, cudaReadModeElementType> __handle,
+            __Args... __args) {
+  using __FetchT = typename __TypeInfoT<__DataT>::__fetch_t;
+  *__ptr = __convert<__RetT, __FetchT>::__run(
+      __tex_fetch_v4<__op>::template __run<__FetchT>(
+          __tex_handle_to_obj(__handle), __args...));
+}
+} // namespace __cuda_tex
+} // namespace
+#pragma pop_macro("__ASM_OUT")
+#pragma pop_macro("__ASM_OUTP")
+#pragma pop_macro("__Args")
+#pragma pop_macro("__ID")
+#pragma pop_macro("__IDV")
+#pragma pop_macro("__IMPL_2DGATHER")
+#pragma pop_macro("__IMPL_ALIAS")
+#pragma pop_macro("__IMPL_ALIASI")
+#pragma pop_macro("__IMPL_F1")
+#pragma pop_macro("__IMPL_F3")
+#pragma pop_macro("__IMPL_F3N")
+#pragma pop_macro("__IMPL_F3S")
+#pragma pop_macro("__IMPL_S")
+#pragma pop_macro("__IMPL_S3")
+#pragma pop_macro("__IMPL_S3I")
+#pragma pop_macro("__IMPL_S3N")
+#pragma pop_macro("__IMPL_S3NI")
+#pragma pop_macro("__IMPL_S3S")
+#pragma pop_macro("__IMPL_S3SI")
+#pragma pop_macro("__IMPL_SI")
+#pragma pop_macro("__L")
+#pragma pop_macro("__STRIP_PARENS")
+#endif // __CLANG_CUDA_TEXTURE_INTRINSICS_H__
diff --git a/darwin-x86/lib64/clang/14.0.1/include/__clang_hip_cmath.h b/darwin-x86/lib64/clang/14.0.2/include/__clang_hip_cmath.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/__clang_hip_cmath.h
rename to darwin-x86/lib64/clang/14.0.2/include/__clang_hip_cmath.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/__clang_hip_libdevice_declares.h b/darwin-x86/lib64/clang/14.0.2/include/__clang_hip_libdevice_declares.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/__clang_hip_libdevice_declares.h
rename to darwin-x86/lib64/clang/14.0.2/include/__clang_hip_libdevice_declares.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/__clang_hip_math.h b/darwin-x86/lib64/clang/14.0.2/include/__clang_hip_math.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/__clang_hip_math.h
rename to darwin-x86/lib64/clang/14.0.2/include/__clang_hip_math.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/__clang_hip_runtime_wrapper.h b/darwin-x86/lib64/clang/14.0.2/include/__clang_hip_runtime_wrapper.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/__clang_hip_runtime_wrapper.h
rename to darwin-x86/lib64/clang/14.0.2/include/__clang_hip_runtime_wrapper.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/__stddef_max_align_t.h b/darwin-x86/lib64/clang/14.0.2/include/__stddef_max_align_t.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/__stddef_max_align_t.h
rename to darwin-x86/lib64/clang/14.0.2/include/__stddef_max_align_t.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/__wmmintrin_aes.h b/darwin-x86/lib64/clang/14.0.2/include/__wmmintrin_aes.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/__wmmintrin_aes.h
rename to darwin-x86/lib64/clang/14.0.2/include/__wmmintrin_aes.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/__wmmintrin_pclmul.h b/darwin-x86/lib64/clang/14.0.2/include/__wmmintrin_pclmul.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/__wmmintrin_pclmul.h
rename to darwin-x86/lib64/clang/14.0.2/include/__wmmintrin_pclmul.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/adxintrin.h b/darwin-x86/lib64/clang/14.0.2/include/adxintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/adxintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/adxintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/altivec.h b/darwin-x86/lib64/clang/14.0.2/include/altivec.h
similarity index 98%
rename from darwin-x86/lib64/clang/14.0.1/include/altivec.h
rename to darwin-x86/lib64/clang/14.0.2/include/altivec.h
index fa9100a..55195b0 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/altivec.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/altivec.h
@@ -19,6 +19,10 @@
 #define __CR6_EQ_REV 1
 #define __CR6_LT 2
 #define __CR6_LT_REV 3
+#define __CR6_GT 4
+#define __CR6_GT_REV 5
+#define __CR6_SO 6
+#define __CR6_SO_REV 7
 
 /* Constants for vec_test_data_class */
 #define __VEC_CLASS_FP_SUBNORMAL_N (1 << 0)
@@ -1810,6 +1814,11 @@
   return (vector bool __int128)__builtin_altivec_vcmpequq(
       (vector bool __int128)__a, (vector bool __int128)__b);
 }
+
+static __inline__ vector bool __int128 __ATTRS_o_ai
+vec_cmpeq(vector bool __int128 __a, vector bool  __int128 __b) {
+  return (vector bool __int128)__builtin_altivec_vcmpequq(__a, __b);
+}
 #endif
 
 #ifdef __POWER9_VECTOR__
@@ -1887,6 +1896,11 @@
   return (vector bool __int128) ~(__builtin_altivec_vcmpequq(
       (vector bool __int128)__a, (vector bool __int128)__b));
 }
+
+static __inline__ vector bool __int128 __ATTRS_o_ai
+vec_cmpne(vector bool __int128 __a, vector bool __int128 __b) {
+  return (vector bool __int128) ~(__builtin_altivec_vcmpequq(__a, __b));
+}
 #endif
 
 /* vec_cmpnez */
@@ -2472,7 +2486,7 @@
 #ifdef __POWER8_VECTOR__
 /* vec_popcnt */
 
-static __inline__ vector signed char __ATTRS_o_ai
+static __inline__ vector unsigned char __ATTRS_o_ai
 vec_popcnt(vector signed char __a) {
   return __builtin_altivec_vpopcntb(__a);
 }
@@ -2480,7 +2494,7 @@
 vec_popcnt(vector unsigned char __a) {
   return __builtin_altivec_vpopcntb(__a);
 }
-static __inline__ vector signed short __ATTRS_o_ai
+static __inline__ vector unsigned short __ATTRS_o_ai
 vec_popcnt(vector signed short __a) {
   return __builtin_altivec_vpopcnth(__a);
 }
@@ -2488,7 +2502,7 @@
 vec_popcnt(vector unsigned short __a) {
   return __builtin_altivec_vpopcnth(__a);
 }
-static __inline__ vector signed int __ATTRS_o_ai
+static __inline__ vector unsigned int __ATTRS_o_ai
 vec_popcnt(vector signed int __a) {
   return __builtin_altivec_vpopcntw(__a);
 }
@@ -2496,7 +2510,7 @@
 vec_popcnt(vector unsigned int __a) {
   return __builtin_altivec_vpopcntw(__a);
 }
-static __inline__ vector signed long long __ATTRS_o_ai
+static __inline__ vector unsigned long long __ATTRS_o_ai
 vec_popcnt(vector signed long long __a) {
   return __builtin_altivec_vpopcntd(__a);
 }
@@ -7099,6 +7113,11 @@
   return (vector float)((vector unsigned int)__a | ~__b);
 }
 
+static __inline__ vector float __ATTRS_o_ai vec_orc(vector float __a,
+                                                    vector float __b) {
+  return (vector float)((vector unsigned int)__a | ~(vector unsigned int)__b);
+}
+
 static __inline__ vector signed long long __ATTRS_o_ai
 vec_orc(vector signed long long __a, vector signed long long __b) {
   return __a | ~__b;
@@ -7143,6 +7162,12 @@
 vec_orc(vector bool long long __a, vector double __b) {
   return (vector double)(__a | ~(vector unsigned long long)__b);
 }
+
+static __inline__ vector double __ATTRS_o_ai vec_orc(vector double __a,
+                                                     vector double __b) {
+  return (vector double)((vector bool long long)__a |
+                         ~(vector unsigned long long)__b);
+}
 #endif
 
 /* vec_vor */
@@ -8392,9 +8417,20 @@
 }
 
 #ifdef __VSX__
+#ifdef __XL_COMPAT_ALTIVEC__
+static __inline__ vector double __ATTRS_o_ai vec_rint(vector double __a);
+static __inline__ vector double __ATTRS_o_ai vec_round(vector double __a) {
+  double __fpscr = __builtin_readflm();
+  __builtin_setrnd(0);
+  vector double __rounded = vec_rint(__a);
+  __builtin_setflm(__fpscr);
+  return __rounded;
+}
+#else
 static __inline__ vector double __ATTRS_o_ai vec_round(vector double __a) {
   return __builtin_vsx_xvrdpi(__a);
 }
+#endif
 
 /* vec_rint */
 
@@ -8832,7 +8868,7 @@
 vec_sl(vector long long __a, vector unsigned long long __b) {
   return (vector long long)vec_sl((vector unsigned long long)__a, __b);
 }
-#else
+#elif defined(__VSX__)
 static __inline__ vector unsigned char __ATTRS_o_ai
 vec_vspltb(vector unsigned char __a, unsigned char __b);
 static __inline__ vector unsigned long long __ATTRS_o_ai
@@ -8878,7 +8914,7 @@
 vec_sl(vector long long __a, vector unsigned long long __b) {
   return (vector long long)vec_sl((vector unsigned long long)__a, __b);
 }
-#endif
+#endif /* __VSX__ */
 
 /* vec_vslb */
 
@@ -10343,7 +10379,7 @@
 vec_sr(vector long long __a, vector unsigned long long __b) {
   return (vector long long)vec_sr((vector unsigned long long)__a, __b);
 }
-#else
+#elif defined(__VSX__)
 static __inline__ vector unsigned long long __ATTRS_o_ai
 vec_sr(vector unsigned long long __a, vector unsigned long long __b) {
   __b %= (vector unsigned long long)(sizeof(unsigned long long) * __CHAR_BIT__);
@@ -10387,7 +10423,7 @@
 vec_sr(vector long long __a, vector unsigned long long __b) {
   return (vector long long)vec_sr((vector unsigned long long)__a, __b);
 }
-#endif
+#endif /* __VSX__ */
 
 /* vec_vsrb */
 
@@ -10473,7 +10509,7 @@
 vec_sra(vector unsigned long long __a, vector unsigned long long __b) {
   return (vector unsigned long long)((vector signed long long)__a >> __b);
 }
-#else
+#elif defined(__VSX__)
 static __inline__ vector signed long long __ATTRS_o_ai
 vec_sra(vector signed long long __a, vector unsigned long long __b) {
   __b %= (vector unsigned long long)(sizeof(unsigned long long) * __CHAR_BIT__);
@@ -10485,7 +10521,7 @@
   __b %= (vector unsigned long long)(sizeof(unsigned long long) * __CHAR_BIT__);
   return (vector unsigned long long)((vector signed long long)__a >> __b);
 }
-#endif
+#endif /* __VSX__ */
 
 /* vec_vsrab */
 
@@ -13434,74 +13470,74 @@
 /* vec_extract */
 
 static __inline__ signed char __ATTRS_o_ai vec_extract(vector signed char __a,
-                                                       unsigned int __b) {
+                                                       signed int __b) {
   return __a[__b & 0xf];
 }
 
 static __inline__ unsigned char __ATTRS_o_ai
-vec_extract(vector unsigned char __a, unsigned int __b) {
+vec_extract(vector unsigned char __a, signed int __b) {
   return __a[__b & 0xf];
 }
 
 static __inline__ unsigned char __ATTRS_o_ai vec_extract(vector bool char __a,
-                                                         unsigned int __b) {
+                                                         signed int __b) {
   return __a[__b & 0xf];
 }
 
 static __inline__ signed short __ATTRS_o_ai vec_extract(vector signed short __a,
-                                                        unsigned int __b) {
+                                                        signed int __b) {
   return __a[__b & 0x7];
 }
 
 static __inline__ unsigned short __ATTRS_o_ai
-vec_extract(vector unsigned short __a, unsigned int __b) {
+vec_extract(vector unsigned short __a, signed int __b) {
   return __a[__b & 0x7];
 }
 
 static __inline__ unsigned short __ATTRS_o_ai vec_extract(vector bool short __a,
-                                                          unsigned int __b) {
+                                                          signed int __b) {
   return __a[__b & 0x7];
 }
 
 static __inline__ signed int __ATTRS_o_ai vec_extract(vector signed int __a,
-                                                      unsigned int __b) {
+                                                      signed int __b) {
   return __a[__b & 0x3];
 }
 
 static __inline__ unsigned int __ATTRS_o_ai vec_extract(vector unsigned int __a,
-                                                        unsigned int __b) {
+                                                        signed int __b) {
   return __a[__b & 0x3];
 }
 
 static __inline__ unsigned int __ATTRS_o_ai vec_extract(vector bool int __a,
-                                                        unsigned int __b) {
+                                                        signed int __b) {
   return __a[__b & 0x3];
 }
 
 #ifdef __VSX__
 static __inline__ signed long long __ATTRS_o_ai
-vec_extract(vector signed long long __a, unsigned int __b) {
+vec_extract(vector signed long long __a, signed int __b) {
   return __a[__b & 0x1];
 }
 
 static __inline__ unsigned long long __ATTRS_o_ai
-vec_extract(vector unsigned long long __a, unsigned int __b) {
+vec_extract(vector unsigned long long __a, signed int __b) {
   return __a[__b & 0x1];
 }
 
 static __inline__ unsigned long long __ATTRS_o_ai
-vec_extract(vector bool long long __a, unsigned int __b) {
+vec_extract(vector bool long long __a, signed int __b) {
   return __a[__b & 0x1];
 }
 
 static __inline__ double __ATTRS_o_ai vec_extract(vector double __a,
-                                                  unsigned int __b) {
+                                                  signed int __b) {
   return __a[__b & 0x1];
 }
 #endif
 
 static __inline__ float __ATTRS_o_ai vec_extract(vector float __a,
-                                                 unsigned int __b) {
+                                                 signed int __b) {
   return __a[__b & 0x3];
 }
 
@@ -13561,82 +13597,82 @@
 
 static __inline__ vector signed char __ATTRS_o_ai
 vec_insert(signed char __a, vector signed char __b, int __c) {
-  __b[__c] = __a;
+  __b[__c & 0xF] = __a;
   return __b;
 }
 
 static __inline__ vector unsigned char __ATTRS_o_ai
 vec_insert(unsigned char __a, vector unsigned char __b, int __c) {
-  __b[__c] = __a;
+  __b[__c & 0xF] = __a;
   return __b;
 }
 
 static __inline__ vector bool char __ATTRS_o_ai vec_insert(unsigned char __a,
                                                            vector bool char __b,
                                                            int __c) {
-  __b[__c] = __a;
+  __b[__c & 0xF] = __a;
   return __b;
 }
 
 static __inline__ vector signed short __ATTRS_o_ai
 vec_insert(signed short __a, vector signed short __b, int __c) {
-  __b[__c] = __a;
+  __b[__c & 0x7] = __a;
   return __b;
 }
 
 static __inline__ vector unsigned short __ATTRS_o_ai
 vec_insert(unsigned short __a, vector unsigned short __b, int __c) {
-  __b[__c] = __a;
+  __b[__c & 0x7] = __a;
   return __b;
 }
 
 static __inline__ vector bool short __ATTRS_o_ai
 vec_insert(unsigned short __a, vector bool short __b, int __c) {
-  __b[__c] = __a;
+  __b[__c & 0x7] = __a;
   return __b;
 }
 
 static __inline__ vector signed int __ATTRS_o_ai
 vec_insert(signed int __a, vector signed int __b, int __c) {
-  __b[__c] = __a;
+  __b[__c & 0x3] = __a;
   return __b;
 }
 
 static __inline__ vector unsigned int __ATTRS_o_ai
 vec_insert(unsigned int __a, vector unsigned int __b, int __c) {
-  __b[__c] = __a;
+  __b[__c & 0x3] = __a;
   return __b;
 }
 
 static __inline__ vector bool int __ATTRS_o_ai vec_insert(unsigned int __a,
                                                           vector bool int __b,
                                                           int __c) {
-  __b[__c] = __a;
+  __b[__c & 0x3] = __a;
   return __b;
 }
 
 #ifdef __VSX__
 static __inline__ vector signed long long __ATTRS_o_ai
 vec_insert(signed long long __a, vector signed long long __b, int __c) {
-  __b[__c] = __a;
+  __b[__c & 0x1] = __a;
   return __b;
 }
 
 static __inline__ vector unsigned long long __ATTRS_o_ai
 vec_insert(unsigned long long __a, vector unsigned long long __b, int __c) {
-  __b[__c] = __a;
+  __b[__c & 0x1] = __a;
   return __b;
 }
 
 static __inline__ vector bool long long __ATTRS_o_ai
 vec_insert(unsigned long long __a, vector bool long long __b, int __c) {
-  __b[__c] = __a;
+  __b[__c & 0x1] = __a;
   return __b;
 }
 static __inline__ vector double __ATTRS_o_ai vec_insert(double __a,
                                                         vector double __b,
                                                         int __c) {
-  __b[__c] = __a;
+  __b[__c & 0x1] = __a;
   return __b;
 }
 #endif
@@ -13644,7 +13680,7 @@
 static __inline__ vector float __ATTRS_o_ai vec_insert(float __a,
                                                        vector float __b,
                                                        int __c) {
-  __b[__c] = __a;
+  __b[__c & 0x3] = __a;
   return __b;
 }
 
@@ -14805,42 +14841,43 @@
 #ifdef __VSX__
 static __inline__ int __ATTRS_o_ai vec_all_eq(vector signed long long __a,
                                               vector signed long long __b) {
+#ifdef __POWER8_VECTOR__
   return __builtin_altivec_vcmpequd_p(__CR6_LT, __a, __b);
+#else
+  // No vcmpequd on Power7 so we xor the two vectors and compare against zero as
+  // 32-bit elements.
+  return vec_all_eq((vector signed int)vec_xor(__a, __b), (vector signed int)0);
+#endif
 }
 
 static __inline__ int __ATTRS_o_ai vec_all_eq(vector long long __a,
                                               vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT, __a, (vector long long)__b);
+  return vec_all_eq((vector signed long long)__a, (vector signed long long)__b);
 }
 
 static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned long long __a,
                                               vector unsigned long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
-                                      (vector long long)__b);
+  return vec_all_eq((vector signed long long)__a, (vector signed long long)__b);
 }
 
 static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned long long __a,
                                               vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
-                                      (vector long long)__b);
+  return vec_all_eq((vector signed long long)__a, (vector signed long long)__b);
 }
 
 static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool long long __a,
                                               vector long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
-                                      (vector long long)__b);
+  return vec_all_eq((vector signed long long)__a, (vector signed long long)__b);
 }
 
 static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool long long __a,
                                               vector unsigned long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
-                                      (vector long long)__b);
+  return vec_all_eq((vector signed long long)__a, (vector signed long long)__b);
 }
 
 static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool long long __a,
                                               vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
-                                      (vector long long)__b);
+  return vec_all_eq((vector signed long long)__a, (vector signed long long)__b);
 }
 #endif
 
@@ -14870,6 +14907,11 @@
                                               vector unsigned __int128 __b) {
   return __builtin_altivec_vcmpequq_p(__CR6_LT, __a, __b);
 }
+
+static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool __int128 __a,
+                                              vector bool __int128 __b) {
+  return __builtin_altivec_vcmpequq_p(__CR6_LT, __a, __b);
+}
 #endif
 
 /* vec_all_ge */
@@ -15815,6 +15857,11 @@
                                               vector unsigned __int128 __b) {
   return __builtin_altivec_vcmpequq_p(__CR6_EQ, __a, __b);
 }
+
+static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool __int128 __a,
+                                              vector bool __int128 __b) {
+  return __builtin_altivec_vcmpequq_p(__CR6_EQ, __a, __b);
+}
 #endif
 
 /* vec_all_nge */
@@ -16104,6 +16151,11 @@
                                               vector unsigned __int128 __b) {
   return __builtin_altivec_vcmpequq_p(__CR6_EQ_REV, __a, __b);
 }
+
+static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool __int128 __a,
+                                              vector bool __int128 __b) {
+  return __builtin_altivec_vcmpequq_p(__CR6_EQ_REV, __a, __b);
+}
 #endif
 
 /* vec_any_ge */
@@ -17013,43 +17065,43 @@
 #ifdef __VSX__
 static __inline__ int __ATTRS_o_ai vec_any_ne(vector signed long long __a,
                                               vector signed long long __b) {
+#ifdef __POWER8_VECTOR__
   return __builtin_altivec_vcmpequd_p(__CR6_LT_REV, __a, __b);
+#else
+  // Take advantage of the optimized sequence for vec_all_eq when vcmpequd is
+  // not available.
+  return !vec_all_eq(__a, __b);
+#endif
 }
 
 static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned long long __a,
                                               vector unsigned long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT_REV, (vector long long)__a,
-                                      (vector long long)__b);
+  return vec_any_ne((vector signed long long)__a, (vector signed long long)__b);
 }
 
 static __inline__ int __ATTRS_o_ai vec_any_ne(vector signed long long __a,
                                               vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT_REV, __a,
-                                      (vector signed long long)__b);
+  return vec_any_ne((vector signed long long)__a, (vector signed long long)__b);
 }
 
 static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned long long __a,
                                               vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(
-      __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b);
+  return vec_any_ne((vector signed long long)__a, (vector signed long long)__b);
 }
 
 static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool long long __a,
                                               vector signed long long __b) {
-  return __builtin_altivec_vcmpequd_p(
-      __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b);
+  return vec_any_ne((vector signed long long)__a, (vector signed long long)__b);
 }
 
 static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool long long __a,
                                               vector unsigned long long __b) {
-  return __builtin_altivec_vcmpequd_p(
-      __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b);
+  return vec_any_ne((vector signed long long)__a, (vector signed long long)__b);
 }
 
 static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool long long __a,
                                               vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(
-      __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b);
+  return vec_any_ne((vector signed long long)__a, (vector signed long long)__b);
 }
 #endif
 
@@ -17079,6 +17131,11 @@
                                               vector unsigned __int128 __b) {
   return __builtin_altivec_vcmpequq_p(__CR6_LT_REV, __a, __b);
 }
+
+static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool __int128 __a,
+                                              vector bool __int128 __b) {
+  return __builtin_altivec_vcmpequq_p(__CR6_LT_REV, __a, __b);
+}
 #endif
 
 /* vec_any_nge */
@@ -17196,6 +17253,7 @@
 #define vec_ncipher_be __builtin_altivec_crypto_vncipher
 #define vec_ncipherlast_be __builtin_altivec_crypto_vncipherlast
 
+#ifdef __VSX__
 static __inline__ vector unsigned long long __attribute__((__always_inline__))
 __builtin_crypto_vsbox(vector unsigned long long __a) {
   return __builtin_altivec_crypto_vsbox(__a);
@@ -17224,6 +17282,7 @@
                               vector unsigned long long __b) {
   return __builtin_altivec_crypto_vncipherlast(__a, __b);
 }
+#endif /* __VSX__ */
 
 #define __builtin_crypto_vshasigmad __builtin_altivec_crypto_vshasigmad
 #define __builtin_crypto_vshasigmaw __builtin_altivec_crypto_vshasigmaw
@@ -17339,12 +17398,22 @@
 }
 
 #if defined(__powerpc64__) && defined(__SIZEOF_INT128__)
-static __inline__ vector unsigned long long __attribute__((__always_inline__))
+static __inline__ vector unsigned long long __ATTRS_o_ai
 vec_bperm(vector unsigned __int128 __a, vector unsigned char __b) {
   return __builtin_altivec_vbpermq((vector unsigned char)__a,
                                    (vector unsigned char)__b);
 }
 #endif
+static __inline__ vector unsigned char __ATTRS_o_ai
+vec_bperm(vector unsigned char __a, vector unsigned char __b) {
+  return __builtin_altivec_vbpermq(__a, __b);
+}
+#endif // __POWER8_VECTOR__
+#ifdef __POWER9_VECTOR__
+static __inline__ vector unsigned long long __ATTRS_o_ai
+vec_bperm(vector unsigned long long __a, vector unsigned char __b) {
+  return __builtin_altivec_vbpermd(__a, __b);
+}
 #endif
 
 
@@ -18191,13 +18260,13 @@
 
 #define vec_cntm(__a, __mp)                                                    \
   _Generic((__a), vector unsigned char                                         \
-           : __builtin_altivec_vcntmbb((__a), (unsigned int)(__mp)),           \
+           : __builtin_altivec_vcntmbb((__a), (unsigned char)(__mp)),          \
              vector unsigned short                                             \
-           : __builtin_altivec_vcntmbh((__a), (unsigned int)(__mp)),           \
+           : __builtin_altivec_vcntmbh((__a), (unsigned char)(__mp)),          \
              vector unsigned int                                               \
-           : __builtin_altivec_vcntmbw((__a), (unsigned int)(__mp)),           \
+           : __builtin_altivec_vcntmbw((__a), (unsigned char)(__mp)),          \
              vector unsigned long long                                         \
-           : __builtin_altivec_vcntmbd((__a), (unsigned int)(__mp)))
+           : __builtin_altivec_vcntmbd((__a), (unsigned char)(__mp)))
 
 /* vec_gen[b|h|w|d|q]m */
 
@@ -18726,36 +18795,39 @@
 
 static __inline__ vector signed int __ATTRS_o_ai vec_splati_ins(
     vector signed int __a, const unsigned int __b, const signed int __c) {
+  const unsigned int __d = __b & 0x01;
 #ifdef __LITTLE_ENDIAN__
-  __a[1 - __b] = __c;
-  __a[3 - __b] = __c;
+  __a[1 - __d] = __c;
+  __a[3 - __d] = __c;
 #else
-  __a[__b] = __c;
-  __a[2 + __b] = __c;
+  __a[__d] = __c;
+  __a[2 + __d] = __c;
 #endif
   return __a;
 }
 
 static __inline__ vector unsigned int __ATTRS_o_ai vec_splati_ins(
     vector unsigned int __a, const unsigned int __b, const unsigned int __c) {
+  const unsigned int __d = __b & 0x01;
 #ifdef __LITTLE_ENDIAN__
-  __a[1 - __b] = __c;
-  __a[3 - __b] = __c;
+  __a[1 - __d] = __c;
+  __a[3 - __d] = __c;
 #else
-  __a[__b] = __c;
-  __a[2 + __b] = __c;
+  __a[__d] = __c;
+  __a[2 + __d] = __c;
 #endif
   return __a;
 }
 
 static __inline__ vector float __ATTRS_o_ai
 vec_splati_ins(vector float __a, const unsigned int __b, const float __c) {
+  const unsigned int __d = __b & 0x01;
 #ifdef __LITTLE_ENDIAN__
-  __a[1 - __b] = __c;
-  __a[3 - __b] = __c;
+  __a[1 - __d] = __c;
+  __a[3 - __d] = __c;
 #else
-  __a[__b] = __c;
-  __a[2 + __b] = __c;
+  __a[__d] = __c;
+  __a[2 + __d] = __c;
 #endif
   return __a;
 }
@@ -18969,6 +19041,51 @@
 #endif /* __SIZEOF_INT128__ */
 #endif /* __POWER10_VECTOR__ */
 
+#ifdef __POWER8_VECTOR__
+#define __bcdadd(__a, __b, __ps) __builtin_ppc_bcdadd((__a), (__b), (__ps))
+#define __bcdsub(__a, __b, __ps) __builtin_ppc_bcdsub((__a), (__b), (__ps))
+
+static __inline__ long __bcdadd_ofl(vector unsigned char __a,
+                                    vector unsigned char __b) {
+  return __builtin_ppc_bcdadd_p(__CR6_SO, __a, __b);
+}
+
+static __inline__ long __bcdsub_ofl(vector unsigned char __a,
+                                    vector unsigned char __b) {
+  return __builtin_ppc_bcdsub_p(__CR6_SO, __a, __b);
+}
+
+static __inline__ long __bcd_invalid(vector unsigned char __a) {
+  return __builtin_ppc_bcdsub_p(__CR6_SO, __a, __a);
+}
+
+static __inline__ long __bcdcmpeq(vector unsigned char __a,
+                                  vector unsigned char __b) {
+  return __builtin_ppc_bcdsub_p(__CR6_EQ, __a, __b);
+}
+
+static __inline__ long __bcdcmplt(vector unsigned char __a,
+                                  vector unsigned char __b) {
+  return __builtin_ppc_bcdsub_p(__CR6_LT, __a, __b);
+}
+
+static __inline__ long __bcdcmpgt(vector unsigned char __a,
+                                  vector unsigned char __b) {
+  return __builtin_ppc_bcdsub_p(__CR6_GT, __a, __b);
+}
+
+static __inline__ long __bcdcmple(vector unsigned char __a,
+                                  vector unsigned char __b) {
+  return __builtin_ppc_bcdsub_p(__CR6_GT_REV, __a, __b);
+}
+
+static __inline__ long __bcdcmpge(vector unsigned char __a,
+                                  vector unsigned char __b) {
+  return __builtin_ppc_bcdsub_p(__CR6_LT_REV, __a, __b);
+}
+
+#endif // __POWER8_VECTOR__
+
 #undef __ATTRS_o_ai
 
 #endif /* __ALTIVEC_H */
diff --git a/darwin-x86/lib64/clang/14.0.1/include/ammintrin.h b/darwin-x86/lib64/clang/14.0.2/include/ammintrin.h
similarity index 98%
rename from darwin-x86/lib64/clang/14.0.1/include/ammintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/ammintrin.h
index 3806be6..1af2096 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/ammintrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/ammintrin.h
@@ -10,6 +10,10 @@
 #ifndef __AMMINTRIN_H
 #define __AMMINTRIN_H
 
+#if !defined(__i386__) && !defined(__x86_64__)
+#error "This header is only meant to be used on x86 and x64 architecture"
+#endif
+
 #include <pmmintrin.h>
 
 /* Define the default attributes for the functions in this file. */
diff --git a/darwin-x86/lib64/clang/14.0.1/include/amxintrin.h b/darwin-x86/lib64/clang/14.0.2/include/amxintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/amxintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/amxintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/arm64intr.h b/darwin-x86/lib64/clang/14.0.2/include/arm64intr.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/arm64intr.h
rename to darwin-x86/lib64/clang/14.0.2/include/arm64intr.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/arm_acle.h b/darwin-x86/lib64/clang/14.0.2/include/arm_acle.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/arm_acle.h
rename to darwin-x86/lib64/clang/14.0.2/include/arm_acle.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/arm_bf16.h b/darwin-x86/lib64/clang/14.0.2/include/arm_bf16.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/arm_bf16.h
rename to darwin-x86/lib64/clang/14.0.2/include/arm_bf16.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/arm_cde.h b/darwin-x86/lib64/clang/14.0.2/include/arm_cde.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/arm_cde.h
rename to darwin-x86/lib64/clang/14.0.2/include/arm_cde.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/arm_cmse.h b/darwin-x86/lib64/clang/14.0.2/include/arm_cmse.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/arm_cmse.h
rename to darwin-x86/lib64/clang/14.0.2/include/arm_cmse.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/arm_fp16.h b/darwin-x86/lib64/clang/14.0.2/include/arm_fp16.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/arm_fp16.h
rename to darwin-x86/lib64/clang/14.0.2/include/arm_fp16.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/arm_mve.h b/darwin-x86/lib64/clang/14.0.2/include/arm_mve.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/arm_mve.h
rename to darwin-x86/lib64/clang/14.0.2/include/arm_mve.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/arm_neon.h b/darwin-x86/lib64/clang/14.0.2/include/arm_neon.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/arm_neon.h
rename to darwin-x86/lib64/clang/14.0.2/include/arm_neon.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/arm_sve.h b/darwin-x86/lib64/clang/14.0.2/include/arm_sve.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/arm_sve.h
rename to darwin-x86/lib64/clang/14.0.2/include/arm_sve.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/armintr.h b/darwin-x86/lib64/clang/14.0.2/include/armintr.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/armintr.h
rename to darwin-x86/lib64/clang/14.0.2/include/armintr.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx2intrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx2intrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx2intrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx2intrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512bf16intrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512bf16intrin.h
similarity index 97%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512bf16intrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512bf16intrin.h
index d1d87e7..0965373 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/avx512bf16intrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/avx512bf16intrin.h
@@ -232,7 +232,7 @@
 ///
 /// \param __A
 ///    A 256-bit vector of [16 x bfloat].
-/// \returns A 512-bit vector of [16 x float] come from convertion of __A
+/// \returns A 512-bit vector of [16 x float] come from conversion of __A
 static __inline__ __m512 __DEFAULT_FN_ATTRS512 _mm512_cvtpbh_ps(__m256bh __A) {
   return _mm512_castsi512_ps((__m512i)_mm512_slli_epi32(
       (__m512i)_mm512_cvtepi16_epi32((__m256i)__A), 16));
@@ -247,7 +247,7 @@
 ///    bit is not set.
 /// \param __A
 ///    A 256-bit vector of [16 x bfloat].
-/// \returns A 512-bit vector of [16 x float] come from convertion of __A
+/// \returns A 512-bit vector of [16 x float] come from conversion of __A
 static __inline__ __m512 __DEFAULT_FN_ATTRS512
 _mm512_maskz_cvtpbh_ps(__mmask16 __U, __m256bh __A) {
   return _mm512_castsi512_ps((__m512i)_mm512_slli_epi32(
@@ -265,7 +265,7 @@
 ///    A 16-bit mask.
 /// \param __A
 ///    A 256-bit vector of [16 x bfloat].
-/// \returns A 512-bit vector of [16 x float] come from convertion of __A
+/// \returns A 512-bit vector of [16 x float] come from conversion of __A
 static __inline__ __m512 __DEFAULT_FN_ATTRS512
 _mm512_mask_cvtpbh_ps(__m512 __S, __mmask16 __U, __m256bh __A) {
   return _mm512_castsi512_ps((__m512i)_mm512_mask_slli_epi32(
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512bitalgintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512bitalgintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512bitalgintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512bitalgintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512bwintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512bwintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512bwintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512bwintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512cdintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512cdintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512cdintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512cdintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512dqintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512dqintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512dqintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512dqintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512erintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512erintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512erintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512erintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512fintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512fintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512fintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512fintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512fp16intrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512fp16intrin.h
similarity index 95%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512fp16intrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512fp16intrin.h
index 8911b4e..99409a3 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/avx512fp16intrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/avx512fp16intrin.h
@@ -97,6 +97,11 @@
                 (h14), (h13), (h12), (h11), (h10), (h9), (h8), (h7), (h6),     \
                 (h5), (h4), (h3), (h2), (h1))
 
+static __inline __m512h __DEFAULT_FN_ATTRS512
+_mm512_set1_pch(_Float16 _Complex h) {
+  return (__m512h)_mm512_set1_ps(__builtin_bit_cast(float, h));
+}
+
 static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_castph_ps(__m128h __a) {
   return (__m128)__a;
 }
@@ -2929,98 +2934,95 @@
 static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fcmadd_sch(__m128h __A,
                                                                __m128h __B,
                                                                __m128h __C) {
-  return (__m128h)__builtin_ia32_vfcmaddcsh_mask((__v4sf)__C, (__v4sf)__A,
-                                                 (__v4sf)__B, (__mmask8)-1,
+  return (__m128h)__builtin_ia32_vfcmaddcsh_mask((__v4sf)__A, (__v4sf)__B,
+                                                 (__v4sf)__C, (__mmask8)-1,
                                                  _MM_FROUND_CUR_DIRECTION);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128
 _mm_mask_fcmadd_sch(__m128h __A, __mmask8 __U, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_selectps_128(
-      __U,
-      __builtin_ia32_vfcmaddcsh_mask((__v4sf)__C, (__v4sf)__A, (__v4sf)__B,
-                                     (__mmask8)__U, _MM_FROUND_CUR_DIRECTION),
-      (__v4sf)__A);
+  return (__m128h)__builtin_ia32_vfcmaddcsh_round_mask(
+      (__v4sf)__A, (__v4sf)(__B), (__v4sf)(__C), __U, _MM_FROUND_CUR_DIRECTION);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128
 _mm_maskz_fcmadd_sch(__mmask8 __U, __m128h __A, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_vfcmaddcsh_maskz((__v4sf)__C, (__v4sf)__A,
-                                                  (__v4sf)__B, (__mmask8)__U,
+  return (__m128h)__builtin_ia32_vfcmaddcsh_maskz((__v4sf)__A, (__v4sf)__B,
+                                                  (__v4sf)__C, (__mmask8)__U,
                                                   _MM_FROUND_CUR_DIRECTION);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128
 _mm_mask3_fcmadd_sch(__m128h __A, __m128h __B, __m128h __C, __mmask8 __U) {
-  return (__m128h)_mm_move_ss((__m128)__C,
-                              (__m128)__builtin_ia32_vfcmaddcsh_mask(
-                                  (__v4sf)__C, (__v4sf)__A, (__v4sf)__B, __U,
-                                  _MM_FROUND_CUR_DIRECTION));
+  return (__m128h)__builtin_ia32_vfcmaddcsh_round_mask3(
+      (__v4sf)__A, (__v4sf)__B, (__v4sf)__C, __U, _MM_FROUND_CUR_DIRECTION);
 }
 
 #define _mm_fcmadd_round_sch(A, B, C, R)                                       \
   ((__m128h)__builtin_ia32_vfcmaddcsh_mask(                                    \
-      (__v4sf)(__m128h)(C), (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B),        \
+      (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B), (__v4sf)(__m128h)(C),        \
       (__mmask8)-1, (int)(R)))
 
 #define _mm_mask_fcmadd_round_sch(A, U, B, C, R)                               \
-  ((__m128h)__builtin_ia32_selectps_128(                                       \
-      (__mmask8)(U & 1),                                                       \
-      __builtin_ia32_vfcmaddcsh_mask(                                          \
-          (__v4sf)(__m128h)(C), (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B),    \
-          (__mmask8)(U), (int)(R)),                                            \
-      (__v4sf)(__m128h)(A)))
+  ((__m128h)__builtin_ia32_vfcmaddcsh_round_mask(                              \
+      (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B), (__v4sf)(__m128h)(C),        \
+      (__mmask8)(U), (int)(R)))
 
 #define _mm_maskz_fcmadd_round_sch(U, A, B, C, R)                              \
   ((__m128h)__builtin_ia32_vfcmaddcsh_maskz(                                   \
-      (__v4sf)(__m128h)(C), (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B),        \
+      (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B), (__v4sf)(__m128h)(C),        \
       (__mmask8)(U), (int)(R)))
 
 #define _mm_mask3_fcmadd_round_sch(A, B, C, U, R)                              \
-  ((__m128h)_mm_move_ss((__m128)(C),                                           \
-                        (__m128)__builtin_ia32_vfcmaddcsh_mask(                \
-                            (__v4sf)(C), (__v4sf)(A), (__v4sf)(B), (U), (R))))
+  ((__m128h)__builtin_ia32_vfcmaddcsh_round_mask3(                             \
+      (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B), (__v4sf)(__m128h)(C),        \
+      (__mmask8)(U), (int)(R)))
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fmadd_sch(__m128h __A,
                                                               __m128h __B,
                                                               __m128h __C) {
-  return (__m128h)__builtin_ia32_vfmaddcsh_mask((__v4sf)__C, (__v4sf)__A,
-                                                (__v4sf)__B, (__mmask8)-1,
+  return (__m128h)__builtin_ia32_vfmaddcsh_mask((__v4sf)__A, (__v4sf)__B,
+                                                (__v4sf)__C, (__mmask8)-1,
                                                 _MM_FROUND_CUR_DIRECTION);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128
 _mm_mask_fmadd_sch(__m128h __A, __mmask8 __U, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_selectps_128(
-      __U,
-      __builtin_ia32_vfmaddcsh_mask((__v4sf)__C, (__v4sf)__A, (__v4sf)__B,
-                                    (__mmask8)__U, _MM_FROUND_CUR_DIRECTION),
-      (__v4sf)__A);
+  return (__m128h)__builtin_ia32_vfmaddcsh_round_mask(
+      (__v4sf)__A, (__v4sf)(__B), (__v4sf)(__C), __U, _MM_FROUND_CUR_DIRECTION);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128
 _mm_maskz_fmadd_sch(__mmask8 __U, __m128h __A, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_vfmaddcsh_maskz((__v4sf)__C, (__v4sf)__A,
-                                                 (__v4sf)__B, (__mmask8)__U,
+  return (__m128h)__builtin_ia32_vfmaddcsh_maskz((__v4sf)__A, (__v4sf)__B,
+                                                 (__v4sf)__C, (__mmask8)__U,
                                                  _MM_FROUND_CUR_DIRECTION);
 }
 
+static __inline__ __m128h __DEFAULT_FN_ATTRS128
+_mm_mask3_fmadd_sch(__m128h __A, __m128h __B, __m128h __C, __mmask8 __U) {
+  return (__m128h)__builtin_ia32_vfmaddcsh_round_mask3(
+      (__v4sf)__A, (__v4sf)__B, (__v4sf)__C, __U, _MM_FROUND_CUR_DIRECTION);
+}
+
 #define _mm_fmadd_round_sch(A, B, C, R)                                        \
   ((__m128h)__builtin_ia32_vfmaddcsh_mask(                                     \
-      (__v4sf)(__m128h)(C), (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B),        \
+      (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B), (__v4sf)(__m128h)(C),        \
       (__mmask8)-1, (int)(R)))
 
 #define _mm_mask_fmadd_round_sch(A, U, B, C, R)                                \
-  ((__m128h)__builtin_ia32_selectps_128(                                       \
-      (__mmask8)(U & 1),                                                       \
-      __builtin_ia32_vfmaddcsh_mask(                                           \
-          (__v4sf)(__m128h)(C), (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B),    \
-          (__mmask8)(U), (int)(R)),                                            \
-      (__v4sf)(__m128h)(A)))
+  ((__m128h)__builtin_ia32_vfmaddcsh_round_mask(                               \
+      (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B), (__v4sf)(__m128h)(C),        \
+      (__mmask8)(U), (int)(R)))
 
 #define _mm_maskz_fmadd_round_sch(U, A, B, C, R)                               \
   ((__m128h)__builtin_ia32_vfmaddcsh_maskz(                                    \
-      (__v4sf)(__m128h)(C), (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B),        \
+      (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B), (__v4sf)(__m128h)(C),        \
+      (__mmask8)(U), (int)(R)))
+
+#define _mm_mask3_fmadd_round_sch(A, B, C, U, R)                               \
+  ((__m128h)__builtin_ia32_vfmaddcsh_round_mask3(                              \
+      (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B), (__v4sf)(__m128h)(C),        \
       (__mmask8)(U), (int)(R)))
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fcmul_sch(__m128h __A,
@@ -3172,111 +3174,99 @@
 static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_fcmadd_pch(__m512h __A,
                                                                   __m512h __B,
                                                                   __m512h __C) {
-  return (__m512h)__builtin_ia32_vfcmaddcph512_mask((__v16sf)__C, (__v16sf)__A,
-                                                    (__v16sf)__B, (__mmask16)-1,
-                                                    _MM_FROUND_CUR_DIRECTION);
+  return (__m512h)__builtin_ia32_vfcmaddcph512_mask3(
+      (__v16sf)__A, (__v16sf)__B, (__v16sf)__C, (__mmask16)-1,
+      _MM_FROUND_CUR_DIRECTION);
 }
 
 static __inline__ __m512h __DEFAULT_FN_ATTRS512
 _mm512_mask_fcmadd_pch(__m512h __A, __mmask16 __U, __m512h __B, __m512h __C) {
-  return (__m512h)__builtin_ia32_selectps_512(
-      __U,
-      __builtin_ia32_vfcmaddcph512_mask((__v16sf)__C, (__v16sf)__A,
-                                        (__v16sf)__B, (__mmask16)__U,
-                                        _MM_FROUND_CUR_DIRECTION),
-      (__v16sf)__A);
+  return (__m512h)__builtin_ia32_vfcmaddcph512_mask(
+      (__v16sf)__A, (__v16sf)__B, (__v16sf)__C, (__mmask16)__U,
+      _MM_FROUND_CUR_DIRECTION);
 }
 
 static __inline__ __m512h __DEFAULT_FN_ATTRS512
 _mm512_mask3_fcmadd_pch(__m512h __A, __m512h __B, __m512h __C, __mmask16 __U) {
-  return (__m512h)__builtin_ia32_vfcmaddcph512_mask(
-      (__v16sf)__C, (__v16sf)__A, (__v16sf)__B, (__mmask16)__U,
+  return (__m512h)__builtin_ia32_vfcmaddcph512_mask3(
+      (__v16sf)__A, (__v16sf)__B, (__v16sf)__C, (__mmask16)__U,
       _MM_FROUND_CUR_DIRECTION);
 }
 
 static __inline__ __m512h __DEFAULT_FN_ATTRS512
 _mm512_maskz_fcmadd_pch(__mmask16 __U, __m512h __A, __m512h __B, __m512h __C) {
   return (__m512h)__builtin_ia32_vfcmaddcph512_maskz(
-      (__v16sf)__C, (__v16sf)__A, (__v16sf)__B, (__mmask16)__U,
+      (__v16sf)__A, (__v16sf)__B, (__v16sf)__C, (__mmask16)__U,
       _MM_FROUND_CUR_DIRECTION);
 }
 
 #define _mm512_fcmadd_round_pch(A, B, C, R)                                    \
-  ((__m512h)__builtin_ia32_vfcmaddcph512_mask(                                 \
-      (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B),     \
+  ((__m512h)__builtin_ia32_vfcmaddcph512_mask3(                                \
+      (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), (__v16sf)(__m512h)(C),     \
       (__mmask16)-1, (int)(R)))
 
 #define _mm512_mask_fcmadd_round_pch(A, U, B, C, R)                            \
-  ((__m512h)__builtin_ia32_selectps_512(                                       \
-      (__mmask16)(U),                                                          \
-      __builtin_ia32_vfcmaddcph512_mask(                                       \
-          (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), \
-          (__mmask16)(U), (int)(R)),                                           \
-      (__v16sf)(__m512h)(A)))
+  ((__m512h)__builtin_ia32_vfcmaddcph512_mask(                                 \
+      (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), (__v16sf)(__m512h)(C),     \
+      (__mmask16)(U), (int)(R)))
 
 #define _mm512_mask3_fcmadd_round_pch(A, B, C, U, R)                           \
-  ((__m512h)__builtin_ia32_vfcmaddcph512_mask(                                 \
-      (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B),     \
+  ((__m512h)__builtin_ia32_vfcmaddcph512_mask3(                                \
+      (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), (__v16sf)(__m512h)(C),     \
       (__mmask16)(U), (int)(R)))
 
 #define _mm512_maskz_fcmadd_round_pch(U, A, B, C, R)                           \
   ((__m512h)__builtin_ia32_vfcmaddcph512_maskz(                                \
-      (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B),     \
+      (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), (__v16sf)(__m512h)(C),     \
       (__mmask16)(U), (int)(R)))
 
 static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_fmadd_pch(__m512h __A,
                                                                  __m512h __B,
                                                                  __m512h __C) {
-  return (__m512h)__builtin_ia32_vfmaddcph512_mask((__v16sf)__C, (__v16sf)__A,
-                                                   (__v16sf)__B, (__mmask16)-1,
-                                                   _MM_FROUND_CUR_DIRECTION);
+  return (__m512h)__builtin_ia32_vfmaddcph512_mask3((__v16sf)__A, (__v16sf)__B,
+                                                    (__v16sf)__C, (__mmask16)-1,
+                                                    _MM_FROUND_CUR_DIRECTION);
 }
 
 static __inline__ __m512h __DEFAULT_FN_ATTRS512
 _mm512_mask_fmadd_pch(__m512h __A, __mmask16 __U, __m512h __B, __m512h __C) {
-  return (__m512h)__builtin_ia32_selectps_512(
-      __U,
-      __builtin_ia32_vfmaddcph512_mask((__v16sf)__C, (__v16sf)__A, (__v16sf)__B,
-                                       (__mmask16)__U,
-                                       _MM_FROUND_CUR_DIRECTION),
-      (__v16sf)__A);
+  return (__m512h)__builtin_ia32_vfmaddcph512_mask((__v16sf)__A, (__v16sf)__B,
+                                                   (__v16sf)__C, (__mmask16)__U,
+                                                   _MM_FROUND_CUR_DIRECTION);
 }
 
 static __inline__ __m512h __DEFAULT_FN_ATTRS512
 _mm512_mask3_fmadd_pch(__m512h __A, __m512h __B, __m512h __C, __mmask16 __U) {
-  return (__m512h)__builtin_ia32_vfmaddcph512_mask((__v16sf)__C, (__v16sf)__A,
-                                                   (__v16sf)__B, (__mmask16)__U,
-                                                   _MM_FROUND_CUR_DIRECTION);
+  return (__m512h)__builtin_ia32_vfmaddcph512_mask3(
+      (__v16sf)__A, (__v16sf)__B, (__v16sf)__C, (__mmask16)__U,
+      _MM_FROUND_CUR_DIRECTION);
 }
 
 static __inline__ __m512h __DEFAULT_FN_ATTRS512
 _mm512_maskz_fmadd_pch(__mmask16 __U, __m512h __A, __m512h __B, __m512h __C) {
   return (__m512h)__builtin_ia32_vfmaddcph512_maskz(
-      (__v16sf)__C, (__v16sf)__A, (__v16sf)__B, (__mmask16)__U,
+      (__v16sf)__A, (__v16sf)__B, (__v16sf)__C, (__mmask16)__U,
       _MM_FROUND_CUR_DIRECTION);
 }
 
 #define _mm512_fmadd_round_pch(A, B, C, R)                                     \
-  ((__m512h)__builtin_ia32_vfmaddcph512_mask(                                  \
-      (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B),     \
+  ((__m512h)__builtin_ia32_vfmaddcph512_mask3(                                 \
+      (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), (__v16sf)(__m512h)(C),     \
       (__mmask16)-1, (int)(R)))
 
 #define _mm512_mask_fmadd_round_pch(A, U, B, C, R)                             \
-  ((__m512h)__builtin_ia32_selectps_512(                                       \
-      (__mmask16)(U),                                                          \
-      __builtin_ia32_vfmaddcph512_mask(                                        \
-          (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), \
-          (__mmask16)(U), (int)(R)),                                           \
-      (__v16sf)(__m512h)(A)))
+  ((__m512h)__builtin_ia32_vfmaddcph512_mask(                                  \
+      (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), (__v16sf)(__m512h)(C),     \
+      (__mmask16)(U), (int)(R)))
 
 #define _mm512_mask3_fmadd_round_pch(A, B, C, U, R)                            \
-  ((__m512h)__builtin_ia32_vfmaddcph512_mask(                                  \
-      (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B),     \
+  ((__m512h)__builtin_ia32_vfmaddcph512_mask3(                                 \
+      (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), (__v16sf)(__m512h)(C),     \
       (__mmask16)(U), (int)(R)))
 
 #define _mm512_maskz_fmadd_round_pch(U, A, B, C, R)                            \
   ((__m512h)__builtin_ia32_vfmaddcph512_maskz(                                 \
-      (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B),     \
+      (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), (__v16sf)(__m512h)(C),     \
       (__mmask16)(U), (int)(R)))
 
 static __inline__ _Float16 __DEFAULT_FN_ATTRS512
@@ -3316,6 +3306,42 @@
   return (__m512h)__builtin_ia32_permvarhi512((__v32hi)__B, (__v32hi)__A);
 }
 
+// intrinsics below are alias for f*mul_*ch
+#define _mm512_mul_pch(A, B) _mm512_fmul_pch(A, B)
+#define _mm512_mask_mul_pch(W, U, A, B) _mm512_mask_fmul_pch(W, U, A, B)
+#define _mm512_maskz_mul_pch(U, A, B) _mm512_maskz_fmul_pch(U, A, B)
+#define _mm512_mul_round_pch(A, B, R) _mm512_fmul_round_pch(A, B, R)
+#define _mm512_mask_mul_round_pch(W, U, A, B, R)                               \
+  _mm512_mask_fmul_round_pch(W, U, A, B, R)
+#define _mm512_maskz_mul_round_pch(U, A, B, R)                                 \
+  _mm512_maskz_fmul_round_pch(U, A, B, R)
+
+#define _mm512_cmul_pch(A, B) _mm512_fcmul_pch(A, B)
+#define _mm512_mask_cmul_pch(W, U, A, B) _mm512_mask_fcmul_pch(W, U, A, B)
+#define _mm512_maskz_cmul_pch(U, A, B) _mm512_maskz_fcmul_pch(U, A, B)
+#define _mm512_cmul_round_pch(A, B, R) _mm512_fcmul_round_pch(A, B, R)
+#define _mm512_mask_cmul_round_pch(W, U, A, B, R)                              \
+  _mm512_mask_fcmul_round_pch(W, U, A, B, R)
+#define _mm512_maskz_cmul_round_pch(U, A, B, R)                                \
+  _mm512_maskz_fcmul_round_pch(U, A, B, R)
+
+#define _mm_mul_sch(A, B) _mm_fmul_sch(A, B)
+#define _mm_mask_mul_sch(W, U, A, B) _mm_mask_fmul_sch(W, U, A, B)
+#define _mm_maskz_mul_sch(U, A, B) _mm_maskz_fmul_sch(U, A, B)
+#define _mm_mul_round_sch(A, B, R) _mm_fmul_round_sch(A, B, R)
+#define _mm_mask_mul_round_sch(W, U, A, B, R)                                  \
+  _mm_mask_fmul_round_sch(W, U, A, B, R)
+#define _mm_maskz_mul_round_sch(U, A, B, R) _mm_maskz_fmul_round_sch(U, A, B, R)
+
+#define _mm_cmul_sch(A, B) _mm_fcmul_sch(A, B)
+#define _mm_mask_cmul_sch(W, U, A, B) _mm_mask_fcmul_sch(W, U, A, B)
+#define _mm_maskz_cmul_sch(U, A, B) _mm_maskz_fcmul_sch(U, A, B)
+#define _mm_cmul_round_sch(A, B, R) _mm_fcmul_round_sch(A, B, R)
+#define _mm_mask_cmul_round_sch(W, U, A, B, R)                                 \
+  _mm_mask_fcmul_round_sch(W, U, A, B, R)
+#define _mm_maskz_cmul_round_sch(U, A, B, R)                                   \
+  _mm_maskz_fcmul_round_sch(U, A, B, R)
+
 #undef __DEFAULT_FN_ATTRS128
 #undef __DEFAULT_FN_ATTRS256
 #undef __DEFAULT_FN_ATTRS512
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512ifmaintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512ifmaintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512ifmaintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512ifmaintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512ifmavlintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512ifmavlintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512ifmavlintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512ifmavlintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512pfintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512pfintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512pfintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512pfintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512vbmi2intrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512vbmi2intrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512vbmi2intrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512vbmi2intrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512vbmiintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512vbmiintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512vbmiintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512vbmiintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512vbmivlintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512vbmivlintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512vbmivlintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512vbmivlintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512vlbf16intrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512vlbf16intrin.h
similarity index 90%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512vlbf16intrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512vlbf16intrin.h
index 1b1a744..6a5a860 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/avx512vlbf16intrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/avx512vlbf16intrin.h
@@ -425,8 +425,20 @@
 /// \headerfile <x86intrin.h>
 ///
 /// \param __A
+///    A 128-bit vector of [4 x bfloat].
+/// \returns A 128-bit vector of [4 x float] come from conversion of __A
+static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_cvtpbh_ps(__m128bh __A) {
+  return _mm_castsi128_ps(
+      (__m128i)_mm_slli_epi32((__m128i)_mm_cvtepi16_epi32((__m128i)__A), 16));
+}
+
+/// Convert Packed BF16 Data to Packed float Data.
+///
+/// \headerfile <x86intrin.h>
+///
+/// \param __A
 ///    A 128-bit vector of [8 x bfloat].
-/// \returns A 256-bit vector of [8 x float] come from convertion of __A
+/// \returns A 256-bit vector of [8 x float] come from conversion of __A
 static __inline__ __m256 __DEFAULT_FN_ATTRS256 _mm256_cvtpbh_ps(__m128bh __A) {
   return _mm256_castsi256_ps((__m256i)_mm256_slli_epi32(
       (__m256i)_mm256_cvtepi16_epi32((__m128i)__A), 16));
@@ -437,11 +449,27 @@
 /// \headerfile <x86intrin.h>
 ///
 /// \param __U
+///    A 4-bit mask. Elements are zeroed out when the corresponding mask
+///    bit is not set.
+/// \param __A
+///    A 128-bit vector of [4 x bfloat].
+/// \returns A 128-bit vector of [4 x float] come from conversion of __A
+static __inline__ __m128 __DEFAULT_FN_ATTRS128
+_mm_maskz_cvtpbh_ps(__mmask8 __U, __m128bh __A) {
+  return _mm_castsi128_ps((__m128i)_mm_slli_epi32(
+      (__m128i)_mm_maskz_cvtepi16_epi32((__mmask8)__U, (__m128i)__A), 16));
+}
+
+/// Convert Packed BF16 Data to Packed float Data using zeroing mask.
+///
+/// \headerfile <x86intrin.h>
+///
+/// \param __U
 ///    A 8-bit mask. Elements are zeroed out when the corresponding mask
 ///    bit is not set.
 /// \param __A
 ///    A 128-bit vector of [8 x bfloat].
-/// \returns A 256-bit vector of [8 x float] come from convertion of __A
+/// \returns A 256-bit vector of [8 x float] come from conversion of __A
 static __inline__ __m256 __DEFAULT_FN_ATTRS256
 _mm256_maskz_cvtpbh_ps(__mmask8 __U, __m128bh __A) {
   return _mm256_castsi256_ps((__m256i)_mm256_slli_epi32(
@@ -453,6 +481,26 @@
 /// \headerfile <x86intrin.h>
 ///
 /// \param __S
+///    A 128-bit vector of [4 x float]. Elements are copied from __S when
+///     the corresponding mask bit is not set.
+/// \param __U
+///    A 4-bit mask. Elements are zeroed out when the corresponding mask
+///    bit is not set.
+/// \param __A
+///    A 128-bit vector of [4 x bfloat].
+/// \returns A 128-bit vector of [4 x float] come from conversion of __A
+static __inline__ __m128 __DEFAULT_FN_ATTRS128
+_mm_mask_cvtpbh_ps(__m128 __S, __mmask8 __U, __m128bh __A) {
+  return _mm_castsi128_ps((__m128i)_mm_mask_slli_epi32(
+      (__m128i)__S, (__mmask8)__U, (__m128i)_mm_cvtepi16_epi32((__m128i)__A),
+      16));
+}
+
+/// Convert Packed BF16 Data to Packed float Data using merging mask.
+///
+/// \headerfile <x86intrin.h>
+///
+/// \param __S
 ///    A 256-bit vector of [8 x float]. Elements are copied from __S when
 ///     the corresponding mask bit is not set.
 /// \param __U
@@ -460,7 +508,7 @@
 ///    bit is not set.
 /// \param __A
 ///    A 128-bit vector of [8 x bfloat].
-/// \returns A 256-bit vector of [8 x float] come from convertion of __A
+/// \returns A 256-bit vector of [8 x float] come from conversion of __A
 static __inline__ __m256 __DEFAULT_FN_ATTRS256
 _mm256_mask_cvtpbh_ps(__m256 __S, __mmask8 __U, __m128bh __A) {
   return _mm256_castsi256_ps((__m256i)_mm256_mask_slli_epi32(
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512vlbitalgintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512vlbitalgintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512vlbitalgintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512vlbitalgintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512vlbwintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512vlbwintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512vlbwintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512vlbwintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512vlcdintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512vlcdintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512vlcdintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512vlcdintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512vldqintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512vldqintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512vldqintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512vldqintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512vlfp16intrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512vlfp16intrin.h
similarity index 96%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512vlfp16intrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512vlfp16intrin.h
index b8cd554..3d27853 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/avx512vlfp16intrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/avx512vlfp16intrin.h
@@ -52,6 +52,16 @@
 }
 
 static __inline __m256h __DEFAULT_FN_ATTRS256
+_mm256_set1_pch(_Float16 _Complex h) {
+  return (__m256h)_mm256_set1_ps(__builtin_bit_cast(float, h));
+}
+
+static __inline __m128h __DEFAULT_FN_ATTRS128
+_mm_set1_pch(_Float16 _Complex h) {
+  return (__m128h)_mm_set1_ps(__builtin_bit_cast(float, h));
+}
+
+static __inline __m256h __DEFAULT_FN_ATTRS256
 _mm256_set_ph(_Float16 __h1, _Float16 __h2, _Float16 __h3, _Float16 __h4,
               _Float16 __h5, _Float16 __h6, _Float16 __h7, _Float16 __h8,
               _Float16 __h9, _Float16 __h10, _Float16 __h11, _Float16 __h12,
@@ -1815,57 +1825,57 @@
 static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fcmadd_pch(__m128h __A,
                                                                __m128h __B,
                                                                __m128h __C) {
-  return (__m128h)__builtin_ia32_vfcmaddcph128_mask((__v4sf)__C, (__v4sf)__A,
-                                                    (__v4sf)__B, (__mmask8)-1);
+  return (__m128h)__builtin_ia32_vfcmaddcph128_mask((__v4sf)__A, (__v4sf)__B,
+                                                    (__v4sf)__C, (__mmask8)-1);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128
 _mm_mask_fcmadd_pch(__m128h __A, __mmask8 __U, __m128h __B, __m128h __C) {
   return (__m128h)__builtin_ia32_selectps_128(
       __U,
-      __builtin_ia32_vfcmaddcph128_mask((__v4sf)__C, (__v4sf)(__m128h)__A,
-                                        (__v4sf)__B, (__mmask8)__U),
+      __builtin_ia32_vfcmaddcph128_mask((__v4sf)__A, (__v4sf)(__m128h)__B,
+                                        (__v4sf)__C, (__mmask8)__U),
       (__v4sf)__A);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128
 _mm_mask3_fcmadd_pch(__m128h __A, __m128h __B, __m128h __C, __mmask8 __U) {
-  return (__m128h)__builtin_ia32_vfcmaddcph128_mask((__v4sf)__C, (__v4sf)__A,
-                                                    (__v4sf)__B, (__mmask8)__U);
+  return (__m128h)__builtin_ia32_vfcmaddcph128_mask((__v4sf)__A, (__v4sf)__B,
+                                                    (__v4sf)__C, (__mmask8)__U);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128
 _mm_maskz_fcmadd_pch(__mmask8 __U, __m128h __A, __m128h __B, __m128h __C) {
   return (__m128h)__builtin_ia32_vfcmaddcph128_maskz(
-      (__v4sf)__C, (__v4sf)__A, (__v4sf)__B, (__mmask8)__U);
+      (__v4sf)__A, (__v4sf)__B, (__v4sf)__C, (__mmask8)__U);
 }
 
 static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_fcmadd_pch(__m256h __A,
                                                                   __m256h __B,
                                                                   __m256h __C) {
-  return (__m256h)__builtin_ia32_vfcmaddcph256_mask((__v8sf)__C, (__v8sf)__A,
-                                                    (__v8sf)__B, (__mmask8)-1);
+  return (__m256h)__builtin_ia32_vfcmaddcph256_mask((__v8sf)__A, (__v8sf)__B,
+                                                    (__v8sf)__C, (__mmask8)-1);
 }
 
 static __inline__ __m256h __DEFAULT_FN_ATTRS256
 _mm256_mask_fcmadd_pch(__m256h __A, __mmask8 __U, __m256h __B, __m256h __C) {
   return (__m256h)__builtin_ia32_selectps_256(
       __U,
-      __builtin_ia32_vfcmaddcph256_mask((__v8sf)__C, (__v8sf)__A, (__v8sf)__B,
+      __builtin_ia32_vfcmaddcph256_mask((__v8sf)__A, (__v8sf)__B, (__v8sf)__C,
                                         (__mmask8)__U),
       (__v8sf)__A);
 }
 
 static __inline__ __m256h __DEFAULT_FN_ATTRS256
 _mm256_mask3_fcmadd_pch(__m256h __A, __m256h __B, __m256h __C, __mmask8 __U) {
-  return (__m256h)__builtin_ia32_vfcmaddcph256_mask((__v8sf)__C, (__v8sf)__A,
-                                                    (__v8sf)__B, (__mmask8)__U);
+  return (__m256h)__builtin_ia32_vfcmaddcph256_mask((__v8sf)__A, (__v8sf)__B,
+                                                    (__v8sf)__C, (__mmask8)__U);
 }
 
 static __inline__ __m256h __DEFAULT_FN_ATTRS256
 _mm256_maskz_fcmadd_pch(__mmask8 __U, __m256h __A, __m256h __B, __m256h __C) {
   return (__m256h)__builtin_ia32_vfcmaddcph256_maskz(
-      (__v8sf)__C, (__v8sf)__A, (__v8sf)__B, (__mmask8)__U);
+      (__v8sf)__A, (__v8sf)__B, (__v8sf)__C, (__mmask8)__U);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fmul_pch(__m128h __A,
@@ -1909,57 +1919,57 @@
 static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fmadd_pch(__m128h __A,
                                                               __m128h __B,
                                                               __m128h __C) {
-  return (__m128h)__builtin_ia32_vfmaddcph128_mask((__v4sf)__C, (__v4sf)__A,
-                                                   (__v4sf)__B, (__mmask8)-1);
+  return (__m128h)__builtin_ia32_vfmaddcph128_mask((__v4sf)__A, (__v4sf)__B,
+                                                   (__v4sf)__C, (__mmask8)-1);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128
 _mm_mask_fmadd_pch(__m128h __A, __mmask8 __U, __m128h __B, __m128h __C) {
   return (__m128h)__builtin_ia32_selectps_128(
       __U,
-      __builtin_ia32_vfmaddcph128_mask((__v4sf)__C, (__v4sf)__A, (__v4sf)__B,
+      __builtin_ia32_vfmaddcph128_mask((__v4sf)__A, (__v4sf)__B, (__v4sf)__C,
                                        (__mmask8)__U),
       (__v4sf)__A);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128
 _mm_mask3_fmadd_pch(__m128h __A, __m128h __B, __m128h __C, __mmask8 __U) {
-  return (__m128h)__builtin_ia32_vfmaddcph128_mask((__v4sf)__C, (__v4sf)__A,
-                                                   (__v4sf)__B, (__mmask8)__U);
+  return (__m128h)__builtin_ia32_vfmaddcph128_mask((__v4sf)__A, (__v4sf)__B,
+                                                   (__v4sf)__C, (__mmask8)__U);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128
 _mm_maskz_fmadd_pch(__mmask8 __U, __m128h __A, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_vfmaddcph128_maskz((__v4sf)__C, (__v4sf)__A,
-                                                    (__v4sf)__B, (__mmask8)__U);
+  return (__m128h)__builtin_ia32_vfmaddcph128_maskz((__v4sf)__A, (__v4sf)__B,
+                                                    (__v4sf)__C, (__mmask8)__U);
 }
 
 static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_fmadd_pch(__m256h __A,
                                                                  __m256h __B,
                                                                  __m256h __C) {
-  return (__m256h)__builtin_ia32_vfmaddcph256_mask((__v8sf)__C, (__v8sf)__A,
-                                                   (__v8sf)__B, (__mmask8)-1);
+  return (__m256h)__builtin_ia32_vfmaddcph256_mask((__v8sf)__A, (__v8sf)__B,
+                                                   (__v8sf)__C, (__mmask8)-1);
 }
 
 static __inline__ __m256h __DEFAULT_FN_ATTRS256
 _mm256_mask_fmadd_pch(__m256h __A, __mmask8 __U, __m256h __B, __m256h __C) {
   return (__m256h)__builtin_ia32_selectps_256(
       __U,
-      __builtin_ia32_vfmaddcph256_mask((__v8sf)__C, (__v8sf)__A, (__v8sf)__B,
+      __builtin_ia32_vfmaddcph256_mask((__v8sf)__A, (__v8sf)__B, (__v8sf)__C,
                                        (__mmask8)__U),
       (__v8sf)__A);
 }
 
 static __inline__ __m256h __DEFAULT_FN_ATTRS256
 _mm256_mask3_fmadd_pch(__m256h __A, __m256h __B, __m256h __C, __mmask8 __U) {
-  return (__m256h)__builtin_ia32_vfmaddcph256_mask((__v8sf)__C, (__v8sf)__A,
-                                                   (__v8sf)__B, (__mmask8)__U);
+  return (__m256h)__builtin_ia32_vfmaddcph256_mask((__v8sf)__A, (__v8sf)__B,
+                                                   (__v8sf)__C, (__mmask8)__U);
 }
 
 static __inline__ __m256h __DEFAULT_FN_ATTRS256
 _mm256_maskz_fmadd_pch(__mmask8 __U, __m256h __A, __m256h __B, __m256h __C) {
-  return (__m256h)__builtin_ia32_vfmaddcph256_maskz((__v8sf)__C, (__v8sf)__A,
-                                                    (__v8sf)__B, (__mmask8)__U);
+  return (__m256h)__builtin_ia32_vfmaddcph256_maskz((__v8sf)__A, (__v8sf)__B,
+                                                    (__v8sf)__C, (__mmask8)__U);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_blend_ph(__mmask8 __U,
@@ -2037,6 +2047,21 @@
   return __builtin_ia32_reduce_fmin_ph128(__V);
 }
 
+// intrinsics below are alias for f*mul_*ch
+#define _mm_mul_pch(A, B) _mm_fmul_pch(A, B)
+#define _mm_mask_mul_pch(W, U, A, B) _mm_mask_fmul_pch(W, U, A, B)
+#define _mm_maskz_mul_pch(U, A, B) _mm_maskz_fmul_pch(U, A, B)
+#define _mm256_mul_pch(A, B) _mm256_fmul_pch(A, B)
+#define _mm256_mask_mul_pch(W, U, A, B) _mm256_mask_fmul_pch(W, U, A, B)
+#define _mm256_maskz_mul_pch(U, A, B) _mm256_maskz_fmul_pch(U, A, B)
+
+#define _mm_cmul_pch(A, B) _mm_fcmul_pch(A, B)
+#define _mm_mask_cmul_pch(W, U, A, B) _mm_mask_fcmul_pch(W, U, A, B)
+#define _mm_maskz_cmul_pch(U, A, B) _mm_maskz_fcmul_pch(U, A, B)
+#define _mm256_cmul_pch(A, B) _mm256_fcmul_pch(A, B)
+#define _mm256_mask_cmul_pch(W, U, A, B) _mm256_mask_fcmul_pch(W, U, A, B)
+#define _mm256_maskz_cmul_pch(U, A, B) _mm256_maskz_fcmul_pch(U, A, B)
+
 #undef __DEFAULT_FN_ATTRS128
 #undef __DEFAULT_FN_ATTRS256
 
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512vlintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512vlintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512vlintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512vlintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512vlvbmi2intrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512vlvbmi2intrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512vlvbmi2intrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512vlvbmi2intrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512vlvnniintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512vlvnniintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512vlvnniintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512vlvnniintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512vlvp2intersectintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512vlvp2intersectintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512vlvp2intersectintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512vlvp2intersectintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512vnniintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512vnniintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512vnniintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512vnniintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512vp2intersectintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512vp2intersectintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512vp2intersectintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512vp2intersectintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512vpopcntdqintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512vpopcntdqintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512vpopcntdqintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512vpopcntdqintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512vpopcntdqvlintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avx512vpopcntdqvlintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avx512vpopcntdqvlintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avx512vpopcntdqvlintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avxintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avxintrin.h
similarity index 99%
rename from darwin-x86/lib64/clang/14.0.1/include/avxintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avxintrin.h
index 7f4e976..17fe636 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/avxintrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/avxintrin.h
@@ -4748,176 +4748,6 @@
 #define _mm256_extractf128_si256(V, M) \
   ((__m128i)__builtin_ia32_vextractf128_si256((__v8si)(__m256i)(V), (int)(M)))
 
-/* SIMD load ops (unaligned) */
-/// Loads two 128-bit floating-point vectors of [4 x float] from
-///    unaligned memory locations and constructs a 256-bit floating-point vector
-///    of [8 x float] by concatenating the two 128-bit vectors.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to load instructions followed by the
-///   <c> VINSERTF128 </c> instruction.
-///
-/// \param __addr_hi
-///    A pointer to a 128-bit memory location containing 4 consecutive
-///    single-precision floating-point values. These values are to be copied to
-///    bits[255:128] of the result. The address of the memory location does not
-///    have to be aligned.
-/// \param __addr_lo
-///    A pointer to a 128-bit memory location containing 4 consecutive
-///    single-precision floating-point values. These values are to be copied to
-///    bits[127:0] of the result. The address of the memory location does not
-///    have to be aligned.
-/// \returns A 256-bit floating-point vector of [8 x float] containing the
-///    concatenated result.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_loadu2_m128(float const *__addr_hi, float const *__addr_lo)
-{
-  __m256 __v256 = _mm256_castps128_ps256(_mm_loadu_ps(__addr_lo));
-  return _mm256_insertf128_ps(__v256, _mm_loadu_ps(__addr_hi), 1);
-}
-
-/// Loads two 128-bit floating-point vectors of [2 x double] from
-///    unaligned memory locations and constructs a 256-bit floating-point vector
-///    of [4 x double] by concatenating the two 128-bit vectors.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to load instructions followed by the
-///   <c> VINSERTF128 </c> instruction.
-///
-/// \param __addr_hi
-///    A pointer to a 128-bit memory location containing two consecutive
-///    double-precision floating-point values. These values are to be copied to
-///    bits[255:128] of the result. The address of the memory location does not
-///    have to be aligned.
-/// \param __addr_lo
-///    A pointer to a 128-bit memory location containing two consecutive
-///    double-precision floating-point values. These values are to be copied to
-///    bits[127:0] of the result. The address of the memory location does not
-///    have to be aligned.
-/// \returns A 256-bit floating-point vector of [4 x double] containing the
-///    concatenated result.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_loadu2_m128d(double const *__addr_hi, double const *__addr_lo)
-{
-  __m256d __v256 = _mm256_castpd128_pd256(_mm_loadu_pd(__addr_lo));
-  return _mm256_insertf128_pd(__v256, _mm_loadu_pd(__addr_hi), 1);
-}
-
-/// Loads two 128-bit integer vectors from unaligned memory locations and
-///    constructs a 256-bit integer vector by concatenating the two 128-bit
-///    vectors.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to load instructions followed by the
-///   <c> VINSERTF128 </c> instruction.
-///
-/// \param __addr_hi
-///    A pointer to a 128-bit memory location containing a 128-bit integer
-///    vector. This vector is to be copied to bits[255:128] of the result. The
-///    address of the memory location does not have to be aligned.
-/// \param __addr_lo
-///    A pointer to a 128-bit memory location containing a 128-bit integer
-///    vector. This vector is to be copied to bits[127:0] of the result. The
-///    address of the memory location does not have to be aligned.
-/// \returns A 256-bit integer vector containing the concatenated result.
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_loadu2_m128i(__m128i_u const *__addr_hi, __m128i_u const *__addr_lo)
-{
-  __m256i __v256 = _mm256_castsi128_si256(_mm_loadu_si128(__addr_lo));
-  return _mm256_insertf128_si256(__v256, _mm_loadu_si128(__addr_hi), 1);
-}
-
-/* SIMD store ops (unaligned) */
-/// Stores the upper and lower 128 bits of a 256-bit floating-point
-///    vector of [8 x float] into two different unaligned memory locations.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VEXTRACTF128 </c> instruction and the
-///   store instructions.
-///
-/// \param __addr_hi
-///    A pointer to a 128-bit memory location. Bits[255:128] of \a __a are to be
-///    copied to this memory location. The address of this memory location does
-///    not have to be aligned.
-/// \param __addr_lo
-///    A pointer to a 128-bit memory location. Bits[127:0] of \a __a are to be
-///    copied to this memory location. The address of this memory location does
-///    not have to be aligned.
-/// \param __a
-///    A 256-bit floating-point vector of [8 x float].
-static __inline void __DEFAULT_FN_ATTRS
-_mm256_storeu2_m128(float *__addr_hi, float *__addr_lo, __m256 __a)
-{
-  __m128 __v128;
-
-  __v128 = _mm256_castps256_ps128(__a);
-  _mm_storeu_ps(__addr_lo, __v128);
-  __v128 = _mm256_extractf128_ps(__a, 1);
-  _mm_storeu_ps(__addr_hi, __v128);
-}
-
-/// Stores the upper and lower 128 bits of a 256-bit floating-point
-///    vector of [4 x double] into two different unaligned memory locations.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VEXTRACTF128 </c> instruction and the
-///   store instructions.
-///
-/// \param __addr_hi
-///    A pointer to a 128-bit memory location. Bits[255:128] of \a __a are to be
-///    copied to this memory location. The address of this memory location does
-///    not have to be aligned.
-/// \param __addr_lo
-///    A pointer to a 128-bit memory location. Bits[127:0] of \a __a are to be
-///    copied to this memory location. The address of this memory location does
-///    not have to be aligned.
-/// \param __a
-///    A 256-bit floating-point vector of [4 x double].
-static __inline void __DEFAULT_FN_ATTRS
-_mm256_storeu2_m128d(double *__addr_hi, double *__addr_lo, __m256d __a)
-{
-  __m128d __v128;
-
-  __v128 = _mm256_castpd256_pd128(__a);
-  _mm_storeu_pd(__addr_lo, __v128);
-  __v128 = _mm256_extractf128_pd(__a, 1);
-  _mm_storeu_pd(__addr_hi, __v128);
-}
-
-/// Stores the upper and lower 128 bits of a 256-bit integer vector into
-///    two different unaligned memory locations.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VEXTRACTF128 </c> instruction and the
-///   store instructions.
-///
-/// \param __addr_hi
-///    A pointer to a 128-bit memory location. Bits[255:128] of \a __a are to be
-///    copied to this memory location. The address of this memory location does
-///    not have to be aligned.
-/// \param __addr_lo
-///    A pointer to a 128-bit memory location. Bits[127:0] of \a __a are to be
-///    copied to this memory location. The address of this memory location does
-///    not have to be aligned.
-/// \param __a
-///    A 256-bit integer vector.
-static __inline void __DEFAULT_FN_ATTRS
-_mm256_storeu2_m128i(__m128i_u *__addr_hi, __m128i_u *__addr_lo, __m256i __a)
-{
-  __m128i __v128;
-
-  __v128 = _mm256_castsi256_si128(__a);
-  _mm_storeu_si128(__addr_lo, __v128);
-  __v128 = _mm256_extractf128_si256(__a, 1);
-  _mm_storeu_si128(__addr_hi, __v128);
-}
-
 /// Constructs a 256-bit floating-point vector of [8 x float] by
 ///    concatenating two 128-bit floating-point vectors of [4 x float].
 ///
@@ -5047,6 +4877,173 @@
   return (__m256i)_mm256_set_m128i(__hi, __lo);
 }
 
+/* SIMD load ops (unaligned) */
+/// Loads two 128-bit floating-point vectors of [4 x float] from
+///    unaligned memory locations and constructs a 256-bit floating-point vector
+///    of [8 x float] by concatenating the two 128-bit vectors.
+///
+/// \headerfile <x86intrin.h>
+///
+/// This intrinsic corresponds to load instructions followed by the
+///   <c> VINSERTF128 </c> instruction.
+///
+/// \param __addr_hi
+///    A pointer to a 128-bit memory location containing 4 consecutive
+///    single-precision floating-point values. These values are to be copied to
+///    bits[255:128] of the result. The address of the memory location does not
+///    have to be aligned.
+/// \param __addr_lo
+///    A pointer to a 128-bit memory location containing 4 consecutive
+///    single-precision floating-point values. These values are to be copied to
+///    bits[127:0] of the result. The address of the memory location does not
+///    have to be aligned.
+/// \returns A 256-bit floating-point vector of [8 x float] containing the
+///    concatenated result.
+static __inline __m256 __DEFAULT_FN_ATTRS
+_mm256_loadu2_m128(float const *__addr_hi, float const *__addr_lo)
+{
+  return _mm256_set_m128(_mm_loadu_ps(__addr_hi), _mm_loadu_ps(__addr_lo));
+}
+
+/// Loads two 128-bit floating-point vectors of [2 x double] from
+///    unaligned memory locations and constructs a 256-bit floating-point vector
+///    of [4 x double] by concatenating the two 128-bit vectors.
+///
+/// \headerfile <x86intrin.h>
+///
+/// This intrinsic corresponds to load instructions followed by the
+///   <c> VINSERTF128 </c> instruction.
+///
+/// \param __addr_hi
+///    A pointer to a 128-bit memory location containing two consecutive
+///    double-precision floating-point values. These values are to be copied to
+///    bits[255:128] of the result. The address of the memory location does not
+///    have to be aligned.
+/// \param __addr_lo
+///    A pointer to a 128-bit memory location containing two consecutive
+///    double-precision floating-point values. These values are to be copied to
+///    bits[127:0] of the result. The address of the memory location does not
+///    have to be aligned.
+/// \returns A 256-bit floating-point vector of [4 x double] containing the
+///    concatenated result.
+static __inline __m256d __DEFAULT_FN_ATTRS
+_mm256_loadu2_m128d(double const *__addr_hi, double const *__addr_lo)
+{
+  return _mm256_set_m128d(_mm_loadu_pd(__addr_hi), _mm_loadu_pd(__addr_lo));
+}
+
+/// Loads two 128-bit integer vectors from unaligned memory locations and
+///    constructs a 256-bit integer vector by concatenating the two 128-bit
+///    vectors.
+///
+/// \headerfile <x86intrin.h>
+///
+/// This intrinsic corresponds to load instructions followed by the
+///   <c> VINSERTF128 </c> instruction.
+///
+/// \param __addr_hi
+///    A pointer to a 128-bit memory location containing a 128-bit integer
+///    vector. This vector is to be copied to bits[255:128] of the result. The
+///    address of the memory location does not have to be aligned.
+/// \param __addr_lo
+///    A pointer to a 128-bit memory location containing a 128-bit integer
+///    vector. This vector is to be copied to bits[127:0] of the result. The
+///    address of the memory location does not have to be aligned.
+/// \returns A 256-bit integer vector containing the concatenated result.
+static __inline __m256i __DEFAULT_FN_ATTRS
+_mm256_loadu2_m128i(__m128i_u const *__addr_hi, __m128i_u const *__addr_lo)
+{
+   return _mm256_set_m128i(_mm_loadu_si128(__addr_hi), _mm_loadu_si128(__addr_lo));
+}
+
+/* SIMD store ops (unaligned) */
+/// Stores the upper and lower 128 bits of a 256-bit floating-point
+///    vector of [8 x float] into two different unaligned memory locations.
+///
+/// \headerfile <x86intrin.h>
+///
+/// This intrinsic corresponds to the <c> VEXTRACTF128 </c> instruction and the
+///   store instructions.
+///
+/// \param __addr_hi
+///    A pointer to a 128-bit memory location. Bits[255:128] of \a __a are to be
+///    copied to this memory location. The address of this memory location does
+///    not have to be aligned.
+/// \param __addr_lo
+///    A pointer to a 128-bit memory location. Bits[127:0] of \a __a are to be
+///    copied to this memory location. The address of this memory location does
+///    not have to be aligned.
+/// \param __a
+///    A 256-bit floating-point vector of [8 x float].
+static __inline void __DEFAULT_FN_ATTRS
+_mm256_storeu2_m128(float *__addr_hi, float *__addr_lo, __m256 __a)
+{
+  __m128 __v128;
+
+  __v128 = _mm256_castps256_ps128(__a);
+  _mm_storeu_ps(__addr_lo, __v128);
+  __v128 = _mm256_extractf128_ps(__a, 1);
+  _mm_storeu_ps(__addr_hi, __v128);
+}
+
+/// Stores the upper and lower 128 bits of a 256-bit floating-point
+///    vector of [4 x double] into two different unaligned memory locations.
+///
+/// \headerfile <x86intrin.h>
+///
+/// This intrinsic corresponds to the <c> VEXTRACTF128 </c> instruction and the
+///   store instructions.
+///
+/// \param __addr_hi
+///    A pointer to a 128-bit memory location. Bits[255:128] of \a __a are to be
+///    copied to this memory location. The address of this memory location does
+///    not have to be aligned.
+/// \param __addr_lo
+///    A pointer to a 128-bit memory location. Bits[127:0] of \a __a are to be
+///    copied to this memory location. The address of this memory location does
+///    not have to be aligned.
+/// \param __a
+///    A 256-bit floating-point vector of [4 x double].
+static __inline void __DEFAULT_FN_ATTRS
+_mm256_storeu2_m128d(double *__addr_hi, double *__addr_lo, __m256d __a)
+{
+  __m128d __v128;
+
+  __v128 = _mm256_castpd256_pd128(__a);
+  _mm_storeu_pd(__addr_lo, __v128);
+  __v128 = _mm256_extractf128_pd(__a, 1);
+  _mm_storeu_pd(__addr_hi, __v128);
+}
+
+/// Stores the upper and lower 128 bits of a 256-bit integer vector into
+///    two different unaligned memory locations.
+///
+/// \headerfile <x86intrin.h>
+///
+/// This intrinsic corresponds to the <c> VEXTRACTF128 </c> instruction and the
+///   store instructions.
+///
+/// \param __addr_hi
+///    A pointer to a 128-bit memory location. Bits[255:128] of \a __a are to be
+///    copied to this memory location. The address of this memory location does
+///    not have to be aligned.
+/// \param __addr_lo
+///    A pointer to a 128-bit memory location. Bits[127:0] of \a __a are to be
+///    copied to this memory location. The address of this memory location does
+///    not have to be aligned.
+/// \param __a
+///    A 256-bit integer vector.
+static __inline void __DEFAULT_FN_ATTRS
+_mm256_storeu2_m128i(__m128i_u *__addr_hi, __m128i_u *__addr_lo, __m256i __a)
+{
+  __m128i __v128;
+
+  __v128 = _mm256_castsi256_si128(__a);
+  _mm_storeu_si128(__addr_lo, __v128);
+  __v128 = _mm256_extractf128_si256(__a, 1);
+  _mm_storeu_si128(__addr_hi, __v128);
+}
+
 #undef __DEFAULT_FN_ATTRS
 #undef __DEFAULT_FN_ATTRS128
 
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avxvnniintrin.h b/darwin-x86/lib64/clang/14.0.2/include/avxvnniintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/avxvnniintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/avxvnniintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/bits/stdatomic.h b/darwin-x86/lib64/clang/14.0.2/include/bits/stdatomic.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/bits/stdatomic.h
rename to darwin-x86/lib64/clang/14.0.2/include/bits/stdatomic.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/bmi2intrin.h b/darwin-x86/lib64/clang/14.0.2/include/bmi2intrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/bmi2intrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/bmi2intrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/bmiintrin.h b/darwin-x86/lib64/clang/14.0.2/include/bmiintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/bmiintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/bmiintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/builtins.h b/darwin-x86/lib64/clang/14.0.2/include/builtins.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/builtins.h
rename to darwin-x86/lib64/clang/14.0.2/include/builtins.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/cet.h b/darwin-x86/lib64/clang/14.0.2/include/cet.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/cet.h
rename to darwin-x86/lib64/clang/14.0.2/include/cet.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/cetintrin.h b/darwin-x86/lib64/clang/14.0.2/include/cetintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/cetintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/cetintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/cldemoteintrin.h b/darwin-x86/lib64/clang/14.0.2/include/cldemoteintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/cldemoteintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/cldemoteintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/clflushoptintrin.h b/darwin-x86/lib64/clang/14.0.2/include/clflushoptintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/clflushoptintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/clflushoptintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/clwbintrin.h b/darwin-x86/lib64/clang/14.0.2/include/clwbintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/clwbintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/clwbintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/clzerointrin.h b/darwin-x86/lib64/clang/14.0.2/include/clzerointrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/clzerointrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/clzerointrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/cpuid.h b/darwin-x86/lib64/clang/14.0.2/include/cpuid.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/cpuid.h
rename to darwin-x86/lib64/clang/14.0.2/include/cpuid.h
diff --git a/darwin-x86/lib64/clang/14.0.2/include/crc32intrin.h b/darwin-x86/lib64/clang/14.0.2/include/crc32intrin.h
new file mode 100644
index 0000000..a0bd99d
--- /dev/null
+++ b/darwin-x86/lib64/clang/14.0.2/include/crc32intrin.h
@@ -0,0 +1,100 @@
+/*===---- crc32intrin.h - SSE4.2 Accumulate CRC32 intrinsics ---------------===
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __CRC32INTRIN_H
+#define __CRC32INTRIN_H
+
+#define __DEFAULT_FN_ATTRS                                                     \
+  __attribute__((__always_inline__, __nodebug__, __target__("crc32")))
+
+/// Adds the unsigned integer operand to the CRC-32C checksum of the
+///    unsigned char operand.
+///
+/// \headerfile <x86intrin.h>
+///
+/// This intrinsic corresponds to the <c> CRC32B </c> instruction.
+///
+/// \param __C
+///    An unsigned integer operand to add to the CRC-32C checksum of operand
+///    \a  __D.
+/// \param __D
+///    An unsigned 8-bit integer operand used to compute the CRC-32C checksum.
+/// \returns The result of adding operand \a __C to the CRC-32C checksum of
+///    operand \a __D.
+static __inline__ unsigned int __DEFAULT_FN_ATTRS
+_mm_crc32_u8(unsigned int __C, unsigned char __D)
+{
+  return __builtin_ia32_crc32qi(__C, __D);
+}
+
+/// Adds the unsigned integer operand to the CRC-32C checksum of the
+///    unsigned short operand.
+///
+/// \headerfile <x86intrin.h>
+///
+/// This intrinsic corresponds to the <c> CRC32W </c> instruction.
+///
+/// \param __C
+///    An unsigned integer operand to add to the CRC-32C checksum of operand
+///    \a __D.
+/// \param __D
+///    An unsigned 16-bit integer operand used to compute the CRC-32C checksum.
+/// \returns The result of adding operand \a __C to the CRC-32C checksum of
+///    operand \a __D.
+static __inline__ unsigned int __DEFAULT_FN_ATTRS
+_mm_crc32_u16(unsigned int __C, unsigned short __D)
+{
+  return __builtin_ia32_crc32hi(__C, __D);
+}
+
+/// Adds the first unsigned integer operand to the CRC-32C checksum of
+///    the second unsigned integer operand.
+///
+/// \headerfile <x86intrin.h>
+///
+/// This intrinsic corresponds to the <c> CRC32L </c> instruction.
+///
+/// \param __C
+///    An unsigned integer operand to add to the CRC-32C checksum of operand
+///    \a __D.
+/// \param __D
+///    An unsigned 32-bit integer operand used to compute the CRC-32C checksum.
+/// \returns The result of adding operand \a __C to the CRC-32C checksum of
+///    operand \a __D.
+static __inline__ unsigned int __DEFAULT_FN_ATTRS
+_mm_crc32_u32(unsigned int __C, unsigned int __D)
+{
+  return __builtin_ia32_crc32si(__C, __D);
+}
+
+#ifdef __x86_64__
+/// Adds the unsigned integer operand to the CRC-32C checksum of the
+///    unsigned 64-bit integer operand.
+///
+/// \headerfile <x86intrin.h>
+///
+/// This intrinsic corresponds to the <c> CRC32Q </c> instruction.
+///
+/// \param __C
+///    An unsigned integer operand to add to the CRC-32C checksum of operand
+///    \a __D.
+/// \param __D
+///    An unsigned 64-bit integer operand used to compute the CRC-32C checksum.
+/// \returns The result of adding operand \a __C to the CRC-32C checksum of
+///    operand \a __D.
+static __inline__ unsigned long long __DEFAULT_FN_ATTRS
+_mm_crc32_u64(unsigned long long __C, unsigned long long __D)
+{
+  return __builtin_ia32_crc32di(__C, __D);
+}
+#endif /* __x86_64__ */
+
+#undef __DEFAULT_FN_ATTRS
+
+#endif /* __CRC32INTRIN_H */
diff --git a/darwin-x86/lib64/clang/14.0.1/include/cuda_wrappers/algorithm b/darwin-x86/lib64/clang/14.0.2/include/cuda_wrappers/algorithm
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/cuda_wrappers/algorithm
rename to darwin-x86/lib64/clang/14.0.2/include/cuda_wrappers/algorithm
diff --git a/darwin-x86/lib64/clang/14.0.1/include/cuda_wrappers/complex b/darwin-x86/lib64/clang/14.0.2/include/cuda_wrappers/complex
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/cuda_wrappers/complex
rename to darwin-x86/lib64/clang/14.0.2/include/cuda_wrappers/complex
diff --git a/darwin-x86/lib64/clang/14.0.1/include/cuda_wrappers/new b/darwin-x86/lib64/clang/14.0.2/include/cuda_wrappers/new
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/cuda_wrappers/new
rename to darwin-x86/lib64/clang/14.0.2/include/cuda_wrappers/new
diff --git a/darwin-x86/lib64/clang/14.0.1/include/emmintrin.h b/darwin-x86/lib64/clang/14.0.2/include/emmintrin.h
similarity index 99%
rename from darwin-x86/lib64/clang/14.0.1/include/emmintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/emmintrin.h
index b79a4f1..6e9c303 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/emmintrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/emmintrin.h
@@ -10,6 +10,10 @@
 #ifndef __EMMINTRIN_H
 #define __EMMINTRIN_H
 
+#if !defined(__i386__) && !defined(__x86_64__)
+#error "This header is only meant to be used on x86 and x64 architecture"
+#endif
+
 #include <xmmintrin.h>
 
 typedef double __m128d __attribute__((__vector_size__(16), __aligned__(16)));
diff --git a/darwin-x86/lib64/clang/14.0.1/include/enqcmdintrin.h b/darwin-x86/lib64/clang/14.0.2/include/enqcmdintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/enqcmdintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/enqcmdintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/f16cintrin.h b/darwin-x86/lib64/clang/14.0.2/include/f16cintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/f16cintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/f16cintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/float.h b/darwin-x86/lib64/clang/14.0.2/include/float.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/float.h
rename to darwin-x86/lib64/clang/14.0.2/include/float.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/fma4intrin.h b/darwin-x86/lib64/clang/14.0.2/include/fma4intrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/fma4intrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/fma4intrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/fmaintrin.h b/darwin-x86/lib64/clang/14.0.2/include/fmaintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/fmaintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/fmaintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/fuzzer/FuzzedDataProvider.h b/darwin-x86/lib64/clang/14.0.2/include/fuzzer/FuzzedDataProvider.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/fuzzer/FuzzedDataProvider.h
rename to darwin-x86/lib64/clang/14.0.2/include/fuzzer/FuzzedDataProvider.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/fxsrintrin.h b/darwin-x86/lib64/clang/14.0.2/include/fxsrintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/fxsrintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/fxsrintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/gfniintrin.h b/darwin-x86/lib64/clang/14.0.2/include/gfniintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/gfniintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/gfniintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/hexagon_circ_brev_intrinsics.h b/darwin-x86/lib64/clang/14.0.2/include/hexagon_circ_brev_intrinsics.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/hexagon_circ_brev_intrinsics.h
rename to darwin-x86/lib64/clang/14.0.2/include/hexagon_circ_brev_intrinsics.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/hexagon_protos.h b/darwin-x86/lib64/clang/14.0.2/include/hexagon_protos.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/hexagon_protos.h
rename to darwin-x86/lib64/clang/14.0.2/include/hexagon_protos.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/hexagon_types.h b/darwin-x86/lib64/clang/14.0.2/include/hexagon_types.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/hexagon_types.h
rename to darwin-x86/lib64/clang/14.0.2/include/hexagon_types.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/hresetintrin.h b/darwin-x86/lib64/clang/14.0.2/include/hresetintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/hresetintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/hresetintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/htmintrin.h b/darwin-x86/lib64/clang/14.0.2/include/htmintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/htmintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/htmintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/htmxlintrin.h b/darwin-x86/lib64/clang/14.0.2/include/htmxlintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/htmxlintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/htmxlintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/hvx_hexagon_protos.h b/darwin-x86/lib64/clang/14.0.2/include/hvx_hexagon_protos.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/hvx_hexagon_protos.h
rename to darwin-x86/lib64/clang/14.0.2/include/hvx_hexagon_protos.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/ia32intrin.h b/darwin-x86/lib64/clang/14.0.2/include/ia32intrin.h
similarity index 96%
rename from darwin-x86/lib64/clang/14.0.1/include/ia32intrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/ia32intrin.h
index 00138ef..ec8142b 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/ia32intrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/ia32intrin.h
@@ -16,7 +16,7 @@
 
 /* Define the default attributes for the functions in this file. */
 #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
-#define __DEFAULT_FN_ATTRS_SSE42 __attribute__((__always_inline__, __nodebug__, __target__("sse4.2")))
+#define __DEFAULT_FN_ATTRS_CRC32 __attribute__((__always_inline__, __nodebug__, __target__("crc32")))
 
 #if defined(__cplusplus) && (__cplusplus >= 201103L)
 #define __DEFAULT_FN_ATTRS_CAST __attribute__((__always_inline__)) constexpr
@@ -282,7 +282,7 @@
  *  \returns The result of adding operand \a __C to the CRC-32C checksum of
  *     operand \a __D.
  */
-static __inline__ unsigned int __DEFAULT_FN_ATTRS_SSE42
+static __inline__ unsigned int __DEFAULT_FN_ATTRS_CRC32
 __crc32b(unsigned int __C, unsigned char __D)
 {
   return __builtin_ia32_crc32qi(__C, __D);
@@ -303,7 +303,7 @@
  *  \returns The result of adding operand \a __C to the CRC-32C checksum of
  *     operand \a __D.
  */
-static __inline__ unsigned int __DEFAULT_FN_ATTRS_SSE42
+static __inline__ unsigned int __DEFAULT_FN_ATTRS_CRC32
 __crc32w(unsigned int __C, unsigned short __D)
 {
   return __builtin_ia32_crc32hi(__C, __D);
@@ -324,7 +324,7 @@
  *  \returns The result of adding operand \a __C to the CRC-32C checksum of
  *     operand \a __D.
  */
-static __inline__ unsigned int __DEFAULT_FN_ATTRS_SSE42
+static __inline__ unsigned int __DEFAULT_FN_ATTRS_CRC32
 __crc32d(unsigned int __C, unsigned int __D)
 {
   return __builtin_ia32_crc32si(__C, __D);
@@ -346,7 +346,7 @@
  *  \returns The result of adding operand \a __C to the CRC-32C checksum of
  *     operand \a __D.
  */
-static __inline__ unsigned long long __DEFAULT_FN_ATTRS_SSE42
+static __inline__ unsigned long long __DEFAULT_FN_ATTRS_CRC32
 __crc32q(unsigned long long __C, unsigned long long __D)
 {
   return __builtin_ia32_crc32di(__C, __D);
@@ -435,7 +435,7 @@
 
 #undef __DEFAULT_FN_ATTRS
 #undef __DEFAULT_FN_ATTRS_CAST
-#undef __DEFAULT_FN_ATTRS_SSE42
+#undef __DEFAULT_FN_ATTRS_CRC32
 #undef __DEFAULT_FN_ATTRS_CONSTEXPR
 
 #endif /* __IA32INTRIN_H */
diff --git a/darwin-x86/lib64/clang/14.0.1/include/immintrin.h b/darwin-x86/lib64/clang/14.0.2/include/immintrin.h
similarity index 96%
rename from darwin-x86/lib64/clang/14.0.1/include/immintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/immintrin.h
index 8a75895..e5174f8 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/immintrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/immintrin.h
@@ -10,6 +10,10 @@
 #ifndef __IMMINTRIN_H
 #define __IMMINTRIN_H
 
+#if !defined(__i386__) && !defined(__x86_64__)
+#error "This header is only meant to be used on x86 and x64 architecture"
+#endif
+
 #include <x86gprintrin.h>
 
 #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
@@ -539,13 +543,13 @@
 #if defined(__i386__) || defined(__x86_64__)
 static __inline__ long __DEFAULT_FN_ATTRS
 _InterlockedExchange_HLEAcquire(long volatile *_Target, long _Value) {
-  __asm__ __volatile__(".byte 0xf2 ; lock ; xchg %0, %1"
+  __asm__ __volatile__(".byte 0xf2 ; lock ; xchg {%0, %1|%1, %0}"
                        : "+r" (_Value), "+m" (*_Target) :: "memory");
   return _Value;
 }
 static __inline__ long __DEFAULT_FN_ATTRS
 _InterlockedExchange_HLERelease(long volatile *_Target, long _Value) {
-  __asm__ __volatile__(".byte 0xf3 ; lock ; xchg %0, %1"
+  __asm__ __volatile__(".byte 0xf3 ; lock ; xchg {%0, %1|%1, %0}"
                        : "+r" (_Value), "+m" (*_Target) :: "memory");
   return _Value;
 }
@@ -553,13 +557,13 @@
 #if defined(__x86_64__)
 static __inline__ __int64 __DEFAULT_FN_ATTRS
 _InterlockedExchange64_HLEAcquire(__int64 volatile *_Target, __int64 _Value) {
-  __asm__ __volatile__(".byte 0xf2 ; lock ; xchg %0, %1"
+  __asm__ __volatile__(".byte 0xf2 ; lock ; xchg {%0, %1|%1, %0}"
                        : "+r" (_Value), "+m" (*_Target) :: "memory");
   return _Value;
 }
 static __inline__ __int64 __DEFAULT_FN_ATTRS
 _InterlockedExchange64_HLERelease(__int64 volatile *_Target, __int64 _Value) {
-  __asm__ __volatile__(".byte 0xf3 ; lock ; xchg %0, %1"
+  __asm__ __volatile__(".byte 0xf3 ; lock ; xchg {%0, %1|%1, %0}"
                        : "+r" (_Value), "+m" (*_Target) :: "memory");
   return _Value;
 }
@@ -571,7 +575,7 @@
 static __inline__ long __DEFAULT_FN_ATTRS
 _InterlockedCompareExchange_HLEAcquire(long volatile *_Destination,
                               long _Exchange, long _Comparand) {
-  __asm__ __volatile__(".byte 0xf2 ; lock ; cmpxchg %2, %1"
+  __asm__ __volatile__(".byte 0xf2 ; lock ; cmpxchg {%2, %1|%1, %2}"
                        : "+a" (_Comparand), "+m" (*_Destination)
                        : "r" (_Exchange) : "memory");
   return _Comparand;
@@ -579,7 +583,7 @@
 static __inline__ long __DEFAULT_FN_ATTRS
 _InterlockedCompareExchange_HLERelease(long volatile *_Destination,
                               long _Exchange, long _Comparand) {
-  __asm__ __volatile__(".byte 0xf3 ; lock ; cmpxchg %2, %1"
+  __asm__ __volatile__(".byte 0xf3 ; lock ; cmpxchg {%2, %1|%1, %2}"
                        : "+a" (_Comparand), "+m" (*_Destination)
                        : "r" (_Exchange) : "memory");
   return _Comparand;
@@ -589,7 +593,7 @@
 static __inline__ __int64 __DEFAULT_FN_ATTRS
 _InterlockedCompareExchange64_HLEAcquire(__int64 volatile *_Destination,
                               __int64 _Exchange, __int64 _Comparand) {
-  __asm__ __volatile__(".byte 0xf2 ; lock ; cmpxchg %2, %1"
+  __asm__ __volatile__(".byte 0xf2 ; lock ; cmpxchg {%2, %1|%1, %2}"
                        : "+a" (_Comparand), "+m" (*_Destination)
                        : "r" (_Exchange) : "memory");
   return _Comparand;
@@ -597,7 +601,7 @@
 static __inline__ __int64 __DEFAULT_FN_ATTRS
 _InterlockedCompareExchange64_HLERelease(__int64 volatile *_Destination,
                               __int64 _Exchange, __int64 _Comparand) {
-  __asm__ __volatile__(".byte 0xf3 ; lock ; cmpxchg %2, %1"
+  __asm__ __volatile__(".byte 0xf3 ; lock ; cmpxchg {%2, %1|%1, %2}"
                        : "+a" (_Comparand), "+m" (*_Destination)
                        : "r" (_Exchange) : "memory");
   return _Comparand;
diff --git a/darwin-x86/lib64/clang/14.0.1/include/intrin.h b/darwin-x86/lib64/clang/14.0.2/include/intrin.h
similarity index 91%
rename from darwin-x86/lib64/clang/14.0.1/include/intrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/intrin.h
index b75ee3b..02e66d0 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/intrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/intrin.h
@@ -57,16 +57,11 @@
 void __addfsdword(unsigned long, unsigned long);
 void __addfsword(unsigned long, unsigned short);
 void __code_seg(const char *);
-static __inline__
 void __cpuid(int[4], int);
-static __inline__
 void __cpuidex(int[4], int, int);
-static __inline__
 __int64 __emul(int, int);
-static __inline__
 unsigned __int64 __emulu(unsigned int, unsigned int);
 unsigned int __getcallerseflags(void);
-static __inline__
 void __halt(void);
 unsigned char __inbyte(unsigned short);
 void __inbytestring(unsigned short, unsigned char *, unsigned long);
@@ -82,13 +77,9 @@
 void __lidt(void *);
 unsigned __int64 __ll_lshift(unsigned __int64, int);
 __int64 __ll_rshift(__int64, int);
-static __inline__
 void __movsb(unsigned char *, unsigned char const *, size_t);
-static __inline__
 void __movsd(unsigned long *, unsigned long const *, size_t);
-static __inline__
 void __movsw(unsigned short *, unsigned short const *, size_t);
-static __inline__
 void __nop(void);
 void __nvreg_restore_fence(void);
 void __nvreg_save_fence(void);
@@ -105,25 +96,17 @@
 unsigned long __readcr8(void);
 unsigned int __readdr(unsigned int);
 #ifdef __i386__
-static __inline__
 unsigned char __readfsbyte(unsigned long);
-static __inline__
 unsigned short __readfsword(unsigned long);
-static __inline__
 unsigned long __readfsdword(unsigned long);
-static __inline__
 unsigned __int64 __readfsqword(unsigned long);
 #endif
-static __inline__
 unsigned __int64 __readmsr(unsigned long);
 unsigned __int64 __readpmc(unsigned long);
 unsigned long __segmentlimit(unsigned long);
 void __sidt(void *);
-static __inline__
 void __stosb(unsigned char *, unsigned char, size_t);
-static __inline__
 void __stosd(unsigned long *, unsigned long, size_t);
-static __inline__
 void __stosw(unsigned short *, unsigned short, size_t);
 void __svm_clgi(void);
 void __svm_invlpga(void *, int);
@@ -138,7 +121,6 @@
 void __vmx_vmptrst(unsigned __int64 *);
 void __wbinvd(void);
 void __writecr0(unsigned int);
-static __inline__
 void __writecr3(unsigned __INTPTR_TYPE__);
 void __writecr4(unsigned int);
 void __writecr8(unsigned int);
@@ -148,11 +130,8 @@
 void __writefsqword(unsigned long, unsigned __int64);
 void __writefsword(unsigned long, unsigned short);
 void __writemsr(unsigned long, unsigned __int64);
-static __inline__
 void *_AddressOfReturnAddress(void);
-static __inline__
 unsigned char _BitScanForward(unsigned long *_Index, unsigned long _Mask);
-static __inline__
 unsigned char _BitScanReverse(unsigned long *_Index, unsigned long _Mask);
 unsigned char _bittest(long const *, long);
 unsigned char _bittestandcomplement(long *, long);
@@ -171,12 +150,8 @@
 long _InterlockedExchangeAdd_HLERelease(long volatile *, long);
 __int64 _InterlockedExchangeAdd64_HLEAcquire(__int64 volatile *, __int64);
 __int64 _InterlockedExchangeAdd64_HLERelease(__int64 volatile *, __int64);
-static __inline__ void
-__attribute__((__deprecated__("use other intrinsics or C++11 atomics instead")))
-_ReadBarrier(void);
-static __inline__ void
-__attribute__((__deprecated__("use other intrinsics or C++11 atomics instead")))
-_ReadWriteBarrier(void);
+void _ReadBarrier(void);
+void _ReadWriteBarrier(void);
 unsigned int _rorx_u32(unsigned int, const unsigned int);
 int _sarx_i32(int, unsigned int);
 #if __STDC_HOSTED__
@@ -187,9 +162,7 @@
 void _Store_HLERelease(long volatile *, long);
 void _Store64_HLERelease(__int64 volatile *, __int64);
 void _StorePointer_HLERelease(void *volatile *, void *);
-static __inline__ void
-__attribute__((__deprecated__("use other intrinsics or C++11 atomics instead")))
-_WriteBarrier(void);
+void _WriteBarrier(void);
 unsigned __int32 xbegin(void);
 void _xend(void);
 
@@ -199,19 +172,14 @@
 void __addgsdword(unsigned long, unsigned long);
 void __addgsqword(unsigned long, unsigned __int64);
 void __addgsword(unsigned long, unsigned short);
-static __inline__
 void __faststorefence(void);
 void __incgsbyte(unsigned long);
 void __incgsdword(unsigned long);
 void __incgsqword(unsigned long);
 void __incgsword(unsigned long);
-static __inline__
 void __movsq(unsigned long long *, unsigned long long const *, size_t);
-static __inline__
 unsigned char __readgsbyte(unsigned long);
-static __inline__
 unsigned long __readgsdword(unsigned long);
-static __inline__
 unsigned __int64 __readgsqword(unsigned long);
 unsigned short __readgsword(unsigned long);
 unsigned __int64 __shiftleft128(unsigned __int64 _LowPart,
@@ -220,7 +188,6 @@
 unsigned __int64 __shiftright128(unsigned __int64 _LowPart,
                                  unsigned __int64 _HighPart,
                                  unsigned char _Shift);
-static __inline__
 void __stosq(unsigned __int64 *, unsigned __int64, size_t);
 unsigned char __vmx_on(unsigned __int64 *);
 unsigned char __vmx_vmclear(unsigned __int64 *);
@@ -267,13 +234,9 @@
 __int64 _sarx_i64(__int64, unsigned int);
 unsigned __int64 _shlx_u64(unsigned __int64, unsigned int);
 unsigned __int64 _shrx_u64(unsigned __int64, unsigned int);
-static __inline__
 __int64 __mulh(__int64, __int64);
-static __inline__
 unsigned __int64 __umulh(unsigned __int64, unsigned __int64);
-static __inline__
 __int64 _mul128(__int64, __int64, __int64*);
-static __inline__
 unsigned __int64 _umul128(unsigned __int64,
                           unsigned __int64,
                           unsigned __int64*);
@@ -282,29 +245,19 @@
 
 #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__)
 
-static __inline__
 unsigned char _BitScanForward64(unsigned long *_Index, unsigned __int64 _Mask);
-static __inline__
 unsigned char _BitScanReverse64(unsigned long *_Index, unsigned __int64 _Mask);
 
 #endif
 
 #if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__)
-static __inline__
 __int64 _InterlockedDecrement64(__int64 volatile *_Addend);
-static __inline__
 __int64 _InterlockedExchange64(__int64 volatile *_Target, __int64 _Value);
-static __inline__
 __int64 _InterlockedExchangeAdd64(__int64 volatile *_Addend, __int64 _Value);
-static __inline__
 __int64 _InterlockedExchangeSub64(__int64 volatile *_Subend, __int64 _Value);
-static __inline__
 __int64 _InterlockedIncrement64(__int64 volatile *_Addend);
-static __inline__
 __int64 _InterlockedOr64(__int64 volatile *_Value, __int64 _Mask);
-static __inline__
 __int64 _InterlockedXor64(__int64 volatile *_Value, __int64 _Mask);
-static __inline__
 __int64 _InterlockedAnd64(__int64 volatile *_Value, __int64 _Mask);
 
 #endif
@@ -493,57 +446,68 @@
 |* movs, stos
 \*----------------------------------------------------------------------------*/
 #if defined(__i386__) || defined(__x86_64__)
-static __inline__ void __DEFAULT_FN_ATTRS
-__movsb(unsigned char *__dst, unsigned char const *__src, size_t __n) {
+static __inline__ void __DEFAULT_FN_ATTRS __movsb(unsigned char *__dst,
+                                                  unsigned char const *__src,
+                                                  size_t __n) {
 #if defined(__x86_64__)
   __asm__ __volatile__("rep movsb"
                        : "+D"(__dst), "+S"(__src), "+c"(__n)
                        :
                        : "memory");
 #else
-  __asm__ __volatile__("xchg %%esi, %1\nrep movsb\nxchg %%esi, %1"
+  __asm__ __volatile__("xchg {%%esi, %1|%1, esi}\n"
+                       "rep movsb\n"
+                       "xchg {%%esi, %1|%1, esi}"
                        : "+D"(__dst), "+r"(__src), "+c"(__n)
                        :
                        : "memory");
 #endif
 }
-static __inline__ void __DEFAULT_FN_ATTRS
-__movsd(unsigned long *__dst, unsigned long const *__src, size_t __n) {
+static __inline__ void __DEFAULT_FN_ATTRS __movsd(unsigned long *__dst,
+                                                  unsigned long const *__src,
+                                                  size_t __n) {
 #if defined(__x86_64__)
-  __asm__ __volatile__("rep movsl"
+  __asm__ __volatile__("rep movs{l|d}"
                        : "+D"(__dst), "+S"(__src), "+c"(__n)
                        :
                        : "memory");
 #else
-  __asm__ __volatile__("xchg %%esi, %1\nrep movsl\nxchg %%esi, %1"
+  __asm__ __volatile__("xchg {%%esi, %1|%1, esi}\n"
+                       "rep movs{l|d}\n"
+                       "xchg {%%esi, %1|%1, esi}"
                        : "+D"(__dst), "+r"(__src), "+c"(__n)
                        :
                        : "memory");
 #endif
 }
-static __inline__ void __DEFAULT_FN_ATTRS
-__movsw(unsigned short *__dst, unsigned short const *__src, size_t __n) {
+static __inline__ void __DEFAULT_FN_ATTRS __movsw(unsigned short *__dst,
+                                                  unsigned short const *__src,
+                                                  size_t __n) {
 #if defined(__x86_64__)
   __asm__ __volatile__("rep movsw"
                        : "+D"(__dst), "+S"(__src), "+c"(__n)
                        :
                        : "memory");
 #else
-  __asm__ __volatile__("xchg %%esi, %1\nrep movsw\nxchg %%esi, %1"
+  __asm__ __volatile__("xchg {%%esi, %1|%1, esi}\n"
+                       "rep movsw\n"
+                       "xchg {%%esi, %1|%1, esi}"
                        : "+D"(__dst), "+r"(__src), "+c"(__n)
                        :
                        : "memory");
 #endif
 }
-static __inline__ void __DEFAULT_FN_ATTRS
-__stosd(unsigned long *__dst, unsigned long __x, size_t __n) {
-  __asm__ __volatile__("rep stosl"
+static __inline__ void __DEFAULT_FN_ATTRS __stosd(unsigned long *__dst,
+                                                  unsigned long __x,
+                                                  size_t __n) {
+  __asm__ __volatile__("rep stos{l|d}"
                        : "+D"(__dst), "+c"(__n)
                        : "a"(__x)
                        : "memory");
 }
-static __inline__ void __DEFAULT_FN_ATTRS
-__stosw(unsigned short *__dst, unsigned short __x, size_t __n) {
+static __inline__ void __DEFAULT_FN_ATTRS __stosw(unsigned short *__dst,
+                                                  unsigned short __x,
+                                                  size_t __n) {
   __asm__ __volatile__("rep stosw"
                        : "+D"(__dst), "+c"(__n)
                        : "a"(__x)
@@ -551,15 +515,16 @@
 }
 #endif
 #ifdef __x86_64__
-static __inline__ void __DEFAULT_FN_ATTRS
-__movsq(unsigned long long *__dst, unsigned long long const *__src, size_t __n) {
+static __inline__ void __DEFAULT_FN_ATTRS __movsq(
+    unsigned long long *__dst, unsigned long long const *__src, size_t __n) {
   __asm__ __volatile__("rep movsq"
                        : "+D"(__dst), "+S"(__src), "+c"(__n)
                        :
                        : "memory");
 }
-static __inline__ void __DEFAULT_FN_ATTRS
-__stosq(unsigned __int64 *__dst, unsigned __int64 __x, size_t __n) {
+static __inline__ void __DEFAULT_FN_ATTRS __stosq(unsigned __int64 *__dst,
+                                                  unsigned __int64 __x,
+                                                  size_t __n) {
   __asm__ __volatile__("rep stosq" : "+D"(__dst), "+c"(__n) : "a"(__x)
                        : "memory");
 }
@@ -577,9 +542,9 @@
 #else
 /* x86-64 uses %rbx as the base register, so preserve it. */
 #define __cpuid_count(__leaf, __count, __eax, __ebx, __ecx, __edx)             \
-  __asm("xchgq %%rbx,%q1\n"                                                    \
+  __asm("xchg{q} {%%rbx, %q1|%q1, rbx}\n"                                      \
         "cpuid\n"                                                              \
-        "xchgq %%rbx,%q1"                                                      \
+        "xchg{q} {%%rbx, %q1|%q1, rbx}"                                        \
         : "=a"(__eax), "=r"(__ebx), "=c"(__ecx), "=d"(__edx)                   \
         : "0"(__leaf), "2"(__count))
 #endif
@@ -637,16 +602,19 @@
 }
 #endif
 
-static __inline__ unsigned __LPTRINT_TYPE__ __DEFAULT_FN_ATTRS
-__readcr3(void) {
+static __inline__ unsigned __LPTRINT_TYPE__ __DEFAULT_FN_ATTRS __readcr3(void) {
   unsigned __LPTRINT_TYPE__ __cr3_val;
-  __asm__ __volatile__ ("mov %%cr3, %0" : "=r"(__cr3_val) : : "memory");
+  __asm__ __volatile__(
+                       "mov {%%cr3, %0|%0, cr3}"
+                       : "=r"(__cr3_val)
+                       :
+                       : "memory");
   return __cr3_val;
 }
 
 static __inline__ void __DEFAULT_FN_ATTRS
 __writecr3(unsigned __INTPTR_TYPE__ __cr3_val) {
-  __asm__ ("mov %0, %%cr3" : : "r"(__cr3_val) : "memory");
+  __asm__ ("mov {%0, %%cr3|cr3, %0}" : : "r"(__cr3_val) : "memory");
 }
 
 #ifdef __cplusplus
diff --git a/darwin-x86/lib64/clang/14.0.1/include/inttypes.h b/darwin-x86/lib64/clang/14.0.2/include/inttypes.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/inttypes.h
rename to darwin-x86/lib64/clang/14.0.2/include/inttypes.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/invpcidintrin.h b/darwin-x86/lib64/clang/14.0.2/include/invpcidintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/invpcidintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/invpcidintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/iso646.h b/darwin-x86/lib64/clang/14.0.2/include/iso646.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/iso646.h
rename to darwin-x86/lib64/clang/14.0.2/include/iso646.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/keylockerintrin.h b/darwin-x86/lib64/clang/14.0.2/include/keylockerintrin.h
similarity index 97%
rename from darwin-x86/lib64/clang/14.0.1/include/keylockerintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/keylockerintrin.h
index 68b0a56..ad9428e 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/keylockerintrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/keylockerintrin.h
@@ -99,7 +99,7 @@
 }
 
 /// Wrap a 128-bit AES key from __key into a key handle and output in
-/// ((__m128i*)__h) to ((__m128i*)__h) + 5  and a 32-bit value as return.
+/// ((__m128i*)__h) to ((__m128i*)__h) + 2  and a 32-bit value as return.
 /// The explicit source operand __htype specifies handle restrictions.
 ///
 /// \headerfile <x86intrin.h>
@@ -120,9 +120,6 @@
 /// MEM[__h+127:__h] := Handle[127:0]   // AAD
 /// MEM[__h+255:__h+128] := Handle[255:128] // Integrity Tag
 /// MEM[__h+383:__h+256] := Handle[383:256] // CipherText
-/// MEM[__h+511:__h+384] := 0 // Reserved for future usage
-/// MEM[__h+639:__h+512] := 0 // Reserved for future usage
-/// MEM[__h+767:__h+640] := 0 // Reserved for future usage
 /// OF := 0
 /// SF := 0
 /// ZF := 0
@@ -136,7 +133,7 @@
 }
 
 /// Wrap a 256-bit AES key from __key_hi:__key_lo into a key handle, then
-/// output handle in ((__m128i*)__h) to ((__m128i*)__h) + 6 and
+/// output handle in ((__m128i*)__h) to ((__m128i*)__h) + 3 and
 /// a 32-bit value as return.
 /// The explicit source operand __htype specifies handle restrictions.
 ///
@@ -160,9 +157,6 @@
 /// MEM[__h+255:__h+128] := Handle[255:128] // Tag
 /// MEM[__h+383:__h+256] := Handle[383:256] // CipherText[127:0]
 /// MEM[__h+511:__h+384] := Handle[511:384] // CipherText[255:128]
-/// MEM[__h+639:__h+512] := 0 // Reserved for future usage
-/// MEM[__h+767:__h+640] := 0 // Reserved for future usage
-/// MEM[__h+895:__h+768] := 0 Integrity// Reserved for future usage
 /// OF := 0
 /// SF := 0
 /// ZF := 0
diff --git a/darwin-x86/lib64/clang/14.0.1/include/limits.h b/darwin-x86/lib64/clang/14.0.2/include/limits.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/limits.h
rename to darwin-x86/lib64/clang/14.0.2/include/limits.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/lwpintrin.h b/darwin-x86/lib64/clang/14.0.2/include/lwpintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/lwpintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/lwpintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/lzcntintrin.h b/darwin-x86/lib64/clang/14.0.2/include/lzcntintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/lzcntintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/lzcntintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/mm3dnow.h b/darwin-x86/lib64/clang/14.0.2/include/mm3dnow.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/mm3dnow.h
rename to darwin-x86/lib64/clang/14.0.2/include/mm3dnow.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/mm_malloc.h b/darwin-x86/lib64/clang/14.0.2/include/mm_malloc.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/mm_malloc.h
rename to darwin-x86/lib64/clang/14.0.2/include/mm_malloc.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/mmintrin.h b/darwin-x86/lib64/clang/14.0.2/include/mmintrin.h
similarity index 99%
rename from darwin-x86/lib64/clang/14.0.1/include/mmintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/mmintrin.h
index 79a8b55..03bac92 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/mmintrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/mmintrin.h
@@ -10,6 +10,10 @@
 #ifndef __MMINTRIN_H
 #define __MMINTRIN_H
 
+#if !defined(__i386__) && !defined(__x86_64__)
+#error "This header is only meant to be used on x86 and x64 architecture"
+#endif
+
 typedef long long __m64 __attribute__((__vector_size__(8), __aligned__(8)));
 
 typedef long long __v1di __attribute__((__vector_size__(8)));
diff --git a/darwin-x86/lib64/clang/14.0.1/include/module.modulemap b/darwin-x86/lib64/clang/14.0.2/include/module.modulemap
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/module.modulemap
rename to darwin-x86/lib64/clang/14.0.2/include/module.modulemap
diff --git a/darwin-x86/lib64/clang/14.0.1/include/movdirintrin.h b/darwin-x86/lib64/clang/14.0.2/include/movdirintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/movdirintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/movdirintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/msa.h b/darwin-x86/lib64/clang/14.0.2/include/msa.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/msa.h
rename to darwin-x86/lib64/clang/14.0.2/include/msa.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/mwaitxintrin.h b/darwin-x86/lib64/clang/14.0.2/include/mwaitxintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/mwaitxintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/mwaitxintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/nmmintrin.h b/darwin-x86/lib64/clang/14.0.2/include/nmmintrin.h
similarity index 81%
rename from darwin-x86/lib64/clang/14.0.1/include/nmmintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/nmmintrin.h
index 672aea4..59fc7ec 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/nmmintrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/nmmintrin.h
@@ -10,6 +10,10 @@
 #ifndef __NMMINTRIN_H
 #define __NMMINTRIN_H
 
+#if !defined(__i386__) && !defined(__x86_64__)
+#error "This header is only meant to be used on x86 and x64 architecture"
+#endif
+
 /* To match expectations of gcc we put the sse4.2 definitions into smmintrin.h,
    just include it now then.  */
 #include <smmintrin.h>
diff --git a/darwin-x86/lib64/clang/14.0.1/include/opencl-c-base.h b/darwin-x86/lib64/clang/14.0.2/include/opencl-c-base.h
similarity index 95%
rename from darwin-x86/lib64/clang/14.0.1/include/opencl-c-base.h
rename to darwin-x86/lib64/clang/14.0.2/include/opencl-c-base.h
index f3605c6..9c81ddb 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/opencl-c-base.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/opencl-c-base.h
@@ -12,8 +12,8 @@
 // Define extension macros
 
 #if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 200)
-// For SPIR all extensions are supported.
-#if defined(__SPIR__)
+// For SPIR and SPIR-V all extensions are supported.
+#if defined(__SPIR__) || defined(__SPIRV__)
 #define cl_khr_subgroup_extended_types 1
 #define cl_khr_subgroup_non_uniform_vote 1
 #define cl_khr_subgroup_ballot 1
@@ -25,8 +25,27 @@
 #define cl_khr_integer_dot_product 1
 #define __opencl_c_integer_dot_product_input_4x8bit 1
 #define __opencl_c_integer_dot_product_input_4x8bit_packed 1
+#define cl_ext_float_atomics 1
+#ifdef cl_khr_fp16
+#define __opencl_c_ext_fp16_global_atomic_load_store 1
+#define __opencl_c_ext_fp16_local_atomic_load_store 1
+#define __opencl_c_ext_fp16_global_atomic_add 1
+#define __opencl_c_ext_fp16_local_atomic_add 1
+#define __opencl_c_ext_fp16_global_atomic_min_max 1
+#define __opencl_c_ext_fp16_local_atomic_min_max 1
+#endif
+#ifdef cl_khr_fp64
+#define __opencl_c_ext_fp64_global_atomic_add 1
+#define __opencl_c_ext_fp64_local_atomic_add 1
+#define __opencl_c_ext_fp64_global_atomic_min_max 1
+#define __opencl_c_ext_fp64_local_atomic_min_max 1
+#endif
+#define __opencl_c_ext_fp32_global_atomic_add 1
+#define __opencl_c_ext_fp32_local_atomic_add 1
+#define __opencl_c_ext_fp32_global_atomic_min_max 1
+#define __opencl_c_ext_fp32_local_atomic_min_max 1
 
-#endif // defined(__SPIR__)
+#endif // defined(__SPIR__) || defined(__SPIRV__)
 #endif // (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 200)
 
 // Define feature macros for OpenCL C 2.0
@@ -46,8 +65,8 @@
 
 // Define header-only feature macros for OpenCL C 3.0.
 #if (__OPENCL_CPP_VERSION__ == 202100 || __OPENCL_C_VERSION__ == 300)
-// For the SPIR target all features are supported.
-#if defined(__SPIR__)
+// For the SPIR and SPIR-V target all features are supported.
+#if defined(__SPIR__) || defined(__SPIRV__)
 #define __opencl_c_atomic_scope_all_devices 1
 #endif // defined(__SPIR__)
 #endif // (__OPENCL_CPP_VERSION__ == 202100 || __OPENCL_C_VERSION__ == 300)
@@ -329,9 +348,9 @@
   memory_scope_device = __OPENCL_MEMORY_SCOPE_DEVICE,
 #if defined(__opencl_c_atomic_scope_all_devices)
   memory_scope_all_svm_devices = __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES,
-#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0)
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
   memory_scope_all_devices = memory_scope_all_svm_devices,
-#endif // __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif // defined(__opencl_c_atomic_scope_all_devices)
 /**
  * Subgroups have different requirements on forward progress, so just test
diff --git a/darwin-x86/lib64/clang/14.0.1/include/opencl-c.h b/darwin-x86/lib64/clang/14.0.2/include/opencl-c.h
similarity index 96%
rename from darwin-x86/lib64/clang/14.0.1/include/opencl-c.h
rename to darwin-x86/lib64/clang/14.0.2/include/opencl-c.h
index bb3ca6a..32af848 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/opencl-c.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/opencl-c.h
@@ -23,11 +23,14 @@
 #endif //cl_khr_3d_image_writes
 #endif //__OPENCL_C_VERSION__ < CL_VERSION_2_0
 
-
-#if (defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) && defined(__SPIR__)
+#if (defined(__OPENCL_CPP_VERSION__) ||                                        \
+     (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) &&                              \
+    (defined(__SPIR__) || defined(__SPIRV__))
 #pragma OPENCL EXTENSION cl_intel_planar_yuv : begin
 #pragma OPENCL EXTENSION cl_intel_planar_yuv : end
-#endif // (defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) && defined(__SPIR__)
+#endif // (defined(__OPENCL_CPP_VERSION__) ||
+       //  (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) &&
+       // (defined(__SPIR__) || defined(__SPIRV__))
 
 #define __ovld __attribute__((overloadable))
 #define __conv __attribute__((convergent))
@@ -13256,7 +13259,7 @@
 #endif //cl_khr_fp64
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 void __ovld atomic_init(volatile __global atomic_int *object, int value);
 void __ovld atomic_init(volatile __local atomic_int *object, int value);
 void __ovld atomic_init(volatile __global atomic_uint *object, uint value);
@@ -13273,7 +13276,7 @@
 void __ovld atomic_init(volatile __local atomic_double *object, double value);
 #endif //cl_khr_fp64
 #endif
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 
 // atomic_work_item_fence()
 void __ovld atomic_work_item_fence(cl_mem_fence_flags flags, memory_order order, memory_scope scope);
@@ -13317,7 +13320,7 @@
 uintptr_t __ovld atomic_fetch_sub(volatile atomic_uintptr_t *object, ptrdiff_t operand);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 int __ovld atomic_fetch_add(volatile __global atomic_int *object, int operand);
 int __ovld atomic_fetch_add(volatile __local atomic_int *object, int operand);
 uint __ovld atomic_fetch_add(volatile __global atomic_uint *object, uint operand);
@@ -13333,7 +13336,7 @@
 int __ovld atomic_fetch_xor(volatile __global atomic_int *object, int operand);
 int __ovld atomic_fetch_xor(volatile __local atomic_int *object, int operand);
 uint __ovld atomic_fetch_xor(volatile __global atomic_uint *object, uint operand);
-uint __ovld atomic_fetch_xor(volatile __local atomic_uint *object, uint operand);i
+uint __ovld atomic_fetch_xor(volatile __local atomic_uint *object, uint operand);
 int __ovld atomic_fetch_and(volatile __global atomic_int *object, int operand);
 int __ovld atomic_fetch_and(volatile __local atomic_int *object, int operand);
 uint __ovld atomic_fetch_and(volatile __global atomic_uint *object, uint operand);
@@ -13398,7 +13401,7 @@
 uintptr_t __ovld atomic_fetch_add(volatile __global atomic_uintptr_t *object, ptrdiff_t operand);
 uintptr_t __ovld atomic_fetch_sub(volatile __local atomic_uintptr_t *object, ptrdiff_t operand);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif
 
 #if defined(__opencl_c_atomic_scope_device)
@@ -13436,7 +13439,7 @@
 uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 int __ovld atomic_fetch_add_explicit(volatile __global atomic_int *object, int operand, memory_order order);
 int __ovld atomic_fetch_add_explicit(volatile __local atomic_int *object, int operand, memory_order order);
 uint __ovld atomic_fetch_add_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
@@ -13517,7 +13520,7 @@
 uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
 uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif
 
 #if defined(__opencl_c_generic_address_space)
@@ -13554,7 +13557,7 @@
 uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 int __ovld atomic_fetch_add_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
 int __ovld atomic_fetch_add_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
 uint __ovld atomic_fetch_add_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
@@ -13635,7 +13638,379 @@
 uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
 uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
+
+// The functionality added by cl_ext_float_atomics extension
+#if defined(cl_ext_float_atomics)
+
+#if defined(__opencl_c_ext_fp16_global_atomic_load_store)
+void __ovld atomic_store(volatile __global atomic_half *object, half operand);
+void __ovld atomic_store_explicit(volatile __global atomic_half *object,
+                                  half operand, memory_order order);
+void __ovld atomic_store_explicit(volatile __global atomic_half *object,
+                                  half operand, memory_order order,
+                                  memory_scope scope);
+half __ovld atomic_load(volatile __global atomic_half *object);
+half __ovld atomic_load_explicit(volatile __global atomic_half *object,
+                                 memory_order order);
+half __ovld atomic_load_explicit(volatile __global atomic_half *object,
+                                 memory_order order, memory_scope scope);
+half __ovld atomic_exchange(volatile __global atomic_half *object,
+                            half operand);
+half __ovld atomic_exchange_explicit(volatile __global atomic_half *object,
+                                     half operand, memory_order order);
+half __ovld atomic_exchange_explicit(volatile __global atomic_half *object,
+                                     half operand, memory_order order,
+                                     memory_scope scope);
+#endif // defined(__opencl_c_ext_fp16_global_atomic_load_store)
+
+#if defined(__opencl_c_ext_fp16_local_atomic_load_store)
+void __ovld atomic_store(volatile __local atomic_half *object, half operand);
+void __ovld atomic_store_explicit(volatile __local atomic_half *object,
+                                  half operand, memory_order order);
+void __ovld atomic_store_explicit(volatile __local atomic_half *object,
+                                  half operand, memory_order order,
+                                  memory_scope scope);
+half __ovld atomic_load(volatile __local atomic_half *object);
+half __ovld atomic_load_explicit(volatile __local atomic_half *object,
+                                 memory_order order);
+half __ovld atomic_load_explicit(volatile __local atomic_half *object,
+                                 memory_order order, memory_scope scope);
+half __ovld atomic_exchange(volatile __local atomic_half *object, half operand);
+half __ovld atomic_exchange_explicit(volatile __local atomic_half *object,
+                                     half operand, memory_order order);
+half __ovld atomic_exchange_explicit(volatile __local atomic_half *object,
+                                     half operand, memory_order order,
+                                     memory_scope scope);
+#endif // defined(__opencl_c_ext_fp16_local_atomic_load_store)
+
+#if defined(__opencl_c_ext_fp16_global_atomic_load_store) &&                   \
+    defined(__opencl_c_ext_fp16_local_atomic_load_store)
+void __ovld atomic_store(volatile atomic_half *object, half operand);
+void __ovld atomic_store_explicit(volatile atomic_half *object, half operand,
+                                  memory_order order);
+void __ovld atomic_store_explicit(volatile atomic_half *object, half operand,
+                                  memory_order order, memory_scope scope);
+half __ovld atomic_load(volatile atomic_half *object);
+half __ovld atomic_load_explicit(volatile atomic_half *object,
+                                 memory_order order);
+half __ovld atomic_load_explicit(volatile atomic_half *object,
+                                 memory_order order, memory_scope scope);
+half __ovld atomic_exchange(volatile atomic_half *object, half operand);
+half __ovld atomic_exchange_explicit(volatile atomic_half *object, half operand,
+                                     memory_order order);
+half __ovld atomic_exchange_explicit(volatile atomic_half *object, half operand,
+                                     memory_order order, memory_scope scope);
+#endif // defined(__opencl_c_ext_fp16_global_atomic_load_store) &&
+       // defined(__opencl_c_ext_fp16_local_atomic_load_store)
+
+#if defined(__opencl_c_ext_fp16_global_atomic_min_max)
+half __ovld atomic_fetch_min(volatile __global atomic_half *object,
+                             half operand);
+half __ovld atomic_fetch_max(volatile __global atomic_half *object,
+                             half operand);
+half __ovld atomic_fetch_min_explicit(volatile __global atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_max_explicit(volatile __global atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_min_explicit(volatile __global atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+half __ovld atomic_fetch_max_explicit(volatile __global atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+#endif // defined(__opencl_c_ext_fp16_global_atomic_min_max)
+
+#if defined(__opencl_c_ext_fp16_local_atomic_min_max)
+half __ovld atomic_fetch_min(volatile __local atomic_half *object,
+                             half operand);
+half __ovld atomic_fetch_max(volatile __local atomic_half *object,
+                             half operand);
+half __ovld atomic_fetch_min_explicit(volatile __local atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_max_explicit(volatile __local atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_min_explicit(volatile __local atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+half __ovld atomic_fetch_max_explicit(volatile __local atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+#endif // defined(__opencl_c_ext_fp16_local_atomic_min_max)
+
+#if defined(__opencl_c_ext_fp16_global_atomic_min_max) &&                      \
+    defined(__opencl_c_ext_fp16_local_atomic_min_max)
+half __ovld atomic_fetch_min(volatile atomic_half *object, half operand);
+half __ovld atomic_fetch_max(volatile atomic_half *object, half operand);
+half __ovld atomic_fetch_min_explicit(volatile atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_max_explicit(volatile atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_min_explicit(volatile atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+half __ovld atomic_fetch_max_explicit(volatile atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+#endif // defined(__opencl_c_ext_fp16_global_atomic_min_max) &&                \
+    defined(__opencl_c_ext_fp16_local_atomic_min_max)
+
+#if defined(__opencl_c_ext_fp32_global_atomic_min_max)
+float __ovld atomic_fetch_min(volatile __global atomic_float *object,
+                              float operand);
+float __ovld atomic_fetch_max(volatile __global atomic_float *object,
+                              float operand);
+float __ovld atomic_fetch_min_explicit(volatile __global atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_max_explicit(volatile __global atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_min_explicit(volatile __global atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+float __ovld atomic_fetch_max_explicit(volatile __global atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+#endif // defined(__opencl_c_ext_fp32_global_atomic_min_max)
+
+#if defined(__opencl_c_ext_fp32_local_atomic_min_max)
+float __ovld atomic_fetch_min(volatile __local atomic_float *object,
+                              float operand);
+float __ovld atomic_fetch_max(volatile __local atomic_float *object,
+                              float operand);
+float __ovld atomic_fetch_min_explicit(volatile __local atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_max_explicit(volatile __local atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_min_explicit(volatile __local atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+float __ovld atomic_fetch_max_explicit(volatile __local atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+#endif // defined(__opencl_c_ext_fp32_local_atomic_min_max)
+
+#if defined(__opencl_c_ext_fp32_global_atomic_min_max) &&                      \
+    defined(__opencl_c_ext_fp32_local_atomic_min_max)
+float __ovld atomic_fetch_min(volatile atomic_float *object, float operand);
+float __ovld atomic_fetch_max(volatile atomic_float *object, float operand);
+float __ovld atomic_fetch_min_explicit(volatile atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_max_explicit(volatile atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_min_explicit(volatile atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+float __ovld atomic_fetch_max_explicit(volatile atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+#endif // defined(__opencl_c_ext_fp32_global_atomic_min_max) &&                \
+    defined(__opencl_c_ext_fp32_local_atomic_min_max)
+
+#if defined(__opencl_c_ext_fp64_global_atomic_min_max)
+double __ovld atomic_fetch_min(volatile __global atomic_double *object,
+                               double operand);
+double __ovld atomic_fetch_max(volatile __global atomic_double *object,
+                               double operand);
+double __ovld atomic_fetch_min_explicit(volatile __global atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_max_explicit(volatile __global atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_min_explicit(volatile __global atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+double __ovld atomic_fetch_max_explicit(volatile __global atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+#endif // defined(__opencl_c_ext_fp64_global_atomic_min_max)
+
+#if defined(__opencl_c_ext_fp64_local_atomic_min_max)
+double __ovld atomic_fetch_min(volatile __local atomic_double *object,
+                               double operand);
+double __ovld atomic_fetch_max(volatile __local atomic_double *object,
+                               double operand);
+double __ovld atomic_fetch_min_explicit(volatile __local atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_max_explicit(volatile __local atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_min_explicit(volatile __local atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+double __ovld atomic_fetch_max_explicit(volatile __local atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+#endif // defined(__opencl_c_ext_fp64_local_atomic_min_max)
+
+#if defined(__opencl_c_ext_fp64_global_atomic_min_max) &&                      \
+    defined(__opencl_c_ext_fp64_local_atomic_min_max)
+double __ovld atomic_fetch_min(volatile atomic_double *object, double operand);
+double __ovld atomic_fetch_max(volatile atomic_double *object, double operand);
+double __ovld atomic_fetch_min_explicit(volatile atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_max_explicit(volatile atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_min_explicit(volatile atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+double __ovld atomic_fetch_max_explicit(volatile atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+#endif // defined(__opencl_c_ext_fp64_global_atomic_min_max) &&                \
+    defined(__opencl_c_ext_fp64_local_atomic_min_max)
+
+#if defined(__opencl_c_ext_fp16_global_atomic_add)
+half __ovld atomic_fetch_add(volatile __global atomic_half *object,
+                             half operand);
+half __ovld atomic_fetch_sub(volatile __global atomic_half *object,
+                             half operand);
+half __ovld atomic_fetch_add_explicit(volatile __global atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_sub_explicit(volatile __global atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_add_explicit(volatile __global atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+half __ovld atomic_fetch_sub_explicit(volatile __global atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+#endif // defined(__opencl_c_ext_fp16_global_atomic_add)
+
+#if defined(__opencl_c_ext_fp16_local_atomic_add)
+half __ovld atomic_fetch_add(volatile __local atomic_half *object,
+                             half operand);
+half __ovld atomic_fetch_sub(volatile __local atomic_half *object,
+                             half operand);
+half __ovld atomic_fetch_add_explicit(volatile __local atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_sub_explicit(volatile __local atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_add_explicit(volatile __local atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+half __ovld atomic_fetch_sub_explicit(volatile __local atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+#endif // defined(__opencl_c_ext_fp16_local_atomic_add)
+
+#if defined(__opencl_c_ext_fp16_global_atomic_add) &&                          \
+    defined(__opencl_c_ext_fp16_local_atomic_add)
+half __ovld atomic_fetch_add(volatile atomic_half *object, half operand);
+half __ovld atomic_fetch_sub(volatile atomic_half *object, half operand);
+half __ovld atomic_fetch_add_explicit(volatile atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_sub_explicit(volatile atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_add_explicit(volatile atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+half __ovld atomic_fetch_sub_explicit(volatile atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+#endif // defined(__opencl_c_ext_fp16_global_atomic_add) &&                    \
+    defined(__opencl_c_ext_fp16_local_atomic_add)
+
+#if defined(__opencl_c_ext_fp32_global_atomic_add)
+float __ovld atomic_fetch_add(volatile __global atomic_float *object,
+                              float operand);
+float __ovld atomic_fetch_sub(volatile __global atomic_float *object,
+                              float operand);
+float __ovld atomic_fetch_add_explicit(volatile __global atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_sub_explicit(volatile __global atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_add_explicit(volatile __global atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+float __ovld atomic_fetch_sub_explicit(volatile __global atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+#endif // defined(__opencl_c_ext_fp32_global_atomic_add)
+
+#if defined(__opencl_c_ext_fp32_local_atomic_add)
+float __ovld atomic_fetch_add(volatile __local atomic_float *object,
+                              float operand);
+float __ovld atomic_fetch_sub(volatile __local atomic_float *object,
+                              float operand);
+float __ovld atomic_fetch_add_explicit(volatile __local atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_sub_explicit(volatile __local atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_add_explicit(volatile __local atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+float __ovld atomic_fetch_sub_explicit(volatile __local atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+#endif // defined(__opencl_c_ext_fp32_local_atomic_add)
+
+#if defined(__opencl_c_ext_fp32_global_atomic_add) &&                          \
+    defined(__opencl_c_ext_fp32_local_atomic_add)
+float __ovld atomic_fetch_add(volatile atomic_float *object, float operand);
+float __ovld atomic_fetch_sub(volatile atomic_float *object, float operand);
+float __ovld atomic_fetch_add_explicit(volatile atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_sub_explicit(volatile atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_add_explicit(volatile atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+float __ovld atomic_fetch_sub_explicit(volatile atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+#endif // defined(__opencl_c_ext_fp32_global_atomic_add) &&                    \
+    defined(__opencl_c_ext_fp32_local_atomic_add)
+
+#if defined(__opencl_c_ext_fp64_global_atomic_add)
+double __ovld atomic_fetch_add(volatile __global atomic_double *object,
+                               double operand);
+double __ovld atomic_fetch_sub(volatile __global atomic_double *object,
+                               double operand);
+double __ovld atomic_fetch_add_explicit(volatile __global atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_sub_explicit(volatile __global atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_add_explicit(volatile __global atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+double __ovld atomic_fetch_sub_explicit(volatile __global atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+#endif // defined(__opencl_c_ext_fp64_global_atomic_add)
+
+#if defined(__opencl_c_ext_fp64_local_atomic_add)
+double __ovld atomic_fetch_add(volatile __local atomic_double *object,
+                               double operand);
+double __ovld atomic_fetch_sub(volatile __local atomic_double *object,
+                               double operand);
+double __ovld atomic_fetch_add_explicit(volatile __local atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_sub_explicit(volatile __local atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_add_explicit(volatile __local atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+double __ovld atomic_fetch_sub_explicit(volatile __local atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+#endif // defined(__opencl_c_ext_fp64_local_atomic_add)
+
+#if defined(__opencl_c_ext_fp64_global_atomic_add) &&                          \
+    defined(__opencl_c_ext_fp64_local_atomic_add)
+double __ovld atomic_fetch_add(volatile atomic_double *object, double operand);
+double __ovld atomic_fetch_sub(volatile atomic_double *object, double operand);
+double __ovld atomic_fetch_add_explicit(volatile atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_sub_explicit(volatile atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_add_explicit(volatile atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+double __ovld atomic_fetch_sub_explicit(volatile atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+#endif // defined(__opencl_c_ext_fp64_global_atomic_add) &&                    \
+    defined(__opencl_c_ext_fp64_local_atomic_add)
+
+#endif // cl_ext_float_atomics
 
 // atomic_store()
 
@@ -13653,7 +14028,7 @@
 void __ovld atomic_store(volatile atomic_ulong *object, ulong desired);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 void __ovld atomic_store(volatile __global atomic_int *object, int desired);
 void __ovld atomic_store(volatile __local atomic_int *object, int desired);
 void __ovld atomic_store(volatile __global atomic_uint *object, uint desired);
@@ -13670,7 +14045,7 @@
 void __ovld atomic_store(volatile __global atomic_ulong *object, ulong desired);
 void __ovld atomic_store(volatile __local atomic_ulong *object, ulong desired);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif
 
 #if defined(__opencl_c_atomic_scope_device)
@@ -13686,7 +14061,7 @@
 void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 void __ovld atomic_store_explicit(volatile __global atomic_int *object, int desired, memory_order order);
 void __ovld atomic_store_explicit(volatile __local atomic_int *object, int desired, memory_order order);
 void __ovld atomic_store_explicit(volatile __global atomic_uint *object, uint desired, memory_order order);
@@ -13703,7 +14078,7 @@
 void __ovld atomic_store_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order);
 void __ovld atomic_store_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif
 
 #if defined(__opencl_c_generic_address_space)
@@ -13718,7 +14093,7 @@
 void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 void __ovld atomic_store_explicit(volatile __global atomic_int *object, int desired, memory_order order, memory_scope scope);
 void __ovld atomic_store_explicit(volatile __local atomic_int *object, int desired, memory_order order, memory_scope scope);
 void __ovld atomic_store_explicit(volatile __global atomic_uint *object, uint desired, memory_order order, memory_scope scope);
@@ -13735,7 +14110,7 @@
 void __ovld atomic_store_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
 void __ovld atomic_store_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 
 // atomic_load()
 #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
@@ -13751,7 +14126,7 @@
 ulong __ovld atomic_load(volatile atomic_ulong *object);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 int __ovld atomic_load(volatile __global atomic_int *object);
 int __ovld atomic_load(volatile __local atomic_int *object);
 uint __ovld atomic_load(volatile __global atomic_uint *object);
@@ -13768,7 +14143,7 @@
 ulong __ovld atomic_load(volatile __global atomic_ulong *object);
 ulong __ovld atomic_load(volatile __local atomic_ulong *object);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif
 
 #if defined(__opencl_c_atomic_scope_device)
@@ -13784,7 +14159,7 @@
 ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 int __ovld atomic_load_explicit(volatile __global atomic_int *object, memory_order order);
 int __ovld atomic_load_explicit(volatile __local atomic_int *object, memory_order order);
 uint __ovld atomic_load_explicit(volatile __global atomic_uint *object, memory_order order);
@@ -13801,7 +14176,7 @@
 ulong __ovld atomic_load_explicit(volatile __global atomic_ulong *object, memory_order order);
 ulong __ovld atomic_load_explicit(volatile __local atomic_ulong *object, memory_order order);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif
 
 #if defined(__opencl_c_generic_address_space)
@@ -13816,7 +14191,7 @@
 ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order, memory_scope scope);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 int __ovld atomic_load_explicit(volatile __global atomic_int *object, memory_order order, memory_scope scope);
 int __ovld atomic_load_explicit(volatile __local atomic_int *object, memory_order order, memory_scope scope);
 uint __ovld atomic_load_explicit(volatile __global atomic_uint *object, memory_order order, memory_scope scope);
@@ -13833,7 +14208,7 @@
 ulong __ovld atomic_load_explicit(volatile __global atomic_ulong *object, memory_order order, memory_scope scope);
 ulong __ovld atomic_load_explicit(volatile __local atomic_ulong *object, memory_order order, memory_scope scope);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 
 // atomic_exchange()
 
@@ -13850,7 +14225,7 @@
 ulong __ovld atomic_exchange(volatile atomic_ulong *object, ulong desired);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 int __ovld atomic_exchange(volatile __global atomic_int *object, int desired);
 int __ovld atomic_exchange(volatile __local atomic_int *object, int desired);
 uint __ovld atomic_exchange(volatile __global atomic_uint *object, uint desired);
@@ -13867,7 +14242,7 @@
 ulong __ovld atomic_exchange(volatile __global atomic_ulong *object, ulong desired);
 ulong __ovld atomic_exchange(volatile __local atomic_ulong *object, ulong desired);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif
 
 #if defined(__opencl_c_atomic_scope_device)
@@ -13883,7 +14258,7 @@
 ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 int __ovld atomic_exchange_explicit(volatile __global atomic_int *object, int desired, memory_order order);
 int __ovld atomic_exchange_explicit(volatile __local atomic_int *object, int desired, memory_order order);
 uint __ovld atomic_exchange_explicit(volatile __global atomic_uint *object, uint desired, memory_order order);
@@ -13900,7 +14275,7 @@
 ulong __ovld atomic_exchange_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order);
 ulong __ovld atomic_exchange_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)wi
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif
 
 #if defined(__opencl_c_generic_address_space)
@@ -13915,7 +14290,7 @@
 ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 int __ovld atomic_exchange_explicit(volatile __global atomic_int *object, int desired, memory_order order, memory_scope scope);
 int __ovld atomic_exchange_explicit(volatile __local atomic_int *object, int desired, memory_order order, memory_scope scope);
 uint __ovld atomic_exchange_explicit(volatile __global atomic_uint *object, uint desired, memory_order order, memory_scope scope);
@@ -13932,7 +14307,7 @@
 ulong __ovld atomic_exchange_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
 ulong __ovld atomic_exchange_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 
 // atomic_compare_exchange_strong() and atomic_compare_exchange_weak()
 #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
@@ -13954,7 +14329,7 @@
 bool __ovld atomic_compare_exchange_weak(volatile atomic_ulong *object, ulong *expected, ulong desired);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *object, __global int *expected, int desired);
 bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *object, __local int *expected, int desired);
 bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *object, __private int *expected, int desired);
@@ -14031,7 +14406,7 @@
 bool __ovld atomic_compare_exchange_weak(volatile __local atomic_ulong *object, __local ulong *expected, ulong desired);
 bool __ovld atomic_compare_exchange_weak(volatile __local atomic_ulong *object, __private ulong *expected, ulong desired);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif
 
 #if defined(__opencl_c_generic_address_space)
@@ -14064,7 +14439,7 @@
                                                                                  ulong desired, memory_order success, memory_order failure);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __global int *expected,
                                                                                  int desired, memory_order success, memory_order failure);
 bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __local int *expected,
@@ -14213,7 +14588,7 @@
 bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __private ulong *expected,
                                                                                  ulong desired, memory_order success, memory_order failure);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 
 #if defined(__opencl_c_generic_address_space)
 bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
@@ -14245,7 +14620,7 @@
                                                                                  ulong desired, memory_order success, memory_order failure, memory_scope scope);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __global int *expected,
                                                                                  int desired, memory_order success, memory_order failure, memory_scope scope);
 bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __local int *expected,
@@ -14394,7 +14769,7 @@
 bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __private ulong *expected,
                                                                                  ulong desired, memory_order success, memory_order failure, memory_scope scope);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 
 // atomic_flag_test_and_set() and atomic_flag_clear()
 #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
@@ -14402,12 +14777,12 @@
 bool __ovld atomic_flag_test_and_set(volatile atomic_flag *object);
 void __ovld atomic_flag_clear(volatile atomic_flag *object);
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 bool __ovld atomic_flag_test_and_set(volatile __global atomic_flag *object);
 bool __ovld atomic_flag_test_and_set(volatile __local atomic_flag *object);
 void __ovld atomic_flag_clear(volatile __global atomic_flag *object);
 void __ovld atomic_flag_clear(volatile __local atomic_flag *object);
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif
 
 #if defined(__opencl_c_atomic_scope_device)
@@ -14415,24 +14790,24 @@
 bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order);
 void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order);
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 bool __ovld atomic_flag_test_and_set_explicit(volatile __global atomic_flag *object, memory_order order);
 bool __ovld atomic_flag_test_and_set_explicit(volatile __local atomic_flag *object, memory_order order);
 void __ovld atomic_flag_clear_explicit(volatile __global atomic_flag *object, memory_order order);
 void __ovld atomic_flag_clear_explicit(volatile __local atomic_flag *object, memory_order order);
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif
 
 #if defined(__opencl_c_generic_address_space)
 bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
 void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 bool __ovld atomic_flag_test_and_set_explicit(volatile __global atomic_flag *object, memory_order order, memory_scope scope);
 bool __ovld atomic_flag_test_and_set_explicit(volatile __local atomic_flag *object, memory_order order, memory_scope scope);
 void __ovld atomic_flag_clear_explicit(volatile __global atomic_flag *object, memory_order order, memory_scope scope);
 void __ovld atomic_flag_clear_explicit(volatile __local atomic_flag *object, memory_order order, memory_scope scope);
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
 
 // OpenCL v1.1 s6.11.12, v1.2 s6.12.12, v2.0 s6.13.12 - Miscellaneous Vector Functions
diff --git a/darwin-x86/lib64/clang/14.0.1/include/openmp_wrappers/__clang_openmp_device_functions.h b/darwin-x86/lib64/clang/14.0.2/include/openmp_wrappers/__clang_openmp_device_functions.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/openmp_wrappers/__clang_openmp_device_functions.h
rename to darwin-x86/lib64/clang/14.0.2/include/openmp_wrappers/__clang_openmp_device_functions.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/openmp_wrappers/cmath b/darwin-x86/lib64/clang/14.0.2/include/openmp_wrappers/cmath
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/openmp_wrappers/cmath
rename to darwin-x86/lib64/clang/14.0.2/include/openmp_wrappers/cmath
diff --git a/darwin-x86/lib64/clang/14.0.1/include/openmp_wrappers/complex b/darwin-x86/lib64/clang/14.0.2/include/openmp_wrappers/complex
similarity index 96%
rename from darwin-x86/lib64/clang/14.0.1/include/openmp_wrappers/complex
rename to darwin-x86/lib64/clang/14.0.2/include/openmp_wrappers/complex
index d6e740d..1ceecc1 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/openmp_wrappers/complex
+++ b/darwin-x86/lib64/clang/14.0.2/include/openmp_wrappers/complex
@@ -45,7 +45,7 @@
 #ifndef _LIBCPP_STD_VER
 
 #pragma omp begin declare variant match(                                       \
-    device = {arch(nvptx, nvptx64)},                                           \
+    device = {arch(amdgcn, nvptx, nvptx64)},                                   \
     implementation = {extension(match_any, allow_templates)})
 
 #include <complex_cmath.h>
diff --git a/darwin-x86/lib64/clang/14.0.1/include/openmp_wrappers/complex.h b/darwin-x86/lib64/clang/14.0.2/include/openmp_wrappers/complex.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/openmp_wrappers/complex.h
rename to darwin-x86/lib64/clang/14.0.2/include/openmp_wrappers/complex.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/openmp_wrappers/complex_cmath.h b/darwin-x86/lib64/clang/14.0.2/include/openmp_wrappers/complex_cmath.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/openmp_wrappers/complex_cmath.h
rename to darwin-x86/lib64/clang/14.0.2/include/openmp_wrappers/complex_cmath.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/openmp_wrappers/math.h b/darwin-x86/lib64/clang/14.0.2/include/openmp_wrappers/math.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/openmp_wrappers/math.h
rename to darwin-x86/lib64/clang/14.0.2/include/openmp_wrappers/math.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/openmp_wrappers/new b/darwin-x86/lib64/clang/14.0.2/include/openmp_wrappers/new
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/openmp_wrappers/new
rename to darwin-x86/lib64/clang/14.0.2/include/openmp_wrappers/new
diff --git a/darwin-x86/lib64/clang/14.0.1/include/pconfigintrin.h b/darwin-x86/lib64/clang/14.0.2/include/pconfigintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/pconfigintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/pconfigintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/pkuintrin.h b/darwin-x86/lib64/clang/14.0.2/include/pkuintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/pkuintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/pkuintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/pmmintrin.h b/darwin-x86/lib64/clang/14.0.2/include/pmmintrin.h
similarity index 98%
rename from darwin-x86/lib64/clang/14.0.1/include/pmmintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/pmmintrin.h
index a83b2eb..eda8356 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/pmmintrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/pmmintrin.h
@@ -10,6 +10,10 @@
 #ifndef __PMMINTRIN_H
 #define __PMMINTRIN_H
 
+#if !defined(__i386__) && !defined(__x86_64__)
+#error "This header is only meant to be used on x86 and x64 architecture"
+#endif
+
 #include <emmintrin.h>
 
 /* Define the default attributes for the functions in this file. */
diff --git a/darwin-x86/lib64/clang/14.0.1/include/popcntintrin.h b/darwin-x86/lib64/clang/14.0.2/include/popcntintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/popcntintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/popcntintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/emmintrin.h b/darwin-x86/lib64/clang/14.0.2/include/ppc_wrappers/emmintrin.h
similarity index 99%
rename from darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/emmintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/ppc_wrappers/emmintrin.h
index 4dcb848..82a7178 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/emmintrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/ppc_wrappers/emmintrin.h
@@ -35,7 +35,7 @@
 #ifndef EMMINTRIN_H_
 #define EMMINTRIN_H_
 
-#if defined(__linux__) && defined(__ppc64__)
+#if defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))
 
 #include <altivec.h>
 
@@ -2319,6 +2319,7 @@
 
 #else
 #include_next <emmintrin.h>
-#endif /* defined(__linux__) && defined(__ppc64__) */
+#endif /* defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))   \
+        */
 
 #endif /* EMMINTRIN_H_ */
diff --git a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/mm_malloc.h b/darwin-x86/lib64/clang/14.0.2/include/ppc_wrappers/mm_malloc.h
similarity index 94%
rename from darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/mm_malloc.h
rename to darwin-x86/lib64/clang/14.0.2/include/ppc_wrappers/mm_malloc.h
index 24b14c8..86cf1a0 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/mm_malloc.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/ppc_wrappers/mm_malloc.h
@@ -10,7 +10,7 @@
 #ifndef _MM_MALLOC_H_INCLUDED
 #define _MM_MALLOC_H_INCLUDED
 
-#if defined(__linux__) && defined(__ppc64__)
+#if defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))
 
 #include <stdlib.h>
 
diff --git a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/mmintrin.h b/darwin-x86/lib64/clang/14.0.2/include/ppc_wrappers/mmintrin.h
similarity index 99%
rename from darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/mmintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/ppc_wrappers/mmintrin.h
index c55c447..54e4ee9 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/mmintrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/ppc_wrappers/mmintrin.h
@@ -35,7 +35,7 @@
 #ifndef _MMINTRIN_H_INCLUDED
 #define _MMINTRIN_H_INCLUDED
 
-#if defined(__linux__) && defined(__ppc64__)
+#if defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))
 
 #include <altivec.h>
 /* The Intel API is flexible enough that we must allow aliasing with other
@@ -1445,6 +1445,7 @@
 
 #else
 #include_next <mmintrin.h>
-#endif /* defined(__linux__) && defined(__ppc64__) */
+#endif /* defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))   \
+        */
 
 #endif /* _MMINTRIN_H_INCLUDED */
diff --git a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/pmmintrin.h b/darwin-x86/lib64/clang/14.0.2/include/ppc_wrappers/pmmintrin.h
similarity index 96%
rename from darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/pmmintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/ppc_wrappers/pmmintrin.h
index 6d93383..8d4046b 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/pmmintrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/ppc_wrappers/pmmintrin.h
@@ -38,7 +38,7 @@
 #ifndef PMMINTRIN_H_
 #define PMMINTRIN_H_
 
-#if defined(__linux__) && defined(__ppc64__)
+#if defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))
 
 /* We need definitions from the SSE2 and SSE header files*/
 #include <emmintrin.h>
@@ -145,6 +145,7 @@
 
 #else
 #include_next <pmmintrin.h>
-#endif /* defined(__linux__) && defined(__ppc64__) */
+#endif /* defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))   \
+        */
 
 #endif /* PMMINTRIN_H_ */
diff --git a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/smmintrin.h b/darwin-x86/lib64/clang/14.0.2/include/ppc_wrappers/smmintrin.h
similarity index 94%
rename from darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/smmintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/ppc_wrappers/smmintrin.h
index 64f0c76..6747032 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/smmintrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/ppc_wrappers/smmintrin.h
@@ -29,10 +29,10 @@
 #ifndef SMMINTRIN_H_
 #define SMMINTRIN_H_
 
-#if defined(__linux__) && defined(__ppc64__)
+#if defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))
 
 #include <altivec.h>
-#include <emmintrin.h>
+#include <tmmintrin.h>
 
 extern __inline int
     __attribute__((__gnu_inline__, __always_inline__, __artificial__))
@@ -104,6 +104,7 @@
 
 #else
 #include_next <smmintrin.h>
-#endif /* defined(__linux__) && defined(__ppc64__) */
+#endif /* defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))   \
+        */
 
 #endif /* _SMMINTRIN_H_ */
diff --git a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/tmmintrin.h b/darwin-x86/lib64/clang/14.0.2/include/ppc_wrappers/tmmintrin.h
similarity index 98%
rename from darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/tmmintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/ppc_wrappers/tmmintrin.h
index b5a935d..ebef7b8 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/tmmintrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/ppc_wrappers/tmmintrin.h
@@ -25,7 +25,7 @@
 #ifndef TMMINTRIN_H_
 #define TMMINTRIN_H_
 
-#if defined(__linux__) && defined(__ppc64__)
+#if defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))
 
 #include <altivec.h>
 
@@ -490,6 +490,7 @@
 
 #else
 #include_next <tmmintrin.h>
-#endif /* defined(__linux__) && defined(__ppc64__) */
+#endif /* defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))   \
+        */
 
 #endif /* TMMINTRIN_H_ */
diff --git a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/xmmintrin.h b/darwin-x86/lib64/clang/14.0.2/include/ppc_wrappers/xmmintrin.h
similarity index 99%
rename from darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/xmmintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/ppc_wrappers/xmmintrin.h
index 0e45b96..956603d 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/xmmintrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/ppc_wrappers/xmmintrin.h
@@ -34,7 +34,7 @@
 #ifndef _XMMINTRIN_H_INCLUDED
 #define _XMMINTRIN_H_INCLUDED
 
-#if defined(__linux__) && defined(__ppc64__)
+#if defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))
 
 /* Define four value permute mask */
 #define _MM_SHUFFLE(w,x,y,z) (((w) << 6) | ((x) << 4) | ((y) << 2) | (z))
@@ -1838,6 +1838,7 @@
 
 #else
 #include_next <xmmintrin.h>
-#endif /* defined(__linux__) && defined(__ppc64__) */
+#endif /* defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))   \
+        */
 
 #endif /* _XMMINTRIN_H_INCLUDED */
diff --git a/darwin-x86/lib64/clang/14.0.1/include/prfchwintrin.h b/darwin-x86/lib64/clang/14.0.2/include/prfchwintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/prfchwintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/prfchwintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/profile/InstrProfData.inc b/darwin-x86/lib64/clang/14.0.2/include/profile/InstrProfData.inc
similarity index 99%
rename from darwin-x86/lib64/clang/14.0.1/include/profile/InstrProfData.inc
rename to darwin-x86/lib64/clang/14.0.2/include/profile/InstrProfData.inc
index cb2d6a6..008b8dd 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/profile/InstrProfData.inc
+++ b/darwin-x86/lib64/clang/14.0.2/include/profile/InstrProfData.inc
@@ -645,7 +645,7 @@
         (uint64_t)'f' << 16 | (uint64_t)'R' << 8 | (uint64_t)129
 
 /* Raw profile format version (start from 1). */
-#define INSTR_PROF_RAW_VERSION 7
+#define INSTR_PROF_RAW_VERSION 8
 /* Indexed profile format version (start from 1). */
 #define INSTR_PROF_INDEX_VERSION 7
 /* Coverage mapping format version (start from 0). */
diff --git a/darwin-x86/lib64/clang/14.0.1/include/ptwriteintrin.h b/darwin-x86/lib64/clang/14.0.2/include/ptwriteintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/ptwriteintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/ptwriteintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/rdseedintrin.h b/darwin-x86/lib64/clang/14.0.2/include/rdseedintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/rdseedintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/rdseedintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/rtmintrin.h b/darwin-x86/lib64/clang/14.0.2/include/rtmintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/rtmintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/rtmintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/s390intrin.h b/darwin-x86/lib64/clang/14.0.2/include/s390intrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/s390intrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/s390intrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/sanitizer/allocator_interface.h b/darwin-x86/lib64/clang/14.0.2/include/sanitizer/allocator_interface.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/sanitizer/allocator_interface.h
rename to darwin-x86/lib64/clang/14.0.2/include/sanitizer/allocator_interface.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/sanitizer/asan_interface.h b/darwin-x86/lib64/clang/14.0.2/include/sanitizer/asan_interface.h
similarity index 99%
rename from darwin-x86/lib64/clang/14.0.1/include/sanitizer/asan_interface.h
rename to darwin-x86/lib64/clang/14.0.2/include/sanitizer/asan_interface.h
index 792ef9c..9bff21c 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/sanitizer/asan_interface.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/sanitizer/asan_interface.h
@@ -316,7 +316,7 @@
 void __asan_handle_no_return(void);
 
 /// Update allocation stack trace for the given allocation to the current stack
-/// trace. Returns 1 if successfull, 0 if not.
+/// trace. Returns 1 if successful, 0 if not.
 int __asan_update_allocation_context(void* addr);
 
 #ifdef __cplusplus
diff --git a/darwin-x86/lib64/clang/14.0.1/include/sanitizer/common_interface_defs.h b/darwin-x86/lib64/clang/14.0.2/include/sanitizer/common_interface_defs.h
similarity index 99%
rename from darwin-x86/lib64/clang/14.0.1/include/sanitizer/common_interface_defs.h
rename to darwin-x86/lib64/clang/14.0.2/include/sanitizer/common_interface_defs.h
index cd69285..692b8f7 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/sanitizer/common_interface_defs.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/sanitizer/common_interface_defs.h
@@ -28,7 +28,7 @@
   // Enable sandbox support in sanitizer coverage.
   int coverage_sandboxed;
   // File descriptor to write coverage data to. If -1 is passed, a file will
-  // be pre-opened by __sanitizer_sandobx_on_notify(). This field has no
+  // be pre-opened by __sanitizer_sandbox_on_notify(). This field has no
   // effect if coverage_sandboxed == 0.
   intptr_t coverage_fd;
   // If non-zero, split the coverage data into well-formed blocks. This is
diff --git a/darwin-x86/lib64/clang/14.0.1/include/sanitizer/coverage_interface.h b/darwin-x86/lib64/clang/14.0.2/include/sanitizer/coverage_interface.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/sanitizer/coverage_interface.h
rename to darwin-x86/lib64/clang/14.0.2/include/sanitizer/coverage_interface.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/sanitizer/dfsan_interface.h b/darwin-x86/lib64/clang/14.0.2/include/sanitizer/dfsan_interface.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/sanitizer/dfsan_interface.h
rename to darwin-x86/lib64/clang/14.0.2/include/sanitizer/dfsan_interface.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/sanitizer/hwasan_interface.h b/darwin-x86/lib64/clang/14.0.2/include/sanitizer/hwasan_interface.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/sanitizer/hwasan_interface.h
rename to darwin-x86/lib64/clang/14.0.2/include/sanitizer/hwasan_interface.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/sanitizer/linux_syscall_hooks.h b/darwin-x86/lib64/clang/14.0.2/include/sanitizer/linux_syscall_hooks.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/sanitizer/linux_syscall_hooks.h
rename to darwin-x86/lib64/clang/14.0.2/include/sanitizer/linux_syscall_hooks.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/sanitizer/lsan_interface.h b/darwin-x86/lib64/clang/14.0.2/include/sanitizer/lsan_interface.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/sanitizer/lsan_interface.h
rename to darwin-x86/lib64/clang/14.0.2/include/sanitizer/lsan_interface.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/sanitizer/msan_interface.h b/darwin-x86/lib64/clang/14.0.2/include/sanitizer/msan_interface.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/sanitizer/msan_interface.h
rename to darwin-x86/lib64/clang/14.0.2/include/sanitizer/msan_interface.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/sanitizer/netbsd_syscall_hooks.h b/darwin-x86/lib64/clang/14.0.2/include/sanitizer/netbsd_syscall_hooks.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/sanitizer/netbsd_syscall_hooks.h
rename to darwin-x86/lib64/clang/14.0.2/include/sanitizer/netbsd_syscall_hooks.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/sanitizer/scudo_interface.h b/darwin-x86/lib64/clang/14.0.2/include/sanitizer/scudo_interface.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/sanitizer/scudo_interface.h
rename to darwin-x86/lib64/clang/14.0.2/include/sanitizer/scudo_interface.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/sanitizer/tsan_interface.h b/darwin-x86/lib64/clang/14.0.2/include/sanitizer/tsan_interface.h
similarity index 98%
rename from darwin-x86/lib64/clang/14.0.1/include/sanitizer/tsan_interface.h
rename to darwin-x86/lib64/clang/14.0.2/include/sanitizer/tsan_interface.h
index 565aa39..2782e61 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/sanitizer/tsan_interface.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/sanitizer/tsan_interface.h
@@ -169,6 +169,9 @@
 // if TSan should exit as if issues were detected.
 int __tsan_on_finalize(int failed);
 
+// Release TSan internal memory in a best-effort manner.
+void __tsan_flush_memory();
+
 #ifdef __cplusplus
 }  // extern "C"
 #endif
diff --git a/darwin-x86/lib64/clang/14.0.1/include/sanitizer/tsan_interface_atomic.h b/darwin-x86/lib64/clang/14.0.2/include/sanitizer/tsan_interface_atomic.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/sanitizer/tsan_interface_atomic.h
rename to darwin-x86/lib64/clang/14.0.2/include/sanitizer/tsan_interface_atomic.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/sanitizer/ubsan_interface.h b/darwin-x86/lib64/clang/14.0.2/include/sanitizer/ubsan_interface.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/sanitizer/ubsan_interface.h
rename to darwin-x86/lib64/clang/14.0.2/include/sanitizer/ubsan_interface.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/serializeintrin.h b/darwin-x86/lib64/clang/14.0.2/include/serializeintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/serializeintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/serializeintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/sgxintrin.h b/darwin-x86/lib64/clang/14.0.2/include/sgxintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/sgxintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/sgxintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/shaintrin.h b/darwin-x86/lib64/clang/14.0.2/include/shaintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/shaintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/shaintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/smmintrin.h b/darwin-x86/lib64/clang/14.0.2/include/smmintrin.h
similarity index 97%
rename from darwin-x86/lib64/clang/14.0.1/include/smmintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/smmintrin.h
index 8913a19..710e55a 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/smmintrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/smmintrin.h
@@ -10,6 +10,10 @@
 #ifndef __SMMINTRIN_H
 #define __SMMINTRIN_H
 
+#if !defined(__i386__) && !defined(__x86_64__)
+#error "This header is only meant to be used on x86 and x64 architecture"
+#endif
+
 #include <tmmintrin.h>
 
 /* Define the default attributes for the functions in this file. */
@@ -2338,91 +2342,10 @@
   return (__m128i)((__v2di)__V1 > (__v2di)__V2);
 }
 
-/* SSE4.2 Accumulate CRC32.  */
-/// Adds the unsigned integer operand to the CRC-32C checksum of the
-///    unsigned char operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CRC32B </c> instruction.
-///
-/// \param __C
-///    An unsigned integer operand to add to the CRC-32C checksum of operand
-///    \a  __D.
-/// \param __D
-///    An unsigned 8-bit integer operand used to compute the CRC-32C checksum.
-/// \returns The result of adding operand \a __C to the CRC-32C checksum of
-///    operand \a __D.
-static __inline__ unsigned int __DEFAULT_FN_ATTRS
-_mm_crc32_u8(unsigned int __C, unsigned char __D)
-{
-  return __builtin_ia32_crc32qi(__C, __D);
-}
-
-/// Adds the unsigned integer operand to the CRC-32C checksum of the
-///    unsigned short operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CRC32W </c> instruction.
-///
-/// \param __C
-///    An unsigned integer operand to add to the CRC-32C checksum of operand
-///    \a __D.
-/// \param __D
-///    An unsigned 16-bit integer operand used to compute the CRC-32C checksum.
-/// \returns The result of adding operand \a __C to the CRC-32C checksum of
-///    operand \a __D.
-static __inline__ unsigned int __DEFAULT_FN_ATTRS
-_mm_crc32_u16(unsigned int __C, unsigned short __D)
-{
-  return __builtin_ia32_crc32hi(__C, __D);
-}
-
-/// Adds the first unsigned integer operand to the CRC-32C checksum of
-///    the second unsigned integer operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CRC32L </c> instruction.
-///
-/// \param __C
-///    An unsigned integer operand to add to the CRC-32C checksum of operand
-///    \a __D.
-/// \param __D
-///    An unsigned 32-bit integer operand used to compute the CRC-32C checksum.
-/// \returns The result of adding operand \a __C to the CRC-32C checksum of
-///    operand \a __D.
-static __inline__ unsigned int __DEFAULT_FN_ATTRS
-_mm_crc32_u32(unsigned int __C, unsigned int __D)
-{
-  return __builtin_ia32_crc32si(__C, __D);
-}
-
-#ifdef __x86_64__
-/// Adds the unsigned integer operand to the CRC-32C checksum of the
-///    unsigned 64-bit integer operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CRC32Q </c> instruction.
-///
-/// \param __C
-///    An unsigned integer operand to add to the CRC-32C checksum of operand
-///    \a __D.
-/// \param __D
-///    An unsigned 64-bit integer operand used to compute the CRC-32C checksum.
-/// \returns The result of adding operand \a __C to the CRC-32C checksum of
-///    operand \a __D.
-static __inline__ unsigned long long __DEFAULT_FN_ATTRS
-_mm_crc32_u64(unsigned long long __C, unsigned long long __D)
-{
-  return __builtin_ia32_crc32di(__C, __D);
-}
-#endif /* __x86_64__ */
-
 #undef __DEFAULT_FN_ATTRS
 
 #include <popcntintrin.h>
 
+#include <crc32intrin.h>
+
 #endif /* __SMMINTRIN_H */
diff --git a/darwin-x86/lib64/clang/14.0.1/include/stdalign.h b/darwin-x86/lib64/clang/14.0.2/include/stdalign.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/stdalign.h
rename to darwin-x86/lib64/clang/14.0.2/include/stdalign.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/stdarg.h b/darwin-x86/lib64/clang/14.0.2/include/stdarg.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/stdarg.h
rename to darwin-x86/lib64/clang/14.0.2/include/stdarg.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/stdatomic.h b/darwin-x86/lib64/clang/14.0.2/include/stdatomic.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/stdatomic.h
rename to darwin-x86/lib64/clang/14.0.2/include/stdatomic.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/stdbool.h b/darwin-x86/lib64/clang/14.0.2/include/stdbool.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/stdbool.h
rename to darwin-x86/lib64/clang/14.0.2/include/stdbool.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/stddef.h b/darwin-x86/lib64/clang/14.0.2/include/stddef.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/stddef.h
rename to darwin-x86/lib64/clang/14.0.2/include/stddef.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/stdint.h b/darwin-x86/lib64/clang/14.0.2/include/stdint.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/stdint.h
rename to darwin-x86/lib64/clang/14.0.2/include/stdint.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/stdnoreturn.h b/darwin-x86/lib64/clang/14.0.2/include/stdnoreturn.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/stdnoreturn.h
rename to darwin-x86/lib64/clang/14.0.2/include/stdnoreturn.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/tbmintrin.h b/darwin-x86/lib64/clang/14.0.2/include/tbmintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/tbmintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/tbmintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/tgmath.h b/darwin-x86/lib64/clang/14.0.2/include/tgmath.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/tgmath.h
rename to darwin-x86/lib64/clang/14.0.2/include/tgmath.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/tmmintrin.h b/darwin-x86/lib64/clang/14.0.2/include/tmmintrin.h
similarity index 99%
rename from darwin-x86/lib64/clang/14.0.1/include/tmmintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/tmmintrin.h
index dbd959d..bcffa81 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/tmmintrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/tmmintrin.h
@@ -10,6 +10,10 @@
 #ifndef __TMMINTRIN_H
 #define __TMMINTRIN_H
 
+#if !defined(__i386__) && !defined(__x86_64__)
+#error "This header is only meant to be used on x86 and x64 architecture"
+#endif
+
 #include <pmmintrin.h>
 
 /* Define the default attributes for the functions in this file. */
diff --git a/darwin-x86/lib64/clang/14.0.1/include/tsxldtrkintrin.h b/darwin-x86/lib64/clang/14.0.2/include/tsxldtrkintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/tsxldtrkintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/tsxldtrkintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/uintrintrin.h b/darwin-x86/lib64/clang/14.0.2/include/uintrintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/uintrintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/uintrintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/unwind.h b/darwin-x86/lib64/clang/14.0.2/include/unwind.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/unwind.h
rename to darwin-x86/lib64/clang/14.0.2/include/unwind.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/vadefs.h b/darwin-x86/lib64/clang/14.0.2/include/vadefs.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/vadefs.h
rename to darwin-x86/lib64/clang/14.0.2/include/vadefs.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/vaesintrin.h b/darwin-x86/lib64/clang/14.0.2/include/vaesintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/vaesintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/vaesintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/varargs.h b/darwin-x86/lib64/clang/14.0.2/include/varargs.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/varargs.h
rename to darwin-x86/lib64/clang/14.0.2/include/varargs.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/vecintrin.h b/darwin-x86/lib64/clang/14.0.2/include/vecintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/vecintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/vecintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/vpclmulqdqintrin.h b/darwin-x86/lib64/clang/14.0.2/include/vpclmulqdqintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/vpclmulqdqintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/vpclmulqdqintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/waitpkgintrin.h b/darwin-x86/lib64/clang/14.0.2/include/waitpkgintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/waitpkgintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/waitpkgintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/wasm_simd128.h b/darwin-x86/lib64/clang/14.0.2/include/wasm_simd128.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/wasm_simd128.h
rename to darwin-x86/lib64/clang/14.0.2/include/wasm_simd128.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/wbnoinvdintrin.h b/darwin-x86/lib64/clang/14.0.2/include/wbnoinvdintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/wbnoinvdintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/wbnoinvdintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/wmmintrin.h b/darwin-x86/lib64/clang/14.0.2/include/wmmintrin.h
similarity index 80%
rename from darwin-x86/lib64/clang/14.0.1/include/wmmintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/wmmintrin.h
index f932ca8..49148db 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/wmmintrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/wmmintrin.h
@@ -10,6 +10,10 @@
 #ifndef __WMMINTRIN_H
 #define __WMMINTRIN_H
 
+#if !defined(__i386__) && !defined(__x86_64__)
+#error "This header is only meant to be used on x86 and x64 architecture"
+#endif
+
 #include <emmintrin.h>
 
 #include <__wmmintrin_aes.h>
diff --git a/darwin-x86/lib64/clang/14.0.1/include/x86gprintrin.h b/darwin-x86/lib64/clang/14.0.2/include/x86gprintrin.h
similarity index 66%
rename from darwin-x86/lib64/clang/14.0.1/include/x86gprintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/x86gprintrin.h
index 327ccb7..01e741f 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/x86gprintrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/x86gprintrin.h
@@ -20,9 +20,16 @@
 #include <uintrintrin.h>
 #endif
 
+#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
+    defined(__CRC32__)
+#include <crc32intrin.h>
+#endif
+
 #define __SSC_MARK(Tag)                                                        \
-  __asm__ __volatile__("movl %%ebx, %%eax; movl %0, %%ebx; .byte 0x64, 0x67, " \
-                       "0x90; movl %%eax, %%ebx;" ::"i"(Tag)                   \
+  __asm__ __volatile__("mov {%%ebx, %%eax|eax, ebx}; "                      \
+                       "mov {%0, %%ebx|ebx, %0}; "                          \
+                       ".byte 0x64, 0x67, 0x90; "                              \
+                       "mov {%%eax, %%ebx|ebx, eax};" ::"i"(Tag)            \
                        : "%eax");
 
 #endif /* __X86GPRINTRIN_H */
diff --git a/darwin-x86/lib64/clang/14.0.1/include/x86intrin.h b/darwin-x86/lib64/clang/14.0.2/include/x86intrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/x86intrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/x86intrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/xmmintrin.h b/darwin-x86/lib64/clang/14.0.2/include/xmmintrin.h
similarity index 99%
rename from darwin-x86/lib64/clang/14.0.1/include/xmmintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/xmmintrin.h
index 620453c..1612d3d 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/xmmintrin.h
+++ b/darwin-x86/lib64/clang/14.0.2/include/xmmintrin.h
@@ -10,6 +10,10 @@
 #ifndef __XMMINTRIN_H
 #define __XMMINTRIN_H
 
+#if !defined(__i386__) && !defined(__x86_64__)
+#error "This header is only meant to be used on x86 and x64 architecture"
+#endif
+
 #include <mmintrin.h>
 
 typedef int __v4si __attribute__((__vector_size__(16)));
diff --git a/darwin-x86/lib64/clang/14.0.1/include/xopintrin.h b/darwin-x86/lib64/clang/14.0.2/include/xopintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/xopintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/xopintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/xsavecintrin.h b/darwin-x86/lib64/clang/14.0.2/include/xsavecintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/xsavecintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/xsavecintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/xsaveintrin.h b/darwin-x86/lib64/clang/14.0.2/include/xsaveintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/xsaveintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/xsaveintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/xsaveoptintrin.h b/darwin-x86/lib64/clang/14.0.2/include/xsaveoptintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/xsaveoptintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/xsaveoptintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/xsavesintrin.h b/darwin-x86/lib64/clang/14.0.2/include/xsavesintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/xsavesintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/xsavesintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/xtestintrin.h b/darwin-x86/lib64/clang/14.0.2/include/xtestintrin.h
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/include/xtestintrin.h
rename to darwin-x86/lib64/clang/14.0.2/include/xtestintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/share/asan_ignorelist.txt b/darwin-x86/lib64/clang/14.0.2/share/asan_ignorelist.txt
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/share/asan_ignorelist.txt
rename to darwin-x86/lib64/clang/14.0.2/share/asan_ignorelist.txt
diff --git a/darwin-x86/lib64/clang/14.0.1/share/cfi_ignorelist.txt b/darwin-x86/lib64/clang/14.0.2/share/cfi_ignorelist.txt
similarity index 100%
rename from darwin-x86/lib64/clang/14.0.1/share/cfi_ignorelist.txt
rename to darwin-x86/lib64/clang/14.0.2/share/cfi_ignorelist.txt
diff --git a/darwin-x86/lib64/libbase.dylib b/darwin-x86/lib64/libbase.dylib
index edcbac3..4b405c7 100755
--- a/darwin-x86/lib64/libbase.dylib
+++ b/darwin-x86/lib64/libbase.dylib
Binary files differ
diff --git a/darwin-x86/lib64/libc++.1.dylib b/darwin-x86/lib64/libc++.1.dylib
index a620eff..ffda1a3 100755
--- a/darwin-x86/lib64/libc++.1.dylib
+++ b/darwin-x86/lib64/libc++.1.dylib
Binary files differ
diff --git a/darwin-x86/lib64/libc++.dylib b/darwin-x86/lib64/libc++.dylib
index 16ffc74..9121ca8 100755
--- a/darwin-x86/lib64/libc++.dylib
+++ b/darwin-x86/lib64/libc++.dylib
Binary files differ
diff --git a/darwin-x86/lib64/libc++abi.1.dylib b/darwin-x86/lib64/libc++abi.1.dylib
index 54f51dd..b47ac58 100755
--- a/darwin-x86/lib64/libc++abi.1.dylib
+++ b/darwin-x86/lib64/libc++abi.1.dylib
Binary files differ
diff --git a/darwin-x86/lib64/libclang-cpp.dylib b/darwin-x86/lib64/libclang-cpp.dylib
index 9f36c8c..e7e46d7 100755
--- a/darwin-x86/lib64/libclang-cpp.dylib
+++ b/darwin-x86/lib64/libclang-cpp.dylib
Binary files differ
diff --git a/darwin-x86/lib64/liblog.dylib b/darwin-x86/lib64/liblog.dylib
index 27506da..9f0f1b1 100755
--- a/darwin-x86/lib64/liblog.dylib
+++ b/darwin-x86/lib64/liblog.dylib
Binary files differ
diff --git a/linux-x86/bin/bindgen b/linux-x86/bin/bindgen
index d4114f0..bc0ef1d 100755
--- a/linux-x86/bin/bindgen
+++ b/linux-x86/bin/bindgen
Binary files differ
diff --git a/linux-x86/bin/cxx_extractor b/linux-x86/bin/cxx_extractor
index 0edd17e..7ab8dff 100755
--- a/linux-x86/bin/cxx_extractor
+++ b/linux-x86/bin/cxx_extractor
Binary files differ
diff --git a/linux-x86/bin/header-abi-diff b/linux-x86/bin/header-abi-diff
index c0af08c..30ce9d3 100755
--- a/linux-x86/bin/header-abi-diff
+++ b/linux-x86/bin/header-abi-diff
Binary files differ
diff --git a/linux-x86/bin/header-abi-dumper b/linux-x86/bin/header-abi-dumper
index 95fed25..30f803a 100755
--- a/linux-x86/bin/header-abi-dumper
+++ b/linux-x86/bin/header-abi-dumper
Binary files differ
diff --git a/linux-x86/bin/header-abi-linker b/linux-x86/bin/header-abi-linker
index 92e6209..521954a 100755
--- a/linux-x86/bin/header-abi-linker
+++ b/linux-x86/bin/header-abi-linker
Binary files differ
diff --git a/linux-x86/bin/proto_metadata_plugin b/linux-x86/bin/proto_metadata_plugin
index d9b829f..c2f2579 100755
--- a/linux-x86/bin/proto_metadata_plugin
+++ b/linux-x86/bin/proto_metadata_plugin
Binary files differ
diff --git a/linux-x86/bin/protoc_extractor b/linux-x86/bin/protoc_extractor
index f1fc112..7217d3c 100755
--- a/linux-x86/bin/protoc_extractor
+++ b/linux-x86/bin/protoc_extractor
Binary files differ
diff --git a/linux-x86/bin/versioner b/linux-x86/bin/versioner
index dbf8867..98a5765 100755
--- a/linux-x86/bin/versioner
+++ b/linux-x86/bin/versioner
Binary files differ
diff --git a/linux-x86/clang-headers b/linux-x86/clang-headers
index 862969a..fabd016 120000
--- a/linux-x86/clang-headers
+++ b/linux-x86/clang-headers
@@ -1 +1 @@
-lib64/clang/14.0.1/include
\ No newline at end of file
+lib64/clang/14.0.2/include
\ No newline at end of file
diff --git a/linux-x86/lib64/clang/14.0.1/include/__clang_cuda_intrinsics.h b/linux-x86/lib64/clang/14.0.1/include/__clang_cuda_intrinsics.h
deleted file mode 100644
index c7bff6a..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/__clang_cuda_intrinsics.h
+++ /dev/null
@@ -1,486 +0,0 @@
-/*===--- __clang_cuda_intrinsics.h - Device-side CUDA intrinsic wrappers ---===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-#ifndef __CLANG_CUDA_INTRINSICS_H__
-#define __CLANG_CUDA_INTRINSICS_H__
-#ifndef __CUDA__
-#error "This file is for CUDA compilation only."
-#endif
-
-// sm_30 intrinsics: __shfl_{up,down,xor}.
-
-#define __SM_30_INTRINSICS_H__
-#define __SM_30_INTRINSICS_HPP__
-
-#if !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 300
-
-#pragma push_macro("__MAKE_SHUFFLES")
-#define __MAKE_SHUFFLES(__FnName, __IntIntrinsic, __FloatIntrinsic, __Mask,    \
-                        __Type)                                                \
-  inline __device__ int __FnName(int __val, __Type __offset,                   \
-                                 int __width = warpSize) {                     \
-    return __IntIntrinsic(__val, __offset,                                     \
-                          ((warpSize - __width) << 8) | (__Mask));             \
-  }                                                                            \
-  inline __device__ float __FnName(float __val, __Type __offset,               \
-                                   int __width = warpSize) {                   \
-    return __FloatIntrinsic(__val, __offset,                                   \
-                            ((warpSize - __width) << 8) | (__Mask));           \
-  }                                                                            \
-  inline __device__ unsigned int __FnName(unsigned int __val, __Type __offset, \
-                                          int __width = warpSize) {            \
-    return static_cast<unsigned int>(                                          \
-        ::__FnName(static_cast<int>(__val), __offset, __width));               \
-  }                                                                            \
-  inline __device__ long long __FnName(long long __val, __Type __offset,       \
-                                       int __width = warpSize) {               \
-    struct __Bits {                                                            \
-      int __a, __b;                                                            \
-    };                                                                         \
-    _Static_assert(sizeof(__val) == sizeof(__Bits));                           \
-    _Static_assert(sizeof(__Bits) == 2 * sizeof(int));                         \
-    __Bits __tmp;                                                              \
-    memcpy(&__tmp, &__val, sizeof(__val));                                \
-    __tmp.__a = ::__FnName(__tmp.__a, __offset, __width);                      \
-    __tmp.__b = ::__FnName(__tmp.__b, __offset, __width);                      \
-    long long __ret;                                                           \
-    memcpy(&__ret, &__tmp, sizeof(__tmp));                                     \
-    return __ret;                                                              \
-  }                                                                            \
-  inline __device__ long __FnName(long __val, __Type __offset,                 \
-                                  int __width = warpSize) {                    \
-    _Static_assert(sizeof(long) == sizeof(long long) ||                        \
-                   sizeof(long) == sizeof(int));                               \
-    if (sizeof(long) == sizeof(long long)) {                                   \
-      return static_cast<long>(                                                \
-          ::__FnName(static_cast<long long>(__val), __offset, __width));       \
-    } else if (sizeof(long) == sizeof(int)) {                                  \
-      return static_cast<long>(                                                \
-          ::__FnName(static_cast<int>(__val), __offset, __width));             \
-    }                                                                          \
-  }                                                                            \
-  inline __device__ unsigned long __FnName(                                    \
-      unsigned long __val, __Type __offset, int __width = warpSize) {          \
-    return static_cast<unsigned long>(                                         \
-        ::__FnName(static_cast<long>(__val), __offset, __width));              \
-  }                                                                            \
-  inline __device__ unsigned long long __FnName(                               \
-      unsigned long long __val, __Type __offset, int __width = warpSize) {     \
-    return static_cast<unsigned long long>(::__FnName(                         \
-        static_cast<unsigned long long>(__val), __offset, __width));           \
-  }                                                                            \
-  inline __device__ double __FnName(double __val, __Type __offset,             \
-                                    int __width = warpSize) {                  \
-    long long __tmp;                                                           \
-    _Static_assert(sizeof(__tmp) == sizeof(__val));                            \
-    memcpy(&__tmp, &__val, sizeof(__val));                                     \
-    __tmp = ::__FnName(__tmp, __offset, __width);                              \
-    double __ret;                                                              \
-    memcpy(&__ret, &__tmp, sizeof(__ret));                                     \
-    return __ret;                                                              \
-  }
-
-__MAKE_SHUFFLES(__shfl, __nvvm_shfl_idx_i32, __nvvm_shfl_idx_f32, 0x1f, int);
-// We use 0 rather than 31 as our mask, because shfl.up applies to lanes >=
-// maxLane.
-__MAKE_SHUFFLES(__shfl_up, __nvvm_shfl_up_i32, __nvvm_shfl_up_f32, 0,
-                unsigned int);
-__MAKE_SHUFFLES(__shfl_down, __nvvm_shfl_down_i32, __nvvm_shfl_down_f32, 0x1f,
-                unsigned int);
-__MAKE_SHUFFLES(__shfl_xor, __nvvm_shfl_bfly_i32, __nvvm_shfl_bfly_f32, 0x1f,
-                int);
-#pragma pop_macro("__MAKE_SHUFFLES")
-
-#endif // !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 300
-
-#if CUDA_VERSION >= 9000
-#if (!defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 300)
-// __shfl_sync_* variants available in CUDA-9
-#pragma push_macro("__MAKE_SYNC_SHUFFLES")
-#define __MAKE_SYNC_SHUFFLES(__FnName, __IntIntrinsic, __FloatIntrinsic,       \
-                             __Mask, __Type)                                   \
-  inline __device__ int __FnName(unsigned int __mask, int __val,               \
-                                 __Type __offset, int __width = warpSize) {    \
-    return __IntIntrinsic(__mask, __val, __offset,                             \
-                          ((warpSize - __width) << 8) | (__Mask));             \
-  }                                                                            \
-  inline __device__ float __FnName(unsigned int __mask, float __val,           \
-                                   __Type __offset, int __width = warpSize) {  \
-    return __FloatIntrinsic(__mask, __val, __offset,                           \
-                            ((warpSize - __width) << 8) | (__Mask));           \
-  }                                                                            \
-  inline __device__ unsigned int __FnName(unsigned int __mask,                 \
-                                          unsigned int __val, __Type __offset, \
-                                          int __width = warpSize) {            \
-    return static_cast<unsigned int>(                                          \
-        ::__FnName(__mask, static_cast<int>(__val), __offset, __width));       \
-  }                                                                            \
-  inline __device__ long long __FnName(unsigned int __mask, long long __val,   \
-                                       __Type __offset,                        \
-                                       int __width = warpSize) {               \
-    struct __Bits {                                                            \
-      int __a, __b;                                                            \
-    };                                                                         \
-    _Static_assert(sizeof(__val) == sizeof(__Bits));                           \
-    _Static_assert(sizeof(__Bits) == 2 * sizeof(int));                         \
-    __Bits __tmp;                                                              \
-    memcpy(&__tmp, &__val, sizeof(__val));                                     \
-    __tmp.__a = ::__FnName(__mask, __tmp.__a, __offset, __width);              \
-    __tmp.__b = ::__FnName(__mask, __tmp.__b, __offset, __width);              \
-    long long __ret;                                                           \
-    memcpy(&__ret, &__tmp, sizeof(__tmp));                                     \
-    return __ret;                                                              \
-  }                                                                            \
-  inline __device__ unsigned long long __FnName(                               \
-      unsigned int __mask, unsigned long long __val, __Type __offset,          \
-      int __width = warpSize) {                                                \
-    return static_cast<unsigned long long>(::__FnName(                         \
-        __mask, static_cast<unsigned long long>(__val), __offset, __width));   \
-  }                                                                            \
-  inline __device__ long __FnName(unsigned int __mask, long __val,             \
-                                  __Type __offset, int __width = warpSize) {   \
-    _Static_assert(sizeof(long) == sizeof(long long) ||                        \
-                   sizeof(long) == sizeof(int));                               \
-    if (sizeof(long) == sizeof(long long)) {                                   \
-      return static_cast<long>(::__FnName(                                     \
-          __mask, static_cast<long long>(__val), __offset, __width));          \
-    } else if (sizeof(long) == sizeof(int)) {                                  \
-      return static_cast<long>(                                                \
-          ::__FnName(__mask, static_cast<int>(__val), __offset, __width));     \
-    }                                                                          \
-  }                                                                            \
-  inline __device__ unsigned long __FnName(                                    \
-      unsigned int __mask, unsigned long __val, __Type __offset,               \
-      int __width = warpSize) {                                                \
-    return static_cast<unsigned long>(                                         \
-        ::__FnName(__mask, static_cast<long>(__val), __offset, __width));      \
-  }                                                                            \
-  inline __device__ double __FnName(unsigned int __mask, double __val,         \
-                                    __Type __offset, int __width = warpSize) { \
-    long long __tmp;                                                           \
-    _Static_assert(sizeof(__tmp) == sizeof(__val));                            \
-    memcpy(&__tmp, &__val, sizeof(__val));                                     \
-    __tmp = ::__FnName(__mask, __tmp, __offset, __width);                      \
-    double __ret;                                                              \
-    memcpy(&__ret, &__tmp, sizeof(__ret));                                     \
-    return __ret;                                                              \
-  }
-__MAKE_SYNC_SHUFFLES(__shfl_sync, __nvvm_shfl_sync_idx_i32,
-                     __nvvm_shfl_sync_idx_f32, 0x1f, int);
-// We use 0 rather than 31 as our mask, because shfl.up applies to lanes >=
-// maxLane.
-__MAKE_SYNC_SHUFFLES(__shfl_up_sync, __nvvm_shfl_sync_up_i32,
-                     __nvvm_shfl_sync_up_f32, 0, unsigned int);
-__MAKE_SYNC_SHUFFLES(__shfl_down_sync, __nvvm_shfl_sync_down_i32,
-                     __nvvm_shfl_sync_down_f32, 0x1f, unsigned int);
-__MAKE_SYNC_SHUFFLES(__shfl_xor_sync, __nvvm_shfl_sync_bfly_i32,
-                     __nvvm_shfl_sync_bfly_f32, 0x1f, int);
-#pragma pop_macro("__MAKE_SYNC_SHUFFLES")
-
-inline __device__ void __syncwarp(unsigned int mask = 0xffffffff) {
-  return __nvvm_bar_warp_sync(mask);
-}
-
-inline __device__ void __barrier_sync(unsigned int id) {
-  __nvvm_barrier_sync(id);
-}
-
-inline __device__ void __barrier_sync_count(unsigned int id,
-                                            unsigned int count) {
-  __nvvm_barrier_sync_cnt(id, count);
-}
-
-inline __device__ int __all_sync(unsigned int mask, int pred) {
-  return __nvvm_vote_all_sync(mask, pred);
-}
-
-inline __device__ int __any_sync(unsigned int mask, int pred) {
-  return __nvvm_vote_any_sync(mask, pred);
-}
-
-inline __device__ int __uni_sync(unsigned int mask, int pred) {
-  return __nvvm_vote_uni_sync(mask, pred);
-}
-
-inline __device__ unsigned int __ballot_sync(unsigned int mask, int pred) {
-  return __nvvm_vote_ballot_sync(mask, pred);
-}
-
-inline __device__ unsigned int __activemask() {
-#if CUDA_VERSION < 9020
-  return __nvvm_vote_ballot(1);
-#else
-  unsigned int mask;
-  asm volatile("activemask.b32 %0;" : "=r"(mask));
-  return mask;
-#endif
-}
-
-inline __device__ unsigned int __fns(unsigned mask, unsigned base, int offset) {
-  return __nvvm_fns(mask, base, offset);
-}
-
-#endif // !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 300
-
-// Define __match* builtins CUDA-9 headers expect to see.
-#if !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 700
-inline __device__ unsigned int __match32_any_sync(unsigned int mask,
-                                                  unsigned int value) {
-  return __nvvm_match_any_sync_i32(mask, value);
-}
-
-inline __device__ unsigned long long
-__match64_any_sync(unsigned int mask, unsigned long long value) {
-  return __nvvm_match_any_sync_i64(mask, value);
-}
-
-inline __device__ unsigned int
-__match32_all_sync(unsigned int mask, unsigned int value, int *pred) {
-  return __nvvm_match_all_sync_i32p(mask, value, pred);
-}
-
-inline __device__ unsigned long long
-__match64_all_sync(unsigned int mask, unsigned long long value, int *pred) {
-  return __nvvm_match_all_sync_i64p(mask, value, pred);
-}
-#include "crt/sm_70_rt.hpp"
-
-#endif // !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 700
-#endif // __CUDA_VERSION >= 9000
-
-// sm_32 intrinsics: __ldg and __funnelshift_{l,lc,r,rc}.
-
-// Prevent the vanilla sm_32 intrinsics header from being included.
-#define __SM_32_INTRINSICS_H__
-#define __SM_32_INTRINSICS_HPP__
-
-#if !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 320
-
-inline __device__ char __ldg(const char *ptr) { return __nvvm_ldg_c(ptr); }
-inline __device__ short __ldg(const short *ptr) { return __nvvm_ldg_s(ptr); }
-inline __device__ int __ldg(const int *ptr) { return __nvvm_ldg_i(ptr); }
-inline __device__ long __ldg(const long *ptr) { return __nvvm_ldg_l(ptr); }
-inline __device__ long long __ldg(const long long *ptr) {
-  return __nvvm_ldg_ll(ptr);
-}
-inline __device__ unsigned char __ldg(const unsigned char *ptr) {
-  return __nvvm_ldg_uc(ptr);
-}
-inline __device__ signed char __ldg(const signed char *ptr) {
-  return __nvvm_ldg_uc((const unsigned char *)ptr);
-}
-inline __device__ unsigned short __ldg(const unsigned short *ptr) {
-  return __nvvm_ldg_us(ptr);
-}
-inline __device__ unsigned int __ldg(const unsigned int *ptr) {
-  return __nvvm_ldg_ui(ptr);
-}
-inline __device__ unsigned long __ldg(const unsigned long *ptr) {
-  return __nvvm_ldg_ul(ptr);
-}
-inline __device__ unsigned long long __ldg(const unsigned long long *ptr) {
-  return __nvvm_ldg_ull(ptr);
-}
-inline __device__ float __ldg(const float *ptr) { return __nvvm_ldg_f(ptr); }
-inline __device__ double __ldg(const double *ptr) { return __nvvm_ldg_d(ptr); }
-
-inline __device__ char2 __ldg(const char2 *ptr) {
-  typedef char c2 __attribute__((ext_vector_type(2)));
-  // We can assume that ptr is aligned at least to char2's alignment, but the
-  // load will assume that ptr is aligned to char2's alignment.  This is only
-  // safe if alignof(c2) <= alignof(char2).
-  c2 rv = __nvvm_ldg_c2(reinterpret_cast<const c2 *>(ptr));
-  char2 ret;
-  ret.x = rv[0];
-  ret.y = rv[1];
-  return ret;
-}
-inline __device__ char4 __ldg(const char4 *ptr) {
-  typedef char c4 __attribute__((ext_vector_type(4)));
-  c4 rv = __nvvm_ldg_c4(reinterpret_cast<const c4 *>(ptr));
-  char4 ret;
-  ret.x = rv[0];
-  ret.y = rv[1];
-  ret.z = rv[2];
-  ret.w = rv[3];
-  return ret;
-}
-inline __device__ short2 __ldg(const short2 *ptr) {
-  typedef short s2 __attribute__((ext_vector_type(2)));
-  s2 rv = __nvvm_ldg_s2(reinterpret_cast<const s2 *>(ptr));
-  short2 ret;
-  ret.x = rv[0];
-  ret.y = rv[1];
-  return ret;
-}
-inline __device__ short4 __ldg(const short4 *ptr) {
-  typedef short s4 __attribute__((ext_vector_type(4)));
-  s4 rv = __nvvm_ldg_s4(reinterpret_cast<const s4 *>(ptr));
-  short4 ret;
-  ret.x = rv[0];
-  ret.y = rv[1];
-  ret.z = rv[2];
-  ret.w = rv[3];
-  return ret;
-}
-inline __device__ int2 __ldg(const int2 *ptr) {
-  typedef int i2 __attribute__((ext_vector_type(2)));
-  i2 rv = __nvvm_ldg_i2(reinterpret_cast<const i2 *>(ptr));
-  int2 ret;
-  ret.x = rv[0];
-  ret.y = rv[1];
-  return ret;
-}
-inline __device__ int4 __ldg(const int4 *ptr) {
-  typedef int i4 __attribute__((ext_vector_type(4)));
-  i4 rv = __nvvm_ldg_i4(reinterpret_cast<const i4 *>(ptr));
-  int4 ret;
-  ret.x = rv[0];
-  ret.y = rv[1];
-  ret.z = rv[2];
-  ret.w = rv[3];
-  return ret;
-}
-inline __device__ longlong2 __ldg(const longlong2 *ptr) {
-  typedef long long ll2 __attribute__((ext_vector_type(2)));
-  ll2 rv = __nvvm_ldg_ll2(reinterpret_cast<const ll2 *>(ptr));
-  longlong2 ret;
-  ret.x = rv[0];
-  ret.y = rv[1];
-  return ret;
-}
-
-inline __device__ uchar2 __ldg(const uchar2 *ptr) {
-  typedef unsigned char uc2 __attribute__((ext_vector_type(2)));
-  uc2 rv = __nvvm_ldg_uc2(reinterpret_cast<const uc2 *>(ptr));
-  uchar2 ret;
-  ret.x = rv[0];
-  ret.y = rv[1];
-  return ret;
-}
-inline __device__ uchar4 __ldg(const uchar4 *ptr) {
-  typedef unsigned char uc4 __attribute__((ext_vector_type(4)));
-  uc4 rv = __nvvm_ldg_uc4(reinterpret_cast<const uc4 *>(ptr));
-  uchar4 ret;
-  ret.x = rv[0];
-  ret.y = rv[1];
-  ret.z = rv[2];
-  ret.w = rv[3];
-  return ret;
-}
-inline __device__ ushort2 __ldg(const ushort2 *ptr) {
-  typedef unsigned short us2 __attribute__((ext_vector_type(2)));
-  us2 rv = __nvvm_ldg_us2(reinterpret_cast<const us2 *>(ptr));
-  ushort2 ret;
-  ret.x = rv[0];
-  ret.y = rv[1];
-  return ret;
-}
-inline __device__ ushort4 __ldg(const ushort4 *ptr) {
-  typedef unsigned short us4 __attribute__((ext_vector_type(4)));
-  us4 rv = __nvvm_ldg_us4(reinterpret_cast<const us4 *>(ptr));
-  ushort4 ret;
-  ret.x = rv[0];
-  ret.y = rv[1];
-  ret.z = rv[2];
-  ret.w = rv[3];
-  return ret;
-}
-inline __device__ uint2 __ldg(const uint2 *ptr) {
-  typedef unsigned int ui2 __attribute__((ext_vector_type(2)));
-  ui2 rv = __nvvm_ldg_ui2(reinterpret_cast<const ui2 *>(ptr));
-  uint2 ret;
-  ret.x = rv[0];
-  ret.y = rv[1];
-  return ret;
-}
-inline __device__ uint4 __ldg(const uint4 *ptr) {
-  typedef unsigned int ui4 __attribute__((ext_vector_type(4)));
-  ui4 rv = __nvvm_ldg_ui4(reinterpret_cast<const ui4 *>(ptr));
-  uint4 ret;
-  ret.x = rv[0];
-  ret.y = rv[1];
-  ret.z = rv[2];
-  ret.w = rv[3];
-  return ret;
-}
-inline __device__ ulonglong2 __ldg(const ulonglong2 *ptr) {
-  typedef unsigned long long ull2 __attribute__((ext_vector_type(2)));
-  ull2 rv = __nvvm_ldg_ull2(reinterpret_cast<const ull2 *>(ptr));
-  ulonglong2 ret;
-  ret.x = rv[0];
-  ret.y = rv[1];
-  return ret;
-}
-
-inline __device__ float2 __ldg(const float2 *ptr) {
-  typedef float f2 __attribute__((ext_vector_type(2)));
-  f2 rv = __nvvm_ldg_f2(reinterpret_cast<const f2 *>(ptr));
-  float2 ret;
-  ret.x = rv[0];
-  ret.y = rv[1];
-  return ret;
-}
-inline __device__ float4 __ldg(const float4 *ptr) {
-  typedef float f4 __attribute__((ext_vector_type(4)));
-  f4 rv = __nvvm_ldg_f4(reinterpret_cast<const f4 *>(ptr));
-  float4 ret;
-  ret.x = rv[0];
-  ret.y = rv[1];
-  ret.z = rv[2];
-  ret.w = rv[3];
-  return ret;
-}
-inline __device__ double2 __ldg(const double2 *ptr) {
-  typedef double d2 __attribute__((ext_vector_type(2)));
-  d2 rv = __nvvm_ldg_d2(reinterpret_cast<const d2 *>(ptr));
-  double2 ret;
-  ret.x = rv[0];
-  ret.y = rv[1];
-  return ret;
-}
-
-// TODO: Implement these as intrinsics, so the backend can work its magic on
-// these.  Alternatively, we could implement these as plain C and try to get
-// llvm to recognize the relevant patterns.
-inline __device__ unsigned __funnelshift_l(unsigned low32, unsigned high32,
-                                           unsigned shiftWidth) {
-  unsigned result;
-  asm("shf.l.wrap.b32 %0, %1, %2, %3;"
-      : "=r"(result)
-      : "r"(low32), "r"(high32), "r"(shiftWidth));
-  return result;
-}
-inline __device__ unsigned __funnelshift_lc(unsigned low32, unsigned high32,
-                                            unsigned shiftWidth) {
-  unsigned result;
-  asm("shf.l.clamp.b32 %0, %1, %2, %3;"
-      : "=r"(result)
-      : "r"(low32), "r"(high32), "r"(shiftWidth));
-  return result;
-}
-inline __device__ unsigned __funnelshift_r(unsigned low32, unsigned high32,
-                                           unsigned shiftWidth) {
-  unsigned result;
-  asm("shf.r.wrap.b32 %0, %1, %2, %3;"
-      : "=r"(result)
-      : "r"(low32), "r"(high32), "r"(shiftWidth));
-  return result;
-}
-inline __device__ unsigned __funnelshift_rc(unsigned low32, unsigned high32,
-                                            unsigned shiftWidth) {
-  unsigned ret;
-  asm("shf.r.clamp.b32 %0, %1, %2, %3;"
-      : "=r"(ret)
-      : "r"(low32), "r"(high32), "r"(shiftWidth));
-  return ret;
-}
-
-#endif // !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 320
-
-#endif // defined(__CLANG_CUDA_INTRINSICS_H__)
diff --git a/linux-x86/lib64/clang/14.0.1/include/altivec.h b/linux-x86/lib64/clang/14.0.1/include/altivec.h
deleted file mode 100644
index fa9100a..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/altivec.h
+++ /dev/null
@@ -1,18974 +0,0 @@
-/*===---- altivec.h - Standard header for type generic math ---------------===*\
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
-\*===----------------------------------------------------------------------===*/
-
-#ifndef __ALTIVEC_H
-#define __ALTIVEC_H
-
-#ifndef __ALTIVEC__
-#error "AltiVec support not enabled"
-#endif
-
-/* Constants for mapping CR6 bits to predicate result. */
-
-#define __CR6_EQ 0
-#define __CR6_EQ_REV 1
-#define __CR6_LT 2
-#define __CR6_LT_REV 3
-
-/* Constants for vec_test_data_class */
-#define __VEC_CLASS_FP_SUBNORMAL_N (1 << 0)
-#define __VEC_CLASS_FP_SUBNORMAL_P (1 << 1)
-#define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \
-                                  __VEC_CLASS_FP_SUBNORMAL_N)
-#define __VEC_CLASS_FP_ZERO_N (1<<2)
-#define __VEC_CLASS_FP_ZERO_P (1<<3)
-#define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P           | \
-                             __VEC_CLASS_FP_ZERO_N)
-#define __VEC_CLASS_FP_INFINITY_N (1<<4)
-#define __VEC_CLASS_FP_INFINITY_P (1<<5)
-#define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P   | \
-                                 __VEC_CLASS_FP_INFINITY_N)
-#define __VEC_CLASS_FP_NAN (1<<6)
-#define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN        | \
-                                   __VEC_CLASS_FP_SUBNORMAL  | \
-                                   __VEC_CLASS_FP_ZERO       | \
-                                   __VEC_CLASS_FP_INFINITY)
-
-#define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
-
-#include <stddef.h>
-
-static __inline__ vector signed char __ATTRS_o_ai vec_perm(
-    vector signed char __a, vector signed char __b, vector unsigned char __c);
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_perm(vector unsigned char __a, vector unsigned char __b,
-         vector unsigned char __c);
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_perm(vector bool char __a, vector bool char __b, vector unsigned char __c);
-
-static __inline__ vector short __ATTRS_o_ai vec_perm(vector signed short __a,
-                                                     vector signed short __b,
-                                                     vector unsigned char __c);
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_perm(vector unsigned short __a, vector unsigned short __b,
-         vector unsigned char __c);
-
-static __inline__ vector bool short __ATTRS_o_ai vec_perm(
-    vector bool short __a, vector bool short __b, vector unsigned char __c);
-
-static __inline__ vector pixel __ATTRS_o_ai vec_perm(vector pixel __a,
-                                                     vector pixel __b,
-                                                     vector unsigned char __c);
-
-static __inline__ vector int __ATTRS_o_ai vec_perm(vector signed int __a,
-                                                   vector signed int __b,
-                                                   vector unsigned char __c);
-
-static __inline__ vector unsigned int __ATTRS_o_ai vec_perm(
-    vector unsigned int __a, vector unsigned int __b, vector unsigned char __c);
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_perm(vector bool int __a, vector bool int __b, vector unsigned char __c);
-
-static __inline__ vector float __ATTRS_o_ai vec_perm(vector float __a,
-                                                     vector float __b,
-                                                     vector unsigned char __c);
-
-#ifdef __VSX__
-static __inline__ vector long long __ATTRS_o_ai
-vec_perm(vector signed long long __a, vector signed long long __b,
-         vector unsigned char __c);
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_perm(vector unsigned long long __a, vector unsigned long long __b,
-         vector unsigned char __c);
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_perm(vector bool long long __a, vector bool long long __b,
-         vector unsigned char __c);
-
-static __inline__ vector double __ATTRS_o_ai vec_perm(vector double __a,
-                                                      vector double __b,
-                                                      vector unsigned char __c);
-#endif
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_xor(vector unsigned char __a, vector unsigned char __b);
-
-/* vec_abs */
-
-#define __builtin_altivec_abs_v16qi vec_abs
-#define __builtin_altivec_abs_v8hi vec_abs
-#define __builtin_altivec_abs_v4si vec_abs
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_abs(vector signed char __a) {
-  return __builtin_altivec_vmaxsb(__a, -__a);
-}
-
-static __inline__ vector signed short __ATTRS_o_ai
-vec_abs(vector signed short __a) {
-  return __builtin_altivec_vmaxsh(__a, -__a);
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_abs(vector signed int __a) {
-  return __builtin_altivec_vmaxsw(__a, -__a);
-}
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_abs(vector signed long long __a) {
-  return __builtin_altivec_vmaxsd(__a, -__a);
-}
-#endif
-
-static __inline__ vector float __ATTRS_o_ai vec_abs(vector float __a) {
-#ifdef __VSX__
-  return __builtin_vsx_xvabssp(__a);
-#else
-  vector unsigned int __res =
-      (vector unsigned int)__a & (vector unsigned int)(0x7FFFFFFF);
-  return (vector float)__res;
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai vec_abs(vector double __a) {
-  return __builtin_vsx_xvabsdp(__a);
-}
-#endif
-
-/* vec_abss */
-#define __builtin_altivec_abss_v16qi vec_abss
-#define __builtin_altivec_abss_v8hi vec_abss
-#define __builtin_altivec_abss_v4si vec_abss
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_abss(vector signed char __a) {
-  return __builtin_altivec_vmaxsb(
-      __a, __builtin_altivec_vsubsbs((vector signed char)(0), __a));
-}
-
-static __inline__ vector signed short __ATTRS_o_ai
-vec_abss(vector signed short __a) {
-  return __builtin_altivec_vmaxsh(
-      __a, __builtin_altivec_vsubshs((vector signed short)(0), __a));
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_abss(vector signed int __a) {
-  return __builtin_altivec_vmaxsw(
-      __a, __builtin_altivec_vsubsws((vector signed int)(0), __a));
-}
-
-/* vec_absd */
-#if defined(__POWER9_VECTOR__)
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_absd(vector unsigned char __a, vector unsigned char __b) {
-  return __builtin_altivec_vabsdub(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_absd(vector unsigned short __a, vector unsigned short __b) {
-  return __builtin_altivec_vabsduh(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_absd(vector unsigned int __a,  vector unsigned int __b) {
-  return __builtin_altivec_vabsduw(__a, __b);
-}
-
-#endif /* End __POWER9_VECTOR__ */
-
-/* vec_add */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_add(vector signed char __a, vector signed char __b) {
-  return __a + __b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_add(vector bool char __a, vector signed char __b) {
-  return (vector signed char)__a + __b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_add(vector signed char __a, vector bool char __b) {
-  return __a + (vector signed char)__b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_add(vector unsigned char __a, vector unsigned char __b) {
-  return __a + __b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_add(vector bool char __a, vector unsigned char __b) {
-  return (vector unsigned char)__a + __b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_add(vector unsigned char __a, vector bool char __b) {
-  return __a + (vector unsigned char)__b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_add(vector short __a,
-                                                    vector short __b) {
-  return __a + __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_add(vector bool short __a,
-                                                    vector short __b) {
-  return (vector short)__a + __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_add(vector short __a,
-                                                    vector bool short __b) {
-  return __a + (vector short)__b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_add(vector unsigned short __a, vector unsigned short __b) {
-  return __a + __b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_add(vector bool short __a, vector unsigned short __b) {
-  return (vector unsigned short)__a + __b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_add(vector unsigned short __a, vector bool short __b) {
-  return __a + (vector unsigned short)__b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_add(vector int __a,
-                                                  vector int __b) {
-  return __a + __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_add(vector bool int __a,
-                                                  vector int __b) {
-  return (vector int)__a + __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_add(vector int __a,
-                                                  vector bool int __b) {
-  return __a + (vector int)__b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_add(vector unsigned int __a, vector unsigned int __b) {
-  return __a + __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_add(vector bool int __a, vector unsigned int __b) {
-  return (vector unsigned int)__a + __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_add(vector unsigned int __a, vector bool int __b) {
-  return __a + (vector unsigned int)__b;
-}
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_add(vector signed long long __a, vector signed long long __b) {
-  return __a + __b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_add(vector unsigned long long __a, vector unsigned long long __b) {
-  return __a + __b;
-}
-
-#ifdef __SIZEOF_INT128__
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_add(vector signed __int128 __a, vector signed __int128 __b) {
-  return __a + __b;
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_add(vector unsigned __int128 __a, vector unsigned __int128 __b) {
-  return __a + __b;
-}
-#endif
-
-static __inline__ vector unsigned char __attribute__((__always_inline__))
-vec_add_u128(vector unsigned char __a, vector unsigned char __b) {
-  return __builtin_altivec_vadduqm(__a, __b);
-}
-#elif defined(__VSX__)
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_add(vector signed long long __a, vector signed long long __b) {
-#ifdef __LITTLE_ENDIAN__
-  // Little endian systems on CPU's prior to Power8 don't really exist
-  // so scalarizing is fine.
-  return __a + __b;
-#else
-  vector unsigned int __res =
-      (vector unsigned int)__a + (vector unsigned int)__b;
-  vector unsigned int __carry = __builtin_altivec_vaddcuw(
-      (vector unsigned int)__a, (vector unsigned int)__b);
-  __carry = __builtin_shufflevector((vector unsigned char)__carry,
-                                    (vector unsigned char)__carry, 0, 0, 0, 7,
-                                    0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0);
-  return (vector signed long long)(__res + __carry);
-#endif
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_add(vector unsigned long long __a, vector unsigned long long __b) {
-  return (vector unsigned long long)vec_add((vector signed long long)__a,
-                                            (vector signed long long)__b);
-}
-#endif // __POWER8_VECTOR__
-
-static __inline__ vector float __ATTRS_o_ai vec_add(vector float __a,
-                                                    vector float __b) {
-  return __a + __b;
-}
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai vec_add(vector double __a,
-                                                     vector double __b) {
-  return __a + __b;
-}
-#endif // __VSX__
-
-/* vec_adde */
-
-#ifdef __POWER8_VECTOR__
-#ifdef __SIZEOF_INT128__
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_adde(vector signed __int128 __a, vector signed __int128 __b,
-         vector signed __int128 __c) {
-  return __builtin_altivec_vaddeuqm(__a, __b, __c);
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_adde(vector unsigned __int128 __a, vector unsigned __int128 __b,
-         vector unsigned __int128 __c) {
-  return __builtin_altivec_vaddeuqm(__a, __b, __c);
-}
-#endif
-
-static __inline__ vector unsigned char __attribute__((__always_inline__))
-vec_adde_u128(vector unsigned char __a, vector unsigned char __b,
-              vector unsigned char __c) {
-  return (vector unsigned char)__builtin_altivec_vaddeuqm(__a, __b, __c);
-}
-#endif
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_adde(vector signed int __a, vector signed int __b,
-         vector signed int __c) {
-  vector signed int __mask = {1, 1, 1, 1};
-  vector signed int __carry = __c & __mask;
-  return vec_add(vec_add(__a, __b), __carry);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_adde(vector unsigned int __a, vector unsigned int __b,
-         vector unsigned int __c) {
-  vector unsigned int __mask = {1, 1, 1, 1};
-  vector unsigned int __carry = __c & __mask;
-  return vec_add(vec_add(__a, __b), __carry);
-}
-
-/* vec_addec */
-
-#ifdef __POWER8_VECTOR__
-#ifdef __SIZEOF_INT128__
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_addec(vector signed __int128 __a, vector signed __int128 __b,
-          vector signed __int128 __c) {
-  return __builtin_altivec_vaddecuq(__a, __b, __c);
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_addec(vector unsigned __int128 __a, vector unsigned __int128 __b,
-          vector unsigned __int128 __c) {
-  return __builtin_altivec_vaddecuq(__a, __b, __c);
-}
-#endif
-
-static __inline__ vector unsigned char __attribute__((__always_inline__))
-vec_addec_u128(vector unsigned char __a, vector unsigned char __b,
-               vector unsigned char __c) {
-  return (vector unsigned char)__builtin_altivec_vaddecuq(__a, __b, __c);
-}
-
-#ifdef __powerpc64__
-static __inline__ vector signed int __ATTRS_o_ai
-vec_addec(vector signed int __a, vector signed int __b,
-          vector signed int __c) {
-
-  signed int __result[4];
-  for (int i = 0; i < 4; i++) {
-    unsigned int __tempa = (unsigned int) __a[i];
-    unsigned int __tempb = (unsigned int) __b[i];
-    unsigned int __tempc = (unsigned int) __c[i];
-    __tempc = __tempc & 0x00000001;
-    unsigned long long __longa = (unsigned long long) __tempa;
-    unsigned long long __longb = (unsigned long long) __tempb;
-    unsigned long long __longc = (unsigned long long) __tempc;
-    unsigned long long __sum = __longa + __longb + __longc;
-    unsigned long long __res = (__sum >> 32) & 0x01;
-    unsigned long long __tempres = (unsigned int) __res;
-    __result[i] = (signed int) __tempres;
-  }
-
-  vector signed int ret = { __result[0], __result[1], __result[2], __result[3] };
-  return ret;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_addec(vector unsigned int __a, vector unsigned int __b,
-          vector unsigned int __c) {
-
-  unsigned int __result[4];
-  for (int i = 0; i < 4; i++) {
-    unsigned int __tempc = __c[i] & 1;
-    unsigned long long __longa = (unsigned long long) __a[i];
-    unsigned long long __longb = (unsigned long long) __b[i];
-    unsigned long long __longc = (unsigned long long) __tempc;
-    unsigned long long __sum = __longa + __longb + __longc;
-    unsigned long long __res = (__sum >> 32) & 0x01;
-    unsigned long long __tempres = (unsigned int) __res;
-    __result[i] = (signed int) __tempres;
-  }
-
-  vector unsigned int ret = { __result[0], __result[1], __result[2], __result[3] };
-  return ret;
-}
-#endif // __powerpc64__
-#endif // __POWER8_VECTOR__
-
-/* vec_vaddubm */
-
-#define __builtin_altivec_vaddubm vec_vaddubm
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vaddubm(vector signed char __a, vector signed char __b) {
-  return __a + __b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vaddubm(vector bool char __a, vector signed char __b) {
-  return (vector signed char)__a + __b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vaddubm(vector signed char __a, vector bool char __b) {
-  return __a + (vector signed char)__b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vaddubm(vector unsigned char __a, vector unsigned char __b) {
-  return __a + __b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vaddubm(vector bool char __a, vector unsigned char __b) {
-  return (vector unsigned char)__a + __b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vaddubm(vector unsigned char __a, vector bool char __b) {
-  return __a + (vector unsigned char)__b;
-}
-
-/* vec_vadduhm */
-
-#define __builtin_altivec_vadduhm vec_vadduhm
-
-static __inline__ vector short __ATTRS_o_ai vec_vadduhm(vector short __a,
-                                                        vector short __b) {
-  return __a + __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vadduhm(vector bool short __a,
-                                                        vector short __b) {
-  return (vector short)__a + __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vadduhm(vector short __a,
-                                                        vector bool short __b) {
-  return __a + (vector short)__b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vadduhm(vector unsigned short __a, vector unsigned short __b) {
-  return __a + __b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vadduhm(vector bool short __a, vector unsigned short __b) {
-  return (vector unsigned short)__a + __b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vadduhm(vector unsigned short __a, vector bool short __b) {
-  return __a + (vector unsigned short)__b;
-}
-
-/* vec_vadduwm */
-
-#define __builtin_altivec_vadduwm vec_vadduwm
-
-static __inline__ vector int __ATTRS_o_ai vec_vadduwm(vector int __a,
-                                                      vector int __b) {
-  return __a + __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vadduwm(vector bool int __a,
-                                                      vector int __b) {
-  return (vector int)__a + __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vadduwm(vector int __a,
-                                                      vector bool int __b) {
-  return __a + (vector int)__b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vadduwm(vector unsigned int __a, vector unsigned int __b) {
-  return __a + __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vadduwm(vector bool int __a, vector unsigned int __b) {
-  return (vector unsigned int)__a + __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vadduwm(vector unsigned int __a, vector bool int __b) {
-  return __a + (vector unsigned int)__b;
-}
-
-/* vec_vaddfp */
-
-#define __builtin_altivec_vaddfp vec_vaddfp
-
-static __inline__ vector float __attribute__((__always_inline__))
-vec_vaddfp(vector float __a, vector float __b) {
-  return __a + __b;
-}
-
-/* vec_addc */
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_addc(vector signed int __a, vector signed int __b) {
-  return (vector signed int)__builtin_altivec_vaddcuw((vector unsigned int)__a,
-                                                      (vector unsigned int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_addc(vector unsigned int __a, vector unsigned int __b) {
-  return __builtin_altivec_vaddcuw(__a, __b);
-}
-
-#ifdef __POWER8_VECTOR__
-#ifdef __SIZEOF_INT128__
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_addc(vector signed __int128 __a, vector signed __int128 __b) {
-  return (vector signed __int128)__builtin_altivec_vaddcuq(
-      (vector unsigned __int128)__a, (vector unsigned __int128)__b);
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_addc(vector unsigned __int128 __a, vector unsigned __int128 __b) {
-  return __builtin_altivec_vaddcuq(__a, __b);
-}
-#endif
-
-static __inline__ vector unsigned char __attribute__((__always_inline__))
-vec_addc_u128(vector unsigned char __a, vector unsigned char __b) {
-  return (vector unsigned char)__builtin_altivec_vaddcuq(__a, __b);
-}
-#endif // defined(__POWER8_VECTOR__) && defined(__powerpc64__)
-
-/* vec_vaddcuw */
-
-static __inline__ vector unsigned int __attribute__((__always_inline__))
-vec_vaddcuw(vector unsigned int __a, vector unsigned int __b) {
-  return __builtin_altivec_vaddcuw(__a, __b);
-}
-
-/* vec_adds */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_adds(vector signed char __a, vector signed char __b) {
-  return __builtin_altivec_vaddsbs(__a, __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_adds(vector bool char __a, vector signed char __b) {
-  return __builtin_altivec_vaddsbs((vector signed char)__a, __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_adds(vector signed char __a, vector bool char __b) {
-  return __builtin_altivec_vaddsbs(__a, (vector signed char)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_adds(vector unsigned char __a, vector unsigned char __b) {
-  return __builtin_altivec_vaddubs(__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_adds(vector bool char __a, vector unsigned char __b) {
-  return __builtin_altivec_vaddubs((vector unsigned char)__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_adds(vector unsigned char __a, vector bool char __b) {
-  return __builtin_altivec_vaddubs(__a, (vector unsigned char)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_adds(vector short __a,
-                                                     vector short __b) {
-  return __builtin_altivec_vaddshs(__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_adds(vector bool short __a,
-                                                     vector short __b) {
-  return __builtin_altivec_vaddshs((vector short)__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_adds(vector short __a,
-                                                     vector bool short __b) {
-  return __builtin_altivec_vaddshs(__a, (vector short)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_adds(vector unsigned short __a, vector unsigned short __b) {
-  return __builtin_altivec_vadduhs(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_adds(vector bool short __a, vector unsigned short __b) {
-  return __builtin_altivec_vadduhs((vector unsigned short)__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_adds(vector unsigned short __a, vector bool short __b) {
-  return __builtin_altivec_vadduhs(__a, (vector unsigned short)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_adds(vector int __a,
-                                                   vector int __b) {
-  return __builtin_altivec_vaddsws(__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_adds(vector bool int __a,
-                                                   vector int __b) {
-  return __builtin_altivec_vaddsws((vector int)__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_adds(vector int __a,
-                                                   vector bool int __b) {
-  return __builtin_altivec_vaddsws(__a, (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_adds(vector unsigned int __a, vector unsigned int __b) {
-  return __builtin_altivec_vadduws(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_adds(vector bool int __a, vector unsigned int __b) {
-  return __builtin_altivec_vadduws((vector unsigned int)__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_adds(vector unsigned int __a, vector bool int __b) {
-  return __builtin_altivec_vadduws(__a, (vector unsigned int)__b);
-}
-
-/* vec_vaddsbs */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vaddsbs(vector signed char __a, vector signed char __b) {
-  return __builtin_altivec_vaddsbs(__a, __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vaddsbs(vector bool char __a, vector signed char __b) {
-  return __builtin_altivec_vaddsbs((vector signed char)__a, __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vaddsbs(vector signed char __a, vector bool char __b) {
-  return __builtin_altivec_vaddsbs(__a, (vector signed char)__b);
-}
-
-/* vec_vaddubs */
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vaddubs(vector unsigned char __a, vector unsigned char __b) {
-  return __builtin_altivec_vaddubs(__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vaddubs(vector bool char __a, vector unsigned char __b) {
-  return __builtin_altivec_vaddubs((vector unsigned char)__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vaddubs(vector unsigned char __a, vector bool char __b) {
-  return __builtin_altivec_vaddubs(__a, (vector unsigned char)__b);
-}
-
-/* vec_vaddshs */
-
-static __inline__ vector short __ATTRS_o_ai vec_vaddshs(vector short __a,
-                                                        vector short __b) {
-  return __builtin_altivec_vaddshs(__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vaddshs(vector bool short __a,
-                                                        vector short __b) {
-  return __builtin_altivec_vaddshs((vector short)__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vaddshs(vector short __a,
-                                                        vector bool short __b) {
-  return __builtin_altivec_vaddshs(__a, (vector short)__b);
-}
-
-/* vec_vadduhs */
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vadduhs(vector unsigned short __a, vector unsigned short __b) {
-  return __builtin_altivec_vadduhs(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vadduhs(vector bool short __a, vector unsigned short __b) {
-  return __builtin_altivec_vadduhs((vector unsigned short)__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vadduhs(vector unsigned short __a, vector bool short __b) {
-  return __builtin_altivec_vadduhs(__a, (vector unsigned short)__b);
-}
-
-/* vec_vaddsws */
-
-static __inline__ vector int __ATTRS_o_ai vec_vaddsws(vector int __a,
-                                                      vector int __b) {
-  return __builtin_altivec_vaddsws(__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vaddsws(vector bool int __a,
-                                                      vector int __b) {
-  return __builtin_altivec_vaddsws((vector int)__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vaddsws(vector int __a,
-                                                      vector bool int __b) {
-  return __builtin_altivec_vaddsws(__a, (vector int)__b);
-}
-
-/* vec_vadduws */
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vadduws(vector unsigned int __a, vector unsigned int __b) {
-  return __builtin_altivec_vadduws(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vadduws(vector bool int __a, vector unsigned int __b) {
-  return __builtin_altivec_vadduws((vector unsigned int)__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vadduws(vector unsigned int __a, vector bool int __b) {
-  return __builtin_altivec_vadduws(__a, (vector unsigned int)__b);
-}
-
-#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) &&                    \
-    defined(__SIZEOF_INT128__)
-/* vec_vadduqm */
-
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_vadduqm(vector signed __int128 __a, vector signed __int128 __b) {
-  return __a + __b;
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_vadduqm(vector unsigned __int128 __a, vector unsigned __int128 __b) {
-  return __a + __b;
-}
-
-/* vec_vaddeuqm */
-
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_vaddeuqm(vector signed __int128 __a, vector signed __int128 __b,
-             vector signed __int128 __c) {
-  return __builtin_altivec_vaddeuqm(__a, __b, __c);
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_vaddeuqm(vector unsigned __int128 __a, vector unsigned __int128 __b,
-             vector unsigned __int128 __c) {
-  return __builtin_altivec_vaddeuqm(__a, __b, __c);
-}
-
-/* vec_vaddcuq */
-
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_vaddcuq(vector signed __int128 __a, vector signed __int128 __b) {
-  return __builtin_altivec_vaddcuq(__a, __b);
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_vaddcuq(vector unsigned __int128 __a, vector unsigned __int128 __b) {
-  return __builtin_altivec_vaddcuq(__a, __b);
-}
-
-/* vec_vaddecuq */
-
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_vaddecuq(vector signed __int128 __a, vector signed __int128 __b,
-             vector signed __int128 __c) {
-  return __builtin_altivec_vaddecuq(__a, __b, __c);
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_vaddecuq(vector unsigned __int128 __a, vector unsigned __int128 __b,
-             vector unsigned __int128 __c) {
-  return __builtin_altivec_vaddecuq(__a, __b, __c);
-}
-#endif // defined(__POWER8_VECTOR__) && defined(__powerpc64__)
-
-/* vec_and */
-
-#define __builtin_altivec_vand vec_and
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_and(vector signed char __a, vector signed char __b) {
-  return __a & __b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_and(vector bool char __a, vector signed char __b) {
-  return (vector signed char)__a & __b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_and(vector signed char __a, vector bool char __b) {
-  return __a & (vector signed char)__b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_and(vector unsigned char __a, vector unsigned char __b) {
-  return __a & __b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_and(vector bool char __a, vector unsigned char __b) {
-  return (vector unsigned char)__a & __b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_and(vector unsigned char __a, vector bool char __b) {
-  return __a & (vector unsigned char)__b;
-}
-
-static __inline__ vector bool char __ATTRS_o_ai vec_and(vector bool char __a,
-                                                        vector bool char __b) {
-  return __a & __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_and(vector short __a,
-                                                    vector short __b) {
-  return __a & __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_and(vector bool short __a,
-                                                    vector short __b) {
-  return (vector short)__a & __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_and(vector short __a,
-                                                    vector bool short __b) {
-  return __a & (vector short)__b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_and(vector unsigned short __a, vector unsigned short __b) {
-  return __a & __b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_and(vector bool short __a, vector unsigned short __b) {
-  return (vector unsigned short)__a & __b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_and(vector unsigned short __a, vector bool short __b) {
-  return __a & (vector unsigned short)__b;
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_and(vector bool short __a, vector bool short __b) {
-  return __a & __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_and(vector int __a,
-                                                  vector int __b) {
-  return __a & __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_and(vector bool int __a,
-                                                  vector int __b) {
-  return (vector int)__a & __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_and(vector int __a,
-                                                  vector bool int __b) {
-  return __a & (vector int)__b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_and(vector unsigned int __a, vector unsigned int __b) {
-  return __a & __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_and(vector bool int __a, vector unsigned int __b) {
-  return (vector unsigned int)__a & __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_and(vector unsigned int __a, vector bool int __b) {
-  return __a & (vector unsigned int)__b;
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_and(vector bool int __a,
-                                                       vector bool int __b) {
-  return __a & __b;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_and(vector float __a,
-                                                    vector float __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a & (vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_and(vector bool int __a,
-                                                    vector float __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a & (vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_and(vector float __a,
-                                                    vector bool int __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a & (vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai vec_and(vector bool long long __a,
-                                                     vector double __b) {
-  vector unsigned long long __res =
-      (vector unsigned long long)__a & (vector unsigned long long)__b;
-  return (vector double)__res;
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_and(vector double __a, vector bool long long __b) {
-  vector unsigned long long __res =
-      (vector unsigned long long)__a & (vector unsigned long long)__b;
-  return (vector double)__res;
-}
-
-static __inline__ vector double __ATTRS_o_ai vec_and(vector double __a,
-                                                     vector double __b) {
-  vector unsigned long long __res =
-      (vector unsigned long long)__a & (vector unsigned long long)__b;
-  return (vector double)__res;
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_and(vector signed long long __a, vector signed long long __b) {
-  return __a & __b;
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_and(vector bool long long __a, vector signed long long __b) {
-  return (vector signed long long)__a & __b;
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_and(vector signed long long __a, vector bool long long __b) {
-  return __a & (vector signed long long)__b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_and(vector unsigned long long __a, vector unsigned long long __b) {
-  return __a & __b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_and(vector bool long long __a, vector unsigned long long __b) {
-  return (vector unsigned long long)__a & __b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_and(vector unsigned long long __a, vector bool long long __b) {
-  return __a & (vector unsigned long long)__b;
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_and(vector bool long long __a, vector bool long long __b) {
-  return __a & __b;
-}
-#endif
-
-/* vec_vand */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vand(vector signed char __a, vector signed char __b) {
-  return __a & __b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vand(vector bool char __a, vector signed char __b) {
-  return (vector signed char)__a & __b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vand(vector signed char __a, vector bool char __b) {
-  return __a & (vector signed char)__b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vand(vector unsigned char __a, vector unsigned char __b) {
-  return __a & __b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vand(vector bool char __a, vector unsigned char __b) {
-  return (vector unsigned char)__a & __b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vand(vector unsigned char __a, vector bool char __b) {
-  return __a & (vector unsigned char)__b;
-}
-
-static __inline__ vector bool char __ATTRS_o_ai vec_vand(vector bool char __a,
-                                                         vector bool char __b) {
-  return __a & __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vand(vector short __a,
-                                                     vector short __b) {
-  return __a & __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vand(vector bool short __a,
-                                                     vector short __b) {
-  return (vector short)__a & __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vand(vector short __a,
-                                                     vector bool short __b) {
-  return __a & (vector short)__b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vand(vector unsigned short __a, vector unsigned short __b) {
-  return __a & __b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vand(vector bool short __a, vector unsigned short __b) {
-  return (vector unsigned short)__a & __b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vand(vector unsigned short __a, vector bool short __b) {
-  return __a & (vector unsigned short)__b;
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_vand(vector bool short __a, vector bool short __b) {
-  return __a & __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vand(vector int __a,
-                                                   vector int __b) {
-  return __a & __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vand(vector bool int __a,
-                                                   vector int __b) {
-  return (vector int)__a & __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vand(vector int __a,
-                                                   vector bool int __b) {
-  return __a & (vector int)__b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vand(vector unsigned int __a, vector unsigned int __b) {
-  return __a & __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vand(vector bool int __a, vector unsigned int __b) {
-  return (vector unsigned int)__a & __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vand(vector unsigned int __a, vector bool int __b) {
-  return __a & (vector unsigned int)__b;
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_vand(vector bool int __a,
-                                                        vector bool int __b) {
-  return __a & __b;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vand(vector float __a,
-                                                     vector float __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a & (vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vand(vector bool int __a,
-                                                     vector float __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a & (vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vand(vector float __a,
-                                                     vector bool int __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a & (vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-#ifdef __VSX__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_vand(vector signed long long __a, vector signed long long __b) {
-  return __a & __b;
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_vand(vector bool long long __a, vector signed long long __b) {
-  return (vector signed long long)__a & __b;
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_vand(vector signed long long __a, vector bool long long __b) {
-  return __a & (vector signed long long)__b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_vand(vector unsigned long long __a, vector unsigned long long __b) {
-  return __a & __b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_vand(vector bool long long __a, vector unsigned long long __b) {
-  return (vector unsigned long long)__a & __b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_vand(vector unsigned long long __a, vector bool long long __b) {
-  return __a & (vector unsigned long long)__b;
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_vand(vector bool long long __a, vector bool long long __b) {
-  return __a & __b;
-}
-#endif
-
-/* vec_andc */
-
-#define __builtin_altivec_vandc vec_andc
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_andc(vector signed char __a, vector signed char __b) {
-  return __a & ~__b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_andc(vector bool char __a, vector signed char __b) {
-  return (vector signed char)__a & ~__b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_andc(vector signed char __a, vector bool char __b) {
-  return __a & ~(vector signed char)__b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_andc(vector unsigned char __a, vector unsigned char __b) {
-  return __a & ~__b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_andc(vector bool char __a, vector unsigned char __b) {
-  return (vector unsigned char)__a & ~__b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_andc(vector unsigned char __a, vector bool char __b) {
-  return __a & ~(vector unsigned char)__b;
-}
-
-static __inline__ vector bool char __ATTRS_o_ai vec_andc(vector bool char __a,
-                                                         vector bool char __b) {
-  return __a & ~__b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_andc(vector short __a,
-                                                     vector short __b) {
-  return __a & ~__b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_andc(vector bool short __a,
-                                                     vector short __b) {
-  return (vector short)__a & ~__b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_andc(vector short __a,
-                                                     vector bool short __b) {
-  return __a & ~(vector short)__b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_andc(vector unsigned short __a, vector unsigned short __b) {
-  return __a & ~__b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_andc(vector bool short __a, vector unsigned short __b) {
-  return (vector unsigned short)__a & ~__b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_andc(vector unsigned short __a, vector bool short __b) {
-  return __a & ~(vector unsigned short)__b;
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_andc(vector bool short __a, vector bool short __b) {
-  return __a & ~__b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_andc(vector int __a,
-                                                   vector int __b) {
-  return __a & ~__b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_andc(vector bool int __a,
-                                                   vector int __b) {
-  return (vector int)__a & ~__b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_andc(vector int __a,
-                                                   vector bool int __b) {
-  return __a & ~(vector int)__b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_andc(vector unsigned int __a, vector unsigned int __b) {
-  return __a & ~__b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_andc(vector bool int __a, vector unsigned int __b) {
-  return (vector unsigned int)__a & ~__b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_andc(vector unsigned int __a, vector bool int __b) {
-  return __a & ~(vector unsigned int)__b;
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_andc(vector bool int __a,
-                                                        vector bool int __b) {
-  return __a & ~__b;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_andc(vector float __a,
-                                                     vector float __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a & ~(vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_andc(vector bool int __a,
-                                                     vector float __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a & ~(vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_andc(vector float __a,
-                                                     vector bool int __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a & ~(vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai vec_andc(vector bool long long __a,
-                                                      vector double __b) {
-  vector unsigned long long __res =
-      (vector unsigned long long)__a & ~(vector unsigned long long)__b;
-  return (vector double)__res;
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_andc(vector double __a, vector bool long long __b) {
-  vector unsigned long long __res =
-      (vector unsigned long long)__a & ~(vector unsigned long long)__b;
-  return (vector double)__res;
-}
-
-static __inline__ vector double __ATTRS_o_ai vec_andc(vector double __a,
-                                                      vector double __b) {
-  vector unsigned long long __res =
-      (vector unsigned long long)__a & ~(vector unsigned long long)__b;
-  return (vector double)__res;
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_andc(vector signed long long __a, vector signed long long __b) {
-  return __a & ~__b;
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_andc(vector bool long long __a, vector signed long long __b) {
-  return (vector signed long long)__a & ~__b;
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_andc(vector signed long long __a, vector bool long long __b) {
-  return __a & ~(vector signed long long)__b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_andc(vector unsigned long long __a, vector unsigned long long __b) {
-  return __a & ~__b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_andc(vector bool long long __a, vector unsigned long long __b) {
-  return (vector unsigned long long)__a & ~__b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_andc(vector unsigned long long __a, vector bool long long __b) {
-  return __a & ~(vector unsigned long long)__b;
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_andc(vector bool long long __a, vector bool long long __b) {
-  return __a & ~__b;
-}
-#endif
-
-/* vec_vandc */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vandc(vector signed char __a, vector signed char __b) {
-  return __a & ~__b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vandc(vector bool char __a, vector signed char __b) {
-  return (vector signed char)__a & ~__b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vandc(vector signed char __a, vector bool char __b) {
-  return __a & ~(vector signed char)__b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vandc(vector unsigned char __a, vector unsigned char __b) {
-  return __a & ~__b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vandc(vector bool char __a, vector unsigned char __b) {
-  return (vector unsigned char)__a & ~__b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vandc(vector unsigned char __a, vector bool char __b) {
-  return __a & ~(vector unsigned char)__b;
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_vandc(vector bool char __a, vector bool char __b) {
-  return __a & ~__b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vandc(vector short __a,
-                                                      vector short __b) {
-  return __a & ~__b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vandc(vector bool short __a,
-                                                      vector short __b) {
-  return (vector short)__a & ~__b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vandc(vector short __a,
-                                                      vector bool short __b) {
-  return __a & ~(vector short)__b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vandc(vector unsigned short __a, vector unsigned short __b) {
-  return __a & ~__b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vandc(vector bool short __a, vector unsigned short __b) {
-  return (vector unsigned short)__a & ~__b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vandc(vector unsigned short __a, vector bool short __b) {
-  return __a & ~(vector unsigned short)__b;
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_vandc(vector bool short __a, vector bool short __b) {
-  return __a & ~__b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vandc(vector int __a,
-                                                    vector int __b) {
-  return __a & ~__b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vandc(vector bool int __a,
-                                                    vector int __b) {
-  return (vector int)__a & ~__b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vandc(vector int __a,
-                                                    vector bool int __b) {
-  return __a & ~(vector int)__b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vandc(vector unsigned int __a, vector unsigned int __b) {
-  return __a & ~__b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vandc(vector bool int __a, vector unsigned int __b) {
-  return (vector unsigned int)__a & ~__b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vandc(vector unsigned int __a, vector bool int __b) {
-  return __a & ~(vector unsigned int)__b;
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_vandc(vector bool int __a,
-                                                         vector bool int __b) {
-  return __a & ~__b;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vandc(vector float __a,
-                                                      vector float __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a & ~(vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vandc(vector bool int __a,
-                                                      vector float __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a & ~(vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vandc(vector float __a,
-                                                      vector bool int __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a & ~(vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-#ifdef __VSX__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_vandc(vector signed long long __a, vector signed long long __b) {
-  return __a & ~__b;
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_vandc(vector bool long long __a, vector signed long long __b) {
-  return (vector signed long long)__a & ~__b;
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_vandc(vector signed long long __a, vector bool long long __b) {
-  return __a & ~(vector signed long long)__b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_vandc(vector unsigned long long __a, vector unsigned long long __b) {
-  return __a & ~__b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_vandc(vector bool long long __a, vector unsigned long long __b) {
-  return (vector unsigned long long)__a & ~__b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_vandc(vector unsigned long long __a, vector bool long long __b) {
-  return __a & ~(vector unsigned long long)__b;
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_vandc(vector bool long long __a, vector bool long long __b) {
-  return __a & ~__b;
-}
-#endif
-
-/* vec_avg */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_avg(vector signed char __a, vector signed char __b) {
-  return __builtin_altivec_vavgsb(__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_avg(vector unsigned char __a, vector unsigned char __b) {
-  return __builtin_altivec_vavgub(__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_avg(vector short __a,
-                                                    vector short __b) {
-  return __builtin_altivec_vavgsh(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_avg(vector unsigned short __a, vector unsigned short __b) {
-  return __builtin_altivec_vavguh(__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_avg(vector int __a,
-                                                  vector int __b) {
-  return __builtin_altivec_vavgsw(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_avg(vector unsigned int __a, vector unsigned int __b) {
-  return __builtin_altivec_vavguw(__a, __b);
-}
-
-/* vec_vavgsb */
-
-static __inline__ vector signed char __attribute__((__always_inline__))
-vec_vavgsb(vector signed char __a, vector signed char __b) {
-  return __builtin_altivec_vavgsb(__a, __b);
-}
-
-/* vec_vavgub */
-
-static __inline__ vector unsigned char __attribute__((__always_inline__))
-vec_vavgub(vector unsigned char __a, vector unsigned char __b) {
-  return __builtin_altivec_vavgub(__a, __b);
-}
-
-/* vec_vavgsh */
-
-static __inline__ vector short __attribute__((__always_inline__))
-vec_vavgsh(vector short __a, vector short __b) {
-  return __builtin_altivec_vavgsh(__a, __b);
-}
-
-/* vec_vavguh */
-
-static __inline__ vector unsigned short __attribute__((__always_inline__))
-vec_vavguh(vector unsigned short __a, vector unsigned short __b) {
-  return __builtin_altivec_vavguh(__a, __b);
-}
-
-/* vec_vavgsw */
-
-static __inline__ vector int __attribute__((__always_inline__))
-vec_vavgsw(vector int __a, vector int __b) {
-  return __builtin_altivec_vavgsw(__a, __b);
-}
-
-/* vec_vavguw */
-
-static __inline__ vector unsigned int __attribute__((__always_inline__))
-vec_vavguw(vector unsigned int __a, vector unsigned int __b) {
-  return __builtin_altivec_vavguw(__a, __b);
-}
-
-/* vec_ceil */
-
-static __inline__ vector float __ATTRS_o_ai vec_ceil(vector float __a) {
-#ifdef __VSX__
-  return __builtin_vsx_xvrspip(__a);
-#else
-  return __builtin_altivec_vrfip(__a);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai vec_ceil(vector double __a) {
-  return __builtin_vsx_xvrdpip(__a);
-}
-#endif
-
-/* vec_roundp */
-static __inline__ vector float __ATTRS_o_ai vec_roundp(vector float __a) {
-  return vec_ceil(__a);
-}
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai vec_roundp(vector double __a) {
-  return vec_ceil(__a);
-}
-#endif
-
-/* vec_vrfip */
-
-static __inline__ vector float __attribute__((__always_inline__))
-vec_vrfip(vector float __a) {
-  return __builtin_altivec_vrfip(__a);
-}
-
-/* vec_cmpb */
-
-static __inline__ vector int __attribute__((__always_inline__))
-vec_cmpb(vector float __a, vector float __b) {
-  return __builtin_altivec_vcmpbfp(__a, __b);
-}
-
-/* vec_vcmpbfp */
-
-static __inline__ vector int __attribute__((__always_inline__))
-vec_vcmpbfp(vector float __a, vector float __b) {
-  return __builtin_altivec_vcmpbfp(__a, __b);
-}
-
-/* vec_cmpeq */
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_cmpeq(vector signed char __a, vector signed char __b) {
-  return (vector bool char)__builtin_altivec_vcmpequb((vector char)__a,
-                                                      (vector char)__b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_cmpeq(vector unsigned char __a, vector unsigned char __b) {
-  return (vector bool char)__builtin_altivec_vcmpequb((vector char)__a,
-                                                      (vector char)__b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_cmpeq(vector bool char __a, vector bool char __b) {
-  return (vector bool char)__builtin_altivec_vcmpequb((vector char)__a,
-                                                      (vector char)__b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai vec_cmpeq(vector short __a,
-                                                           vector short __b) {
-  return (vector bool short)__builtin_altivec_vcmpequh(__a, __b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_cmpeq(vector unsigned short __a, vector unsigned short __b) {
-  return (vector bool short)__builtin_altivec_vcmpequh((vector short)__a,
-                                                       (vector short)__b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_cmpeq(vector bool short __a, vector bool short __b) {
-  return (vector bool short)__builtin_altivec_vcmpequh((vector short)__a,
-                                                       (vector short)__b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_cmpeq(vector int __a,
-                                                         vector int __b) {
-  return (vector bool int)__builtin_altivec_vcmpequw(__a, __b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_cmpeq(vector unsigned int __a, vector unsigned int __b) {
-  return (vector bool int)__builtin_altivec_vcmpequw((vector int)__a,
-                                                     (vector int)__b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_cmpeq(vector bool int __a,
-                                                         vector bool int __b) {
-  return (vector bool int)__builtin_altivec_vcmpequw((vector int)__a,
-                                                     (vector int)__b);
-}
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmpeq(vector signed long long __a, vector signed long long __b) {
-  return (vector bool long long)__builtin_altivec_vcmpequd(__a, __b);
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmpeq(vector unsigned long long __a, vector unsigned long long __b) {
-  return (vector bool long long)__builtin_altivec_vcmpequd(
-      (vector long long)__a, (vector long long)__b);
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmpeq(vector bool long long __a, vector bool long long __b) {
-  return (vector bool long long)__builtin_altivec_vcmpequd(
-      (vector long long)__a, (vector long long)__b);
-}
-#elif defined(__VSX__)
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmpeq(vector signed long long __a, vector signed long long __b) {
-  vector bool int __wordcmp =
-      vec_cmpeq((vector signed int)__a, (vector signed int)__b);
-#ifdef __LITTLE_ENDIAN__
-  __wordcmp &= __builtin_shufflevector(__wordcmp, __wordcmp, 3, 0, 1, 2);
-  return (vector bool long long)__builtin_shufflevector(__wordcmp, __wordcmp, 1,
-                                                        1, 3, 3);
-#else
-  __wordcmp &= __builtin_shufflevector(__wordcmp, __wordcmp, 1, 2, 3, 0);
-  return (vector bool long long)__builtin_shufflevector(__wordcmp, __wordcmp, 0,
-                                                        0, 2, 2);
-#endif
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmpeq(vector unsigned long long __a, vector unsigned long long __b) {
-  return vec_cmpeq((vector signed long long)__a, (vector signed long long)__b);
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmpeq(vector bool long long __a, vector bool long long __b) {
-  return vec_cmpeq((vector signed long long)__a, (vector signed long long)__b);
-}
-#endif
-
-static __inline__ vector bool int __ATTRS_o_ai vec_cmpeq(vector float __a,
-                                                         vector float __b) {
-#ifdef __VSX__
-  return (vector bool int)__builtin_vsx_xvcmpeqsp(__a, __b);
-#else
-  return (vector bool int)__builtin_altivec_vcmpeqfp(__a, __b);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmpeq(vector double __a, vector double __b) {
-  return (vector bool long long)__builtin_vsx_xvcmpeqdp(__a, __b);
-}
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ vector bool __int128 __ATTRS_o_ai
-vec_cmpeq(vector signed __int128 __a, vector signed __int128 __b) {
-  return (vector bool __int128)__builtin_altivec_vcmpequq(
-      (vector bool __int128)__a, (vector bool __int128)__b);
-}
-
-static __inline__ vector bool __int128 __ATTRS_o_ai
-vec_cmpeq(vector unsigned __int128 __a, vector unsigned __int128 __b) {
-  return (vector bool __int128)__builtin_altivec_vcmpequq(
-      (vector bool __int128)__a, (vector bool __int128)__b);
-}
-#endif
-
-#ifdef __POWER9_VECTOR__
-/* vec_cmpne */
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_cmpne(vector bool char __a, vector bool char __b) {
-  return (vector bool char)__builtin_altivec_vcmpneb((vector char)__a,
-                                                     (vector char)__b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_cmpne(vector signed char __a, vector signed char __b) {
-  return (vector bool char)__builtin_altivec_vcmpneb((vector char)__a,
-                                                     (vector char)__b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_cmpne(vector unsigned char __a, vector unsigned char __b) {
-  return (vector bool char)__builtin_altivec_vcmpneb((vector char)__a,
-                                                     (vector char)__b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_cmpne(vector bool short __a, vector bool short __b) {
-  return (vector bool short)__builtin_altivec_vcmpneh((vector short)__a,
-                                                      (vector short)__b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_cmpne(vector signed short __a, vector signed short __b) {
-  return (vector bool short)__builtin_altivec_vcmpneh((vector short)__a,
-                                                      (vector short)__b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_cmpne(vector unsigned short __a, vector unsigned short __b) {
-  return (vector bool short)__builtin_altivec_vcmpneh((vector short)__a,
-                                                      (vector short)__b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_cmpne(vector bool int __a, vector bool int __b) {
-  return (vector bool int)__builtin_altivec_vcmpnew((vector int)__a,
-                                                    (vector int)__b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_cmpne(vector signed int __a, vector signed int __b) {
-  return (vector bool int)__builtin_altivec_vcmpnew((vector int)__a,
-                                                    (vector int)__b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_cmpne(vector unsigned int __a, vector unsigned int __b) {
-  return (vector bool int)__builtin_altivec_vcmpnew((vector int)__a,
-                                                    (vector int)__b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_cmpne(vector float __a, vector float __b) {
-  return (vector bool int)__builtin_altivec_vcmpnew((vector int)__a,
-                                                    (vector int)__b);
-}
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ vector bool __int128 __ATTRS_o_ai
-vec_cmpne(vector unsigned __int128 __a, vector unsigned __int128 __b) {
-  return (vector bool __int128) ~(__builtin_altivec_vcmpequq(
-      (vector bool __int128)__a, (vector bool __int128)__b));
-}
-
-static __inline__ vector bool __int128 __ATTRS_o_ai
-vec_cmpne(vector signed __int128 __a, vector signed __int128 __b) {
-  return (vector bool __int128) ~(__builtin_altivec_vcmpequq(
-      (vector bool __int128)__a, (vector bool __int128)__b));
-}
-#endif
-
-/* vec_cmpnez */
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_cmpnez(vector signed char __a, vector signed char __b) {
-  return (vector bool char)__builtin_altivec_vcmpnezb((vector char)__a,
-                                                      (vector char)__b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_cmpnez(vector unsigned char __a, vector unsigned char __b) {
-  return (vector bool char)__builtin_altivec_vcmpnezb((vector char)__a,
-                                                      (vector char)__b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_cmpnez(vector signed short __a, vector signed short __b) {
-  return (vector bool short)__builtin_altivec_vcmpnezh((vector short)__a,
-                                                       (vector short)__b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_cmpnez(vector unsigned short __a, vector unsigned short __b) {
-  return (vector bool short)__builtin_altivec_vcmpnezh((vector short)__a,
-                                                       (vector short)__b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_cmpnez(vector signed int __a, vector signed int __b) {
-  return (vector bool int)__builtin_altivec_vcmpnezw((vector int)__a,
-                                                     (vector int)__b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_cmpnez(vector unsigned int __a, vector unsigned int __b) {
-  return (vector bool int)__builtin_altivec_vcmpnezw((vector int)__a,
-                                                     (vector int)__b);
-}
-
-static __inline__ signed int __ATTRS_o_ai
-vec_cntlz_lsbb(vector signed char __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vctzlsbb(__a);
-#else
-  return __builtin_altivec_vclzlsbb(__a);
-#endif
-}
-
-static __inline__ signed int __ATTRS_o_ai
-vec_cntlz_lsbb(vector unsigned char __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vctzlsbb(__a);
-#else
-  return __builtin_altivec_vclzlsbb(__a);
-#endif
-}
-
-static __inline__ signed int __ATTRS_o_ai
-vec_cnttz_lsbb(vector signed char __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vclzlsbb(__a);
-#else
-  return __builtin_altivec_vctzlsbb(__a);
-#endif
-}
-
-static __inline__ signed int __ATTRS_o_ai
-vec_cnttz_lsbb(vector unsigned char __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vclzlsbb(__a);
-#else
-  return __builtin_altivec_vctzlsbb(__a);
-#endif
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_parity_lsbb(vector unsigned int __a) {
-  return __builtin_altivec_vprtybw(__a);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_parity_lsbb(vector signed int __a) {
-  return __builtin_altivec_vprtybw(__a);
-}
-
-#ifdef __SIZEOF_INT128__
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_parity_lsbb(vector unsigned __int128 __a) {
-  return __builtin_altivec_vprtybq(__a);
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_parity_lsbb(vector signed __int128 __a) {
-  return __builtin_altivec_vprtybq(__a);
-}
-#endif
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_parity_lsbb(vector unsigned long long __a) {
-  return __builtin_altivec_vprtybd(__a);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_parity_lsbb(vector signed long long __a) {
-  return __builtin_altivec_vprtybd(__a);
-}
-
-#else
-/* vec_cmpne */
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_cmpne(vector bool char __a, vector bool char __b) {
-  return ~(vec_cmpeq(__a, __b));
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_cmpne(vector signed char __a, vector signed char __b) {
-  return ~(vec_cmpeq(__a, __b));
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_cmpne(vector unsigned char __a, vector unsigned char __b) {
-  return ~(vec_cmpeq(__a, __b));
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_cmpne(vector bool short __a, vector bool short __b) {
-  return ~(vec_cmpeq(__a, __b));
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_cmpne(vector signed short __a, vector signed short __b) {
-  return ~(vec_cmpeq(__a, __b));
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_cmpne(vector unsigned short __a, vector unsigned short __b) {
-  return ~(vec_cmpeq(__a, __b));
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_cmpne(vector bool int __a, vector bool int __b) {
-  return ~(vec_cmpeq(__a, __b));
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_cmpne(vector signed int __a, vector signed int __b) {
-  return ~(vec_cmpeq(__a, __b));
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_cmpne(vector unsigned int __a, vector unsigned int __b) {
-  return ~(vec_cmpeq(__a, __b));
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_cmpne(vector float __a, vector float __b) {
-  return ~(vec_cmpeq(__a, __b));
-}
-#endif
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmpne(vector bool long long __a, vector bool long long __b) {
-  return (vector bool long long)
-    ~(__builtin_altivec_vcmpequd((vector long long)__a, (vector long long)__b));
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmpne(vector signed long long __a, vector signed long long __b) {
-  return (vector bool long long)
-    ~(__builtin_altivec_vcmpequd((vector long long)__a, (vector long long)__b));
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmpne(vector unsigned long long __a, vector unsigned long long __b) {
-  return (vector bool long long)
-    ~(__builtin_altivec_vcmpequd((vector long long)__a, (vector long long)__b));
-}
-#elif defined(__VSX__)
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmpne(vector bool long long __a, vector bool long long __b) {
-  return (vector bool long long)~(
-      vec_cmpeq((vector signed long long)__a, (vector signed long long)__b));
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmpne(vector signed long long __a, vector signed long long __b) {
-  return (vector bool long long)~(
-      vec_cmpeq((vector signed long long)__a, (vector signed long long)__b));
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmpne(vector unsigned long long __a, vector unsigned long long __b) {
-  return (vector bool long long)~(
-      vec_cmpeq((vector signed long long)__a, (vector signed long long)__b));
-}
-#endif
-
-#ifdef __VSX__
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmpne(vector double __a, vector double __b) {
-  return (vector bool long long)
-    ~(__builtin_altivec_vcmpequd((vector long long)__a, (vector long long)__b));
-}
-#endif
-
-/* vec_cmpgt */
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_cmpgt(vector signed char __a, vector signed char __b) {
-  return (vector bool char)__builtin_altivec_vcmpgtsb(__a, __b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_cmpgt(vector unsigned char __a, vector unsigned char __b) {
-  return (vector bool char)__builtin_altivec_vcmpgtub(__a, __b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai vec_cmpgt(vector short __a,
-                                                           vector short __b) {
-  return (vector bool short)__builtin_altivec_vcmpgtsh(__a, __b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_cmpgt(vector unsigned short __a, vector unsigned short __b) {
-  return (vector bool short)__builtin_altivec_vcmpgtuh(__a, __b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_cmpgt(vector int __a,
-                                                         vector int __b) {
-  return (vector bool int)__builtin_altivec_vcmpgtsw(__a, __b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_cmpgt(vector unsigned int __a, vector unsigned int __b) {
-  return (vector bool int)__builtin_altivec_vcmpgtuw(__a, __b);
-}
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmpgt(vector signed long long __a, vector signed long long __b) {
-  return (vector bool long long)__builtin_altivec_vcmpgtsd(__a, __b);
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmpgt(vector unsigned long long __a, vector unsigned long long __b) {
-  return (vector bool long long)__builtin_altivec_vcmpgtud(__a, __b);
-}
-#elif defined(__VSX__)
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmpgt(vector signed long long __a, vector signed long long __b) {
-  vector signed int __sgtw = (vector signed int)vec_cmpgt(
-      (vector signed int)__a, (vector signed int)__b);
-  vector unsigned int __ugtw = (vector unsigned int)vec_cmpgt(
-      (vector unsigned int)__a, (vector unsigned int)__b);
-  vector unsigned int __eqw = (vector unsigned int)vec_cmpeq(
-      (vector signed int)__a, (vector signed int)__b);
-#ifdef __LITTLE_ENDIAN__
-  __ugtw = __builtin_shufflevector(__ugtw, __ugtw, 3, 0, 1, 2) & __eqw;
-  __sgtw |= (vector signed int)__ugtw;
-  return (vector bool long long)__builtin_shufflevector(__sgtw, __sgtw, 1, 1, 3,
-                                                        3);
-#else
-  __ugtw = __builtin_shufflevector(__ugtw, __ugtw, 1, 2, 3, 0) & __eqw;
-  __sgtw |= (vector signed int)__ugtw;
-  return (vector bool long long)__builtin_shufflevector(__sgtw, __sgtw, 0, 0, 2,
-                                                        2);
-#endif
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmpgt(vector unsigned long long __a, vector unsigned long long __b) {
-  vector unsigned int __ugtw = (vector unsigned int)vec_cmpgt(
-      (vector unsigned int)__a, (vector unsigned int)__b);
-  vector unsigned int __eqw = (vector unsigned int)vec_cmpeq(
-      (vector signed int)__a, (vector signed int)__b);
-#ifdef __LITTLE_ENDIAN__
-  __eqw = __builtin_shufflevector(__ugtw, __ugtw, 3, 0, 1, 2) & __eqw;
-  __ugtw |= __eqw;
-  return (vector bool long long)__builtin_shufflevector(__ugtw, __ugtw, 1, 1, 3,
-                                                        3);
-#else
-  __eqw = __builtin_shufflevector(__ugtw, __ugtw, 1, 2, 3, 0) & __eqw;
-  __ugtw |= __eqw;
-  return (vector bool long long)__builtin_shufflevector(__ugtw, __ugtw, 0, 0, 2,
-                                                        2);
-#endif
-}
-#endif
-
-static __inline__ vector bool int __ATTRS_o_ai vec_cmpgt(vector float __a,
-                                                         vector float __b) {
-#ifdef __VSX__
-  return (vector bool int)__builtin_vsx_xvcmpgtsp(__a, __b);
-#else
-  return (vector bool int)__builtin_altivec_vcmpgtfp(__a, __b);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmpgt(vector double __a, vector double __b) {
-  return (vector bool long long)__builtin_vsx_xvcmpgtdp(__a, __b);
-}
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ vector bool __int128 __ATTRS_o_ai
-vec_cmpgt(vector signed __int128 __a, vector signed __int128 __b) {
-  return (vector bool __int128)__builtin_altivec_vcmpgtsq(
-      (vector bool __int128)__a, (vector bool __int128)__b);
-}
-
-static __inline__ vector bool __int128 __ATTRS_o_ai
-vec_cmpgt(vector unsigned __int128 __a, vector unsigned __int128 __b) {
-  return (vector bool __int128)__builtin_altivec_vcmpgtuq(
-      (vector bool __int128)__a, (vector bool __int128)__b);
-}
-#endif
-
-/* vec_cmpge */
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_cmpge(vector signed char __a, vector signed char __b) {
-  return ~(vec_cmpgt(__b, __a));
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_cmpge(vector unsigned char __a, vector unsigned char __b) {
-  return ~(vec_cmpgt(__b, __a));
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_cmpge(vector signed short __a, vector signed short __b) {
-  return ~(vec_cmpgt(__b, __a));
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_cmpge(vector unsigned short __a, vector unsigned short __b) {
-  return ~(vec_cmpgt(__b, __a));
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_cmpge(vector signed int __a, vector signed int __b) {
-  return ~(vec_cmpgt(__b, __a));
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_cmpge(vector unsigned int __a, vector unsigned int __b) {
-  return ~(vec_cmpgt(__b, __a));
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_cmpge(vector float __a,
-                                                         vector float __b) {
-#ifdef __VSX__
-  return (vector bool int)__builtin_vsx_xvcmpgesp(__a, __b);
-#else
-  return (vector bool int)__builtin_altivec_vcmpgefp(__a, __b);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmpge(vector double __a, vector double __b) {
-  return (vector bool long long)__builtin_vsx_xvcmpgedp(__a, __b);
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmpge(vector signed long long __a, vector signed long long __b) {
-  return ~(vec_cmpgt(__b, __a));
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmpge(vector unsigned long long __a, vector unsigned long long __b) {
-  return ~(vec_cmpgt(__b, __a));
-}
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ vector bool __int128 __ATTRS_o_ai
-vec_cmpge(vector signed __int128 __a, vector signed __int128 __b) {
-  return ~(vec_cmpgt(__b, __a));
-}
-
-static __inline__ vector bool __int128 __ATTRS_o_ai
-vec_cmpge(vector unsigned __int128 __a, vector unsigned __int128 __b) {
-  return ~(vec_cmpgt(__b, __a));
-}
-#endif
-
-/* vec_vcmpgefp */
-
-static __inline__ vector bool int __attribute__((__always_inline__))
-vec_vcmpgefp(vector float __a, vector float __b) {
-  return (vector bool int)__builtin_altivec_vcmpgefp(__a, __b);
-}
-
-/* vec_vcmpgtsb */
-
-static __inline__ vector bool char __attribute__((__always_inline__))
-vec_vcmpgtsb(vector signed char __a, vector signed char __b) {
-  return (vector bool char)__builtin_altivec_vcmpgtsb(__a, __b);
-}
-
-/* vec_vcmpgtub */
-
-static __inline__ vector bool char __attribute__((__always_inline__))
-vec_vcmpgtub(vector unsigned char __a, vector unsigned char __b) {
-  return (vector bool char)__builtin_altivec_vcmpgtub(__a, __b);
-}
-
-/* vec_vcmpgtsh */
-
-static __inline__ vector bool short __attribute__((__always_inline__))
-vec_vcmpgtsh(vector short __a, vector short __b) {
-  return (vector bool short)__builtin_altivec_vcmpgtsh(__a, __b);
-}
-
-/* vec_vcmpgtuh */
-
-static __inline__ vector bool short __attribute__((__always_inline__))
-vec_vcmpgtuh(vector unsigned short __a, vector unsigned short __b) {
-  return (vector bool short)__builtin_altivec_vcmpgtuh(__a, __b);
-}
-
-/* vec_vcmpgtsw */
-
-static __inline__ vector bool int __attribute__((__always_inline__))
-vec_vcmpgtsw(vector int __a, vector int __b) {
-  return (vector bool int)__builtin_altivec_vcmpgtsw(__a, __b);
-}
-
-/* vec_vcmpgtuw */
-
-static __inline__ vector bool int __attribute__((__always_inline__))
-vec_vcmpgtuw(vector unsigned int __a, vector unsigned int __b) {
-  return (vector bool int)__builtin_altivec_vcmpgtuw(__a, __b);
-}
-
-/* vec_vcmpgtfp */
-
-static __inline__ vector bool int __attribute__((__always_inline__))
-vec_vcmpgtfp(vector float __a, vector float __b) {
-  return (vector bool int)__builtin_altivec_vcmpgtfp(__a, __b);
-}
-
-/* vec_cmple */
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_cmple(vector signed char __a, vector signed char __b) {
-  return vec_cmpge(__b, __a);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_cmple(vector unsigned char __a, vector unsigned char __b) {
-  return vec_cmpge(__b, __a);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_cmple(vector signed short __a, vector signed short __b) {
-  return vec_cmpge(__b, __a);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_cmple(vector unsigned short __a, vector unsigned short __b) {
-  return vec_cmpge(__b, __a);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_cmple(vector signed int __a, vector signed int __b) {
-  return vec_cmpge(__b, __a);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_cmple(vector unsigned int __a, vector unsigned int __b) {
-  return vec_cmpge(__b, __a);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_cmple(vector float __a,
-                                                         vector float __b) {
-  return vec_cmpge(__b, __a);
-}
-
-#ifdef __VSX__
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmple(vector double __a, vector double __b) {
-  return vec_cmpge(__b, __a);
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmple(vector signed long long __a, vector signed long long __b) {
-  return vec_cmpge(__b, __a);
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmple(vector unsigned long long __a, vector unsigned long long __b) {
-  return vec_cmpge(__b, __a);
-}
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ vector bool __int128 __ATTRS_o_ai
-vec_cmple(vector signed __int128 __a, vector signed __int128 __b) {
-  return vec_cmpge(__b, __a);
-}
-
-static __inline__ vector bool __int128 __ATTRS_o_ai
-vec_cmple(vector unsigned __int128 __a, vector unsigned __int128 __b) {
-  return vec_cmpge(__b, __a);
-}
-#endif
-
-/* vec_cmplt */
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_cmplt(vector signed char __a, vector signed char __b) {
-  return vec_cmpgt(__b, __a);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_cmplt(vector unsigned char __a, vector unsigned char __b) {
-  return vec_cmpgt(__b, __a);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai vec_cmplt(vector short __a,
-                                                           vector short __b) {
-  return vec_cmpgt(__b, __a);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_cmplt(vector unsigned short __a, vector unsigned short __b) {
-  return vec_cmpgt(__b, __a);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_cmplt(vector int __a,
-                                                         vector int __b) {
-  return vec_cmpgt(__b, __a);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_cmplt(vector unsigned int __a, vector unsigned int __b) {
-  return vec_cmpgt(__b, __a);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_cmplt(vector float __a,
-                                                         vector float __b) {
-  return vec_cmpgt(__b, __a);
-}
-
-#ifdef __VSX__
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmplt(vector double __a, vector double __b) {
-  return vec_cmpgt(__b, __a);
-}
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ vector bool __int128 __ATTRS_o_ai
-vec_cmplt(vector signed __int128 __a, vector signed __int128 __b) {
-  return vec_cmpgt(__b, __a);
-}
-
-static __inline__ vector bool __int128 __ATTRS_o_ai
-vec_cmplt(vector unsigned __int128 __a, vector unsigned __int128 __b) {
-  return vec_cmpgt(__b, __a);
-}
-#endif
-
-#ifdef __VSX__
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmplt(vector signed long long __a, vector signed long long __b) {
-  return vec_cmpgt(__b, __a);
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_cmplt(vector unsigned long long __a, vector unsigned long long __b) {
-  return vec_cmpgt(__b, __a);
-}
-#endif
-
-#ifdef __POWER8_VECTOR__
-/* vec_popcnt */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_popcnt(vector signed char __a) {
-  return __builtin_altivec_vpopcntb(__a);
-}
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_popcnt(vector unsigned char __a) {
-  return __builtin_altivec_vpopcntb(__a);
-}
-static __inline__ vector signed short __ATTRS_o_ai
-vec_popcnt(vector signed short __a) {
-  return __builtin_altivec_vpopcnth(__a);
-}
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_popcnt(vector unsigned short __a) {
-  return __builtin_altivec_vpopcnth(__a);
-}
-static __inline__ vector signed int __ATTRS_o_ai
-vec_popcnt(vector signed int __a) {
-  return __builtin_altivec_vpopcntw(__a);
-}
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_popcnt(vector unsigned int __a) {
-  return __builtin_altivec_vpopcntw(__a);
-}
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_popcnt(vector signed long long __a) {
-  return __builtin_altivec_vpopcntd(__a);
-}
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_popcnt(vector unsigned long long __a) {
-  return __builtin_altivec_vpopcntd(__a);
-}
-
-#define vec_vclz vec_cntlz
-/* vec_cntlz */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_cntlz(vector signed char __a) {
-  return __builtin_altivec_vclzb(__a);
-}
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_cntlz(vector unsigned char __a) {
-  return __builtin_altivec_vclzb(__a);
-}
-static __inline__ vector signed short __ATTRS_o_ai
-vec_cntlz(vector signed short __a) {
-  return __builtin_altivec_vclzh(__a);
-}
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_cntlz(vector unsigned short __a) {
-  return __builtin_altivec_vclzh(__a);
-}
-static __inline__ vector signed int __ATTRS_o_ai
-vec_cntlz(vector signed int __a) {
-  return __builtin_altivec_vclzw(__a);
-}
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_cntlz(vector unsigned int __a) {
-  return __builtin_altivec_vclzw(__a);
-}
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_cntlz(vector signed long long __a) {
-  return __builtin_altivec_vclzd(__a);
-}
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_cntlz(vector unsigned long long __a) {
-  return __builtin_altivec_vclzd(__a);
-}
-#endif
-
-#ifdef __POWER9_VECTOR__
-
-/* vec_cnttz */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_cnttz(vector signed char __a) {
-  return __builtin_altivec_vctzb(__a);
-}
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_cnttz(vector unsigned char __a) {
-  return __builtin_altivec_vctzb(__a);
-}
-static __inline__ vector signed short __ATTRS_o_ai
-vec_cnttz(vector signed short __a) {
-  return __builtin_altivec_vctzh(__a);
-}
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_cnttz(vector unsigned short __a) {
-  return __builtin_altivec_vctzh(__a);
-}
-static __inline__ vector signed int __ATTRS_o_ai
-vec_cnttz(vector signed int __a) {
-  return __builtin_altivec_vctzw(__a);
-}
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_cnttz(vector unsigned int __a) {
-  return __builtin_altivec_vctzw(__a);
-}
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_cnttz(vector signed long long __a) {
-  return __builtin_altivec_vctzd(__a);
-}
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_cnttz(vector unsigned long long __a) {
-  return __builtin_altivec_vctzd(__a);
-}
-
-/* vec_first_match_index */
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_match_index(vector signed char __a, vector signed char __b) {
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-    vec_cnttz((vector unsigned long long)vec_cmpeq(__a, __b));
-#else
-    vec_cntlz((vector unsigned long long)vec_cmpeq(__a, __b));
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 3;
-  }
-  return __res[0] >> 3;
-}
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_match_index(vector unsigned char __a, vector unsigned char __b) {
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-    vec_cnttz((vector unsigned long long)vec_cmpeq(__a, __b));
-#else
-    vec_cntlz((vector unsigned long long)vec_cmpeq(__a, __b));
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 3;
-  }
-  return __res[0] >> 3;
-}
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_match_index(vector signed short __a, vector signed short __b) {
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-    vec_cnttz((vector unsigned long long)vec_cmpeq(__a, __b));
-#else
-    vec_cntlz((vector unsigned long long)vec_cmpeq(__a, __b));
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 4;
-  }
-  return __res[0] >> 4;
-}
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_match_index(vector unsigned short __a, vector unsigned short __b) {
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-    vec_cnttz((vector unsigned long long)vec_cmpeq(__a, __b));
-#else
-    vec_cntlz((vector unsigned long long)vec_cmpeq(__a, __b));
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 4;
-  }
-  return __res[0] >> 4;
-}
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_match_index(vector signed int __a, vector signed int __b) {
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-    vec_cnttz((vector unsigned long long)vec_cmpeq(__a, __b));
-#else
-    vec_cntlz((vector unsigned long long)vec_cmpeq(__a, __b));
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 5;
-  }
-  return __res[0] >> 5;
-}
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_match_index(vector unsigned int __a, vector unsigned int __b) {
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-    vec_cnttz((vector unsigned long long)vec_cmpeq(__a, __b));
-#else
-    vec_cntlz((vector unsigned long long)vec_cmpeq(__a, __b));
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 5;
-  }
-  return __res[0] >> 5;
-}
-
-/* vec_first_match_or_eos_index */
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_match_or_eos_index(vector signed char __a, vector signed char __b) {
-  /* Compare the result of the comparison of two vectors with either and OR the
-     result. Either the elements are equal or one will equal the comparison
-     result if either is zero.
-  */
-  vector bool char __tmp1 = vec_cmpeq(__a, __b);
-  vector bool char __tmp2 = __tmp1 |
-                            vec_cmpeq((vector signed char)__tmp1, __a) |
-                            vec_cmpeq((vector signed char)__tmp1, __b);
-
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-      vec_cnttz((vector unsigned long long)__tmp2);
-#else
-      vec_cntlz((vector unsigned long long)__tmp2);
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 3;
-  }
-  return __res[0] >> 3;
-}
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_match_or_eos_index(vector unsigned char __a,
-                             vector unsigned char __b) {
-  vector bool char __tmp1 = vec_cmpeq(__a, __b);
-  vector bool char __tmp2 = __tmp1 |
-                            vec_cmpeq((vector unsigned char)__tmp1, __a) |
-                            vec_cmpeq((vector unsigned char)__tmp1, __b);
-
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-      vec_cnttz((vector unsigned long long)__tmp2);
-#else
-      vec_cntlz((vector unsigned long long)__tmp2);
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 3;
-  }
-  return __res[0] >> 3;
-}
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_match_or_eos_index(vector signed short __a, vector signed short __b) {
-  vector bool short __tmp1 = vec_cmpeq(__a, __b);
-  vector bool short __tmp2 = __tmp1 |
-                             vec_cmpeq((vector signed short)__tmp1, __a) |
-                             vec_cmpeq((vector signed short)__tmp1, __b);
-
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-      vec_cnttz((vector unsigned long long)__tmp2);
-#else
-      vec_cntlz((vector unsigned long long)__tmp2);
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 4;
-  }
-  return __res[0] >> 4;
-}
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_match_or_eos_index(vector unsigned short __a,
-                             vector unsigned short __b) {
-  vector bool short __tmp1 = vec_cmpeq(__a, __b);
-  vector bool short __tmp2 = __tmp1 |
-                             vec_cmpeq((vector unsigned short)__tmp1, __a) |
-                             vec_cmpeq((vector unsigned short)__tmp1, __b);
-
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-      vec_cnttz((vector unsigned long long)__tmp2);
-#else
-      vec_cntlz((vector unsigned long long)__tmp2);
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 4;
-  }
-  return __res[0] >> 4;
-}
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_match_or_eos_index(vector signed int __a, vector signed int __b) {
-  vector bool int __tmp1 = vec_cmpeq(__a, __b);
-  vector bool int __tmp2 = __tmp1 | vec_cmpeq((vector signed int)__tmp1, __a) |
-                           vec_cmpeq((vector signed int)__tmp1, __b);
-
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-      vec_cnttz((vector unsigned long long)__tmp2);
-#else
-      vec_cntlz((vector unsigned long long)__tmp2);
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 5;
-  }
-  return __res[0] >> 5;
-}
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_match_or_eos_index(vector unsigned int __a, vector unsigned int __b) {
-  vector bool int __tmp1 = vec_cmpeq(__a, __b);
-  vector bool int __tmp2 = __tmp1 |
-                           vec_cmpeq((vector unsigned int)__tmp1, __a) |
-                           vec_cmpeq((vector unsigned int)__tmp1, __b);
-
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-    vec_cnttz((vector unsigned long long)__tmp2);
-#else
-    vec_cntlz((vector unsigned long long)__tmp2);
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 5;
-  }
-  return __res[0] >> 5;
-}
-
-/* vec_first_mismatch_index */
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_mismatch_index(vector signed char __a, vector signed char __b) {
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-    vec_cnttz((vector unsigned long long)vec_cmpne(__a, __b));
-#else
-    vec_cntlz((vector unsigned long long)vec_cmpne(__a, __b));
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 3;
-  }
-  return __res[0] >> 3;
-}
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_mismatch_index(vector unsigned char __a, vector unsigned char __b) {
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-    vec_cnttz((vector unsigned long long)vec_cmpne(__a, __b));
-#else
-    vec_cntlz((vector unsigned long long)vec_cmpne(__a, __b));
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 3;
-  }
-  return __res[0] >> 3;
-}
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_mismatch_index(vector signed short __a, vector signed short __b) {
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-    vec_cnttz((vector unsigned long long)vec_cmpne(__a, __b));
-#else
-    vec_cntlz((vector unsigned long long)vec_cmpne(__a, __b));
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 4;
-  }
-  return __res[0] >> 4;
-}
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_mismatch_index(vector unsigned short __a, vector unsigned short __b) {
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-    vec_cnttz((vector unsigned long long)vec_cmpne(__a, __b));
-#else
-    vec_cntlz((vector unsigned long long)vec_cmpne(__a, __b));
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 4;
-  }
-  return __res[0] >> 4;
-}
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_mismatch_index(vector signed int __a, vector signed int __b) {
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-    vec_cnttz((vector unsigned long long)vec_cmpne(__a, __b));
-#else
-    vec_cntlz((vector unsigned long long)vec_cmpne(__a, __b));
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 5;
-  }
-  return __res[0] >> 5;
-}
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_mismatch_index(vector unsigned int __a, vector unsigned int __b) {
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-    vec_cnttz((vector unsigned long long)vec_cmpne(__a, __b));
-#else
-    vec_cntlz((vector unsigned long long)vec_cmpne(__a, __b));
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 5;
-  }
-  return __res[0] >> 5;
-}
-
-/* vec_first_mismatch_or_eos_index */
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_mismatch_or_eos_index(vector signed char __a,
-                                vector signed char __b) {
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-    vec_cnttz((vector unsigned long long)vec_cmpnez(__a, __b));
-#else
-    vec_cntlz((vector unsigned long long)vec_cmpnez(__a, __b));
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 3;
-  }
-  return __res[0] >> 3;
-}
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_mismatch_or_eos_index(vector unsigned char __a,
-                                vector unsigned char __b) {
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-    vec_cnttz((vector unsigned long long)vec_cmpnez(__a, __b));
-#else
-    vec_cntlz((vector unsigned long long)vec_cmpnez(__a, __b));
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 3;
-  }
-  return __res[0] >> 3;
-}
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_mismatch_or_eos_index(vector signed short __a,
-                                vector signed short __b) {
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-    vec_cnttz((vector unsigned long long)vec_cmpnez(__a, __b));
-#else
-    vec_cntlz((vector unsigned long long)vec_cmpnez(__a, __b));
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 4;
-  }
-  return __res[0] >> 4;
-}
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_mismatch_or_eos_index(vector unsigned short __a,
-                                vector unsigned short __b) {
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-    vec_cnttz((vector unsigned long long)vec_cmpnez(__a, __b));
-#else
-    vec_cntlz((vector unsigned long long)vec_cmpnez(__a, __b));
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 4;
-  }
-  return __res[0] >> 4;
-}
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_mismatch_or_eos_index(vector signed int __a, vector signed int __b) {
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-    vec_cnttz((vector unsigned long long)vec_cmpnez(__a, __b));
-#else
-    vec_cntlz((vector unsigned long long)vec_cmpnez(__a, __b));
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 5;
-  }
-  return __res[0] >> 5;
-}
-
-static __inline__ unsigned __ATTRS_o_ai
-vec_first_mismatch_or_eos_index(vector unsigned int __a,
-                                vector unsigned int __b) {
-  vector unsigned long long __res =
-#ifdef __LITTLE_ENDIAN__
-    vec_cnttz((vector unsigned long long)vec_cmpnez(__a, __b));
-#else
-    vec_cntlz((vector unsigned long long)vec_cmpnez(__a, __b));
-#endif
-  if (__res[0] == 64) {
-    return (__res[1] + 64) >> 5;
-  }
-  return __res[0] >> 5;
-}
-
-static __inline__ vector double  __ATTRS_o_ai
-vec_insert_exp(vector double __a, vector unsigned long long __b) {
-  return __builtin_vsx_xviexpdp((vector unsigned long long)__a,__b);
-}
-
-static __inline__ vector double  __ATTRS_o_ai
-vec_insert_exp(vector unsigned long long __a, vector unsigned long long __b) {
-  return __builtin_vsx_xviexpdp(__a,__b);
-}
-
-static __inline__ vector float  __ATTRS_o_ai
-vec_insert_exp(vector float __a, vector unsigned int __b) {
-  return __builtin_vsx_xviexpsp((vector unsigned int)__a,__b);
-}
-
-static __inline__ vector float  __ATTRS_o_ai
-vec_insert_exp(vector unsigned int __a, vector unsigned int __b) {
-  return __builtin_vsx_xviexpsp(__a,__b);
-}
-
-#if defined(__powerpc64__)
-static __inline__ vector signed char __ATTRS_o_ai vec_xl_len(const signed char *__a,
-                                                             size_t __b) {
-  return (vector signed char)__builtin_vsx_lxvl(__a, (__b << 56));
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_xl_len(const unsigned char *__a, size_t __b) {
-  return (vector unsigned char)__builtin_vsx_lxvl(__a, (__b << 56));
-}
-
-static __inline__ vector signed short __ATTRS_o_ai vec_xl_len(const signed short *__a,
-                                                              size_t __b) {
-  return (vector signed short)__builtin_vsx_lxvl(__a, (__b << 56));
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_xl_len(const unsigned short *__a, size_t __b) {
-  return (vector unsigned short)__builtin_vsx_lxvl(__a, (__b << 56));
-}
-
-static __inline__ vector signed int __ATTRS_o_ai vec_xl_len(const signed int *__a,
-                                                            size_t __b) {
-  return (vector signed int)__builtin_vsx_lxvl(__a, (__b << 56));
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai vec_xl_len(const unsigned int *__a,
-                                                              size_t __b) {
-  return (vector unsigned int)__builtin_vsx_lxvl(__a, (__b << 56));
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_xl_len(const float *__a, size_t __b) {
-  return (vector float)__builtin_vsx_lxvl(__a, (__b << 56));
-}
-
-#ifdef __SIZEOF_INT128__
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_xl_len(const signed __int128 *__a, size_t __b) {
-  return (vector signed __int128)__builtin_vsx_lxvl(__a, (__b << 56));
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_xl_len(const unsigned __int128 *__a, size_t __b) {
-  return (vector unsigned __int128)__builtin_vsx_lxvl(__a, (__b << 56));
-}
-#endif
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_xl_len(const signed long long *__a, size_t __b) {
-  return (vector signed long long)__builtin_vsx_lxvl(__a, (__b << 56));
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_xl_len(const unsigned long long *__a, size_t __b) {
-  return (vector unsigned long long)__builtin_vsx_lxvl(__a, (__b << 56));
-}
-
-static __inline__ vector double __ATTRS_o_ai vec_xl_len(const double *__a,
-                                                        size_t __b) {
-  return (vector double)__builtin_vsx_lxvl(__a, (__b << 56));
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_xl_len_r(const unsigned char *__a, size_t __b) {
-  vector unsigned char __res =
-      (vector unsigned char)__builtin_vsx_lxvll(__a, (__b << 56));
-  vector unsigned char __mask =
-      (vector unsigned char)__builtin_altivec_lvsr(16 - __b, (int *)NULL);
-  return (vector unsigned char)__builtin_altivec_vperm_4si(
-      (vector int)__res, (vector int)__res, __mask);
-}
-
-// vec_xst_len
-static __inline__ void __ATTRS_o_ai vec_xst_len(vector unsigned char __a,
-                                                unsigned char *__b,
-                                                size_t __c) {
-  return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56));
-}
-
-static __inline__ void __ATTRS_o_ai vec_xst_len(vector signed char __a,
-                                                signed char *__b, size_t __c) {
-  return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56));
-}
-
-static __inline__ void __ATTRS_o_ai vec_xst_len(vector signed short __a,
-                                                signed short *__b, size_t __c) {
-  return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56));
-}
-
-static __inline__ void __ATTRS_o_ai vec_xst_len(vector unsigned short __a,
-                                                unsigned short *__b,
-                                                size_t __c) {
-  return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56));
-}
-
-static __inline__ void __ATTRS_o_ai vec_xst_len(vector signed int __a,
-                                                signed int *__b, size_t __c) {
-  return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56));
-}
-
-static __inline__ void __ATTRS_o_ai vec_xst_len(vector unsigned int __a,
-                                                unsigned int *__b, size_t __c) {
-  return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56));
-}
-
-static __inline__ void __ATTRS_o_ai vec_xst_len(vector float __a, float *__b,
-                                                size_t __c) {
-  return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56));
-}
-
-#ifdef __SIZEOF_INT128__
-static __inline__ void __ATTRS_o_ai vec_xst_len(vector signed __int128 __a,
-                                                signed __int128 *__b,
-                                                size_t __c) {
-  return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56));
-}
-
-static __inline__ void __ATTRS_o_ai vec_xst_len(vector unsigned __int128 __a,
-                                                unsigned __int128 *__b,
-                                                size_t __c) {
-  return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56));
-}
-#endif
-
-static __inline__ void __ATTRS_o_ai vec_xst_len(vector signed long long __a,
-                                                signed long long *__b,
-                                                size_t __c) {
-  return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56));
-}
-
-static __inline__ void __ATTRS_o_ai vec_xst_len(vector unsigned long long __a,
-                                                unsigned long long *__b,
-                                                size_t __c) {
-  return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56));
-}
-
-static __inline__ void __ATTRS_o_ai vec_xst_len(vector double __a, double *__b,
-                                                size_t __c) {
-  return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56));
-}
-
-static __inline__ void __ATTRS_o_ai vec_xst_len_r(vector unsigned char __a,
-                                                  unsigned char *__b,
-                                                  size_t __c) {
-  vector unsigned char __mask =
-      (vector unsigned char)__builtin_altivec_lvsl(16 - __c, (int *)NULL);
-  vector unsigned char __res =
-      __builtin_altivec_vperm_4si((vector int)__a, (vector int)__a, __mask);
-  return __builtin_vsx_stxvll((vector int)__res, __b, (__c << 56));
-}
-#endif
-#endif
-
-#if defined(__POWER9_VECTOR__) && defined(__powerpc64__)
-#define __vec_ldrmb(PTR, CNT) vec_xl_len_r((const unsigned char *)(PTR), (CNT))
-#define __vec_strmb(PTR, CNT, VAL)                                             \
-  vec_xst_len_r((VAL), (unsigned char *)(PTR), (CNT))
-#else
-#define __vec_ldrmb __builtin_vsx_ldrmb
-#define __vec_strmb __builtin_vsx_strmb
-#endif
-
-/* vec_cpsgn */
-
-#ifdef __VSX__
-static __inline__ vector float __ATTRS_o_ai vec_cpsgn(vector float __a,
-                                                      vector float __b) {
-  return __builtin_vsx_xvcpsgnsp(__b, __a);
-}
-
-static __inline__ vector double __ATTRS_o_ai vec_cpsgn(vector double __a,
-                                                       vector double __b) {
-  return __builtin_vsx_xvcpsgndp(__b, __a);
-}
-#endif
-
-/* vec_ctf */
-
-#ifdef __VSX__
-// There are some functions that have different signatures with the XL compiler
-// from those in Clang/GCC and documented in the PVIPR. This macro ensures that
-// the XL-compatible signatures are used for those functions.
-#ifdef __XL_COMPAT_ALTIVEC__
-#define vec_ctf(__a, __b)                                                      \
-  _Generic((__a), vector int                                                   \
-           : (vector float)__builtin_altivec_vcfsx((vector int)(__a), (__b)),  \
-             vector unsigned int                                               \
-           : (vector float)__builtin_altivec_vcfux((vector unsigned int)(__a), \
-                                                   (__b)),                     \
-             vector unsigned long long                                         \
-           : (__builtin_vsx_xvcvuxdsp((vector unsigned long long)(__a)) *      \
-              (vector float)(vector unsigned)((0x7f - (__b)) << 23)),          \
-             vector signed long long                                           \
-           : (__builtin_vsx_xvcvsxdsp((vector signed long long)(__a)) *        \
-              (vector float)(vector unsigned)((0x7f - (__b)) << 23)))
-#else // __XL_COMPAT_ALTIVEC__
-#define vec_ctf(__a, __b)                                                      \
-  _Generic((__a), vector int                                                   \
-           : (vector float)__builtin_altivec_vcfsx((vector int)(__a), (__b)),  \
-             vector unsigned int                                               \
-           : (vector float)__builtin_altivec_vcfux((vector unsigned int)(__a), \
-                                                   (__b)),                     \
-             vector unsigned long long                                         \
-           : (__builtin_convertvector((vector unsigned long long)(__a),        \
-                                      vector double) *                         \
-              (vector double)(vector unsigned long long)((0x3ffULL - (__b))    \
-                                                         << 52)),              \
-             vector signed long long                                           \
-           : (__builtin_convertvector((vector signed long long)(__a),          \
-                                      vector double) *                         \
-              (vector double)(vector unsigned long long)((0x3ffULL - (__b))    \
-                                                         << 52)))
-#endif // __XL_COMPAT_ALTIVEC__
-#else
-#define vec_ctf(__a, __b)                                                      \
-  _Generic((__a), vector int                                                   \
-           : (vector float)__builtin_altivec_vcfsx((vector int)(__a), (__b)),  \
-             vector unsigned int                                               \
-           : (vector float)__builtin_altivec_vcfux((vector unsigned int)(__a), \
-                                                   (__b)))
-#endif
-
-/* vec_ctd */
-#ifdef __VSX__
-#define vec_ctd(__a, __b)                                                      \
-  _Generic((__a), vector signed int                                            \
-           : (vec_doublee((vector signed int)(__a)) *                          \
-              (vector double)(vector unsigned long long)((0x3ffULL - (__b))    \
-                                                         << 52)),              \
-             vector unsigned int                                               \
-           : (vec_doublee((vector unsigned int)(__a)) *                        \
-              (vector double)(vector unsigned long long)((0x3ffULL - (__b))    \
-                                                         << 52)),              \
-             vector unsigned long long                                         \
-           : (__builtin_convertvector((vector unsigned long long)(__a),        \
-                                      vector double) *                         \
-              (vector double)(vector unsigned long long)((0x3ffULL - (__b))    \
-                                                         << 52)),              \
-             vector signed long long                                           \
-           : (__builtin_convertvector((vector signed long long)(__a),          \
-                                      vector double) *                         \
-              (vector double)(vector unsigned long long)((0x3ffULL - (__b))    \
-                                                         << 52)))
-#endif // __VSX__
-
-/* vec_vcfsx */
-
-#define vec_vcfux __builtin_altivec_vcfux
-/* vec_vcfux */
-
-#define vec_vcfsx(__a, __b) __builtin_altivec_vcfsx((vector int)(__a), (__b))
-
-/* vec_cts */
-
-#ifdef __VSX__
-#ifdef __XL_COMPAT_ALTIVEC__
-#define vec_cts(__a, __b)                                                      \
-  _Generic((__a), vector float                                                 \
-           : __builtin_altivec_vctsxs((vector float)(__a), (__b)),             \
-             vector double                                                     \
-           : __extension__({                                                   \
-             vector double __ret =                                             \
-                 (vector double)(__a) *                                        \
-                 (vector double)(vector unsigned long long)((0x3ffULL + (__b)) \
-                                                            << 52);            \
-             __builtin_vsx_xvcvdpsxws(__ret);                                  \
-           }))
-#else // __XL_COMPAT_ALTIVEC__
-#define vec_cts(__a, __b)                                                      \
-  _Generic((__a), vector float                                                 \
-           : __builtin_altivec_vctsxs((vector float)(__a), (__b)),             \
-             vector double                                                     \
-           : __extension__({                                                   \
-             vector double __ret =                                             \
-                 (vector double)(__a) *                                        \
-                 (vector double)(vector unsigned long long)((0x3ffULL + (__b)) \
-                                                            << 52);            \
-             __builtin_convertvector(__ret, vector signed long long);          \
-           }))
-#endif // __XL_COMPAT_ALTIVEC__
-#else
-#define vec_cts __builtin_altivec_vctsxs
-#endif
-
-/* vec_vctsxs */
-
-#define vec_vctsxs __builtin_altivec_vctsxs
-
-/* vec_ctu */
-
-#ifdef __VSX__
-#ifdef __XL_COMPAT_ALTIVEC__
-#define vec_ctu(__a, __b)                                                      \
-  _Generic((__a), vector float                                                 \
-           : __builtin_altivec_vctuxs((vector float)(__a), (__b)),             \
-             vector double                                                     \
-           : __extension__({                                                   \
-             vector double __ret =                                             \
-                 (vector double)(__a) *                                        \
-                 (vector double)(vector unsigned long long)((0x3ffULL + __b)   \
-                                                            << 52);            \
-             __builtin_vsx_xvcvdpuxws(__ret);                                  \
-           }))
-#else // __XL_COMPAT_ALTIVEC__
-#define vec_ctu(__a, __b)                                                      \
-  _Generic((__a), vector float                                                 \
-           : __builtin_altivec_vctuxs((vector float)(__a), (__b)),             \
-             vector double                                                     \
-           : __extension__({                                                   \
-             vector double __ret =                                             \
-                 (vector double)(__a) *                                        \
-                 (vector double)(vector unsigned long long)((0x3ffULL + __b)   \
-                                                            << 52);            \
-             __builtin_convertvector(__ret, vector unsigned long long);        \
-           }))
-#endif // __XL_COMPAT_ALTIVEC__
-#else
-#define vec_ctu __builtin_altivec_vctuxs
-#endif
-
-#ifdef __LITTLE_ENDIAN__
-/* vec_ctsl */
-
-#ifdef __VSX__
-#define vec_ctsl(__a, __b)                                                     \
-  _Generic((__a), vector float                                                 \
-           : __extension__({                                                   \
-               vector float __ret =                                            \
-                   (vector float)(__a) *                                       \
-                   (vector float)(vector unsigned)((0x7f + (__b)) << 23);      \
-               __builtin_vsx_xvcvspsxds(                                       \
-                   __builtin_vsx_xxsldwi(__ret, __ret, 1));                    \
-             }),                                                               \
-             vector double                                                     \
-           : __extension__({                                                   \
-             vector double __ret =                                             \
-                 (vector double)(__a) *                                        \
-                 (vector double)(vector unsigned long long)((0x3ffULL + __b)   \
-                                                            << 52);            \
-             __builtin_convertvector(__ret, vector signed long long);          \
-           }))
-
-/* vec_ctul */
-
-#define vec_ctul(__a, __b)                                                     \
-  _Generic((__a), vector float                                                 \
-           : __extension__({                                                   \
-               vector float __ret =                                            \
-                   (vector float)(__a) *                                       \
-                   (vector float)(vector unsigned)((0x7f + (__b)) << 23);      \
-               __builtin_vsx_xvcvspuxds(                                       \
-                   __builtin_vsx_xxsldwi(__ret, __ret, 1));                    \
-             }),                                                               \
-             vector double                                                     \
-           : __extension__({                                                   \
-             vector double __ret =                                             \
-                 (vector double)(__a) *                                        \
-                 (vector double)(vector unsigned long long)((0x3ffULL + __b)   \
-                                                            << 52);            \
-             __builtin_convertvector(__ret, vector unsigned long long);        \
-           }))
-#endif
-#else // __LITTLE_ENDIAN__
-/* vec_ctsl */
-
-#ifdef __VSX__
-#define vec_ctsl(__a, __b)                                                     \
-  _Generic((__a), vector float                                                 \
-           : __extension__({                                                   \
-               vector float __ret =                                            \
-                   (vector float)(__a) *                                       \
-                   (vector float)(vector unsigned)((0x7f + (__b)) << 23);      \
-               __builtin_vsx_xvcvspsxds(__ret);                                \
-             }),                                                               \
-             vector double                                                     \
-           : __extension__({                                                   \
-             vector double __ret =                                             \
-                 (vector double)(__a) *                                        \
-                 (vector double)(vector unsigned long long)((0x3ffULL + __b)   \
-                                                            << 52);            \
-             __builtin_convertvector(__ret, vector signed long long);          \
-           }))
-
-/* vec_ctul */
-
-#define vec_ctul(__a, __b)                                                     \
-  _Generic((__a), vector float                                                 \
-           : __extension__({                                                   \
-               vector float __ret =                                            \
-                   (vector float)(__a) *                                       \
-                   (vector float)(vector unsigned)((0x7f + (__b)) << 23);      \
-               __builtin_vsx_xvcvspuxds(__ret);                                \
-             }),                                                               \
-             vector double                                                     \
-           : __extension__({                                                   \
-             vector double __ret =                                             \
-                 (vector double)(__a) *                                        \
-                 (vector double)(vector unsigned long long)((0x3ffULL + __b)   \
-                                                            << 52);            \
-             __builtin_convertvector(__ret, vector unsigned long long);        \
-           }))
-#endif
-#endif // __LITTLE_ENDIAN__
-
-/* vec_vctuxs */
-
-#define vec_vctuxs __builtin_altivec_vctuxs
-
-/* vec_signext */
-
-#ifdef __POWER9_VECTOR__
-static __inline__ vector signed int __ATTRS_o_ai
-vec_signexti(vector signed char __a) {
-  return __builtin_altivec_vextsb2w(__a);
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_signexti(vector signed short __a) {
-  return __builtin_altivec_vextsh2w(__a);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_signextll(vector signed char __a) {
-  return __builtin_altivec_vextsb2d(__a);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_signextll(vector signed short __a) {
-  return __builtin_altivec_vextsh2d(__a);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_signextll(vector signed int __a) {
-  return __builtin_altivec_vextsw2d(__a);
-}
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_signextq(vector signed long long __a) {
-  return __builtin_altivec_vextsd2q(__a);
-}
-#endif
-
-/* vec_signed */
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_sld(vector signed int, vector signed int, unsigned const int __c);
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_signed(vector float __a) {
-  return __builtin_convertvector(__a, vector signed int);
-}
-
-#ifdef __VSX__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_signed(vector double __a) {
-  return __builtin_convertvector(__a, vector signed long long);
-}
-
-static __inline__ vector signed int __attribute__((__always_inline__))
-vec_signed2(vector double __a, vector double __b) {
-  return (vector signed int) { __a[0], __a[1], __b[0], __b[1] };
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_signede(vector double __a) {
-#ifdef __LITTLE_ENDIAN__
-  vector signed int __ret = __builtin_vsx_xvcvdpsxws(__a);
-  return vec_sld(__ret, __ret, 12);
-#else
-  return __builtin_vsx_xvcvdpsxws(__a);
-#endif
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_signedo(vector double __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_vsx_xvcvdpsxws(__a);
-#else
-  vector signed int __ret = __builtin_vsx_xvcvdpsxws(__a);
-  return vec_sld(__ret, __ret, 12);
-#endif
-}
-#endif
-
-/* vec_unsigned */
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_sld(vector unsigned int, vector unsigned int, unsigned const int __c);
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_unsigned(vector float __a) {
-  return __builtin_convertvector(__a, vector unsigned int);
-}
-
-#ifdef __VSX__
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_unsigned(vector double __a) {
-  return __builtin_convertvector(__a, vector unsigned long long);
-}
-
-static __inline__ vector unsigned int __attribute__((__always_inline__))
-vec_unsigned2(vector double __a, vector double __b) {
-  return (vector unsigned int) { __a[0], __a[1], __b[0], __b[1] };
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_unsignede(vector double __a) {
-#ifdef __LITTLE_ENDIAN__
-  vector unsigned int __ret = __builtin_vsx_xvcvdpuxws(__a);
-  return vec_sld(__ret, __ret, 12);
-#else
-  return __builtin_vsx_xvcvdpuxws(__a);
-#endif
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_unsignedo(vector double __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_vsx_xvcvdpuxws(__a);
-#else
-  vector unsigned int __ret = __builtin_vsx_xvcvdpuxws(__a);
-  return vec_sld(__ret, __ret, 12);
-#endif
-}
-#endif
-
-/* vec_float */
-
-static __inline__ vector float __ATTRS_o_ai
-vec_sld(vector float, vector float, unsigned const int __c);
-
-static __inline__ vector float __ATTRS_o_ai
-vec_float(vector signed int __a) {
-  return __builtin_convertvector(__a, vector float);
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_float(vector unsigned int __a) {
-  return __builtin_convertvector(__a, vector float);
-}
-
-#ifdef __VSX__
-static __inline__ vector float __ATTRS_o_ai
-vec_float2(vector signed long long __a, vector signed long long __b) {
-  return (vector float) { __a[0], __a[1], __b[0], __b[1] };
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_float2(vector unsigned long long __a, vector unsigned long long __b) {
-  return (vector float) { __a[0], __a[1], __b[0], __b[1] };
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_float2(vector double __a, vector double __b) {
-  return (vector float) { __a[0], __a[1], __b[0], __b[1] };
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_floate(vector signed long long __a) {
-#ifdef __LITTLE_ENDIAN__
-  vector float __ret = __builtin_vsx_xvcvsxdsp(__a);
-  return vec_sld(__ret, __ret, 12);
-#else
-  return __builtin_vsx_xvcvsxdsp(__a);
-#endif
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_floate(vector unsigned long long __a) {
-#ifdef __LITTLE_ENDIAN__
-  vector float __ret = __builtin_vsx_xvcvuxdsp(__a);
-  return vec_sld(__ret, __ret, 12);
-#else
-  return __builtin_vsx_xvcvuxdsp(__a);
-#endif
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_floate(vector double __a) {
-#ifdef __LITTLE_ENDIAN__
-  vector float __ret = __builtin_vsx_xvcvdpsp(__a);
-  return vec_sld(__ret, __ret, 12);
-#else
-  return __builtin_vsx_xvcvdpsp(__a);
-#endif
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_floato(vector signed long long __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_vsx_xvcvsxdsp(__a);
-#else
-  vector float __ret = __builtin_vsx_xvcvsxdsp(__a);
-  return vec_sld(__ret, __ret, 12);
-#endif
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_floato(vector unsigned long long __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_vsx_xvcvuxdsp(__a);
-#else
-  vector float __ret = __builtin_vsx_xvcvuxdsp(__a);
-  return vec_sld(__ret, __ret, 12);
-#endif
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_floato(vector double __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_vsx_xvcvdpsp(__a);
-#else
-  vector float __ret = __builtin_vsx_xvcvdpsp(__a);
-  return vec_sld(__ret, __ret, 12);
-#endif
-}
-#endif
-
-/* vec_double */
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai
-vec_double(vector signed long long __a) {
-  return __builtin_convertvector(__a, vector double);
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_double(vector unsigned long long __a) {
-  return __builtin_convertvector(__a, vector double);
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_doublee(vector signed int __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_vsx_xvcvsxwdp(vec_sld(__a, __a, 4));
-#else
-  return __builtin_vsx_xvcvsxwdp(__a);
-#endif
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_doublee(vector unsigned int __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_vsx_xvcvuxwdp(vec_sld(__a, __a, 4));
-#else
-  return __builtin_vsx_xvcvuxwdp(__a);
-#endif
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_doublee(vector float __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_vsx_xvcvspdp(vec_sld(__a, __a, 4));
-#else
-  return __builtin_vsx_xvcvspdp(__a);
-#endif
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_doubleh(vector signed int __a) {
-  vector double __ret = {__a[0], __a[1]};
-  return __ret;
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_doubleh(vector unsigned int __a) {
-  vector double __ret = {__a[0], __a[1]};
-  return __ret;
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_doubleh(vector float __a) {
-  vector double __ret = {__a[0], __a[1]};
-  return __ret;
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_doublel(vector signed int __a) {
-  vector double __ret = {__a[2], __a[3]};
-  return __ret;
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_doublel(vector unsigned int __a) {
-  vector double __ret = {__a[2], __a[3]};
-  return __ret;
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_doublel(vector float __a) {
-  vector double __ret = {__a[2], __a[3]};
-  return __ret;
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_doubleo(vector signed int __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_vsx_xvcvsxwdp(__a);
-#else
-  return __builtin_vsx_xvcvsxwdp(vec_sld(__a, __a, 4));
-#endif
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_doubleo(vector unsigned int __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_vsx_xvcvuxwdp(__a);
-#else
-  return __builtin_vsx_xvcvuxwdp(vec_sld(__a, __a, 4));
-#endif
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_doubleo(vector float __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_vsx_xvcvspdp(__a);
-#else
-  return __builtin_vsx_xvcvspdp(vec_sld(__a, __a, 4));
-#endif
-}
-
-/* vec_cvf */
-static __inline__ vector double __ATTRS_o_ai vec_cvf(vector float __a) {
-  return vec_doublee(__a);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_cvf(vector double __a) {
-  return vec_floate(__a);
-}
-#endif
-
-/* vec_div */
-
-/* Integer vector divides (vectors are scalarized, elements divided
-   and the vectors reassembled).
-*/
-static __inline__ vector signed char __ATTRS_o_ai
-vec_div(vector signed char __a, vector signed char __b) {
-  return __a / __b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_div(vector unsigned char __a, vector unsigned char __b) {
-  return __a / __b;
-}
-
-static __inline__ vector signed short __ATTRS_o_ai
-vec_div(vector signed short __a, vector signed short __b) {
-  return __a / __b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_div(vector unsigned short __a, vector unsigned short __b) {
-  return __a / __b;
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_div(vector signed int __a, vector signed int __b) {
-  return __a / __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_div(vector unsigned int __a, vector unsigned int __b) {
-  return __a / __b;
-}
-
-#ifdef __VSX__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_div(vector signed long long __a, vector signed long long __b) {
-  return __a / __b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_div(vector unsigned long long __a, vector unsigned long long __b) {
-  return __a / __b;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_div(vector float __a,
-                                                    vector float __b) {
-  return __a / __b;
-}
-
-static __inline__ vector double __ATTRS_o_ai vec_div(vector double __a,
-                                                     vector double __b) {
-  return __a / __b;
-}
-#endif
-
-/* vec_dive */
-
-#ifdef __POWER10_VECTOR__
-static __inline__ vector signed int __ATTRS_o_ai
-vec_dive(vector signed int __a, vector signed int __b) {
-  return __builtin_altivec_vdivesw(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_dive(vector unsigned int __a, vector unsigned int __b) {
-  return __builtin_altivec_vdiveuw(__a, __b);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_dive(vector signed long long __a, vector signed long long __b) {
-  return __builtin_altivec_vdivesd(__a, __b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_dive(vector unsigned long long __a, vector unsigned long long __b) {
-  return __builtin_altivec_vdiveud(__a, __b);
-}
-
-#ifdef __SIZEOF_INT128__
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_dive(vector unsigned __int128 __a, vector unsigned __int128 __b) {
-  return __builtin_altivec_vdiveuq(__a, __b);
-}
-
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_dive(vector signed __int128 __a, vector signed __int128 __b) {
-  return __builtin_altivec_vdivesq(__a, __b);
-}
-#endif
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_div(vector unsigned __int128 __a, vector unsigned __int128 __b) {
-  return __a / __b;
-}
-
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_div(vector signed __int128 __a, vector signed __int128 __b) {
-  return __a / __b;
-}
-#endif /* __POWER10_VECTOR__ */
-
-/* vec_xvtdiv */
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_test_swdiv(vector double __a,
-                                                  vector double __b) {
-  return __builtin_vsx_xvtdivdp(__a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_test_swdivs(vector float __a,
-                                                   vector float __b) {
-  return __builtin_vsx_xvtdivsp(__a, __b);
-}
-#endif
-
-/* vec_dss */
-
-#define vec_dss __builtin_altivec_dss
-
-/* vec_dssall */
-
-static __inline__ void __attribute__((__always_inline__)) vec_dssall(void) {
-  __builtin_altivec_dssall();
-}
-
-/* vec_dst */
-#define vec_dst(__PTR, __CW, __STR) \
-  __builtin_altivec_dst((const void *)(__PTR), (__CW), (__STR))
-
-/* vec_dstst */
-#define vec_dstst(__PTR, __CW, __STR) \
-  __builtin_altivec_dstst((const void *)(__PTR), (__CW), (__STR))
-
-/* vec_dststt */
-#define vec_dststt(__PTR, __CW, __STR) \
-  __builtin_altivec_dststt((const void *)(__PTR), (__CW), (__STR))
-
-/* vec_dstt */
-#define vec_dstt(__PTR, __CW, __STR) \
-  __builtin_altivec_dstt((const void *)(__PTR), (__CW), (__STR))
-
-/* vec_eqv */
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector signed char __ATTRS_o_ai
-vec_eqv(vector signed char __a, vector signed char __b) {
-  return (vector signed char)__builtin_vsx_xxleqv((vector unsigned int)__a,
-                                                  (vector unsigned int)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_eqv(vector unsigned char __a, vector unsigned char __b) {
-  return (vector unsigned char)__builtin_vsx_xxleqv((vector unsigned int)__a,
-                                                    (vector unsigned int)__b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai vec_eqv(vector bool char __a,
-                                                        vector bool char __b) {
-  return (vector bool char)__builtin_vsx_xxleqv((vector unsigned int)__a,
-                                                (vector unsigned int)__b);
-}
-
-static __inline__ vector signed short __ATTRS_o_ai
-vec_eqv(vector signed short __a, vector signed short __b) {
-  return (vector signed short)__builtin_vsx_xxleqv((vector unsigned int)__a,
-                                                   (vector unsigned int)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_eqv(vector unsigned short __a, vector unsigned short __b) {
-  return (vector unsigned short)__builtin_vsx_xxleqv((vector unsigned int)__a,
-                                                     (vector unsigned int)__b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_eqv(vector bool short __a, vector bool short __b) {
-  return (vector bool short)__builtin_vsx_xxleqv((vector unsigned int)__a,
-                                                 (vector unsigned int)__b);
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_eqv(vector signed int __a, vector signed int __b) {
-  return (vector signed int)__builtin_vsx_xxleqv((vector unsigned int)__a,
-                                                 (vector unsigned int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_eqv(vector unsigned int __a, vector unsigned int __b) {
-  return __builtin_vsx_xxleqv(__a, __b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_eqv(vector bool int __a,
-                                                       vector bool int __b) {
-  return (vector bool int)__builtin_vsx_xxleqv((vector unsigned int)__a,
-                                               (vector unsigned int)__b);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_eqv(vector signed long long __a, vector signed long long __b) {
-  return (vector signed long long)__builtin_vsx_xxleqv(
-      (vector unsigned int)__a, (vector unsigned int)__b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_eqv(vector unsigned long long __a, vector unsigned long long __b) {
-  return (vector unsigned long long)__builtin_vsx_xxleqv(
-      (vector unsigned int)__a, (vector unsigned int)__b);
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_eqv(vector bool long long __a, vector bool long long __b) {
-  return (vector bool long long)__builtin_vsx_xxleqv((vector unsigned int)__a,
-                                                     (vector unsigned int)__b);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_eqv(vector float __a,
-                                                    vector float __b) {
-  return (vector float)__builtin_vsx_xxleqv((vector unsigned int)__a,
-                                            (vector unsigned int)__b);
-}
-
-static __inline__ vector double __ATTRS_o_ai vec_eqv(vector double __a,
-                                                     vector double __b) {
-  return (vector double)__builtin_vsx_xxleqv((vector unsigned int)__a,
-                                             (vector unsigned int)__b);
-}
-#endif
-
-/* vec_expte */
-
-static __inline__ vector float __attribute__((__always_inline__))
-vec_expte(vector float __a) {
-  return __builtin_altivec_vexptefp(__a);
-}
-
-/* vec_vexptefp */
-
-static __inline__ vector float __attribute__((__always_inline__))
-vec_vexptefp(vector float __a) {
-  return __builtin_altivec_vexptefp(__a);
-}
-
-/* vec_floor */
-
-static __inline__ vector float __ATTRS_o_ai vec_floor(vector float __a) {
-#ifdef __VSX__
-  return __builtin_vsx_xvrspim(__a);
-#else
-  return __builtin_altivec_vrfim(__a);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai vec_floor(vector double __a) {
-  return __builtin_vsx_xvrdpim(__a);
-}
-#endif
-
-/* vec_roundm */
-static __inline__ vector float __ATTRS_o_ai vec_roundm(vector float __a) {
-  return vec_floor(__a);
-}
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai vec_roundm(vector double __a) {
-  return vec_floor(__a);
-}
-#endif
-
-/* vec_vrfim */
-
-static __inline__ vector float __attribute__((__always_inline__))
-vec_vrfim(vector float __a) {
-  return __builtin_altivec_vrfim(__a);
-}
-
-/* vec_ld */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_ld(long __a, const vector signed char *__b) {
-  return (vector signed char)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_ld(long __a, const signed char *__b) {
-  return (vector signed char)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_ld(long __a, const vector unsigned char *__b) {
-  return (vector unsigned char)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_ld(long __a, const unsigned char *__b) {
-  return (vector unsigned char)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_ld(long __a, const vector bool char *__b) {
-  return (vector bool char)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_ld(long __a,
-                                                   const vector short *__b) {
-  return (vector short)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_ld(long __a, const short *__b) {
-  return (vector short)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_ld(long __a, const vector unsigned short *__b) {
-  return (vector unsigned short)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_ld(long __a, const unsigned short *__b) {
-  return (vector unsigned short)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_ld(long __a, const vector bool short *__b) {
-  return (vector bool short)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_ld(long __a,
-                                                   const vector pixel *__b) {
-  return (vector pixel)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_ld(long __a,
-                                                 const vector int *__b) {
-  return (vector int)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_ld(long __a, const int *__b) {
-  return (vector int)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_ld(long __a, const vector unsigned int *__b) {
-  return (vector unsigned int)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_ld(long __a, const unsigned int *__b) {
-  return (vector unsigned int)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_ld(long __a, const vector bool int *__b) {
-  return (vector bool int)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_ld(long __a,
-                                                   const vector float *__b) {
-  return (vector float)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_ld(long __a, const float *__b) {
-  return (vector float)__builtin_altivec_lvx(__a, __b);
-}
-
-/* vec_lvx */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_lvx(long __a, const vector signed char *__b) {
-  return (vector signed char)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_lvx(long __a, const signed char *__b) {
-  return (vector signed char)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_lvx(long __a, const vector unsigned char *__b) {
-  return (vector unsigned char)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_lvx(long __a, const unsigned char *__b) {
-  return (vector unsigned char)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_lvx(long __a, const vector bool char *__b) {
-  return (vector bool char)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_lvx(long __a,
-                                                    const vector short *__b) {
-  return (vector short)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_lvx(long __a, const short *__b) {
-  return (vector short)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_lvx(long __a, const vector unsigned short *__b) {
-  return (vector unsigned short)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_lvx(long __a, const unsigned short *__b) {
-  return (vector unsigned short)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_lvx(long __a, const vector bool short *__b) {
-  return (vector bool short)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_lvx(long __a,
-                                                    const vector pixel *__b) {
-  return (vector pixel)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_lvx(long __a,
-                                                  const vector int *__b) {
-  return (vector int)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_lvx(long __a, const int *__b) {
-  return (vector int)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_lvx(long __a, const vector unsigned int *__b) {
-  return (vector unsigned int)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_lvx(long __a, const unsigned int *__b) {
-  return (vector unsigned int)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_lvx(long __a, const vector bool int *__b) {
-  return (vector bool int)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_lvx(long __a,
-                                                    const vector float *__b) {
-  return (vector float)__builtin_altivec_lvx(__a, __b);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_lvx(long __a, const float *__b) {
-  return (vector float)__builtin_altivec_lvx(__a, __b);
-}
-
-/* vec_lde */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_lde(long __a, const signed char *__b) {
-  return (vector signed char)__builtin_altivec_lvebx(__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_lde(long __a, const unsigned char *__b) {
-  return (vector unsigned char)__builtin_altivec_lvebx(__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_lde(long __a, const short *__b) {
-  return (vector short)__builtin_altivec_lvehx(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_lde(long __a, const unsigned short *__b) {
-  return (vector unsigned short)__builtin_altivec_lvehx(__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_lde(long __a, const int *__b) {
-  return (vector int)__builtin_altivec_lvewx(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_lde(long __a, const unsigned int *__b) {
-  return (vector unsigned int)__builtin_altivec_lvewx(__a, __b);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_lde(long __a, const float *__b) {
-  return (vector float)__builtin_altivec_lvewx(__a, __b);
-}
-
-/* vec_lvebx */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_lvebx(long __a, const signed char *__b) {
-  return (vector signed char)__builtin_altivec_lvebx(__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_lvebx(long __a, const unsigned char *__b) {
-  return (vector unsigned char)__builtin_altivec_lvebx(__a, __b);
-}
-
-/* vec_lvehx */
-
-static __inline__ vector short __ATTRS_o_ai vec_lvehx(long __a,
-                                                      const short *__b) {
-  return (vector short)__builtin_altivec_lvehx(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_lvehx(long __a, const unsigned short *__b) {
-  return (vector unsigned short)__builtin_altivec_lvehx(__a, __b);
-}
-
-/* vec_lvewx */
-
-static __inline__ vector int __ATTRS_o_ai vec_lvewx(long __a, const int *__b) {
-  return (vector int)__builtin_altivec_lvewx(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_lvewx(long __a, const unsigned int *__b) {
-  return (vector unsigned int)__builtin_altivec_lvewx(__a, __b);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_lvewx(long __a,
-                                                      const float *__b) {
-  return (vector float)__builtin_altivec_lvewx(__a, __b);
-}
-
-/* vec_ldl */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_ldl(long __a, const vector signed char *__b) {
-  return (vector signed char)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_ldl(long __a, const signed char *__b) {
-  return (vector signed char)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_ldl(long __a, const vector unsigned char *__b) {
-  return (vector unsigned char)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_ldl(long __a, const unsigned char *__b) {
-  return (vector unsigned char)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_ldl(long __a, const vector bool char *__b) {
-  return (vector bool char)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_ldl(long __a,
-                                                    const vector short *__b) {
-  return (vector short)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_ldl(long __a, const short *__b) {
-  return (vector short)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_ldl(long __a, const vector unsigned short *__b) {
-  return (vector unsigned short)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_ldl(long __a, const unsigned short *__b) {
-  return (vector unsigned short)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_ldl(long __a, const vector bool short *__b) {
-  return (vector bool short)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_ldl(long __a,
-                                                    const vector pixel *__b) {
-  return (vector pixel short)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_ldl(long __a,
-                                                  const vector int *__b) {
-  return (vector int)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_ldl(long __a, const int *__b) {
-  return (vector int)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_ldl(long __a, const vector unsigned int *__b) {
-  return (vector unsigned int)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_ldl(long __a, const unsigned int *__b) {
-  return (vector unsigned int)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_ldl(long __a, const vector bool int *__b) {
-  return (vector bool int)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_ldl(long __a,
-                                                    const vector float *__b) {
-  return (vector float)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_ldl(long __a, const float *__b) {
-  return (vector float)__builtin_altivec_lvxl(__a, __b);
-}
-
-/* vec_lvxl */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_lvxl(long __a, const vector signed char *__b) {
-  return (vector signed char)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_lvxl(long __a, const signed char *__b) {
-  return (vector signed char)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_lvxl(long __a, const vector unsigned char *__b) {
-  return (vector unsigned char)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_lvxl(long __a, const unsigned char *__b) {
-  return (vector unsigned char)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_lvxl(long __a, const vector bool char *__b) {
-  return (vector bool char)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_lvxl(long __a,
-                                                     const vector short *__b) {
-  return (vector short)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_lvxl(long __a,
-                                                     const short *__b) {
-  return (vector short)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_lvxl(long __a, const vector unsigned short *__b) {
-  return (vector unsigned short)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_lvxl(long __a, const unsigned short *__b) {
-  return (vector unsigned short)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_lvxl(long __a, const vector bool short *__b) {
-  return (vector bool short)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_lvxl(long __a,
-                                                     const vector pixel *__b) {
-  return (vector pixel)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_lvxl(long __a,
-                                                   const vector int *__b) {
-  return (vector int)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_lvxl(long __a, const int *__b) {
-  return (vector int)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_lvxl(long __a, const vector unsigned int *__b) {
-  return (vector unsigned int)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_lvxl(long __a, const unsigned int *__b) {
-  return (vector unsigned int)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_lvxl(long __a, const vector bool int *__b) {
-  return (vector bool int)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_lvxl(long __a,
-                                                     const vector float *__b) {
-  return (vector float)__builtin_altivec_lvxl(__a, __b);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_lvxl(long __a,
-                                                     const float *__b) {
-  return (vector float)__builtin_altivec_lvxl(__a, __b);
-}
-
-/* vec_loge */
-
-static __inline__ vector float __attribute__((__always_inline__))
-vec_loge(vector float __a) {
-  return __builtin_altivec_vlogefp(__a);
-}
-
-/* vec_vlogefp */
-
-static __inline__ vector float __attribute__((__always_inline__))
-vec_vlogefp(vector float __a) {
-  return __builtin_altivec_vlogefp(__a);
-}
-
-/* vec_lvsl */
-
-#ifdef __LITTLE_ENDIAN__
-static __inline__ vector unsigned char __ATTRS_o_ai
-    __attribute__((__deprecated__("use assignment for unaligned little endian \
-loads/stores"))) vec_lvsl(int __a, const signed char *__b) {
-  vector unsigned char mask =
-      (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
-  vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
-                                  7,  6,  5,  4,  3,  2,  1, 0};
-  return vec_perm(mask, mask, reverse);
-}
-#else
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_lvsl(int __a, const signed char *__b) {
-  return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
-}
-#endif
-
-#ifdef __LITTLE_ENDIAN__
-static __inline__ vector unsigned char __ATTRS_o_ai
-    __attribute__((__deprecated__("use assignment for unaligned little endian \
-loads/stores"))) vec_lvsl(int __a, const unsigned char *__b) {
-  vector unsigned char mask =
-      (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
-  vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
-                                  7,  6,  5,  4,  3,  2,  1, 0};
-  return vec_perm(mask, mask, reverse);
-}
-#else
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_lvsl(int __a, const unsigned char *__b) {
-  return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
-}
-#endif
-
-#ifdef __LITTLE_ENDIAN__
-static __inline__ vector unsigned char __ATTRS_o_ai
-    __attribute__((__deprecated__("use assignment for unaligned little endian \
-loads/stores"))) vec_lvsl(int __a, const short *__b) {
-  vector unsigned char mask =
-      (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
-  vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
-                                  7,  6,  5,  4,  3,  2,  1, 0};
-  return vec_perm(mask, mask, reverse);
-}
-#else
-static __inline__ vector unsigned char __ATTRS_o_ai vec_lvsl(int __a,
-                                                             const short *__b) {
-  return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
-}
-#endif
-
-#ifdef __LITTLE_ENDIAN__
-static __inline__ vector unsigned char __ATTRS_o_ai
-    __attribute__((__deprecated__("use assignment for unaligned little endian \
-loads/stores"))) vec_lvsl(int __a, const unsigned short *__b) {
-  vector unsigned char mask =
-      (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
-  vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
-                                  7,  6,  5,  4,  3,  2,  1, 0};
-  return vec_perm(mask, mask, reverse);
-}
-#else
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_lvsl(int __a, const unsigned short *__b) {
-  return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
-}
-#endif
-
-#ifdef __LITTLE_ENDIAN__
-static __inline__ vector unsigned char __ATTRS_o_ai
-    __attribute__((__deprecated__("use assignment for unaligned little endian \
-loads/stores"))) vec_lvsl(int __a, const int *__b) {
-  vector unsigned char mask =
-      (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
-  vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
-                                  7,  6,  5,  4,  3,  2,  1, 0};
-  return vec_perm(mask, mask, reverse);
-}
-#else
-static __inline__ vector unsigned char __ATTRS_o_ai vec_lvsl(int __a,
-                                                             const int *__b) {
-  return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
-}
-#endif
-
-#ifdef __LITTLE_ENDIAN__
-static __inline__ vector unsigned char __ATTRS_o_ai
-    __attribute__((__deprecated__("use assignment for unaligned little endian \
-loads/stores"))) vec_lvsl(int __a, const unsigned int *__b) {
-  vector unsigned char mask =
-      (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
-  vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
-                                  7,  6,  5,  4,  3,  2,  1, 0};
-  return vec_perm(mask, mask, reverse);
-}
-#else
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_lvsl(int __a, const unsigned int *__b) {
-  return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
-}
-#endif
-
-#ifdef __LITTLE_ENDIAN__
-static __inline__ vector unsigned char __ATTRS_o_ai
-    __attribute__((__deprecated__("use assignment for unaligned little endian \
-loads/stores"))) vec_lvsl(int __a, const float *__b) {
-  vector unsigned char mask =
-      (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
-  vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
-                                  7,  6,  5,  4,  3,  2,  1, 0};
-  return vec_perm(mask, mask, reverse);
-}
-#else
-static __inline__ vector unsigned char __ATTRS_o_ai vec_lvsl(int __a,
-                                                             const float *__b) {
-  return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
-}
-#endif
-
-/* vec_lvsr */
-
-#ifdef __LITTLE_ENDIAN__
-static __inline__ vector unsigned char __ATTRS_o_ai
-    __attribute__((__deprecated__("use assignment for unaligned little endian \
-loads/stores"))) vec_lvsr(int __a, const signed char *__b) {
-  vector unsigned char mask =
-      (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
-  vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
-                                  7,  6,  5,  4,  3,  2,  1, 0};
-  return vec_perm(mask, mask, reverse);
-}
-#else
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_lvsr(int __a, const signed char *__b) {
-  return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
-}
-#endif
-
-#ifdef __LITTLE_ENDIAN__
-static __inline__ vector unsigned char __ATTRS_o_ai
-    __attribute__((__deprecated__("use assignment for unaligned little endian \
-loads/stores"))) vec_lvsr(int __a, const unsigned char *__b) {
-  vector unsigned char mask =
-      (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
-  vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
-                                  7,  6,  5,  4,  3,  2,  1, 0};
-  return vec_perm(mask, mask, reverse);
-}
-#else
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_lvsr(int __a, const unsigned char *__b) {
-  return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
-}
-#endif
-
-#ifdef __LITTLE_ENDIAN__
-static __inline__ vector unsigned char __ATTRS_o_ai
-    __attribute__((__deprecated__("use assignment for unaligned little endian \
-loads/stores"))) vec_lvsr(int __a, const short *__b) {
-  vector unsigned char mask =
-      (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
-  vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
-                                  7,  6,  5,  4,  3,  2,  1, 0};
-  return vec_perm(mask, mask, reverse);
-}
-#else
-static __inline__ vector unsigned char __ATTRS_o_ai vec_lvsr(int __a,
-                                                             const short *__b) {
-  return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
-}
-#endif
-
-#ifdef __LITTLE_ENDIAN__
-static __inline__ vector unsigned char __ATTRS_o_ai
-    __attribute__((__deprecated__("use assignment for unaligned little endian \
-loads/stores"))) vec_lvsr(int __a, const unsigned short *__b) {
-  vector unsigned char mask =
-      (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
-  vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
-                                  7,  6,  5,  4,  3,  2,  1, 0};
-  return vec_perm(mask, mask, reverse);
-}
-#else
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_lvsr(int __a, const unsigned short *__b) {
-  return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
-}
-#endif
-
-#ifdef __LITTLE_ENDIAN__
-static __inline__ vector unsigned char __ATTRS_o_ai
-    __attribute__((__deprecated__("use assignment for unaligned little endian \
-loads/stores"))) vec_lvsr(int __a, const int *__b) {
-  vector unsigned char mask =
-      (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
-  vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
-                                  7,  6,  5,  4,  3,  2,  1, 0};
-  return vec_perm(mask, mask, reverse);
-}
-#else
-static __inline__ vector unsigned char __ATTRS_o_ai vec_lvsr(int __a,
-                                                             const int *__b) {
-  return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
-}
-#endif
-
-#ifdef __LITTLE_ENDIAN__
-static __inline__ vector unsigned char __ATTRS_o_ai
-    __attribute__((__deprecated__("use assignment for unaligned little endian \
-loads/stores"))) vec_lvsr(int __a, const unsigned int *__b) {
-  vector unsigned char mask =
-      (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
-  vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
-                                  7,  6,  5,  4,  3,  2,  1, 0};
-  return vec_perm(mask, mask, reverse);
-}
-#else
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_lvsr(int __a, const unsigned int *__b) {
-  return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
-}
-#endif
-
-#ifdef __LITTLE_ENDIAN__
-static __inline__ vector unsigned char __ATTRS_o_ai
-    __attribute__((__deprecated__("use assignment for unaligned little endian \
-loads/stores"))) vec_lvsr(int __a, const float *__b) {
-  vector unsigned char mask =
-      (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
-  vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
-                                  7,  6,  5,  4,  3,  2,  1, 0};
-  return vec_perm(mask, mask, reverse);
-}
-#else
-static __inline__ vector unsigned char __ATTRS_o_ai vec_lvsr(int __a,
-                                                             const float *__b) {
-  return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
-}
-#endif
-
-/* vec_madd */
-static __inline__ vector signed short __ATTRS_o_ai
-vec_mladd(vector signed short, vector signed short, vector signed short);
-static __inline__ vector signed short __ATTRS_o_ai
-vec_mladd(vector signed short, vector unsigned short, vector unsigned short);
-static __inline__ vector signed short __ATTRS_o_ai
-vec_mladd(vector unsigned short, vector signed short, vector signed short);
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_mladd(vector unsigned short, vector unsigned short, vector unsigned short);
-
-static __inline__ vector signed short __ATTRS_o_ai vec_madd(
-    vector signed short __a, vector signed short __b, vector signed short __c) {
-  return vec_mladd(__a, __b, __c);
-}
-
-static __inline__ vector signed short __ATTRS_o_ai
-vec_madd(vector signed short __a, vector unsigned short __b,
-         vector unsigned short __c) {
-  return vec_mladd(__a, __b, __c);
-}
-
-static __inline__ vector signed short __ATTRS_o_ai
-vec_madd(vector unsigned short __a, vector signed short __b,
-         vector signed short __c) {
-  return vec_mladd(__a, __b, __c);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_madd(vector unsigned short __a, vector unsigned short __b,
-         vector unsigned short __c) {
-  return vec_mladd(__a, __b, __c);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_madd(vector float __a,
-                                                     vector float __b,
-                                                     vector float __c) {
-#ifdef __VSX__
-  return __builtin_vsx_xvmaddasp(__a, __b, __c);
-#else
-  return __builtin_altivec_vmaddfp(__a, __b, __c);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai vec_madd(vector double __a,
-                                                      vector double __b,
-                                                      vector double __c) {
-  return __builtin_vsx_xvmaddadp(__a, __b, __c);
-}
-#endif
-
-/* vec_vmaddfp */
-
-static __inline__ vector float __attribute__((__always_inline__))
-vec_vmaddfp(vector float __a, vector float __b, vector float __c) {
-  return __builtin_altivec_vmaddfp(__a, __b, __c);
-}
-
-/* vec_madds */
-
-static __inline__ vector signed short __attribute__((__always_inline__))
-vec_madds(vector signed short __a, vector signed short __b,
-          vector signed short __c) {
-  return __builtin_altivec_vmhaddshs(__a, __b, __c);
-}
-
-/* vec_vmhaddshs */
-static __inline__ vector signed short __attribute__((__always_inline__))
-vec_vmhaddshs(vector signed short __a, vector signed short __b,
-              vector signed short __c) {
-  return __builtin_altivec_vmhaddshs(__a, __b, __c);
-}
-
-/* vec_msub */
-
-#ifdef __VSX__
-static __inline__ vector float __ATTRS_o_ai vec_msub(vector float __a,
-                                                     vector float __b,
-                                                     vector float __c) {
-  return __builtin_vsx_xvmsubasp(__a, __b, __c);
-}
-
-static __inline__ vector double __ATTRS_o_ai vec_msub(vector double __a,
-                                                      vector double __b,
-                                                      vector double __c) {
-  return __builtin_vsx_xvmsubadp(__a, __b, __c);
-}
-#endif
-
-/* vec_max */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_max(vector signed char __a, vector signed char __b) {
-  return __builtin_altivec_vmaxsb(__a, __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_max(vector bool char __a, vector signed char __b) {
-  return __builtin_altivec_vmaxsb((vector signed char)__a, __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_max(vector signed char __a, vector bool char __b) {
-  return __builtin_altivec_vmaxsb(__a, (vector signed char)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_max(vector unsigned char __a, vector unsigned char __b) {
-  return __builtin_altivec_vmaxub(__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_max(vector bool char __a, vector unsigned char __b) {
-  return __builtin_altivec_vmaxub((vector unsigned char)__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_max(vector unsigned char __a, vector bool char __b) {
-  return __builtin_altivec_vmaxub(__a, (vector unsigned char)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_max(vector short __a,
-                                                    vector short __b) {
-  return __builtin_altivec_vmaxsh(__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_max(vector bool short __a,
-                                                    vector short __b) {
-  return __builtin_altivec_vmaxsh((vector short)__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_max(vector short __a,
-                                                    vector bool short __b) {
-  return __builtin_altivec_vmaxsh(__a, (vector short)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_max(vector unsigned short __a, vector unsigned short __b) {
-  return __builtin_altivec_vmaxuh(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_max(vector bool short __a, vector unsigned short __b) {
-  return __builtin_altivec_vmaxuh((vector unsigned short)__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_max(vector unsigned short __a, vector bool short __b) {
-  return __builtin_altivec_vmaxuh(__a, (vector unsigned short)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_max(vector int __a,
-                                                  vector int __b) {
-  return __builtin_altivec_vmaxsw(__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_max(vector bool int __a,
-                                                  vector int __b) {
-  return __builtin_altivec_vmaxsw((vector int)__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_max(vector int __a,
-                                                  vector bool int __b) {
-  return __builtin_altivec_vmaxsw(__a, (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_max(vector unsigned int __a, vector unsigned int __b) {
-  return __builtin_altivec_vmaxuw(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_max(vector bool int __a, vector unsigned int __b) {
-  return __builtin_altivec_vmaxuw((vector unsigned int)__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_max(vector unsigned int __a, vector bool int __b) {
-  return __builtin_altivec_vmaxuw(__a, (vector unsigned int)__b);
-}
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_max(vector signed long long __a, vector signed long long __b) {
-  return __builtin_altivec_vmaxsd(__a, __b);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_max(vector bool long long __a, vector signed long long __b) {
-  return __builtin_altivec_vmaxsd((vector signed long long)__a, __b);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_max(vector signed long long __a, vector bool long long __b) {
-  return __builtin_altivec_vmaxsd(__a, (vector signed long long)__b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_max(vector unsigned long long __a, vector unsigned long long __b) {
-  return __builtin_altivec_vmaxud(__a, __b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_max(vector bool long long __a, vector unsigned long long __b) {
-  return __builtin_altivec_vmaxud((vector unsigned long long)__a, __b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_max(vector unsigned long long __a, vector bool long long __b) {
-  return __builtin_altivec_vmaxud(__a, (vector unsigned long long)__b);
-}
-#endif
-
-static __inline__ vector float __ATTRS_o_ai vec_max(vector float __a,
-                                                    vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvmaxsp(__a, __b);
-#else
-  return __builtin_altivec_vmaxfp(__a, __b);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai vec_max(vector double __a,
-                                                     vector double __b) {
-  return __builtin_vsx_xvmaxdp(__a, __b);
-}
-#endif
-
-/* vec_vmaxsb */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vmaxsb(vector signed char __a, vector signed char __b) {
-  return __builtin_altivec_vmaxsb(__a, __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vmaxsb(vector bool char __a, vector signed char __b) {
-  return __builtin_altivec_vmaxsb((vector signed char)__a, __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vmaxsb(vector signed char __a, vector bool char __b) {
-  return __builtin_altivec_vmaxsb(__a, (vector signed char)__b);
-}
-
-/* vec_vmaxub */
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vmaxub(vector unsigned char __a, vector unsigned char __b) {
-  return __builtin_altivec_vmaxub(__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vmaxub(vector bool char __a, vector unsigned char __b) {
-  return __builtin_altivec_vmaxub((vector unsigned char)__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vmaxub(vector unsigned char __a, vector bool char __b) {
-  return __builtin_altivec_vmaxub(__a, (vector unsigned char)__b);
-}
-
-/* vec_vmaxsh */
-
-static __inline__ vector short __ATTRS_o_ai vec_vmaxsh(vector short __a,
-                                                       vector short __b) {
-  return __builtin_altivec_vmaxsh(__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vmaxsh(vector bool short __a,
-                                                       vector short __b) {
-  return __builtin_altivec_vmaxsh((vector short)__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vmaxsh(vector short __a,
-                                                       vector bool short __b) {
-  return __builtin_altivec_vmaxsh(__a, (vector short)__b);
-}
-
-/* vec_vmaxuh */
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vmaxuh(vector unsigned short __a, vector unsigned short __b) {
-  return __builtin_altivec_vmaxuh(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vmaxuh(vector bool short __a, vector unsigned short __b) {
-  return __builtin_altivec_vmaxuh((vector unsigned short)__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vmaxuh(vector unsigned short __a, vector bool short __b) {
-  return __builtin_altivec_vmaxuh(__a, (vector unsigned short)__b);
-}
-
-/* vec_vmaxsw */
-
-static __inline__ vector int __ATTRS_o_ai vec_vmaxsw(vector int __a,
-                                                     vector int __b) {
-  return __builtin_altivec_vmaxsw(__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vmaxsw(vector bool int __a,
-                                                     vector int __b) {
-  return __builtin_altivec_vmaxsw((vector int)__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vmaxsw(vector int __a,
-                                                     vector bool int __b) {
-  return __builtin_altivec_vmaxsw(__a, (vector int)__b);
-}
-
-/* vec_vmaxuw */
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vmaxuw(vector unsigned int __a, vector unsigned int __b) {
-  return __builtin_altivec_vmaxuw(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vmaxuw(vector bool int __a, vector unsigned int __b) {
-  return __builtin_altivec_vmaxuw((vector unsigned int)__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vmaxuw(vector unsigned int __a, vector bool int __b) {
-  return __builtin_altivec_vmaxuw(__a, (vector unsigned int)__b);
-}
-
-/* vec_vmaxfp */
-
-static __inline__ vector float __attribute__((__always_inline__))
-vec_vmaxfp(vector float __a, vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvmaxsp(__a, __b);
-#else
-  return __builtin_altivec_vmaxfp(__a, __b);
-#endif
-}
-
-/* vec_mergeh */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_mergeh(vector signed char __a, vector signed char __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
-                                         0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
-                                         0x06, 0x16, 0x07, 0x17));
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_mergeh(vector unsigned char __a, vector unsigned char __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
-                                         0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
-                                         0x06, 0x16, 0x07, 0x17));
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_mergeh(vector bool char __a, vector bool char __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
-                                         0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
-                                         0x06, 0x16, 0x07, 0x17));
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_mergeh(vector short __a,
-                                                       vector short __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
-                                         0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
-                                         0x06, 0x07, 0x16, 0x17));
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_mergeh(vector unsigned short __a, vector unsigned short __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
-                                         0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
-                                         0x06, 0x07, 0x16, 0x17));
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_mergeh(vector bool short __a, vector bool short __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
-                                         0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
-                                         0x06, 0x07, 0x16, 0x17));
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_mergeh(vector pixel __a,
-                                                       vector pixel __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
-                                         0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
-                                         0x06, 0x07, 0x16, 0x17));
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_mergeh(vector int __a,
-                                                     vector int __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
-                                         0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
-                                         0x14, 0x15, 0x16, 0x17));
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_mergeh(vector unsigned int __a, vector unsigned int __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
-                                         0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
-                                         0x14, 0x15, 0x16, 0x17));
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_mergeh(vector bool int __a,
-                                                          vector bool int __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
-                                         0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
-                                         0x14, 0x15, 0x16, 0x17));
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_mergeh(vector float __a,
-                                                       vector float __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
-                                         0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
-                                         0x14, 0x15, 0x16, 0x17));
-}
-
-#ifdef __VSX__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_mergeh(vector signed long long __a, vector signed long long __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
-                                         0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
-                                         0x14, 0x15, 0x16, 0x17));
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_mergeh(vector signed long long __a, vector bool long long __b) {
-  return vec_perm(__a, (vector signed long long)__b,
-                  (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
-                                         0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
-                                         0x14, 0x15, 0x16, 0x17));
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_mergeh(vector bool long long __a, vector signed long long __b) {
-  return vec_perm((vector signed long long)__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
-                                         0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
-                                         0x14, 0x15, 0x16, 0x17));
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_mergeh(vector unsigned long long __a, vector unsigned long long __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
-                                         0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
-                                         0x14, 0x15, 0x16, 0x17));
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_mergeh(vector unsigned long long __a, vector bool long long __b) {
-  return vec_perm(__a, (vector unsigned long long)__b,
-                  (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
-                                         0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
-                                         0x14, 0x15, 0x16, 0x17));
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_mergeh(vector bool long long __a, vector unsigned long long __b) {
-  return vec_perm((vector unsigned long long)__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
-                                         0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
-                                         0x14, 0x15, 0x16, 0x17));
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_mergeh(vector bool long long __a, vector bool long long __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
-                                         0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
-                                         0x14, 0x15, 0x16, 0x17));
-}
-
-static __inline__ vector double __ATTRS_o_ai vec_mergeh(vector double __a,
-                                                        vector double __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
-                                         0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
-                                         0x14, 0x15, 0x16, 0x17));
-}
-static __inline__ vector double __ATTRS_o_ai
-vec_mergeh(vector double __a, vector bool long long __b) {
-  return vec_perm(__a, (vector double)__b,
-                  (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
-                                         0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
-                                         0x14, 0x15, 0x16, 0x17));
-}
-static __inline__ vector double __ATTRS_o_ai
-vec_mergeh(vector bool long long __a, vector double __b) {
-  return vec_perm((vector double)__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
-                                         0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
-                                         0x14, 0x15, 0x16, 0x17));
-}
-#endif
-
-/* vec_vmrghb */
-
-#define __builtin_altivec_vmrghb vec_vmrghb
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vmrghb(vector signed char __a, vector signed char __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
-                                         0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
-                                         0x06, 0x16, 0x07, 0x17));
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vmrghb(vector unsigned char __a, vector unsigned char __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
-                                         0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
-                                         0x06, 0x16, 0x07, 0x17));
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_vmrghb(vector bool char __a, vector bool char __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
-                                         0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
-                                         0x06, 0x16, 0x07, 0x17));
-}
-
-/* vec_vmrghh */
-
-#define __builtin_altivec_vmrghh vec_vmrghh
-
-static __inline__ vector short __ATTRS_o_ai vec_vmrghh(vector short __a,
-                                                       vector short __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
-                                         0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
-                                         0x06, 0x07, 0x16, 0x17));
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vmrghh(vector unsigned short __a, vector unsigned short __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
-                                         0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
-                                         0x06, 0x07, 0x16, 0x17));
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_vmrghh(vector bool short __a, vector bool short __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
-                                         0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
-                                         0x06, 0x07, 0x16, 0x17));
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_vmrghh(vector pixel __a,
-                                                       vector pixel __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
-                                         0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
-                                         0x06, 0x07, 0x16, 0x17));
-}
-
-/* vec_vmrghw */
-
-#define __builtin_altivec_vmrghw vec_vmrghw
-
-static __inline__ vector int __ATTRS_o_ai vec_vmrghw(vector int __a,
-                                                     vector int __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
-                                         0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
-                                         0x14, 0x15, 0x16, 0x17));
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vmrghw(vector unsigned int __a, vector unsigned int __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
-                                         0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
-                                         0x14, 0x15, 0x16, 0x17));
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_vmrghw(vector bool int __a,
-                                                          vector bool int __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
-                                         0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
-                                         0x14, 0x15, 0x16, 0x17));
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vmrghw(vector float __a,
-                                                       vector float __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
-                                         0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
-                                         0x14, 0x15, 0x16, 0x17));
-}
-
-/* vec_mergel */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_mergel(vector signed char __a, vector signed char __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
-                                         0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
-                                         0x0E, 0x1E, 0x0F, 0x1F));
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_mergel(vector unsigned char __a, vector unsigned char __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
-                                         0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
-                                         0x0E, 0x1E, 0x0F, 0x1F));
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_mergel(vector bool char __a, vector bool char __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
-                                         0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
-                                         0x0E, 0x1E, 0x0F, 0x1F));
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_mergel(vector short __a,
-                                                       vector short __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
-                                         0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
-                                         0x0E, 0x0F, 0x1E, 0x1F));
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_mergel(vector unsigned short __a, vector unsigned short __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
-                                         0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
-                                         0x0E, 0x0F, 0x1E, 0x1F));
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_mergel(vector bool short __a, vector bool short __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
-                                         0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
-                                         0x0E, 0x0F, 0x1E, 0x1F));
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_mergel(vector pixel __a,
-                                                       vector pixel __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
-                                         0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
-                                         0x0E, 0x0F, 0x1E, 0x1F));
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_mergel(vector int __a,
-                                                     vector int __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
-                                         0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
-                                         0x1C, 0x1D, 0x1E, 0x1F));
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_mergel(vector unsigned int __a, vector unsigned int __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
-                                         0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
-                                         0x1C, 0x1D, 0x1E, 0x1F));
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_mergel(vector bool int __a,
-                                                          vector bool int __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
-                                         0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
-                                         0x1C, 0x1D, 0x1E, 0x1F));
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_mergel(vector float __a,
-                                                       vector float __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
-                                         0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
-                                         0x1C, 0x1D, 0x1E, 0x1F));
-}
-
-#ifdef __VSX__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_mergel(vector signed long long __a, vector signed long long __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
-                                         0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
-                                         0x1C, 0x1D, 0x1E, 0x1F));
-}
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_mergel(vector signed long long __a, vector bool long long __b) {
-  return vec_perm(__a, (vector signed long long)__b,
-                  (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
-                                         0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
-                                         0x1C, 0x1D, 0x1E, 0x1F));
-}
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_mergel(vector bool long long __a, vector signed long long __b) {
-  return vec_perm((vector signed long long)__a, __b,
-                  (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
-                                         0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
-                                         0x1C, 0x1D, 0x1E, 0x1F));
-}
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_mergel(vector unsigned long long __a, vector unsigned long long __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
-                                         0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
-                                         0x1C, 0x1D, 0x1E, 0x1F));
-}
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_mergel(vector unsigned long long __a, vector bool long long __b) {
-  return vec_perm(__a, (vector unsigned long long)__b,
-                  (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
-                                         0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
-                                         0x1C, 0x1D, 0x1E, 0x1F));
-}
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_mergel(vector bool long long __a, vector unsigned long long __b) {
-  return vec_perm((vector unsigned long long)__a, __b,
-                  (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
-                                         0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
-                                         0x1C, 0x1D, 0x1E, 0x1F));
-}
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_mergel(vector bool long long __a, vector bool long long __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
-                                         0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
-                                         0x1C, 0x1D, 0x1E, 0x1F));
-}
-static __inline__ vector double __ATTRS_o_ai vec_mergel(vector double __a,
-                                                        vector double __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
-                                         0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
-                                         0x1C, 0x1D, 0x1E, 0x1F));
-}
-static __inline__ vector double __ATTRS_o_ai
-vec_mergel(vector double __a, vector bool long long __b) {
-  return vec_perm(__a, (vector double)__b,
-                  (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
-                                         0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
-                                         0x1C, 0x1D, 0x1E, 0x1F));
-}
-static __inline__ vector double __ATTRS_o_ai
-vec_mergel(vector bool long long __a, vector double __b) {
-  return vec_perm((vector double)__a, __b,
-                  (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
-                                         0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
-                                         0x1C, 0x1D, 0x1E, 0x1F));
-}
-#endif
-
-/* vec_vmrglb */
-
-#define __builtin_altivec_vmrglb vec_vmrglb
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vmrglb(vector signed char __a, vector signed char __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
-                                         0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
-                                         0x0E, 0x1E, 0x0F, 0x1F));
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vmrglb(vector unsigned char __a, vector unsigned char __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
-                                         0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
-                                         0x0E, 0x1E, 0x0F, 0x1F));
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_vmrglb(vector bool char __a, vector bool char __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
-                                         0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
-                                         0x0E, 0x1E, 0x0F, 0x1F));
-}
-
-/* vec_vmrglh */
-
-#define __builtin_altivec_vmrglh vec_vmrglh
-
-static __inline__ vector short __ATTRS_o_ai vec_vmrglh(vector short __a,
-                                                       vector short __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
-                                         0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
-                                         0x0E, 0x0F, 0x1E, 0x1F));
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vmrglh(vector unsigned short __a, vector unsigned short __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
-                                         0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
-                                         0x0E, 0x0F, 0x1E, 0x1F));
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_vmrglh(vector bool short __a, vector bool short __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
-                                         0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
-                                         0x0E, 0x0F, 0x1E, 0x1F));
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_vmrglh(vector pixel __a,
-                                                       vector pixel __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
-                                         0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
-                                         0x0E, 0x0F, 0x1E, 0x1F));
-}
-
-/* vec_vmrglw */
-
-#define __builtin_altivec_vmrglw vec_vmrglw
-
-static __inline__ vector int __ATTRS_o_ai vec_vmrglw(vector int __a,
-                                                     vector int __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
-                                         0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
-                                         0x1C, 0x1D, 0x1E, 0x1F));
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vmrglw(vector unsigned int __a, vector unsigned int __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
-                                         0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
-                                         0x1C, 0x1D, 0x1E, 0x1F));
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_vmrglw(vector bool int __a,
-                                                          vector bool int __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
-                                         0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
-                                         0x1C, 0x1D, 0x1E, 0x1F));
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vmrglw(vector float __a,
-                                                       vector float __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
-                                         0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
-                                         0x1C, 0x1D, 0x1E, 0x1F));
-}
-
-#ifdef __POWER8_VECTOR__
-/* vec_mergee */
-
-static __inline__ vector bool int __ATTRS_o_ai vec_mergee(vector bool int __a,
-                                                          vector bool int __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
-                                         0x12, 0x13, 0x08, 0x09, 0x0A, 0x0B,
-                                         0x18, 0x19, 0x1A, 0x1B));
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_mergee(vector signed int __a, vector signed int __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
-                                         0x12, 0x13, 0x08, 0x09, 0x0A, 0x0B,
-                                         0x18, 0x19, 0x1A, 0x1B));
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_mergee(vector unsigned int __a, vector unsigned int __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
-                                         0x12, 0x13, 0x08, 0x09, 0x0A, 0x0B,
-                                         0x18, 0x19, 0x1A, 0x1B));
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_mergee(vector bool long long __a, vector bool long long __b) {
-  return vec_mergeh(__a, __b);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_mergee(vector signed long long __a, vector signed long long __b) {
-  return vec_mergeh(__a, __b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_mergee(vector unsigned long long __a, vector unsigned long long __b) {
-  return vec_mergeh(__a, __b);
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_mergee(vector float __a, vector float __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
-                                         0x12, 0x13, 0x08, 0x09, 0x0A, 0x0B,
-                                         0x18, 0x19, 0x1A, 0x1B));
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_mergee(vector double __a, vector double __b) {
-  return vec_mergeh(__a, __b);
-}
-
-/* vec_mergeo */
-
-static __inline__ vector bool int __ATTRS_o_ai vec_mergeo(vector bool int __a,
-                                                          vector bool int __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x14, 0x15,
-                                         0x16, 0x17, 0x0C, 0x0D, 0x0E, 0x0F,
-                                         0x1C, 0x1D, 0x1E, 0x1F));
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_mergeo(vector signed int __a, vector signed int __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x14, 0x15,
-                                         0x16, 0x17, 0x0C, 0x0D, 0x0E, 0x0F,
-                                         0x1C, 0x1D, 0x1E, 0x1F));
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_mergeo(vector unsigned int __a, vector unsigned int __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x14, 0x15,
-                                         0x16, 0x17, 0x0C, 0x0D, 0x0E, 0x0F,
-                                         0x1C, 0x1D, 0x1E, 0x1F));
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_mergeo(vector bool long long __a, vector bool long long __b) {
-  return vec_mergel(__a, __b);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_mergeo(vector signed long long __a, vector signed long long __b) {
-  return vec_mergel(__a, __b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_mergeo(vector unsigned long long __a, vector unsigned long long __b) {
-  return vec_mergel(__a, __b);
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_mergeo(vector float __a, vector float __b) {
-  return vec_perm(__a, __b,
-                  (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x14, 0x15,
-                                         0x16, 0x17, 0x0C, 0x0D, 0x0E, 0x0F,
-                                         0x1C, 0x1D, 0x1E, 0x1F));
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_mergeo(vector double __a, vector double __b) {
-  return vec_mergel(__a, __b);
-}
-
-#endif
-
-/* vec_mfvscr */
-
-static __inline__ vector unsigned short __attribute__((__always_inline__))
-vec_mfvscr(void) {
-  return __builtin_altivec_mfvscr();
-}
-
-/* vec_min */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_min(vector signed char __a, vector signed char __b) {
-  return __builtin_altivec_vminsb(__a, __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_min(vector bool char __a, vector signed char __b) {
-  return __builtin_altivec_vminsb((vector signed char)__a, __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_min(vector signed char __a, vector bool char __b) {
-  return __builtin_altivec_vminsb(__a, (vector signed char)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_min(vector unsigned char __a, vector unsigned char __b) {
-  return __builtin_altivec_vminub(__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_min(vector bool char __a, vector unsigned char __b) {
-  return __builtin_altivec_vminub((vector unsigned char)__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_min(vector unsigned char __a, vector bool char __b) {
-  return __builtin_altivec_vminub(__a, (vector unsigned char)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_min(vector short __a,
-                                                    vector short __b) {
-  return __builtin_altivec_vminsh(__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_min(vector bool short __a,
-                                                    vector short __b) {
-  return __builtin_altivec_vminsh((vector short)__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_min(vector short __a,
-                                                    vector bool short __b) {
-  return __builtin_altivec_vminsh(__a, (vector short)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_min(vector unsigned short __a, vector unsigned short __b) {
-  return __builtin_altivec_vminuh(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_min(vector bool short __a, vector unsigned short __b) {
-  return __builtin_altivec_vminuh((vector unsigned short)__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_min(vector unsigned short __a, vector bool short __b) {
-  return __builtin_altivec_vminuh(__a, (vector unsigned short)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_min(vector int __a,
-                                                  vector int __b) {
-  return __builtin_altivec_vminsw(__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_min(vector bool int __a,
-                                                  vector int __b) {
-  return __builtin_altivec_vminsw((vector int)__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_min(vector int __a,
-                                                  vector bool int __b) {
-  return __builtin_altivec_vminsw(__a, (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_min(vector unsigned int __a, vector unsigned int __b) {
-  return __builtin_altivec_vminuw(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_min(vector bool int __a, vector unsigned int __b) {
-  return __builtin_altivec_vminuw((vector unsigned int)__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_min(vector unsigned int __a, vector bool int __b) {
-  return __builtin_altivec_vminuw(__a, (vector unsigned int)__b);
-}
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_min(vector signed long long __a, vector signed long long __b) {
-  return __builtin_altivec_vminsd(__a, __b);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_min(vector bool long long __a, vector signed long long __b) {
-  return __builtin_altivec_vminsd((vector signed long long)__a, __b);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_min(vector signed long long __a, vector bool long long __b) {
-  return __builtin_altivec_vminsd(__a, (vector signed long long)__b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_min(vector unsigned long long __a, vector unsigned long long __b) {
-  return __builtin_altivec_vminud(__a, __b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_min(vector bool long long __a, vector unsigned long long __b) {
-  return __builtin_altivec_vminud((vector unsigned long long)__a, __b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_min(vector unsigned long long __a, vector bool long long __b) {
-  return __builtin_altivec_vminud(__a, (vector unsigned long long)__b);
-}
-#endif
-
-static __inline__ vector float __ATTRS_o_ai vec_min(vector float __a,
-                                                    vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvminsp(__a, __b);
-#else
-  return __builtin_altivec_vminfp(__a, __b);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai vec_min(vector double __a,
-                                                     vector double __b) {
-  return __builtin_vsx_xvmindp(__a, __b);
-}
-#endif
-
-/* vec_vminsb */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vminsb(vector signed char __a, vector signed char __b) {
-  return __builtin_altivec_vminsb(__a, __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vminsb(vector bool char __a, vector signed char __b) {
-  return __builtin_altivec_vminsb((vector signed char)__a, __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vminsb(vector signed char __a, vector bool char __b) {
-  return __builtin_altivec_vminsb(__a, (vector signed char)__b);
-}
-
-/* vec_vminub */
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vminub(vector unsigned char __a, vector unsigned char __b) {
-  return __builtin_altivec_vminub(__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vminub(vector bool char __a, vector unsigned char __b) {
-  return __builtin_altivec_vminub((vector unsigned char)__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vminub(vector unsigned char __a, vector bool char __b) {
-  return __builtin_altivec_vminub(__a, (vector unsigned char)__b);
-}
-
-/* vec_vminsh */
-
-static __inline__ vector short __ATTRS_o_ai vec_vminsh(vector short __a,
-                                                       vector short __b) {
-  return __builtin_altivec_vminsh(__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vminsh(vector bool short __a,
-                                                       vector short __b) {
-  return __builtin_altivec_vminsh((vector short)__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vminsh(vector short __a,
-                                                       vector bool short __b) {
-  return __builtin_altivec_vminsh(__a, (vector short)__b);
-}
-
-/* vec_vminuh */
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vminuh(vector unsigned short __a, vector unsigned short __b) {
-  return __builtin_altivec_vminuh(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vminuh(vector bool short __a, vector unsigned short __b) {
-  return __builtin_altivec_vminuh((vector unsigned short)__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vminuh(vector unsigned short __a, vector bool short __b) {
-  return __builtin_altivec_vminuh(__a, (vector unsigned short)__b);
-}
-
-/* vec_vminsw */
-
-static __inline__ vector int __ATTRS_o_ai vec_vminsw(vector int __a,
-                                                     vector int __b) {
-  return __builtin_altivec_vminsw(__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vminsw(vector bool int __a,
-                                                     vector int __b) {
-  return __builtin_altivec_vminsw((vector int)__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vminsw(vector int __a,
-                                                     vector bool int __b) {
-  return __builtin_altivec_vminsw(__a, (vector int)__b);
-}
-
-/* vec_vminuw */
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vminuw(vector unsigned int __a, vector unsigned int __b) {
-  return __builtin_altivec_vminuw(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vminuw(vector bool int __a, vector unsigned int __b) {
-  return __builtin_altivec_vminuw((vector unsigned int)__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vminuw(vector unsigned int __a, vector bool int __b) {
-  return __builtin_altivec_vminuw(__a, (vector unsigned int)__b);
-}
-
-/* vec_vminfp */
-
-static __inline__ vector float __attribute__((__always_inline__))
-vec_vminfp(vector float __a, vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvminsp(__a, __b);
-#else
-  return __builtin_altivec_vminfp(__a, __b);
-#endif
-}
-
-/* vec_mladd */
-
-#define __builtin_altivec_vmladduhm vec_mladd
-
-static __inline__ vector short __ATTRS_o_ai vec_mladd(vector short __a,
-                                                      vector short __b,
-                                                      vector short __c) {
-  return __a * __b + __c;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_mladd(
-    vector short __a, vector unsigned short __b, vector unsigned short __c) {
-  return __a * (vector short)__b + (vector short)__c;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_mladd(vector unsigned short __a,
-                                                      vector short __b,
-                                                      vector short __c) {
-  return (vector short)__a * __b + __c;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_mladd(vector unsigned short __a, vector unsigned short __b,
-          vector unsigned short __c) {
-  return __a * __b + __c;
-}
-
-/* vec_vmladduhm */
-
-static __inline__ vector short __ATTRS_o_ai vec_vmladduhm(vector short __a,
-                                                          vector short __b,
-                                                          vector short __c) {
-  return __a * __b + __c;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vmladduhm(
-    vector short __a, vector unsigned short __b, vector unsigned short __c) {
-  return __a * (vector short)__b + (vector short)__c;
-}
-
-static __inline__ vector short __ATTRS_o_ai
-vec_vmladduhm(vector unsigned short __a, vector short __b, vector short __c) {
-  return (vector short)__a * __b + __c;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vmladduhm(vector unsigned short __a, vector unsigned short __b,
-              vector unsigned short __c) {
-  return __a * __b + __c;
-}
-
-/* vec_mradds */
-
-static __inline__ vector short __attribute__((__always_inline__))
-vec_mradds(vector short __a, vector short __b, vector short __c) {
-  return __builtin_altivec_vmhraddshs(__a, __b, __c);
-}
-
-/* vec_vmhraddshs */
-
-static __inline__ vector short __attribute__((__always_inline__))
-vec_vmhraddshs(vector short __a, vector short __b, vector short __c) {
-  return __builtin_altivec_vmhraddshs(__a, __b, __c);
-}
-
-/* vec_msum */
-
-static __inline__ vector int __ATTRS_o_ai vec_msum(vector signed char __a,
-                                                   vector unsigned char __b,
-                                                   vector int __c) {
-  return __builtin_altivec_vmsummbm(__a, __b, __c);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_msum(vector unsigned char __a, vector unsigned char __b,
-         vector unsigned int __c) {
-  return __builtin_altivec_vmsumubm(__a, __b, __c);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_msum(vector short __a,
-                                                   vector short __b,
-                                                   vector int __c) {
-  return __builtin_altivec_vmsumshm(__a, __b, __c);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_msum(vector unsigned short __a, vector unsigned short __b,
-         vector unsigned int __c) {
-  return __builtin_altivec_vmsumuhm(__a, __b, __c);
-}
-
-/* vec_msumc */
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_msumc(vector unsigned long long __a, vector unsigned long long __b,
-          vector unsigned __int128 __c) {
-  return __builtin_altivec_vmsumcud(__a, __b, __c);
-}
-#endif
-
-/* vec_vmsummbm */
-
-static __inline__ vector int __attribute__((__always_inline__))
-vec_vmsummbm(vector signed char __a, vector unsigned char __b, vector int __c) {
-  return __builtin_altivec_vmsummbm(__a, __b, __c);
-}
-
-/* vec_vmsumubm */
-
-static __inline__ vector unsigned int __attribute__((__always_inline__))
-vec_vmsumubm(vector unsigned char __a, vector unsigned char __b,
-             vector unsigned int __c) {
-  return __builtin_altivec_vmsumubm(__a, __b, __c);
-}
-
-/* vec_vmsumshm */
-
-static __inline__ vector int __attribute__((__always_inline__))
-vec_vmsumshm(vector short __a, vector short __b, vector int __c) {
-  return __builtin_altivec_vmsumshm(__a, __b, __c);
-}
-
-/* vec_vmsumuhm */
-
-static __inline__ vector unsigned int __attribute__((__always_inline__))
-vec_vmsumuhm(vector unsigned short __a, vector unsigned short __b,
-             vector unsigned int __c) {
-  return __builtin_altivec_vmsumuhm(__a, __b, __c);
-}
-
-/* vec_msums */
-
-static __inline__ vector int __ATTRS_o_ai vec_msums(vector short __a,
-                                                    vector short __b,
-                                                    vector int __c) {
-  return __builtin_altivec_vmsumshs(__a, __b, __c);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_msums(vector unsigned short __a, vector unsigned short __b,
-          vector unsigned int __c) {
-  return __builtin_altivec_vmsumuhs(__a, __b, __c);
-}
-
-/* vec_vmsumshs */
-
-static __inline__ vector int __attribute__((__always_inline__))
-vec_vmsumshs(vector short __a, vector short __b, vector int __c) {
-  return __builtin_altivec_vmsumshs(__a, __b, __c);
-}
-
-/* vec_vmsumuhs */
-
-static __inline__ vector unsigned int __attribute__((__always_inline__))
-vec_vmsumuhs(vector unsigned short __a, vector unsigned short __b,
-             vector unsigned int __c) {
-  return __builtin_altivec_vmsumuhs(__a, __b, __c);
-}
-
-/* vec_mtvscr */
-
-static __inline__ void __ATTRS_o_ai vec_mtvscr(vector signed char __a) {
-  __builtin_altivec_mtvscr((vector int)__a);
-}
-
-static __inline__ void __ATTRS_o_ai vec_mtvscr(vector unsigned char __a) {
-  __builtin_altivec_mtvscr((vector int)__a);
-}
-
-static __inline__ void __ATTRS_o_ai vec_mtvscr(vector bool char __a) {
-  __builtin_altivec_mtvscr((vector int)__a);
-}
-
-static __inline__ void __ATTRS_o_ai vec_mtvscr(vector short __a) {
-  __builtin_altivec_mtvscr((vector int)__a);
-}
-
-static __inline__ void __ATTRS_o_ai vec_mtvscr(vector unsigned short __a) {
-  __builtin_altivec_mtvscr((vector int)__a);
-}
-
-static __inline__ void __ATTRS_o_ai vec_mtvscr(vector bool short __a) {
-  __builtin_altivec_mtvscr((vector int)__a);
-}
-
-static __inline__ void __ATTRS_o_ai vec_mtvscr(vector pixel __a) {
-  __builtin_altivec_mtvscr((vector int)__a);
-}
-
-static __inline__ void __ATTRS_o_ai vec_mtvscr(vector int __a) {
-  __builtin_altivec_mtvscr((vector int)__a);
-}
-
-static __inline__ void __ATTRS_o_ai vec_mtvscr(vector unsigned int __a) {
-  __builtin_altivec_mtvscr((vector int)__a);
-}
-
-static __inline__ void __ATTRS_o_ai vec_mtvscr(vector bool int __a) {
-  __builtin_altivec_mtvscr((vector int)__a);
-}
-
-static __inline__ void __ATTRS_o_ai vec_mtvscr(vector float __a) {
-  __builtin_altivec_mtvscr((vector int)__a);
-}
-
-/* vec_mul */
-
-/* Integer vector multiplication will involve multiplication of the odd/even
-   elements separately, then truncating the results and moving to the
-   result vector.
-*/
-static __inline__ vector signed char __ATTRS_o_ai
-vec_mul(vector signed char __a, vector signed char __b) {
-  return __a * __b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_mul(vector unsigned char __a, vector unsigned char __b) {
-  return __a * __b;
-}
-
-static __inline__ vector signed short __ATTRS_o_ai
-vec_mul(vector signed short __a, vector signed short __b) {
-  return __a * __b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_mul(vector unsigned short __a, vector unsigned short __b) {
-  return __a * __b;
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_mul(vector signed int __a, vector signed int __b) {
-  return __a * __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_mul(vector unsigned int __a, vector unsigned int __b) {
-  return __a * __b;
-}
-
-#ifdef __VSX__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_mul(vector signed long long __a, vector signed long long __b) {
-  return __a * __b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_mul(vector unsigned long long __a, vector unsigned long long __b) {
-  return __a * __b;
-}
-#endif
-
-static __inline__ vector float __ATTRS_o_ai vec_mul(vector float __a,
-                                                    vector float __b) {
-  return __a * __b;
-}
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai vec_mul(vector double __a,
-                                                     vector double __b) {
-  return __a * __b;
-}
-#endif
-
-/* The vmulos* and vmules* instructions have a big endian bias, so
-   we must reverse the meaning of "even" and "odd" for little endian.  */
-
-/* vec_mule */
-
-static __inline__ vector short __ATTRS_o_ai vec_mule(vector signed char __a,
-                                                     vector signed char __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmulosb(__a, __b);
-#else
-  return __builtin_altivec_vmulesb(__a, __b);
-#endif
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_mule(vector unsigned char __a, vector unsigned char __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmuloub(__a, __b);
-#else
-  return __builtin_altivec_vmuleub(__a, __b);
-#endif
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_mule(vector short __a,
-                                                   vector short __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmulosh(__a, __b);
-#else
-  return __builtin_altivec_vmulesh(__a, __b);
-#endif
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_mule(vector unsigned short __a, vector unsigned short __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmulouh(__a, __b);
-#else
-  return __builtin_altivec_vmuleuh(__a, __b);
-#endif
-}
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_mule(vector signed int __a, vector signed int __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmulosw(__a, __b);
-#else
-  return __builtin_altivec_vmulesw(__a, __b);
-#endif
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_mule(vector unsigned int __a, vector unsigned int __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmulouw(__a, __b);
-#else
-  return __builtin_altivec_vmuleuw(__a, __b);
-#endif
-}
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_mule(vector signed long long __a, vector signed long long __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmulosd(__a, __b);
-#else
-  return __builtin_altivec_vmulesd(__a, __b);
-#endif
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_mule(vector unsigned long long __a, vector unsigned long long __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmuloud(__a, __b);
-#else
-  return __builtin_altivec_vmuleud(__a, __b);
-#endif
-}
-#endif
-
-/* vec_vmulesb */
-
-static __inline__ vector short __attribute__((__always_inline__))
-vec_vmulesb(vector signed char __a, vector signed char __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmulosb(__a, __b);
-#else
-  return __builtin_altivec_vmulesb(__a, __b);
-#endif
-}
-
-/* vec_vmuleub */
-
-static __inline__ vector unsigned short __attribute__((__always_inline__))
-vec_vmuleub(vector unsigned char __a, vector unsigned char __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmuloub(__a, __b);
-#else
-  return __builtin_altivec_vmuleub(__a, __b);
-#endif
-}
-
-/* vec_vmulesh */
-
-static __inline__ vector int __attribute__((__always_inline__))
-vec_vmulesh(vector short __a, vector short __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmulosh(__a, __b);
-#else
-  return __builtin_altivec_vmulesh(__a, __b);
-#endif
-}
-
-/* vec_vmuleuh */
-
-static __inline__ vector unsigned int __attribute__((__always_inline__))
-vec_vmuleuh(vector unsigned short __a, vector unsigned short __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmulouh(__a, __b);
-#else
-  return __builtin_altivec_vmuleuh(__a, __b);
-#endif
-}
-
-/* vec_mulh */
-
-#ifdef __POWER10_VECTOR__
-static __inline__ vector signed int __ATTRS_o_ai
-vec_mulh(vector signed int __a, vector signed int __b) {
-  return __builtin_altivec_vmulhsw(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_mulh(vector unsigned int __a, vector unsigned int __b) {
-  return __builtin_altivec_vmulhuw(__a, __b);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_mulh(vector signed long long __a, vector signed long long __b) {
-  return __builtin_altivec_vmulhsd(__a, __b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_mulh(vector unsigned long long __a, vector unsigned long long __b) {
-  return __builtin_altivec_vmulhud(__a, __b);
-}
-#endif
-
-/* vec_mulo */
-
-static __inline__ vector short __ATTRS_o_ai vec_mulo(vector signed char __a,
-                                                     vector signed char __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmulesb(__a, __b);
-#else
-  return __builtin_altivec_vmulosb(__a, __b);
-#endif
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_mulo(vector unsigned char __a, vector unsigned char __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmuleub(__a, __b);
-#else
-  return __builtin_altivec_vmuloub(__a, __b);
-#endif
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_mulo(vector short __a,
-                                                   vector short __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmulesh(__a, __b);
-#else
-  return __builtin_altivec_vmulosh(__a, __b);
-#endif
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_mulo(vector unsigned short __a, vector unsigned short __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmuleuh(__a, __b);
-#else
-  return __builtin_altivec_vmulouh(__a, __b);
-#endif
-}
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_mulo(vector signed int __a, vector signed int __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmulesw(__a, __b);
-#else
-  return __builtin_altivec_vmulosw(__a, __b);
-#endif
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_mulo(vector unsigned int __a, vector unsigned int __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmuleuw(__a, __b);
-#else
-  return __builtin_altivec_vmulouw(__a, __b);
-#endif
-}
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_mulo(vector signed long long __a, vector signed long long __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmulesd(__a, __b);
-#else
-  return __builtin_altivec_vmulosd(__a, __b);
-#endif
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_mulo(vector unsigned long long __a, vector unsigned long long __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmuleud(__a, __b);
-#else
-  return __builtin_altivec_vmuloud(__a, __b);
-#endif
-}
-#endif
-
-/* vec_vmulosb */
-
-static __inline__ vector short __attribute__((__always_inline__))
-vec_vmulosb(vector signed char __a, vector signed char __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmulesb(__a, __b);
-#else
-  return __builtin_altivec_vmulosb(__a, __b);
-#endif
-}
-
-/* vec_vmuloub */
-
-static __inline__ vector unsigned short __attribute__((__always_inline__))
-vec_vmuloub(vector unsigned char __a, vector unsigned char __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmuleub(__a, __b);
-#else
-  return __builtin_altivec_vmuloub(__a, __b);
-#endif
-}
-
-/* vec_vmulosh */
-
-static __inline__ vector int __attribute__((__always_inline__))
-vec_vmulosh(vector short __a, vector short __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmulesh(__a, __b);
-#else
-  return __builtin_altivec_vmulosh(__a, __b);
-#endif
-}
-
-/* vec_vmulouh */
-
-static __inline__ vector unsigned int __attribute__((__always_inline__))
-vec_vmulouh(vector unsigned short __a, vector unsigned short __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vmuleuh(__a, __b);
-#else
-  return __builtin_altivec_vmulouh(__a, __b);
-#endif
-}
-
-/*  vec_nand */
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector signed char __ATTRS_o_ai
-vec_nand(vector signed char __a, vector signed char __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_nand(vector signed char __a, vector bool char __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_nand(vector bool char __a, vector signed char __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_nand(vector unsigned char __a, vector unsigned char __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_nand(vector unsigned char __a, vector bool char __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_nand(vector bool char __a, vector unsigned char __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai vec_nand(vector bool char __a,
-                                                         vector bool char __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector signed short __ATTRS_o_ai
-vec_nand(vector signed short __a, vector signed short __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector signed short __ATTRS_o_ai
-vec_nand(vector signed short __a, vector bool short __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector signed short __ATTRS_o_ai
-vec_nand(vector bool short __a, vector signed short __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_nand(vector unsigned short __a, vector unsigned short __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_nand(vector unsigned short __a, vector bool short __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_nand(vector bool short __a, vector bool short __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_nand(vector signed int __a, vector signed int __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector signed int __ATTRS_o_ai vec_nand(vector signed int __a,
-                                                          vector bool int __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_nand(vector bool int __a, vector signed int __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_nand(vector unsigned int __a, vector unsigned int __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_nand(vector unsigned int __a, vector bool int __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_nand(vector bool int __a, vector unsigned int __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_nand(vector bool int __a,
-                                                        vector bool int __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_nand(vector float __a, vector float __b) {
-  return (vector float)(~((vector unsigned int)__a &
-                          (vector unsigned int)__b));
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_nand(vector signed long long __a, vector signed long long __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_nand(vector signed long long __a, vector bool long long __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_nand(vector bool long long __a, vector signed long long __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_nand(vector unsigned long long __a, vector unsigned long long __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_nand(vector unsigned long long __a, vector bool long long __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_nand(vector bool long long __a, vector unsigned long long __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_nand(vector bool long long __a, vector bool long long __b) {
-  return ~(__a & __b);
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_nand(vector double __a, vector double __b) {
-  return (vector double)(~((vector unsigned long long)__a &
-                           (vector unsigned long long)__b));
-}
-
-#endif
-
-/* vec_nmadd */
-
-#ifdef __VSX__
-static __inline__ vector float __ATTRS_o_ai vec_nmadd(vector float __a,
-                                                      vector float __b,
-                                                      vector float __c) {
-  return __builtin_vsx_xvnmaddasp(__a, __b, __c);
-}
-
-static __inline__ vector double __ATTRS_o_ai vec_nmadd(vector double __a,
-                                                       vector double __b,
-                                                       vector double __c) {
-  return __builtin_vsx_xvnmaddadp(__a, __b, __c);
-}
-#endif
-
-/* vec_nmsub */
-
-static __inline__ vector float __ATTRS_o_ai vec_nmsub(vector float __a,
-                                                      vector float __b,
-                                                      vector float __c) {
-#ifdef __VSX__
-  return __builtin_vsx_xvnmsubasp(__a, __b, __c);
-#else
-  return __builtin_altivec_vnmsubfp(__a, __b, __c);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai vec_nmsub(vector double __a,
-                                                       vector double __b,
-                                                       vector double __c) {
-  return __builtin_vsx_xvnmsubadp(__a, __b, __c);
-}
-#endif
-
-/* vec_vnmsubfp */
-
-static __inline__ vector float __attribute__((__always_inline__))
-vec_vnmsubfp(vector float __a, vector float __b, vector float __c) {
-  return __builtin_altivec_vnmsubfp(__a, __b, __c);
-}
-
-/* vec_nor */
-
-#define __builtin_altivec_vnor vec_nor
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_nor(vector signed char __a, vector signed char __b) {
-  return ~(__a | __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_nor(vector unsigned char __a, vector unsigned char __b) {
-  return ~(__a | __b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai vec_nor(vector bool char __a,
-                                                        vector bool char __b) {
-  return ~(__a | __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_nor(vector short __a,
-                                                    vector short __b) {
-  return ~(__a | __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_nor(vector unsigned short __a, vector unsigned short __b) {
-  return ~(__a | __b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_nor(vector bool short __a, vector bool short __b) {
-  return ~(__a | __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_nor(vector int __a,
-                                                  vector int __b) {
-  return ~(__a | __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_nor(vector unsigned int __a, vector unsigned int __b) {
-  return ~(__a | __b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_nor(vector bool int __a,
-                                                       vector bool int __b) {
-  return ~(__a | __b);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_nor(vector float __a,
-                                                    vector float __b) {
-  vector unsigned int __res =
-      ~((vector unsigned int)__a | (vector unsigned int)__b);
-  return (vector float)__res;
-}
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai vec_nor(vector double __a,
-                                                     vector double __b) {
-  vector unsigned long long __res =
-      ~((vector unsigned long long)__a | (vector unsigned long long)__b);
-  return (vector double)__res;
-}
-#endif
-
-/* vec_vnor */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vnor(vector signed char __a, vector signed char __b) {
-  return ~(__a | __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vnor(vector unsigned char __a, vector unsigned char __b) {
-  return ~(__a | __b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai vec_vnor(vector bool char __a,
-                                                         vector bool char __b) {
-  return ~(__a | __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vnor(vector short __a,
-                                                     vector short __b) {
-  return ~(__a | __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vnor(vector unsigned short __a, vector unsigned short __b) {
-  return ~(__a | __b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_vnor(vector bool short __a, vector bool short __b) {
-  return ~(__a | __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vnor(vector int __a,
-                                                   vector int __b) {
-  return ~(__a | __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vnor(vector unsigned int __a, vector unsigned int __b) {
-  return ~(__a | __b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_vnor(vector bool int __a,
-                                                        vector bool int __b) {
-  return ~(__a | __b);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vnor(vector float __a,
-                                                     vector float __b) {
-  vector unsigned int __res =
-      ~((vector unsigned int)__a | (vector unsigned int)__b);
-  return (vector float)__res;
-}
-
-#ifdef __VSX__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_nor(vector signed long long __a, vector signed long long __b) {
-  return ~(__a | __b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_nor(vector unsigned long long __a, vector unsigned long long __b) {
-  return ~(__a | __b);
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_nor(vector bool long long __a, vector bool long long __b) {
-  return ~(__a | __b);
-}
-#endif
-
-/* vec_or */
-
-#define __builtin_altivec_vor vec_or
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_or(vector signed char __a, vector signed char __b) {
-  return __a | __b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_or(vector bool char __a, vector signed char __b) {
-  return (vector signed char)__a | __b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai vec_or(vector signed char __a,
-                                                         vector bool char __b) {
-  return __a | (vector signed char)__b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_or(vector unsigned char __a, vector unsigned char __b) {
-  return __a | __b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_or(vector bool char __a, vector unsigned char __b) {
-  return (vector unsigned char)__a | __b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_or(vector unsigned char __a, vector bool char __b) {
-  return __a | (vector unsigned char)__b;
-}
-
-static __inline__ vector bool char __ATTRS_o_ai vec_or(vector bool char __a,
-                                                       vector bool char __b) {
-  return __a | __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_or(vector short __a,
-                                                   vector short __b) {
-  return __a | __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_or(vector bool short __a,
-                                                   vector short __b) {
-  return (vector short)__a | __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_or(vector short __a,
-                                                   vector bool short __b) {
-  return __a | (vector short)__b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_or(vector unsigned short __a, vector unsigned short __b) {
-  return __a | __b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_or(vector bool short __a, vector unsigned short __b) {
-  return (vector unsigned short)__a | __b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_or(vector unsigned short __a, vector bool short __b) {
-  return __a | (vector unsigned short)__b;
-}
-
-static __inline__ vector bool short __ATTRS_o_ai vec_or(vector bool short __a,
-                                                        vector bool short __b) {
-  return __a | __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_or(vector int __a,
-                                                 vector int __b) {
-  return __a | __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_or(vector bool int __a,
-                                                 vector int __b) {
-  return (vector int)__a | __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_or(vector int __a,
-                                                 vector bool int __b) {
-  return __a | (vector int)__b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_or(vector unsigned int __a, vector unsigned int __b) {
-  return __a | __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_or(vector bool int __a, vector unsigned int __b) {
-  return (vector unsigned int)__a | __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_or(vector unsigned int __a, vector bool int __b) {
-  return __a | (vector unsigned int)__b;
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_or(vector bool int __a,
-                                                      vector bool int __b) {
-  return __a | __b;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_or(vector float __a,
-                                                   vector float __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a | (vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_or(vector bool int __a,
-                                                   vector float __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a | (vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_or(vector float __a,
-                                                   vector bool int __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a | (vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai vec_or(vector bool long long __a,
-                                                    vector double __b) {
-  return (vector double)((vector unsigned long long)__a |
-                         (vector unsigned long long)__b);
-}
-
-static __inline__ vector double __ATTRS_o_ai vec_or(vector double __a,
-                                                    vector bool long long __b) {
-  return (vector double)((vector unsigned long long)__a |
-                         (vector unsigned long long)__b);
-}
-
-static __inline__ vector double __ATTRS_o_ai vec_or(vector double __a,
-                                                    vector double __b) {
-  return (vector double)((vector unsigned long long)__a |
-                         (vector unsigned long long)__b);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_or(vector signed long long __a, vector signed long long __b) {
-  return __a | __b;
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_or(vector bool long long __a, vector signed long long __b) {
-  return (vector signed long long)__a | __b;
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_or(vector signed long long __a, vector bool long long __b) {
-  return __a | (vector signed long long)__b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_or(vector unsigned long long __a, vector unsigned long long __b) {
-  return __a | __b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_or(vector bool long long __a, vector unsigned long long __b) {
-  return (vector unsigned long long)__a | __b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_or(vector unsigned long long __a, vector bool long long __b) {
-  return __a | (vector unsigned long long)__b;
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_or(vector bool long long __a, vector bool long long __b) {
-  return __a | __b;
-}
-#endif
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector signed char __ATTRS_o_ai
-vec_orc(vector signed char __a, vector signed char __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_orc(vector signed char __a, vector bool char __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_orc(vector bool char __a, vector signed char __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_orc(vector unsigned char __a, vector unsigned char __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_orc(vector unsigned char __a, vector bool char __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_orc(vector bool char __a, vector unsigned char __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector bool char __ATTRS_o_ai vec_orc(vector bool char __a,
-                                                        vector bool char __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector signed short __ATTRS_o_ai
-vec_orc(vector signed short __a, vector signed short __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector signed short __ATTRS_o_ai
-vec_orc(vector signed short __a, vector bool short __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector signed short __ATTRS_o_ai
-vec_orc(vector bool short __a, vector signed short __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_orc(vector unsigned short __a, vector unsigned short __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_orc(vector unsigned short __a, vector bool short __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_orc(vector bool short __a, vector unsigned short __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_orc(vector bool short __a, vector bool short __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_orc(vector signed int __a, vector signed int __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector signed int __ATTRS_o_ai vec_orc(vector signed int __a,
-                                                         vector bool int __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_orc(vector bool int __a, vector signed int __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_orc(vector unsigned int __a, vector unsigned int __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_orc(vector unsigned int __a, vector bool int __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_orc(vector bool int __a, vector unsigned int __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_orc(vector bool int __a,
-                                                       vector bool int __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_orc(vector bool int __a, vector float __b) {
- return (vector float)(__a | ~(vector unsigned int)__b);
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_orc(vector float __a, vector bool int __b) {
-  return (vector float)((vector unsigned int)__a | ~__b);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_orc(vector signed long long __a, vector signed long long __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_orc(vector signed long long __a, vector bool long long __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_orc(vector bool long long __a, vector signed long long __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_orc(vector unsigned long long __a, vector unsigned long long __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_orc(vector unsigned long long __a, vector bool long long __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_orc(vector bool long long __a, vector unsigned long long __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_orc(vector bool long long __a, vector bool long long __b) {
-  return __a | ~__b;
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_orc(vector double __a, vector bool long long __b) {
-  return (vector double)((vector unsigned long long)__a | ~__b);
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_orc(vector bool long long __a, vector double __b) {
-  return (vector double)(__a | ~(vector unsigned long long)__b);
-}
-#endif
-
-/* vec_vor */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vor(vector signed char __a, vector signed char __b) {
-  return __a | __b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vor(vector bool char __a, vector signed char __b) {
-  return (vector signed char)__a | __b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vor(vector signed char __a, vector bool char __b) {
-  return __a | (vector signed char)__b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vor(vector unsigned char __a, vector unsigned char __b) {
-  return __a | __b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vor(vector bool char __a, vector unsigned char __b) {
-  return (vector unsigned char)__a | __b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vor(vector unsigned char __a, vector bool char __b) {
-  return __a | (vector unsigned char)__b;
-}
-
-static __inline__ vector bool char __ATTRS_o_ai vec_vor(vector bool char __a,
-                                                        vector bool char __b) {
-  return __a | __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vor(vector short __a,
-                                                    vector short __b) {
-  return __a | __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vor(vector bool short __a,
-                                                    vector short __b) {
-  return (vector short)__a | __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vor(vector short __a,
-                                                    vector bool short __b) {
-  return __a | (vector short)__b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vor(vector unsigned short __a, vector unsigned short __b) {
-  return __a | __b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vor(vector bool short __a, vector unsigned short __b) {
-  return (vector unsigned short)__a | __b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vor(vector unsigned short __a, vector bool short __b) {
-  return __a | (vector unsigned short)__b;
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_vor(vector bool short __a, vector bool short __b) {
-  return __a | __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vor(vector int __a,
-                                                  vector int __b) {
-  return __a | __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vor(vector bool int __a,
-                                                  vector int __b) {
-  return (vector int)__a | __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vor(vector int __a,
-                                                  vector bool int __b) {
-  return __a | (vector int)__b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vor(vector unsigned int __a, vector unsigned int __b) {
-  return __a | __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vor(vector bool int __a, vector unsigned int __b) {
-  return (vector unsigned int)__a | __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vor(vector unsigned int __a, vector bool int __b) {
-  return __a | (vector unsigned int)__b;
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_vor(vector bool int __a,
-                                                       vector bool int __b) {
-  return __a | __b;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vor(vector float __a,
-                                                    vector float __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a | (vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vor(vector bool int __a,
-                                                    vector float __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a | (vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vor(vector float __a,
-                                                    vector bool int __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a | (vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-#ifdef __VSX__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_vor(vector signed long long __a, vector signed long long __b) {
-  return __a | __b;
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_vor(vector bool long long __a, vector signed long long __b) {
-  return (vector signed long long)__a | __b;
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_vor(vector signed long long __a, vector bool long long __b) {
-  return __a | (vector signed long long)__b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_vor(vector unsigned long long __a, vector unsigned long long __b) {
-  return __a | __b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_vor(vector bool long long __a, vector unsigned long long __b) {
-  return (vector unsigned long long)__a | __b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_vor(vector unsigned long long __a, vector bool long long __b) {
-  return __a | (vector unsigned long long)__b;
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_vor(vector bool long long __a, vector bool long long __b) {
-  return __a | __b;
-}
-#endif
-
-/* vec_pack */
-
-/* The various vector pack instructions have a big-endian bias, so for
-   little endian we must handle reversed element numbering.  */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_pack(vector signed short __a, vector signed short __b) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector signed char)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
-                             0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
-#else
-  return (vector signed char)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
-                             0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
-#endif
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_pack(vector unsigned short __a, vector unsigned short __b) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector unsigned char)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
-                             0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
-#else
-  return (vector unsigned char)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
-                             0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
-#endif
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_pack(vector bool short __a, vector bool short __b) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector bool char)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
-                             0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
-#else
-  return (vector bool char)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
-                             0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
-#endif
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_pack(vector int __a,
-                                                     vector int __b) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector short)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
-                             0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
-#else
-  return (vector short)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
-                             0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
-#endif
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_pack(vector unsigned int __a, vector unsigned int __b) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector unsigned short)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
-                             0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
-#else
-  return (vector unsigned short)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
-                             0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
-#endif
-}
-
-static __inline__ vector bool short __ATTRS_o_ai vec_pack(vector bool int __a,
-                                                          vector bool int __b) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector bool short)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
-                             0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
-#else
-  return (vector bool short)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
-                             0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ vector signed int __ATTRS_o_ai
-vec_pack(vector signed long long __a, vector signed long long __b) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector signed int)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
-                             0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
-#else
-  return (vector signed int)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
-                             0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
-#endif
-}
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_pack(vector unsigned long long __a, vector unsigned long long __b) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector unsigned int)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
-                             0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
-#else
-  return (vector unsigned int)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
-                             0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
-#endif
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_pack(vector bool long long __a, vector bool long long __b) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector bool int)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
-                             0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
-#else
-  return (vector bool int)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
-                             0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
-#endif
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_pack(vector double __a, vector double __b) {
-  return (vector float) (__a[0], __a[1], __b[0], __b[1]);
-}
-#endif
-
-#ifdef __POWER9_VECTOR__
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_pack_to_short_fp32(vector float __a, vector float __b) {
-  vector float __resa = __builtin_vsx_xvcvsphp(__a);
-  vector float __resb = __builtin_vsx_xvcvsphp(__b);
-#ifdef __LITTLE_ENDIAN__
-  return (vector unsigned short)vec_mergee(__resa, __resb);
-#else
-  return (vector unsigned short)vec_mergeo(__resa, __resb);
-#endif
-}
-
-#endif
-/* vec_vpkuhum */
-
-#define __builtin_altivec_vpkuhum vec_vpkuhum
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vpkuhum(vector signed short __a, vector signed short __b) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector signed char)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
-                             0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
-#else
-  return (vector signed char)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
-                             0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
-#endif
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vpkuhum(vector unsigned short __a, vector unsigned short __b) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector unsigned char)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
-                             0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
-#else
-  return (vector unsigned char)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
-                             0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
-#endif
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_vpkuhum(vector bool short __a, vector bool short __b) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector bool char)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
-                             0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
-#else
-  return (vector bool char)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
-                             0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
-#endif
-}
-
-/* vec_vpkuwum */
-
-#define __builtin_altivec_vpkuwum vec_vpkuwum
-
-static __inline__ vector short __ATTRS_o_ai vec_vpkuwum(vector int __a,
-                                                        vector int __b) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector short)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
-                             0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
-#else
-  return (vector short)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
-                             0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
-#endif
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vpkuwum(vector unsigned int __a, vector unsigned int __b) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector unsigned short)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
-                             0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
-#else
-  return (vector unsigned short)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
-                             0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
-#endif
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_vpkuwum(vector bool int __a, vector bool int __b) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector bool short)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
-                             0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
-#else
-  return (vector bool short)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
-                             0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
-#endif
-}
-
-/* vec_vpkudum */
-
-#ifdef __POWER8_VECTOR__
-#define __builtin_altivec_vpkudum vec_vpkudum
-
-static __inline__ vector int __ATTRS_o_ai vec_vpkudum(vector long long __a,
-                                                      vector long long __b) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector int)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
-                             0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
-#else
-  return (vector int)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
-                             0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
-#endif
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vpkudum(vector unsigned long long __a, vector unsigned long long __b) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector unsigned int)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
-                             0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
-#else
-  return (vector unsigned int)vec_perm(
-      __a, __b,
-      (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
-                             0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
-#endif
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_vpkudum(vector bool long long __a, vector bool long long __b) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector bool int)vec_perm(
-      (vector long long)__a, (vector long long)__b,
-      (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
-                             0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
-#else
-  return (vector bool int)vec_perm(
-      (vector long long)__a, (vector long long)__b,
-      (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
-                             0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
-#endif
-}
-#endif
-
-/* vec_packpx */
-
-static __inline__ vector pixel __attribute__((__always_inline__))
-vec_packpx(vector unsigned int __a, vector unsigned int __b) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector pixel)__builtin_altivec_vpkpx(__b, __a);
-#else
-  return (vector pixel)__builtin_altivec_vpkpx(__a, __b);
-#endif
-}
-
-/* vec_vpkpx */
-
-static __inline__ vector pixel __attribute__((__always_inline__))
-vec_vpkpx(vector unsigned int __a, vector unsigned int __b) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector pixel)__builtin_altivec_vpkpx(__b, __a);
-#else
-  return (vector pixel)__builtin_altivec_vpkpx(__a, __b);
-#endif
-}
-
-/* vec_packs */
-
-static __inline__ vector signed char __ATTRS_o_ai vec_packs(vector short __a,
-                                                            vector short __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vpkshss(__b, __a);
-#else
-  return __builtin_altivec_vpkshss(__a, __b);
-#endif
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_packs(vector unsigned short __a, vector unsigned short __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vpkuhus(__b, __a);
-#else
-  return __builtin_altivec_vpkuhus(__a, __b);
-#endif
-}
-
-static __inline__ vector signed short __ATTRS_o_ai vec_packs(vector int __a,
-                                                             vector int __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vpkswss(__b, __a);
-#else
-  return __builtin_altivec_vpkswss(__a, __b);
-#endif
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_packs(vector unsigned int __a, vector unsigned int __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vpkuwus(__b, __a);
-#else
-  return __builtin_altivec_vpkuwus(__a, __b);
-#endif
-}
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector int __ATTRS_o_ai vec_packs(vector long long __a,
-                                                    vector long long __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vpksdss(__b, __a);
-#else
-  return __builtin_altivec_vpksdss(__a, __b);
-#endif
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_packs(vector unsigned long long __a, vector unsigned long long __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vpkudus(__b, __a);
-#else
-  return __builtin_altivec_vpkudus(__a, __b);
-#endif
-}
-#endif
-
-/* vec_vpkshss */
-
-static __inline__ vector signed char __attribute__((__always_inline__))
-vec_vpkshss(vector short __a, vector short __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vpkshss(__b, __a);
-#else
-  return __builtin_altivec_vpkshss(__a, __b);
-#endif
-}
-
-/* vec_vpksdss */
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector int __ATTRS_o_ai vec_vpksdss(vector long long __a,
-                                                      vector long long __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vpksdss(__b, __a);
-#else
-  return __builtin_altivec_vpksdss(__a, __b);
-#endif
-}
-#endif
-
-/* vec_vpkuhus */
-
-static __inline__ vector unsigned char __attribute__((__always_inline__))
-vec_vpkuhus(vector unsigned short __a, vector unsigned short __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vpkuhus(__b, __a);
-#else
-  return __builtin_altivec_vpkuhus(__a, __b);
-#endif
-}
-
-/* vec_vpkudus */
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector unsigned int __attribute__((__always_inline__))
-vec_vpkudus(vector unsigned long long __a, vector unsigned long long __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vpkudus(__b, __a);
-#else
-  return __builtin_altivec_vpkudus(__a, __b);
-#endif
-}
-#endif
-
-/* vec_vpkswss */
-
-static __inline__ vector signed short __attribute__((__always_inline__))
-vec_vpkswss(vector int __a, vector int __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vpkswss(__b, __a);
-#else
-  return __builtin_altivec_vpkswss(__a, __b);
-#endif
-}
-
-/* vec_vpkuwus */
-
-static __inline__ vector unsigned short __attribute__((__always_inline__))
-vec_vpkuwus(vector unsigned int __a, vector unsigned int __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vpkuwus(__b, __a);
-#else
-  return __builtin_altivec_vpkuwus(__a, __b);
-#endif
-}
-
-/* vec_packsu */
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_packsu(vector short __a, vector short __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vpkshus(__b, __a);
-#else
-  return __builtin_altivec_vpkshus(__a, __b);
-#endif
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_packsu(vector unsigned short __a, vector unsigned short __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vpkuhus(__b, __a);
-#else
-  return __builtin_altivec_vpkuhus(__a, __b);
-#endif
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_packsu(vector int __a, vector int __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vpkswus(__b, __a);
-#else
-  return __builtin_altivec_vpkswus(__a, __b);
-#endif
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_packsu(vector unsigned int __a, vector unsigned int __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vpkuwus(__b, __a);
-#else
-  return __builtin_altivec_vpkuwus(__a, __b);
-#endif
-}
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_packsu(vector long long __a, vector long long __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vpksdus(__b, __a);
-#else
-  return __builtin_altivec_vpksdus(__a, __b);
-#endif
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_packsu(vector unsigned long long __a, vector unsigned long long __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vpkudus(__b, __a);
-#else
-  return __builtin_altivec_vpkudus(__a, __b);
-#endif
-}
-#endif
-
-/* vec_vpkshus */
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vpkshus(vector short __a, vector short __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vpkshus(__b, __a);
-#else
-  return __builtin_altivec_vpkshus(__a, __b);
-#endif
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vpkshus(vector unsigned short __a, vector unsigned short __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vpkuhus(__b, __a);
-#else
-  return __builtin_altivec_vpkuhus(__a, __b);
-#endif
-}
-
-/* vec_vpkswus */
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vpkswus(vector int __a, vector int __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vpkswus(__b, __a);
-#else
-  return __builtin_altivec_vpkswus(__a, __b);
-#endif
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vpkswus(vector unsigned int __a, vector unsigned int __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vpkuwus(__b, __a);
-#else
-  return __builtin_altivec_vpkuwus(__a, __b);
-#endif
-}
-
-/* vec_vpksdus */
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vpksdus(vector long long __a, vector long long __b) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vpksdus(__b, __a);
-#else
-  return __builtin_altivec_vpksdus(__a, __b);
-#endif
-}
-#endif
-
-/* vec_perm */
-
-// The vperm instruction is defined architecturally with a big-endian bias.
-// For little endian, we swap the input operands and invert the permute
-// control vector.  Only the rightmost 5 bits matter, so we could use
-// a vector of all 31s instead of all 255s to perform the inversion.
-// However, when the PCV is not a constant, using 255 has an advantage
-// in that the vec_xor can be recognized as a vec_nor (and for P8 and
-// later, possibly a vec_nand).
-
-static __inline__ vector signed char __ATTRS_o_ai vec_perm(
-    vector signed char __a, vector signed char __b, vector unsigned char __c) {
-#ifdef __LITTLE_ENDIAN__
-  vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
-                              255, 255, 255, 255, 255, 255, 255, 255};
-  __d = vec_xor(__c, __d);
-  return (vector signed char)__builtin_altivec_vperm_4si((vector int)__b,
-                                                         (vector int)__a, __d);
-#else
-  return (vector signed char)__builtin_altivec_vperm_4si((vector int)__a,
-                                                         (vector int)__b, __c);
-#endif
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_perm(vector unsigned char __a, vector unsigned char __b,
-         vector unsigned char __c) {
-#ifdef __LITTLE_ENDIAN__
-  vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
-                              255, 255, 255, 255, 255, 255, 255, 255};
-  __d = vec_xor(__c, __d);
-  return (vector unsigned char)__builtin_altivec_vperm_4si(
-      (vector int)__b, (vector int)__a, __d);
-#else
-  return (vector unsigned char)__builtin_altivec_vperm_4si(
-      (vector int)__a, (vector int)__b, __c);
-#endif
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_perm(vector bool char __a, vector bool char __b, vector unsigned char __c) {
-#ifdef __LITTLE_ENDIAN__
-  vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
-                              255, 255, 255, 255, 255, 255, 255, 255};
-  __d = vec_xor(__c, __d);
-  return (vector bool char)__builtin_altivec_vperm_4si((vector int)__b,
-                                                       (vector int)__a, __d);
-#else
-  return (vector bool char)__builtin_altivec_vperm_4si((vector int)__a,
-                                                       (vector int)__b, __c);
-#endif
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_perm(vector signed short __a,
-                                                     vector signed short __b,
-                                                     vector unsigned char __c) {
-#ifdef __LITTLE_ENDIAN__
-  vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
-                              255, 255, 255, 255, 255, 255, 255, 255};
-  __d = vec_xor(__c, __d);
-  return (vector signed short)__builtin_altivec_vperm_4si((vector int)__b,
-                                                          (vector int)__a, __d);
-#else
-  return (vector signed short)__builtin_altivec_vperm_4si((vector int)__a,
-                                                          (vector int)__b, __c);
-#endif
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_perm(vector unsigned short __a, vector unsigned short __b,
-         vector unsigned char __c) {
-#ifdef __LITTLE_ENDIAN__
-  vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
-                              255, 255, 255, 255, 255, 255, 255, 255};
-  __d = vec_xor(__c, __d);
-  return (vector unsigned short)__builtin_altivec_vperm_4si(
-      (vector int)__b, (vector int)__a, __d);
-#else
-  return (vector unsigned short)__builtin_altivec_vperm_4si(
-      (vector int)__a, (vector int)__b, __c);
-#endif
-}
-
-static __inline__ vector bool short __ATTRS_o_ai vec_perm(
-    vector bool short __a, vector bool short __b, vector unsigned char __c) {
-#ifdef __LITTLE_ENDIAN__
-  vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
-                              255, 255, 255, 255, 255, 255, 255, 255};
-  __d = vec_xor(__c, __d);
-  return (vector bool short)__builtin_altivec_vperm_4si((vector int)__b,
-                                                        (vector int)__a, __d);
-#else
-  return (vector bool short)__builtin_altivec_vperm_4si((vector int)__a,
-                                                        (vector int)__b, __c);
-#endif
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_perm(vector pixel __a,
-                                                     vector pixel __b,
-                                                     vector unsigned char __c) {
-#ifdef __LITTLE_ENDIAN__
-  vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
-                              255, 255, 255, 255, 255, 255, 255, 255};
-  __d = vec_xor(__c, __d);
-  return (vector pixel)__builtin_altivec_vperm_4si((vector int)__b,
-                                                   (vector int)__a, __d);
-#else
-  return (vector pixel)__builtin_altivec_vperm_4si((vector int)__a,
-                                                   (vector int)__b, __c);
-#endif
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_perm(vector signed int __a,
-                                                   vector signed int __b,
-                                                   vector unsigned char __c) {
-#ifdef __LITTLE_ENDIAN__
-  vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
-                              255, 255, 255, 255, 255, 255, 255, 255};
-  __d = vec_xor(__c, __d);
-  return (vector signed int)__builtin_altivec_vperm_4si(__b, __a, __d);
-#else
-  return (vector signed int)__builtin_altivec_vperm_4si(__a, __b, __c);
-#endif
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_perm(vector unsigned int __a, vector unsigned int __b,
-         vector unsigned char __c) {
-#ifdef __LITTLE_ENDIAN__
-  vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
-                              255, 255, 255, 255, 255, 255, 255, 255};
-  __d = vec_xor(__c, __d);
-  return (vector unsigned int)__builtin_altivec_vperm_4si((vector int)__b,
-                                                          (vector int)__a, __d);
-#else
-  return (vector unsigned int)__builtin_altivec_vperm_4si((vector int)__a,
-                                                          (vector int)__b, __c);
-#endif
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_perm(vector bool int __a, vector bool int __b, vector unsigned char __c) {
-#ifdef __LITTLE_ENDIAN__
-  vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
-                              255, 255, 255, 255, 255, 255, 255, 255};
-  __d = vec_xor(__c, __d);
-  return (vector bool int)__builtin_altivec_vperm_4si((vector int)__b,
-                                                      (vector int)__a, __d);
-#else
-  return (vector bool int)__builtin_altivec_vperm_4si((vector int)__a,
-                                                      (vector int)__b, __c);
-#endif
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_perm(vector float __a,
-                                                     vector float __b,
-                                                     vector unsigned char __c) {
-#ifdef __LITTLE_ENDIAN__
-  vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
-                              255, 255, 255, 255, 255, 255, 255, 255};
-  __d = vec_xor(__c, __d);
-  return (vector float)__builtin_altivec_vperm_4si((vector int)__b,
-                                                   (vector int)__a, __d);
-#else
-  return (vector float)__builtin_altivec_vperm_4si((vector int)__a,
-                                                   (vector int)__b, __c);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ vector long long __ATTRS_o_ai
-vec_perm(vector signed long long __a, vector signed long long __b,
-         vector unsigned char __c) {
-#ifdef __LITTLE_ENDIAN__
-  vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
-                              255, 255, 255, 255, 255, 255, 255, 255};
-  __d = vec_xor(__c, __d);
-  return (vector signed long long)__builtin_altivec_vperm_4si(
-      (vector int)__b, (vector int)__a, __d);
-#else
-  return (vector signed long long)__builtin_altivec_vperm_4si(
-      (vector int)__a, (vector int)__b, __c);
-#endif
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_perm(vector unsigned long long __a, vector unsigned long long __b,
-         vector unsigned char __c) {
-#ifdef __LITTLE_ENDIAN__
-  vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
-                              255, 255, 255, 255, 255, 255, 255, 255};
-  __d = vec_xor(__c, __d);
-  return (vector unsigned long long)__builtin_altivec_vperm_4si(
-      (vector int)__b, (vector int)__a, __d);
-#else
-  return (vector unsigned long long)__builtin_altivec_vperm_4si(
-      (vector int)__a, (vector int)__b, __c);
-#endif
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_perm(vector bool long long __a, vector bool long long __b,
-         vector unsigned char __c) {
-#ifdef __LITTLE_ENDIAN__
-  vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
-                              255, 255, 255, 255, 255, 255, 255, 255};
-  __d = vec_xor(__c, __d);
-  return (vector bool long long)__builtin_altivec_vperm_4si(
-      (vector int)__b, (vector int)__a, __d);
-#else
-  return (vector bool long long)__builtin_altivec_vperm_4si(
-      (vector int)__a, (vector int)__b, __c);
-#endif
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_perm(vector double __a, vector double __b, vector unsigned char __c) {
-#ifdef __LITTLE_ENDIAN__
-  vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
-                              255, 255, 255, 255, 255, 255, 255, 255};
-  __d = vec_xor(__c, __d);
-  return (vector double)__builtin_altivec_vperm_4si((vector int)__b,
-                                                    (vector int)__a, __d);
-#else
-  return (vector double)__builtin_altivec_vperm_4si((vector int)__a,
-                                                    (vector int)__b, __c);
-#endif
-}
-#endif
-
-/* vec_vperm */
-
-static __inline__ vector signed char __ATTRS_o_ai vec_vperm(
-    vector signed char __a, vector signed char __b, vector unsigned char __c) {
-  return vec_perm(__a, __b, __c);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vperm(vector unsigned char __a, vector unsigned char __b,
-          vector unsigned char __c) {
-  return vec_perm(__a, __b, __c);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai vec_vperm(
-    vector bool char __a, vector bool char __b, vector unsigned char __c) {
-  return vec_perm(__a, __b, __c);
-}
-
-static __inline__ vector short __ATTRS_o_ai
-vec_vperm(vector short __a, vector short __b, vector unsigned char __c) {
-  return vec_perm(__a, __b, __c);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vperm(vector unsigned short __a, vector unsigned short __b,
-          vector unsigned char __c) {
-  return vec_perm(__a, __b, __c);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai vec_vperm(
-    vector bool short __a, vector bool short __b, vector unsigned char __c) {
-  return vec_perm(__a, __b, __c);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai
-vec_vperm(vector pixel __a, vector pixel __b, vector unsigned char __c) {
-  return vec_perm(__a, __b, __c);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vperm(vector int __a,
-                                                    vector int __b,
-                                                    vector unsigned char __c) {
-  return vec_perm(__a, __b, __c);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vperm(vector unsigned int __a, vector unsigned int __b,
-          vector unsigned char __c) {
-  return vec_perm(__a, __b, __c);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_vperm(vector bool int __a, vector bool int __b, vector unsigned char __c) {
-  return vec_perm(__a, __b, __c);
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_vperm(vector float __a, vector float __b, vector unsigned char __c) {
-  return vec_perm(__a, __b, __c);
-}
-
-#ifdef __VSX__
-static __inline__ vector long long __ATTRS_o_ai vec_vperm(
-    vector long long __a, vector long long __b, vector unsigned char __c) {
-  return vec_perm(__a, __b, __c);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_vperm(vector unsigned long long __a, vector unsigned long long __b,
-          vector unsigned char __c) {
-  return vec_perm(__a, __b, __c);
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_vperm(vector double __a, vector double __b, vector unsigned char __c) {
-  return vec_perm(__a, __b, __c);
-}
-#endif
-
-/* vec_re */
-
-static __inline__ vector float __ATTRS_o_ai vec_re(vector float __a) {
-#ifdef __VSX__
-  return __builtin_vsx_xvresp(__a);
-#else
-  return __builtin_altivec_vrefp(__a);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai vec_re(vector double __a) {
-  return __builtin_vsx_xvredp(__a);
-}
-#endif
-
-/* vec_vrefp */
-
-static __inline__ vector float __attribute__((__always_inline__))
-vec_vrefp(vector float __a) {
-  return __builtin_altivec_vrefp(__a);
-}
-
-/* vec_rl */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_rl(vector signed char __a, vector unsigned char __b) {
-  return (vector signed char)__builtin_altivec_vrlb((vector char)__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_rl(vector unsigned char __a, vector unsigned char __b) {
-  return (vector unsigned char)__builtin_altivec_vrlb((vector char)__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_rl(vector short __a,
-                                                   vector unsigned short __b) {
-  return __builtin_altivec_vrlh(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_rl(vector unsigned short __a, vector unsigned short __b) {
-  return (vector unsigned short)__builtin_altivec_vrlh((vector short)__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_rl(vector int __a,
-                                                 vector unsigned int __b) {
-  return __builtin_altivec_vrlw(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_rl(vector unsigned int __a, vector unsigned int __b) {
-  return (vector unsigned int)__builtin_altivec_vrlw((vector int)__a, __b);
-}
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_rl(vector signed long long __a, vector unsigned long long __b) {
-  return __builtin_altivec_vrld(__a, __b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_rl(vector unsigned long long __a, vector unsigned long long __b) {
-  return __builtin_altivec_vrld(__a, __b);
-}
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_rl(vector signed __int128 __a, vector unsigned __int128 __b) {
-  return (__b << __a)|(__b >> ((__CHAR_BIT__ * sizeof(vector signed __int128)) - __a));
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_rl(vector unsigned __int128 __a, vector unsigned __int128 __b) {
-  return (__b << __a)|(__b >> ((__CHAR_BIT__ * sizeof(vector unsigned __int128)) - __a));
-}
-#endif
-
-/* vec_rlmi */
-#ifdef __POWER9_VECTOR__
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_rlmi(vector unsigned int __a, vector unsigned int __b,
-         vector unsigned int __c) {
-  return __builtin_altivec_vrlwmi(__a, __c, __b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_rlmi(vector unsigned long long __a, vector unsigned long long __b,
-         vector unsigned long long __c) {
-  return __builtin_altivec_vrldmi(__a, __c, __b);
-}
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_rlmi(vector unsigned __int128 __a, vector unsigned __int128 __b,
-         vector unsigned __int128 __c) {
-  return __builtin_altivec_vrlqmi(__a, __c, __b);
-}
-
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_rlmi(vector signed __int128 __a, vector signed __int128 __b,
-         vector signed __int128 __c) {
-  return __builtin_altivec_vrlqmi(__a, __c, __b);
-}
-#endif
-
-/* vec_rlnm */
-#ifdef __POWER9_VECTOR__
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_rlnm(vector unsigned int __a, vector unsigned int __b,
-         vector unsigned int __c) {
-  vector unsigned int OneByte = { 0x8, 0x8, 0x8, 0x8 };
-  return __builtin_altivec_vrlwnm(__a, ((__c << OneByte) | __b));
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_rlnm(vector unsigned long long __a, vector unsigned long long __b,
-         vector unsigned long long __c) {
-  vector unsigned long long OneByte = { 0x8, 0x8 };
-  return __builtin_altivec_vrldnm(__a, ((__c << OneByte) | __b));
-}
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_rlnm(vector unsigned __int128 __a, vector unsigned __int128 __b,
-         vector unsigned __int128 __c) {
-  // Merge __b and __c using an appropriate shuffle.
-  vector unsigned char TmpB = (vector unsigned char)__b;
-  vector unsigned char TmpC = (vector unsigned char)__c;
-  vector unsigned char MaskAndShift =
-#ifdef __LITTLE_ENDIAN__
-      __builtin_shufflevector(TmpB, TmpC, -1, -1, -1, -1, -1, -1, -1, -1, 16, 0,
-                              1, -1, -1, -1, -1, -1);
-#else
-      __builtin_shufflevector(TmpB, TmpC, -1, -1, -1, -1, -1, 31, 30, 15, -1,
-                              -1, -1, -1, -1, -1, -1, -1);
-#endif
-   return __builtin_altivec_vrlqnm(__a, (vector unsigned __int128) MaskAndShift);
-}
-
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_rlnm(vector signed __int128 __a, vector signed __int128 __b,
-         vector signed __int128 __c) {
-  // Merge __b and __c using an appropriate shuffle.
-  vector unsigned char TmpB = (vector unsigned char)__b;
-  vector unsigned char TmpC = (vector unsigned char)__c;
-  vector unsigned char MaskAndShift =
-#ifdef __LITTLE_ENDIAN__
-      __builtin_shufflevector(TmpB, TmpC, -1, -1, -1, -1, -1, -1, -1, -1, 16, 0,
-                              1, -1, -1, -1, -1, -1);
-#else
-      __builtin_shufflevector(TmpB, TmpC, -1, -1, -1, -1, -1, 31, 30, 15, -1,
-                              -1, -1, -1, -1, -1, -1, -1);
-#endif
-  return __builtin_altivec_vrlqnm(__a, (vector unsigned __int128) MaskAndShift);
-}
-#endif
-
-/* vec_vrlb */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vrlb(vector signed char __a, vector unsigned char __b) {
-  return (vector signed char)__builtin_altivec_vrlb((vector char)__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vrlb(vector unsigned char __a, vector unsigned char __b) {
-  return (vector unsigned char)__builtin_altivec_vrlb((vector char)__a, __b);
-}
-
-/* vec_vrlh */
-
-static __inline__ vector short __ATTRS_o_ai
-vec_vrlh(vector short __a, vector unsigned short __b) {
-  return __builtin_altivec_vrlh(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vrlh(vector unsigned short __a, vector unsigned short __b) {
-  return (vector unsigned short)__builtin_altivec_vrlh((vector short)__a, __b);
-}
-
-/* vec_vrlw */
-
-static __inline__ vector int __ATTRS_o_ai vec_vrlw(vector int __a,
-                                                   vector unsigned int __b) {
-  return __builtin_altivec_vrlw(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vrlw(vector unsigned int __a, vector unsigned int __b) {
-  return (vector unsigned int)__builtin_altivec_vrlw((vector int)__a, __b);
-}
-
-/* vec_round */
-
-static __inline__ vector float __ATTRS_o_ai vec_round(vector float __a) {
-  return __builtin_altivec_vrfin(__a);
-}
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai vec_round(vector double __a) {
-  return __builtin_vsx_xvrdpi(__a);
-}
-
-/* vec_rint */
-
-static __inline__ vector float __ATTRS_o_ai vec_rint(vector float __a) {
-  return __builtin_vsx_xvrspic(__a);
-}
-
-static __inline__ vector double __ATTRS_o_ai vec_rint(vector double __a) {
-  return __builtin_vsx_xvrdpic(__a);
-}
-
-/* vec_roundc */
-
-static __inline__ vector float __ATTRS_o_ai vec_roundc(vector float __a) {
-  return __builtin_vsx_xvrspic(__a);
-}
-
-static __inline__ vector double __ATTRS_o_ai vec_roundc(vector double __a) {
-  return __builtin_vsx_xvrdpic(__a);
-}
-
-/* vec_nearbyint */
-
-static __inline__ vector float __ATTRS_o_ai vec_nearbyint(vector float __a) {
-  return __builtin_vsx_xvrspi(__a);
-}
-
-static __inline__ vector double __ATTRS_o_ai vec_nearbyint(vector double __a) {
-  return __builtin_vsx_xvrdpi(__a);
-}
-#endif
-
-/* vec_vrfin */
-
-static __inline__ vector float __attribute__((__always_inline__))
-vec_vrfin(vector float __a) {
-  return __builtin_altivec_vrfin(__a);
-}
-
-/* vec_sqrt */
-
-#ifdef __VSX__
-static __inline__ vector float __ATTRS_o_ai vec_sqrt(vector float __a) {
-  return __builtin_vsx_xvsqrtsp(__a);
-}
-
-static __inline__ vector double __ATTRS_o_ai vec_sqrt(vector double __a) {
-  return __builtin_vsx_xvsqrtdp(__a);
-}
-#endif
-
-/* vec_rsqrte */
-
-static __inline__ vector float __ATTRS_o_ai vec_rsqrte(vector float __a) {
-#ifdef __VSX__
-  return __builtin_vsx_xvrsqrtesp(__a);
-#else
-  return __builtin_altivec_vrsqrtefp(__a);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai vec_rsqrte(vector double __a) {
-  return __builtin_vsx_xvrsqrtedp(__a);
-}
-#endif
-
-static vector float __ATTRS_o_ai vec_rsqrt(vector float __a) {
-  return __builtin_ppc_rsqrtf(__a);
-}
-
-#ifdef __VSX__
-static vector double __ATTRS_o_ai vec_rsqrt(vector double __a) {
-  return __builtin_ppc_rsqrtd(__a);
-}
-#endif
-
-/* vec_vrsqrtefp */
-
-static __inline__ __vector float __attribute__((__always_inline__))
-vec_vrsqrtefp(vector float __a) {
-  return __builtin_altivec_vrsqrtefp(__a);
-}
-
-/* vec_xvtsqrt */
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_test_swsqrt(vector double __a) {
-  return __builtin_vsx_xvtsqrtdp(__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_test_swsqrts(vector float __a) {
-  return __builtin_vsx_xvtsqrtsp(__a);
-}
-#endif
-
-/* vec_sel */
-
-#define __builtin_altivec_vsel_4si vec_sel
-
-static __inline__ vector signed char __ATTRS_o_ai vec_sel(
-    vector signed char __a, vector signed char __b, vector unsigned char __c) {
-  return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_sel(vector signed char __a, vector signed char __b, vector bool char __c) {
-  return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_sel(vector unsigned char __a, vector unsigned char __b,
-        vector unsigned char __c) {
-  return (__a & ~__c) | (__b & __c);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai vec_sel(
-    vector unsigned char __a, vector unsigned char __b, vector bool char __c) {
-  return (__a & ~(vector unsigned char)__c) | (__b & (vector unsigned char)__c);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_sel(vector bool char __a, vector bool char __b, vector unsigned char __c) {
-  return (__a & ~(vector bool char)__c) | (__b & (vector bool char)__c);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai vec_sel(vector bool char __a,
-                                                        vector bool char __b,
-                                                        vector bool char __c) {
-  return (__a & ~__c) | (__b & __c);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_sel(vector short __a,
-                                                    vector short __b,
-                                                    vector unsigned short __c) {
-  return (__a & ~(vector short)__c) | (__b & (vector short)__c);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_sel(vector short __a,
-                                                    vector short __b,
-                                                    vector bool short __c) {
-  return (__a & ~(vector short)__c) | (__b & (vector short)__c);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_sel(vector unsigned short __a, vector unsigned short __b,
-        vector unsigned short __c) {
-  return (__a & ~__c) | (__b & __c);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_sel(vector unsigned short __a, vector unsigned short __b,
-        vector bool short __c) {
-  return (__a & ~(vector unsigned short)__c) |
-         (__b & (vector unsigned short)__c);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai vec_sel(
-    vector bool short __a, vector bool short __b, vector unsigned short __c) {
-  return (__a & ~(vector bool short)__c) | (__b & (vector bool short)__c);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_sel(vector bool short __a, vector bool short __b, vector bool short __c) {
-  return (__a & ~__c) | (__b & __c);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_sel(vector int __a,
-                                                  vector int __b,
-                                                  vector unsigned int __c) {
-  return (__a & ~(vector int)__c) | (__b & (vector int)__c);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_sel(vector int __a,
-                                                  vector int __b,
-                                                  vector bool int __c) {
-  return (__a & ~(vector int)__c) | (__b & (vector int)__c);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai vec_sel(
-    vector unsigned int __a, vector unsigned int __b, vector unsigned int __c) {
-  return (__a & ~__c) | (__b & __c);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_sel(vector unsigned int __a, vector unsigned int __b, vector bool int __c) {
-  return (__a & ~(vector unsigned int)__c) | (__b & (vector unsigned int)__c);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_sel(vector bool int __a, vector bool int __b, vector unsigned int __c) {
-  return (__a & ~(vector bool int)__c) | (__b & (vector bool int)__c);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_sel(vector bool int __a,
-                                                       vector bool int __b,
-                                                       vector bool int __c) {
-  return (__a & ~__c) | (__b & __c);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_sel(vector float __a,
-                                                    vector float __b,
-                                                    vector unsigned int __c) {
-  vector int __res = ((vector int)__a & ~(vector int)__c) |
-                     ((vector int)__b & (vector int)__c);
-  return (vector float)__res;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_sel(vector float __a,
-                                                    vector float __b,
-                                                    vector bool int __c) {
-  vector int __res = ((vector int)__a & ~(vector int)__c) |
-                     ((vector int)__b & (vector int)__c);
-  return (vector float)__res;
-}
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai
-vec_sel(vector double __a, vector double __b, vector bool long long __c) {
-  vector long long __res = ((vector long long)__a & ~(vector long long)__c) |
-                           ((vector long long)__b & (vector long long)__c);
-  return (vector double)__res;
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_sel(vector double __a, vector double __b, vector unsigned long long __c) {
-  vector long long __res = ((vector long long)__a & ~(vector long long)__c) |
-                           ((vector long long)__b & (vector long long)__c);
-  return (vector double)__res;
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_sel(vector bool long long __a, vector bool long long __b,
-        vector bool long long __c) {
-  return (__a & ~__c) | (__b & __c);
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_sel(vector bool long long __a, vector bool long long __b,
-        vector unsigned long long __c) {
-  return (__a & ~(vector bool long long)__c) |
-         (__b & (vector bool long long)__c);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_sel(vector signed long long __a, vector signed long long __b,
-        vector bool long long __c) {
-  return (__a & ~(vector signed long long)__c) |
-         (__b & (vector signed long long)__c);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_sel(vector signed long long __a, vector signed long long __b,
-        vector unsigned long long __c) {
-  return (__a & ~(vector signed long long)__c) |
-         (__b & (vector signed long long)__c);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_sel(vector unsigned long long __a, vector unsigned long long __b,
-        vector bool long long __c) {
-  return (__a & ~(vector unsigned long long)__c) |
-         (__b & (vector unsigned long long)__c);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_sel(vector unsigned long long __a, vector unsigned long long __b,
-        vector unsigned long long __c) {
-  return (__a & ~__c) | (__b & __c);
-}
-#endif
-
-/* vec_vsel */
-
-static __inline__ vector signed char __ATTRS_o_ai vec_vsel(
-    vector signed char __a, vector signed char __b, vector unsigned char __c) {
-  return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vsel(vector signed char __a, vector signed char __b, vector bool char __c) {
-  return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vsel(vector unsigned char __a, vector unsigned char __b,
-         vector unsigned char __c) {
-  return (__a & ~__c) | (__b & __c);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai vec_vsel(
-    vector unsigned char __a, vector unsigned char __b, vector bool char __c) {
-  return (__a & ~(vector unsigned char)__c) | (__b & (vector unsigned char)__c);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_vsel(vector bool char __a, vector bool char __b, vector unsigned char __c) {
-  return (__a & ~(vector bool char)__c) | (__b & (vector bool char)__c);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai vec_vsel(vector bool char __a,
-                                                         vector bool char __b,
-                                                         vector bool char __c) {
-  return (__a & ~__c) | (__b & __c);
-}
-
-static __inline__ vector short __ATTRS_o_ai
-vec_vsel(vector short __a, vector short __b, vector unsigned short __c) {
-  return (__a & ~(vector short)__c) | (__b & (vector short)__c);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vsel(vector short __a,
-                                                     vector short __b,
-                                                     vector bool short __c) {
-  return (__a & ~(vector short)__c) | (__b & (vector short)__c);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vsel(vector unsigned short __a, vector unsigned short __b,
-         vector unsigned short __c) {
-  return (__a & ~__c) | (__b & __c);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vsel(vector unsigned short __a, vector unsigned short __b,
-         vector bool short __c) {
-  return (__a & ~(vector unsigned short)__c) |
-         (__b & (vector unsigned short)__c);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai vec_vsel(
-    vector bool short __a, vector bool short __b, vector unsigned short __c) {
-  return (__a & ~(vector bool short)__c) | (__b & (vector bool short)__c);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_vsel(vector bool short __a, vector bool short __b, vector bool short __c) {
-  return (__a & ~__c) | (__b & __c);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vsel(vector int __a,
-                                                   vector int __b,
-                                                   vector unsigned int __c) {
-  return (__a & ~(vector int)__c) | (__b & (vector int)__c);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vsel(vector int __a,
-                                                   vector int __b,
-                                                   vector bool int __c) {
-  return (__a & ~(vector int)__c) | (__b & (vector int)__c);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai vec_vsel(
-    vector unsigned int __a, vector unsigned int __b, vector unsigned int __c) {
-  return (__a & ~__c) | (__b & __c);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai vec_vsel(
-    vector unsigned int __a, vector unsigned int __b, vector bool int __c) {
-  return (__a & ~(vector unsigned int)__c) | (__b & (vector unsigned int)__c);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_vsel(vector bool int __a, vector bool int __b, vector unsigned int __c) {
-  return (__a & ~(vector bool int)__c) | (__b & (vector bool int)__c);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_vsel(vector bool int __a,
-                                                        vector bool int __b,
-                                                        vector bool int __c) {
-  return (__a & ~__c) | (__b & __c);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vsel(vector float __a,
-                                                     vector float __b,
-                                                     vector unsigned int __c) {
-  vector int __res = ((vector int)__a & ~(vector int)__c) |
-                     ((vector int)__b & (vector int)__c);
-  return (vector float)__res;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vsel(vector float __a,
-                                                     vector float __b,
-                                                     vector bool int __c) {
-  vector int __res = ((vector int)__a & ~(vector int)__c) |
-                     ((vector int)__b & (vector int)__c);
-  return (vector float)__res;
-}
-
-/* vec_sl */
-
-// vec_sl does modulo arithmetic on __b first, so __b is allowed to be more
-// than the length of __a.
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_sl(vector unsigned char __a, vector unsigned char __b) {
-  return __a << (__b %
-                 (vector unsigned char)(sizeof(unsigned char) * __CHAR_BIT__));
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_sl(vector signed char __a, vector unsigned char __b) {
-  return (vector signed char)vec_sl((vector unsigned char)__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_sl(vector unsigned short __a, vector unsigned short __b) {
-  return __a << (__b % (vector unsigned short)(sizeof(unsigned short) *
-                                               __CHAR_BIT__));
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_sl(vector short __a,
-                                                   vector unsigned short __b) {
-  return (vector short)vec_sl((vector unsigned short)__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_sl(vector unsigned int __a, vector unsigned int __b) {
-  return __a << (__b %
-                 (vector unsigned int)(sizeof(unsigned int) * __CHAR_BIT__));
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_sl(vector int __a,
-                                                 vector unsigned int __b) {
-  return (vector int)vec_sl((vector unsigned int)__a, __b);
-}
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_sl(vector unsigned long long __a, vector unsigned long long __b) {
-  return __a << (__b % (vector unsigned long long)(sizeof(unsigned long long) *
-                                                   __CHAR_BIT__));
-}
-
-static __inline__ vector long long __ATTRS_o_ai
-vec_sl(vector long long __a, vector unsigned long long __b) {
-  return (vector long long)vec_sl((vector unsigned long long)__a, __b);
-}
-#else
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vspltb(vector unsigned char __a, unsigned char __b);
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_sl(vector unsigned long long __a, vector unsigned long long __b) {
-  __b %= (vector unsigned long long)(sizeof(unsigned long long) * __CHAR_BIT__);
-
-  // Big endian element one (the right doubleword) can be left shifted as-is.
-  // The other element needs to be swapped into the right doubleword and
-  // shifted. Then the right doublewords of the two result vectors are merged.
-  vector signed long long __rightelt =
-      (vector signed long long)__builtin_altivec_vslo((vector signed int)__a,
-                                                      (vector signed int)__b);
-#ifdef __LITTLE_ENDIAN__
-  __rightelt = (vector signed long long)__builtin_altivec_vsl(
-      (vector signed int)__rightelt,
-      (vector signed int)vec_vspltb((vector unsigned char)__b, 0));
-#else
-  __rightelt = (vector signed long long)__builtin_altivec_vsl(
-      (vector signed int)__rightelt,
-      (vector signed int)vec_vspltb((vector unsigned char)__b, 15));
-#endif
-  __a = __builtin_shufflevector(__a, __a, 1, 0);
-  __b = __builtin_shufflevector(__b, __b, 1, 0);
-  vector signed long long __leftelt =
-      (vector signed long long)__builtin_altivec_vslo((vector signed int)__a,
-                                                      (vector signed int)__b);
-#ifdef __LITTLE_ENDIAN__
-  __leftelt = (vector signed long long)__builtin_altivec_vsl(
-      (vector signed int)__leftelt,
-      (vector signed int)vec_vspltb((vector unsigned char)__b, 0));
-  return (vector unsigned long long)__builtin_shufflevector(__rightelt,
-                                                            __leftelt, 0, 2);
-#else
-  __leftelt = (vector signed long long)__builtin_altivec_vsl(
-      (vector signed int)__leftelt,
-      (vector signed int)vec_vspltb((vector unsigned char)__b, 15));
-  return (vector unsigned long long)__builtin_shufflevector(__leftelt,
-                                                            __rightelt, 1, 3);
-#endif
-}
-
-static __inline__ vector long long __ATTRS_o_ai
-vec_sl(vector long long __a, vector unsigned long long __b) {
-  return (vector long long)vec_sl((vector unsigned long long)__a, __b);
-}
-#endif
-
-/* vec_vslb */
-
-#define __builtin_altivec_vslb vec_vslb
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vslb(vector signed char __a, vector unsigned char __b) {
-  return vec_sl(__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vslb(vector unsigned char __a, vector unsigned char __b) {
-  return vec_sl(__a, __b);
-}
-
-/* vec_vslh */
-
-#define __builtin_altivec_vslh vec_vslh
-
-static __inline__ vector short __ATTRS_o_ai
-vec_vslh(vector short __a, vector unsigned short __b) {
-  return vec_sl(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vslh(vector unsigned short __a, vector unsigned short __b) {
-  return vec_sl(__a, __b);
-}
-
-/* vec_vslw */
-
-#define __builtin_altivec_vslw vec_vslw
-
-static __inline__ vector int __ATTRS_o_ai vec_vslw(vector int __a,
-                                                   vector unsigned int __b) {
-  return vec_sl(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vslw(vector unsigned int __a, vector unsigned int __b) {
-  return vec_sl(__a, __b);
-}
-
-/* vec_sld */
-
-#define __builtin_altivec_vsldoi_4si vec_sld
-
-static __inline__ vector signed char __ATTRS_o_ai vec_sld(
-    vector signed char __a, vector signed char __b, unsigned const int __c) {
-  unsigned char __d = __c & 0x0F;
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(
-      __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
-                                       20 - __d, 21 - __d, 22 - __d, 23 - __d,
-                                       24 - __d, 25 - __d, 26 - __d, 27 - __d,
-                                       28 - __d, 29 - __d, 30 - __d, 31 - __d));
-#else
-  return vec_perm(
-      __a, __b,
-      (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
-                             __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
-                             __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
-#endif
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_sld(vector unsigned char __a, vector unsigned char __b,
-        unsigned const int __c) {
-  unsigned char __d = __c & 0x0F;
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(
-      __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
-                                       20 - __d, 21 - __d, 22 - __d, 23 - __d,
-                                       24 - __d, 25 - __d, 26 - __d, 27 - __d,
-                                       28 - __d, 29 - __d, 30 - __d, 31 - __d));
-#else
-  return vec_perm(
-      __a, __b,
-      (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
-                             __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
-                             __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
-#endif
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_sld(vector bool char __a, vector bool char __b, unsigned const int __c) {
-  unsigned char __d = __c & 0x0F;
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(
-      __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
-                                       20 - __d, 21 - __d, 22 - __d, 23 - __d,
-                                       24 - __d, 25 - __d, 26 - __d, 27 - __d,
-                                       28 - __d, 29 - __d, 30 - __d, 31 - __d));
-#else
-  return vec_perm(
-      __a, __b,
-      (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
-                             __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
-                             __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
-#endif
-}
-
-static __inline__ vector signed short __ATTRS_o_ai vec_sld(
-    vector signed short __a, vector signed short __b, unsigned const int __c) {
-  unsigned char __d = __c & 0x0F;
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(
-      __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
-                                       20 - __d, 21 - __d, 22 - __d, 23 - __d,
-                                       24 - __d, 25 - __d, 26 - __d, 27 - __d,
-                                       28 - __d, 29 - __d, 30 - __d, 31 - __d));
-#else
-  return vec_perm(
-      __a, __b,
-      (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
-                             __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
-                             __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
-#endif
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_sld(vector unsigned short __a, vector unsigned short __b,
-        unsigned const int __c) {
-  unsigned char __d = __c & 0x0F;
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(
-      __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
-                                       20 - __d, 21 - __d, 22 - __d, 23 - __d,
-                                       24 - __d, 25 - __d, 26 - __d, 27 - __d,
-                                       28 - __d, 29 - __d, 30 - __d, 31 - __d));
-#else
-  return vec_perm(
-      __a, __b,
-      (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
-                             __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
-                             __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
-#endif
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_sld(vector bool short __a, vector bool short __b, unsigned const int __c) {
-  unsigned char __d = __c & 0x0F;
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(
-      __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
-                                       20 - __d, 21 - __d, 22 - __d, 23 - __d,
-                                       24 - __d, 25 - __d, 26 - __d, 27 - __d,
-                                       28 - __d, 29 - __d, 30 - __d, 31 - __d));
-#else
-  return vec_perm(
-      __a, __b,
-      (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
-                             __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
-                             __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
-#endif
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_sld(vector pixel __a,
-                                                    vector pixel __b,
-                                                    unsigned const int __c) {
-  unsigned char __d = __c & 0x0F;
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(
-      __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
-                                       20 - __d, 21 - __d, 22 - __d, 23 - __d,
-                                       24 - __d, 25 - __d, 26 - __d, 27 - __d,
-                                       28 - __d, 29 - __d, 30 - __d, 31 - __d));
-#else
-  return vec_perm(
-      __a, __b,
-      (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
-                             __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
-                             __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
-#endif
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_sld(vector signed int __a, vector signed int __b, unsigned const int __c) {
-  unsigned char __d = __c & 0x0F;
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(
-      __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
-                                       20 - __d, 21 - __d, 22 - __d, 23 - __d,
-                                       24 - __d, 25 - __d, 26 - __d, 27 - __d,
-                                       28 - __d, 29 - __d, 30 - __d, 31 - __d));
-#else
-  return vec_perm(
-      __a, __b,
-      (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
-                             __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
-                             __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
-#endif
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai vec_sld(
-    vector unsigned int __a, vector unsigned int __b, unsigned const int __c) {
-  unsigned char __d = __c & 0x0F;
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(
-      __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
-                                       20 - __d, 21 - __d, 22 - __d, 23 - __d,
-                                       24 - __d, 25 - __d, 26 - __d, 27 - __d,
-                                       28 - __d, 29 - __d, 30 - __d, 31 - __d));
-#else
-  return vec_perm(
-      __a, __b,
-      (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
-                             __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
-                             __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
-#endif
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_sld(vector bool int __a,
-                                                       vector bool int __b,
-                                                       unsigned const int __c) {
-  unsigned char __d = __c & 0x0F;
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(
-      __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
-                                       20 - __d, 21 - __d, 22 - __d, 23 - __d,
-                                       24 - __d, 25 - __d, 26 - __d, 27 - __d,
-                                       28 - __d, 29 - __d, 30 - __d, 31 - __d));
-#else
-  return vec_perm(
-      __a, __b,
-      (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
-                             __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
-                             __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
-#endif
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_sld(vector float __a,
-                                                    vector float __b,
-                                                    unsigned const int __c) {
-  unsigned char __d = __c & 0x0F;
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(
-      __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
-                                       20 - __d, 21 - __d, 22 - __d, 23 - __d,
-                                       24 - __d, 25 - __d, 26 - __d, 27 - __d,
-                                       28 - __d, 29 - __d, 30 - __d, 31 - __d));
-#else
-  return vec_perm(
-      __a, __b,
-      (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
-                             __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
-                             __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_sld(vector bool long long __a, vector bool long long __b,
-        unsigned const int __c) {
-  unsigned char __d = __c & 0x0F;
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(
-      __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
-                                       20 - __d, 21 - __d, 22 - __d, 23 - __d,
-                                       24 - __d, 25 - __d, 26 - __d, 27 - __d,
-                                       28 - __d, 29 - __d, 30 - __d, 31 - __d));
-#else
-  return vec_perm(
-      __a, __b,
-      (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
-                             __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
-                             __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
-#endif
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_sld(vector signed long long __a, vector signed long long __b,
-        unsigned const int __c) {
-  unsigned char __d = __c & 0x0F;
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(
-      __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
-                                       20 - __d, 21 - __d, 22 - __d, 23 - __d,
-                                       24 - __d, 25 - __d, 26 - __d, 27 - __d,
-                                       28 - __d, 29 - __d, 30 - __d, 31 - __d));
-#else
-  return vec_perm(
-      __a, __b,
-      (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
-                             __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
-                             __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
-#endif
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_sld(vector unsigned long long __a, vector unsigned long long __b,
-        unsigned const int __c) {
-  unsigned char __d = __c & 0x0F;
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(
-      __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
-                                       20 - __d, 21 - __d, 22 - __d, 23 - __d,
-                                       24 - __d, 25 - __d, 26 - __d, 27 - __d,
-                                       28 - __d, 29 - __d, 30 - __d, 31 - __d));
-#else
-  return vec_perm(
-      __a, __b,
-      (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
-                             __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
-                             __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
-#endif
-}
-
-static __inline__ vector double __ATTRS_o_ai vec_sld(vector double __a,
-                                                     vector double __b,
-                                                     unsigned const int __c) {
-  unsigned char __d = __c & 0x0F;
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(
-      __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
-                                       20 - __d, 21 - __d, 22 - __d, 23 - __d,
-                                       24 - __d, 25 - __d, 26 - __d, 27 - __d,
-                                       28 - __d, 29 - __d, 30 - __d, 31 - __d));
-#else
-  return vec_perm(
-      __a, __b,
-      (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
-                             __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
-                             __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
-#endif
-}
-#endif
-
-/* vec_sldw */
-static __inline__ vector signed char __ATTRS_o_ai vec_sldw(
-    vector signed char __a, vector signed char __b, unsigned const int __c) {
-  return vec_sld(__a, __b, ((__c << 2) & 0x0F));
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_sldw(vector unsigned char __a, vector unsigned char __b,
-         unsigned const int __c) {
-  return vec_sld(__a, __b, ((__c << 2) & 0x0F));
-}
-
-static __inline__ vector signed short __ATTRS_o_ai vec_sldw(
-    vector signed short __a, vector signed short __b, unsigned const int __c) {
-  return vec_sld(__a, __b, ((__c << 2) & 0x0F));
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_sldw(vector unsigned short __a, vector unsigned short __b,
-         unsigned const int __c) {
-  return vec_sld(__a, __b, ((__c << 2) & 0x0F));
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_sldw(vector signed int __a, vector signed int __b, unsigned const int __c) {
-  return vec_sld(__a, __b, ((__c << 2) & 0x0F));
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai vec_sldw(
-    vector unsigned int __a, vector unsigned int __b, unsigned const int __c) {
-  return vec_sld(__a, __b, ((__c << 2) & 0x0F));
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_sldw(
-    vector float __a, vector float __b, unsigned const int __c) {
-  return vec_sld(__a, __b, ((__c << 2) & 0x0F));
-}
-
-#ifdef __VSX__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_sldw(vector signed long long __a, vector signed long long __b,
-         unsigned const int __c) {
-  return vec_sld(__a, __b, ((__c << 2) & 0x0F));
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_sldw(vector unsigned long long __a, vector unsigned long long __b,
-         unsigned const int __c) {
-  return vec_sld(__a, __b, ((__c << 2) & 0x0F));
-}
-
-static __inline__ vector double __ATTRS_o_ai vec_sldw(
-    vector double __a, vector double __b, unsigned const int __c) {
-  return vec_sld(__a, __b, ((__c << 2) & 0x0F));
-}
-#endif
-
-#ifdef __POWER9_VECTOR__
-/* vec_slv */
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_slv(vector unsigned char __a, vector unsigned char __b) {
-  return __builtin_altivec_vslv(__a, __b);
-}
-
-/* vec_srv */
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_srv(vector unsigned char __a, vector unsigned char __b) {
-  return __builtin_altivec_vsrv(__a, __b);
-}
-#endif
-
-/* vec_vsldoi */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vsldoi(vector signed char __a, vector signed char __b, unsigned char __c) {
-  unsigned char __d = __c & 0x0F;
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(
-      __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
-                                       20 - __d, 21 - __d, 22 - __d, 23 - __d,
-                                       24 - __d, 25 - __d, 26 - __d, 27 - __d,
-                                       28 - __d, 29 - __d, 30 - __d, 31 - __d));
-#else
-  return vec_perm(
-      __a, __b,
-      (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
-                             __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
-                             __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
-#endif
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai vec_vsldoi(
-    vector unsigned char __a, vector unsigned char __b, unsigned char __c) {
-  unsigned char __d = __c & 0x0F;
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(
-      __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
-                                       20 - __d, 21 - __d, 22 - __d, 23 - __d,
-                                       24 - __d, 25 - __d, 26 - __d, 27 - __d,
-                                       28 - __d, 29 - __d, 30 - __d, 31 - __d));
-#else
-  return vec_perm(
-      __a, __b,
-      (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
-                             __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
-                             __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
-#endif
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vsldoi(vector short __a,
-                                                       vector short __b,
-                                                       unsigned char __c) {
-  unsigned char __d = __c & 0x0F;
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(
-      __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
-                                       20 - __d, 21 - __d, 22 - __d, 23 - __d,
-                                       24 - __d, 25 - __d, 26 - __d, 27 - __d,
-                                       28 - __d, 29 - __d, 30 - __d, 31 - __d));
-#else
-  return vec_perm(
-      __a, __b,
-      (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
-                             __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
-                             __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
-#endif
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai vec_vsldoi(
-    vector unsigned short __a, vector unsigned short __b, unsigned char __c) {
-  unsigned char __d = __c & 0x0F;
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(
-      __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
-                                       20 - __d, 21 - __d, 22 - __d, 23 - __d,
-                                       24 - __d, 25 - __d, 26 - __d, 27 - __d,
-                                       28 - __d, 29 - __d, 30 - __d, 31 - __d));
-#else
-  return vec_perm(
-      __a, __b,
-      (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
-                             __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
-                             __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
-#endif
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_vsldoi(vector pixel __a,
-                                                       vector pixel __b,
-                                                       unsigned char __c) {
-  unsigned char __d = __c & 0x0F;
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(
-      __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
-                                       20 - __d, 21 - __d, 22 - __d, 23 - __d,
-                                       24 - __d, 25 - __d, 26 - __d, 27 - __d,
-                                       28 - __d, 29 - __d, 30 - __d, 31 - __d));
-#else
-  return vec_perm(
-      __a, __b,
-      (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
-                             __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
-                             __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
-#endif
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vsldoi(vector int __a,
-                                                     vector int __b,
-                                                     unsigned char __c) {
-  unsigned char __d = __c & 0x0F;
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(
-      __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
-                                       20 - __d, 21 - __d, 22 - __d, 23 - __d,
-                                       24 - __d, 25 - __d, 26 - __d, 27 - __d,
-                                       28 - __d, 29 - __d, 30 - __d, 31 - __d));
-#else
-  return vec_perm(
-      __a, __b,
-      (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
-                             __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
-                             __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
-#endif
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai vec_vsldoi(
-    vector unsigned int __a, vector unsigned int __b, unsigned char __c) {
-  unsigned char __d = __c & 0x0F;
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(
-      __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
-                                       20 - __d, 21 - __d, 22 - __d, 23 - __d,
-                                       24 - __d, 25 - __d, 26 - __d, 27 - __d,
-                                       28 - __d, 29 - __d, 30 - __d, 31 - __d));
-#else
-  return vec_perm(
-      __a, __b,
-      (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
-                             __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
-                             __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
-#endif
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vsldoi(vector float __a,
-                                                       vector float __b,
-                                                       unsigned char __c) {
-  unsigned char __d = __c & 0x0F;
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(
-      __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
-                                       20 - __d, 21 - __d, 22 - __d, 23 - __d,
-                                       24 - __d, 25 - __d, 26 - __d, 27 - __d,
-                                       28 - __d, 29 - __d, 30 - __d, 31 - __d));
-#else
-  return vec_perm(
-      __a, __b,
-      (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
-                             __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
-                             __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
-#endif
-}
-
-/* vec_sll */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_sll(vector signed char __a, vector unsigned char __b) {
-  return (vector signed char)__builtin_altivec_vsl((vector int)__a,
-                                                   (vector int)__b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_sll(vector signed char __a, vector unsigned short __b) {
-  return (vector signed char)__builtin_altivec_vsl((vector int)__a,
-                                                   (vector int)__b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_sll(vector signed char __a, vector unsigned int __b) {
-  return (vector signed char)__builtin_altivec_vsl((vector int)__a,
-                                                   (vector int)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_sll(vector unsigned char __a, vector unsigned char __b) {
-  return (vector unsigned char)__builtin_altivec_vsl((vector int)__a,
-                                                     (vector int)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_sll(vector unsigned char __a, vector unsigned short __b) {
-  return (vector unsigned char)__builtin_altivec_vsl((vector int)__a,
-                                                     (vector int)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_sll(vector unsigned char __a, vector unsigned int __b) {
-  return (vector unsigned char)__builtin_altivec_vsl((vector int)__a,
-                                                     (vector int)__b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_sll(vector bool char __a, vector unsigned char __b) {
-  return (vector bool char)__builtin_altivec_vsl((vector int)__a,
-                                                 (vector int)__b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_sll(vector bool char __a, vector unsigned short __b) {
-  return (vector bool char)__builtin_altivec_vsl((vector int)__a,
-                                                 (vector int)__b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_sll(vector bool char __a, vector unsigned int __b) {
-  return (vector bool char)__builtin_altivec_vsl((vector int)__a,
-                                                 (vector int)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_sll(vector short __a,
-                                                    vector unsigned char __b) {
-  return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_sll(vector short __a,
-                                                    vector unsigned short __b) {
-  return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_sll(vector short __a,
-                                                    vector unsigned int __b) {
-  return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_sll(vector unsigned short __a, vector unsigned char __b) {
-  return (vector unsigned short)__builtin_altivec_vsl((vector int)__a,
-                                                      (vector int)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_sll(vector unsigned short __a, vector unsigned short __b) {
-  return (vector unsigned short)__builtin_altivec_vsl((vector int)__a,
-                                                      (vector int)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_sll(vector unsigned short __a, vector unsigned int __b) {
-  return (vector unsigned short)__builtin_altivec_vsl((vector int)__a,
-                                                      (vector int)__b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_sll(vector bool short __a, vector unsigned char __b) {
-  return (vector bool short)__builtin_altivec_vsl((vector int)__a,
-                                                  (vector int)__b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_sll(vector bool short __a, vector unsigned short __b) {
-  return (vector bool short)__builtin_altivec_vsl((vector int)__a,
-                                                  (vector int)__b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_sll(vector bool short __a, vector unsigned int __b) {
-  return (vector bool short)__builtin_altivec_vsl((vector int)__a,
-                                                  (vector int)__b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_sll(vector pixel __a,
-                                                    vector unsigned char __b) {
-  return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_sll(vector pixel __a,
-                                                    vector unsigned short __b) {
-  return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_sll(vector pixel __a,
-                                                    vector unsigned int __b) {
-  return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_sll(vector int __a,
-                                                  vector unsigned char __b) {
-  return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_sll(vector int __a,
-                                                  vector unsigned short __b) {
-  return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_sll(vector int __a,
-                                                  vector unsigned int __b) {
-  return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_sll(vector unsigned int __a, vector unsigned char __b) {
-  return (vector unsigned int)__builtin_altivec_vsl((vector int)__a,
-                                                    (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_sll(vector unsigned int __a, vector unsigned short __b) {
-  return (vector unsigned int)__builtin_altivec_vsl((vector int)__a,
-                                                    (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_sll(vector unsigned int __a, vector unsigned int __b) {
-  return (vector unsigned int)__builtin_altivec_vsl((vector int)__a,
-                                                    (vector int)__b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_sll(vector bool int __a, vector unsigned char __b) {
-  return (vector bool int)__builtin_altivec_vsl((vector int)__a,
-                                                (vector int)__b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_sll(vector bool int __a, vector unsigned short __b) {
-  return (vector bool int)__builtin_altivec_vsl((vector int)__a,
-                                                (vector int)__b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_sll(vector bool int __a, vector unsigned int __b) {
-  return (vector bool int)__builtin_altivec_vsl((vector int)__a,
-                                                (vector int)__b);
-}
-
-#ifdef __VSX__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_sll(vector signed long long __a, vector unsigned char __b) {
-  return (vector signed long long)__builtin_altivec_vsl((vector int)__a,
-                                                        (vector int)__b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_sll(vector unsigned long long __a, vector unsigned char __b) {
-  return (vector unsigned long long)__builtin_altivec_vsl((vector int)__a,
-                                                          (vector int)__b);
-}
-#endif
-
-/* vec_vsl */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vsl(vector signed char __a, vector unsigned char __b) {
-  return (vector signed char)__builtin_altivec_vsl((vector int)__a,
-                                                   (vector int)__b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vsl(vector signed char __a, vector unsigned short __b) {
-  return (vector signed char)__builtin_altivec_vsl((vector int)__a,
-                                                   (vector int)__b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vsl(vector signed char __a, vector unsigned int __b) {
-  return (vector signed char)__builtin_altivec_vsl((vector int)__a,
-                                                   (vector int)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vsl(vector unsigned char __a, vector unsigned char __b) {
-  return (vector unsigned char)__builtin_altivec_vsl((vector int)__a,
-                                                     (vector int)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vsl(vector unsigned char __a, vector unsigned short __b) {
-  return (vector unsigned char)__builtin_altivec_vsl((vector int)__a,
-                                                     (vector int)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vsl(vector unsigned char __a, vector unsigned int __b) {
-  return (vector unsigned char)__builtin_altivec_vsl((vector int)__a,
-                                                     (vector int)__b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_vsl(vector bool char __a, vector unsigned char __b) {
-  return (vector bool char)__builtin_altivec_vsl((vector int)__a,
-                                                 (vector int)__b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_vsl(vector bool char __a, vector unsigned short __b) {
-  return (vector bool char)__builtin_altivec_vsl((vector int)__a,
-                                                 (vector int)__b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_vsl(vector bool char __a, vector unsigned int __b) {
-  return (vector bool char)__builtin_altivec_vsl((vector int)__a,
-                                                 (vector int)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vsl(vector short __a,
-                                                    vector unsigned char __b) {
-  return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vsl(vector short __a,
-                                                    vector unsigned short __b) {
-  return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vsl(vector short __a,
-                                                    vector unsigned int __b) {
-  return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vsl(vector unsigned short __a, vector unsigned char __b) {
-  return (vector unsigned short)__builtin_altivec_vsl((vector int)__a,
-                                                      (vector int)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vsl(vector unsigned short __a, vector unsigned short __b) {
-  return (vector unsigned short)__builtin_altivec_vsl((vector int)__a,
-                                                      (vector int)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vsl(vector unsigned short __a, vector unsigned int __b) {
-  return (vector unsigned short)__builtin_altivec_vsl((vector int)__a,
-                                                      (vector int)__b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_vsl(vector bool short __a, vector unsigned char __b) {
-  return (vector bool short)__builtin_altivec_vsl((vector int)__a,
-                                                  (vector int)__b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_vsl(vector bool short __a, vector unsigned short __b) {
-  return (vector bool short)__builtin_altivec_vsl((vector int)__a,
-                                                  (vector int)__b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_vsl(vector bool short __a, vector unsigned int __b) {
-  return (vector bool short)__builtin_altivec_vsl((vector int)__a,
-                                                  (vector int)__b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_vsl(vector pixel __a,
-                                                    vector unsigned char __b) {
-  return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_vsl(vector pixel __a,
-                                                    vector unsigned short __b) {
-  return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_vsl(vector pixel __a,
-                                                    vector unsigned int __b) {
-  return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vsl(vector int __a,
-                                                  vector unsigned char __b) {
-  return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vsl(vector int __a,
-                                                  vector unsigned short __b) {
-  return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vsl(vector int __a,
-                                                  vector unsigned int __b) {
-  return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vsl(vector unsigned int __a, vector unsigned char __b) {
-  return (vector unsigned int)__builtin_altivec_vsl((vector int)__a,
-                                                    (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vsl(vector unsigned int __a, vector unsigned short __b) {
-  return (vector unsigned int)__builtin_altivec_vsl((vector int)__a,
-                                                    (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vsl(vector unsigned int __a, vector unsigned int __b) {
-  return (vector unsigned int)__builtin_altivec_vsl((vector int)__a,
-                                                    (vector int)__b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_vsl(vector bool int __a, vector unsigned char __b) {
-  return (vector bool int)__builtin_altivec_vsl((vector int)__a,
-                                                (vector int)__b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_vsl(vector bool int __a, vector unsigned short __b) {
-  return (vector bool int)__builtin_altivec_vsl((vector int)__a,
-                                                (vector int)__b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_vsl(vector bool int __a, vector unsigned int __b) {
-  return (vector bool int)__builtin_altivec_vsl((vector int)__a,
-                                                (vector int)__b);
-}
-
-/* vec_slo */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_slo(vector signed char __a, vector signed char __b) {
-  return (vector signed char)__builtin_altivec_vslo((vector int)__a,
-                                                    (vector int)__b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_slo(vector signed char __a, vector unsigned char __b) {
-  return (vector signed char)__builtin_altivec_vslo((vector int)__a,
-                                                    (vector int)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_slo(vector unsigned char __a, vector signed char __b) {
-  return (vector unsigned char)__builtin_altivec_vslo((vector int)__a,
-                                                      (vector int)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_slo(vector unsigned char __a, vector unsigned char __b) {
-  return (vector unsigned char)__builtin_altivec_vslo((vector int)__a,
-                                                      (vector int)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_slo(vector short __a,
-                                                    vector signed char __b) {
-  return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_slo(vector short __a,
-                                                    vector unsigned char __b) {
-  return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_slo(vector unsigned short __a, vector signed char __b) {
-  return (vector unsigned short)__builtin_altivec_vslo((vector int)__a,
-                                                       (vector int)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_slo(vector unsigned short __a, vector unsigned char __b) {
-  return (vector unsigned short)__builtin_altivec_vslo((vector int)__a,
-                                                       (vector int)__b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_slo(vector pixel __a,
-                                                    vector signed char __b) {
-  return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_slo(vector pixel __a,
-                                                    vector unsigned char __b) {
-  return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_slo(vector int __a,
-                                                  vector signed char __b) {
-  return (vector int)__builtin_altivec_vslo(__a, (vector int)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_slo(vector int __a,
-                                                  vector unsigned char __b) {
-  return (vector int)__builtin_altivec_vslo(__a, (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_slo(vector unsigned int __a, vector signed char __b) {
-  return (vector unsigned int)__builtin_altivec_vslo((vector int)__a,
-                                                     (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_slo(vector unsigned int __a, vector unsigned char __b) {
-  return (vector unsigned int)__builtin_altivec_vslo((vector int)__a,
-                                                     (vector int)__b);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_slo(vector float __a,
-                                                    vector signed char __b) {
-  return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_slo(vector float __a,
-                                                    vector unsigned char __b) {
-  return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
-}
-
-#ifdef __VSX__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_slo(vector signed long long __a, vector signed char __b) {
-  return (vector signed long long)__builtin_altivec_vslo((vector int)__a,
-                                                         (vector int)__b);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_slo(vector signed long long __a, vector unsigned char __b) {
-  return (vector signed long long)__builtin_altivec_vslo((vector int)__a,
-                                                         (vector int)__b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_slo(vector unsigned long long __a, vector signed char __b) {
-  return (vector unsigned long long)__builtin_altivec_vslo((vector int)__a,
-                                                           (vector int)__b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_slo(vector unsigned long long __a, vector unsigned char __b) {
-  return (vector unsigned long long)__builtin_altivec_vslo((vector int)__a,
-                                                           (vector int)__b);
-}
-#endif
-
-/* vec_vslo */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vslo(vector signed char __a, vector signed char __b) {
-  return (vector signed char)__builtin_altivec_vslo((vector int)__a,
-                                                    (vector int)__b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vslo(vector signed char __a, vector unsigned char __b) {
-  return (vector signed char)__builtin_altivec_vslo((vector int)__a,
-                                                    (vector int)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vslo(vector unsigned char __a, vector signed char __b) {
-  return (vector unsigned char)__builtin_altivec_vslo((vector int)__a,
-                                                      (vector int)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vslo(vector unsigned char __a, vector unsigned char __b) {
-  return (vector unsigned char)__builtin_altivec_vslo((vector int)__a,
-                                                      (vector int)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vslo(vector short __a,
-                                                     vector signed char __b) {
-  return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vslo(vector short __a,
-                                                     vector unsigned char __b) {
-  return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vslo(vector unsigned short __a, vector signed char __b) {
-  return (vector unsigned short)__builtin_altivec_vslo((vector int)__a,
-                                                       (vector int)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vslo(vector unsigned short __a, vector unsigned char __b) {
-  return (vector unsigned short)__builtin_altivec_vslo((vector int)__a,
-                                                       (vector int)__b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_vslo(vector pixel __a,
-                                                     vector signed char __b) {
-  return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_vslo(vector pixel __a,
-                                                     vector unsigned char __b) {
-  return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vslo(vector int __a,
-                                                   vector signed char __b) {
-  return (vector int)__builtin_altivec_vslo(__a, (vector int)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vslo(vector int __a,
-                                                   vector unsigned char __b) {
-  return (vector int)__builtin_altivec_vslo(__a, (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vslo(vector unsigned int __a, vector signed char __b) {
-  return (vector unsigned int)__builtin_altivec_vslo((vector int)__a,
-                                                     (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vslo(vector unsigned int __a, vector unsigned char __b) {
-  return (vector unsigned int)__builtin_altivec_vslo((vector int)__a,
-                                                     (vector int)__b);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vslo(vector float __a,
-                                                     vector signed char __b) {
-  return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vslo(vector float __a,
-                                                     vector unsigned char __b) {
-  return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
-}
-
-/* vec_splat */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_splat(vector signed char __a, unsigned const int __b) {
-  return vec_perm(__a, __a, (vector unsigned char)(__b & 0x0F));
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_splat(vector unsigned char __a, unsigned const int __b) {
-  return vec_perm(__a, __a, (vector unsigned char)(__b & 0x0F));
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_splat(vector bool char __a, unsigned const int __b) {
-  return vec_perm(__a, __a, (vector unsigned char)(__b & 0x0F));
-}
-
-static __inline__ vector signed short __ATTRS_o_ai
-vec_splat(vector signed short __a, unsigned const int __b) {
-  unsigned char b0 = (__b & 0x07) * 2;
-  unsigned char b1 = b0 + 1;
-  return vec_perm(__a, __a,
-                  (vector unsigned char)(b0, b1, b0, b1, b0, b1, b0, b1, b0, b1,
-                                         b0, b1, b0, b1, b0, b1));
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_splat(vector unsigned short __a, unsigned const int __b) {
-  unsigned char b0 = (__b & 0x07) * 2;
-  unsigned char b1 = b0 + 1;
-  return vec_perm(__a, __a,
-                  (vector unsigned char)(b0, b1, b0, b1, b0, b1, b0, b1, b0, b1,
-                                         b0, b1, b0, b1, b0, b1));
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_splat(vector bool short __a, unsigned const int __b) {
-  unsigned char b0 = (__b & 0x07) * 2;
-  unsigned char b1 = b0 + 1;
-  return vec_perm(__a, __a,
-                  (vector unsigned char)(b0, b1, b0, b1, b0, b1, b0, b1, b0, b1,
-                                         b0, b1, b0, b1, b0, b1));
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_splat(vector pixel __a,
-                                                      unsigned const int __b) {
-  unsigned char b0 = (__b & 0x07) * 2;
-  unsigned char b1 = b0 + 1;
-  return vec_perm(__a, __a,
-                  (vector unsigned char)(b0, b1, b0, b1, b0, b1, b0, b1, b0, b1,
-                                         b0, b1, b0, b1, b0, b1));
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_splat(vector signed int __a, unsigned const int __b) {
-  unsigned char b0 = (__b & 0x03) * 4;
-  unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3;
-  return vec_perm(__a, __a,
-                  (vector unsigned char)(b0, b1, b2, b3, b0, b1, b2, b3, b0, b1,
-                                         b2, b3, b0, b1, b2, b3));
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_splat(vector unsigned int __a, unsigned const int __b) {
-  unsigned char b0 = (__b & 0x03) * 4;
-  unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3;
-  return vec_perm(__a, __a,
-                  (vector unsigned char)(b0, b1, b2, b3, b0, b1, b2, b3, b0, b1,
-                                         b2, b3, b0, b1, b2, b3));
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_splat(vector bool int __a, unsigned const int __b) {
-  unsigned char b0 = (__b & 0x03) * 4;
-  unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3;
-  return vec_perm(__a, __a,
-                  (vector unsigned char)(b0, b1, b2, b3, b0, b1, b2, b3, b0, b1,
-                                         b2, b3, b0, b1, b2, b3));
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_splat(vector float __a,
-                                                      unsigned const int __b) {
-  unsigned char b0 = (__b & 0x03) * 4;
-  unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3;
-  return vec_perm(__a, __a,
-                  (vector unsigned char)(b0, b1, b2, b3, b0, b1, b2, b3, b0, b1,
-                                         b2, b3, b0, b1, b2, b3));
-}
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai vec_splat(vector double __a,
-                                                       unsigned const int __b) {
-  unsigned char b0 = (__b & 0x01) * 8;
-  unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3, b4 = b0 + 4, b5 = b0 + 5,
-                b6 = b0 + 6, b7 = b0 + 7;
-  return vec_perm(__a, __a,
-                  (vector unsigned char)(b0, b1, b2, b3, b4, b5, b6, b7, b0, b1,
-                                         b2, b3, b4, b5, b6, b7));
-}
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_splat(vector bool long long __a, unsigned const int __b) {
-  unsigned char b0 = (__b & 0x01) * 8;
-  unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3, b4 = b0 + 4, b5 = b0 + 5,
-                b6 = b0 + 6, b7 = b0 + 7;
-  return vec_perm(__a, __a,
-                  (vector unsigned char)(b0, b1, b2, b3, b4, b5, b6, b7, b0, b1,
-                                         b2, b3, b4, b5, b6, b7));
-}
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_splat(vector signed long long __a, unsigned const int __b) {
-  unsigned char b0 = (__b & 0x01) * 8;
-  unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3, b4 = b0 + 4, b5 = b0 + 5,
-                b6 = b0 + 6, b7 = b0 + 7;
-  return vec_perm(__a, __a,
-                  (vector unsigned char)(b0, b1, b2, b3, b4, b5, b6, b7, b0, b1,
-                                         b2, b3, b4, b5, b6, b7));
-}
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_splat(vector unsigned long long __a, unsigned const int __b) {
-  unsigned char b0 = (__b & 0x01) * 8;
-  unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3, b4 = b0 + 4, b5 = b0 + 5,
-                b6 = b0 + 6, b7 = b0 + 7;
-  return vec_perm(__a, __a,
-                  (vector unsigned char)(b0, b1, b2, b3, b4, b5, b6, b7, b0, b1,
-                                         b2, b3, b4, b5, b6, b7));
-}
-#endif
-
-/* vec_vspltb */
-
-#define __builtin_altivec_vspltb vec_vspltb
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vspltb(vector signed char __a, unsigned char __b) {
-  return vec_perm(__a, __a, (vector unsigned char)(__b));
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vspltb(vector unsigned char __a, unsigned char __b) {
-  return vec_perm(__a, __a, (vector unsigned char)(__b));
-}
-
-static __inline__ vector bool char __ATTRS_o_ai vec_vspltb(vector bool char __a,
-                                                           unsigned char __b) {
-  return vec_perm(__a, __a, (vector unsigned char)(__b));
-}
-
-/* vec_vsplth */
-
-#define __builtin_altivec_vsplth vec_vsplth
-
-static __inline__ vector short __ATTRS_o_ai vec_vsplth(vector short __a,
-                                                       unsigned char __b) {
-  __b *= 2;
-  unsigned char b1 = __b + 1;
-  return vec_perm(__a, __a,
-                  (vector unsigned char)(__b, b1, __b, b1, __b, b1, __b, b1,
-                                         __b, b1, __b, b1, __b, b1, __b, b1));
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vsplth(vector unsigned short __a, unsigned char __b) {
-  __b *= 2;
-  unsigned char b1 = __b + 1;
-  return vec_perm(__a, __a,
-                  (vector unsigned char)(__b, b1, __b, b1, __b, b1, __b, b1,
-                                         __b, b1, __b, b1, __b, b1, __b, b1));
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_vsplth(vector bool short __a, unsigned char __b) {
-  __b *= 2;
-  unsigned char b1 = __b + 1;
-  return vec_perm(__a, __a,
-                  (vector unsigned char)(__b, b1, __b, b1, __b, b1, __b, b1,
-                                         __b, b1, __b, b1, __b, b1, __b, b1));
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_vsplth(vector pixel __a,
-                                                       unsigned char __b) {
-  __b *= 2;
-  unsigned char b1 = __b + 1;
-  return vec_perm(__a, __a,
-                  (vector unsigned char)(__b, b1, __b, b1, __b, b1, __b, b1,
-                                         __b, b1, __b, b1, __b, b1, __b, b1));
-}
-
-/* vec_vspltw */
-
-#define __builtin_altivec_vspltw vec_vspltw
-
-static __inline__ vector int __ATTRS_o_ai vec_vspltw(vector int __a,
-                                                     unsigned char __b) {
-  __b *= 4;
-  unsigned char b1 = __b + 1, b2 = __b + 2, b3 = __b + 3;
-  return vec_perm(__a, __a,
-                  (vector unsigned char)(__b, b1, b2, b3, __b, b1, b2, b3, __b,
-                                         b1, b2, b3, __b, b1, b2, b3));
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vspltw(vector unsigned int __a, unsigned char __b) {
-  __b *= 4;
-  unsigned char b1 = __b + 1, b2 = __b + 2, b3 = __b + 3;
-  return vec_perm(__a, __a,
-                  (vector unsigned char)(__b, b1, b2, b3, __b, b1, b2, b3, __b,
-                                         b1, b2, b3, __b, b1, b2, b3));
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_vspltw(vector bool int __a,
-                                                          unsigned char __b) {
-  __b *= 4;
-  unsigned char b1 = __b + 1, b2 = __b + 2, b3 = __b + 3;
-  return vec_perm(__a, __a,
-                  (vector unsigned char)(__b, b1, b2, b3, __b, b1, b2, b3, __b,
-                                         b1, b2, b3, __b, b1, b2, b3));
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vspltw(vector float __a,
-                                                       unsigned char __b) {
-  __b *= 4;
-  unsigned char b1 = __b + 1, b2 = __b + 2, b3 = __b + 3;
-  return vec_perm(__a, __a,
-                  (vector unsigned char)(__b, b1, b2, b3, __b, b1, b2, b3, __b,
-                                         b1, b2, b3, __b, b1, b2, b3));
-}
-
-/* vec_splat_s8 */
-
-#define __builtin_altivec_vspltisb vec_splat_s8
-
-// FIXME: parameter should be treated as 5-bit signed literal
-static __inline__ vector signed char __ATTRS_o_ai
-vec_splat_s8(signed char __a) {
-  return (vector signed char)(__a);
-}
-
-/* vec_vspltisb */
-
-// FIXME: parameter should be treated as 5-bit signed literal
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vspltisb(signed char __a) {
-  return (vector signed char)(__a);
-}
-
-/* vec_splat_s16 */
-
-#define __builtin_altivec_vspltish vec_splat_s16
-
-// FIXME: parameter should be treated as 5-bit signed literal
-static __inline__ vector short __ATTRS_o_ai vec_splat_s16(signed char __a) {
-  return (vector short)(__a);
-}
-
-/* vec_vspltish */
-
-// FIXME: parameter should be treated as 5-bit signed literal
-static __inline__ vector short __ATTRS_o_ai vec_vspltish(signed char __a) {
-  return (vector short)(__a);
-}
-
-/* vec_splat_s32 */
-
-#define __builtin_altivec_vspltisw vec_splat_s32
-
-// FIXME: parameter should be treated as 5-bit signed literal
-static __inline__ vector int __ATTRS_o_ai vec_splat_s32(signed char __a) {
-  return (vector int)(__a);
-}
-
-/* vec_vspltisw */
-
-// FIXME: parameter should be treated as 5-bit signed literal
-static __inline__ vector int __ATTRS_o_ai vec_vspltisw(signed char __a) {
-  return (vector int)(__a);
-}
-
-/* vec_splat_u8 */
-
-// FIXME: parameter should be treated as 5-bit signed literal
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_splat_u8(unsigned char __a) {
-  return (vector unsigned char)(__a);
-}
-
-/* vec_splat_u16 */
-
-// FIXME: parameter should be treated as 5-bit signed literal
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_splat_u16(signed char __a) {
-  return (vector unsigned short)(__a);
-}
-
-/* vec_splat_u32 */
-
-// FIXME: parameter should be treated as 5-bit signed literal
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_splat_u32(signed char __a) {
-  return (vector unsigned int)(__a);
-}
-
-/* vec_sr */
-
-// vec_sr does modulo arithmetic on __b first, so __b is allowed to be more
-// than the length of __a.
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_sr(vector unsigned char __a, vector unsigned char __b) {
-  return __a >>
-         (__b % (vector unsigned char)(sizeof(unsigned char) * __CHAR_BIT__));
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_sr(vector signed char __a, vector unsigned char __b) {
-  return (vector signed char)vec_sr((vector unsigned char)__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_sr(vector unsigned short __a, vector unsigned short __b) {
-  return __a >>
-         (__b % (vector unsigned short)(sizeof(unsigned short) * __CHAR_BIT__));
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_sr(vector short __a,
-                                                   vector unsigned short __b) {
-  return (vector short)vec_sr((vector unsigned short)__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_sr(vector unsigned int __a, vector unsigned int __b) {
-  return __a >>
-         (__b % (vector unsigned int)(sizeof(unsigned int) * __CHAR_BIT__));
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_sr(vector int __a,
-                                                 vector unsigned int __b) {
-  return (vector int)vec_sr((vector unsigned int)__a, __b);
-}
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_sr(vector unsigned long long __a, vector unsigned long long __b) {
-  return __a >> (__b % (vector unsigned long long)(sizeof(unsigned long long) *
-                                                   __CHAR_BIT__));
-}
-
-static __inline__ vector long long __ATTRS_o_ai
-vec_sr(vector long long __a, vector unsigned long long __b) {
-  return (vector long long)vec_sr((vector unsigned long long)__a, __b);
-}
-#else
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_sr(vector unsigned long long __a, vector unsigned long long __b) {
-  __b %= (vector unsigned long long)(sizeof(unsigned long long) * __CHAR_BIT__);
-
-  // Big endian element zero (the left doubleword) can be right shifted as-is.
-  // However the shift amount must be in the right doubleword.
-  // The other element needs to be swapped into the left doubleword and
-  // shifted. Then the left doublewords of the two result vectors are merged.
-  vector unsigned long long __swapshift =
-      __builtin_shufflevector(__b, __b, 1, 0);
-  vector unsigned long long __leftelt =
-      (vector unsigned long long)__builtin_altivec_vsro(
-          (vector signed int)__a, (vector signed int)__swapshift);
-#ifdef __LITTLE_ENDIAN__
-  __leftelt = (vector unsigned long long)__builtin_altivec_vsr(
-      (vector signed int)__leftelt,
-      (vector signed int)vec_vspltb((vector unsigned char)__swapshift, 0));
-#else
-  __leftelt = (vector unsigned long long)__builtin_altivec_vsr(
-      (vector signed int)__leftelt,
-      (vector signed int)vec_vspltb((vector unsigned char)__swapshift, 15));
-#endif
-  __a = __builtin_shufflevector(__a, __a, 1, 0);
-  vector unsigned long long __rightelt =
-      (vector unsigned long long)__builtin_altivec_vsro((vector signed int)__a,
-                                                        (vector signed int)__b);
-#ifdef __LITTLE_ENDIAN__
-  __rightelt = (vector unsigned long long)__builtin_altivec_vsr(
-      (vector signed int)__rightelt,
-      (vector signed int)vec_vspltb((vector unsigned char)__b, 0));
-  return __builtin_shufflevector(__rightelt, __leftelt, 1, 3);
-#else
-  __rightelt = (vector unsigned long long)__builtin_altivec_vsr(
-      (vector signed int)__rightelt,
-      (vector signed int)vec_vspltb((vector unsigned char)__b, 15));
-  return __builtin_shufflevector(__leftelt, __rightelt, 0, 2);
-#endif
-}
-
-static __inline__ vector long long __ATTRS_o_ai
-vec_sr(vector long long __a, vector unsigned long long __b) {
-  return (vector long long)vec_sr((vector unsigned long long)__a, __b);
-}
-#endif
-
-/* vec_vsrb */
-
-#define __builtin_altivec_vsrb vec_vsrb
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vsrb(vector signed char __a, vector unsigned char __b) {
-  return vec_sr(__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vsrb(vector unsigned char __a, vector unsigned char __b) {
-  return vec_sr(__a, __b);
-}
-
-/* vec_vsrh */
-
-#define __builtin_altivec_vsrh vec_vsrh
-
-static __inline__ vector short __ATTRS_o_ai
-vec_vsrh(vector short __a, vector unsigned short __b) {
-  return vec_sr(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vsrh(vector unsigned short __a, vector unsigned short __b) {
-  return vec_sr(__a, __b);
-}
-
-/* vec_vsrw */
-
-#define __builtin_altivec_vsrw vec_vsrw
-
-static __inline__ vector int __ATTRS_o_ai vec_vsrw(vector int __a,
-                                                   vector unsigned int __b) {
-  return vec_sr(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vsrw(vector unsigned int __a, vector unsigned int __b) {
-  return vec_sr(__a, __b);
-}
-
-/* vec_sra */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_sra(vector signed char __a, vector unsigned char __b) {
-  return (vector signed char)__builtin_altivec_vsrab((vector char)__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_sra(vector unsigned char __a, vector unsigned char __b) {
-  return (vector unsigned char)__builtin_altivec_vsrab((vector char)__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_sra(vector short __a,
-                                                    vector unsigned short __b) {
-  return __builtin_altivec_vsrah(__a, (vector unsigned short)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_sra(vector unsigned short __a, vector unsigned short __b) {
-  return (vector unsigned short)__builtin_altivec_vsrah((vector short)__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_sra(vector int __a,
-                                                  vector unsigned int __b) {
-  return __builtin_altivec_vsraw(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_sra(vector unsigned int __a, vector unsigned int __b) {
-  return (vector unsigned int)__builtin_altivec_vsraw((vector int)__a, __b);
-}
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_sra(vector signed long long __a, vector unsigned long long __b) {
-  return __a >> __b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_sra(vector unsigned long long __a, vector unsigned long long __b) {
-  return (vector unsigned long long)((vector signed long long)__a >> __b);
-}
-#else
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_sra(vector signed long long __a, vector unsigned long long __b) {
-  __b %= (vector unsigned long long)(sizeof(unsigned long long) * __CHAR_BIT__);
-  return __a >> __b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_sra(vector unsigned long long __a, vector unsigned long long __b) {
-  __b %= (vector unsigned long long)(sizeof(unsigned long long) * __CHAR_BIT__);
-  return (vector unsigned long long)((vector signed long long)__a >> __b);
-}
-#endif
-
-/* vec_vsrab */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vsrab(vector signed char __a, vector unsigned char __b) {
-  return (vector signed char)__builtin_altivec_vsrab((vector char)__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vsrab(vector unsigned char __a, vector unsigned char __b) {
-  return (vector unsigned char)__builtin_altivec_vsrab((vector char)__a, __b);
-}
-
-/* vec_vsrah */
-
-static __inline__ vector short __ATTRS_o_ai
-vec_vsrah(vector short __a, vector unsigned short __b) {
-  return __builtin_altivec_vsrah(__a, (vector unsigned short)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vsrah(vector unsigned short __a, vector unsigned short __b) {
-  return (vector unsigned short)__builtin_altivec_vsrah((vector short)__a, __b);
-}
-
-/* vec_vsraw */
-
-static __inline__ vector int __ATTRS_o_ai vec_vsraw(vector int __a,
-                                                    vector unsigned int __b) {
-  return __builtin_altivec_vsraw(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vsraw(vector unsigned int __a, vector unsigned int __b) {
-  return (vector unsigned int)__builtin_altivec_vsraw((vector int)__a, __b);
-}
-
-/* vec_srl */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_srl(vector signed char __a, vector unsigned char __b) {
-  return (vector signed char)__builtin_altivec_vsr((vector int)__a,
-                                                   (vector int)__b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_srl(vector signed char __a, vector unsigned short __b) {
-  return (vector signed char)__builtin_altivec_vsr((vector int)__a,
-                                                   (vector int)__b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_srl(vector signed char __a, vector unsigned int __b) {
-  return (vector signed char)__builtin_altivec_vsr((vector int)__a,
-                                                   (vector int)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_srl(vector unsigned char __a, vector unsigned char __b) {
-  return (vector unsigned char)__builtin_altivec_vsr((vector int)__a,
-                                                     (vector int)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_srl(vector unsigned char __a, vector unsigned short __b) {
-  return (vector unsigned char)__builtin_altivec_vsr((vector int)__a,
-                                                     (vector int)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_srl(vector unsigned char __a, vector unsigned int __b) {
-  return (vector unsigned char)__builtin_altivec_vsr((vector int)__a,
-                                                     (vector int)__b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_srl(vector bool char __a, vector unsigned char __b) {
-  return (vector bool char)__builtin_altivec_vsr((vector int)__a,
-                                                 (vector int)__b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_srl(vector bool char __a, vector unsigned short __b) {
-  return (vector bool char)__builtin_altivec_vsr((vector int)__a,
-                                                 (vector int)__b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_srl(vector bool char __a, vector unsigned int __b) {
-  return (vector bool char)__builtin_altivec_vsr((vector int)__a,
-                                                 (vector int)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_srl(vector short __a,
-                                                    vector unsigned char __b) {
-  return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_srl(vector short __a,
-                                                    vector unsigned short __b) {
-  return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_srl(vector short __a,
-                                                    vector unsigned int __b) {
-  return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_srl(vector unsigned short __a, vector unsigned char __b) {
-  return (vector unsigned short)__builtin_altivec_vsr((vector int)__a,
-                                                      (vector int)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_srl(vector unsigned short __a, vector unsigned short __b) {
-  return (vector unsigned short)__builtin_altivec_vsr((vector int)__a,
-                                                      (vector int)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_srl(vector unsigned short __a, vector unsigned int __b) {
-  return (vector unsigned short)__builtin_altivec_vsr((vector int)__a,
-                                                      (vector int)__b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_srl(vector bool short __a, vector unsigned char __b) {
-  return (vector bool short)__builtin_altivec_vsr((vector int)__a,
-                                                  (vector int)__b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_srl(vector bool short __a, vector unsigned short __b) {
-  return (vector bool short)__builtin_altivec_vsr((vector int)__a,
-                                                  (vector int)__b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_srl(vector bool short __a, vector unsigned int __b) {
-  return (vector bool short)__builtin_altivec_vsr((vector int)__a,
-                                                  (vector int)__b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_srl(vector pixel __a,
-                                                    vector unsigned char __b) {
-  return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_srl(vector pixel __a,
-                                                    vector unsigned short __b) {
-  return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_srl(vector pixel __a,
-                                                    vector unsigned int __b) {
-  return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_srl(vector int __a,
-                                                  vector unsigned char __b) {
-  return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_srl(vector int __a,
-                                                  vector unsigned short __b) {
-  return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_srl(vector int __a,
-                                                  vector unsigned int __b) {
-  return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_srl(vector unsigned int __a, vector unsigned char __b) {
-  return (vector unsigned int)__builtin_altivec_vsr((vector int)__a,
-                                                    (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_srl(vector unsigned int __a, vector unsigned short __b) {
-  return (vector unsigned int)__builtin_altivec_vsr((vector int)__a,
-                                                    (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_srl(vector unsigned int __a, vector unsigned int __b) {
-  return (vector unsigned int)__builtin_altivec_vsr((vector int)__a,
-                                                    (vector int)__b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_srl(vector bool int __a, vector unsigned char __b) {
-  return (vector bool int)__builtin_altivec_vsr((vector int)__a,
-                                                (vector int)__b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_srl(vector bool int __a, vector unsigned short __b) {
-  return (vector bool int)__builtin_altivec_vsr((vector int)__a,
-                                                (vector int)__b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_srl(vector bool int __a, vector unsigned int __b) {
-  return (vector bool int)__builtin_altivec_vsr((vector int)__a,
-                                                (vector int)__b);
-}
-
-#ifdef __VSX__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_srl(vector signed long long __a, vector unsigned char __b) {
-  return (vector signed long long)__builtin_altivec_vsr((vector int)__a,
-                                                        (vector int)__b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_srl(vector unsigned long long __a, vector unsigned char __b) {
-  return (vector unsigned long long)__builtin_altivec_vsr((vector int)__a,
-                                                          (vector int)__b);
-}
-#endif
-
-/* vec_vsr */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vsr(vector signed char __a, vector unsigned char __b) {
-  return (vector signed char)__builtin_altivec_vsr((vector int)__a,
-                                                   (vector int)__b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vsr(vector signed char __a, vector unsigned short __b) {
-  return (vector signed char)__builtin_altivec_vsr((vector int)__a,
-                                                   (vector int)__b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vsr(vector signed char __a, vector unsigned int __b) {
-  return (vector signed char)__builtin_altivec_vsr((vector int)__a,
-                                                   (vector int)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vsr(vector unsigned char __a, vector unsigned char __b) {
-  return (vector unsigned char)__builtin_altivec_vsr((vector int)__a,
-                                                     (vector int)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vsr(vector unsigned char __a, vector unsigned short __b) {
-  return (vector unsigned char)__builtin_altivec_vsr((vector int)__a,
-                                                     (vector int)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vsr(vector unsigned char __a, vector unsigned int __b) {
-  return (vector unsigned char)__builtin_altivec_vsr((vector int)__a,
-                                                     (vector int)__b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_vsr(vector bool char __a, vector unsigned char __b) {
-  return (vector bool char)__builtin_altivec_vsr((vector int)__a,
-                                                 (vector int)__b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_vsr(vector bool char __a, vector unsigned short __b) {
-  return (vector bool char)__builtin_altivec_vsr((vector int)__a,
-                                                 (vector int)__b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_vsr(vector bool char __a, vector unsigned int __b) {
-  return (vector bool char)__builtin_altivec_vsr((vector int)__a,
-                                                 (vector int)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vsr(vector short __a,
-                                                    vector unsigned char __b) {
-  return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vsr(vector short __a,
-                                                    vector unsigned short __b) {
-  return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vsr(vector short __a,
-                                                    vector unsigned int __b) {
-  return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vsr(vector unsigned short __a, vector unsigned char __b) {
-  return (vector unsigned short)__builtin_altivec_vsr((vector int)__a,
-                                                      (vector int)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vsr(vector unsigned short __a, vector unsigned short __b) {
-  return (vector unsigned short)__builtin_altivec_vsr((vector int)__a,
-                                                      (vector int)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vsr(vector unsigned short __a, vector unsigned int __b) {
-  return (vector unsigned short)__builtin_altivec_vsr((vector int)__a,
-                                                      (vector int)__b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_vsr(vector bool short __a, vector unsigned char __b) {
-  return (vector bool short)__builtin_altivec_vsr((vector int)__a,
-                                                  (vector int)__b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_vsr(vector bool short __a, vector unsigned short __b) {
-  return (vector bool short)__builtin_altivec_vsr((vector int)__a,
-                                                  (vector int)__b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_vsr(vector bool short __a, vector unsigned int __b) {
-  return (vector bool short)__builtin_altivec_vsr((vector int)__a,
-                                                  (vector int)__b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_vsr(vector pixel __a,
-                                                    vector unsigned char __b) {
-  return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_vsr(vector pixel __a,
-                                                    vector unsigned short __b) {
-  return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_vsr(vector pixel __a,
-                                                    vector unsigned int __b) {
-  return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vsr(vector int __a,
-                                                  vector unsigned char __b) {
-  return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vsr(vector int __a,
-                                                  vector unsigned short __b) {
-  return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vsr(vector int __a,
-                                                  vector unsigned int __b) {
-  return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vsr(vector unsigned int __a, vector unsigned char __b) {
-  return (vector unsigned int)__builtin_altivec_vsr((vector int)__a,
-                                                    (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vsr(vector unsigned int __a, vector unsigned short __b) {
-  return (vector unsigned int)__builtin_altivec_vsr((vector int)__a,
-                                                    (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vsr(vector unsigned int __a, vector unsigned int __b) {
-  return (vector unsigned int)__builtin_altivec_vsr((vector int)__a,
-                                                    (vector int)__b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_vsr(vector bool int __a, vector unsigned char __b) {
-  return (vector bool int)__builtin_altivec_vsr((vector int)__a,
-                                                (vector int)__b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_vsr(vector bool int __a, vector unsigned short __b) {
-  return (vector bool int)__builtin_altivec_vsr((vector int)__a,
-                                                (vector int)__b);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_vsr(vector bool int __a, vector unsigned int __b) {
-  return (vector bool int)__builtin_altivec_vsr((vector int)__a,
-                                                (vector int)__b);
-}
-
-/* vec_sro */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_sro(vector signed char __a, vector signed char __b) {
-  return (vector signed char)__builtin_altivec_vsro((vector int)__a,
-                                                    (vector int)__b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_sro(vector signed char __a, vector unsigned char __b) {
-  return (vector signed char)__builtin_altivec_vsro((vector int)__a,
-                                                    (vector int)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_sro(vector unsigned char __a, vector signed char __b) {
-  return (vector unsigned char)__builtin_altivec_vsro((vector int)__a,
-                                                      (vector int)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_sro(vector unsigned char __a, vector unsigned char __b) {
-  return (vector unsigned char)__builtin_altivec_vsro((vector int)__a,
-                                                      (vector int)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_sro(vector short __a,
-                                                    vector signed char __b) {
-  return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_sro(vector short __a,
-                                                    vector unsigned char __b) {
-  return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_sro(vector unsigned short __a, vector signed char __b) {
-  return (vector unsigned short)__builtin_altivec_vsro((vector int)__a,
-                                                       (vector int)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_sro(vector unsigned short __a, vector unsigned char __b) {
-  return (vector unsigned short)__builtin_altivec_vsro((vector int)__a,
-                                                       (vector int)__b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_sro(vector pixel __a,
-                                                    vector signed char __b) {
-  return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_sro(vector pixel __a,
-                                                    vector unsigned char __b) {
-  return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_sro(vector int __a,
-                                                  vector signed char __b) {
-  return (vector int)__builtin_altivec_vsro(__a, (vector int)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_sro(vector int __a,
-                                                  vector unsigned char __b) {
-  return (vector int)__builtin_altivec_vsro(__a, (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_sro(vector unsigned int __a, vector signed char __b) {
-  return (vector unsigned int)__builtin_altivec_vsro((vector int)__a,
-                                                     (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_sro(vector unsigned int __a, vector unsigned char __b) {
-  return (vector unsigned int)__builtin_altivec_vsro((vector int)__a,
-                                                     (vector int)__b);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_sro(vector float __a,
-                                                    vector signed char __b) {
-  return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_sro(vector float __a,
-                                                    vector unsigned char __b) {
-  return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
-}
-
-#ifdef __VSX__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_sro(vector signed long long __a, vector signed char __b) {
-  return (vector signed long long)__builtin_altivec_vsro((vector int)__a,
-                                                         (vector int)__b);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_sro(vector signed long long __a, vector unsigned char __b) {
-  return (vector signed long long)__builtin_altivec_vsro((vector int)__a,
-                                                         (vector int)__b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_sro(vector unsigned long long __a, vector signed char __b) {
-  return (vector unsigned long long)__builtin_altivec_vsro((vector int)__a,
-                                                           (vector int)__b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_sro(vector unsigned long long __a, vector unsigned char __b) {
-  return (vector unsigned long long)__builtin_altivec_vsro((vector int)__a,
-                                                           (vector int)__b);
-}
-#endif
-
-/* vec_vsro */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vsro(vector signed char __a, vector signed char __b) {
-  return (vector signed char)__builtin_altivec_vsro((vector int)__a,
-                                                    (vector int)__b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vsro(vector signed char __a, vector unsigned char __b) {
-  return (vector signed char)__builtin_altivec_vsro((vector int)__a,
-                                                    (vector int)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vsro(vector unsigned char __a, vector signed char __b) {
-  return (vector unsigned char)__builtin_altivec_vsro((vector int)__a,
-                                                      (vector int)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vsro(vector unsigned char __a, vector unsigned char __b) {
-  return (vector unsigned char)__builtin_altivec_vsro((vector int)__a,
-                                                      (vector int)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vsro(vector short __a,
-                                                     vector signed char __b) {
-  return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vsro(vector short __a,
-                                                     vector unsigned char __b) {
-  return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vsro(vector unsigned short __a, vector signed char __b) {
-  return (vector unsigned short)__builtin_altivec_vsro((vector int)__a,
-                                                       (vector int)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vsro(vector unsigned short __a, vector unsigned char __b) {
-  return (vector unsigned short)__builtin_altivec_vsro((vector int)__a,
-                                                       (vector int)__b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_vsro(vector pixel __a,
-                                                     vector signed char __b) {
-  return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_vsro(vector pixel __a,
-                                                     vector unsigned char __b) {
-  return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vsro(vector int __a,
-                                                   vector signed char __b) {
-  return (vector int)__builtin_altivec_vsro(__a, (vector int)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vsro(vector int __a,
-                                                   vector unsigned char __b) {
-  return (vector int)__builtin_altivec_vsro(__a, (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vsro(vector unsigned int __a, vector signed char __b) {
-  return (vector unsigned int)__builtin_altivec_vsro((vector int)__a,
-                                                     (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vsro(vector unsigned int __a, vector unsigned char __b) {
-  return (vector unsigned int)__builtin_altivec_vsro((vector int)__a,
-                                                     (vector int)__b);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vsro(vector float __a,
-                                                     vector signed char __b) {
-  return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vsro(vector float __a,
-                                                     vector unsigned char __b) {
-  return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
-}
-
-/* vec_st */
-
-static __inline__ void __ATTRS_o_ai vec_st(vector signed char __a, long __b,
-                                           vector signed char *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector signed char __a, long __b,
-                                           signed char *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector unsigned char __a, long __b,
-                                           vector unsigned char *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector unsigned char __a, long __b,
-                                           unsigned char *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector bool char __a, long __b,
-                                           signed char *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector bool char __a, long __b,
-                                           unsigned char *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector bool char __a, long __b,
-                                           vector bool char *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector short __a, long __b,
-                                           vector short *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector short __a, long __b,
-                                           short *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector unsigned short __a, long __b,
-                                           vector unsigned short *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector unsigned short __a, long __b,
-                                           unsigned short *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector bool short __a, long __b,
-                                           short *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector bool short __a, long __b,
-                                           unsigned short *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector bool short __a, long __b,
-                                           vector bool short *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector pixel __a, long __b,
-                                           short *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector pixel __a, long __b,
-                                           unsigned short *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector pixel __a, long __b,
-                                           vector pixel *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector int __a, long __b,
-                                           vector int *__c) {
-  __builtin_altivec_stvx(__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector int __a, long __b, int *__c) {
-  __builtin_altivec_stvx(__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector unsigned int __a, long __b,
-                                           vector unsigned int *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector unsigned int __a, long __b,
-                                           unsigned int *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector bool int __a, long __b,
-                                           int *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector bool int __a, long __b,
-                                           unsigned int *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector bool int __a, long __b,
-                                           vector bool int *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector float __a, long __b,
-                                           vector float *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_st(vector float __a, long __b,
-                                           float *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-/* vec_stvx */
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector signed char __a, long __b,
-                                             vector signed char *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector signed char __a, long __b,
-                                             signed char *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector unsigned char __a, long __b,
-                                             vector unsigned char *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector unsigned char __a, long __b,
-                                             unsigned char *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector bool char __a, long __b,
-                                             signed char *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector bool char __a, long __b,
-                                             unsigned char *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector bool char __a, long __b,
-                                             vector bool char *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector short __a, long __b,
-                                             vector short *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector short __a, long __b,
-                                             short *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector unsigned short __a, long __b,
-                                             vector unsigned short *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector unsigned short __a, long __b,
-                                             unsigned short *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector bool short __a, long __b,
-                                             short *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector bool short __a, long __b,
-                                             unsigned short *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector bool short __a, long __b,
-                                             vector bool short *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector pixel __a, long __b,
-                                             short *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector pixel __a, long __b,
-                                             unsigned short *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector pixel __a, long __b,
-                                             vector pixel *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector int __a, long __b,
-                                             vector int *__c) {
-  __builtin_altivec_stvx(__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector int __a, long __b,
-                                             int *__c) {
-  __builtin_altivec_stvx(__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector unsigned int __a, long __b,
-                                             vector unsigned int *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector unsigned int __a, long __b,
-                                             unsigned int *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector bool int __a, long __b,
-                                             int *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector bool int __a, long __b,
-                                             unsigned int *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector bool int __a, long __b,
-                                             vector bool int *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector float __a, long __b,
-                                             vector float *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvx(vector float __a, long __b,
-                                             float *__c) {
-  __builtin_altivec_stvx((vector int)__a, __b, __c);
-}
-
-/* vec_ste */
-
-static __inline__ void __ATTRS_o_ai vec_ste(vector signed char __a, long __b,
-                                            signed char *__c) {
-  __builtin_altivec_stvebx((vector char)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_ste(vector unsigned char __a, long __b,
-                                            unsigned char *__c) {
-  __builtin_altivec_stvebx((vector char)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_ste(vector bool char __a, long __b,
-                                            signed char *__c) {
-  __builtin_altivec_stvebx((vector char)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_ste(vector bool char __a, long __b,
-                                            unsigned char *__c) {
-  __builtin_altivec_stvebx((vector char)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_ste(vector short __a, long __b,
-                                            short *__c) {
-  __builtin_altivec_stvehx(__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_ste(vector unsigned short __a, long __b,
-                                            unsigned short *__c) {
-  __builtin_altivec_stvehx((vector short)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_ste(vector bool short __a, long __b,
-                                            short *__c) {
-  __builtin_altivec_stvehx((vector short)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_ste(vector bool short __a, long __b,
-                                            unsigned short *__c) {
-  __builtin_altivec_stvehx((vector short)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_ste(vector pixel __a, long __b,
-                                            short *__c) {
-  __builtin_altivec_stvehx((vector short)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_ste(vector pixel __a, long __b,
-                                            unsigned short *__c) {
-  __builtin_altivec_stvehx((vector short)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_ste(vector int __a, long __b, int *__c) {
-  __builtin_altivec_stvewx(__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_ste(vector unsigned int __a, long __b,
-                                            unsigned int *__c) {
-  __builtin_altivec_stvewx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_ste(vector bool int __a, long __b,
-                                            int *__c) {
-  __builtin_altivec_stvewx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_ste(vector bool int __a, long __b,
-                                            unsigned int *__c) {
-  __builtin_altivec_stvewx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_ste(vector float __a, long __b,
-                                            float *__c) {
-  __builtin_altivec_stvewx((vector int)__a, __b, __c);
-}
-
-/* vec_stvebx */
-
-static __inline__ void __ATTRS_o_ai vec_stvebx(vector signed char __a, long __b,
-                                               signed char *__c) {
-  __builtin_altivec_stvebx((vector char)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvebx(vector unsigned char __a,
-                                               long __b, unsigned char *__c) {
-  __builtin_altivec_stvebx((vector char)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvebx(vector bool char __a, long __b,
-                                               signed char *__c) {
-  __builtin_altivec_stvebx((vector char)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvebx(vector bool char __a, long __b,
-                                               unsigned char *__c) {
-  __builtin_altivec_stvebx((vector char)__a, __b, __c);
-}
-
-/* vec_stvehx */
-
-static __inline__ void __ATTRS_o_ai vec_stvehx(vector short __a, long __b,
-                                               short *__c) {
-  __builtin_altivec_stvehx(__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvehx(vector unsigned short __a,
-                                               long __b, unsigned short *__c) {
-  __builtin_altivec_stvehx((vector short)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvehx(vector bool short __a, long __b,
-                                               short *__c) {
-  __builtin_altivec_stvehx((vector short)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvehx(vector bool short __a, long __b,
-                                               unsigned short *__c) {
-  __builtin_altivec_stvehx((vector short)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvehx(vector pixel __a, long __b,
-                                               short *__c) {
-  __builtin_altivec_stvehx((vector short)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvehx(vector pixel __a, long __b,
-                                               unsigned short *__c) {
-  __builtin_altivec_stvehx((vector short)__a, __b, __c);
-}
-
-/* vec_stvewx */
-
-static __inline__ void __ATTRS_o_ai vec_stvewx(vector int __a, long __b,
-                                               int *__c) {
-  __builtin_altivec_stvewx(__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvewx(vector unsigned int __a, long __b,
-                                               unsigned int *__c) {
-  __builtin_altivec_stvewx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvewx(vector bool int __a, long __b,
-                                               int *__c) {
-  __builtin_altivec_stvewx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvewx(vector bool int __a, long __b,
-                                               unsigned int *__c) {
-  __builtin_altivec_stvewx((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvewx(vector float __a, long __b,
-                                               float *__c) {
-  __builtin_altivec_stvewx((vector int)__a, __b, __c);
-}
-
-/* vec_stl */
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector signed char __a, int __b,
-                                            vector signed char *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector signed char __a, int __b,
-                                            signed char *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector unsigned char __a, int __b,
-                                            vector unsigned char *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector unsigned char __a, int __b,
-                                            unsigned char *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector bool char __a, int __b,
-                                            signed char *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector bool char __a, int __b,
-                                            unsigned char *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector bool char __a, int __b,
-                                            vector bool char *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector short __a, int __b,
-                                            vector short *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector short __a, int __b,
-                                            short *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector unsigned short __a, int __b,
-                                            vector unsigned short *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector unsigned short __a, int __b,
-                                            unsigned short *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector bool short __a, int __b,
-                                            short *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector bool short __a, int __b,
-                                            unsigned short *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector bool short __a, int __b,
-                                            vector bool short *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector pixel __a, int __b,
-                                            short *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector pixel __a, int __b,
-                                            unsigned short *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector pixel __a, int __b,
-                                            vector pixel *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector int __a, int __b,
-                                            vector int *__c) {
-  __builtin_altivec_stvxl(__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector int __a, int __b, int *__c) {
-  __builtin_altivec_stvxl(__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector unsigned int __a, int __b,
-                                            vector unsigned int *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector unsigned int __a, int __b,
-                                            unsigned int *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector bool int __a, int __b,
-                                            int *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector bool int __a, int __b,
-                                            unsigned int *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector bool int __a, int __b,
-                                            vector bool int *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector float __a, int __b,
-                                            vector float *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stl(vector float __a, int __b,
-                                            float *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-/* vec_stvxl */
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector signed char __a, int __b,
-                                              vector signed char *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector signed char __a, int __b,
-                                              signed char *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector unsigned char __a, int __b,
-                                              vector unsigned char *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector unsigned char __a, int __b,
-                                              unsigned char *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector bool char __a, int __b,
-                                              signed char *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector bool char __a, int __b,
-                                              unsigned char *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector bool char __a, int __b,
-                                              vector bool char *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector short __a, int __b,
-                                              vector short *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector short __a, int __b,
-                                              short *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector unsigned short __a,
-                                              int __b,
-                                              vector unsigned short *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector unsigned short __a,
-                                              int __b, unsigned short *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector bool short __a, int __b,
-                                              short *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector bool short __a, int __b,
-                                              unsigned short *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector bool short __a, int __b,
-                                              vector bool short *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector pixel __a, int __b,
-                                              short *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector pixel __a, int __b,
-                                              unsigned short *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector pixel __a, int __b,
-                                              vector pixel *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector int __a, int __b,
-                                              vector int *__c) {
-  __builtin_altivec_stvxl(__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector int __a, int __b,
-                                              int *__c) {
-  __builtin_altivec_stvxl(__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector unsigned int __a, int __b,
-                                              vector unsigned int *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector unsigned int __a, int __b,
-                                              unsigned int *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector bool int __a, int __b,
-                                              int *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector bool int __a, int __b,
-                                              unsigned int *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector bool int __a, int __b,
-                                              vector bool int *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector float __a, int __b,
-                                              vector float *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvxl(vector float __a, int __b,
-                                              float *__c) {
-  __builtin_altivec_stvxl((vector int)__a, __b, __c);
-}
-
-/* vec_sub */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_sub(vector signed char __a, vector signed char __b) {
-  return __a - __b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_sub(vector bool char __a, vector signed char __b) {
-  return (vector signed char)__a - __b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_sub(vector signed char __a, vector bool char __b) {
-  return __a - (vector signed char)__b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_sub(vector unsigned char __a, vector unsigned char __b) {
-  return __a - __b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_sub(vector bool char __a, vector unsigned char __b) {
-  return (vector unsigned char)__a - __b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_sub(vector unsigned char __a, vector bool char __b) {
-  return __a - (vector unsigned char)__b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_sub(vector short __a,
-                                                    vector short __b) {
-  return __a - __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_sub(vector bool short __a,
-                                                    vector short __b) {
-  return (vector short)__a - __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_sub(vector short __a,
-                                                    vector bool short __b) {
-  return __a - (vector short)__b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_sub(vector unsigned short __a, vector unsigned short __b) {
-  return __a - __b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_sub(vector bool short __a, vector unsigned short __b) {
-  return (vector unsigned short)__a - __b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_sub(vector unsigned short __a, vector bool short __b) {
-  return __a - (vector unsigned short)__b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_sub(vector int __a,
-                                                  vector int __b) {
-  return __a - __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_sub(vector bool int __a,
-                                                  vector int __b) {
-  return (vector int)__a - __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_sub(vector int __a,
-                                                  vector bool int __b) {
-  return __a - (vector int)__b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_sub(vector unsigned int __a, vector unsigned int __b) {
-  return __a - __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_sub(vector bool int __a, vector unsigned int __b) {
-  return (vector unsigned int)__a - __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_sub(vector unsigned int __a, vector bool int __b) {
-  return __a - (vector unsigned int)__b;
-}
-
-#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) &&                    \
-    defined(__SIZEOF_INT128__)
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_sub(vector signed __int128 __a, vector signed __int128 __b) {
-  return __a - __b;
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_sub(vector unsigned __int128 __a, vector unsigned __int128 __b) {
-  return __a - __b;
-}
-#endif // defined(__POWER8_VECTOR__) && defined(__powerpc64__) &&
-       // defined(__SIZEOF_INT128__)
-
-#ifdef __VSX__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_sub(vector signed long long __a, vector signed long long __b) {
-  return __a - __b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_sub(vector unsigned long long __a, vector unsigned long long __b) {
-  return __a - __b;
-}
-
-static __inline__ vector double __ATTRS_o_ai vec_sub(vector double __a,
-                                                     vector double __b) {
-  return __a - __b;
-}
-#endif
-
-static __inline__ vector float __ATTRS_o_ai vec_sub(vector float __a,
-                                                    vector float __b) {
-  return __a - __b;
-}
-
-/* vec_vsububm */
-
-#define __builtin_altivec_vsububm vec_vsububm
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vsububm(vector signed char __a, vector signed char __b) {
-  return __a - __b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vsububm(vector bool char __a, vector signed char __b) {
-  return (vector signed char)__a - __b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vsububm(vector signed char __a, vector bool char __b) {
-  return __a - (vector signed char)__b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vsububm(vector unsigned char __a, vector unsigned char __b) {
-  return __a - __b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vsububm(vector bool char __a, vector unsigned char __b) {
-  return (vector unsigned char)__a - __b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vsububm(vector unsigned char __a, vector bool char __b) {
-  return __a - (vector unsigned char)__b;
-}
-
-/* vec_vsubuhm */
-
-#define __builtin_altivec_vsubuhm vec_vsubuhm
-
-static __inline__ vector short __ATTRS_o_ai vec_vsubuhm(vector short __a,
-                                                        vector short __b) {
-  return __a - __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vsubuhm(vector bool short __a,
-                                                        vector short __b) {
-  return (vector short)__a - __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vsubuhm(vector short __a,
-                                                        vector bool short __b) {
-  return __a - (vector short)__b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vsubuhm(vector unsigned short __a, vector unsigned short __b) {
-  return __a - __b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vsubuhm(vector bool short __a, vector unsigned short __b) {
-  return (vector unsigned short)__a - __b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vsubuhm(vector unsigned short __a, vector bool short __b) {
-  return __a - (vector unsigned short)__b;
-}
-
-/* vec_vsubuwm */
-
-#define __builtin_altivec_vsubuwm vec_vsubuwm
-
-static __inline__ vector int __ATTRS_o_ai vec_vsubuwm(vector int __a,
-                                                      vector int __b) {
-  return __a - __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vsubuwm(vector bool int __a,
-                                                      vector int __b) {
-  return (vector int)__a - __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vsubuwm(vector int __a,
-                                                      vector bool int __b) {
-  return __a - (vector int)__b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vsubuwm(vector unsigned int __a, vector unsigned int __b) {
-  return __a - __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vsubuwm(vector bool int __a, vector unsigned int __b) {
-  return (vector unsigned int)__a - __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vsubuwm(vector unsigned int __a, vector bool int __b) {
-  return __a - (vector unsigned int)__b;
-}
-
-/* vec_vsubfp */
-
-#define __builtin_altivec_vsubfp vec_vsubfp
-
-static __inline__ vector float __attribute__((__always_inline__))
-vec_vsubfp(vector float __a, vector float __b) {
-  return __a - __b;
-}
-
-/* vec_subc */
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_subc(vector signed int __a, vector signed int __b) {
-  return (vector signed int)__builtin_altivec_vsubcuw((vector unsigned int)__a,
-                                                      (vector unsigned int) __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_subc(vector unsigned int __a, vector unsigned int __b) {
-  return __builtin_altivec_vsubcuw(__a, __b);
-}
-
-#ifdef __POWER8_VECTOR__
-#ifdef __SIZEOF_INT128__
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_subc(vector unsigned __int128 __a, vector unsigned __int128 __b) {
-  return __builtin_altivec_vsubcuq(__a, __b);
-}
-
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_subc(vector signed __int128 __a, vector signed __int128 __b) {
-  return __builtin_altivec_vsubcuq(__a, __b);
-}
-#endif
-
-static __inline__ vector unsigned char __attribute__((__always_inline__))
-vec_subc_u128(vector unsigned char __a, vector unsigned char __b) {
-  return (vector unsigned char)__builtin_altivec_vsubcuq(__a, __b);
-}
-#endif // __POWER8_VECTOR__
-
-/* vec_vsubcuw */
-
-static __inline__ vector unsigned int __attribute__((__always_inline__))
-vec_vsubcuw(vector unsigned int __a, vector unsigned int __b) {
-  return __builtin_altivec_vsubcuw(__a, __b);
-}
-
-/* vec_subs */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_subs(vector signed char __a, vector signed char __b) {
-  return __builtin_altivec_vsubsbs(__a, __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_subs(vector bool char __a, vector signed char __b) {
-  return __builtin_altivec_vsubsbs((vector signed char)__a, __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_subs(vector signed char __a, vector bool char __b) {
-  return __builtin_altivec_vsubsbs(__a, (vector signed char)__b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_subs(vector unsigned char __a, vector unsigned char __b) {
-  return __builtin_altivec_vsububs(__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_subs(vector bool char __a, vector unsigned char __b) {
-  return __builtin_altivec_vsububs((vector unsigned char)__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_subs(vector unsigned char __a, vector bool char __b) {
-  return __builtin_altivec_vsububs(__a, (vector unsigned char)__b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_subs(vector short __a,
-                                                     vector short __b) {
-  return __builtin_altivec_vsubshs(__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_subs(vector bool short __a,
-                                                     vector short __b) {
-  return __builtin_altivec_vsubshs((vector short)__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_subs(vector short __a,
-                                                     vector bool short __b) {
-  return __builtin_altivec_vsubshs(__a, (vector short)__b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_subs(vector unsigned short __a, vector unsigned short __b) {
-  return __builtin_altivec_vsubuhs(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_subs(vector bool short __a, vector unsigned short __b) {
-  return __builtin_altivec_vsubuhs((vector unsigned short)__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_subs(vector unsigned short __a, vector bool short __b) {
-  return __builtin_altivec_vsubuhs(__a, (vector unsigned short)__b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_subs(vector int __a,
-                                                   vector int __b) {
-  return __builtin_altivec_vsubsws(__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_subs(vector bool int __a,
-                                                   vector int __b) {
-  return __builtin_altivec_vsubsws((vector int)__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_subs(vector int __a,
-                                                   vector bool int __b) {
-  return __builtin_altivec_vsubsws(__a, (vector int)__b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_subs(vector unsigned int __a, vector unsigned int __b) {
-  return __builtin_altivec_vsubuws(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_subs(vector bool int __a, vector unsigned int __b) {
-  return __builtin_altivec_vsubuws((vector unsigned int)__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_subs(vector unsigned int __a, vector bool int __b) {
-  return __builtin_altivec_vsubuws(__a, (vector unsigned int)__b);
-}
-
-/* vec_vsubsbs */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vsubsbs(vector signed char __a, vector signed char __b) {
-  return __builtin_altivec_vsubsbs(__a, __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vsubsbs(vector bool char __a, vector signed char __b) {
-  return __builtin_altivec_vsubsbs((vector signed char)__a, __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vsubsbs(vector signed char __a, vector bool char __b) {
-  return __builtin_altivec_vsubsbs(__a, (vector signed char)__b);
-}
-
-/* vec_vsububs */
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vsububs(vector unsigned char __a, vector unsigned char __b) {
-  return __builtin_altivec_vsububs(__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vsububs(vector bool char __a, vector unsigned char __b) {
-  return __builtin_altivec_vsububs((vector unsigned char)__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vsububs(vector unsigned char __a, vector bool char __b) {
-  return __builtin_altivec_vsububs(__a, (vector unsigned char)__b);
-}
-
-/* vec_vsubshs */
-
-static __inline__ vector short __ATTRS_o_ai vec_vsubshs(vector short __a,
-                                                        vector short __b) {
-  return __builtin_altivec_vsubshs(__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vsubshs(vector bool short __a,
-                                                        vector short __b) {
-  return __builtin_altivec_vsubshs((vector short)__a, __b);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vsubshs(vector short __a,
-                                                        vector bool short __b) {
-  return __builtin_altivec_vsubshs(__a, (vector short)__b);
-}
-
-/* vec_vsubuhs */
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vsubuhs(vector unsigned short __a, vector unsigned short __b) {
-  return __builtin_altivec_vsubuhs(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vsubuhs(vector bool short __a, vector unsigned short __b) {
-  return __builtin_altivec_vsubuhs((vector unsigned short)__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vsubuhs(vector unsigned short __a, vector bool short __b) {
-  return __builtin_altivec_vsubuhs(__a, (vector unsigned short)__b);
-}
-
-/* vec_vsubsws */
-
-static __inline__ vector int __ATTRS_o_ai vec_vsubsws(vector int __a,
-                                                      vector int __b) {
-  return __builtin_altivec_vsubsws(__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vsubsws(vector bool int __a,
-                                                      vector int __b) {
-  return __builtin_altivec_vsubsws((vector int)__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vsubsws(vector int __a,
-                                                      vector bool int __b) {
-  return __builtin_altivec_vsubsws(__a, (vector int)__b);
-}
-
-/* vec_vsubuws */
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vsubuws(vector unsigned int __a, vector unsigned int __b) {
-  return __builtin_altivec_vsubuws(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vsubuws(vector bool int __a, vector unsigned int __b) {
-  return __builtin_altivec_vsubuws((vector unsigned int)__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vsubuws(vector unsigned int __a, vector bool int __b) {
-  return __builtin_altivec_vsubuws(__a, (vector unsigned int)__b);
-}
-
-#ifdef __POWER8_VECTOR__
-/* vec_vsubuqm */
-
-#ifdef __SIZEOF_INT128__
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_vsubuqm(vector signed __int128 __a, vector signed __int128 __b) {
-  return __a - __b;
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_vsubuqm(vector unsigned __int128 __a, vector unsigned __int128 __b) {
-  return __a - __b;
-}
-#endif
-
-static __inline__ vector unsigned char __attribute__((__always_inline__))
-vec_sub_u128(vector unsigned char __a, vector unsigned char __b) {
-  return __builtin_altivec_vsubuqm(__a, __b);
-}
-
-/* vec_vsubeuqm */
-
-#ifdef __SIZEOF_INT128__
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_vsubeuqm(vector signed __int128 __a, vector signed __int128 __b,
-             vector signed __int128 __c) {
-  return __builtin_altivec_vsubeuqm(__a, __b, __c);
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_vsubeuqm(vector unsigned __int128 __a, vector unsigned __int128 __b,
-             vector unsigned __int128 __c) {
-  return __builtin_altivec_vsubeuqm(__a, __b, __c);
-}
-
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_sube(vector signed __int128 __a, vector signed __int128 __b,
-             vector signed __int128 __c) {
-  return __builtin_altivec_vsubeuqm(__a, __b, __c);
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_sube(vector unsigned __int128 __a, vector unsigned __int128 __b,
-             vector unsigned __int128 __c) {
-  return __builtin_altivec_vsubeuqm(__a, __b, __c);
-}
-#endif
-
-static __inline__ vector unsigned char __attribute__((__always_inline__))
-vec_sube_u128(vector unsigned char __a, vector unsigned char __b,
-              vector unsigned char __c) {
-  return (vector unsigned char)__builtin_altivec_vsubeuqm(__a, __b, __c);
-}
-
-/* vec_vsubcuq */
-
-#ifdef __SIZEOF_INT128__
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_vsubcuq(vector signed __int128 __a, vector signed __int128 __b) {
-  return __builtin_altivec_vsubcuq(__a, __b);
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_vsubcuq(vector unsigned __int128 __a, vector unsigned __int128 __b) {
-  return __builtin_altivec_vsubcuq(__a, __b);
-}
-
-/* vec_vsubecuq */
-
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_vsubecuq(vector signed __int128 __a, vector signed __int128 __b,
-             vector signed __int128 __c) {
-  return __builtin_altivec_vsubecuq(__a, __b, __c);
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_vsubecuq(vector unsigned __int128 __a, vector unsigned __int128 __b,
-             vector unsigned __int128 __c) {
-  return __builtin_altivec_vsubecuq(__a, __b, __c);
-}
-#endif
-
-#ifdef __powerpc64__
-static __inline__ vector signed int __ATTRS_o_ai
-vec_subec(vector signed int __a, vector signed int __b,
-             vector signed int __c) {
-  return vec_addec(__a, ~__b, __c);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_subec(vector unsigned int __a, vector unsigned int __b,
-             vector unsigned int __c) {
-  return vec_addec(__a, ~__b, __c);
-}
-#endif
-
-#ifdef __SIZEOF_INT128__
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_subec(vector signed __int128 __a, vector signed __int128 __b,
-             vector signed __int128 __c) {
-  return __builtin_altivec_vsubecuq(__a, __b, __c);
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_subec(vector unsigned __int128 __a, vector unsigned __int128 __b,
-             vector unsigned __int128 __c) {
-  return __builtin_altivec_vsubecuq(__a, __b, __c);
-}
-#endif
-
-static __inline__ vector unsigned char __attribute__((__always_inline__))
-vec_subec_u128(vector unsigned char __a, vector unsigned char __b,
-               vector unsigned char __c) {
-  return (vector unsigned char)__builtin_altivec_vsubecuq(__a, __b, __c);
-}
-#endif // __POWER8_VECTOR__
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_sube(vector signed int __a, vector signed int __b,
-         vector signed int __c) {
-  vector signed int __mask = {1, 1, 1, 1};
-  vector signed int __carry = __c & __mask;
-  return vec_adde(__a, ~__b, __carry);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_sube(vector unsigned int __a, vector unsigned int __b,
-         vector unsigned int __c) {
-  vector unsigned int __mask = {1, 1, 1, 1};
-  vector unsigned int __carry = __c & __mask;
-  return vec_adde(__a, ~__b, __carry);
-}
-/* vec_sum4s */
-
-static __inline__ vector int __ATTRS_o_ai vec_sum4s(vector signed char __a,
-                                                    vector int __b) {
-  return __builtin_altivec_vsum4sbs(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_sum4s(vector unsigned char __a, vector unsigned int __b) {
-  return __builtin_altivec_vsum4ubs(__a, __b);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_sum4s(vector signed short __a,
-                                                    vector int __b) {
-  return __builtin_altivec_vsum4shs(__a, __b);
-}
-
-/* vec_vsum4sbs */
-
-static __inline__ vector int __attribute__((__always_inline__))
-vec_vsum4sbs(vector signed char __a, vector int __b) {
-  return __builtin_altivec_vsum4sbs(__a, __b);
-}
-
-/* vec_vsum4ubs */
-
-static __inline__ vector unsigned int __attribute__((__always_inline__))
-vec_vsum4ubs(vector unsigned char __a, vector unsigned int __b) {
-  return __builtin_altivec_vsum4ubs(__a, __b);
-}
-
-/* vec_vsum4shs */
-
-static __inline__ vector int __attribute__((__always_inline__))
-vec_vsum4shs(vector signed short __a, vector int __b) {
-  return __builtin_altivec_vsum4shs(__a, __b);
-}
-
-/* vec_sum2s */
-
-/* The vsum2sws instruction has a big-endian bias, so that the second
-   input vector and the result always reference big-endian elements
-   1 and 3 (little-endian element 0 and 2).  For ease of porting the
-   programmer wants elements 1 and 3 in both cases, so for little
-   endian we must perform some permutes.  */
-
-static __inline__ vector signed int __attribute__((__always_inline__))
-vec_sum2s(vector int __a, vector int __b) {
-#ifdef __LITTLE_ENDIAN__
-  vector int __c = (vector signed int)vec_perm(
-      __b, __b, (vector unsigned char)(4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15,
-                                       8, 9, 10, 11));
-  __c = __builtin_altivec_vsum2sws(__a, __c);
-  return (vector signed int)vec_perm(
-      __c, __c, (vector unsigned char)(4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15,
-                                       8, 9, 10, 11));
-#else
-  return __builtin_altivec_vsum2sws(__a, __b);
-#endif
-}
-
-/* vec_vsum2sws */
-
-static __inline__ vector signed int __attribute__((__always_inline__))
-vec_vsum2sws(vector int __a, vector int __b) {
-#ifdef __LITTLE_ENDIAN__
-  vector int __c = (vector signed int)vec_perm(
-      __b, __b, (vector unsigned char)(4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15,
-                                       8, 9, 10, 11));
-  __c = __builtin_altivec_vsum2sws(__a, __c);
-  return (vector signed int)vec_perm(
-      __c, __c, (vector unsigned char)(4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15,
-                                       8, 9, 10, 11));
-#else
-  return __builtin_altivec_vsum2sws(__a, __b);
-#endif
-}
-
-/* vec_sums */
-
-/* The vsumsws instruction has a big-endian bias, so that the second
-   input vector and the result always reference big-endian element 3
-   (little-endian element 0).  For ease of porting the programmer
-   wants element 3 in both cases, so for little endian we must perform
-   some permutes.  */
-
-static __inline__ vector signed int __attribute__((__always_inline__))
-vec_sums(vector signed int __a, vector signed int __b) {
-#ifdef __LITTLE_ENDIAN__
-  __b = (vector signed int)vec_splat(__b, 3);
-  __b = __builtin_altivec_vsumsws(__a, __b);
-  return (vector signed int)(0, 0, 0, __b[0]);
-#else
-  return __builtin_altivec_vsumsws(__a, __b);
-#endif
-}
-
-/* vec_vsumsws */
-
-static __inline__ vector signed int __attribute__((__always_inline__))
-vec_vsumsws(vector signed int __a, vector signed int __b) {
-#ifdef __LITTLE_ENDIAN__
-  __b = (vector signed int)vec_splat(__b, 3);
-  __b = __builtin_altivec_vsumsws(__a, __b);
-  return (vector signed int)(0, 0, 0, __b[0]);
-#else
-  return __builtin_altivec_vsumsws(__a, __b);
-#endif
-}
-
-/* vec_trunc */
-
-static __inline__ vector float __ATTRS_o_ai vec_trunc(vector float __a) {
-#ifdef __VSX__
-  return __builtin_vsx_xvrspiz(__a);
-#else
-  return __builtin_altivec_vrfiz(__a);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai vec_trunc(vector double __a) {
-  return __builtin_vsx_xvrdpiz(__a);
-}
-#endif
-
-/* vec_roundz */
-static __inline__ vector float __ATTRS_o_ai vec_roundz(vector float __a) {
-  return vec_trunc(__a);
-}
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai vec_roundz(vector double __a) {
-  return vec_trunc(__a);
-}
-#endif
-
-/* vec_vrfiz */
-
-static __inline__ vector float __attribute__((__always_inline__))
-vec_vrfiz(vector float __a) {
-  return __builtin_altivec_vrfiz(__a);
-}
-
-/* vec_unpackh */
-
-/* The vector unpack instructions all have a big-endian bias, so for
-   little endian we must reverse the meanings of "high" and "low."  */
-#ifdef __LITTLE_ENDIAN__
-#define vec_vupkhpx(__a) __builtin_altivec_vupklpx((vector short)(__a))
-#define vec_vupklpx(__a) __builtin_altivec_vupkhpx((vector short)(__a))
-#else
-#define vec_vupkhpx(__a) __builtin_altivec_vupkhpx((vector short)(__a))
-#define vec_vupklpx(__a) __builtin_altivec_vupklpx((vector short)(__a))
-#endif
-
-static __inline__ vector short __ATTRS_o_ai
-vec_unpackh(vector signed char __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vupklsb((vector char)__a);
-#else
-  return __builtin_altivec_vupkhsb((vector char)__a);
-#endif
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_unpackh(vector bool char __a) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector bool short)__builtin_altivec_vupklsb((vector char)__a);
-#else
-  return (vector bool short)__builtin_altivec_vupkhsb((vector char)__a);
-#endif
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_unpackh(vector short __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vupklsh(__a);
-#else
-  return __builtin_altivec_vupkhsh(__a);
-#endif
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_unpackh(vector bool short __a) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector bool int)__builtin_altivec_vupklsh((vector short)__a);
-#else
-  return (vector bool int)__builtin_altivec_vupkhsh((vector short)__a);
-#endif
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_unpackh(vector pixel __a) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector unsigned int)__builtin_altivec_vupklpx((vector short)__a);
-#else
-  return (vector unsigned int)__builtin_altivec_vupkhpx((vector short)__a);
-#endif
-}
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector long long __ATTRS_o_ai vec_unpackh(vector int __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vupklsw(__a);
-#else
-  return __builtin_altivec_vupkhsw(__a);
-#endif
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_unpackh(vector bool int __a) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector bool long long)__builtin_altivec_vupklsw((vector int)__a);
-#else
-  return (vector bool long long)__builtin_altivec_vupkhsw((vector int)__a);
-#endif
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_unpackh(vector float __a) {
-  return (vector double)(__a[0], __a[1]);
-}
-#endif
-
-/* vec_vupkhsb */
-
-static __inline__ vector short __ATTRS_o_ai
-vec_vupkhsb(vector signed char __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vupklsb((vector char)__a);
-#else
-  return __builtin_altivec_vupkhsb((vector char)__a);
-#endif
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_vupkhsb(vector bool char __a) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector bool short)__builtin_altivec_vupklsb((vector char)__a);
-#else
-  return (vector bool short)__builtin_altivec_vupkhsb((vector char)__a);
-#endif
-}
-
-/* vec_vupkhsh */
-
-static __inline__ vector int __ATTRS_o_ai vec_vupkhsh(vector short __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vupklsh(__a);
-#else
-  return __builtin_altivec_vupkhsh(__a);
-#endif
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_vupkhsh(vector bool short __a) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector bool int)__builtin_altivec_vupklsh((vector short)__a);
-#else
-  return (vector bool int)__builtin_altivec_vupkhsh((vector short)__a);
-#endif
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vupkhsh(vector pixel __a) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector unsigned int)__builtin_altivec_vupklpx((vector short)__a);
-#else
-  return (vector unsigned int)__builtin_altivec_vupkhpx((vector short)__a);
-#endif
-}
-
-/* vec_vupkhsw */
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector long long __ATTRS_o_ai vec_vupkhsw(vector int __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vupklsw(__a);
-#else
-  return __builtin_altivec_vupkhsw(__a);
-#endif
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_vupkhsw(vector bool int __a) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector bool long long)__builtin_altivec_vupklsw((vector int)__a);
-#else
-  return (vector bool long long)__builtin_altivec_vupkhsw((vector int)__a);
-#endif
-}
-#endif
-
-/* vec_unpackl */
-
-static __inline__ vector short __ATTRS_o_ai
-vec_unpackl(vector signed char __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vupkhsb((vector char)__a);
-#else
-  return __builtin_altivec_vupklsb((vector char)__a);
-#endif
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_unpackl(vector bool char __a) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector bool short)__builtin_altivec_vupkhsb((vector char)__a);
-#else
-  return (vector bool short)__builtin_altivec_vupklsb((vector char)__a);
-#endif
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_unpackl(vector short __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vupkhsh(__a);
-#else
-  return __builtin_altivec_vupklsh(__a);
-#endif
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_unpackl(vector bool short __a) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector bool int)__builtin_altivec_vupkhsh((vector short)__a);
-#else
-  return (vector bool int)__builtin_altivec_vupklsh((vector short)__a);
-#endif
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_unpackl(vector pixel __a) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector unsigned int)__builtin_altivec_vupkhpx((vector short)__a);
-#else
-  return (vector unsigned int)__builtin_altivec_vupklpx((vector short)__a);
-#endif
-}
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector long long __ATTRS_o_ai vec_unpackl(vector int __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vupkhsw(__a);
-#else
-  return __builtin_altivec_vupklsw(__a);
-#endif
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_unpackl(vector bool int __a) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector bool long long)__builtin_altivec_vupkhsw((vector int)__a);
-#else
-  return (vector bool long long)__builtin_altivec_vupklsw((vector int)__a);
-#endif
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_unpackl(vector float __a) {
-  return (vector double)(__a[2], __a[3]);
-}
-#endif
-
-/* vec_vupklsb */
-
-static __inline__ vector short __ATTRS_o_ai
-vec_vupklsb(vector signed char __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vupkhsb((vector char)__a);
-#else
-  return __builtin_altivec_vupklsb((vector char)__a);
-#endif
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_vupklsb(vector bool char __a) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector bool short)__builtin_altivec_vupkhsb((vector char)__a);
-#else
-  return (vector bool short)__builtin_altivec_vupklsb((vector char)__a);
-#endif
-}
-
-/* vec_vupklsh */
-
-static __inline__ vector int __ATTRS_o_ai vec_vupklsh(vector short __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vupkhsh(__a);
-#else
-  return __builtin_altivec_vupklsh(__a);
-#endif
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_vupklsh(vector bool short __a) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector bool int)__builtin_altivec_vupkhsh((vector short)__a);
-#else
-  return (vector bool int)__builtin_altivec_vupklsh((vector short)__a);
-#endif
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vupklsh(vector pixel __a) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector unsigned int)__builtin_altivec_vupkhpx((vector short)__a);
-#else
-  return (vector unsigned int)__builtin_altivec_vupklpx((vector short)__a);
-#endif
-}
-
-/* vec_vupklsw */
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector long long __ATTRS_o_ai vec_vupklsw(vector int __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vupkhsw(__a);
-#else
-  return __builtin_altivec_vupklsw(__a);
-#endif
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_vupklsw(vector bool int __a) {
-#ifdef __LITTLE_ENDIAN__
-  return (vector bool long long)__builtin_altivec_vupkhsw((vector int)__a);
-#else
-  return (vector bool long long)__builtin_altivec_vupklsw((vector int)__a);
-#endif
-}
-#endif
-
-/* vec_vsx_ld */
-
-#ifdef __VSX__
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_vsx_ld(int __a, const vector bool int *__b) {
-  return (vector bool int)__builtin_vsx_lxvw4x(__a, __b);
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_vsx_ld(int __a, const vector signed int *__b) {
-  return (vector signed int)__builtin_vsx_lxvw4x(__a, __b);
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_vsx_ld(int __a, const signed int *__b) {
-  return (vector signed int)__builtin_vsx_lxvw4x(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vsx_ld(int __a, const vector unsigned int *__b) {
-  return (vector unsigned int)__builtin_vsx_lxvw4x(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vsx_ld(int __a, const unsigned int *__b) {
-  return (vector unsigned int)__builtin_vsx_lxvw4x(__a, __b);
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_vsx_ld(int __a, const vector float *__b) {
-  return (vector float)__builtin_vsx_lxvw4x(__a, __b);
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vsx_ld(int __a,
-                                                       const float *__b) {
-  return (vector float)__builtin_vsx_lxvw4x(__a, __b);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_vsx_ld(int __a, const vector signed long long *__b) {
-  return (vector signed long long)__builtin_vsx_lxvd2x(__a, __b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_vsx_ld(int __a, const vector unsigned long long *__b) {
-  return (vector unsigned long long)__builtin_vsx_lxvd2x(__a, __b);
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_vsx_ld(int __a, const vector double *__b) {
-  return (vector double)__builtin_vsx_lxvd2x(__a, __b);
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_vsx_ld(int __a, const double *__b) {
-  return (vector double)__builtin_vsx_lxvd2x(__a, __b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_vsx_ld(int __a, const vector bool short *__b) {
-  return (vector bool short)__builtin_vsx_lxvw4x(__a, __b);
-}
-
-static __inline__ vector signed short __ATTRS_o_ai
-vec_vsx_ld(int __a, const vector signed short *__b) {
-  return (vector signed short)__builtin_vsx_lxvw4x(__a, __b);
-}
-
-static __inline__ vector signed short __ATTRS_o_ai
-vec_vsx_ld(int __a, const signed short *__b) {
-  return (vector signed short)__builtin_vsx_lxvw4x(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vsx_ld(int __a, const vector unsigned short *__b) {
-  return (vector unsigned short)__builtin_vsx_lxvw4x(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vsx_ld(int __a, const unsigned short *__b) {
-  return (vector unsigned short)__builtin_vsx_lxvw4x(__a, __b);
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_vsx_ld(int __a, const vector bool char *__b) {
-  return (vector bool char)__builtin_vsx_lxvw4x(__a, __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vsx_ld(int __a, const vector signed char *__b) {
-  return (vector signed char)__builtin_vsx_lxvw4x(__a, __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vsx_ld(int __a, const signed char *__b) {
-  return (vector signed char)__builtin_vsx_lxvw4x(__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vsx_ld(int __a, const vector unsigned char *__b) {
-  return (vector unsigned char)__builtin_vsx_lxvw4x(__a, __b);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vsx_ld(int __a, const unsigned char *__b) {
-  return (vector unsigned char)__builtin_vsx_lxvw4x(__a, __b);
-}
-
-#endif
-
-/* vec_vsx_st */
-
-#ifdef __VSX__
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool int __a, int __b,
-                                               vector bool int *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool int __a, int __b,
-                                               signed int *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool int __a, int __b,
-                                               unsigned int *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector signed int __a, int __b,
-                                               vector signed int *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector signed int __a, int __b,
-                                               signed int *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector unsigned int __a, int __b,
-                                               vector unsigned int *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector unsigned int __a, int __b,
-                                               unsigned int *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector float __a, int __b,
-                                               vector float *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector float __a, int __b,
-                                               float *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector signed long long __a,
-                                               int __b,
-                                               vector signed long long *__c) {
-  __builtin_vsx_stxvd2x((vector double)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector unsigned long long __a,
-                                               int __b,
-                                               vector unsigned long long *__c) {
-  __builtin_vsx_stxvd2x((vector double)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector double __a, int __b,
-                                               vector double *__c) {
-  __builtin_vsx_stxvd2x((vector double)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector double __a, int __b,
-                                               double *__c) {
-  __builtin_vsx_stxvd2x((vector double)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool short __a, int __b,
-                                               vector bool short *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool short __a, int __b,
-                                               signed short *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool short __a, int __b,
-                                               unsigned short *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector signed short __a, int __b,
-                                               vector signed short *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector signed short __a, int __b,
-                                               signed short *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector unsigned short __a,
-                                               int __b,
-                                               vector unsigned short *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector unsigned short __a,
-                                               int __b, unsigned short *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool char __a, int __b,
-                                               vector bool char *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool char __a, int __b,
-                                               signed char *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool char __a, int __b,
-                                               unsigned char *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector signed char __a, int __b,
-                                               vector signed char *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector signed char __a, int __b,
-                                               signed char *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector unsigned char __a,
-                                               int __b,
-                                               vector unsigned char *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector unsigned char __a,
-                                               int __b, unsigned char *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-#endif
-
-#ifdef __VSX__
-#define vec_xxpermdi __builtin_vsx_xxpermdi
-#define vec_xxsldwi __builtin_vsx_xxsldwi
-#define vec_permi(__a, __b, __c)                                               \
-  _Generic((__a), vector signed long long                                      \
-           : __builtin_shufflevector((__a), (__b), (((__c) >> 1) & 0x1),       \
-                                     (((__c)&0x1) + 2)),                       \
-             vector unsigned long long                                         \
-           : __builtin_shufflevector((__a), (__b), (((__c) >> 1) & 0x1),       \
-                                     (((__c)&0x1) + 2)),                       \
-             vector double                                                     \
-           : __builtin_shufflevector((__a), (__b), (((__c) >> 1) & 0x1),       \
-                                     (((__c)&0x1) + 2)))
-#endif
-
-/* vec_xor */
-
-#define __builtin_altivec_vxor vec_xor
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_xor(vector signed char __a, vector signed char __b) {
-  return __a ^ __b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_xor(vector bool char __a, vector signed char __b) {
-  return (vector signed char)__a ^ __b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_xor(vector signed char __a, vector bool char __b) {
-  return __a ^ (vector signed char)__b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_xor(vector unsigned char __a, vector unsigned char __b) {
-  return __a ^ __b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_xor(vector bool char __a, vector unsigned char __b) {
-  return (vector unsigned char)__a ^ __b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_xor(vector unsigned char __a, vector bool char __b) {
-  return __a ^ (vector unsigned char)__b;
-}
-
-static __inline__ vector bool char __ATTRS_o_ai vec_xor(vector bool char __a,
-                                                        vector bool char __b) {
-  return __a ^ __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_xor(vector short __a,
-                                                    vector short __b) {
-  return __a ^ __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_xor(vector bool short __a,
-                                                    vector short __b) {
-  return (vector short)__a ^ __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_xor(vector short __a,
-                                                    vector bool short __b) {
-  return __a ^ (vector short)__b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_xor(vector unsigned short __a, vector unsigned short __b) {
-  return __a ^ __b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_xor(vector bool short __a, vector unsigned short __b) {
-  return (vector unsigned short)__a ^ __b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_xor(vector unsigned short __a, vector bool short __b) {
-  return __a ^ (vector unsigned short)__b;
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_xor(vector bool short __a, vector bool short __b) {
-  return __a ^ __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_xor(vector int __a,
-                                                  vector int __b) {
-  return __a ^ __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_xor(vector bool int __a,
-                                                  vector int __b) {
-  return (vector int)__a ^ __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_xor(vector int __a,
-                                                  vector bool int __b) {
-  return __a ^ (vector int)__b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_xor(vector unsigned int __a, vector unsigned int __b) {
-  return __a ^ __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_xor(vector bool int __a, vector unsigned int __b) {
-  return (vector unsigned int)__a ^ __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_xor(vector unsigned int __a, vector bool int __b) {
-  return __a ^ (vector unsigned int)__b;
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_xor(vector bool int __a,
-                                                       vector bool int __b) {
-  return __a ^ __b;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_xor(vector float __a,
-                                                    vector float __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a ^ (vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_xor(vector bool int __a,
-                                                    vector float __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a ^ (vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_xor(vector float __a,
-                                                    vector bool int __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a ^ (vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-#ifdef __VSX__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_xor(vector signed long long __a, vector signed long long __b) {
-  return __a ^ __b;
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_xor(vector bool long long __a, vector signed long long __b) {
-  return (vector signed long long)__a ^ __b;
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_xor(vector signed long long __a, vector bool long long __b) {
-  return __a ^ (vector signed long long)__b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_xor(vector unsigned long long __a, vector unsigned long long __b) {
-  return __a ^ __b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_xor(vector bool long long __a, vector unsigned long long __b) {
-  return (vector unsigned long long)__a ^ __b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_xor(vector unsigned long long __a, vector bool long long __b) {
-  return __a ^ (vector unsigned long long)__b;
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_xor(vector bool long long __a, vector bool long long __b) {
-  return __a ^ __b;
-}
-
-static __inline__ vector double __ATTRS_o_ai vec_xor(vector double __a,
-                                                     vector double __b) {
-  return (vector double)((vector unsigned long long)__a ^
-                         (vector unsigned long long)__b);
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_xor(vector double __a, vector bool long long __b) {
-  return (vector double)((vector unsigned long long)__a ^
-                         (vector unsigned long long)__b);
-}
-
-static __inline__ vector double __ATTRS_o_ai vec_xor(vector bool long long __a,
-                                                     vector double __b) {
-  return (vector double)((vector unsigned long long)__a ^
-                         (vector unsigned long long)__b);
-}
-#endif
-
-/* vec_vxor */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vxor(vector signed char __a, vector signed char __b) {
-  return __a ^ __b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vxor(vector bool char __a, vector signed char __b) {
-  return (vector signed char)__a ^ __b;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vxor(vector signed char __a, vector bool char __b) {
-  return __a ^ (vector signed char)__b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vxor(vector unsigned char __a, vector unsigned char __b) {
-  return __a ^ __b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vxor(vector bool char __a, vector unsigned char __b) {
-  return (vector unsigned char)__a ^ __b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vxor(vector unsigned char __a, vector bool char __b) {
-  return __a ^ (vector unsigned char)__b;
-}
-
-static __inline__ vector bool char __ATTRS_o_ai vec_vxor(vector bool char __a,
-                                                         vector bool char __b) {
-  return __a ^ __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vxor(vector short __a,
-                                                     vector short __b) {
-  return __a ^ __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vxor(vector bool short __a,
-                                                     vector short __b) {
-  return (vector short)__a ^ __b;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_vxor(vector short __a,
-                                                     vector bool short __b) {
-  return __a ^ (vector short)__b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vxor(vector unsigned short __a, vector unsigned short __b) {
-  return __a ^ __b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vxor(vector bool short __a, vector unsigned short __b) {
-  return (vector unsigned short)__a ^ __b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_vxor(vector unsigned short __a, vector bool short __b) {
-  return __a ^ (vector unsigned short)__b;
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_vxor(vector bool short __a, vector bool short __b) {
-  return __a ^ __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vxor(vector int __a,
-                                                   vector int __b) {
-  return __a ^ __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vxor(vector bool int __a,
-                                                   vector int __b) {
-  return (vector int)__a ^ __b;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_vxor(vector int __a,
-                                                   vector bool int __b) {
-  return __a ^ (vector int)__b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vxor(vector unsigned int __a, vector unsigned int __b) {
-  return __a ^ __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vxor(vector bool int __a, vector unsigned int __b) {
-  return (vector unsigned int)__a ^ __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vxor(vector unsigned int __a, vector bool int __b) {
-  return __a ^ (vector unsigned int)__b;
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_vxor(vector bool int __a,
-                                                        vector bool int __b) {
-  return __a ^ __b;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vxor(vector float __a,
-                                                     vector float __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a ^ (vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vxor(vector bool int __a,
-                                                     vector float __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a ^ (vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_vxor(vector float __a,
-                                                     vector bool int __b) {
-  vector unsigned int __res =
-      (vector unsigned int)__a ^ (vector unsigned int)__b;
-  return (vector float)__res;
-}
-
-#ifdef __VSX__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_vxor(vector signed long long __a, vector signed long long __b) {
-  return __a ^ __b;
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_vxor(vector bool long long __a, vector signed long long __b) {
-  return (vector signed long long)__a ^ __b;
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_vxor(vector signed long long __a, vector bool long long __b) {
-  return __a ^ (vector signed long long)__b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_vxor(vector unsigned long long __a, vector unsigned long long __b) {
-  return __a ^ __b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_vxor(vector bool long long __a, vector unsigned long long __b) {
-  return (vector unsigned long long)__a ^ __b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_vxor(vector unsigned long long __a, vector bool long long __b) {
-  return __a ^ (vector unsigned long long)__b;
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_vxor(vector bool long long __a, vector bool long long __b) {
-  return __a ^ __b;
-}
-#endif
-
-/* ------------------------ extensions for CBEA ----------------------------- */
-
-/* vec_extract */
-
-static __inline__ signed char __ATTRS_o_ai vec_extract(vector signed char __a,
-                                                       unsigned int __b) {
-  return __a[__b & 0xf];
-}
-
-static __inline__ unsigned char __ATTRS_o_ai
-vec_extract(vector unsigned char __a, unsigned int __b) {
-  return __a[__b & 0xf];
-}
-
-static __inline__ unsigned char __ATTRS_o_ai vec_extract(vector bool char __a,
-                                                         unsigned int __b) {
-  return __a[__b & 0xf];
-}
-
-static __inline__ signed short __ATTRS_o_ai vec_extract(vector signed short __a,
-                                                        unsigned int __b) {
-  return __a[__b & 0x7];
-}
-
-static __inline__ unsigned short __ATTRS_o_ai
-vec_extract(vector unsigned short __a, unsigned int __b) {
-  return __a[__b & 0x7];
-}
-
-static __inline__ unsigned short __ATTRS_o_ai vec_extract(vector bool short __a,
-                                                          unsigned int __b) {
-  return __a[__b & 0x7];
-}
-
-static __inline__ signed int __ATTRS_o_ai vec_extract(vector signed int __a,
-                                                      unsigned int __b) {
-  return __a[__b & 0x3];
-}
-
-static __inline__ unsigned int __ATTRS_o_ai vec_extract(vector unsigned int __a,
-                                                        unsigned int __b) {
-  return __a[__b & 0x3];
-}
-
-static __inline__ unsigned int __ATTRS_o_ai vec_extract(vector bool int __a,
-                                                        unsigned int __b) {
-  return __a[__b & 0x3];
-}
-
-#ifdef __VSX__
-static __inline__ signed long long __ATTRS_o_ai
-vec_extract(vector signed long long __a, unsigned int __b) {
-  return __a[__b & 0x1];
-}
-
-static __inline__ unsigned long long __ATTRS_o_ai
-vec_extract(vector unsigned long long __a, unsigned int __b) {
-  return __a[__b & 0x1];
-}
-
-static __inline__ unsigned long long __ATTRS_o_ai
-vec_extract(vector bool long long __a, unsigned int __b) {
-  return __a[__b & 0x1];
-}
-
-static __inline__ double __ATTRS_o_ai vec_extract(vector double __a,
-                                                  unsigned int __b) {
-  return __a[__b & 0x1];
-}
-#endif
-
-static __inline__ float __ATTRS_o_ai vec_extract(vector float __a,
-                                                 unsigned int __b) {
-  return __a[__b & 0x3];
-}
-
-#ifdef __POWER9_VECTOR__
-
-#define vec_insert4b __builtin_vsx_insertword
-#define vec_extract4b __builtin_vsx_extractuword
-
-/* vec_extract_exp */
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_extract_exp(vector float __a) {
-  return __builtin_vsx_xvxexpsp(__a);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_extract_exp(vector double __a) {
-  return __builtin_vsx_xvxexpdp(__a);
-}
-
-/* vec_extract_sig */
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_extract_sig(vector float __a) {
-  return __builtin_vsx_xvxsigsp(__a);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_extract_sig (vector double __a) {
-  return __builtin_vsx_xvxsigdp(__a);
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_extract_fp32_from_shorth(vector unsigned short __a) {
-  vector unsigned short __b =
-#ifdef __LITTLE_ENDIAN__
-            __builtin_shufflevector(__a, __a, 0, -1, 1, -1, 2, -1, 3, -1);
-#else
-            __builtin_shufflevector(__a, __a, -1, 0, -1, 1, -1, 2, -1, 3);
-#endif
-  return __builtin_vsx_xvcvhpsp(__b);
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_extract_fp32_from_shortl(vector unsigned short __a) {
-  vector unsigned short __b =
-#ifdef __LITTLE_ENDIAN__
-            __builtin_shufflevector(__a, __a, 4, -1, 5, -1, 6, -1, 7, -1);
-#else
-            __builtin_shufflevector(__a, __a, -1, 4, -1, 5, -1, 6, -1, 7);
-#endif
-  return __builtin_vsx_xvcvhpsp(__b);
-}
-#endif /* __POWER9_VECTOR__ */
-
-/* vec_insert */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_insert(signed char __a, vector signed char __b, int __c) {
-  __b[__c] = __a;
-  return __b;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_insert(unsigned char __a, vector unsigned char __b, int __c) {
-  __b[__c] = __a;
-  return __b;
-}
-
-static __inline__ vector bool char __ATTRS_o_ai vec_insert(unsigned char __a,
-                                                           vector bool char __b,
-                                                           int __c) {
-  __b[__c] = __a;
-  return __b;
-}
-
-static __inline__ vector signed short __ATTRS_o_ai
-vec_insert(signed short __a, vector signed short __b, int __c) {
-  __b[__c] = __a;
-  return __b;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_insert(unsigned short __a, vector unsigned short __b, int __c) {
-  __b[__c] = __a;
-  return __b;
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_insert(unsigned short __a, vector bool short __b, int __c) {
-  __b[__c] = __a;
-  return __b;
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_insert(signed int __a, vector signed int __b, int __c) {
-  __b[__c] = __a;
-  return __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_insert(unsigned int __a, vector unsigned int __b, int __c) {
-  __b[__c] = __a;
-  return __b;
-}
-
-static __inline__ vector bool int __ATTRS_o_ai vec_insert(unsigned int __a,
-                                                          vector bool int __b,
-                                                          int __c) {
-  __b[__c] = __a;
-  return __b;
-}
-
-#ifdef __VSX__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_insert(signed long long __a, vector signed long long __b, int __c) {
-  __b[__c] = __a;
-  return __b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_insert(unsigned long long __a, vector unsigned long long __b, int __c) {
-  __b[__c] = __a;
-  return __b;
-}
-
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_insert(unsigned long long __a, vector bool long long __b, int __c) {
-  __b[__c] = __a;
-  return __b;
-}
-static __inline__ vector double __ATTRS_o_ai vec_insert(double __a,
-                                                        vector double __b,
-                                                        int __c) {
-  __b[__c] = __a;
-  return __b;
-}
-#endif
-
-static __inline__ vector float __ATTRS_o_ai vec_insert(float __a,
-                                                       vector float __b,
-                                                       int __c) {
-  __b[__c] = __a;
-  return __b;
-}
-
-/* vec_lvlx */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_lvlx(int __a, const signed char *__b) {
-  return vec_perm(vec_ld(__a, __b), (vector signed char)(0),
-                  vec_lvsl(__a, __b));
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_lvlx(int __a, const vector signed char *__b) {
-  return vec_perm(vec_ld(__a, __b), (vector signed char)(0),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_lvlx(int __a, const unsigned char *__b) {
-  return vec_perm(vec_ld(__a, __b), (vector unsigned char)(0),
-                  vec_lvsl(__a, __b));
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_lvlx(int __a, const vector unsigned char *__b) {
-  return vec_perm(vec_ld(__a, __b), (vector unsigned char)(0),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_lvlx(int __a, const vector bool char *__b) {
-  return vec_perm(vec_ld(__a, __b), (vector bool char)(0),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_lvlx(int __a,
-                                                     const short *__b) {
-  return vec_perm(vec_ld(__a, __b), (vector short)(0), vec_lvsl(__a, __b));
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_lvlx(int __a,
-                                                     const vector short *__b) {
-  return vec_perm(vec_ld(__a, __b), (vector short)(0),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_lvlx(int __a, const unsigned short *__b) {
-  return vec_perm(vec_ld(__a, __b), (vector unsigned short)(0),
-                  vec_lvsl(__a, __b));
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_lvlx(int __a, const vector unsigned short *__b) {
-  return vec_perm(vec_ld(__a, __b), (vector unsigned short)(0),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_lvlx(int __a, const vector bool short *__b) {
-  return vec_perm(vec_ld(__a, __b), (vector bool short)(0),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_lvlx(int __a,
-                                                     const vector pixel *__b) {
-  return vec_perm(vec_ld(__a, __b), (vector pixel)(0),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_lvlx(int __a, const int *__b) {
-  return vec_perm(vec_ld(__a, __b), (vector int)(0), vec_lvsl(__a, __b));
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_lvlx(int __a,
-                                                   const vector int *__b) {
-  return vec_perm(vec_ld(__a, __b), (vector int)(0),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_lvlx(int __a, const unsigned int *__b) {
-  return vec_perm(vec_ld(__a, __b), (vector unsigned int)(0),
-                  vec_lvsl(__a, __b));
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_lvlx(int __a, const vector unsigned int *__b) {
-  return vec_perm(vec_ld(__a, __b), (vector unsigned int)(0),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_lvlx(int __a, const vector bool int *__b) {
-  return vec_perm(vec_ld(__a, __b), (vector bool int)(0),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_lvlx(int __a,
-                                                     const float *__b) {
-  return vec_perm(vec_ld(__a, __b), (vector float)(0), vec_lvsl(__a, __b));
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_lvlx(int __a,
-                                                     const vector float *__b) {
-  return vec_perm(vec_ld(__a, __b), (vector float)(0),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-/* vec_lvlxl */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_lvlxl(int __a, const signed char *__b) {
-  return vec_perm(vec_ldl(__a, __b), (vector signed char)(0),
-                  vec_lvsl(__a, __b));
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_lvlxl(int __a, const vector signed char *__b) {
-  return vec_perm(vec_ldl(__a, __b), (vector signed char)(0),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_lvlxl(int __a, const unsigned char *__b) {
-  return vec_perm(vec_ldl(__a, __b), (vector unsigned char)(0),
-                  vec_lvsl(__a, __b));
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_lvlxl(int __a, const vector unsigned char *__b) {
-  return vec_perm(vec_ldl(__a, __b), (vector unsigned char)(0),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_lvlxl(int __a, const vector bool char *__b) {
-  return vec_perm(vec_ldl(__a, __b), (vector bool char)(0),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_lvlxl(int __a,
-                                                      const short *__b) {
-  return vec_perm(vec_ldl(__a, __b), (vector short)(0), vec_lvsl(__a, __b));
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_lvlxl(int __a,
-                                                      const vector short *__b) {
-  return vec_perm(vec_ldl(__a, __b), (vector short)(0),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_lvlxl(int __a, const unsigned short *__b) {
-  return vec_perm(vec_ldl(__a, __b), (vector unsigned short)(0),
-                  vec_lvsl(__a, __b));
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_lvlxl(int __a, const vector unsigned short *__b) {
-  return vec_perm(vec_ldl(__a, __b), (vector unsigned short)(0),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_lvlxl(int __a, const vector bool short *__b) {
-  return vec_perm(vec_ldl(__a, __b), (vector bool short)(0),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_lvlxl(int __a,
-                                                      const vector pixel *__b) {
-  return vec_perm(vec_ldl(__a, __b), (vector pixel)(0),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_lvlxl(int __a, const int *__b) {
-  return vec_perm(vec_ldl(__a, __b), (vector int)(0), vec_lvsl(__a, __b));
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_lvlxl(int __a,
-                                                    const vector int *__b) {
-  return vec_perm(vec_ldl(__a, __b), (vector int)(0),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_lvlxl(int __a, const unsigned int *__b) {
-  return vec_perm(vec_ldl(__a, __b), (vector unsigned int)(0),
-                  vec_lvsl(__a, __b));
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_lvlxl(int __a, const vector unsigned int *__b) {
-  return vec_perm(vec_ldl(__a, __b), (vector unsigned int)(0),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_lvlxl(int __a, const vector bool int *__b) {
-  return vec_perm(vec_ldl(__a, __b), (vector bool int)(0),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_lvlxl(int __a,
-                                                      const float *__b) {
-  return vec_perm(vec_ldl(__a, __b), (vector float)(0), vec_lvsl(__a, __b));
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_lvlxl(int __a,
-                                                      vector float *__b) {
-  return vec_perm(vec_ldl(__a, __b), (vector float)(0),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-/* vec_lvrx */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_lvrx(int __a, const signed char *__b) {
-  return vec_perm((vector signed char)(0), vec_ld(__a, __b),
-                  vec_lvsl(__a, __b));
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_lvrx(int __a, const vector signed char *__b) {
-  return vec_perm((vector signed char)(0), vec_ld(__a, __b),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_lvrx(int __a, const unsigned char *__b) {
-  return vec_perm((vector unsigned char)(0), vec_ld(__a, __b),
-                  vec_lvsl(__a, __b));
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_lvrx(int __a, const vector unsigned char *__b) {
-  return vec_perm((vector unsigned char)(0), vec_ld(__a, __b),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_lvrx(int __a, const vector bool char *__b) {
-  return vec_perm((vector bool char)(0), vec_ld(__a, __b),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_lvrx(int __a,
-                                                     const short *__b) {
-  return vec_perm((vector short)(0), vec_ld(__a, __b), vec_lvsl(__a, __b));
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_lvrx(int __a,
-                                                     const vector short *__b) {
-  return vec_perm((vector short)(0), vec_ld(__a, __b),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_lvrx(int __a, const unsigned short *__b) {
-  return vec_perm((vector unsigned short)(0), vec_ld(__a, __b),
-                  vec_lvsl(__a, __b));
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_lvrx(int __a, const vector unsigned short *__b) {
-  return vec_perm((vector unsigned short)(0), vec_ld(__a, __b),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_lvrx(int __a, const vector bool short *__b) {
-  return vec_perm((vector bool short)(0), vec_ld(__a, __b),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_lvrx(int __a,
-                                                     const vector pixel *__b) {
-  return vec_perm((vector pixel)(0), vec_ld(__a, __b),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_lvrx(int __a, const int *__b) {
-  return vec_perm((vector int)(0), vec_ld(__a, __b), vec_lvsl(__a, __b));
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_lvrx(int __a,
-                                                   const vector int *__b) {
-  return vec_perm((vector int)(0), vec_ld(__a, __b),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_lvrx(int __a, const unsigned int *__b) {
-  return vec_perm((vector unsigned int)(0), vec_ld(__a, __b),
-                  vec_lvsl(__a, __b));
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_lvrx(int __a, const vector unsigned int *__b) {
-  return vec_perm((vector unsigned int)(0), vec_ld(__a, __b),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_lvrx(int __a, const vector bool int *__b) {
-  return vec_perm((vector bool int)(0), vec_ld(__a, __b),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_lvrx(int __a,
-                                                     const float *__b) {
-  return vec_perm((vector float)(0), vec_ld(__a, __b), vec_lvsl(__a, __b));
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_lvrx(int __a,
-                                                     const vector float *__b) {
-  return vec_perm((vector float)(0), vec_ld(__a, __b),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-/* vec_lvrxl */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_lvrxl(int __a, const signed char *__b) {
-  return vec_perm((vector signed char)(0), vec_ldl(__a, __b),
-                  vec_lvsl(__a, __b));
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_lvrxl(int __a, const vector signed char *__b) {
-  return vec_perm((vector signed char)(0), vec_ldl(__a, __b),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_lvrxl(int __a, const unsigned char *__b) {
-  return vec_perm((vector unsigned char)(0), vec_ldl(__a, __b),
-                  vec_lvsl(__a, __b));
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_lvrxl(int __a, const vector unsigned char *__b) {
-  return vec_perm((vector unsigned char)(0), vec_ldl(__a, __b),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector bool char __ATTRS_o_ai
-vec_lvrxl(int __a, const vector bool char *__b) {
-  return vec_perm((vector bool char)(0), vec_ldl(__a, __b),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_lvrxl(int __a,
-                                                      const short *__b) {
-  return vec_perm((vector short)(0), vec_ldl(__a, __b), vec_lvsl(__a, __b));
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_lvrxl(int __a,
-                                                      const vector short *__b) {
-  return vec_perm((vector short)(0), vec_ldl(__a, __b),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_lvrxl(int __a, const unsigned short *__b) {
-  return vec_perm((vector unsigned short)(0), vec_ldl(__a, __b),
-                  vec_lvsl(__a, __b));
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_lvrxl(int __a, const vector unsigned short *__b) {
-  return vec_perm((vector unsigned short)(0), vec_ldl(__a, __b),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_lvrxl(int __a, const vector bool short *__b) {
-  return vec_perm((vector bool short)(0), vec_ldl(__a, __b),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector pixel __ATTRS_o_ai vec_lvrxl(int __a,
-                                                      const vector pixel *__b) {
-  return vec_perm((vector pixel)(0), vec_ldl(__a, __b),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_lvrxl(int __a, const int *__b) {
-  return vec_perm((vector int)(0), vec_ldl(__a, __b), vec_lvsl(__a, __b));
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_lvrxl(int __a,
-                                                    const vector int *__b) {
-  return vec_perm((vector int)(0), vec_ldl(__a, __b),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_lvrxl(int __a, const unsigned int *__b) {
-  return vec_perm((vector unsigned int)(0), vec_ldl(__a, __b),
-                  vec_lvsl(__a, __b));
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_lvrxl(int __a, const vector unsigned int *__b) {
-  return vec_perm((vector unsigned int)(0), vec_ldl(__a, __b),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_lvrxl(int __a, const vector bool int *__b) {
-  return vec_perm((vector bool int)(0), vec_ldl(__a, __b),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_lvrxl(int __a,
-                                                      const float *__b) {
-  return vec_perm((vector float)(0), vec_ldl(__a, __b), vec_lvsl(__a, __b));
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_lvrxl(int __a,
-                                                      const vector float *__b) {
-  return vec_perm((vector float)(0), vec_ldl(__a, __b),
-                  vec_lvsl(__a, (unsigned char *)__b));
-}
-
-/* vec_stvlx */
-
-static __inline__ void __ATTRS_o_ai vec_stvlx(vector signed char __a, int __b,
-                                              signed char *__c) {
-  return vec_st(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
-                __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlx(vector signed char __a, int __b,
-                                              vector signed char *__c) {
-  return vec_st(
-      vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlx(vector unsigned char __a, int __b,
-                                              unsigned char *__c) {
-  return vec_st(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
-                __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlx(vector unsigned char __a, int __b,
-                                              vector unsigned char *__c) {
-  return vec_st(
-      vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlx(vector bool char __a, int __b,
-                                              vector bool char *__c) {
-  return vec_st(
-      vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlx(vector short __a, int __b,
-                                              short *__c) {
-  return vec_st(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
-                __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlx(vector short __a, int __b,
-                                              vector short *__c) {
-  return vec_st(
-      vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlx(vector unsigned short __a,
-                                              int __b, unsigned short *__c) {
-  return vec_st(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
-                __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlx(vector unsigned short __a,
-                                              int __b,
-                                              vector unsigned short *__c) {
-  return vec_st(
-      vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlx(vector bool short __a, int __b,
-                                              vector bool short *__c) {
-  return vec_st(
-      vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlx(vector pixel __a, int __b,
-                                              vector pixel *__c) {
-  return vec_st(
-      vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlx(vector int __a, int __b,
-                                              int *__c) {
-  return vec_st(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
-                __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlx(vector int __a, int __b,
-                                              vector int *__c) {
-  return vec_st(
-      vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlx(vector unsigned int __a, int __b,
-                                              unsigned int *__c) {
-  return vec_st(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
-                __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlx(vector unsigned int __a, int __b,
-                                              vector unsigned int *__c) {
-  return vec_st(
-      vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlx(vector bool int __a, int __b,
-                                              vector bool int *__c) {
-  return vec_st(
-      vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlx(vector float __a, int __b,
-                                              vector float *__c) {
-  return vec_st(
-      vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-/* vec_stvlxl */
-
-static __inline__ void __ATTRS_o_ai vec_stvlxl(vector signed char __a, int __b,
-                                               signed char *__c) {
-  return vec_stl(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
-                 __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlxl(vector signed char __a, int __b,
-                                               vector signed char *__c) {
-  return vec_stl(
-      vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlxl(vector unsigned char __a,
-                                               int __b, unsigned char *__c) {
-  return vec_stl(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
-                 __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlxl(vector unsigned char __a,
-                                               int __b,
-                                               vector unsigned char *__c) {
-  return vec_stl(
-      vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlxl(vector bool char __a, int __b,
-                                               vector bool char *__c) {
-  return vec_stl(
-      vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlxl(vector short __a, int __b,
-                                               short *__c) {
-  return vec_stl(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
-                 __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlxl(vector short __a, int __b,
-                                               vector short *__c) {
-  return vec_stl(
-      vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlxl(vector unsigned short __a,
-                                               int __b, unsigned short *__c) {
-  return vec_stl(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
-                 __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlxl(vector unsigned short __a,
-                                               int __b,
-                                               vector unsigned short *__c) {
-  return vec_stl(
-      vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlxl(vector bool short __a, int __b,
-                                               vector bool short *__c) {
-  return vec_stl(
-      vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlxl(vector pixel __a, int __b,
-                                               vector pixel *__c) {
-  return vec_stl(
-      vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlxl(vector int __a, int __b,
-                                               int *__c) {
-  return vec_stl(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
-                 __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlxl(vector int __a, int __b,
-                                               vector int *__c) {
-  return vec_stl(
-      vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlxl(vector unsigned int __a, int __b,
-                                               unsigned int *__c) {
-  return vec_stl(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
-                 __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlxl(vector unsigned int __a, int __b,
-                                               vector unsigned int *__c) {
-  return vec_stl(
-      vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlxl(vector bool int __a, int __b,
-                                               vector bool int *__c) {
-  return vec_stl(
-      vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvlxl(vector float __a, int __b,
-                                               vector float *__c) {
-  return vec_stl(
-      vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-/* vec_stvrx */
-
-static __inline__ void __ATTRS_o_ai vec_stvrx(vector signed char __a, int __b,
-                                              signed char *__c) {
-  return vec_st(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
-                __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrx(vector signed char __a, int __b,
-                                              vector signed char *__c) {
-  return vec_st(
-      vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrx(vector unsigned char __a, int __b,
-                                              unsigned char *__c) {
-  return vec_st(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
-                __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrx(vector unsigned char __a, int __b,
-                                              vector unsigned char *__c) {
-  return vec_st(
-      vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrx(vector bool char __a, int __b,
-                                              vector bool char *__c) {
-  return vec_st(
-      vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrx(vector short __a, int __b,
-                                              short *__c) {
-  return vec_st(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
-                __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrx(vector short __a, int __b,
-                                              vector short *__c) {
-  return vec_st(
-      vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrx(vector unsigned short __a,
-                                              int __b, unsigned short *__c) {
-  return vec_st(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
-                __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrx(vector unsigned short __a,
-                                              int __b,
-                                              vector unsigned short *__c) {
-  return vec_st(
-      vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrx(vector bool short __a, int __b,
-                                              vector bool short *__c) {
-  return vec_st(
-      vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrx(vector pixel __a, int __b,
-                                              vector pixel *__c) {
-  return vec_st(
-      vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrx(vector int __a, int __b,
-                                              int *__c) {
-  return vec_st(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
-                __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrx(vector int __a, int __b,
-                                              vector int *__c) {
-  return vec_st(
-      vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrx(vector unsigned int __a, int __b,
-                                              unsigned int *__c) {
-  return vec_st(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
-                __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrx(vector unsigned int __a, int __b,
-                                              vector unsigned int *__c) {
-  return vec_st(
-      vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrx(vector bool int __a, int __b,
-                                              vector bool int *__c) {
-  return vec_st(
-      vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrx(vector float __a, int __b,
-                                              vector float *__c) {
-  return vec_st(
-      vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-/* vec_stvrxl */
-
-static __inline__ void __ATTRS_o_ai vec_stvrxl(vector signed char __a, int __b,
-                                               signed char *__c) {
-  return vec_stl(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
-                 __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrxl(vector signed char __a, int __b,
-                                               vector signed char *__c) {
-  return vec_stl(
-      vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrxl(vector unsigned char __a,
-                                               int __b, unsigned char *__c) {
-  return vec_stl(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
-                 __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrxl(vector unsigned char __a,
-                                               int __b,
-                                               vector unsigned char *__c) {
-  return vec_stl(
-      vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrxl(vector bool char __a, int __b,
-                                               vector bool char *__c) {
-  return vec_stl(
-      vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrxl(vector short __a, int __b,
-                                               short *__c) {
-  return vec_stl(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
-                 __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrxl(vector short __a, int __b,
-                                               vector short *__c) {
-  return vec_stl(
-      vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrxl(vector unsigned short __a,
-                                               int __b, unsigned short *__c) {
-  return vec_stl(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
-                 __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrxl(vector unsigned short __a,
-                                               int __b,
-                                               vector unsigned short *__c) {
-  return vec_stl(
-      vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrxl(vector bool short __a, int __b,
-                                               vector bool short *__c) {
-  return vec_stl(
-      vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrxl(vector pixel __a, int __b,
-                                               vector pixel *__c) {
-  return vec_stl(
-      vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrxl(vector int __a, int __b,
-                                               int *__c) {
-  return vec_stl(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
-                 __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrxl(vector int __a, int __b,
-                                               vector int *__c) {
-  return vec_stl(
-      vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrxl(vector unsigned int __a, int __b,
-                                               unsigned int *__c) {
-  return vec_stl(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
-                 __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrxl(vector unsigned int __a, int __b,
-                                               vector unsigned int *__c) {
-  return vec_stl(
-      vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrxl(vector bool int __a, int __b,
-                                               vector bool int *__c) {
-  return vec_stl(
-      vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_stvrxl(vector float __a, int __b,
-                                               vector float *__c) {
-  return vec_stl(
-      vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
-      __b, __c);
-}
-
-/* vec_promote */
-
-static __inline__ vector signed char __ATTRS_o_ai vec_promote(signed char __a,
-                                                              int __b) {
-  vector signed char __res = (vector signed char)(0);
-  __res[__b & 0x7] = __a;
-  return __res;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_promote(unsigned char __a, int __b) {
-  vector unsigned char __res = (vector unsigned char)(0);
-  __res[__b & 0x7] = __a;
-  return __res;
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_promote(short __a, int __b) {
-  vector short __res = (vector short)(0);
-  __res[__b & 0x7] = __a;
-  return __res;
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_promote(unsigned short __a, int __b) {
-  vector unsigned short __res = (vector unsigned short)(0);
-  __res[__b & 0x7] = __a;
-  return __res;
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_promote(int __a, int __b) {
-  vector int __res = (vector int)(0);
-  __res[__b & 0x3] = __a;
-  return __res;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai vec_promote(unsigned int __a,
-                                                               int __b) {
-  vector unsigned int __res = (vector unsigned int)(0);
-  __res[__b & 0x3] = __a;
-  return __res;
-}
-
-static __inline__ vector float __ATTRS_o_ai vec_promote(float __a, int __b) {
-  vector float __res = (vector float)(0);
-  __res[__b & 0x3] = __a;
-  return __res;
-}
-
-#ifdef __VSX__
-static __inline__ vector double __ATTRS_o_ai vec_promote(double __a, int __b) {
-  vector double __res = (vector double)(0);
-  __res[__b & 0x1] = __a;
-  return __res;
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_promote(signed long long __a, int __b) {
-  vector signed long long __res = (vector signed long long)(0);
-  __res[__b & 0x1] = __a;
-  return __res;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_promote(unsigned long long __a, int __b) {
-  vector unsigned long long __res = (vector unsigned long long)(0);
-  __res[__b & 0x1] = __a;
-  return __res;
-}
-#endif
-
-/* vec_splats */
-
-static __inline__ vector signed char __ATTRS_o_ai vec_splats(signed char __a) {
-  return (vector signed char)(__a);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_splats(unsigned char __a) {
-  return (vector unsigned char)(__a);
-}
-
-static __inline__ vector short __ATTRS_o_ai vec_splats(short __a) {
-  return (vector short)(__a);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_splats(unsigned short __a) {
-  return (vector unsigned short)(__a);
-}
-
-static __inline__ vector int __ATTRS_o_ai vec_splats(int __a) {
-  return (vector int)(__a);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_splats(unsigned int __a) {
-  return (vector unsigned int)(__a);
-}
-
-#ifdef __VSX__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_splats(signed long long __a) {
-  return (vector signed long long)(__a);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_splats(unsigned long long __a) {
-  return (vector unsigned long long)(__a);
-}
-
-#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) &&                    \
-    defined(__SIZEOF_INT128__)
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_splats(signed __int128 __a) {
-  return (vector signed __int128)(__a);
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_splats(unsigned __int128 __a) {
-  return (vector unsigned __int128)(__a);
-}
-
-#endif
-
-static __inline__ vector double __ATTRS_o_ai vec_splats(double __a) {
-  return (vector double)(__a);
-}
-#endif
-
-static __inline__ vector float __ATTRS_o_ai vec_splats(float __a) {
-  return (vector float)(__a);
-}
-
-/* ----------------------------- predicates --------------------------------- */
-
-/* vec_all_eq */
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector signed char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector signed char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_LT, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_LT, __a, (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector pixel __a,
-                                              vector pixel __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector int __a, vector int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_LT, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_LT, __a, (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a,
-                                      (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a,
-                                      (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool int __a,
-                                              vector int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a,
-                                      (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a,
-                                      (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a,
-                                      (vector int)__b);
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector signed long long __a,
-                                              vector signed long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT, __a, (vector long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
-                                      (vector long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
-                                      (vector long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool long long __a,
-                                              vector long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
-                                      (vector long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
-                                      (vector long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
-                                      (vector long long)__b);
-}
-#endif
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector float __a,
-                                              vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpeqsp_p(__CR6_LT, __a, __b);
-#else
-  return __builtin_altivec_vcmpeqfp_p(__CR6_LT, __a, __b);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector double __a,
-                                              vector double __b) {
-  return __builtin_vsx_xvcmpeqdp_p(__CR6_LT, __a, __b);
-}
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector signed __int128 __a,
-                                              vector signed __int128 __b) {
-  return __builtin_altivec_vcmpequq_p(__CR6_LT, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned __int128 __a,
-                                              vector unsigned __int128 __b) {
-  return __builtin_altivec_vcmpequq_p(__CR6_LT, __a, __b);
-}
-#endif
-
-/* vec_all_ge */
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector signed char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector signed char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, (vector signed char)__b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector unsigned char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector unsigned char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)__b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, __b, (vector signed char)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __b, (vector unsigned char)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)__b,
-                                      (vector unsigned char)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, (vector short)__b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector unsigned short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector unsigned short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)__b,
-                                      __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, __b, (vector signed short)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __b,
-                                      (vector unsigned short)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)__b,
-                                      (vector unsigned short)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector int __a, vector int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, (vector int)__b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector unsigned int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector unsigned int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)__b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool int __a,
-                                              vector int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, __b, (vector signed int)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __b, (vector unsigned int)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)__b,
-                                      (vector unsigned int)__a);
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector signed long long __a,
-                                              vector signed long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_EQ, __b, __a);
-}
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector signed long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_EQ, (vector signed long long)__b,
-                                      __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector unsigned long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_EQ, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector unsigned long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_EQ, (vector unsigned long long)__b,
-                                      __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool long long __a,
-                                              vector signed long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_EQ, __b,
-                                      (vector signed long long)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_EQ, __b,
-                                      (vector unsigned long long)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_EQ, (vector unsigned long long)__b,
-                                      (vector unsigned long long)__a);
-}
-#endif
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector float __a,
-                                              vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpgesp_p(__CR6_LT, __a, __b);
-#else
-  return __builtin_altivec_vcmpgefp_p(__CR6_LT, __a, __b);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector double __a,
-                                              vector double __b) {
-  return __builtin_vsx_xvcmpgedp_p(__CR6_LT, __a, __b);
-}
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector signed __int128 __a,
-                                              vector signed __int128 __b) {
-  return __builtin_altivec_vcmpgtsq_p(__CR6_EQ, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ge(vector unsigned __int128 __a,
-                                              vector unsigned __int128 __b) {
-  return __builtin_altivec_vcmpgtuq_p(__CR6_EQ, __b, __a);
-}
-#endif
-
-/* vec_all_gt */
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector signed char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_LT, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector signed char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_LT, __a, (vector signed char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector unsigned char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_LT, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector unsigned char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_LT, __a, (vector unsigned char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_LT, (vector signed char)__a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)__a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)__a,
-                                      (vector unsigned char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_LT, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_LT, __a, (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector unsigned short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector unsigned short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __a,
-                                      (vector unsigned short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_LT, (vector signed short)__a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)__a,
-                                      __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)__a,
-                                      (vector unsigned short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector int __a, vector int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_LT, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_LT, __a, (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector unsigned int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector unsigned int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __a, (vector unsigned int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool int __a,
-                                              vector int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_LT, (vector signed int)__a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)__a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)__a,
-                                      (vector unsigned int)__b);
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector signed long long __a,
-                                              vector signed long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_LT, __a, __b);
-}
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector signed long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_LT, __a,
-                                      (vector signed long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector unsigned long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_LT, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector unsigned long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_LT, __a,
-                                      (vector unsigned long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool long long __a,
-                                              vector signed long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_LT, (vector signed long long)__a,
-                                      __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_LT, (vector unsigned long long)__a,
-                                      __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_LT, (vector unsigned long long)__a,
-                                      (vector unsigned long long)__b);
-}
-#endif
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector float __a,
-                                              vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpgtsp_p(__CR6_LT, __a, __b);
-#else
-  return __builtin_altivec_vcmpgtfp_p(__CR6_LT, __a, __b);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector double __a,
-                                              vector double __b) {
-  return __builtin_vsx_xvcmpgtdp_p(__CR6_LT, __a, __b);
-}
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector signed __int128 __a,
-                                              vector signed __int128 __b) {
-  return __builtin_altivec_vcmpgtsq_p(__CR6_LT, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_gt(vector unsigned __int128 __a,
-                                              vector unsigned __int128 __b) {
-  return __builtin_altivec_vcmpgtuq_p(__CR6_LT, __a, __b);
-}
-#endif
-
-/* vec_all_in */
-
-static __inline__ int __attribute__((__always_inline__))
-vec_all_in(vector float __a, vector float __b) {
-  return __builtin_altivec_vcmpbfp_p(__CR6_EQ, __a, __b);
-}
-
-/* vec_all_le */
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector signed char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector signed char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, __a, (vector signed char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector unsigned char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector unsigned char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __a, (vector unsigned char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector bool char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, (vector signed char)__a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector bool char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)__a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector bool char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)__a,
-                                      (vector unsigned char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, __a, (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector unsigned short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector unsigned short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __a,
-                                      (vector unsigned short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector bool short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, (vector signed short)__a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector bool short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)__a,
-                                      __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector bool short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)__a,
-                                      (vector unsigned short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector int __a, vector int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, __a, (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector unsigned int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector unsigned int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __a, (vector unsigned int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector bool int __a,
-                                              vector int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, (vector signed int)__a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector bool int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)__a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector bool int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)__a,
-                                      (vector unsigned int)__b);
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_all_le(vector signed long long __a,
-                                              vector signed long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_EQ, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector unsigned long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_EQ, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector signed long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_EQ, __a,
-                                      (vector signed long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector unsigned long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_EQ, __a,
-                                      (vector unsigned long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector bool long long __a,
-                                              vector signed long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_EQ, (vector signed long long)__a,
-                                      __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector bool long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_EQ, (vector unsigned long long)__a,
-                                      __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector bool long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_EQ, (vector unsigned long long)__a,
-                                      (vector unsigned long long)__b);
-}
-#endif
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector float __a,
-                                              vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpgesp_p(__CR6_LT, __b, __a);
-#else
-  return __builtin_altivec_vcmpgefp_p(__CR6_LT, __b, __a);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_all_le(vector double __a,
-                                              vector double __b) {
-  return __builtin_vsx_xvcmpgedp_p(__CR6_LT, __b, __a);
-}
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ int __ATTRS_o_ai vec_all_le(vector signed __int128 __a,
-                                              vector signed __int128 __b) {
-  return __builtin_altivec_vcmpgtsq_p(__CR6_EQ, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_le(vector unsigned __int128 __a,
-                                              vector unsigned __int128 __b) {
-  return __builtin_altivec_vcmpgtuq_p(__CR6_EQ, __a, __b);
-}
-#endif
-
-/* vec_all_lt */
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector signed char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_LT, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector signed char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_LT, (vector signed char)__b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector unsigned char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_LT, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector unsigned char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)__b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_LT, __b, (vector signed char)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_LT, __b, (vector unsigned char)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)__b,
-                                      (vector unsigned char)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_LT, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_LT, (vector short)__b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector unsigned short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector unsigned short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)__b,
-                                      __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_LT, __b, (vector signed short)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __b,
-                                      (vector unsigned short)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)__b,
-                                      (vector unsigned short)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector int __a, vector int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_LT, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_LT, (vector int)__b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector unsigned int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector unsigned int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)__b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool int __a,
-                                              vector int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_LT, __b, (vector signed int)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __b, (vector unsigned int)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)__b,
-                                      (vector unsigned int)__a);
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector signed long long __a,
-                                              vector signed long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_LT, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector unsigned long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_LT, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector signed long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_LT, (vector signed long long)__b,
-                                      __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector unsigned long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_LT, (vector unsigned long long)__b,
-                                      __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool long long __a,
-                                              vector signed long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_LT, __b,
-                                      (vector signed long long)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_LT, __b,
-                                      (vector unsigned long long)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_LT, (vector unsigned long long)__b,
-                                      (vector unsigned long long)__a);
-}
-#endif
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector float __a,
-                                              vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpgtsp_p(__CR6_LT, __b, __a);
-#else
-  return __builtin_altivec_vcmpgtfp_p(__CR6_LT, __b, __a);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector double __a,
-                                              vector double __b) {
-  return __builtin_vsx_xvcmpgtdp_p(__CR6_LT, __b, __a);
-}
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector signed __int128 __a,
-                                              vector signed __int128 __b) {
-  return __builtin_altivec_vcmpgtsq_p(__CR6_LT, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_lt(vector unsigned __int128 __a,
-                                              vector unsigned __int128 __b) {
-  return __builtin_altivec_vcmpgtuq_p(__CR6_LT, __b, __a);
-}
-#endif
-
-/* vec_all_nan */
-
-static __inline__ int __ATTRS_o_ai vec_all_nan(vector float __a) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpeqsp_p(__CR6_EQ, __a, __a);
-#else
-  return __builtin_altivec_vcmpeqfp_p(__CR6_EQ, __a, __a);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_all_nan(vector double __a) {
-  return __builtin_vsx_xvcmpeqdp_p(__CR6_EQ, __a, __a);
-}
-#endif
-
-/* vec_all_ne */
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector signed char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector signed char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector unsigned char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector unsigned char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_EQ, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_EQ, __a, (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector unsigned short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector unsigned short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector pixel __a,
-                                              vector pixel __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector int __a, vector int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_EQ, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_EQ, __a, (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector unsigned int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a,
-                                      (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector unsigned int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a,
-                                      (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool int __a,
-                                              vector int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a,
-                                      (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a,
-                                      (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a,
-                                      (vector int)__b);
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector signed long long __a,
-                                              vector signed long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_EQ, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector unsigned long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_EQ, (vector long long)__a,
-                                      (vector long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector signed long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_EQ, __a,
-                                      (vector signed long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector unsigned long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_EQ, (vector signed long long)__a,
-                                      (vector signed long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool long long __a,
-                                              vector signed long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_EQ, (vector signed long long)__a,
-                                      (vector signed long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_EQ, (vector signed long long)__a,
-                                      (vector signed long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_EQ, (vector signed long long)__a,
-                                      (vector signed long long)__b);
-}
-#endif
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector float __a,
-                                              vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpeqsp_p(__CR6_EQ, __a, __b);
-#else
-  return __builtin_altivec_vcmpeqfp_p(__CR6_EQ, __a, __b);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector double __a,
-                                              vector double __b) {
-  return __builtin_vsx_xvcmpeqdp_p(__CR6_EQ, __a, __b);
-}
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector signed __int128 __a,
-                                              vector signed __int128 __b) {
-  return __builtin_altivec_vcmpequq_p(__CR6_EQ, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_all_ne(vector unsigned __int128 __a,
-                                              vector unsigned __int128 __b) {
-  return __builtin_altivec_vcmpequq_p(__CR6_EQ, __a, __b);
-}
-#endif
-
-/* vec_all_nge */
-
-static __inline__ int __ATTRS_o_ai vec_all_nge(vector float __a,
-                                               vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpgesp_p(__CR6_EQ, __a, __b);
-#else
-  return __builtin_altivec_vcmpgefp_p(__CR6_EQ, __a, __b);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_all_nge(vector double __a,
-                                               vector double __b) {
-  return __builtin_vsx_xvcmpgedp_p(__CR6_EQ, __a, __b);
-}
-#endif
-
-/* vec_all_ngt */
-
-static __inline__ int __ATTRS_o_ai vec_all_ngt(vector float __a,
-                                               vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpgtsp_p(__CR6_EQ, __a, __b);
-#else
-  return __builtin_altivec_vcmpgtfp_p(__CR6_EQ, __a, __b);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_all_ngt(vector double __a,
-                                               vector double __b) {
-  return __builtin_vsx_xvcmpgtdp_p(__CR6_EQ, __a, __b);
-}
-#endif
-
-/* vec_all_nle */
-
-static __inline__ int __ATTRS_o_ai
-vec_all_nle(vector float __a, vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpgesp_p(__CR6_EQ, __b, __a);
-#else
-  return __builtin_altivec_vcmpgefp_p(__CR6_EQ, __b, __a);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_all_nle(vector double __a,
-                                               vector double __b) {
-  return __builtin_vsx_xvcmpgedp_p(__CR6_EQ, __b, __a);
-}
-#endif
-
-/* vec_all_nlt */
-
-static __inline__ int __ATTRS_o_ai
-vec_all_nlt(vector float __a, vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpgtsp_p(__CR6_EQ, __b, __a);
-#else
-  return __builtin_altivec_vcmpgtfp_p(__CR6_EQ, __b, __a);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_all_nlt(vector double __a,
-                                               vector double __b) {
-  return __builtin_vsx_xvcmpgtdp_p(__CR6_EQ, __b, __a);
-}
-#endif
-
-/* vec_all_numeric */
-
-static __inline__ int __ATTRS_o_ai
-vec_all_numeric(vector float __a) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpeqsp_p(__CR6_LT, __a, __a);
-#else
-  return __builtin_altivec_vcmpeqfp_p(__CR6_LT, __a, __a);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_all_numeric(vector double __a) {
-  return __builtin_vsx_xvcmpeqdp_p(__CR6_LT, __a, __a);
-}
-#endif
-
-/* vec_any_eq */
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector signed char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector signed char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector unsigned char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector unsigned char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, __a, (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector unsigned short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector unsigned short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector pixel __a,
-                                              vector pixel __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector int __a, vector int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, __a, (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector unsigned int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a,
-                                      (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector unsigned int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a,
-                                      (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool int __a,
-                                              vector int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a,
-                                      (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a,
-                                      (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a,
-                                      (vector int)__b);
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector signed long long __a,
-                                              vector signed long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_EQ_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector unsigned long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_EQ_REV, (vector long long)__a,
-                                      (vector long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector signed long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_EQ_REV, __a,
-                                      (vector signed long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector unsigned long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(
-      __CR6_EQ_REV, (vector signed long long)__a, (vector signed long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool long long __a,
-                                              vector signed long long __b) {
-  return __builtin_altivec_vcmpequd_p(
-      __CR6_EQ_REV, (vector signed long long)__a, (vector signed long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpequd_p(
-      __CR6_EQ_REV, (vector signed long long)__a, (vector signed long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(
-      __CR6_EQ_REV, (vector signed long long)__a, (vector signed long long)__b);
-}
-#endif
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector float __a,
-                                              vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpeqsp_p(__CR6_EQ_REV, __a, __b);
-#else
-  return __builtin_altivec_vcmpeqfp_p(__CR6_EQ_REV, __a, __b);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector double __a,
-                                              vector double __b) {
-  return __builtin_vsx_xvcmpeqdp_p(__CR6_EQ_REV, __a, __b);
-}
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector signed __int128 __a,
-                                              vector signed __int128 __b) {
-  return __builtin_altivec_vcmpequq_p(__CR6_EQ_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_eq(vector unsigned __int128 __a,
-                                              vector unsigned __int128 __b) {
-  return __builtin_altivec_vcmpequq_p(__CR6_EQ_REV, __a, __b);
-}
-#endif
-
-/* vec_any_ge */
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector signed char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector signed char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, (vector signed char)__b,
-                                      __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector unsigned char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector unsigned char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)__b,
-                                      __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, __b,
-                                      (vector signed char)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __b,
-                                      (vector unsigned char)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)__b,
-                                      (vector unsigned char)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, (vector short)__b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector unsigned short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector unsigned short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)__b,
-                                      __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, __b,
-                                      (vector signed short)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __b,
-                                      (vector unsigned short)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)__b,
-                                      (vector unsigned short)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector int __a, vector int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, (vector int)__b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector unsigned int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector unsigned int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)__b,
-                                      __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool int __a,
-                                              vector int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, __b,
-                                      (vector signed int)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __b,
-                                      (vector unsigned int)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)__b,
-                                      (vector unsigned int)__a);
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector signed long long __a,
-                                              vector signed long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_LT_REV, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector unsigned long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector signed long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_LT_REV,
-                                      (vector signed long long)__b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector unsigned long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV,
-                                      (vector unsigned long long)__b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool long long __a,
-                                              vector signed long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_LT_REV, __b,
-                                      (vector signed long long)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV, __b,
-                                      (vector unsigned long long)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV,
-                                      (vector unsigned long long)__b,
-                                      (vector unsigned long long)__a);
-}
-#endif
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector float __a,
-                                              vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpgesp_p(__CR6_EQ_REV, __a, __b);
-#else
-  return __builtin_altivec_vcmpgefp_p(__CR6_EQ_REV, __a, __b);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector double __a,
-                                              vector double __b) {
-  return __builtin_vsx_xvcmpgedp_p(__CR6_EQ_REV, __a, __b);
-}
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector signed __int128 __a,
-                                              vector signed __int128 __b) {
-  return __builtin_altivec_vcmpgtsq_p(__CR6_LT_REV, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ge(vector unsigned __int128 __a,
-                                              vector unsigned __int128 __b) {
-  return __builtin_altivec_vcmpgtuq_p(__CR6_LT_REV, __b, __a);
-}
-#endif
-
-/* vec_any_gt */
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector signed char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector signed char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, __a,
-                                      (vector signed char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector unsigned char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector unsigned char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __a,
-                                      (vector unsigned char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, (vector signed char)__a,
-                                      __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)__a,
-                                      __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)__a,
-                                      (vector unsigned char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, __a, (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector unsigned short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector unsigned short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __a,
-                                      (vector unsigned short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, (vector signed short)__a,
-                                      __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)__a,
-                                      __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)__a,
-                                      (vector unsigned short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector int __a, vector int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, __a, (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector unsigned int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector unsigned int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __a,
-                                      (vector unsigned int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool int __a,
-                                              vector int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, (vector signed int)__a,
-                                      __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)__a,
-                                      __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)__a,
-                                      (vector unsigned int)__b);
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector signed long long __a,
-                                              vector signed long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_EQ_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector unsigned long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector signed long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_EQ_REV, __a,
-                                      (vector signed long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector unsigned long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV, __a,
-                                      (vector unsigned long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool long long __a,
-                                              vector signed long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_EQ_REV,
-                                      (vector signed long long)__a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV,
-                                      (vector unsigned long long)__a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV,
-                                      (vector unsigned long long)__a,
-                                      (vector unsigned long long)__b);
-}
-#endif
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector float __a,
-                                              vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpgtsp_p(__CR6_EQ_REV, __a, __b);
-#else
-  return __builtin_altivec_vcmpgtfp_p(__CR6_EQ_REV, __a, __b);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector double __a,
-                                              vector double __b) {
-  return __builtin_vsx_xvcmpgtdp_p(__CR6_EQ_REV, __a, __b);
-}
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector signed __int128 __a,
-                                              vector signed __int128 __b) {
-  return __builtin_altivec_vcmpgtsq_p(__CR6_EQ_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_gt(vector unsigned __int128 __a,
-                                              vector unsigned __int128 __b) {
-  return __builtin_altivec_vcmpgtuq_p(__CR6_EQ_REV, __a, __b);
-}
-#endif
-
-/* vec_any_le */
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector signed char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector signed char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, __a,
-                                      (vector signed char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector unsigned char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector unsigned char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __a,
-                                      (vector unsigned char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector bool char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, (vector signed char)__a,
-                                      __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector bool char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)__a,
-                                      __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector bool char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)__a,
-                                      (vector unsigned char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, __a, (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector unsigned short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector unsigned short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __a,
-                                      (vector unsigned short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector bool short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, (vector signed short)__a,
-                                      __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector bool short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)__a,
-                                      __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector bool short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)__a,
-                                      (vector unsigned short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector int __a, vector int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, __a, (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector unsigned int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector unsigned int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __a,
-                                      (vector unsigned int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector bool int __a,
-                                              vector int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, (vector signed int)__a,
-                                      __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector bool int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)__a,
-                                      __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector bool int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)__a,
-                                      (vector unsigned int)__b);
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_any_le(vector signed long long __a,
-                                              vector signed long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_LT_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector unsigned long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector signed long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_LT_REV, __a,
-                                      (vector signed long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector unsigned long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV, __a,
-                                      (vector unsigned long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector bool long long __a,
-                                              vector signed long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_LT_REV,
-                                      (vector signed long long)__a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector bool long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV,
-                                      (vector unsigned long long)__a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector bool long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV,
-                                      (vector unsigned long long)__a,
-                                      (vector unsigned long long)__b);
-}
-#endif
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector float __a,
-                                              vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpgesp_p(__CR6_EQ_REV, __b, __a);
-#else
-  return __builtin_altivec_vcmpgefp_p(__CR6_EQ_REV, __b, __a);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_any_le(vector double __a,
-                                              vector double __b) {
-  return __builtin_vsx_xvcmpgedp_p(__CR6_EQ_REV, __b, __a);
-}
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ int __ATTRS_o_ai vec_any_le(vector signed __int128 __a,
-                                              vector signed __int128 __b) {
-  return __builtin_altivec_vcmpgtsq_p(__CR6_LT_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_le(vector unsigned __int128 __a,
-                                              vector unsigned __int128 __b) {
-  return __builtin_altivec_vcmpgtuq_p(__CR6_LT_REV, __a, __b);
-}
-#endif
-
-/* vec_any_lt */
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector signed char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector signed char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, (vector signed char)__b,
-                                      __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector unsigned char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector unsigned char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)__b,
-                                      __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, __b,
-                                      (vector signed char)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __b,
-                                      (vector unsigned char)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)__b,
-                                      (vector unsigned char)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, (vector short)__b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector unsigned short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector unsigned short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)__b,
-                                      __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, __b,
-                                      (vector signed short)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __b,
-                                      (vector unsigned short)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)__b,
-                                      (vector unsigned short)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector int __a, vector int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, (vector int)__b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector unsigned int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector unsigned int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)__b,
-                                      __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool int __a,
-                                              vector int __b) {
-  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, __b,
-                                      (vector signed int)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __b,
-                                      (vector unsigned int)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)__b,
-                                      (vector unsigned int)__a);
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector signed long long __a,
-                                              vector signed long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_EQ_REV, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector unsigned long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector signed long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_EQ_REV,
-                                      (vector signed long long)__b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector unsigned long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV,
-                                      (vector unsigned long long)__b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool long long __a,
-                                              vector signed long long __b) {
-  return __builtin_altivec_vcmpgtsd_p(__CR6_EQ_REV, __b,
-                                      (vector signed long long)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV, __b,
-                                      (vector unsigned long long)__a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV,
-                                      (vector unsigned long long)__b,
-                                      (vector unsigned long long)__a);
-}
-#endif
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector float __a,
-                                              vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpgtsp_p(__CR6_EQ_REV, __b, __a);
-#else
-  return __builtin_altivec_vcmpgtfp_p(__CR6_EQ_REV, __b, __a);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector double __a,
-                                              vector double __b) {
-  return __builtin_vsx_xvcmpgtdp_p(__CR6_EQ_REV, __b, __a);
-}
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector signed __int128 __a,
-                                              vector signed __int128 __b) {
-  return __builtin_altivec_vcmpgtsq_p(__CR6_EQ_REV, __b, __a);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_lt(vector unsigned __int128 __a,
-                                              vector unsigned __int128 __b) {
-  return __builtin_altivec_vcmpgtuq_p(__CR6_EQ_REV, __b, __a);
-}
-#endif
-
-/* vec_any_nan */
-
-static __inline__ int __ATTRS_o_ai vec_any_nan(vector float __a) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpeqsp_p(__CR6_LT_REV, __a, __a);
-#else
-  return __builtin_altivec_vcmpeqfp_p(__CR6_LT_REV, __a, __a);
-#endif
-}
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_any_nan(vector double __a) {
-  return __builtin_vsx_xvcmpeqdp_p(__CR6_LT_REV, __a, __a);
-}
-#endif
-
-/* vec_any_ne */
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector signed char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector signed char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool char __a,
-                                              vector signed char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool char __a,
-                                              vector unsigned char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool char __a,
-                                              vector bool char __b) {
-  return __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a,
-                                      (vector char)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, __a, (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool short __a,
-                                              vector short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool short __a,
-                                              vector unsigned short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool short __a,
-                                              vector bool short __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector pixel __a,
-                                              vector pixel __b) {
-  return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, (vector short)__a,
-                                      (vector short)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector int __a, vector int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, __a, (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a,
-                                      (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a,
-                                      (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool int __a,
-                                              vector int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a,
-                                      (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool int __a,
-                                              vector unsigned int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a,
-                                      (vector int)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool int __a,
-                                              vector bool int __b) {
-  return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a,
-                                      (vector int)__b);
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector signed long long __a,
-                                              vector signed long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT_REV, (vector long long)__a,
-                                      (vector long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector signed long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT_REV, __a,
-                                      (vector signed long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(
-      __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool long long __a,
-                                              vector signed long long __b) {
-  return __builtin_altivec_vcmpequd_p(
-      __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool long long __a,
-                                              vector unsigned long long __b) {
-  return __builtin_altivec_vcmpequd_p(
-      __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool long long __a,
-                                              vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(
-      __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b);
-}
-#endif
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector float __a,
-                                              vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpeqsp_p(__CR6_LT_REV, __a, __b);
-#else
-  return __builtin_altivec_vcmpeqfp_p(__CR6_LT_REV, __a, __b);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector double __a,
-                                              vector double __b) {
-  return __builtin_vsx_xvcmpeqdp_p(__CR6_LT_REV, __a, __b);
-}
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector signed __int128 __a,
-                                              vector signed __int128 __b) {
-  return __builtin_altivec_vcmpequq_p(__CR6_LT_REV, __a, __b);
-}
-
-static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned __int128 __a,
-                                              vector unsigned __int128 __b) {
-  return __builtin_altivec_vcmpequq_p(__CR6_LT_REV, __a, __b);
-}
-#endif
-
-/* vec_any_nge */
-
-static __inline__ int __ATTRS_o_ai vec_any_nge(vector float __a,
-                                               vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpgesp_p(__CR6_LT_REV, __a, __b);
-#else
-  return __builtin_altivec_vcmpgefp_p(__CR6_LT_REV, __a, __b);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_any_nge(vector double __a,
-                                               vector double __b) {
-  return __builtin_vsx_xvcmpgedp_p(__CR6_LT_REV, __a, __b);
-}
-#endif
-
-/* vec_any_ngt */
-
-static __inline__ int __ATTRS_o_ai vec_any_ngt(vector float __a,
-                                               vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpgtsp_p(__CR6_LT_REV, __a, __b);
-#else
-  return __builtin_altivec_vcmpgtfp_p(__CR6_LT_REV, __a, __b);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_any_ngt(vector double __a,
-                                               vector double __b) {
-  return __builtin_vsx_xvcmpgtdp_p(__CR6_LT_REV, __a, __b);
-}
-#endif
-
-/* vec_any_nle */
-
-static __inline__ int __ATTRS_o_ai vec_any_nle(vector float __a,
-                                               vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpgesp_p(__CR6_LT_REV, __b, __a);
-#else
-  return __builtin_altivec_vcmpgefp_p(__CR6_LT_REV, __b, __a);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_any_nle(vector double __a,
-                                               vector double __b) {
-  return __builtin_vsx_xvcmpgedp_p(__CR6_LT_REV, __b, __a);
-}
-#endif
-
-/* vec_any_nlt */
-
-static __inline__ int __ATTRS_o_ai vec_any_nlt(vector float __a,
-                                               vector float __b) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpgtsp_p(__CR6_LT_REV, __b, __a);
-#else
-  return __builtin_altivec_vcmpgtfp_p(__CR6_LT_REV, __b, __a);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_any_nlt(vector double __a,
-                                               vector double __b) {
-  return __builtin_vsx_xvcmpgtdp_p(__CR6_LT_REV, __b, __a);
-}
-#endif
-
-/* vec_any_numeric */
-
-static __inline__ int __ATTRS_o_ai vec_any_numeric(vector float __a) {
-#ifdef __VSX__
-  return __builtin_vsx_xvcmpeqsp_p(__CR6_EQ_REV, __a, __a);
-#else
-  return __builtin_altivec_vcmpeqfp_p(__CR6_EQ_REV, __a, __a);
-#endif
-}
-
-#ifdef __VSX__
-static __inline__ int __ATTRS_o_ai vec_any_numeric(vector double __a) {
-  return __builtin_vsx_xvcmpeqdp_p(__CR6_EQ_REV, __a, __a);
-}
-#endif
-
-/* vec_any_out */
-
-static __inline__ int __attribute__((__always_inline__))
-vec_any_out(vector float __a, vector float __b) {
-  return __builtin_altivec_vcmpbfp_p(__CR6_EQ_REV, __a, __b);
-}
-
-/* Power 8 Crypto functions
-Note: We diverge from the current GCC implementation with regard
-to cryptography and related functions as follows:
-- Only the SHA and AES instructions and builtins are disabled by -mno-crypto
-- The remaining ones are only available on Power8 and up so
-  require -mpower8-vector
-The justification for this is that export requirements require that
-Category:Vector.Crypto is optional (i.e. compliant hardware may not provide
-support). As a result, we need to be able to turn off support for those.
-The remaining ones (currently controlled by -mcrypto for GCC) still
-need to be provided on compliant hardware even if Vector.Crypto is not
-provided.
-*/
-#ifdef __CRYPTO__
-#define vec_sbox_be __builtin_altivec_crypto_vsbox
-#define vec_cipher_be __builtin_altivec_crypto_vcipher
-#define vec_cipherlast_be __builtin_altivec_crypto_vcipherlast
-#define vec_ncipher_be __builtin_altivec_crypto_vncipher
-#define vec_ncipherlast_be __builtin_altivec_crypto_vncipherlast
-
-static __inline__ vector unsigned long long __attribute__((__always_inline__))
-__builtin_crypto_vsbox(vector unsigned long long __a) {
-  return __builtin_altivec_crypto_vsbox(__a);
-}
-
-static __inline__ vector unsigned long long __attribute__((__always_inline__))
-__builtin_crypto_vcipher(vector unsigned long long __a,
-                         vector unsigned long long __b) {
-  return __builtin_altivec_crypto_vcipher(__a, __b);
-}
-
-static __inline__ vector unsigned long long __attribute__((__always_inline__))
-__builtin_crypto_vcipherlast(vector unsigned long long __a,
-                             vector unsigned long long __b) {
-  return __builtin_altivec_crypto_vcipherlast(__a, __b);
-}
-
-static __inline__ vector unsigned long long __attribute__((__always_inline__))
-__builtin_crypto_vncipher(vector unsigned long long __a,
-                          vector unsigned long long __b) {
-  return __builtin_altivec_crypto_vncipher(__a, __b);
-}
-
-static __inline__ vector unsigned long long __attribute__((__always_inline__))
-__builtin_crypto_vncipherlast(vector unsigned long long __a,
-                              vector unsigned long long __b) {
-  return __builtin_altivec_crypto_vncipherlast(__a, __b);
-}
-
-#define __builtin_crypto_vshasigmad __builtin_altivec_crypto_vshasigmad
-#define __builtin_crypto_vshasigmaw __builtin_altivec_crypto_vshasigmaw
-
-#define vec_shasigma_be(X, Y, Z)                                               \
-  _Generic((X), vector unsigned int                                            \
-           : __builtin_crypto_vshasigmaw, vector unsigned long long            \
-           : __builtin_crypto_vshasigmad)((X), (Y), (Z))
-#endif
-
-#ifdef __POWER8_VECTOR__
-static __inline__ vector bool char __ATTRS_o_ai
-vec_permxor(vector bool char __a, vector bool char __b,
-            vector bool char __c) {
-  return __builtin_altivec_crypto_vpermxor(__a, __b, __c);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_permxor(vector signed char __a, vector signed char __b,
-            vector signed char __c) {
-  return __builtin_altivec_crypto_vpermxor(__a, __b, __c);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_permxor(vector unsigned char __a, vector unsigned char __b,
-            vector unsigned char __c) {
-  return __builtin_altivec_crypto_vpermxor(__a, __b, __c);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-__builtin_crypto_vpermxor(vector unsigned char __a, vector unsigned char __b,
-                          vector unsigned char __c) {
-  return __builtin_altivec_crypto_vpermxor(__a, __b, __c);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-__builtin_crypto_vpermxor(vector unsigned short __a, vector unsigned short __b,
-                          vector unsigned short __c) {
-  return (vector unsigned short)__builtin_altivec_crypto_vpermxor(
-      (vector unsigned char)__a, (vector unsigned char)__b,
-      (vector unsigned char)__c);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai __builtin_crypto_vpermxor(
-    vector unsigned int __a, vector unsigned int __b, vector unsigned int __c) {
-  return (vector unsigned int)__builtin_altivec_crypto_vpermxor(
-      (vector unsigned char)__a, (vector unsigned char)__b,
-      (vector unsigned char)__c);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-__builtin_crypto_vpermxor(vector unsigned long long __a,
-                          vector unsigned long long __b,
-                          vector unsigned long long __c) {
-  return (vector unsigned long long)__builtin_altivec_crypto_vpermxor(
-      (vector unsigned char)__a, (vector unsigned char)__b,
-      (vector unsigned char)__c);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-__builtin_crypto_vpmsumb(vector unsigned char __a, vector unsigned char __b) {
-  return __builtin_altivec_crypto_vpmsumb(__a, __b);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-__builtin_crypto_vpmsumb(vector unsigned short __a, vector unsigned short __b) {
-  return __builtin_altivec_crypto_vpmsumh(__a, __b);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-__builtin_crypto_vpmsumb(vector unsigned int __a, vector unsigned int __b) {
-  return __builtin_altivec_crypto_vpmsumw(__a, __b);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-__builtin_crypto_vpmsumb(vector unsigned long long __a,
-                         vector unsigned long long __b) {
-  return __builtin_altivec_crypto_vpmsumd(__a, __b);
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_vgbbd(vector signed char __a) {
-  return __builtin_altivec_vgbbd((vector unsigned char)__a);
-}
-
-#define vec_pmsum_be __builtin_crypto_vpmsumb
-#define vec_gb __builtin_altivec_vgbbd
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_vgbbd(vector unsigned char __a) {
-  return __builtin_altivec_vgbbd(__a);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_gbb(vector signed long long __a) {
-  return __builtin_altivec_vgbbd((vector unsigned char)__a);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_gbb(vector unsigned long long __a) {
-  return __builtin_altivec_vgbbd((vector unsigned char)__a);
-}
-
-static __inline__ vector long long __ATTRS_o_ai
-vec_vbpermq(vector signed char __a, vector signed char __b) {
-  return __builtin_altivec_vbpermq((vector unsigned char)__a,
-                                   (vector unsigned char)__b);
-}
-
-static __inline__ vector long long __ATTRS_o_ai
-vec_vbpermq(vector unsigned char __a, vector unsigned char __b) {
-  return __builtin_altivec_vbpermq(__a, __b);
-}
-
-#if defined(__powerpc64__) && defined(__SIZEOF_INT128__)
-static __inline__ vector unsigned long long __attribute__((__always_inline__))
-vec_bperm(vector unsigned __int128 __a, vector unsigned char __b) {
-  return __builtin_altivec_vbpermq((vector unsigned char)__a,
-                                   (vector unsigned char)__b);
-}
-#endif
-#endif
-
-
-/* vec_reve */
-
-static inline __ATTRS_o_ai vector bool char vec_reve(vector bool char __a) {
-  return __builtin_shufflevector(__a, __a, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
-                                 5, 4, 3, 2, 1, 0);
-}
-
-static inline __ATTRS_o_ai vector signed char vec_reve(vector signed char __a) {
-  return __builtin_shufflevector(__a, __a, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
-                                 5, 4, 3, 2, 1, 0);
-}
-
-static inline __ATTRS_o_ai vector unsigned char
-vec_reve(vector unsigned char __a) {
-  return __builtin_shufflevector(__a, __a, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
-                                 5, 4, 3, 2, 1, 0);
-}
-
-static inline __ATTRS_o_ai vector bool int vec_reve(vector bool int __a) {
-  return __builtin_shufflevector(__a, __a, 3, 2, 1, 0);
-}
-
-static inline __ATTRS_o_ai vector signed int vec_reve(vector signed int __a) {
-  return __builtin_shufflevector(__a, __a, 3, 2, 1, 0);
-}
-
-static inline __ATTRS_o_ai vector unsigned int
-vec_reve(vector unsigned int __a) {
-  return __builtin_shufflevector(__a, __a, 3, 2, 1, 0);
-}
-
-static inline __ATTRS_o_ai vector bool short vec_reve(vector bool short __a) {
-  return __builtin_shufflevector(__a, __a, 7, 6, 5, 4, 3, 2, 1, 0);
-}
-
-static inline __ATTRS_o_ai vector signed short
-vec_reve(vector signed short __a) {
-  return __builtin_shufflevector(__a, __a, 7, 6, 5, 4, 3, 2, 1, 0);
-}
-
-static inline __ATTRS_o_ai vector unsigned short
-vec_reve(vector unsigned short __a) {
-  return __builtin_shufflevector(__a, __a, 7, 6, 5, 4, 3, 2, 1, 0);
-}
-
-static inline __ATTRS_o_ai vector float vec_reve(vector float __a) {
-  return __builtin_shufflevector(__a, __a, 3, 2, 1, 0);
-}
-
-#ifdef __VSX__
-static inline __ATTRS_o_ai vector bool long long
-vec_reve(vector bool long long __a) {
-  return __builtin_shufflevector(__a, __a, 1, 0);
-}
-
-static inline __ATTRS_o_ai vector signed long long
-vec_reve(vector signed long long __a) {
-  return __builtin_shufflevector(__a, __a, 1, 0);
-}
-
-static inline __ATTRS_o_ai vector unsigned long long
-vec_reve(vector unsigned long long __a) {
-  return __builtin_shufflevector(__a, __a, 1, 0);
-}
-
-static inline __ATTRS_o_ai vector double vec_reve(vector double __a) {
-  return __builtin_shufflevector(__a, __a, 1, 0);
-}
-#endif
-
-/* vec_revb */
-static __inline__ vector bool char __ATTRS_o_ai
-vec_revb(vector bool char __a) {
-  return __a;
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_revb(vector signed char __a) {
-  return __a;
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_revb(vector unsigned char __a) {
-  return __a;
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_revb(vector bool short __a) {
-  vector unsigned char __indices =
-      { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 };
-  return vec_perm(__a, __a, __indices);
-}
-
-static __inline__ vector signed short __ATTRS_o_ai
-vec_revb(vector signed short __a) {
-  vector unsigned char __indices =
-      { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 };
-  return vec_perm(__a, __a, __indices);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_revb(vector unsigned short __a) {
-  vector unsigned char __indices =
-     { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 };
-  return vec_perm(__a, __a, __indices);
-}
-
-static __inline__ vector bool int __ATTRS_o_ai
-vec_revb(vector bool int __a) {
-  vector unsigned char __indices =
-      { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 };
-  return vec_perm(__a, __a, __indices);
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_revb(vector signed int __a) {
-  vector unsigned char __indices =
-      { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 };
-  return vec_perm(__a, __a, __indices);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_revb(vector unsigned int __a) {
-  vector unsigned char __indices =
-      { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 };
-  return vec_perm(__a, __a, __indices);
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_revb(vector float __a) {
- vector unsigned char __indices =
-      { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 };
- return vec_perm(__a, __a, __indices);
-}
-
-#ifdef __VSX__
-static __inline__ vector bool long long __ATTRS_o_ai
-vec_revb(vector bool long long __a) {
-  vector unsigned char __indices =
-      { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 };
-  return vec_perm(__a, __a, __indices);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_revb(vector signed long long __a) {
-  vector unsigned char __indices =
-      { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 };
-  return vec_perm(__a, __a, __indices);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_revb(vector unsigned long long __a) {
-  vector unsigned char __indices =
-      { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 };
-  return vec_perm(__a, __a, __indices);
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_revb(vector double __a) {
-  vector unsigned char __indices =
-      { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 };
-  return vec_perm(__a, __a, __indices);
-}
-#endif /* End __VSX__ */
-
-#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) &&                    \
-    defined(__SIZEOF_INT128__)
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_revb(vector signed __int128 __a) {
-  vector unsigned char __indices =
-      { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
-  return (vector signed __int128)vec_perm((vector signed int)__a,
-                                          (vector signed int)__a,
-                                           __indices);
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_revb(vector unsigned __int128 __a) {
-  vector unsigned char __indices =
-      { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
-  return (vector unsigned __int128)vec_perm((vector signed int)__a,
-                                            (vector signed int)__a,
-                                             __indices);
-}
-#endif /* END __POWER8_VECTOR__ && __powerpc64__ */
-
-/* vec_xl */
-
-#define vec_xld2 vec_xl
-#define vec_xlw4 vec_xl
-typedef vector signed char unaligned_vec_schar __attribute__((aligned(1)));
-typedef vector unsigned char unaligned_vec_uchar __attribute__((aligned(1)));
-typedef vector signed short unaligned_vec_sshort __attribute__((aligned(1)));
-typedef vector unsigned short unaligned_vec_ushort __attribute__((aligned(1)));
-typedef vector signed int unaligned_vec_sint __attribute__((aligned(1)));
-typedef vector unsigned int unaligned_vec_uint __attribute__((aligned(1)));
-typedef vector float unaligned_vec_float __attribute__((aligned(1)));
-
-static inline __ATTRS_o_ai vector signed char vec_xl(ptrdiff_t __offset,
-                                                     const signed char *__ptr) {
-  return *(unaligned_vec_schar *)(__ptr + __offset);
-}
-
-static inline __ATTRS_o_ai vector unsigned char
-vec_xl(ptrdiff_t __offset, const unsigned char *__ptr) {
-  return *(unaligned_vec_uchar*)(__ptr + __offset);
-}
-
-static inline __ATTRS_o_ai vector signed short
-vec_xl(ptrdiff_t __offset, const signed short *__ptr) {
-  signed char *__addr = (signed char *)__ptr + __offset;
-  return *(unaligned_vec_sshort *)__addr;
-}
-
-static inline __ATTRS_o_ai vector unsigned short
-vec_xl(ptrdiff_t __offset, const unsigned short *__ptr) {
-  signed char *__addr = (signed char *)__ptr + __offset;
-  return *(unaligned_vec_ushort *)__addr;
-}
-
-static inline __ATTRS_o_ai vector signed int vec_xl(ptrdiff_t __offset,
-                                                    const signed int *__ptr) {
-  signed char *__addr = (signed char *)__ptr + __offset;
-  return *(unaligned_vec_sint *)__addr;
-}
-
-static inline __ATTRS_o_ai vector unsigned int
-vec_xl(ptrdiff_t __offset, const unsigned int *__ptr) {
-  signed char *__addr = (signed char *)__ptr + __offset;
-  return *(unaligned_vec_uint *)__addr;
-}
-
-static inline __ATTRS_o_ai vector float vec_xl(ptrdiff_t __offset,
-                                               const float *__ptr) {
-  signed char *__addr = (signed char *)__ptr + __offset;
-  return *(unaligned_vec_float *)__addr;
-}
-
-#ifdef __VSX__
-typedef vector signed long long unaligned_vec_sll __attribute__((aligned(1)));
-typedef vector unsigned long long unaligned_vec_ull __attribute__((aligned(1)));
-typedef vector double unaligned_vec_double __attribute__((aligned(1)));
-
-static inline __ATTRS_o_ai vector signed long long
-vec_xl(ptrdiff_t __offset, const signed long long *__ptr) {
-  signed char *__addr = (signed char *)__ptr + __offset;
-  return *(unaligned_vec_sll *)__addr;
-}
-
-static inline __ATTRS_o_ai vector unsigned long long
-vec_xl(ptrdiff_t __offset, const unsigned long long *__ptr) {
-  signed char *__addr = (signed char *)__ptr + __offset;
-  return *(unaligned_vec_ull *)__addr;
-}
-
-static inline __ATTRS_o_ai vector double vec_xl(ptrdiff_t __offset,
-                                                const double *__ptr) {
-  signed char *__addr = (signed char *)__ptr + __offset;
-  return *(unaligned_vec_double *)__addr;
-}
-#endif
-
-#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) &&                    \
-    defined(__SIZEOF_INT128__)
-typedef vector signed __int128 unaligned_vec_si128 __attribute__((aligned(1)));
-typedef vector unsigned __int128 unaligned_vec_ui128
-    __attribute__((aligned(1)));
-static inline __ATTRS_o_ai vector signed __int128
-vec_xl(ptrdiff_t __offset, const signed __int128 *__ptr) {
-  signed char *__addr = (signed char *)__ptr + __offset;
-  return *(unaligned_vec_si128 *)__addr;
-}
-
-static inline __ATTRS_o_ai vector unsigned __int128
-vec_xl(ptrdiff_t __offset, const unsigned __int128 *__ptr) {
-  signed char *__addr = (signed char *)__ptr + __offset;
-  return *(unaligned_vec_ui128 *)__addr;
-}
-#endif
-
-/* vec_xl_be */
-
-#ifdef __LITTLE_ENDIAN__
-static __inline__ vector signed char __ATTRS_o_ai
-vec_xl_be(ptrdiff_t __offset, const signed char *__ptr) {
-  vector signed char __vec = (vector signed char)__builtin_vsx_lxvd2x_be(__offset, __ptr);
-  return __builtin_shufflevector(__vec, __vec, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14,
-                                 13, 12, 11, 10, 9, 8);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_xl_be(ptrdiff_t __offset, const unsigned char *__ptr) {
-  vector unsigned char __vec = (vector unsigned char)__builtin_vsx_lxvd2x_be(__offset, __ptr);
-  return __builtin_shufflevector(__vec, __vec, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14,
-                                 13, 12, 11, 10, 9, 8);
-}
-
-static __inline__ vector signed short __ATTRS_o_ai
-vec_xl_be(ptrdiff_t __offset, const signed short *__ptr) {
-  vector signed short __vec = (vector signed short)__builtin_vsx_lxvd2x_be(__offset, __ptr);
-  return __builtin_shufflevector(__vec, __vec, 3, 2, 1, 0, 7, 6, 5, 4);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_xl_be(ptrdiff_t __offset, const unsigned short *__ptr) {
-  vector unsigned short __vec = (vector unsigned short)__builtin_vsx_lxvd2x_be(__offset, __ptr);
-  return __builtin_shufflevector(__vec, __vec, 3, 2, 1, 0, 7, 6, 5, 4);
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_xl_be(signed long long  __offset, const signed int *__ptr) {
-  return (vector signed int)__builtin_vsx_lxvw4x_be(__offset, __ptr);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_xl_be(signed long long  __offset, const unsigned int *__ptr) {
-  return (vector unsigned int)__builtin_vsx_lxvw4x_be(__offset, __ptr);
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_xl_be(signed long long  __offset, const float *__ptr) {
-  return (vector float)__builtin_vsx_lxvw4x_be(__offset, __ptr);
-}
-
-#ifdef __VSX__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_xl_be(signed long long  __offset, const signed long long *__ptr) {
-  return (vector signed long long)__builtin_vsx_lxvd2x_be(__offset, __ptr);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_xl_be(signed long long  __offset, const unsigned long long *__ptr) {
-  return (vector unsigned long long)__builtin_vsx_lxvd2x_be(__offset, __ptr);
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_xl_be(signed long long  __offset, const double *__ptr) {
-  return (vector double)__builtin_vsx_lxvd2x_be(__offset, __ptr);
-}
-#endif
-
-#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) &&                    \
-    defined(__SIZEOF_INT128__)
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_xl_be(signed long long  __offset, const signed __int128 *__ptr) {
-  return vec_xl(__offset, __ptr);
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_xl_be(signed long long  __offset, const unsigned __int128 *__ptr) {
-  return vec_xl(__offset, __ptr);
-}
-#endif
-#else
-  #define vec_xl_be vec_xl
-#endif
-
-#if defined(__POWER10_VECTOR__) && defined(__VSX__) &&                         \
-    defined(__SIZEOF_INT128__)
-
-/* vect_xl_sext */
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_xl_sext(ptrdiff_t __offset, const signed char *__pointer) {
-  return (vector unsigned __int128)*(__pointer + __offset);
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_xl_sext(ptrdiff_t __offset, const signed short *__pointer) {
-  return (vector unsigned __int128)*(__pointer + __offset);
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_xl_sext(ptrdiff_t __offset, const signed int *__pointer) {
-  return (vector unsigned __int128)*(__pointer + __offset);
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_xl_sext(ptrdiff_t __offset, const signed long long *__pointer) {
-  return (vector unsigned __int128)*(__pointer + __offset);
-}
-
-/* vec_xl_zext */
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_xl_zext(ptrdiff_t __offset, const unsigned char *__pointer) {
-  return (vector unsigned __int128)*(__pointer + __offset);
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_xl_zext(ptrdiff_t __offset, const unsigned short *__pointer) {
-  return (vector unsigned __int128)*(__pointer + __offset);
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_xl_zext(ptrdiff_t __offset, const unsigned int *__pointer) {
-  return (vector unsigned __int128)*(__pointer + __offset);
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_xl_zext(ptrdiff_t __offset, const unsigned long long *__pointer) {
-  return (vector unsigned __int128)*(__pointer + __offset);
-}
-
-#endif
-
-/* vec_xlds */
-#ifdef __VSX__
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_xlds(ptrdiff_t __offset, const signed long long *__ptr) {
-  signed long long *__addr = (signed long long*)((signed char *)__ptr + __offset);
-  return (vector signed long long) *__addr;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_xlds(ptrdiff_t __offset, const unsigned long long *__ptr) {
-  unsigned long long *__addr = (unsigned long long *)((signed char *)__ptr + __offset);
-  return (unaligned_vec_ull) *__addr;
-}
-
-static __inline__ vector double __ATTRS_o_ai vec_xlds(ptrdiff_t __offset,
-                                                      const double *__ptr) {
-  double *__addr = (double*)((signed char *)__ptr + __offset);
-  return (unaligned_vec_double) *__addr;
-}
-
-/* vec_load_splats */
-static __inline__ vector signed int __ATTRS_o_ai
-vec_load_splats(signed long long __offset, const signed int *__ptr) {
-  signed int *__addr = (signed int*)((signed char *)__ptr + __offset);
-  return (vector signed int)*__addr;
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_load_splats(unsigned long long __offset, const signed int *__ptr) {
-  signed int *__addr = (signed int*)((signed char *)__ptr + __offset);
-  return (vector signed int)*__addr;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_load_splats(signed long long __offset, const unsigned int *__ptr) {
-  unsigned int *__addr = (unsigned int*)((signed char *)__ptr + __offset);
-  return (vector unsigned int)*__addr;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_load_splats(unsigned long long __offset, const unsigned int *__ptr) {
-  unsigned int *__addr = (unsigned int*)((signed char *)__ptr + __offset);
-  return (vector unsigned int)*__addr;
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_load_splats(signed long long __offset, const float *__ptr) {
-  float *__addr = (float*)((signed char *)__ptr + __offset);
-  return (vector float)*__addr;
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_load_splats(unsigned long long __offset, const float *__ptr) {
-  float *__addr = (float*)((signed char *)__ptr + __offset);
-  return (vector float)*__addr;
-}
-#endif
-
-/* vec_xst */
-
-#define vec_xstd2 vec_xst
-#define vec_xstw4 vec_xst
-static inline __ATTRS_o_ai void
-vec_xst(vector signed char __vec, ptrdiff_t __offset, signed char *__ptr) {
-  *(unaligned_vec_schar *)(__ptr + __offset) = __vec;
-}
-
-static inline __ATTRS_o_ai void
-vec_xst(vector unsigned char __vec, ptrdiff_t __offset, unsigned char *__ptr) {
-  *(unaligned_vec_uchar *)(__ptr + __offset) = __vec;
-}
-
-static inline __ATTRS_o_ai void
-vec_xst(vector signed short __vec, ptrdiff_t __offset, signed short *__ptr) {
-  signed char *__addr = (signed char *)__ptr + __offset;
-  *(unaligned_vec_sshort *)__addr = __vec;
-}
-
-static inline __ATTRS_o_ai void vec_xst(vector unsigned short __vec,
-                                        ptrdiff_t __offset,
-                                        unsigned short *__ptr) {
-  signed char *__addr = (signed char *)__ptr + __offset;
-  *(unaligned_vec_ushort *)__addr = __vec;
-}
-
-static inline __ATTRS_o_ai void vec_xst(vector signed int __vec,
-                                        ptrdiff_t __offset, signed int *__ptr) {
-  signed char *__addr = (signed char *)__ptr + __offset;
-  *(unaligned_vec_sint *)__addr = __vec;
-}
-
-static inline __ATTRS_o_ai void
-vec_xst(vector unsigned int __vec, ptrdiff_t __offset, unsigned int *__ptr) {
-  signed char *__addr = (signed char *)__ptr + __offset;
-  *(unaligned_vec_uint *)__addr = __vec;
-}
-
-static inline __ATTRS_o_ai void vec_xst(vector float __vec, ptrdiff_t __offset,
-                                        float *__ptr) {
-  signed char *__addr = (signed char *)__ptr + __offset;
-  *(unaligned_vec_float *)__addr = __vec;
-}
-
-#ifdef __VSX__
-static inline __ATTRS_o_ai void vec_xst(vector signed long long __vec,
-                                        ptrdiff_t __offset,
-                                        signed long long *__ptr) {
-  signed char *__addr = (signed char *)__ptr + __offset;
-  *(unaligned_vec_sll *)__addr = __vec;
-}
-
-static inline __ATTRS_o_ai void vec_xst(vector unsigned long long __vec,
-                                        ptrdiff_t __offset,
-                                        unsigned long long *__ptr) {
-  signed char *__addr = (signed char *)__ptr + __offset;
-  *(unaligned_vec_ull *)__addr = __vec;
-}
-
-static inline __ATTRS_o_ai void vec_xst(vector double __vec, ptrdiff_t __offset,
-                                        double *__ptr) {
-  signed char *__addr = (signed char *)__ptr + __offset;
-  *(unaligned_vec_double *)__addr = __vec;
-}
-#endif
-
-#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) &&                    \
-    defined(__SIZEOF_INT128__)
-static inline __ATTRS_o_ai void vec_xst(vector signed __int128 __vec,
-                                        ptrdiff_t __offset,
-                                        signed __int128 *__ptr) {
-  signed char *__addr = (signed char *)__ptr + __offset;
-  *(unaligned_vec_si128 *)__addr = __vec;
-}
-
-static inline __ATTRS_o_ai void vec_xst(vector unsigned __int128 __vec,
-                                        ptrdiff_t __offset,
-                                        unsigned __int128 *__ptr) {
-  signed char *__addr = (signed char *)__ptr + __offset;
-  *(unaligned_vec_ui128 *)__addr = __vec;
-}
-#endif
-
-/* vec_xst_trunc */
-
-#if defined(__POWER10_VECTOR__) && defined(__VSX__) &&                         \
-    defined(__SIZEOF_INT128__)
-static inline __ATTRS_o_ai void vec_xst_trunc(vector signed __int128 __vec,
-                                              ptrdiff_t __offset,
-                                              signed char *__ptr) {
-  *(__ptr + __offset) = (signed char)__vec[0];
-}
-
-static inline __ATTRS_o_ai void vec_xst_trunc(vector unsigned __int128 __vec,
-                                              ptrdiff_t __offset,
-                                              unsigned char *__ptr) {
-  *(__ptr + __offset) = (unsigned char)__vec[0];
-}
-
-static inline __ATTRS_o_ai void vec_xst_trunc(vector signed __int128 __vec,
-                                              ptrdiff_t __offset,
-                                              signed short *__ptr) {
-  *(__ptr + __offset) = (signed short)__vec[0];
-}
-
-static inline __ATTRS_o_ai void vec_xst_trunc(vector unsigned __int128 __vec,
-                                              ptrdiff_t __offset,
-                                              unsigned short *__ptr) {
-  *(__ptr + __offset) = (unsigned short)__vec[0];
-}
-
-static inline __ATTRS_o_ai void vec_xst_trunc(vector signed __int128 __vec,
-                                              ptrdiff_t __offset,
-                                              signed int *__ptr) {
-  *(__ptr + __offset) = (signed int)__vec[0];
-}
-
-static inline __ATTRS_o_ai void vec_xst_trunc(vector unsigned __int128 __vec,
-                                              ptrdiff_t __offset,
-                                              unsigned int *__ptr) {
-  *(__ptr + __offset) = (unsigned int)__vec[0];
-}
-
-static inline __ATTRS_o_ai void vec_xst_trunc(vector signed __int128 __vec,
-                                              ptrdiff_t __offset,
-                                              signed long long *__ptr) {
-  *(__ptr + __offset) = (signed long long)__vec[0];
-}
-
-static inline __ATTRS_o_ai void vec_xst_trunc(vector unsigned __int128 __vec,
-                                              ptrdiff_t __offset,
-                                              unsigned long long *__ptr) {
-  *(__ptr + __offset) = (unsigned long long)__vec[0];
-}
-#endif
-
-/* vec_xst_be */
-
-#ifdef __LITTLE_ENDIAN__
-static __inline__ void __ATTRS_o_ai vec_xst_be(vector signed char __vec,
-                                               signed long long  __offset,
-                                               signed char *__ptr) {
-  vector signed char __tmp =
-     __builtin_shufflevector(__vec, __vec, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14,
-                             13, 12, 11, 10, 9, 8);
-  typedef __attribute__((vector_size(sizeof(__tmp)))) double __vector_double;
-  __builtin_vsx_stxvd2x_be((__vector_double)__tmp, __offset, __ptr);
-}
-
-static __inline__ void __ATTRS_o_ai vec_xst_be(vector unsigned char __vec,
-                                               signed long long  __offset,
-                                               unsigned char *__ptr) {
-  vector unsigned char __tmp =
-     __builtin_shufflevector(__vec, __vec, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14,
-                             13, 12, 11, 10, 9, 8);
-  typedef __attribute__((vector_size(sizeof(__tmp)))) double __vector_double;
-  __builtin_vsx_stxvd2x_be((__vector_double)__tmp, __offset, __ptr);
-}
-
-static __inline__ void __ATTRS_o_ai vec_xst_be(vector signed short __vec,
-                                               signed long long  __offset,
-                                               signed short *__ptr) {
-  vector signed short __tmp =
-     __builtin_shufflevector(__vec, __vec, 3, 2, 1, 0, 7, 6, 5, 4);
-  typedef __attribute__((vector_size(sizeof(__tmp)))) double __vector_double;
-  __builtin_vsx_stxvd2x_be((__vector_double)__tmp, __offset, __ptr);
-}
-
-static __inline__ void __ATTRS_o_ai vec_xst_be(vector unsigned short __vec,
-                                               signed long long  __offset,
-                                               unsigned short *__ptr) {
-  vector unsigned short __tmp =
-     __builtin_shufflevector(__vec, __vec, 3, 2, 1, 0, 7, 6, 5, 4);
-  typedef __attribute__((vector_size(sizeof(__tmp)))) double __vector_double;
-  __builtin_vsx_stxvd2x_be((__vector_double)__tmp, __offset, __ptr);
-}
-
-static __inline__ void __ATTRS_o_ai vec_xst_be(vector signed int __vec,
-                                               signed long long  __offset,
-                                               signed int *__ptr) {
-  __builtin_vsx_stxvw4x_be(__vec, __offset, __ptr);
-}
-
-static __inline__ void __ATTRS_o_ai vec_xst_be(vector unsigned int __vec,
-                                               signed long long  __offset,
-                                               unsigned int *__ptr) {
-  __builtin_vsx_stxvw4x_be((vector int)__vec, __offset, __ptr);
-}
-
-static __inline__ void __ATTRS_o_ai vec_xst_be(vector float __vec,
-                                               signed long long  __offset,
-                                               float *__ptr) {
-  __builtin_vsx_stxvw4x_be((vector int)__vec, __offset, __ptr);
-}
-
-#ifdef __VSX__
-static __inline__ void __ATTRS_o_ai vec_xst_be(vector signed long long __vec,
-                                               signed long long  __offset,
-                                               signed long long *__ptr) {
-  __builtin_vsx_stxvd2x_be((vector double)__vec, __offset, __ptr);
-}
-
-static __inline__ void __ATTRS_o_ai vec_xst_be(vector unsigned long long __vec,
-                                               signed long long  __offset,
-                                               unsigned long long *__ptr) {
-  __builtin_vsx_stxvd2x_be((vector double)__vec, __offset, __ptr);
-}
-
-static __inline__ void __ATTRS_o_ai vec_xst_be(vector double __vec,
-                                               signed long long  __offset,
-                                               double *__ptr) {
-  __builtin_vsx_stxvd2x_be((vector double)__vec, __offset, __ptr);
-}
-#endif
-
-#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) &&                    \
-    defined(__SIZEOF_INT128__)
-static __inline__ void __ATTRS_o_ai vec_xst_be(vector signed __int128 __vec,
-                                               signed long long  __offset,
-                                               signed __int128 *__ptr) {
-  vec_xst(__vec, __offset, __ptr);
-}
-
-static __inline__ void __ATTRS_o_ai vec_xst_be(vector unsigned __int128 __vec,
-                                               signed long long  __offset,
-                                               unsigned __int128 *__ptr) {
-  vec_xst(__vec, __offset, __ptr);
-}
-#endif
-#else
-  #define vec_xst_be vec_xst
-#endif
-
-#ifdef __POWER9_VECTOR__
-#define vec_test_data_class(__a, __b)                                          \
-  _Generic(                                                                    \
-      (__a), vector float                                                      \
-      : (vector bool int)__builtin_vsx_xvtstdcsp((vector float)(__a), (__b)),  \
-        vector double                                                          \
-      : (vector bool long long)__builtin_vsx_xvtstdcdp((vector double)(__a),   \
-                                                       (__b)))
-
-#endif /* #ifdef __POWER9_VECTOR__ */
-
-static vector float __ATTRS_o_ai vec_neg(vector float __a) {
-  return -__a;
-}
-
-#ifdef __VSX__
-static vector double __ATTRS_o_ai vec_neg(vector double __a) {
-  return -__a;
-}
-
-#endif
-
-#ifdef __VSX__
-static vector long long __ATTRS_o_ai vec_neg(vector long long __a) {
-  return -__a;
-}
-#endif
-
-static vector signed int __ATTRS_o_ai vec_neg(vector signed int __a) {
-  return -__a;
-}
-
-static vector signed short __ATTRS_o_ai vec_neg(vector signed short __a) {
-  return -__a;
-}
-
-static vector signed char __ATTRS_o_ai vec_neg(vector signed char __a) {
-  return -__a;
-}
-
-static vector float __ATTRS_o_ai vec_nabs(vector float __a) {
-  return - vec_abs(__a);
-}
-
-#ifdef __VSX__
-static vector double __ATTRS_o_ai vec_nabs(vector double __a) {
-  return - vec_abs(__a);
-}
-
-#endif
-
-#ifdef __POWER8_VECTOR__
-static vector long long __ATTRS_o_ai vec_nabs(vector long long __a) {
-  return __builtin_altivec_vminsd(__a, -__a);
-}
-#endif
-
-static vector signed int __ATTRS_o_ai vec_nabs(vector signed int __a) {
-  return __builtin_altivec_vminsw(__a, -__a);
-}
-
-static vector signed short __ATTRS_o_ai vec_nabs(vector signed short __a) {
-  return __builtin_altivec_vminsh(__a, -__a);
-}
-
-static vector signed char __ATTRS_o_ai vec_nabs(vector signed char __a) {
-  return __builtin_altivec_vminsb(__a, -__a);
-}
-
-static vector float __ATTRS_o_ai vec_recipdiv(vector float __a,
-                                              vector float __b) {
-  return __builtin_ppc_recipdivf(__a, __b);
-}
-
-#ifdef __VSX__
-static vector double __ATTRS_o_ai vec_recipdiv(vector double __a,
-                                               vector double __b) {
-  return __builtin_ppc_recipdivd(__a, __b);
-}
-#endif
-
-#ifdef __POWER10_VECTOR__
-
-/* vec_extractm */
-
-static __inline__ unsigned int __ATTRS_o_ai
-vec_extractm(vector unsigned char __a) {
-  return __builtin_altivec_vextractbm(__a);
-}
-
-static __inline__ unsigned int __ATTRS_o_ai
-vec_extractm(vector unsigned short __a) {
-  return __builtin_altivec_vextracthm(__a);
-}
-
-static __inline__ unsigned int __ATTRS_o_ai
-vec_extractm(vector unsigned int __a) {
-  return __builtin_altivec_vextractwm(__a);
-}
-
-static __inline__ unsigned int __ATTRS_o_ai
-vec_extractm(vector unsigned long long __a) {
-  return __builtin_altivec_vextractdm(__a);
-}
-
-#ifdef __SIZEOF_INT128__
-static __inline__ unsigned int __ATTRS_o_ai
-vec_extractm(vector unsigned __int128 __a) {
-  return __builtin_altivec_vextractqm(__a);
-}
-#endif
-
-/* vec_expandm */
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_expandm(vector unsigned char __a) {
-  return __builtin_altivec_vexpandbm(__a);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_expandm(vector unsigned short __a) {
-  return __builtin_altivec_vexpandhm(__a);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_expandm(vector unsigned int __a) {
-  return __builtin_altivec_vexpandwm(__a);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_expandm(vector unsigned long long __a) {
-  return __builtin_altivec_vexpanddm(__a);
-}
-
-#ifdef __SIZEOF_INT128__
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_expandm(vector unsigned __int128 __a) {
-  return __builtin_altivec_vexpandqm(__a);
-}
-#endif
-
-/* vec_cntm */
-
-#define vec_cntm(__a, __mp)                                                    \
-  _Generic((__a), vector unsigned char                                         \
-           : __builtin_altivec_vcntmbb((__a), (unsigned int)(__mp)),           \
-             vector unsigned short                                             \
-           : __builtin_altivec_vcntmbh((__a), (unsigned int)(__mp)),           \
-             vector unsigned int                                               \
-           : __builtin_altivec_vcntmbw((__a), (unsigned int)(__mp)),           \
-             vector unsigned long long                                         \
-           : __builtin_altivec_vcntmbd((__a), (unsigned int)(__mp)))
-
-/* vec_gen[b|h|w|d|q]m */
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_genbm(unsigned long long __bm) {
-  return __builtin_altivec_mtvsrbm(__bm);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_genhm(unsigned long long __bm) {
-  return __builtin_altivec_mtvsrhm(__bm);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_genwm(unsigned long long __bm) {
-  return __builtin_altivec_mtvsrwm(__bm);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_gendm(unsigned long long __bm) {
-  return __builtin_altivec_mtvsrdm(__bm);
-}
-
-#ifdef __SIZEOF_INT128__
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_genqm(unsigned long long __bm) {
-  return __builtin_altivec_mtvsrqm(__bm);
-}
-#endif
-
-/* vec_pdep */
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_pdep(vector unsigned long long __a, vector unsigned long long __b) {
-  return __builtin_altivec_vpdepd(__a, __b);
-}
-
-/* vec_pext */
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_pext(vector unsigned long long __a, vector unsigned long long __b) {
-  return __builtin_altivec_vpextd(__a, __b);
-}
-
-/* vec_cfuge */
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_cfuge(vector unsigned long long __a, vector unsigned long long __b) {
-  return __builtin_altivec_vcfuged(__a, __b);
-}
-
-/* vec_gnb */
-
-#define vec_gnb(__a, __b) __builtin_altivec_vgnb(__a, __b)
-
-/* vec_ternarylogic */
-#ifdef __VSX__
-#ifdef __SIZEOF_INT128__
-#define vec_ternarylogic(__a, __b, __c, __imm)                                 \
-  _Generic((__a), vector unsigned char                                         \
-           : __builtin_vsx_xxeval((vector unsigned long long)(__a),            \
-                                  (vector unsigned long long)(__b),            \
-                                  (vector unsigned long long)(__c), (__imm)),  \
-             vector unsigned short                                             \
-           : __builtin_vsx_xxeval((vector unsigned long long)(__a),            \
-                                  (vector unsigned long long)(__b),            \
-                                  (vector unsigned long long)(__c), (__imm)),  \
-             vector unsigned int                                               \
-           : __builtin_vsx_xxeval((vector unsigned long long)(__a),            \
-                                  (vector unsigned long long)(__b),            \
-                                  (vector unsigned long long)(__c), (__imm)),  \
-             vector unsigned long long                                         \
-           : __builtin_vsx_xxeval((vector unsigned long long)(__a),            \
-                                  (vector unsigned long long)(__b),            \
-                                  (vector unsigned long long)(__c), (__imm)),  \
-             vector unsigned __int128                                          \
-           : __builtin_vsx_xxeval((vector unsigned long long)(__a),            \
-                                  (vector unsigned long long)(__b),            \
-                                  (vector unsigned long long)(__c), (__imm)))
-#else
-#define vec_ternarylogic(__a, __b, __c, __imm)                                 \
-  _Generic((__a), vector unsigned char                                         \
-           : __builtin_vsx_xxeval((vector unsigned long long)(__a),            \
-                                  (vector unsigned long long)(__b),            \
-                                  (vector unsigned long long)(__c), (__imm)),  \
-             vector unsigned short                                             \
-           : __builtin_vsx_xxeval((vector unsigned long long)(__a),            \
-                                  (vector unsigned long long)(__b),            \
-                                  (vector unsigned long long)(__c), (__imm)),  \
-             vector unsigned int                                               \
-           : __builtin_vsx_xxeval((vector unsigned long long)(__a),            \
-                                  (vector unsigned long long)(__b),            \
-                                  (vector unsigned long long)(__c), (__imm)),  \
-             vector unsigned long long                                         \
-           : __builtin_vsx_xxeval((vector unsigned long long)(__a),            \
-                                  (vector unsigned long long)(__b),            \
-                                  (vector unsigned long long)(__c), (__imm)))
-#endif /* __SIZEOF_INT128__ */
-#endif /* __VSX__ */
-
-/* vec_genpcvm */
-
-#ifdef __VSX__
-#define vec_genpcvm(__a, __imm)                                                \
-  _Generic((__a), vector unsigned char                                         \
-           : __builtin_vsx_xxgenpcvbm((__a), (int)(__imm)),                    \
-             vector unsigned short                                             \
-           : __builtin_vsx_xxgenpcvhm((__a), (int)(__imm)),                    \
-             vector unsigned int                                               \
-           : __builtin_vsx_xxgenpcvwm((__a), (int)(__imm)),                    \
-             vector unsigned long long                                         \
-           : __builtin_vsx_xxgenpcvdm((__a), (int)(__imm)))
-#endif /* __VSX__ */
-
-/* vec_clr_first */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_clr_first(vector signed char __a, unsigned int __n) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vclrrb(__a, __n);
-#else
-  return __builtin_altivec_vclrlb( __a, __n);
-#endif
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_clr_first(vector unsigned char __a, unsigned int __n) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vclrrb((vector signed char)__a, __n);
-#else
-  return __builtin_altivec_vclrlb((vector signed char)__a, __n);
-#endif
-}
-
-/* vec_clr_last */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_clr_last(vector signed char __a, unsigned int __n) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vclrlb(__a, __n);
-#else
-  return __builtin_altivec_vclrrb( __a, __n);
-#endif
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_clr_last(vector unsigned char __a, unsigned int __n) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vclrlb((vector signed char)__a, __n);
-#else
-  return __builtin_altivec_vclrrb((vector signed char)__a, __n);
-#endif
-}
-
-/* vec_cntlzm */
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_cntlzm(vector unsigned long long __a, vector unsigned long long __b) {
-  return __builtin_altivec_vclzdm(__a, __b);
-}
-
-/* vec_cnttzm */
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_cnttzm(vector unsigned long long __a, vector unsigned long long __b) {
-  return __builtin_altivec_vctzdm(__a, __b);
-}
-
-/* vec_mod */
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_mod(vector signed int __a, vector signed int __b) {
-  return __a % __b;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_mod(vector unsigned int __a, vector unsigned int __b) {
-  return __a % __b;
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_mod(vector signed long long __a, vector signed long long __b) {
-  return __a % __b;
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_mod(vector unsigned long long __a, vector unsigned long long __b) {
-  return __a % __b;
-}
-
-#ifdef __SIZEOF_INT128__
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_mod(vector signed __int128 __a, vector signed __int128 __b) {
-  return __a % __b;
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_mod(vector unsigned __int128 __a, vector unsigned __int128 __b) {
-  return  __a % __b;
-}
-#endif
-
-/* vec_sldbi */
-
-#define vec_sldb(__a, __b, __c) __builtin_altivec_vsldbi(__a, __b, (__c & 0x7))
-
-/* vec_srdbi */
-
-#define vec_srdb(__a, __b, __c) __builtin_altivec_vsrdbi(__a, __b, (__c & 0x7))
-
-/* vec_insertl */
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_insertl(unsigned char __a, vector unsigned char __b, unsigned int __c) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vinsbrx(__b, __c, __a);
-#else
-  return __builtin_altivec_vinsblx(__b, __c, __a);
-#endif
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_insertl(unsigned short __a, vector unsigned short __b, unsigned int __c) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vinshrx(__b, __c, __a);
-#else
-  return __builtin_altivec_vinshlx(__b, __c, __a);
-#endif
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_insertl(unsigned int __a, vector unsigned int __b, unsigned int __c) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vinswrx(__b, __c, __a);
-#else
-  return __builtin_altivec_vinswlx(__b, __c, __a);
-#endif
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_insertl(unsigned long long __a, vector unsigned long long __b,
-            unsigned int __c) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vinsdrx(__b, __c, __a);
-#else
-  return __builtin_altivec_vinsdlx(__b, __c, __a);
-#endif
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_insertl(vector unsigned char __a, vector unsigned char __b,
-            unsigned int __c) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vinsbvrx(__b, __c, __a);
-#else
-  return __builtin_altivec_vinsbvlx(__b, __c, __a);
-#endif
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_insertl(vector unsigned short __a, vector unsigned short __b,
-            unsigned int __c) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vinshvrx(__b, __c, __a);
-#else
-  return __builtin_altivec_vinshvlx(__b, __c, __a);
-#endif
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_insertl(vector unsigned int __a, vector unsigned int __b,
-            unsigned int __c) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vinswvrx(__b, __c, __a);
-#else
-  return __builtin_altivec_vinswvlx(__b, __c, __a);
-#endif
-}
-
-/* vec_inserth */
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_inserth(unsigned char __a, vector unsigned char __b, unsigned int __c) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vinsblx(__b, __c, __a);
-#else
-  return __builtin_altivec_vinsbrx(__b, __c, __a);
-#endif
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_inserth(unsigned short __a, vector unsigned short __b, unsigned int __c) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vinshlx(__b, __c, __a);
-#else
-  return __builtin_altivec_vinshrx(__b, __c, __a);
-#endif
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_inserth(unsigned int __a, vector unsigned int __b, unsigned int __c) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vinswlx(__b, __c, __a);
-#else
-  return __builtin_altivec_vinswrx(__b, __c, __a);
-#endif
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_inserth(unsigned long long __a, vector unsigned long long __b,
-            unsigned int __c) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vinsdlx(__b, __c, __a);
-#else
-  return __builtin_altivec_vinsdrx(__b, __c, __a);
-#endif
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_inserth(vector unsigned char __a, vector unsigned char __b,
-            unsigned int __c) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vinsbvlx(__b, __c, __a);
-#else
-  return __builtin_altivec_vinsbvrx(__b, __c, __a);
-#endif
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_inserth(vector unsigned short __a, vector unsigned short __b,
-            unsigned int __c) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vinshvlx(__b, __c, __a);
-#else
-  return __builtin_altivec_vinshvrx(__b, __c, __a);
-#endif
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_inserth(vector unsigned int __a, vector unsigned int __b,
-            unsigned int __c) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vinswvlx(__b, __c, __a);
-#else
-  return __builtin_altivec_vinswvrx(__b, __c, __a);
-#endif
-}
-
-/* vec_extractl */
-
-static __inline__ vector unsigned long long __ATTRS_o_ai vec_extractl(
-    vector unsigned char __a, vector unsigned char __b, unsigned int __c) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vextdubvrx(__a, __b, __c);
-#else
-  vector unsigned long long __ret = __builtin_altivec_vextdubvlx(__a, __b, __c);
-  return vec_sld(__ret, __ret, 8);
-#endif
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai vec_extractl(
-    vector unsigned short __a, vector unsigned short __b, unsigned int __c) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vextduhvrx(__a, __b, __c);
-#else
-  vector unsigned long long __ret = __builtin_altivec_vextduhvlx(__a, __b, __c);
-  return vec_sld(__ret, __ret, 8);
-#endif
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai vec_extractl(
-    vector unsigned int __a, vector unsigned int __b, unsigned int __c) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vextduwvrx(__a, __b, __c);
-#else
-  vector unsigned long long __ret = __builtin_altivec_vextduwvlx(__a, __b, __c);
-  return vec_sld(__ret, __ret, 8);
-#endif
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_extractl(vector unsigned long long __a, vector unsigned long long __b,
-             unsigned int __c) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vextddvrx(__a, __b, __c);
-#else
-  vector unsigned long long __ret = __builtin_altivec_vextddvlx(__a, __b, __c);
-  return vec_sld(__ret, __ret, 8);
-#endif
-}
-
-/* vec_extracth */
-
-static __inline__ vector unsigned long long __ATTRS_o_ai vec_extracth(
-    vector unsigned char __a, vector unsigned char __b, unsigned int __c) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vextdubvlx(__a, __b, __c);
-#else
-  vector unsigned long long __ret = __builtin_altivec_vextdubvrx(__a, __b, __c);
-  return vec_sld(__ret, __ret, 8);
-#endif
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai vec_extracth(
-    vector unsigned short __a, vector unsigned short __b, unsigned int __c) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vextduhvlx(__a, __b, __c);
-#else
-  vector unsigned long long __ret = __builtin_altivec_vextduhvrx(__a, __b, __c);
-  return vec_sld(__ret, __ret, 8);
-#endif
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai vec_extracth(
-    vector unsigned int __a, vector unsigned int __b, unsigned int __c) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vextduwvlx(__a, __b, __c);
-#else
-  vector unsigned long long __ret = __builtin_altivec_vextduwvrx(__a, __b, __c);
-  return vec_sld(__ret, __ret, 8);
-#endif
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_extracth(vector unsigned long long __a, vector unsigned long long __b,
-             unsigned int __c) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vextddvlx(__a, __b, __c);
-#else
-  vector unsigned long long __ret = __builtin_altivec_vextddvrx(__a, __b, __c);
-  return vec_sld(__ret, __ret, 8);
-#endif
-}
-
-#ifdef __VSX__
-
-/* vec_permx */
-
-#define vec_permx(__a, __b, __c, __d)                                          \
-  __builtin_vsx_xxpermx((__a), (__b), (__c), (__d))
-
-/* vec_blendv */
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_blendv(vector signed char __a, vector signed char __b,
-           vector unsigned char __c) {
-  return __builtin_vsx_xxblendvb(__a, __b, __c);
-}
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_blendv(vector unsigned char __a, vector unsigned char __b,
-           vector unsigned char __c) {
-  return __builtin_vsx_xxblendvb(__a, __b, __c);
-}
-
-static __inline__ vector signed short __ATTRS_o_ai
-vec_blendv(vector signed short __a, vector signed short __b,
-           vector unsigned short __c) {
-  return __builtin_vsx_xxblendvh(__a, __b, __c);
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_blendv(vector unsigned short __a, vector unsigned short __b,
-           vector unsigned short __c) {
-  return __builtin_vsx_xxblendvh(__a, __b, __c);
-}
-
-static __inline__ vector signed int __ATTRS_o_ai
-vec_blendv(vector signed int __a, vector signed int __b,
-           vector unsigned int __c) {
-  return __builtin_vsx_xxblendvw(__a, __b, __c);
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_blendv(vector unsigned int __a, vector unsigned int __b,
-           vector unsigned int __c) {
-  return __builtin_vsx_xxblendvw(__a, __b, __c);
-}
-
-static __inline__ vector signed long long __ATTRS_o_ai
-vec_blendv(vector signed long long __a, vector signed long long __b,
-           vector unsigned long long __c) {
-  return __builtin_vsx_xxblendvd(__a, __b, __c);
-}
-
-static __inline__ vector unsigned long long __ATTRS_o_ai
-vec_blendv(vector unsigned long long __a, vector unsigned long long __b,
-           vector unsigned long long __c) {
-  return __builtin_vsx_xxblendvd(__a, __b, __c);
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_blendv(vector float __a, vector float __b, vector unsigned int __c) {
-  return __builtin_vsx_xxblendvw(__a, __b, __c);
-}
-
-static __inline__ vector double __ATTRS_o_ai
-vec_blendv(vector double __a, vector double __b,
-           vector unsigned long long __c) {
-  return __builtin_vsx_xxblendvd(__a, __b, __c);
-}
-
-/* vec_replace_elt */
-
-#define vec_replace_elt __builtin_altivec_vec_replace_elt
-
-/* vec_replace_unaligned */
-
-#define vec_replace_unaligned __builtin_altivec_vec_replace_unaligned
-
-/* vec_splati */
-
-#define vec_splati(__a)                                                        \
-  _Generic((__a), signed int                                                   \
-           : ((vector signed int)__a), unsigned int                            \
-           : ((vector unsigned int)__a), float                                 \
-           : ((vector float)__a))
-
-/* vec_spatid */
-
-static __inline__ vector double __ATTRS_o_ai vec_splatid(const float __a) {
-  return ((vector double)((double)__a));
-}
-
-/* vec_splati_ins */
-
-static __inline__ vector signed int __ATTRS_o_ai vec_splati_ins(
-    vector signed int __a, const unsigned int __b, const signed int __c) {
-#ifdef __LITTLE_ENDIAN__
-  __a[1 - __b] = __c;
-  __a[3 - __b] = __c;
-#else
-  __a[__b] = __c;
-  __a[2 + __b] = __c;
-#endif
-  return __a;
-}
-
-static __inline__ vector unsigned int __ATTRS_o_ai vec_splati_ins(
-    vector unsigned int __a, const unsigned int __b, const unsigned int __c) {
-#ifdef __LITTLE_ENDIAN__
-  __a[1 - __b] = __c;
-  __a[3 - __b] = __c;
-#else
-  __a[__b] = __c;
-  __a[2 + __b] = __c;
-#endif
-  return __a;
-}
-
-static __inline__ vector float __ATTRS_o_ai
-vec_splati_ins(vector float __a, const unsigned int __b, const float __c) {
-#ifdef __LITTLE_ENDIAN__
-  __a[1 - __b] = __c;
-  __a[3 - __b] = __c;
-#else
-  __a[__b] = __c;
-  __a[2 + __b] = __c;
-#endif
-  return __a;
-}
-
-/* vec_test_lsbb_all_ones */
-
-static __inline__ int __ATTRS_o_ai
-vec_test_lsbb_all_ones(vector unsigned char __a) {
-  return __builtin_vsx_xvtlsbb(__a, 1);
-}
-
-/* vec_test_lsbb_all_zeros */
-
-static __inline__ int __ATTRS_o_ai
-vec_test_lsbb_all_zeros(vector unsigned char __a) {
-  return __builtin_vsx_xvtlsbb(__a, 0);
-}
-#endif /* __VSX__ */
-
-/* vec_stril */
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_stril(vector unsigned char __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vstribr((vector signed char)__a);
-#else
-  return __builtin_altivec_vstribl((vector signed char)__a);
-#endif
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_stril(vector signed char __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vstribr(__a);
-#else
-  return __builtin_altivec_vstribl(__a);
-#endif
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_stril(vector unsigned short __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vstrihr((vector signed short)__a);
-#else
-  return __builtin_altivec_vstrihl((vector signed short)__a);
-#endif
-}
-
-static __inline__ vector signed short __ATTRS_o_ai
-vec_stril(vector signed short __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vstrihr(__a);
-#else
-  return __builtin_altivec_vstrihl(__a);
-#endif
-}
-
-/* vec_stril_p */
-
-static __inline__ int __ATTRS_o_ai vec_stril_p(vector unsigned char __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vstribr_p(__CR6_EQ, (vector signed char)__a);
-#else
-  return __builtin_altivec_vstribl_p(__CR6_EQ, (vector signed char)__a);
-#endif
-}
-
-static __inline__ int __ATTRS_o_ai vec_stril_p(vector signed char __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vstribr_p(__CR6_EQ, __a);
-#else
-  return __builtin_altivec_vstribl_p(__CR6_EQ, __a);
-#endif
-}
-
-static __inline__ int __ATTRS_o_ai vec_stril_p(vector unsigned short __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vstrihr_p(__CR6_EQ, (vector signed short)__a);
-#else
-  return __builtin_altivec_vstrihl_p(__CR6_EQ, (vector signed short)__a);
-#endif
-}
-
-static __inline__ int __ATTRS_o_ai vec_stril_p(vector signed short __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vstrihr_p(__CR6_EQ, __a);
-#else
-  return __builtin_altivec_vstrihl_p(__CR6_EQ, __a);
-#endif
-}
-
-/* vec_strir */
-
-static __inline__ vector unsigned char __ATTRS_o_ai
-vec_strir(vector unsigned char __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vstribl((vector signed char)__a);
-#else
-  return __builtin_altivec_vstribr((vector signed char)__a);
-#endif
-}
-
-static __inline__ vector signed char __ATTRS_o_ai
-vec_strir(vector signed char __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vstribl(__a);
-#else
-  return __builtin_altivec_vstribr(__a);
-#endif
-}
-
-static __inline__ vector unsigned short __ATTRS_o_ai
-vec_strir(vector unsigned short __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vstrihl((vector signed short)__a);
-#else
-  return __builtin_altivec_vstrihr((vector signed short)__a);
-#endif
-}
-
-static __inline__ vector signed short __ATTRS_o_ai
-vec_strir(vector signed short __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vstrihl(__a);
-#else
-  return __builtin_altivec_vstrihr(__a);
-#endif
-}
-
-/* vec_strir_p */
-
-static __inline__ int __ATTRS_o_ai vec_strir_p(vector unsigned char __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vstribl_p(__CR6_EQ, (vector signed char)__a);
-#else
-  return __builtin_altivec_vstribr_p(__CR6_EQ, (vector signed char)__a);
-#endif
-}
-
-static __inline__ int __ATTRS_o_ai vec_strir_p(vector signed char __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vstribl_p(__CR6_EQ, __a);
-#else
-  return __builtin_altivec_vstribr_p(__CR6_EQ, __a);
-#endif
-}
-
-static __inline__ int __ATTRS_o_ai vec_strir_p(vector unsigned short __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vstrihl_p(__CR6_EQ, (vector signed short)__a);
-#else
-  return __builtin_altivec_vstrihr_p(__CR6_EQ, (vector signed short)__a);
-#endif
-}
-
-static __inline__ int __ATTRS_o_ai vec_strir_p(vector signed short __a) {
-#ifdef __LITTLE_ENDIAN__
-  return __builtin_altivec_vstrihl_p(__CR6_EQ, __a);
-#else
-  return __builtin_altivec_vstrihr_p(__CR6_EQ, __a);
-#endif
-}
-
-/* vs[l | r | ra] */
-
-#ifdef __SIZEOF_INT128__
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_sl(vector unsigned __int128 __a, vector unsigned __int128 __b) {
-  return __a << (__b % (vector unsigned __int128)(sizeof(unsigned __int128) *
-                                                  __CHAR_BIT__));
-}
-
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_sl(vector signed __int128 __a, vector unsigned __int128 __b) {
-  return __a << (__b % (vector unsigned __int128)(sizeof(unsigned __int128) *
-                                                  __CHAR_BIT__));
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_sr(vector unsigned __int128 __a, vector unsigned __int128 __b) {
-  return __a >> (__b % (vector unsigned __int128)(sizeof(unsigned __int128) *
-                                                  __CHAR_BIT__));
-}
-
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_sr(vector signed __int128 __a, vector unsigned __int128 __b) {
-  return (
-      vector signed __int128)(((vector unsigned __int128)__a) >>
-                              (__b %
-                               (vector unsigned __int128)(sizeof(
-                                                              unsigned __int128) *
-                                                          __CHAR_BIT__)));
-}
-
-static __inline__ vector unsigned __int128 __ATTRS_o_ai
-vec_sra(vector unsigned __int128 __a, vector unsigned __int128 __b) {
-  return (
-      vector unsigned __int128)(((vector signed __int128)__a) >>
-                                (__b %
-                                 (vector unsigned __int128)(sizeof(
-                                                                unsigned __int128) *
-                                                            __CHAR_BIT__)));
-}
-
-static __inline__ vector signed __int128 __ATTRS_o_ai
-vec_sra(vector signed __int128 __a, vector unsigned __int128 __b) {
-  return __a >> (__b % (vector unsigned __int128)(sizeof(unsigned __int128) *
-                                                  __CHAR_BIT__));
-}
-
-#endif /* __SIZEOF_INT128__ */
-#endif /* __POWER10_VECTOR__ */
-
-#undef __ATTRS_o_ai
-
-#endif /* __ALTIVEC_H */
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512bf16intrin.h b/linux-x86/lib64/clang/14.0.1/include/avx512bf16intrin.h
deleted file mode 100644
index d1d87e7..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/avx512bf16intrin.h
+++ /dev/null
@@ -1,279 +0,0 @@
-/*===------------ avx512bf16intrin.h - AVX512_BF16 intrinsics --------------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-#ifndef __IMMINTRIN_H
-#error "Never use <avx512bf16intrin.h> directly; include <immintrin.h> instead."
-#endif
-
-#ifndef __AVX512BF16INTRIN_H
-#define __AVX512BF16INTRIN_H
-
-typedef short __m512bh __attribute__((__vector_size__(64), __aligned__(64)));
-typedef short __m256bh __attribute__((__vector_size__(32), __aligned__(32)));
-typedef unsigned short __bfloat16;
-
-#define __DEFAULT_FN_ATTRS512 \
-  __attribute__((__always_inline__, __nodebug__, __target__("avx512bf16"), \
-                 __min_vector_width__(512)))
-#define __DEFAULT_FN_ATTRS                                                     \
-  __attribute__((__always_inline__, __nodebug__, __target__("avx512bf16")))
-
-/// Convert One BF16 Data to One Single Float Data.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic does not correspond to a specific instruction.
-///
-/// \param __A
-///    A bfloat data.
-/// \returns A float data whose sign field and exponent field keep unchanged,
-///    and fraction field is extended to 23 bits.
-static __inline__ float __DEFAULT_FN_ATTRS _mm_cvtsbh_ss(__bfloat16 __A) {
-  return __builtin_ia32_cvtsbf162ss_32(__A);
-}
-
-/// Convert Two Packed Single Data to One Packed BF16 Data.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTNE2PS2BF16 </c> instructions.
-///
-/// \param __A
-///    A 512-bit vector of [16 x float].
-/// \param __B
-///    A 512-bit vector of [16 x float].
-/// \returns A 512-bit vector of [32 x bfloat] whose lower 256 bits come from
-///    conversion of __B, and higher 256 bits come from conversion of __A.
-static __inline__ __m512bh __DEFAULT_FN_ATTRS512
-_mm512_cvtne2ps_pbh(__m512 __A, __m512 __B) {
-  return (__m512bh)__builtin_ia32_cvtne2ps2bf16_512((__v16sf) __A,
-                                                    (__v16sf) __B);
-}
-
-/// Convert Two Packed Single Data to One Packed BF16 Data.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTNE2PS2BF16 </c> instructions.
-///
-/// \param __A
-///    A 512-bit vector of [16 x float].
-/// \param __B
-///    A 512-bit vector of [16 x float].
-/// \param __W
-///    A 512-bit vector of [32 x bfloat].
-/// \param __U
-///    A 32-bit mask value specifying what is chosen for each element.
-///    A 1 means conversion of __A or __B. A 0 means element from __W.
-/// \returns A 512-bit vector of [32 x bfloat] whose lower 256 bits come from
-///    conversion of __B, and higher 256 bits come from conversion of __A.
-static __inline__ __m512bh __DEFAULT_FN_ATTRS512
-_mm512_mask_cvtne2ps_pbh(__m512bh __W, __mmask32 __U, __m512 __A, __m512 __B) {
-  return (__m512bh)__builtin_ia32_selectw_512((__mmask32)__U,
-                                        (__v32hi)_mm512_cvtne2ps_pbh(__A, __B),
-                                        (__v32hi)__W);
-}
-
-/// Convert Two Packed Single Data to One Packed BF16 Data.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTNE2PS2BF16 </c> instructions.
-///
-/// \param __A
-///    A 512-bit vector of [16 x float].
-/// \param __B
-///    A 512-bit vector of [16 x float].
-/// \param __U
-///    A 32-bit mask value specifying what is chosen for each element.
-///    A 1 means conversion of __A or __B. A 0 means element is zero.
-/// \returns A 512-bit vector of [32 x bfloat] whose lower 256 bits come from
-///    conversion of __B, and higher 256 bits come from conversion of __A.
-static __inline__ __m512bh __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvtne2ps_pbh(__mmask32 __U, __m512 __A, __m512 __B) {
-  return (__m512bh)__builtin_ia32_selectw_512((__mmask32)__U,
-                                        (__v32hi)_mm512_cvtne2ps_pbh(__A, __B),
-                                        (__v32hi)_mm512_setzero_si512());
-}
-
-/// Convert Packed Single Data to Packed BF16 Data.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTNEPS2BF16 </c> instructions.
-///
-/// \param __A
-///    A 512-bit vector of [16 x float].
-/// \returns A 256-bit vector of [16 x bfloat] come from conversion of __A.
-static __inline__ __m256bh __DEFAULT_FN_ATTRS512
-_mm512_cvtneps_pbh(__m512 __A) {
-  return (__m256bh)__builtin_ia32_cvtneps2bf16_512_mask((__v16sf)__A,
-                                              (__v16hi)_mm256_undefined_si256(),
-                                              (__mmask16)-1);
-}
-
-/// Convert Packed Single Data to Packed BF16 Data.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTNEPS2BF16 </c> instructions.
-///
-/// \param __A
-///    A 512-bit vector of [16 x float].
-/// \param __W
-///    A 256-bit vector of [16 x bfloat].
-/// \param __U
-///    A 16-bit mask value specifying what is chosen for each element.
-///    A 1 means conversion of __A. A 0 means element from __W.
-/// \returns A 256-bit vector of [16 x bfloat] come from conversion of __A.
-static __inline__ __m256bh __DEFAULT_FN_ATTRS512
-_mm512_mask_cvtneps_pbh(__m256bh __W, __mmask16 __U, __m512 __A) {
-  return (__m256bh)__builtin_ia32_cvtneps2bf16_512_mask((__v16sf)__A,
-                                                        (__v16hi)__W,
-                                                        (__mmask16)__U);
-}
-
-/// Convert Packed Single Data to Packed BF16 Data.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTNEPS2BF16 </c> instructions.
-///
-/// \param __A
-///    A 512-bit vector of [16 x float].
-/// \param __U
-///    A 16-bit mask value specifying what is chosen for each element.
-///    A 1 means conversion of __A. A 0 means element is zero.
-/// \returns A 256-bit vector of [16 x bfloat] come from conversion of __A.
-static __inline__ __m256bh __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvtneps_pbh(__mmask16 __U, __m512 __A) {
-  return (__m256bh)__builtin_ia32_cvtneps2bf16_512_mask((__v16sf)__A,
-                                                (__v16hi)_mm256_setzero_si256(),
-                                                (__mmask16)__U);
-}
-
-/// Dot Product of BF16 Pairs Accumulated into Packed Single Precision.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VDPBF16PS </c> instructions.
-///
-/// \param __A
-///    A 512-bit vector of [32 x bfloat].
-/// \param __B
-///    A 512-bit vector of [32 x bfloat].
-/// \param __D
-///    A 512-bit vector of [16 x float].
-/// \returns A 512-bit vector of [16 x float] comes from  Dot Product of
-///  __A, __B and __D
-static __inline__ __m512 __DEFAULT_FN_ATTRS512
-_mm512_dpbf16_ps(__m512 __D, __m512bh __A, __m512bh __B) {
-  return (__m512)__builtin_ia32_dpbf16ps_512((__v16sf) __D,
-                                             (__v16si) __A,
-                                             (__v16si) __B);
-}
-
-/// Dot Product of BF16 Pairs Accumulated into Packed Single Precision.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VDPBF16PS </c> instructions.
-///
-/// \param __A
-///    A 512-bit vector of [32 x bfloat].
-/// \param __B
-///    A 512-bit vector of [32 x bfloat].
-/// \param __D
-///    A 512-bit vector of [16 x float].
-/// \param __U
-///    A 16-bit mask value specifying what is chosen for each element.
-///    A 1 means __A and __B's dot product accumulated with __D. A 0 means __D.
-/// \returns A 512-bit vector of [16 x float] comes from  Dot Product of
-///  __A, __B and __D
-static __inline__ __m512 __DEFAULT_FN_ATTRS512
-_mm512_mask_dpbf16_ps(__m512 __D, __mmask16 __U, __m512bh __A, __m512bh __B) {
-  return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
-                                       (__v16sf)_mm512_dpbf16_ps(__D, __A, __B),
-                                       (__v16sf)__D);
-}
-
-/// Dot Product of BF16 Pairs Accumulated into Packed Single Precision.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VDPBF16PS </c> instructions.
-///
-/// \param __A
-///    A 512-bit vector of [32 x bfloat].
-/// \param __B
-///    A 512-bit vector of [32 x bfloat].
-/// \param __D
-///    A 512-bit vector of [16 x float].
-/// \param __U
-///    A 16-bit mask value specifying what is chosen for each element.
-///    A 1 means __A and __B's dot product accumulated with __D. A 0 means 0.
-/// \returns A 512-bit vector of [16 x float] comes from  Dot Product of
-///  __A, __B and __D
-static __inline__ __m512 __DEFAULT_FN_ATTRS512
-_mm512_maskz_dpbf16_ps(__mmask16 __U, __m512 __D, __m512bh __A, __m512bh __B) {
-  return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
-                                       (__v16sf)_mm512_dpbf16_ps(__D, __A, __B),
-                                       (__v16sf)_mm512_setzero_si512());
-}
-
-/// Convert Packed BF16 Data to Packed float Data.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \param __A
-///    A 256-bit vector of [16 x bfloat].
-/// \returns A 512-bit vector of [16 x float] come from convertion of __A
-static __inline__ __m512 __DEFAULT_FN_ATTRS512 _mm512_cvtpbh_ps(__m256bh __A) {
-  return _mm512_castsi512_ps((__m512i)_mm512_slli_epi32(
-      (__m512i)_mm512_cvtepi16_epi32((__m256i)__A), 16));
-}
-
-/// Convert Packed BF16 Data to Packed float Data using zeroing mask.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \param __U
-///    A 16-bit mask. Elements are zeroed out when the corresponding mask
-///    bit is not set.
-/// \param __A
-///    A 256-bit vector of [16 x bfloat].
-/// \returns A 512-bit vector of [16 x float] come from convertion of __A
-static __inline__ __m512 __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvtpbh_ps(__mmask16 __U, __m256bh __A) {
-  return _mm512_castsi512_ps((__m512i)_mm512_slli_epi32(
-      (__m512i)_mm512_maskz_cvtepi16_epi32((__mmask16)__U, (__m256i)__A), 16));
-}
-
-/// Convert Packed BF16 Data to Packed float Data using merging mask.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \param __S
-///    A 512-bit vector of [16 x float]. Elements are copied from __S when
-///     the corresponding mask bit is not set.
-/// \param __U
-///    A 16-bit mask.
-/// \param __A
-///    A 256-bit vector of [16 x bfloat].
-/// \returns A 512-bit vector of [16 x float] come from convertion of __A
-static __inline__ __m512 __DEFAULT_FN_ATTRS512
-_mm512_mask_cvtpbh_ps(__m512 __S, __mmask16 __U, __m256bh __A) {
-  return _mm512_castsi512_ps((__m512i)_mm512_mask_slli_epi32(
-      (__m512i)__S, (__mmask16)__U,
-      (__m512i)_mm512_cvtepi16_epi32((__m256i)__A), 16));
-}
-
-#undef __DEFAULT_FN_ATTRS
-#undef __DEFAULT_FN_ATTRS512
-
-#endif
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512fp16intrin.h b/linux-x86/lib64/clang/14.0.1/include/avx512fp16intrin.h
deleted file mode 100644
index 8911b4e..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/avx512fp16intrin.h
+++ /dev/null
@@ -1,3323 +0,0 @@
-/*===----------- avx512fp16intrin.h - AVX512-FP16 intrinsics ---------------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-#ifndef __IMMINTRIN_H
-#error "Never use <avx512fp16intrin.h> directly; include <immintrin.h> instead."
-#endif
-
-#ifndef __AVX512FP16INTRIN_H
-#define __AVX512FP16INTRIN_H
-
-/* Define the default attributes for the functions in this file. */
-typedef _Float16 __v32hf __attribute__((__vector_size__(64), __aligned__(64)));
-typedef _Float16 __m512h __attribute__((__vector_size__(64), __aligned__(64)));
-typedef _Float16 __m512h_u __attribute__((__vector_size__(64), __aligned__(1)));
-typedef _Float16 __v8hf __attribute__((__vector_size__(16), __aligned__(16)));
-typedef _Float16 __m128h __attribute__((__vector_size__(16), __aligned__(16)));
-typedef _Float16 __m128h_u __attribute__((__vector_size__(16), __aligned__(1)));
-typedef _Float16 __v16hf __attribute__((__vector_size__(32), __aligned__(32)));
-typedef _Float16 __m256h __attribute__((__vector_size__(32), __aligned__(32)));
-typedef _Float16 __m256h_u __attribute__((__vector_size__(32), __aligned__(1)));
-
-/* Define the default attributes for the functions in this file. */
-#define __DEFAULT_FN_ATTRS512                                                  \
-  __attribute__((__always_inline__, __nodebug__, __target__("avx512fp16"),     \
-                 __min_vector_width__(512)))
-#define __DEFAULT_FN_ATTRS256                                                  \
-  __attribute__((__always_inline__, __nodebug__, __target__("avx512fp16"),     \
-                 __min_vector_width__(256)))
-#define __DEFAULT_FN_ATTRS128                                                  \
-  __attribute__((__always_inline__, __nodebug__, __target__("avx512fp16"),     \
-                 __min_vector_width__(128)))
-
-static __inline__ _Float16 __DEFAULT_FN_ATTRS512 _mm512_cvtsh_h(__m512h __a) {
-  return __a[0];
-}
-
-static __inline __m128h __DEFAULT_FN_ATTRS128 _mm_setzero_ph(void) {
-  return (__m128h){0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
-}
-
-static __inline __m256h __DEFAULT_FN_ATTRS256 _mm256_setzero_ph(void) {
-  return (__m256h){0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-                   0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_undefined_ph(void) {
-  return (__m256h)__builtin_ia32_undef256();
-}
-
-static __inline __m512h __DEFAULT_FN_ATTRS512 _mm512_setzero_ph(void) {
-  return (__m512h){0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-                   0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-                   0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_undefined_ph(void) {
-  return (__m128h)__builtin_ia32_undef128();
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_undefined_ph(void) {
-  return (__m512h)__builtin_ia32_undef512();
-}
-
-static __inline __m512h __DEFAULT_FN_ATTRS512 _mm512_set1_ph(_Float16 __h) {
-  return (__m512h)(__v32hf){__h, __h, __h, __h, __h, __h, __h, __h,
-                            __h, __h, __h, __h, __h, __h, __h, __h,
-                            __h, __h, __h, __h, __h, __h, __h, __h,
-                            __h, __h, __h, __h, __h, __h, __h, __h};
-}
-
-static __inline __m512h __DEFAULT_FN_ATTRS512
-_mm512_set_ph(_Float16 __h1, _Float16 __h2, _Float16 __h3, _Float16 __h4,
-              _Float16 __h5, _Float16 __h6, _Float16 __h7, _Float16 __h8,
-              _Float16 __h9, _Float16 __h10, _Float16 __h11, _Float16 __h12,
-              _Float16 __h13, _Float16 __h14, _Float16 __h15, _Float16 __h16,
-              _Float16 __h17, _Float16 __h18, _Float16 __h19, _Float16 __h20,
-              _Float16 __h21, _Float16 __h22, _Float16 __h23, _Float16 __h24,
-              _Float16 __h25, _Float16 __h26, _Float16 __h27, _Float16 __h28,
-              _Float16 __h29, _Float16 __h30, _Float16 __h31, _Float16 __h32) {
-  return (__m512h)(__v32hf){__h32, __h31, __h30, __h29, __h28, __h27, __h26,
-                            __h25, __h24, __h23, __h22, __h21, __h20, __h19,
-                            __h18, __h17, __h16, __h15, __h14, __h13, __h12,
-                            __h11, __h10, __h9,  __h8,  __h7,  __h6,  __h5,
-                            __h4,  __h3,  __h2,  __h1};
-}
-
-#define _mm512_setr_ph(h1, h2, h3, h4, h5, h6, h7, h8, h9, h10, h11, h12, h13, \
-                       h14, h15, h16, h17, h18, h19, h20, h21, h22, h23, h24,  \
-                       h25, h26, h27, h28, h29, h30, h31, h32)                 \
-  _mm512_set_ph((h32), (h31), (h30), (h29), (h28), (h27), (h26), (h25), (h24), \
-                (h23), (h22), (h21), (h20), (h19), (h18), (h17), (h16), (h15), \
-                (h14), (h13), (h12), (h11), (h10), (h9), (h8), (h7), (h6),     \
-                (h5), (h4), (h3), (h2), (h1))
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_castph_ps(__m128h __a) {
-  return (__m128)__a;
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS256 _mm256_castph_ps(__m256h __a) {
-  return (__m256)__a;
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS512 _mm512_castph_ps(__m512h __a) {
-  return (__m512)__a;
-}
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_castph_pd(__m128h __a) {
-  return (__m128d)__a;
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS256 _mm256_castph_pd(__m256h __a) {
-  return (__m256d)__a;
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS512 _mm512_castph_pd(__m512h __a) {
-  return (__m512d)__a;
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_castph_si128(__m128h __a) {
-  return (__m128i)__a;
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_castph_si256(__m256h __a) {
-  return (__m256i)__a;
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_castph_si512(__m512h __a) {
-  return (__m512i)__a;
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_castps_ph(__m128 __a) {
-  return (__m128h)__a;
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_castps_ph(__m256 __a) {
-  return (__m256h)__a;
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_castps_ph(__m512 __a) {
-  return (__m512h)__a;
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_castpd_ph(__m128d __a) {
-  return (__m128h)__a;
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_castpd_ph(__m256d __a) {
-  return (__m256h)__a;
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_castpd_ph(__m512d __a) {
-  return (__m512h)__a;
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_castsi128_ph(__m128i __a) {
-  return (__m128h)__a;
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_castsi256_ph(__m256i __a) {
-  return (__m256h)__a;
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_castsi512_ph(__m512i __a) {
-  return (__m512h)__a;
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS256
-_mm256_castph256_ph128(__m256h __a) {
-  return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, 4, 5, 6, 7);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS512
-_mm512_castph512_ph128(__m512h __a) {
-  return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, 4, 5, 6, 7);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS512
-_mm512_castph512_ph256(__m512h __a) {
-  return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
-                                 12, 13, 14, 15);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_castph128_ph256(__m128h __a) {
-  return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, 4, 5, 6, 7, -1, -1, -1,
-                                 -1, -1, -1, -1, -1);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_castph128_ph512(__m128h __a) {
-  return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, 4, 5, 6, 7, -1, -1, -1,
-                                 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-                                 -1, -1, -1, -1, -1, -1, -1, -1, -1);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_castph256_ph512(__m256h __a) {
-  return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
-                                 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1,
-                                 -1, -1, -1, -1, -1, -1, -1, -1);
-}
-
-/// Constructs a 256-bit floating-point vector of [16 x half] from a
-///    128-bit floating-point vector of [8 x half]. The lower 128 bits
-///    contain the value of the source vector. The upper 384 bits are set
-///    to zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 128-bit vector of [8 x half].
-/// \returns A 512-bit floating-point vector of [16 x half]. The lower 128 bits
-///    contain the value of the parameter. The upper 384 bits are set to zero.
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_zextph128_ph256(__m128h __a) {
-  return __builtin_shufflevector(__a, (__v8hf)_mm_setzero_ph(), 0, 1, 2, 3, 4,
-                                 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
-}
-
-/// Constructs a 512-bit floating-point vector of [32 x half] from a
-///    128-bit floating-point vector of [8 x half]. The lower 128 bits
-///    contain the value of the source vector. The upper 384 bits are set
-///    to zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 128-bit vector of [8 x half].
-/// \returns A 512-bit floating-point vector of [32 x half]. The lower 128 bits
-///    contain the value of the parameter. The upper 384 bits are set to zero.
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_zextph128_ph512(__m128h __a) {
-  return __builtin_shufflevector(
-      __a, (__v8hf)_mm_setzero_ph(), 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
-      13, 14, 15, 8, 9, 10, 11, 12, 13, 14, 15, 8, 9, 10, 11, 12, 13, 14, 15);
-}
-
-/// Constructs a 512-bit floating-point vector of [32 x half] from a
-///    256-bit floating-point vector of [16 x half]. The lower 256 bits
-///    contain the value of the source vector. The upper 256 bits are set
-///    to zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 256-bit vector of [16 x half].
-/// \returns A 512-bit floating-point vector of [32 x half]. The lower 256 bits
-///    contain the value of the parameter. The upper 256 bits are set to zero.
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_zextph256_ph512(__m256h __a) {
-  return __builtin_shufflevector(__a, (__v16hf)_mm256_setzero_ph(), 0, 1, 2, 3,
-                                 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-                                 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
-                                 29, 30, 31);
-}
-
-#define _mm_comi_round_sh(A, B, P, R)                                          \
-  __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, (int)(P), (int)(R))
-
-#define _mm_comi_sh(A, B, pred)                                                \
-  _mm_comi_round_sh((A), (B), (pred), _MM_FROUND_CUR_DIRECTION)
-
-static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comieq_sh(__m128h A,
-                                                          __m128h B) {
-  return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_EQ_OS,
-                                _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comilt_sh(__m128h A,
-                                                          __m128h B) {
-  return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_LT_OS,
-                                _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comile_sh(__m128h A,
-                                                          __m128h B) {
-  return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_LE_OS,
-                                _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comigt_sh(__m128h A,
-                                                          __m128h B) {
-  return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_GT_OS,
-                                _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comige_sh(__m128h A,
-                                                          __m128h B) {
-  return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_GE_OS,
-                                _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comineq_sh(__m128h A,
-                                                           __m128h B) {
-  return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_NEQ_US,
-                                _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ int __DEFAULT_FN_ATTRS128 _mm_ucomieq_sh(__m128h A,
-                                                           __m128h B) {
-  return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_EQ_OQ,
-                                _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ int __DEFAULT_FN_ATTRS128 _mm_ucomilt_sh(__m128h A,
-                                                           __m128h B) {
-  return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_LT_OQ,
-                                _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ int __DEFAULT_FN_ATTRS128 _mm_ucomile_sh(__m128h A,
-                                                           __m128h B) {
-  return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_LE_OQ,
-                                _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ int __DEFAULT_FN_ATTRS128 _mm_ucomigt_sh(__m128h A,
-                                                           __m128h B) {
-  return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_GT_OQ,
-                                _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ int __DEFAULT_FN_ATTRS128 _mm_ucomige_sh(__m128h A,
-                                                           __m128h B) {
-  return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_GE_OQ,
-                                _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ int __DEFAULT_FN_ATTRS128 _mm_ucomineq_sh(__m128h A,
-                                                            __m128h B) {
-  return __builtin_ia32_vcomish((__v8hf)A, (__v8hf)B, _CMP_NEQ_UQ,
-                                _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_add_ph(__m512h __A,
-                                                              __m512h __B) {
-  return (__m512h)((__v32hf)__A + (__v32hf)__B);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_add_ph(__m512h __W, __mmask32 __U, __m512h __A, __m512h __B) {
-  return (__m512h)__builtin_ia32_selectph_512(
-      (__mmask32)__U, (__v32hf)_mm512_add_ph(__A, __B), (__v32hf)__W);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_add_ph(__mmask32 __U, __m512h __A, __m512h __B) {
-  return (__m512h)__builtin_ia32_selectph_512((__mmask32)__U,
-                                              (__v32hf)_mm512_add_ph(__A, __B),
-                                              (__v32hf)_mm512_setzero_ph());
-}
-
-#define _mm512_add_round_ph(A, B, R)                                           \
-  ((__m512h)__builtin_ia32_addph512((__v32hf)(__m512h)(A),                     \
-                                    (__v32hf)(__m512h)(B), (int)(R)))
-
-#define _mm512_mask_add_round_ph(W, U, A, B, R)                                \
-  ((__m512h)__builtin_ia32_selectph_512(                                       \
-      (__mmask32)(U), (__v32hf)_mm512_add_round_ph((A), (B), (R)),             \
-      (__v32hf)(__m512h)(W)))
-
-#define _mm512_maskz_add_round_ph(U, A, B, R)                                  \
-  ((__m512h)__builtin_ia32_selectph_512(                                       \
-      (__mmask32)(U), (__v32hf)_mm512_add_round_ph((A), (B), (R)),             \
-      (__v32hf)_mm512_setzero_ph()))
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_sub_ph(__m512h __A,
-                                                              __m512h __B) {
-  return (__m512h)((__v32hf)__A - (__v32hf)__B);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_sub_ph(__m512h __W, __mmask32 __U, __m512h __A, __m512h __B) {
-  return (__m512h)__builtin_ia32_selectph_512(
-      (__mmask32)__U, (__v32hf)_mm512_sub_ph(__A, __B), (__v32hf)__W);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_sub_ph(__mmask32 __U, __m512h __A, __m512h __B) {
-  return (__m512h)__builtin_ia32_selectph_512((__mmask32)__U,
-                                              (__v32hf)_mm512_sub_ph(__A, __B),
-                                              (__v32hf)_mm512_setzero_ph());
-}
-
-#define _mm512_sub_round_ph(A, B, R)                                           \
-  ((__m512h)__builtin_ia32_subph512((__v32hf)(__m512h)(A),                     \
-                                    (__v32hf)(__m512h)(B), (int)(R)))
-
-#define _mm512_mask_sub_round_ph(W, U, A, B, R)                                \
-  ((__m512h)__builtin_ia32_selectph_512(                                       \
-      (__mmask32)(U), (__v32hf)_mm512_sub_round_ph((A), (B), (R)),             \
-      (__v32hf)(__m512h)(W)))
-
-#define _mm512_maskz_sub_round_ph(U, A, B, R)                                  \
-  ((__m512h)__builtin_ia32_selectph_512(                                       \
-      (__mmask32)(U), (__v32hf)_mm512_sub_round_ph((A), (B), (R)),             \
-      (__v32hf)_mm512_setzero_ph()))
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_mul_ph(__m512h __A,
-                                                              __m512h __B) {
-  return (__m512h)((__v32hf)__A * (__v32hf)__B);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_mul_ph(__m512h __W, __mmask32 __U, __m512h __A, __m512h __B) {
-  return (__m512h)__builtin_ia32_selectph_512(
-      (__mmask32)__U, (__v32hf)_mm512_mul_ph(__A, __B), (__v32hf)__W);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_mul_ph(__mmask32 __U, __m512h __A, __m512h __B) {
-  return (__m512h)__builtin_ia32_selectph_512((__mmask32)__U,
-                                              (__v32hf)_mm512_mul_ph(__A, __B),
-                                              (__v32hf)_mm512_setzero_ph());
-}
-
-#define _mm512_mul_round_ph(A, B, R)                                           \
-  ((__m512h)__builtin_ia32_mulph512((__v32hf)(__m512h)(A),                     \
-                                    (__v32hf)(__m512h)(B), (int)(R)))
-
-#define _mm512_mask_mul_round_ph(W, U, A, B, R)                                \
-  ((__m512h)__builtin_ia32_selectph_512(                                       \
-      (__mmask32)(U), (__v32hf)_mm512_mul_round_ph((A), (B), (R)),             \
-      (__v32hf)(__m512h)(W)))
-
-#define _mm512_maskz_mul_round_ph(U, A, B, R)                                  \
-  ((__m512h)__builtin_ia32_selectph_512(                                       \
-      (__mmask32)(U), (__v32hf)_mm512_mul_round_ph((A), (B), (R)),             \
-      (__v32hf)_mm512_setzero_ph()))
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_div_ph(__m512h __A,
-                                                              __m512h __B) {
-  return (__m512h)((__v32hf)__A / (__v32hf)__B);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_div_ph(__m512h __W, __mmask32 __U, __m512h __A, __m512h __B) {
-  return (__m512h)__builtin_ia32_selectph_512(
-      (__mmask32)__U, (__v32hf)_mm512_div_ph(__A, __B), (__v32hf)__W);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_div_ph(__mmask32 __U, __m512h __A, __m512h __B) {
-  return (__m512h)__builtin_ia32_selectph_512((__mmask32)__U,
-                                              (__v32hf)_mm512_div_ph(__A, __B),
-                                              (__v32hf)_mm512_setzero_ph());
-}
-
-#define _mm512_div_round_ph(A, B, R)                                           \
-  ((__m512h)__builtin_ia32_divph512((__v32hf)(__m512h)(A),                     \
-                                    (__v32hf)(__m512h)(B), (int)(R)))
-
-#define _mm512_mask_div_round_ph(W, U, A, B, R)                                \
-  ((__m512h)__builtin_ia32_selectph_512(                                       \
-      (__mmask32)(U), (__v32hf)_mm512_div_round_ph((A), (B), (R)),             \
-      (__v32hf)(__m512h)(W)))
-
-#define _mm512_maskz_div_round_ph(U, A, B, R)                                  \
-  ((__m512h)__builtin_ia32_selectph_512(                                       \
-      (__mmask32)(U), (__v32hf)_mm512_div_round_ph((A), (B), (R)),             \
-      (__v32hf)_mm512_setzero_ph()))
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_min_ph(__m512h __A,
-                                                              __m512h __B) {
-  return (__m512h)__builtin_ia32_minph512((__v32hf)__A, (__v32hf)__B,
-                                          _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_min_ph(__m512h __W, __mmask32 __U, __m512h __A, __m512h __B) {
-  return (__m512h)__builtin_ia32_selectph_512(
-      (__mmask32)__U, (__v32hf)_mm512_min_ph(__A, __B), (__v32hf)__W);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_min_ph(__mmask32 __U, __m512h __A, __m512h __B) {
-  return (__m512h)__builtin_ia32_selectph_512((__mmask32)__U,
-                                              (__v32hf)_mm512_min_ph(__A, __B),
-                                              (__v32hf)_mm512_setzero_ph());
-}
-
-#define _mm512_min_round_ph(A, B, R)                                           \
-  ((__m512h)__builtin_ia32_minph512((__v32hf)(__m512h)(A),                     \
-                                    (__v32hf)(__m512h)(B), (int)(R)))
-
-#define _mm512_mask_min_round_ph(W, U, A, B, R)                                \
-  ((__m512h)__builtin_ia32_selectph_512(                                       \
-      (__mmask32)(U), (__v32hf)_mm512_min_round_ph((A), (B), (R)),             \
-      (__v32hf)(__m512h)(W)))
-
-#define _mm512_maskz_min_round_ph(U, A, B, R)                                  \
-  ((__m512h)__builtin_ia32_selectph_512(                                       \
-      (__mmask32)(U), (__v32hf)_mm512_min_round_ph((A), (B), (R)),             \
-      (__v32hf)_mm512_setzero_ph()))
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_max_ph(__m512h __A,
-                                                              __m512h __B) {
-  return (__m512h)__builtin_ia32_maxph512((__v32hf)__A, (__v32hf)__B,
-                                          _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_max_ph(__m512h __W, __mmask32 __U, __m512h __A, __m512h __B) {
-  return (__m512h)__builtin_ia32_selectph_512(
-      (__mmask32)__U, (__v32hf)_mm512_max_ph(__A, __B), (__v32hf)__W);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_max_ph(__mmask32 __U, __m512h __A, __m512h __B) {
-  return (__m512h)__builtin_ia32_selectph_512((__mmask32)__U,
-                                              (__v32hf)_mm512_max_ph(__A, __B),
-                                              (__v32hf)_mm512_setzero_ph());
-}
-
-#define _mm512_max_round_ph(A, B, R)                                           \
-  ((__m512h)__builtin_ia32_maxph512((__v32hf)(__m512h)(A),                     \
-                                    (__v32hf)(__m512h)(B), (int)(R)))
-
-#define _mm512_mask_max_round_ph(W, U, A, B, R)                                \
-  ((__m512h)__builtin_ia32_selectph_512(                                       \
-      (__mmask32)(U), (__v32hf)_mm512_max_round_ph((A), (B), (R)),             \
-      (__v32hf)(__m512h)(W)))
-
-#define _mm512_maskz_max_round_ph(U, A, B, R)                                  \
-  ((__m512h)__builtin_ia32_selectph_512(                                       \
-      (__mmask32)(U), (__v32hf)_mm512_max_round_ph((A), (B), (R)),             \
-      (__v32hf)_mm512_setzero_ph()))
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_abs_ph(__m512h __A) {
-  return (__m512h)_mm512_and_epi32(_mm512_set1_epi32(0x7FFF7FFF), (__m512i)__A);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_conj_pch(__m512h __A) {
-  return (__m512h)_mm512_xor_ps((__m512)__A, _mm512_set1_ps(-0.0f));
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_conj_pch(__m512h __W, __mmask16 __U, __m512h __A) {
-  return (__m512h)__builtin_ia32_selectps_512(
-      (__mmask16)__U, (__v16sf)_mm512_conj_pch(__A), (__v16sf)__W);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_conj_pch(__mmask16 __U, __m512h __A) {
-  return (__m512h)__builtin_ia32_selectps_512((__mmask16)__U,
-                                              (__v16sf)_mm512_conj_pch(__A),
-                                              (__v16sf)_mm512_setzero_ps());
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_add_sh(__m128h __A,
-                                                           __m128h __B) {
-  __A[0] += __B[0];
-  return __A;
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_add_sh(__m128h __W,
-                                                                __mmask8 __U,
-                                                                __m128h __A,
-                                                                __m128h __B) {
-  __A = _mm_add_sh(__A, __B);
-  return __builtin_ia32_selectsh_128(__U, __A, __W);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_maskz_add_sh(__mmask8 __U,
-                                                                 __m128h __A,
-                                                                 __m128h __B) {
-  __A = _mm_add_sh(__A, __B);
-  return __builtin_ia32_selectsh_128(__U, __A, _mm_setzero_ph());
-}
-
-#define _mm_add_round_sh(A, B, R)                                              \
-  ((__m128h)__builtin_ia32_addsh_round_mask(                                   \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)-1, (int)(R)))
-
-#define _mm_mask_add_round_sh(W, U, A, B, R)                                   \
-  ((__m128h)__builtin_ia32_addsh_round_mask(                                   \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)(__m128h)(W),        \
-      (__mmask8)(U), (int)(R)))
-
-#define _mm_maskz_add_round_sh(U, A, B, R)                                     \
-  ((__m128h)__builtin_ia32_addsh_round_mask(                                   \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_sub_sh(__m128h __A,
-                                                           __m128h __B) {
-  __A[0] -= __B[0];
-  return __A;
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_sub_sh(__m128h __W,
-                                                                __mmask8 __U,
-                                                                __m128h __A,
-                                                                __m128h __B) {
-  __A = _mm_sub_sh(__A, __B);
-  return __builtin_ia32_selectsh_128(__U, __A, __W);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_maskz_sub_sh(__mmask8 __U,
-                                                                 __m128h __A,
-                                                                 __m128h __B) {
-  __A = _mm_sub_sh(__A, __B);
-  return __builtin_ia32_selectsh_128(__U, __A, _mm_setzero_ph());
-}
-
-#define _mm_sub_round_sh(A, B, R)                                              \
-  ((__m128h)__builtin_ia32_subsh_round_mask(                                   \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)-1, (int)(R)))
-
-#define _mm_mask_sub_round_sh(W, U, A, B, R)                                   \
-  ((__m128h)__builtin_ia32_subsh_round_mask(                                   \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)(__m128h)(W),        \
-      (__mmask8)(U), (int)(R)))
-
-#define _mm_maskz_sub_round_sh(U, A, B, R)                                     \
-  ((__m128h)__builtin_ia32_subsh_round_mask(                                   \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mul_sh(__m128h __A,
-                                                           __m128h __B) {
-  __A[0] *= __B[0];
-  return __A;
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_mul_sh(__m128h __W,
-                                                                __mmask8 __U,
-                                                                __m128h __A,
-                                                                __m128h __B) {
-  __A = _mm_mul_sh(__A, __B);
-  return __builtin_ia32_selectsh_128(__U, __A, __W);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_maskz_mul_sh(__mmask8 __U,
-                                                                 __m128h __A,
-                                                                 __m128h __B) {
-  __A = _mm_mul_sh(__A, __B);
-  return __builtin_ia32_selectsh_128(__U, __A, _mm_setzero_ph());
-}
-
-#define _mm_mul_round_sh(A, B, R)                                              \
-  ((__m128h)__builtin_ia32_mulsh_round_mask(                                   \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)-1, (int)(R)))
-
-#define _mm_mask_mul_round_sh(W, U, A, B, R)                                   \
-  ((__m128h)__builtin_ia32_mulsh_round_mask(                                   \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)(__m128h)(W),        \
-      (__mmask8)(U), (int)(R)))
-
-#define _mm_maskz_mul_round_sh(U, A, B, R)                                     \
-  ((__m128h)__builtin_ia32_mulsh_round_mask(                                   \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_div_sh(__m128h __A,
-                                                           __m128h __B) {
-  __A[0] /= __B[0];
-  return __A;
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_div_sh(__m128h __W,
-                                                                __mmask8 __U,
-                                                                __m128h __A,
-                                                                __m128h __B) {
-  __A = _mm_div_sh(__A, __B);
-  return __builtin_ia32_selectsh_128(__U, __A, __W);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_maskz_div_sh(__mmask8 __U,
-                                                                 __m128h __A,
-                                                                 __m128h __B) {
-  __A = _mm_div_sh(__A, __B);
-  return __builtin_ia32_selectsh_128(__U, __A, _mm_setzero_ph());
-}
-
-#define _mm_div_round_sh(A, B, R)                                              \
-  ((__m128h)__builtin_ia32_divsh_round_mask(                                   \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)-1, (int)(R)))
-
-#define _mm_mask_div_round_sh(W, U, A, B, R)                                   \
-  ((__m128h)__builtin_ia32_divsh_round_mask(                                   \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)(__m128h)(W),        \
-      (__mmask8)(U), (int)(R)))
-
-#define _mm_maskz_div_round_sh(U, A, B, R)                                     \
-  ((__m128h)__builtin_ia32_divsh_round_mask(                                   \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_min_sh(__m128h __A,
-                                                           __m128h __B) {
-  return (__m128h)__builtin_ia32_minsh_round_mask(
-      (__v8hf)__A, (__v8hf)__B, (__v8hf)_mm_setzero_ph(), (__mmask8)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_min_sh(__m128h __W,
-                                                                __mmask8 __U,
-                                                                __m128h __A,
-                                                                __m128h __B) {
-  return (__m128h)__builtin_ia32_minsh_round_mask((__v8hf)__A, (__v8hf)__B,
-                                                  (__v8hf)__W, (__mmask8)__U,
-                                                  _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_maskz_min_sh(__mmask8 __U,
-                                                                 __m128h __A,
-                                                                 __m128h __B) {
-  return (__m128h)__builtin_ia32_minsh_round_mask(
-      (__v8hf)__A, (__v8hf)__B, (__v8hf)_mm_setzero_ph(), (__mmask8)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_min_round_sh(A, B, R)                                              \
-  ((__m128h)__builtin_ia32_minsh_round_mask(                                   \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)-1, (int)(R)))
-
-#define _mm_mask_min_round_sh(W, U, A, B, R)                                   \
-  ((__m128h)__builtin_ia32_minsh_round_mask(                                   \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)(__m128h)(W),        \
-      (__mmask8)(U), (int)(R)))
-
-#define _mm_maskz_min_round_sh(U, A, B, R)                                     \
-  ((__m128h)__builtin_ia32_minsh_round_mask(                                   \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_max_sh(__m128h __A,
-                                                           __m128h __B) {
-  return (__m128h)__builtin_ia32_maxsh_round_mask(
-      (__v8hf)__A, (__v8hf)__B, (__v8hf)_mm_setzero_ph(), (__mmask8)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_max_sh(__m128h __W,
-                                                                __mmask8 __U,
-                                                                __m128h __A,
-                                                                __m128h __B) {
-  return (__m128h)__builtin_ia32_maxsh_round_mask((__v8hf)__A, (__v8hf)__B,
-                                                  (__v8hf)__W, (__mmask8)__U,
-                                                  _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_maskz_max_sh(__mmask8 __U,
-                                                                 __m128h __A,
-                                                                 __m128h __B) {
-  return (__m128h)__builtin_ia32_maxsh_round_mask(
-      (__v8hf)__A, (__v8hf)__B, (__v8hf)_mm_setzero_ph(), (__mmask8)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_max_round_sh(A, B, R)                                              \
-  ((__m128h)__builtin_ia32_maxsh_round_mask(                                   \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)-1, (int)(R)))
-
-#define _mm_mask_max_round_sh(W, U, A, B, R)                                   \
-  ((__m128h)__builtin_ia32_maxsh_round_mask(                                   \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)(__m128h)(W),        \
-      (__mmask8)(U), (int)(R)))
-
-#define _mm_maskz_max_round_sh(U, A, B, R)                                     \
-  ((__m128h)__builtin_ia32_maxsh_round_mask(                                   \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)(U), (int)(R)))
-
-#define _mm512_cmp_round_ph_mask(A, B, P, R)                                   \
-  ((__mmask32)__builtin_ia32_cmpph512_mask((__v32hf)(__m512h)(A),              \
-                                           (__v32hf)(__m512h)(B), (int)(P),    \
-                                           (__mmask32)-1, (int)(R)))
-
-#define _mm512_mask_cmp_round_ph_mask(U, A, B, P, R)                           \
-  ((__mmask32)__builtin_ia32_cmpph512_mask((__v32hf)(__m512h)(A),              \
-                                           (__v32hf)(__m512h)(B), (int)(P),    \
-                                           (__mmask32)(U), (int)(R)))
-
-#define _mm512_cmp_ph_mask(A, B, P)                                            \
-  _mm512_cmp_round_ph_mask((A), (B), (P), _MM_FROUND_CUR_DIRECTION)
-
-#define _mm512_mask_cmp_ph_mask(U, A, B, P)                                    \
-  _mm512_mask_cmp_round_ph_mask((U), (A), (B), (P), _MM_FROUND_CUR_DIRECTION)
-
-#define _mm_cmp_round_sh_mask(X, Y, P, R)                                      \
-  ((__mmask8)__builtin_ia32_cmpsh_mask((__v8hf)(__m128h)(X),                   \
-                                       (__v8hf)(__m128h)(Y), (int)(P),         \
-                                       (__mmask8)-1, (int)(R)))
-
-#define _mm_mask_cmp_round_sh_mask(M, X, Y, P, R)                              \
-  ((__mmask8)__builtin_ia32_cmpsh_mask((__v8hf)(__m128h)(X),                   \
-                                       (__v8hf)(__m128h)(Y), (int)(P),         \
-                                       (__mmask8)(M), (int)(R)))
-
-#define _mm_cmp_sh_mask(X, Y, P)                                               \
-  ((__mmask8)__builtin_ia32_cmpsh_mask(                                        \
-      (__v8hf)(__m128h)(X), (__v8hf)(__m128h)(Y), (int)(P), (__mmask8)-1,      \
-      _MM_FROUND_CUR_DIRECTION))
-
-#define _mm_mask_cmp_sh_mask(M, X, Y, P)                                       \
-  ((__mmask8)__builtin_ia32_cmpsh_mask(                                        \
-      (__v8hf)(__m128h)(X), (__v8hf)(__m128h)(Y), (int)(P), (__mmask8)(M),     \
-      _MM_FROUND_CUR_DIRECTION))
-// loads with vmovsh:
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_load_sh(void const *__dp) {
-  struct __mm_load_sh_struct {
-    _Float16 __u;
-  } __attribute__((__packed__, __may_alias__));
-  _Float16 __u = ((struct __mm_load_sh_struct *)__dp)->__u;
-  return (__m128h){__u, 0, 0, 0, 0, 0, 0, 0};
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask_load_sh(__m128h __W, __mmask8 __U, const void *__A) {
-  __m128h src = (__v8hf)__builtin_shufflevector(
-      (__v8hf)__W, (__v8hf)_mm_setzero_ph(), 0, 8, 8, 8, 8, 8, 8, 8);
-
-  return (__m128h)__builtin_ia32_loadsh128_mask((__v8hf *)__A, src, __U & 1);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_load_sh(__mmask8 __U, const void *__A) {
-  return (__m128h)__builtin_ia32_loadsh128_mask(
-      (__v8hf *)__A, (__v8hf)_mm_setzero_ph(), __U & 1);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_load_ph(void const *__p) {
-  return *(const __m512h *)__p;
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_load_ph(void const *__p) {
-  return *(const __m256h *)__p;
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_load_ph(void const *__p) {
-  return *(const __m128h *)__p;
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_loadu_ph(void const *__p) {
-  struct __loadu_ph {
-    __m512h_u __v;
-  } __attribute__((__packed__, __may_alias__));
-  return ((const struct __loadu_ph *)__p)->__v;
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_loadu_ph(void const *__p) {
-  struct __loadu_ph {
-    __m256h_u __v;
-  } __attribute__((__packed__, __may_alias__));
-  return ((const struct __loadu_ph *)__p)->__v;
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_loadu_ph(void const *__p) {
-  struct __loadu_ph {
-    __m128h_u __v;
-  } __attribute__((__packed__, __may_alias__));
-  return ((const struct __loadu_ph *)__p)->__v;
-}
-
-// stores with vmovsh:
-static __inline__ void __DEFAULT_FN_ATTRS128 _mm_store_sh(void *__dp,
-                                                          __m128h __a) {
-  struct __mm_store_sh_struct {
-    _Float16 __u;
-  } __attribute__((__packed__, __may_alias__));
-  ((struct __mm_store_sh_struct *)__dp)->__u = __a[0];
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS128 _mm_mask_store_sh(void *__W,
-                                                               __mmask8 __U,
-                                                               __m128h __A) {
-  __builtin_ia32_storesh128_mask((__v8hf *)__W, __A, __U & 1);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS512 _mm512_store_ph(void *__P,
-                                                             __m512h __A) {
-  *(__m512h *)__P = __A;
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS256 _mm256_store_ph(void *__P,
-                                                             __m256h __A) {
-  *(__m256h *)__P = __A;
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS128 _mm_store_ph(void *__P,
-                                                          __m128h __A) {
-  *(__m128h *)__P = __A;
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS512 _mm512_storeu_ph(void *__P,
-                                                              __m512h __A) {
-  struct __storeu_ph {
-    __m512h_u __v;
-  } __attribute__((__packed__, __may_alias__));
-  ((struct __storeu_ph *)__P)->__v = __A;
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS256 _mm256_storeu_ph(void *__P,
-                                                              __m256h __A) {
-  struct __storeu_ph {
-    __m256h_u __v;
-  } __attribute__((__packed__, __may_alias__));
-  ((struct __storeu_ph *)__P)->__v = __A;
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS128 _mm_storeu_ph(void *__P,
-                                                           __m128h __A) {
-  struct __storeu_ph {
-    __m128h_u __v;
-  } __attribute__((__packed__, __may_alias__));
-  ((struct __storeu_ph *)__P)->__v = __A;
-}
-
-// moves with vmovsh:
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_move_sh(__m128h __a,
-                                                            __m128h __b) {
-  __a[0] = __b[0];
-  return __a;
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_move_sh(__m128h __W,
-                                                                 __mmask8 __U,
-                                                                 __m128h __A,
-                                                                 __m128h __B) {
-  return __builtin_ia32_selectsh_128(__U, _mm_move_sh(__A, __B), __W);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_maskz_move_sh(__mmask8 __U,
-                                                                  __m128h __A,
-                                                                  __m128h __B) {
-  return __builtin_ia32_selectsh_128(__U, _mm_move_sh(__A, __B),
-                                     _mm_setzero_ph());
-}
-
-// vmovw:
-static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvtsi16_si128(short __a) {
-  return (__m128i)(__v8hi){__a, 0, 0, 0, 0, 0, 0, 0};
-}
-
-static __inline__ short __DEFAULT_FN_ATTRS128 _mm_cvtsi128_si16(__m128i __a) {
-  __v8hi __b = (__v8hi)__a;
-  return __b[0];
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_rcp_ph(__m512h __A) {
-  return (__m512h)__builtin_ia32_rcpph512_mask(
-      (__v32hf)__A, (__v32hf)_mm512_undefined_ph(), (__mmask32)-1);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_rcp_ph(__m512h __W, __mmask32 __U, __m512h __A) {
-  return (__m512h)__builtin_ia32_rcpph512_mask((__v32hf)__A, (__v32hf)__W,
-                                               (__mmask32)__U);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_rcp_ph(__mmask32 __U, __m512h __A) {
-  return (__m512h)__builtin_ia32_rcpph512_mask(
-      (__v32hf)__A, (__v32hf)_mm512_setzero_ph(), (__mmask32)__U);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_rsqrt_ph(__m512h __A) {
-  return (__m512h)__builtin_ia32_rsqrtph512_mask(
-      (__v32hf)__A, (__v32hf)_mm512_undefined_ph(), (__mmask32)-1);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_rsqrt_ph(__m512h __W, __mmask32 __U, __m512h __A) {
-  return (__m512h)__builtin_ia32_rsqrtph512_mask((__v32hf)__A, (__v32hf)__W,
-                                                 (__mmask32)__U);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_rsqrt_ph(__mmask32 __U, __m512h __A) {
-  return (__m512h)__builtin_ia32_rsqrtph512_mask(
-      (__v32hf)__A, (__v32hf)_mm512_setzero_ph(), (__mmask32)__U);
-}
-
-#define _mm512_getmant_ph(A, B, C)                                             \
-  ((__m512h)__builtin_ia32_getmantph512_mask(                                  \
-      (__v32hf)(__m512h)(A), (int)(((C) << 2) | (B)),                          \
-      (__v32hf)_mm512_undefined_ph(), (__mmask32)-1,                           \
-      _MM_FROUND_CUR_DIRECTION))
-
-#define _mm512_mask_getmant_ph(W, U, A, B, C)                                  \
-  ((__m512h)__builtin_ia32_getmantph512_mask(                                  \
-      (__v32hf)(__m512h)(A), (int)(((C) << 2) | (B)), (__v32hf)(__m512h)(W),   \
-      (__mmask32)(U), _MM_FROUND_CUR_DIRECTION))
-
-#define _mm512_maskz_getmant_ph(U, A, B, C)                                    \
-  ((__m512h)__builtin_ia32_getmantph512_mask(                                  \
-      (__v32hf)(__m512h)(A), (int)(((C) << 2) | (B)),                          \
-      (__v32hf)_mm512_setzero_ph(), (__mmask32)(U), _MM_FROUND_CUR_DIRECTION))
-
-#define _mm512_getmant_round_ph(A, B, C, R)                                    \
-  ((__m512h)__builtin_ia32_getmantph512_mask(                                  \
-      (__v32hf)(__m512h)(A), (int)(((C) << 2) | (B)),                          \
-      (__v32hf)_mm512_undefined_ph(), (__mmask32)-1, (int)(R)))
-
-#define _mm512_mask_getmant_round_ph(W, U, A, B, C, R)                         \
-  ((__m512h)__builtin_ia32_getmantph512_mask(                                  \
-      (__v32hf)(__m512h)(A), (int)(((C) << 2) | (B)), (__v32hf)(__m512h)(W),   \
-      (__mmask32)(U), (int)(R)))
-
-#define _mm512_maskz_getmant_round_ph(U, A, B, C, R)                           \
-  ((__m512h)__builtin_ia32_getmantph512_mask(                                  \
-      (__v32hf)(__m512h)(A), (int)(((C) << 2) | (B)),                          \
-      (__v32hf)_mm512_setzero_ph(), (__mmask32)(U), (int)(R)))
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_getexp_ph(__m512h __A) {
-  return (__m512h)__builtin_ia32_getexpph512_mask(
-      (__v32hf)__A, (__v32hf)_mm512_undefined_ph(), (__mmask32)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_getexp_ph(__m512h __W, __mmask32 __U, __m512h __A) {
-  return (__m512h)__builtin_ia32_getexpph512_mask(
-      (__v32hf)__A, (__v32hf)__W, (__mmask32)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_getexp_ph(__mmask32 __U, __m512h __A) {
-  return (__m512h)__builtin_ia32_getexpph512_mask(
-      (__v32hf)__A, (__v32hf)_mm512_setzero_ph(), (__mmask32)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_getexp_round_ph(A, R)                                           \
-  ((__m512h)__builtin_ia32_getexpph512_mask((__v32hf)(__m512h)(A),             \
-                                            (__v32hf)_mm512_undefined_ph(),    \
-                                            (__mmask32)-1, (int)(R)))
-
-#define _mm512_mask_getexp_round_ph(W, U, A, R)                                \
-  ((__m512h)__builtin_ia32_getexpph512_mask(                                   \
-      (__v32hf)(__m512h)(A), (__v32hf)(__m512h)(W), (__mmask32)(U), (int)(R)))
-
-#define _mm512_maskz_getexp_round_ph(U, A, R)                                  \
-  ((__m512h)__builtin_ia32_getexpph512_mask((__v32hf)(__m512h)(A),             \
-                                            (__v32hf)_mm512_setzero_ph(),      \
-                                            (__mmask32)(U), (int)(R)))
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_scalef_ph(__m512h __A,
-                                                                 __m512h __B) {
-  return (__m512h)__builtin_ia32_scalefph512_mask(
-      (__v32hf)__A, (__v32hf)__B, (__v32hf)_mm512_undefined_ph(), (__mmask32)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_scalef_ph(__m512h __W, __mmask32 __U, __m512h __A, __m512h __B) {
-  return (__m512h)__builtin_ia32_scalefph512_mask((__v32hf)__A, (__v32hf)__B,
-                                                  (__v32hf)__W, (__mmask32)__U,
-                                                  _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_scalef_ph(__mmask32 __U, __m512h __A, __m512h __B) {
-  return (__m512h)__builtin_ia32_scalefph512_mask(
-      (__v32hf)__A, (__v32hf)__B, (__v32hf)_mm512_setzero_ph(), (__mmask32)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_scalef_round_ph(A, B, R)                                        \
-  ((__m512h)__builtin_ia32_scalefph512_mask(                                   \
-      (__v32hf)(__m512h)(A), (__v32hf)(__m512h)(B),                            \
-      (__v32hf)_mm512_undefined_ph(), (__mmask32)-1, (int)(R)))
-
-#define _mm512_mask_scalef_round_ph(W, U, A, B, R)                             \
-  ((__m512h)__builtin_ia32_scalefph512_mask(                                   \
-      (__v32hf)(__m512h)(A), (__v32hf)(__m512h)(B), (__v32hf)(__m512h)(W),     \
-      (__mmask32)(U), (int)(R)))
-
-#define _mm512_maskz_scalef_round_ph(U, A, B, R)                               \
-  ((__m512h)__builtin_ia32_scalefph512_mask(                                   \
-      (__v32hf)(__m512h)(A), (__v32hf)(__m512h)(B),                            \
-      (__v32hf)_mm512_setzero_ph(), (__mmask32)(U), (int)(R)))
-
-#define _mm512_roundscale_ph(A, B)                                             \
-  ((__m512h)__builtin_ia32_rndscaleph_mask(                                    \
-      (__v32hf)(__m512h)(A), (int)(B), (__v32hf)(__m512h)(A), (__mmask32)-1,   \
-      _MM_FROUND_CUR_DIRECTION))
-
-#define _mm512_mask_roundscale_ph(A, B, C, imm)                                \
-  ((__m512h)__builtin_ia32_rndscaleph_mask(                                    \
-      (__v32hf)(__m512h)(C), (int)(imm), (__v32hf)(__m512h)(A),                \
-      (__mmask32)(B), _MM_FROUND_CUR_DIRECTION))
-
-#define _mm512_maskz_roundscale_ph(A, B, imm)                                  \
-  ((__m512h)__builtin_ia32_rndscaleph_mask(                                    \
-      (__v32hf)(__m512h)(B), (int)(imm), (__v32hf)_mm512_setzero_ph(),         \
-      (__mmask32)(A), _MM_FROUND_CUR_DIRECTION))
-
-#define _mm512_mask_roundscale_round_ph(A, B, C, imm, R)                       \
-  ((__m512h)__builtin_ia32_rndscaleph_mask((__v32hf)(__m512h)(C), (int)(imm),  \
-                                           (__v32hf)(__m512h)(A),              \
-                                           (__mmask32)(B), (int)(R)))
-
-#define _mm512_maskz_roundscale_round_ph(A, B, imm, R)                         \
-  ((__m512h)__builtin_ia32_rndscaleph_mask((__v32hf)(__m512h)(B), (int)(imm),  \
-                                           (__v32hf)_mm512_setzero_ph(),       \
-                                           (__mmask32)(A), (int)(R)))
-
-#define _mm512_roundscale_round_ph(A, imm, R)                                  \
-  ((__m512h)__builtin_ia32_rndscaleph_mask((__v32hf)(__m512h)(A), (int)(imm),  \
-                                           (__v32hf)_mm512_undefined_ph(),     \
-                                           (__mmask32)-1, (int)(R)))
-
-#define _mm512_reduce_ph(A, imm)                                               \
-  ((__m512h)__builtin_ia32_reduceph512_mask(                                   \
-      (__v32hf)(__m512h)(A), (int)(imm), (__v32hf)_mm512_undefined_ph(),       \
-      (__mmask32)-1, _MM_FROUND_CUR_DIRECTION))
-
-#define _mm512_mask_reduce_ph(W, U, A, imm)                                    \
-  ((__m512h)__builtin_ia32_reduceph512_mask(                                   \
-      (__v32hf)(__m512h)(A), (int)(imm), (__v32hf)(__m512h)(W),                \
-      (__mmask32)(U), _MM_FROUND_CUR_DIRECTION))
-
-#define _mm512_maskz_reduce_ph(U, A, imm)                                      \
-  ((__m512h)__builtin_ia32_reduceph512_mask(                                   \
-      (__v32hf)(__m512h)(A), (int)(imm), (__v32hf)_mm512_setzero_ph(),         \
-      (__mmask32)(U), _MM_FROUND_CUR_DIRECTION))
-
-#define _mm512_mask_reduce_round_ph(W, U, A, imm, R)                           \
-  ((__m512h)__builtin_ia32_reduceph512_mask((__v32hf)(__m512h)(A), (int)(imm), \
-                                            (__v32hf)(__m512h)(W),             \
-                                            (__mmask32)(U), (int)(R)))
-
-#define _mm512_maskz_reduce_round_ph(U, A, imm, R)                             \
-  ((__m512h)__builtin_ia32_reduceph512_mask((__v32hf)(__m512h)(A), (int)(imm), \
-                                            (__v32hf)_mm512_setzero_ph(),      \
-                                            (__mmask32)(U), (int)(R)))
-
-#define _mm512_reduce_round_ph(A, imm, R)                                      \
-  ((__m512h)__builtin_ia32_reduceph512_mask((__v32hf)(__m512h)(A), (int)(imm), \
-                                            (__v32hf)_mm512_undefined_ph(),    \
-                                            (__mmask32)-1, (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_rcp_sh(__m128h __A,
-                                                           __m128h __B) {
-  return (__m128h)__builtin_ia32_rcpsh_mask(
-      (__v8hf)__A, (__v8hf)__B, (__v8hf)_mm_setzero_ph(), (__mmask8)-1);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_rcp_sh(__m128h __W,
-                                                                __mmask8 __U,
-                                                                __m128h __A,
-                                                                __m128h __B) {
-  return (__m128h)__builtin_ia32_rcpsh_mask((__v8hf)__A, (__v8hf)__B,
-                                            (__v8hf)__W, (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_maskz_rcp_sh(__mmask8 __U,
-                                                                 __m128h __A,
-                                                                 __m128h __B) {
-  return (__m128h)__builtin_ia32_rcpsh_mask(
-      (__v8hf)__A, (__v8hf)__B, (__v8hf)_mm_setzero_ph(), (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_rsqrt_sh(__m128h __A,
-                                                             __m128h __B) {
-  return (__m128h)__builtin_ia32_rsqrtsh_mask(
-      (__v8hf)__A, (__v8hf)__B, (__v8hf)_mm_setzero_ph(), (__mmask8)-1);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_rsqrt_sh(__m128h __W,
-                                                                  __mmask8 __U,
-                                                                  __m128h __A,
-                                                                  __m128h __B) {
-  return (__m128h)__builtin_ia32_rsqrtsh_mask((__v8hf)__A, (__v8hf)__B,
-                                              (__v8hf)__W, (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_rsqrt_sh(__mmask8 __U, __m128h __A, __m128h __B) {
-  return (__m128h)__builtin_ia32_rsqrtsh_mask(
-      (__v8hf)__A, (__v8hf)__B, (__v8hf)_mm_setzero_ph(), (__mmask8)__U);
-}
-
-#define _mm_getmant_round_sh(A, B, C, D, R)                                    \
-  ((__m128h)__builtin_ia32_getmantsh_round_mask(                               \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (int)(((D) << 2) | (C)),     \
-      (__v8hf)_mm_setzero_ph(), (__mmask8)-1, (int)(R)))
-
-#define _mm_getmant_sh(A, B, C, D)                                             \
-  ((__m128h)__builtin_ia32_getmantsh_round_mask(                               \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (int)(((D) << 2) | (C)),     \
-      (__v8hf)_mm_setzero_ph(), (__mmask8)-1, _MM_FROUND_CUR_DIRECTION))
-
-#define _mm_mask_getmant_sh(W, U, A, B, C, D)                                  \
-  ((__m128h)__builtin_ia32_getmantsh_round_mask(                               \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (int)(((D) << 2) | (C)),     \
-      (__v8hf)(__m128h)(W), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
-
-#define _mm_mask_getmant_round_sh(W, U, A, B, C, D, R)                         \
-  ((__m128h)__builtin_ia32_getmantsh_round_mask(                               \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (int)(((D) << 2) | (C)),     \
-      (__v8hf)(__m128h)(W), (__mmask8)(U), (int)(R)))
-
-#define _mm_maskz_getmant_sh(U, A, B, C, D)                                    \
-  ((__m128h)__builtin_ia32_getmantsh_round_mask(                               \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (int)(((D) << 2) | (C)),     \
-      (__v8hf)_mm_setzero_ph(), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
-
-#define _mm_maskz_getmant_round_sh(U, A, B, C, D, R)                           \
-  ((__m128h)__builtin_ia32_getmantsh_round_mask(                               \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (int)(((D) << 2) | (C)),     \
-      (__v8hf)_mm_setzero_ph(), (__mmask8)(U), (int)(R)))
-
-#define _mm_getexp_round_sh(A, B, R)                                           \
-  ((__m128h)__builtin_ia32_getexpsh128_round_mask(                             \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)-1, (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_getexp_sh(__m128h __A,
-                                                              __m128h __B) {
-  return (__m128h)__builtin_ia32_getexpsh128_round_mask(
-      (__v8hf)__A, (__v8hf)__B, (__v8hf)_mm_setzero_ph(), (__mmask8)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask_getexp_sh(__m128h __W, __mmask8 __U, __m128h __A, __m128h __B) {
-  return (__m128h)__builtin_ia32_getexpsh128_round_mask(
-      (__v8hf)__A, (__v8hf)__B, (__v8hf)__W, (__mmask8)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask_getexp_round_sh(W, U, A, B, R)                                \
-  ((__m128h)__builtin_ia32_getexpsh128_round_mask(                             \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)(__m128h)(W),        \
-      (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_getexp_sh(__mmask8 __U, __m128h __A, __m128h __B) {
-  return (__m128h)__builtin_ia32_getexpsh128_round_mask(
-      (__v8hf)__A, (__v8hf)__B, (__v8hf)_mm_setzero_ph(), (__mmask8)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_maskz_getexp_round_sh(U, A, B, R)                                  \
-  ((__m128h)__builtin_ia32_getexpsh128_round_mask(                             \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)(U), (int)(R)))
-
-#define _mm_scalef_round_sh(A, B, R)                                           \
-  ((__m128h)__builtin_ia32_scalefsh_round_mask(                                \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)-1, (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_scalef_sh(__m128h __A,
-                                                              __m128h __B) {
-  return (__m128h)__builtin_ia32_scalefsh_round_mask(
-      (__v8hf)__A, (__v8hf)(__B), (__v8hf)_mm_setzero_ph(), (__mmask8)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask_scalef_sh(__m128h __W, __mmask8 __U, __m128h __A, __m128h __B) {
-  return (__m128h)__builtin_ia32_scalefsh_round_mask((__v8hf)__A, (__v8hf)__B,
-                                                     (__v8hf)__W, (__mmask8)__U,
-                                                     _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask_scalef_round_sh(W, U, A, B, R)                                \
-  ((__m128h)__builtin_ia32_scalefsh_round_mask(                                \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)(__m128h)(W),        \
-      (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_scalef_sh(__mmask8 __U, __m128h __A, __m128h __B) {
-  return (__m128h)__builtin_ia32_scalefsh_round_mask(
-      (__v8hf)__A, (__v8hf)__B, (__v8hf)_mm_setzero_ph(), (__mmask8)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_maskz_scalef_round_sh(U, A, B, R)                                  \
-  ((__m128h)__builtin_ia32_scalefsh_round_mask(                                \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)(U), (int)(R)))
-
-#define _mm_roundscale_round_sh(A, B, imm, R)                                  \
-  ((__m128h)__builtin_ia32_rndscalesh_round_mask(                              \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)-1, (int)(imm), (int)(R)))
-
-#define _mm_roundscale_sh(A, B, imm)                                           \
-  ((__m128h)__builtin_ia32_rndscalesh_round_mask(                              \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)-1, (int)(imm), _MM_FROUND_CUR_DIRECTION))
-
-#define _mm_mask_roundscale_sh(W, U, A, B, I)                                  \
-  ((__m128h)__builtin_ia32_rndscalesh_round_mask(                              \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)(__m128h)(W),        \
-      (__mmask8)(U), (int)(I), _MM_FROUND_CUR_DIRECTION))
-
-#define _mm_mask_roundscale_round_sh(W, U, A, B, I, R)                         \
-  ((__m128h)__builtin_ia32_rndscalesh_round_mask(                              \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)(__m128h)(W),        \
-      (__mmask8)(U), (int)(I), (int)(R)))
-
-#define _mm_maskz_roundscale_sh(U, A, B, I)                                    \
-  ((__m128h)__builtin_ia32_rndscalesh_round_mask(                              \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)(U), (int)(I), _MM_FROUND_CUR_DIRECTION))
-
-#define _mm_maskz_roundscale_round_sh(U, A, B, I, R)                           \
-  ((__m128h)__builtin_ia32_rndscalesh_round_mask(                              \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)(U), (int)(I), (int)(R)))
-
-#define _mm_reduce_sh(A, B, C)                                                 \
-  ((__m128h)__builtin_ia32_reducesh_mask(                                      \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)-1, (int)(C), _MM_FROUND_CUR_DIRECTION))
-
-#define _mm_mask_reduce_sh(W, U, A, B, C)                                      \
-  ((__m128h)__builtin_ia32_reducesh_mask(                                      \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)(__m128h)(W),        \
-      (__mmask8)(U), (int)(C), _MM_FROUND_CUR_DIRECTION))
-
-#define _mm_maskz_reduce_sh(U, A, B, C)                                        \
-  ((__m128h)__builtin_ia32_reducesh_mask(                                      \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)(U), (int)(C), _MM_FROUND_CUR_DIRECTION))
-
-#define _mm_reduce_round_sh(A, B, C, R)                                        \
-  ((__m128h)__builtin_ia32_reducesh_mask(                                      \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)-1, (int)(C), (int)(R)))
-
-#define _mm_mask_reduce_round_sh(W, U, A, B, C, R)                             \
-  ((__m128h)__builtin_ia32_reducesh_mask(                                      \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)(__m128h)(W),        \
-      (__mmask8)(U), (int)(C), (int)(R)))
-
-#define _mm_maskz_reduce_round_sh(U, A, B, C, R)                               \
-  ((__m128h)__builtin_ia32_reducesh_mask(                                      \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)(U), (int)(C), (int)(R)))
-
-#define _mm512_sqrt_round_ph(A, R)                                             \
-  ((__m512h)__builtin_ia32_sqrtph512((__v32hf)(__m512h)(A), (int)(R)))
-
-#define _mm512_mask_sqrt_round_ph(W, U, A, R)                                  \
-  ((__m512h)__builtin_ia32_selectph_512(                                       \
-      (__mmask32)(U), (__v32hf)_mm512_sqrt_round_ph((A), (R)),                 \
-      (__v32hf)(__m512h)(W)))
-
-#define _mm512_maskz_sqrt_round_ph(U, A, R)                                    \
-  ((__m512h)__builtin_ia32_selectph_512(                                       \
-      (__mmask32)(U), (__v32hf)_mm512_sqrt_round_ph((A), (R)),                 \
-      (__v32hf)_mm512_setzero_ph()))
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_sqrt_ph(__m512h __A) {
-  return (__m512h)__builtin_ia32_sqrtph512((__v32hf)__A,
-                                           _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_sqrt_ph(__m512h __W, __mmask32 __U, __m512h __A) {
-  return (__m512h)__builtin_ia32_selectph_512(
-      (__mmask32)(__U),
-      (__v32hf)__builtin_ia32_sqrtph512((__A), (_MM_FROUND_CUR_DIRECTION)),
-      (__v32hf)(__m512h)(__W));
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_sqrt_ph(__mmask32 __U, __m512h __A) {
-  return (__m512h)__builtin_ia32_selectph_512(
-      (__mmask32)(__U),
-      (__v32hf)__builtin_ia32_sqrtph512((__A), (_MM_FROUND_CUR_DIRECTION)),
-      (__v32hf)_mm512_setzero_ph());
-}
-
-#define _mm_sqrt_round_sh(A, B, R)                                             \
-  ((__m128h)__builtin_ia32_sqrtsh_round_mask(                                  \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)-1, (int)(R)))
-
-#define _mm_mask_sqrt_round_sh(W, U, A, B, R)                                  \
-  ((__m128h)__builtin_ia32_sqrtsh_round_mask(                                  \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)(__m128h)(W),        \
-      (__mmask8)(U), (int)(R)))
-
-#define _mm_maskz_sqrt_round_sh(U, A, B, R)                                    \
-  ((__m128h)__builtin_ia32_sqrtsh_round_mask(                                  \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)_mm_setzero_ph(),    \
-      (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_sqrt_sh(__m128h __A,
-                                                            __m128h __B) {
-  return (__m128h)__builtin_ia32_sqrtsh_round_mask(
-      (__v8hf)(__m128h)(__A), (__v8hf)(__m128h)(__B), (__v8hf)_mm_setzero_ph(),
-      (__mmask8)-1, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_sqrt_sh(__m128h __W,
-                                                                 __mmask32 __U,
-                                                                 __m128h __A,
-                                                                 __m128h __B) {
-  return (__m128h)__builtin_ia32_sqrtsh_round_mask(
-      (__v8hf)(__m128h)(__A), (__v8hf)(__m128h)(__B), (__v8hf)(__m128h)(__W),
-      (__mmask8)(__U), _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_maskz_sqrt_sh(__mmask32 __U,
-                                                                  __m128h __A,
-                                                                  __m128h __B) {
-  return (__m128h)__builtin_ia32_sqrtsh_round_mask(
-      (__v8hf)(__m128h)(__A), (__v8hf)(__m128h)(__B), (__v8hf)_mm_setzero_ph(),
-      (__mmask8)(__U), _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_mask_fpclass_ph_mask(U, A, imm)                                 \
-  ((__mmask32)__builtin_ia32_fpclassph512_mask((__v32hf)(__m512h)(A),          \
-                                               (int)(imm), (__mmask32)(U)))
-
-#define _mm512_fpclass_ph_mask(A, imm)                                         \
-  ((__mmask32)__builtin_ia32_fpclassph512_mask((__v32hf)(__m512h)(A),          \
-                                               (int)(imm), (__mmask32)-1))
-
-#define _mm_fpclass_sh_mask(A, imm)                                            \
-  ((__mmask8)__builtin_ia32_fpclasssh_mask((__v8hf)(__m128h)(A), (int)(imm),   \
-                                           (__mmask8)-1))
-
-#define _mm_mask_fpclass_sh_mask(U, A, imm)                                    \
-  ((__mmask8)__builtin_ia32_fpclasssh_mask((__v8hf)(__m128h)(A), (int)(imm),   \
-                                           (__mmask8)(U)))
-
-#define _mm512_cvt_roundpd_ph(A, R)                                            \
-  ((__m128h)__builtin_ia32_vcvtpd2ph512_mask(                                  \
-      (__v8df)(A), (__v8hf)_mm_undefined_ph(), (__mmask8)(-1), (int)(R)))
-
-#define _mm512_mask_cvt_roundpd_ph(W, U, A, R)                                 \
-  ((__m128h)__builtin_ia32_vcvtpd2ph512_mask((__v8df)(A), (__v8hf)(W),         \
-                                             (__mmask8)(U), (int)(R)))
-
-#define _mm512_maskz_cvt_roundpd_ph(U, A, R)                                   \
-  ((__m128h)__builtin_ia32_vcvtpd2ph512_mask(                                  \
-      (__v8df)(A), (__v8hf)_mm_setzero_ph(), (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS512 _mm512_cvtpd_ph(__m512d __A) {
-  return (__m128h)__builtin_ia32_vcvtpd2ph512_mask(
-      (__v8df)__A, (__v8hf)_mm_setzero_ph(), (__mmask8)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS512
-_mm512_mask_cvtpd_ph(__m128h __W, __mmask8 __U, __m512d __A) {
-  return (__m128h)__builtin_ia32_vcvtpd2ph512_mask(
-      (__v8df)__A, (__v8hf)__W, (__mmask8)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvtpd_ph(__mmask8 __U, __m512d __A) {
-  return (__m128h)__builtin_ia32_vcvtpd2ph512_mask(
-      (__v8df)__A, (__v8hf)_mm_setzero_ph(), (__mmask8)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_cvt_roundph_pd(A, R)                                            \
-  ((__m512d)__builtin_ia32_vcvtph2pd512_mask(                                  \
-      (__v8hf)(A), (__v8df)_mm512_undefined_pd(), (__mmask8)(-1), (int)(R)))
-
-#define _mm512_mask_cvt_roundph_pd(W, U, A, R)                                 \
-  ((__m512d)__builtin_ia32_vcvtph2pd512_mask((__v8hf)(A), (__v8df)(W),         \
-                                             (__mmask8)(U), (int)(R)))
-
-#define _mm512_maskz_cvt_roundph_pd(U, A, R)                                   \
-  ((__m512d)__builtin_ia32_vcvtph2pd512_mask(                                  \
-      (__v8hf)(A), (__v8df)_mm512_setzero_pd(), (__mmask8)(U), (int)(R)))
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS512 _mm512_cvtph_pd(__m128h __A) {
-  return (__m512d)__builtin_ia32_vcvtph2pd512_mask(
-      (__v8hf)__A, (__v8df)_mm512_setzero_pd(), (__mmask8)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS512
-_mm512_mask_cvtph_pd(__m512d __W, __mmask8 __U, __m128h __A) {
-  return (__m512d)__builtin_ia32_vcvtph2pd512_mask(
-      (__v8hf)__A, (__v8df)__W, (__mmask8)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvtph_pd(__mmask8 __U, __m128h __A) {
-  return (__m512d)__builtin_ia32_vcvtph2pd512_mask(
-      (__v8hf)__A, (__v8df)_mm512_setzero_pd(), (__mmask8)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_cvt_roundsh_ss(A, B, R)                                            \
-  ((__m128)__builtin_ia32_vcvtsh2ss_round_mask((__v4sf)(A), (__v8hf)(B),       \
-                                               (__v4sf)_mm_undefined_ps(),     \
-                                               (__mmask8)(-1), (int)(R)))
-
-#define _mm_mask_cvt_roundsh_ss(W, U, A, B, R)                                 \
-  ((__m128)__builtin_ia32_vcvtsh2ss_round_mask(                                \
-      (__v4sf)(A), (__v8hf)(B), (__v4sf)(W), (__mmask8)(U), (int)(R)))
-
-#define _mm_maskz_cvt_roundsh_ss(U, A, B, R)                                   \
-  ((__m128)__builtin_ia32_vcvtsh2ss_round_mask((__v4sf)(A), (__v8hf)(B),       \
-                                               (__v4sf)_mm_setzero_ps(),       \
-                                               (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_cvtsh_ss(__m128 __A,
-                                                            __m128h __B) {
-  return (__m128)__builtin_ia32_vcvtsh2ss_round_mask(
-      (__v4sf)__A, (__v8hf)__B, (__v4sf)_mm_undefined_ps(), (__mmask8)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_mask_cvtsh_ss(__m128 __W,
-                                                                 __mmask8 __U,
-                                                                 __m128 __A,
-                                                                 __m128h __B) {
-  return (__m128)__builtin_ia32_vcvtsh2ss_round_mask((__v4sf)__A, (__v8hf)__B,
-                                                     (__v4sf)__W, (__mmask8)__U,
-                                                     _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_maskz_cvtsh_ss(__mmask8 __U,
-                                                                  __m128 __A,
-                                                                  __m128h __B) {
-  return (__m128)__builtin_ia32_vcvtsh2ss_round_mask(
-      (__v4sf)__A, (__v8hf)__B, (__v4sf)_mm_setzero_ps(), (__mmask8)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_cvt_roundss_sh(A, B, R)                                            \
-  ((__m128h)__builtin_ia32_vcvtss2sh_round_mask((__v8hf)(A), (__v4sf)(B),      \
-                                                (__v8hf)_mm_undefined_ph(),    \
-                                                (__mmask8)(-1), (int)(R)))
-
-#define _mm_mask_cvt_roundss_sh(W, U, A, B, R)                                 \
-  ((__m128h)__builtin_ia32_vcvtss2sh_round_mask(                               \
-      (__v8hf)(A), (__v4sf)(B), (__v8hf)(W), (__mmask8)(U), (int)(R)))
-
-#define _mm_maskz_cvt_roundss_sh(U, A, B, R)                                   \
-  ((__m128h)__builtin_ia32_vcvtss2sh_round_mask((__v8hf)(A), (__v4sf)(B),      \
-                                                (__v8hf)_mm_setzero_ph(),      \
-                                                (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_cvtss_sh(__m128h __A,
-                                                             __m128 __B) {
-  return (__m128h)__builtin_ia32_vcvtss2sh_round_mask(
-      (__v8hf)__A, (__v4sf)__B, (__v8hf)_mm_undefined_ph(), (__mmask8)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_cvtss_sh(__m128h __W,
-                                                                  __mmask8 __U,
-                                                                  __m128h __A,
-                                                                  __m128 __B) {
-  return (__m128h)__builtin_ia32_vcvtss2sh_round_mask(
-      (__v8hf)__A, (__v4sf)__B, (__v8hf)__W, (__mmask8)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_maskz_cvtss_sh(__mmask8 __U,
-                                                                   __m128h __A,
-                                                                   __m128 __B) {
-  return (__m128h)__builtin_ia32_vcvtss2sh_round_mask(
-      (__v8hf)__A, (__v4sf)__B, (__v8hf)_mm_setzero_ph(), (__mmask8)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_cvt_roundsd_sh(A, B, R)                                            \
-  ((__m128h)__builtin_ia32_vcvtsd2sh_round_mask((__v8hf)(A), (__v2df)(B),      \
-                                                (__v8hf)_mm_undefined_ph(),    \
-                                                (__mmask8)(-1), (int)(R)))
-
-#define _mm_mask_cvt_roundsd_sh(W, U, A, B, R)                                 \
-  ((__m128h)__builtin_ia32_vcvtsd2sh_round_mask(                               \
-      (__v8hf)(A), (__v2df)(B), (__v8hf)(W), (__mmask8)(U), (int)(R)))
-
-#define _mm_maskz_cvt_roundsd_sh(U, A, B, R)                                   \
-  ((__m128h)__builtin_ia32_vcvtsd2sh_round_mask((__v8hf)(A), (__v2df)(B),      \
-                                                (__v8hf)_mm_setzero_ph(),      \
-                                                (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_cvtsd_sh(__m128h __A,
-                                                             __m128d __B) {
-  return (__m128h)__builtin_ia32_vcvtsd2sh_round_mask(
-      (__v8hf)__A, (__v2df)__B, (__v8hf)_mm_undefined_ph(), (__mmask8)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_cvtsd_sh(__m128h __W,
-                                                                  __mmask8 __U,
-                                                                  __m128h __A,
-                                                                  __m128d __B) {
-  return (__m128h)__builtin_ia32_vcvtsd2sh_round_mask(
-      (__v8hf)__A, (__v2df)__B, (__v8hf)__W, (__mmask8)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_cvtsd_sh(__mmask8 __U, __m128h __A, __m128d __B) {
-  return (__m128h)__builtin_ia32_vcvtsd2sh_round_mask(
-      (__v8hf)__A, (__v2df)__B, (__v8hf)_mm_setzero_ph(), (__mmask8)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_cvt_roundsh_sd(A, B, R)                                            \
-  ((__m128d)__builtin_ia32_vcvtsh2sd_round_mask((__v2df)(A), (__v8hf)(B),      \
-                                                (__v2df)_mm_undefined_pd(),    \
-                                                (__mmask8)(-1), (int)(R)))
-
-#define _mm_mask_cvt_roundsh_sd(W, U, A, B, R)                                 \
-  ((__m128d)__builtin_ia32_vcvtsh2sd_round_mask(                               \
-      (__v2df)(A), (__v8hf)(B), (__v2df)(W), (__mmask8)(U), (int)(R)))
-
-#define _mm_maskz_cvt_roundsh_sd(U, A, B, R)                                   \
-  ((__m128d)__builtin_ia32_vcvtsh2sd_round_mask((__v2df)(A), (__v8hf)(B),      \
-                                                (__v2df)_mm_setzero_pd(),      \
-                                                (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_cvtsh_sd(__m128d __A,
-                                                             __m128h __B) {
-  return (__m128d)__builtin_ia32_vcvtsh2sd_round_mask(
-      (__v2df)__A, (__v8hf)__B, (__v2df)_mm_undefined_pd(), (__mmask8)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_mask_cvtsh_sd(__m128d __W,
-                                                                  __mmask8 __U,
-                                                                  __m128d __A,
-                                                                  __m128h __B) {
-  return (__m128d)__builtin_ia32_vcvtsh2sd_round_mask(
-      (__v2df)__A, (__v8hf)__B, (__v2df)__W, (__mmask8)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS128
-_mm_maskz_cvtsh_sd(__mmask8 __U, __m128d __A, __m128h __B) {
-  return (__m128d)__builtin_ia32_vcvtsh2sd_round_mask(
-      (__v2df)__A, (__v8hf)__B, (__v2df)_mm_setzero_pd(), (__mmask8)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_cvt_roundph_epi16(A, R)                                         \
-  ((__m512i)__builtin_ia32_vcvtph2w512_mask((__v32hf)(A),                      \
-                                            (__v32hi)_mm512_undefined_epi32(), \
-                                            (__mmask32)(-1), (int)(R)))
-
-#define _mm512_mask_cvt_roundph_epi16(W, U, A, R)                              \
-  ((__m512i)__builtin_ia32_vcvtph2w512_mask((__v32hf)(A), (__v32hi)(W),        \
-                                            (__mmask32)(U), (int)(R)))
-
-#define _mm512_maskz_cvt_roundph_epi16(U, A, R)                                \
-  ((__m512i)__builtin_ia32_vcvtph2w512_mask((__v32hf)(A),                      \
-                                            (__v32hi)_mm512_setzero_epi32(),   \
-                                            (__mmask32)(U), (int)(R)))
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_cvtph_epi16(__m512h __A) {
-  return (__m512i)__builtin_ia32_vcvtph2w512_mask(
-      (__v32hf)__A, (__v32hi)_mm512_setzero_epi32(), (__mmask32)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_mask_cvtph_epi16(__m512i __W, __mmask32 __U, __m512h __A) {
-  return (__m512i)__builtin_ia32_vcvtph2w512_mask(
-      (__v32hf)__A, (__v32hi)__W, (__mmask32)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvtph_epi16(__mmask32 __U, __m512h __A) {
-  return (__m512i)__builtin_ia32_vcvtph2w512_mask(
-      (__v32hf)__A, (__v32hi)_mm512_setzero_epi32(), (__mmask32)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_cvtt_roundph_epi16(A, R)                                        \
-  ((__m512i)__builtin_ia32_vcvttph2w512_mask(                                  \
-      (__v32hf)(A), (__v32hi)_mm512_undefined_epi32(), (__mmask32)(-1),        \
-      (int)(R)))
-
-#define _mm512_mask_cvtt_roundph_epi16(W, U, A, R)                             \
-  ((__m512i)__builtin_ia32_vcvttph2w512_mask((__v32hf)(A), (__v32hi)(W),       \
-                                             (__mmask32)(U), (int)(R)))
-
-#define _mm512_maskz_cvtt_roundph_epi16(U, A, R)                               \
-  ((__m512i)__builtin_ia32_vcvttph2w512_mask((__v32hf)(A),                     \
-                                             (__v32hi)_mm512_setzero_epi32(),  \
-                                             (__mmask32)(U), (int)(R)))
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_cvttph_epi16(__m512h __A) {
-  return (__m512i)__builtin_ia32_vcvttph2w512_mask(
-      (__v32hf)__A, (__v32hi)_mm512_setzero_epi32(), (__mmask32)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_mask_cvttph_epi16(__m512i __W, __mmask32 __U, __m512h __A) {
-  return (__m512i)__builtin_ia32_vcvttph2w512_mask(
-      (__v32hf)__A, (__v32hi)__W, (__mmask32)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvttph_epi16(__mmask32 __U, __m512h __A) {
-  return (__m512i)__builtin_ia32_vcvttph2w512_mask(
-      (__v32hf)__A, (__v32hi)_mm512_setzero_epi32(), (__mmask32)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_cvt_roundepi16_ph(A, R)                                         \
-  ((__m512h)__builtin_ia32_vcvtw2ph512_mask((__v32hi)(A),                      \
-                                            (__v32hf)_mm512_undefined_ph(),    \
-                                            (__mmask32)(-1), (int)(R)))
-
-#define _mm512_mask_cvt_roundepi16_ph(W, U, A, R)                              \
-  ((__m512h)__builtin_ia32_vcvtw2ph512_mask((__v32hi)(A), (__v32hf)(W),        \
-                                            (__mmask32)(U), (int)(R)))
-
-#define _mm512_maskz_cvt_roundepi16_ph(U, A, R)                                \
-  ((__m512h)__builtin_ia32_vcvtw2ph512_mask(                                   \
-      (__v32hi)(A), (__v32hf)_mm512_setzero_ph(), (__mmask32)(U), (int)(R)))
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_cvtepi16_ph(__m512i __A) {
-  return (__m512h)__builtin_ia32_vcvtw2ph512_mask(
-      (__v32hi)__A, (__v32hf)_mm512_setzero_ph(), (__mmask32)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_cvtepi16_ph(__m512h __W, __mmask32 __U, __m512i __A) {
-  return (__m512h)__builtin_ia32_vcvtw2ph512_mask(
-      (__v32hi)__A, (__v32hf)__W, (__mmask32)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvtepi16_ph(__mmask32 __U, __m512i __A) {
-  return (__m512h)__builtin_ia32_vcvtw2ph512_mask(
-      (__v32hi)__A, (__v32hf)_mm512_setzero_ph(), (__mmask32)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_cvt_roundph_epu16(A, R)                                         \
-  ((__m512i)__builtin_ia32_vcvtph2uw512_mask(                                  \
-      (__v32hf)(A), (__v32hu)_mm512_undefined_epi32(), (__mmask32)(-1),        \
-      (int)(R)))
-
-#define _mm512_mask_cvt_roundph_epu16(W, U, A, R)                              \
-  ((__m512i)__builtin_ia32_vcvtph2uw512_mask((__v32hf)(A), (__v32hu)(W),       \
-                                             (__mmask32)(U), (int)(R)))
-
-#define _mm512_maskz_cvt_roundph_epu16(U, A, R)                                \
-  ((__m512i)__builtin_ia32_vcvtph2uw512_mask((__v32hf)(A),                     \
-                                             (__v32hu)_mm512_setzero_epi32(),  \
-                                             (__mmask32)(U), (int)(R)))
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_cvtph_epu16(__m512h __A) {
-  return (__m512i)__builtin_ia32_vcvtph2uw512_mask(
-      (__v32hf)__A, (__v32hu)_mm512_setzero_epi32(), (__mmask32)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_mask_cvtph_epu16(__m512i __W, __mmask32 __U, __m512h __A) {
-  return (__m512i)__builtin_ia32_vcvtph2uw512_mask(
-      (__v32hf)__A, (__v32hu)__W, (__mmask32)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvtph_epu16(__mmask32 __U, __m512h __A) {
-  return (__m512i)__builtin_ia32_vcvtph2uw512_mask(
-      (__v32hf)__A, (__v32hu)_mm512_setzero_epi32(), (__mmask32)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_cvtt_roundph_epu16(A, R)                                        \
-  ((__m512i)__builtin_ia32_vcvttph2uw512_mask(                                 \
-      (__v32hf)(A), (__v32hu)_mm512_undefined_epi32(), (__mmask32)(-1),        \
-      (int)(R)))
-
-#define _mm512_mask_cvtt_roundph_epu16(W, U, A, R)                             \
-  ((__m512i)__builtin_ia32_vcvttph2uw512_mask((__v32hf)(A), (__v32hu)(W),      \
-                                              (__mmask32)(U), (int)(R)))
-
-#define _mm512_maskz_cvtt_roundph_epu16(U, A, R)                               \
-  ((__m512i)__builtin_ia32_vcvttph2uw512_mask((__v32hf)(A),                    \
-                                              (__v32hu)_mm512_setzero_epi32(), \
-                                              (__mmask32)(U), (int)(R)))
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_cvttph_epu16(__m512h __A) {
-  return (__m512i)__builtin_ia32_vcvttph2uw512_mask(
-      (__v32hf)__A, (__v32hu)_mm512_setzero_epi32(), (__mmask32)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_mask_cvttph_epu16(__m512i __W, __mmask32 __U, __m512h __A) {
-  return (__m512i)__builtin_ia32_vcvttph2uw512_mask(
-      (__v32hf)__A, (__v32hu)__W, (__mmask32)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvttph_epu16(__mmask32 __U, __m512h __A) {
-  return (__m512i)__builtin_ia32_vcvttph2uw512_mask(
-      (__v32hf)__A, (__v32hu)_mm512_setzero_epi32(), (__mmask32)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_cvt_roundepu16_ph(A, R)                                         \
-  ((__m512h)__builtin_ia32_vcvtuw2ph512_mask((__v32hu)(A),                     \
-                                             (__v32hf)_mm512_undefined_ph(),   \
-                                             (__mmask32)(-1), (int)(R)))
-
-#define _mm512_mask_cvt_roundepu16_ph(W, U, A, R)                              \
-  ((__m512h)__builtin_ia32_vcvtuw2ph512_mask((__v32hu)(A), (__v32hf)(W),       \
-                                             (__mmask32)(U), (int)(R)))
-
-#define _mm512_maskz_cvt_roundepu16_ph(U, A, R)                                \
-  ((__m512h)__builtin_ia32_vcvtuw2ph512_mask(                                  \
-      (__v32hu)(A), (__v32hf)_mm512_setzero_ph(), (__mmask32)(U), (int)(R)))
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_cvtepu16_ph(__m512i __A) {
-  return (__m512h)__builtin_ia32_vcvtuw2ph512_mask(
-      (__v32hu)__A, (__v32hf)_mm512_setzero_ph(), (__mmask32)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_cvtepu16_ph(__m512h __W, __mmask32 __U, __m512i __A) {
-  return (__m512h)__builtin_ia32_vcvtuw2ph512_mask(
-      (__v32hu)__A, (__v32hf)__W, (__mmask32)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvtepu16_ph(__mmask32 __U, __m512i __A) {
-  return (__m512h)__builtin_ia32_vcvtuw2ph512_mask(
-      (__v32hu)__A, (__v32hf)_mm512_setzero_ph(), (__mmask32)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_cvt_roundph_epi32(A, R)                                         \
-  ((__m512i)__builtin_ia32_vcvtph2dq512_mask(                                  \
-      (__v16hf)(A), (__v16si)_mm512_undefined_epi32(), (__mmask16)(-1),        \
-      (int)(R)))
-
-#define _mm512_mask_cvt_roundph_epi32(W, U, A, R)                              \
-  ((__m512i)__builtin_ia32_vcvtph2dq512_mask((__v16hf)(A), (__v16si)(W),       \
-                                             (__mmask16)(U), (int)(R)))
-
-#define _mm512_maskz_cvt_roundph_epi32(U, A, R)                                \
-  ((__m512i)__builtin_ia32_vcvtph2dq512_mask((__v16hf)(A),                     \
-                                             (__v16si)_mm512_setzero_epi32(),  \
-                                             (__mmask16)(U), (int)(R)))
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_cvtph_epi32(__m256h __A) {
-  return (__m512i)__builtin_ia32_vcvtph2dq512_mask(
-      (__v16hf)__A, (__v16si)_mm512_setzero_epi32(), (__mmask16)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_mask_cvtph_epi32(__m512i __W, __mmask16 __U, __m256h __A) {
-  return (__m512i)__builtin_ia32_vcvtph2dq512_mask(
-      (__v16hf)__A, (__v16si)__W, (__mmask16)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvtph_epi32(__mmask16 __U, __m256h __A) {
-  return (__m512i)__builtin_ia32_vcvtph2dq512_mask(
-      (__v16hf)__A, (__v16si)_mm512_setzero_epi32(), (__mmask16)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_cvt_roundph_epu32(A, R)                                         \
-  ((__m512i)__builtin_ia32_vcvtph2udq512_mask(                                 \
-      (__v16hf)(A), (__v16su)_mm512_undefined_epi32(), (__mmask16)(-1),        \
-      (int)(R)))
-
-#define _mm512_mask_cvt_roundph_epu32(W, U, A, R)                              \
-  ((__m512i)__builtin_ia32_vcvtph2udq512_mask((__v16hf)(A), (__v16su)(W),      \
-                                              (__mmask16)(U), (int)(R)))
-
-#define _mm512_maskz_cvt_roundph_epu32(U, A, R)                                \
-  ((__m512i)__builtin_ia32_vcvtph2udq512_mask((__v16hf)(A),                    \
-                                              (__v16su)_mm512_setzero_epi32(), \
-                                              (__mmask16)(U), (int)(R)))
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_cvtph_epu32(__m256h __A) {
-  return (__m512i)__builtin_ia32_vcvtph2udq512_mask(
-      (__v16hf)__A, (__v16su)_mm512_setzero_epi32(), (__mmask16)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_mask_cvtph_epu32(__m512i __W, __mmask16 __U, __m256h __A) {
-  return (__m512i)__builtin_ia32_vcvtph2udq512_mask(
-      (__v16hf)__A, (__v16su)__W, (__mmask16)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvtph_epu32(__mmask16 __U, __m256h __A) {
-  return (__m512i)__builtin_ia32_vcvtph2udq512_mask(
-      (__v16hf)__A, (__v16su)_mm512_setzero_epi32(), (__mmask16)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_cvt_roundepi32_ph(A, R)                                         \
-  ((__m256h)__builtin_ia32_vcvtdq2ph512_mask((__v16si)(A),                     \
-                                             (__v16hf)_mm256_undefined_ph(),   \
-                                             (__mmask16)(-1), (int)(R)))
-
-#define _mm512_mask_cvt_roundepi32_ph(W, U, A, R)                              \
-  ((__m256h)__builtin_ia32_vcvtdq2ph512_mask((__v16si)(A), (__v16hf)(W),       \
-                                             (__mmask16)(U), (int)(R)))
-
-#define _mm512_maskz_cvt_roundepi32_ph(U, A, R)                                \
-  ((__m256h)__builtin_ia32_vcvtdq2ph512_mask(                                  \
-      (__v16si)(A), (__v16hf)_mm256_setzero_ph(), (__mmask16)(U), (int)(R)))
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS512
-_mm512_cvtepi32_ph(__m512i __A) {
-  return (__m256h)__builtin_ia32_vcvtdq2ph512_mask(
-      (__v16si)__A, (__v16hf)_mm256_setzero_ph(), (__mmask16)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS512
-_mm512_mask_cvtepi32_ph(__m256h __W, __mmask16 __U, __m512i __A) {
-  return (__m256h)__builtin_ia32_vcvtdq2ph512_mask(
-      (__v16si)__A, (__v16hf)__W, (__mmask16)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvtepi32_ph(__mmask16 __U, __m512i __A) {
-  return (__m256h)__builtin_ia32_vcvtdq2ph512_mask(
-      (__v16si)__A, (__v16hf)_mm256_setzero_ph(), (__mmask16)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_cvt_roundepu32_ph(A, R)                                         \
-  ((__m256h)__builtin_ia32_vcvtudq2ph512_mask((__v16su)(A),                    \
-                                              (__v16hf)_mm256_undefined_ph(),  \
-                                              (__mmask16)(-1), (int)(R)))
-
-#define _mm512_mask_cvt_roundepu32_ph(W, U, A, R)                              \
-  ((__m256h)__builtin_ia32_vcvtudq2ph512_mask((__v16su)(A), (__v16hf)(W),      \
-                                              (__mmask16)(U), (int)(R)))
-
-#define _mm512_maskz_cvt_roundepu32_ph(U, A, R)                                \
-  ((__m256h)__builtin_ia32_vcvtudq2ph512_mask(                                 \
-      (__v16su)(A), (__v16hf)_mm256_setzero_ph(), (__mmask16)(U), (int)(R)))
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS512
-_mm512_cvtepu32_ph(__m512i __A) {
-  return (__m256h)__builtin_ia32_vcvtudq2ph512_mask(
-      (__v16su)__A, (__v16hf)_mm256_setzero_ph(), (__mmask16)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS512
-_mm512_mask_cvtepu32_ph(__m256h __W, __mmask16 __U, __m512i __A) {
-  return (__m256h)__builtin_ia32_vcvtudq2ph512_mask(
-      (__v16su)__A, (__v16hf)__W, (__mmask16)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvtepu32_ph(__mmask16 __U, __m512i __A) {
-  return (__m256h)__builtin_ia32_vcvtudq2ph512_mask(
-      (__v16su)__A, (__v16hf)_mm256_setzero_ph(), (__mmask16)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_cvtt_roundph_epi32(A, R)                                        \
-  ((__m512i)__builtin_ia32_vcvttph2dq512_mask(                                 \
-      (__v16hf)(A), (__v16si)_mm512_undefined_epi32(), (__mmask16)(-1),        \
-      (int)(R)))
-
-#define _mm512_mask_cvtt_roundph_epi32(W, U, A, R)                             \
-  ((__m512i)__builtin_ia32_vcvttph2dq512_mask((__v16hf)(A), (__v16si)(W),      \
-                                              (__mmask16)(U), (int)(R)))
-
-#define _mm512_maskz_cvtt_roundph_epi32(U, A, R)                               \
-  ((__m512i)__builtin_ia32_vcvttph2dq512_mask((__v16hf)(A),                    \
-                                              (__v16si)_mm512_setzero_epi32(), \
-                                              (__mmask16)(U), (int)(R)))
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_cvttph_epi32(__m256h __A) {
-  return (__m512i)__builtin_ia32_vcvttph2dq512_mask(
-      (__v16hf)__A, (__v16si)_mm512_setzero_epi32(), (__mmask16)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_mask_cvttph_epi32(__m512i __W, __mmask16 __U, __m256h __A) {
-  return (__m512i)__builtin_ia32_vcvttph2dq512_mask(
-      (__v16hf)__A, (__v16si)__W, (__mmask16)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvttph_epi32(__mmask16 __U, __m256h __A) {
-  return (__m512i)__builtin_ia32_vcvttph2dq512_mask(
-      (__v16hf)__A, (__v16si)_mm512_setzero_epi32(), (__mmask16)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_cvtt_roundph_epu32(A, R)                                        \
-  ((__m512i)__builtin_ia32_vcvttph2udq512_mask(                                \
-      (__v16hf)(A), (__v16su)_mm512_undefined_epi32(), (__mmask16)(-1),        \
-      (int)(R)))
-
-#define _mm512_mask_cvtt_roundph_epu32(W, U, A, R)                             \
-  ((__m512i)__builtin_ia32_vcvttph2udq512_mask((__v16hf)(A), (__v16su)(W),     \
-                                               (__mmask16)(U), (int)(R)))
-
-#define _mm512_maskz_cvtt_roundph_epu32(U, A, R)                               \
-  ((__m512i)__builtin_ia32_vcvttph2udq512_mask(                                \
-      (__v16hf)(A), (__v16su)_mm512_setzero_epi32(), (__mmask16)(U),           \
-      (int)(R)))
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_cvttph_epu32(__m256h __A) {
-  return (__m512i)__builtin_ia32_vcvttph2udq512_mask(
-      (__v16hf)__A, (__v16su)_mm512_setzero_epi32(), (__mmask16)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_mask_cvttph_epu32(__m512i __W, __mmask16 __U, __m256h __A) {
-  return (__m512i)__builtin_ia32_vcvttph2udq512_mask(
-      (__v16hf)__A, (__v16su)__W, (__mmask16)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvttph_epu32(__mmask16 __U, __m256h __A) {
-  return (__m512i)__builtin_ia32_vcvttph2udq512_mask(
-      (__v16hf)__A, (__v16su)_mm512_setzero_epi32(), (__mmask16)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_cvt_roundepi64_ph(A, R)                                         \
-  ((__m128h)__builtin_ia32_vcvtqq2ph512_mask(                                  \
-      (__v8di)(A), (__v8hf)_mm_undefined_ph(), (__mmask8)(-1), (int)(R)))
-
-#define _mm512_mask_cvt_roundepi64_ph(W, U, A, R)                              \
-  ((__m128h)__builtin_ia32_vcvtqq2ph512_mask((__v8di)(A), (__v8hf)(W),         \
-                                             (__mmask8)(U), (int)(R)))
-
-#define _mm512_maskz_cvt_roundepi64_ph(U, A, R)                                \
-  ((__m128h)__builtin_ia32_vcvtqq2ph512_mask(                                  \
-      (__v8di)(A), (__v8hf)_mm_setzero_ph(), (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS512
-_mm512_cvtepi64_ph(__m512i __A) {
-  return (__m128h)__builtin_ia32_vcvtqq2ph512_mask(
-      (__v8di)__A, (__v8hf)_mm_setzero_ph(), (__mmask8)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS512
-_mm512_mask_cvtepi64_ph(__m128h __W, __mmask8 __U, __m512i __A) {
-  return (__m128h)__builtin_ia32_vcvtqq2ph512_mask(
-      (__v8di)__A, (__v8hf)__W, (__mmask8)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvtepi64_ph(__mmask8 __U, __m512i __A) {
-  return (__m128h)__builtin_ia32_vcvtqq2ph512_mask(
-      (__v8di)__A, (__v8hf)_mm_setzero_ph(), (__mmask8)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_cvt_roundph_epi64(A, R)                                         \
-  ((__m512i)__builtin_ia32_vcvtph2qq512_mask((__v8hf)(A),                      \
-                                             (__v8di)_mm512_undefined_epi32(), \
-                                             (__mmask8)(-1), (int)(R)))
-
-#define _mm512_mask_cvt_roundph_epi64(W, U, A, R)                              \
-  ((__m512i)__builtin_ia32_vcvtph2qq512_mask((__v8hf)(A), (__v8di)(W),         \
-                                             (__mmask8)(U), (int)(R)))
-
-#define _mm512_maskz_cvt_roundph_epi64(U, A, R)                                \
-  ((__m512i)__builtin_ia32_vcvtph2qq512_mask(                                  \
-      (__v8hf)(A), (__v8di)_mm512_setzero_epi32(), (__mmask8)(U), (int)(R)))
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_cvtph_epi64(__m128h __A) {
-  return (__m512i)__builtin_ia32_vcvtph2qq512_mask(
-      (__v8hf)__A, (__v8di)_mm512_setzero_epi32(), (__mmask8)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_mask_cvtph_epi64(__m512i __W, __mmask8 __U, __m128h __A) {
-  return (__m512i)__builtin_ia32_vcvtph2qq512_mask(
-      (__v8hf)__A, (__v8di)__W, (__mmask8)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvtph_epi64(__mmask8 __U, __m128h __A) {
-  return (__m512i)__builtin_ia32_vcvtph2qq512_mask(
-      (__v8hf)__A, (__v8di)_mm512_setzero_epi32(), (__mmask8)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_cvt_roundepu64_ph(A, R)                                         \
-  ((__m128h)__builtin_ia32_vcvtuqq2ph512_mask(                                 \
-      (__v8du)(A), (__v8hf)_mm_undefined_ph(), (__mmask8)(-1), (int)(R)))
-
-#define _mm512_mask_cvt_roundepu64_ph(W, U, A, R)                              \
-  ((__m128h)__builtin_ia32_vcvtuqq2ph512_mask((__v8du)(A), (__v8hf)(W),        \
-                                              (__mmask8)(U), (int)(R)))
-
-#define _mm512_maskz_cvt_roundepu64_ph(U, A, R)                                \
-  ((__m128h)__builtin_ia32_vcvtuqq2ph512_mask(                                 \
-      (__v8du)(A), (__v8hf)_mm_setzero_ph(), (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS512
-_mm512_cvtepu64_ph(__m512i __A) {
-  return (__m128h)__builtin_ia32_vcvtuqq2ph512_mask(
-      (__v8du)__A, (__v8hf)_mm_setzero_ph(), (__mmask8)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS512
-_mm512_mask_cvtepu64_ph(__m128h __W, __mmask8 __U, __m512i __A) {
-  return (__m128h)__builtin_ia32_vcvtuqq2ph512_mask(
-      (__v8du)__A, (__v8hf)__W, (__mmask8)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvtepu64_ph(__mmask8 __U, __m512i __A) {
-  return (__m128h)__builtin_ia32_vcvtuqq2ph512_mask(
-      (__v8du)__A, (__v8hf)_mm_setzero_ph(), (__mmask8)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_cvt_roundph_epu64(A, R)                                         \
-  ((__m512i)__builtin_ia32_vcvtph2uqq512_mask(                                 \
-      (__v8hf)(A), (__v8du)_mm512_undefined_epi32(), (__mmask8)(-1),           \
-      (int)(R)))
-
-#define _mm512_mask_cvt_roundph_epu64(W, U, A, R)                              \
-  ((__m512i)__builtin_ia32_vcvtph2uqq512_mask((__v8hf)(A), (__v8du)(W),        \
-                                              (__mmask8)(U), (int)(R)))
-
-#define _mm512_maskz_cvt_roundph_epu64(U, A, R)                                \
-  ((__m512i)__builtin_ia32_vcvtph2uqq512_mask(                                 \
-      (__v8hf)(A), (__v8du)_mm512_setzero_epi32(), (__mmask8)(U), (int)(R)))
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_cvtph_epu64(__m128h __A) {
-  return (__m512i)__builtin_ia32_vcvtph2uqq512_mask(
-      (__v8hf)__A, (__v8du)_mm512_setzero_epi32(), (__mmask8)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_mask_cvtph_epu64(__m512i __W, __mmask8 __U, __m128h __A) {
-  return (__m512i)__builtin_ia32_vcvtph2uqq512_mask(
-      (__v8hf)__A, (__v8du)__W, (__mmask8)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvtph_epu64(__mmask8 __U, __m128h __A) {
-  return (__m512i)__builtin_ia32_vcvtph2uqq512_mask(
-      (__v8hf)__A, (__v8du)_mm512_setzero_epi32(), (__mmask8)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_cvtt_roundph_epi64(A, R)                                        \
-  ((__m512i)__builtin_ia32_vcvttph2qq512_mask(                                 \
-      (__v8hf)(A), (__v8di)_mm512_undefined_epi32(), (__mmask8)(-1),           \
-      (int)(R)))
-
-#define _mm512_mask_cvtt_roundph_epi64(W, U, A, R)                             \
-  ((__m512i)__builtin_ia32_vcvttph2qq512_mask((__v8hf)(A), (__v8di)(W),        \
-                                              (__mmask8)(U), (int)(R)))
-
-#define _mm512_maskz_cvtt_roundph_epi64(U, A, R)                               \
-  ((__m512i)__builtin_ia32_vcvttph2qq512_mask(                                 \
-      (__v8hf)(A), (__v8di)_mm512_setzero_epi32(), (__mmask8)(U), (int)(R)))
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_cvttph_epi64(__m128h __A) {
-  return (__m512i)__builtin_ia32_vcvttph2qq512_mask(
-      (__v8hf)__A, (__v8di)_mm512_setzero_epi32(), (__mmask8)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_mask_cvttph_epi64(__m512i __W, __mmask8 __U, __m128h __A) {
-  return (__m512i)__builtin_ia32_vcvttph2qq512_mask(
-      (__v8hf)__A, (__v8di)__W, (__mmask8)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvttph_epi64(__mmask8 __U, __m128h __A) {
-  return (__m512i)__builtin_ia32_vcvttph2qq512_mask(
-      (__v8hf)__A, (__v8di)_mm512_setzero_epi32(), (__mmask8)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_cvtt_roundph_epu64(A, R)                                        \
-  ((__m512i)__builtin_ia32_vcvttph2uqq512_mask(                                \
-      (__v8hf)(A), (__v8du)_mm512_undefined_epi32(), (__mmask8)(-1),           \
-      (int)(R)))
-
-#define _mm512_mask_cvtt_roundph_epu64(W, U, A, R)                             \
-  ((__m512i)__builtin_ia32_vcvttph2uqq512_mask((__v8hf)(A), (__v8du)(W),       \
-                                               (__mmask8)(U), (int)(R)))
-
-#define _mm512_maskz_cvtt_roundph_epu64(U, A, R)                               \
-  ((__m512i)__builtin_ia32_vcvttph2uqq512_mask(                                \
-      (__v8hf)(A), (__v8du)_mm512_setzero_epi32(), (__mmask8)(U), (int)(R)))
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_cvttph_epu64(__m128h __A) {
-  return (__m512i)__builtin_ia32_vcvttph2uqq512_mask(
-      (__v8hf)__A, (__v8du)_mm512_setzero_epi32(), (__mmask8)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_mask_cvttph_epu64(__m512i __W, __mmask8 __U, __m128h __A) {
-  return (__m512i)__builtin_ia32_vcvttph2uqq512_mask(
-      (__v8hf)__A, (__v8du)__W, (__mmask8)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvttph_epu64(__mmask8 __U, __m128h __A) {
-  return (__m512i)__builtin_ia32_vcvttph2uqq512_mask(
-      (__v8hf)__A, (__v8du)_mm512_setzero_epi32(), (__mmask8)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_cvt_roundsh_i32(A, R)                                              \
-  ((int)__builtin_ia32_vcvtsh2si32((__v8hf)(A), (int)(R)))
-
-static __inline__ int __DEFAULT_FN_ATTRS128 _mm_cvtsh_i32(__m128h __A) {
-  return (int)__builtin_ia32_vcvtsh2si32((__v8hf)__A, _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_cvt_roundsh_u32(A, R)                                              \
-  ((unsigned int)__builtin_ia32_vcvtsh2usi32((__v8hf)(A), (int)(R)))
-
-static __inline__ unsigned int __DEFAULT_FN_ATTRS128
-_mm_cvtsh_u32(__m128h __A) {
-  return (unsigned int)__builtin_ia32_vcvtsh2usi32((__v8hf)__A,
-                                                   _MM_FROUND_CUR_DIRECTION);
-}
-
-#ifdef __x86_64__
-#define _mm_cvt_roundsh_i64(A, R)                                              \
-  ((long long)__builtin_ia32_vcvtsh2si64((__v8hf)(A), (int)(R)))
-
-static __inline__ long long __DEFAULT_FN_ATTRS128 _mm_cvtsh_i64(__m128h __A) {
-  return (long long)__builtin_ia32_vcvtsh2si64((__v8hf)__A,
-                                               _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_cvt_roundsh_u64(A, R)                                              \
-  ((unsigned long long)__builtin_ia32_vcvtsh2usi64((__v8hf)(A), (int)(R)))
-
-static __inline__ unsigned long long __DEFAULT_FN_ATTRS128
-_mm_cvtsh_u64(__m128h __A) {
-  return (unsigned long long)__builtin_ia32_vcvtsh2usi64(
-      (__v8hf)__A, _MM_FROUND_CUR_DIRECTION);
-}
-#endif // __x86_64__
-
-#define _mm_cvt_roundu32_sh(A, B, R)                                           \
-  ((__m128h)__builtin_ia32_vcvtusi2sh((__v8hf)(A), (unsigned int)(B), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_cvtu32_sh(__m128h __A, unsigned int __B) {
-  __A[0] = __B;
-  return __A;
-}
-
-#ifdef __x86_64__
-#define _mm_cvt_roundu64_sh(A, B, R)                                           \
-  ((__m128h)__builtin_ia32_vcvtusi642sh((__v8hf)(A), (unsigned long long)(B),  \
-                                        (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_cvtu64_sh(__m128h __A, unsigned long long __B) {
-  __A[0] = __B;
-  return __A;
-}
-#endif
-
-#define _mm_cvt_roundi32_sh(A, B, R)                                           \
-  ((__m128h)__builtin_ia32_vcvtsi2sh((__v8hf)(A), (int)(B), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_cvti32_sh(__m128h __A,
-                                                              int __B) {
-  __A[0] = __B;
-  return __A;
-}
-
-#ifdef __x86_64__
-#define _mm_cvt_roundi64_sh(A, B, R)                                           \
-  ((__m128h)__builtin_ia32_vcvtsi642sh((__v8hf)(A), (long long)(B), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_cvti64_sh(__m128h __A,
-                                                              long long __B) {
-  __A[0] = __B;
-  return __A;
-}
-#endif
-
-#define _mm_cvtt_roundsh_i32(A, R)                                             \
-  ((int)__builtin_ia32_vcvttsh2si32((__v8hf)(A), (int)(R)))
-
-static __inline__ int __DEFAULT_FN_ATTRS128 _mm_cvttsh_i32(__m128h __A) {
-  return (int)__builtin_ia32_vcvttsh2si32((__v8hf)__A,
-                                          _MM_FROUND_CUR_DIRECTION);
-}
-
-#ifdef __x86_64__
-#define _mm_cvtt_roundsh_i64(A, R)                                             \
-  ((long long)__builtin_ia32_vcvttsh2si64((__v8hf)(A), (int)(R)))
-
-static __inline__ long long __DEFAULT_FN_ATTRS128 _mm_cvttsh_i64(__m128h __A) {
-  return (long long)__builtin_ia32_vcvttsh2si64((__v8hf)__A,
-                                                _MM_FROUND_CUR_DIRECTION);
-}
-#endif
-
-#define _mm_cvtt_roundsh_u32(A, R)                                             \
-  ((unsigned int)__builtin_ia32_vcvttsh2usi32((__v8hf)(A), (int)(R)))
-
-static __inline__ unsigned int __DEFAULT_FN_ATTRS128
-_mm_cvttsh_u32(__m128h __A) {
-  return (unsigned int)__builtin_ia32_vcvttsh2usi32((__v8hf)__A,
-                                                    _MM_FROUND_CUR_DIRECTION);
-}
-
-#ifdef __x86_64__
-#define _mm_cvtt_roundsh_u64(A, R)                                             \
-  ((unsigned long long)__builtin_ia32_vcvttsh2usi64((__v8hf)(A), (int)(R)))
-
-static __inline__ unsigned long long __DEFAULT_FN_ATTRS128
-_mm_cvttsh_u64(__m128h __A) {
-  return (unsigned long long)__builtin_ia32_vcvttsh2usi64(
-      (__v8hf)__A, _MM_FROUND_CUR_DIRECTION);
-}
-#endif
-
-#define _mm512_cvtx_roundph_ps(A, R)                                           \
-  ((__m512)__builtin_ia32_vcvtph2psx512_mask((__v16hf)(A),                     \
-                                             (__v16sf)_mm512_undefined_ps(),   \
-                                             (__mmask16)(-1), (int)(R)))
-
-#define _mm512_mask_cvtx_roundph_ps(W, U, A, R)                                \
-  ((__m512)__builtin_ia32_vcvtph2psx512_mask((__v16hf)(A), (__v16sf)(W),       \
-                                             (__mmask16)(U), (int)(R)))
-
-#define _mm512_maskz_cvtx_roundph_ps(U, A, R)                                  \
-  ((__m512)__builtin_ia32_vcvtph2psx512_mask(                                  \
-      (__v16hf)(A), (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), (int)(R)))
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS512 _mm512_cvtxph_ps(__m256h __A) {
-  return (__m512)__builtin_ia32_vcvtph2psx512_mask(
-      (__v16hf)__A, (__v16sf)_mm512_setzero_ps(), (__mmask16)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS512
-_mm512_mask_cvtxph_ps(__m512 __W, __mmask16 __U, __m256h __A) {
-  return (__m512)__builtin_ia32_vcvtph2psx512_mask(
-      (__v16hf)__A, (__v16sf)__W, (__mmask16)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvtxph_ps(__mmask16 __U, __m256h __A) {
-  return (__m512)__builtin_ia32_vcvtph2psx512_mask(
-      (__v16hf)__A, (__v16sf)_mm512_setzero_ps(), (__mmask16)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_cvtx_roundps_ph(A, R)                                           \
-  ((__m256h)__builtin_ia32_vcvtps2phx512_mask((__v16sf)(A),                    \
-                                              (__v16hf)_mm256_undefined_ph(),  \
-                                              (__mmask16)(-1), (int)(R)))
-
-#define _mm512_mask_cvtx_roundps_ph(W, U, A, R)                                \
-  ((__m256h)__builtin_ia32_vcvtps2phx512_mask((__v16sf)(A), (__v16hf)(W),      \
-                                              (__mmask16)(U), (int)(R)))
-
-#define _mm512_maskz_cvtx_roundps_ph(U, A, R)                                  \
-  ((__m256h)__builtin_ia32_vcvtps2phx512_mask(                                 \
-      (__v16sf)(A), (__v16hf)_mm256_setzero_ph(), (__mmask16)(U), (int)(R)))
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS512 _mm512_cvtxps_ph(__m512 __A) {
-  return (__m256h)__builtin_ia32_vcvtps2phx512_mask(
-      (__v16sf)__A, (__v16hf)_mm256_setzero_ph(), (__mmask16)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS512
-_mm512_mask_cvtxps_ph(__m256h __W, __mmask16 __U, __m512 __A) {
-  return (__m256h)__builtin_ia32_vcvtps2phx512_mask(
-      (__v16sf)__A, (__v16hf)__W, (__mmask16)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS512
-_mm512_maskz_cvtxps_ph(__mmask16 __U, __m512 __A) {
-  return (__m256h)__builtin_ia32_vcvtps2phx512_mask(
-      (__v16sf)__A, (__v16hf)_mm256_setzero_ph(), (__mmask16)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_fmadd_round_ph(A, B, C, R)                                      \
-  ((__m512h)__builtin_ia32_vfmaddph512_mask(                                   \
-      (__v32hf)(__m512h)(A), (__v32hf)(__m512h)(B), (__v32hf)(__m512h)(C),     \
-      (__mmask32)-1, (int)(R)))
-
-#define _mm512_mask_fmadd_round_ph(A, U, B, C, R)                              \
-  ((__m512h)__builtin_ia32_vfmaddph512_mask(                                   \
-      (__v32hf)(__m512h)(A), (__v32hf)(__m512h)(B), (__v32hf)(__m512h)(C),     \
-      (__mmask32)(U), (int)(R)))
-
-#define _mm512_mask3_fmadd_round_ph(A, B, C, U, R)                             \
-  ((__m512h)__builtin_ia32_vfmaddph512_mask3(                                  \
-      (__v32hf)(__m512h)(A), (__v32hf)(__m512h)(B), (__v32hf)(__m512h)(C),     \
-      (__mmask32)(U), (int)(R)))
-
-#define _mm512_maskz_fmadd_round_ph(U, A, B, C, R)                             \
-  ((__m512h)__builtin_ia32_vfmaddph512_maskz(                                  \
-      (__v32hf)(__m512h)(A), (__v32hf)(__m512h)(B), (__v32hf)(__m512h)(C),     \
-      (__mmask32)(U), (int)(R)))
-
-#define _mm512_fmsub_round_ph(A, B, C, R)                                      \
-  ((__m512h)__builtin_ia32_vfmaddph512_mask(                                   \
-      (__v32hf)(__m512h)(A), (__v32hf)(__m512h)(B), -(__v32hf)(__m512h)(C),    \
-      (__mmask32)-1, (int)(R)))
-
-#define _mm512_mask_fmsub_round_ph(A, U, B, C, R)                              \
-  ((__m512h)__builtin_ia32_vfmaddph512_mask(                                   \
-      (__v32hf)(__m512h)(A), (__v32hf)(__m512h)(B), -(__v32hf)(__m512h)(C),    \
-      (__mmask32)(U), (int)(R)))
-
-#define _mm512_maskz_fmsub_round_ph(U, A, B, C, R)                             \
-  ((__m512h)__builtin_ia32_vfmaddph512_maskz(                                  \
-      (__v32hf)(__m512h)(A), (__v32hf)(__m512h)(B), -(__v32hf)(__m512h)(C),    \
-      (__mmask32)(U), (int)(R)))
-
-#define _mm512_fnmadd_round_ph(A, B, C, R)                                     \
-  ((__m512h)__builtin_ia32_vfmaddph512_mask(                                   \
-      (__v32hf)(__m512h)(A), -(__v32hf)(__m512h)(B), (__v32hf)(__m512h)(C),    \
-      (__mmask32)-1, (int)(R)))
-
-#define _mm512_mask3_fnmadd_round_ph(A, B, C, U, R)                            \
-  ((__m512h)__builtin_ia32_vfmaddph512_mask3(                                  \
-      -(__v32hf)(__m512h)(A), (__v32hf)(__m512h)(B), (__v32hf)(__m512h)(C),    \
-      (__mmask32)(U), (int)(R)))
-
-#define _mm512_maskz_fnmadd_round_ph(U, A, B, C, R)                            \
-  ((__m512h)__builtin_ia32_vfmaddph512_maskz(                                  \
-      -(__v32hf)(__m512h)(A), (__v32hf)(__m512h)(B), (__v32hf)(__m512h)(C),    \
-      (__mmask32)(U), (int)(R)))
-
-#define _mm512_fnmsub_round_ph(A, B, C, R)                                     \
-  ((__m512h)__builtin_ia32_vfmaddph512_mask(                                   \
-      (__v32hf)(__m512h)(A), -(__v32hf)(__m512h)(B), -(__v32hf)(__m512h)(C),   \
-      (__mmask32)-1, (int)(R)))
-
-#define _mm512_maskz_fnmsub_round_ph(U, A, B, C, R)                            \
-  ((__m512h)__builtin_ia32_vfmaddph512_maskz(                                  \
-      -(__v32hf)(__m512h)(A), (__v32hf)(__m512h)(B), -(__v32hf)(__m512h)(C),   \
-      (__mmask32)(U), (int)(R)))
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_fmadd_ph(__m512h __A,
-                                                                __m512h __B,
-                                                                __m512h __C) {
-  return (__m512h)__builtin_ia32_vfmaddph512_mask((__v32hf)__A, (__v32hf)__B,
-                                                  (__v32hf)__C, (__mmask32)-1,
-                                                  _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_fmadd_ph(__m512h __A, __mmask32 __U, __m512h __B, __m512h __C) {
-  return (__m512h)__builtin_ia32_vfmaddph512_mask((__v32hf)__A, (__v32hf)__B,
-                                                  (__v32hf)__C, (__mmask32)__U,
-                                                  _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask3_fmadd_ph(__m512h __A, __m512h __B, __m512h __C, __mmask32 __U) {
-  return (__m512h)__builtin_ia32_vfmaddph512_mask3((__v32hf)__A, (__v32hf)__B,
-                                                   (__v32hf)__C, (__mmask32)__U,
-                                                   _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_fmadd_ph(__mmask32 __U, __m512h __A, __m512h __B, __m512h __C) {
-  return (__m512h)__builtin_ia32_vfmaddph512_maskz((__v32hf)__A, (__v32hf)__B,
-                                                   (__v32hf)__C, (__mmask32)__U,
-                                                   _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_fmsub_ph(__m512h __A,
-                                                                __m512h __B,
-                                                                __m512h __C) {
-  return (__m512h)__builtin_ia32_vfmaddph512_mask((__v32hf)__A, (__v32hf)__B,
-                                                  -(__v32hf)__C, (__mmask32)-1,
-                                                  _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_fmsub_ph(__m512h __A, __mmask32 __U, __m512h __B, __m512h __C) {
-  return (__m512h)__builtin_ia32_vfmaddph512_mask((__v32hf)__A, (__v32hf)__B,
-                                                  -(__v32hf)__C, (__mmask32)__U,
-                                                  _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_fmsub_ph(__mmask32 __U, __m512h __A, __m512h __B, __m512h __C) {
-  return (__m512h)__builtin_ia32_vfmaddph512_maskz(
-      (__v32hf)__A, (__v32hf)__B, -(__v32hf)__C, (__mmask32)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_fnmadd_ph(__m512h __A,
-                                                                 __m512h __B,
-                                                                 __m512h __C) {
-  return (__m512h)__builtin_ia32_vfmaddph512_mask((__v32hf)__A, -(__v32hf)__B,
-                                                  (__v32hf)__C, (__mmask32)-1,
-                                                  _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask3_fnmadd_ph(__m512h __A, __m512h __B, __m512h __C, __mmask32 __U) {
-  return (__m512h)__builtin_ia32_vfmaddph512_mask3(-(__v32hf)__A, (__v32hf)__B,
-                                                   (__v32hf)__C, (__mmask32)__U,
-                                                   _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_fnmadd_ph(__mmask32 __U, __m512h __A, __m512h __B, __m512h __C) {
-  return (__m512h)__builtin_ia32_vfmaddph512_maskz(-(__v32hf)__A, (__v32hf)__B,
-                                                   (__v32hf)__C, (__mmask32)__U,
-                                                   _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_fnmsub_ph(__m512h __A,
-                                                                 __m512h __B,
-                                                                 __m512h __C) {
-  return (__m512h)__builtin_ia32_vfmaddph512_mask((__v32hf)__A, -(__v32hf)__B,
-                                                  -(__v32hf)__C, (__mmask32)-1,
-                                                  _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_fnmsub_ph(__mmask32 __U, __m512h __A, __m512h __B, __m512h __C) {
-  return (__m512h)__builtin_ia32_vfmaddph512_maskz(
-      -(__v32hf)__A, (__v32hf)__B, -(__v32hf)__C, (__mmask32)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_fmaddsub_round_ph(A, B, C, R)                                   \
-  ((__m512h)__builtin_ia32_vfmaddsubph512_mask(                                \
-      (__v32hf)(__m512h)(A), (__v32hf)(__m512h)(B), (__v32hf)(__m512h)(C),     \
-      (__mmask32)-1, (int)(R)))
-
-#define _mm512_mask_fmaddsub_round_ph(A, U, B, C, R)                           \
-  ((__m512h)__builtin_ia32_vfmaddsubph512_mask(                                \
-      (__v32hf)(__m512h)(A), (__v32hf)(__m512h)(B), (__v32hf)(__m512h)(C),     \
-      (__mmask32)(U), (int)(R)))
-
-#define _mm512_mask3_fmaddsub_round_ph(A, B, C, U, R)                          \
-  ((__m512h)__builtin_ia32_vfmaddsubph512_mask3(                               \
-      (__v32hf)(__m512h)(A), (__v32hf)(__m512h)(B), (__v32hf)(__m512h)(C),     \
-      (__mmask32)(U), (int)(R)))
-
-#define _mm512_maskz_fmaddsub_round_ph(U, A, B, C, R)                          \
-  ((__m512h)__builtin_ia32_vfmaddsubph512_maskz(                               \
-      (__v32hf)(__m512h)(A), (__v32hf)(__m512h)(B), (__v32hf)(__m512h)(C),     \
-      (__mmask32)(U), (int)(R)))
-
-#define _mm512_fmsubadd_round_ph(A, B, C, R)                                   \
-  ((__m512h)__builtin_ia32_vfmaddsubph512_mask(                                \
-      (__v32hf)(__m512h)(A), (__v32hf)(__m512h)(B), -(__v32hf)(__m512h)(C),    \
-      (__mmask32)-1, (int)(R)))
-
-#define _mm512_mask_fmsubadd_round_ph(A, U, B, C, R)                           \
-  ((__m512h)__builtin_ia32_vfmaddsubph512_mask(                                \
-      (__v32hf)(__m512h)(A), (__v32hf)(__m512h)(B), -(__v32hf)(__m512h)(C),    \
-      (__mmask32)(U), (int)(R)))
-
-#define _mm512_maskz_fmsubadd_round_ph(U, A, B, C, R)                          \
-  ((__m512h)__builtin_ia32_vfmaddsubph512_maskz(                               \
-      (__v32hf)(__m512h)(A), (__v32hf)(__m512h)(B), -(__v32hf)(__m512h)(C),    \
-      (__mmask32)(U), (int)(R)))
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_fmaddsub_ph(__m512h __A, __m512h __B, __m512h __C) {
-  return (__m512h)__builtin_ia32_vfmaddsubph512_mask(
-      (__v32hf)__A, (__v32hf)__B, (__v32hf)__C, (__mmask32)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_fmaddsub_ph(__m512h __A, __mmask32 __U, __m512h __B, __m512h __C) {
-  return (__m512h)__builtin_ia32_vfmaddsubph512_mask(
-      (__v32hf)__A, (__v32hf)__B, (__v32hf)__C, (__mmask32)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask3_fmaddsub_ph(__m512h __A, __m512h __B, __m512h __C, __mmask32 __U) {
-  return (__m512h)__builtin_ia32_vfmaddsubph512_mask3(
-      (__v32hf)__A, (__v32hf)__B, (__v32hf)__C, (__mmask32)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_fmaddsub_ph(__mmask32 __U, __m512h __A, __m512h __B, __m512h __C) {
-  return (__m512h)__builtin_ia32_vfmaddsubph512_maskz(
-      (__v32hf)__A, (__v32hf)__B, (__v32hf)__C, (__mmask32)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_fmsubadd_ph(__m512h __A, __m512h __B, __m512h __C) {
-  return (__m512h)__builtin_ia32_vfmaddsubph512_mask(
-      (__v32hf)__A, (__v32hf)__B, -(__v32hf)__C, (__mmask32)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_fmsubadd_ph(__m512h __A, __mmask32 __U, __m512h __B, __m512h __C) {
-  return (__m512h)__builtin_ia32_vfmaddsubph512_mask(
-      (__v32hf)__A, (__v32hf)__B, -(__v32hf)__C, (__mmask32)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_fmsubadd_ph(__mmask32 __U, __m512h __A, __m512h __B, __m512h __C) {
-  return (__m512h)__builtin_ia32_vfmaddsubph512_maskz(
-      (__v32hf)__A, (__v32hf)__B, -(__v32hf)__C, (__mmask32)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_mask3_fmsub_round_ph(A, B, C, U, R)                             \
-  ((__m512h)__builtin_ia32_vfmsubph512_mask3(                                  \
-      (__v32hf)(__m512h)(A), (__v32hf)(__m512h)(B), (__v32hf)(__m512h)(C),     \
-      (__mmask32)(U), (int)(R)))
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask3_fmsub_ph(__m512h __A, __m512h __B, __m512h __C, __mmask32 __U) {
-  return (__m512h)__builtin_ia32_vfmsubph512_mask3((__v32hf)__A, (__v32hf)__B,
-                                                   (__v32hf)__C, (__mmask32)__U,
-                                                   _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_mask3_fmsubadd_round_ph(A, B, C, U, R)                          \
-  ((__m512h)__builtin_ia32_vfmsubaddph512_mask3(                               \
-      (__v32hf)(__m512h)(A), (__v32hf)(__m512h)(B), (__v32hf)(__m512h)(C),     \
-      (__mmask32)(U), (int)(R)))
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask3_fmsubadd_ph(__m512h __A, __m512h __B, __m512h __C, __mmask32 __U) {
-  return (__m512h)__builtin_ia32_vfmsubaddph512_mask3(
-      (__v32hf)__A, (__v32hf)__B, (__v32hf)__C, (__mmask32)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_mask_fnmadd_round_ph(A, U, B, C, R)                             \
-  ((__m512h)__builtin_ia32_vfmaddph512_mask(                                   \
-      (__v32hf)(__m512h)(A), -(__v32hf)(__m512h)(B), (__v32hf)(__m512h)(C),    \
-      (__mmask32)(U), (int)(R)))
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_fnmadd_ph(__m512h __A, __mmask32 __U, __m512h __B, __m512h __C) {
-  return (__m512h)__builtin_ia32_vfmaddph512_mask((__v32hf)__A, -(__v32hf)__B,
-                                                  (__v32hf)__C, (__mmask32)__U,
-                                                  _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_mask_fnmsub_round_ph(A, U, B, C, R)                             \
-  ((__m512h)__builtin_ia32_vfmaddph512_mask(                                   \
-      (__v32hf)(__m512h)(A), -(__v32hf)(__m512h)(B), -(__v32hf)(__m512h)(C),   \
-      (__mmask32)(U), (int)(R)))
-
-#define _mm512_mask3_fnmsub_round_ph(A, B, C, U, R)                            \
-  ((__m512h)__builtin_ia32_vfmsubph512_mask3(                                  \
-      -(__v32hf)(__m512h)(A), (__v32hf)(__m512h)(B), (__v32hf)(__m512h)(C),    \
-      (__mmask32)(U), (int)(R)))
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_fnmsub_ph(__m512h __A, __mmask32 __U, __m512h __B, __m512h __C) {
-  return (__m512h)__builtin_ia32_vfmaddph512_mask((__v32hf)__A, -(__v32hf)__B,
-                                                  -(__v32hf)__C, (__mmask32)__U,
-                                                  _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask3_fnmsub_ph(__m512h __A, __m512h __B, __m512h __C, __mmask32 __U) {
-  return (__m512h)__builtin_ia32_vfmsubph512_mask3(-(__v32hf)__A, (__v32hf)__B,
-                                                   (__v32hf)__C, (__mmask32)__U,
-                                                   _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fmadd_sh(__m128h __W,
-                                                             __m128h __A,
-                                                             __m128h __B) {
-  return __builtin_ia32_vfmaddsh3_mask((__v8hf)__W, (__v8hf)__A, (__v8hf)__B,
-                                       (__mmask8)-1, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_fmadd_sh(__m128h __W,
-                                                                  __mmask8 __U,
-                                                                  __m128h __A,
-                                                                  __m128h __B) {
-  return __builtin_ia32_vfmaddsh3_mask((__v8hf)__W, (__v8hf)__A, (__v8hf)__B,
-                                       (__mmask8)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_fmadd_round_sh(A, B, C, R)                                         \
-  ((__m128h)__builtin_ia32_vfmaddsh3_mask(                                     \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)(__m128h)(C),        \
-      (__mmask8)-1, (int)(R)))
-
-#define _mm_mask_fmadd_round_sh(W, U, A, B, R)                                 \
-  ((__m128h)__builtin_ia32_vfmaddsh3_mask(                                     \
-      (__v8hf)(__m128h)(W), (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B),        \
-      (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_fmadd_sh(__mmask8 __U, __m128h __A, __m128h __B, __m128h __C) {
-  return __builtin_ia32_vfmaddsh3_maskz((__v8hf)__A, (__v8hf)__B, (__v8hf)__C,
-                                        (__mmask8)__U,
-                                        _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_maskz_fmadd_round_sh(U, A, B, C, R)                                \
-  ((__m128h)__builtin_ia32_vfmaddsh3_maskz(                                    \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), (__v8hf)(__m128h)(C),        \
-      (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask3_fmadd_sh(__m128h __W, __m128h __X, __m128h __Y, __mmask8 __U) {
-  return __builtin_ia32_vfmaddsh3_mask3((__v8hf)__W, (__v8hf)__X, (__v8hf)__Y,
-                                        (__mmask8)__U,
-                                        _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask3_fmadd_round_sh(W, X, Y, U, R)                                \
-  ((__m128h)__builtin_ia32_vfmaddsh3_mask3(                                    \
-      (__v8hf)(__m128h)(W), (__v8hf)(__m128h)(X), (__v8hf)(__m128h)(Y),        \
-      (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fmsub_sh(__m128h __W,
-                                                             __m128h __A,
-                                                             __m128h __B) {
-  return (__m128h)__builtin_ia32_vfmaddsh3_mask((__v8hf)__W, (__v8hf)__A,
-                                                -(__v8hf)__B, (__mmask8)-1,
-                                                _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_fmsub_sh(__m128h __W,
-                                                                  __mmask8 __U,
-                                                                  __m128h __A,
-                                                                  __m128h __B) {
-  return (__m128h)__builtin_ia32_vfmaddsh3_mask((__v8hf)__W, (__v8hf)__A,
-                                                -(__v8hf)__B, (__mmask8)__U,
-                                                _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_fmsub_round_sh(A, B, C, R)                                         \
-  ((__m128h)__builtin_ia32_vfmaddsh3_mask(                                     \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), -(__v8hf)(__m128h)(C),       \
-      (__mmask8)-1, (int)(R)))
-
-#define _mm_mask_fmsub_round_sh(W, U, A, B, R)                                 \
-  ((__m128h)__builtin_ia32_vfmaddsh3_mask(                                     \
-      (__v8hf)(__m128h)(W), (__v8hf)(__m128h)(A), -(__v8hf)(__m128h)(B),       \
-      (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_fmsub_sh(__mmask8 __U, __m128h __A, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_vfmaddsh3_maskz((__v8hf)__A, (__v8hf)__B,
-                                                 -(__v8hf)__C, (__mmask8)__U,
-                                                 _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_maskz_fmsub_round_sh(U, A, B, C, R)                                \
-  ((__m128h)__builtin_ia32_vfmaddsh3_maskz(                                    \
-      (__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B), -(__v8hf)(__m128h)(C),       \
-      (__mmask8)(U), (int)R))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask3_fmsub_sh(__m128h __W, __m128h __X, __m128h __Y, __mmask8 __U) {
-  return __builtin_ia32_vfmsubsh3_mask3((__v8hf)__W, (__v8hf)__X, (__v8hf)__Y,
-                                        (__mmask8)__U,
-                                        _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask3_fmsub_round_sh(W, X, Y, U, R)                                \
-  ((__m128h)__builtin_ia32_vfmsubsh3_mask3(                                    \
-      (__v8hf)(__m128h)(W), (__v8hf)(__m128h)(X), (__v8hf)(__m128h)(Y),        \
-      (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fnmadd_sh(__m128h __W,
-                                                              __m128h __A,
-                                                              __m128h __B) {
-  return __builtin_ia32_vfmaddsh3_mask((__v8hf)__W, -(__v8hf)__A, (__v8hf)__B,
-                                       (__mmask8)-1, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask_fnmadd_sh(__m128h __W, __mmask8 __U, __m128h __A, __m128h __B) {
-  return __builtin_ia32_vfmaddsh3_mask((__v8hf)__W, -(__v8hf)__A, (__v8hf)__B,
-                                       (__mmask8)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_fnmadd_round_sh(A, B, C, R)                                        \
-  ((__m128h)__builtin_ia32_vfmaddsh3_mask(                                     \
-      (__v8hf)(__m128h)(A), -(__v8hf)(__m128h)(B), (__v8hf)(__m128h)(C),       \
-      (__mmask8)-1, (int)(R)))
-
-#define _mm_mask_fnmadd_round_sh(W, U, A, B, R)                                \
-  ((__m128h)__builtin_ia32_vfmaddsh3_mask(                                     \
-      (__v8hf)(__m128h)(W), -(__v8hf)(__m128h)(A), (__v8hf)(__m128h)(B),       \
-      (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_fnmadd_sh(__mmask8 __U, __m128h __A, __m128h __B, __m128h __C) {
-  return __builtin_ia32_vfmaddsh3_maskz((__v8hf)__A, -(__v8hf)__B, (__v8hf)__C,
-                                        (__mmask8)__U,
-                                        _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_maskz_fnmadd_round_sh(U, A, B, C, R)                               \
-  ((__m128h)__builtin_ia32_vfmaddsh3_maskz(                                    \
-      (__v8hf)(__m128h)(A), -(__v8hf)(__m128h)(B), (__v8hf)(__m128h)(C),       \
-      (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask3_fnmadd_sh(__m128h __W, __m128h __X, __m128h __Y, __mmask8 __U) {
-  return __builtin_ia32_vfmaddsh3_mask3((__v8hf)__W, -(__v8hf)__X, (__v8hf)__Y,
-                                        (__mmask8)__U,
-                                        _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask3_fnmadd_round_sh(W, X, Y, U, R)                               \
-  ((__m128h)__builtin_ia32_vfmaddsh3_mask3(                                    \
-      (__v8hf)(__m128h)(W), -(__v8hf)(__m128h)(X), (__v8hf)(__m128h)(Y),       \
-      (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fnmsub_sh(__m128h __W,
-                                                              __m128h __A,
-                                                              __m128h __B) {
-  return __builtin_ia32_vfmaddsh3_mask((__v8hf)__W, -(__v8hf)__A, -(__v8hf)__B,
-                                       (__mmask8)-1, _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask_fnmsub_sh(__m128h __W, __mmask8 __U, __m128h __A, __m128h __B) {
-  return __builtin_ia32_vfmaddsh3_mask((__v8hf)__W, -(__v8hf)__A, -(__v8hf)__B,
-                                       (__mmask8)__U, _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_fnmsub_round_sh(A, B, C, R)                                        \
-  ((__m128h)__builtin_ia32_vfmaddsh3_mask(                                     \
-      (__v8hf)(__m128h)(A), -(__v8hf)(__m128h)(B), -(__v8hf)(__m128h)(C),      \
-      (__mmask8)-1, (int)(R)))
-
-#define _mm_mask_fnmsub_round_sh(W, U, A, B, R)                                \
-  ((__m128h)__builtin_ia32_vfmaddsh3_mask(                                     \
-      (__v8hf)(__m128h)(W), -(__v8hf)(__m128h)(A), -(__v8hf)(__m128h)(B),      \
-      (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_fnmsub_sh(__mmask8 __U, __m128h __A, __m128h __B, __m128h __C) {
-  return __builtin_ia32_vfmaddsh3_maskz((__v8hf)__A, -(__v8hf)__B, -(__v8hf)__C,
-                                        (__mmask8)__U,
-                                        _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_maskz_fnmsub_round_sh(U, A, B, C, R)                               \
-  ((__m128h)__builtin_ia32_vfmaddsh3_maskz(                                    \
-      (__v8hf)(__m128h)(A), -(__v8hf)(__m128h)(B), -(__v8hf)(__m128h)(C),      \
-      (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask3_fnmsub_sh(__m128h __W, __m128h __X, __m128h __Y, __mmask8 __U) {
-  return __builtin_ia32_vfmsubsh3_mask3((__v8hf)__W, -(__v8hf)__X, (__v8hf)__Y,
-                                        (__mmask8)__U,
-                                        _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask3_fnmsub_round_sh(W, X, Y, U, R)                               \
-  ((__m128h)__builtin_ia32_vfmsubsh3_mask3(                                    \
-      (__v8hf)(__m128h)(W), -(__v8hf)(__m128h)(X), (__v8hf)(__m128h)(Y),       \
-      (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fcmadd_sch(__m128h __A,
-                                                               __m128h __B,
-                                                               __m128h __C) {
-  return (__m128h)__builtin_ia32_vfcmaddcsh_mask((__v4sf)__C, (__v4sf)__A,
-                                                 (__v4sf)__B, (__mmask8)-1,
-                                                 _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask_fcmadd_sch(__m128h __A, __mmask8 __U, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_selectps_128(
-      __U,
-      __builtin_ia32_vfcmaddcsh_mask((__v4sf)__C, (__v4sf)__A, (__v4sf)__B,
-                                     (__mmask8)__U, _MM_FROUND_CUR_DIRECTION),
-      (__v4sf)__A);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_fcmadd_sch(__mmask8 __U, __m128h __A, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_vfcmaddcsh_maskz((__v4sf)__C, (__v4sf)__A,
-                                                  (__v4sf)__B, (__mmask8)__U,
-                                                  _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask3_fcmadd_sch(__m128h __A, __m128h __B, __m128h __C, __mmask8 __U) {
-  return (__m128h)_mm_move_ss((__m128)__C,
-                              (__m128)__builtin_ia32_vfcmaddcsh_mask(
-                                  (__v4sf)__C, (__v4sf)__A, (__v4sf)__B, __U,
-                                  _MM_FROUND_CUR_DIRECTION));
-}
-
-#define _mm_fcmadd_round_sch(A, B, C, R)                                       \
-  ((__m128h)__builtin_ia32_vfcmaddcsh_mask(                                    \
-      (__v4sf)(__m128h)(C), (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B),        \
-      (__mmask8)-1, (int)(R)))
-
-#define _mm_mask_fcmadd_round_sch(A, U, B, C, R)                               \
-  ((__m128h)__builtin_ia32_selectps_128(                                       \
-      (__mmask8)(U & 1),                                                       \
-      __builtin_ia32_vfcmaddcsh_mask(                                          \
-          (__v4sf)(__m128h)(C), (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B),    \
-          (__mmask8)(U), (int)(R)),                                            \
-      (__v4sf)(__m128h)(A)))
-
-#define _mm_maskz_fcmadd_round_sch(U, A, B, C, R)                              \
-  ((__m128h)__builtin_ia32_vfcmaddcsh_maskz(                                   \
-      (__v4sf)(__m128h)(C), (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B),        \
-      (__mmask8)(U), (int)(R)))
-
-#define _mm_mask3_fcmadd_round_sch(A, B, C, U, R)                              \
-  ((__m128h)_mm_move_ss((__m128)(C),                                           \
-                        (__m128)__builtin_ia32_vfcmaddcsh_mask(                \
-                            (__v4sf)(C), (__v4sf)(A), (__v4sf)(B), (U), (R))))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fmadd_sch(__m128h __A,
-                                                              __m128h __B,
-                                                              __m128h __C) {
-  return (__m128h)__builtin_ia32_vfmaddcsh_mask((__v4sf)__C, (__v4sf)__A,
-                                                (__v4sf)__B, (__mmask8)-1,
-                                                _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask_fmadd_sch(__m128h __A, __mmask8 __U, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_selectps_128(
-      __U,
-      __builtin_ia32_vfmaddcsh_mask((__v4sf)__C, (__v4sf)__A, (__v4sf)__B,
-                                    (__mmask8)__U, _MM_FROUND_CUR_DIRECTION),
-      (__v4sf)__A);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_fmadd_sch(__mmask8 __U, __m128h __A, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_vfmaddcsh_maskz((__v4sf)__C, (__v4sf)__A,
-                                                 (__v4sf)__B, (__mmask8)__U,
-                                                 _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_fmadd_round_sch(A, B, C, R)                                        \
-  ((__m128h)__builtin_ia32_vfmaddcsh_mask(                                     \
-      (__v4sf)(__m128h)(C), (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B),        \
-      (__mmask8)-1, (int)(R)))
-
-#define _mm_mask_fmadd_round_sch(A, U, B, C, R)                                \
-  ((__m128h)__builtin_ia32_selectps_128(                                       \
-      (__mmask8)(U & 1),                                                       \
-      __builtin_ia32_vfmaddcsh_mask(                                           \
-          (__v4sf)(__m128h)(C), (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B),    \
-          (__mmask8)(U), (int)(R)),                                            \
-      (__v4sf)(__m128h)(A)))
-
-#define _mm_maskz_fmadd_round_sch(U, A, B, C, R)                               \
-  ((__m128h)__builtin_ia32_vfmaddcsh_maskz(                                    \
-      (__v4sf)(__m128h)(C), (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B),        \
-      (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fcmul_sch(__m128h __A,
-                                                              __m128h __B) {
-  return (__m128h)__builtin_ia32_vfcmulcsh_mask(
-      (__v4sf)__A, (__v4sf)__B, (__v4sf)_mm_undefined_ph(), (__mmask8)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask_fcmul_sch(__m128h __W, __mmask8 __U, __m128h __A, __m128h __B) {
-  return (__m128h)__builtin_ia32_vfcmulcsh_mask((__v4sf)__A, (__v4sf)__B,
-                                                (__v4sf)__W, (__mmask8)__U,
-                                                _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_fcmul_sch(__mmask8 __U, __m128h __A, __m128h __B) {
-  return (__m128h)__builtin_ia32_vfcmulcsh_mask(
-      (__v4sf)__A, (__v4sf)__B, (__v4sf)_mm_setzero_ph(), (__mmask8)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_fcmul_round_sch(A, B, R)                                           \
-  ((__m128h)__builtin_ia32_vfcmulcsh_mask(                                     \
-      (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B),                              \
-      (__v4sf)(__m128h)_mm_undefined_ph(), (__mmask8)-1, (int)(R)))
-
-#define _mm_mask_fcmul_round_sch(W, U, A, B, R)                                \
-  ((__m128h)__builtin_ia32_vfcmulcsh_mask(                                     \
-      (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B), (__v4sf)(__m128h)(W),        \
-      (__mmask8)(U), (int)(R)))
-
-#define _mm_maskz_fcmul_round_sch(U, A, B, R)                                  \
-  ((__m128h)__builtin_ia32_vfcmulcsh_mask(                                     \
-      (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B),                              \
-      (__v4sf)(__m128h)_mm_setzero_ph(), (__mmask8)(U), (int)(R)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fmul_sch(__m128h __A,
-                                                             __m128h __B) {
-  return (__m128h)__builtin_ia32_vfmulcsh_mask(
-      (__v4sf)__A, (__v4sf)__B, (__v4sf)_mm_undefined_ph(), (__mmask8)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_fmul_sch(__m128h __W,
-                                                                  __mmask8 __U,
-                                                                  __m128h __A,
-                                                                  __m128h __B) {
-  return (__m128h)__builtin_ia32_vfmulcsh_mask((__v4sf)__A, (__v4sf)__B,
-                                               (__v4sf)__W, (__mmask8)__U,
-                                               _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_fmul_sch(__mmask8 __U, __m128h __A, __m128h __B) {
-  return (__m128h)__builtin_ia32_vfmulcsh_mask(
-      (__v4sf)__A, (__v4sf)__B, (__v4sf)_mm_setzero_ph(), (__mmask8)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_fmul_round_sch(A, B, R)                                            \
-  ((__m128h)__builtin_ia32_vfmulcsh_mask(                                      \
-      (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B),                              \
-      (__v4sf)(__m128h)_mm_undefined_ph(), (__mmask8)-1, (int)(R)))
-
-#define _mm_mask_fmul_round_sch(W, U, A, B, R)                                 \
-  ((__m128h)__builtin_ia32_vfmulcsh_mask(                                      \
-      (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B), (__v4sf)(__m128h)(W),        \
-      (__mmask8)(U), (int)(R)))
-
-#define _mm_maskz_fmul_round_sch(U, A, B, R)                                   \
-  ((__m128h)__builtin_ia32_vfmulcsh_mask(                                      \
-      (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B),                              \
-      (__v4sf)(__m128h)_mm_setzero_ph(), (__mmask8)(U), (int)(R)))
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_fcmul_pch(__m512h __A,
-                                                                 __m512h __B) {
-  return (__m512h)__builtin_ia32_vfcmulcph512_mask(
-      (__v16sf)__A, (__v16sf)__B, (__v16sf)_mm512_undefined_ph(), (__mmask16)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_fcmul_pch(__m512h __W, __mmask16 __U, __m512h __A, __m512h __B) {
-  return (__m512h)__builtin_ia32_vfcmulcph512_mask((__v16sf)__A, (__v16sf)__B,
-                                                   (__v16sf)__W, (__mmask16)__U,
-                                                   _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_fcmul_pch(__mmask16 __U, __m512h __A, __m512h __B) {
-  return (__m512h)__builtin_ia32_vfcmulcph512_mask(
-      (__v16sf)__A, (__v16sf)__B, (__v16sf)_mm512_setzero_ph(), (__mmask16)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_fcmul_round_pch(A, B, R)                                        \
-  ((__m512h)__builtin_ia32_vfcmulcph512_mask(                                  \
-      (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B),                            \
-      (__v16sf)(__m512h)_mm512_undefined_ph(), (__mmask16)-1, (int)(R)))
-
-#define _mm512_mask_fcmul_round_pch(W, U, A, B, R)                             \
-  ((__m512h)__builtin_ia32_vfcmulcph512_mask(                                  \
-      (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), (__v16sf)(__m512h)(W),     \
-      (__mmask16)(U), (int)(R)))
-
-#define _mm512_maskz_fcmul_round_pch(U, A, B, R)                               \
-  ((__m512h)__builtin_ia32_vfcmulcph512_mask(                                  \
-      (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B),                            \
-      (__v16sf)(__m512h)_mm512_setzero_ph(), (__mmask16)(U), (int)(R)))
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_fmul_pch(__m512h __A,
-                                                                __m512h __B) {
-  return (__m512h)__builtin_ia32_vfmulcph512_mask(
-      (__v16sf)__A, (__v16sf)__B, (__v16sf)_mm512_undefined_ph(), (__mmask16)-1,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_fmul_pch(__m512h __W, __mmask16 __U, __m512h __A, __m512h __B) {
-  return (__m512h)__builtin_ia32_vfmulcph512_mask((__v16sf)__A, (__v16sf)__B,
-                                                  (__v16sf)__W, (__mmask16)__U,
-                                                  _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_fmul_pch(__mmask16 __U, __m512h __A, __m512h __B) {
-  return (__m512h)__builtin_ia32_vfmulcph512_mask(
-      (__v16sf)__A, (__v16sf)__B, (__v16sf)_mm512_setzero_ph(), (__mmask16)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_fmul_round_pch(A, B, R)                                         \
-  ((__m512h)__builtin_ia32_vfmulcph512_mask(                                   \
-      (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B),                            \
-      (__v16sf)(__m512h)_mm512_undefined_ph(), (__mmask16)-1, (int)(R)))
-
-#define _mm512_mask_fmul_round_pch(W, U, A, B, R)                              \
-  ((__m512h)__builtin_ia32_vfmulcph512_mask(                                   \
-      (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), (__v16sf)(__m512h)(W),     \
-      (__mmask16)(U), (int)(R)))
-
-#define _mm512_maskz_fmul_round_pch(U, A, B, R)                                \
-  ((__m512h)__builtin_ia32_vfmulcph512_mask(                                   \
-      (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B),                            \
-      (__v16sf)(__m512h)_mm512_setzero_ph(), (__mmask16)(U), (int)(R)))
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_fcmadd_pch(__m512h __A,
-                                                                  __m512h __B,
-                                                                  __m512h __C) {
-  return (__m512h)__builtin_ia32_vfcmaddcph512_mask((__v16sf)__C, (__v16sf)__A,
-                                                    (__v16sf)__B, (__mmask16)-1,
-                                                    _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_fcmadd_pch(__m512h __A, __mmask16 __U, __m512h __B, __m512h __C) {
-  return (__m512h)__builtin_ia32_selectps_512(
-      __U,
-      __builtin_ia32_vfcmaddcph512_mask((__v16sf)__C, (__v16sf)__A,
-                                        (__v16sf)__B, (__mmask16)__U,
-                                        _MM_FROUND_CUR_DIRECTION),
-      (__v16sf)__A);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask3_fcmadd_pch(__m512h __A, __m512h __B, __m512h __C, __mmask16 __U) {
-  return (__m512h)__builtin_ia32_vfcmaddcph512_mask(
-      (__v16sf)__C, (__v16sf)__A, (__v16sf)__B, (__mmask16)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_fcmadd_pch(__mmask16 __U, __m512h __A, __m512h __B, __m512h __C) {
-  return (__m512h)__builtin_ia32_vfcmaddcph512_maskz(
-      (__v16sf)__C, (__v16sf)__A, (__v16sf)__B, (__mmask16)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_fcmadd_round_pch(A, B, C, R)                                    \
-  ((__m512h)__builtin_ia32_vfcmaddcph512_mask(                                 \
-      (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B),     \
-      (__mmask16)-1, (int)(R)))
-
-#define _mm512_mask_fcmadd_round_pch(A, U, B, C, R)                            \
-  ((__m512h)__builtin_ia32_selectps_512(                                       \
-      (__mmask16)(U),                                                          \
-      __builtin_ia32_vfcmaddcph512_mask(                                       \
-          (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), \
-          (__mmask16)(U), (int)(R)),                                           \
-      (__v16sf)(__m512h)(A)))
-
-#define _mm512_mask3_fcmadd_round_pch(A, B, C, U, R)                           \
-  ((__m512h)__builtin_ia32_vfcmaddcph512_mask(                                 \
-      (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B),     \
-      (__mmask16)(U), (int)(R)))
-
-#define _mm512_maskz_fcmadd_round_pch(U, A, B, C, R)                           \
-  ((__m512h)__builtin_ia32_vfcmaddcph512_maskz(                                \
-      (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B),     \
-      (__mmask16)(U), (int)(R)))
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_fmadd_pch(__m512h __A,
-                                                                 __m512h __B,
-                                                                 __m512h __C) {
-  return (__m512h)__builtin_ia32_vfmaddcph512_mask((__v16sf)__C, (__v16sf)__A,
-                                                   (__v16sf)__B, (__mmask16)-1,
-                                                   _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_fmadd_pch(__m512h __A, __mmask16 __U, __m512h __B, __m512h __C) {
-  return (__m512h)__builtin_ia32_selectps_512(
-      __U,
-      __builtin_ia32_vfmaddcph512_mask((__v16sf)__C, (__v16sf)__A, (__v16sf)__B,
-                                       (__mmask16)__U,
-                                       _MM_FROUND_CUR_DIRECTION),
-      (__v16sf)__A);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask3_fmadd_pch(__m512h __A, __m512h __B, __m512h __C, __mmask16 __U) {
-  return (__m512h)__builtin_ia32_vfmaddcph512_mask((__v16sf)__C, (__v16sf)__A,
-                                                   (__v16sf)__B, (__mmask16)__U,
-                                                   _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_maskz_fmadd_pch(__mmask16 __U, __m512h __A, __m512h __B, __m512h __C) {
-  return (__m512h)__builtin_ia32_vfmaddcph512_maskz(
-      (__v16sf)__C, (__v16sf)__A, (__v16sf)__B, (__mmask16)__U,
-      _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_fmadd_round_pch(A, B, C, R)                                     \
-  ((__m512h)__builtin_ia32_vfmaddcph512_mask(                                  \
-      (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B),     \
-      (__mmask16)-1, (int)(R)))
-
-#define _mm512_mask_fmadd_round_pch(A, U, B, C, R)                             \
-  ((__m512h)__builtin_ia32_selectps_512(                                       \
-      (__mmask16)(U),                                                          \
-      __builtin_ia32_vfmaddcph512_mask(                                        \
-          (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), \
-          (__mmask16)(U), (int)(R)),                                           \
-      (__v16sf)(__m512h)(A)))
-
-#define _mm512_mask3_fmadd_round_pch(A, B, C, U, R)                            \
-  ((__m512h)__builtin_ia32_vfmaddcph512_mask(                                  \
-      (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B),     \
-      (__mmask16)(U), (int)(R)))
-
-#define _mm512_maskz_fmadd_round_pch(U, A, B, C, R)                            \
-  ((__m512h)__builtin_ia32_vfmaddcph512_maskz(                                 \
-      (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B),     \
-      (__mmask16)(U), (int)(R)))
-
-static __inline__ _Float16 __DEFAULT_FN_ATTRS512
-_mm512_reduce_add_ph(__m512h __W) {
-  return __builtin_ia32_reduce_fadd_ph512(-0.0f16, __W);
-}
-
-static __inline__ _Float16 __DEFAULT_FN_ATTRS512
-_mm512_reduce_mul_ph(__m512h __W) {
-  return __builtin_ia32_reduce_fmul_ph512(1.0f16, __W);
-}
-
-static __inline__ _Float16 __DEFAULT_FN_ATTRS512
-_mm512_reduce_max_ph(__m512h __V) {
-  return __builtin_ia32_reduce_fmax_ph512(__V);
-}
-
-static __inline__ _Float16 __DEFAULT_FN_ATTRS512
-_mm512_reduce_min_ph(__m512h __V) {
-  return __builtin_ia32_reduce_fmin_ph512(__V);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_mask_blend_ph(__mmask32 __U, __m512h __A, __m512h __W) {
-  return (__m512h)__builtin_ia32_selectph_512((__mmask32)__U, (__v32hf)__W,
-                                              (__v32hf)__A);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_permutex2var_ph(__m512h __A, __m512i __I, __m512h __B) {
-  return (__m512h)__builtin_ia32_vpermi2varhi512((__v32hi)__A, (__v32hi)__I,
-                                                 (__v32hi)__B);
-}
-
-static __inline__ __m512h __DEFAULT_FN_ATTRS512
-_mm512_permutexvar_ph(__m512i __A, __m512h __B) {
-  return (__m512h)__builtin_ia32_permvarhi512((__v32hi)__B, (__v32hi)__A);
-}
-
-#undef __DEFAULT_FN_ATTRS128
-#undef __DEFAULT_FN_ATTRS256
-#undef __DEFAULT_FN_ATTRS512
-
-#endif
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512vlbf16intrin.h b/linux-x86/lib64/clang/14.0.1/include/avx512vlbf16intrin.h
deleted file mode 100644
index 1b1a744..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/avx512vlbf16intrin.h
+++ /dev/null
@@ -1,474 +0,0 @@
-/*===--------- avx512vlbf16intrin.h - AVX512_BF16 intrinsics ---------------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-#ifndef __IMMINTRIN_H
-#error "Never use <avx512vlbf16intrin.h> directly; include <immintrin.h> instead."
-#endif
-
-#ifndef __AVX512VLBF16INTRIN_H
-#define __AVX512VLBF16INTRIN_H
-
-typedef short __m128bh __attribute__((__vector_size__(16), __aligned__(16)));
-
-#define __DEFAULT_FN_ATTRS128 \
-  __attribute__((__always_inline__, __nodebug__, \
-                 __target__("avx512vl, avx512bf16"), __min_vector_width__(128)))
-#define __DEFAULT_FN_ATTRS256 \
-  __attribute__((__always_inline__, __nodebug__, \
-                 __target__("avx512vl, avx512bf16"), __min_vector_width__(256)))
-
-/// Convert Two Packed Single Data to One Packed BF16 Data.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTNE2PS2BF16 </c> instructions.
-///
-/// \param __A
-///    A 128-bit vector of [4 x float].
-/// \param __B
-///    A 128-bit vector of [4 x float].
-/// \returns A 128-bit vector of [8 x bfloat] whose lower 64 bits come from
-///    conversion of __B, and higher 64 bits come from conversion of __A.
-static __inline__ __m128bh __DEFAULT_FN_ATTRS128
-_mm_cvtne2ps_pbh(__m128 __A, __m128 __B) {
-  return (__m128bh)__builtin_ia32_cvtne2ps2bf16_128((__v4sf) __A,
-                                                    (__v4sf) __B);
-}
-
-/// Convert Two Packed Single Data to One Packed BF16 Data.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTNE2PS2BF16 </c> instructions.
-///
-/// \param __A
-///    A 128-bit vector of [4 x float].
-/// \param __B
-///    A 128-bit vector of [4 x float].
-/// \param __W
-///    A 128-bit vector of [8 x bfloat].
-/// \param __U
-///    A 8-bit mask value specifying what is chosen for each element.
-///    A 1 means conversion of __A or __B. A 0 means element from __W.
-/// \returns A 128-bit vector of [8 x bfloat] whose lower 64 bits come from
-///    conversion of __B, and higher 64 bits come from conversion of __A.
-static __inline__ __m128bh __DEFAULT_FN_ATTRS128
-_mm_mask_cvtne2ps_pbh(__m128bh __W, __mmask8 __U, __m128 __A, __m128 __B) {
-  return (__m128bh)__builtin_ia32_selectw_128((__mmask8)__U,
-                                             (__v8hi)_mm_cvtne2ps_pbh(__A, __B),
-                                             (__v8hi)__W);
-}
-
-/// Convert Two Packed Single Data to One Packed BF16 Data.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTNE2PS2BF16 </c> instructions.
-///
-/// \param __A
-///    A 128-bit vector of [4 x float].
-/// \param __B
-///    A 128-bit vector of [4 x float].
-/// \param __U
-///    A 8-bit mask value specifying what is chosen for each element.
-///    A 1 means conversion of __A or __B. A 0 means element is zero.
-/// \returns A 128-bit vector of [8 x bfloat] whose lower 64 bits come from
-///    conversion of __B, and higher 64 bits come from conversion of __A.
-static __inline__ __m128bh __DEFAULT_FN_ATTRS128
-_mm_maskz_cvtne2ps_pbh(__mmask8 __U, __m128 __A, __m128 __B) {
-  return (__m128bh)__builtin_ia32_selectw_128((__mmask8)__U,
-                                             (__v8hi)_mm_cvtne2ps_pbh(__A, __B),
-                                             (__v8hi)_mm_setzero_si128());
-}
-
-/// Convert Two Packed Single Data to One Packed BF16 Data.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTNE2PS2BF16 </c> instructions.
-///
-/// \param __A
-///    A 256-bit vector of [8 x float].
-/// \param __B
-///    A 256-bit vector of [8 x float].
-/// \returns A 256-bit vector of [16 x bfloat] whose lower 128 bits come from
-///    conversion of __B, and higher 128 bits come from conversion of __A.
-static __inline__ __m256bh __DEFAULT_FN_ATTRS256
-_mm256_cvtne2ps_pbh(__m256 __A, __m256 __B) {
-  return (__m256bh)__builtin_ia32_cvtne2ps2bf16_256((__v8sf) __A,
-                                                    (__v8sf) __B);
-}
-
-/// Convert Two Packed Single Data to One Packed BF16 Data.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTNE2PS2BF16 </c> instructions.
-///
-/// \param __A
-///    A 256-bit vector of [8 x float].
-/// \param __B
-///    A 256-bit vector of [8 x float].
-/// \param __W
-///    A 256-bit vector of [16 x bfloat].
-/// \param __U
-///    A 16-bit mask value specifying what is chosen for each element.
-///    A 1 means conversion of __A or __B. A 0 means element from __W.
-/// \returns A 256-bit vector of [16 x bfloat] whose lower 128 bits come from
-///    conversion of __B, and higher 128 bits come from conversion of __A.
-static __inline__ __m256bh __DEFAULT_FN_ATTRS256
-_mm256_mask_cvtne2ps_pbh(__m256bh __W, __mmask16 __U, __m256 __A, __m256 __B) {
-  return (__m256bh)__builtin_ia32_selectw_256((__mmask16)__U,
-                                         (__v16hi)_mm256_cvtne2ps_pbh(__A, __B),
-                                         (__v16hi)__W);
-}
-
-/// Convert Two Packed Single Data to One Packed BF16 Data.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTNE2PS2BF16 </c> instructions.
-///
-/// \param __A
-///    A 256-bit vector of [8 x float].
-/// \param __B
-///    A 256-bit vector of [8 x float].
-/// \param __U
-///    A 16-bit mask value specifying what is chosen for each element.
-///    A 1 means conversion of __A or __B. A 0 means element is zero.
-/// \returns A 256-bit vector of [16 x bfloat] whose lower 128 bits come from
-///    conversion of __B, and higher 128 bits come from conversion of __A.
-static __inline__ __m256bh __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvtne2ps_pbh(__mmask16 __U, __m256 __A, __m256 __B) {
-  return (__m256bh)__builtin_ia32_selectw_256((__mmask16)__U,
-                                         (__v16hi)_mm256_cvtne2ps_pbh(__A, __B),
-                                         (__v16hi)_mm256_setzero_si256());
-}
-
-/// Convert Packed Single Data to Packed BF16 Data.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTNEPS2BF16 </c> instructions.
-///
-/// \param __A
-///    A 128-bit vector of [4 x float].
-/// \returns A 128-bit vector of [8 x bfloat] whose lower 64 bits come from
-///    conversion of __A, and higher 64 bits are 0.
-static __inline__ __m128bh __DEFAULT_FN_ATTRS128
-_mm_cvtneps_pbh(__m128 __A) {
-  return (__m128bh)__builtin_ia32_cvtneps2bf16_128_mask((__v4sf) __A,
-                                                  (__v8hi)_mm_undefined_si128(),
-                                                  (__mmask8)-1);
-}
-
-/// Convert Packed Single Data to Packed BF16 Data.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTNEPS2BF16 </c> instructions.
-///
-/// \param __A
-///    A 128-bit vector of [4 x float].
-/// \param __W
-///    A 128-bit vector of [8 x bfloat].
-/// \param __U
-///    A 4-bit mask value specifying what is chosen for each element.
-///    A 1 means conversion of __A. A 0 means element from __W.
-/// \returns A 128-bit vector of [8 x bfloat] whose lower 64 bits come from
-///    conversion of __A, and higher 64 bits are 0.
-static __inline__ __m128bh __DEFAULT_FN_ATTRS128
-_mm_mask_cvtneps_pbh(__m128bh __W, __mmask8 __U, __m128 __A) {
-  return (__m128bh)__builtin_ia32_cvtneps2bf16_128_mask((__v4sf) __A,
-                                                        (__v8hi)__W,
-                                                        (__mmask8)__U);
-}
-
-/// Convert Packed Single Data to Packed BF16 Data.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTNEPS2BF16 </c> instructions.
-///
-/// \param __A
-///    A 128-bit vector of [4 x float].
-/// \param __U
-///    A 4-bit mask value specifying what is chosen for each element.
-///    A 1 means conversion of __A. A 0 means element is zero.
-/// \returns A 128-bit vector of [8 x bfloat] whose lower 64 bits come from
-///    conversion of __A, and higher 64 bits are 0.
-static __inline__ __m128bh __DEFAULT_FN_ATTRS128
-_mm_maskz_cvtneps_pbh(__mmask8 __U, __m128 __A) {
-  return (__m128bh)__builtin_ia32_cvtneps2bf16_128_mask((__v4sf) __A,
-                                                    (__v8hi)_mm_setzero_si128(),
-                                                    (__mmask8)__U);
-}
-
-/// Convert Packed Single Data to Packed BF16 Data.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTNEPS2BF16 </c> instructions.
-///
-/// \param __A
-///    A 256-bit vector of [8 x float].
-/// \returns A 128-bit vector of [8 x bfloat] comes from conversion of __A.
-static __inline__ __m128bh __DEFAULT_FN_ATTRS256
-_mm256_cvtneps_pbh(__m256 __A) {
-  return (__m128bh)__builtin_ia32_cvtneps2bf16_256_mask((__v8sf)__A,
-                                                  (__v8hi)_mm_undefined_si128(),
-                                                  (__mmask8)-1);
-}
-
-/// Convert Packed Single Data to Packed BF16 Data.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTNEPS2BF16 </c> instructions.
-///
-/// \param __A
-///    A 256-bit vector of [8 x float].
-/// \param __W
-///    A 256-bit vector of [8 x bfloat].
-/// \param __U
-///    A 8-bit mask value specifying what is chosen for each element.
-///    A 1 means conversion of __A. A 0 means element from __W.
-/// \returns A 128-bit vector of [8 x bfloat] comes from conversion of __A.
-static __inline__ __m128bh __DEFAULT_FN_ATTRS256
-_mm256_mask_cvtneps_pbh(__m128bh __W, __mmask8 __U, __m256 __A) {
-  return (__m128bh)__builtin_ia32_cvtneps2bf16_256_mask((__v8sf)__A,
-                                                        (__v8hi)__W,
-                                                        (__mmask8)__U);
-}
-
-/// Convert Packed Single Data to Packed BF16 Data.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTNEPS2BF16 </c> instructions.
-///
-/// \param __A
-///    A 256-bit vector of [8 x float].
-/// \param __U
-///    A 8-bit mask value specifying what is chosen for each element.
-///    A 1 means conversion of __A. A 0 means element is zero.
-/// \returns A 128-bit vector of [8 x bfloat] comes from conversion of __A.
-static __inline__ __m128bh __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvtneps_pbh(__mmask8 __U, __m256 __A) {
-  return (__m128bh)__builtin_ia32_cvtneps2bf16_256_mask((__v8sf)__A,
-                                                    (__v8hi)_mm_setzero_si128(),
-                                                    (__mmask8)__U);
-}
-
-/// Dot Product of BF16 Pairs Accumulated into Packed Single Precision.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VDPBF16PS </c> instructions.
-///
-/// \param __A
-///    A 128-bit vector of [8 x bfloat].
-/// \param __B
-///    A 128-bit vector of [8 x bfloat].
-/// \param __D
-///    A 128-bit vector of [4 x float].
-/// \returns A 128-bit vector of [4 x float] comes from  Dot Product of
-///  __A, __B and __D
-static __inline__ __m128 __DEFAULT_FN_ATTRS128
-_mm_dpbf16_ps(__m128 __D, __m128bh __A, __m128bh __B) {
-  return (__m128)__builtin_ia32_dpbf16ps_128((__v4sf)__D,
-                                             (__v4si)__A,
-                                             (__v4si)__B);
-}
-
-/// Dot Product of BF16 Pairs Accumulated into Packed Single Precision.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VDPBF16PS </c> instructions.
-///
-/// \param __A
-///    A 128-bit vector of [8 x bfloat].
-/// \param __B
-///    A 128-bit vector of [8 x bfloat].
-/// \param __D
-///    A 128-bit vector of [4 x float].
-/// \param __U
-///    A 8-bit mask value specifying what is chosen for each element.
-///    A 1 means __A and __B's dot product accumulated with __D. A 0 means __D.
-/// \returns A 128-bit vector of [4 x float] comes from  Dot Product of
-///  __A, __B and __D
-static __inline__ __m128 __DEFAULT_FN_ATTRS128
-_mm_mask_dpbf16_ps(__m128 __D, __mmask8 __U, __m128bh __A, __m128bh __B) {
-  return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
-                                           (__v4sf)_mm_dpbf16_ps(__D, __A, __B),
-                                           (__v4sf)__D);
-}
-
-/// Dot Product of BF16 Pairs Accumulated into Packed Single Precision.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VDPBF16PS </c> instructions.
-///
-/// \param __A
-///    A 128-bit vector of [8 x bfloat].
-/// \param __B
-///    A 128-bit vector of [8 x bfloat].
-/// \param __D
-///    A 128-bit vector of [4 x float].
-/// \param __U
-///    A 8-bit mask value specifying what is chosen for each element.
-///    A 1 means __A and __B's dot product accumulated with __D. A 0 means 0.
-/// \returns A 128-bit vector of [4 x float] comes from  Dot Product of
-///  __A, __B and __D
-static __inline__ __m128 __DEFAULT_FN_ATTRS128
-_mm_maskz_dpbf16_ps(__mmask8 __U, __m128 __D, __m128bh __A, __m128bh __B) {
-  return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
-                                           (__v4sf)_mm_dpbf16_ps(__D, __A, __B),
-                                           (__v4sf)_mm_setzero_si128());
-}
-
-/// Dot Product of BF16 Pairs Accumulated into Packed Single Precision.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VDPBF16PS </c> instructions.
-///
-/// \param __A
-///    A 256-bit vector of [16 x bfloat].
-/// \param __B
-///    A 256-bit vector of [16 x bfloat].
-/// \param __D
-///    A 256-bit vector of [8 x float].
-/// \returns A 256-bit vector of [8 x float] comes from  Dot Product of
-///  __A, __B and __D
-static __inline__ __m256 __DEFAULT_FN_ATTRS256
-_mm256_dpbf16_ps(__m256 __D, __m256bh __A, __m256bh __B) {
-  return (__m256)__builtin_ia32_dpbf16ps_256((__v8sf)__D,
-                                             (__v8si)__A,
-                                             (__v8si)__B);
-}
-
-/// Dot Product of BF16 Pairs Accumulated into Packed Single Precision.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VDPBF16PS </c> instructions.
-///
-/// \param __A
-///    A 256-bit vector of [16 x bfloat].
-/// \param __B
-///    A 256-bit vector of [16 x bfloat].
-/// \param __D
-///    A 256-bit vector of [8 x float].
-/// \param __U
-///    A 16-bit mask value specifying what is chosen for each element.
-///    A 1 means __A and __B's dot product accumulated with __D. A 0 means __D.
-/// \returns A 256-bit vector of [8 x float] comes from  Dot Product of
-///  __A, __B and __D
-static __inline__ __m256 __DEFAULT_FN_ATTRS256
-_mm256_mask_dpbf16_ps(__m256 __D, __mmask8 __U, __m256bh __A, __m256bh __B) {
-  return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
-                                        (__v8sf)_mm256_dpbf16_ps(__D, __A, __B),
-                                        (__v8sf)__D);
-}
-
-/// Dot Product of BF16 Pairs Accumulated into Packed Single Precision.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VDPBF16PS </c> instructions.
-///
-/// \param __A
-///    A 256-bit vector of [16 x bfloat].
-/// \param __B
-///    A 256-bit vector of [16 x bfloat].
-/// \param __D
-///    A 256-bit vector of [8 x float].
-/// \param __U
-///    A 8-bit mask value specifying what is chosen for each element.
-///    A 1 means __A and __B's dot product accumulated with __D. A 0 means 0.
-/// \returns A 256-bit vector of [8 x float] comes from  Dot Product of
-///  __A, __B and __D
-static __inline__ __m256 __DEFAULT_FN_ATTRS256
-_mm256_maskz_dpbf16_ps(__mmask8 __U, __m256 __D, __m256bh __A, __m256bh __B) {
-  return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
-                                        (__v8sf)_mm256_dpbf16_ps(__D, __A, __B),
-                                        (__v8sf)_mm256_setzero_si256());
-}
-
-/// Convert One Single float Data to One BF16 Data.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTNEPS2BF16 </c> instructions.
-///
-/// \param __A
-///    A float data.
-/// \returns A bf16 data whose sign field and exponent field keep unchanged,
-///    and fraction field is truncated to 7 bits.
-static __inline__ __bfloat16 __DEFAULT_FN_ATTRS128 _mm_cvtness_sbh(float __A) {
-  __v4sf __V = {__A, 0, 0, 0};
-  __v8hi __R = __builtin_ia32_cvtneps2bf16_128_mask(
-      (__v4sf)__V, (__v8hi)_mm_undefined_si128(), (__mmask8)-1);
-  return __R[0];
-}
-
-/// Convert Packed BF16 Data to Packed float Data.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \param __A
-///    A 128-bit vector of [8 x bfloat].
-/// \returns A 256-bit vector of [8 x float] come from convertion of __A
-static __inline__ __m256 __DEFAULT_FN_ATTRS256 _mm256_cvtpbh_ps(__m128bh __A) {
-  return _mm256_castsi256_ps((__m256i)_mm256_slli_epi32(
-      (__m256i)_mm256_cvtepi16_epi32((__m128i)__A), 16));
-}
-
-/// Convert Packed BF16 Data to Packed float Data using zeroing mask.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \param __U
-///    A 8-bit mask. Elements are zeroed out when the corresponding mask
-///    bit is not set.
-/// \param __A
-///    A 128-bit vector of [8 x bfloat].
-/// \returns A 256-bit vector of [8 x float] come from convertion of __A
-static __inline__ __m256 __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvtpbh_ps(__mmask8 __U, __m128bh __A) {
-  return _mm256_castsi256_ps((__m256i)_mm256_slli_epi32(
-      (__m256i)_mm256_maskz_cvtepi16_epi32((__mmask8)__U, (__m128i)__A), 16));
-}
-
-/// Convert Packed BF16 Data to Packed float Data using merging mask.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \param __S
-///    A 256-bit vector of [8 x float]. Elements are copied from __S when
-///     the corresponding mask bit is not set.
-/// \param __U
-///    A 8-bit mask. Elements are zeroed out when the corresponding mask
-///    bit is not set.
-/// \param __A
-///    A 128-bit vector of [8 x bfloat].
-/// \returns A 256-bit vector of [8 x float] come from convertion of __A
-static __inline__ __m256 __DEFAULT_FN_ATTRS256
-_mm256_mask_cvtpbh_ps(__m256 __S, __mmask8 __U, __m128bh __A) {
-  return _mm256_castsi256_ps((__m256i)_mm256_mask_slli_epi32(
-      (__m256i)__S, (__mmask8)__U, (__m256i)_mm256_cvtepi16_epi32((__m128i)__A),
-      16));
-}
-
-#undef __DEFAULT_FN_ATTRS128
-#undef __DEFAULT_FN_ATTRS256
-
-#endif
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512vlfp16intrin.h b/linux-x86/lib64/clang/14.0.1/include/avx512vlfp16intrin.h
deleted file mode 100644
index b8cd554..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/avx512vlfp16intrin.h
+++ /dev/null
@@ -1,2043 +0,0 @@
-/*===---------- avx512vlfp16intrin.h - AVX512-FP16 intrinsics --------------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-#ifndef __IMMINTRIN_H
-#error                                                                         \
-    "Never use <avx512vlfp16intrin.h> directly; include <immintrin.h> instead."
-#endif
-
-#ifndef __AVX512VLFP16INTRIN_H
-#define __AVX512VLFP16INTRIN_H
-
-/* Define the default attributes for the functions in this file. */
-#define __DEFAULT_FN_ATTRS256                                                  \
-  __attribute__((__always_inline__, __nodebug__,                               \
-                 __target__("avx512fp16, avx512vl"),                           \
-                 __min_vector_width__(256)))
-#define __DEFAULT_FN_ATTRS128                                                  \
-  __attribute__((__always_inline__, __nodebug__,                               \
-                 __target__("avx512fp16, avx512vl"),                           \
-                 __min_vector_width__(128)))
-
-static __inline__ _Float16 __DEFAULT_FN_ATTRS128 _mm_cvtsh_h(__m128h __a) {
-  return __a[0];
-}
-
-static __inline__ _Float16 __DEFAULT_FN_ATTRS256 _mm256_cvtsh_h(__m256h __a) {
-  return __a[0];
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_set_sh(_Float16 __h) {
-  return __extension__(__m128h){__h, 0, 0, 0, 0, 0, 0, 0};
-}
-
-static __inline __m128h __DEFAULT_FN_ATTRS128 _mm_set1_ph(_Float16 __h) {
-  return (__m128h)(__v8hf){__h, __h, __h, __h, __h, __h, __h, __h};
-}
-
-static __inline __m256h __DEFAULT_FN_ATTRS256 _mm256_set1_ph(_Float16 __h) {
-  return (__m256h)(__v16hf){__h, __h, __h, __h, __h, __h, __h, __h,
-                            __h, __h, __h, __h, __h, __h, __h, __h};
-}
-
-static __inline __m128h __DEFAULT_FN_ATTRS128
-_mm_set_ph(_Float16 __h1, _Float16 __h2, _Float16 __h3, _Float16 __h4,
-           _Float16 __h5, _Float16 __h6, _Float16 __h7, _Float16 __h8) {
-  return (__m128h)(__v8hf){__h8, __h7, __h6, __h5, __h4, __h3, __h2, __h1};
-}
-
-static __inline __m256h __DEFAULT_FN_ATTRS256
-_mm256_set_ph(_Float16 __h1, _Float16 __h2, _Float16 __h3, _Float16 __h4,
-              _Float16 __h5, _Float16 __h6, _Float16 __h7, _Float16 __h8,
-              _Float16 __h9, _Float16 __h10, _Float16 __h11, _Float16 __h12,
-              _Float16 __h13, _Float16 __h14, _Float16 __h15, _Float16 __h16) {
-  return (__m256h)(__v16hf){__h16, __h15, __h14, __h13, __h12, __h11,
-                            __h10, __h9,  __h8,  __h7,  __h6,  __h5,
-                            __h4,  __h3,  __h2,  __h1};
-}
-
-#define _mm_setr_ph(h1, h2, h3, h4, h5, h6, h7, h8)                            \
-  _mm_set_ph((h8), (h7), (h6), (h5), (h4), (h3), (h2), (h1))
-
-#define _mm256_setr_ph(h1, h2, h3, h4, h5, h6, h7, h8, h9, h10, h11, h12, h13, \
-                       h14, h15, h16)                                          \
-  _mm256_set_ph((h16), (h15), (h14), (h13), (h12), (h11), (h10), (h9), (h8),   \
-                (h7), (h6), (h5), (h4), (h3), (h2), (h1))
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_add_ph(__m256h __A,
-                                                              __m256h __B) {
-  return (__m256h)((__v16hf)__A + (__v16hf)__B);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_add_ph(__m256h __W, __mmask16 __U, __m256h __A, __m256h __B) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      __U, (__v16hf)_mm256_add_ph(__A, __B), (__v16hf)__W);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_add_ph(__mmask16 __U, __m256h __A, __m256h __B) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      __U, (__v16hf)_mm256_add_ph(__A, __B), (__v16hf)_mm256_setzero_ph());
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_add_ph(__m128h __A,
-                                                           __m128h __B) {
-  return (__m128h)((__v8hf)__A + (__v8hf)__B);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_add_ph(__m128h __W,
-                                                                __mmask8 __U,
-                                                                __m128h __A,
-                                                                __m128h __B) {
-  return (__m128h)__builtin_ia32_selectph_128(__U, (__v8hf)_mm_add_ph(__A, __B),
-                                              (__v8hf)__W);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_maskz_add_ph(__mmask8 __U,
-                                                                 __m128h __A,
-                                                                 __m128h __B) {
-  return (__m128h)__builtin_ia32_selectph_128(__U, (__v8hf)_mm_add_ph(__A, __B),
-                                              (__v8hf)_mm_setzero_ph());
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_sub_ph(__m256h __A,
-                                                              __m256h __B) {
-  return (__m256h)((__v16hf)__A - (__v16hf)__B);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_sub_ph(__m256h __W, __mmask16 __U, __m256h __A, __m256h __B) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      __U, (__v16hf)_mm256_sub_ph(__A, __B), (__v16hf)__W);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_sub_ph(__mmask16 __U, __m256h __A, __m256h __B) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      __U, (__v16hf)_mm256_sub_ph(__A, __B), (__v16hf)_mm256_setzero_ph());
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_sub_ph(__m128h __A,
-                                                           __m128h __B) {
-  return (__m128h)((__v8hf)__A - (__v8hf)__B);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_sub_ph(__m128h __W,
-                                                                __mmask8 __U,
-                                                                __m128h __A,
-                                                                __m128h __B) {
-  return (__m128h)__builtin_ia32_selectph_128(__U, (__v8hf)_mm_sub_ph(__A, __B),
-                                              (__v8hf)__W);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_maskz_sub_ph(__mmask8 __U,
-                                                                 __m128h __A,
-                                                                 __m128h __B) {
-  return (__m128h)__builtin_ia32_selectph_128(__U, (__v8hf)_mm_sub_ph(__A, __B),
-                                              (__v8hf)_mm_setzero_ph());
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_mul_ph(__m256h __A,
-                                                              __m256h __B) {
-  return (__m256h)((__v16hf)__A * (__v16hf)__B);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_mul_ph(__m256h __W, __mmask16 __U, __m256h __A, __m256h __B) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      __U, (__v16hf)_mm256_mul_ph(__A, __B), (__v16hf)__W);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_mul_ph(__mmask16 __U, __m256h __A, __m256h __B) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      __U, (__v16hf)_mm256_mul_ph(__A, __B), (__v16hf)_mm256_setzero_ph());
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mul_ph(__m128h __A,
-                                                           __m128h __B) {
-  return (__m128h)((__v8hf)__A * (__v8hf)__B);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_mul_ph(__m128h __W,
-                                                                __mmask8 __U,
-                                                                __m128h __A,
-                                                                __m128h __B) {
-  return (__m128h)__builtin_ia32_selectph_128(__U, (__v8hf)_mm_mul_ph(__A, __B),
-                                              (__v8hf)__W);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_maskz_mul_ph(__mmask8 __U,
-                                                                 __m128h __A,
-                                                                 __m128h __B) {
-  return (__m128h)__builtin_ia32_selectph_128(__U, (__v8hf)_mm_mul_ph(__A, __B),
-                                              (__v8hf)_mm_setzero_ph());
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_div_ph(__m256h __A,
-                                                              __m256h __B) {
-  return (__m256h)((__v16hf)__A / (__v16hf)__B);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_div_ph(__m256h __W, __mmask16 __U, __m256h __A, __m256h __B) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      __U, (__v16hf)_mm256_div_ph(__A, __B), (__v16hf)__W);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_div_ph(__mmask16 __U, __m256h __A, __m256h __B) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      __U, (__v16hf)_mm256_div_ph(__A, __B), (__v16hf)_mm256_setzero_ph());
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_div_ph(__m128h __A,
-                                                           __m128h __B) {
-  return (__m128h)((__v8hf)__A / (__v8hf)__B);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_div_ph(__m128h __W,
-                                                                __mmask8 __U,
-                                                                __m128h __A,
-                                                                __m128h __B) {
-  return (__m128h)__builtin_ia32_selectph_128(__U, (__v8hf)_mm_div_ph(__A, __B),
-                                              (__v8hf)__W);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_maskz_div_ph(__mmask8 __U,
-                                                                 __m128h __A,
-                                                                 __m128h __B) {
-  return (__m128h)__builtin_ia32_selectph_128(__U, (__v8hf)_mm_div_ph(__A, __B),
-                                              (__v8hf)_mm_setzero_ph());
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_min_ph(__m256h __A,
-                                                              __m256h __B) {
-  return (__m256h)__builtin_ia32_minph256((__v16hf)__A, (__v16hf)__B);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_min_ph(__m256h __W, __mmask16 __U, __m256h __A, __m256h __B) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U,
-      (__v16hf)__builtin_ia32_minph256((__v16hf)__A, (__v16hf)__B),
-      (__v16hf)__W);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_min_ph(__mmask16 __U, __m256h __A, __m256h __B) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U,
-      (__v16hf)__builtin_ia32_minph256((__v16hf)__A, (__v16hf)__B),
-      (__v16hf)_mm256_setzero_ph());
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_min_ph(__m128h __A,
-                                                           __m128h __B) {
-  return (__m128h)__builtin_ia32_minph128((__v8hf)__A, (__v8hf)__B);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_min_ph(__m128h __W,
-                                                                __mmask8 __U,
-                                                                __m128h __A,
-                                                                __m128h __B) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U, (__v8hf)__builtin_ia32_minph128((__v8hf)__A, (__v8hf)__B),
-      (__v8hf)__W);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_maskz_min_ph(__mmask8 __U,
-                                                                 __m128h __A,
-                                                                 __m128h __B) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U, (__v8hf)__builtin_ia32_minph128((__v8hf)__A, (__v8hf)__B),
-      (__v8hf)_mm_setzero_ph());
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_max_ph(__m256h __A,
-                                                              __m256h __B) {
-  return (__m256h)__builtin_ia32_maxph256((__v16hf)__A, (__v16hf)__B);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_max_ph(__m256h __W, __mmask16 __U, __m256h __A, __m256h __B) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U,
-      (__v16hf)__builtin_ia32_maxph256((__v16hf)__A, (__v16hf)__B),
-      (__v16hf)__W);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_max_ph(__mmask16 __U, __m256h __A, __m256h __B) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U,
-      (__v16hf)__builtin_ia32_maxph256((__v16hf)__A, (__v16hf)__B),
-      (__v16hf)_mm256_setzero_ph());
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_max_ph(__m128h __A,
-                                                           __m128h __B) {
-  return (__m128h)__builtin_ia32_maxph128((__v8hf)__A, (__v8hf)__B);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_max_ph(__m128h __W,
-                                                                __mmask8 __U,
-                                                                __m128h __A,
-                                                                __m128h __B) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U, (__v8hf)__builtin_ia32_maxph128((__v8hf)__A, (__v8hf)__B),
-      (__v8hf)__W);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_maskz_max_ph(__mmask8 __U,
-                                                                 __m128h __A,
-                                                                 __m128h __B) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U, (__v8hf)__builtin_ia32_maxph128((__v8hf)__A, (__v8hf)__B),
-      (__v8hf)_mm_setzero_ph());
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_abs_ph(__m256h __A) {
-  return (__m256h)_mm256_and_epi32(_mm256_set1_epi32(0x7FFF7FFF), (__m256i)__A);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_abs_ph(__m128h __A) {
-  return (__m128h)_mm_and_epi32(_mm_set1_epi32(0x7FFF7FFF), (__m128i)__A);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_conj_pch(__m256h __A) {
-  return (__m256h)_mm256_xor_ps((__m256)__A, _mm256_set1_ps(-0.0f));
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_conj_pch(__m256h __W, __mmask8 __U, __m256h __A) {
-  return (__m256h)__builtin_ia32_selectps_256(
-      (__mmask8)__U, (__v8sf)_mm256_conj_pch(__A), (__v8sf)__W);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_conj_pch(__mmask8 __U, __m256h __A) {
-  return (__m256h)__builtin_ia32_selectps_256(
-      (__mmask8)__U, (__v8sf)_mm256_conj_pch(__A), (__v8sf)_mm256_setzero_ps());
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_conj_pch(__m128h __A) {
-  return (__m128h)_mm_xor_ps((__m128)__A, _mm_set1_ps(-0.0f));
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_conj_pch(__m128h __W,
-                                                                  __mmask8 __U,
-                                                                  __m128h __A) {
-  return (__m128h)__builtin_ia32_selectps_128(
-      (__mmask8)__U, (__v4sf)_mm_conj_pch(__A), (__v4sf)__W);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_conj_pch(__mmask8 __U, __m128h __A) {
-  return (__m128h)__builtin_ia32_selectps_128(
-      (__mmask8)__U, (__v4sf)_mm_conj_pch(__A), (__v4sf)_mm_setzero_ps());
-}
-
-#define _mm256_cmp_ph_mask(a, b, p)                                            \
-  ((__mmask16)__builtin_ia32_cmpph256_mask(                                    \
-      (__v16hf)(__m256h)(a), (__v16hf)(__m256h)(b), (int)(p), (__mmask16)-1))
-
-#define _mm256_mask_cmp_ph_mask(m, a, b, p)                                    \
-  ((__mmask16)__builtin_ia32_cmpph256_mask(                                    \
-      (__v16hf)(__m256h)(a), (__v16hf)(__m256h)(b), (int)(p), (__mmask16)(m)))
-
-#define _mm_cmp_ph_mask(a, b, p)                                               \
-  ((__mmask8)__builtin_ia32_cmpph128_mask(                                     \
-      (__v8hf)(__m128h)(a), (__v8hf)(__m128h)(b), (int)(p), (__mmask8)-1))
-
-#define _mm_mask_cmp_ph_mask(m, a, b, p)                                       \
-  ((__mmask8)__builtin_ia32_cmpph128_mask(                                     \
-      (__v8hf)(__m128h)(a), (__v8hf)(__m128h)(b), (int)(p), (__mmask8)(m)))
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_rcp_ph(__m256h __A) {
-  return (__m256h)__builtin_ia32_rcpph256_mask(
-      (__v16hf)__A, (__v16hf)_mm256_undefined_ph(), (__mmask16)-1);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_rcp_ph(__m256h __W, __mmask16 __U, __m256h __A) {
-  return (__m256h)__builtin_ia32_rcpph256_mask((__v16hf)__A, (__v16hf)__W,
-                                               (__mmask16)__U);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_rcp_ph(__mmask16 __U, __m256h __A) {
-  return (__m256h)__builtin_ia32_rcpph256_mask(
-      (__v16hf)__A, (__v16hf)_mm256_setzero_ph(), (__mmask16)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_rcp_ph(__m128h __A) {
-  return (__m128h)__builtin_ia32_rcpph128_mask(
-      (__v8hf)__A, (__v8hf)_mm_undefined_ph(), (__mmask8)-1);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_rcp_ph(__m128h __W,
-                                                                __mmask8 __U,
-                                                                __m128h __A) {
-  return (__m128h)__builtin_ia32_rcpph128_mask((__v8hf)__A, (__v8hf)__W,
-                                               (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_maskz_rcp_ph(__mmask8 __U,
-                                                                 __m128h __A) {
-  return (__m128h)__builtin_ia32_rcpph128_mask(
-      (__v8hf)__A, (__v8hf)_mm_setzero_ph(), (__mmask8)__U);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_rsqrt_ph(__m256h __A) {
-  return (__m256h)__builtin_ia32_rsqrtph256_mask(
-      (__v16hf)__A, (__v16hf)_mm256_undefined_ph(), (__mmask16)-1);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_rsqrt_ph(__m256h __W, __mmask16 __U, __m256h __A) {
-  return (__m256h)__builtin_ia32_rsqrtph256_mask((__v16hf)__A, (__v16hf)__W,
-                                                 (__mmask16)__U);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_rsqrt_ph(__mmask16 __U, __m256h __A) {
-  return (__m256h)__builtin_ia32_rsqrtph256_mask(
-      (__v16hf)__A, (__v16hf)_mm256_setzero_ph(), (__mmask16)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_rsqrt_ph(__m128h __A) {
-  return (__m128h)__builtin_ia32_rsqrtph128_mask(
-      (__v8hf)__A, (__v8hf)_mm_undefined_ph(), (__mmask8)-1);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_rsqrt_ph(__m128h __W,
-                                                                  __mmask8 __U,
-                                                                  __m128h __A) {
-  return (__m128h)__builtin_ia32_rsqrtph128_mask((__v8hf)__A, (__v8hf)__W,
-                                                 (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_rsqrt_ph(__mmask8 __U, __m128h __A) {
-  return (__m128h)__builtin_ia32_rsqrtph128_mask(
-      (__v8hf)__A, (__v8hf)_mm_setzero_ph(), (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_getexp_ph(__m128h __A) {
-  return (__m128h)__builtin_ia32_getexpph128_mask(
-      (__v8hf)__A, (__v8hf)_mm_setzero_ph(), (__mmask8)-1);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask_getexp_ph(__m128h __W, __mmask8 __U, __m128h __A) {
-  return (__m128h)__builtin_ia32_getexpph128_mask((__v8hf)__A, (__v8hf)__W,
-                                                  (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_getexp_ph(__mmask8 __U, __m128h __A) {
-  return (__m128h)__builtin_ia32_getexpph128_mask(
-      (__v8hf)__A, (__v8hf)_mm_setzero_ph(), (__mmask8)__U);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_getexp_ph(__m256h __A) {
-  return (__m256h)__builtin_ia32_getexpph256_mask(
-      (__v16hf)__A, (__v16hf)_mm256_setzero_ph(), (__mmask16)-1);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_getexp_ph(__m256h __W, __mmask16 __U, __m256h __A) {
-  return (__m256h)__builtin_ia32_getexpph256_mask((__v16hf)__A, (__v16hf)__W,
-                                                  (__mmask16)__U);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_getexp_ph(__mmask16 __U, __m256h __A) {
-  return (__m256h)__builtin_ia32_getexpph256_mask(
-      (__v16hf)__A, (__v16hf)_mm256_setzero_ph(), (__mmask16)__U);
-}
-
-#define _mm_getmant_ph(A, B, C)                                                \
-  ((__m128h)__builtin_ia32_getmantph128_mask(                                  \
-      (__v8hf)(__m128h)(A), (int)(((C) << 2) | (B)), (__v8hf)_mm_setzero_ph(), \
-      (__mmask8)-1))
-
-#define _mm_mask_getmant_ph(W, U, A, B, C)                                     \
-  ((__m128h)__builtin_ia32_getmantph128_mask(                                  \
-      (__v8hf)(__m128h)(A), (int)(((C) << 2) | (B)), (__v8hf)(__m128h)(W),     \
-      (__mmask8)(U)))
-
-#define _mm_maskz_getmant_ph(U, A, B, C)                                       \
-  ((__m128h)__builtin_ia32_getmantph128_mask(                                  \
-      (__v8hf)(__m128h)(A), (int)(((C) << 2) | (B)), (__v8hf)_mm_setzero_ph(), \
-      (__mmask8)(U)))
-
-#define _mm256_getmant_ph(A, B, C)                                             \
-  ((__m256h)__builtin_ia32_getmantph256_mask(                                  \
-      (__v16hf)(__m256h)(A), (int)(((C) << 2) | (B)),                          \
-      (__v16hf)_mm256_setzero_ph(), (__mmask16)-1))
-
-#define _mm256_mask_getmant_ph(W, U, A, B, C)                                  \
-  ((__m256h)__builtin_ia32_getmantph256_mask(                                  \
-      (__v16hf)(__m256h)(A), (int)(((C) << 2) | (B)), (__v16hf)(__m256h)(W),   \
-      (__mmask16)(U)))
-
-#define _mm256_maskz_getmant_ph(U, A, B, C)                                    \
-  ((__m256h)__builtin_ia32_getmantph256_mask(                                  \
-      (__v16hf)(__m256h)(A), (int)(((C) << 2) | (B)),                          \
-      (__v16hf)_mm256_setzero_ph(), (__mmask16)(U)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_scalef_ph(__m128h __A,
-                                                              __m128h __B) {
-  return (__m128h)__builtin_ia32_scalefph128_mask(
-      (__v8hf)__A, (__v8hf)__B, (__v8hf)_mm_setzero_ph(), (__mmask8)-1);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask_scalef_ph(__m128h __W, __mmask8 __U, __m128h __A, __m128h __B) {
-  return (__m128h)__builtin_ia32_scalefph128_mask((__v8hf)__A, (__v8hf)__B,
-                                                  (__v8hf)__W, (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_scalef_ph(__mmask8 __U, __m128h __A, __m128h __B) {
-  return (__m128h)__builtin_ia32_scalefph128_mask(
-      (__v8hf)__A, (__v8hf)__B, (__v8hf)_mm_setzero_ph(), (__mmask8)__U);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_scalef_ph(__m256h __A,
-                                                                 __m256h __B) {
-  return (__m256h)__builtin_ia32_scalefph256_mask(
-      (__v16hf)__A, (__v16hf)__B, (__v16hf)_mm256_setzero_ph(), (__mmask16)-1);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_scalef_ph(__m256h __W, __mmask16 __U, __m256h __A, __m256h __B) {
-  return (__m256h)__builtin_ia32_scalefph256_mask((__v16hf)__A, (__v16hf)__B,
-                                                  (__v16hf)__W, (__mmask16)__U);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_scalef_ph(__mmask16 __U, __m256h __A, __m256h __B) {
-  return (__m256h)__builtin_ia32_scalefph256_mask(
-      (__v16hf)__A, (__v16hf)__B, (__v16hf)_mm256_setzero_ph(), (__mmask16)__U);
-}
-
-#define _mm_roundscale_ph(A, imm)                                              \
-  ((__m128h)__builtin_ia32_rndscaleph_128_mask(                                \
-      (__v8hf)(__m128h)(A), (int)(imm), (__v8hf)_mm_setzero_ph(),              \
-      (__mmask8)-1))
-
-#define _mm_mask_roundscale_ph(W, U, A, imm)                                   \
-  ((__m128h)__builtin_ia32_rndscaleph_128_mask(                                \
-      (__v8hf)(__m128h)(A), (int)(imm), (__v8hf)(__m128h)(W), (__mmask8)(U)))
-
-#define _mm_maskz_roundscale_ph(U, A, imm)                                     \
-  ((__m128h)__builtin_ia32_rndscaleph_128_mask(                                \
-      (__v8hf)(__m128h)(A), (int)(imm), (__v8hf)_mm_setzero_ph(),              \
-      (__mmask8)(U)))
-
-#define _mm256_roundscale_ph(A, imm)                                           \
-  ((__m256h)__builtin_ia32_rndscaleph_256_mask(                                \
-      (__v16hf)(__m256h)(A), (int)(imm), (__v16hf)_mm256_setzero_ph(),         \
-      (__mmask16)-1))
-
-#define _mm256_mask_roundscale_ph(W, U, A, imm)                                \
-  ((__m256h)__builtin_ia32_rndscaleph_256_mask(                                \
-      (__v16hf)(__m256h)(A), (int)(imm), (__v16hf)(__m256h)(W),                \
-      (__mmask16)(U)))
-
-#define _mm256_maskz_roundscale_ph(U, A, imm)                                  \
-  ((__m256h)__builtin_ia32_rndscaleph_256_mask(                                \
-      (__v16hf)(__m256h)(A), (int)(imm), (__v16hf)_mm256_setzero_ph(),         \
-      (__mmask16)(U)))
-
-#define _mm_reduce_ph(A, imm)                                                  \
-  ((__m128h)__builtin_ia32_reduceph128_mask((__v8hf)(__m128h)(A), (int)(imm),  \
-                                            (__v8hf)_mm_setzero_ph(),          \
-                                            (__mmask8)-1))
-
-#define _mm_mask_reduce_ph(W, U, A, imm)                                       \
-  ((__m128h)__builtin_ia32_reduceph128_mask(                                   \
-      (__v8hf)(__m128h)(A), (int)(imm), (__v8hf)(__m128h)(W), (__mmask8)(U)))
-
-#define _mm_maskz_reduce_ph(U, A, imm)                                         \
-  ((__m128h)__builtin_ia32_reduceph128_mask((__v8hf)(__m128h)(A), (int)(imm),  \
-                                            (__v8hf)_mm_setzero_ph(),          \
-                                            (__mmask8)(U)))
-
-#define _mm256_reduce_ph(A, imm)                                               \
-  ((__m256h)__builtin_ia32_reduceph256_mask((__v16hf)(__m256h)(A), (int)(imm), \
-                                            (__v16hf)_mm256_setzero_ph(),      \
-                                            (__mmask16)-1))
-
-#define _mm256_mask_reduce_ph(W, U, A, imm)                                    \
-  ((__m256h)__builtin_ia32_reduceph256_mask((__v16hf)(__m256h)(A), (int)(imm), \
-                                            (__v16hf)(__m256h)(W),             \
-                                            (__mmask16)(U)))
-
-#define _mm256_maskz_reduce_ph(U, A, imm)                                      \
-  ((__m256h)__builtin_ia32_reduceph256_mask((__v16hf)(__m256h)(A), (int)(imm), \
-                                            (__v16hf)_mm256_setzero_ph(),      \
-                                            (__mmask16)(U)))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_sqrt_ph(__m128h __a) {
-  return __builtin_ia32_sqrtph((__v8hf)__a);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_sqrt_ph(__m128h __W,
-                                                                 __mmask8 __U,
-                                                                 __m128h __A) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U, (__v8hf)_mm_sqrt_ph(__A), (__v8hf)__W);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_maskz_sqrt_ph(__mmask8 __U,
-                                                                  __m128h __A) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U, (__v8hf)_mm_sqrt_ph(__A), (__v8hf)_mm_setzero_ph());
-}
-
-static __inline __m256h __DEFAULT_FN_ATTRS256 _mm256_sqrt_ph(__m256h __a) {
-  return (__m256h)__builtin_ia32_sqrtph256((__v16hf)__a);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_sqrt_ph(__m256h __W, __mmask16 __U, __m256h __A) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U, (__v16hf)_mm256_sqrt_ph(__A), (__v16hf)__W);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_sqrt_ph(__mmask16 __U, __m256h __A) {
-  return (__m256h)__builtin_ia32_selectph_256((__mmask16)__U,
-                                              (__v16hf)_mm256_sqrt_ph(__A),
-                                              (__v16hf)_mm256_setzero_ph());
-}
-
-#define _mm_mask_fpclass_ph_mask(U, A, imm)                                    \
-  ((__mmask8)__builtin_ia32_fpclassph128_mask((__v8hf)(__m128h)(A),            \
-                                              (int)(imm), (__mmask8)(U)))
-
-#define _mm_fpclass_ph_mask(A, imm)                                            \
-  ((__mmask8)__builtin_ia32_fpclassph128_mask((__v8hf)(__m128h)(A),            \
-                                              (int)(imm), (__mmask8)-1))
-
-#define _mm256_mask_fpclass_ph_mask(U, A, imm)                                 \
-  ((__mmask16)__builtin_ia32_fpclassph256_mask((__v16hf)(__m256h)(A),          \
-                                               (int)(imm), (__mmask16)(U)))
-
-#define _mm256_fpclass_ph_mask(A, imm)                                         \
-  ((__mmask16)__builtin_ia32_fpclassph256_mask((__v16hf)(__m256h)(A),          \
-                                               (int)(imm), (__mmask16)-1))
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_cvtpd_ph(__m128d __A) {
-  return (__m128h)__builtin_ia32_vcvtpd2ph128_mask(
-      (__v2df)__A, (__v8hf)_mm_undefined_ph(), (__mmask8)-1);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_cvtpd_ph(__m128h __W,
-                                                                  __mmask8 __U,
-                                                                  __m128d __A) {
-  return (__m128h)__builtin_ia32_vcvtpd2ph128_mask((__v2df)__A, (__v8hf)__W,
-                                                   (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_cvtpd_ph(__mmask8 __U, __m128d __A) {
-  return (__m128h)__builtin_ia32_vcvtpd2ph128_mask(
-      (__v2df)__A, (__v8hf)_mm_setzero_ph(), (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS256 _mm256_cvtpd_ph(__m256d __A) {
-  return (__m128h)__builtin_ia32_vcvtpd2ph256_mask(
-      (__v4df)__A, (__v8hf)_mm_undefined_ph(), (__mmask8)-1);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS256
-_mm256_mask_cvtpd_ph(__m128h __W, __mmask8 __U, __m256d __A) {
-  return (__m128h)__builtin_ia32_vcvtpd2ph256_mask((__v4df)__A, (__v8hf)__W,
-                                                   (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvtpd_ph(__mmask8 __U, __m256d __A) {
-  return (__m128h)__builtin_ia32_vcvtpd2ph256_mask(
-      (__v4df)__A, (__v8hf)_mm_setzero_ph(), (__mmask8)__U);
-}
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_cvtph_pd(__m128h __A) {
-  return (__m128d)__builtin_ia32_vcvtph2pd128_mask(
-      (__v8hf)__A, (__v2df)_mm_undefined_pd(), (__mmask8)-1);
-}
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_mask_cvtph_pd(__m128d __W,
-                                                                  __mmask8 __U,
-                                                                  __m128h __A) {
-  return (__m128d)__builtin_ia32_vcvtph2pd128_mask((__v8hf)__A, (__v2df)__W,
-                                                   (__mmask8)__U);
-}
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS128
-_mm_maskz_cvtph_pd(__mmask8 __U, __m128h __A) {
-  return (__m128d)__builtin_ia32_vcvtph2pd128_mask(
-      (__v8hf)__A, (__v2df)_mm_setzero_pd(), (__mmask8)__U);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS256 _mm256_cvtph_pd(__m128h __A) {
-  return (__m256d)__builtin_ia32_vcvtph2pd256_mask(
-      (__v8hf)__A, (__v4df)_mm256_undefined_pd(), (__mmask8)-1);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS256
-_mm256_mask_cvtph_pd(__m256d __W, __mmask8 __U, __m128h __A) {
-  return (__m256d)__builtin_ia32_vcvtph2pd256_mask((__v8hf)__A, (__v4df)__W,
-                                                   (__mmask8)__U);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvtph_pd(__mmask8 __U, __m128h __A) {
-  return (__m256d)__builtin_ia32_vcvtph2pd256_mask(
-      (__v8hf)__A, (__v4df)_mm256_setzero_pd(), (__mmask8)__U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvtph_epi16(__m128h __A) {
-  return (__m128i)__builtin_ia32_vcvtph2w128_mask(
-      (__v8hf)__A, (__v8hi)_mm_undefined_si128(), (__mmask8)-1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_mask_cvtph_epi16(__m128i __W, __mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvtph2w128_mask((__v8hf)__A, (__v8hi)__W,
-                                                  (__mmask8)__U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_maskz_cvtph_epi16(__mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvtph2w128_mask(
-      (__v8hf)__A, (__v8hi)_mm_setzero_si128(), (__mmask8)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_cvtph_epi16(__m256h __A) {
-  return (__m256i)__builtin_ia32_vcvtph2w256_mask(
-      (__v16hf)__A, (__v16hi)_mm256_undefined_si256(), (__mmask16)-1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_mask_cvtph_epi16(__m256i __W, __mmask16 __U, __m256h __A) {
-  return (__m256i)__builtin_ia32_vcvtph2w256_mask((__v16hf)__A, (__v16hi)__W,
-                                                  (__mmask16)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvtph_epi16(__mmask16 __U, __m256h __A) {
-  return (__m256i)__builtin_ia32_vcvtph2w256_mask(
-      (__v16hf)__A, (__v16hi)_mm256_setzero_si256(), (__mmask16)__U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvttph_epi16(__m128h __A) {
-  return (__m128i)__builtin_ia32_vcvttph2w128_mask(
-      (__v8hf)__A, (__v8hi)_mm_undefined_si128(), (__mmask8)-1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_mask_cvttph_epi16(__m128i __W, __mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvttph2w128_mask((__v8hf)__A, (__v8hi)__W,
-                                                   (__mmask8)__U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_maskz_cvttph_epi16(__mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvttph2w128_mask(
-      (__v8hf)__A, (__v8hi)_mm_setzero_si128(), (__mmask8)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_cvttph_epi16(__m256h __A) {
-  return (__m256i)__builtin_ia32_vcvttph2w256_mask(
-      (__v16hf)__A, (__v16hi)_mm256_undefined_si256(), (__mmask16)-1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_mask_cvttph_epi16(__m256i __W, __mmask16 __U, __m256h __A) {
-  return (__m256i)__builtin_ia32_vcvttph2w256_mask((__v16hf)__A, (__v16hi)__W,
-                                                   (__mmask16)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvttph_epi16(__mmask16 __U, __m256h __A) {
-  return (__m256i)__builtin_ia32_vcvttph2w256_mask(
-      (__v16hf)__A, (__v16hi)_mm256_setzero_si256(), (__mmask16)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_cvtepi16_ph(__m128i __A) {
-  return (__m128h) __builtin_convertvector((__v8hi)__A, __v8hf);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask_cvtepi16_ph(__m128h __W, __mmask8 __U, __m128i __A) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U, (__v8hf)_mm_cvtepi16_ph(__A), (__v8hf)__W);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_cvtepi16_ph(__mmask8 __U, __m128i __A) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U, (__v8hf)_mm_cvtepi16_ph(__A), (__v8hf)_mm_setzero_ph());
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_cvtepi16_ph(__m256i __A) {
-  return (__m256h) __builtin_convertvector((__v16hi)__A, __v16hf);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_cvtepi16_ph(__m256h __W, __mmask16 __U, __m256i __A) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U, (__v16hf)_mm256_cvtepi16_ph(__A), (__v16hf)__W);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvtepi16_ph(__mmask16 __U, __m256i __A) {
-  return (__m256h)__builtin_ia32_selectph_256((__mmask16)__U,
-                                              (__v16hf)_mm256_cvtepi16_ph(__A),
-                                              (__v16hf)_mm256_setzero_ph());
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvtph_epu16(__m128h __A) {
-  return (__m128i)__builtin_ia32_vcvtph2uw128_mask(
-      (__v8hf)__A, (__v8hu)_mm_undefined_si128(), (__mmask8)-1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_mask_cvtph_epu16(__m128i __W, __mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvtph2uw128_mask((__v8hf)__A, (__v8hu)__W,
-                                                   (__mmask8)__U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_maskz_cvtph_epu16(__mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvtph2uw128_mask(
-      (__v8hf)__A, (__v8hu)_mm_setzero_si128(), (__mmask8)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_cvtph_epu16(__m256h __A) {
-  return (__m256i)__builtin_ia32_vcvtph2uw256_mask(
-      (__v16hf)__A, (__v16hu)_mm256_undefined_si256(), (__mmask16)-1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_mask_cvtph_epu16(__m256i __W, __mmask16 __U, __m256h __A) {
-  return (__m256i)__builtin_ia32_vcvtph2uw256_mask((__v16hf)__A, (__v16hu)__W,
-                                                   (__mmask16)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvtph_epu16(__mmask16 __U, __m256h __A) {
-  return (__m256i)__builtin_ia32_vcvtph2uw256_mask(
-      (__v16hf)__A, (__v16hu)_mm256_setzero_si256(), (__mmask16)__U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvttph_epu16(__m128h __A) {
-  return (__m128i)__builtin_ia32_vcvttph2uw128_mask(
-      (__v8hf)__A, (__v8hu)_mm_undefined_si128(), (__mmask8)-1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_mask_cvttph_epu16(__m128i __W, __mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvttph2uw128_mask((__v8hf)__A, (__v8hu)__W,
-                                                    (__mmask8)__U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_maskz_cvttph_epu16(__mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvttph2uw128_mask(
-      (__v8hf)__A, (__v8hu)_mm_setzero_si128(), (__mmask8)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_cvttph_epu16(__m256h __A) {
-  return (__m256i)__builtin_ia32_vcvttph2uw256_mask(
-      (__v16hf)__A, (__v16hu)_mm256_undefined_si256(), (__mmask16)-1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_mask_cvttph_epu16(__m256i __W, __mmask16 __U, __m256h __A) {
-  return (__m256i)__builtin_ia32_vcvttph2uw256_mask((__v16hf)__A, (__v16hu)__W,
-                                                    (__mmask16)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvttph_epu16(__mmask16 __U, __m256h __A) {
-  return (__m256i)__builtin_ia32_vcvttph2uw256_mask(
-      (__v16hf)__A, (__v16hu)_mm256_setzero_si256(), (__mmask16)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_cvtepu16_ph(__m128i __A) {
-  return (__m128h) __builtin_convertvector((__v8hu)__A, __v8hf);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask_cvtepu16_ph(__m128h __W, __mmask8 __U, __m128i __A) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U, (__v8hf)_mm_cvtepu16_ph(__A), (__v8hf)__W);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_cvtepu16_ph(__mmask8 __U, __m128i __A) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U, (__v8hf)_mm_cvtepu16_ph(__A), (__v8hf)_mm_setzero_ph());
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_cvtepu16_ph(__m256i __A) {
-  return (__m256h) __builtin_convertvector((__v16hu)__A, __v16hf);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_cvtepu16_ph(__m256h __W, __mmask16 __U, __m256i __A) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U, (__v16hf)_mm256_cvtepu16_ph(__A), (__v16hf)__W);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvtepu16_ph(__mmask16 __U, __m256i __A) {
-  return (__m256h)__builtin_ia32_selectph_256((__mmask16)__U,
-                                              (__v16hf)_mm256_cvtepu16_ph(__A),
-                                              (__v16hf)_mm256_setzero_ph());
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvtph_epi32(__m128h __A) {
-  return (__m128i)__builtin_ia32_vcvtph2dq128_mask(
-      (__v8hf)__A, (__v4si)_mm_undefined_si128(), (__mmask8)-1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_mask_cvtph_epi32(__m128i __W, __mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvtph2dq128_mask((__v8hf)__A, (__v4si)__W,
-                                                   (__mmask8)__U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_maskz_cvtph_epi32(__mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvtph2dq128_mask(
-      (__v8hf)__A, (__v4si)_mm_setzero_si128(), (__mmask8)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_cvtph_epi32(__m128h __A) {
-  return (__m256i)__builtin_ia32_vcvtph2dq256_mask(
-      (__v8hf)__A, (__v8si)_mm256_undefined_si256(), (__mmask8)-1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_mask_cvtph_epi32(__m256i __W, __mmask8 __U, __m128h __A) {
-  return (__m256i)__builtin_ia32_vcvtph2dq256_mask((__v8hf)__A, (__v8si)__W,
-                                                   (__mmask8)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvtph_epi32(__mmask8 __U, __m128h __A) {
-  return (__m256i)__builtin_ia32_vcvtph2dq256_mask(
-      (__v8hf)__A, (__v8si)_mm256_setzero_si256(), (__mmask8)__U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvtph_epu32(__m128h __A) {
-  return (__m128i)__builtin_ia32_vcvtph2udq128_mask(
-      (__v8hf)__A, (__v4su)_mm_undefined_si128(), (__mmask8)-1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_mask_cvtph_epu32(__m128i __W, __mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvtph2udq128_mask((__v8hf)__A, (__v4su)__W,
-                                                    (__mmask8)__U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_maskz_cvtph_epu32(__mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvtph2udq128_mask(
-      (__v8hf)__A, (__v4su)_mm_setzero_si128(), (__mmask8)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_cvtph_epu32(__m128h __A) {
-  return (__m256i)__builtin_ia32_vcvtph2udq256_mask(
-      (__v8hf)__A, (__v8su)_mm256_undefined_si256(), (__mmask8)-1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_mask_cvtph_epu32(__m256i __W, __mmask8 __U, __m128h __A) {
-  return (__m256i)__builtin_ia32_vcvtph2udq256_mask((__v8hf)__A, (__v8su)__W,
-                                                    (__mmask8)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvtph_epu32(__mmask8 __U, __m128h __A) {
-  return (__m256i)__builtin_ia32_vcvtph2udq256_mask(
-      (__v8hf)__A, (__v8su)_mm256_setzero_si256(), (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_cvtepi32_ph(__m128i __A) {
-  return (__m128h)__builtin_ia32_vcvtdq2ph128_mask(
-      (__v4si)__A, (__v8hf)_mm_undefined_ph(), (__mmask8)-1);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask_cvtepi32_ph(__m128h __W, __mmask8 __U, __m128i __A) {
-  return (__m128h)__builtin_ia32_vcvtdq2ph128_mask((__v4si)__A, (__v8hf)__W,
-                                                   (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_cvtepi32_ph(__mmask8 __U, __m128i __A) {
-  return (__m128h)__builtin_ia32_vcvtdq2ph128_mask(
-      (__v4si)__A, (__v8hf)_mm_setzero_ph(), (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS256
-_mm256_cvtepi32_ph(__m256i __A) {
-  return (__m128h) __builtin_convertvector((__v8si)__A, __v8hf);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS256
-_mm256_mask_cvtepi32_ph(__m128h __W, __mmask8 __U, __m256i __A) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U, (__v8hf)_mm256_cvtepi32_ph(__A), (__v8hf)__W);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvtepi32_ph(__mmask8 __U, __m256i __A) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U, (__v8hf)_mm256_cvtepi32_ph(__A), (__v8hf)_mm_setzero_ph());
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_cvtepu32_ph(__m128i __A) {
-  return (__m128h)__builtin_ia32_vcvtudq2ph128_mask(
-      (__v4su)__A, (__v8hf)_mm_undefined_ph(), (__mmask8)-1);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask_cvtepu32_ph(__m128h __W, __mmask8 __U, __m128i __A) {
-  return (__m128h)__builtin_ia32_vcvtudq2ph128_mask((__v4su)__A, (__v8hf)__W,
-                                                    (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_cvtepu32_ph(__mmask8 __U, __m128i __A) {
-  return (__m128h)__builtin_ia32_vcvtudq2ph128_mask(
-      (__v4su)__A, (__v8hf)_mm_setzero_ph(), (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS256
-_mm256_cvtepu32_ph(__m256i __A) {
-  return (__m128h) __builtin_convertvector((__v8su)__A, __v8hf);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS256
-_mm256_mask_cvtepu32_ph(__m128h __W, __mmask8 __U, __m256i __A) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U, (__v8hf)_mm256_cvtepu32_ph(__A), (__v8hf)__W);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvtepu32_ph(__mmask8 __U, __m256i __A) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U, (__v8hf)_mm256_cvtepu32_ph(__A), (__v8hf)_mm_setzero_ph());
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvttph_epi32(__m128h __A) {
-  return (__m128i)__builtin_ia32_vcvttph2dq128_mask(
-      (__v8hf)__A, (__v4si)_mm_undefined_si128(), (__mmask8)-1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_mask_cvttph_epi32(__m128i __W, __mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvttph2dq128_mask((__v8hf)__A, (__v4si)__W,
-                                                    (__mmask8)__U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_maskz_cvttph_epi32(__mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvttph2dq128_mask(
-      (__v8hf)__A, (__v4si)_mm_setzero_si128(), (__mmask8)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_cvttph_epi32(__m128h __A) {
-  return (__m256i)__builtin_ia32_vcvttph2dq256_mask(
-      (__v8hf)__A, (__v8si)_mm256_undefined_si256(), (__mmask8)-1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_mask_cvttph_epi32(__m256i __W, __mmask8 __U, __m128h __A) {
-  return (__m256i)__builtin_ia32_vcvttph2dq256_mask((__v8hf)__A, (__v8si)__W,
-                                                    (__mmask8)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvttph_epi32(__mmask8 __U, __m128h __A) {
-  return (__m256i)__builtin_ia32_vcvttph2dq256_mask(
-      (__v8hf)__A, (__v8si)_mm256_setzero_si256(), (__mmask8)__U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvttph_epu32(__m128h __A) {
-  return (__m128i)__builtin_ia32_vcvttph2udq128_mask(
-      (__v8hf)__A, (__v4su)_mm_undefined_si128(), (__mmask8)-1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_mask_cvttph_epu32(__m128i __W, __mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvttph2udq128_mask((__v8hf)__A, (__v4su)__W,
-                                                     (__mmask8)__U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_maskz_cvttph_epu32(__mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvttph2udq128_mask(
-      (__v8hf)__A, (__v4su)_mm_setzero_si128(), (__mmask8)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_cvttph_epu32(__m128h __A) {
-  return (__m256i)__builtin_ia32_vcvttph2udq256_mask(
-      (__v8hf)__A, (__v8su)_mm256_undefined_si256(), (__mmask8)-1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_mask_cvttph_epu32(__m256i __W, __mmask8 __U, __m128h __A) {
-  return (__m256i)__builtin_ia32_vcvttph2udq256_mask((__v8hf)__A, (__v8su)__W,
-                                                     (__mmask8)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvttph_epu32(__mmask8 __U, __m128h __A) {
-  return (__m256i)__builtin_ia32_vcvttph2udq256_mask(
-      (__v8hf)__A, (__v8su)_mm256_setzero_si256(), (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_cvtepi64_ph(__m128i __A) {
-  return (__m128h)__builtin_ia32_vcvtqq2ph128_mask(
-      (__v2di)__A, (__v8hf)_mm_undefined_ph(), (__mmask8)-1);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask_cvtepi64_ph(__m128h __W, __mmask8 __U, __m128i __A) {
-  return (__m128h)__builtin_ia32_vcvtqq2ph128_mask((__v2di)__A, (__v8hf)__W,
-                                                   (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_cvtepi64_ph(__mmask8 __U, __m128i __A) {
-  return (__m128h)__builtin_ia32_vcvtqq2ph128_mask(
-      (__v2di)__A, (__v8hf)_mm_setzero_ph(), (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS256
-_mm256_cvtepi64_ph(__m256i __A) {
-  return (__m128h)__builtin_ia32_vcvtqq2ph256_mask(
-      (__v4di)__A, (__v8hf)_mm_undefined_ph(), (__mmask8)-1);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS256
-_mm256_mask_cvtepi64_ph(__m128h __W, __mmask8 __U, __m256i __A) {
-  return (__m128h)__builtin_ia32_vcvtqq2ph256_mask((__v4di)__A, (__v8hf)__W,
-                                                   (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvtepi64_ph(__mmask8 __U, __m256i __A) {
-  return (__m128h)__builtin_ia32_vcvtqq2ph256_mask(
-      (__v4di)__A, (__v8hf)_mm_setzero_ph(), (__mmask8)__U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvtph_epi64(__m128h __A) {
-  return (__m128i)__builtin_ia32_vcvtph2qq128_mask(
-      (__v8hf)__A, (__v2di)_mm_undefined_si128(), (__mmask8)-1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_mask_cvtph_epi64(__m128i __W, __mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvtph2qq128_mask((__v8hf)__A, (__v2di)__W,
-                                                   (__mmask8)__U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_maskz_cvtph_epi64(__mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvtph2qq128_mask(
-      (__v8hf)__A, (__v2di)_mm_setzero_si128(), (__mmask8)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_cvtph_epi64(__m128h __A) {
-  return (__m256i)__builtin_ia32_vcvtph2qq256_mask(
-      (__v8hf)__A, (__v4di)_mm256_undefined_si256(), (__mmask8)-1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_mask_cvtph_epi64(__m256i __W, __mmask8 __U, __m128h __A) {
-  return (__m256i)__builtin_ia32_vcvtph2qq256_mask((__v8hf)__A, (__v4di)__W,
-                                                   (__mmask8)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvtph_epi64(__mmask8 __U, __m128h __A) {
-  return (__m256i)__builtin_ia32_vcvtph2qq256_mask(
-      (__v8hf)__A, (__v4di)_mm256_setzero_si256(), (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_cvtepu64_ph(__m128i __A) {
-  return (__m128h)__builtin_ia32_vcvtuqq2ph128_mask(
-      (__v2du)__A, (__v8hf)_mm_undefined_ph(), (__mmask8)-1);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask_cvtepu64_ph(__m128h __W, __mmask8 __U, __m128i __A) {
-  return (__m128h)__builtin_ia32_vcvtuqq2ph128_mask((__v2du)__A, (__v8hf)__W,
-                                                    (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_cvtepu64_ph(__mmask8 __U, __m128i __A) {
-  return (__m128h)__builtin_ia32_vcvtuqq2ph128_mask(
-      (__v2du)__A, (__v8hf)_mm_setzero_ph(), (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS256
-_mm256_cvtepu64_ph(__m256i __A) {
-  return (__m128h)__builtin_ia32_vcvtuqq2ph256_mask(
-      (__v4du)__A, (__v8hf)_mm_undefined_ph(), (__mmask8)-1);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS256
-_mm256_mask_cvtepu64_ph(__m128h __W, __mmask8 __U, __m256i __A) {
-  return (__m128h)__builtin_ia32_vcvtuqq2ph256_mask((__v4du)__A, (__v8hf)__W,
-                                                    (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvtepu64_ph(__mmask8 __U, __m256i __A) {
-  return (__m128h)__builtin_ia32_vcvtuqq2ph256_mask(
-      (__v4du)__A, (__v8hf)_mm_setzero_ph(), (__mmask8)__U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvtph_epu64(__m128h __A) {
-  return (__m128i)__builtin_ia32_vcvtph2uqq128_mask(
-      (__v8hf)__A, (__v2du)_mm_undefined_si128(), (__mmask8)-1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_mask_cvtph_epu64(__m128i __W, __mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvtph2uqq128_mask((__v8hf)__A, (__v2du)__W,
-                                                    (__mmask8)__U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_maskz_cvtph_epu64(__mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvtph2uqq128_mask(
-      (__v8hf)__A, (__v2du)_mm_setzero_si128(), (__mmask8)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_cvtph_epu64(__m128h __A) {
-  return (__m256i)__builtin_ia32_vcvtph2uqq256_mask(
-      (__v8hf)__A, (__v4du)_mm256_undefined_si256(), (__mmask8)-1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_mask_cvtph_epu64(__m256i __W, __mmask8 __U, __m128h __A) {
-  return (__m256i)__builtin_ia32_vcvtph2uqq256_mask((__v8hf)__A, (__v4du)__W,
-                                                    (__mmask8)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvtph_epu64(__mmask8 __U, __m128h __A) {
-  return (__m256i)__builtin_ia32_vcvtph2uqq256_mask(
-      (__v8hf)__A, (__v4du)_mm256_setzero_si256(), (__mmask8)__U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvttph_epi64(__m128h __A) {
-  return (__m128i)__builtin_ia32_vcvttph2qq128_mask(
-      (__v8hf)__A, (__v2di)_mm_undefined_si128(), (__mmask8)-1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_mask_cvttph_epi64(__m128i __W, __mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvttph2qq128_mask((__v8hf)__A, (__v2di)__W,
-                                                    (__mmask8)__U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_maskz_cvttph_epi64(__mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvttph2qq128_mask(
-      (__v8hf)__A, (__v2di)_mm_setzero_si128(), (__mmask8)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_cvttph_epi64(__m128h __A) {
-  return (__m256i)__builtin_ia32_vcvttph2qq256_mask(
-      (__v8hf)__A, (__v4di)_mm256_undefined_si256(), (__mmask8)-1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_mask_cvttph_epi64(__m256i __W, __mmask8 __U, __m128h __A) {
-  return (__m256i)__builtin_ia32_vcvttph2qq256_mask((__v8hf)__A, (__v4di)__W,
-                                                    (__mmask8)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvttph_epi64(__mmask8 __U, __m128h __A) {
-  return (__m256i)__builtin_ia32_vcvttph2qq256_mask(
-      (__v8hf)__A, (__v4di)_mm256_setzero_si256(), (__mmask8)__U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvttph_epu64(__m128h __A) {
-  return (__m128i)__builtin_ia32_vcvttph2uqq128_mask(
-      (__v8hf)__A, (__v2du)_mm_undefined_si128(), (__mmask8)-1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_mask_cvttph_epu64(__m128i __W, __mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvttph2uqq128_mask((__v8hf)__A, (__v2du)__W,
-                                                     (__mmask8)__U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
-_mm_maskz_cvttph_epu64(__mmask8 __U, __m128h __A) {
-  return (__m128i)__builtin_ia32_vcvttph2uqq128_mask(
-      (__v8hf)__A, (__v2du)_mm_setzero_si128(), (__mmask8)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_cvttph_epu64(__m128h __A) {
-  return (__m256i)__builtin_ia32_vcvttph2uqq256_mask(
-      (__v8hf)__A, (__v4du)_mm256_undefined_si256(), (__mmask8)-1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_mask_cvttph_epu64(__m256i __W, __mmask8 __U, __m128h __A) {
-  return (__m256i)__builtin_ia32_vcvttph2uqq256_mask((__v8hf)__A, (__v4du)__W,
-                                                     (__mmask8)__U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvttph_epu64(__mmask8 __U, __m128h __A) {
-  return (__m256i)__builtin_ia32_vcvttph2uqq256_mask(
-      (__v8hf)__A, (__v4du)_mm256_setzero_si256(), (__mmask8)__U);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_cvtxph_ps(__m128h __A) {
-  return (__m128)__builtin_ia32_vcvtph2psx128_mask(
-      (__v8hf)__A, (__v4sf)_mm_undefined_ps(), (__mmask8)-1);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_mask_cvtxph_ps(__m128 __W,
-                                                                  __mmask8 __U,
-                                                                  __m128h __A) {
-  return (__m128)__builtin_ia32_vcvtph2psx128_mask((__v8hf)__A, (__v4sf)__W,
-                                                   (__mmask8)__U);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS128
-_mm_maskz_cvtxph_ps(__mmask8 __U, __m128h __A) {
-  return (__m128)__builtin_ia32_vcvtph2psx128_mask(
-      (__v8hf)__A, (__v4sf)_mm_setzero_ps(), (__mmask8)__U);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS256 _mm256_cvtxph_ps(__m128h __A) {
-  return (__m256)__builtin_ia32_vcvtph2psx256_mask(
-      (__v8hf)__A, (__v8sf)_mm256_undefined_ps(), (__mmask8)-1);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS256
-_mm256_mask_cvtxph_ps(__m256 __W, __mmask8 __U, __m128h __A) {
-  return (__m256)__builtin_ia32_vcvtph2psx256_mask((__v8hf)__A, (__v8sf)__W,
-                                                   (__mmask8)__U);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvtxph_ps(__mmask8 __U, __m128h __A) {
-  return (__m256)__builtin_ia32_vcvtph2psx256_mask(
-      (__v8hf)__A, (__v8sf)_mm256_setzero_ps(), (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_cvtxps_ph(__m128 __A) {
-  return (__m128h)__builtin_ia32_vcvtps2phx128_mask(
-      (__v4sf)__A, (__v8hf)_mm_undefined_ph(), (__mmask8)-1);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_cvtxps_ph(__m128h __W,
-                                                                   __mmask8 __U,
-                                                                   __m128 __A) {
-  return (__m128h)__builtin_ia32_vcvtps2phx128_mask((__v4sf)__A, (__v8hf)__W,
-                                                    (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_cvtxps_ph(__mmask8 __U, __m128 __A) {
-  return (__m128h)__builtin_ia32_vcvtps2phx128_mask(
-      (__v4sf)__A, (__v8hf)_mm_setzero_ph(), (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS256 _mm256_cvtxps_ph(__m256 __A) {
-  return (__m128h)__builtin_ia32_vcvtps2phx256_mask(
-      (__v8sf)__A, (__v8hf)_mm_undefined_ph(), (__mmask8)-1);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS256
-_mm256_mask_cvtxps_ph(__m128h __W, __mmask8 __U, __m256 __A) {
-  return (__m128h)__builtin_ia32_vcvtps2phx256_mask((__v8sf)__A, (__v8hf)__W,
-                                                    (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS256
-_mm256_maskz_cvtxps_ph(__mmask8 __U, __m256 __A) {
-  return (__m128h)__builtin_ia32_vcvtps2phx256_mask(
-      (__v8sf)__A, (__v8hf)_mm_setzero_ph(), (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fmadd_ph(__m128h __A,
-                                                             __m128h __B,
-                                                             __m128h __C) {
-  return (__m128h)__builtin_ia32_vfmaddph((__v8hf)__A, (__v8hf)__B,
-                                          (__v8hf)__C);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_fmadd_ph(__m128h __A,
-                                                                  __mmask8 __U,
-                                                                  __m128h __B,
-                                                                  __m128h __C) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U,
-      __builtin_ia32_vfmaddph((__v8hf)__A, (__v8hf)__B, (__v8hf)__C),
-      (__v8hf)__A);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask3_fmadd_ph(__m128h __A, __m128h __B, __m128h __C, __mmask8 __U) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U,
-      __builtin_ia32_vfmaddph((__v8hf)__A, (__v8hf)__B, (__v8hf)__C),
-      (__v8hf)__C);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_fmadd_ph(__mmask8 __U, __m128h __A, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U,
-      __builtin_ia32_vfmaddph((__v8hf)__A, (__v8hf)__B, (__v8hf)__C),
-      (__v8hf)_mm_setzero_ph());
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fmsub_ph(__m128h __A,
-                                                             __m128h __B,
-                                                             __m128h __C) {
-  return (__m128h)__builtin_ia32_vfmaddph((__v8hf)__A, (__v8hf)__B,
-                                          -(__v8hf)__C);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_fmsub_ph(__m128h __A,
-                                                                  __mmask8 __U,
-                                                                  __m128h __B,
-                                                                  __m128h __C) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U, _mm_fmsub_ph((__v8hf)__A, (__v8hf)__B, (__v8hf)__C),
-      (__v8hf)__A);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_fmsub_ph(__mmask8 __U, __m128h __A, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U, _mm_fmsub_ph((__v8hf)__A, (__v8hf)__B, (__v8hf)__C),
-      (__v8hf)_mm_setzero_ph());
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask3_fnmadd_ph(__m128h __A, __m128h __B, __m128h __C, __mmask8 __U) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U,
-      __builtin_ia32_vfmaddph(-(__v8hf)__A, (__v8hf)__B, (__v8hf)__C),
-      (__v8hf)__C);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_fnmadd_ph(__mmask8 __U, __m128h __A, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U,
-      __builtin_ia32_vfmaddph(-(__v8hf)__A, (__v8hf)__B, (__v8hf)__C),
-      (__v8hf)_mm_setzero_ph());
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_fnmsub_ph(__mmask8 __U, __m128h __A, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U,
-      __builtin_ia32_vfmaddph(-(__v8hf)__A, (__v8hf)__B, -(__v8hf)__C),
-      (__v8hf)_mm_setzero_ph());
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_fmadd_ph(__m256h __A,
-                                                                __m256h __B,
-                                                                __m256h __C) {
-  return (__m256h)__builtin_ia32_vfmaddph256((__v16hf)__A, (__v16hf)__B,
-                                             (__v16hf)__C);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_fmadd_ph(__m256h __A, __mmask16 __U, __m256h __B, __m256h __C) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U,
-      __builtin_ia32_vfmaddph256((__v16hf)__A, (__v16hf)__B, (__v16hf)__C),
-      (__v16hf)__A);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask3_fmadd_ph(__m256h __A, __m256h __B, __m256h __C, __mmask16 __U) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U,
-      __builtin_ia32_vfmaddph256((__v16hf)__A, (__v16hf)__B, (__v16hf)__C),
-      (__v16hf)__C);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_fmadd_ph(__mmask16 __U, __m256h __A, __m256h __B, __m256h __C) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U,
-      __builtin_ia32_vfmaddph256((__v16hf)__A, (__v16hf)__B, (__v16hf)__C),
-      (__v16hf)_mm256_setzero_ph());
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_fmsub_ph(__m256h __A,
-                                                                __m256h __B,
-                                                                __m256h __C) {
-  return (__m256h)__builtin_ia32_vfmaddph256((__v16hf)__A, (__v16hf)__B,
-                                             -(__v16hf)__C);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_fmsub_ph(__m256h __A, __mmask16 __U, __m256h __B, __m256h __C) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U,
-      __builtin_ia32_vfmaddph256((__v16hf)__A, (__v16hf)__B, -(__v16hf)__C),
-      (__v16hf)__A);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_fmsub_ph(__mmask16 __U, __m256h __A, __m256h __B, __m256h __C) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U,
-      __builtin_ia32_vfmaddph256((__v16hf)__A, (__v16hf)__B, -(__v16hf)__C),
-      (__v16hf)_mm256_setzero_ph());
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask3_fnmadd_ph(__m256h __A, __m256h __B, __m256h __C, __mmask16 __U) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U,
-      __builtin_ia32_vfmaddph256(-(__v16hf)__A, (__v16hf)__B, (__v16hf)__C),
-      (__v16hf)__C);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_fnmadd_ph(__mmask16 __U, __m256h __A, __m256h __B, __m256h __C) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U,
-      __builtin_ia32_vfmaddph256(-(__v16hf)__A, (__v16hf)__B, (__v16hf)__C),
-      (__v16hf)_mm256_setzero_ph());
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_fnmsub_ph(__mmask16 __U, __m256h __A, __m256h __B, __m256h __C) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U,
-      __builtin_ia32_vfmaddph256(-(__v16hf)__A, (__v16hf)__B, -(__v16hf)__C),
-      (__v16hf)_mm256_setzero_ph());
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fmaddsub_ph(__m128h __A,
-                                                                __m128h __B,
-                                                                __m128h __C) {
-  return (__m128h)__builtin_ia32_vfmaddsubph((__v8hf)__A, (__v8hf)__B,
-                                             (__v8hf)__C);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask_fmaddsub_ph(__m128h __A, __mmask8 __U, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U,
-      __builtin_ia32_vfmaddsubph((__v8hf)__A, (__v8hf)__B, (__v8hf)__C),
-      (__v8hf)__A);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask3_fmaddsub_ph(__m128h __A, __m128h __B, __m128h __C, __mmask8 __U) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U,
-      __builtin_ia32_vfmaddsubph((__v8hf)__A, (__v8hf)__B, (__v8hf)__C),
-      (__v8hf)__C);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_fmaddsub_ph(__mmask8 __U, __m128h __A, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U,
-      __builtin_ia32_vfmaddsubph((__v8hf)__A, (__v8hf)__B, (__v8hf)__C),
-      (__v8hf)_mm_setzero_ph());
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fmsubadd_ph(__m128h __A,
-                                                                __m128h __B,
-                                                                __m128h __C) {
-  return (__m128h)__builtin_ia32_vfmaddsubph((__v8hf)__A, (__v8hf)__B,
-                                             -(__v8hf)__C);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask_fmsubadd_ph(__m128h __A, __mmask8 __U, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U,
-      __builtin_ia32_vfmaddsubph((__v8hf)__A, (__v8hf)__B, -(__v8hf)__C),
-      (__v8hf)__A);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_fmsubadd_ph(__mmask8 __U, __m128h __A, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U,
-      __builtin_ia32_vfmaddsubph((__v8hf)__A, (__v8hf)__B, -(__v8hf)__C),
-      (__v8hf)_mm_setzero_ph());
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_fmaddsub_ph(__m256h __A, __m256h __B, __m256h __C) {
-  return (__m256h)__builtin_ia32_vfmaddsubph256((__v16hf)__A, (__v16hf)__B,
-                                                (__v16hf)__C);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_fmaddsub_ph(__m256h __A, __mmask16 __U, __m256h __B, __m256h __C) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U,
-      __builtin_ia32_vfmaddsubph256((__v16hf)__A, (__v16hf)__B, (__v16hf)__C),
-      (__v16hf)__A);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask3_fmaddsub_ph(__m256h __A, __m256h __B, __m256h __C, __mmask16 __U) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U,
-      __builtin_ia32_vfmaddsubph256((__v16hf)__A, (__v16hf)__B, (__v16hf)__C),
-      (__v16hf)__C);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_fmaddsub_ph(__mmask16 __U, __m256h __A, __m256h __B, __m256h __C) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U,
-      __builtin_ia32_vfmaddsubph256((__v16hf)__A, (__v16hf)__B, (__v16hf)__C),
-      (__v16hf)_mm256_setzero_ph());
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_fmsubadd_ph(__m256h __A, __m256h __B, __m256h __C) {
-  return (__m256h)__builtin_ia32_vfmaddsubph256((__v16hf)__A, (__v16hf)__B,
-                                                -(__v16hf)__C);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_fmsubadd_ph(__m256h __A, __mmask16 __U, __m256h __B, __m256h __C) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U,
-      __builtin_ia32_vfmaddsubph256((__v16hf)__A, (__v16hf)__B, -(__v16hf)__C),
-      (__v16hf)__A);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_fmsubadd_ph(__mmask16 __U, __m256h __A, __m256h __B, __m256h __C) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U,
-      __builtin_ia32_vfmaddsubph256((__v16hf)__A, (__v16hf)__B, -(__v16hf)__C),
-      (__v16hf)_mm256_setzero_ph());
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask3_fmsub_ph(__m128h __A, __m128h __B, __m128h __C, __mmask8 __U) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U,
-      __builtin_ia32_vfmaddph((__v8hf)__A, (__v8hf)__B, -(__v8hf)__C),
-      (__v8hf)__C);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask3_fmsub_ph(__m256h __A, __m256h __B, __m256h __C, __mmask16 __U) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U,
-      __builtin_ia32_vfmaddph256((__v16hf)__A, (__v16hf)__B, -(__v16hf)__C),
-      (__v16hf)__C);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask3_fmsubadd_ph(__m128h __A, __m128h __B, __m128h __C, __mmask8 __U) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U,
-      __builtin_ia32_vfmaddsubph((__v8hf)__A, (__v8hf)__B, -(__v8hf)__C),
-      (__v8hf)__C);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask3_fmsubadd_ph(__m256h __A, __m256h __B, __m256h __C, __mmask16 __U) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U,
-      __builtin_ia32_vfmaddsubph256((__v16hf)__A, (__v16hf)__B, -(__v16hf)__C),
-      (__v16hf)__C);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fnmadd_ph(__m128h __A,
-                                                              __m128h __B,
-                                                              __m128h __C) {
-  return (__m128h)__builtin_ia32_vfmaddph((__v8hf)__A, -(__v8hf)__B,
-                                          (__v8hf)__C);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask_fnmadd_ph(__m128h __A, __mmask8 __U, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U,
-      __builtin_ia32_vfmaddph((__v8hf)__A, -(__v8hf)__B, (__v8hf)__C),
-      (__v8hf)__A);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_fnmadd_ph(__m256h __A,
-                                                                 __m256h __B,
-                                                                 __m256h __C) {
-  return (__m256h)__builtin_ia32_vfmaddph256((__v16hf)__A, -(__v16hf)__B,
-                                             (__v16hf)__C);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_fnmadd_ph(__m256h __A, __mmask16 __U, __m256h __B, __m256h __C) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U,
-      __builtin_ia32_vfmaddph256((__v16hf)__A, -(__v16hf)__B, (__v16hf)__C),
-      (__v16hf)__A);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fnmsub_ph(__m128h __A,
-                                                              __m128h __B,
-                                                              __m128h __C) {
-  return (__m128h)__builtin_ia32_vfmaddph((__v8hf)__A, -(__v8hf)__B,
-                                          -(__v8hf)__C);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask_fnmsub_ph(__m128h __A, __mmask8 __U, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U,
-      __builtin_ia32_vfmaddph((__v8hf)__A, -(__v8hf)__B, -(__v8hf)__C),
-      (__v8hf)__A);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask3_fnmsub_ph(__m128h __A, __m128h __B, __m128h __C, __mmask8 __U) {
-  return (__m128h)__builtin_ia32_selectph_128(
-      (__mmask8)__U,
-      __builtin_ia32_vfmaddph((__v8hf)__A, -(__v8hf)__B, -(__v8hf)__C),
-      (__v8hf)__C);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_fnmsub_ph(__m256h __A,
-                                                                 __m256h __B,
-                                                                 __m256h __C) {
-  return (__m256h)__builtin_ia32_vfmaddph256((__v16hf)__A, -(__v16hf)__B,
-                                             -(__v16hf)__C);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_fnmsub_ph(__m256h __A, __mmask16 __U, __m256h __B, __m256h __C) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U,
-      __builtin_ia32_vfmaddph256((__v16hf)__A, -(__v16hf)__B, -(__v16hf)__C),
-      (__v16hf)__A);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask3_fnmsub_ph(__m256h __A, __m256h __B, __m256h __C, __mmask16 __U) {
-  return (__m256h)__builtin_ia32_selectph_256(
-      (__mmask16)__U,
-      __builtin_ia32_vfmaddph256((__v16hf)__A, -(__v16hf)__B, -(__v16hf)__C),
-      (__v16hf)__C);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fcmul_pch(__m128h __A,
-                                                              __m128h __B) {
-  return (__m128h)__builtin_ia32_vfcmulcph128_mask(
-      (__v4sf)__A, (__v4sf)__B, (__v4sf)_mm_undefined_ph(), (__mmask8)-1);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask_fcmul_pch(__m128h __W, __mmask8 __U, __m128h __A, __m128h __B) {
-  return (__m128h)__builtin_ia32_vfcmulcph128_mask((__v4sf)__A, (__v4sf)__B,
-                                                   (__v4sf)__W, (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_fcmul_pch(__mmask8 __U, __m128h __A, __m128h __B) {
-  return (__m128h)__builtin_ia32_vfcmulcph128_mask(
-      (__v4sf)__A, (__v4sf)__B, (__v4sf)_mm_setzero_ph(), (__mmask8)__U);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS128 _mm256_fcmul_pch(__m256h __A,
-                                                                 __m256h __B) {
-  return (__m256h)__builtin_ia32_vfcmulcph256_mask(
-      (__v8sf)__A, (__v8sf)__B, (__v8sf)_mm256_undefined_ph(), (__mmask8)-1);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_fcmul_pch(__m256h __W, __mmask8 __U, __m256h __A, __m256h __B) {
-  return (__m256h)__builtin_ia32_vfcmulcph256_mask((__v8sf)__A, (__v8sf)__B,
-                                                   (__v8sf)__W, (__mmask8)__U);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_fcmul_pch(__mmask8 __U, __m256h __A, __m256h __B) {
-  return (__m256h)__builtin_ia32_vfcmulcph256_mask(
-      (__v8sf)__A, (__v8sf)__B, (__v8sf)_mm256_setzero_ph(), (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fcmadd_pch(__m128h __A,
-                                                               __m128h __B,
-                                                               __m128h __C) {
-  return (__m128h)__builtin_ia32_vfcmaddcph128_mask((__v4sf)__C, (__v4sf)__A,
-                                                    (__v4sf)__B, (__mmask8)-1);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask_fcmadd_pch(__m128h __A, __mmask8 __U, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_selectps_128(
-      __U,
-      __builtin_ia32_vfcmaddcph128_mask((__v4sf)__C, (__v4sf)(__m128h)__A,
-                                        (__v4sf)__B, (__mmask8)__U),
-      (__v4sf)__A);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask3_fcmadd_pch(__m128h __A, __m128h __B, __m128h __C, __mmask8 __U) {
-  return (__m128h)__builtin_ia32_vfcmaddcph128_mask((__v4sf)__C, (__v4sf)__A,
-                                                    (__v4sf)__B, (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_fcmadd_pch(__mmask8 __U, __m128h __A, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_vfcmaddcph128_maskz(
-      (__v4sf)__C, (__v4sf)__A, (__v4sf)__B, (__mmask8)__U);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_fcmadd_pch(__m256h __A,
-                                                                  __m256h __B,
-                                                                  __m256h __C) {
-  return (__m256h)__builtin_ia32_vfcmaddcph256_mask((__v8sf)__C, (__v8sf)__A,
-                                                    (__v8sf)__B, (__mmask8)-1);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_fcmadd_pch(__m256h __A, __mmask8 __U, __m256h __B, __m256h __C) {
-  return (__m256h)__builtin_ia32_selectps_256(
-      __U,
-      __builtin_ia32_vfcmaddcph256_mask((__v8sf)__C, (__v8sf)__A, (__v8sf)__B,
-                                        (__mmask8)__U),
-      (__v8sf)__A);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask3_fcmadd_pch(__m256h __A, __m256h __B, __m256h __C, __mmask8 __U) {
-  return (__m256h)__builtin_ia32_vfcmaddcph256_mask((__v8sf)__C, (__v8sf)__A,
-                                                    (__v8sf)__B, (__mmask8)__U);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_fcmadd_pch(__mmask8 __U, __m256h __A, __m256h __B, __m256h __C) {
-  return (__m256h)__builtin_ia32_vfcmaddcph256_maskz(
-      (__v8sf)__C, (__v8sf)__A, (__v8sf)__B, (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fmul_pch(__m128h __A,
-                                                             __m128h __B) {
-  return (__m128h)__builtin_ia32_vfmulcph128_mask(
-      (__v4sf)__A, (__v4sf)__B, (__v4sf)_mm_undefined_ph(), (__mmask8)-1);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_fmul_pch(__m128h __W,
-                                                                  __mmask8 __U,
-                                                                  __m128h __A,
-                                                                  __m128h __B) {
-  return (__m128h)__builtin_ia32_vfmulcph128_mask((__v4sf)__A, (__v4sf)__B,
-                                                  (__v4sf)__W, (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_fmul_pch(__mmask8 __U, __m128h __A, __m128h __B) {
-  return (__m128h)__builtin_ia32_vfmulcph128_mask(
-      (__v4sf)__A, (__v4sf)__B, (__v4sf)_mm_setzero_ph(), (__mmask8)__U);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_fmul_pch(__m256h __A,
-                                                                __m256h __B) {
-  return (__m256h)__builtin_ia32_vfmulcph256_mask(
-      (__v8sf)__A, (__v8sf)__B, (__v8sf)_mm256_undefined_ph(), (__mmask8)-1);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_fmul_pch(__m256h __W, __mmask8 __U, __m256h __A, __m256h __B) {
-  return (__m256h)__builtin_ia32_vfmulcph256_mask((__v8sf)__A, (__v8sf)__B,
-                                                  (__v8sf)__W, (__mmask8)__U);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_fmul_pch(__mmask8 __U, __m256h __A, __m256h __B) {
-  return (__m256h)__builtin_ia32_vfmulcph256_mask(
-      (__v8sf)__A, (__v8sf)__B, (__v8sf)_mm256_setzero_ph(), (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fmadd_pch(__m128h __A,
-                                                              __m128h __B,
-                                                              __m128h __C) {
-  return (__m128h)__builtin_ia32_vfmaddcph128_mask((__v4sf)__C, (__v4sf)__A,
-                                                   (__v4sf)__B, (__mmask8)-1);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask_fmadd_pch(__m128h __A, __mmask8 __U, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_selectps_128(
-      __U,
-      __builtin_ia32_vfmaddcph128_mask((__v4sf)__C, (__v4sf)__A, (__v4sf)__B,
-                                       (__mmask8)__U),
-      (__v4sf)__A);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_mask3_fmadd_pch(__m128h __A, __m128h __B, __m128h __C, __mmask8 __U) {
-  return (__m128h)__builtin_ia32_vfmaddcph128_mask((__v4sf)__C, (__v4sf)__A,
-                                                   (__v4sf)__B, (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_maskz_fmadd_pch(__mmask8 __U, __m128h __A, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_vfmaddcph128_maskz((__v4sf)__C, (__v4sf)__A,
-                                                    (__v4sf)__B, (__mmask8)__U);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_fmadd_pch(__m256h __A,
-                                                                 __m256h __B,
-                                                                 __m256h __C) {
-  return (__m256h)__builtin_ia32_vfmaddcph256_mask((__v8sf)__C, (__v8sf)__A,
-                                                   (__v8sf)__B, (__mmask8)-1);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_fmadd_pch(__m256h __A, __mmask8 __U, __m256h __B, __m256h __C) {
-  return (__m256h)__builtin_ia32_selectps_256(
-      __U,
-      __builtin_ia32_vfmaddcph256_mask((__v8sf)__C, (__v8sf)__A, (__v8sf)__B,
-                                       (__mmask8)__U),
-      (__v8sf)__A);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask3_fmadd_pch(__m256h __A, __m256h __B, __m256h __C, __mmask8 __U) {
-  return (__m256h)__builtin_ia32_vfmaddcph256_mask((__v8sf)__C, (__v8sf)__A,
-                                                   (__v8sf)__B, (__mmask8)__U);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_maskz_fmadd_pch(__mmask8 __U, __m256h __A, __m256h __B, __m256h __C) {
-  return (__m256h)__builtin_ia32_vfmaddcph256_maskz((__v8sf)__C, (__v8sf)__A,
-                                                    (__v8sf)__B, (__mmask8)__U);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_blend_ph(__mmask8 __U,
-                                                                  __m128h __A,
-                                                                  __m128h __W) {
-  return (__m128h)__builtin_ia32_selectph_128((__mmask8)__U, (__v8hf)__W,
-                                              (__v8hf)__A);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_mask_blend_ph(__mmask16 __U, __m256h __A, __m256h __W) {
-  return (__m256h)__builtin_ia32_selectph_256((__mmask16)__U, (__v16hf)__W,
-                                              (__v16hf)__A);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_permutex2var_ph(__m128h __A, __m128i __I, __m128h __B) {
-  return (__m128h)__builtin_ia32_vpermi2varhi128((__v8hi)__A, (__v8hi)__I,
-                                                 (__v8hi)__B);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_permutex2var_ph(__m256h __A, __m256i __I, __m256h __B) {
-  return (__m256h)__builtin_ia32_vpermi2varhi256((__v16hi)__A, (__v16hi)__I,
-                                                 (__v16hi)__B);
-}
-
-static __inline__ __m128h __DEFAULT_FN_ATTRS128
-_mm_permutexvar_ph(__m128i __A, __m128h __B) {
-  return (__m128h)__builtin_ia32_permvarhi128((__v8hi)__B, (__v8hi)__A);
-}
-
-static __inline__ __m256h __DEFAULT_FN_ATTRS256
-_mm256_permutexvar_ph(__m256i __A, __m256h __B) {
-  return (__m256h)__builtin_ia32_permvarhi256((__v16hi)__B, (__v16hi)__A);
-}
-
-static __inline__ _Float16 __DEFAULT_FN_ATTRS256
-_mm256_reduce_add_ph(__m256h __W) {
-  return __builtin_ia32_reduce_fadd_ph256(-0.0f16, __W);
-}
-
-static __inline__ _Float16 __DEFAULT_FN_ATTRS256
-_mm256_reduce_mul_ph(__m256h __W) {
-  return __builtin_ia32_reduce_fmul_ph256(1.0f16, __W);
-}
-
-static __inline__ _Float16 __DEFAULT_FN_ATTRS256
-_mm256_reduce_max_ph(__m256h __V) {
-  return __builtin_ia32_reduce_fmax_ph256(__V);
-}
-
-static __inline__ _Float16 __DEFAULT_FN_ATTRS256
-_mm256_reduce_min_ph(__m256h __V) {
-  return __builtin_ia32_reduce_fmin_ph256(__V);
-}
-
-static __inline__ _Float16 __DEFAULT_FN_ATTRS128
-_mm_reduce_add_ph(__m128h __W) {
-  return __builtin_ia32_reduce_fadd_ph128(-0.0f16, __W);
-}
-
-static __inline__ _Float16 __DEFAULT_FN_ATTRS128
-_mm_reduce_mul_ph(__m128h __W) {
-  return __builtin_ia32_reduce_fmul_ph128(1.0f16, __W);
-}
-
-static __inline__ _Float16 __DEFAULT_FN_ATTRS128
-_mm_reduce_max_ph(__m128h __V) {
-  return __builtin_ia32_reduce_fmax_ph128(__V);
-}
-
-static __inline__ _Float16 __DEFAULT_FN_ATTRS128
-_mm_reduce_min_ph(__m128h __V) {
-  return __builtin_ia32_reduce_fmin_ph128(__V);
-}
-
-#undef __DEFAULT_FN_ATTRS128
-#undef __DEFAULT_FN_ATTRS256
-
-#endif
diff --git a/linux-x86/lib64/clang/14.0.1/include/avxintrin.h b/linux-x86/lib64/clang/14.0.1/include/avxintrin.h
deleted file mode 100644
index 7f4e976..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/avxintrin.h
+++ /dev/null
@@ -1,5053 +0,0 @@
-/*===---- avxintrin.h - AVX intrinsics -------------------------------------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-
-#ifndef __IMMINTRIN_H
-#error "Never use <avxintrin.h> directly; include <immintrin.h> instead."
-#endif
-
-#ifndef __AVXINTRIN_H
-#define __AVXINTRIN_H
-
-typedef double __v4df __attribute__ ((__vector_size__ (32)));
-typedef float __v8sf __attribute__ ((__vector_size__ (32)));
-typedef long long __v4di __attribute__ ((__vector_size__ (32)));
-typedef int __v8si __attribute__ ((__vector_size__ (32)));
-typedef short __v16hi __attribute__ ((__vector_size__ (32)));
-typedef char __v32qi __attribute__ ((__vector_size__ (32)));
-
-/* Unsigned types */
-typedef unsigned long long __v4du __attribute__ ((__vector_size__ (32)));
-typedef unsigned int __v8su __attribute__ ((__vector_size__ (32)));
-typedef unsigned short __v16hu __attribute__ ((__vector_size__ (32)));
-typedef unsigned char __v32qu __attribute__ ((__vector_size__ (32)));
-
-/* We need an explicitly signed variant for char. Note that this shouldn't
- * appear in the interface though. */
-typedef signed char __v32qs __attribute__((__vector_size__(32)));
-
-typedef float __m256 __attribute__ ((__vector_size__ (32), __aligned__(32)));
-typedef double __m256d __attribute__((__vector_size__(32), __aligned__(32)));
-typedef long long __m256i __attribute__((__vector_size__(32), __aligned__(32)));
-
-typedef float __m256_u __attribute__ ((__vector_size__ (32), __aligned__(1)));
-typedef double __m256d_u __attribute__((__vector_size__(32), __aligned__(1)));
-typedef long long __m256i_u __attribute__((__vector_size__(32), __aligned__(1)));
-
-/* Define the default attributes for the functions in this file. */
-#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256)))
-#define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(128)))
-
-/* Arithmetic */
-/// Adds two 256-bit vectors of [4 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VADDPD </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double] containing one of the source operands.
-/// \param __b
-///    A 256-bit vector of [4 x double] containing one of the source operands.
-/// \returns A 256-bit vector of [4 x double] containing the sums of both
-///    operands.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_add_pd(__m256d __a, __m256d __b)
-{
-  return (__m256d)((__v4df)__a+(__v4df)__b);
-}
-
-/// Adds two 256-bit vectors of [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VADDPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float] containing one of the source operands.
-/// \param __b
-///    A 256-bit vector of [8 x float] containing one of the source operands.
-/// \returns A 256-bit vector of [8 x float] containing the sums of both
-///    operands.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_add_ps(__m256 __a, __m256 __b)
-{
-  return (__m256)((__v8sf)__a+(__v8sf)__b);
-}
-
-/// Subtracts two 256-bit vectors of [4 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VSUBPD </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double] containing the minuend.
-/// \param __b
-///    A 256-bit vector of [4 x double] containing the subtrahend.
-/// \returns A 256-bit vector of [4 x double] containing the differences between
-///    both operands.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_sub_pd(__m256d __a, __m256d __b)
-{
-  return (__m256d)((__v4df)__a-(__v4df)__b);
-}
-
-/// Subtracts two 256-bit vectors of [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VSUBPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float] containing the minuend.
-/// \param __b
-///    A 256-bit vector of [8 x float] containing the subtrahend.
-/// \returns A 256-bit vector of [8 x float] containing the differences between
-///    both operands.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_sub_ps(__m256 __a, __m256 __b)
-{
-  return (__m256)((__v8sf)__a-(__v8sf)__b);
-}
-
-/// Adds the even-indexed values and subtracts the odd-indexed values of
-///    two 256-bit vectors of [4 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VADDSUBPD </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double] containing the left source operand.
-/// \param __b
-///    A 256-bit vector of [4 x double] containing the right source operand.
-/// \returns A 256-bit vector of [4 x double] containing the alternating sums
-///    and differences between both operands.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_addsub_pd(__m256d __a, __m256d __b)
-{
-  return (__m256d)__builtin_ia32_addsubpd256((__v4df)__a, (__v4df)__b);
-}
-
-/// Adds the even-indexed values and subtracts the odd-indexed values of
-///    two 256-bit vectors of [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VADDSUBPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float] containing the left source operand.
-/// \param __b
-///    A 256-bit vector of [8 x float] containing the right source operand.
-/// \returns A 256-bit vector of [8 x float] containing the alternating sums and
-///    differences between both operands.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_addsub_ps(__m256 __a, __m256 __b)
-{
-  return (__m256)__builtin_ia32_addsubps256((__v8sf)__a, (__v8sf)__b);
-}
-
-/// Divides two 256-bit vectors of [4 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VDIVPD </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double] containing the dividend.
-/// \param __b
-///    A 256-bit vector of [4 x double] containing the divisor.
-/// \returns A 256-bit vector of [4 x double] containing the quotients of both
-///    operands.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_div_pd(__m256d __a, __m256d __b)
-{
-  return (__m256d)((__v4df)__a/(__v4df)__b);
-}
-
-/// Divides two 256-bit vectors of [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VDIVPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float] containing the dividend.
-/// \param __b
-///    A 256-bit vector of [8 x float] containing the divisor.
-/// \returns A 256-bit vector of [8 x float] containing the quotients of both
-///    operands.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_div_ps(__m256 __a, __m256 __b)
-{
-  return (__m256)((__v8sf)__a/(__v8sf)__b);
-}
-
-/// Compares two 256-bit vectors of [4 x double] and returns the greater
-///    of each pair of values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMAXPD </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double] containing one of the operands.
-/// \param __b
-///    A 256-bit vector of [4 x double] containing one of the operands.
-/// \returns A 256-bit vector of [4 x double] containing the maximum values
-///    between both operands.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_max_pd(__m256d __a, __m256d __b)
-{
-  return (__m256d)__builtin_ia32_maxpd256((__v4df)__a, (__v4df)__b);
-}
-
-/// Compares two 256-bit vectors of [8 x float] and returns the greater
-///    of each pair of values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMAXPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float] containing one of the operands.
-/// \param __b
-///    A 256-bit vector of [8 x float] containing one of the operands.
-/// \returns A 256-bit vector of [8 x float] containing the maximum values
-///    between both operands.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_max_ps(__m256 __a, __m256 __b)
-{
-  return (__m256)__builtin_ia32_maxps256((__v8sf)__a, (__v8sf)__b);
-}
-
-/// Compares two 256-bit vectors of [4 x double] and returns the lesser
-///    of each pair of values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMINPD </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double] containing one of the operands.
-/// \param __b
-///    A 256-bit vector of [4 x double] containing one of the operands.
-/// \returns A 256-bit vector of [4 x double] containing the minimum values
-///    between both operands.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_min_pd(__m256d __a, __m256d __b)
-{
-  return (__m256d)__builtin_ia32_minpd256((__v4df)__a, (__v4df)__b);
-}
-
-/// Compares two 256-bit vectors of [8 x float] and returns the lesser
-///    of each pair of values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMINPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float] containing one of the operands.
-/// \param __b
-///    A 256-bit vector of [8 x float] containing one of the operands.
-/// \returns A 256-bit vector of [8 x float] containing the minimum values
-///    between both operands.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_min_ps(__m256 __a, __m256 __b)
-{
-  return (__m256)__builtin_ia32_minps256((__v8sf)__a, (__v8sf)__b);
-}
-
-/// Multiplies two 256-bit vectors of [4 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMULPD </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double] containing one of the operands.
-/// \param __b
-///    A 256-bit vector of [4 x double] containing one of the operands.
-/// \returns A 256-bit vector of [4 x double] containing the products of both
-///    operands.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_mul_pd(__m256d __a, __m256d __b)
-{
-  return (__m256d)((__v4df)__a * (__v4df)__b);
-}
-
-/// Multiplies two 256-bit vectors of [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMULPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float] containing one of the operands.
-/// \param __b
-///    A 256-bit vector of [8 x float] containing one of the operands.
-/// \returns A 256-bit vector of [8 x float] containing the products of both
-///    operands.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_mul_ps(__m256 __a, __m256 __b)
-{
-  return (__m256)((__v8sf)__a * (__v8sf)__b);
-}
-
-/// Calculates the square roots of the values in a 256-bit vector of
-///    [4 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VSQRTPD </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double].
-/// \returns A 256-bit vector of [4 x double] containing the square roots of the
-///    values in the operand.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_sqrt_pd(__m256d __a)
-{
-  return (__m256d)__builtin_ia32_sqrtpd256((__v4df)__a);
-}
-
-/// Calculates the square roots of the values in a 256-bit vector of
-///    [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VSQRTPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float].
-/// \returns A 256-bit vector of [8 x float] containing the square roots of the
-///    values in the operand.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_sqrt_ps(__m256 __a)
-{
-  return (__m256)__builtin_ia32_sqrtps256((__v8sf)__a);
-}
-
-/// Calculates the reciprocal square roots of the values in a 256-bit
-///    vector of [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VRSQRTPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float].
-/// \returns A 256-bit vector of [8 x float] containing the reciprocal square
-///    roots of the values in the operand.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_rsqrt_ps(__m256 __a)
-{
-  return (__m256)__builtin_ia32_rsqrtps256((__v8sf)__a);
-}
-
-/// Calculates the reciprocals of the values in a 256-bit vector of
-///    [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VRCPPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float].
-/// \returns A 256-bit vector of [8 x float] containing the reciprocals of the
-///    values in the operand.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_rcp_ps(__m256 __a)
-{
-  return (__m256)__builtin_ia32_rcpps256((__v8sf)__a);
-}
-
-/// Rounds the values in a 256-bit vector of [4 x double] as specified
-///    by the byte operand. The source values are rounded to integer values and
-///    returned as 64-bit double-precision floating-point values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m256d _mm256_round_pd(__m256d V, const int M);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VROUNDPD </c> instruction.
-///
-/// \param V
-///    A 256-bit vector of [4 x double].
-/// \param M
-///    An integer value that specifies the rounding operation. \n
-///    Bits [7:4] are reserved. \n
-///    Bit [3] is a precision exception value: \n
-///      0: A normal PE exception is used. \n
-///      1: The PE field is not updated. \n
-///    Bit [2] is the rounding control source: \n
-///      0: Use bits [1:0] of \a M. \n
-///      1: Use the current MXCSR setting. \n
-///    Bits [1:0] contain the rounding control definition: \n
-///      00: Nearest. \n
-///      01: Downward (toward negative infinity). \n
-///      10: Upward (toward positive infinity). \n
-///      11: Truncated.
-/// \returns A 256-bit vector of [4 x double] containing the rounded values.
-#define _mm256_round_pd(V, M) \
-  ((__m256d)__builtin_ia32_roundpd256((__v4df)(__m256d)(V), (M)))
-
-/// Rounds the values stored in a 256-bit vector of [8 x float] as
-///    specified by the byte operand. The source values are rounded to integer
-///    values and returned as floating-point values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m256 _mm256_round_ps(__m256 V, const int M);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VROUNDPS </c> instruction.
-///
-/// \param V
-///    A 256-bit vector of [8 x float].
-/// \param M
-///    An integer value that specifies the rounding operation. \n
-///    Bits [7:4] are reserved. \n
-///    Bit [3] is a precision exception value: \n
-///      0: A normal PE exception is used. \n
-///      1: The PE field is not updated. \n
-///    Bit [2] is the rounding control source: \n
-///      0: Use bits [1:0] of \a M. \n
-///      1: Use the current MXCSR setting. \n
-///    Bits [1:0] contain the rounding control definition: \n
-///      00: Nearest. \n
-///      01: Downward (toward negative infinity). \n
-///      10: Upward (toward positive infinity). \n
-///      11: Truncated.
-/// \returns A 256-bit vector of [8 x float] containing the rounded values.
-#define _mm256_round_ps(V, M) \
-  ((__m256)__builtin_ia32_roundps256((__v8sf)(__m256)(V), (M)))
-
-/// Rounds up the values stored in a 256-bit vector of [4 x double]. The
-///    source values are rounded up to integer values and returned as 64-bit
-///    double-precision floating-point values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m256d _mm256_ceil_pd(__m256d V);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VROUNDPD </c> instruction.
-///
-/// \param V
-///    A 256-bit vector of [4 x double].
-/// \returns A 256-bit vector of [4 x double] containing the rounded up values.
-#define _mm256_ceil_pd(V)  _mm256_round_pd((V), _MM_FROUND_CEIL)
-
-/// Rounds down the values stored in a 256-bit vector of [4 x double].
-///    The source values are rounded down to integer values and returned as
-///    64-bit double-precision floating-point values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m256d _mm256_floor_pd(__m256d V);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VROUNDPD </c> instruction.
-///
-/// \param V
-///    A 256-bit vector of [4 x double].
-/// \returns A 256-bit vector of [4 x double] containing the rounded down
-///    values.
-#define _mm256_floor_pd(V) _mm256_round_pd((V), _MM_FROUND_FLOOR)
-
-/// Rounds up the values stored in a 256-bit vector of [8 x float]. The
-///    source values are rounded up to integer values and returned as
-///    floating-point values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m256 _mm256_ceil_ps(__m256 V);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VROUNDPS </c> instruction.
-///
-/// \param V
-///    A 256-bit vector of [8 x float].
-/// \returns A 256-bit vector of [8 x float] containing the rounded up values.
-#define _mm256_ceil_ps(V)  _mm256_round_ps((V), _MM_FROUND_CEIL)
-
-/// Rounds down the values stored in a 256-bit vector of [8 x float]. The
-///    source values are rounded down to integer values and returned as
-///    floating-point values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m256 _mm256_floor_ps(__m256 V);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VROUNDPS </c> instruction.
-///
-/// \param V
-///    A 256-bit vector of [8 x float].
-/// \returns A 256-bit vector of [8 x float] containing the rounded down values.
-#define _mm256_floor_ps(V) _mm256_round_ps((V), _MM_FROUND_FLOOR)
-
-/* Logical */
-/// Performs a bitwise AND of two 256-bit vectors of [4 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VANDPD </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double] containing one of the source operands.
-/// \param __b
-///    A 256-bit vector of [4 x double] containing one of the source operands.
-/// \returns A 256-bit vector of [4 x double] containing the bitwise AND of the
-///    values between both operands.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_and_pd(__m256d __a, __m256d __b)
-{
-  return (__m256d)((__v4du)__a & (__v4du)__b);
-}
-
-/// Performs a bitwise AND of two 256-bit vectors of [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VANDPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float] containing one of the source operands.
-/// \param __b
-///    A 256-bit vector of [8 x float] containing one of the source operands.
-/// \returns A 256-bit vector of [8 x float] containing the bitwise AND of the
-///    values between both operands.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_and_ps(__m256 __a, __m256 __b)
-{
-  return (__m256)((__v8su)__a & (__v8su)__b);
-}
-
-/// Performs a bitwise AND of two 256-bit vectors of [4 x double], using
-///    the one's complement of the values contained in the first source operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VANDNPD </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double] containing the left source operand. The
-///    one's complement of this value is used in the bitwise AND.
-/// \param __b
-///    A 256-bit vector of [4 x double] containing the right source operand.
-/// \returns A 256-bit vector of [4 x double] containing the bitwise AND of the
-///    values of the second operand and the one's complement of the first
-///    operand.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_andnot_pd(__m256d __a, __m256d __b)
-{
-  return (__m256d)(~(__v4du)__a & (__v4du)__b);
-}
-
-/// Performs a bitwise AND of two 256-bit vectors of [8 x float], using
-///    the one's complement of the values contained in the first source operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VANDNPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float] containing the left source operand. The
-///    one's complement of this value is used in the bitwise AND.
-/// \param __b
-///    A 256-bit vector of [8 x float] containing the right source operand.
-/// \returns A 256-bit vector of [8 x float] containing the bitwise AND of the
-///    values of the second operand and the one's complement of the first
-///    operand.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_andnot_ps(__m256 __a, __m256 __b)
-{
-  return (__m256)(~(__v8su)__a & (__v8su)__b);
-}
-
-/// Performs a bitwise OR of two 256-bit vectors of [4 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VORPD </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double] containing one of the source operands.
-/// \param __b
-///    A 256-bit vector of [4 x double] containing one of the source operands.
-/// \returns A 256-bit vector of [4 x double] containing the bitwise OR of the
-///    values between both operands.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_or_pd(__m256d __a, __m256d __b)
-{
-  return (__m256d)((__v4du)__a | (__v4du)__b);
-}
-
-/// Performs a bitwise OR of two 256-bit vectors of [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VORPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float] containing one of the source operands.
-/// \param __b
-///    A 256-bit vector of [8 x float] containing one of the source operands.
-/// \returns A 256-bit vector of [8 x float] containing the bitwise OR of the
-///    values between both operands.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_or_ps(__m256 __a, __m256 __b)
-{
-  return (__m256)((__v8su)__a | (__v8su)__b);
-}
-
-/// Performs a bitwise XOR of two 256-bit vectors of [4 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VXORPD </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double] containing one of the source operands.
-/// \param __b
-///    A 256-bit vector of [4 x double] containing one of the source operands.
-/// \returns A 256-bit vector of [4 x double] containing the bitwise XOR of the
-///    values between both operands.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_xor_pd(__m256d __a, __m256d __b)
-{
-  return (__m256d)((__v4du)__a ^ (__v4du)__b);
-}
-
-/// Performs a bitwise XOR of two 256-bit vectors of [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VXORPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float] containing one of the source operands.
-/// \param __b
-///    A 256-bit vector of [8 x float] containing one of the source operands.
-/// \returns A 256-bit vector of [8 x float] containing the bitwise XOR of the
-///    values between both operands.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_xor_ps(__m256 __a, __m256 __b)
-{
-  return (__m256)((__v8su)__a ^ (__v8su)__b);
-}
-
-/* Horizontal arithmetic */
-/// Horizontally adds the adjacent pairs of values contained in two
-///    256-bit vectors of [4 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VHADDPD </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double] containing one of the source operands.
-///    The horizontal sums of the values are returned in the even-indexed
-///    elements of a vector of [4 x double].
-/// \param __b
-///    A 256-bit vector of [4 x double] containing one of the source operands.
-///    The horizontal sums of the values are returned in the odd-indexed
-///    elements of a vector of [4 x double].
-/// \returns A 256-bit vector of [4 x double] containing the horizontal sums of
-///    both operands.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_hadd_pd(__m256d __a, __m256d __b)
-{
-  return (__m256d)__builtin_ia32_haddpd256((__v4df)__a, (__v4df)__b);
-}
-
-/// Horizontally adds the adjacent pairs of values contained in two
-///    256-bit vectors of [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VHADDPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float] containing one of the source operands.
-///    The horizontal sums of the values are returned in the elements with
-///    index 0, 1, 4, 5 of a vector of [8 x float].
-/// \param __b
-///    A 256-bit vector of [8 x float] containing one of the source operands.
-///    The horizontal sums of the values are returned in the elements with
-///    index 2, 3, 6, 7 of a vector of [8 x float].
-/// \returns A 256-bit vector of [8 x float] containing the horizontal sums of
-///    both operands.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_hadd_ps(__m256 __a, __m256 __b)
-{
-  return (__m256)__builtin_ia32_haddps256((__v8sf)__a, (__v8sf)__b);
-}
-
-/// Horizontally subtracts the adjacent pairs of values contained in two
-///    256-bit vectors of [4 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VHSUBPD </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double] containing one of the source operands.
-///    The horizontal differences between the values are returned in the
-///    even-indexed elements of a vector of [4 x double].
-/// \param __b
-///    A 256-bit vector of [4 x double] containing one of the source operands.
-///    The horizontal differences between the values are returned in the
-///    odd-indexed elements of a vector of [4 x double].
-/// \returns A 256-bit vector of [4 x double] containing the horizontal
-///    differences of both operands.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_hsub_pd(__m256d __a, __m256d __b)
-{
-  return (__m256d)__builtin_ia32_hsubpd256((__v4df)__a, (__v4df)__b);
-}
-
-/// Horizontally subtracts the adjacent pairs of values contained in two
-///    256-bit vectors of [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VHSUBPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float] containing one of the source operands.
-///    The horizontal differences between the values are returned in the
-///    elements with index 0, 1, 4, 5 of a vector of [8 x float].
-/// \param __b
-///    A 256-bit vector of [8 x float] containing one of the source operands.
-///    The horizontal differences between the values are returned in the
-///    elements with index 2, 3, 6, 7 of a vector of [8 x float].
-/// \returns A 256-bit vector of [8 x float] containing the horizontal
-///    differences of both operands.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_hsub_ps(__m256 __a, __m256 __b)
-{
-  return (__m256)__builtin_ia32_hsubps256((__v8sf)__a, (__v8sf)__b);
-}
-
-/* Vector permutations */
-/// Copies the values in a 128-bit vector of [2 x double] as specified
-///    by the 128-bit integer vector operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPERMILPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \param __c
-///    A 128-bit integer vector operand specifying how the values are to be
-///    copied. \n
-///    Bit [1]: \n
-///      0: Bits [63:0] of the source are copied to bits [63:0] of the returned
-///         vector. \n
-///      1: Bits [127:64] of the source are copied to bits [63:0] of the
-///         returned vector. \n
-///    Bit [65]: \n
-///      0: Bits [63:0] of the source are copied to bits [127:64] of the
-///         returned vector. \n
-///      1: Bits [127:64] of the source are copied to bits [127:64] of the
-///         returned vector.
-/// \returns A 128-bit vector of [2 x double] containing the copied values.
-static __inline __m128d __DEFAULT_FN_ATTRS128
-_mm_permutevar_pd(__m128d __a, __m128i __c)
-{
-  return (__m128d)__builtin_ia32_vpermilvarpd((__v2df)__a, (__v2di)__c);
-}
-
-/// Copies the values in a 256-bit vector of [4 x double] as specified
-///    by the 256-bit integer vector operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPERMILPD </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double].
-/// \param __c
-///    A 256-bit integer vector operand specifying how the values are to be
-///    copied. \n
-///    Bit [1]: \n
-///      0: Bits [63:0] of the source are copied to bits [63:0] of the returned
-///         vector. \n
-///      1: Bits [127:64] of the source are copied to bits [63:0] of the
-///         returned vector. \n
-///    Bit [65]: \n
-///      0: Bits [63:0] of the source are copied to bits [127:64] of the
-///         returned vector. \n
-///      1: Bits [127:64] of the source are copied to bits [127:64] of the
-///         returned vector. \n
-///    Bit [129]: \n
-///      0: Bits [191:128] of the source are copied to bits [191:128] of the
-///         returned vector. \n
-///      1: Bits [255:192] of the source are copied to bits [191:128] of the
-///         returned vector. \n
-///    Bit [193]: \n
-///      0: Bits [191:128] of the source are copied to bits [255:192] of the
-///         returned vector. \n
-///      1: Bits [255:192] of the source are copied to bits [255:192] of the
-///    returned vector.
-/// \returns A 256-bit vector of [4 x double] containing the copied values.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_permutevar_pd(__m256d __a, __m256i __c)
-{
-  return (__m256d)__builtin_ia32_vpermilvarpd256((__v4df)__a, (__v4di)__c);
-}
-
-/// Copies the values stored in a 128-bit vector of [4 x float] as
-///    specified by the 128-bit integer vector operand.
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPERMILPS </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \param __c
-///    A 128-bit integer vector operand specifying how the values are to be
-///    copied. \n
-///    Bits [1:0]: \n
-///      00: Bits [31:0] of the source are copied to bits [31:0] of the
-///          returned vector. \n
-///      01: Bits [63:32] of the source are copied to bits [31:0] of the
-///          returned vector. \n
-///      10: Bits [95:64] of the source are copied to bits [31:0] of the
-///          returned vector. \n
-///      11: Bits [127:96] of the source are copied to bits [31:0] of the
-///          returned vector. \n
-///    Bits [33:32]: \n
-///      00: Bits [31:0] of the source are copied to bits [63:32] of the
-///          returned vector. \n
-///      01: Bits [63:32] of the source are copied to bits [63:32] of the
-///          returned vector. \n
-///      10: Bits [95:64] of the source are copied to bits [63:32] of the
-///          returned vector. \n
-///      11: Bits [127:96] of the source are copied to bits [63:32] of the
-///          returned vector. \n
-///    Bits [65:64]: \n
-///      00: Bits [31:0] of the source are copied to bits [95:64] of the
-///          returned vector. \n
-///      01: Bits [63:32] of the source are copied to bits [95:64] of the
-///          returned vector. \n
-///      10: Bits [95:64] of the source are copied to bits [95:64] of the
-///          returned vector. \n
-///      11: Bits [127:96] of the source are copied to bits [95:64] of the
-///          returned vector. \n
-///    Bits [97:96]: \n
-///      00: Bits [31:0] of the source are copied to bits [127:96] of the
-///          returned vector. \n
-///      01: Bits [63:32] of the source are copied to bits [127:96] of the
-///          returned vector. \n
-///      10: Bits [95:64] of the source are copied to bits [127:96] of the
-///          returned vector. \n
-///      11: Bits [127:96] of the source are copied to bits [127:96] of the
-///          returned vector.
-/// \returns A 128-bit vector of [4 x float] containing the copied values.
-static __inline __m128 __DEFAULT_FN_ATTRS128
-_mm_permutevar_ps(__m128 __a, __m128i __c)
-{
-  return (__m128)__builtin_ia32_vpermilvarps((__v4sf)__a, (__v4si)__c);
-}
-
-/// Copies the values stored in a 256-bit vector of [8 x float] as
-///    specified by the 256-bit integer vector operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPERMILPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float].
-/// \param __c
-///    A 256-bit integer vector operand specifying how the values are to be
-///    copied. \n
-///    Bits [1:0]: \n
-///      00: Bits [31:0] of the source are copied to bits [31:0] of the
-///          returned vector. \n
-///      01: Bits [63:32] of the source are copied to bits [31:0] of the
-///          returned vector. \n
-///      10: Bits [95:64] of the source are copied to bits [31:0] of the
-///          returned vector. \n
-///      11: Bits [127:96] of the source are copied to bits [31:0] of the
-///          returned vector. \n
-///    Bits [33:32]: \n
-///      00: Bits [31:0] of the source are copied to bits [63:32] of the
-///          returned vector. \n
-///      01: Bits [63:32] of the source are copied to bits [63:32] of the
-///          returned vector. \n
-///      10: Bits [95:64] of the source are copied to bits [63:32] of the
-///          returned vector. \n
-///      11: Bits [127:96] of the source are copied to bits [63:32] of the
-///          returned vector. \n
-///    Bits [65:64]: \n
-///      00: Bits [31:0] of the source are copied to bits [95:64] of the
-///          returned vector. \n
-///      01: Bits [63:32] of the source are copied to bits [95:64] of the
-///          returned vector. \n
-///      10: Bits [95:64] of the source are copied to bits [95:64] of the
-///          returned vector. \n
-///      11: Bits [127:96] of the source are copied to bits [95:64] of the
-///          returned vector. \n
-///    Bits [97:96]: \n
-///      00: Bits [31:0] of the source are copied to bits [127:96] of the
-///          returned vector. \n
-///      01: Bits [63:32] of the source are copied to bits [127:96] of the
-///          returned vector. \n
-///      10: Bits [95:64] of the source are copied to bits [127:96] of the
-///          returned vector. \n
-///      11: Bits [127:96] of the source are copied to bits [127:96] of the
-///          returned vector. \n
-///    Bits [129:128]: \n
-///      00: Bits [159:128] of the source are copied to bits [159:128] of the
-///          returned vector. \n
-///      01: Bits [191:160] of the source are copied to bits [159:128] of the
-///          returned vector. \n
-///      10: Bits [223:192] of the source are copied to bits [159:128] of the
-///          returned vector. \n
-///      11: Bits [255:224] of the source are copied to bits [159:128] of the
-///          returned vector. \n
-///    Bits [161:160]: \n
-///      00: Bits [159:128] of the source are copied to bits [191:160] of the
-///          returned vector. \n
-///      01: Bits [191:160] of the source are copied to bits [191:160] of the
-///          returned vector. \n
-///      10: Bits [223:192] of the source are copied to bits [191:160] of the
-///          returned vector. \n
-///      11: Bits [255:224] of the source are copied to bits [191:160] of the
-///          returned vector. \n
-///    Bits [193:192]: \n
-///      00: Bits [159:128] of the source are copied to bits [223:192] of the
-///          returned vector. \n
-///      01: Bits [191:160] of the source are copied to bits [223:192] of the
-///          returned vector. \n
-///      10: Bits [223:192] of the source are copied to bits [223:192] of the
-///          returned vector. \n
-///      11: Bits [255:224] of the source are copied to bits [223:192] of the
-///          returned vector. \n
-///    Bits [225:224]: \n
-///      00: Bits [159:128] of the source are copied to bits [255:224] of the
-///          returned vector. \n
-///      01: Bits [191:160] of the source are copied to bits [255:224] of the
-///          returned vector. \n
-///      10: Bits [223:192] of the source are copied to bits [255:224] of the
-///          returned vector. \n
-///      11: Bits [255:224] of the source are copied to bits [255:224] of the
-///          returned vector.
-/// \returns A 256-bit vector of [8 x float] containing the copied values.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_permutevar_ps(__m256 __a, __m256i __c)
-{
-  return (__m256)__builtin_ia32_vpermilvarps256((__v8sf)__a, (__v8si)__c);
-}
-
-/// Copies the values in a 128-bit vector of [2 x double] as specified
-///    by the immediate integer operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m128d _mm_permute_pd(__m128d A, const int C);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VPERMILPD </c> instruction.
-///
-/// \param A
-///    A 128-bit vector of [2 x double].
-/// \param C
-///    An immediate integer operand specifying how the values are to be
-///    copied. \n
-///    Bit [0]: \n
-///      0: Bits [63:0] of the source are copied to bits [63:0] of the returned
-///         vector. \n
-///      1: Bits [127:64] of the source are copied to bits [63:0] of the
-///         returned vector. \n
-///    Bit [1]: \n
-///      0: Bits [63:0] of the source are copied to bits [127:64] of the
-///         returned vector. \n
-///      1: Bits [127:64] of the source are copied to bits [127:64] of the
-///         returned vector.
-/// \returns A 128-bit vector of [2 x double] containing the copied values.
-#define _mm_permute_pd(A, C) \
-  ((__m128d)__builtin_ia32_vpermilpd((__v2df)(__m128d)(A), (int)(C)))
-
-/// Copies the values in a 256-bit vector of [4 x double] as specified by
-///    the immediate integer operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m256d _mm256_permute_pd(__m256d A, const int C);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VPERMILPD </c> instruction.
-///
-/// \param A
-///    A 256-bit vector of [4 x double].
-/// \param C
-///    An immediate integer operand specifying how the values are to be
-///    copied. \n
-///    Bit [0]: \n
-///      0: Bits [63:0] of the source are copied to bits [63:0] of the returned
-///         vector. \n
-///      1: Bits [127:64] of the source are copied to bits [63:0] of the
-///         returned vector. \n
-///    Bit [1]: \n
-///      0: Bits [63:0] of the source are copied to bits [127:64] of the
-///         returned vector. \n
-///      1: Bits [127:64] of the source are copied to bits [127:64] of the
-///         returned vector. \n
-///    Bit [2]: \n
-///      0: Bits [191:128] of the source are copied to bits [191:128] of the
-///         returned vector. \n
-///      1: Bits [255:192] of the source are copied to bits [191:128] of the
-///         returned vector. \n
-///    Bit [3]: \n
-///      0: Bits [191:128] of the source are copied to bits [255:192] of the
-///         returned vector. \n
-///      1: Bits [255:192] of the source are copied to bits [255:192] of the
-///         returned vector.
-/// \returns A 256-bit vector of [4 x double] containing the copied values.
-#define _mm256_permute_pd(A, C) \
-  ((__m256d)__builtin_ia32_vpermilpd256((__v4df)(__m256d)(A), (int)(C)))
-
-/// Copies the values in a 128-bit vector of [4 x float] as specified by
-///    the immediate integer operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m128 _mm_permute_ps(__m128 A, const int C);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VPERMILPS </c> instruction.
-///
-/// \param A
-///    A 128-bit vector of [4 x float].
-/// \param C
-///    An immediate integer operand specifying how the values are to be
-///    copied. \n
-///    Bits [1:0]: \n
-///      00: Bits [31:0] of the source are copied to bits [31:0] of the
-///          returned vector. \n
-///      01: Bits [63:32] of the source are copied to bits [31:0] of the
-///          returned vector. \n
-///      10: Bits [95:64] of the source are copied to bits [31:0] of the
-///          returned vector. \n
-///      11: Bits [127:96] of the source are copied to bits [31:0] of the
-///          returned vector. \n
-///    Bits [3:2]: \n
-///      00: Bits [31:0] of the source are copied to bits [63:32] of the
-///          returned vector. \n
-///      01: Bits [63:32] of the source are copied to bits [63:32] of the
-///          returned vector. \n
-///      10: Bits [95:64] of the source are copied to bits [63:32] of the
-///          returned vector. \n
-///      11: Bits [127:96] of the source are copied to bits [63:32] of the
-///          returned vector. \n
-///    Bits [5:4]: \n
-///      00: Bits [31:0] of the source are copied to bits [95:64] of the
-///          returned vector. \n
-///      01: Bits [63:32] of the source are copied to bits [95:64] of the
-///          returned vector. \n
-///      10: Bits [95:64] of the source are copied to bits [95:64] of the
-///          returned vector. \n
-///      11: Bits [127:96] of the source are copied to bits [95:64] of the
-///          returned vector. \n
-///    Bits [7:6]: \n
-///      00: Bits [31:0] of the source are copied to bits [127:96] of the
-///          returned vector. \n
-///      01: Bits [63:32] of the source are copied to bits [127:96] of the
-///          returned vector. \n
-///      10: Bits [95:64] of the source are copied to bits [127:96] of the
-///          returned vector. \n
-///      11: Bits [127:96] of the source are copied to bits [127:96] of the
-///          returned vector.
-/// \returns A 128-bit vector of [4 x float] containing the copied values.
-#define _mm_permute_ps(A, C) \
-  ((__m128)__builtin_ia32_vpermilps((__v4sf)(__m128)(A), (int)(C)))
-
-/// Copies the values in a 256-bit vector of [8 x float] as specified by
-///    the immediate integer operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m256 _mm256_permute_ps(__m256 A, const int C);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VPERMILPS </c> instruction.
-///
-/// \param A
-///    A 256-bit vector of [8 x float].
-/// \param C
-///    An immediate integer operand specifying how the values are to be
-///    copied. \n
-///    Bits [1:0]: \n
-///      00: Bits [31:0] of the source are copied to bits [31:0] of the
-///          returned vector. \n
-///      01: Bits [63:32] of the source are copied to bits [31:0] of the
-///          returned vector. \n
-///      10: Bits [95:64] of the source are copied to bits [31:0] of the
-///          returned vector. \n
-///      11: Bits [127:96] of the source are copied to bits [31:0] of the
-///          returned vector. \n
-///    Bits [3:2]: \n
-///      00: Bits [31:0] of the source are copied to bits [63:32] of the
-///          returned vector. \n
-///      01: Bits [63:32] of the source are copied to bits [63:32] of the
-///          returned vector. \n
-///      10: Bits [95:64] of the source are copied to bits [63:32] of the
-///          returned vector. \n
-///      11: Bits [127:96] of the source are copied to bits [63:32] of the
-///          returned vector. \n
-///    Bits [5:4]: \n
-///      00: Bits [31:0] of the source are copied to bits [95:64] of the
-///          returned vector. \n
-///      01: Bits [63:32] of the source are copied to bits [95:64] of the
-///          returned vector. \n
-///      10: Bits [95:64] of the source are copied to bits [95:64] of the
-///          returned vector. \n
-///      11: Bits [127:96] of the source are copied to bits [95:64] of the
-///          returned vector. \n
-///    Bits [7:6]: \n
-///      00: Bits [31:0] of the source are copied to bits [127:96] of the
-///          returned vector. \n
-///      01: Bits [63:32] of the source are copied to bits [127:96] of the
-///          returned vector. \n
-///      10: Bits [95:64] of the source are copied to bits [127:96] of the
-///          returned vector. \n
-///      11: Bits [127:96] of the source are copied to bits [127:96] of the
-///          returned vector. \n
-///    Bits [1:0]: \n
-///      00: Bits [159:128] of the source are copied to bits [159:128] of the
-///          returned vector. \n
-///      01: Bits [191:160] of the source are copied to bits [159:128] of the
-///          returned vector. \n
-///      10: Bits [223:192] of the source are copied to bits [159:128] of the
-///          returned vector. \n
-///      11: Bits [255:224] of the source are copied to bits [159:128] of the
-///          returned vector. \n
-///    Bits [3:2]: \n
-///      00: Bits [159:128] of the source are copied to bits [191:160] of the
-///          returned vector. \n
-///      01: Bits [191:160] of the source are copied to bits [191:160] of the
-///          returned vector. \n
-///      10: Bits [223:192] of the source are copied to bits [191:160] of the
-///          returned vector. \n
-///      11: Bits [255:224] of the source are copied to bits [191:160] of the
-///          returned vector. \n
-///    Bits [5:4]: \n
-///      00: Bits [159:128] of the source are copied to bits [223:192] of the
-///          returned vector. \n
-///      01: Bits [191:160] of the source are copied to bits [223:192] of the
-///          returned vector. \n
-///      10: Bits [223:192] of the source are copied to bits [223:192] of the
-///          returned vector. \n
-///      11: Bits [255:224] of the source are copied to bits [223:192] of the
-///          returned vector. \n
-///    Bits [7:6]: \n
-///      00: Bits [159:128] of the source are copied to bits [255:224] of the
-///          returned vector. \n
-///      01: Bits [191:160] of the source are copied to bits [255:224] of the
-///          returned vector. \n
-///      10: Bits [223:192] of the source are copied to bits [255:224] of the
-///          returned vector. \n
-///      11: Bits [255:224] of the source are copied to bits [255:224] of the
-///          returned vector.
-/// \returns A 256-bit vector of [8 x float] containing the copied values.
-#define _mm256_permute_ps(A, C) \
-  ((__m256)__builtin_ia32_vpermilps256((__v8sf)(__m256)(A), (int)(C)))
-
-/// Permutes 128-bit data values stored in two 256-bit vectors of
-///    [4 x double], as specified by the immediate integer operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m256d _mm256_permute2f128_pd(__m256d V1, __m256d V2, const int M);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VPERM2F128 </c> instruction.
-///
-/// \param V1
-///    A 256-bit vector of [4 x double].
-/// \param V2
-///    A 256-bit vector of [4 x double.
-/// \param M
-///    An immediate integer operand specifying how the values are to be
-///    permuted. \n
-///    Bits [1:0]: \n
-///      00: Bits [127:0] of operand \a V1 are copied to bits [127:0] of the
-///          destination. \n
-///      01: Bits [255:128] of operand \a V1 are copied to bits [127:0] of the
-///          destination. \n
-///      10: Bits [127:0] of operand \a V2 are copied to bits [127:0] of the
-///          destination. \n
-///      11: Bits [255:128] of operand \a V2 are copied to bits [127:0] of the
-///          destination. \n
-///    Bits [5:4]: \n
-///      00: Bits [127:0] of operand \a V1 are copied to bits [255:128] of the
-///          destination. \n
-///      01: Bits [255:128] of operand \a V1 are copied to bits [255:128] of the
-///          destination. \n
-///      10: Bits [127:0] of operand \a V2 are copied to bits [255:128] of the
-///          destination. \n
-///      11: Bits [255:128] of operand \a V2 are copied to bits [255:128] of the
-///          destination.
-/// \returns A 256-bit vector of [4 x double] containing the copied values.
-#define _mm256_permute2f128_pd(V1, V2, M) \
-  ((__m256d)__builtin_ia32_vperm2f128_pd256((__v4df)(__m256d)(V1), \
-                                            (__v4df)(__m256d)(V2), (int)(M)))
-
-/// Permutes 128-bit data values stored in two 256-bit vectors of
-///    [8 x float], as specified by the immediate integer operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m256 _mm256_permute2f128_ps(__m256 V1, __m256 V2, const int M);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VPERM2F128 </c> instruction.
-///
-/// \param V1
-///    A 256-bit vector of [8 x float].
-/// \param V2
-///    A 256-bit vector of [8 x float].
-/// \param M
-///    An immediate integer operand specifying how the values are to be
-///    permuted. \n
-///    Bits [1:0]: \n
-///    00: Bits [127:0] of operand \a V1 are copied to bits [127:0] of the
-///    destination. \n
-///    01: Bits [255:128] of operand \a V1 are copied to bits [127:0] of the
-///    destination. \n
-///    10: Bits [127:0] of operand \a V2 are copied to bits [127:0] of the
-///    destination. \n
-///    11: Bits [255:128] of operand \a V2 are copied to bits [127:0] of the
-///    destination. \n
-///    Bits [5:4]: \n
-///    00: Bits [127:0] of operand \a V1 are copied to bits [255:128] of the
-///    destination. \n
-///    01: Bits [255:128] of operand \a V1 are copied to bits [255:128] of the
-///    destination. \n
-///    10: Bits [127:0] of operand \a V2 are copied to bits [255:128] of the
-///    destination. \n
-///    11: Bits [255:128] of operand \a V2 are copied to bits [255:128] of the
-///    destination.
-/// \returns A 256-bit vector of [8 x float] containing the copied values.
-#define _mm256_permute2f128_ps(V1, V2, M) \
-  ((__m256)__builtin_ia32_vperm2f128_ps256((__v8sf)(__m256)(V1), \
-                                           (__v8sf)(__m256)(V2), (int)(M)))
-
-/// Permutes 128-bit data values stored in two 256-bit integer vectors,
-///    as specified by the immediate integer operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m256i _mm256_permute2f128_si256(__m256i V1, __m256i V2, const int M);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VPERM2F128 </c> instruction.
-///
-/// \param V1
-///    A 256-bit integer vector.
-/// \param V2
-///    A 256-bit integer vector.
-/// \param M
-///    An immediate integer operand specifying how the values are to be copied.
-///    Bits [1:0]: \n
-///    00: Bits [127:0] of operand \a V1 are copied to bits [127:0] of the
-///    destination. \n
-///    01: Bits [255:128] of operand \a V1 are copied to bits [127:0] of the
-///    destination. \n
-///    10: Bits [127:0] of operand \a V2 are copied to bits [127:0] of the
-///    destination. \n
-///    11: Bits [255:128] of operand \a V2 are copied to bits [127:0] of the
-///    destination. \n
-///    Bits [5:4]: \n
-///    00: Bits [127:0] of operand \a V1 are copied to bits [255:128] of the
-///    destination. \n
-///    01: Bits [255:128] of operand \a V1 are copied to bits [255:128] of the
-///    destination. \n
-///    10: Bits [127:0] of operand \a V2 are copied to bits [255:128] of the
-///    destination. \n
-///    11: Bits [255:128] of operand \a V2 are copied to bits [255:128] of the
-///    destination.
-/// \returns A 256-bit integer vector containing the copied values.
-#define _mm256_permute2f128_si256(V1, V2, M) \
-  ((__m256i)__builtin_ia32_vperm2f128_si256((__v8si)(__m256i)(V1), \
-                                            (__v8si)(__m256i)(V2), (int)(M)))
-
-/* Vector Blend */
-/// Merges 64-bit double-precision data values stored in either of the
-///    two 256-bit vectors of [4 x double], as specified by the immediate
-///    integer operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m256d _mm256_blend_pd(__m256d V1, __m256d V2, const int M);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VBLENDPD </c> instruction.
-///
-/// \param V1
-///    A 256-bit vector of [4 x double].
-/// \param V2
-///    A 256-bit vector of [4 x double].
-/// \param M
-///    An immediate integer operand, with mask bits [3:0] specifying how the
-///    values are to be copied. The position of the mask bit corresponds to the
-///    index of a copied value. When a mask bit is 0, the corresponding 64-bit
-///    element in operand \a V1 is copied to the same position in the
-///    destination. When a mask bit is 1, the corresponding 64-bit element in
-///    operand \a V2 is copied to the same position in the destination.
-/// \returns A 256-bit vector of [4 x double] containing the copied values.
-#define _mm256_blend_pd(V1, V2, M) \
-  ((__m256d)__builtin_ia32_blendpd256((__v4df)(__m256d)(V1), \
-                                      (__v4df)(__m256d)(V2), (int)(M)))
-
-/// Merges 32-bit single-precision data values stored in either of the
-///    two 256-bit vectors of [8 x float], as specified by the immediate
-///    integer operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m256 _mm256_blend_ps(__m256 V1, __m256 V2, const int M);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VBLENDPS </c> instruction.
-///
-/// \param V1
-///    A 256-bit vector of [8 x float].
-/// \param V2
-///    A 256-bit vector of [8 x float].
-/// \param M
-///    An immediate integer operand, with mask bits [7:0] specifying how the
-///    values are to be copied. The position of the mask bit corresponds to the
-///    index of a copied value. When a mask bit is 0, the corresponding 32-bit
-///    element in operand \a V1 is copied to the same position in the
-///    destination. When a mask bit is 1, the corresponding 32-bit element in
-///    operand \a V2 is copied to the same position in the destination.
-/// \returns A 256-bit vector of [8 x float] containing the copied values.
-#define _mm256_blend_ps(V1, V2, M) \
-  ((__m256)__builtin_ia32_blendps256((__v8sf)(__m256)(V1), \
-                                     (__v8sf)(__m256)(V2), (int)(M)))
-
-/// Merges 64-bit double-precision data values stored in either of the
-///    two 256-bit vectors of [4 x double], as specified by the 256-bit vector
-///    operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VBLENDVPD </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double].
-/// \param __b
-///    A 256-bit vector of [4 x double].
-/// \param __c
-///    A 256-bit vector operand, with mask bits 255, 191, 127, and 63 specifying
-///    how the values are to be copied. The position of the mask bit corresponds
-///    to the most significant bit of a copied value. When a mask bit is 0, the
-///    corresponding 64-bit element in operand \a __a is copied to the same
-///    position in the destination. When a mask bit is 1, the corresponding
-///    64-bit element in operand \a __b is copied to the same position in the
-///    destination.
-/// \returns A 256-bit vector of [4 x double] containing the copied values.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_blendv_pd(__m256d __a, __m256d __b, __m256d __c)
-{
-  return (__m256d)__builtin_ia32_blendvpd256(
-    (__v4df)__a, (__v4df)__b, (__v4df)__c);
-}
-
-/// Merges 32-bit single-precision data values stored in either of the
-///    two 256-bit vectors of [8 x float], as specified by the 256-bit vector
-///    operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VBLENDVPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float].
-/// \param __b
-///    A 256-bit vector of [8 x float].
-/// \param __c
-///    A 256-bit vector operand, with mask bits 255, 223, 191, 159, 127, 95, 63,
-///    and 31 specifying how the values are to be copied. The position of the
-///    mask bit corresponds to the most significant bit of a copied value. When
-///    a mask bit is 0, the corresponding 32-bit element in operand \a __a is
-///    copied to the same position in the destination. When a mask bit is 1, the
-///    corresponding 32-bit element in operand \a __b is copied to the same
-///    position in the destination.
-/// \returns A 256-bit vector of [8 x float] containing the copied values.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_blendv_ps(__m256 __a, __m256 __b, __m256 __c)
-{
-  return (__m256)__builtin_ia32_blendvps256(
-    (__v8sf)__a, (__v8sf)__b, (__v8sf)__c);
-}
-
-/* Vector Dot Product */
-/// Computes two dot products in parallel, using the lower and upper
-///    halves of two [8 x float] vectors as input to the two computations, and
-///    returning the two dot products in the lower and upper halves of the
-///    [8 x float] result.
-///
-///    The immediate integer operand controls which input elements will
-///    contribute to the dot product, and where the final results are returned.
-///    In general, for each dot product, the four corresponding elements of the
-///    input vectors are multiplied; the first two and second two products are
-///    summed, then the two sums are added to form the final result.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m256 _mm256_dp_ps(__m256 V1, __m256 V2, const int M);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VDPPS </c> instruction.
-///
-/// \param V1
-///    A vector of [8 x float] values, treated as two [4 x float] vectors.
-/// \param V2
-///    A vector of [8 x float] values, treated as two [4 x float] vectors.
-/// \param M
-///    An immediate integer argument. Bits [7:4] determine which elements of
-///    the input vectors are used, with bit [4] corresponding to the lowest
-///    element and bit [7] corresponding to the highest element of each [4 x
-///    float] subvector. If a bit is set, the corresponding elements from the
-///    two input vectors are used as an input for dot product; otherwise that
-///    input is treated as zero. Bits [3:0] determine which elements of the
-///    result will receive a copy of the final dot product, with bit [0]
-///    corresponding to the lowest element and bit [3] corresponding to the
-///    highest element of each [4 x float] subvector. If a bit is set, the dot
-///    product is returned in the corresponding element; otherwise that element
-///    is set to zero. The bitmask is applied in the same way to each of the
-///    two parallel dot product computations.
-/// \returns A 256-bit vector of [8 x float] containing the two dot products.
-#define _mm256_dp_ps(V1, V2, M) \
-  ((__m256)__builtin_ia32_dpps256((__v8sf)(__m256)(V1), \
-                                  (__v8sf)(__m256)(V2), (M)))
-
-/* Vector shuffle */
-/// Selects 8 float values from the 256-bit operands of [8 x float], as
-///    specified by the immediate value operand.
-///
-///    The four selected elements in each operand are copied to the destination
-///    according to the bits specified in the immediate operand. The selected
-///    elements from the first 256-bit operand are copied to bits [63:0] and
-///    bits [191:128] of the destination, and the selected elements from the
-///    second 256-bit operand are copied to bits [127:64] and bits [255:192] of
-///    the destination. For example, if bits [7:0] of the immediate operand
-///    contain a value of 0xFF, the 256-bit destination vector would contain the
-///    following values: b[7], b[7], a[7], a[7], b[3], b[3], a[3], a[3].
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m256 _mm256_shuffle_ps(__m256 a, __m256 b, const int mask);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VSHUFPS </c> instruction.
-///
-/// \param a
-///    A 256-bit vector of [8 x float]. The four selected elements in this
-///    operand are copied to bits [63:0] and bits [191:128] in the destination,
-///    according to the bits specified in the immediate operand.
-/// \param b
-///    A 256-bit vector of [8 x float]. The four selected elements in this
-///    operand are copied to bits [127:64] and bits [255:192] in the
-///    destination, according to the bits specified in the immediate operand.
-/// \param mask
-///    An immediate value containing an 8-bit value specifying which elements to
-///    copy from \a a and \a b \n.
-///    Bits [3:0] specify the values copied from operand \a a. \n
-///    Bits [7:4] specify the values copied from operand \a b. \n
-///    The destinations within the 256-bit destination are assigned values as
-///    follows, according to the bit value assignments described below: \n
-///    Bits [1:0] are used to assign values to bits [31:0] and [159:128] in the
-///    destination. \n
-///    Bits [3:2] are used to assign values to bits [63:32] and [191:160] in the
-///    destination. \n
-///    Bits [5:4] are used to assign values to bits [95:64] and [223:192] in the
-///    destination. \n
-///    Bits [7:6] are used to assign values to bits [127:96] and [255:224] in
-///    the destination. \n
-///    Bit value assignments: \n
-///    00: Bits [31:0] and [159:128] are copied from the selected operand. \n
-///    01: Bits [63:32] and [191:160] are copied from the selected operand. \n
-///    10: Bits [95:64] and [223:192] are copied from the selected operand. \n
-///    11: Bits [127:96] and [255:224] are copied from the selected operand.
-/// \returns A 256-bit vector of [8 x float] containing the shuffled values.
-#define _mm256_shuffle_ps(a, b, mask) \
-  ((__m256)__builtin_ia32_shufps256((__v8sf)(__m256)(a), \
-                                    (__v8sf)(__m256)(b), (int)(mask)))
-
-/// Selects four double-precision values from the 256-bit operands of
-///    [4 x double], as specified by the immediate value operand.
-///
-///    The selected elements from the first 256-bit operand are copied to bits
-///    [63:0] and bits [191:128] in the destination, and the selected elements
-///    from the second 256-bit operand are copied to bits [127:64] and bits
-///    [255:192] in the destination. For example, if bits [3:0] of the immediate
-///    operand contain a value of 0xF, the 256-bit destination vector would
-///    contain the following values: b[3], a[3], b[1], a[1].
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m256d _mm256_shuffle_pd(__m256d a, __m256d b, const int mask);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VSHUFPD </c> instruction.
-///
-/// \param a
-///    A 256-bit vector of [4 x double].
-/// \param b
-///    A 256-bit vector of [4 x double].
-/// \param mask
-///    An immediate value containing 8-bit values specifying which elements to
-///    copy from \a a and \a b: \n
-///    Bit [0]=0: Bits [63:0] are copied from \a a to bits [63:0] of the
-///    destination. \n
-///    Bit [0]=1: Bits [127:64] are copied from \a a to bits [63:0] of the
-///    destination. \n
-///    Bit [1]=0: Bits [63:0] are copied from \a b to bits [127:64] of the
-///    destination. \n
-///    Bit [1]=1: Bits [127:64] are copied from \a b to bits [127:64] of the
-///    destination. \n
-///    Bit [2]=0: Bits [191:128] are copied from \a a to bits [191:128] of the
-///    destination. \n
-///    Bit [2]=1: Bits [255:192] are copied from \a a to bits [191:128] of the
-///    destination. \n
-///    Bit [3]=0: Bits [191:128] are copied from \a b to bits [255:192] of the
-///    destination. \n
-///    Bit [3]=1: Bits [255:192] are copied from \a b to bits [255:192] of the
-///    destination.
-/// \returns A 256-bit vector of [4 x double] containing the shuffled values.
-#define _mm256_shuffle_pd(a, b, mask) \
-  ((__m256d)__builtin_ia32_shufpd256((__v4df)(__m256d)(a), \
-                                     (__v4df)(__m256d)(b), (int)(mask)))
-
-/* Compare */
-#define _CMP_EQ_OQ    0x00 /* Equal (ordered, non-signaling)  */
-#define _CMP_LT_OS    0x01 /* Less-than (ordered, signaling)  */
-#define _CMP_LE_OS    0x02 /* Less-than-or-equal (ordered, signaling)  */
-#define _CMP_UNORD_Q  0x03 /* Unordered (non-signaling)  */
-#define _CMP_NEQ_UQ   0x04 /* Not-equal (unordered, non-signaling)  */
-#define _CMP_NLT_US   0x05 /* Not-less-than (unordered, signaling)  */
-#define _CMP_NLE_US   0x06 /* Not-less-than-or-equal (unordered, signaling)  */
-#define _CMP_ORD_Q    0x07 /* Ordered (non-signaling)   */
-#define _CMP_EQ_UQ    0x08 /* Equal (unordered, non-signaling)  */
-#define _CMP_NGE_US   0x09 /* Not-greater-than-or-equal (unordered, signaling)  */
-#define _CMP_NGT_US   0x0a /* Not-greater-than (unordered, signaling)  */
-#define _CMP_FALSE_OQ 0x0b /* False (ordered, non-signaling)  */
-#define _CMP_NEQ_OQ   0x0c /* Not-equal (ordered, non-signaling)  */
-#define _CMP_GE_OS    0x0d /* Greater-than-or-equal (ordered, signaling)  */
-#define _CMP_GT_OS    0x0e /* Greater-than (ordered, signaling)  */
-#define _CMP_TRUE_UQ  0x0f /* True (unordered, non-signaling)  */
-#define _CMP_EQ_OS    0x10 /* Equal (ordered, signaling)  */
-#define _CMP_LT_OQ    0x11 /* Less-than (ordered, non-signaling)  */
-#define _CMP_LE_OQ    0x12 /* Less-than-or-equal (ordered, non-signaling)  */
-#define _CMP_UNORD_S  0x13 /* Unordered (signaling)  */
-#define _CMP_NEQ_US   0x14 /* Not-equal (unordered, signaling)  */
-#define _CMP_NLT_UQ   0x15 /* Not-less-than (unordered, non-signaling)  */
-#define _CMP_NLE_UQ   0x16 /* Not-less-than-or-equal (unordered, non-signaling)  */
-#define _CMP_ORD_S    0x17 /* Ordered (signaling)  */
-#define _CMP_EQ_US    0x18 /* Equal (unordered, signaling)  */
-#define _CMP_NGE_UQ   0x19 /* Not-greater-than-or-equal (unordered, non-signaling)  */
-#define _CMP_NGT_UQ   0x1a /* Not-greater-than (unordered, non-signaling)  */
-#define _CMP_FALSE_OS 0x1b /* False (ordered, signaling)  */
-#define _CMP_NEQ_OS   0x1c /* Not-equal (ordered, signaling)  */
-#define _CMP_GE_OQ    0x1d /* Greater-than-or-equal (ordered, non-signaling)  */
-#define _CMP_GT_OQ    0x1e /* Greater-than (ordered, non-signaling)  */
-#define _CMP_TRUE_US  0x1f /* True (unordered, signaling)  */
-
-/// Compares each of the corresponding double-precision values of two
-///    128-bit vectors of [2 x double], using the operation specified by the
-///    immediate integer operand.
-///
-///    Returns a [2 x double] vector consisting of two doubles corresponding to
-///    the two comparison results: zero if the comparison is false, and all 1's
-///    if the comparison is true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m128d _mm_cmp_pd(__m128d a, __m128d b, const int c);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VCMPPD </c> instruction.
-///
-/// \param a
-///    A 128-bit vector of [2 x double].
-/// \param b
-///    A 128-bit vector of [2 x double].
-/// \param c
-///    An immediate integer operand, with bits [4:0] specifying which comparison
-///    operation to use: \n
-///    0x00: Equal (ordered, non-signaling) \n
-///    0x01: Less-than (ordered, signaling) \n
-///    0x02: Less-than-or-equal (ordered, signaling) \n
-///    0x03: Unordered (non-signaling) \n
-///    0x04: Not-equal (unordered, non-signaling) \n
-///    0x05: Not-less-than (unordered, signaling) \n
-///    0x06: Not-less-than-or-equal (unordered, signaling) \n
-///    0x07: Ordered (non-signaling) \n
-///    0x08: Equal (unordered, non-signaling) \n
-///    0x09: Not-greater-than-or-equal (unordered, signaling) \n
-///    0x0A: Not-greater-than (unordered, signaling) \n
-///    0x0B: False (ordered, non-signaling) \n
-///    0x0C: Not-equal (ordered, non-signaling) \n
-///    0x0D: Greater-than-or-equal (ordered, signaling) \n
-///    0x0E: Greater-than (ordered, signaling) \n
-///    0x0F: True (unordered, non-signaling) \n
-///    0x10: Equal (ordered, signaling) \n
-///    0x11: Less-than (ordered, non-signaling) \n
-///    0x12: Less-than-or-equal (ordered, non-signaling) \n
-///    0x13: Unordered (signaling) \n
-///    0x14: Not-equal (unordered, signaling) \n
-///    0x15: Not-less-than (unordered, non-signaling) \n
-///    0x16: Not-less-than-or-equal (unordered, non-signaling) \n
-///    0x17: Ordered (signaling) \n
-///    0x18: Equal (unordered, signaling) \n
-///    0x19: Not-greater-than-or-equal (unordered, non-signaling) \n
-///    0x1A: Not-greater-than (unordered, non-signaling) \n
-///    0x1B: False (ordered, signaling) \n
-///    0x1C: Not-equal (ordered, signaling) \n
-///    0x1D: Greater-than-or-equal (ordered, non-signaling) \n
-///    0x1E: Greater-than (ordered, non-signaling) \n
-///    0x1F: True (unordered, signaling)
-/// \returns A 128-bit vector of [2 x double] containing the comparison results.
-#define _mm_cmp_pd(a, b, c) \
-  ((__m128d)__builtin_ia32_cmppd((__v2df)(__m128d)(a), \
-                                 (__v2df)(__m128d)(b), (c)))
-
-/// Compares each of the corresponding values of two 128-bit vectors of
-///    [4 x float], using the operation specified by the immediate integer
-///    operand.
-///
-///    Returns a [4 x float] vector consisting of four floats corresponding to
-///    the four comparison results: zero if the comparison is false, and all 1's
-///    if the comparison is true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m128 _mm_cmp_ps(__m128 a, __m128 b, const int c);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VCMPPS </c> instruction.
-///
-/// \param a
-///    A 128-bit vector of [4 x float].
-/// \param b
-///    A 128-bit vector of [4 x float].
-/// \param c
-///    An immediate integer operand, with bits [4:0] specifying which comparison
-///    operation to use: \n
-///    0x00: Equal (ordered, non-signaling) \n
-///    0x01: Less-than (ordered, signaling) \n
-///    0x02: Less-than-or-equal (ordered, signaling) \n
-///    0x03: Unordered (non-signaling) \n
-///    0x04: Not-equal (unordered, non-signaling) \n
-///    0x05: Not-less-than (unordered, signaling) \n
-///    0x06: Not-less-than-or-equal (unordered, signaling) \n
-///    0x07: Ordered (non-signaling) \n
-///    0x08: Equal (unordered, non-signaling) \n
-///    0x09: Not-greater-than-or-equal (unordered, signaling) \n
-///    0x0A: Not-greater-than (unordered, signaling) \n
-///    0x0B: False (ordered, non-signaling) \n
-///    0x0C: Not-equal (ordered, non-signaling) \n
-///    0x0D: Greater-than-or-equal (ordered, signaling) \n
-///    0x0E: Greater-than (ordered, signaling) \n
-///    0x0F: True (unordered, non-signaling) \n
-///    0x10: Equal (ordered, signaling) \n
-///    0x11: Less-than (ordered, non-signaling) \n
-///    0x12: Less-than-or-equal (ordered, non-signaling) \n
-///    0x13: Unordered (signaling) \n
-///    0x14: Not-equal (unordered, signaling) \n
-///    0x15: Not-less-than (unordered, non-signaling) \n
-///    0x16: Not-less-than-or-equal (unordered, non-signaling) \n
-///    0x17: Ordered (signaling) \n
-///    0x18: Equal (unordered, signaling) \n
-///    0x19: Not-greater-than-or-equal (unordered, non-signaling) \n
-///    0x1A: Not-greater-than (unordered, non-signaling) \n
-///    0x1B: False (ordered, signaling) \n
-///    0x1C: Not-equal (ordered, signaling) \n
-///    0x1D: Greater-than-or-equal (ordered, non-signaling) \n
-///    0x1E: Greater-than (ordered, non-signaling) \n
-///    0x1F: True (unordered, signaling)
-/// \returns A 128-bit vector of [4 x float] containing the comparison results.
-#define _mm_cmp_ps(a, b, c) \
-  ((__m128)__builtin_ia32_cmpps((__v4sf)(__m128)(a), \
-                                (__v4sf)(__m128)(b), (c)))
-
-/// Compares each of the corresponding double-precision values of two
-///    256-bit vectors of [4 x double], using the operation specified by the
-///    immediate integer operand.
-///
-///    Returns a [4 x double] vector consisting of four doubles corresponding to
-///    the four comparison results: zero if the comparison is false, and all 1's
-///    if the comparison is true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m256d _mm256_cmp_pd(__m256d a, __m256d b, const int c);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VCMPPD </c> instruction.
-///
-/// \param a
-///    A 256-bit vector of [4 x double].
-/// \param b
-///    A 256-bit vector of [4 x double].
-/// \param c
-///    An immediate integer operand, with bits [4:0] specifying which comparison
-///    operation to use: \n
-///    0x00: Equal (ordered, non-signaling) \n
-///    0x01: Less-than (ordered, signaling) \n
-///    0x02: Less-than-or-equal (ordered, signaling) \n
-///    0x03: Unordered (non-signaling) \n
-///    0x04: Not-equal (unordered, non-signaling) \n
-///    0x05: Not-less-than (unordered, signaling) \n
-///    0x06: Not-less-than-or-equal (unordered, signaling) \n
-///    0x07: Ordered (non-signaling) \n
-///    0x08: Equal (unordered, non-signaling) \n
-///    0x09: Not-greater-than-or-equal (unordered, signaling) \n
-///    0x0A: Not-greater-than (unordered, signaling) \n
-///    0x0B: False (ordered, non-signaling) \n
-///    0x0C: Not-equal (ordered, non-signaling) \n
-///    0x0D: Greater-than-or-equal (ordered, signaling) \n
-///    0x0E: Greater-than (ordered, signaling) \n
-///    0x0F: True (unordered, non-signaling) \n
-///    0x10: Equal (ordered, signaling) \n
-///    0x11: Less-than (ordered, non-signaling) \n
-///    0x12: Less-than-or-equal (ordered, non-signaling) \n
-///    0x13: Unordered (signaling) \n
-///    0x14: Not-equal (unordered, signaling) \n
-///    0x15: Not-less-than (unordered, non-signaling) \n
-///    0x16: Not-less-than-or-equal (unordered, non-signaling) \n
-///    0x17: Ordered (signaling) \n
-///    0x18: Equal (unordered, signaling) \n
-///    0x19: Not-greater-than-or-equal (unordered, non-signaling) \n
-///    0x1A: Not-greater-than (unordered, non-signaling) \n
-///    0x1B: False (ordered, signaling) \n
-///    0x1C: Not-equal (ordered, signaling) \n
-///    0x1D: Greater-than-or-equal (ordered, non-signaling) \n
-///    0x1E: Greater-than (ordered, non-signaling) \n
-///    0x1F: True (unordered, signaling)
-/// \returns A 256-bit vector of [4 x double] containing the comparison results.
-#define _mm256_cmp_pd(a, b, c) \
-  ((__m256d)__builtin_ia32_cmppd256((__v4df)(__m256d)(a), \
-                                    (__v4df)(__m256d)(b), (c)))
-
-/// Compares each of the corresponding values of two 256-bit vectors of
-///    [8 x float], using the operation specified by the immediate integer
-///    operand.
-///
-///    Returns a [8 x float] vector consisting of eight floats corresponding to
-///    the eight comparison results: zero if the comparison is false, and all
-///    1's if the comparison is true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m256 _mm256_cmp_ps(__m256 a, __m256 b, const int c);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VCMPPS </c> instruction.
-///
-/// \param a
-///    A 256-bit vector of [8 x float].
-/// \param b
-///    A 256-bit vector of [8 x float].
-/// \param c
-///    An immediate integer operand, with bits [4:0] specifying which comparison
-///    operation to use: \n
-///    0x00: Equal (ordered, non-signaling) \n
-///    0x01: Less-than (ordered, signaling) \n
-///    0x02: Less-than-or-equal (ordered, signaling) \n
-///    0x03: Unordered (non-signaling) \n
-///    0x04: Not-equal (unordered, non-signaling) \n
-///    0x05: Not-less-than (unordered, signaling) \n
-///    0x06: Not-less-than-or-equal (unordered, signaling) \n
-///    0x07: Ordered (non-signaling) \n
-///    0x08: Equal (unordered, non-signaling) \n
-///    0x09: Not-greater-than-or-equal (unordered, signaling) \n
-///    0x0A: Not-greater-than (unordered, signaling) \n
-///    0x0B: False (ordered, non-signaling) \n
-///    0x0C: Not-equal (ordered, non-signaling) \n
-///    0x0D: Greater-than-or-equal (ordered, signaling) \n
-///    0x0E: Greater-than (ordered, signaling) \n
-///    0x0F: True (unordered, non-signaling) \n
-///    0x10: Equal (ordered, signaling) \n
-///    0x11: Less-than (ordered, non-signaling) \n
-///    0x12: Less-than-or-equal (ordered, non-signaling) \n
-///    0x13: Unordered (signaling) \n
-///    0x14: Not-equal (unordered, signaling) \n
-///    0x15: Not-less-than (unordered, non-signaling) \n
-///    0x16: Not-less-than-or-equal (unordered, non-signaling) \n
-///    0x17: Ordered (signaling) \n
-///    0x18: Equal (unordered, signaling) \n
-///    0x19: Not-greater-than-or-equal (unordered, non-signaling) \n
-///    0x1A: Not-greater-than (unordered, non-signaling) \n
-///    0x1B: False (ordered, signaling) \n
-///    0x1C: Not-equal (ordered, signaling) \n
-///    0x1D: Greater-than-or-equal (ordered, non-signaling) \n
-///    0x1E: Greater-than (ordered, non-signaling) \n
-///    0x1F: True (unordered, signaling)
-/// \returns A 256-bit vector of [8 x float] containing the comparison results.
-#define _mm256_cmp_ps(a, b, c) \
-  ((__m256)__builtin_ia32_cmpps256((__v8sf)(__m256)(a), \
-                                   (__v8sf)(__m256)(b), (c)))
-
-/// Compares each of the corresponding scalar double-precision values of
-///    two 128-bit vectors of [2 x double], using the operation specified by the
-///    immediate integer operand.
-///
-///    If the result is true, all 64 bits of the destination vector are set;
-///    otherwise they are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m128d _mm_cmp_sd(__m128d a, __m128d b, const int c);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VCMPSD </c> instruction.
-///
-/// \param a
-///    A 128-bit vector of [2 x double].
-/// \param b
-///    A 128-bit vector of [2 x double].
-/// \param c
-///    An immediate integer operand, with bits [4:0] specifying which comparison
-///    operation to use: \n
-///    0x00: Equal (ordered, non-signaling) \n
-///    0x01: Less-than (ordered, signaling) \n
-///    0x02: Less-than-or-equal (ordered, signaling) \n
-///    0x03: Unordered (non-signaling) \n
-///    0x04: Not-equal (unordered, non-signaling) \n
-///    0x05: Not-less-than (unordered, signaling) \n
-///    0x06: Not-less-than-or-equal (unordered, signaling) \n
-///    0x07: Ordered (non-signaling) \n
-///    0x08: Equal (unordered, non-signaling) \n
-///    0x09: Not-greater-than-or-equal (unordered, signaling) \n
-///    0x0A: Not-greater-than (unordered, signaling) \n
-///    0x0B: False (ordered, non-signaling) \n
-///    0x0C: Not-equal (ordered, non-signaling) \n
-///    0x0D: Greater-than-or-equal (ordered, signaling) \n
-///    0x0E: Greater-than (ordered, signaling) \n
-///    0x0F: True (unordered, non-signaling) \n
-///    0x10: Equal (ordered, signaling) \n
-///    0x11: Less-than (ordered, non-signaling) \n
-///    0x12: Less-than-or-equal (ordered, non-signaling) \n
-///    0x13: Unordered (signaling) \n
-///    0x14: Not-equal (unordered, signaling) \n
-///    0x15: Not-less-than (unordered, non-signaling) \n
-///    0x16: Not-less-than-or-equal (unordered, non-signaling) \n
-///    0x17: Ordered (signaling) \n
-///    0x18: Equal (unordered, signaling) \n
-///    0x19: Not-greater-than-or-equal (unordered, non-signaling) \n
-///    0x1A: Not-greater-than (unordered, non-signaling) \n
-///    0x1B: False (ordered, signaling) \n
-///    0x1C: Not-equal (ordered, signaling) \n
-///    0x1D: Greater-than-or-equal (ordered, non-signaling) \n
-///    0x1E: Greater-than (ordered, non-signaling) \n
-///    0x1F: True (unordered, signaling)
-/// \returns A 128-bit vector of [2 x double] containing the comparison results.
-#define _mm_cmp_sd(a, b, c) \
-  ((__m128d)__builtin_ia32_cmpsd((__v2df)(__m128d)(a), \
-                                 (__v2df)(__m128d)(b), (c)))
-
-/// Compares each of the corresponding scalar values of two 128-bit
-///    vectors of [4 x float], using the operation specified by the immediate
-///    integer operand.
-///
-///    If the result is true, all 32 bits of the destination vector are set;
-///    otherwise they are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m128 _mm_cmp_ss(__m128 a, __m128 b, const int c);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VCMPSS </c> instruction.
-///
-/// \param a
-///    A 128-bit vector of [4 x float].
-/// \param b
-///    A 128-bit vector of [4 x float].
-/// \param c
-///    An immediate integer operand, with bits [4:0] specifying which comparison
-///    operation to use: \n
-///    0x00: Equal (ordered, non-signaling) \n
-///    0x01: Less-than (ordered, signaling) \n
-///    0x02: Less-than-or-equal (ordered, signaling) \n
-///    0x03: Unordered (non-signaling) \n
-///    0x04: Not-equal (unordered, non-signaling) \n
-///    0x05: Not-less-than (unordered, signaling) \n
-///    0x06: Not-less-than-or-equal (unordered, signaling) \n
-///    0x07: Ordered (non-signaling) \n
-///    0x08: Equal (unordered, non-signaling) \n
-///    0x09: Not-greater-than-or-equal (unordered, signaling) \n
-///    0x0A: Not-greater-than (unordered, signaling) \n
-///    0x0B: False (ordered, non-signaling) \n
-///    0x0C: Not-equal (ordered, non-signaling) \n
-///    0x0D: Greater-than-or-equal (ordered, signaling) \n
-///    0x0E: Greater-than (ordered, signaling) \n
-///    0x0F: True (unordered, non-signaling) \n
-///    0x10: Equal (ordered, signaling) \n
-///    0x11: Less-than (ordered, non-signaling) \n
-///    0x12: Less-than-or-equal (ordered, non-signaling) \n
-///    0x13: Unordered (signaling) \n
-///    0x14: Not-equal (unordered, signaling) \n
-///    0x15: Not-less-than (unordered, non-signaling) \n
-///    0x16: Not-less-than-or-equal (unordered, non-signaling) \n
-///    0x17: Ordered (signaling) \n
-///    0x18: Equal (unordered, signaling) \n
-///    0x19: Not-greater-than-or-equal (unordered, non-signaling) \n
-///    0x1A: Not-greater-than (unordered, non-signaling) \n
-///    0x1B: False (ordered, signaling) \n
-///    0x1C: Not-equal (ordered, signaling) \n
-///    0x1D: Greater-than-or-equal (ordered, non-signaling) \n
-///    0x1E: Greater-than (ordered, non-signaling) \n
-///    0x1F: True (unordered, signaling)
-/// \returns A 128-bit vector of [4 x float] containing the comparison results.
-#define _mm_cmp_ss(a, b, c) \
-  ((__m128)__builtin_ia32_cmpss((__v4sf)(__m128)(a), \
-                                (__v4sf)(__m128)(b), (c)))
-
-/// Takes a [8 x i32] vector and returns the vector element value
-///    indexed by the immediate constant operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VEXTRACTF128+COMPOSITE </c>
-///   instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x i32].
-/// \param __imm
-///    An immediate integer operand with bits [2:0] determining which vector
-///    element is extracted and returned.
-/// \returns A 32-bit integer containing the extracted 32 bits of extended
-///    packed data.
-#define _mm256_extract_epi32(X, N) \
-  ((int)__builtin_ia32_vec_ext_v8si((__v8si)(__m256i)(X), (int)(N)))
-
-/// Takes a [16 x i16] vector and returns the vector element value
-///    indexed by the immediate constant operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VEXTRACTF128+COMPOSITE </c>
-///   instruction.
-///
-/// \param __a
-///    A 256-bit integer vector of [16 x i16].
-/// \param __imm
-///    An immediate integer operand with bits [3:0] determining which vector
-///    element is extracted and returned.
-/// \returns A 32-bit integer containing the extracted 16 bits of zero extended
-///    packed data.
-#define _mm256_extract_epi16(X, N) \
-  ((int)(unsigned short)__builtin_ia32_vec_ext_v16hi((__v16hi)(__m256i)(X), \
-                                                     (int)(N)))
-
-/// Takes a [32 x i8] vector and returns the vector element value
-///    indexed by the immediate constant operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VEXTRACTF128+COMPOSITE </c>
-///   instruction.
-///
-/// \param __a
-///    A 256-bit integer vector of [32 x i8].
-/// \param __imm
-///    An immediate integer operand with bits [4:0] determining which vector
-///    element is extracted and returned.
-/// \returns A 32-bit integer containing the extracted 8 bits of zero extended
-///    packed data.
-#define _mm256_extract_epi8(X, N) \
-  ((int)(unsigned char)__builtin_ia32_vec_ext_v32qi((__v32qi)(__m256i)(X), \
-                                                    (int)(N)))
-
-#ifdef __x86_64__
-/// Takes a [4 x i64] vector and returns the vector element value
-///    indexed by the immediate constant operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VEXTRACTF128+COMPOSITE </c>
-///   instruction.
-///
-/// \param __a
-///    A 256-bit integer vector of [4 x i64].
-/// \param __imm
-///    An immediate integer operand with bits [1:0] determining which vector
-///    element is extracted and returned.
-/// \returns A 64-bit integer containing the extracted 64 bits of extended
-///    packed data.
-#define _mm256_extract_epi64(X, N) \
-  ((long long)__builtin_ia32_vec_ext_v4di((__v4di)(__m256i)(X), (int)(N)))
-#endif
-
-/// Takes a [8 x i32] vector and replaces the vector element value
-///    indexed by the immediate constant operand by a new value. Returns the
-///    modified vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VINSERTF128+COMPOSITE </c>
-///   instruction.
-///
-/// \param __a
-///    A vector of [8 x i32] to be used by the insert operation.
-/// \param __b
-///    An integer value. The replacement value for the insert operation.
-/// \param __imm
-///    An immediate integer specifying the index of the vector element to be
-///    replaced.
-/// \returns A copy of vector \a __a, after replacing its element indexed by
-///    \a __imm with \a __b.
-#define _mm256_insert_epi32(X, I, N) \
-  ((__m256i)__builtin_ia32_vec_set_v8si((__v8si)(__m256i)(X), \
-                                        (int)(I), (int)(N)))
-
-
-/// Takes a [16 x i16] vector and replaces the vector element value
-///    indexed by the immediate constant operand with a new value. Returns the
-///    modified vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VINSERTF128+COMPOSITE </c>
-///   instruction.
-///
-/// \param __a
-///    A vector of [16 x i16] to be used by the insert operation.
-/// \param __b
-///    An i16 integer value. The replacement value for the insert operation.
-/// \param __imm
-///    An immediate integer specifying the index of the vector element to be
-///    replaced.
-/// \returns A copy of vector \a __a, after replacing its element indexed by
-///    \a __imm with \a __b.
-#define _mm256_insert_epi16(X, I, N) \
-  ((__m256i)__builtin_ia32_vec_set_v16hi((__v16hi)(__m256i)(X), \
-                                         (int)(I), (int)(N)))
-
-/// Takes a [32 x i8] vector and replaces the vector element value
-///    indexed by the immediate constant operand with a new value. Returns the
-///    modified vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VINSERTF128+COMPOSITE </c>
-///   instruction.
-///
-/// \param __a
-///    A vector of [32 x i8] to be used by the insert operation.
-/// \param __b
-///    An i8 integer value. The replacement value for the insert operation.
-/// \param __imm
-///    An immediate integer specifying the index of the vector element to be
-///    replaced.
-/// \returns A copy of vector \a __a, after replacing its element indexed by
-///    \a __imm with \a __b.
-#define _mm256_insert_epi8(X, I, N) \
-  ((__m256i)__builtin_ia32_vec_set_v32qi((__v32qi)(__m256i)(X), \
-                                         (int)(I), (int)(N)))
-
-#ifdef __x86_64__
-/// Takes a [4 x i64] vector and replaces the vector element value
-///    indexed by the immediate constant operand with a new value. Returns the
-///    modified vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VINSERTF128+COMPOSITE </c>
-///   instruction.
-///
-/// \param __a
-///    A vector of [4 x i64] to be used by the insert operation.
-/// \param __b
-///    A 64-bit integer value. The replacement value for the insert operation.
-/// \param __imm
-///    An immediate integer specifying the index of the vector element to be
-///    replaced.
-/// \returns A copy of vector \a __a, after replacing its element indexed by
-///     \a __imm with \a __b.
-#define _mm256_insert_epi64(X, I, N) \
-  ((__m256i)__builtin_ia32_vec_set_v4di((__v4di)(__m256i)(X), \
-                                        (long long)(I), (int)(N)))
-#endif
-
-/* Conversion */
-/// Converts a vector of [4 x i32] into a vector of [4 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTDQ2PD </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector of [4 x i32].
-/// \returns A 256-bit vector of [4 x double] containing the converted values.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_cvtepi32_pd(__m128i __a)
-{
-  return (__m256d)__builtin_convertvector((__v4si)__a, __v4df);
-}
-
-/// Converts a vector of [8 x i32] into a vector of [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTDQ2PS </c> instruction.
-///
-/// \param __a
-///    A 256-bit integer vector.
-/// \returns A 256-bit vector of [8 x float] containing the converted values.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_cvtepi32_ps(__m256i __a)
-{
-  return (__m256)__builtin_convertvector((__v8si)__a, __v8sf);
-}
-
-/// Converts a 256-bit vector of [4 x double] into a 128-bit vector of
-///    [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTPD2PS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double].
-/// \returns A 128-bit vector of [4 x float] containing the converted values.
-static __inline __m128 __DEFAULT_FN_ATTRS
-_mm256_cvtpd_ps(__m256d __a)
-{
-  return (__m128)__builtin_ia32_cvtpd2ps256((__v4df) __a);
-}
-
-/// Converts a vector of [8 x float] into a vector of [8 x i32].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTPS2DQ </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float].
-/// \returns A 256-bit integer vector containing the converted values.
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_cvtps_epi32(__m256 __a)
-{
-  return (__m256i)__builtin_ia32_cvtps2dq256((__v8sf) __a);
-}
-
-/// Converts a 128-bit vector of [4 x float] into a 256-bit vector of [4
-///    x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTPS2PD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \returns A 256-bit vector of [4 x double] containing the converted values.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_cvtps_pd(__m128 __a)
-{
-  return (__m256d)__builtin_convertvector((__v4sf)__a, __v4df);
-}
-
-/// Converts a 256-bit vector of [4 x double] into a 128-bit vector of [4
-///    x i32], truncating the result by rounding towards zero when it is
-///    inexact.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTTPD2DQ </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double].
-/// \returns A 128-bit integer vector containing the converted values.
-static __inline __m128i __DEFAULT_FN_ATTRS
-_mm256_cvttpd_epi32(__m256d __a)
-{
-  return (__m128i)__builtin_ia32_cvttpd2dq256((__v4df) __a);
-}
-
-/// Converts a 256-bit vector of [4 x double] into a 128-bit vector of [4
-///    x i32]. When a conversion is inexact, the value returned is rounded
-///    according to the rounding control bits in the MXCSR register.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTPD2DQ </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double].
-/// \returns A 128-bit integer vector containing the converted values.
-static __inline __m128i __DEFAULT_FN_ATTRS
-_mm256_cvtpd_epi32(__m256d __a)
-{
-  return (__m128i)__builtin_ia32_cvtpd2dq256((__v4df) __a);
-}
-
-/// Converts a vector of [8 x float] into a vector of [8 x i32],
-///    truncating the result by rounding towards zero when it is inexact.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTTPS2DQ </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float].
-/// \returns A 256-bit integer vector containing the converted values.
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_cvttps_epi32(__m256 __a)
-{
-  return (__m256i)__builtin_ia32_cvttps2dq256((__v8sf) __a);
-}
-
-/// Returns the first element of the input vector of [4 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double].
-/// \returns A 64 bit double containing the first element of the input vector.
-static __inline double __DEFAULT_FN_ATTRS
-_mm256_cvtsd_f64(__m256d __a)
-{
- return __a[0];
-}
-
-/// Returns the first element of the input vector of [8 x i32].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x i32].
-/// \returns A 32 bit integer containing the first element of the input vector.
-static __inline int __DEFAULT_FN_ATTRS
-_mm256_cvtsi256_si32(__m256i __a)
-{
- __v8si __b = (__v8si)__a;
- return __b[0];
-}
-
-/// Returns the first element of the input vector of [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float].
-/// \returns A 32 bit float containing the first element of the input vector.
-static __inline float __DEFAULT_FN_ATTRS
-_mm256_cvtss_f32(__m256 __a)
-{
- return __a[0];
-}
-
-/* Vector replicate */
-/// Moves and duplicates odd-indexed values from a 256-bit vector of
-///    [8 x float] to float values in a 256-bit vector of [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVSHDUP </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float]. \n
-///    Bits [255:224] of \a __a are written to bits [255:224] and [223:192] of
-///    the return value. \n
-///    Bits [191:160] of \a __a are written to bits [191:160] and [159:128] of
-///    the return value. \n
-///    Bits [127:96] of \a __a are written to bits [127:96] and [95:64] of the
-///    return value. \n
-///    Bits [63:32] of \a __a are written to bits [63:32] and [31:0] of the
-///    return value.
-/// \returns A 256-bit vector of [8 x float] containing the moved and duplicated
-///    values.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_movehdup_ps(__m256 __a)
-{
-  return __builtin_shufflevector((__v8sf)__a, (__v8sf)__a, 1, 1, 3, 3, 5, 5, 7, 7);
-}
-
-/// Moves and duplicates even-indexed values from a 256-bit vector of
-///    [8 x float] to float values in a 256-bit vector of [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVSLDUP </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float]. \n
-///    Bits [223:192] of \a __a are written to bits [255:224] and [223:192] of
-///    the return value. \n
-///    Bits [159:128] of \a __a are written to bits [191:160] and [159:128] of
-///    the return value. \n
-///    Bits [95:64] of \a __a are written to bits [127:96] and [95:64] of the
-///    return value. \n
-///    Bits [31:0] of \a __a are written to bits [63:32] and [31:0] of the
-///    return value.
-/// \returns A 256-bit vector of [8 x float] containing the moved and duplicated
-///    values.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_moveldup_ps(__m256 __a)
-{
-  return __builtin_shufflevector((__v8sf)__a, (__v8sf)__a, 0, 0, 2, 2, 4, 4, 6, 6);
-}
-
-/// Moves and duplicates double-precision floating point values from a
-///    256-bit vector of [4 x double] to double-precision values in a 256-bit
-///    vector of [4 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVDDUP </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double]. \n
-///    Bits [63:0] of \a __a are written to bits [127:64] and [63:0] of the
-///    return value. \n
-///    Bits [191:128] of \a __a are written to bits [255:192] and [191:128] of
-///    the return value.
-/// \returns A 256-bit vector of [4 x double] containing the moved and
-///    duplicated values.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_movedup_pd(__m256d __a)
-{
-  return __builtin_shufflevector((__v4df)__a, (__v4df)__a, 0, 0, 2, 2);
-}
-
-/* Unpack and Interleave */
-/// Unpacks the odd-indexed vector elements from two 256-bit vectors of
-///    [4 x double] and interleaves them into a 256-bit vector of [4 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUNPCKHPD </c> instruction.
-///
-/// \param __a
-///    A 256-bit floating-point vector of [4 x double]. \n
-///    Bits [127:64] are written to bits [63:0] of the return value. \n
-///    Bits [255:192] are written to bits [191:128] of the return value. \n
-/// \param __b
-///    A 256-bit floating-point vector of [4 x double]. \n
-///    Bits [127:64] are written to bits [127:64] of the return value. \n
-///    Bits [255:192] are written to bits [255:192] of the return value. \n
-/// \returns A 256-bit vector of [4 x double] containing the interleaved values.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_unpackhi_pd(__m256d __a, __m256d __b)
-{
-  return __builtin_shufflevector((__v4df)__a, (__v4df)__b, 1, 5, 1+2, 5+2);
-}
-
-/// Unpacks the even-indexed vector elements from two 256-bit vectors of
-///    [4 x double] and interleaves them into a 256-bit vector of [4 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUNPCKLPD </c> instruction.
-///
-/// \param __a
-///    A 256-bit floating-point vector of [4 x double]. \n
-///    Bits [63:0] are written to bits [63:0] of the return value. \n
-///    Bits [191:128] are written to bits [191:128] of the return value.
-/// \param __b
-///    A 256-bit floating-point vector of [4 x double]. \n
-///    Bits [63:0] are written to bits [127:64] of the return value. \n
-///    Bits [191:128] are written to bits [255:192] of the return value. \n
-/// \returns A 256-bit vector of [4 x double] containing the interleaved values.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_unpacklo_pd(__m256d __a, __m256d __b)
-{
-  return __builtin_shufflevector((__v4df)__a, (__v4df)__b, 0, 4, 0+2, 4+2);
-}
-
-/// Unpacks the 32-bit vector elements 2, 3, 6 and 7 from each of the
-///    two 256-bit vectors of [8 x float] and interleaves them into a 256-bit
-///    vector of [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUNPCKHPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float]. \n
-///    Bits [95:64] are written to bits [31:0] of the return value. \n
-///    Bits [127:96] are written to bits [95:64] of the return value. \n
-///    Bits [223:192] are written to bits [159:128] of the return value. \n
-///    Bits [255:224] are written to bits [223:192] of the return value.
-/// \param __b
-///    A 256-bit vector of [8 x float]. \n
-///    Bits [95:64] are written to bits [63:32] of the return value. \n
-///    Bits [127:96] are written to bits [127:96] of the return value. \n
-///    Bits [223:192] are written to bits [191:160] of the return value. \n
-///    Bits [255:224] are written to bits [255:224] of the return value.
-/// \returns A 256-bit vector of [8 x float] containing the interleaved values.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_unpackhi_ps(__m256 __a, __m256 __b)
-{
-  return __builtin_shufflevector((__v8sf)__a, (__v8sf)__b, 2, 10, 2+1, 10+1, 6, 14, 6+1, 14+1);
-}
-
-/// Unpacks the 32-bit vector elements 0, 1, 4 and 5 from each of the
-///    two 256-bit vectors of [8 x float] and interleaves them into a 256-bit
-///    vector of [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUNPCKLPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float]. \n
-///    Bits [31:0] are written to bits [31:0] of the return value. \n
-///    Bits [63:32] are written to bits [95:64] of the return value. \n
-///    Bits [159:128] are written to bits [159:128] of the return value. \n
-///    Bits [191:160] are written to bits [223:192] of the return value.
-/// \param __b
-///    A 256-bit vector of [8 x float]. \n
-///    Bits [31:0] are written to bits [63:32] of the return value. \n
-///    Bits [63:32] are written to bits [127:96] of the return value. \n
-///    Bits [159:128] are written to bits [191:160] of the return value. \n
-///    Bits [191:160] are written to bits [255:224] of the return value.
-/// \returns A 256-bit vector of [8 x float] containing the interleaved values.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_unpacklo_ps(__m256 __a, __m256 __b)
-{
-  return __builtin_shufflevector((__v8sf)__a, (__v8sf)__b, 0, 8, 0+1, 8+1, 4, 12, 4+1, 12+1);
-}
-
-/* Bit Test */
-/// Given two 128-bit floating-point vectors of [2 x double], perform an
-///    element-by-element comparison of the double-precision element in the
-///    first source vector and the corresponding element in the second source
-///    vector.
-///
-///    The EFLAGS register is updated as follows: \n
-///    If there is at least one pair of double-precision elements where the
-///    sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the
-///    ZF flag is set to 1. \n
-///    If there is at least one pair of double-precision elements where the
-///    sign-bit of the first element is 0 and the sign-bit of the second element
-///    is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n
-///    This intrinsic returns the value of the ZF flag.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VTESTPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \param __b
-///    A 128-bit vector of [2 x double].
-/// \returns the ZF flag in the EFLAGS register.
-static __inline int __DEFAULT_FN_ATTRS128
-_mm_testz_pd(__m128d __a, __m128d __b)
-{
-  return __builtin_ia32_vtestzpd((__v2df)__a, (__v2df)__b);
-}
-
-/// Given two 128-bit floating-point vectors of [2 x double], perform an
-///    element-by-element comparison of the double-precision element in the
-///    first source vector and the corresponding element in the second source
-///    vector.
-///
-///    The EFLAGS register is updated as follows: \n
-///    If there is at least one pair of double-precision elements where the
-///    sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the
-///    ZF flag is set to 1. \n
-///    If there is at least one pair of double-precision elements where the
-///    sign-bit of the first element is 0 and the sign-bit of the second element
-///    is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n
-///    This intrinsic returns the value of the CF flag.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VTESTPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \param __b
-///    A 128-bit vector of [2 x double].
-/// \returns the CF flag in the EFLAGS register.
-static __inline int __DEFAULT_FN_ATTRS128
-_mm_testc_pd(__m128d __a, __m128d __b)
-{
-  return __builtin_ia32_vtestcpd((__v2df)__a, (__v2df)__b);
-}
-
-/// Given two 128-bit floating-point vectors of [2 x double], perform an
-///    element-by-element comparison of the double-precision element in the
-///    first source vector and the corresponding element in the second source
-///    vector.
-///
-///    The EFLAGS register is updated as follows: \n
-///    If there is at least one pair of double-precision elements where the
-///    sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the
-///    ZF flag is set to 1. \n
-///    If there is at least one pair of double-precision elements where the
-///    sign-bit of the first element is 0 and the sign-bit of the second element
-///    is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n
-///    This intrinsic returns 1 if both the ZF and CF flags are set to 0,
-///    otherwise it returns 0.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VTESTPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \param __b
-///    A 128-bit vector of [2 x double].
-/// \returns 1 if both the ZF and CF flags are set to 0, otherwise returns 0.
-static __inline int __DEFAULT_FN_ATTRS128
-_mm_testnzc_pd(__m128d __a, __m128d __b)
-{
-  return __builtin_ia32_vtestnzcpd((__v2df)__a, (__v2df)__b);
-}
-
-/// Given two 128-bit floating-point vectors of [4 x float], perform an
-///    element-by-element comparison of the single-precision element in the
-///    first source vector and the corresponding element in the second source
-///    vector.
-///
-///    The EFLAGS register is updated as follows: \n
-///    If there is at least one pair of single-precision elements where the
-///    sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the
-///    ZF flag is set to 1. \n
-///    If there is at least one pair of single-precision elements where the
-///    sign-bit of the first element is 0 and the sign-bit of the second element
-///    is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n
-///    This intrinsic returns the value of the ZF flag.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VTESTPS </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \param __b
-///    A 128-bit vector of [4 x float].
-/// \returns the ZF flag.
-static __inline int __DEFAULT_FN_ATTRS128
-_mm_testz_ps(__m128 __a, __m128 __b)
-{
-  return __builtin_ia32_vtestzps((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Given two 128-bit floating-point vectors of [4 x float], perform an
-///    element-by-element comparison of the single-precision element in the
-///    first source vector and the corresponding element in the second source
-///    vector.
-///
-///    The EFLAGS register is updated as follows: \n
-///    If there is at least one pair of single-precision elements where the
-///    sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the
-///    ZF flag is set to 1. \n
-///    If there is at least one pair of single-precision elements where the
-///    sign-bit of the first element is 0 and the sign-bit of the second element
-///    is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n
-///    This intrinsic returns the value of the CF flag.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VTESTPS </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \param __b
-///    A 128-bit vector of [4 x float].
-/// \returns the CF flag.
-static __inline int __DEFAULT_FN_ATTRS128
-_mm_testc_ps(__m128 __a, __m128 __b)
-{
-  return __builtin_ia32_vtestcps((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Given two 128-bit floating-point vectors of [4 x float], perform an
-///    element-by-element comparison of the single-precision element in the
-///    first source vector and the corresponding element in the second source
-///    vector.
-///
-///    The EFLAGS register is updated as follows: \n
-///    If there is at least one pair of single-precision elements where the
-///    sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the
-///    ZF flag is set to 1. \n
-///    If there is at least one pair of single-precision elements where the
-///    sign-bit of the first element is 0 and the sign-bit of the second element
-///    is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n
-///    This intrinsic returns 1 if both the ZF and CF flags are set to 0,
-///    otherwise it returns 0.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VTESTPS </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \param __b
-///    A 128-bit vector of [4 x float].
-/// \returns 1 if both the ZF and CF flags are set to 0, otherwise returns 0.
-static __inline int __DEFAULT_FN_ATTRS128
-_mm_testnzc_ps(__m128 __a, __m128 __b)
-{
-  return __builtin_ia32_vtestnzcps((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Given two 256-bit floating-point vectors of [4 x double], perform an
-///    element-by-element comparison of the double-precision elements in the
-///    first source vector and the corresponding elements in the second source
-///    vector.
-///
-///    The EFLAGS register is updated as follows: \n
-///    If there is at least one pair of double-precision elements where the
-///    sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the
-///    ZF flag is set to 1. \n
-///    If there is at least one pair of double-precision elements where the
-///    sign-bit of the first element is 0 and the sign-bit of the second element
-///    is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n
-///    This intrinsic returns the value of the ZF flag.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VTESTPD </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double].
-/// \param __b
-///    A 256-bit vector of [4 x double].
-/// \returns the ZF flag.
-static __inline int __DEFAULT_FN_ATTRS
-_mm256_testz_pd(__m256d __a, __m256d __b)
-{
-  return __builtin_ia32_vtestzpd256((__v4df)__a, (__v4df)__b);
-}
-
-/// Given two 256-bit floating-point vectors of [4 x double], perform an
-///    element-by-element comparison of the double-precision elements in the
-///    first source vector and the corresponding elements in the second source
-///    vector.
-///
-///    The EFLAGS register is updated as follows: \n
-///    If there is at least one pair of double-precision elements where the
-///    sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the
-///    ZF flag is set to 1. \n
-///    If there is at least one pair of double-precision elements where the
-///    sign-bit of the first element is 0 and the sign-bit of the second element
-///    is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n
-///    This intrinsic returns the value of the CF flag.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VTESTPD </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double].
-/// \param __b
-///    A 256-bit vector of [4 x double].
-/// \returns the CF flag.
-static __inline int __DEFAULT_FN_ATTRS
-_mm256_testc_pd(__m256d __a, __m256d __b)
-{
-  return __builtin_ia32_vtestcpd256((__v4df)__a, (__v4df)__b);
-}
-
-/// Given two 256-bit floating-point vectors of [4 x double], perform an
-///    element-by-element comparison of the double-precision elements in the
-///    first source vector and the corresponding elements in the second source
-///    vector.
-///
-///    The EFLAGS register is updated as follows: \n
-///    If there is at least one pair of double-precision elements where the
-///    sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the
-///    ZF flag is set to 1. \n
-///    If there is at least one pair of double-precision elements where the
-///    sign-bit of the first element is 0 and the sign-bit of the second element
-///    is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n
-///    This intrinsic returns 1 if both the ZF and CF flags are set to 0,
-///    otherwise it returns 0.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VTESTPD </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double].
-/// \param __b
-///    A 256-bit vector of [4 x double].
-/// \returns 1 if both the ZF and CF flags are set to 0, otherwise returns 0.
-static __inline int __DEFAULT_FN_ATTRS
-_mm256_testnzc_pd(__m256d __a, __m256d __b)
-{
-  return __builtin_ia32_vtestnzcpd256((__v4df)__a, (__v4df)__b);
-}
-
-/// Given two 256-bit floating-point vectors of [8 x float], perform an
-///    element-by-element comparison of the single-precision element in the
-///    first source vector and the corresponding element in the second source
-///    vector.
-///
-///    The EFLAGS register is updated as follows: \n
-///    If there is at least one pair of single-precision elements where the
-///    sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the
-///    ZF flag is set to 1. \n
-///    If there is at least one pair of single-precision elements where the
-///    sign-bit of the first element is 0 and the sign-bit of the second element
-///    is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n
-///    This intrinsic returns the value of the ZF flag.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VTESTPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float].
-/// \param __b
-///    A 256-bit vector of [8 x float].
-/// \returns the ZF flag.
-static __inline int __DEFAULT_FN_ATTRS
-_mm256_testz_ps(__m256 __a, __m256 __b)
-{
-  return __builtin_ia32_vtestzps256((__v8sf)__a, (__v8sf)__b);
-}
-
-/// Given two 256-bit floating-point vectors of [8 x float], perform an
-///    element-by-element comparison of the single-precision element in the
-///    first source vector and the corresponding element in the second source
-///    vector.
-///
-///    The EFLAGS register is updated as follows: \n
-///    If there is at least one pair of single-precision elements where the
-///    sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the
-///    ZF flag is set to 1. \n
-///    If there is at least one pair of single-precision elements where the
-///    sign-bit of the first element is 0 and the sign-bit of the second element
-///    is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n
-///    This intrinsic returns the value of the CF flag.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VTESTPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float].
-/// \param __b
-///    A 256-bit vector of [8 x float].
-/// \returns the CF flag.
-static __inline int __DEFAULT_FN_ATTRS
-_mm256_testc_ps(__m256 __a, __m256 __b)
-{
-  return __builtin_ia32_vtestcps256((__v8sf)__a, (__v8sf)__b);
-}
-
-/// Given two 256-bit floating-point vectors of [8 x float], perform an
-///    element-by-element comparison of the single-precision elements in the
-///    first source vector and the corresponding elements in the second source
-///    vector.
-///
-///    The EFLAGS register is updated as follows: \n
-///    If there is at least one pair of single-precision elements where the
-///    sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the
-///    ZF flag is set to 1. \n
-///    If there is at least one pair of single-precision elements where the
-///    sign-bit of the first element is 0 and the sign-bit of the second element
-///    is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n
-///    This intrinsic returns 1 if both the ZF and CF flags are set to 0,
-///    otherwise it returns 0.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VTESTPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float].
-/// \param __b
-///    A 256-bit vector of [8 x float].
-/// \returns 1 if both the ZF and CF flags are set to 0, otherwise returns 0.
-static __inline int __DEFAULT_FN_ATTRS
-_mm256_testnzc_ps(__m256 __a, __m256 __b)
-{
-  return __builtin_ia32_vtestnzcps256((__v8sf)__a, (__v8sf)__b);
-}
-
-/// Given two 256-bit integer vectors, perform a bit-by-bit comparison
-///    of the two source vectors.
-///
-///    The EFLAGS register is updated as follows: \n
-///    If there is at least one pair of bits where both bits are 1, the ZF flag
-///    is set to 0. Otherwise the ZF flag is set to 1. \n
-///    If there is at least one pair of bits where the bit from the first source
-///    vector is 0 and the bit from the second source vector is 1, the CF flag
-///    is set to 0. Otherwise the CF flag is set to 1. \n
-///    This intrinsic returns the value of the ZF flag.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPTEST </c> instruction.
-///
-/// \param __a
-///    A 256-bit integer vector.
-/// \param __b
-///    A 256-bit integer vector.
-/// \returns the ZF flag.
-static __inline int __DEFAULT_FN_ATTRS
-_mm256_testz_si256(__m256i __a, __m256i __b)
-{
-  return __builtin_ia32_ptestz256((__v4di)__a, (__v4di)__b);
-}
-
-/// Given two 256-bit integer vectors, perform a bit-by-bit comparison
-///    of the two source vectors.
-///
-///    The EFLAGS register is updated as follows: \n
-///    If there is at least one pair of bits where both bits are 1, the ZF flag
-///    is set to 0. Otherwise the ZF flag is set to 1. \n
-///    If there is at least one pair of bits where the bit from the first source
-///    vector is 0 and the bit from the second source vector is 1, the CF flag
-///    is set to 0. Otherwise the CF flag is set to 1. \n
-///    This intrinsic returns the value of the CF flag.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPTEST </c> instruction.
-///
-/// \param __a
-///    A 256-bit integer vector.
-/// \param __b
-///    A 256-bit integer vector.
-/// \returns the CF flag.
-static __inline int __DEFAULT_FN_ATTRS
-_mm256_testc_si256(__m256i __a, __m256i __b)
-{
-  return __builtin_ia32_ptestc256((__v4di)__a, (__v4di)__b);
-}
-
-/// Given two 256-bit integer vectors, perform a bit-by-bit comparison
-///    of the two source vectors.
-///
-///    The EFLAGS register is updated as follows: \n
-///    If there is at least one pair of bits where both bits are 1, the ZF flag
-///    is set to 0. Otherwise the ZF flag is set to 1. \n
-///    If there is at least one pair of bits where the bit from the first source
-///    vector is 0 and the bit from the second source vector is 1, the CF flag
-///    is set to 0. Otherwise the CF flag is set to 1. \n
-///    This intrinsic returns 1 if both the ZF and CF flags are set to 0,
-///    otherwise it returns 0.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPTEST </c> instruction.
-///
-/// \param __a
-///    A 256-bit integer vector.
-/// \param __b
-///    A 256-bit integer vector.
-/// \returns 1 if both the ZF and CF flags are set to 0, otherwise returns 0.
-static __inline int __DEFAULT_FN_ATTRS
-_mm256_testnzc_si256(__m256i __a, __m256i __b)
-{
-  return __builtin_ia32_ptestnzc256((__v4di)__a, (__v4di)__b);
-}
-
-/* Vector extract sign mask */
-/// Extracts the sign bits of double-precision floating point elements
-///    in a 256-bit vector of [4 x double] and writes them to the lower order
-///    bits of the return value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVMSKPD </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [4 x double] containing the double-precision
-///    floating point values with sign bits to be extracted.
-/// \returns The sign bits from the operand, written to bits [3:0].
-static __inline int __DEFAULT_FN_ATTRS
-_mm256_movemask_pd(__m256d __a)
-{
-  return __builtin_ia32_movmskpd256((__v4df)__a);
-}
-
-/// Extracts the sign bits of single-precision floating point elements
-///    in a 256-bit vector of [8 x float] and writes them to the lower order
-///    bits of the return value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVMSKPS </c> instruction.
-///
-/// \param __a
-///    A 256-bit vector of [8 x float] containing the single-precision floating
-///    point values with sign bits to be extracted.
-/// \returns The sign bits from the operand, written to bits [7:0].
-static __inline int __DEFAULT_FN_ATTRS
-_mm256_movemask_ps(__m256 __a)
-{
-  return __builtin_ia32_movmskps256((__v8sf)__a);
-}
-
-/* Vector __zero */
-/// Zeroes the contents of all XMM or YMM registers.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VZEROALL </c> instruction.
-static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx")))
-_mm256_zeroall(void)
-{
-  __builtin_ia32_vzeroall();
-}
-
-/// Zeroes the upper 128 bits (bits 255:128) of all YMM registers.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VZEROUPPER </c> instruction.
-static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx")))
-_mm256_zeroupper(void)
-{
-  __builtin_ia32_vzeroupper();
-}
-
-/* Vector load with broadcast */
-/// Loads a scalar single-precision floating point value from the
-///    specified address pointed to by \a __a and broadcasts it to the elements
-///    of a [4 x float] vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VBROADCASTSS </c> instruction.
-///
-/// \param __a
-///    The single-precision floating point value to be broadcast.
-/// \returns A 128-bit vector of [4 x float] whose 32-bit elements are set
-///    equal to the broadcast value.
-static __inline __m128 __DEFAULT_FN_ATTRS128
-_mm_broadcast_ss(float const *__a)
-{
-  float __f = *__a;
-  return __extension__ (__m128)(__v4sf){ __f, __f, __f, __f };
-}
-
-/// Loads a scalar double-precision floating point value from the
-///    specified address pointed to by \a __a and broadcasts it to the elements
-///    of a [4 x double] vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VBROADCASTSD </c> instruction.
-///
-/// \param __a
-///    The double-precision floating point value to be broadcast.
-/// \returns A 256-bit vector of [4 x double] whose 64-bit elements are set
-///    equal to the broadcast value.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_broadcast_sd(double const *__a)
-{
-  double __d = *__a;
-  return __extension__ (__m256d)(__v4df){ __d, __d, __d, __d };
-}
-
-/// Loads a scalar single-precision floating point value from the
-///    specified address pointed to by \a __a and broadcasts it to the elements
-///    of a [8 x float] vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VBROADCASTSS </c> instruction.
-///
-/// \param __a
-///    The single-precision floating point value to be broadcast.
-/// \returns A 256-bit vector of [8 x float] whose 32-bit elements are set
-///    equal to the broadcast value.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_broadcast_ss(float const *__a)
-{
-  float __f = *__a;
-  return __extension__ (__m256)(__v8sf){ __f, __f, __f, __f, __f, __f, __f, __f };
-}
-
-/// Loads the data from a 128-bit vector of [2 x double] from the
-///    specified address pointed to by \a __a and broadcasts it to 128-bit
-///    elements in a 256-bit vector of [4 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VBROADCASTF128 </c> instruction.
-///
-/// \param __a
-///    The 128-bit vector of [2 x double] to be broadcast.
-/// \returns A 256-bit vector of [4 x double] whose 128-bit elements are set
-///    equal to the broadcast value.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_broadcast_pd(__m128d const *__a)
-{
-  __m128d __b = _mm_loadu_pd((const double *)__a);
-  return (__m256d)__builtin_shufflevector((__v2df)__b, (__v2df)__b,
-                                          0, 1, 0, 1);
-}
-
-/// Loads the data from a 128-bit vector of [4 x float] from the
-///    specified address pointed to by \a __a and broadcasts it to 128-bit
-///    elements in a 256-bit vector of [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VBROADCASTF128 </c> instruction.
-///
-/// \param __a
-///    The 128-bit vector of [4 x float] to be broadcast.
-/// \returns A 256-bit vector of [8 x float] whose 128-bit elements are set
-///    equal to the broadcast value.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_broadcast_ps(__m128 const *__a)
-{
-  __m128 __b = _mm_loadu_ps((const float *)__a);
-  return (__m256)__builtin_shufflevector((__v4sf)__b, (__v4sf)__b,
-                                         0, 1, 2, 3, 0, 1, 2, 3);
-}
-
-/* SIMD load ops */
-/// Loads 4 double-precision floating point values from a 32-byte aligned
-///    memory location pointed to by \a __p into a vector of [4 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVAPD </c> instruction.
-///
-/// \param __p
-///    A 32-byte aligned pointer to a memory location containing
-///    double-precision floating point values.
-/// \returns A 256-bit vector of [4 x double] containing the moved values.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_load_pd(double const *__p)
-{
-  return *(const __m256d *)__p;
-}
-
-/// Loads 8 single-precision floating point values from a 32-byte aligned
-///    memory location pointed to by \a __p into a vector of [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVAPS </c> instruction.
-///
-/// \param __p
-///    A 32-byte aligned pointer to a memory location containing float values.
-/// \returns A 256-bit vector of [8 x float] containing the moved values.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_load_ps(float const *__p)
-{
-  return *(const __m256 *)__p;
-}
-
-/// Loads 4 double-precision floating point values from an unaligned
-///    memory location pointed to by \a __p into a vector of [4 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVUPD </c> instruction.
-///
-/// \param __p
-///    A pointer to a memory location containing double-precision floating
-///    point values.
-/// \returns A 256-bit vector of [4 x double] containing the moved values.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_loadu_pd(double const *__p)
-{
-  struct __loadu_pd {
-    __m256d_u __v;
-  } __attribute__((__packed__, __may_alias__));
-  return ((const struct __loadu_pd*)__p)->__v;
-}
-
-/// Loads 8 single-precision floating point values from an unaligned
-///    memory location pointed to by \a __p into a vector of [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVUPS </c> instruction.
-///
-/// \param __p
-///    A pointer to a memory location containing single-precision floating
-///    point values.
-/// \returns A 256-bit vector of [8 x float] containing the moved values.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_loadu_ps(float const *__p)
-{
-  struct __loadu_ps {
-    __m256_u __v;
-  } __attribute__((__packed__, __may_alias__));
-  return ((const struct __loadu_ps*)__p)->__v;
-}
-
-/// Loads 256 bits of integer data from a 32-byte aligned memory
-///    location pointed to by \a __p into elements of a 256-bit integer vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVDQA </c> instruction.
-///
-/// \param __p
-///    A 32-byte aligned pointer to a 256-bit integer vector containing integer
-///    values.
-/// \returns A 256-bit integer vector containing the moved values.
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_load_si256(__m256i const *__p)
-{
-  return *__p;
-}
-
-/// Loads 256 bits of integer data from an unaligned memory location
-///    pointed to by \a __p into a 256-bit integer vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVDQU </c> instruction.
-///
-/// \param __p
-///    A pointer to a 256-bit integer vector containing integer values.
-/// \returns A 256-bit integer vector containing the moved values.
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_loadu_si256(__m256i_u const *__p)
-{
-  struct __loadu_si256 {
-    __m256i_u __v;
-  } __attribute__((__packed__, __may_alias__));
-  return ((const struct __loadu_si256*)__p)->__v;
-}
-
-/// Loads 256 bits of integer data from an unaligned memory location
-///    pointed to by \a __p into a 256-bit integer vector. This intrinsic may
-///    perform better than \c _mm256_loadu_si256 when the data crosses a cache
-///    line boundary.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VLDDQU </c> instruction.
-///
-/// \param __p
-///    A pointer to a 256-bit integer vector containing integer values.
-/// \returns A 256-bit integer vector containing the moved values.
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_lddqu_si256(__m256i const *__p)
-{
-  return (__m256i)__builtin_ia32_lddqu256((char const *)__p);
-}
-
-/* SIMD store ops */
-/// Stores double-precision floating point values from a 256-bit vector
-///    of [4 x double] to a 32-byte aligned memory location pointed to by
-///    \a __p.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVAPD </c> instruction.
-///
-/// \param __p
-///    A 32-byte aligned pointer to a memory location that will receive the
-///    double-precision floaing point values.
-/// \param __a
-///    A 256-bit vector of [4 x double] containing the values to be moved.
-static __inline void __DEFAULT_FN_ATTRS
-_mm256_store_pd(double *__p, __m256d __a)
-{
-  *(__m256d *)__p = __a;
-}
-
-/// Stores single-precision floating point values from a 256-bit vector
-///    of [8 x float] to a 32-byte aligned memory location pointed to by \a __p.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVAPS </c> instruction.
-///
-/// \param __p
-///    A 32-byte aligned pointer to a memory location that will receive the
-///    float values.
-/// \param __a
-///    A 256-bit vector of [8 x float] containing the values to be moved.
-static __inline void __DEFAULT_FN_ATTRS
-_mm256_store_ps(float *__p, __m256 __a)
-{
-  *(__m256 *)__p = __a;
-}
-
-/// Stores double-precision floating point values from a 256-bit vector
-///    of [4 x double] to an unaligned memory location pointed to by \a __p.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVUPD </c> instruction.
-///
-/// \param __p
-///    A pointer to a memory location that will receive the double-precision
-///    floating point values.
-/// \param __a
-///    A 256-bit vector of [4 x double] containing the values to be moved.
-static __inline void __DEFAULT_FN_ATTRS
-_mm256_storeu_pd(double *__p, __m256d __a)
-{
-  struct __storeu_pd {
-    __m256d_u __v;
-  } __attribute__((__packed__, __may_alias__));
-  ((struct __storeu_pd*)__p)->__v = __a;
-}
-
-/// Stores single-precision floating point values from a 256-bit vector
-///    of [8 x float] to an unaligned memory location pointed to by \a __p.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVUPS </c> instruction.
-///
-/// \param __p
-///    A pointer to a memory location that will receive the float values.
-/// \param __a
-///    A 256-bit vector of [8 x float] containing the values to be moved.
-static __inline void __DEFAULT_FN_ATTRS
-_mm256_storeu_ps(float *__p, __m256 __a)
-{
-  struct __storeu_ps {
-    __m256_u __v;
-  } __attribute__((__packed__, __may_alias__));
-  ((struct __storeu_ps*)__p)->__v = __a;
-}
-
-/// Stores integer values from a 256-bit integer vector to a 32-byte
-///    aligned memory location pointed to by \a __p.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVDQA </c> instruction.
-///
-/// \param __p
-///    A 32-byte aligned pointer to a memory location that will receive the
-///    integer values.
-/// \param __a
-///    A 256-bit integer vector containing the values to be moved.
-static __inline void __DEFAULT_FN_ATTRS
-_mm256_store_si256(__m256i *__p, __m256i __a)
-{
-  *__p = __a;
-}
-
-/// Stores integer values from a 256-bit integer vector to an unaligned
-///    memory location pointed to by \a __p.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVDQU </c> instruction.
-///
-/// \param __p
-///    A pointer to a memory location that will receive the integer values.
-/// \param __a
-///    A 256-bit integer vector containing the values to be moved.
-static __inline void __DEFAULT_FN_ATTRS
-_mm256_storeu_si256(__m256i_u *__p, __m256i __a)
-{
-  struct __storeu_si256 {
-    __m256i_u __v;
-  } __attribute__((__packed__, __may_alias__));
-  ((struct __storeu_si256*)__p)->__v = __a;
-}
-
-/* Conditional load ops */
-/// Conditionally loads double-precision floating point elements from a
-///    memory location pointed to by \a __p into a 128-bit vector of
-///    [2 x double], depending on the mask bits associated with each data
-///    element.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMASKMOVPD </c> instruction.
-///
-/// \param __p
-///    A pointer to a memory location that contains the double-precision
-///    floating point values.
-/// \param __m
-///    A 128-bit integer vector containing the mask. The most significant bit of
-///    each data element represents the mask bits. If a mask bit is zero, the
-///    corresponding value in the memory location is not loaded and the
-///    corresponding field in the return value is set to zero.
-/// \returns A 128-bit vector of [2 x double] containing the loaded values.
-static __inline __m128d __DEFAULT_FN_ATTRS128
-_mm_maskload_pd(double const *__p, __m128i __m)
-{
-  return (__m128d)__builtin_ia32_maskloadpd((const __v2df *)__p, (__v2di)__m);
-}
-
-/// Conditionally loads double-precision floating point elements from a
-///    memory location pointed to by \a __p into a 256-bit vector of
-///    [4 x double], depending on the mask bits associated with each data
-///    element.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMASKMOVPD </c> instruction.
-///
-/// \param __p
-///    A pointer to a memory location that contains the double-precision
-///    floating point values.
-/// \param __m
-///    A 256-bit integer vector of [4 x quadword] containing the mask. The most
-///    significant bit of each quadword element represents the mask bits. If a
-///    mask bit is zero, the corresponding value in the memory location is not
-///    loaded and the corresponding field in the return value is set to zero.
-/// \returns A 256-bit vector of [4 x double] containing the loaded values.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_maskload_pd(double const *__p, __m256i __m)
-{
-  return (__m256d)__builtin_ia32_maskloadpd256((const __v4df *)__p,
-                                               (__v4di)__m);
-}
-
-/// Conditionally loads single-precision floating point elements from a
-///    memory location pointed to by \a __p into a 128-bit vector of
-///    [4 x float], depending on the mask bits associated with each data
-///    element.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMASKMOVPS </c> instruction.
-///
-/// \param __p
-///    A pointer to a memory location that contains the single-precision
-///    floating point values.
-/// \param __m
-///    A 128-bit integer vector containing the mask. The most significant bit of
-///    each data element represents the mask bits. If a mask bit is zero, the
-///    corresponding value in the memory location is not loaded and the
-///    corresponding field in the return value is set to zero.
-/// \returns A 128-bit vector of [4 x float] containing the loaded values.
-static __inline __m128 __DEFAULT_FN_ATTRS128
-_mm_maskload_ps(float const *__p, __m128i __m)
-{
-  return (__m128)__builtin_ia32_maskloadps((const __v4sf *)__p, (__v4si)__m);
-}
-
-/// Conditionally loads single-precision floating point elements from a
-///    memory location pointed to by \a __p into a 256-bit vector of
-///    [8 x float], depending on the mask bits associated with each data
-///    element.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMASKMOVPS </c> instruction.
-///
-/// \param __p
-///    A pointer to a memory location that contains the single-precision
-///    floating point values.
-/// \param __m
-///    A 256-bit integer vector of [8 x dword] containing the mask. The most
-///    significant bit of each dword element represents the mask bits. If a mask
-///    bit is zero, the corresponding value in the memory location is not loaded
-///    and the corresponding field in the return value is set to zero.
-/// \returns A 256-bit vector of [8 x float] containing the loaded values.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_maskload_ps(float const *__p, __m256i __m)
-{
-  return (__m256)__builtin_ia32_maskloadps256((const __v8sf *)__p, (__v8si)__m);
-}
-
-/* Conditional store ops */
-/// Moves single-precision floating point values from a 256-bit vector
-///    of [8 x float] to a memory location pointed to by \a __p, according to
-///    the specified mask.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMASKMOVPS </c> instruction.
-///
-/// \param __p
-///    A pointer to a memory location that will receive the float values.
-/// \param __m
-///    A 256-bit integer vector of [8 x dword] containing the mask. The most
-///    significant bit of each dword element in the mask vector represents the
-///    mask bits. If a mask bit is zero, the corresponding value from vector
-///    \a __a is not stored and the corresponding field in the memory location
-///    pointed to by \a __p is not changed.
-/// \param __a
-///    A 256-bit vector of [8 x float] containing the values to be stored.
-static __inline void __DEFAULT_FN_ATTRS
-_mm256_maskstore_ps(float *__p, __m256i __m, __m256 __a)
-{
-  __builtin_ia32_maskstoreps256((__v8sf *)__p, (__v8si)__m, (__v8sf)__a);
-}
-
-/// Moves double-precision values from a 128-bit vector of [2 x double]
-///    to a memory location pointed to by \a __p, according to the specified
-///    mask.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMASKMOVPD </c> instruction.
-///
-/// \param __p
-///    A pointer to a memory location that will receive the float values.
-/// \param __m
-///    A 128-bit integer vector containing the mask. The most significant bit of
-///    each field in the mask vector represents the mask bits. If a mask bit is
-///    zero, the corresponding value from vector \a __a is not stored and the
-///    corresponding field in the memory location pointed to by \a __p is not
-///    changed.
-/// \param __a
-///    A 128-bit vector of [2 x double] containing the values to be stored.
-static __inline void __DEFAULT_FN_ATTRS128
-_mm_maskstore_pd(double *__p, __m128i __m, __m128d __a)
-{
-  __builtin_ia32_maskstorepd((__v2df *)__p, (__v2di)__m, (__v2df)__a);
-}
-
-/// Moves double-precision values from a 256-bit vector of [4 x double]
-///    to a memory location pointed to by \a __p, according to the specified
-///    mask.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMASKMOVPD </c> instruction.
-///
-/// \param __p
-///    A pointer to a memory location that will receive the float values.
-/// \param __m
-///    A 256-bit integer vector of [4 x quadword] containing the mask. The most
-///    significant bit of each quadword element in the mask vector represents
-///    the mask bits. If a mask bit is zero, the corresponding value from vector
-///    __a is not stored and the corresponding field in the memory location
-///    pointed to by \a __p is not changed.
-/// \param __a
-///    A 256-bit vector of [4 x double] containing the values to be stored.
-static __inline void __DEFAULT_FN_ATTRS
-_mm256_maskstore_pd(double *__p, __m256i __m, __m256d __a)
-{
-  __builtin_ia32_maskstorepd256((__v4df *)__p, (__v4di)__m, (__v4df)__a);
-}
-
-/// Moves single-precision floating point values from a 128-bit vector
-///    of [4 x float] to a memory location pointed to by \a __p, according to
-///    the specified mask.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMASKMOVPS </c> instruction.
-///
-/// \param __p
-///    A pointer to a memory location that will receive the float values.
-/// \param __m
-///    A 128-bit integer vector containing the mask. The most significant bit of
-///    each field in the mask vector represents the mask bits. If a mask bit is
-///    zero, the corresponding value from vector __a is not stored and the
-///    corresponding field in the memory location pointed to by \a __p is not
-///    changed.
-/// \param __a
-///    A 128-bit vector of [4 x float] containing the values to be stored.
-static __inline void __DEFAULT_FN_ATTRS128
-_mm_maskstore_ps(float *__p, __m128i __m, __m128 __a)
-{
-  __builtin_ia32_maskstoreps((__v4sf *)__p, (__v4si)__m, (__v4sf)__a);
-}
-
-/* Cacheability support ops */
-/// Moves integer data from a 256-bit integer vector to a 32-byte
-///    aligned memory location. To minimize caching, the data is flagged as
-///    non-temporal (unlikely to be used again soon).
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVNTDQ </c> instruction.
-///
-/// \param __a
-///    A pointer to a 32-byte aligned memory location that will receive the
-///    integer values.
-/// \param __b
-///    A 256-bit integer vector containing the values to be moved.
-static __inline void __DEFAULT_FN_ATTRS
-_mm256_stream_si256(__m256i *__a, __m256i __b)
-{
-  typedef __v4di __v4di_aligned __attribute__((aligned(32)));
-  __builtin_nontemporal_store((__v4di_aligned)__b, (__v4di_aligned*)__a);
-}
-
-/// Moves double-precision values from a 256-bit vector of [4 x double]
-///    to a 32-byte aligned memory location. To minimize caching, the data is
-///    flagged as non-temporal (unlikely to be used again soon).
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVNTPD </c> instruction.
-///
-/// \param __a
-///    A pointer to a 32-byte aligned memory location that will receive the
-///    double-precision floating-point values.
-/// \param __b
-///    A 256-bit vector of [4 x double] containing the values to be moved.
-static __inline void __DEFAULT_FN_ATTRS
-_mm256_stream_pd(double *__a, __m256d __b)
-{
-  typedef __v4df __v4df_aligned __attribute__((aligned(32)));
-  __builtin_nontemporal_store((__v4df_aligned)__b, (__v4df_aligned*)__a);
-}
-
-/// Moves single-precision floating point values from a 256-bit vector
-///    of [8 x float] to a 32-byte aligned memory location. To minimize
-///    caching, the data is flagged as non-temporal (unlikely to be used again
-///    soon).
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVNTPS </c> instruction.
-///
-/// \param __p
-///    A pointer to a 32-byte aligned memory location that will receive the
-///    single-precision floating point values.
-/// \param __a
-///    A 256-bit vector of [8 x float] containing the values to be moved.
-static __inline void __DEFAULT_FN_ATTRS
-_mm256_stream_ps(float *__p, __m256 __a)
-{
-  typedef __v8sf __v8sf_aligned __attribute__((aligned(32)));
-  __builtin_nontemporal_store((__v8sf_aligned)__a, (__v8sf_aligned*)__p);
-}
-
-/* Create vectors */
-/// Create a 256-bit vector of [4 x double] with undefined values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \returns A 256-bit vector of [4 x double] containing undefined values.
-static __inline__ __m256d __DEFAULT_FN_ATTRS
-_mm256_undefined_pd(void)
-{
-  return (__m256d)__builtin_ia32_undef256();
-}
-
-/// Create a 256-bit vector of [8 x float] with undefined values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \returns A 256-bit vector of [8 x float] containing undefined values.
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_undefined_ps(void)
-{
-  return (__m256)__builtin_ia32_undef256();
-}
-
-/// Create a 256-bit integer vector with undefined values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \returns A 256-bit integer vector containing undefined values.
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_undefined_si256(void)
-{
-  return (__m256i)__builtin_ia32_undef256();
-}
-
-/// Constructs a 256-bit floating-point vector of [4 x double]
-///    initialized with the specified double-precision floating-point values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUNPCKLPD+VINSERTF128 </c>
-///   instruction.
-///
-/// \param __a
-///    A double-precision floating-point value used to initialize bits [255:192]
-///    of the result.
-/// \param __b
-///    A double-precision floating-point value used to initialize bits [191:128]
-///    of the result.
-/// \param __c
-///    A double-precision floating-point value used to initialize bits [127:64]
-///    of the result.
-/// \param __d
-///    A double-precision floating-point value used to initialize bits [63:0]
-///    of the result.
-/// \returns An initialized 256-bit floating-point vector of [4 x double].
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_set_pd(double __a, double __b, double __c, double __d)
-{
-  return __extension__ (__m256d){ __d, __c, __b, __a };
-}
-
-/// Constructs a 256-bit floating-point vector of [8 x float] initialized
-///    with the specified single-precision floating-point values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///   instruction.
-///
-/// \param __a
-///    A single-precision floating-point value used to initialize bits [255:224]
-///    of the result.
-/// \param __b
-///    A single-precision floating-point value used to initialize bits [223:192]
-///    of the result.
-/// \param __c
-///    A single-precision floating-point value used to initialize bits [191:160]
-///    of the result.
-/// \param __d
-///    A single-precision floating-point value used to initialize bits [159:128]
-///    of the result.
-/// \param __e
-///    A single-precision floating-point value used to initialize bits [127:96]
-///    of the result.
-/// \param __f
-///    A single-precision floating-point value used to initialize bits [95:64]
-///    of the result.
-/// \param __g
-///    A single-precision floating-point value used to initialize bits [63:32]
-///    of the result.
-/// \param __h
-///    A single-precision floating-point value used to initialize bits [31:0]
-///    of the result.
-/// \returns An initialized 256-bit floating-point vector of [8 x float].
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_set_ps(float __a, float __b, float __c, float __d,
-              float __e, float __f, float __g, float __h)
-{
-  return __extension__ (__m256){ __h, __g, __f, __e, __d, __c, __b, __a };
-}
-
-/// Constructs a 256-bit integer vector initialized with the specified
-///    32-bit integral values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///   instruction.
-///
-/// \param __i0
-///    A 32-bit integral value used to initialize bits [255:224] of the result.
-/// \param __i1
-///    A 32-bit integral value used to initialize bits [223:192] of the result.
-/// \param __i2
-///    A 32-bit integral value used to initialize bits [191:160] of the result.
-/// \param __i3
-///    A 32-bit integral value used to initialize bits [159:128] of the result.
-/// \param __i4
-///    A 32-bit integral value used to initialize bits [127:96] of the result.
-/// \param __i5
-///    A 32-bit integral value used to initialize bits [95:64] of the result.
-/// \param __i6
-///    A 32-bit integral value used to initialize bits [63:32] of the result.
-/// \param __i7
-///    A 32-bit integral value used to initialize bits [31:0] of the result.
-/// \returns An initialized 256-bit integer vector.
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_set_epi32(int __i0, int __i1, int __i2, int __i3,
-                 int __i4, int __i5, int __i6, int __i7)
-{
-  return __extension__ (__m256i)(__v8si){ __i7, __i6, __i5, __i4, __i3, __i2, __i1, __i0 };
-}
-
-/// Constructs a 256-bit integer vector initialized with the specified
-///    16-bit integral values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///   instruction.
-///
-/// \param __w15
-///    A 16-bit integral value used to initialize bits [255:240] of the result.
-/// \param __w14
-///    A 16-bit integral value used to initialize bits [239:224] of the result.
-/// \param __w13
-///    A 16-bit integral value used to initialize bits [223:208] of the result.
-/// \param __w12
-///    A 16-bit integral value used to initialize bits [207:192] of the result.
-/// \param __w11
-///    A 16-bit integral value used to initialize bits [191:176] of the result.
-/// \param __w10
-///    A 16-bit integral value used to initialize bits [175:160] of the result.
-/// \param __w09
-///    A 16-bit integral value used to initialize bits [159:144] of the result.
-/// \param __w08
-///    A 16-bit integral value used to initialize bits [143:128] of the result.
-/// \param __w07
-///    A 16-bit integral value used to initialize bits [127:112] of the result.
-/// \param __w06
-///    A 16-bit integral value used to initialize bits [111:96] of the result.
-/// \param __w05
-///    A 16-bit integral value used to initialize bits [95:80] of the result.
-/// \param __w04
-///    A 16-bit integral value used to initialize bits [79:64] of the result.
-/// \param __w03
-///    A 16-bit integral value used to initialize bits [63:48] of the result.
-/// \param __w02
-///    A 16-bit integral value used to initialize bits [47:32] of the result.
-/// \param __w01
-///    A 16-bit integral value used to initialize bits [31:16] of the result.
-/// \param __w00
-///    A 16-bit integral value used to initialize bits [15:0] of the result.
-/// \returns An initialized 256-bit integer vector.
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_set_epi16(short __w15, short __w14, short __w13, short __w12,
-                 short __w11, short __w10, short __w09, short __w08,
-                 short __w07, short __w06, short __w05, short __w04,
-                 short __w03, short __w02, short __w01, short __w00)
-{
-  return __extension__ (__m256i)(__v16hi){ __w00, __w01, __w02, __w03, __w04, __w05, __w06,
-    __w07, __w08, __w09, __w10, __w11, __w12, __w13, __w14, __w15 };
-}
-
-/// Constructs a 256-bit integer vector initialized with the specified
-///    8-bit integral values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///   instruction.
-///
-/// \param __b31
-///    An 8-bit integral value used to initialize bits [255:248] of the result.
-/// \param __b30
-///    An 8-bit integral value used to initialize bits [247:240] of the result.
-/// \param __b29
-///    An 8-bit integral value used to initialize bits [239:232] of the result.
-/// \param __b28
-///    An 8-bit integral value used to initialize bits [231:224] of the result.
-/// \param __b27
-///    An 8-bit integral value used to initialize bits [223:216] of the result.
-/// \param __b26
-///    An 8-bit integral value used to initialize bits [215:208] of the result.
-/// \param __b25
-///    An 8-bit integral value used to initialize bits [207:200] of the result.
-/// \param __b24
-///    An 8-bit integral value used to initialize bits [199:192] of the result.
-/// \param __b23
-///    An 8-bit integral value used to initialize bits [191:184] of the result.
-/// \param __b22
-///    An 8-bit integral value used to initialize bits [183:176] of the result.
-/// \param __b21
-///    An 8-bit integral value used to initialize bits [175:168] of the result.
-/// \param __b20
-///    An 8-bit integral value used to initialize bits [167:160] of the result.
-/// \param __b19
-///    An 8-bit integral value used to initialize bits [159:152] of the result.
-/// \param __b18
-///    An 8-bit integral value used to initialize bits [151:144] of the result.
-/// \param __b17
-///    An 8-bit integral value used to initialize bits [143:136] of the result.
-/// \param __b16
-///    An 8-bit integral value used to initialize bits [135:128] of the result.
-/// \param __b15
-///    An 8-bit integral value used to initialize bits [127:120] of the result.
-/// \param __b14
-///    An 8-bit integral value used to initialize bits [119:112] of the result.
-/// \param __b13
-///    An 8-bit integral value used to initialize bits [111:104] of the result.
-/// \param __b12
-///    An 8-bit integral value used to initialize bits [103:96] of the result.
-/// \param __b11
-///    An 8-bit integral value used to initialize bits [95:88] of the result.
-/// \param __b10
-///    An 8-bit integral value used to initialize bits [87:80] of the result.
-/// \param __b09
-///    An 8-bit integral value used to initialize bits [79:72] of the result.
-/// \param __b08
-///    An 8-bit integral value used to initialize bits [71:64] of the result.
-/// \param __b07
-///    An 8-bit integral value used to initialize bits [63:56] of the result.
-/// \param __b06
-///    An 8-bit integral value used to initialize bits [55:48] of the result.
-/// \param __b05
-///    An 8-bit integral value used to initialize bits [47:40] of the result.
-/// \param __b04
-///    An 8-bit integral value used to initialize bits [39:32] of the result.
-/// \param __b03
-///    An 8-bit integral value used to initialize bits [31:24] of the result.
-/// \param __b02
-///    An 8-bit integral value used to initialize bits [23:16] of the result.
-/// \param __b01
-///    An 8-bit integral value used to initialize bits [15:8] of the result.
-/// \param __b00
-///    An 8-bit integral value used to initialize bits [7:0] of the result.
-/// \returns An initialized 256-bit integer vector.
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_set_epi8(char __b31, char __b30, char __b29, char __b28,
-                char __b27, char __b26, char __b25, char __b24,
-                char __b23, char __b22, char __b21, char __b20,
-                char __b19, char __b18, char __b17, char __b16,
-                char __b15, char __b14, char __b13, char __b12,
-                char __b11, char __b10, char __b09, char __b08,
-                char __b07, char __b06, char __b05, char __b04,
-                char __b03, char __b02, char __b01, char __b00)
-{
-  return __extension__ (__m256i)(__v32qi){
-    __b00, __b01, __b02, __b03, __b04, __b05, __b06, __b07,
-    __b08, __b09, __b10, __b11, __b12, __b13, __b14, __b15,
-    __b16, __b17, __b18, __b19, __b20, __b21, __b22, __b23,
-    __b24, __b25, __b26, __b27, __b28, __b29, __b30, __b31
-  };
-}
-
-/// Constructs a 256-bit integer vector initialized with the specified
-///    64-bit integral values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPUNPCKLQDQ+VINSERTF128 </c>
-///   instruction.
-///
-/// \param __a
-///    A 64-bit integral value used to initialize bits [255:192] of the result.
-/// \param __b
-///    A 64-bit integral value used to initialize bits [191:128] of the result.
-/// \param __c
-///    A 64-bit integral value used to initialize bits [127:64] of the result.
-/// \param __d
-///    A 64-bit integral value used to initialize bits [63:0] of the result.
-/// \returns An initialized 256-bit integer vector.
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_set_epi64x(long long __a, long long __b, long long __c, long long __d)
-{
-  return __extension__ (__m256i)(__v4di){ __d, __c, __b, __a };
-}
-
-/* Create vectors with elements in reverse order */
-/// Constructs a 256-bit floating-point vector of [4 x double],
-///    initialized in reverse order with the specified double-precision
-///    floating-point values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUNPCKLPD+VINSERTF128 </c>
-///   instruction.
-///
-/// \param __a
-///    A double-precision floating-point value used to initialize bits [63:0]
-///    of the result.
-/// \param __b
-///    A double-precision floating-point value used to initialize bits [127:64]
-///    of the result.
-/// \param __c
-///    A double-precision floating-point value used to initialize bits [191:128]
-///    of the result.
-/// \param __d
-///    A double-precision floating-point value used to initialize bits [255:192]
-///    of the result.
-/// \returns An initialized 256-bit floating-point vector of [4 x double].
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_setr_pd(double __a, double __b, double __c, double __d)
-{
-  return _mm256_set_pd(__d, __c, __b, __a);
-}
-
-/// Constructs a 256-bit floating-point vector of [8 x float],
-///    initialized in reverse order with the specified single-precision
-///    float-point values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///   instruction.
-///
-/// \param __a
-///    A single-precision floating-point value used to initialize bits [31:0]
-///    of the result.
-/// \param __b
-///    A single-precision floating-point value used to initialize bits [63:32]
-///    of the result.
-/// \param __c
-///    A single-precision floating-point value used to initialize bits [95:64]
-///    of the result.
-/// \param __d
-///    A single-precision floating-point value used to initialize bits [127:96]
-///    of the result.
-/// \param __e
-///    A single-precision floating-point value used to initialize bits [159:128]
-///    of the result.
-/// \param __f
-///    A single-precision floating-point value used to initialize bits [191:160]
-///    of the result.
-/// \param __g
-///    A single-precision floating-point value used to initialize bits [223:192]
-///    of the result.
-/// \param __h
-///    A single-precision floating-point value used to initialize bits [255:224]
-///    of the result.
-/// \returns An initialized 256-bit floating-point vector of [8 x float].
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_setr_ps(float __a, float __b, float __c, float __d,
-               float __e, float __f, float __g, float __h)
-{
-  return _mm256_set_ps(__h, __g, __f, __e, __d, __c, __b, __a);
-}
-
-/// Constructs a 256-bit integer vector, initialized in reverse order
-///    with the specified 32-bit integral values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///   instruction.
-///
-/// \param __i0
-///    A 32-bit integral value used to initialize bits [31:0] of the result.
-/// \param __i1
-///    A 32-bit integral value used to initialize bits [63:32] of the result.
-/// \param __i2
-///    A 32-bit integral value used to initialize bits [95:64] of the result.
-/// \param __i3
-///    A 32-bit integral value used to initialize bits [127:96] of the result.
-/// \param __i4
-///    A 32-bit integral value used to initialize bits [159:128] of the result.
-/// \param __i5
-///    A 32-bit integral value used to initialize bits [191:160] of the result.
-/// \param __i6
-///    A 32-bit integral value used to initialize bits [223:192] of the result.
-/// \param __i7
-///    A 32-bit integral value used to initialize bits [255:224] of the result.
-/// \returns An initialized 256-bit integer vector.
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_setr_epi32(int __i0, int __i1, int __i2, int __i3,
-                  int __i4, int __i5, int __i6, int __i7)
-{
-  return _mm256_set_epi32(__i7, __i6, __i5, __i4, __i3, __i2, __i1, __i0);
-}
-
-/// Constructs a 256-bit integer vector, initialized in reverse order
-///    with the specified 16-bit integral values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///   instruction.
-///
-/// \param __w15
-///    A 16-bit integral value used to initialize bits [15:0] of the result.
-/// \param __w14
-///    A 16-bit integral value used to initialize bits [31:16] of the result.
-/// \param __w13
-///    A 16-bit integral value used to initialize bits [47:32] of the result.
-/// \param __w12
-///    A 16-bit integral value used to initialize bits [63:48] of the result.
-/// \param __w11
-///    A 16-bit integral value used to initialize bits [79:64] of the result.
-/// \param __w10
-///    A 16-bit integral value used to initialize bits [95:80] of the result.
-/// \param __w09
-///    A 16-bit integral value used to initialize bits [111:96] of the result.
-/// \param __w08
-///    A 16-bit integral value used to initialize bits [127:112] of the result.
-/// \param __w07
-///    A 16-bit integral value used to initialize bits [143:128] of the result.
-/// \param __w06
-///    A 16-bit integral value used to initialize bits [159:144] of the result.
-/// \param __w05
-///    A 16-bit integral value used to initialize bits [175:160] of the result.
-/// \param __w04
-///    A 16-bit integral value used to initialize bits [191:176] of the result.
-/// \param __w03
-///    A 16-bit integral value used to initialize bits [207:192] of the result.
-/// \param __w02
-///    A 16-bit integral value used to initialize bits [223:208] of the result.
-/// \param __w01
-///    A 16-bit integral value used to initialize bits [239:224] of the result.
-/// \param __w00
-///    A 16-bit integral value used to initialize bits [255:240] of the result.
-/// \returns An initialized 256-bit integer vector.
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_setr_epi16(short __w15, short __w14, short __w13, short __w12,
-       short __w11, short __w10, short __w09, short __w08,
-       short __w07, short __w06, short __w05, short __w04,
-       short __w03, short __w02, short __w01, short __w00)
-{
-  return _mm256_set_epi16(__w00, __w01, __w02, __w03,
-                          __w04, __w05, __w06, __w07,
-                          __w08, __w09, __w10, __w11,
-                          __w12, __w13, __w14, __w15);
-}
-
-/// Constructs a 256-bit integer vector, initialized in reverse order
-///    with the specified 8-bit integral values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///   instruction.
-///
-/// \param __b31
-///    An 8-bit integral value used to initialize bits [7:0] of the result.
-/// \param __b30
-///    An 8-bit integral value used to initialize bits [15:8] of the result.
-/// \param __b29
-///    An 8-bit integral value used to initialize bits [23:16] of the result.
-/// \param __b28
-///    An 8-bit integral value used to initialize bits [31:24] of the result.
-/// \param __b27
-///    An 8-bit integral value used to initialize bits [39:32] of the result.
-/// \param __b26
-///    An 8-bit integral value used to initialize bits [47:40] of the result.
-/// \param __b25
-///    An 8-bit integral value used to initialize bits [55:48] of the result.
-/// \param __b24
-///    An 8-bit integral value used to initialize bits [63:56] of the result.
-/// \param __b23
-///    An 8-bit integral value used to initialize bits [71:64] of the result.
-/// \param __b22
-///    An 8-bit integral value used to initialize bits [79:72] of the result.
-/// \param __b21
-///    An 8-bit integral value used to initialize bits [87:80] of the result.
-/// \param __b20
-///    An 8-bit integral value used to initialize bits [95:88] of the result.
-/// \param __b19
-///    An 8-bit integral value used to initialize bits [103:96] of the result.
-/// \param __b18
-///    An 8-bit integral value used to initialize bits [111:104] of the result.
-/// \param __b17
-///    An 8-bit integral value used to initialize bits [119:112] of the result.
-/// \param __b16
-///    An 8-bit integral value used to initialize bits [127:120] of the result.
-/// \param __b15
-///    An 8-bit integral value used to initialize bits [135:128] of the result.
-/// \param __b14
-///    An 8-bit integral value used to initialize bits [143:136] of the result.
-/// \param __b13
-///    An 8-bit integral value used to initialize bits [151:144] of the result.
-/// \param __b12
-///    An 8-bit integral value used to initialize bits [159:152] of the result.
-/// \param __b11
-///    An 8-bit integral value used to initialize bits [167:160] of the result.
-/// \param __b10
-///    An 8-bit integral value used to initialize bits [175:168] of the result.
-/// \param __b09
-///    An 8-bit integral value used to initialize bits [183:176] of the result.
-/// \param __b08
-///    An 8-bit integral value used to initialize bits [191:184] of the result.
-/// \param __b07
-///    An 8-bit integral value used to initialize bits [199:192] of the result.
-/// \param __b06
-///    An 8-bit integral value used to initialize bits [207:200] of the result.
-/// \param __b05
-///    An 8-bit integral value used to initialize bits [215:208] of the result.
-/// \param __b04
-///    An 8-bit integral value used to initialize bits [223:216] of the result.
-/// \param __b03
-///    An 8-bit integral value used to initialize bits [231:224] of the result.
-/// \param __b02
-///    An 8-bit integral value used to initialize bits [239:232] of the result.
-/// \param __b01
-///    An 8-bit integral value used to initialize bits [247:240] of the result.
-/// \param __b00
-///    An 8-bit integral value used to initialize bits [255:248] of the result.
-/// \returns An initialized 256-bit integer vector.
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_setr_epi8(char __b31, char __b30, char __b29, char __b28,
-                 char __b27, char __b26, char __b25, char __b24,
-                 char __b23, char __b22, char __b21, char __b20,
-                 char __b19, char __b18, char __b17, char __b16,
-                 char __b15, char __b14, char __b13, char __b12,
-                 char __b11, char __b10, char __b09, char __b08,
-                 char __b07, char __b06, char __b05, char __b04,
-                 char __b03, char __b02, char __b01, char __b00)
-{
-  return _mm256_set_epi8(__b00, __b01, __b02, __b03, __b04, __b05, __b06, __b07,
-                         __b08, __b09, __b10, __b11, __b12, __b13, __b14, __b15,
-                         __b16, __b17, __b18, __b19, __b20, __b21, __b22, __b23,
-                         __b24, __b25, __b26, __b27, __b28, __b29, __b30, __b31);
-}
-
-/// Constructs a 256-bit integer vector, initialized in reverse order
-///    with the specified 64-bit integral values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPUNPCKLQDQ+VINSERTF128 </c>
-///   instruction.
-///
-/// \param __a
-///    A 64-bit integral value used to initialize bits [63:0] of the result.
-/// \param __b
-///    A 64-bit integral value used to initialize bits [127:64] of the result.
-/// \param __c
-///    A 64-bit integral value used to initialize bits [191:128] of the result.
-/// \param __d
-///    A 64-bit integral value used to initialize bits [255:192] of the result.
-/// \returns An initialized 256-bit integer vector.
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_setr_epi64x(long long __a, long long __b, long long __c, long long __d)
-{
-  return _mm256_set_epi64x(__d, __c, __b, __a);
-}
-
-/* Create vectors with repeated elements */
-/// Constructs a 256-bit floating-point vector of [4 x double], with each
-///    of the four double-precision floating-point vector elements set to the
-///    specified double-precision floating-point value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVDDUP+VINSERTF128 </c> instruction.
-///
-/// \param __w
-///    A double-precision floating-point value used to initialize each vector
-///    element of the result.
-/// \returns An initialized 256-bit floating-point vector of [4 x double].
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_set1_pd(double __w)
-{
-  return _mm256_set_pd(__w, __w, __w, __w);
-}
-
-/// Constructs a 256-bit floating-point vector of [8 x float], with each
-///    of the eight single-precision floating-point vector elements set to the
-///    specified single-precision floating-point value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPERMILPS+VINSERTF128 </c>
-///   instruction.
-///
-/// \param __w
-///    A single-precision floating-point value used to initialize each vector
-///    element of the result.
-/// \returns An initialized 256-bit floating-point vector of [8 x float].
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_set1_ps(float __w)
-{
-  return _mm256_set_ps(__w, __w, __w, __w, __w, __w, __w, __w);
-}
-
-/// Constructs a 256-bit integer vector of [8 x i32], with each of the
-///    32-bit integral vector elements set to the specified 32-bit integral
-///    value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPERMILPS+VINSERTF128 </c>
-///   instruction.
-///
-/// \param __i
-///    A 32-bit integral value used to initialize each vector element of the
-///    result.
-/// \returns An initialized 256-bit integer vector of [8 x i32].
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_set1_epi32(int __i)
-{
-  return _mm256_set_epi32(__i, __i, __i, __i, __i, __i, __i, __i);
-}
-
-/// Constructs a 256-bit integer vector of [16 x i16], with each of the
-///    16-bit integral vector elements set to the specified 16-bit integral
-///    value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSHUFB+VINSERTF128 </c> instruction.
-///
-/// \param __w
-///    A 16-bit integral value used to initialize each vector element of the
-///    result.
-/// \returns An initialized 256-bit integer vector of [16 x i16].
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_set1_epi16(short __w)
-{
-  return _mm256_set_epi16(__w, __w, __w, __w, __w, __w, __w, __w,
-                          __w, __w, __w, __w, __w, __w, __w, __w);
-}
-
-/// Constructs a 256-bit integer vector of [32 x i8], with each of the
-///    8-bit integral vector elements set to the specified 8-bit integral value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSHUFB+VINSERTF128 </c> instruction.
-///
-/// \param __b
-///    An 8-bit integral value used to initialize each vector element of the
-///    result.
-/// \returns An initialized 256-bit integer vector of [32 x i8].
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_set1_epi8(char __b)
-{
-  return _mm256_set_epi8(__b, __b, __b, __b, __b, __b, __b, __b,
-                         __b, __b, __b, __b, __b, __b, __b, __b,
-                         __b, __b, __b, __b, __b, __b, __b, __b,
-                         __b, __b, __b, __b, __b, __b, __b, __b);
-}
-
-/// Constructs a 256-bit integer vector of [4 x i64], with each of the
-///    64-bit integral vector elements set to the specified 64-bit integral
-///    value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVDDUP+VINSERTF128 </c> instruction.
-///
-/// \param __q
-///    A 64-bit integral value used to initialize each vector element of the
-///    result.
-/// \returns An initialized 256-bit integer vector of [4 x i64].
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_set1_epi64x(long long __q)
-{
-  return _mm256_set_epi64x(__q, __q, __q, __q);
-}
-
-/* Create __zeroed vectors */
-/// Constructs a 256-bit floating-point vector of [4 x double] with all
-///    vector elements initialized to zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VXORPS </c> instruction.
-///
-/// \returns A 256-bit vector of [4 x double] with all elements set to zero.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_setzero_pd(void)
-{
-  return __extension__ (__m256d){ 0, 0, 0, 0 };
-}
-
-/// Constructs a 256-bit floating-point vector of [8 x float] with all
-///    vector elements initialized to zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VXORPS </c> instruction.
-///
-/// \returns A 256-bit vector of [8 x float] with all elements set to zero.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_setzero_ps(void)
-{
-  return __extension__ (__m256){ 0, 0, 0, 0, 0, 0, 0, 0 };
-}
-
-/// Constructs a 256-bit integer vector initialized to zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VXORPS </c> instruction.
-///
-/// \returns A 256-bit integer vector initialized to zero.
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_setzero_si256(void)
-{
-  return __extension__ (__m256i)(__v4di){ 0, 0, 0, 0 };
-}
-
-/* Cast between vector types */
-/// Casts a 256-bit floating-point vector of [4 x double] into a 256-bit
-///    floating-point vector of [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 256-bit floating-point vector of [4 x double].
-/// \returns A 256-bit floating-point vector of [8 x float] containing the same
-///    bitwise pattern as the parameter.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_castpd_ps(__m256d __a)
-{
-  return (__m256)__a;
-}
-
-/// Casts a 256-bit floating-point vector of [4 x double] into a 256-bit
-///    integer vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 256-bit floating-point vector of [4 x double].
-/// \returns A 256-bit integer vector containing the same bitwise pattern as the
-///    parameter.
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_castpd_si256(__m256d __a)
-{
-  return (__m256i)__a;
-}
-
-/// Casts a 256-bit floating-point vector of [8 x float] into a 256-bit
-///    floating-point vector of [4 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 256-bit floating-point vector of [8 x float].
-/// \returns A 256-bit floating-point vector of [4 x double] containing the same
-///    bitwise pattern as the parameter.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_castps_pd(__m256 __a)
-{
-  return (__m256d)__a;
-}
-
-/// Casts a 256-bit floating-point vector of [8 x float] into a 256-bit
-///    integer vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 256-bit floating-point vector of [8 x float].
-/// \returns A 256-bit integer vector containing the same bitwise pattern as the
-///    parameter.
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_castps_si256(__m256 __a)
-{
-  return (__m256i)__a;
-}
-
-/// Casts a 256-bit integer vector into a 256-bit floating-point vector
-///    of [8 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 256-bit integer vector.
-/// \returns A 256-bit floating-point vector of [8 x float] containing the same
-///    bitwise pattern as the parameter.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_castsi256_ps(__m256i __a)
-{
-  return (__m256)__a;
-}
-
-/// Casts a 256-bit integer vector into a 256-bit floating-point vector
-///    of [4 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 256-bit integer vector.
-/// \returns A 256-bit floating-point vector of [4 x double] containing the same
-///    bitwise pattern as the parameter.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_castsi256_pd(__m256i __a)
-{
-  return (__m256d)__a;
-}
-
-/// Returns the lower 128 bits of a 256-bit floating-point vector of
-///    [4 x double] as a 128-bit floating-point vector of [2 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 256-bit floating-point vector of [4 x double].
-/// \returns A 128-bit floating-point vector of [2 x double] containing the
-///    lower 128 bits of the parameter.
-static __inline __m128d __DEFAULT_FN_ATTRS
-_mm256_castpd256_pd128(__m256d __a)
-{
-  return __builtin_shufflevector((__v4df)__a, (__v4df)__a, 0, 1);
-}
-
-/// Returns the lower 128 bits of a 256-bit floating-point vector of
-///    [8 x float] as a 128-bit floating-point vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 256-bit floating-point vector of [8 x float].
-/// \returns A 128-bit floating-point vector of [4 x float] containing the
-///    lower 128 bits of the parameter.
-static __inline __m128 __DEFAULT_FN_ATTRS
-_mm256_castps256_ps128(__m256 __a)
-{
-  return __builtin_shufflevector((__v8sf)__a, (__v8sf)__a, 0, 1, 2, 3);
-}
-
-/// Truncates a 256-bit integer vector into a 128-bit integer vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 256-bit integer vector.
-/// \returns A 128-bit integer vector containing the lower 128 bits of the
-///    parameter.
-static __inline __m128i __DEFAULT_FN_ATTRS
-_mm256_castsi256_si128(__m256i __a)
-{
-  return __builtin_shufflevector((__v4di)__a, (__v4di)__a, 0, 1);
-}
-
-/// Constructs a 256-bit floating-point vector of [4 x double] from a
-///    128-bit floating-point vector of [2 x double].
-///
-///    The lower 128 bits contain the value of the source vector. The contents
-///    of the upper 128 bits are undefined.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \returns A 256-bit floating-point vector of [4 x double]. The lower 128 bits
-///    contain the value of the parameter. The contents of the upper 128 bits
-///    are undefined.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_castpd128_pd256(__m128d __a)
-{
-  return __builtin_shufflevector((__v2df)__a, (__v2df)__a, 0, 1, -1, -1);
-}
-
-/// Constructs a 256-bit floating-point vector of [8 x float] from a
-///    128-bit floating-point vector of [4 x float].
-///
-///    The lower 128 bits contain the value of the source vector. The contents
-///    of the upper 128 bits are undefined.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \returns A 256-bit floating-point vector of [8 x float]. The lower 128 bits
-///    contain the value of the parameter. The contents of the upper 128 bits
-///    are undefined.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_castps128_ps256(__m128 __a)
-{
-  return __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 1, 2, 3, -1, -1, -1, -1);
-}
-
-/// Constructs a 256-bit integer vector from a 128-bit integer vector.
-///
-///    The lower 128 bits contain the value of the source vector. The contents
-///    of the upper 128 bits are undefined.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \returns A 256-bit integer vector. The lower 128 bits contain the value of
-///    the parameter. The contents of the upper 128 bits are undefined.
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_castsi128_si256(__m128i __a)
-{
-  return __builtin_shufflevector((__v2di)__a, (__v2di)__a, 0, 1, -1, -1);
-}
-
-/// Constructs a 256-bit floating-point vector of [4 x double] from a
-///    128-bit floating-point vector of [2 x double]. The lower 128 bits
-///    contain the value of the source vector. The upper 128 bits are set
-///    to zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \returns A 256-bit floating-point vector of [4 x double]. The lower 128 bits
-///    contain the value of the parameter. The upper 128 bits are set to zero.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_zextpd128_pd256(__m128d __a)
-{
-  return __builtin_shufflevector((__v2df)__a, (__v2df)_mm_setzero_pd(), 0, 1, 2, 3);
-}
-
-/// Constructs a 256-bit floating-point vector of [8 x float] from a
-///    128-bit floating-point vector of [4 x float]. The lower 128 bits contain
-///    the value of the source vector. The upper 128 bits are set to zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \returns A 256-bit floating-point vector of [8 x float]. The lower 128 bits
-///    contain the value of the parameter. The upper 128 bits are set to zero.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_zextps128_ps256(__m128 __a)
-{
-  return __builtin_shufflevector((__v4sf)__a, (__v4sf)_mm_setzero_ps(), 0, 1, 2, 3, 4, 5, 6, 7);
-}
-
-/// Constructs a 256-bit integer vector from a 128-bit integer vector.
-///    The lower 128 bits contain the value of the source vector. The upper
-///    128 bits are set to zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \returns A 256-bit integer vector. The lower 128 bits contain the value of
-///    the parameter. The upper 128 bits are set to zero.
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_zextsi128_si256(__m128i __a)
-{
-  return __builtin_shufflevector((__v2di)__a, (__v2di)_mm_setzero_si128(), 0, 1, 2, 3);
-}
-
-/*
-   Vector insert.
-   We use macros rather than inlines because we only want to accept
-   invocations where the immediate M is a constant expression.
-*/
-/// Constructs a new 256-bit vector of [8 x float] by first duplicating
-///    a 256-bit vector of [8 x float] given in the first parameter, and then
-///    replacing either the upper or the lower 128 bits with the contents of a
-///    128-bit vector of [4 x float] in the second parameter.
-///
-///    The immediate integer parameter determines between the upper or the lower
-///    128 bits.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m256 _mm256_insertf128_ps(__m256 V1, __m128 V2, const int M);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VINSERTF128 </c> instruction.
-///
-/// \param V1
-///    A 256-bit vector of [8 x float]. This vector is copied to the result
-///    first, and then either the upper or the lower 128 bits of the result will
-///    be replaced by the contents of \a V2.
-/// \param V2
-///    A 128-bit vector of [4 x float]. The contents of this parameter are
-///    written to either the upper or the lower 128 bits of the result depending
-///    on the value of parameter \a M.
-/// \param M
-///    An immediate integer. The least significant bit determines how the values
-///    from the two parameters are interleaved: \n
-///    If bit [0] of \a M is 0, \a V2 are copied to bits [127:0] of the result,
-///    and bits [255:128] of \a V1 are copied to bits [255:128] of the
-///    result. \n
-///    If bit [0] of \a M is 1, \a V2 are copied to bits [255:128] of the
-///    result, and bits [127:0] of \a V1 are copied to bits [127:0] of the
-///    result.
-/// \returns A 256-bit vector of [8 x float] containing the interleaved values.
-#define _mm256_insertf128_ps(V1, V2, M) \
-  ((__m256)__builtin_ia32_vinsertf128_ps256((__v8sf)(__m256)(V1), \
-                                            (__v4sf)(__m128)(V2), (int)(M)))
-
-/// Constructs a new 256-bit vector of [4 x double] by first duplicating
-///    a 256-bit vector of [4 x double] given in the first parameter, and then
-///    replacing either the upper or the lower 128 bits with the contents of a
-///    128-bit vector of [2 x double] in the second parameter.
-///
-///    The immediate integer parameter determines between the upper or the lower
-///    128 bits.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m256d _mm256_insertf128_pd(__m256d V1, __m128d V2, const int M);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VINSERTF128 </c> instruction.
-///
-/// \param V1
-///    A 256-bit vector of [4 x double]. This vector is copied to the result
-///    first, and then either the upper or the lower 128 bits of the result will
-///    be replaced by the contents of \a V2.
-/// \param V2
-///    A 128-bit vector of [2 x double]. The contents of this parameter are
-///    written to either the upper or the lower 128 bits of the result depending
-///    on the value of parameter \a M.
-/// \param M
-///    An immediate integer. The least significant bit determines how the values
-///    from the two parameters are interleaved: \n
-///    If bit [0] of \a M is 0, \a V2 are copied to bits [127:0] of the result,
-///    and bits [255:128] of \a V1 are copied to bits [255:128] of the
-///    result. \n
-///    If bit [0] of \a M is 1, \a V2 are copied to bits [255:128] of the
-///    result, and bits [127:0] of \a V1 are copied to bits [127:0] of the
-///    result.
-/// \returns A 256-bit vector of [4 x double] containing the interleaved values.
-#define _mm256_insertf128_pd(V1, V2, M) \
-  ((__m256d)__builtin_ia32_vinsertf128_pd256((__v4df)(__m256d)(V1), \
-                                             (__v2df)(__m128d)(V2), (int)(M)))
-
-/// Constructs a new 256-bit integer vector by first duplicating a
-///    256-bit integer vector given in the first parameter, and then replacing
-///    either the upper or the lower 128 bits with the contents of a 128-bit
-///    integer vector in the second parameter.
-///
-///    The immediate integer parameter determines between the upper or the lower
-///    128 bits.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m256i _mm256_insertf128_si256(__m256i V1, __m128i V2, const int M);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VINSERTF128 </c> instruction.
-///
-/// \param V1
-///    A 256-bit integer vector. This vector is copied to the result first, and
-///    then either the upper or the lower 128 bits of the result will be
-///    replaced by the contents of \a V2.
-/// \param V2
-///    A 128-bit integer vector. The contents of this parameter are written to
-///    either the upper or the lower 128 bits of the result depending on the
-///     value of parameter \a M.
-/// \param M
-///    An immediate integer. The least significant bit determines how the values
-///    from the two parameters are interleaved: \n
-///    If bit [0] of \a M is 0, \a V2 are copied to bits [127:0] of the result,
-///    and bits [255:128] of \a V1 are copied to bits [255:128] of the
-///    result. \n
-///    If bit [0] of \a M is 1, \a V2 are copied to bits [255:128] of the
-///    result, and bits [127:0] of \a V1 are copied to bits [127:0] of the
-///    result.
-/// \returns A 256-bit integer vector containing the interleaved values.
-#define _mm256_insertf128_si256(V1, V2, M) \
-  ((__m256i)__builtin_ia32_vinsertf128_si256((__v8si)(__m256i)(V1), \
-                                             (__v4si)(__m128i)(V2), (int)(M)))
-
-/*
-   Vector extract.
-   We use macros rather than inlines because we only want to accept
-   invocations where the immediate M is a constant expression.
-*/
-/// Extracts either the upper or the lower 128 bits from a 256-bit vector
-///    of [8 x float], as determined by the immediate integer parameter, and
-///    returns the extracted bits as a 128-bit vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m128 _mm256_extractf128_ps(__m256 V, const int M);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VEXTRACTF128 </c> instruction.
-///
-/// \param V
-///    A 256-bit vector of [8 x float].
-/// \param M
-///    An immediate integer. The least significant bit determines which bits are
-///    extracted from the first parameter: \n
-///    If bit [0] of \a M is 0, bits [127:0] of \a V are copied to the
-///    result. \n
-///    If bit [0] of \a M is 1, bits [255:128] of \a V are copied to the result.
-/// \returns A 128-bit vector of [4 x float] containing the extracted bits.
-#define _mm256_extractf128_ps(V, M) \
-  ((__m128)__builtin_ia32_vextractf128_ps256((__v8sf)(__m256)(V), (int)(M)))
-
-/// Extracts either the upper or the lower 128 bits from a 256-bit vector
-///    of [4 x double], as determined by the immediate integer parameter, and
-///    returns the extracted bits as a 128-bit vector of [2 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m128d _mm256_extractf128_pd(__m256d V, const int M);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VEXTRACTF128 </c> instruction.
-///
-/// \param V
-///    A 256-bit vector of [4 x double].
-/// \param M
-///    An immediate integer. The least significant bit determines which bits are
-///    extracted from the first parameter: \n
-///    If bit [0] of \a M is 0, bits [127:0] of \a V are copied to the
-///    result. \n
-///    If bit [0] of \a M is 1, bits [255:128] of \a V are copied to the result.
-/// \returns A 128-bit vector of [2 x double] containing the extracted bits.
-#define _mm256_extractf128_pd(V, M) \
-  ((__m128d)__builtin_ia32_vextractf128_pd256((__v4df)(__m256d)(V), (int)(M)))
-
-/// Extracts either the upper or the lower 128 bits from a 256-bit
-///    integer vector, as determined by the immediate integer parameter, and
-///    returns the extracted bits as a 128-bit integer vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m128i _mm256_extractf128_si256(__m256i V, const int M);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VEXTRACTF128 </c> instruction.
-///
-/// \param V
-///    A 256-bit integer vector.
-/// \param M
-///    An immediate integer. The least significant bit determines which bits are
-///    extracted from the first parameter:  \n
-///    If bit [0] of \a M is 0, bits [127:0] of \a V are copied to the
-///    result. \n
-///    If bit [0] of \a M is 1, bits [255:128] of \a V are copied to the result.
-/// \returns A 128-bit integer vector containing the extracted bits.
-#define _mm256_extractf128_si256(V, M) \
-  ((__m128i)__builtin_ia32_vextractf128_si256((__v8si)(__m256i)(V), (int)(M)))
-
-/* SIMD load ops (unaligned) */
-/// Loads two 128-bit floating-point vectors of [4 x float] from
-///    unaligned memory locations and constructs a 256-bit floating-point vector
-///    of [8 x float] by concatenating the two 128-bit vectors.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to load instructions followed by the
-///   <c> VINSERTF128 </c> instruction.
-///
-/// \param __addr_hi
-///    A pointer to a 128-bit memory location containing 4 consecutive
-///    single-precision floating-point values. These values are to be copied to
-///    bits[255:128] of the result. The address of the memory location does not
-///    have to be aligned.
-/// \param __addr_lo
-///    A pointer to a 128-bit memory location containing 4 consecutive
-///    single-precision floating-point values. These values are to be copied to
-///    bits[127:0] of the result. The address of the memory location does not
-///    have to be aligned.
-/// \returns A 256-bit floating-point vector of [8 x float] containing the
-///    concatenated result.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_loadu2_m128(float const *__addr_hi, float const *__addr_lo)
-{
-  __m256 __v256 = _mm256_castps128_ps256(_mm_loadu_ps(__addr_lo));
-  return _mm256_insertf128_ps(__v256, _mm_loadu_ps(__addr_hi), 1);
-}
-
-/// Loads two 128-bit floating-point vectors of [2 x double] from
-///    unaligned memory locations and constructs a 256-bit floating-point vector
-///    of [4 x double] by concatenating the two 128-bit vectors.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to load instructions followed by the
-///   <c> VINSERTF128 </c> instruction.
-///
-/// \param __addr_hi
-///    A pointer to a 128-bit memory location containing two consecutive
-///    double-precision floating-point values. These values are to be copied to
-///    bits[255:128] of the result. The address of the memory location does not
-///    have to be aligned.
-/// \param __addr_lo
-///    A pointer to a 128-bit memory location containing two consecutive
-///    double-precision floating-point values. These values are to be copied to
-///    bits[127:0] of the result. The address of the memory location does not
-///    have to be aligned.
-/// \returns A 256-bit floating-point vector of [4 x double] containing the
-///    concatenated result.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_loadu2_m128d(double const *__addr_hi, double const *__addr_lo)
-{
-  __m256d __v256 = _mm256_castpd128_pd256(_mm_loadu_pd(__addr_lo));
-  return _mm256_insertf128_pd(__v256, _mm_loadu_pd(__addr_hi), 1);
-}
-
-/// Loads two 128-bit integer vectors from unaligned memory locations and
-///    constructs a 256-bit integer vector by concatenating the two 128-bit
-///    vectors.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to load instructions followed by the
-///   <c> VINSERTF128 </c> instruction.
-///
-/// \param __addr_hi
-///    A pointer to a 128-bit memory location containing a 128-bit integer
-///    vector. This vector is to be copied to bits[255:128] of the result. The
-///    address of the memory location does not have to be aligned.
-/// \param __addr_lo
-///    A pointer to a 128-bit memory location containing a 128-bit integer
-///    vector. This vector is to be copied to bits[127:0] of the result. The
-///    address of the memory location does not have to be aligned.
-/// \returns A 256-bit integer vector containing the concatenated result.
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_loadu2_m128i(__m128i_u const *__addr_hi, __m128i_u const *__addr_lo)
-{
-  __m256i __v256 = _mm256_castsi128_si256(_mm_loadu_si128(__addr_lo));
-  return _mm256_insertf128_si256(__v256, _mm_loadu_si128(__addr_hi), 1);
-}
-
-/* SIMD store ops (unaligned) */
-/// Stores the upper and lower 128 bits of a 256-bit floating-point
-///    vector of [8 x float] into two different unaligned memory locations.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VEXTRACTF128 </c> instruction and the
-///   store instructions.
-///
-/// \param __addr_hi
-///    A pointer to a 128-bit memory location. Bits[255:128] of \a __a are to be
-///    copied to this memory location. The address of this memory location does
-///    not have to be aligned.
-/// \param __addr_lo
-///    A pointer to a 128-bit memory location. Bits[127:0] of \a __a are to be
-///    copied to this memory location. The address of this memory location does
-///    not have to be aligned.
-/// \param __a
-///    A 256-bit floating-point vector of [8 x float].
-static __inline void __DEFAULT_FN_ATTRS
-_mm256_storeu2_m128(float *__addr_hi, float *__addr_lo, __m256 __a)
-{
-  __m128 __v128;
-
-  __v128 = _mm256_castps256_ps128(__a);
-  _mm_storeu_ps(__addr_lo, __v128);
-  __v128 = _mm256_extractf128_ps(__a, 1);
-  _mm_storeu_ps(__addr_hi, __v128);
-}
-
-/// Stores the upper and lower 128 bits of a 256-bit floating-point
-///    vector of [4 x double] into two different unaligned memory locations.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VEXTRACTF128 </c> instruction and the
-///   store instructions.
-///
-/// \param __addr_hi
-///    A pointer to a 128-bit memory location. Bits[255:128] of \a __a are to be
-///    copied to this memory location. The address of this memory location does
-///    not have to be aligned.
-/// \param __addr_lo
-///    A pointer to a 128-bit memory location. Bits[127:0] of \a __a are to be
-///    copied to this memory location. The address of this memory location does
-///    not have to be aligned.
-/// \param __a
-///    A 256-bit floating-point vector of [4 x double].
-static __inline void __DEFAULT_FN_ATTRS
-_mm256_storeu2_m128d(double *__addr_hi, double *__addr_lo, __m256d __a)
-{
-  __m128d __v128;
-
-  __v128 = _mm256_castpd256_pd128(__a);
-  _mm_storeu_pd(__addr_lo, __v128);
-  __v128 = _mm256_extractf128_pd(__a, 1);
-  _mm_storeu_pd(__addr_hi, __v128);
-}
-
-/// Stores the upper and lower 128 bits of a 256-bit integer vector into
-///    two different unaligned memory locations.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VEXTRACTF128 </c> instruction and the
-///   store instructions.
-///
-/// \param __addr_hi
-///    A pointer to a 128-bit memory location. Bits[255:128] of \a __a are to be
-///    copied to this memory location. The address of this memory location does
-///    not have to be aligned.
-/// \param __addr_lo
-///    A pointer to a 128-bit memory location. Bits[127:0] of \a __a are to be
-///    copied to this memory location. The address of this memory location does
-///    not have to be aligned.
-/// \param __a
-///    A 256-bit integer vector.
-static __inline void __DEFAULT_FN_ATTRS
-_mm256_storeu2_m128i(__m128i_u *__addr_hi, __m128i_u *__addr_lo, __m256i __a)
-{
-  __m128i __v128;
-
-  __v128 = _mm256_castsi256_si128(__a);
-  _mm_storeu_si128(__addr_lo, __v128);
-  __v128 = _mm256_extractf128_si256(__a, 1);
-  _mm_storeu_si128(__addr_hi, __v128);
-}
-
-/// Constructs a 256-bit floating-point vector of [8 x float] by
-///    concatenating two 128-bit floating-point vectors of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VINSERTF128 </c> instruction.
-///
-/// \param __hi
-///    A 128-bit floating-point vector of [4 x float] to be copied to the upper
-///    128 bits of the result.
-/// \param __lo
-///    A 128-bit floating-point vector of [4 x float] to be copied to the lower
-///    128 bits of the result.
-/// \returns A 256-bit floating-point vector of [8 x float] containing the
-///    concatenated result.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_set_m128 (__m128 __hi, __m128 __lo)
-{
-  return (__m256) __builtin_shufflevector((__v4sf)__lo, (__v4sf)__hi, 0, 1, 2, 3, 4, 5, 6, 7);
-}
-
-/// Constructs a 256-bit floating-point vector of [4 x double] by
-///    concatenating two 128-bit floating-point vectors of [2 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VINSERTF128 </c> instruction.
-///
-/// \param __hi
-///    A 128-bit floating-point vector of [2 x double] to be copied to the upper
-///    128 bits of the result.
-/// \param __lo
-///    A 128-bit floating-point vector of [2 x double] to be copied to the lower
-///    128 bits of the result.
-/// \returns A 256-bit floating-point vector of [4 x double] containing the
-///    concatenated result.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_set_m128d (__m128d __hi, __m128d __lo)
-{
-  return (__m256d) __builtin_shufflevector((__v2df)__lo, (__v2df)__hi, 0, 1, 2, 3);
-}
-
-/// Constructs a 256-bit integer vector by concatenating two 128-bit
-///    integer vectors.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VINSERTF128 </c> instruction.
-///
-/// \param __hi
-///    A 128-bit integer vector to be copied to the upper 128 bits of the
-///    result.
-/// \param __lo
-///    A 128-bit integer vector to be copied to the lower 128 bits of the
-///    result.
-/// \returns A 256-bit integer vector containing the concatenated result.
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_set_m128i (__m128i __hi, __m128i __lo)
-{
-  return (__m256i) __builtin_shufflevector((__v2di)__lo, (__v2di)__hi, 0, 1, 2, 3);
-}
-
-/// Constructs a 256-bit floating-point vector of [8 x float] by
-///    concatenating two 128-bit floating-point vectors of [4 x float]. This is
-///    similar to _mm256_set_m128, but the order of the input parameters is
-///    swapped.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VINSERTF128 </c> instruction.
-///
-/// \param __lo
-///    A 128-bit floating-point vector of [4 x float] to be copied to the lower
-///    128 bits of the result.
-/// \param __hi
-///    A 128-bit floating-point vector of [4 x float] to be copied to the upper
-///    128 bits of the result.
-/// \returns A 256-bit floating-point vector of [8 x float] containing the
-///    concatenated result.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_setr_m128 (__m128 __lo, __m128 __hi)
-{
-  return _mm256_set_m128(__hi, __lo);
-}
-
-/// Constructs a 256-bit floating-point vector of [4 x double] by
-///    concatenating two 128-bit floating-point vectors of [2 x double]. This is
-///    similar to _mm256_set_m128d, but the order of the input parameters is
-///    swapped.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VINSERTF128 </c> instruction.
-///
-/// \param __lo
-///    A 128-bit floating-point vector of [2 x double] to be copied to the lower
-///    128 bits of the result.
-/// \param __hi
-///    A 128-bit floating-point vector of [2 x double] to be copied to the upper
-///    128 bits of the result.
-/// \returns A 256-bit floating-point vector of [4 x double] containing the
-///    concatenated result.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_setr_m128d (__m128d __lo, __m128d __hi)
-{
-  return (__m256d)_mm256_set_m128d(__hi, __lo);
-}
-
-/// Constructs a 256-bit integer vector by concatenating two 128-bit
-///    integer vectors. This is similar to _mm256_set_m128i, but the order of
-///    the input parameters is swapped.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VINSERTF128 </c> instruction.
-///
-/// \param __lo
-///    A 128-bit integer vector to be copied to the lower 128 bits of the
-///    result.
-/// \param __hi
-///    A 128-bit integer vector to be copied to the upper 128 bits of the
-///    result.
-/// \returns A 256-bit integer vector containing the concatenated result.
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_setr_m128i (__m128i __lo, __m128i __hi)
-{
-  return (__m256i)_mm256_set_m128i(__hi, __lo);
-}
-
-#undef __DEFAULT_FN_ATTRS
-#undef __DEFAULT_FN_ATTRS128
-
-#endif /* __AVXINTRIN_H */
diff --git a/linux-x86/lib64/clang/14.0.1/include/emmintrin.h b/linux-x86/lib64/clang/14.0.1/include/emmintrin.h
deleted file mode 100644
index b79a4f1..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/emmintrin.h
+++ /dev/null
@@ -1,4981 +0,0 @@
-/*===---- emmintrin.h - SSE2 intrinsics ------------------------------------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-
-#ifndef __EMMINTRIN_H
-#define __EMMINTRIN_H
-
-#include <xmmintrin.h>
-
-typedef double __m128d __attribute__((__vector_size__(16), __aligned__(16)));
-typedef long long __m128i __attribute__((__vector_size__(16), __aligned__(16)));
-
-typedef double __m128d_u __attribute__((__vector_size__(16), __aligned__(1)));
-typedef long long __m128i_u __attribute__((__vector_size__(16), __aligned__(1)));
-
-/* Type defines.  */
-typedef double __v2df __attribute__ ((__vector_size__ (16)));
-typedef long long __v2di __attribute__ ((__vector_size__ (16)));
-typedef short __v8hi __attribute__((__vector_size__(16)));
-typedef char __v16qi __attribute__((__vector_size__(16)));
-
-/* Unsigned types */
-typedef unsigned long long __v2du __attribute__ ((__vector_size__ (16)));
-typedef unsigned short __v8hu __attribute__((__vector_size__(16)));
-typedef unsigned char __v16qu __attribute__((__vector_size__(16)));
-
-/* We need an explicitly signed variant for char. Note that this shouldn't
- * appear in the interface though. */
-typedef signed char __v16qs __attribute__((__vector_size__(16)));
-
-/* Define the default attributes for the functions in this file. */
-#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128)))
-#define __DEFAULT_FN_ATTRS_MMX __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse2"), __min_vector_width__(64)))
-
-/// Adds lower double-precision values in both operands and returns the
-///    sum in the lower 64 bits of the result. The upper 64 bits of the result
-///    are copied from the upper double-precision value of the first operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VADDSD / ADDSD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double] containing one of the source operands.
-/// \param __b
-///    A 128-bit vector of [2 x double] containing one of the source operands.
-/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
-///    sum of the lower 64 bits of both operands. The upper 64 bits are copied
-///    from the upper 64 bits of the first source operand.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_add_sd(__m128d __a, __m128d __b)
-{
-  __a[0] += __b[0];
-  return __a;
-}
-
-/// Adds two 128-bit vectors of [2 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VADDPD / ADDPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double] containing one of the source operands.
-/// \param __b
-///    A 128-bit vector of [2 x double] containing one of the source operands.
-/// \returns A 128-bit vector of [2 x double] containing the sums of both
-///    operands.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_add_pd(__m128d __a, __m128d __b)
-{
-  return (__m128d)((__v2df)__a + (__v2df)__b);
-}
-
-/// Subtracts the lower double-precision value of the second operand
-///    from the lower double-precision value of the first operand and returns
-///    the difference in the lower 64 bits of the result. The upper 64 bits of
-///    the result are copied from the upper double-precision value of the first
-///    operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VSUBSD / SUBSD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double] containing the minuend.
-/// \param __b
-///    A 128-bit vector of [2 x double] containing the subtrahend.
-/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
-///    difference of the lower 64 bits of both operands. The upper 64 bits are
-///    copied from the upper 64 bits of the first source operand.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_sub_sd(__m128d __a, __m128d __b)
-{
-  __a[0] -= __b[0];
-  return __a;
-}
-
-/// Subtracts two 128-bit vectors of [2 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VSUBPD / SUBPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double] containing the minuend.
-/// \param __b
-///    A 128-bit vector of [2 x double] containing the subtrahend.
-/// \returns A 128-bit vector of [2 x double] containing the differences between
-///    both operands.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_sub_pd(__m128d __a, __m128d __b)
-{
-  return (__m128d)((__v2df)__a - (__v2df)__b);
-}
-
-/// Multiplies lower double-precision values in both operands and returns
-///    the product in the lower 64 bits of the result. The upper 64 bits of the
-///    result are copied from the upper double-precision value of the first
-///    operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMULSD / MULSD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double] containing one of the source operands.
-/// \param __b
-///    A 128-bit vector of [2 x double] containing one of the source operands.
-/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
-///    product of the lower 64 bits of both operands. The upper 64 bits are
-///    copied from the upper 64 bits of the first source operand.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_mul_sd(__m128d __a, __m128d __b)
-{
-  __a[0] *= __b[0];
-  return __a;
-}
-
-/// Multiplies two 128-bit vectors of [2 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMULPD / MULPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double] containing one of the operands.
-/// \param __b
-///    A 128-bit vector of [2 x double] containing one of the operands.
-/// \returns A 128-bit vector of [2 x double] containing the products of both
-///    operands.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_mul_pd(__m128d __a, __m128d __b)
-{
-  return (__m128d)((__v2df)__a * (__v2df)__b);
-}
-
-/// Divides the lower double-precision value of the first operand by the
-///    lower double-precision value of the second operand and returns the
-///    quotient in the lower 64 bits of the result. The upper 64 bits of the
-///    result are copied from the upper double-precision value of the first
-///    operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VDIVSD / DIVSD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double] containing the dividend.
-/// \param __b
-///    A 128-bit vector of [2 x double] containing divisor.
-/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
-///    quotient of the lower 64 bits of both operands. The upper 64 bits are
-///    copied from the upper 64 bits of the first source operand.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_div_sd(__m128d __a, __m128d __b)
-{
-  __a[0] /= __b[0];
-  return __a;
-}
-
-/// Performs an element-by-element division of two 128-bit vectors of
-///    [2 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VDIVPD / DIVPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double] containing the dividend.
-/// \param __b
-///    A 128-bit vector of [2 x double] containing the divisor.
-/// \returns A 128-bit vector of [2 x double] containing the quotients of both
-///    operands.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_div_pd(__m128d __a, __m128d __b)
-{
-  return (__m128d)((__v2df)__a / (__v2df)__b);
-}
-
-/// Calculates the square root of the lower double-precision value of
-///    the second operand and returns it in the lower 64 bits of the result.
-///    The upper 64 bits of the result are copied from the upper
-///    double-precision value of the first operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VSQRTSD / SQRTSD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double] containing one of the operands. The
-///    upper 64 bits of this operand are copied to the upper 64 bits of the
-///    result.
-/// \param __b
-///    A 128-bit vector of [2 x double] containing one of the operands. The
-///    square root is calculated using the lower 64 bits of this operand.
-/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
-///    square root of the lower 64 bits of operand \a __b, and whose upper 64
-///    bits are copied from the upper 64 bits of operand \a __a.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_sqrt_sd(__m128d __a, __m128d __b)
-{
-  __m128d __c = __builtin_ia32_sqrtsd((__v2df)__b);
-  return __extension__ (__m128d) { __c[0], __a[1] };
-}
-
-/// Calculates the square root of the each of two values stored in a
-///    128-bit vector of [2 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VSQRTPD / SQRTPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \returns A 128-bit vector of [2 x double] containing the square roots of the
-///    values in the operand.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_sqrt_pd(__m128d __a)
-{
-  return __builtin_ia32_sqrtpd((__v2df)__a);
-}
-
-/// Compares lower 64-bit double-precision values of both operands, and
-///    returns the lesser of the pair of values in the lower 64-bits of the
-///    result. The upper 64 bits of the result are copied from the upper
-///    double-precision value of the first operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMINSD / MINSD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double] containing one of the operands. The
-///    lower 64 bits of this operand are used in the comparison.
-/// \param __b
-///    A 128-bit vector of [2 x double] containing one of the operands. The
-///    lower 64 bits of this operand are used in the comparison.
-/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
-///    minimum value between both operands. The upper 64 bits are copied from
-///    the upper 64 bits of the first source operand.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_min_sd(__m128d __a, __m128d __b)
-{
-  return __builtin_ia32_minsd((__v2df)__a, (__v2df)__b);
-}
-
-/// Performs element-by-element comparison of the two 128-bit vectors of
-///    [2 x double] and returns the vector containing the lesser of each pair of
-///    values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMINPD / MINPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double] containing one of the operands.
-/// \param __b
-///    A 128-bit vector of [2 x double] containing one of the operands.
-/// \returns A 128-bit vector of [2 x double] containing the minimum values
-///    between both operands.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_min_pd(__m128d __a, __m128d __b)
-{
-  return __builtin_ia32_minpd((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares lower 64-bit double-precision values of both operands, and
-///    returns the greater of the pair of values in the lower 64-bits of the
-///    result. The upper 64 bits of the result are copied from the upper
-///    double-precision value of the first operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMAXSD / MAXSD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double] containing one of the operands. The
-///    lower 64 bits of this operand are used in the comparison.
-/// \param __b
-///    A 128-bit vector of [2 x double] containing one of the operands. The
-///    lower 64 bits of this operand are used in the comparison.
-/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
-///    maximum value between both operands. The upper 64 bits are copied from
-///    the upper 64 bits of the first source operand.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_max_sd(__m128d __a, __m128d __b)
-{
-  return __builtin_ia32_maxsd((__v2df)__a, (__v2df)__b);
-}
-
-/// Performs element-by-element comparison of the two 128-bit vectors of
-///    [2 x double] and returns the vector containing the greater of each pair
-///    of values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMAXPD / MAXPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double] containing one of the operands.
-/// \param __b
-///    A 128-bit vector of [2 x double] containing one of the operands.
-/// \returns A 128-bit vector of [2 x double] containing the maximum values
-///    between both operands.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_max_pd(__m128d __a, __m128d __b)
-{
-  return __builtin_ia32_maxpd((__v2df)__a, (__v2df)__b);
-}
-
-/// Performs a bitwise AND of two 128-bit vectors of [2 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPAND / PAND </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double] containing one of the source operands.
-/// \param __b
-///    A 128-bit vector of [2 x double] containing one of the source operands.
-/// \returns A 128-bit vector of [2 x double] containing the bitwise AND of the
-///    values between both operands.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_and_pd(__m128d __a, __m128d __b)
-{
-  return (__m128d)((__v2du)__a & (__v2du)__b);
-}
-
-/// Performs a bitwise AND of two 128-bit vectors of [2 x double], using
-///    the one's complement of the values contained in the first source operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPANDN / PANDN </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double] containing the left source operand. The
-///    one's complement of this value is used in the bitwise AND.
-/// \param __b
-///    A 128-bit vector of [2 x double] containing the right source operand.
-/// \returns A 128-bit vector of [2 x double] containing the bitwise AND of the
-///    values in the second operand and the one's complement of the first
-///    operand.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_andnot_pd(__m128d __a, __m128d __b)
-{
-  return (__m128d)(~(__v2du)__a & (__v2du)__b);
-}
-
-/// Performs a bitwise OR of two 128-bit vectors of [2 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPOR / POR </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double] containing one of the source operands.
-/// \param __b
-///    A 128-bit vector of [2 x double] containing one of the source operands.
-/// \returns A 128-bit vector of [2 x double] containing the bitwise OR of the
-///    values between both operands.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_or_pd(__m128d __a, __m128d __b)
-{
-  return (__m128d)((__v2du)__a | (__v2du)__b);
-}
-
-/// Performs a bitwise XOR of two 128-bit vectors of [2 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPXOR / PXOR </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double] containing one of the source operands.
-/// \param __b
-///    A 128-bit vector of [2 x double] containing one of the source operands.
-/// \returns A 128-bit vector of [2 x double] containing the bitwise XOR of the
-///    values between both operands.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_xor_pd(__m128d __a, __m128d __b)
-{
-  return (__m128d)((__v2du)__a ^ (__v2du)__b);
-}
-
-/// Compares each of the corresponding double-precision values of the
-///    128-bit vectors of [2 x double] for equality. Each comparison yields 0x0
-///    for false, 0xFFFFFFFFFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPEQPD / CMPEQPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \param __b
-///    A 128-bit vector of [2 x double].
-/// \returns A 128-bit vector containing the comparison results.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmpeq_pd(__m128d __a, __m128d __b)
-{
-  return (__m128d)__builtin_ia32_cmpeqpd((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares each of the corresponding double-precision values of the
-///    128-bit vectors of [2 x double] to determine if the values in the first
-///    operand are less than those in the second operand. Each comparison
-///    yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPLTPD / CMPLTPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \param __b
-///    A 128-bit vector of [2 x double].
-/// \returns A 128-bit vector containing the comparison results.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmplt_pd(__m128d __a, __m128d __b)
-{
-  return (__m128d)__builtin_ia32_cmpltpd((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares each of the corresponding double-precision values of the
-///    128-bit vectors of [2 x double] to determine if the values in the first
-///    operand are less than or equal to those in the second operand.
-///
-///    Each comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPLEPD / CMPLEPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \param __b
-///    A 128-bit vector of [2 x double].
-/// \returns A 128-bit vector containing the comparison results.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmple_pd(__m128d __a, __m128d __b)
-{
-  return (__m128d)__builtin_ia32_cmplepd((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares each of the corresponding double-precision values of the
-///    128-bit vectors of [2 x double] to determine if the values in the first
-///    operand are greater than those in the second operand.
-///
-///    Each comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPLTPD / CMPLTPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \param __b
-///    A 128-bit vector of [2 x double].
-/// \returns A 128-bit vector containing the comparison results.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmpgt_pd(__m128d __a, __m128d __b)
-{
-  return (__m128d)__builtin_ia32_cmpltpd((__v2df)__b, (__v2df)__a);
-}
-
-/// Compares each of the corresponding double-precision values of the
-///    128-bit vectors of [2 x double] to determine if the values in the first
-///    operand are greater than or equal to those in the second operand.
-///
-///    Each comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPLEPD / CMPLEPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \param __b
-///    A 128-bit vector of [2 x double].
-/// \returns A 128-bit vector containing the comparison results.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmpge_pd(__m128d __a, __m128d __b)
-{
-  return (__m128d)__builtin_ia32_cmplepd((__v2df)__b, (__v2df)__a);
-}
-
-/// Compares each of the corresponding double-precision values of the
-///    128-bit vectors of [2 x double] to determine if the values in the first
-///    operand are ordered with respect to those in the second operand.
-///
-///    A pair of double-precision values are "ordered" with respect to each
-///    other if neither value is a NaN. Each comparison yields 0x0 for false,
-///    0xFFFFFFFFFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPORDPD / CMPORDPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \param __b
-///    A 128-bit vector of [2 x double].
-/// \returns A 128-bit vector containing the comparison results.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmpord_pd(__m128d __a, __m128d __b)
-{
-  return (__m128d)__builtin_ia32_cmpordpd((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares each of the corresponding double-precision values of the
-///    128-bit vectors of [2 x double] to determine if the values in the first
-///    operand are unordered with respect to those in the second operand.
-///
-///    A pair of double-precision values are "unordered" with respect to each
-///    other if one or both values are NaN. Each comparison yields 0x0 for
-///    false, 0xFFFFFFFFFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPUNORDPD / CMPUNORDPD </c>
-///   instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \param __b
-///    A 128-bit vector of [2 x double].
-/// \returns A 128-bit vector containing the comparison results.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmpunord_pd(__m128d __a, __m128d __b)
-{
-  return (__m128d)__builtin_ia32_cmpunordpd((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares each of the corresponding double-precision values of the
-///    128-bit vectors of [2 x double] to determine if the values in the first
-///    operand are unequal to those in the second operand.
-///
-///    Each comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPNEQPD / CMPNEQPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \param __b
-///    A 128-bit vector of [2 x double].
-/// \returns A 128-bit vector containing the comparison results.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmpneq_pd(__m128d __a, __m128d __b)
-{
-  return (__m128d)__builtin_ia32_cmpneqpd((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares each of the corresponding double-precision values of the
-///    128-bit vectors of [2 x double] to determine if the values in the first
-///    operand are not less than those in the second operand.
-///
-///    Each comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPNLTPD / CMPNLTPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \param __b
-///    A 128-bit vector of [2 x double].
-/// \returns A 128-bit vector containing the comparison results.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmpnlt_pd(__m128d __a, __m128d __b)
-{
-  return (__m128d)__builtin_ia32_cmpnltpd((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares each of the corresponding double-precision values of the
-///    128-bit vectors of [2 x double] to determine if the values in the first
-///    operand are not less than or equal to those in the second operand.
-///
-///    Each comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPNLEPD / CMPNLEPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \param __b
-///    A 128-bit vector of [2 x double].
-/// \returns A 128-bit vector containing the comparison results.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmpnle_pd(__m128d __a, __m128d __b)
-{
-  return (__m128d)__builtin_ia32_cmpnlepd((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares each of the corresponding double-precision values of the
-///    128-bit vectors of [2 x double] to determine if the values in the first
-///    operand are not greater than those in the second operand.
-///
-///    Each comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPNLTPD / CMPNLTPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \param __b
-///    A 128-bit vector of [2 x double].
-/// \returns A 128-bit vector containing the comparison results.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmpngt_pd(__m128d __a, __m128d __b)
-{
-  return (__m128d)__builtin_ia32_cmpnltpd((__v2df)__b, (__v2df)__a);
-}
-
-/// Compares each of the corresponding double-precision values of the
-///    128-bit vectors of [2 x double] to determine if the values in the first
-///    operand are not greater than or equal to those in the second operand.
-///
-///    Each comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPNLEPD / CMPNLEPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \param __b
-///    A 128-bit vector of [2 x double].
-/// \returns A 128-bit vector containing the comparison results.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmpnge_pd(__m128d __a, __m128d __b)
-{
-  return (__m128d)__builtin_ia32_cmpnlepd((__v2df)__b, (__v2df)__a);
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] for equality.
-///
-///    The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPEQSD / CMPEQSD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __b.
-/// \param __b
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __a.
-/// \returns A 128-bit vector. The lower 64 bits contains the comparison
-///    results. The upper 64 bits are copied from the upper 64 bits of \a __a.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmpeq_sd(__m128d __a, __m128d __b)
-{
-  return (__m128d)__builtin_ia32_cmpeqsd((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] to determine if
-///    the value in the first parameter is less than the corresponding value in
-///    the second parameter.
-///
-///    The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPLTSD / CMPLTSD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __b.
-/// \param __b
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __a.
-/// \returns A 128-bit vector. The lower 64 bits contains the comparison
-///    results. The upper 64 bits are copied from the upper 64 bits of \a __a.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmplt_sd(__m128d __a, __m128d __b)
-{
-  return (__m128d)__builtin_ia32_cmpltsd((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] to determine if
-///    the value in the first parameter is less than or equal to the
-///    corresponding value in the second parameter.
-///
-///    The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPLESD / CMPLESD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __b.
-/// \param __b
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __a.
-/// \returns A 128-bit vector. The lower 64 bits contains the comparison
-///    results. The upper 64 bits are copied from the upper 64 bits of \a __a.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmple_sd(__m128d __a, __m128d __b)
-{
-  return (__m128d)__builtin_ia32_cmplesd((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] to determine if
-///    the value in the first parameter is greater than the corresponding value
-///    in the second parameter.
-///
-///    The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPLTSD / CMPLTSD </c> instruction.
-///
-/// \param __a
-///     A 128-bit vector of [2 x double]. The lower double-precision value is
-///     compared to the lower double-precision value of \a __b.
-/// \param __b
-///     A 128-bit vector of [2 x double]. The lower double-precision value is
-///     compared to the lower double-precision value of \a __a.
-/// \returns A 128-bit vector. The lower 64 bits contains the comparison
-///     results. The upper 64 bits are copied from the upper 64 bits of \a __a.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmpgt_sd(__m128d __a, __m128d __b)
-{
-  __m128d __c = __builtin_ia32_cmpltsd((__v2df)__b, (__v2df)__a);
-  return __extension__ (__m128d) { __c[0], __a[1] };
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] to determine if
-///    the value in the first parameter is greater than or equal to the
-///    corresponding value in the second parameter.
-///
-///    The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPLESD / CMPLESD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __b.
-/// \param __b
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __a.
-/// \returns A 128-bit vector. The lower 64 bits contains the comparison
-///    results. The upper 64 bits are copied from the upper 64 bits of \a __a.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmpge_sd(__m128d __a, __m128d __b)
-{
-  __m128d __c = __builtin_ia32_cmplesd((__v2df)__b, (__v2df)__a);
-  return __extension__ (__m128d) { __c[0], __a[1] };
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] to determine if
-///    the value in the first parameter is "ordered" with respect to the
-///    corresponding value in the second parameter.
-///
-///    The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. A pair
-///    of double-precision values are "ordered" with respect to each other if
-///    neither value is a NaN.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPORDSD / CMPORDSD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __b.
-/// \param __b
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __a.
-/// \returns A 128-bit vector. The lower 64 bits contains the comparison
-///    results. The upper 64 bits are copied from the upper 64 bits of \a __a.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmpord_sd(__m128d __a, __m128d __b)
-{
-  return (__m128d)__builtin_ia32_cmpordsd((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] to determine if
-///    the value in the first parameter is "unordered" with respect to the
-///    corresponding value in the second parameter.
-///
-///    The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. A pair
-///    of double-precision values are "unordered" with respect to each other if
-///    one or both values are NaN.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPUNORDSD / CMPUNORDSD </c>
-///   instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __b.
-/// \param __b
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __a.
-/// \returns A 128-bit vector. The lower 64 bits contains the comparison
-///    results. The upper 64 bits are copied from the upper 64 bits of \a __a.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmpunord_sd(__m128d __a, __m128d __b)
-{
-  return (__m128d)__builtin_ia32_cmpunordsd((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] to determine if
-///    the value in the first parameter is unequal to the corresponding value in
-///    the second parameter.
-///
-///    The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPNEQSD / CMPNEQSD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __b.
-/// \param __b
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __a.
-/// \returns A 128-bit vector. The lower 64 bits contains the comparison
-///    results. The upper 64 bits are copied from the upper 64 bits of \a __a.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmpneq_sd(__m128d __a, __m128d __b)
-{
-  return (__m128d)__builtin_ia32_cmpneqsd((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] to determine if
-///    the value in the first parameter is not less than the corresponding
-///    value in the second parameter.
-///
-///    The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPNLTSD / CMPNLTSD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __b.
-/// \param __b
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __a.
-/// \returns A 128-bit vector. The lower 64 bits contains the comparison
-///    results. The upper 64 bits are copied from the upper 64 bits of \a __a.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmpnlt_sd(__m128d __a, __m128d __b)
-{
-  return (__m128d)__builtin_ia32_cmpnltsd((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] to determine if
-///    the value in the first parameter is not less than or equal to the
-///    corresponding value in the second parameter.
-///
-///    The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPNLESD / CMPNLESD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __b.
-/// \param __b
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __a.
-/// \returns  A 128-bit vector. The lower 64 bits contains the comparison
-///    results. The upper 64 bits are copied from the upper 64 bits of \a __a.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmpnle_sd(__m128d __a, __m128d __b)
-{
-  return (__m128d)__builtin_ia32_cmpnlesd((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] to determine if
-///    the value in the first parameter is not greater than the corresponding
-///    value in the second parameter.
-///
-///    The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPNLTSD / CMPNLTSD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __b.
-/// \param __b
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __a.
-/// \returns A 128-bit vector. The lower 64 bits contains the comparison
-///    results. The upper 64 bits are copied from the upper 64 bits of \a __a.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmpngt_sd(__m128d __a, __m128d __b)
-{
-  __m128d __c = __builtin_ia32_cmpnltsd((__v2df)__b, (__v2df)__a);
-  return __extension__ (__m128d) { __c[0], __a[1] };
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] to determine if
-///    the value in the first parameter is not greater than or equal to the
-///    corresponding value in the second parameter.
-///
-///    The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPNLESD / CMPNLESD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __b.
-/// \param __b
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __a.
-/// \returns A 128-bit vector. The lower 64 bits contains the comparison
-///    results. The upper 64 bits are copied from the upper 64 bits of \a __a.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cmpnge_sd(__m128d __a, __m128d __b)
-{
-  __m128d __c = __builtin_ia32_cmpnlesd((__v2df)__b, (__v2df)__a);
-  return __extension__ (__m128d) { __c[0], __a[1] };
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] for equality.
-///
-///    The comparison yields 0 for false, 1 for true. If either of the two
-///    lower double-precision values is NaN, 0 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCOMISD / COMISD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __b.
-/// \param __b
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison results. If either of the two
-///    lower double-precision values is NaN, 0 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_comieq_sd(__m128d __a, __m128d __b)
-{
-  return __builtin_ia32_comisdeq((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] to determine if
-///    the value in the first parameter is less than the corresponding value in
-///    the second parameter.
-///
-///    The comparison yields 0 for false, 1 for true. If either of the two
-///    lower double-precision values is NaN, 0 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCOMISD / COMISD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __b.
-/// \param __b
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison results. If either of the two
-///     lower double-precision values is NaN, 0 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_comilt_sd(__m128d __a, __m128d __b)
-{
-  return __builtin_ia32_comisdlt((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] to determine if
-///    the value in the first parameter is less than or equal to the
-///    corresponding value in the second parameter.
-///
-///    The comparison yields 0 for false, 1 for true. If either of the two
-///    lower double-precision values is NaN, 0 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCOMISD / COMISD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __b.
-/// \param __b
-///     A 128-bit vector of [2 x double]. The lower double-precision value is
-///     compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison results. If either of the two
-///     lower double-precision values is NaN, 0 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_comile_sd(__m128d __a, __m128d __b)
-{
-  return __builtin_ia32_comisdle((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] to determine if
-///    the value in the first parameter is greater than the corresponding value
-///    in the second parameter.
-///
-///    The comparison yields 0 for false, 1 for true. If either of the two
-///    lower double-precision values is NaN, 0 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCOMISD / COMISD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __b.
-/// \param __b
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison results. If either of the two
-///     lower double-precision values is NaN, 0 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_comigt_sd(__m128d __a, __m128d __b)
-{
-  return __builtin_ia32_comisdgt((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] to determine if
-///    the value in the first parameter is greater than or equal to the
-///    corresponding value in the second parameter.
-///
-///    The comparison yields 0 for false, 1 for true. If either of the two
-///    lower double-precision values is NaN, 0 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCOMISD / COMISD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __b.
-/// \param __b
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison results. If either of the two
-///    lower double-precision values is NaN, 0 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_comige_sd(__m128d __a, __m128d __b)
-{
-  return __builtin_ia32_comisdge((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] to determine if
-///    the value in the first parameter is unequal to the corresponding value in
-///    the second parameter.
-///
-///    The comparison yields 0 for false, 1 for true. If either of the two
-///    lower double-precision values is NaN, 1 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCOMISD / COMISD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __b.
-/// \param __b
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison results. If either of the two
-///     lower double-precision values is NaN, 1 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_comineq_sd(__m128d __a, __m128d __b)
-{
-  return __builtin_ia32_comisdneq((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] for equality. The
-///    comparison yields 0 for false, 1 for true.
-///
-///    If either of the two lower double-precision values is NaN, 0 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUCOMISD / UCOMISD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __b.
-/// \param __b
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison results. If either of the two
-///    lower double-precision values is NaN, 0 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_ucomieq_sd(__m128d __a, __m128d __b)
-{
-  return __builtin_ia32_ucomisdeq((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] to determine if
-///    the value in the first parameter is less than the corresponding value in
-///    the second parameter.
-///
-///    The comparison yields 0 for false, 1 for true. If either of the two lower
-///    double-precision values is NaN, 0 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUCOMISD / UCOMISD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __b.
-/// \param __b
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison results. If either of the two
-///    lower double-precision values is NaN, 0 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_ucomilt_sd(__m128d __a, __m128d __b)
-{
-  return __builtin_ia32_ucomisdlt((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] to determine if
-///    the value in the first parameter is less than or equal to the
-///    corresponding value in the second parameter.
-///
-///    The comparison yields 0 for false, 1 for true. If either of the two lower
-///    double-precision values is NaN, 0 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUCOMISD / UCOMISD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __b.
-/// \param __b
-///     A 128-bit vector of [2 x double]. The lower double-precision value is
-///     compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison results. If either of the two
-///     lower double-precision values is NaN, 0 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_ucomile_sd(__m128d __a, __m128d __b)
-{
-  return __builtin_ia32_ucomisdle((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] to determine if
-///    the value in the first parameter is greater than the corresponding value
-///    in the second parameter.
-///
-///    The comparison yields 0 for false, 1 for true. If either of the two lower
-///    double-precision values is NaN, 0 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUCOMISD / UCOMISD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __b.
-/// \param __b
-///     A 128-bit vector of [2 x double]. The lower double-precision value is
-///     compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison results. If either of the two
-///     lower double-precision values is NaN, 0 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_ucomigt_sd(__m128d __a, __m128d __b)
-{
-  return __builtin_ia32_ucomisdgt((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] to determine if
-///    the value in the first parameter is greater than or equal to the
-///    corresponding value in the second parameter.
-///
-///    The comparison yields 0 for false, 1 for true.  If either of the two
-///    lower double-precision values is NaN, 0 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUCOMISD / UCOMISD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __b.
-/// \param __b
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison results. If either of the two
-///    lower double-precision values is NaN, 0 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_ucomige_sd(__m128d __a, __m128d __b)
-{
-  return __builtin_ia32_ucomisdge((__v2df)__a, (__v2df)__b);
-}
-
-/// Compares the lower double-precision floating-point values in each of
-///    the two 128-bit floating-point vectors of [2 x double] to determine if
-///    the value in the first parameter is unequal to the corresponding value in
-///    the second parameter.
-///
-///    The comparison yields 0 for false, 1 for true. If either of the two lower
-///    double-precision values is NaN, 1 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUCOMISD / UCOMISD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __b.
-/// \param __b
-///    A 128-bit vector of [2 x double]. The lower double-precision value is
-///    compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison result. If either of the two
-///    lower double-precision values is NaN, 1 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_ucomineq_sd(__m128d __a, __m128d __b)
-{
-  return __builtin_ia32_ucomisdneq((__v2df)__a, (__v2df)__b);
-}
-
-/// Converts the two double-precision floating-point elements of a
-///    128-bit vector of [2 x double] into two single-precision floating-point
-///    values, returned in the lower 64 bits of a 128-bit vector of [4 x float].
-///    The upper 64 bits of the result vector are set to zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTPD2PS / CVTPD2PS </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the
-///    converted values. The upper 64 bits are set to zero.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cvtpd_ps(__m128d __a)
-{
-  return __builtin_ia32_cvtpd2ps((__v2df)__a);
-}
-
-/// Converts the lower two single-precision floating-point elements of a
-///    128-bit vector of [4 x float] into two double-precision floating-point
-///    values, returned in a 128-bit vector of [2 x double]. The upper two
-///    elements of the input vector are unused.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTPS2PD / CVTPS2PD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The lower two single-precision
-///    floating-point elements are converted to double-precision values. The
-///    upper two elements are unused.
-/// \returns A 128-bit vector of [2 x double] containing the converted values.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cvtps_pd(__m128 __a)
-{
-  return (__m128d) __builtin_convertvector(
-      __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 1), __v2df);
-}
-
-/// Converts the lower two integer elements of a 128-bit vector of
-///    [4 x i32] into two double-precision floating-point values, returned in a
-///    128-bit vector of [2 x double].
-///
-///    The upper two elements of the input vector are unused.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTDQ2PD / CVTDQ2PD </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector of [4 x i32]. The lower two integer elements are
-///    converted to double-precision values.
-///
-///    The upper two elements are unused.
-/// \returns A 128-bit vector of [2 x double] containing the converted values.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cvtepi32_pd(__m128i __a)
-{
-  return (__m128d) __builtin_convertvector(
-      __builtin_shufflevector((__v4si)__a, (__v4si)__a, 0, 1), __v2df);
-}
-
-/// Converts the two double-precision floating-point elements of a
-///    128-bit vector of [2 x double] into two signed 32-bit integer values,
-///    returned in the lower 64 bits of a 128-bit vector of [4 x i32]. The upper
-///    64 bits of the result vector are set to zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTPD2DQ / CVTPD2DQ </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \returns A 128-bit vector of [4 x i32] whose lower 64 bits contain the
-///    converted values. The upper 64 bits are set to zero.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cvtpd_epi32(__m128d __a)
-{
-  return __builtin_ia32_cvtpd2dq((__v2df)__a);
-}
-
-/// Converts the low-order element of a 128-bit vector of [2 x double]
-///    into a 32-bit signed integer value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTSD2SI / CVTSD2SI </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower 64 bits are used in the
-///    conversion.
-/// \returns A 32-bit signed integer containing the converted value.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_cvtsd_si32(__m128d __a)
-{
-  return __builtin_ia32_cvtsd2si((__v2df)__a);
-}
-
-/// Converts the lower double-precision floating-point element of a
-///    128-bit vector of [2 x double], in the second parameter, into a
-///    single-precision floating-point value, returned in the lower 32 bits of a
-///    128-bit vector of [4 x float]. The upper 96 bits of the result vector are
-///    copied from the upper 96 bits of the first parameter.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTSD2SS / CVTSD2SS </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The upper 96 bits of this parameter are
-///    copied to the upper 96 bits of the result.
-/// \param __b
-///    A 128-bit vector of [2 x double]. The lower double-precision
-///    floating-point element is used in the conversion.
-/// \returns A 128-bit vector of [4 x float]. The lower 32 bits contain the
-///    converted value from the second parameter. The upper 96 bits are copied
-///    from the upper 96 bits of the first parameter.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cvtsd_ss(__m128 __a, __m128d __b)
-{
-  return (__m128)__builtin_ia32_cvtsd2ss((__v4sf)__a, (__v2df)__b);
-}
-
-/// Converts a 32-bit signed integer value, in the second parameter, into
-///    a double-precision floating-point value, returned in the lower 64 bits of
-///    a 128-bit vector of [2 x double]. The upper 64 bits of the result vector
-///    are copied from the upper 64 bits of the first parameter.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTSI2SD / CVTSI2SD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The upper 64 bits of this parameter are
-///    copied to the upper 64 bits of the result.
-/// \param __b
-///    A 32-bit signed integer containing the value to be converted.
-/// \returns A 128-bit vector of [2 x double]. The lower 64 bits contain the
-///    converted value from the second parameter. The upper 64 bits are copied
-///    from the upper 64 bits of the first parameter.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cvtsi32_sd(__m128d __a, int __b)
-{
-  __a[0] = __b;
-  return __a;
-}
-
-/// Converts the lower single-precision floating-point element of a
-///    128-bit vector of [4 x float], in the second parameter, into a
-///    double-precision floating-point value, returned in the lower 64 bits of
-///    a 128-bit vector of [2 x double]. The upper 64 bits of the result vector
-///    are copied from the upper 64 bits of the first parameter.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTSS2SD / CVTSS2SD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The upper 64 bits of this parameter are
-///    copied to the upper 64 bits of the result.
-/// \param __b
-///    A 128-bit vector of [4 x float]. The lower single-precision
-///    floating-point element is used in the conversion.
-/// \returns A 128-bit vector of [2 x double]. The lower 64 bits contain the
-///    converted value from the second parameter. The upper 64 bits are copied
-///    from the upper 64 bits of the first parameter.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cvtss_sd(__m128d __a, __m128 __b)
-{
-  __a[0] = __b[0];
-  return __a;
-}
-
-/// Converts the two double-precision floating-point elements of a
-///    128-bit vector of [2 x double] into two signed 32-bit integer values,
-///    returned in the lower 64 bits of a 128-bit vector of [4 x i32].
-///
-///    If the result of either conversion is inexact, the result is truncated
-///    (rounded towards zero) regardless of the current MXCSR setting. The upper
-///    64 bits of the result vector are set to zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTTPD2DQ / CVTTPD2DQ </c>
-///   instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \returns A 128-bit vector of [4 x i32] whose lower 64 bits contain the
-///    converted values. The upper 64 bits are set to zero.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cvttpd_epi32(__m128d __a)
-{
-  return (__m128i)__builtin_ia32_cvttpd2dq((__v2df)__a);
-}
-
-/// Converts the low-order element of a [2 x double] vector into a 32-bit
-///    signed integer value, truncating the result when it is inexact.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTTSD2SI / CVTTSD2SI </c>
-///   instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower 64 bits are used in the
-///    conversion.
-/// \returns A 32-bit signed integer containing the converted value.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_cvttsd_si32(__m128d __a)
-{
-  return __builtin_ia32_cvttsd2si((__v2df)__a);
-}
-
-/// Converts the two double-precision floating-point elements of a
-///    128-bit vector of [2 x double] into two signed 32-bit integer values,
-///    returned in a 64-bit vector of [2 x i32].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CVTPD2PI </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \returns A 64-bit vector of [2 x i32] containing the converted values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_cvtpd_pi32(__m128d __a)
-{
-  return (__m64)__builtin_ia32_cvtpd2pi((__v2df)__a);
-}
-
-/// Converts the two double-precision floating-point elements of a
-///    128-bit vector of [2 x double] into two signed 32-bit integer values,
-///    returned in a 64-bit vector of [2 x i32].
-///
-///    If the result of either conversion is inexact, the result is truncated
-///    (rounded towards zero) regardless of the current MXCSR setting.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CVTTPD2PI </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double].
-/// \returns A 64-bit vector of [2 x i32] containing the converted values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_cvttpd_pi32(__m128d __a)
-{
-  return (__m64)__builtin_ia32_cvttpd2pi((__v2df)__a);
-}
-
-/// Converts the two signed 32-bit integer elements of a 64-bit vector of
-///    [2 x i32] into two double-precision floating-point values, returned in a
-///    128-bit vector of [2 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CVTPI2PD </c> instruction.
-///
-/// \param __a
-///    A 64-bit vector of [2 x i32].
-/// \returns A 128-bit vector of [2 x double] containing the converted values.
-static __inline__ __m128d __DEFAULT_FN_ATTRS_MMX
-_mm_cvtpi32_pd(__m64 __a)
-{
-  return __builtin_ia32_cvtpi2pd((__v2si)__a);
-}
-
-/// Returns the low-order element of a 128-bit vector of [2 x double] as
-///    a double-precision floating-point value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower 64 bits are returned.
-/// \returns A double-precision floating-point value copied from the lower 64
-///    bits of \a __a.
-static __inline__ double __DEFAULT_FN_ATTRS
-_mm_cvtsd_f64(__m128d __a)
-{
-  return __a[0];
-}
-
-/// Loads a 128-bit floating-point vector of [2 x double] from an aligned
-///    memory location.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVAPD / MOVAPD </c> instruction.
-///
-/// \param __dp
-///    A pointer to a 128-bit memory location. The address of the memory
-///    location has to be 16-byte aligned.
-/// \returns A 128-bit vector of [2 x double] containing the loaded values.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_load_pd(double const *__dp)
-{
-  return *(const __m128d*)__dp;
-}
-
-/// Loads a double-precision floating-point value from a specified memory
-///    location and duplicates it to both vector elements of a 128-bit vector of
-///    [2 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVDDUP / MOVDDUP </c> instruction.
-///
-/// \param __dp
-///    A pointer to a memory location containing a double-precision value.
-/// \returns A 128-bit vector of [2 x double] containing the loaded and
-///    duplicated values.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_load1_pd(double const *__dp)
-{
-  struct __mm_load1_pd_struct {
-    double __u;
-  } __attribute__((__packed__, __may_alias__));
-  double __u = ((const struct __mm_load1_pd_struct*)__dp)->__u;
-  return __extension__ (__m128d){ __u, __u };
-}
-
-#define        _mm_load_pd1(dp)        _mm_load1_pd(dp)
-
-/// Loads two double-precision values, in reverse order, from an aligned
-///    memory location into a 128-bit vector of [2 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVAPD / MOVAPD </c> instruction +
-/// needed shuffling instructions. In AVX mode, the shuffling may be combined
-/// with the \c VMOVAPD, resulting in only a \c VPERMILPD instruction.
-///
-/// \param __dp
-///    A 16-byte aligned pointer to an array of double-precision values to be
-///    loaded in reverse order.
-/// \returns A 128-bit vector of [2 x double] containing the reversed loaded
-///    values.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_loadr_pd(double const *__dp)
-{
-  __m128d __u = *(const __m128d*)__dp;
-  return __builtin_shufflevector((__v2df)__u, (__v2df)__u, 1, 0);
-}
-
-/// Loads a 128-bit floating-point vector of [2 x double] from an
-///    unaligned memory location.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVUPD / MOVUPD </c> instruction.
-///
-/// \param __dp
-///    A pointer to a 128-bit memory location. The address of the memory
-///    location does not have to be aligned.
-/// \returns A 128-bit vector of [2 x double] containing the loaded values.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_loadu_pd(double const *__dp)
-{
-  struct __loadu_pd {
-    __m128d_u __v;
-  } __attribute__((__packed__, __may_alias__));
-  return ((const struct __loadu_pd*)__dp)->__v;
-}
-
-/// Loads a 64-bit integer value to the low element of a 128-bit integer
-///    vector and clears the upper element.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVQ / MOVQ </c> instruction.
-///
-/// \param __a
-///    A pointer to a 64-bit memory location. The address of the memory
-///    location does not have to be aligned.
-/// \returns A 128-bit vector of [2 x i64] containing the loaded value.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_loadu_si64(void const *__a)
-{
-  struct __loadu_si64 {
-    long long __v;
-  } __attribute__((__packed__, __may_alias__));
-  long long __u = ((const struct __loadu_si64*)__a)->__v;
-  return __extension__ (__m128i)(__v2di){__u, 0LL};
-}
-
-/// Loads a 32-bit integer value to the low element of a 128-bit integer
-///    vector and clears the upper element.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVD / MOVD </c> instruction.
-///
-/// \param __a
-///    A pointer to a 32-bit memory location. The address of the memory
-///    location does not have to be aligned.
-/// \returns A 128-bit vector of [4 x i32] containing the loaded value.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_loadu_si32(void const *__a)
-{
-  struct __loadu_si32 {
-    int __v;
-  } __attribute__((__packed__, __may_alias__));
-  int __u = ((const struct __loadu_si32*)__a)->__v;
-  return __extension__ (__m128i)(__v4si){__u, 0, 0, 0};
-}
-
-/// Loads a 16-bit integer value to the low element of a 128-bit integer
-///    vector and clears the upper element.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic does not correspond to a specific instruction.
-///
-/// \param __a
-///    A pointer to a 16-bit memory location. The address of the memory
-///    location does not have to be aligned.
-/// \returns A 128-bit vector of [8 x i16] containing the loaded value.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_loadu_si16(void const *__a)
-{
-  struct __loadu_si16 {
-    short __v;
-  } __attribute__((__packed__, __may_alias__));
-  short __u = ((const struct __loadu_si16*)__a)->__v;
-  return __extension__ (__m128i)(__v8hi){__u, 0, 0, 0, 0, 0, 0, 0};
-}
-
-/// Loads a 64-bit double-precision value to the low element of a
-///    128-bit integer vector and clears the upper element.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVSD / MOVSD </c> instruction.
-///
-/// \param __dp
-///    A pointer to a memory location containing a double-precision value.
-///    The address of the memory location does not have to be aligned.
-/// \returns A 128-bit vector of [2 x double] containing the loaded value.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_load_sd(double const *__dp)
-{
-  struct __mm_load_sd_struct {
-    double __u;
-  } __attribute__((__packed__, __may_alias__));
-  double __u = ((const struct __mm_load_sd_struct*)__dp)->__u;
-  return __extension__ (__m128d){ __u, 0 };
-}
-
-/// Loads a double-precision value into the high-order bits of a 128-bit
-///    vector of [2 x double]. The low-order bits are copied from the low-order
-///    bits of the first operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVHPD / MOVHPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. \n
-///    Bits [63:0] are written to bits [63:0] of the result.
-/// \param __dp
-///    A pointer to a 64-bit memory location containing a double-precision
-///    floating-point value that is loaded. The loaded value is written to bits
-///    [127:64] of the result. The address of the memory location does not have
-///    to be aligned.
-/// \returns A 128-bit vector of [2 x double] containing the moved values.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_loadh_pd(__m128d __a, double const *__dp)
-{
-  struct __mm_loadh_pd_struct {
-    double __u;
-  } __attribute__((__packed__, __may_alias__));
-  double __u = ((const struct __mm_loadh_pd_struct*)__dp)->__u;
-  return __extension__ (__m128d){ __a[0], __u };
-}
-
-/// Loads a double-precision value into the low-order bits of a 128-bit
-///    vector of [2 x double]. The high-order bits are copied from the
-///    high-order bits of the first operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVLPD / MOVLPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. \n
-///    Bits [127:64] are written to bits [127:64] of the result.
-/// \param __dp
-///    A pointer to a 64-bit memory location containing a double-precision
-///    floating-point value that is loaded. The loaded value is written to bits
-///    [63:0] of the result. The address of the memory location does not have to
-///    be aligned.
-/// \returns A 128-bit vector of [2 x double] containing the moved values.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_loadl_pd(__m128d __a, double const *__dp)
-{
-  struct __mm_loadl_pd_struct {
-    double __u;
-  } __attribute__((__packed__, __may_alias__));
-  double __u = ((const struct __mm_loadl_pd_struct*)__dp)->__u;
-  return __extension__ (__m128d){ __u, __a[1] };
-}
-
-/// Constructs a 128-bit floating-point vector of [2 x double] with
-///    unspecified content. This could be used as an argument to another
-///    intrinsic function where the argument is required but the value is not
-///    actually used.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \returns A 128-bit floating-point vector of [2 x double] with unspecified
-///    content.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_undefined_pd(void)
-{
-  return (__m128d)__builtin_ia32_undef128();
-}
-
-/// Constructs a 128-bit floating-point vector of [2 x double]. The lower
-///    64 bits of the vector are initialized with the specified double-precision
-///    floating-point value. The upper 64 bits are set to zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVQ / MOVQ </c> instruction.
-///
-/// \param __w
-///    A double-precision floating-point value used to initialize the lower 64
-///    bits of the result.
-/// \returns An initialized 128-bit floating-point vector of [2 x double]. The
-///    lower 64 bits contain the value of the parameter. The upper 64 bits are
-///    set to zero.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_set_sd(double __w)
-{
-  return __extension__ (__m128d){ __w, 0 };
-}
-
-/// Constructs a 128-bit floating-point vector of [2 x double], with each
-///    of the two double-precision floating-point vector elements set to the
-///    specified double-precision floating-point value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVDDUP / MOVLHPS </c> instruction.
-///
-/// \param __w
-///    A double-precision floating-point value used to initialize each vector
-///    element of the result.
-/// \returns An initialized 128-bit floating-point vector of [2 x double].
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_set1_pd(double __w)
-{
-  return __extension__ (__m128d){ __w, __w };
-}
-
-/// Constructs a 128-bit floating-point vector of [2 x double], with each
-///    of the two double-precision floating-point vector elements set to the
-///    specified double-precision floating-point value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVDDUP / MOVLHPS </c> instruction.
-///
-/// \param __w
-///    A double-precision floating-point value used to initialize each vector
-///    element of the result.
-/// \returns An initialized 128-bit floating-point vector of [2 x double].
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_set_pd1(double __w)
-{
-  return _mm_set1_pd(__w);
-}
-
-/// Constructs a 128-bit floating-point vector of [2 x double]
-///    initialized with the specified double-precision floating-point values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUNPCKLPD / UNPCKLPD </c> instruction.
-///
-/// \param __w
-///    A double-precision floating-point value used to initialize the upper 64
-///    bits of the result.
-/// \param __x
-///    A double-precision floating-point value used to initialize the lower 64
-///    bits of the result.
-/// \returns An initialized 128-bit floating-point vector of [2 x double].
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_set_pd(double __w, double __x)
-{
-  return __extension__ (__m128d){ __x, __w };
-}
-
-/// Constructs a 128-bit floating-point vector of [2 x double],
-///    initialized in reverse order with the specified double-precision
-///    floating-point values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUNPCKLPD / UNPCKLPD </c> instruction.
-///
-/// \param __w
-///    A double-precision floating-point value used to initialize the lower 64
-///    bits of the result.
-/// \param __x
-///    A double-precision floating-point value used to initialize the upper 64
-///    bits of the result.
-/// \returns An initialized 128-bit floating-point vector of [2 x double].
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_setr_pd(double __w, double __x)
-{
-  return __extension__ (__m128d){ __w, __x };
-}
-
-/// Constructs a 128-bit floating-point vector of [2 x double]
-///    initialized to zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VXORPS / XORPS </c> instruction.
-///
-/// \returns An initialized 128-bit floating-point vector of [2 x double] with
-///    all elements set to zero.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_setzero_pd(void)
-{
-  return __extension__ (__m128d){ 0, 0 };
-}
-
-/// Constructs a 128-bit floating-point vector of [2 x double]. The lower
-///    64 bits are set to the lower 64 bits of the second parameter. The upper
-///    64 bits are set to the upper 64 bits of the first parameter.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VBLENDPD / BLENDPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The upper 64 bits are written to the
-///    upper 64 bits of the result.
-/// \param __b
-///    A 128-bit vector of [2 x double]. The lower 64 bits are written to the
-///    lower 64 bits of the result.
-/// \returns A 128-bit vector of [2 x double] containing the moved values.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_move_sd(__m128d __a, __m128d __b)
-{
-  __a[0] = __b[0];
-  return __a;
-}
-
-/// Stores the lower 64 bits of a 128-bit vector of [2 x double] to a
-///    memory location.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVSD / MOVSD </c> instruction.
-///
-/// \param __dp
-///    A pointer to a 64-bit memory location.
-/// \param __a
-///    A 128-bit vector of [2 x double] containing the value to be stored.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_store_sd(double *__dp, __m128d __a)
-{
-  struct __mm_store_sd_struct {
-    double __u;
-  } __attribute__((__packed__, __may_alias__));
-  ((struct __mm_store_sd_struct*)__dp)->__u = __a[0];
-}
-
-/// Moves packed double-precision values from a 128-bit vector of
-///    [2 x double] to a memory location.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c>VMOVAPD / MOVAPS</c> instruction.
-///
-/// \param __dp
-///    A pointer to an aligned memory location that can store two
-///    double-precision values.
-/// \param __a
-///    A packed 128-bit vector of [2 x double] containing the values to be
-///    moved.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_store_pd(double *__dp, __m128d __a)
-{
-  *(__m128d*)__dp = __a;
-}
-
-/// Moves the lower 64 bits of a 128-bit vector of [2 x double] twice to
-///    the upper and lower 64 bits of a memory location.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the
-///   <c> VMOVDDUP + VMOVAPD / MOVLHPS + MOVAPS </c> instruction.
-///
-/// \param __dp
-///    A pointer to a memory location that can store two double-precision
-///    values.
-/// \param __a
-///    A 128-bit vector of [2 x double] whose lower 64 bits are copied to each
-///    of the values in \a __dp.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_store1_pd(double *__dp, __m128d __a)
-{
-  __a = __builtin_shufflevector((__v2df)__a, (__v2df)__a, 0, 0);
-  _mm_store_pd(__dp, __a);
-}
-
-/// Moves the lower 64 bits of a 128-bit vector of [2 x double] twice to
-///    the upper and lower 64 bits of a memory location.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the
-///   <c> VMOVDDUP + VMOVAPD / MOVLHPS + MOVAPS </c> instruction.
-///
-/// \param __dp
-///    A pointer to a memory location that can store two double-precision
-///    values.
-/// \param __a
-///    A 128-bit vector of [2 x double] whose lower 64 bits are copied to each
-///    of the values in \a __dp.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_store_pd1(double *__dp, __m128d __a)
-{
-  _mm_store1_pd(__dp, __a);
-}
-
-/// Stores a 128-bit vector of [2 x double] into an unaligned memory
-///    location.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVUPD / MOVUPD </c> instruction.
-///
-/// \param __dp
-///    A pointer to a 128-bit memory location. The address of the memory
-///    location does not have to be aligned.
-/// \param __a
-///    A 128-bit vector of [2 x double] containing the values to be stored.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_storeu_pd(double *__dp, __m128d __a)
-{
-  struct __storeu_pd {
-    __m128d_u __v;
-  } __attribute__((__packed__, __may_alias__));
-  ((struct __storeu_pd*)__dp)->__v = __a;
-}
-
-/// Stores two double-precision values, in reverse order, from a 128-bit
-///    vector of [2 x double] to a 16-byte aligned memory location.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to a shuffling instruction followed by a
-/// <c> VMOVAPD / MOVAPD </c> instruction.
-///
-/// \param __dp
-///    A pointer to a 16-byte aligned memory location that can store two
-///    double-precision values.
-/// \param __a
-///    A 128-bit vector of [2 x double] containing the values to be reversed and
-///    stored.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_storer_pd(double *__dp, __m128d __a)
-{
-  __a = __builtin_shufflevector((__v2df)__a, (__v2df)__a, 1, 0);
-  *(__m128d *)__dp = __a;
-}
-
-/// Stores the upper 64 bits of a 128-bit vector of [2 x double] to a
-///    memory location.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVHPD / MOVHPD </c> instruction.
-///
-/// \param __dp
-///    A pointer to a 64-bit memory location.
-/// \param __a
-///    A 128-bit vector of [2 x double] containing the value to be stored.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_storeh_pd(double *__dp, __m128d __a)
-{
-  struct __mm_storeh_pd_struct {
-    double __u;
-  } __attribute__((__packed__, __may_alias__));
-  ((struct __mm_storeh_pd_struct*)__dp)->__u = __a[1];
-}
-
-/// Stores the lower 64 bits of a 128-bit vector of [2 x double] to a
-///    memory location.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVLPD / MOVLPD </c> instruction.
-///
-/// \param __dp
-///    A pointer to a 64-bit memory location.
-/// \param __a
-///    A 128-bit vector of [2 x double] containing the value to be stored.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_storel_pd(double *__dp, __m128d __a)
-{
-  struct __mm_storeh_pd_struct {
-    double __u;
-  } __attribute__((__packed__, __may_alias__));
-  ((struct __mm_storeh_pd_struct*)__dp)->__u = __a[0];
-}
-
-/// Adds the corresponding elements of two 128-bit vectors of [16 x i8],
-///    saving the lower 8 bits of each sum in the corresponding element of a
-///    128-bit result vector of [16 x i8].
-///
-///    The integer elements of both parameters can be either signed or unsigned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPADDB / PADDB </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [16 x i8].
-/// \param __b
-///    A 128-bit vector of [16 x i8].
-/// \returns A 128-bit vector of [16 x i8] containing the sums of both
-///    parameters.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_add_epi8(__m128i __a, __m128i __b)
-{
-  return (__m128i)((__v16qu)__a + (__v16qu)__b);
-}
-
-/// Adds the corresponding elements of two 128-bit vectors of [8 x i16],
-///    saving the lower 16 bits of each sum in the corresponding element of a
-///    128-bit result vector of [8 x i16].
-///
-///    The integer elements of both parameters can be either signed or unsigned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPADDW / PADDW </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [8 x i16].
-/// \param __b
-///    A 128-bit vector of [8 x i16].
-/// \returns A 128-bit vector of [8 x i16] containing the sums of both
-///    parameters.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_add_epi16(__m128i __a, __m128i __b)
-{
-  return (__m128i)((__v8hu)__a + (__v8hu)__b);
-}
-
-/// Adds the corresponding elements of two 128-bit vectors of [4 x i32],
-///    saving the lower 32 bits of each sum in the corresponding element of a
-///    128-bit result vector of [4 x i32].
-///
-///    The integer elements of both parameters can be either signed or unsigned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPADDD / PADDD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x i32].
-/// \param __b
-///    A 128-bit vector of [4 x i32].
-/// \returns A 128-bit vector of [4 x i32] containing the sums of both
-///    parameters.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_add_epi32(__m128i __a, __m128i __b)
-{
-  return (__m128i)((__v4su)__a + (__v4su)__b);
-}
-
-/// Adds two signed or unsigned 64-bit integer values, returning the
-///    lower 64 bits of the sum.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PADDQ </c> instruction.
-///
-/// \param __a
-///    A 64-bit integer.
-/// \param __b
-///    A 64-bit integer.
-/// \returns A 64-bit integer containing the sum of both parameters.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_add_si64(__m64 __a, __m64 __b)
-{
-  return (__m64)__builtin_ia32_paddq((__v1di)__a, (__v1di)__b);
-}
-
-/// Adds the corresponding elements of two 128-bit vectors of [2 x i64],
-///    saving the lower 64 bits of each sum in the corresponding element of a
-///    128-bit result vector of [2 x i64].
-///
-///    The integer elements of both parameters can be either signed or unsigned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPADDQ / PADDQ </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x i64].
-/// \param __b
-///    A 128-bit vector of [2 x i64].
-/// \returns A 128-bit vector of [2 x i64] containing the sums of both
-///    parameters.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_add_epi64(__m128i __a, __m128i __b)
-{
-  return (__m128i)((__v2du)__a + (__v2du)__b);
-}
-
-/// Adds, with saturation, the corresponding elements of two 128-bit
-///    signed [16 x i8] vectors, saving each sum in the corresponding element of
-///    a 128-bit result vector of [16 x i8]. Positive sums greater than 0x7F are
-///    saturated to 0x7F. Negative sums less than 0x80 are saturated to 0x80.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPADDSB / PADDSB </c> instruction.
-///
-/// \param __a
-///    A 128-bit signed [16 x i8] vector.
-/// \param __b
-///    A 128-bit signed [16 x i8] vector.
-/// \returns A 128-bit signed [16 x i8] vector containing the saturated sums of
-///    both parameters.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_adds_epi8(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_ia32_paddsb128((__v16qi)__a, (__v16qi)__b);
-}
-
-/// Adds, with saturation, the corresponding elements of two 128-bit
-///    signed [8 x i16] vectors, saving each sum in the corresponding element of
-///    a 128-bit result vector of [8 x i16]. Positive sums greater than 0x7FFF
-///    are saturated to 0x7FFF. Negative sums less than 0x8000 are saturated to
-///    0x8000.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPADDSW / PADDSW </c> instruction.
-///
-/// \param __a
-///    A 128-bit signed [8 x i16] vector.
-/// \param __b
-///    A 128-bit signed [8 x i16] vector.
-/// \returns A 128-bit signed [8 x i16] vector containing the saturated sums of
-///    both parameters.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_adds_epi16(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_ia32_paddsw128((__v8hi)__a, (__v8hi)__b);
-}
-
-/// Adds, with saturation, the corresponding elements of two 128-bit
-///    unsigned [16 x i8] vectors, saving each sum in the corresponding element
-///    of a 128-bit result vector of [16 x i8]. Positive sums greater than 0xFF
-///    are saturated to 0xFF. Negative sums are saturated to 0x00.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPADDUSB / PADDUSB </c> instruction.
-///
-/// \param __a
-///    A 128-bit unsigned [16 x i8] vector.
-/// \param __b
-///    A 128-bit unsigned [16 x i8] vector.
-/// \returns A 128-bit unsigned [16 x i8] vector containing the saturated sums
-///    of both parameters.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_adds_epu8(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_ia32_paddusb128((__v16qi)__a, (__v16qi)__b);
-}
-
-/// Adds, with saturation, the corresponding elements of two 128-bit
-///    unsigned [8 x i16] vectors, saving each sum in the corresponding element
-///    of a 128-bit result vector of [8 x i16]. Positive sums greater than
-///    0xFFFF are saturated to 0xFFFF. Negative sums are saturated to 0x0000.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPADDUSB / PADDUSB </c> instruction.
-///
-/// \param __a
-///    A 128-bit unsigned [8 x i16] vector.
-/// \param __b
-///    A 128-bit unsigned [8 x i16] vector.
-/// \returns A 128-bit unsigned [8 x i16] vector containing the saturated sums
-///    of both parameters.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_adds_epu16(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_ia32_paddusw128((__v8hi)__a, (__v8hi)__b);
-}
-
-/// Computes the rounded averages of corresponding elements of two
-///    128-bit unsigned [16 x i8] vectors, saving each result in the
-///    corresponding element of a 128-bit result vector of [16 x i8].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPAVGB / PAVGB </c> instruction.
-///
-/// \param __a
-///    A 128-bit unsigned [16 x i8] vector.
-/// \param __b
-///    A 128-bit unsigned [16 x i8] vector.
-/// \returns A 128-bit unsigned [16 x i8] vector containing the rounded
-///    averages of both parameters.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_avg_epu8(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_ia32_pavgb128((__v16qi)__a, (__v16qi)__b);
-}
-
-/// Computes the rounded averages of corresponding elements of two
-///    128-bit unsigned [8 x i16] vectors, saving each result in the
-///    corresponding element of a 128-bit result vector of [8 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPAVGW / PAVGW </c> instruction.
-///
-/// \param __a
-///    A 128-bit unsigned [8 x i16] vector.
-/// \param __b
-///    A 128-bit unsigned [8 x i16] vector.
-/// \returns A 128-bit unsigned [8 x i16] vector containing the rounded
-///    averages of both parameters.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_avg_epu16(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_ia32_pavgw128((__v8hi)__a, (__v8hi)__b);
-}
-
-/// Multiplies the corresponding elements of two 128-bit signed [8 x i16]
-///    vectors, producing eight intermediate 32-bit signed integer products, and
-///    adds the consecutive pairs of 32-bit products to form a 128-bit signed
-///    [4 x i32] vector.
-///
-///    For example, bits [15:0] of both parameters are multiplied producing a
-///    32-bit product, bits [31:16] of both parameters are multiplied producing
-///    a 32-bit product, and the sum of those two products becomes bits [31:0]
-///    of the result.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPMADDWD / PMADDWD </c> instruction.
-///
-/// \param __a
-///    A 128-bit signed [8 x i16] vector.
-/// \param __b
-///    A 128-bit signed [8 x i16] vector.
-/// \returns A 128-bit signed [4 x i32] vector containing the sums of products
-///    of both parameters.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_madd_epi16(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_ia32_pmaddwd128((__v8hi)__a, (__v8hi)__b);
-}
-
-/// Compares corresponding elements of two 128-bit signed [8 x i16]
-///    vectors, saving the greater value from each comparison in the
-///    corresponding element of a 128-bit result vector of [8 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPMAXSW / PMAXSW </c> instruction.
-///
-/// \param __a
-///    A 128-bit signed [8 x i16] vector.
-/// \param __b
-///    A 128-bit signed [8 x i16] vector.
-/// \returns A 128-bit signed [8 x i16] vector containing the greater value of
-///    each comparison.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_max_epi16(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_ia32_pmaxsw128((__v8hi)__a, (__v8hi)__b);
-}
-
-/// Compares corresponding elements of two 128-bit unsigned [16 x i8]
-///    vectors, saving the greater value from each comparison in the
-///    corresponding element of a 128-bit result vector of [16 x i8].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPMAXUB / PMAXUB </c> instruction.
-///
-/// \param __a
-///    A 128-bit unsigned [16 x i8] vector.
-/// \param __b
-///    A 128-bit unsigned [16 x i8] vector.
-/// \returns A 128-bit unsigned [16 x i8] vector containing the greater value of
-///    each comparison.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_max_epu8(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_ia32_pmaxub128((__v16qi)__a, (__v16qi)__b);
-}
-
-/// Compares corresponding elements of two 128-bit signed [8 x i16]
-///    vectors, saving the smaller value from each comparison in the
-///    corresponding element of a 128-bit result vector of [8 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPMINSW / PMINSW </c> instruction.
-///
-/// \param __a
-///    A 128-bit signed [8 x i16] vector.
-/// \param __b
-///    A 128-bit signed [8 x i16] vector.
-/// \returns A 128-bit signed [8 x i16] vector containing the smaller value of
-///    each comparison.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_min_epi16(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_ia32_pminsw128((__v8hi)__a, (__v8hi)__b);
-}
-
-/// Compares corresponding elements of two 128-bit unsigned [16 x i8]
-///    vectors, saving the smaller value from each comparison in the
-///    corresponding element of a 128-bit result vector of [16 x i8].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPMINUB / PMINUB </c> instruction.
-///
-/// \param __a
-///    A 128-bit unsigned [16 x i8] vector.
-/// \param __b
-///    A 128-bit unsigned [16 x i8] vector.
-/// \returns A 128-bit unsigned [16 x i8] vector containing the smaller value of
-///    each comparison.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_min_epu8(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_ia32_pminub128((__v16qi)__a, (__v16qi)__b);
-}
-
-/// Multiplies the corresponding elements of two signed [8 x i16]
-///    vectors, saving the upper 16 bits of each 32-bit product in the
-///    corresponding element of a 128-bit signed [8 x i16] result vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPMULHW / PMULHW </c> instruction.
-///
-/// \param __a
-///    A 128-bit signed [8 x i16] vector.
-/// \param __b
-///    A 128-bit signed [8 x i16] vector.
-/// \returns A 128-bit signed [8 x i16] vector containing the upper 16 bits of
-///    each of the eight 32-bit products.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mulhi_epi16(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_ia32_pmulhw128((__v8hi)__a, (__v8hi)__b);
-}
-
-/// Multiplies the corresponding elements of two unsigned [8 x i16]
-///    vectors, saving the upper 16 bits of each 32-bit product in the
-///    corresponding element of a 128-bit unsigned [8 x i16] result vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPMULHUW / PMULHUW </c> instruction.
-///
-/// \param __a
-///    A 128-bit unsigned [8 x i16] vector.
-/// \param __b
-///    A 128-bit unsigned [8 x i16] vector.
-/// \returns A 128-bit unsigned [8 x i16] vector containing the upper 16 bits
-///    of each of the eight 32-bit products.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mulhi_epu16(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_ia32_pmulhuw128((__v8hi)__a, (__v8hi)__b);
-}
-
-/// Multiplies the corresponding elements of two signed [8 x i16]
-///    vectors, saving the lower 16 bits of each 32-bit product in the
-///    corresponding element of a 128-bit signed [8 x i16] result vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPMULLW / PMULLW </c> instruction.
-///
-/// \param __a
-///    A 128-bit signed [8 x i16] vector.
-/// \param __b
-///    A 128-bit signed [8 x i16] vector.
-/// \returns A 128-bit signed [8 x i16] vector containing the lower 16 bits of
-///    each of the eight 32-bit products.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mullo_epi16(__m128i __a, __m128i __b)
-{
-  return (__m128i)((__v8hu)__a * (__v8hu)__b);
-}
-
-/// Multiplies 32-bit unsigned integer values contained in the lower bits
-///    of the two 64-bit integer vectors and returns the 64-bit unsigned
-///    product.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PMULUDQ </c> instruction.
-///
-/// \param __a
-///    A 64-bit integer containing one of the source operands.
-/// \param __b
-///    A 64-bit integer containing one of the source operands.
-/// \returns A 64-bit integer vector containing the product of both operands.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_mul_su32(__m64 __a, __m64 __b)
-{
-  return __builtin_ia32_pmuludq((__v2si)__a, (__v2si)__b);
-}
-
-/// Multiplies 32-bit unsigned integer values contained in the lower
-///    bits of the corresponding elements of two [2 x i64] vectors, and returns
-///    the 64-bit products in the corresponding elements of a [2 x i64] vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPMULUDQ / PMULUDQ </c> instruction.
-///
-/// \param __a
-///    A [2 x i64] vector containing one of the source operands.
-/// \param __b
-///    A [2 x i64] vector containing one of the source operands.
-/// \returns A [2 x i64] vector containing the product of both operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mul_epu32(__m128i __a, __m128i __b)
-{
-  return __builtin_ia32_pmuludq128((__v4si)__a, (__v4si)__b);
-}
-
-/// Computes the absolute differences of corresponding 8-bit integer
-///    values in two 128-bit vectors. Sums the first 8 absolute differences, and
-///    separately sums the second 8 absolute differences. Packs these two
-///    unsigned 16-bit integer sums into the upper and lower elements of a
-///    [2 x i64] vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSADBW / PSADBW </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing one of the source operands.
-/// \param __b
-///    A 128-bit integer vector containing one of the source operands.
-/// \returns A [2 x i64] vector containing the sums of the sets of absolute
-///    differences between both operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_sad_epu8(__m128i __a, __m128i __b)
-{
-  return __builtin_ia32_psadbw128((__v16qi)__a, (__v16qi)__b);
-}
-
-/// Subtracts the corresponding 8-bit integer values in the operands.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSUBB / PSUBB </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the minuends.
-/// \param __b
-///    A 128-bit integer vector containing the subtrahends.
-/// \returns A 128-bit integer vector containing the differences of the values
-///    in the operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_sub_epi8(__m128i __a, __m128i __b)
-{
-  return (__m128i)((__v16qu)__a - (__v16qu)__b);
-}
-
-/// Subtracts the corresponding 16-bit integer values in the operands.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSUBW / PSUBW </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the minuends.
-/// \param __b
-///    A 128-bit integer vector containing the subtrahends.
-/// \returns A 128-bit integer vector containing the differences of the values
-///    in the operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_sub_epi16(__m128i __a, __m128i __b)
-{
-  return (__m128i)((__v8hu)__a - (__v8hu)__b);
-}
-
-/// Subtracts the corresponding 32-bit integer values in the operands.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSUBD / PSUBD </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the minuends.
-/// \param __b
-///    A 128-bit integer vector containing the subtrahends.
-/// \returns A 128-bit integer vector containing the differences of the values
-///    in the operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_sub_epi32(__m128i __a, __m128i __b)
-{
-  return (__m128i)((__v4su)__a - (__v4su)__b);
-}
-
-/// Subtracts signed or unsigned 64-bit integer values and writes the
-///    difference to the corresponding bits in the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSUBQ </c> instruction.
-///
-/// \param __a
-///    A 64-bit integer vector containing the minuend.
-/// \param __b
-///    A 64-bit integer vector containing the subtrahend.
-/// \returns A 64-bit integer vector containing the difference of the values in
-///    the operands.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_sub_si64(__m64 __a, __m64 __b)
-{
-  return (__m64)__builtin_ia32_psubq((__v1di)__a, (__v1di)__b);
-}
-
-/// Subtracts the corresponding elements of two [2 x i64] vectors.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSUBQ / PSUBQ </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the minuends.
-/// \param __b
-///    A 128-bit integer vector containing the subtrahends.
-/// \returns A 128-bit integer vector containing the differences of the values
-///    in the operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_sub_epi64(__m128i __a, __m128i __b)
-{
-  return (__m128i)((__v2du)__a - (__v2du)__b);
-}
-
-/// Subtracts corresponding 8-bit signed integer values in the input and
-///    returns the differences in the corresponding bytes in the destination.
-///    Differences greater than 0x7F are saturated to 0x7F, and differences less
-///    than 0x80 are saturated to 0x80.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSUBSB / PSUBSB </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the minuends.
-/// \param __b
-///    A 128-bit integer vector containing the subtrahends.
-/// \returns A 128-bit integer vector containing the differences of the values
-///    in the operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_subs_epi8(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_ia32_psubsb128((__v16qi)__a, (__v16qi)__b);
-}
-
-/// Subtracts corresponding 16-bit signed integer values in the input and
-///    returns the differences in the corresponding bytes in the destination.
-///    Differences greater than 0x7FFF are saturated to 0x7FFF, and values less
-///    than 0x8000 are saturated to 0x8000.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSUBSW / PSUBSW </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the minuends.
-/// \param __b
-///    A 128-bit integer vector containing the subtrahends.
-/// \returns A 128-bit integer vector containing the differences of the values
-///    in the operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_subs_epi16(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_ia32_psubsw128((__v8hi)__a, (__v8hi)__b);
-}
-
-/// Subtracts corresponding 8-bit unsigned integer values in the input
-///    and returns the differences in the corresponding bytes in the
-///    destination. Differences less than 0x00 are saturated to 0x00.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSUBUSB / PSUBUSB </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the minuends.
-/// \param __b
-///    A 128-bit integer vector containing the subtrahends.
-/// \returns A 128-bit integer vector containing the unsigned integer
-///    differences of the values in the operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_subs_epu8(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_ia32_psubusb128((__v16qi)__a, (__v16qi)__b);
-}
-
-/// Subtracts corresponding 16-bit unsigned integer values in the input
-///    and returns the differences in the corresponding bytes in the
-///    destination. Differences less than 0x0000 are saturated to 0x0000.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSUBUSW / PSUBUSW </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the minuends.
-/// \param __b
-///    A 128-bit integer vector containing the subtrahends.
-/// \returns A 128-bit integer vector containing the unsigned integer
-///    differences of the values in the operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_subs_epu16(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_ia32_psubusw128((__v8hi)__a, (__v8hi)__b);
-}
-
-/// Performs a bitwise AND of two 128-bit integer vectors.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPAND / PAND </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing one of the source operands.
-/// \param __b
-///    A 128-bit integer vector containing one of the source operands.
-/// \returns A 128-bit integer vector containing the bitwise AND of the values
-///    in both operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_and_si128(__m128i __a, __m128i __b)
-{
-  return (__m128i)((__v2du)__a & (__v2du)__b);
-}
-
-/// Performs a bitwise AND of two 128-bit integer vectors, using the
-///    one's complement of the values contained in the first source operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPANDN / PANDN </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector containing the left source operand. The one's complement
-///    of this value is used in the bitwise AND.
-/// \param __b
-///    A 128-bit vector containing the right source operand.
-/// \returns A 128-bit integer vector containing the bitwise AND of the one's
-///    complement of the first operand and the values in the second operand.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_andnot_si128(__m128i __a, __m128i __b)
-{
-  return (__m128i)(~(__v2du)__a & (__v2du)__b);
-}
-/// Performs a bitwise OR of two 128-bit integer vectors.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPOR / POR </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing one of the source operands.
-/// \param __b
-///    A 128-bit integer vector containing one of the source operands.
-/// \returns A 128-bit integer vector containing the bitwise OR of the values
-///    in both operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_or_si128(__m128i __a, __m128i __b)
-{
-  return (__m128i)((__v2du)__a | (__v2du)__b);
-}
-
-/// Performs a bitwise exclusive OR of two 128-bit integer vectors.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPXOR / PXOR </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing one of the source operands.
-/// \param __b
-///    A 128-bit integer vector containing one of the source operands.
-/// \returns A 128-bit integer vector containing the bitwise exclusive OR of the
-///    values in both operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_xor_si128(__m128i __a, __m128i __b)
-{
-  return (__m128i)((__v2du)__a ^ (__v2du)__b);
-}
-
-/// Left-shifts the 128-bit integer vector operand by the specified
-///    number of bytes. Low-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m128i _mm_slli_si128(__m128i a, const int imm);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VPSLLDQ / PSLLDQ </c> instruction.
-///
-/// \param a
-///    A 128-bit integer vector containing the source operand.
-/// \param imm
-///    An immediate value specifying the number of bytes to left-shift operand
-///    \a a.
-/// \returns A 128-bit integer vector containing the left-shifted value.
-#define _mm_slli_si128(a, imm) \
-  ((__m128i)__builtin_ia32_pslldqi128_byteshift((__v2di)(__m128i)(a), (int)(imm)))
-
-#define _mm_bslli_si128(a, imm) \
-  ((__m128i)__builtin_ia32_pslldqi128_byteshift((__v2di)(__m128i)(a), (int)(imm)))
-
-/// Left-shifts each 16-bit value in the 128-bit integer vector operand
-///    by the specified number of bits. Low-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSLLW / PSLLW </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    An integer value specifying the number of bits to left-shift each value
-///    in operand \a __a.
-/// \returns A 128-bit integer vector containing the left-shifted values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_slli_epi16(__m128i __a, int __count)
-{
-  return (__m128i)__builtin_ia32_psllwi128((__v8hi)__a, __count);
-}
-
-/// Left-shifts each 16-bit value in the 128-bit integer vector operand
-///    by the specified number of bits. Low-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSLLW / PSLLW </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    A 128-bit integer vector in which bits [63:0] specify the number of bits
-///    to left-shift each value in operand \a __a.
-/// \returns A 128-bit integer vector containing the left-shifted values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_sll_epi16(__m128i __a, __m128i __count)
-{
-  return (__m128i)__builtin_ia32_psllw128((__v8hi)__a, (__v8hi)__count);
-}
-
-/// Left-shifts each 32-bit value in the 128-bit integer vector operand
-///    by the specified number of bits. Low-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSLLD / PSLLD </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    An integer value specifying the number of bits to left-shift each value
-///    in operand \a __a.
-/// \returns A 128-bit integer vector containing the left-shifted values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_slli_epi32(__m128i __a, int __count)
-{
-  return (__m128i)__builtin_ia32_pslldi128((__v4si)__a, __count);
-}
-
-/// Left-shifts each 32-bit value in the 128-bit integer vector operand
-///    by the specified number of bits. Low-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSLLD / PSLLD </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    A 128-bit integer vector in which bits [63:0] specify the number of bits
-///    to left-shift each value in operand \a __a.
-/// \returns A 128-bit integer vector containing the left-shifted values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_sll_epi32(__m128i __a, __m128i __count)
-{
-  return (__m128i)__builtin_ia32_pslld128((__v4si)__a, (__v4si)__count);
-}
-
-/// Left-shifts each 64-bit value in the 128-bit integer vector operand
-///    by the specified number of bits. Low-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSLLQ / PSLLQ </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    An integer value specifying the number of bits to left-shift each value
-///    in operand \a __a.
-/// \returns A 128-bit integer vector containing the left-shifted values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_slli_epi64(__m128i __a, int __count)
-{
-  return __builtin_ia32_psllqi128((__v2di)__a, __count);
-}
-
-/// Left-shifts each 64-bit value in the 128-bit integer vector operand
-///    by the specified number of bits. Low-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSLLQ / PSLLQ </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    A 128-bit integer vector in which bits [63:0] specify the number of bits
-///    to left-shift each value in operand \a __a.
-/// \returns A 128-bit integer vector containing the left-shifted values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_sll_epi64(__m128i __a, __m128i __count)
-{
-  return __builtin_ia32_psllq128((__v2di)__a, (__v2di)__count);
-}
-
-/// Right-shifts each 16-bit value in the 128-bit integer vector operand
-///    by the specified number of bits. High-order bits are filled with the sign
-///    bit of the initial value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSRAW / PSRAW </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    An integer value specifying the number of bits to right-shift each value
-///    in operand \a __a.
-/// \returns A 128-bit integer vector containing the right-shifted values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_srai_epi16(__m128i __a, int __count)
-{
-  return (__m128i)__builtin_ia32_psrawi128((__v8hi)__a, __count);
-}
-
-/// Right-shifts each 16-bit value in the 128-bit integer vector operand
-///    by the specified number of bits. High-order bits are filled with the sign
-///    bit of the initial value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSRAW / PSRAW </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    A 128-bit integer vector in which bits [63:0] specify the number of bits
-///    to right-shift each value in operand \a __a.
-/// \returns A 128-bit integer vector containing the right-shifted values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_sra_epi16(__m128i __a, __m128i __count)
-{
-  return (__m128i)__builtin_ia32_psraw128((__v8hi)__a, (__v8hi)__count);
-}
-
-/// Right-shifts each 32-bit value in the 128-bit integer vector operand
-///    by the specified number of bits. High-order bits are filled with the sign
-///    bit of the initial value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSRAD / PSRAD </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    An integer value specifying the number of bits to right-shift each value
-///    in operand \a __a.
-/// \returns A 128-bit integer vector containing the right-shifted values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_srai_epi32(__m128i __a, int __count)
-{
-  return (__m128i)__builtin_ia32_psradi128((__v4si)__a, __count);
-}
-
-/// Right-shifts each 32-bit value in the 128-bit integer vector operand
-///    by the specified number of bits. High-order bits are filled with the sign
-///    bit of the initial value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSRAD / PSRAD </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    A 128-bit integer vector in which bits [63:0] specify the number of bits
-///    to right-shift each value in operand \a __a.
-/// \returns A 128-bit integer vector containing the right-shifted values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_sra_epi32(__m128i __a, __m128i __count)
-{
-  return (__m128i)__builtin_ia32_psrad128((__v4si)__a, (__v4si)__count);
-}
-
-/// Right-shifts the 128-bit integer vector operand by the specified
-///    number of bytes. High-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m128i _mm_srli_si128(__m128i a, const int imm);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VPSRLDQ / PSRLDQ </c> instruction.
-///
-/// \param a
-///    A 128-bit integer vector containing the source operand.
-/// \param imm
-///    An immediate value specifying the number of bytes to right-shift operand
-///    \a a.
-/// \returns A 128-bit integer vector containing the right-shifted value.
-#define _mm_srli_si128(a, imm) \
-  ((__m128i)__builtin_ia32_psrldqi128_byteshift((__v2di)(__m128i)(a), (int)(imm)))
-
-#define _mm_bsrli_si128(a, imm) \
-  ((__m128i)__builtin_ia32_psrldqi128_byteshift((__v2di)(__m128i)(a), (int)(imm)))
-
-/// Right-shifts each of 16-bit values in the 128-bit integer vector
-///    operand by the specified number of bits. High-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSRLW / PSRLW </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    An integer value specifying the number of bits to right-shift each value
-///    in operand \a __a.
-/// \returns A 128-bit integer vector containing the right-shifted values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_srli_epi16(__m128i __a, int __count)
-{
-  return (__m128i)__builtin_ia32_psrlwi128((__v8hi)__a, __count);
-}
-
-/// Right-shifts each of 16-bit values in the 128-bit integer vector
-///    operand by the specified number of bits. High-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSRLW / PSRLW </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    A 128-bit integer vector in which bits [63:0] specify the number of bits
-///    to right-shift each value in operand \a __a.
-/// \returns A 128-bit integer vector containing the right-shifted values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_srl_epi16(__m128i __a, __m128i __count)
-{
-  return (__m128i)__builtin_ia32_psrlw128((__v8hi)__a, (__v8hi)__count);
-}
-
-/// Right-shifts each of 32-bit values in the 128-bit integer vector
-///    operand by the specified number of bits. High-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSRLD / PSRLD </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    An integer value specifying the number of bits to right-shift each value
-///    in operand \a __a.
-/// \returns A 128-bit integer vector containing the right-shifted values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_srli_epi32(__m128i __a, int __count)
-{
-  return (__m128i)__builtin_ia32_psrldi128((__v4si)__a, __count);
-}
-
-/// Right-shifts each of 32-bit values in the 128-bit integer vector
-///    operand by the specified number of bits. High-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSRLD / PSRLD </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    A 128-bit integer vector in which bits [63:0] specify the number of bits
-///    to right-shift each value in operand \a __a.
-/// \returns A 128-bit integer vector containing the right-shifted values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_srl_epi32(__m128i __a, __m128i __count)
-{
-  return (__m128i)__builtin_ia32_psrld128((__v4si)__a, (__v4si)__count);
-}
-
-/// Right-shifts each of 64-bit values in the 128-bit integer vector
-///    operand by the specified number of bits. High-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSRLQ / PSRLQ </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    An integer value specifying the number of bits to right-shift each value
-///    in operand \a __a.
-/// \returns A 128-bit integer vector containing the right-shifted values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_srli_epi64(__m128i __a, int __count)
-{
-  return __builtin_ia32_psrlqi128((__v2di)__a, __count);
-}
-
-/// Right-shifts each of 64-bit values in the 128-bit integer vector
-///    operand by the specified number of bits. High-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPSRLQ / PSRLQ </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    A 128-bit integer vector in which bits [63:0] specify the number of bits
-///    to right-shift each value in operand \a __a.
-/// \returns A 128-bit integer vector containing the right-shifted values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_srl_epi64(__m128i __a, __m128i __count)
-{
-  return __builtin_ia32_psrlq128((__v2di)__a, (__v2di)__count);
-}
-
-/// Compares each of the corresponding 8-bit values of the 128-bit
-///    integer vectors for equality. Each comparison yields 0x0 for false, 0xFF
-///    for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPCMPEQB / PCMPEQB </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \param __b
-///    A 128-bit integer vector.
-/// \returns A 128-bit integer vector containing the comparison results.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cmpeq_epi8(__m128i __a, __m128i __b)
-{
-  return (__m128i)((__v16qi)__a == (__v16qi)__b);
-}
-
-/// Compares each of the corresponding 16-bit values of the 128-bit
-///    integer vectors for equality. Each comparison yields 0x0 for false,
-///    0xFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPCMPEQW / PCMPEQW </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \param __b
-///    A 128-bit integer vector.
-/// \returns A 128-bit integer vector containing the comparison results.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cmpeq_epi16(__m128i __a, __m128i __b)
-{
-  return (__m128i)((__v8hi)__a == (__v8hi)__b);
-}
-
-/// Compares each of the corresponding 32-bit values of the 128-bit
-///    integer vectors for equality. Each comparison yields 0x0 for false,
-///    0xFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPCMPEQD / PCMPEQD </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \param __b
-///    A 128-bit integer vector.
-/// \returns A 128-bit integer vector containing the comparison results.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cmpeq_epi32(__m128i __a, __m128i __b)
-{
-  return (__m128i)((__v4si)__a == (__v4si)__b);
-}
-
-/// Compares each of the corresponding signed 8-bit values of the 128-bit
-///    integer vectors to determine if the values in the first operand are
-///    greater than those in the second operand. Each comparison yields 0x0 for
-///    false, 0xFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPCMPGTB / PCMPGTB </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \param __b
-///    A 128-bit integer vector.
-/// \returns A 128-bit integer vector containing the comparison results.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cmpgt_epi8(__m128i __a, __m128i __b)
-{
-  /* This function always performs a signed comparison, but __v16qi is a char
-     which may be signed or unsigned, so use __v16qs. */
-  return (__m128i)((__v16qs)__a > (__v16qs)__b);
-}
-
-/// Compares each of the corresponding signed 16-bit values of the
-///    128-bit integer vectors to determine if the values in the first operand
-///    are greater than those in the second operand.
-///
-///    Each comparison yields 0x0 for false, 0xFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPCMPGTW / PCMPGTW </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \param __b
-///    A 128-bit integer vector.
-/// \returns A 128-bit integer vector containing the comparison results.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cmpgt_epi16(__m128i __a, __m128i __b)
-{
-  return (__m128i)((__v8hi)__a > (__v8hi)__b);
-}
-
-/// Compares each of the corresponding signed 32-bit values of the
-///    128-bit integer vectors to determine if the values in the first operand
-///    are greater than those in the second operand.
-///
-///    Each comparison yields 0x0 for false, 0xFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPCMPGTD / PCMPGTD </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \param __b
-///    A 128-bit integer vector.
-/// \returns A 128-bit integer vector containing the comparison results.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cmpgt_epi32(__m128i __a, __m128i __b)
-{
-  return (__m128i)((__v4si)__a > (__v4si)__b);
-}
-
-/// Compares each of the corresponding signed 8-bit values of the 128-bit
-///    integer vectors to determine if the values in the first operand are less
-///    than those in the second operand.
-///
-///    Each comparison yields 0x0 for false, 0xFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPCMPGTB / PCMPGTB </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \param __b
-///    A 128-bit integer vector.
-/// \returns A 128-bit integer vector containing the comparison results.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cmplt_epi8(__m128i __a, __m128i __b)
-{
-  return _mm_cmpgt_epi8(__b, __a);
-}
-
-/// Compares each of the corresponding signed 16-bit values of the
-///    128-bit integer vectors to determine if the values in the first operand
-///    are less than those in the second operand.
-///
-///    Each comparison yields 0x0 for false, 0xFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPCMPGTW / PCMPGTW </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \param __b
-///    A 128-bit integer vector.
-/// \returns A 128-bit integer vector containing the comparison results.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cmplt_epi16(__m128i __a, __m128i __b)
-{
-  return _mm_cmpgt_epi16(__b, __a);
-}
-
-/// Compares each of the corresponding signed 32-bit values of the
-///    128-bit integer vectors to determine if the values in the first operand
-///    are less than those in the second operand.
-///
-///    Each comparison yields 0x0 for false, 0xFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPCMPGTD / PCMPGTD </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \param __b
-///    A 128-bit integer vector.
-/// \returns A 128-bit integer vector containing the comparison results.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cmplt_epi32(__m128i __a, __m128i __b)
-{
-  return _mm_cmpgt_epi32(__b, __a);
-}
-
-#ifdef __x86_64__
-/// Converts a 64-bit signed integer value from the second operand into a
-///    double-precision value and returns it in the lower element of a [2 x
-///    double] vector; the upper element of the returned vector is copied from
-///    the upper element of the first operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTSI2SD / CVTSI2SD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The upper 64 bits of this operand are
-///    copied to the upper 64 bits of the destination.
-/// \param __b
-///    A 64-bit signed integer operand containing the value to be converted.
-/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
-///    converted value of the second operand. The upper 64 bits are copied from
-///    the upper 64 bits of the first operand.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cvtsi64_sd(__m128d __a, long long __b)
-{
-  __a[0] = __b;
-  return __a;
-}
-
-/// Converts the first (lower) element of a vector of [2 x double] into a
-///    64-bit signed integer value, according to the current rounding mode.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTSD2SI / CVTSD2SI </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower 64 bits are used in the
-///    conversion.
-/// \returns A 64-bit signed integer containing the converted value.
-static __inline__ long long __DEFAULT_FN_ATTRS
-_mm_cvtsd_si64(__m128d __a)
-{
-  return __builtin_ia32_cvtsd2si64((__v2df)__a);
-}
-
-/// Converts the first (lower) element of a vector of [2 x double] into a
-///    64-bit signed integer value, truncating the result when it is inexact.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTTSD2SI / CVTTSD2SI </c>
-///   instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower 64 bits are used in the
-///    conversion.
-/// \returns A 64-bit signed integer containing the converted value.
-static __inline__ long long __DEFAULT_FN_ATTRS
-_mm_cvttsd_si64(__m128d __a)
-{
-  return __builtin_ia32_cvttsd2si64((__v2df)__a);
-}
-#endif
-
-/// Converts a vector of [4 x i32] into a vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTDQ2PS / CVTDQ2PS </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \returns A 128-bit vector of [4 x float] containing the converted values.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cvtepi32_ps(__m128i __a)
-{
-  return (__m128)__builtin_convertvector((__v4si)__a, __v4sf);
-}
-
-/// Converts a vector of [4 x float] into a vector of [4 x i32].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTPS2DQ / CVTPS2DQ </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \returns A 128-bit integer vector of [4 x i32] containing the converted
-///    values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cvtps_epi32(__m128 __a)
-{
-  return (__m128i)__builtin_ia32_cvtps2dq((__v4sf)__a);
-}
-
-/// Converts a vector of [4 x float] into a vector of [4 x i32],
-///    truncating the result when it is inexact.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTTPS2DQ / CVTTPS2DQ </c>
-///   instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \returns A 128-bit vector of [4 x i32] containing the converted values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cvttps_epi32(__m128 __a)
-{
-  return (__m128i)__builtin_ia32_cvttps2dq((__v4sf)__a);
-}
-
-/// Returns a vector of [4 x i32] where the lowest element is the input
-///    operand and the remaining elements are zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVD / MOVD </c> instruction.
-///
-/// \param __a
-///    A 32-bit signed integer operand.
-/// \returns A 128-bit vector of [4 x i32].
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cvtsi32_si128(int __a)
-{
-  return __extension__ (__m128i)(__v4si){ __a, 0, 0, 0 };
-}
-
-#ifdef __x86_64__
-/// Returns a vector of [2 x i64] where the lower element is the input
-///    operand and the upper element is zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVQ / MOVQ </c> instruction.
-///
-/// \param __a
-///    A 64-bit signed integer operand containing the value to be converted.
-/// \returns A 128-bit vector of [2 x i64] containing the converted value.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cvtsi64_si128(long long __a)
-{
-  return __extension__ (__m128i)(__v2di){ __a, 0 };
-}
-#endif
-
-/// Moves the least significant 32 bits of a vector of [4 x i32] to a
-///    32-bit signed integer value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVD / MOVD </c> instruction.
-///
-/// \param __a
-///    A vector of [4 x i32]. The least significant 32 bits are moved to the
-///    destination.
-/// \returns A 32-bit signed integer containing the moved value.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_cvtsi128_si32(__m128i __a)
-{
-  __v4si __b = (__v4si)__a;
-  return __b[0];
-}
-
-#ifdef __x86_64__
-/// Moves the least significant 64 bits of a vector of [2 x i64] to a
-///    64-bit signed integer value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVQ / MOVQ </c> instruction.
-///
-/// \param __a
-///    A vector of [2 x i64]. The least significant 64 bits are moved to the
-///    destination.
-/// \returns A 64-bit signed integer containing the moved value.
-static __inline__ long long __DEFAULT_FN_ATTRS
-_mm_cvtsi128_si64(__m128i __a)
-{
-  return __a[0];
-}
-#endif
-
-/// Moves packed integer values from an aligned 128-bit memory location
-///    to elements in a 128-bit integer vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVDQA / MOVDQA </c> instruction.
-///
-/// \param __p
-///    An aligned pointer to a memory location containing integer values.
-/// \returns A 128-bit integer vector containing the moved values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_load_si128(__m128i const *__p)
-{
-  return *__p;
-}
-
-/// Moves packed integer values from an unaligned 128-bit memory location
-///    to elements in a 128-bit integer vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVDQU / MOVDQU </c> instruction.
-///
-/// \param __p
-///    A pointer to a memory location containing integer values.
-/// \returns A 128-bit integer vector containing the moved values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_loadu_si128(__m128i_u const *__p)
-{
-  struct __loadu_si128 {
-    __m128i_u __v;
-  } __attribute__((__packed__, __may_alias__));
-  return ((const struct __loadu_si128*)__p)->__v;
-}
-
-/// Returns a vector of [2 x i64] where the lower element is taken from
-///    the lower element of the operand, and the upper element is zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVQ / MOVQ </c> instruction.
-///
-/// \param __p
-///    A 128-bit vector of [2 x i64]. Bits [63:0] are written to bits [63:0] of
-///    the destination.
-/// \returns A 128-bit vector of [2 x i64]. The lower order bits contain the
-///    moved value. The higher order bits are cleared.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_loadl_epi64(__m128i_u const *__p)
-{
-  struct __mm_loadl_epi64_struct {
-    long long __u;
-  } __attribute__((__packed__, __may_alias__));
-  return __extension__ (__m128i) { ((const struct __mm_loadl_epi64_struct*)__p)->__u, 0};
-}
-
-/// Generates a 128-bit vector of [4 x i32] with unspecified content.
-///    This could be used as an argument to another intrinsic function where the
-///    argument is required but the value is not actually used.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \returns A 128-bit vector of [4 x i32] with unspecified content.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_undefined_si128(void)
-{
-  return (__m128i)__builtin_ia32_undef128();
-}
-
-/// Initializes both 64-bit values in a 128-bit vector of [2 x i64] with
-///    the specified 64-bit integer values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __q1
-///    A 64-bit integer value used to initialize the upper 64 bits of the
-///    destination vector of [2 x i64].
-/// \param __q0
-///    A 64-bit integer value used to initialize the lower 64 bits of the
-///    destination vector of [2 x i64].
-/// \returns An initialized 128-bit vector of [2 x i64] containing the values
-///    provided in the operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_set_epi64x(long long __q1, long long __q0)
-{
-  return __extension__ (__m128i)(__v2di){ __q0, __q1 };
-}
-
-/// Initializes both 64-bit values in a 128-bit vector of [2 x i64] with
-///    the specified 64-bit integer values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __q1
-///    A 64-bit integer value used to initialize the upper 64 bits of the
-///    destination vector of [2 x i64].
-/// \param __q0
-///    A 64-bit integer value used to initialize the lower 64 bits of the
-///    destination vector of [2 x i64].
-/// \returns An initialized 128-bit vector of [2 x i64] containing the values
-///    provided in the operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_set_epi64(__m64 __q1, __m64 __q0)
-{
-  return _mm_set_epi64x((long long)__q1, (long long)__q0);
-}
-
-/// Initializes the 32-bit values in a 128-bit vector of [4 x i32] with
-///    the specified 32-bit integer values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __i3
-///    A 32-bit integer value used to initialize bits [127:96] of the
-///    destination vector.
-/// \param __i2
-///    A 32-bit integer value used to initialize bits [95:64] of the destination
-///    vector.
-/// \param __i1
-///    A 32-bit integer value used to initialize bits [63:32] of the destination
-///    vector.
-/// \param __i0
-///    A 32-bit integer value used to initialize bits [31:0] of the destination
-///    vector.
-/// \returns An initialized 128-bit vector of [4 x i32] containing the values
-///    provided in the operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_set_epi32(int __i3, int __i2, int __i1, int __i0)
-{
-  return __extension__ (__m128i)(__v4si){ __i0, __i1, __i2, __i3};
-}
-
-/// Initializes the 16-bit values in a 128-bit vector of [8 x i16] with
-///    the specified 16-bit integer values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __w7
-///    A 16-bit integer value used to initialize bits [127:112] of the
-///    destination vector.
-/// \param __w6
-///    A 16-bit integer value used to initialize bits [111:96] of the
-///    destination vector.
-/// \param __w5
-///    A 16-bit integer value used to initialize bits [95:80] of the destination
-///    vector.
-/// \param __w4
-///    A 16-bit integer value used to initialize bits [79:64] of the destination
-///    vector.
-/// \param __w3
-///    A 16-bit integer value used to initialize bits [63:48] of the destination
-///    vector.
-/// \param __w2
-///    A 16-bit integer value used to initialize bits [47:32] of the destination
-///    vector.
-/// \param __w1
-///    A 16-bit integer value used to initialize bits [31:16] of the destination
-///    vector.
-/// \param __w0
-///    A 16-bit integer value used to initialize bits [15:0] of the destination
-///    vector.
-/// \returns An initialized 128-bit vector of [8 x i16] containing the values
-///    provided in the operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_set_epi16(short __w7, short __w6, short __w5, short __w4, short __w3, short __w2, short __w1, short __w0)
-{
-  return __extension__ (__m128i)(__v8hi){ __w0, __w1, __w2, __w3, __w4, __w5, __w6, __w7 };
-}
-
-/// Initializes the 8-bit values in a 128-bit vector of [16 x i8] with
-///    the specified 8-bit integer values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __b15
-///    Initializes bits [127:120] of the destination vector.
-/// \param __b14
-///    Initializes bits [119:112] of the destination vector.
-/// \param __b13
-///    Initializes bits [111:104] of the destination vector.
-/// \param __b12
-///    Initializes bits [103:96] of the destination vector.
-/// \param __b11
-///    Initializes bits [95:88] of the destination vector.
-/// \param __b10
-///    Initializes bits [87:80] of the destination vector.
-/// \param __b9
-///    Initializes bits [79:72] of the destination vector.
-/// \param __b8
-///    Initializes bits [71:64] of the destination vector.
-/// \param __b7
-///    Initializes bits [63:56] of the destination vector.
-/// \param __b6
-///    Initializes bits [55:48] of the destination vector.
-/// \param __b5
-///    Initializes bits [47:40] of the destination vector.
-/// \param __b4
-///    Initializes bits [39:32] of the destination vector.
-/// \param __b3
-///    Initializes bits [31:24] of the destination vector.
-/// \param __b2
-///    Initializes bits [23:16] of the destination vector.
-/// \param __b1
-///    Initializes bits [15:8] of the destination vector.
-/// \param __b0
-///    Initializes bits [7:0] of the destination vector.
-/// \returns An initialized 128-bit vector of [16 x i8] containing the values
-///    provided in the operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_set_epi8(char __b15, char __b14, char __b13, char __b12, char __b11, char __b10, char __b9, char __b8, char __b7, char __b6, char __b5, char __b4, char __b3, char __b2, char __b1, char __b0)
-{
-  return __extension__ (__m128i)(__v16qi){ __b0, __b1, __b2, __b3, __b4, __b5, __b6, __b7, __b8, __b9, __b10, __b11, __b12, __b13, __b14, __b15 };
-}
-
-/// Initializes both values in a 128-bit integer vector with the
-///    specified 64-bit integer value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __q
-///    Integer value used to initialize the elements of the destination integer
-///    vector.
-/// \returns An initialized 128-bit integer vector of [2 x i64] with both
-///    elements containing the value provided in the operand.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_set1_epi64x(long long __q)
-{
-  return _mm_set_epi64x(__q, __q);
-}
-
-/// Initializes both values in a 128-bit vector of [2 x i64] with the
-///    specified 64-bit value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __q
-///    A 64-bit value used to initialize the elements of the destination integer
-///    vector.
-/// \returns An initialized 128-bit vector of [2 x i64] with all elements
-///    containing the value provided in the operand.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_set1_epi64(__m64 __q)
-{
-  return _mm_set_epi64(__q, __q);
-}
-
-/// Initializes all values in a 128-bit vector of [4 x i32] with the
-///    specified 32-bit value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __i
-///    A 32-bit value used to initialize the elements of the destination integer
-///    vector.
-/// \returns An initialized 128-bit vector of [4 x i32] with all elements
-///    containing the value provided in the operand.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_set1_epi32(int __i)
-{
-  return _mm_set_epi32(__i, __i, __i, __i);
-}
-
-/// Initializes all values in a 128-bit vector of [8 x i16] with the
-///    specified 16-bit value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __w
-///    A 16-bit value used to initialize the elements of the destination integer
-///    vector.
-/// \returns An initialized 128-bit vector of [8 x i16] with all elements
-///    containing the value provided in the operand.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_set1_epi16(short __w)
-{
-  return _mm_set_epi16(__w, __w, __w, __w, __w, __w, __w, __w);
-}
-
-/// Initializes all values in a 128-bit vector of [16 x i8] with the
-///    specified 8-bit value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __b
-///    An 8-bit value used to initialize the elements of the destination integer
-///    vector.
-/// \returns An initialized 128-bit vector of [16 x i8] with all elements
-///    containing the value provided in the operand.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_set1_epi8(char __b)
-{
-  return _mm_set_epi8(__b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b);
-}
-
-/// Constructs a 128-bit integer vector, initialized in reverse order
-///     with the specified 64-bit integral values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic does not correspond to a specific instruction.
-///
-/// \param __q0
-///    A 64-bit integral value used to initialize the lower 64 bits of the
-///    result.
-/// \param __q1
-///    A 64-bit integral value used to initialize the upper 64 bits of the
-///    result.
-/// \returns An initialized 128-bit integer vector.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_setr_epi64(__m64 __q0, __m64 __q1)
-{
-  return _mm_set_epi64(__q1, __q0);
-}
-
-/// Constructs a 128-bit integer vector, initialized in reverse order
-///     with the specified 32-bit integral values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __i0
-///    A 32-bit integral value used to initialize bits [31:0] of the result.
-/// \param __i1
-///    A 32-bit integral value used to initialize bits [63:32] of the result.
-/// \param __i2
-///    A 32-bit integral value used to initialize bits [95:64] of the result.
-/// \param __i3
-///    A 32-bit integral value used to initialize bits [127:96] of the result.
-/// \returns An initialized 128-bit integer vector.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_setr_epi32(int __i0, int __i1, int __i2, int __i3)
-{
-  return _mm_set_epi32(__i3, __i2, __i1, __i0);
-}
-
-/// Constructs a 128-bit integer vector, initialized in reverse order
-///     with the specified 16-bit integral values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __w0
-///    A 16-bit integral value used to initialize bits [15:0] of the result.
-/// \param __w1
-///    A 16-bit integral value used to initialize bits [31:16] of the result.
-/// \param __w2
-///    A 16-bit integral value used to initialize bits [47:32] of the result.
-/// \param __w3
-///    A 16-bit integral value used to initialize bits [63:48] of the result.
-/// \param __w4
-///    A 16-bit integral value used to initialize bits [79:64] of the result.
-/// \param __w5
-///    A 16-bit integral value used to initialize bits [95:80] of the result.
-/// \param __w6
-///    A 16-bit integral value used to initialize bits [111:96] of the result.
-/// \param __w7
-///    A 16-bit integral value used to initialize bits [127:112] of the result.
-/// \returns An initialized 128-bit integer vector.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_setr_epi16(short __w0, short __w1, short __w2, short __w3, short __w4, short __w5, short __w6, short __w7)
-{
-  return _mm_set_epi16(__w7, __w6, __w5, __w4, __w3, __w2, __w1, __w0);
-}
-
-/// Constructs a 128-bit integer vector, initialized in reverse order
-///     with the specified 8-bit integral values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __b0
-///    An 8-bit integral value used to initialize bits [7:0] of the result.
-/// \param __b1
-///    An 8-bit integral value used to initialize bits [15:8] of the result.
-/// \param __b2
-///    An 8-bit integral value used to initialize bits [23:16] of the result.
-/// \param __b3
-///    An 8-bit integral value used to initialize bits [31:24] of the result.
-/// \param __b4
-///    An 8-bit integral value used to initialize bits [39:32] of the result.
-/// \param __b5
-///    An 8-bit integral value used to initialize bits [47:40] of the result.
-/// \param __b6
-///    An 8-bit integral value used to initialize bits [55:48] of the result.
-/// \param __b7
-///    An 8-bit integral value used to initialize bits [63:56] of the result.
-/// \param __b8
-///    An 8-bit integral value used to initialize bits [71:64] of the result.
-/// \param __b9
-///    An 8-bit integral value used to initialize bits [79:72] of the result.
-/// \param __b10
-///    An 8-bit integral value used to initialize bits [87:80] of the result.
-/// \param __b11
-///    An 8-bit integral value used to initialize bits [95:88] of the result.
-/// \param __b12
-///    An 8-bit integral value used to initialize bits [103:96] of the result.
-/// \param __b13
-///    An 8-bit integral value used to initialize bits [111:104] of the result.
-/// \param __b14
-///    An 8-bit integral value used to initialize bits [119:112] of the result.
-/// \param __b15
-///    An 8-bit integral value used to initialize bits [127:120] of the result.
-/// \returns An initialized 128-bit integer vector.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_setr_epi8(char __b0, char __b1, char __b2, char __b3, char __b4, char __b5, char __b6, char __b7, char __b8, char __b9, char __b10, char __b11, char __b12, char __b13, char __b14, char __b15)
-{
-  return _mm_set_epi8(__b15, __b14, __b13, __b12, __b11, __b10, __b9, __b8, __b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0);
-}
-
-/// Creates a 128-bit integer vector initialized to zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VXORPS / XORPS </c> instruction.
-///
-/// \returns An initialized 128-bit integer vector with all elements set to
-///    zero.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_setzero_si128(void)
-{
-  return __extension__ (__m128i)(__v2di){ 0LL, 0LL };
-}
-
-/// Stores a 128-bit integer vector to a memory location aligned on a
-///    128-bit boundary.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVAPS / MOVAPS </c> instruction.
-///
-/// \param __p
-///    A pointer to an aligned memory location that will receive the integer
-///    values.
-/// \param __b
-///    A 128-bit integer vector containing the values to be moved.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_store_si128(__m128i *__p, __m128i __b)
-{
-  *__p = __b;
-}
-
-/// Stores a 128-bit integer vector to an unaligned memory location.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVUPS / MOVUPS </c> instruction.
-///
-/// \param __p
-///    A pointer to a memory location that will receive the integer values.
-/// \param __b
-///    A 128-bit integer vector containing the values to be moved.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_storeu_si128(__m128i_u *__p, __m128i __b)
-{
-  struct __storeu_si128 {
-    __m128i_u __v;
-  } __attribute__((__packed__, __may_alias__));
-  ((struct __storeu_si128*)__p)->__v = __b;
-}
-
-/// Stores a 64-bit integer value from the low element of a 128-bit integer
-///    vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVQ / MOVQ </c> instruction.
-///
-/// \param __p
-///    A pointer to a 64-bit memory location. The address of the memory
-///    location does not have to be aligned.
-/// \param __b
-///    A 128-bit integer vector containing the value to be stored.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_storeu_si64(void *__p, __m128i __b)
-{
-  struct __storeu_si64 {
-    long long __v;
-  } __attribute__((__packed__, __may_alias__));
-  ((struct __storeu_si64*)__p)->__v = ((__v2di)__b)[0];
-}
-
-/// Stores a 32-bit integer value from the low element of a 128-bit integer
-///    vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVD / MOVD </c> instruction.
-///
-/// \param __p
-///    A pointer to a 32-bit memory location. The address of the memory
-///    location does not have to be aligned.
-/// \param __b
-///    A 128-bit integer vector containing the value to be stored.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_storeu_si32(void *__p, __m128i __b)
-{
-  struct __storeu_si32 {
-    int __v;
-  } __attribute__((__packed__, __may_alias__));
-  ((struct __storeu_si32*)__p)->__v = ((__v4si)__b)[0];
-}
-
-/// Stores a 16-bit integer value from the low element of a 128-bit integer
-///    vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic does not correspond to a specific instruction.
-///
-/// \param __p
-///    A pointer to a 16-bit memory location. The address of the memory
-///    location does not have to be aligned.
-/// \param __b
-///    A 128-bit integer vector containing the value to be stored.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_storeu_si16(void *__p, __m128i __b)
-{
-  struct __storeu_si16 {
-    short __v;
-  } __attribute__((__packed__, __may_alias__));
-  ((struct __storeu_si16*)__p)->__v = ((__v8hi)__b)[0];
-}
-
-/// Moves bytes selected by the mask from the first operand to the
-///    specified unaligned memory location. When a mask bit is 1, the
-///    corresponding byte is written, otherwise it is not written.
-///
-///    To minimize caching, the data is flagged as non-temporal (unlikely to be
-///    used again soon). Exception and trap behavior for elements not selected
-///    for storage to memory are implementation dependent.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMASKMOVDQU / MASKMOVDQU </c>
-///   instruction.
-///
-/// \param __d
-///    A 128-bit integer vector containing the values to be moved.
-/// \param __n
-///    A 128-bit integer vector containing the mask. The most significant bit of
-///    each byte represents the mask bits.
-/// \param __p
-///    A pointer to an unaligned 128-bit memory location where the specified
-///    values are moved.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_maskmoveu_si128(__m128i __d, __m128i __n, char *__p)
-{
-  __builtin_ia32_maskmovdqu((__v16qi)__d, (__v16qi)__n, __p);
-}
-
-/// Stores the lower 64 bits of a 128-bit integer vector of [2 x i64] to
-///    a memory location.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVLPS / MOVLPS </c> instruction.
-///
-/// \param __p
-///    A pointer to a 64-bit memory location that will receive the lower 64 bits
-///    of the integer vector parameter.
-/// \param __a
-///    A 128-bit integer vector of [2 x i64]. The lower 64 bits contain the
-///    value to be stored.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_storel_epi64(__m128i_u *__p, __m128i __a)
-{
-  struct __mm_storel_epi64_struct {
-    long long __u;
-  } __attribute__((__packed__, __may_alias__));
-  ((struct __mm_storel_epi64_struct*)__p)->__u = __a[0];
-}
-
-/// Stores a 128-bit floating point vector of [2 x double] to a 128-bit
-///    aligned memory location.
-///
-///    To minimize caching, the data is flagged as non-temporal (unlikely to be
-///    used again soon).
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVNTPS / MOVNTPS </c> instruction.
-///
-/// \param __p
-///    A pointer to the 128-bit aligned memory location used to store the value.
-/// \param __a
-///    A vector of [2 x double] containing the 64-bit values to be stored.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_stream_pd(double *__p, __m128d __a)
-{
-  __builtin_nontemporal_store((__v2df)__a, (__v2df*)__p);
-}
-
-/// Stores a 128-bit integer vector to a 128-bit aligned memory location.
-///
-///    To minimize caching, the data is flagged as non-temporal (unlikely to be
-///    used again soon).
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVNTPS / MOVNTPS </c> instruction.
-///
-/// \param __p
-///    A pointer to the 128-bit aligned memory location used to store the value.
-/// \param __a
-///    A 128-bit integer vector containing the values to be stored.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_stream_si128(__m128i *__p, __m128i __a)
-{
-  __builtin_nontemporal_store((__v2di)__a, (__v2di*)__p);
-}
-
-/// Stores a 32-bit integer value in the specified memory location.
-///
-///    To minimize caching, the data is flagged as non-temporal (unlikely to be
-///    used again soon).
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> MOVNTI </c> instruction.
-///
-/// \param __p
-///    A pointer to the 32-bit memory location used to store the value.
-/// \param __a
-///    A 32-bit integer containing the value to be stored.
-static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2")))
-_mm_stream_si32(int *__p, int __a)
-{
-  __builtin_ia32_movnti(__p, __a);
-}
-
-#ifdef __x86_64__
-/// Stores a 64-bit integer value in the specified memory location.
-///
-///    To minimize caching, the data is flagged as non-temporal (unlikely to be
-///    used again soon).
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> MOVNTIQ </c> instruction.
-///
-/// \param __p
-///    A pointer to the 64-bit memory location used to store the value.
-/// \param __a
-///    A 64-bit integer containing the value to be stored.
-static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2")))
-_mm_stream_si64(long long *__p, long long __a)
-{
-  __builtin_ia32_movnti64(__p, __a);
-}
-#endif
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/// The cache line containing \a __p is flushed and invalidated from all
-///    caches in the coherency domain.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CLFLUSH </c> instruction.
-///
-/// \param __p
-///    A pointer to the memory location used to identify the cache line to be
-///    flushed.
-void _mm_clflush(void const * __p);
-
-/// Forces strong memory ordering (serialization) between load
-///    instructions preceding this instruction and load instructions following
-///    this instruction, ensuring the system completes all previous loads before
-///    executing subsequent loads.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> LFENCE </c> instruction.
-///
-void _mm_lfence(void);
-
-/// Forces strong memory ordering (serialization) between load and store
-///    instructions preceding this instruction and load and store instructions
-///    following this instruction, ensuring that the system completes all
-///    previous memory accesses before executing subsequent memory accesses.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> MFENCE </c> instruction.
-///
-void _mm_mfence(void);
-
-#if defined(__cplusplus)
-} // extern "C"
-#endif
-
-/// Converts 16-bit signed integers from both 128-bit integer vector
-///    operands into 8-bit signed integers, and packs the results into the
-///    destination. Positive values greater than 0x7F are saturated to 0x7F.
-///    Negative values less than 0x80 are saturated to 0x80.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPACKSSWB / PACKSSWB </c> instruction.
-///
-/// \param __a
-///   A 128-bit integer vector of [8 x i16]. Each 16-bit element is treated as
-///   a signed integer and is converted to a 8-bit signed integer with
-///   saturation. Values greater than 0x7F are saturated to 0x7F. Values less
-///   than 0x80 are saturated to 0x80. The converted [8 x i8] values are
-///   written to the lower 64 bits of the result.
-/// \param __b
-///   A 128-bit integer vector of [8 x i16]. Each 16-bit element is treated as
-///   a signed integer and is converted to a 8-bit signed integer with
-///   saturation. Values greater than 0x7F are saturated to 0x7F. Values less
-///   than 0x80 are saturated to 0x80. The converted [8 x i8] values are
-///   written to the higher 64 bits of the result.
-/// \returns A 128-bit vector of [16 x i8] containing the converted values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_packs_epi16(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_ia32_packsswb128((__v8hi)__a, (__v8hi)__b);
-}
-
-/// Converts 32-bit signed integers from both 128-bit integer vector
-///    operands into 16-bit signed integers, and packs the results into the
-///    destination. Positive values greater than 0x7FFF are saturated to 0x7FFF.
-///    Negative values less than 0x8000 are saturated to 0x8000.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPACKSSDW / PACKSSDW </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector of [4 x i32]. Each 32-bit element is treated as
-///    a signed integer and is converted to a 16-bit signed integer with
-///    saturation. Values greater than 0x7FFF are saturated to 0x7FFF. Values
-///    less than 0x8000 are saturated to 0x8000. The converted [4 x i16] values
-///    are written to the lower 64 bits of the result.
-/// \param __b
-///    A 128-bit integer vector of [4 x i32]. Each 32-bit element is treated as
-///    a signed integer and is converted to a 16-bit signed integer with
-///    saturation. Values greater than 0x7FFF are saturated to 0x7FFF. Values
-///    less than 0x8000 are saturated to 0x8000. The converted [4 x i16] values
-///    are written to the higher 64 bits of the result.
-/// \returns A 128-bit vector of [8 x i16] containing the converted values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_packs_epi32(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_ia32_packssdw128((__v4si)__a, (__v4si)__b);
-}
-
-/// Converts 16-bit signed integers from both 128-bit integer vector
-///    operands into 8-bit unsigned integers, and packs the results into the
-///    destination. Values greater than 0xFF are saturated to 0xFF. Values less
-///    than 0x00 are saturated to 0x00.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPACKUSWB / PACKUSWB </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector of [8 x i16]. Each 16-bit element is treated as
-///    a signed integer and is converted to an 8-bit unsigned integer with
-///    saturation. Values greater than 0xFF are saturated to 0xFF. Values less
-///    than 0x00 are saturated to 0x00. The converted [8 x i8] values are
-///    written to the lower 64 bits of the result.
-/// \param __b
-///    A 128-bit integer vector of [8 x i16]. Each 16-bit element is treated as
-///    a signed integer and is converted to an 8-bit unsigned integer with
-///    saturation. Values greater than 0xFF are saturated to 0xFF. Values less
-///    than 0x00 are saturated to 0x00. The converted [8 x i8] values are
-///    written to the higher 64 bits of the result.
-/// \returns A 128-bit vector of [16 x i8] containing the converted values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_packus_epi16(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_ia32_packuswb128((__v8hi)__a, (__v8hi)__b);
-}
-
-/// Extracts 16 bits from a 128-bit integer vector of [8 x i16], using
-///    the immediate-value parameter as a selector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPEXTRW / PEXTRW </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \param __imm
-///    An immediate value. Bits [2:0] selects values from \a __a to be assigned
-///    to bits[15:0] of the result. \n
-///    000: assign values from bits [15:0] of \a __a. \n
-///    001: assign values from bits [31:16] of \a __a. \n
-///    010: assign values from bits [47:32] of \a __a. \n
-///    011: assign values from bits [63:48] of \a __a. \n
-///    100: assign values from bits [79:64] of \a __a. \n
-///    101: assign values from bits [95:80] of \a __a. \n
-///    110: assign values from bits [111:96] of \a __a. \n
-///    111: assign values from bits [127:112] of \a __a.
-/// \returns An integer, whose lower 16 bits are selected from the 128-bit
-///    integer vector parameter and the remaining bits are assigned zeros.
-#define _mm_extract_epi16(a, imm) \
-  ((int)(unsigned short)__builtin_ia32_vec_ext_v8hi((__v8hi)(__m128i)(a), \
-                                                    (int)(imm)))
-
-/// Constructs a 128-bit integer vector by first making a copy of the
-///    128-bit integer vector parameter, and then inserting the lower 16 bits
-///    of an integer parameter into an offset specified by the immediate-value
-///    parameter.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPINSRW / PINSRW </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector of [8 x i16]. This vector is copied to the
-///    result and then one of the eight elements in the result is replaced by
-///    the lower 16 bits of \a __b.
-/// \param __b
-///    An integer. The lower 16 bits of this parameter are written to the
-///    result beginning at an offset specified by \a __imm.
-/// \param __imm
-///    An immediate value specifying the bit offset in the result at which the
-///    lower 16 bits of \a __b are written.
-/// \returns A 128-bit integer vector containing the constructed values.
-#define _mm_insert_epi16(a, b, imm) \
-  ((__m128i)__builtin_ia32_vec_set_v8hi((__v8hi)(__m128i)(a), (int)(b), \
-                                        (int)(imm)))
-
-/// Copies the values of the most significant bits from each 8-bit
-///    element in a 128-bit integer vector of [16 x i8] to create a 16-bit mask
-///    value, zero-extends the value, and writes it to the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPMOVMSKB / PMOVMSKB </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the values with bits to be extracted.
-/// \returns The most significant bits from each 8-bit element in \a __a,
-///    written to bits [15:0]. The other bits are assigned zeros.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_movemask_epi8(__m128i __a)
-{
-  return __builtin_ia32_pmovmskb128((__v16qi)__a);
-}
-
-/// Constructs a 128-bit integer vector by shuffling four 32-bit
-///    elements of a 128-bit integer vector parameter, using the immediate-value
-///    parameter as a specifier.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m128i _mm_shuffle_epi32(__m128i a, const int imm);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VPSHUFD / PSHUFD </c> instruction.
-///
-/// \param a
-///    A 128-bit integer vector containing the values to be copied.
-/// \param imm
-///    An immediate value containing an 8-bit value specifying which elements to
-///    copy from a. The destinations within the 128-bit destination are assigned
-///    values as follows: \n
-///    Bits [1:0] are used to assign values to bits [31:0] of the result. \n
-///    Bits [3:2] are used to assign values to bits [63:32] of the result. \n
-///    Bits [5:4] are used to assign values to bits [95:64] of the result. \n
-///    Bits [7:6] are used to assign values to bits [127:96] of the result. \n
-///    Bit value assignments: \n
-///    00: assign values from bits [31:0] of \a a. \n
-///    01: assign values from bits [63:32] of \a a. \n
-///    10: assign values from bits [95:64] of \a a. \n
-///    11: assign values from bits [127:96] of \a a.
-/// \returns A 128-bit integer vector containing the shuffled values.
-#define _mm_shuffle_epi32(a, imm) \
-  ((__m128i)__builtin_ia32_pshufd((__v4si)(__m128i)(a), (int)(imm)))
-
-/// Constructs a 128-bit integer vector by shuffling four lower 16-bit
-///    elements of a 128-bit integer vector of [8 x i16], using the immediate
-///    value parameter as a specifier.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m128i _mm_shufflelo_epi16(__m128i a, const int imm);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VPSHUFLW / PSHUFLW </c> instruction.
-///
-/// \param a
-///    A 128-bit integer vector of [8 x i16]. Bits [127:64] are copied to bits
-///    [127:64] of the result.
-/// \param imm
-///    An 8-bit immediate value specifying which elements to copy from \a a. \n
-///    Bits[1:0] are used to assign values to bits [15:0] of the result. \n
-///    Bits[3:2] are used to assign values to bits [31:16] of the result. \n
-///    Bits[5:4] are used to assign values to bits [47:32] of the result. \n
-///    Bits[7:6] are used to assign values to bits [63:48] of the result. \n
-///    Bit value assignments: \n
-///    00: assign values from bits [15:0] of \a a. \n
-///    01: assign values from bits [31:16] of \a a. \n
-///    10: assign values from bits [47:32] of \a a. \n
-///    11: assign values from bits [63:48] of \a a. \n
-/// \returns A 128-bit integer vector containing the shuffled values.
-#define _mm_shufflelo_epi16(a, imm) \
-  ((__m128i)__builtin_ia32_pshuflw((__v8hi)(__m128i)(a), (int)(imm)))
-
-/// Constructs a 128-bit integer vector by shuffling four upper 16-bit
-///    elements of a 128-bit integer vector of [8 x i16], using the immediate
-///    value parameter as a specifier.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m128i _mm_shufflehi_epi16(__m128i a, const int imm);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VPSHUFHW / PSHUFHW </c> instruction.
-///
-/// \param a
-///    A 128-bit integer vector of [8 x i16]. Bits [63:0] are copied to bits
-///    [63:0] of the result.
-/// \param imm
-///    An 8-bit immediate value specifying which elements to copy from \a a. \n
-///    Bits[1:0] are used to assign values to bits [79:64] of the result. \n
-///    Bits[3:2] are used to assign values to bits [95:80] of the result. \n
-///    Bits[5:4] are used to assign values to bits [111:96] of the result. \n
-///    Bits[7:6] are used to assign values to bits [127:112] of the result. \n
-///    Bit value assignments: \n
-///    00: assign values from bits [79:64] of \a a. \n
-///    01: assign values from bits [95:80] of \a a. \n
-///    10: assign values from bits [111:96] of \a a. \n
-///    11: assign values from bits [127:112] of \a a. \n
-/// \returns A 128-bit integer vector containing the shuffled values.
-#define _mm_shufflehi_epi16(a, imm) \
-  ((__m128i)__builtin_ia32_pshufhw((__v8hi)(__m128i)(a), (int)(imm)))
-
-/// Unpacks the high-order (index 8-15) values from two 128-bit vectors
-///    of [16 x i8] and interleaves them into a 128-bit vector of [16 x i8].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPUNPCKHBW / PUNPCKHBW </c>
-///   instruction.
-///
-/// \param __a
-///    A 128-bit vector of [16 x i8].
-///    Bits [71:64] are written to bits [7:0] of the result. \n
-///    Bits [79:72] are written to bits [23:16] of the result. \n
-///    Bits [87:80] are written to bits [39:32] of the result. \n
-///    Bits [95:88] are written to bits [55:48] of the result. \n
-///    Bits [103:96] are written to bits [71:64] of the result. \n
-///    Bits [111:104] are written to bits [87:80] of the result. \n
-///    Bits [119:112] are written to bits [103:96] of the result. \n
-///    Bits [127:120] are written to bits [119:112] of the result.
-/// \param __b
-///    A 128-bit vector of [16 x i8]. \n
-///    Bits [71:64] are written to bits [15:8] of the result. \n
-///    Bits [79:72] are written to bits [31:24] of the result. \n
-///    Bits [87:80] are written to bits [47:40] of the result. \n
-///    Bits [95:88] are written to bits [63:56] of the result. \n
-///    Bits [103:96] are written to bits [79:72] of the result. \n
-///    Bits [111:104] are written to bits [95:88] of the result. \n
-///    Bits [119:112] are written to bits [111:104] of the result. \n
-///    Bits [127:120] are written to bits [127:120] of the result.
-/// \returns A 128-bit vector of [16 x i8] containing the interleaved values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_unpackhi_epi8(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_shufflevector((__v16qi)__a, (__v16qi)__b, 8, 16+8, 9, 16+9, 10, 16+10, 11, 16+11, 12, 16+12, 13, 16+13, 14, 16+14, 15, 16+15);
-}
-
-/// Unpacks the high-order (index 4-7) values from two 128-bit vectors of
-///    [8 x i16] and interleaves them into a 128-bit vector of [8 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPUNPCKHWD / PUNPCKHWD </c>
-///   instruction.
-///
-/// \param __a
-///    A 128-bit vector of [8 x i16].
-///    Bits [79:64] are written to bits [15:0] of the result. \n
-///    Bits [95:80] are written to bits [47:32] of the result. \n
-///    Bits [111:96] are written to bits [79:64] of the result. \n
-///    Bits [127:112] are written to bits [111:96] of the result.
-/// \param __b
-///    A 128-bit vector of [8 x i16].
-///    Bits [79:64] are written to bits [31:16] of the result. \n
-///    Bits [95:80] are written to bits [63:48] of the result. \n
-///    Bits [111:96] are written to bits [95:80] of the result. \n
-///    Bits [127:112] are written to bits [127:112] of the result.
-/// \returns A 128-bit vector of [8 x i16] containing the interleaved values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_unpackhi_epi16(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_shufflevector((__v8hi)__a, (__v8hi)__b, 4, 8+4, 5, 8+5, 6, 8+6, 7, 8+7);
-}
-
-/// Unpacks the high-order (index 2,3) values from two 128-bit vectors of
-///    [4 x i32] and interleaves them into a 128-bit vector of [4 x i32].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPUNPCKHDQ / PUNPCKHDQ </c>
-///   instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x i32]. \n
-///    Bits [95:64] are written to bits [31:0] of the destination. \n
-///    Bits [127:96] are written to bits [95:64] of the destination.
-/// \param __b
-///    A 128-bit vector of [4 x i32]. \n
-///    Bits [95:64] are written to bits [64:32] of the destination. \n
-///    Bits [127:96] are written to bits [127:96] of the destination.
-/// \returns A 128-bit vector of [4 x i32] containing the interleaved values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_unpackhi_epi32(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_shufflevector((__v4si)__a, (__v4si)__b, 2, 4+2, 3, 4+3);
-}
-
-/// Unpacks the high-order 64-bit elements from two 128-bit vectors of
-///    [2 x i64] and interleaves them into a 128-bit vector of [2 x i64].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPUNPCKHQDQ / PUNPCKHQDQ </c>
-///   instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x i64]. \n
-///    Bits [127:64] are written to bits [63:0] of the destination.
-/// \param __b
-///    A 128-bit vector of [2 x i64]. \n
-///    Bits [127:64] are written to bits [127:64] of the destination.
-/// \returns A 128-bit vector of [2 x i64] containing the interleaved values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_unpackhi_epi64(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_shufflevector((__v2di)__a, (__v2di)__b, 1, 2+1);
-}
-
-/// Unpacks the low-order (index 0-7) values from two 128-bit vectors of
-///    [16 x i8] and interleaves them into a 128-bit vector of [16 x i8].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPUNPCKLBW / PUNPCKLBW </c>
-///   instruction.
-///
-/// \param __a
-///    A 128-bit vector of [16 x i8]. \n
-///    Bits [7:0] are written to bits [7:0] of the result. \n
-///    Bits [15:8] are written to bits [23:16] of the result. \n
-///    Bits [23:16] are written to bits [39:32] of the result. \n
-///    Bits [31:24] are written to bits [55:48] of the result. \n
-///    Bits [39:32] are written to bits [71:64] of the result. \n
-///    Bits [47:40] are written to bits [87:80] of the result. \n
-///    Bits [55:48] are written to bits [103:96] of the result. \n
-///    Bits [63:56] are written to bits [119:112] of the result.
-/// \param __b
-///    A 128-bit vector of [16 x i8].
-///    Bits [7:0] are written to bits [15:8] of the result. \n
-///    Bits [15:8] are written to bits [31:24] of the result. \n
-///    Bits [23:16] are written to bits [47:40] of the result. \n
-///    Bits [31:24] are written to bits [63:56] of the result. \n
-///    Bits [39:32] are written to bits [79:72] of the result. \n
-///    Bits [47:40] are written to bits [95:88] of the result. \n
-///    Bits [55:48] are written to bits [111:104] of the result. \n
-///    Bits [63:56] are written to bits [127:120] of the result.
-/// \returns A 128-bit vector of [16 x i8] containing the interleaved values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_unpacklo_epi8(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_shufflevector((__v16qi)__a, (__v16qi)__b, 0, 16+0, 1, 16+1, 2, 16+2, 3, 16+3, 4, 16+4, 5, 16+5, 6, 16+6, 7, 16+7);
-}
-
-/// Unpacks the low-order (index 0-3) values from each of the two 128-bit
-///    vectors of [8 x i16] and interleaves them into a 128-bit vector of
-///    [8 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPUNPCKLWD / PUNPCKLWD </c>
-///   instruction.
-///
-/// \param __a
-///    A 128-bit vector of [8 x i16].
-///    Bits [15:0] are written to bits [15:0] of the result. \n
-///    Bits [31:16] are written to bits [47:32] of the result. \n
-///    Bits [47:32] are written to bits [79:64] of the result. \n
-///    Bits [63:48] are written to bits [111:96] of the result.
-/// \param __b
-///    A 128-bit vector of [8 x i16].
-///    Bits [15:0] are written to bits [31:16] of the result. \n
-///    Bits [31:16] are written to bits [63:48] of the result. \n
-///    Bits [47:32] are written to bits [95:80] of the result. \n
-///    Bits [63:48] are written to bits [127:112] of the result.
-/// \returns A 128-bit vector of [8 x i16] containing the interleaved values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_unpacklo_epi16(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_shufflevector((__v8hi)__a, (__v8hi)__b, 0, 8+0, 1, 8+1, 2, 8+2, 3, 8+3);
-}
-
-/// Unpacks the low-order (index 0,1) values from two 128-bit vectors of
-///    [4 x i32] and interleaves them into a 128-bit vector of [4 x i32].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPUNPCKLDQ / PUNPCKLDQ </c>
-///   instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x i32]. \n
-///    Bits [31:0] are written to bits [31:0] of the destination. \n
-///    Bits [63:32] are written to bits [95:64] of the destination.
-/// \param __b
-///    A 128-bit vector of [4 x i32]. \n
-///    Bits [31:0] are written to bits [64:32] of the destination. \n
-///    Bits [63:32] are written to bits [127:96] of the destination.
-/// \returns A 128-bit vector of [4 x i32] containing the interleaved values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_unpacklo_epi32(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_shufflevector((__v4si)__a, (__v4si)__b, 0, 4+0, 1, 4+1);
-}
-
-/// Unpacks the low-order 64-bit elements from two 128-bit vectors of
-///    [2 x i64] and interleaves them into a 128-bit vector of [2 x i64].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPUNPCKLQDQ / PUNPCKLQDQ </c>
-///   instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x i64]. \n
-///    Bits [63:0] are written to bits [63:0] of the destination. \n
-/// \param __b
-///    A 128-bit vector of [2 x i64]. \n
-///    Bits [63:0] are written to bits [127:64] of the destination. \n
-/// \returns A 128-bit vector of [2 x i64] containing the interleaved values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_unpacklo_epi64(__m128i __a, __m128i __b)
-{
-  return (__m128i)__builtin_shufflevector((__v2di)__a, (__v2di)__b, 0, 2+0);
-}
-
-/// Returns the lower 64 bits of a 128-bit integer vector as a 64-bit
-///    integer.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> MOVDQ2Q </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector operand. The lower 64 bits are moved to the
-///    destination.
-/// \returns A 64-bit integer containing the lower 64 bits of the parameter.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_movepi64_pi64(__m128i __a)
-{
-  return (__m64)__a[0];
-}
-
-/// Moves the 64-bit operand to a 128-bit integer vector, zeroing the
-///    upper bits.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> MOVD+VMOVQ </c> instruction.
-///
-/// \param __a
-///    A 64-bit value.
-/// \returns A 128-bit integer vector. The lower 64 bits contain the value from
-///    the operand. The upper 64 bits are assigned zeros.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_movpi64_epi64(__m64 __a)
-{
-  return __extension__ (__m128i)(__v2di){ (long long)__a, 0 };
-}
-
-/// Moves the lower 64 bits of a 128-bit integer vector to a 128-bit
-///    integer vector, zeroing the upper bits.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVQ / MOVQ </c> instruction.
-///
-/// \param __a
-///    A 128-bit integer vector operand. The lower 64 bits are moved to the
-///    destination.
-/// \returns A 128-bit integer vector. The lower 64 bits contain the value from
-///    the operand. The upper 64 bits are assigned zeros.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_move_epi64(__m128i __a)
-{
-  return __builtin_shufflevector((__v2di)__a, _mm_setzero_si128(), 0, 2);
-}
-
-/// Unpacks the high-order 64-bit elements from two 128-bit vectors of
-///    [2 x double] and interleaves them into a 128-bit vector of [2 x
-///    double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUNPCKHPD / UNPCKHPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. \n
-///    Bits [127:64] are written to bits [63:0] of the destination.
-/// \param __b
-///    A 128-bit vector of [2 x double]. \n
-///    Bits [127:64] are written to bits [127:64] of the destination.
-/// \returns A 128-bit vector of [2 x double] containing the interleaved values.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_unpackhi_pd(__m128d __a, __m128d __b)
-{
-  return __builtin_shufflevector((__v2df)__a, (__v2df)__b, 1, 2+1);
-}
-
-/// Unpacks the low-order 64-bit elements from two 128-bit vectors
-///    of [2 x double] and interleaves them into a 128-bit vector of [2 x
-///    double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUNPCKLPD / UNPCKLPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. \n
-///    Bits [63:0] are written to bits [63:0] of the destination.
-/// \param __b
-///    A 128-bit vector of [2 x double]. \n
-///    Bits [63:0] are written to bits [127:64] of the destination.
-/// \returns A 128-bit vector of [2 x double] containing the interleaved values.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_unpacklo_pd(__m128d __a, __m128d __b)
-{
-  return __builtin_shufflevector((__v2df)__a, (__v2df)__b, 0, 2+0);
-}
-
-/// Extracts the sign bits of the double-precision values in the 128-bit
-///    vector of [2 x double], zero-extends the value, and writes it to the
-///    low-order bits of the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVMSKPD / MOVMSKPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double] containing the values with sign bits to
-///    be extracted.
-/// \returns The sign bits from each of the double-precision elements in \a __a,
-///    written to bits [1:0]. The remaining bits are assigned values of zero.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_movemask_pd(__m128d __a)
-{
-  return __builtin_ia32_movmskpd((__v2df)__a);
-}
-
-
-/// Constructs a 128-bit floating-point vector of [2 x double] from two
-///    128-bit vector parameters of [2 x double], using the immediate-value
-///     parameter as a specifier.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m128d _mm_shuffle_pd(__m128d a, __m128d b, const int i);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VSHUFPD / SHUFPD </c> instruction.
-///
-/// \param a
-///    A 128-bit vector of [2 x double].
-/// \param b
-///    A 128-bit vector of [2 x double].
-/// \param i
-///    An 8-bit immediate value. The least significant two bits specify which
-///    elements to copy from \a a and \a b: \n
-///    Bit[0] = 0: lower element of \a a copied to lower element of result. \n
-///    Bit[0] = 1: upper element of \a a copied to lower element of result. \n
-///    Bit[1] = 0: lower element of \a b copied to upper element of result. \n
-///    Bit[1] = 1: upper element of \a b copied to upper element of result. \n
-/// \returns A 128-bit vector of [2 x double] containing the shuffled values.
-#define _mm_shuffle_pd(a, b, i) \
-  ((__m128d)__builtin_ia32_shufpd((__v2df)(__m128d)(a), (__v2df)(__m128d)(b), \
-                                  (int)(i)))
-
-/// Casts a 128-bit floating-point vector of [2 x double] into a 128-bit
-///    floating-point vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 128-bit floating-point vector of [2 x double].
-/// \returns A 128-bit floating-point vector of [4 x float] containing the same
-///    bitwise pattern as the parameter.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_castpd_ps(__m128d __a)
-{
-  return (__m128)__a;
-}
-
-/// Casts a 128-bit floating-point vector of [2 x double] into a 128-bit
-///    integer vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 128-bit floating-point vector of [2 x double].
-/// \returns A 128-bit integer vector containing the same bitwise pattern as the
-///    parameter.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_castpd_si128(__m128d __a)
-{
-  return (__m128i)__a;
-}
-
-/// Casts a 128-bit floating-point vector of [4 x float] into a 128-bit
-///    floating-point vector of [2 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 128-bit floating-point vector of [4 x float].
-/// \returns A 128-bit floating-point vector of [2 x double] containing the same
-///    bitwise pattern as the parameter.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_castps_pd(__m128 __a)
-{
-  return (__m128d)__a;
-}
-
-/// Casts a 128-bit floating-point vector of [4 x float] into a 128-bit
-///    integer vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 128-bit floating-point vector of [4 x float].
-/// \returns A 128-bit integer vector containing the same bitwise pattern as the
-///    parameter.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_castps_si128(__m128 __a)
-{
-  return (__m128i)__a;
-}
-
-/// Casts a 128-bit integer vector into a 128-bit floating-point vector
-///    of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \returns A 128-bit floating-point vector of [4 x float] containing the same
-///    bitwise pattern as the parameter.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_castsi128_ps(__m128i __a)
-{
-  return (__m128)__a;
-}
-
-/// Casts a 128-bit integer vector into a 128-bit floating-point vector
-///    of [2 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \returns A 128-bit floating-point vector of [2 x double] containing the same
-///    bitwise pattern as the parameter.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_castsi128_pd(__m128i __a)
-{
-  return (__m128d)__a;
-}
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/// Indicates that a spin loop is being executed for the purposes of
-///    optimizing power consumption during the loop.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PAUSE </c> instruction.
-///
-void _mm_pause(void);
-
-#if defined(__cplusplus)
-} // extern "C"
-#endif
-#undef __DEFAULT_FN_ATTRS
-#undef __DEFAULT_FN_ATTRS_MMX
-
-#define _MM_SHUFFLE2(x, y) (((x) << 1) | (y))
-
-#define _MM_DENORMALS_ZERO_ON   (0x0040U)
-#define _MM_DENORMALS_ZERO_OFF  (0x0000U)
-
-#define _MM_DENORMALS_ZERO_MASK (0x0040U)
-
-#define _MM_GET_DENORMALS_ZERO_MODE() (_mm_getcsr() & _MM_DENORMALS_ZERO_MASK)
-#define _MM_SET_DENORMALS_ZERO_MODE(x) (_mm_setcsr((_mm_getcsr() & ~_MM_DENORMALS_ZERO_MASK) | (x)))
-
-#endif /* __EMMINTRIN_H */
diff --git a/linux-x86/lib64/clang/14.0.1/include/ia32intrin.h b/linux-x86/lib64/clang/14.0.1/include/ia32intrin.h
deleted file mode 100644
index 00138ef..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/ia32intrin.h
+++ /dev/null
@@ -1,441 +0,0 @@
-/* ===-------- ia32intrin.h ---------------------------------------------------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-
-#ifndef __X86INTRIN_H
-#error "Never use <ia32intrin.h> directly; include <x86intrin.h> instead."
-#endif
-
-#ifndef __IA32INTRIN_H
-#define __IA32INTRIN_H
-
-/* Define the default attributes for the functions in this file. */
-#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
-#define __DEFAULT_FN_ATTRS_SSE42 __attribute__((__always_inline__, __nodebug__, __target__("sse4.2")))
-
-#if defined(__cplusplus) && (__cplusplus >= 201103L)
-#define __DEFAULT_FN_ATTRS_CAST __attribute__((__always_inline__)) constexpr
-#define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS constexpr
-#else
-#define __DEFAULT_FN_ATTRS_CAST __attribute__((__always_inline__))
-#define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS
-#endif
-
-/** Find the first set bit starting from the lsb. Result is undefined if
- *  input is 0.
- *
- *  \headerfile <x86intrin.h>
- *
- *  This intrinsic corresponds to the <c> BSF </c> instruction or the
- *  <c> TZCNT </c> instruction.
- *
- *  \param __A
- *     A 32-bit integer operand.
- *  \returns A 32-bit integer containing the bit number.
- */
-static __inline__ int __DEFAULT_FN_ATTRS_CONSTEXPR
-__bsfd(int __A) {
-  return __builtin_ctz(__A);
-}
-
-/** Find the first set bit starting from the msb. Result is undefined if
- *  input is 0.
- *
- *  \headerfile <x86intrin.h>
- *
- *  This intrinsic corresponds to the <c> BSR </c> instruction or the
- *  <c> LZCNT </c> instruction and an <c> XOR </c>.
- *
- *  \param __A
- *     A 32-bit integer operand.
- *  \returns A 32-bit integer containing the bit number.
- */
-static __inline__ int __DEFAULT_FN_ATTRS_CONSTEXPR
-__bsrd(int __A) {
-  return 31 - __builtin_clz(__A);
-}
-
-/** Swaps the bytes in the input. Converting little endian to big endian or
- *  vice versa.
- *
- *  \headerfile <x86intrin.h>
- *
- *  This intrinsic corresponds to the <c> BSWAP </c> instruction.
- *
- *  \param __A
- *     A 32-bit integer operand.
- *  \returns A 32-bit integer containing the swapped bytes.
- */
-static __inline__ int __DEFAULT_FN_ATTRS_CONSTEXPR
-__bswapd(int __A) {
-  return __builtin_bswap32(__A);
-}
-
-static __inline__ int __DEFAULT_FN_ATTRS_CONSTEXPR
-_bswap(int __A) {
-  return __builtin_bswap32(__A);
-}
-
-#define _bit_scan_forward(A) __bsfd((A))
-#define _bit_scan_reverse(A) __bsrd((A))
-
-#ifdef __x86_64__
-/** Find the first set bit starting from the lsb. Result is undefined if
- *  input is 0.
- *
- *  \headerfile <x86intrin.h>
- *
- *  This intrinsic corresponds to the <c> BSF </c> instruction or the
- *  <c> TZCNT </c> instruction.
- *
- *  \param __A
- *     A 64-bit integer operand.
- *  \returns A 32-bit integer containing the bit number.
- */
-static __inline__ int __DEFAULT_FN_ATTRS_CONSTEXPR
-__bsfq(long long __A) {
-  return __builtin_ctzll(__A);
-}
-
-/** Find the first set bit starting from the msb. Result is undefined if
- *  input is 0.
- *
- *  \headerfile <x86intrin.h>
- *
- *  This intrinsic corresponds to the <c> BSR </c> instruction or the
- *  <c> LZCNT </c> instruction and an <c> XOR </c>.
- *
- *  \param __A
- *     A 64-bit integer operand.
- *  \returns A 32-bit integer containing the bit number.
- */
-static __inline__ int __DEFAULT_FN_ATTRS_CONSTEXPR
-__bsrq(long long __A) {
-  return 63 - __builtin_clzll(__A);
-}
-
-/** Swaps the bytes in the input. Converting little endian to big endian or
- *  vice versa.
- *
- *  \headerfile <x86intrin.h>
- *
- *  This intrinsic corresponds to the <c> BSWAP </c> instruction.
- *
- *  \param __A
- *     A 64-bit integer operand.
- *  \returns A 64-bit integer containing the swapped bytes.
- */
-static __inline__ long long __DEFAULT_FN_ATTRS_CONSTEXPR
-__bswapq(long long __A) {
-  return __builtin_bswap64(__A);
-}
-
-#define _bswap64(A) __bswapq((A))
-#endif
-
-/** Counts the number of bits in the source operand having a value of 1.
- *
- *  \headerfile <x86intrin.h>
- *
- *  This intrinsic corresponds to the <c> POPCNT </c> instruction or a
- *  a sequence of arithmetic and logic ops to calculate it.
- *
- *  \param __A
- *     An unsigned 32-bit integer operand.
- *  \returns A 32-bit integer containing the number of bits with value 1 in the
- *     source operand.
- */
-static __inline__ int __DEFAULT_FN_ATTRS_CONSTEXPR
-__popcntd(unsigned int __A)
-{
-  return __builtin_popcount(__A);
-}
-
-#define _popcnt32(A) __popcntd((A))
-
-#ifdef __x86_64__
-/** Counts the number of bits in the source operand having a value of 1.
- *
- *  \headerfile <x86intrin.h>
- *
- *  This intrinsic corresponds to the <c> POPCNT </c> instruction or a
- *  a sequence of arithmetic and logic ops to calculate it.
- *
- *  \param __A
- *     An unsigned 64-bit integer operand.
- *  \returns A 64-bit integer containing the number of bits with value 1 in the
- *     source operand.
- */
-static __inline__ long long __DEFAULT_FN_ATTRS_CONSTEXPR
-__popcntq(unsigned long long __A)
-{
-  return __builtin_popcountll(__A);
-}
-
-#define _popcnt64(A) __popcntq((A))
-#endif /* __x86_64__ */
-
-#ifdef __x86_64__
-static __inline__ unsigned long long __DEFAULT_FN_ATTRS
-__readeflags(void)
-{
-  return __builtin_ia32_readeflags_u64();
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-__writeeflags(unsigned long long __f)
-{
-  __builtin_ia32_writeeflags_u64(__f);
-}
-
-#else /* !__x86_64__ */
-static __inline__ unsigned int __DEFAULT_FN_ATTRS
-__readeflags(void)
-{
-  return __builtin_ia32_readeflags_u32();
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-__writeeflags(unsigned int __f)
-{
-  __builtin_ia32_writeeflags_u32(__f);
-}
-#endif /* !__x86_64__ */
-
-/** Cast a 32-bit float value to a 32-bit unsigned integer value
- *
- *  \headerfile <x86intrin.h>
- *  This intrinsic corresponds to the <c> VMOVD / MOVD </c> instruction in x86_64,
- *  and corresponds to the <c> VMOVL / MOVL </c> instruction in ia32.
- *
- *  \param __A
- *     A 32-bit float value.
- *  \returns a 32-bit unsigned integer containing the converted value.
- */
-static __inline__ unsigned int __DEFAULT_FN_ATTRS_CAST
-_castf32_u32(float __A) {
-  return __builtin_bit_cast(unsigned int, __A);
-}
-
-/** Cast a 64-bit float value to a 64-bit unsigned integer value
- *
- *  \headerfile <x86intrin.h>
- *  This intrinsic corresponds to the <c> VMOVQ / MOVQ </c> instruction in x86_64,
- *  and corresponds to the <c> VMOVL / MOVL </c> instruction in ia32.
- *
- *  \param __A
- *     A 64-bit float value.
- *  \returns a 64-bit unsigned integer containing the converted value.
- */
-static __inline__ unsigned long long __DEFAULT_FN_ATTRS_CAST
-_castf64_u64(double __A) {
-  return __builtin_bit_cast(unsigned long long, __A);
-}
-
-/** Cast a 32-bit unsigned integer value to a 32-bit float value
- *
- *  \headerfile <x86intrin.h>
- *  This intrinsic corresponds to the <c> VMOVQ / MOVQ </c> instruction in x86_64,
- *  and corresponds to the <c> FLDS </c> instruction in ia32.
- *
- *  \param __A
- *     A 32-bit unsigned integer value.
- *  \returns a 32-bit float value containing the converted value.
- */
-static __inline__ float __DEFAULT_FN_ATTRS_CAST
-_castu32_f32(unsigned int __A) {
-  return __builtin_bit_cast(float, __A);
-}
-
-/** Cast a 64-bit unsigned integer value to a 64-bit float value
- *
- *  \headerfile <x86intrin.h>
- *  This intrinsic corresponds to the <c> VMOVQ / MOVQ </c> instruction in x86_64,
- *  and corresponds to the <c> FLDL </c> instruction in ia32.
- *
- *  \param __A
- *     A 64-bit unsigned integer value.
- *  \returns a 64-bit float value containing the converted value.
- */
-static __inline__ double __DEFAULT_FN_ATTRS_CAST
-_castu64_f64(unsigned long long __A) {
-  return __builtin_bit_cast(double, __A);
-}
-
-/** Adds the unsigned integer operand to the CRC-32C checksum of the
- *     unsigned char operand.
- *
- *  \headerfile <x86intrin.h>
- *
- *  This intrinsic corresponds to the <c> CRC32B </c> instruction.
- *
- *  \param __C
- *     An unsigned integer operand to add to the CRC-32C checksum of operand
- *     \a  __D.
- *  \param __D
- *     An unsigned 8-bit integer operand used to compute the CRC-32C checksum.
- *  \returns The result of adding operand \a __C to the CRC-32C checksum of
- *     operand \a __D.
- */
-static __inline__ unsigned int __DEFAULT_FN_ATTRS_SSE42
-__crc32b(unsigned int __C, unsigned char __D)
-{
-  return __builtin_ia32_crc32qi(__C, __D);
-}
-
-/** Adds the unsigned integer operand to the CRC-32C checksum of the
- *     unsigned short operand.
- *
- *  \headerfile <x86intrin.h>
- *
- *  This intrinsic corresponds to the <c> CRC32W </c> instruction.
- *
- *  \param __C
- *     An unsigned integer operand to add to the CRC-32C checksum of operand
- *     \a  __D.
- *  \param __D
- *     An unsigned 16-bit integer operand used to compute the CRC-32C checksum.
- *  \returns The result of adding operand \a __C to the CRC-32C checksum of
- *     operand \a __D.
- */
-static __inline__ unsigned int __DEFAULT_FN_ATTRS_SSE42
-__crc32w(unsigned int __C, unsigned short __D)
-{
-  return __builtin_ia32_crc32hi(__C, __D);
-}
-
-/** Adds the unsigned integer operand to the CRC-32C checksum of the
- *     second unsigned integer operand.
- *
- *  \headerfile <x86intrin.h>
- *
- *  This intrinsic corresponds to the <c> CRC32D </c> instruction.
- *
- *  \param __C
- *     An unsigned integer operand to add to the CRC-32C checksum of operand
- *     \a  __D.
- *  \param __D
- *     An unsigned 32-bit integer operand used to compute the CRC-32C checksum.
- *  \returns The result of adding operand \a __C to the CRC-32C checksum of
- *     operand \a __D.
- */
-static __inline__ unsigned int __DEFAULT_FN_ATTRS_SSE42
-__crc32d(unsigned int __C, unsigned int __D)
-{
-  return __builtin_ia32_crc32si(__C, __D);
-}
-
-#ifdef __x86_64__
-/** Adds the unsigned integer operand to the CRC-32C checksum of the
- *     unsigned 64-bit integer operand.
- *
- *  \headerfile <x86intrin.h>
- *
- *  This intrinsic corresponds to the <c> CRC32Q </c> instruction.
- *
- *  \param __C
- *     An unsigned integer operand to add to the CRC-32C checksum of operand
- *     \a  __D.
- *  \param __D
- *     An unsigned 64-bit integer operand used to compute the CRC-32C checksum.
- *  \returns The result of adding operand \a __C to the CRC-32C checksum of
- *     operand \a __D.
- */
-static __inline__ unsigned long long __DEFAULT_FN_ATTRS_SSE42
-__crc32q(unsigned long long __C, unsigned long long __D)
-{
-  return __builtin_ia32_crc32di(__C, __D);
-}
-#endif /* __x86_64__ */
-
-static __inline__ unsigned long long __DEFAULT_FN_ATTRS
-__rdpmc(int __A) {
-  return __builtin_ia32_rdpmc(__A);
-}
-
-/* __rdtscp */
-static __inline__ unsigned long long __DEFAULT_FN_ATTRS
-__rdtscp(unsigned int *__A) {
-  return __builtin_ia32_rdtscp(__A);
-}
-
-#define _rdtsc() __rdtsc()
-
-#define _rdpmc(A) __rdpmc(A)
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_wbinvd(void) {
-  __builtin_ia32_wbinvd();
-}
-
-static __inline__ unsigned char __DEFAULT_FN_ATTRS_CONSTEXPR
-__rolb(unsigned char __X, int __C) {
-  return __builtin_rotateleft8(__X, __C);
-}
-
-static __inline__ unsigned char __DEFAULT_FN_ATTRS_CONSTEXPR
-__rorb(unsigned char __X, int __C) {
-  return __builtin_rotateright8(__X, __C);
-}
-
-static __inline__ unsigned short __DEFAULT_FN_ATTRS_CONSTEXPR
-__rolw(unsigned short __X, int __C) {
-  return __builtin_rotateleft16(__X, __C);
-}
-
-static __inline__ unsigned short __DEFAULT_FN_ATTRS_CONSTEXPR
-__rorw(unsigned short __X, int __C) {
-  return __builtin_rotateright16(__X, __C);
-}
-
-static __inline__ unsigned int __DEFAULT_FN_ATTRS_CONSTEXPR
-__rold(unsigned int __X, int __C) {
-  return __builtin_rotateleft32(__X, __C);
-}
-
-static __inline__ unsigned int __DEFAULT_FN_ATTRS_CONSTEXPR
-__rord(unsigned int __X, int __C) {
-  return __builtin_rotateright32(__X, __C);
-}
-
-#ifdef __x86_64__
-static __inline__ unsigned long long __DEFAULT_FN_ATTRS_CONSTEXPR
-__rolq(unsigned long long __X, int __C) {
-  return __builtin_rotateleft64(__X, __C);
-}
-
-static __inline__ unsigned long long __DEFAULT_FN_ATTRS_CONSTEXPR
-__rorq(unsigned long long __X, int __C) {
-  return __builtin_rotateright64(__X, __C);
-}
-#endif /* __x86_64__ */
-
-#ifndef _MSC_VER
-/* These are already provided as builtins for MSVC. */
-/* Select the correct function based on the size of long. */
-#ifdef __LP64__
-#define _lrotl(a,b) __rolq((a), (b))
-#define _lrotr(a,b) __rorq((a), (b))
-#else
-#define _lrotl(a,b) __rold((a), (b))
-#define _lrotr(a,b) __rord((a), (b))
-#endif
-#define _rotl(a,b) __rold((a), (b))
-#define _rotr(a,b) __rord((a), (b))
-#endif // _MSC_VER
-
-/* These are not builtins so need to be provided in all modes. */
-#define _rotwl(a,b) __rolw((a), (b))
-#define _rotwr(a,b) __rorw((a), (b))
-
-#undef __DEFAULT_FN_ATTRS
-#undef __DEFAULT_FN_ATTRS_CAST
-#undef __DEFAULT_FN_ATTRS_SSE42
-#undef __DEFAULT_FN_ATTRS_CONSTEXPR
-
-#endif /* __IA32INTRIN_H */
diff --git a/linux-x86/lib64/clang/14.0.1/include/immintrin.h b/linux-x86/lib64/clang/14.0.1/include/immintrin.h
deleted file mode 100644
index 8a75895..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/immintrin.h
+++ /dev/null
@@ -1,614 +0,0 @@
-/*===---- immintrin.h - Intel intrinsics -----------------------------------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-
-#ifndef __IMMINTRIN_H
-#define __IMMINTRIN_H
-
-#include <x86gprintrin.h>
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__MMX__)
-#include <mmintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__SSE__)
-#include <xmmintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__SSE2__)
-#include <emmintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__SSE3__)
-#include <pmmintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__SSSE3__)
-#include <tmmintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    (defined(__SSE4_2__) || defined(__SSE4_1__))
-#include <smmintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    (defined(__AES__) || defined(__PCLMUL__))
-#include <wmmintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__CLFLUSHOPT__)
-#include <clflushoptintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__CLWB__)
-#include <clwbintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__AVX__)
-#include <avxintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__AVX2__)
-#include <avx2intrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__F16C__)
-#include <f16cintrin.h>
-#endif
-
-/* No feature check desired due to internal checks */
-#include <bmiintrin.h>
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__BMI2__)
-#include <bmi2intrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__LZCNT__)
-#include <lzcntintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__POPCNT__)
-#include <popcntintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__FMA__)
-#include <fmaintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__AVX512F__)
-#include <avx512fintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__AVX512VL__)
-#include <avx512vlintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__AVX512BW__)
-#include <avx512bwintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__AVX512BITALG__)
-#include <avx512bitalgintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__AVX512CD__)
-#include <avx512cdintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__AVX512VPOPCNTDQ__)
-#include <avx512vpopcntdqintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    (defined(__AVX512VL__) && defined(__AVX512VPOPCNTDQ__))
-#include <avx512vpopcntdqvlintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__AVX512VNNI__)
-#include <avx512vnniintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    (defined(__AVX512VL__) && defined(__AVX512VNNI__))
-#include <avx512vlvnniintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__AVXVNNI__)
-#include <avxvnniintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__AVX512DQ__)
-#include <avx512dqintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    (defined(__AVX512VL__) && defined(__AVX512BITALG__))
-#include <avx512vlbitalgintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    (defined(__AVX512VL__) && defined(__AVX512BW__))
-#include <avx512vlbwintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    (defined(__AVX512VL__) && defined(__AVX512CD__))
-#include <avx512vlcdintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    (defined(__AVX512VL__) && defined(__AVX512DQ__))
-#include <avx512vldqintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__AVX512ER__)
-#include <avx512erintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__AVX512IFMA__)
-#include <avx512ifmaintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    (defined(__AVX512IFMA__) && defined(__AVX512VL__))
-#include <avx512ifmavlintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__AVX512VBMI__)
-#include <avx512vbmiintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    (defined(__AVX512VBMI__) && defined(__AVX512VL__))
-#include <avx512vbmivlintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__AVX512VBMI2__)
-#include <avx512vbmi2intrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    (defined(__AVX512VBMI2__) && defined(__AVX512VL__))
-#include <avx512vlvbmi2intrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__AVX512PF__)
-#include <avx512pfintrin.h>
-#endif
-
-/*
- * FIXME: _Float16 type is legal only when HW support float16 operation.
- * We use __AVX512FP16__ to identify if float16 is supported or not, so
- * when float16 is not supported, the related header is not included.
- *
- */
-#if defined(__AVX512FP16__)
-#include <avx512fp16intrin.h>
-#endif
-
-#if defined(__AVX512FP16__) && defined(__AVX512VL__)
-#include <avx512vlfp16intrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__AVX512BF16__)
-#include <avx512bf16intrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    (defined(__AVX512VL__) && defined(__AVX512BF16__))
-#include <avx512vlbf16intrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__PKU__)
-#include <pkuintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__VPCLMULQDQ__)
-#include <vpclmulqdqintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__VAES__)
-#include <vaesintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__GFNI__)
-#include <gfniintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__RDPID__)
-/// Returns the value of the IA32_TSC_AUX MSR (0xc0000103).
-///
-/// \headerfile <immintrin.h>
-///
-/// This intrinsic corresponds to the <c> RDPID </c> instruction.
-static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("rdpid")))
-_rdpid_u32(void) {
-  return __builtin_ia32_rdpid();
-}
-#endif // __RDPID__
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__RDRND__)
-static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd")))
-_rdrand16_step(unsigned short *__p)
-{
-  return __builtin_ia32_rdrand16_step(__p);
-}
-
-static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd")))
-_rdrand32_step(unsigned int *__p)
-{
-  return __builtin_ia32_rdrand32_step(__p);
-}
-
-#ifdef __x86_64__
-static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd")))
-_rdrand64_step(unsigned long long *__p)
-{
-  return __builtin_ia32_rdrand64_step(__p);
-}
-#endif
-#endif /* __RDRND__ */
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__FSGSBASE__)
-#ifdef __x86_64__
-static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
-_readfsbase_u32(void)
-{
-  return __builtin_ia32_rdfsbase32();
-}
-
-static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
-_readfsbase_u64(void)
-{
-  return __builtin_ia32_rdfsbase64();
-}
-
-static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
-_readgsbase_u32(void)
-{
-  return __builtin_ia32_rdgsbase32();
-}
-
-static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
-_readgsbase_u64(void)
-{
-  return __builtin_ia32_rdgsbase64();
-}
-
-static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
-_writefsbase_u32(unsigned int __V)
-{
-  __builtin_ia32_wrfsbase32(__V);
-}
-
-static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
-_writefsbase_u64(unsigned long long __V)
-{
-  __builtin_ia32_wrfsbase64(__V);
-}
-
-static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
-_writegsbase_u32(unsigned int __V)
-{
-  __builtin_ia32_wrgsbase32(__V);
-}
-
-static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
-_writegsbase_u64(unsigned long long __V)
-{
-  __builtin_ia32_wrgsbase64(__V);
-}
-
-#endif
-#endif /* __FSGSBASE__ */
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__MOVBE__)
-
-/* The structs used below are to force the load/store to be unaligned. This
- * is accomplished with the __packed__ attribute. The __may_alias__ prevents
- * tbaa metadata from being generated based on the struct and the type of the
- * field inside of it.
- */
-
-static __inline__ short __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
-_loadbe_i16(void const * __P) {
-  struct __loadu_i16 {
-    short __v;
-  } __attribute__((__packed__, __may_alias__));
-  return __builtin_bswap16(((const struct __loadu_i16*)__P)->__v);
-}
-
-static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
-_storebe_i16(void * __P, short __D) {
-  struct __storeu_i16 {
-    short __v;
-  } __attribute__((__packed__, __may_alias__));
-  ((struct __storeu_i16*)__P)->__v = __builtin_bswap16(__D);
-}
-
-static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
-_loadbe_i32(void const * __P) {
-  struct __loadu_i32 {
-    int __v;
-  } __attribute__((__packed__, __may_alias__));
-  return __builtin_bswap32(((const struct __loadu_i32*)__P)->__v);
-}
-
-static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
-_storebe_i32(void * __P, int __D) {
-  struct __storeu_i32 {
-    int __v;
-  } __attribute__((__packed__, __may_alias__));
-  ((struct __storeu_i32*)__P)->__v = __builtin_bswap32(__D);
-}
-
-#ifdef __x86_64__
-static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
-_loadbe_i64(void const * __P) {
-  struct __loadu_i64 {
-    long long __v;
-  } __attribute__((__packed__, __may_alias__));
-  return __builtin_bswap64(((const struct __loadu_i64*)__P)->__v);
-}
-
-static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
-_storebe_i64(void * __P, long long __D) {
-  struct __storeu_i64 {
-    long long __v;
-  } __attribute__((__packed__, __may_alias__));
-  ((struct __storeu_i64*)__P)->__v = __builtin_bswap64(__D);
-}
-#endif
-#endif /* __MOVBE */
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__RTM__)
-#include <rtmintrin.h>
-#include <xtestintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__SHA__)
-#include <shaintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__FXSR__)
-#include <fxsrintrin.h>
-#endif
-
-/* No feature check desired due to internal MSC_VER checks */
-#include <xsaveintrin.h>
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__XSAVEOPT__)
-#include <xsaveoptintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__XSAVEC__)
-#include <xsavecintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__XSAVES__)
-#include <xsavesintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__SHSTK__)
-#include <cetintrin.h>
-#endif
-
-/* Some intrinsics inside adxintrin.h are available only on processors with ADX,
- * whereas others are also available at all times. */
-#include <adxintrin.h>
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__RDSEED__)
-#include <rdseedintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__WBNOINVD__)
-#include <wbnoinvdintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__CLDEMOTE__)
-#include <cldemoteintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__WAITPKG__)
-#include <waitpkgintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__MOVDIRI__) || defined(__MOVDIR64B__)
-#include <movdirintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__PCONFIG__)
-#include <pconfigintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__SGX__)
-#include <sgxintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__PTWRITE__)
-#include <ptwriteintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__INVPCID__)
-#include <invpcidintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__KL__) || defined(__WIDEKL__)
-#include <keylockerintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__AMXTILE__) || defined(__AMXINT8__) || defined(__AMXBF16__)
-#include <amxintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__AVX512VP2INTERSECT__)
-#include <avx512vp2intersectintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    (defined(__AVX512VL__) && defined(__AVX512VP2INTERSECT__))
-#include <avx512vlvp2intersectintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__ENQCMD__)
-#include <enqcmdintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__SERIALIZE__)
-#include <serializeintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__TSXLDTRK__)
-#include <tsxldtrkintrin.h>
-#endif
-
-#if defined(_MSC_VER) && __has_extension(gnu_asm)
-/* Define the default attributes for these intrinsics */
-#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
-#ifdef __cplusplus
-extern "C" {
-#endif
-/*----------------------------------------------------------------------------*\
-|* Interlocked Exchange HLE
-\*----------------------------------------------------------------------------*/
-#if defined(__i386__) || defined(__x86_64__)
-static __inline__ long __DEFAULT_FN_ATTRS
-_InterlockedExchange_HLEAcquire(long volatile *_Target, long _Value) {
-  __asm__ __volatile__(".byte 0xf2 ; lock ; xchg %0, %1"
-                       : "+r" (_Value), "+m" (*_Target) :: "memory");
-  return _Value;
-}
-static __inline__ long __DEFAULT_FN_ATTRS
-_InterlockedExchange_HLERelease(long volatile *_Target, long _Value) {
-  __asm__ __volatile__(".byte 0xf3 ; lock ; xchg %0, %1"
-                       : "+r" (_Value), "+m" (*_Target) :: "memory");
-  return _Value;
-}
-#endif
-#if defined(__x86_64__)
-static __inline__ __int64 __DEFAULT_FN_ATTRS
-_InterlockedExchange64_HLEAcquire(__int64 volatile *_Target, __int64 _Value) {
-  __asm__ __volatile__(".byte 0xf2 ; lock ; xchg %0, %1"
-                       : "+r" (_Value), "+m" (*_Target) :: "memory");
-  return _Value;
-}
-static __inline__ __int64 __DEFAULT_FN_ATTRS
-_InterlockedExchange64_HLERelease(__int64 volatile *_Target, __int64 _Value) {
-  __asm__ __volatile__(".byte 0xf3 ; lock ; xchg %0, %1"
-                       : "+r" (_Value), "+m" (*_Target) :: "memory");
-  return _Value;
-}
-#endif
-/*----------------------------------------------------------------------------*\
-|* Interlocked Compare Exchange HLE
-\*----------------------------------------------------------------------------*/
-#if defined(__i386__) || defined(__x86_64__)
-static __inline__ long __DEFAULT_FN_ATTRS
-_InterlockedCompareExchange_HLEAcquire(long volatile *_Destination,
-                              long _Exchange, long _Comparand) {
-  __asm__ __volatile__(".byte 0xf2 ; lock ; cmpxchg %2, %1"
-                       : "+a" (_Comparand), "+m" (*_Destination)
-                       : "r" (_Exchange) : "memory");
-  return _Comparand;
-}
-static __inline__ long __DEFAULT_FN_ATTRS
-_InterlockedCompareExchange_HLERelease(long volatile *_Destination,
-                              long _Exchange, long _Comparand) {
-  __asm__ __volatile__(".byte 0xf3 ; lock ; cmpxchg %2, %1"
-                       : "+a" (_Comparand), "+m" (*_Destination)
-                       : "r" (_Exchange) : "memory");
-  return _Comparand;
-}
-#endif
-#if defined(__x86_64__)
-static __inline__ __int64 __DEFAULT_FN_ATTRS
-_InterlockedCompareExchange64_HLEAcquire(__int64 volatile *_Destination,
-                              __int64 _Exchange, __int64 _Comparand) {
-  __asm__ __volatile__(".byte 0xf2 ; lock ; cmpxchg %2, %1"
-                       : "+a" (_Comparand), "+m" (*_Destination)
-                       : "r" (_Exchange) : "memory");
-  return _Comparand;
-}
-static __inline__ __int64 __DEFAULT_FN_ATTRS
-_InterlockedCompareExchange64_HLERelease(__int64 volatile *_Destination,
-                              __int64 _Exchange, __int64 _Comparand) {
-  __asm__ __volatile__(".byte 0xf3 ; lock ; cmpxchg %2, %1"
-                       : "+a" (_Comparand), "+m" (*_Destination)
-                       : "r" (_Exchange) : "memory");
-  return _Comparand;
-}
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-#undef __DEFAULT_FN_ATTRS
-
-#endif /* defined(_MSC_VER) && __has_extension(gnu_asm) */
-
-#endif /* __IMMINTRIN_H */
diff --git a/linux-x86/lib64/clang/14.0.1/include/intrin.h b/linux-x86/lib64/clang/14.0.1/include/intrin.h
deleted file mode 100644
index b75ee3b..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/intrin.h
+++ /dev/null
@@ -1,661 +0,0 @@
-/* ===-------- intrin.h ---------------------------------------------------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-
-/* Only include this if we're compiling for the windows platform. */
-#ifndef _MSC_VER
-#include_next <intrin.h>
-#else
-
-#ifndef __INTRIN_H
-#define __INTRIN_H
-
-/* First include the standard intrinsics. */
-#if defined(__i386__) || defined(__x86_64__)
-#include <x86intrin.h>
-#endif
-
-#if defined(__arm__)
-#include <armintr.h>
-#endif
-
-#if defined(__aarch64__)
-#include <arm64intr.h>
-#endif
-
-/* For the definition of jmp_buf. */
-#if __STDC_HOSTED__
-#include <setjmp.h>
-#endif
-
-/* Define the default attributes for the functions in this file. */
-#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
-
-#if __x86_64__
-#define __LPTRINT_TYPE__ __int64
-#else
-#define __LPTRINT_TYPE__ long
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if defined(__MMX__)
-/* And the random ones that aren't in those files. */
-__m64 _m_from_float(float);
-float _m_to_float(__m64);
-#endif
-
-/* Other assorted instruction intrinsics. */
-void __addfsbyte(unsigned long, unsigned char);
-void __addfsdword(unsigned long, unsigned long);
-void __addfsword(unsigned long, unsigned short);
-void __code_seg(const char *);
-static __inline__
-void __cpuid(int[4], int);
-static __inline__
-void __cpuidex(int[4], int, int);
-static __inline__
-__int64 __emul(int, int);
-static __inline__
-unsigned __int64 __emulu(unsigned int, unsigned int);
-unsigned int __getcallerseflags(void);
-static __inline__
-void __halt(void);
-unsigned char __inbyte(unsigned short);
-void __inbytestring(unsigned short, unsigned char *, unsigned long);
-void __incfsbyte(unsigned long);
-void __incfsdword(unsigned long);
-void __incfsword(unsigned long);
-unsigned long __indword(unsigned short);
-void __indwordstring(unsigned short, unsigned long *, unsigned long);
-void __int2c(void);
-void __invlpg(void *);
-unsigned short __inword(unsigned short);
-void __inwordstring(unsigned short, unsigned short *, unsigned long);
-void __lidt(void *);
-unsigned __int64 __ll_lshift(unsigned __int64, int);
-__int64 __ll_rshift(__int64, int);
-static __inline__
-void __movsb(unsigned char *, unsigned char const *, size_t);
-static __inline__
-void __movsd(unsigned long *, unsigned long const *, size_t);
-static __inline__
-void __movsw(unsigned short *, unsigned short const *, size_t);
-static __inline__
-void __nop(void);
-void __nvreg_restore_fence(void);
-void __nvreg_save_fence(void);
-void __outbyte(unsigned short, unsigned char);
-void __outbytestring(unsigned short, unsigned char *, unsigned long);
-void __outdword(unsigned short, unsigned long);
-void __outdwordstring(unsigned short, unsigned long *, unsigned long);
-void __outword(unsigned short, unsigned short);
-void __outwordstring(unsigned short, unsigned short *, unsigned long);
-unsigned long __readcr0(void);
-unsigned long __readcr2(void);
-unsigned __LPTRINT_TYPE__ __readcr3(void);
-unsigned long __readcr4(void);
-unsigned long __readcr8(void);
-unsigned int __readdr(unsigned int);
-#ifdef __i386__
-static __inline__
-unsigned char __readfsbyte(unsigned long);
-static __inline__
-unsigned short __readfsword(unsigned long);
-static __inline__
-unsigned long __readfsdword(unsigned long);
-static __inline__
-unsigned __int64 __readfsqword(unsigned long);
-#endif
-static __inline__
-unsigned __int64 __readmsr(unsigned long);
-unsigned __int64 __readpmc(unsigned long);
-unsigned long __segmentlimit(unsigned long);
-void __sidt(void *);
-static __inline__
-void __stosb(unsigned char *, unsigned char, size_t);
-static __inline__
-void __stosd(unsigned long *, unsigned long, size_t);
-static __inline__
-void __stosw(unsigned short *, unsigned short, size_t);
-void __svm_clgi(void);
-void __svm_invlpga(void *, int);
-void __svm_skinit(int);
-void __svm_stgi(void);
-void __svm_vmload(size_t);
-void __svm_vmrun(size_t);
-void __svm_vmsave(size_t);
-void __ud2(void);
-unsigned __int64 __ull_rshift(unsigned __int64, int);
-void __vmx_off(void);
-void __vmx_vmptrst(unsigned __int64 *);
-void __wbinvd(void);
-void __writecr0(unsigned int);
-static __inline__
-void __writecr3(unsigned __INTPTR_TYPE__);
-void __writecr4(unsigned int);
-void __writecr8(unsigned int);
-void __writedr(unsigned int, unsigned int);
-void __writefsbyte(unsigned long, unsigned char);
-void __writefsdword(unsigned long, unsigned long);
-void __writefsqword(unsigned long, unsigned __int64);
-void __writefsword(unsigned long, unsigned short);
-void __writemsr(unsigned long, unsigned __int64);
-static __inline__
-void *_AddressOfReturnAddress(void);
-static __inline__
-unsigned char _BitScanForward(unsigned long *_Index, unsigned long _Mask);
-static __inline__
-unsigned char _BitScanReverse(unsigned long *_Index, unsigned long _Mask);
-unsigned char _bittest(long const *, long);
-unsigned char _bittestandcomplement(long *, long);
-unsigned char _bittestandreset(long *, long);
-unsigned char _bittestandset(long *, long);
-void __cdecl _disable(void);
-void __cdecl _enable(void);
-long _InterlockedAddLargeStatistic(__int64 volatile *_Addend, long _Value);
-unsigned char _interlockedbittestandreset(long volatile *, long);
-unsigned char _interlockedbittestandset(long volatile *, long);
-void *_InterlockedCompareExchangePointer_HLEAcquire(void *volatile *, void *,
-                                                    void *);
-void *_InterlockedCompareExchangePointer_HLERelease(void *volatile *, void *,
-                                                    void *);
-long _InterlockedExchangeAdd_HLEAcquire(long volatile *, long);
-long _InterlockedExchangeAdd_HLERelease(long volatile *, long);
-__int64 _InterlockedExchangeAdd64_HLEAcquire(__int64 volatile *, __int64);
-__int64 _InterlockedExchangeAdd64_HLERelease(__int64 volatile *, __int64);
-static __inline__ void
-__attribute__((__deprecated__("use other intrinsics or C++11 atomics instead")))
-_ReadBarrier(void);
-static __inline__ void
-__attribute__((__deprecated__("use other intrinsics or C++11 atomics instead")))
-_ReadWriteBarrier(void);
-unsigned int _rorx_u32(unsigned int, const unsigned int);
-int _sarx_i32(int, unsigned int);
-#if __STDC_HOSTED__
-int __cdecl _setjmp(jmp_buf);
-#endif
-unsigned int _shlx_u32(unsigned int, unsigned int);
-unsigned int _shrx_u32(unsigned int, unsigned int);
-void _Store_HLERelease(long volatile *, long);
-void _Store64_HLERelease(__int64 volatile *, __int64);
-void _StorePointer_HLERelease(void *volatile *, void *);
-static __inline__ void
-__attribute__((__deprecated__("use other intrinsics or C++11 atomics instead")))
-_WriteBarrier(void);
-unsigned __int32 xbegin(void);
-void _xend(void);
-
-/* These additional intrinsics are turned on in x64/amd64/x86_64 mode. */
-#ifdef __x86_64__
-void __addgsbyte(unsigned long, unsigned char);
-void __addgsdword(unsigned long, unsigned long);
-void __addgsqword(unsigned long, unsigned __int64);
-void __addgsword(unsigned long, unsigned short);
-static __inline__
-void __faststorefence(void);
-void __incgsbyte(unsigned long);
-void __incgsdword(unsigned long);
-void __incgsqword(unsigned long);
-void __incgsword(unsigned long);
-static __inline__
-void __movsq(unsigned long long *, unsigned long long const *, size_t);
-static __inline__
-unsigned char __readgsbyte(unsigned long);
-static __inline__
-unsigned long __readgsdword(unsigned long);
-static __inline__
-unsigned __int64 __readgsqword(unsigned long);
-unsigned short __readgsword(unsigned long);
-unsigned __int64 __shiftleft128(unsigned __int64 _LowPart,
-                                unsigned __int64 _HighPart,
-                                unsigned char _Shift);
-unsigned __int64 __shiftright128(unsigned __int64 _LowPart,
-                                 unsigned __int64 _HighPart,
-                                 unsigned char _Shift);
-static __inline__
-void __stosq(unsigned __int64 *, unsigned __int64, size_t);
-unsigned char __vmx_on(unsigned __int64 *);
-unsigned char __vmx_vmclear(unsigned __int64 *);
-unsigned char __vmx_vmlaunch(void);
-unsigned char __vmx_vmptrld(unsigned __int64 *);
-unsigned char __vmx_vmread(size_t, size_t *);
-unsigned char __vmx_vmresume(void);
-unsigned char __vmx_vmwrite(size_t, size_t);
-void __writegsbyte(unsigned long, unsigned char);
-void __writegsdword(unsigned long, unsigned long);
-void __writegsqword(unsigned long, unsigned __int64);
-void __writegsword(unsigned long, unsigned short);
-unsigned char _bittest64(__int64 const *, __int64);
-unsigned char _bittestandcomplement64(__int64 *, __int64);
-unsigned char _bittestandreset64(__int64 *, __int64);
-unsigned char _bittestandset64(__int64 *, __int64);
-long _InterlockedAnd_np(long volatile *_Value, long _Mask);
-short _InterlockedAnd16_np(short volatile *_Value, short _Mask);
-__int64 _InterlockedAnd64_np(__int64 volatile *_Value, __int64 _Mask);
-char _InterlockedAnd8_np(char volatile *_Value, char _Mask);
-unsigned char _interlockedbittestandreset64(__int64 volatile *, __int64);
-unsigned char _interlockedbittestandset64(__int64 volatile *, __int64);
-long _InterlockedCompareExchange_np(long volatile *_Destination, long _Exchange,
-                                    long _Comparand);
-unsigned char _InterlockedCompareExchange128_np(__int64 volatile *_Destination,
-                                                __int64 _ExchangeHigh,
-                                                __int64 _ExchangeLow,
-                                                __int64 *_ComparandResult);
-short _InterlockedCompareExchange16_np(short volatile *_Destination,
-                                       short _Exchange, short _Comparand);
-__int64 _InterlockedCompareExchange64_np(__int64 volatile *_Destination,
-                                         __int64 _Exchange, __int64 _Comparand);
-void *_InterlockedCompareExchangePointer_np(void *volatile *_Destination,
-                                            void *_Exchange, void *_Comparand);
-long _InterlockedOr_np(long volatile *_Value, long _Mask);
-short _InterlockedOr16_np(short volatile *_Value, short _Mask);
-__int64 _InterlockedOr64_np(__int64 volatile *_Value, __int64 _Mask);
-char _InterlockedOr8_np(char volatile *_Value, char _Mask);
-long _InterlockedXor_np(long volatile *_Value, long _Mask);
-short _InterlockedXor16_np(short volatile *_Value, short _Mask);
-__int64 _InterlockedXor64_np(__int64 volatile *_Value, __int64 _Mask);
-char _InterlockedXor8_np(char volatile *_Value, char _Mask);
-unsigned __int64 _rorx_u64(unsigned __int64, const unsigned int);
-__int64 _sarx_i64(__int64, unsigned int);
-unsigned __int64 _shlx_u64(unsigned __int64, unsigned int);
-unsigned __int64 _shrx_u64(unsigned __int64, unsigned int);
-static __inline__
-__int64 __mulh(__int64, __int64);
-static __inline__
-unsigned __int64 __umulh(unsigned __int64, unsigned __int64);
-static __inline__
-__int64 _mul128(__int64, __int64, __int64*);
-static __inline__
-unsigned __int64 _umul128(unsigned __int64,
-                          unsigned __int64,
-                          unsigned __int64*);
-
-#endif /* __x86_64__ */
-
-#if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__)
-
-static __inline__
-unsigned char _BitScanForward64(unsigned long *_Index, unsigned __int64 _Mask);
-static __inline__
-unsigned char _BitScanReverse64(unsigned long *_Index, unsigned __int64 _Mask);
-
-#endif
-
-#if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__)
-static __inline__
-__int64 _InterlockedDecrement64(__int64 volatile *_Addend);
-static __inline__
-__int64 _InterlockedExchange64(__int64 volatile *_Target, __int64 _Value);
-static __inline__
-__int64 _InterlockedExchangeAdd64(__int64 volatile *_Addend, __int64 _Value);
-static __inline__
-__int64 _InterlockedExchangeSub64(__int64 volatile *_Subend, __int64 _Value);
-static __inline__
-__int64 _InterlockedIncrement64(__int64 volatile *_Addend);
-static __inline__
-__int64 _InterlockedOr64(__int64 volatile *_Value, __int64 _Mask);
-static __inline__
-__int64 _InterlockedXor64(__int64 volatile *_Value, __int64 _Mask);
-static __inline__
-__int64 _InterlockedAnd64(__int64 volatile *_Value, __int64 _Mask);
-
-#endif
-
-/*----------------------------------------------------------------------------*\
-|* Interlocked Exchange Add
-\*----------------------------------------------------------------------------*/
-#if defined(__arm__) || defined(__aarch64__)
-char _InterlockedExchangeAdd8_acq(char volatile *_Addend, char _Value);
-char _InterlockedExchangeAdd8_nf(char volatile *_Addend, char _Value);
-char _InterlockedExchangeAdd8_rel(char volatile *_Addend, char _Value);
-short _InterlockedExchangeAdd16_acq(short volatile *_Addend, short _Value);
-short _InterlockedExchangeAdd16_nf(short volatile *_Addend, short _Value);
-short _InterlockedExchangeAdd16_rel(short volatile *_Addend, short _Value);
-long _InterlockedExchangeAdd_acq(long volatile *_Addend, long _Value);
-long _InterlockedExchangeAdd_nf(long volatile *_Addend, long _Value);
-long _InterlockedExchangeAdd_rel(long volatile *_Addend, long _Value);
-__int64 _InterlockedExchangeAdd64_acq(__int64 volatile *_Addend, __int64 _Value);
-__int64 _InterlockedExchangeAdd64_nf(__int64 volatile *_Addend, __int64 _Value);
-__int64 _InterlockedExchangeAdd64_rel(__int64 volatile *_Addend, __int64 _Value);
-#endif
-/*----------------------------------------------------------------------------*\
-|* Interlocked Increment
-\*----------------------------------------------------------------------------*/
-#if defined(__arm__) || defined(__aarch64__)
-short _InterlockedIncrement16_acq(short volatile *_Value);
-short _InterlockedIncrement16_nf(short volatile *_Value);
-short _InterlockedIncrement16_rel(short volatile *_Value);
-long _InterlockedIncrement_acq(long volatile *_Value);
-long _InterlockedIncrement_nf(long volatile *_Value);
-long _InterlockedIncrement_rel(long volatile *_Value);
-__int64 _InterlockedIncrement64_acq(__int64 volatile *_Value);
-__int64 _InterlockedIncrement64_nf(__int64 volatile *_Value);
-__int64 _InterlockedIncrement64_rel(__int64 volatile *_Value);
-#endif
-/*----------------------------------------------------------------------------*\
-|* Interlocked Decrement
-\*----------------------------------------------------------------------------*/
-#if defined(__arm__) || defined(__aarch64__)
-short _InterlockedDecrement16_acq(short volatile *_Value);
-short _InterlockedDecrement16_nf(short volatile *_Value);
-short _InterlockedDecrement16_rel(short volatile *_Value);
-long _InterlockedDecrement_acq(long volatile *_Value);
-long _InterlockedDecrement_nf(long volatile *_Value);
-long _InterlockedDecrement_rel(long volatile *_Value);
-__int64 _InterlockedDecrement64_acq(__int64 volatile *_Value);
-__int64 _InterlockedDecrement64_nf(__int64 volatile *_Value);
-__int64 _InterlockedDecrement64_rel(__int64 volatile *_Value);
-#endif
-/*----------------------------------------------------------------------------*\
-|* Interlocked And
-\*----------------------------------------------------------------------------*/
-#if defined(__arm__) || defined(__aarch64__)
-char _InterlockedAnd8_acq(char volatile *_Value, char _Mask);
-char _InterlockedAnd8_nf(char volatile *_Value, char _Mask);
-char _InterlockedAnd8_rel(char volatile *_Value, char _Mask);
-short _InterlockedAnd16_acq(short volatile *_Value, short _Mask);
-short _InterlockedAnd16_nf(short volatile *_Value, short _Mask);
-short _InterlockedAnd16_rel(short volatile *_Value, short _Mask);
-long _InterlockedAnd_acq(long volatile *_Value, long _Mask);
-long _InterlockedAnd_nf(long volatile *_Value, long _Mask);
-long _InterlockedAnd_rel(long volatile *_Value, long _Mask);
-__int64 _InterlockedAnd64_acq(__int64 volatile *_Value, __int64 _Mask);
-__int64 _InterlockedAnd64_nf(__int64 volatile *_Value, __int64 _Mask);
-__int64 _InterlockedAnd64_rel(__int64 volatile *_Value, __int64 _Mask);
-#endif
-/*----------------------------------------------------------------------------*\
-|* Bit Counting and Testing
-\*----------------------------------------------------------------------------*/
-#if defined(__arm__) || defined(__aarch64__)
-unsigned char _interlockedbittestandset_acq(long volatile *_BitBase,
-                                            long _BitPos);
-unsigned char _interlockedbittestandset_nf(long volatile *_BitBase,
-                                           long _BitPos);
-unsigned char _interlockedbittestandset_rel(long volatile *_BitBase,
-                                            long _BitPos);
-unsigned char _interlockedbittestandreset_acq(long volatile *_BitBase,
-                                              long _BitPos);
-unsigned char _interlockedbittestandreset_nf(long volatile *_BitBase,
-                                             long _BitPos);
-unsigned char _interlockedbittestandreset_rel(long volatile *_BitBase,
-                                              long _BitPos);
-#endif
-/*----------------------------------------------------------------------------*\
-|* Interlocked Or
-\*----------------------------------------------------------------------------*/
-#if defined(__arm__) || defined(__aarch64__)
-char _InterlockedOr8_acq(char volatile *_Value, char _Mask);
-char _InterlockedOr8_nf(char volatile *_Value, char _Mask);
-char _InterlockedOr8_rel(char volatile *_Value, char _Mask);
-short _InterlockedOr16_acq(short volatile *_Value, short _Mask);
-short _InterlockedOr16_nf(short volatile *_Value, short _Mask);
-short _InterlockedOr16_rel(short volatile *_Value, short _Mask);
-long _InterlockedOr_acq(long volatile *_Value, long _Mask);
-long _InterlockedOr_nf(long volatile *_Value, long _Mask);
-long _InterlockedOr_rel(long volatile *_Value, long _Mask);
-__int64 _InterlockedOr64_acq(__int64 volatile *_Value, __int64 _Mask);
-__int64 _InterlockedOr64_nf(__int64 volatile *_Value, __int64 _Mask);
-__int64 _InterlockedOr64_rel(__int64 volatile *_Value, __int64 _Mask);
-#endif
-/*----------------------------------------------------------------------------*\
-|* Interlocked Xor
-\*----------------------------------------------------------------------------*/
-#if defined(__arm__) || defined(__aarch64__)
-char _InterlockedXor8_acq(char volatile *_Value, char _Mask);
-char _InterlockedXor8_nf(char volatile *_Value, char _Mask);
-char _InterlockedXor8_rel(char volatile *_Value, char _Mask);
-short _InterlockedXor16_acq(short volatile *_Value, short _Mask);
-short _InterlockedXor16_nf(short volatile *_Value, short _Mask);
-short _InterlockedXor16_rel(short volatile *_Value, short _Mask);
-long _InterlockedXor_acq(long volatile *_Value, long _Mask);
-long _InterlockedXor_nf(long volatile *_Value, long _Mask);
-long _InterlockedXor_rel(long volatile *_Value, long _Mask);
-__int64 _InterlockedXor64_acq(__int64 volatile *_Value, __int64 _Mask);
-__int64 _InterlockedXor64_nf(__int64 volatile *_Value, __int64 _Mask);
-__int64 _InterlockedXor64_rel(__int64 volatile *_Value, __int64 _Mask);
-#endif
-/*----------------------------------------------------------------------------*\
-|* Interlocked Exchange
-\*----------------------------------------------------------------------------*/
-#if defined(__arm__) || defined(__aarch64__)
-char _InterlockedExchange8_acq(char volatile *_Target, char _Value);
-char _InterlockedExchange8_nf(char volatile *_Target, char _Value);
-char _InterlockedExchange8_rel(char volatile *_Target, char _Value);
-short _InterlockedExchange16_acq(short volatile *_Target, short _Value);
-short _InterlockedExchange16_nf(short volatile *_Target, short _Value);
-short _InterlockedExchange16_rel(short volatile *_Target, short _Value);
-long _InterlockedExchange_acq(long volatile *_Target, long _Value);
-long _InterlockedExchange_nf(long volatile *_Target, long _Value);
-long _InterlockedExchange_rel(long volatile *_Target, long _Value);
-__int64 _InterlockedExchange64_acq(__int64 volatile *_Target, __int64 _Value);
-__int64 _InterlockedExchange64_nf(__int64 volatile *_Target, __int64 _Value);
-__int64 _InterlockedExchange64_rel(__int64 volatile *_Target, __int64 _Value);
-#endif
-/*----------------------------------------------------------------------------*\
-|* Interlocked Compare Exchange
-\*----------------------------------------------------------------------------*/
-#if defined(__arm__) || defined(__aarch64__)
-char _InterlockedCompareExchange8_acq(char volatile *_Destination,
-                             char _Exchange, char _Comparand);
-char _InterlockedCompareExchange8_nf(char volatile *_Destination,
-                             char _Exchange, char _Comparand);
-char _InterlockedCompareExchange8_rel(char volatile *_Destination,
-                             char _Exchange, char _Comparand);
-short _InterlockedCompareExchange16_acq(short volatile *_Destination,
-                              short _Exchange, short _Comparand);
-short _InterlockedCompareExchange16_nf(short volatile *_Destination,
-                              short _Exchange, short _Comparand);
-short _InterlockedCompareExchange16_rel(short volatile *_Destination,
-                              short _Exchange, short _Comparand);
-long _InterlockedCompareExchange_acq(long volatile *_Destination,
-                              long _Exchange, long _Comparand);
-long _InterlockedCompareExchange_nf(long volatile *_Destination,
-                              long _Exchange, long _Comparand);
-long _InterlockedCompareExchange_rel(long volatile *_Destination,
-                              long _Exchange, long _Comparand);
-__int64 _InterlockedCompareExchange64_acq(__int64 volatile *_Destination,
-                              __int64 _Exchange, __int64 _Comparand);
-__int64 _InterlockedCompareExchange64_nf(__int64 volatile *_Destination,
-                              __int64 _Exchange, __int64 _Comparand);
-__int64 _InterlockedCompareExchange64_rel(__int64 volatile *_Destination,
-                              __int64 _Exchange, __int64 _Comparand);
-#endif
-#if defined(__x86_64__) || defined(__aarch64__)
-unsigned char _InterlockedCompareExchange128(__int64 volatile *_Destination,
-                                             __int64 _ExchangeHigh,
-                                             __int64 _ExchangeLow,
-                                             __int64 *_ComparandResult);
-#endif
-#if defined(__aarch64__)
-unsigned char _InterlockedCompareExchange128_acq(__int64 volatile *_Destination,
-                                                 __int64 _ExchangeHigh,
-                                                 __int64 _ExchangeLow,
-                                                 __int64 *_ComparandResult);
-unsigned char _InterlockedCompareExchange128_nf(__int64 volatile *_Destination,
-                                                __int64 _ExchangeHigh,
-                                                __int64 _ExchangeLow,
-                                                __int64 *_ComparandResult);
-unsigned char _InterlockedCompareExchange128_rel(__int64 volatile *_Destination,
-                                                 __int64 _ExchangeHigh,
-                                                 __int64 _ExchangeLow,
-                                                 __int64 *_ComparandResult);
-#endif
-
-/*----------------------------------------------------------------------------*\
-|* movs, stos
-\*----------------------------------------------------------------------------*/
-#if defined(__i386__) || defined(__x86_64__)
-static __inline__ void __DEFAULT_FN_ATTRS
-__movsb(unsigned char *__dst, unsigned char const *__src, size_t __n) {
-#if defined(__x86_64__)
-  __asm__ __volatile__("rep movsb"
-                       : "+D"(__dst), "+S"(__src), "+c"(__n)
-                       :
-                       : "memory");
-#else
-  __asm__ __volatile__("xchg %%esi, %1\nrep movsb\nxchg %%esi, %1"
-                       : "+D"(__dst), "+r"(__src), "+c"(__n)
-                       :
-                       : "memory");
-#endif
-}
-static __inline__ void __DEFAULT_FN_ATTRS
-__movsd(unsigned long *__dst, unsigned long const *__src, size_t __n) {
-#if defined(__x86_64__)
-  __asm__ __volatile__("rep movsl"
-                       : "+D"(__dst), "+S"(__src), "+c"(__n)
-                       :
-                       : "memory");
-#else
-  __asm__ __volatile__("xchg %%esi, %1\nrep movsl\nxchg %%esi, %1"
-                       : "+D"(__dst), "+r"(__src), "+c"(__n)
-                       :
-                       : "memory");
-#endif
-}
-static __inline__ void __DEFAULT_FN_ATTRS
-__movsw(unsigned short *__dst, unsigned short const *__src, size_t __n) {
-#if defined(__x86_64__)
-  __asm__ __volatile__("rep movsw"
-                       : "+D"(__dst), "+S"(__src), "+c"(__n)
-                       :
-                       : "memory");
-#else
-  __asm__ __volatile__("xchg %%esi, %1\nrep movsw\nxchg %%esi, %1"
-                       : "+D"(__dst), "+r"(__src), "+c"(__n)
-                       :
-                       : "memory");
-#endif
-}
-static __inline__ void __DEFAULT_FN_ATTRS
-__stosd(unsigned long *__dst, unsigned long __x, size_t __n) {
-  __asm__ __volatile__("rep stosl"
-                       : "+D"(__dst), "+c"(__n)
-                       : "a"(__x)
-                       : "memory");
-}
-static __inline__ void __DEFAULT_FN_ATTRS
-__stosw(unsigned short *__dst, unsigned short __x, size_t __n) {
-  __asm__ __volatile__("rep stosw"
-                       : "+D"(__dst), "+c"(__n)
-                       : "a"(__x)
-                       : "memory");
-}
-#endif
-#ifdef __x86_64__
-static __inline__ void __DEFAULT_FN_ATTRS
-__movsq(unsigned long long *__dst, unsigned long long const *__src, size_t __n) {
-  __asm__ __volatile__("rep movsq"
-                       : "+D"(__dst), "+S"(__src), "+c"(__n)
-                       :
-                       : "memory");
-}
-static __inline__ void __DEFAULT_FN_ATTRS
-__stosq(unsigned __int64 *__dst, unsigned __int64 __x, size_t __n) {
-  __asm__ __volatile__("rep stosq" : "+D"(__dst), "+c"(__n) : "a"(__x)
-                       : "memory");
-}
-#endif
-
-/*----------------------------------------------------------------------------*\
-|* Misc
-\*----------------------------------------------------------------------------*/
-#if defined(__i386__) || defined(__x86_64__)
-#if defined(__i386__)
-#define __cpuid_count(__leaf, __count, __eax, __ebx, __ecx, __edx)             \
-  __asm("cpuid"                                                                \
-        : "=a"(__eax), "=b"(__ebx), "=c"(__ecx), "=d"(__edx)                   \
-        : "0"(__leaf), "2"(__count))
-#else
-/* x86-64 uses %rbx as the base register, so preserve it. */
-#define __cpuid_count(__leaf, __count, __eax, __ebx, __ecx, __edx)             \
-  __asm("xchgq %%rbx,%q1\n"                                                    \
-        "cpuid\n"                                                              \
-        "xchgq %%rbx,%q1"                                                      \
-        : "=a"(__eax), "=r"(__ebx), "=c"(__ecx), "=d"(__edx)                   \
-        : "0"(__leaf), "2"(__count))
-#endif
-static __inline__ void __DEFAULT_FN_ATTRS __cpuid(int __info[4], int __level) {
-  __cpuid_count(__level, 0, __info[0], __info[1], __info[2], __info[3]);
-}
-static __inline__ void __DEFAULT_FN_ATTRS __cpuidex(int __info[4], int __level,
-                                                    int __ecx) {
-  __cpuid_count(__level, __ecx, __info[0], __info[1], __info[2], __info[3]);
-}
-static __inline__ void __DEFAULT_FN_ATTRS __halt(void) {
-  __asm__ volatile("hlt");
-}
-#endif
-
-#if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__)
-static __inline__ void __DEFAULT_FN_ATTRS __nop(void) {
-  __asm__ volatile("nop");
-}
-#endif
-
-/*----------------------------------------------------------------------------*\
-|* MS AArch64 specific
-\*----------------------------------------------------------------------------*/
-#if defined(__aarch64__)
-unsigned __int64 __getReg(int);
-long _InterlockedAdd(long volatile *Addend, long Value);
-__int64 _ReadStatusReg(int);
-void _WriteStatusReg(int, __int64);
-
-unsigned short __cdecl _byteswap_ushort(unsigned short val);
-unsigned long __cdecl _byteswap_ulong (unsigned long val);
-unsigned __int64 __cdecl _byteswap_uint64(unsigned __int64 val);
-
-__int64 __mulh(__int64 __a, __int64 __b);
-unsigned __int64 __umulh(unsigned __int64 __a, unsigned __int64 __b);
-#endif
-
-/*----------------------------------------------------------------------------*\
-|* Privileged intrinsics
-\*----------------------------------------------------------------------------*/
-#if defined(__i386__) || defined(__x86_64__)
-static __inline__ unsigned __int64 __DEFAULT_FN_ATTRS
-__readmsr(unsigned long __register) {
-  // Loads the contents of a 64-bit model specific register (MSR) specified in
-  // the ECX register into registers EDX:EAX. The EDX register is loaded with
-  // the high-order 32 bits of the MSR and the EAX register is loaded with the
-  // low-order 32 bits. If less than 64 bits are implemented in the MSR being
-  // read, the values returned to EDX:EAX in unimplemented bit locations are
-  // undefined.
-  unsigned long __edx;
-  unsigned long __eax;
-  __asm__ ("rdmsr" : "=d"(__edx), "=a"(__eax) : "c"(__register));
-  return (((unsigned __int64)__edx) << 32) | (unsigned __int64)__eax;
-}
-#endif
-
-static __inline__ unsigned __LPTRINT_TYPE__ __DEFAULT_FN_ATTRS
-__readcr3(void) {
-  unsigned __LPTRINT_TYPE__ __cr3_val;
-  __asm__ __volatile__ ("mov %%cr3, %0" : "=r"(__cr3_val) : : "memory");
-  return __cr3_val;
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-__writecr3(unsigned __INTPTR_TYPE__ __cr3_val) {
-  __asm__ ("mov %0, %%cr3" : : "r"(__cr3_val) : "memory");
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#undef __LPTRINT_TYPE__
-
-#undef __DEFAULT_FN_ATTRS
-
-#endif /* __INTRIN_H */
-#endif /* _MSC_VER */
diff --git a/linux-x86/lib64/clang/14.0.1/include/mmintrin.h b/linux-x86/lib64/clang/14.0.1/include/mmintrin.h
deleted file mode 100644
index 79a8b55..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/mmintrin.h
+++ /dev/null
@@ -1,1558 +0,0 @@
-/*===---- mmintrin.h - MMX intrinsics --------------------------------------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-
-#ifndef __MMINTRIN_H
-#define __MMINTRIN_H
-
-typedef long long __m64 __attribute__((__vector_size__(8), __aligned__(8)));
-
-typedef long long __v1di __attribute__((__vector_size__(8)));
-typedef int __v2si __attribute__((__vector_size__(8)));
-typedef short __v4hi __attribute__((__vector_size__(8)));
-typedef char __v8qi __attribute__((__vector_size__(8)));
-
-/* Define the default attributes for the functions in this file. */
-#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64)))
-
-/// Clears the MMX state by setting the state of the x87 stack registers
-///    to empty.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> EMMS </c> instruction.
-///
-static __inline__ void  __attribute__((__always_inline__, __nodebug__, __target__("mmx")))
-_mm_empty(void)
-{
-    __builtin_ia32_emms();
-}
-
-/// Constructs a 64-bit integer vector, setting the lower 32 bits to the
-///    value of the 32-bit integer parameter and setting the upper 32 bits to 0.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> MOVD </c> instruction.
-///
-/// \param __i
-///    A 32-bit integer value.
-/// \returns A 64-bit integer vector. The lower 32 bits contain the value of the
-///    parameter. The upper 32 bits are set to 0.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_cvtsi32_si64(int __i)
-{
-    return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
-}
-
-/// Returns the lower 32 bits of a 64-bit integer vector as a 32-bit
-///    signed integer.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> MOVD </c> instruction.
-///
-/// \param __m
-///    A 64-bit integer vector.
-/// \returns A 32-bit signed integer value containing the lower 32 bits of the
-///    parameter.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_cvtsi64_si32(__m64 __m)
-{
-    return __builtin_ia32_vec_ext_v2si((__v2si)__m, 0);
-}
-
-/// Casts a 64-bit signed integer value into a 64-bit integer vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> MOVQ </c> instruction.
-///
-/// \param __i
-///    A 64-bit signed integer.
-/// \returns A 64-bit integer vector containing the same bitwise pattern as the
-///    parameter.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_cvtsi64_m64(long long __i)
-{
-    return (__m64)__i;
-}
-
-/// Casts a 64-bit integer vector into a 64-bit signed integer value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> MOVQ </c> instruction.
-///
-/// \param __m
-///    A 64-bit integer vector.
-/// \returns A 64-bit signed integer containing the same bitwise pattern as the
-///    parameter.
-static __inline__ long long __DEFAULT_FN_ATTRS
-_mm_cvtm64_si64(__m64 __m)
-{
-    return (long long)__m;
-}
-
-/// Converts 16-bit signed integers from both 64-bit integer vector
-///    parameters of [4 x i16] into 8-bit signed integer values, and constructs
-///    a 64-bit integer vector of [8 x i8] as the result. Positive values
-///    greater than 0x7F are saturated to 0x7F. Negative values less than 0x80
-///    are saturated to 0x80.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PACKSSWB </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [4 x i16]. Each 16-bit element is treated as a
-///    16-bit signed integer and is converted to an 8-bit signed integer with
-///    saturation. Positive values greater than 0x7F are saturated to 0x7F.
-///    Negative values less than 0x80 are saturated to 0x80. The converted
-///    [4 x i8] values are written to the lower 32 bits of the result.
-/// \param __m2
-///    A 64-bit integer vector of [4 x i16]. Each 16-bit element is treated as a
-///    16-bit signed integer and is converted to an 8-bit signed integer with
-///    saturation. Positive values greater than 0x7F are saturated to 0x7F.
-///    Negative values less than 0x80 are saturated to 0x80. The converted
-///    [4 x i8] values are written to the upper 32 bits of the result.
-/// \returns A 64-bit integer vector of [8 x i8] containing the converted
-///    values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_packs_pi16(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
-}
-
-/// Converts 32-bit signed integers from both 64-bit integer vector
-///    parameters of [2 x i32] into 16-bit signed integer values, and constructs
-///    a 64-bit integer vector of [4 x i16] as the result. Positive values
-///    greater than 0x7FFF are saturated to 0x7FFF. Negative values less than
-///    0x8000 are saturated to 0x8000.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PACKSSDW </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [2 x i32]. Each 32-bit element is treated as a
-///    32-bit signed integer and is converted to a 16-bit signed integer with
-///    saturation. Positive values greater than 0x7FFF are saturated to 0x7FFF.
-///    Negative values less than 0x8000 are saturated to 0x8000. The converted
-///    [2 x i16] values are written to the lower 32 bits of the result.
-/// \param __m2
-///    A 64-bit integer vector of [2 x i32]. Each 32-bit element is treated as a
-///    32-bit signed integer and is converted to a 16-bit signed integer with
-///    saturation. Positive values greater than 0x7FFF are saturated to 0x7FFF.
-///    Negative values less than 0x8000 are saturated to 0x8000. The converted
-///    [2 x i16] values are written to the upper 32 bits of the result.
-/// \returns A 64-bit integer vector of [4 x i16] containing the converted
-///    values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_packs_pi32(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
-}
-
-/// Converts 16-bit signed integers from both 64-bit integer vector
-///    parameters of [4 x i16] into 8-bit unsigned integer values, and
-///    constructs a 64-bit integer vector of [8 x i8] as the result. Values
-///    greater than 0xFF are saturated to 0xFF. Values less than 0 are saturated
-///    to 0.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PACKUSWB </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [4 x i16]. Each 16-bit element is treated as a
-///    16-bit signed integer and is converted to an 8-bit unsigned integer with
-///    saturation. Values greater than 0xFF are saturated to 0xFF. Values less
-///    than 0 are saturated to 0. The converted [4 x i8] values are written to
-///    the lower 32 bits of the result.
-/// \param __m2
-///    A 64-bit integer vector of [4 x i16]. Each 16-bit element is treated as a
-///    16-bit signed integer and is converted to an 8-bit unsigned integer with
-///    saturation. Values greater than 0xFF are saturated to 0xFF. Values less
-///    than 0 are saturated to 0. The converted [4 x i8] values are written to
-///    the upper 32 bits of the result.
-/// \returns A 64-bit integer vector of [8 x i8] containing the converted
-///    values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_packs_pu16(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
-}
-
-/// Unpacks the upper 32 bits from two 64-bit integer vectors of [8 x i8]
-///    and interleaves them into a 64-bit integer vector of [8 x i8].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PUNPCKHBW </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [8 x i8]. \n
-///    Bits [39:32] are written to bits [7:0] of the result. \n
-///    Bits [47:40] are written to bits [23:16] of the result. \n
-///    Bits [55:48] are written to bits [39:32] of the result. \n
-///    Bits [63:56] are written to bits [55:48] of the result.
-/// \param __m2
-///    A 64-bit integer vector of [8 x i8].
-///    Bits [39:32] are written to bits [15:8] of the result. \n
-///    Bits [47:40] are written to bits [31:24] of the result. \n
-///    Bits [55:48] are written to bits [47:40] of the result. \n
-///    Bits [63:56] are written to bits [63:56] of the result.
-/// \returns A 64-bit integer vector of [8 x i8] containing the interleaved
-///    values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_unpackhi_pi8(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
-}
-
-/// Unpacks the upper 32 bits from two 64-bit integer vectors of
-///    [4 x i16] and interleaves them into a 64-bit integer vector of [4 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PUNPCKHWD </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [4 x i16].
-///    Bits [47:32] are written to bits [15:0] of the result. \n
-///    Bits [63:48] are written to bits [47:32] of the result.
-/// \param __m2
-///    A 64-bit integer vector of [4 x i16].
-///    Bits [47:32] are written to bits [31:16] of the result. \n
-///    Bits [63:48] are written to bits [63:48] of the result.
-/// \returns A 64-bit integer vector of [4 x i16] containing the interleaved
-///    values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_unpackhi_pi16(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
-}
-
-/// Unpacks the upper 32 bits from two 64-bit integer vectors of
-///    [2 x i32] and interleaves them into a 64-bit integer vector of [2 x i32].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PUNPCKHDQ </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [2 x i32]. The upper 32 bits are written to
-///    the lower 32 bits of the result.
-/// \param __m2
-///    A 64-bit integer vector of [2 x i32]. The upper 32 bits are written to
-///    the upper 32 bits of the result.
-/// \returns A 64-bit integer vector of [2 x i32] containing the interleaved
-///    values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_unpackhi_pi32(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
-}
-
-/// Unpacks the lower 32 bits from two 64-bit integer vectors of [8 x i8]
-///    and interleaves them into a 64-bit integer vector of [8 x i8].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PUNPCKLBW </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [8 x i8].
-///    Bits [7:0] are written to bits [7:0] of the result. \n
-///    Bits [15:8] are written to bits [23:16] of the result. \n
-///    Bits [23:16] are written to bits [39:32] of the result. \n
-///    Bits [31:24] are written to bits [55:48] of the result.
-/// \param __m2
-///    A 64-bit integer vector of [8 x i8].
-///    Bits [7:0] are written to bits [15:8] of the result. \n
-///    Bits [15:8] are written to bits [31:24] of the result. \n
-///    Bits [23:16] are written to bits [47:40] of the result. \n
-///    Bits [31:24] are written to bits [63:56] of the result.
-/// \returns A 64-bit integer vector of [8 x i8] containing the interleaved
-///    values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_unpacklo_pi8(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2);
-}
-
-/// Unpacks the lower 32 bits from two 64-bit integer vectors of
-///    [4 x i16] and interleaves them into a 64-bit integer vector of [4 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PUNPCKLWD </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [4 x i16].
-///    Bits [15:0] are written to bits [15:0] of the result. \n
-///    Bits [31:16] are written to bits [47:32] of the result.
-/// \param __m2
-///    A 64-bit integer vector of [4 x i16].
-///    Bits [15:0] are written to bits [31:16] of the result. \n
-///    Bits [31:16] are written to bits [63:48] of the result.
-/// \returns A 64-bit integer vector of [4 x i16] containing the interleaved
-///    values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_unpacklo_pi16(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_punpcklwd((__v4hi)__m1, (__v4hi)__m2);
-}
-
-/// Unpacks the lower 32 bits from two 64-bit integer vectors of
-///    [2 x i32] and interleaves them into a 64-bit integer vector of [2 x i32].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PUNPCKLDQ </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [2 x i32]. The lower 32 bits are written to
-///    the lower 32 bits of the result.
-/// \param __m2
-///    A 64-bit integer vector of [2 x i32]. The lower 32 bits are written to
-///    the upper 32 bits of the result.
-/// \returns A 64-bit integer vector of [2 x i32] containing the interleaved
-///    values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_unpacklo_pi32(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_punpckldq((__v2si)__m1, (__v2si)__m2);
-}
-
-/// Adds each 8-bit integer element of the first 64-bit integer vector
-///    of [8 x i8] to the corresponding 8-bit integer element of the second
-///    64-bit integer vector of [8 x i8]. The lower 8 bits of the results are
-///    packed into a 64-bit integer vector of [8 x i8].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PADDB </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [8 x i8].
-/// \param __m2
-///    A 64-bit integer vector of [8 x i8].
-/// \returns A 64-bit integer vector of [8 x i8] containing the sums of both
-///    parameters.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_add_pi8(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_paddb((__v8qi)__m1, (__v8qi)__m2);
-}
-
-/// Adds each 16-bit integer element of the first 64-bit integer vector
-///    of [4 x i16] to the corresponding 16-bit integer element of the second
-///    64-bit integer vector of [4 x i16]. The lower 16 bits of the results are
-///    packed into a 64-bit integer vector of [4 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PADDW </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [4 x i16].
-/// \param __m2
-///    A 64-bit integer vector of [4 x i16].
-/// \returns A 64-bit integer vector of [4 x i16] containing the sums of both
-///    parameters.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_add_pi16(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_paddw((__v4hi)__m1, (__v4hi)__m2);
-}
-
-/// Adds each 32-bit integer element of the first 64-bit integer vector
-///    of [2 x i32] to the corresponding 32-bit integer element of the second
-///    64-bit integer vector of [2 x i32]. The lower 32 bits of the results are
-///    packed into a 64-bit integer vector of [2 x i32].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PADDD </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [2 x i32].
-/// \param __m2
-///    A 64-bit integer vector of [2 x i32].
-/// \returns A 64-bit integer vector of [2 x i32] containing the sums of both
-///    parameters.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_add_pi32(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_paddd((__v2si)__m1, (__v2si)__m2);
-}
-
-/// Adds each 8-bit signed integer element of the first 64-bit integer
-///    vector of [8 x i8] to the corresponding 8-bit signed integer element of
-///    the second 64-bit integer vector of [8 x i8]. Positive sums greater than
-///    0x7F are saturated to 0x7F. Negative sums less than 0x80 are saturated to
-///    0x80. The results are packed into a 64-bit integer vector of [8 x i8].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PADDSB </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [8 x i8].
-/// \param __m2
-///    A 64-bit integer vector of [8 x i8].
-/// \returns A 64-bit integer vector of [8 x i8] containing the saturated sums
-///    of both parameters.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_adds_pi8(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_paddsb((__v8qi)__m1, (__v8qi)__m2);
-}
-
-/// Adds each 16-bit signed integer element of the first 64-bit integer
-///    vector of [4 x i16] to the corresponding 16-bit signed integer element of
-///    the second 64-bit integer vector of [4 x i16]. Positive sums greater than
-///    0x7FFF are saturated to 0x7FFF. Negative sums less than 0x8000 are
-///    saturated to 0x8000. The results are packed into a 64-bit integer vector
-///    of [4 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PADDSW </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [4 x i16].
-/// \param __m2
-///    A 64-bit integer vector of [4 x i16].
-/// \returns A 64-bit integer vector of [4 x i16] containing the saturated sums
-///    of both parameters.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_adds_pi16(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_paddsw((__v4hi)__m1, (__v4hi)__m2);
-}
-
-/// Adds each 8-bit unsigned integer element of the first 64-bit integer
-///    vector of [8 x i8] to the corresponding 8-bit unsigned integer element of
-///    the second 64-bit integer vector of [8 x i8]. Sums greater than 0xFF are
-///    saturated to 0xFF. The results are packed into a 64-bit integer vector of
-///    [8 x i8].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PADDUSB </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [8 x i8].
-/// \param __m2
-///    A 64-bit integer vector of [8 x i8].
-/// \returns A 64-bit integer vector of [8 x i8] containing the saturated
-///    unsigned sums of both parameters.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_adds_pu8(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_paddusb((__v8qi)__m1, (__v8qi)__m2);
-}
-
-/// Adds each 16-bit unsigned integer element of the first 64-bit integer
-///    vector of [4 x i16] to the corresponding 16-bit unsigned integer element
-///    of the second 64-bit integer vector of [4 x i16]. Sums greater than
-///    0xFFFF are saturated to 0xFFFF. The results are packed into a 64-bit
-///    integer vector of [4 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PADDUSW </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [4 x i16].
-/// \param __m2
-///    A 64-bit integer vector of [4 x i16].
-/// \returns A 64-bit integer vector of [4 x i16] containing the saturated
-///    unsigned sums of both parameters.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_adds_pu16(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_paddusw((__v4hi)__m1, (__v4hi)__m2);
-}
-
-/// Subtracts each 8-bit integer element of the second 64-bit integer
-///    vector of [8 x i8] from the corresponding 8-bit integer element of the
-///    first 64-bit integer vector of [8 x i8]. The lower 8 bits of the results
-///    are packed into a 64-bit integer vector of [8 x i8].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSUBB </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [8 x i8] containing the minuends.
-/// \param __m2
-///    A 64-bit integer vector of [8 x i8] containing the subtrahends.
-/// \returns A 64-bit integer vector of [8 x i8] containing the differences of
-///    both parameters.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_sub_pi8(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_psubb((__v8qi)__m1, (__v8qi)__m2);
-}
-
-/// Subtracts each 16-bit integer element of the second 64-bit integer
-///    vector of [4 x i16] from the corresponding 16-bit integer element of the
-///    first 64-bit integer vector of [4 x i16]. The lower 16 bits of the
-///    results are packed into a 64-bit integer vector of [4 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSUBW </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [4 x i16] containing the minuends.
-/// \param __m2
-///    A 64-bit integer vector of [4 x i16] containing the subtrahends.
-/// \returns A 64-bit integer vector of [4 x i16] containing the differences of
-///    both parameters.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_sub_pi16(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_psubw((__v4hi)__m1, (__v4hi)__m2);
-}
-
-/// Subtracts each 32-bit integer element of the second 64-bit integer
-///    vector of [2 x i32] from the corresponding 32-bit integer element of the
-///    first 64-bit integer vector of [2 x i32]. The lower 32 bits of the
-///    results are packed into a 64-bit integer vector of [2 x i32].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSUBD </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [2 x i32] containing the minuends.
-/// \param __m2
-///    A 64-bit integer vector of [2 x i32] containing the subtrahends.
-/// \returns A 64-bit integer vector of [2 x i32] containing the differences of
-///    both parameters.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_sub_pi32(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_psubd((__v2si)__m1, (__v2si)__m2);
-}
-
-/// Subtracts each 8-bit signed integer element of the second 64-bit
-///    integer vector of [8 x i8] from the corresponding 8-bit signed integer
-///    element of the first 64-bit integer vector of [8 x i8]. Positive results
-///    greater than 0x7F are saturated to 0x7F. Negative results less than 0x80
-///    are saturated to 0x80. The results are packed into a 64-bit integer
-///    vector of [8 x i8].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSUBSB </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [8 x i8] containing the minuends.
-/// \param __m2
-///    A 64-bit integer vector of [8 x i8] containing the subtrahends.
-/// \returns A 64-bit integer vector of [8 x i8] containing the saturated
-///    differences of both parameters.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_subs_pi8(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_psubsb((__v8qi)__m1, (__v8qi)__m2);
-}
-
-/// Subtracts each 16-bit signed integer element of the second 64-bit
-///    integer vector of [4 x i16] from the corresponding 16-bit signed integer
-///    element of the first 64-bit integer vector of [4 x i16]. Positive results
-///    greater than 0x7FFF are saturated to 0x7FFF. Negative results less than
-///    0x8000 are saturated to 0x8000. The results are packed into a 64-bit
-///    integer vector of [4 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSUBSW </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [4 x i16] containing the minuends.
-/// \param __m2
-///    A 64-bit integer vector of [4 x i16] containing the subtrahends.
-/// \returns A 64-bit integer vector of [4 x i16] containing the saturated
-///    differences of both parameters.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_subs_pi16(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_psubsw((__v4hi)__m1, (__v4hi)__m2);
-}
-
-/// Subtracts each 8-bit unsigned integer element of the second 64-bit
-///    integer vector of [8 x i8] from the corresponding 8-bit unsigned integer
-///    element of the first 64-bit integer vector of [8 x i8].
-///
-///    If an element of the first vector is less than the corresponding element
-///    of the second vector, the result is saturated to 0. The results are
-///    packed into a 64-bit integer vector of [8 x i8].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSUBUSB </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [8 x i8] containing the minuends.
-/// \param __m2
-///    A 64-bit integer vector of [8 x i8] containing the subtrahends.
-/// \returns A 64-bit integer vector of [8 x i8] containing the saturated
-///    differences of both parameters.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_subs_pu8(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_psubusb((__v8qi)__m1, (__v8qi)__m2);
-}
-
-/// Subtracts each 16-bit unsigned integer element of the second 64-bit
-///    integer vector of [4 x i16] from the corresponding 16-bit unsigned
-///    integer element of the first 64-bit integer vector of [4 x i16].
-///
-///    If an element of the first vector is less than the corresponding element
-///    of the second vector, the result is saturated to 0. The results are
-///    packed into a 64-bit integer vector of [4 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSUBUSW </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [4 x i16] containing the minuends.
-/// \param __m2
-///    A 64-bit integer vector of [4 x i16] containing the subtrahends.
-/// \returns A 64-bit integer vector of [4 x i16] containing the saturated
-///    differences of both parameters.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_subs_pu16(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_psubusw((__v4hi)__m1, (__v4hi)__m2);
-}
-
-/// Multiplies each 16-bit signed integer element of the first 64-bit
-///    integer vector of [4 x i16] by the corresponding 16-bit signed integer
-///    element of the second 64-bit integer vector of [4 x i16] and get four
-///    32-bit products. Adds adjacent pairs of products to get two 32-bit sums.
-///    The lower 32 bits of these two sums are packed into a 64-bit integer
-///    vector of [2 x i32].
-///
-///    For example, bits [15:0] of both parameters are multiplied, bits [31:16]
-///    of both parameters are multiplied, and the sum of both results is written
-///    to bits [31:0] of the result.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PMADDWD </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [4 x i16].
-/// \param __m2
-///    A 64-bit integer vector of [4 x i16].
-/// \returns A 64-bit integer vector of [2 x i32] containing the sums of
-///    products of both parameters.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_madd_pi16(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_pmaddwd((__v4hi)__m1, (__v4hi)__m2);
-}
-
-/// Multiplies each 16-bit signed integer element of the first 64-bit
-///    integer vector of [4 x i16] by the corresponding 16-bit signed integer
-///    element of the second 64-bit integer vector of [4 x i16]. Packs the upper
-///    16 bits of the 32-bit products into a 64-bit integer vector of [4 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PMULHW </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [4 x i16].
-/// \param __m2
-///    A 64-bit integer vector of [4 x i16].
-/// \returns A 64-bit integer vector of [4 x i16] containing the upper 16 bits
-///    of the products of both parameters.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_mulhi_pi16(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_pmulhw((__v4hi)__m1, (__v4hi)__m2);
-}
-
-/// Multiplies each 16-bit signed integer element of the first 64-bit
-///    integer vector of [4 x i16] by the corresponding 16-bit signed integer
-///    element of the second 64-bit integer vector of [4 x i16]. Packs the lower
-///    16 bits of the 32-bit products into a 64-bit integer vector of [4 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PMULLW </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [4 x i16].
-/// \param __m2
-///    A 64-bit integer vector of [4 x i16].
-/// \returns A 64-bit integer vector of [4 x i16] containing the lower 16 bits
-///    of the products of both parameters.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_mullo_pi16(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_pmullw((__v4hi)__m1, (__v4hi)__m2);
-}
-
-/// Left-shifts each 16-bit signed integer element of the first
-///    parameter, which is a 64-bit integer vector of [4 x i16], by the number
-///    of bits specified by the second parameter, which is a 64-bit integer. The
-///    lower 16 bits of the results are packed into a 64-bit integer vector of
-///    [4 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSLLW </c> instruction.
-///
-/// \param __m
-///    A 64-bit integer vector of [4 x i16].
-/// \param __count
-///    A 64-bit integer vector interpreted as a single 64-bit integer.
-/// \returns A 64-bit integer vector of [4 x i16] containing the left-shifted
-///    values. If \a __count is greater or equal to 16, the result is set to all
-///    0.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_sll_pi16(__m64 __m, __m64 __count)
-{
-    return (__m64)__builtin_ia32_psllw((__v4hi)__m, __count);
-}
-
-/// Left-shifts each 16-bit signed integer element of a 64-bit integer
-///    vector of [4 x i16] by the number of bits specified by a 32-bit integer.
-///    The lower 16 bits of the results are packed into a 64-bit integer vector
-///    of [4 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSLLW </c> instruction.
-///
-/// \param __m
-///    A 64-bit integer vector of [4 x i16].
-/// \param __count
-///    A 32-bit integer value.
-/// \returns A 64-bit integer vector of [4 x i16] containing the left-shifted
-///    values. If \a __count is greater or equal to 16, the result is set to all
-///    0.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_slli_pi16(__m64 __m, int __count)
-{
-    return (__m64)__builtin_ia32_psllwi((__v4hi)__m, __count);
-}
-
-/// Left-shifts each 32-bit signed integer element of the first
-///    parameter, which is a 64-bit integer vector of [2 x i32], by the number
-///    of bits specified by the second parameter, which is a 64-bit integer. The
-///    lower 32 bits of the results are packed into a 64-bit integer vector of
-///    [2 x i32].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSLLD </c> instruction.
-///
-/// \param __m
-///    A 64-bit integer vector of [2 x i32].
-/// \param __count
-///    A 64-bit integer vector interpreted as a single 64-bit integer.
-/// \returns A 64-bit integer vector of [2 x i32] containing the left-shifted
-///    values. If \a __count is greater or equal to 32, the result is set to all
-///    0.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_sll_pi32(__m64 __m, __m64 __count)
-{
-    return (__m64)__builtin_ia32_pslld((__v2si)__m, __count);
-}
-
-/// Left-shifts each 32-bit signed integer element of a 64-bit integer
-///    vector of [2 x i32] by the number of bits specified by a 32-bit integer.
-///    The lower 32 bits of the results are packed into a 64-bit integer vector
-///    of [2 x i32].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSLLD </c> instruction.
-///
-/// \param __m
-///    A 64-bit integer vector of [2 x i32].
-/// \param __count
-///    A 32-bit integer value.
-/// \returns A 64-bit integer vector of [2 x i32] containing the left-shifted
-///    values. If \a __count is greater or equal to 32, the result is set to all
-///    0.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_slli_pi32(__m64 __m, int __count)
-{
-    return (__m64)__builtin_ia32_pslldi((__v2si)__m, __count);
-}
-
-/// Left-shifts the first 64-bit integer parameter by the number of bits
-///    specified by the second 64-bit integer parameter. The lower 64 bits of
-///    result are returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSLLQ </c> instruction.
-///
-/// \param __m
-///    A 64-bit integer vector interpreted as a single 64-bit integer.
-/// \param __count
-///    A 64-bit integer vector interpreted as a single 64-bit integer.
-/// \returns A 64-bit integer vector containing the left-shifted value. If
-///     \a __count is greater or equal to 64, the result is set to 0.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_sll_si64(__m64 __m, __m64 __count)
-{
-    return (__m64)__builtin_ia32_psllq((__v1di)__m, __count);
-}
-
-/// Left-shifts the first parameter, which is a 64-bit integer, by the
-///    number of bits specified by the second parameter, which is a 32-bit
-///    integer. The lower 64 bits of result are returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSLLQ </c> instruction.
-///
-/// \param __m
-///    A 64-bit integer vector interpreted as a single 64-bit integer.
-/// \param __count
-///    A 32-bit integer value.
-/// \returns A 64-bit integer vector containing the left-shifted value. If
-///     \a __count is greater or equal to 64, the result is set to 0.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_slli_si64(__m64 __m, int __count)
-{
-    return (__m64)__builtin_ia32_psllqi((__v1di)__m, __count);
-}
-
-/// Right-shifts each 16-bit integer element of the first parameter,
-///    which is a 64-bit integer vector of [4 x i16], by the number of bits
-///    specified by the second parameter, which is a 64-bit integer.
-///
-///    High-order bits are filled with the sign bit of the initial value of each
-///    16-bit element. The 16-bit results are packed into a 64-bit integer
-///    vector of [4 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSRAW </c> instruction.
-///
-/// \param __m
-///    A 64-bit integer vector of [4 x i16].
-/// \param __count
-///    A 64-bit integer vector interpreted as a single 64-bit integer.
-/// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted
-///    values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_sra_pi16(__m64 __m, __m64 __count)
-{
-    return (__m64)__builtin_ia32_psraw((__v4hi)__m, __count);
-}
-
-/// Right-shifts each 16-bit integer element of a 64-bit integer vector
-///    of [4 x i16] by the number of bits specified by a 32-bit integer.
-///
-///    High-order bits are filled with the sign bit of the initial value of each
-///    16-bit element. The 16-bit results are packed into a 64-bit integer
-///    vector of [4 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSRAW </c> instruction.
-///
-/// \param __m
-///    A 64-bit integer vector of [4 x i16].
-/// \param __count
-///    A 32-bit integer value.
-/// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted
-///    values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_srai_pi16(__m64 __m, int __count)
-{
-    return (__m64)__builtin_ia32_psrawi((__v4hi)__m, __count);
-}
-
-/// Right-shifts each 32-bit integer element of the first parameter,
-///    which is a 64-bit integer vector of [2 x i32], by the number of bits
-///    specified by the second parameter, which is a 64-bit integer.
-///
-///    High-order bits are filled with the sign bit of the initial value of each
-///    32-bit element. The 32-bit results are packed into a 64-bit integer
-///    vector of [2 x i32].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSRAD </c> instruction.
-///
-/// \param __m
-///    A 64-bit integer vector of [2 x i32].
-/// \param __count
-///    A 64-bit integer vector interpreted as a single 64-bit integer.
-/// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted
-///    values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_sra_pi32(__m64 __m, __m64 __count)
-{
-    return (__m64)__builtin_ia32_psrad((__v2si)__m, __count);
-}
-
-/// Right-shifts each 32-bit integer element of a 64-bit integer vector
-///    of [2 x i32] by the number of bits specified by a 32-bit integer.
-///
-///    High-order bits are filled with the sign bit of the initial value of each
-///    32-bit element. The 32-bit results are packed into a 64-bit integer
-///    vector of [2 x i32].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSRAD </c> instruction.
-///
-/// \param __m
-///    A 64-bit integer vector of [2 x i32].
-/// \param __count
-///    A 32-bit integer value.
-/// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted
-///    values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_srai_pi32(__m64 __m, int __count)
-{
-    return (__m64)__builtin_ia32_psradi((__v2si)__m, __count);
-}
-
-/// Right-shifts each 16-bit integer element of the first parameter,
-///    which is a 64-bit integer vector of [4 x i16], by the number of bits
-///    specified by the second parameter, which is a 64-bit integer.
-///
-///    High-order bits are cleared. The 16-bit results are packed into a 64-bit
-///    integer vector of [4 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSRLW </c> instruction.
-///
-/// \param __m
-///    A 64-bit integer vector of [4 x i16].
-/// \param __count
-///    A 64-bit integer vector interpreted as a single 64-bit integer.
-/// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted
-///    values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_srl_pi16(__m64 __m, __m64 __count)
-{
-    return (__m64)__builtin_ia32_psrlw((__v4hi)__m, __count);
-}
-
-/// Right-shifts each 16-bit integer element of a 64-bit integer vector
-///    of [4 x i16] by the number of bits specified by a 32-bit integer.
-///
-///    High-order bits are cleared. The 16-bit results are packed into a 64-bit
-///    integer vector of [4 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSRLW </c> instruction.
-///
-/// \param __m
-///    A 64-bit integer vector of [4 x i16].
-/// \param __count
-///    A 32-bit integer value.
-/// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted
-///    values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_srli_pi16(__m64 __m, int __count)
-{
-    return (__m64)__builtin_ia32_psrlwi((__v4hi)__m, __count);
-}
-
-/// Right-shifts each 32-bit integer element of the first parameter,
-///    which is a 64-bit integer vector of [2 x i32], by the number of bits
-///    specified by the second parameter, which is a 64-bit integer.
-///
-///    High-order bits are cleared. The 32-bit results are packed into a 64-bit
-///    integer vector of [2 x i32].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSRLD </c> instruction.
-///
-/// \param __m
-///    A 64-bit integer vector of [2 x i32].
-/// \param __count
-///    A 64-bit integer vector interpreted as a single 64-bit integer.
-/// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted
-///    values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_srl_pi32(__m64 __m, __m64 __count)
-{
-    return (__m64)__builtin_ia32_psrld((__v2si)__m, __count);
-}
-
-/// Right-shifts each 32-bit integer element of a 64-bit integer vector
-///    of [2 x i32] by the number of bits specified by a 32-bit integer.
-///
-///    High-order bits are cleared. The 32-bit results are packed into a 64-bit
-///    integer vector of [2 x i32].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSRLD </c> instruction.
-///
-/// \param __m
-///    A 64-bit integer vector of [2 x i32].
-/// \param __count
-///    A 32-bit integer value.
-/// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted
-///    values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_srli_pi32(__m64 __m, int __count)
-{
-    return (__m64)__builtin_ia32_psrldi((__v2si)__m, __count);
-}
-
-/// Right-shifts the first 64-bit integer parameter by the number of bits
-///    specified by the second 64-bit integer parameter.
-///
-///    High-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSRLQ </c> instruction.
-///
-/// \param __m
-///    A 64-bit integer vector interpreted as a single 64-bit integer.
-/// \param __count
-///    A 64-bit integer vector interpreted as a single 64-bit integer.
-/// \returns A 64-bit integer vector containing the right-shifted value.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_srl_si64(__m64 __m, __m64 __count)
-{
-    return (__m64)__builtin_ia32_psrlq((__v1di)__m, __count);
-}
-
-/// Right-shifts the first parameter, which is a 64-bit integer, by the
-///    number of bits specified by the second parameter, which is a 32-bit
-///    integer.
-///
-///    High-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSRLQ </c> instruction.
-///
-/// \param __m
-///    A 64-bit integer vector interpreted as a single 64-bit integer.
-/// \param __count
-///    A 32-bit integer value.
-/// \returns A 64-bit integer vector containing the right-shifted value.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_srli_si64(__m64 __m, int __count)
-{
-    return (__m64)__builtin_ia32_psrlqi((__v1di)__m, __count);
-}
-
-/// Performs a bitwise AND of two 64-bit integer vectors.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PAND </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector.
-/// \param __m2
-///    A 64-bit integer vector.
-/// \returns A 64-bit integer vector containing the bitwise AND of both
-///    parameters.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_and_si64(__m64 __m1, __m64 __m2)
-{
-    return __builtin_ia32_pand((__v1di)__m1, (__v1di)__m2);
-}
-
-/// Performs a bitwise NOT of the first 64-bit integer vector, and then
-///    performs a bitwise AND of the intermediate result and the second 64-bit
-///    integer vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PANDN </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector. The one's complement of this parameter is used
-///    in the bitwise AND.
-/// \param __m2
-///    A 64-bit integer vector.
-/// \returns A 64-bit integer vector containing the bitwise AND of the second
-///    parameter and the one's complement of the first parameter.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_andnot_si64(__m64 __m1, __m64 __m2)
-{
-    return __builtin_ia32_pandn((__v1di)__m1, (__v1di)__m2);
-}
-
-/// Performs a bitwise OR of two 64-bit integer vectors.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> POR </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector.
-/// \param __m2
-///    A 64-bit integer vector.
-/// \returns A 64-bit integer vector containing the bitwise OR of both
-///    parameters.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_or_si64(__m64 __m1, __m64 __m2)
-{
-    return __builtin_ia32_por((__v1di)__m1, (__v1di)__m2);
-}
-
-/// Performs a bitwise exclusive OR of two 64-bit integer vectors.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PXOR </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector.
-/// \param __m2
-///    A 64-bit integer vector.
-/// \returns A 64-bit integer vector containing the bitwise exclusive OR of both
-///    parameters.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_xor_si64(__m64 __m1, __m64 __m2)
-{
-    return __builtin_ia32_pxor((__v1di)__m1, (__v1di)__m2);
-}
-
-/// Compares the 8-bit integer elements of two 64-bit integer vectors of
-///    [8 x i8] to determine if the element of the first vector is equal to the
-///    corresponding element of the second vector.
-///
-///    The comparison yields 0 for false, 0xFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PCMPEQB </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [8 x i8].
-/// \param __m2
-///    A 64-bit integer vector of [8 x i8].
-/// \returns A 64-bit integer vector of [8 x i8] containing the comparison
-///    results.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_cmpeq_pi8(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_pcmpeqb((__v8qi)__m1, (__v8qi)__m2);
-}
-
-/// Compares the 16-bit integer elements of two 64-bit integer vectors of
-///    [4 x i16] to determine if the element of the first vector is equal to the
-///    corresponding element of the second vector.
-///
-///    The comparison yields 0 for false, 0xFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PCMPEQW </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [4 x i16].
-/// \param __m2
-///    A 64-bit integer vector of [4 x i16].
-/// \returns A 64-bit integer vector of [4 x i16] containing the comparison
-///    results.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_cmpeq_pi16(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_pcmpeqw((__v4hi)__m1, (__v4hi)__m2);
-}
-
-/// Compares the 32-bit integer elements of two 64-bit integer vectors of
-///    [2 x i32] to determine if the element of the first vector is equal to the
-///    corresponding element of the second vector.
-///
-///    The comparison yields 0 for false, 0xFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PCMPEQD </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [2 x i32].
-/// \param __m2
-///    A 64-bit integer vector of [2 x i32].
-/// \returns A 64-bit integer vector of [2 x i32] containing the comparison
-///    results.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_cmpeq_pi32(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_pcmpeqd((__v2si)__m1, (__v2si)__m2);
-}
-
-/// Compares the 8-bit integer elements of two 64-bit integer vectors of
-///    [8 x i8] to determine if the element of the first vector is greater than
-///    the corresponding element of the second vector.
-///
-///    The comparison yields 0 for false, 0xFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PCMPGTB </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [8 x i8].
-/// \param __m2
-///    A 64-bit integer vector of [8 x i8].
-/// \returns A 64-bit integer vector of [8 x i8] containing the comparison
-///    results.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_cmpgt_pi8(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_pcmpgtb((__v8qi)__m1, (__v8qi)__m2);
-}
-
-/// Compares the 16-bit integer elements of two 64-bit integer vectors of
-///    [4 x i16] to determine if the element of the first vector is greater than
-///    the corresponding element of the second vector.
-///
-///    The comparison yields 0 for false, 0xFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PCMPGTW </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [4 x i16].
-/// \param __m2
-///    A 64-bit integer vector of [4 x i16].
-/// \returns A 64-bit integer vector of [4 x i16] containing the comparison
-///    results.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_cmpgt_pi16(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_pcmpgtw((__v4hi)__m1, (__v4hi)__m2);
-}
-
-/// Compares the 32-bit integer elements of two 64-bit integer vectors of
-///    [2 x i32] to determine if the element of the first vector is greater than
-///    the corresponding element of the second vector.
-///
-///    The comparison yields 0 for false, 0xFFFFFFFF for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PCMPGTD </c> instruction.
-///
-/// \param __m1
-///    A 64-bit integer vector of [2 x i32].
-/// \param __m2
-///    A 64-bit integer vector of [2 x i32].
-/// \returns A 64-bit integer vector of [2 x i32] containing the comparison
-///    results.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_cmpgt_pi32(__m64 __m1, __m64 __m2)
-{
-    return (__m64)__builtin_ia32_pcmpgtd((__v2si)__m1, (__v2si)__m2);
-}
-
-/// Constructs a 64-bit integer vector initialized to zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PXOR </c> instruction.
-///
-/// \returns An initialized 64-bit integer vector with all elements set to zero.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_setzero_si64(void)
-{
-    return __extension__ (__m64){ 0LL };
-}
-
-/// Constructs a 64-bit integer vector initialized with the specified
-///    32-bit integer values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __i1
-///    A 32-bit integer value used to initialize the upper 32 bits of the
-///    result.
-/// \param __i0
-///    A 32-bit integer value used to initialize the lower 32 bits of the
-///    result.
-/// \returns An initialized 64-bit integer vector.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_set_pi32(int __i1, int __i0)
-{
-    return (__m64)__builtin_ia32_vec_init_v2si(__i0, __i1);
-}
-
-/// Constructs a 64-bit integer vector initialized with the specified
-///    16-bit integer values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __s3
-///    A 16-bit integer value used to initialize bits [63:48] of the result.
-/// \param __s2
-///    A 16-bit integer value used to initialize bits [47:32] of the result.
-/// \param __s1
-///    A 16-bit integer value used to initialize bits [31:16] of the result.
-/// \param __s0
-///    A 16-bit integer value used to initialize bits [15:0] of the result.
-/// \returns An initialized 64-bit integer vector.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_set_pi16(short __s3, short __s2, short __s1, short __s0)
-{
-    return (__m64)__builtin_ia32_vec_init_v4hi(__s0, __s1, __s2, __s3);
-}
-
-/// Constructs a 64-bit integer vector initialized with the specified
-///    8-bit integer values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __b7
-///    An 8-bit integer value used to initialize bits [63:56] of the result.
-/// \param __b6
-///    An 8-bit integer value used to initialize bits [55:48] of the result.
-/// \param __b5
-///    An 8-bit integer value used to initialize bits [47:40] of the result.
-/// \param __b4
-///    An 8-bit integer value used to initialize bits [39:32] of the result.
-/// \param __b3
-///    An 8-bit integer value used to initialize bits [31:24] of the result.
-/// \param __b2
-///    An 8-bit integer value used to initialize bits [23:16] of the result.
-/// \param __b1
-///    An 8-bit integer value used to initialize bits [15:8] of the result.
-/// \param __b0
-///    An 8-bit integer value used to initialize bits [7:0] of the result.
-/// \returns An initialized 64-bit integer vector.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_set_pi8(char __b7, char __b6, char __b5, char __b4, char __b3, char __b2,
-            char __b1, char __b0)
-{
-    return (__m64)__builtin_ia32_vec_init_v8qi(__b0, __b1, __b2, __b3,
-                                               __b4, __b5, __b6, __b7);
-}
-
-/// Constructs a 64-bit integer vector of [2 x i32], with each of the
-///    32-bit integer vector elements set to the specified 32-bit integer
-///    value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __i
-///    A 32-bit integer value used to initialize each vector element of the
-///    result.
-/// \returns An initialized 64-bit integer vector of [2 x i32].
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_set1_pi32(int __i)
-{
-    return _mm_set_pi32(__i, __i);
-}
-
-/// Constructs a 64-bit integer vector of [4 x i16], with each of the
-///    16-bit integer vector elements set to the specified 16-bit integer
-///    value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __w
-///    A 16-bit integer value used to initialize each vector element of the
-///    result.
-/// \returns An initialized 64-bit integer vector of [4 x i16].
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_set1_pi16(short __w)
-{
-    return _mm_set_pi16(__w, __w, __w, __w);
-}
-
-/// Constructs a 64-bit integer vector of [8 x i8], with each of the
-///    8-bit integer vector elements set to the specified 8-bit integer value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __b
-///    An 8-bit integer value used to initialize each vector element of the
-///    result.
-/// \returns An initialized 64-bit integer vector of [8 x i8].
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_set1_pi8(char __b)
-{
-    return _mm_set_pi8(__b, __b, __b, __b, __b, __b, __b, __b);
-}
-
-/// Constructs a 64-bit integer vector, initialized in reverse order with
-///    the specified 32-bit integer values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __i0
-///    A 32-bit integer value used to initialize the lower 32 bits of the
-///    result.
-/// \param __i1
-///    A 32-bit integer value used to initialize the upper 32 bits of the
-///    result.
-/// \returns An initialized 64-bit integer vector.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_setr_pi32(int __i0, int __i1)
-{
-    return _mm_set_pi32(__i1, __i0);
-}
-
-/// Constructs a 64-bit integer vector, initialized in reverse order with
-///    the specified 16-bit integer values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __w0
-///    A 16-bit integer value used to initialize bits [15:0] of the result.
-/// \param __w1
-///    A 16-bit integer value used to initialize bits [31:16] of the result.
-/// \param __w2
-///    A 16-bit integer value used to initialize bits [47:32] of the result.
-/// \param __w3
-///    A 16-bit integer value used to initialize bits [63:48] of the result.
-/// \returns An initialized 64-bit integer vector.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_setr_pi16(short __w0, short __w1, short __w2, short __w3)
-{
-    return _mm_set_pi16(__w3, __w2, __w1, __w0);
-}
-
-/// Constructs a 64-bit integer vector, initialized in reverse order with
-///    the specified 8-bit integer values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __b0
-///    An 8-bit integer value used to initialize bits [7:0] of the result.
-/// \param __b1
-///    An 8-bit integer value used to initialize bits [15:8] of the result.
-/// \param __b2
-///    An 8-bit integer value used to initialize bits [23:16] of the result.
-/// \param __b3
-///    An 8-bit integer value used to initialize bits [31:24] of the result.
-/// \param __b4
-///    An 8-bit integer value used to initialize bits [39:32] of the result.
-/// \param __b5
-///    An 8-bit integer value used to initialize bits [47:40] of the result.
-/// \param __b6
-///    An 8-bit integer value used to initialize bits [55:48] of the result.
-/// \param __b7
-///    An 8-bit integer value used to initialize bits [63:56] of the result.
-/// \returns An initialized 64-bit integer vector.
-static __inline__ __m64 __DEFAULT_FN_ATTRS
-_mm_setr_pi8(char __b0, char __b1, char __b2, char __b3, char __b4, char __b5,
-             char __b6, char __b7)
-{
-    return _mm_set_pi8(__b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0);
-}
-
-#undef __DEFAULT_FN_ATTRS
-
-/* Aliases for compatibility. */
-#define _m_empty _mm_empty
-#define _m_from_int _mm_cvtsi32_si64
-#define _m_from_int64 _mm_cvtsi64_m64
-#define _m_to_int _mm_cvtsi64_si32
-#define _m_to_int64 _mm_cvtm64_si64
-#define _m_packsswb _mm_packs_pi16
-#define _m_packssdw _mm_packs_pi32
-#define _m_packuswb _mm_packs_pu16
-#define _m_punpckhbw _mm_unpackhi_pi8
-#define _m_punpckhwd _mm_unpackhi_pi16
-#define _m_punpckhdq _mm_unpackhi_pi32
-#define _m_punpcklbw _mm_unpacklo_pi8
-#define _m_punpcklwd _mm_unpacklo_pi16
-#define _m_punpckldq _mm_unpacklo_pi32
-#define _m_paddb _mm_add_pi8
-#define _m_paddw _mm_add_pi16
-#define _m_paddd _mm_add_pi32
-#define _m_paddsb _mm_adds_pi8
-#define _m_paddsw _mm_adds_pi16
-#define _m_paddusb _mm_adds_pu8
-#define _m_paddusw _mm_adds_pu16
-#define _m_psubb _mm_sub_pi8
-#define _m_psubw _mm_sub_pi16
-#define _m_psubd _mm_sub_pi32
-#define _m_psubsb _mm_subs_pi8
-#define _m_psubsw _mm_subs_pi16
-#define _m_psubusb _mm_subs_pu8
-#define _m_psubusw _mm_subs_pu16
-#define _m_pmaddwd _mm_madd_pi16
-#define _m_pmulhw _mm_mulhi_pi16
-#define _m_pmullw _mm_mullo_pi16
-#define _m_psllw _mm_sll_pi16
-#define _m_psllwi _mm_slli_pi16
-#define _m_pslld _mm_sll_pi32
-#define _m_pslldi _mm_slli_pi32
-#define _m_psllq _mm_sll_si64
-#define _m_psllqi _mm_slli_si64
-#define _m_psraw _mm_sra_pi16
-#define _m_psrawi _mm_srai_pi16
-#define _m_psrad _mm_sra_pi32
-#define _m_psradi _mm_srai_pi32
-#define _m_psrlw _mm_srl_pi16
-#define _m_psrlwi _mm_srli_pi16
-#define _m_psrld _mm_srl_pi32
-#define _m_psrldi _mm_srli_pi32
-#define _m_psrlq _mm_srl_si64
-#define _m_psrlqi _mm_srli_si64
-#define _m_pand _mm_and_si64
-#define _m_pandn _mm_andnot_si64
-#define _m_por _mm_or_si64
-#define _m_pxor _mm_xor_si64
-#define _m_pcmpeqb _mm_cmpeq_pi8
-#define _m_pcmpeqw _mm_cmpeq_pi16
-#define _m_pcmpeqd _mm_cmpeq_pi32
-#define _m_pcmpgtb _mm_cmpgt_pi8
-#define _m_pcmpgtw _mm_cmpgt_pi16
-#define _m_pcmpgtd _mm_cmpgt_pi32
-
-#endif /* __MMINTRIN_H */
-
diff --git a/linux-x86/lib64/clang/14.0.1/include/nmmintrin.h b/linux-x86/lib64/clang/14.0.1/include/nmmintrin.h
deleted file mode 100644
index 672aea4..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/nmmintrin.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/*===---- nmmintrin.h - SSE4 intrinsics ------------------------------------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-
-#ifndef __NMMINTRIN_H
-#define __NMMINTRIN_H
-
-/* To match expectations of gcc we put the sse4.2 definitions into smmintrin.h,
-   just include it now then.  */
-#include <smmintrin.h>
-#endif /* __NMMINTRIN_H */
diff --git a/linux-x86/lib64/clang/14.0.1/include/opencl-c-base.h b/linux-x86/lib64/clang/14.0.1/include/opencl-c-base.h
deleted file mode 100644
index f3605c6..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/opencl-c-base.h
+++ /dev/null
@@ -1,756 +0,0 @@
-//===----- opencl-c-base.h - OpenCL C language base definitions -----------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _OPENCL_BASE_H_
-#define _OPENCL_BASE_H_
-
-// Define extension macros
-
-#if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 200)
-// For SPIR all extensions are supported.
-#if defined(__SPIR__)
-#define cl_khr_subgroup_extended_types 1
-#define cl_khr_subgroup_non_uniform_vote 1
-#define cl_khr_subgroup_ballot 1
-#define cl_khr_subgroup_non_uniform_arithmetic 1
-#define cl_khr_subgroup_shuffle 1
-#define cl_khr_subgroup_shuffle_relative 1
-#define cl_khr_subgroup_clustered_reduce 1
-#define cl_khr_extended_bit_ops 1
-#define cl_khr_integer_dot_product 1
-#define __opencl_c_integer_dot_product_input_4x8bit 1
-#define __opencl_c_integer_dot_product_input_4x8bit_packed 1
-
-#endif // defined(__SPIR__)
-#endif // (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 200)
-
-// Define feature macros for OpenCL C 2.0
-#if (__OPENCL_CPP_VERSION__ == 100 || __OPENCL_C_VERSION__ == 200)
-#define __opencl_c_pipes 1
-#define __opencl_c_generic_address_space 1
-#define __opencl_c_work_group_collective_functions 1
-#define __opencl_c_atomic_order_acq_rel 1
-#define __opencl_c_atomic_order_seq_cst 1
-#define __opencl_c_atomic_scope_device 1
-#define __opencl_c_atomic_scope_all_devices 1
-#define __opencl_c_device_enqueue 1
-#define __opencl_c_read_write_images 1
-#define __opencl_c_program_scope_global_variables 1
-#define __opencl_c_images 1
-#endif
-
-// Define header-only feature macros for OpenCL C 3.0.
-#if (__OPENCL_CPP_VERSION__ == 202100 || __OPENCL_C_VERSION__ == 300)
-// For the SPIR target all features are supported.
-#if defined(__SPIR__)
-#define __opencl_c_atomic_scope_all_devices 1
-#endif // defined(__SPIR__)
-#endif // (__OPENCL_CPP_VERSION__ == 202100 || __OPENCL_C_VERSION__ == 300)
-
-// built-in scalar data types:
-
-/**
- * An unsigned 8-bit integer.
- */
-typedef unsigned char uchar;
-
-/**
- * An unsigned 16-bit integer.
- */
-typedef unsigned short ushort;
-
-/**
- * An unsigned 32-bit integer.
- */
-typedef unsigned int uint;
-
-/**
- * An unsigned 64-bit integer.
- */
-typedef unsigned long ulong;
-
-/**
- * The unsigned integer type of the result of the sizeof operator. This
- * is a 32-bit unsigned integer if CL_DEVICE_ADDRESS_BITS
- * defined in table 4.3 is 32-bits and is a 64-bit unsigned integer if
- * CL_DEVICE_ADDRESS_BITS is 64-bits.
- */
-typedef __SIZE_TYPE__ size_t;
-
-/**
- * A signed integer type that is the result of subtracting two pointers.
- * This is a 32-bit signed integer if CL_DEVICE_ADDRESS_BITS
- * defined in table 4.3 is 32-bits and is a 64-bit signed integer if
- * CL_DEVICE_ADDRESS_BITS is 64-bits.
- */
-typedef __PTRDIFF_TYPE__ ptrdiff_t;
-
-/**
- * A signed integer type with the property that any valid pointer to
- * void can be converted to this type, then converted back to pointer
- * to void, and the result will compare equal to the original pointer.
- */
-typedef __INTPTR_TYPE__ intptr_t;
-
-/**
- * An unsigned integer type with the property that any valid pointer to
- * void can be converted to this type, then converted back to pointer
- * to void, and the result will compare equal to the original pointer.
- */
-typedef __UINTPTR_TYPE__ uintptr_t;
-
-// built-in vector data types:
-typedef char char2 __attribute__((ext_vector_type(2)));
-typedef char char3 __attribute__((ext_vector_type(3)));
-typedef char char4 __attribute__((ext_vector_type(4)));
-typedef char char8 __attribute__((ext_vector_type(8)));
-typedef char char16 __attribute__((ext_vector_type(16)));
-typedef uchar uchar2 __attribute__((ext_vector_type(2)));
-typedef uchar uchar3 __attribute__((ext_vector_type(3)));
-typedef uchar uchar4 __attribute__((ext_vector_type(4)));
-typedef uchar uchar8 __attribute__((ext_vector_type(8)));
-typedef uchar uchar16 __attribute__((ext_vector_type(16)));
-typedef short short2 __attribute__((ext_vector_type(2)));
-typedef short short3 __attribute__((ext_vector_type(3)));
-typedef short short4 __attribute__((ext_vector_type(4)));
-typedef short short8 __attribute__((ext_vector_type(8)));
-typedef short short16 __attribute__((ext_vector_type(16)));
-typedef ushort ushort2 __attribute__((ext_vector_type(2)));
-typedef ushort ushort3 __attribute__((ext_vector_type(3)));
-typedef ushort ushort4 __attribute__((ext_vector_type(4)));
-typedef ushort ushort8 __attribute__((ext_vector_type(8)));
-typedef ushort ushort16 __attribute__((ext_vector_type(16)));
-typedef int int2 __attribute__((ext_vector_type(2)));
-typedef int int3 __attribute__((ext_vector_type(3)));
-typedef int int4 __attribute__((ext_vector_type(4)));
-typedef int int8 __attribute__((ext_vector_type(8)));
-typedef int int16 __attribute__((ext_vector_type(16)));
-typedef uint uint2 __attribute__((ext_vector_type(2)));
-typedef uint uint3 __attribute__((ext_vector_type(3)));
-typedef uint uint4 __attribute__((ext_vector_type(4)));
-typedef uint uint8 __attribute__((ext_vector_type(8)));
-typedef uint uint16 __attribute__((ext_vector_type(16)));
-typedef long long2 __attribute__((ext_vector_type(2)));
-typedef long long3 __attribute__((ext_vector_type(3)));
-typedef long long4 __attribute__((ext_vector_type(4)));
-typedef long long8 __attribute__((ext_vector_type(8)));
-typedef long long16 __attribute__((ext_vector_type(16)));
-typedef ulong ulong2 __attribute__((ext_vector_type(2)));
-typedef ulong ulong3 __attribute__((ext_vector_type(3)));
-typedef ulong ulong4 __attribute__((ext_vector_type(4)));
-typedef ulong ulong8 __attribute__((ext_vector_type(8)));
-typedef ulong ulong16 __attribute__((ext_vector_type(16)));
-typedef float float2 __attribute__((ext_vector_type(2)));
-typedef float float3 __attribute__((ext_vector_type(3)));
-typedef float float4 __attribute__((ext_vector_type(4)));
-typedef float float8 __attribute__((ext_vector_type(8)));
-typedef float float16 __attribute__((ext_vector_type(16)));
-#ifdef cl_khr_fp16
-#pragma OPENCL EXTENSION cl_khr_fp16 : enable
-typedef half half2 __attribute__((ext_vector_type(2)));
-typedef half half3 __attribute__((ext_vector_type(3)));
-typedef half half4 __attribute__((ext_vector_type(4)));
-typedef half half8 __attribute__((ext_vector_type(8)));
-typedef half half16 __attribute__((ext_vector_type(16)));
-#endif
-#ifdef cl_khr_fp64
-#if __OPENCL_C_VERSION__ < CL_VERSION_1_2
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-typedef double double2 __attribute__((ext_vector_type(2)));
-typedef double double3 __attribute__((ext_vector_type(3)));
-typedef double double4 __attribute__((ext_vector_type(4)));
-typedef double double8 __attribute__((ext_vector_type(8)));
-typedef double double16 __attribute__((ext_vector_type(16)));
-#endif
-
-#if defined(__OPENCL_CPP_VERSION__)
-#define NULL nullptr
-#elif defined(__OPENCL_C_VERSION__)
-#define NULL ((void*)0)
-#endif
-
-/**
- * Value of maximum non-infinite single-precision floating-point
- * number.
- */
-#define MAXFLOAT 0x1.fffffep127f
-
-/**
- * A positive float constant expression. HUGE_VALF evaluates
- * to +infinity. Used as an error value returned by the built-in
- * math functions.
- */
-#define HUGE_VALF (__builtin_huge_valf())
-
-/**
- * A positive double constant expression. HUGE_VAL evaluates
- * to +infinity. Used as an error value returned by the built-in
- * math functions.
- */
-#define HUGE_VAL (__builtin_huge_val())
-
-/**
- * A constant expression of type float representing positive or
- * unsigned infinity.
- */
-#define INFINITY (__builtin_inff())
-
-/**
- * A constant expression of type float representing a quiet NaN.
- */
-#define NAN as_float(INT_MAX)
-
-#define FP_ILOGB0    INT_MIN
-#define FP_ILOGBNAN  INT_MAX
-
-#define FLT_DIG 6
-#define FLT_MANT_DIG 24
-#define FLT_MAX_10_EXP +38
-#define FLT_MAX_EXP +128
-#define FLT_MIN_10_EXP -37
-#define FLT_MIN_EXP -125
-#define FLT_RADIX 2
-#define FLT_MAX 0x1.fffffep127f
-#define FLT_MIN 0x1.0p-126f
-#define FLT_EPSILON 0x1.0p-23f
-
-#define M_E_F         2.71828182845904523536028747135266250f
-#define M_LOG2E_F     1.44269504088896340735992468100189214f
-#define M_LOG10E_F    0.434294481903251827651128918916605082f
-#define M_LN2_F       0.693147180559945309417232121458176568f
-#define M_LN10_F      2.30258509299404568401799145468436421f
-#define M_PI_F        3.14159265358979323846264338327950288f
-#define M_PI_2_F      1.57079632679489661923132169163975144f
-#define M_PI_4_F      0.785398163397448309615660845819875721f
-#define M_1_PI_F      0.318309886183790671537767526745028724f
-#define M_2_PI_F      0.636619772367581343075535053490057448f
-#define M_2_SQRTPI_F  1.12837916709551257389615890312154517f
-#define M_SQRT2_F     1.41421356237309504880168872420969808f
-#define M_SQRT1_2_F   0.707106781186547524400844362104849039f
-
-#define DBL_DIG 15
-#define DBL_MANT_DIG 53
-#define DBL_MAX_10_EXP +308
-#define DBL_MAX_EXP +1024
-#define DBL_MIN_10_EXP -307
-#define DBL_MIN_EXP -1021
-#define DBL_RADIX 2
-#define DBL_MAX 0x1.fffffffffffffp1023
-#define DBL_MIN 0x1.0p-1022
-#define DBL_EPSILON 0x1.0p-52
-
-#define M_E           0x1.5bf0a8b145769p+1
-#define M_LOG2E       0x1.71547652b82fep+0
-#define M_LOG10E      0x1.bcb7b1526e50ep-2
-#define M_LN2         0x1.62e42fefa39efp-1
-#define M_LN10        0x1.26bb1bbb55516p+1
-#define M_PI          0x1.921fb54442d18p+1
-#define M_PI_2        0x1.921fb54442d18p+0
-#define M_PI_4        0x1.921fb54442d18p-1
-#define M_1_PI        0x1.45f306dc9c883p-2
-#define M_2_PI        0x1.45f306dc9c883p-1
-#define M_2_SQRTPI    0x1.20dd750429b6dp+0
-#define M_SQRT2       0x1.6a09e667f3bcdp+0
-#define M_SQRT1_2     0x1.6a09e667f3bcdp-1
-
-#ifdef cl_khr_fp16
-
-#define HALF_DIG 3
-#define HALF_MANT_DIG 11
-#define HALF_MAX_10_EXP +4
-#define HALF_MAX_EXP +16
-#define HALF_MIN_10_EXP -4
-#define HALF_MIN_EXP -13
-#define HALF_RADIX 2
-#define HALF_MAX ((0x1.ffcp15h))
-#define HALF_MIN ((0x1.0p-14h))
-#define HALF_EPSILON ((0x1.0p-10h))
-
-#define M_E_H         2.71828182845904523536028747135266250h
-#define M_LOG2E_H     1.44269504088896340735992468100189214h
-#define M_LOG10E_H    0.434294481903251827651128918916605082h
-#define M_LN2_H       0.693147180559945309417232121458176568h
-#define M_LN10_H      2.30258509299404568401799145468436421h
-#define M_PI_H        3.14159265358979323846264338327950288h
-#define M_PI_2_H      1.57079632679489661923132169163975144h
-#define M_PI_4_H      0.785398163397448309615660845819875721h
-#define M_1_PI_H      0.318309886183790671537767526745028724h
-#define M_2_PI_H      0.636619772367581343075535053490057448h
-#define M_2_SQRTPI_H  1.12837916709551257389615890312154517h
-#define M_SQRT2_H     1.41421356237309504880168872420969808h
-#define M_SQRT1_2_H   0.707106781186547524400844362104849039h
-
-#endif //cl_khr_fp16
-
-#define CHAR_BIT  8
-#define SCHAR_MAX 127
-#define SCHAR_MIN (-128)
-#define UCHAR_MAX 255
-#define CHAR_MAX  SCHAR_MAX
-#define CHAR_MIN  SCHAR_MIN
-#define USHRT_MAX 65535
-#define SHRT_MAX  32767
-#define SHRT_MIN  (-32768)
-#define UINT_MAX  0xffffffff
-#define INT_MAX   2147483647
-#define INT_MIN   (-2147483647-1)
-#define ULONG_MAX 0xffffffffffffffffUL
-#define LONG_MAX  0x7fffffffffffffffL
-#define LONG_MIN  (-0x7fffffffffffffffL-1)
-
-// OpenCL v1.1 s6.11.8, v1.2 s6.12.8, v2.0 s6.13.8 - Synchronization Functions
-
-// Flag type and values for barrier, mem_fence, read_mem_fence, write_mem_fence
-typedef uint cl_mem_fence_flags;
-
-/**
- * Queue a memory fence to ensure correct
- * ordering of memory operations to local memory
- */
-#define CLK_LOCAL_MEM_FENCE    0x01
-
-/**
- * Queue a memory fence to ensure correct
- * ordering of memory operations to global memory
- */
-#define CLK_GLOBAL_MEM_FENCE   0x02
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-typedef enum memory_scope {
-  memory_scope_work_item = __OPENCL_MEMORY_SCOPE_WORK_ITEM,
-  memory_scope_work_group = __OPENCL_MEMORY_SCOPE_WORK_GROUP,
-  memory_scope_device = __OPENCL_MEMORY_SCOPE_DEVICE,
-#if defined(__opencl_c_atomic_scope_all_devices)
-  memory_scope_all_svm_devices = __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES,
-#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0)
-  memory_scope_all_devices = memory_scope_all_svm_devices,
-#endif // __OPENCL_C_VERSION__ >= CL_VERSION_3_0
-#endif // defined(__opencl_c_atomic_scope_all_devices)
-/**
- * Subgroups have different requirements on forward progress, so just test
- * all the relevant macros.
- * CL 3.0 sub-groups "they are not guaranteed to make independent forward progress"
- * KHR subgroups "Subgroups within a workgroup are independent, make forward progress with respect to each other"
- */
-#if defined(cl_intel_subgroups) || defined(cl_khr_subgroups) || defined(__opencl_c_subgroups)
-  memory_scope_sub_group = __OPENCL_MEMORY_SCOPE_SUB_GROUP
-#endif
-} memory_scope;
-
-/**
- * Queue a memory fence to ensure correct ordering of memory
- * operations between work-items of a work-group to
- * image memory.
- */
-#define CLK_IMAGE_MEM_FENCE  0x04
-
-#ifndef ATOMIC_VAR_INIT
-#define ATOMIC_VAR_INIT(x) (x)
-#endif //ATOMIC_VAR_INIT
-#define ATOMIC_FLAG_INIT 0
-
-// enum values aligned with what clang uses in EmitAtomicExpr()
-typedef enum memory_order
-{
-  memory_order_relaxed = __ATOMIC_RELAXED,
-  memory_order_acquire = __ATOMIC_ACQUIRE,
-  memory_order_release = __ATOMIC_RELEASE,
-  memory_order_acq_rel = __ATOMIC_ACQ_REL,
-#if defined(__opencl_c_atomic_order_seq_cst)
-  memory_order_seq_cst = __ATOMIC_SEQ_CST
-#endif
-} memory_order;
-
-#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-// OpenCL v1.1 s6.11.3, v1.2 s6.12.14, v2.0 s6.13.14 - Image Read and Write Functions
-
-// These values need to match the runtime equivalent
-//
-// Addressing Mode.
-//
-#define CLK_ADDRESS_NONE                0
-#define CLK_ADDRESS_CLAMP_TO_EDGE       2
-#define CLK_ADDRESS_CLAMP               4
-#define CLK_ADDRESS_REPEAT              6
-#define CLK_ADDRESS_MIRRORED_REPEAT     8
-
-//
-// Coordination Normalization
-//
-#define CLK_NORMALIZED_COORDS_FALSE     0
-#define CLK_NORMALIZED_COORDS_TRUE      1
-
-//
-// Filtering Mode.
-//
-#define CLK_FILTER_NEAREST              0x10
-#define CLK_FILTER_LINEAR               0x20
-
-#ifdef cl_khr_gl_msaa_sharing
-#pragma OPENCL EXTENSION cl_khr_gl_msaa_sharing : enable
-#endif //cl_khr_gl_msaa_sharing
-
-//
-// Channel Datatype.
-//
-#define CLK_SNORM_INT8        0x10D0
-#define CLK_SNORM_INT16       0x10D1
-#define CLK_UNORM_INT8        0x10D2
-#define CLK_UNORM_INT16       0x10D3
-#define CLK_UNORM_SHORT_565   0x10D4
-#define CLK_UNORM_SHORT_555   0x10D5
-#define CLK_UNORM_INT_101010  0x10D6
-#define CLK_SIGNED_INT8       0x10D7
-#define CLK_SIGNED_INT16      0x10D8
-#define CLK_SIGNED_INT32      0x10D9
-#define CLK_UNSIGNED_INT8     0x10DA
-#define CLK_UNSIGNED_INT16    0x10DB
-#define CLK_UNSIGNED_INT32    0x10DC
-#define CLK_HALF_FLOAT        0x10DD
-#define CLK_FLOAT             0x10DE
-#define CLK_UNORM_INT24       0x10DF
-
-// Channel order, numbering must be aligned with cl_channel_order in cl.h
-//
-#define CLK_R         0x10B0
-#define CLK_A         0x10B1
-#define CLK_RG        0x10B2
-#define CLK_RA        0x10B3
-#define CLK_RGB       0x10B4
-#define CLK_RGBA      0x10B5
-#define CLK_BGRA      0x10B6
-#define CLK_ARGB      0x10B7
-#define CLK_INTENSITY 0x10B8
-#define CLK_LUMINANCE 0x10B9
-#define CLK_Rx                0x10BA
-#define CLK_RGx               0x10BB
-#define CLK_RGBx              0x10BC
-#define CLK_DEPTH             0x10BD
-#define CLK_DEPTH_STENCIL     0x10BE
-#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
-#define CLK_sRGB              0x10BF
-#define CLK_sRGBx             0x10C0
-#define CLK_sRGBA             0x10C1
-#define CLK_sBGRA             0x10C2
-#define CLK_ABGR              0x10C3
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
-
-// OpenCL v2.0 s6.13.16 - Pipe Functions
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-#define CLK_NULL_RESERVE_ID (__builtin_astype(((void*)(__SIZE_MAX__)), reserve_id_t))
-
-// OpenCL v2.0 s6.13.17 - Enqueue Kernels
-#define CL_COMPLETE                                 0x0
-#define CL_RUNNING                                  0x1
-#define CL_SUBMITTED                                0x2
-#define CL_QUEUED                                   0x3
-
-#define CLK_SUCCESS                                 0
-#define CLK_ENQUEUE_FAILURE                         -101
-#define CLK_INVALID_QUEUE                           -102
-#define CLK_INVALID_NDRANGE                         -160
-#define CLK_INVALID_EVENT_WAIT_LIST                 -57
-#define CLK_DEVICE_QUEUE_FULL                       -161
-#define CLK_INVALID_ARG_SIZE                        -51
-#define CLK_EVENT_ALLOCATION_FAILURE                -100
-#define CLK_OUT_OF_RESOURCES                        -5
-
-#define CLK_NULL_QUEUE                              0
-#define CLK_NULL_EVENT (__builtin_astype(((__SIZE_MAX__)), clk_event_t))
-
-// execution model related definitions
-#define CLK_ENQUEUE_FLAGS_NO_WAIT                   0x0
-#define CLK_ENQUEUE_FLAGS_WAIT_KERNEL               0x1
-#define CLK_ENQUEUE_FLAGS_WAIT_WORK_GROUP           0x2
-
-typedef int kernel_enqueue_flags_t;
-typedef int clk_profiling_info;
-
-// Profiling info name (see capture_event_profiling_info)
-#define CLK_PROFILING_COMMAND_EXEC_TIME 0x1
-
-#define MAX_WORK_DIM 3
-
-typedef struct {
-  unsigned int workDimension;
-  size_t globalWorkOffset[MAX_WORK_DIM];
-  size_t globalWorkSize[MAX_WORK_DIM];
-  size_t localWorkSize[MAX_WORK_DIM];
-} ndrange_t;
-
-#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-/**
- * OpenCL v1.1/1.2/2.0 s6.2.4.2 - as_type operators
- * Reinterprets a data type as another data type of the same size
- */
-#define as_char(x) __builtin_astype((x), char)
-#define as_char2(x) __builtin_astype((x), char2)
-#define as_char3(x) __builtin_astype((x), char3)
-#define as_char4(x) __builtin_astype((x), char4)
-#define as_char8(x) __builtin_astype((x), char8)
-#define as_char16(x) __builtin_astype((x), char16)
-
-#define as_uchar(x) __builtin_astype((x), uchar)
-#define as_uchar2(x) __builtin_astype((x), uchar2)
-#define as_uchar3(x) __builtin_astype((x), uchar3)
-#define as_uchar4(x) __builtin_astype((x), uchar4)
-#define as_uchar8(x) __builtin_astype((x), uchar8)
-#define as_uchar16(x) __builtin_astype((x), uchar16)
-
-#define as_short(x) __builtin_astype((x), short)
-#define as_short2(x) __builtin_astype((x), short2)
-#define as_short3(x) __builtin_astype((x), short3)
-#define as_short4(x) __builtin_astype((x), short4)
-#define as_short8(x) __builtin_astype((x), short8)
-#define as_short16(x) __builtin_astype((x), short16)
-
-#define as_ushort(x) __builtin_astype((x), ushort)
-#define as_ushort2(x) __builtin_astype((x), ushort2)
-#define as_ushort3(x) __builtin_astype((x), ushort3)
-#define as_ushort4(x) __builtin_astype((x), ushort4)
-#define as_ushort8(x) __builtin_astype((x), ushort8)
-#define as_ushort16(x) __builtin_astype((x), ushort16)
-
-#define as_int(x) __builtin_astype((x), int)
-#define as_int2(x) __builtin_astype((x), int2)
-#define as_int3(x) __builtin_astype((x), int3)
-#define as_int4(x) __builtin_astype((x), int4)
-#define as_int8(x) __builtin_astype((x), int8)
-#define as_int16(x) __builtin_astype((x), int16)
-
-#define as_uint(x) __builtin_astype((x), uint)
-#define as_uint2(x) __builtin_astype((x), uint2)
-#define as_uint3(x) __builtin_astype((x), uint3)
-#define as_uint4(x) __builtin_astype((x), uint4)
-#define as_uint8(x) __builtin_astype((x), uint8)
-#define as_uint16(x) __builtin_astype((x), uint16)
-
-#define as_long(x) __builtin_astype((x), long)
-#define as_long2(x) __builtin_astype((x), long2)
-#define as_long3(x) __builtin_astype((x), long3)
-#define as_long4(x) __builtin_astype((x), long4)
-#define as_long8(x) __builtin_astype((x), long8)
-#define as_long16(x) __builtin_astype((x), long16)
-
-#define as_ulong(x) __builtin_astype((x), ulong)
-#define as_ulong2(x) __builtin_astype((x), ulong2)
-#define as_ulong3(x) __builtin_astype((x), ulong3)
-#define as_ulong4(x) __builtin_astype((x), ulong4)
-#define as_ulong8(x) __builtin_astype((x), ulong8)
-#define as_ulong16(x) __builtin_astype((x), ulong16)
-
-#define as_float(x) __builtin_astype((x), float)
-#define as_float2(x) __builtin_astype((x), float2)
-#define as_float3(x) __builtin_astype((x), float3)
-#define as_float4(x) __builtin_astype((x), float4)
-#define as_float8(x) __builtin_astype((x), float8)
-#define as_float16(x) __builtin_astype((x), float16)
-
-#ifdef cl_khr_fp64
-#define as_double(x) __builtin_astype((x), double)
-#define as_double2(x) __builtin_astype((x), double2)
-#define as_double3(x) __builtin_astype((x), double3)
-#define as_double4(x) __builtin_astype((x), double4)
-#define as_double8(x) __builtin_astype((x), double8)
-#define as_double16(x) __builtin_astype((x), double16)
-#endif // cl_khr_fp64
-
-#ifdef cl_khr_fp16
-#define as_half(x) __builtin_astype((x), half)
-#define as_half2(x) __builtin_astype((x), half2)
-#define as_half3(x) __builtin_astype((x), half3)
-#define as_half4(x) __builtin_astype((x), half4)
-#define as_half8(x) __builtin_astype((x), half8)
-#define as_half16(x) __builtin_astype((x), half16)
-#endif // cl_khr_fp16
-
-#define as_size_t(x) __builtin_astype((x), size_t)
-#define as_ptrdiff_t(x) __builtin_astype((x), ptrdiff_t)
-#define as_intptr_t(x) __builtin_astype((x), intptr_t)
-#define as_uintptr_t(x) __builtin_astype((x), uintptr_t)
-
-// C++ for OpenCL - __remove_address_space
-#if defined(__OPENCL_CPP_VERSION__)
-template <typename _Tp> struct __remove_address_space { using type = _Tp; };
-template <typename _Tp> struct __remove_address_space<__generic _Tp> {
-  using type = _Tp;
-};
-template <typename _Tp> struct __remove_address_space<__global _Tp> {
-  using type = _Tp;
-};
-template <typename _Tp> struct __remove_address_space<__private _Tp> {
-  using type = _Tp;
-};
-template <typename _Tp> struct __remove_address_space<__local _Tp> {
-  using type = _Tp;
-};
-template <typename _Tp> struct __remove_address_space<__constant _Tp> {
-  using type = _Tp;
-};
-#endif
-
-// OpenCL v1.1 s6.9, v1.2/2.0 s6.10 - Function qualifiers
-
-#define __kernel_exec(X, typen) __kernel \
-	__attribute__((work_group_size_hint(X, 1, 1))) \
-	__attribute__((vec_type_hint(typen)))
-
-#define kernel_exec(X, typen) __kernel \
-	__attribute__((work_group_size_hint(X, 1, 1))) \
-	__attribute__((vec_type_hint(typen)))
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
-// OpenCL v1.2 s6.12.13, v2.0 s6.13.13 - printf
-
-int printf(__constant const char* st, ...) __attribute__((format(printf, 1, 2)));
-#endif
-
-#ifdef cl_intel_device_side_avc_motion_estimation
-
-#define CLK_AVC_ME_MAJOR_16x16_INTEL 0x0
-#define CLK_AVC_ME_MAJOR_16x8_INTEL 0x1
-#define CLK_AVC_ME_MAJOR_8x16_INTEL 0x2
-#define CLK_AVC_ME_MAJOR_8x8_INTEL 0x3
-
-#define CLK_AVC_ME_MINOR_8x8_INTEL 0x0
-#define CLK_AVC_ME_MINOR_8x4_INTEL 0x1
-#define CLK_AVC_ME_MINOR_4x8_INTEL 0x2
-#define CLK_AVC_ME_MINOR_4x4_INTEL 0x3
-
-#define CLK_AVC_ME_MAJOR_FORWARD_INTEL 0x0
-#define CLK_AVC_ME_MAJOR_BACKWARD_INTEL 0x1
-#define CLK_AVC_ME_MAJOR_BIDIRECTIONAL_INTEL 0x2
-
-#define CLK_AVC_ME_PARTITION_MASK_ALL_INTEL 0x0
-#define CLK_AVC_ME_PARTITION_MASK_16x16_INTEL 0x7E
-#define CLK_AVC_ME_PARTITION_MASK_16x8_INTEL 0x7D
-#define CLK_AVC_ME_PARTITION_MASK_8x16_INTEL 0x7B
-#define CLK_AVC_ME_PARTITION_MASK_8x8_INTEL 0x77
-#define CLK_AVC_ME_PARTITION_MASK_8x4_INTEL 0x6F
-#define CLK_AVC_ME_PARTITION_MASK_4x8_INTEL 0x5F
-#define CLK_AVC_ME_PARTITION_MASK_4x4_INTEL 0x3F
-
-#define CLK_AVC_ME_SLICE_TYPE_PRED_INTEL 0x0
-#define CLK_AVC_ME_SLICE_TYPE_BPRED_INTEL 0x1
-#define CLK_AVC_ME_SLICE_TYPE_INTRA_INTEL 0x2
-
-#define CLK_AVC_ME_SEARCH_WINDOW_EXHAUSTIVE_INTEL 0x0
-#define CLK_AVC_ME_SEARCH_WINDOW_SMALL_INTEL 0x1
-#define CLK_AVC_ME_SEARCH_WINDOW_TINY_INTEL 0x2
-#define CLK_AVC_ME_SEARCH_WINDOW_EXTRA_TINY_INTEL 0x3
-#define CLK_AVC_ME_SEARCH_WINDOW_DIAMOND_INTEL 0x4
-#define CLK_AVC_ME_SEARCH_WINDOW_LARGE_DIAMOND_INTEL 0x5
-#define CLK_AVC_ME_SEARCH_WINDOW_RESERVED0_INTEL 0x6
-#define CLK_AVC_ME_SEARCH_WINDOW_RESERVED1_INTEL 0x7
-#define CLK_AVC_ME_SEARCH_WINDOW_CUSTOM_INTEL 0x8
-
-#define CLK_AVC_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0
-#define CLK_AVC_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x2
-
-#define CLK_AVC_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0
-#define CLK_AVC_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1
-#define CLK_AVC_ME_SUBPIXEL_MODE_QPEL_INTEL 0x3
-
-#define CLK_AVC_ME_COST_PRECISION_QPEL_INTEL 0x0
-#define CLK_AVC_ME_COST_PRECISION_HPEL_INTEL 0x1
-#define CLK_AVC_ME_COST_PRECISION_PEL_INTEL 0x2
-#define CLK_AVC_ME_COST_PRECISION_DPEL_INTEL 0x3
-
-#define CLK_AVC_ME_BIDIR_WEIGHT_QUARTER_INTEL 0x10
-#define CLK_AVC_ME_BIDIR_WEIGHT_THIRD_INTEL 0x15
-#define CLK_AVC_ME_BIDIR_WEIGHT_HALF_INTEL 0x20
-#define CLK_AVC_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 0x2B
-#define CLK_AVC_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 0x30
-
-#define CLK_AVC_ME_BORDER_REACHED_LEFT_INTEL 0x0
-#define CLK_AVC_ME_BORDER_REACHED_RIGHT_INTEL 0x2
-#define CLK_AVC_ME_BORDER_REACHED_TOP_INTEL 0x4
-#define CLK_AVC_ME_BORDER_REACHED_BOTTOM_INTEL 0x8
-
-#define CLK_AVC_ME_INTRA_16x16_INTEL 0x0
-#define CLK_AVC_ME_INTRA_8x8_INTEL 0x1
-#define CLK_AVC_ME_INTRA_4x4_INTEL 0x2
-
-#define CLK_AVC_ME_SKIP_BLOCK_PARTITION_16x16_INTEL 0x0
-#define CLK_AVC_ME_SKIP_BLOCK_PARTITION_8x8_INTEL 0x4000
-
-#define CLK_AVC_ME_SKIP_BLOCK_16x16_FORWARD_ENABLE_INTEL (0x1 << 24)
-#define CLK_AVC_ME_SKIP_BLOCK_16x16_BACKWARD_ENABLE_INTEL (0x2 << 24)
-#define CLK_AVC_ME_SKIP_BLOCK_16x16_DUAL_ENABLE_INTEL (0x3 << 24)
-#define CLK_AVC_ME_SKIP_BLOCK_8x8_FORWARD_ENABLE_INTEL (0x55 << 24)
-#define CLK_AVC_ME_SKIP_BLOCK_8x8_BACKWARD_ENABLE_INTEL (0xAA << 24)
-#define CLK_AVC_ME_SKIP_BLOCK_8x8_DUAL_ENABLE_INTEL (0xFF << 24)
-#define CLK_AVC_ME_SKIP_BLOCK_8x8_0_FORWARD_ENABLE_INTEL (0x1 << 24)
-#define CLK_AVC_ME_SKIP_BLOCK_8x8_0_BACKWARD_ENABLE_INTEL (0x2 << 24)
-#define CLK_AVC_ME_SKIP_BLOCK_8x8_1_FORWARD_ENABLE_INTEL (0x1 << 26)
-#define CLK_AVC_ME_SKIP_BLOCK_8x8_1_BACKWARD_ENABLE_INTEL (0x2 << 26)
-#define CLK_AVC_ME_SKIP_BLOCK_8x8_2_FORWARD_ENABLE_INTEL (0x1 << 28)
-#define CLK_AVC_ME_SKIP_BLOCK_8x8_2_BACKWARD_ENABLE_INTEL (0x2 << 28)
-#define CLK_AVC_ME_SKIP_BLOCK_8x8_3_FORWARD_ENABLE_INTEL (0x1 << 30)
-#define CLK_AVC_ME_SKIP_BLOCK_8x8_3_BACKWARD_ENABLE_INTEL (0x2 << 30)
-
-#define CLK_AVC_ME_BLOCK_BASED_SKIP_4x4_INTEL 0x00
-#define CLK_AVC_ME_BLOCK_BASED_SKIP_8x8_INTEL 0x80
-
-#define CLK_AVC_ME_INTRA_LUMA_PARTITION_MASK_ALL_INTEL 0x0
-#define CLK_AVC_ME_INTRA_LUMA_PARTITION_MASK_16x16_INTEL 0x6
-#define CLK_AVC_ME_INTRA_LUMA_PARTITION_MASK_8x8_INTEL 0x5
-#define CLK_AVC_ME_INTRA_LUMA_PARTITION_MASK_4x4_INTEL 0x3
-
-#define CLK_AVC_ME_INTRA_NEIGHBOR_LEFT_MASK_ENABLE_INTEL 0x60
-#define CLK_AVC_ME_INTRA_NEIGHBOR_UPPER_MASK_ENABLE_INTEL 0x10
-#define CLK_AVC_ME_INTRA_NEIGHBOR_UPPER_RIGHT_MASK_ENABLE_INTEL 0x8
-#define CLK_AVC_ME_INTRA_NEIGHBOR_UPPER_LEFT_MASK_ENABLE_INTEL 0x4
-
-#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0
-#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1
-#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2
-#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3
-#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4
-#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4
-#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5
-#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6
-#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7
-#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8
-#define CLK_AVC_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0
-#define CLK_AVC_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1
-#define CLK_AVC_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2
-#define CLK_AVC_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3
-
-#define CLK_AVC_ME_FRAME_FORWARD_INTEL 0x1
-#define CLK_AVC_ME_FRAME_BACKWARD_INTEL 0x2
-#define CLK_AVC_ME_FRAME_DUAL_INTEL 0x3
-
-#define CLK_AVC_ME_INTERLACED_SCAN_TOP_FIELD_INTEL 0x0
-#define CLK_AVC_ME_INTERLACED_SCAN_BOTTOM_FIELD_INTEL 0x1
-
-#define CLK_AVC_ME_INITIALIZE_INTEL 0x0
-
-#define CLK_AVC_IME_PAYLOAD_INITIALIZE_INTEL 0x0
-#define CLK_AVC_REF_PAYLOAD_INITIALIZE_INTEL 0x0
-#define CLK_AVC_SIC_PAYLOAD_INITIALIZE_INTEL 0x0
-
-#define CLK_AVC_IME_RESULT_INITIALIZE_INTEL 0x0
-#define CLK_AVC_REF_RESULT_INITIALIZE_INTEL 0x0
-#define CLK_AVC_SIC_RESULT_INITIALIZE_INTEL 0x0
-
-#define CLK_AVC_IME_RESULT_SINGLE_REFERENCE_STREAMOUT_INITIALIZE_INTEL 0x0
-#define CLK_AVC_IME_RESULT_SINGLE_REFERENCE_STREAMIN_INITIALIZE_INTEL 0x0
-#define CLK_AVC_IME_RESULT_DUAL_REFERENCE_STREAMOUT_INITIALIZE_INTEL 0x0
-#define CLK_AVC_IME_RESULT_DUAL_REFERENCE_STREAMIN_INITIALIZE_INTEL 0x0
-
-#endif // cl_intel_device_side_avc_motion_estimation
-
-// Disable any extensions we may have enabled previously.
-#pragma OPENCL EXTENSION all : disable
-
-#endif //_OPENCL_BASE_H_
diff --git a/linux-x86/lib64/clang/14.0.1/include/opencl-c.h b/linux-x86/lib64/clang/14.0.1/include/opencl-c.h
deleted file mode 100644
index bb3ca6a..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/opencl-c.h
+++ /dev/null
@@ -1,18123 +0,0 @@
-//===--- opencl-c.h - OpenCL C language builtin function header -----------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _OPENCL_H_
-#define _OPENCL_H_
-
-#include "opencl-c-base.h"
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-#ifndef cl_khr_depth_images
-#define cl_khr_depth_images
-#endif //cl_khr_depth_images
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-#if __OPENCL_C_VERSION__ < CL_VERSION_2_0
-#ifdef cl_khr_3d_image_writes
-#pragma OPENCL EXTENSION cl_khr_3d_image_writes : enable
-#endif //cl_khr_3d_image_writes
-#endif //__OPENCL_C_VERSION__ < CL_VERSION_2_0
-
-
-#if (defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) && defined(__SPIR__)
-#pragma OPENCL EXTENSION cl_intel_planar_yuv : begin
-#pragma OPENCL EXTENSION cl_intel_planar_yuv : end
-#endif // (defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) && defined(__SPIR__)
-
-#define __ovld __attribute__((overloadable))
-#define __conv __attribute__((convergent))
-
-// Optimizations
-#define __purefn __attribute__((pure))
-#define __cnfn __attribute__((const))
-
-
-// OpenCL v1.1/1.2/2.0 s6.2.3 - Explicit conversions
-
-char __ovld __cnfn convert_char_rte(char);
-char __ovld __cnfn convert_char_sat_rte(char);
-char __ovld __cnfn convert_char_rtz(char);
-char __ovld __cnfn convert_char_sat_rtz(char);
-char __ovld __cnfn convert_char_rtp(char);
-char __ovld __cnfn convert_char_sat_rtp(char);
-char __ovld __cnfn convert_char_rtn(char);
-char __ovld __cnfn convert_char_sat_rtn(char);
-char __ovld __cnfn convert_char(char);
-char __ovld __cnfn convert_char_sat(char);
-char __ovld __cnfn convert_char_rte(uchar);
-char __ovld __cnfn convert_char_sat_rte(uchar);
-char __ovld __cnfn convert_char_rtz(uchar);
-char __ovld __cnfn convert_char_sat_rtz(uchar);
-char __ovld __cnfn convert_char_rtp(uchar);
-char __ovld __cnfn convert_char_sat_rtp(uchar);
-char __ovld __cnfn convert_char_rtn(uchar);
-char __ovld __cnfn convert_char_sat_rtn(uchar);
-char __ovld __cnfn convert_char(uchar);
-char __ovld __cnfn convert_char_sat(uchar);
-char __ovld __cnfn convert_char_rte(short);
-char __ovld __cnfn convert_char_sat_rte(short);
-char __ovld __cnfn convert_char_rtz(short);
-char __ovld __cnfn convert_char_sat_rtz(short);
-char __ovld __cnfn convert_char_rtp(short);
-char __ovld __cnfn convert_char_sat_rtp(short);
-char __ovld __cnfn convert_char_rtn(short);
-char __ovld __cnfn convert_char_sat_rtn(short);
-char __ovld __cnfn convert_char(short);
-char __ovld __cnfn convert_char_sat(short);
-char __ovld __cnfn convert_char_rte(ushort);
-char __ovld __cnfn convert_char_sat_rte(ushort);
-char __ovld __cnfn convert_char_rtz(ushort);
-char __ovld __cnfn convert_char_sat_rtz(ushort);
-char __ovld __cnfn convert_char_rtp(ushort);
-char __ovld __cnfn convert_char_sat_rtp(ushort);
-char __ovld __cnfn convert_char_rtn(ushort);
-char __ovld __cnfn convert_char_sat_rtn(ushort);
-char __ovld __cnfn convert_char(ushort);
-char __ovld __cnfn convert_char_sat(ushort);
-char __ovld __cnfn convert_char_rte(int);
-char __ovld __cnfn convert_char_sat_rte(int);
-char __ovld __cnfn convert_char_rtz(int);
-char __ovld __cnfn convert_char_sat_rtz(int);
-char __ovld __cnfn convert_char_rtp(int);
-char __ovld __cnfn convert_char_sat_rtp(int);
-char __ovld __cnfn convert_char_rtn(int);
-char __ovld __cnfn convert_char_sat_rtn(int);
-char __ovld __cnfn convert_char(int);
-char __ovld __cnfn convert_char_sat(int);
-char __ovld __cnfn convert_char_rte(uint);
-char __ovld __cnfn convert_char_sat_rte(uint);
-char __ovld __cnfn convert_char_rtz(uint);
-char __ovld __cnfn convert_char_sat_rtz(uint);
-char __ovld __cnfn convert_char_rtp(uint);
-char __ovld __cnfn convert_char_sat_rtp(uint);
-char __ovld __cnfn convert_char_rtn(uint);
-char __ovld __cnfn convert_char_sat_rtn(uint);
-char __ovld __cnfn convert_char(uint);
-char __ovld __cnfn convert_char_sat(uint);
-char __ovld __cnfn convert_char_rte(long);
-char __ovld __cnfn convert_char_sat_rte(long);
-char __ovld __cnfn convert_char_rtz(long);
-char __ovld __cnfn convert_char_sat_rtz(long);
-char __ovld __cnfn convert_char_rtp(long);
-char __ovld __cnfn convert_char_sat_rtp(long);
-char __ovld __cnfn convert_char_rtn(long);
-char __ovld __cnfn convert_char_sat_rtn(long);
-char __ovld __cnfn convert_char(long);
-char __ovld __cnfn convert_char_sat(long);
-char __ovld __cnfn convert_char_rte(ulong);
-char __ovld __cnfn convert_char_sat_rte(ulong);
-char __ovld __cnfn convert_char_rtz(ulong);
-char __ovld __cnfn convert_char_sat_rtz(ulong);
-char __ovld __cnfn convert_char_rtp(ulong);
-char __ovld __cnfn convert_char_sat_rtp(ulong);
-char __ovld __cnfn convert_char_rtn(ulong);
-char __ovld __cnfn convert_char_sat_rtn(ulong);
-char __ovld __cnfn convert_char(ulong);
-char __ovld __cnfn convert_char_sat(ulong);
-char __ovld __cnfn convert_char_rte(float);
-char __ovld __cnfn convert_char_sat_rte(float);
-char __ovld __cnfn convert_char_rtz(float);
-char __ovld __cnfn convert_char_sat_rtz(float);
-char __ovld __cnfn convert_char_rtp(float);
-char __ovld __cnfn convert_char_sat_rtp(float);
-char __ovld __cnfn convert_char_rtn(float);
-char __ovld __cnfn convert_char_sat_rtn(float);
-char __ovld __cnfn convert_char(float);
-char __ovld __cnfn convert_char_sat(float);
-uchar __ovld __cnfn convert_uchar_rte(char);
-uchar __ovld __cnfn convert_uchar_sat_rte(char);
-uchar __ovld __cnfn convert_uchar_rtz(char);
-uchar __ovld __cnfn convert_uchar_sat_rtz(char);
-uchar __ovld __cnfn convert_uchar_rtp(char);
-uchar __ovld __cnfn convert_uchar_sat_rtp(char);
-uchar __ovld __cnfn convert_uchar_rtn(char);
-uchar __ovld __cnfn convert_uchar_sat_rtn(char);
-uchar __ovld __cnfn convert_uchar(char);
-uchar __ovld __cnfn convert_uchar_sat(char);
-uchar __ovld __cnfn convert_uchar_rte(uchar);
-uchar __ovld __cnfn convert_uchar_sat_rte(uchar);
-uchar __ovld __cnfn convert_uchar_rtz(uchar);
-uchar __ovld __cnfn convert_uchar_sat_rtz(uchar);
-uchar __ovld __cnfn convert_uchar_rtp(uchar);
-uchar __ovld __cnfn convert_uchar_sat_rtp(uchar);
-uchar __ovld __cnfn convert_uchar_rtn(uchar);
-uchar __ovld __cnfn convert_uchar_sat_rtn(uchar);
-uchar __ovld __cnfn convert_uchar(uchar);
-uchar __ovld __cnfn convert_uchar_sat(uchar);
-uchar __ovld __cnfn convert_uchar_rte(short);
-uchar __ovld __cnfn convert_uchar_sat_rte(short);
-uchar __ovld __cnfn convert_uchar_rtz(short);
-uchar __ovld __cnfn convert_uchar_sat_rtz(short);
-uchar __ovld __cnfn convert_uchar_rtp(short);
-uchar __ovld __cnfn convert_uchar_sat_rtp(short);
-uchar __ovld __cnfn convert_uchar_rtn(short);
-uchar __ovld __cnfn convert_uchar_sat_rtn(short);
-uchar __ovld __cnfn convert_uchar(short);
-uchar __ovld __cnfn convert_uchar_sat(short);
-uchar __ovld __cnfn convert_uchar_rte(ushort);
-uchar __ovld __cnfn convert_uchar_sat_rte(ushort);
-uchar __ovld __cnfn convert_uchar_rtz(ushort);
-uchar __ovld __cnfn convert_uchar_sat_rtz(ushort);
-uchar __ovld __cnfn convert_uchar_rtp(ushort);
-uchar __ovld __cnfn convert_uchar_sat_rtp(ushort);
-uchar __ovld __cnfn convert_uchar_rtn(ushort);
-uchar __ovld __cnfn convert_uchar_sat_rtn(ushort);
-uchar __ovld __cnfn convert_uchar(ushort);
-uchar __ovld __cnfn convert_uchar_sat(ushort);
-uchar __ovld __cnfn convert_uchar_rte(int);
-uchar __ovld __cnfn convert_uchar_sat_rte(int);
-uchar __ovld __cnfn convert_uchar_rtz(int);
-uchar __ovld __cnfn convert_uchar_sat_rtz(int);
-uchar __ovld __cnfn convert_uchar_rtp(int);
-uchar __ovld __cnfn convert_uchar_sat_rtp(int);
-uchar __ovld __cnfn convert_uchar_rtn(int);
-uchar __ovld __cnfn convert_uchar_sat_rtn(int);
-uchar __ovld __cnfn convert_uchar(int);
-uchar __ovld __cnfn convert_uchar_sat(int);
-uchar __ovld __cnfn convert_uchar_rte(uint);
-uchar __ovld __cnfn convert_uchar_sat_rte(uint);
-uchar __ovld __cnfn convert_uchar_rtz(uint);
-uchar __ovld __cnfn convert_uchar_sat_rtz(uint);
-uchar __ovld __cnfn convert_uchar_rtp(uint);
-uchar __ovld __cnfn convert_uchar_sat_rtp(uint);
-uchar __ovld __cnfn convert_uchar_rtn(uint);
-uchar __ovld __cnfn convert_uchar_sat_rtn(uint);
-uchar __ovld __cnfn convert_uchar(uint);
-uchar __ovld __cnfn convert_uchar_sat(uint);
-uchar __ovld __cnfn convert_uchar_rte(long);
-uchar __ovld __cnfn convert_uchar_sat_rte(long);
-uchar __ovld __cnfn convert_uchar_rtz(long);
-uchar __ovld __cnfn convert_uchar_sat_rtz(long);
-uchar __ovld __cnfn convert_uchar_rtp(long);
-uchar __ovld __cnfn convert_uchar_sat_rtp(long);
-uchar __ovld __cnfn convert_uchar_rtn(long);
-uchar __ovld __cnfn convert_uchar_sat_rtn(long);
-uchar __ovld __cnfn convert_uchar(long);
-uchar __ovld __cnfn convert_uchar_sat(long);
-uchar __ovld __cnfn convert_uchar_rte(ulong);
-uchar __ovld __cnfn convert_uchar_sat_rte(ulong);
-uchar __ovld __cnfn convert_uchar_rtz(ulong);
-uchar __ovld __cnfn convert_uchar_sat_rtz(ulong);
-uchar __ovld __cnfn convert_uchar_rtp(ulong);
-uchar __ovld __cnfn convert_uchar_sat_rtp(ulong);
-uchar __ovld __cnfn convert_uchar_rtn(ulong);
-uchar __ovld __cnfn convert_uchar_sat_rtn(ulong);
-uchar __ovld __cnfn convert_uchar(ulong);
-uchar __ovld __cnfn convert_uchar_sat(ulong);
-uchar __ovld __cnfn convert_uchar_rte(float);
-uchar __ovld __cnfn convert_uchar_sat_rte(float);
-uchar __ovld __cnfn convert_uchar_rtz(float);
-uchar __ovld __cnfn convert_uchar_sat_rtz(float);
-uchar __ovld __cnfn convert_uchar_rtp(float);
-uchar __ovld __cnfn convert_uchar_sat_rtp(float);
-uchar __ovld __cnfn convert_uchar_rtn(float);
-uchar __ovld __cnfn convert_uchar_sat_rtn(float);
-uchar __ovld __cnfn convert_uchar(float);
-uchar __ovld __cnfn convert_uchar_sat(float);
-
-short __ovld __cnfn convert_short_rte(char);
-short __ovld __cnfn convert_short_sat_rte(char);
-short __ovld __cnfn convert_short_rtz(char);
-short __ovld __cnfn convert_short_sat_rtz(char);
-short __ovld __cnfn convert_short_rtp(char);
-short __ovld __cnfn convert_short_sat_rtp(char);
-short __ovld __cnfn convert_short_rtn(char);
-short __ovld __cnfn convert_short_sat_rtn(char);
-short __ovld __cnfn convert_short(char);
-short __ovld __cnfn convert_short_sat(char);
-short __ovld __cnfn convert_short_rte(uchar);
-short __ovld __cnfn convert_short_sat_rte(uchar);
-short __ovld __cnfn convert_short_rtz(uchar);
-short __ovld __cnfn convert_short_sat_rtz(uchar);
-short __ovld __cnfn convert_short_rtp(uchar);
-short __ovld __cnfn convert_short_sat_rtp(uchar);
-short __ovld __cnfn convert_short_rtn(uchar);
-short __ovld __cnfn convert_short_sat_rtn(uchar);
-short __ovld __cnfn convert_short(uchar);
-short __ovld __cnfn convert_short_sat(uchar);
-short __ovld __cnfn convert_short_rte(short);
-short __ovld __cnfn convert_short_sat_rte(short);
-short __ovld __cnfn convert_short_rtz(short);
-short __ovld __cnfn convert_short_sat_rtz(short);
-short __ovld __cnfn convert_short_rtp(short);
-short __ovld __cnfn convert_short_sat_rtp(short);
-short __ovld __cnfn convert_short_rtn(short);
-short __ovld __cnfn convert_short_sat_rtn(short);
-short __ovld __cnfn convert_short(short);
-short __ovld __cnfn convert_short_sat(short);
-short __ovld __cnfn convert_short_rte(ushort);
-short __ovld __cnfn convert_short_sat_rte(ushort);
-short __ovld __cnfn convert_short_rtz(ushort);
-short __ovld __cnfn convert_short_sat_rtz(ushort);
-short __ovld __cnfn convert_short_rtp(ushort);
-short __ovld __cnfn convert_short_sat_rtp(ushort);
-short __ovld __cnfn convert_short_rtn(ushort);
-short __ovld __cnfn convert_short_sat_rtn(ushort);
-short __ovld __cnfn convert_short(ushort);
-short __ovld __cnfn convert_short_sat(ushort);
-short __ovld __cnfn convert_short_rte(int);
-short __ovld __cnfn convert_short_sat_rte(int);
-short __ovld __cnfn convert_short_rtz(int);
-short __ovld __cnfn convert_short_sat_rtz(int);
-short __ovld __cnfn convert_short_rtp(int);
-short __ovld __cnfn convert_short_sat_rtp(int);
-short __ovld __cnfn convert_short_rtn(int);
-short __ovld __cnfn convert_short_sat_rtn(int);
-short __ovld __cnfn convert_short(int);
-short __ovld __cnfn convert_short_sat(int);
-short __ovld __cnfn convert_short_rte(uint);
-short __ovld __cnfn convert_short_sat_rte(uint);
-short __ovld __cnfn convert_short_rtz(uint);
-short __ovld __cnfn convert_short_sat_rtz(uint);
-short __ovld __cnfn convert_short_rtp(uint);
-short __ovld __cnfn convert_short_sat_rtp(uint);
-short __ovld __cnfn convert_short_rtn(uint);
-short __ovld __cnfn convert_short_sat_rtn(uint);
-short __ovld __cnfn convert_short(uint);
-short __ovld __cnfn convert_short_sat(uint);
-short __ovld __cnfn convert_short_rte(long);
-short __ovld __cnfn convert_short_sat_rte(long);
-short __ovld __cnfn convert_short_rtz(long);
-short __ovld __cnfn convert_short_sat_rtz(long);
-short __ovld __cnfn convert_short_rtp(long);
-short __ovld __cnfn convert_short_sat_rtp(long);
-short __ovld __cnfn convert_short_rtn(long);
-short __ovld __cnfn convert_short_sat_rtn(long);
-short __ovld __cnfn convert_short(long);
-short __ovld __cnfn convert_short_sat(long);
-short __ovld __cnfn convert_short_rte(ulong);
-short __ovld __cnfn convert_short_sat_rte(ulong);
-short __ovld __cnfn convert_short_rtz(ulong);
-short __ovld __cnfn convert_short_sat_rtz(ulong);
-short __ovld __cnfn convert_short_rtp(ulong);
-short __ovld __cnfn convert_short_sat_rtp(ulong);
-short __ovld __cnfn convert_short_rtn(ulong);
-short __ovld __cnfn convert_short_sat_rtn(ulong);
-short __ovld __cnfn convert_short(ulong);
-short __ovld __cnfn convert_short_sat(ulong);
-short __ovld __cnfn convert_short_rte(float);
-short __ovld __cnfn convert_short_sat_rte(float);
-short __ovld __cnfn convert_short_rtz(float);
-short __ovld __cnfn convert_short_sat_rtz(float);
-short __ovld __cnfn convert_short_rtp(float);
-short __ovld __cnfn convert_short_sat_rtp(float);
-short __ovld __cnfn convert_short_rtn(float);
-short __ovld __cnfn convert_short_sat_rtn(float);
-short __ovld __cnfn convert_short(float);
-short __ovld __cnfn convert_short_sat(float);
-ushort __ovld __cnfn convert_ushort_rte(char);
-ushort __ovld __cnfn convert_ushort_sat_rte(char);
-ushort __ovld __cnfn convert_ushort_rtz(char);
-ushort __ovld __cnfn convert_ushort_sat_rtz(char);
-ushort __ovld __cnfn convert_ushort_rtp(char);
-ushort __ovld __cnfn convert_ushort_sat_rtp(char);
-ushort __ovld __cnfn convert_ushort_rtn(char);
-ushort __ovld __cnfn convert_ushort_sat_rtn(char);
-ushort __ovld __cnfn convert_ushort(char);
-ushort __ovld __cnfn convert_ushort_sat(char);
-ushort __ovld __cnfn convert_ushort_rte(uchar);
-ushort __ovld __cnfn convert_ushort_sat_rte(uchar);
-ushort __ovld __cnfn convert_ushort_rtz(uchar);
-ushort __ovld __cnfn convert_ushort_sat_rtz(uchar);
-ushort __ovld __cnfn convert_ushort_rtp(uchar);
-ushort __ovld __cnfn convert_ushort_sat_rtp(uchar);
-ushort __ovld __cnfn convert_ushort_rtn(uchar);
-ushort __ovld __cnfn convert_ushort_sat_rtn(uchar);
-ushort __ovld __cnfn convert_ushort(uchar);
-ushort __ovld __cnfn convert_ushort_sat(uchar);
-ushort __ovld __cnfn convert_ushort_rte(short);
-ushort __ovld __cnfn convert_ushort_sat_rte(short);
-ushort __ovld __cnfn convert_ushort_rtz(short);
-ushort __ovld __cnfn convert_ushort_sat_rtz(short);
-ushort __ovld __cnfn convert_ushort_rtp(short);
-ushort __ovld __cnfn convert_ushort_sat_rtp(short);
-ushort __ovld __cnfn convert_ushort_rtn(short);
-ushort __ovld __cnfn convert_ushort_sat_rtn(short);
-ushort __ovld __cnfn convert_ushort(short);
-ushort __ovld __cnfn convert_ushort_sat(short);
-ushort __ovld __cnfn convert_ushort_rte(ushort);
-ushort __ovld __cnfn convert_ushort_sat_rte(ushort);
-ushort __ovld __cnfn convert_ushort_rtz(ushort);
-ushort __ovld __cnfn convert_ushort_sat_rtz(ushort);
-ushort __ovld __cnfn convert_ushort_rtp(ushort);
-ushort __ovld __cnfn convert_ushort_sat_rtp(ushort);
-ushort __ovld __cnfn convert_ushort_rtn(ushort);
-ushort __ovld __cnfn convert_ushort_sat_rtn(ushort);
-ushort __ovld __cnfn convert_ushort(ushort);
-ushort __ovld __cnfn convert_ushort_sat(ushort);
-ushort __ovld __cnfn convert_ushort_rte(int);
-ushort __ovld __cnfn convert_ushort_sat_rte(int);
-ushort __ovld __cnfn convert_ushort_rtz(int);
-ushort __ovld __cnfn convert_ushort_sat_rtz(int);
-ushort __ovld __cnfn convert_ushort_rtp(int);
-ushort __ovld __cnfn convert_ushort_sat_rtp(int);
-ushort __ovld __cnfn convert_ushort_rtn(int);
-ushort __ovld __cnfn convert_ushort_sat_rtn(int);
-ushort __ovld __cnfn convert_ushort(int);
-ushort __ovld __cnfn convert_ushort_sat(int);
-ushort __ovld __cnfn convert_ushort_rte(uint);
-ushort __ovld __cnfn convert_ushort_sat_rte(uint);
-ushort __ovld __cnfn convert_ushort_rtz(uint);
-ushort __ovld __cnfn convert_ushort_sat_rtz(uint);
-ushort __ovld __cnfn convert_ushort_rtp(uint);
-ushort __ovld __cnfn convert_ushort_sat_rtp(uint);
-ushort __ovld __cnfn convert_ushort_rtn(uint);
-ushort __ovld __cnfn convert_ushort_sat_rtn(uint);
-ushort __ovld __cnfn convert_ushort(uint);
-ushort __ovld __cnfn convert_ushort_sat(uint);
-ushort __ovld __cnfn convert_ushort_rte(long);
-ushort __ovld __cnfn convert_ushort_sat_rte(long);
-ushort __ovld __cnfn convert_ushort_rtz(long);
-ushort __ovld __cnfn convert_ushort_sat_rtz(long);
-ushort __ovld __cnfn convert_ushort_rtp(long);
-ushort __ovld __cnfn convert_ushort_sat_rtp(long);
-ushort __ovld __cnfn convert_ushort_rtn(long);
-ushort __ovld __cnfn convert_ushort_sat_rtn(long);
-ushort __ovld __cnfn convert_ushort(long);
-ushort __ovld __cnfn convert_ushort_sat(long);
-ushort __ovld __cnfn convert_ushort_rte(ulong);
-ushort __ovld __cnfn convert_ushort_sat_rte(ulong);
-ushort __ovld __cnfn convert_ushort_rtz(ulong);
-ushort __ovld __cnfn convert_ushort_sat_rtz(ulong);
-ushort __ovld __cnfn convert_ushort_rtp(ulong);
-ushort __ovld __cnfn convert_ushort_sat_rtp(ulong);
-ushort __ovld __cnfn convert_ushort_rtn(ulong);
-ushort __ovld __cnfn convert_ushort_sat_rtn(ulong);
-ushort __ovld __cnfn convert_ushort(ulong);
-ushort __ovld __cnfn convert_ushort_sat(ulong);
-ushort __ovld __cnfn convert_ushort_rte(float);
-ushort __ovld __cnfn convert_ushort_sat_rte(float);
-ushort __ovld __cnfn convert_ushort_rtz(float);
-ushort __ovld __cnfn convert_ushort_sat_rtz(float);
-ushort __ovld __cnfn convert_ushort_rtp(float);
-ushort __ovld __cnfn convert_ushort_sat_rtp(float);
-ushort __ovld __cnfn convert_ushort_rtn(float);
-ushort __ovld __cnfn convert_ushort_sat_rtn(float);
-ushort __ovld __cnfn convert_ushort(float);
-ushort __ovld __cnfn convert_ushort_sat(float);
-int __ovld __cnfn convert_int_rte(char);
-int __ovld __cnfn convert_int_sat_rte(char);
-int __ovld __cnfn convert_int_rtz(char);
-int __ovld __cnfn convert_int_sat_rtz(char);
-int __ovld __cnfn convert_int_rtp(char);
-int __ovld __cnfn convert_int_sat_rtp(char);
-int __ovld __cnfn convert_int_rtn(char);
-int __ovld __cnfn convert_int_sat_rtn(char);
-int __ovld __cnfn convert_int(char);
-int __ovld __cnfn convert_int_sat(char);
-int __ovld __cnfn convert_int_rte(uchar);
-int __ovld __cnfn convert_int_sat_rte(uchar);
-int __ovld __cnfn convert_int_rtz(uchar);
-int __ovld __cnfn convert_int_sat_rtz(uchar);
-int __ovld __cnfn convert_int_rtp(uchar);
-int __ovld __cnfn convert_int_sat_rtp(uchar);
-int __ovld __cnfn convert_int_rtn(uchar);
-int __ovld __cnfn convert_int_sat_rtn(uchar);
-int __ovld __cnfn convert_int(uchar);
-int __ovld __cnfn convert_int_sat(uchar);
-int __ovld __cnfn convert_int_rte(short);
-int __ovld __cnfn convert_int_sat_rte(short);
-int __ovld __cnfn convert_int_rtz(short);
-int __ovld __cnfn convert_int_sat_rtz(short);
-int __ovld __cnfn convert_int_rtp(short);
-int __ovld __cnfn convert_int_sat_rtp(short);
-int __ovld __cnfn convert_int_rtn(short);
-int __ovld __cnfn convert_int_sat_rtn(short);
-int __ovld __cnfn convert_int(short);
-int __ovld __cnfn convert_int_sat(short);
-int __ovld __cnfn convert_int_rte(ushort);
-int __ovld __cnfn convert_int_sat_rte(ushort);
-int __ovld __cnfn convert_int_rtz(ushort);
-int __ovld __cnfn convert_int_sat_rtz(ushort);
-int __ovld __cnfn convert_int_rtp(ushort);
-int __ovld __cnfn convert_int_sat_rtp(ushort);
-int __ovld __cnfn convert_int_rtn(ushort);
-int __ovld __cnfn convert_int_sat_rtn(ushort);
-int __ovld __cnfn convert_int(ushort);
-int __ovld __cnfn convert_int_sat(ushort);
-int __ovld __cnfn convert_int_rte(int);
-int __ovld __cnfn convert_int_sat_rte(int);
-int __ovld __cnfn convert_int_rtz(int);
-int __ovld __cnfn convert_int_sat_rtz(int);
-int __ovld __cnfn convert_int_rtp(int);
-int __ovld __cnfn convert_int_sat_rtp(int);
-int __ovld __cnfn convert_int_rtn(int);
-int __ovld __cnfn convert_int_sat_rtn(int);
-int __ovld __cnfn convert_int(int);
-int __ovld __cnfn convert_int_sat(int);
-int __ovld __cnfn convert_int_rte(uint);
-int __ovld __cnfn convert_int_sat_rte(uint);
-int __ovld __cnfn convert_int_rtz(uint);
-int __ovld __cnfn convert_int_sat_rtz(uint);
-int __ovld __cnfn convert_int_rtp(uint);
-int __ovld __cnfn convert_int_sat_rtp(uint);
-int __ovld __cnfn convert_int_rtn(uint);
-int __ovld __cnfn convert_int_sat_rtn(uint);
-int __ovld __cnfn convert_int(uint);
-int __ovld __cnfn convert_int_sat(uint);
-int __ovld __cnfn convert_int_rte(long);
-int __ovld __cnfn convert_int_sat_rte(long);
-int __ovld __cnfn convert_int_rtz(long);
-int __ovld __cnfn convert_int_sat_rtz(long);
-int __ovld __cnfn convert_int_rtp(long);
-int __ovld __cnfn convert_int_sat_rtp(long);
-int __ovld __cnfn convert_int_rtn(long);
-int __ovld __cnfn convert_int_sat_rtn(long);
-int __ovld __cnfn convert_int(long);
-int __ovld __cnfn convert_int_sat(long);
-int __ovld __cnfn convert_int_rte(ulong);
-int __ovld __cnfn convert_int_sat_rte(ulong);
-int __ovld __cnfn convert_int_rtz(ulong);
-int __ovld __cnfn convert_int_sat_rtz(ulong);
-int __ovld __cnfn convert_int_rtp(ulong);
-int __ovld __cnfn convert_int_sat_rtp(ulong);
-int __ovld __cnfn convert_int_rtn(ulong);
-int __ovld __cnfn convert_int_sat_rtn(ulong);
-int __ovld __cnfn convert_int(ulong);
-int __ovld __cnfn convert_int_sat(ulong);
-int __ovld __cnfn convert_int_rte(float);
-int __ovld __cnfn convert_int_sat_rte(float);
-int __ovld __cnfn convert_int_rtz(float);
-int __ovld __cnfn convert_int_sat_rtz(float);
-int __ovld __cnfn convert_int_rtp(float);
-int __ovld __cnfn convert_int_sat_rtp(float);
-int __ovld __cnfn convert_int_rtn(float);
-int __ovld __cnfn convert_int_sat_rtn(float);
-int __ovld __cnfn convert_int(float);
-int __ovld __cnfn convert_int_sat(float);
-uint __ovld __cnfn convert_uint_rte(char);
-uint __ovld __cnfn convert_uint_sat_rte(char);
-uint __ovld __cnfn convert_uint_rtz(char);
-uint __ovld __cnfn convert_uint_sat_rtz(char);
-uint __ovld __cnfn convert_uint_rtp(char);
-uint __ovld __cnfn convert_uint_sat_rtp(char);
-uint __ovld __cnfn convert_uint_rtn(char);
-uint __ovld __cnfn convert_uint_sat_rtn(char);
-uint __ovld __cnfn convert_uint(char);
-uint __ovld __cnfn convert_uint_sat(char);
-uint __ovld __cnfn convert_uint_rte(uchar);
-uint __ovld __cnfn convert_uint_sat_rte(uchar);
-uint __ovld __cnfn convert_uint_rtz(uchar);
-uint __ovld __cnfn convert_uint_sat_rtz(uchar);
-uint __ovld __cnfn convert_uint_rtp(uchar);
-uint __ovld __cnfn convert_uint_sat_rtp(uchar);
-uint __ovld __cnfn convert_uint_rtn(uchar);
-uint __ovld __cnfn convert_uint_sat_rtn(uchar);
-uint __ovld __cnfn convert_uint(uchar);
-uint __ovld __cnfn convert_uint_sat(uchar);
-uint __ovld __cnfn convert_uint_rte(short);
-uint __ovld __cnfn convert_uint_sat_rte(short);
-uint __ovld __cnfn convert_uint_rtz(short);
-uint __ovld __cnfn convert_uint_sat_rtz(short);
-uint __ovld __cnfn convert_uint_rtp(short);
-uint __ovld __cnfn convert_uint_sat_rtp(short);
-uint __ovld __cnfn convert_uint_rtn(short);
-uint __ovld __cnfn convert_uint_sat_rtn(short);
-uint __ovld __cnfn convert_uint(short);
-uint __ovld __cnfn convert_uint_sat(short);
-uint __ovld __cnfn convert_uint_rte(ushort);
-uint __ovld __cnfn convert_uint_sat_rte(ushort);
-uint __ovld __cnfn convert_uint_rtz(ushort);
-uint __ovld __cnfn convert_uint_sat_rtz(ushort);
-uint __ovld __cnfn convert_uint_rtp(ushort);
-uint __ovld __cnfn convert_uint_sat_rtp(ushort);
-uint __ovld __cnfn convert_uint_rtn(ushort);
-uint __ovld __cnfn convert_uint_sat_rtn(ushort);
-uint __ovld __cnfn convert_uint(ushort);
-uint __ovld __cnfn convert_uint_sat(ushort);
-uint __ovld __cnfn convert_uint_rte(int);
-uint __ovld __cnfn convert_uint_sat_rte(int);
-uint __ovld __cnfn convert_uint_rtz(int);
-uint __ovld __cnfn convert_uint_sat_rtz(int);
-uint __ovld __cnfn convert_uint_rtp(int);
-uint __ovld __cnfn convert_uint_sat_rtp(int);
-uint __ovld __cnfn convert_uint_rtn(int);
-uint __ovld __cnfn convert_uint_sat_rtn(int);
-uint __ovld __cnfn convert_uint(int);
-uint __ovld __cnfn convert_uint_sat(int);
-uint __ovld __cnfn convert_uint_rte(uint);
-uint __ovld __cnfn convert_uint_sat_rte(uint);
-uint __ovld __cnfn convert_uint_rtz(uint);
-uint __ovld __cnfn convert_uint_sat_rtz(uint);
-uint __ovld __cnfn convert_uint_rtp(uint);
-uint __ovld __cnfn convert_uint_sat_rtp(uint);
-uint __ovld __cnfn convert_uint_rtn(uint);
-uint __ovld __cnfn convert_uint_sat_rtn(uint);
-uint __ovld __cnfn convert_uint(uint);
-uint __ovld __cnfn convert_uint_sat(uint);
-uint __ovld __cnfn convert_uint_rte(long);
-uint __ovld __cnfn convert_uint_sat_rte(long);
-uint __ovld __cnfn convert_uint_rtz(long);
-uint __ovld __cnfn convert_uint_sat_rtz(long);
-uint __ovld __cnfn convert_uint_rtp(long);
-uint __ovld __cnfn convert_uint_sat_rtp(long);
-uint __ovld __cnfn convert_uint_rtn(long);
-uint __ovld __cnfn convert_uint_sat_rtn(long);
-uint __ovld __cnfn convert_uint(long);
-uint __ovld __cnfn convert_uint_sat(long);
-uint __ovld __cnfn convert_uint_rte(ulong);
-uint __ovld __cnfn convert_uint_sat_rte(ulong);
-uint __ovld __cnfn convert_uint_rtz(ulong);
-uint __ovld __cnfn convert_uint_sat_rtz(ulong);
-uint __ovld __cnfn convert_uint_rtp(ulong);
-uint __ovld __cnfn convert_uint_sat_rtp(ulong);
-uint __ovld __cnfn convert_uint_rtn(ulong);
-uint __ovld __cnfn convert_uint_sat_rtn(ulong);
-uint __ovld __cnfn convert_uint(ulong);
-uint __ovld __cnfn convert_uint_sat(ulong);
-uint __ovld __cnfn convert_uint_rte(float);
-uint __ovld __cnfn convert_uint_sat_rte(float);
-uint __ovld __cnfn convert_uint_rtz(float);
-uint __ovld __cnfn convert_uint_sat_rtz(float);
-uint __ovld __cnfn convert_uint_rtp(float);
-uint __ovld __cnfn convert_uint_sat_rtp(float);
-uint __ovld __cnfn convert_uint_rtn(float);
-uint __ovld __cnfn convert_uint_sat_rtn(float);
-uint __ovld __cnfn convert_uint(float);
-uint __ovld __cnfn convert_uint_sat(float);
-long __ovld __cnfn convert_long_rte(char);
-long __ovld __cnfn convert_long_sat_rte(char);
-long __ovld __cnfn convert_long_rtz(char);
-long __ovld __cnfn convert_long_sat_rtz(char);
-long __ovld __cnfn convert_long_rtp(char);
-long __ovld __cnfn convert_long_sat_rtp(char);
-long __ovld __cnfn convert_long_rtn(char);
-long __ovld __cnfn convert_long_sat_rtn(char);
-long __ovld __cnfn convert_long(char);
-long __ovld __cnfn convert_long_sat(char);
-long __ovld __cnfn convert_long_rte(uchar);
-long __ovld __cnfn convert_long_sat_rte(uchar);
-long __ovld __cnfn convert_long_rtz(uchar);
-long __ovld __cnfn convert_long_sat_rtz(uchar);
-long __ovld __cnfn convert_long_rtp(uchar);
-long __ovld __cnfn convert_long_sat_rtp(uchar);
-long __ovld __cnfn convert_long_rtn(uchar);
-long __ovld __cnfn convert_long_sat_rtn(uchar);
-long __ovld __cnfn convert_long(uchar);
-long __ovld __cnfn convert_long_sat(uchar);
-long __ovld __cnfn convert_long_rte(short);
-long __ovld __cnfn convert_long_sat_rte(short);
-long __ovld __cnfn convert_long_rtz(short);
-long __ovld __cnfn convert_long_sat_rtz(short);
-long __ovld __cnfn convert_long_rtp(short);
-long __ovld __cnfn convert_long_sat_rtp(short);
-long __ovld __cnfn convert_long_rtn(short);
-long __ovld __cnfn convert_long_sat_rtn(short);
-long __ovld __cnfn convert_long(short);
-long __ovld __cnfn convert_long_sat(short);
-long __ovld __cnfn convert_long_rte(ushort);
-long __ovld __cnfn convert_long_sat_rte(ushort);
-long __ovld __cnfn convert_long_rtz(ushort);
-long __ovld __cnfn convert_long_sat_rtz(ushort);
-long __ovld __cnfn convert_long_rtp(ushort);
-long __ovld __cnfn convert_long_sat_rtp(ushort);
-long __ovld __cnfn convert_long_rtn(ushort);
-long __ovld __cnfn convert_long_sat_rtn(ushort);
-long __ovld __cnfn convert_long(ushort);
-long __ovld __cnfn convert_long_sat(ushort);
-long __ovld __cnfn convert_long_rte(int);
-long __ovld __cnfn convert_long_sat_rte(int);
-long __ovld __cnfn convert_long_rtz(int);
-long __ovld __cnfn convert_long_sat_rtz(int);
-long __ovld __cnfn convert_long_rtp(int);
-long __ovld __cnfn convert_long_sat_rtp(int);
-long __ovld __cnfn convert_long_rtn(int);
-long __ovld __cnfn convert_long_sat_rtn(int);
-long __ovld __cnfn convert_long(int);
-long __ovld __cnfn convert_long_sat(int);
-long __ovld __cnfn convert_long_rte(uint);
-long __ovld __cnfn convert_long_sat_rte(uint);
-long __ovld __cnfn convert_long_rtz(uint);
-long __ovld __cnfn convert_long_sat_rtz(uint);
-long __ovld __cnfn convert_long_rtp(uint);
-long __ovld __cnfn convert_long_sat_rtp(uint);
-long __ovld __cnfn convert_long_rtn(uint);
-long __ovld __cnfn convert_long_sat_rtn(uint);
-long __ovld __cnfn convert_long(uint);
-long __ovld __cnfn convert_long_sat(uint);
-long __ovld __cnfn convert_long_rte(long);
-long __ovld __cnfn convert_long_sat_rte(long);
-long __ovld __cnfn convert_long_rtz(long);
-long __ovld __cnfn convert_long_sat_rtz(long);
-long __ovld __cnfn convert_long_rtp(long);
-long __ovld __cnfn convert_long_sat_rtp(long);
-long __ovld __cnfn convert_long_rtn(long);
-long __ovld __cnfn convert_long_sat_rtn(long);
-long __ovld __cnfn convert_long(long);
-long __ovld __cnfn convert_long_sat(long);
-long __ovld __cnfn convert_long_rte(ulong);
-long __ovld __cnfn convert_long_sat_rte(ulong);
-long __ovld __cnfn convert_long_rtz(ulong);
-long __ovld __cnfn convert_long_sat_rtz(ulong);
-long __ovld __cnfn convert_long_rtp(ulong);
-long __ovld __cnfn convert_long_sat_rtp(ulong);
-long __ovld __cnfn convert_long_rtn(ulong);
-long __ovld __cnfn convert_long_sat_rtn(ulong);
-long __ovld __cnfn convert_long(ulong);
-long __ovld __cnfn convert_long_sat(ulong);
-long __ovld __cnfn convert_long_rte(float);
-long __ovld __cnfn convert_long_sat_rte(float);
-long __ovld __cnfn convert_long_rtz(float);
-long __ovld __cnfn convert_long_sat_rtz(float);
-long __ovld __cnfn convert_long_rtp(float);
-long __ovld __cnfn convert_long_sat_rtp(float);
-long __ovld __cnfn convert_long_rtn(float);
-long __ovld __cnfn convert_long_sat_rtn(float);
-long __ovld __cnfn convert_long(float);
-long __ovld __cnfn convert_long_sat(float);
-ulong __ovld __cnfn convert_ulong_rte(char);
-ulong __ovld __cnfn convert_ulong_sat_rte(char);
-ulong __ovld __cnfn convert_ulong_rtz(char);
-ulong __ovld __cnfn convert_ulong_sat_rtz(char);
-ulong __ovld __cnfn convert_ulong_rtp(char);
-ulong __ovld __cnfn convert_ulong_sat_rtp(char);
-ulong __ovld __cnfn convert_ulong_rtn(char);
-ulong __ovld __cnfn convert_ulong_sat_rtn(char);
-ulong __ovld __cnfn convert_ulong(char);
-ulong __ovld __cnfn convert_ulong_sat(char);
-ulong __ovld __cnfn convert_ulong_rte(uchar);
-ulong __ovld __cnfn convert_ulong_sat_rte(uchar);
-ulong __ovld __cnfn convert_ulong_rtz(uchar);
-ulong __ovld __cnfn convert_ulong_sat_rtz(uchar);
-ulong __ovld __cnfn convert_ulong_rtp(uchar);
-ulong __ovld __cnfn convert_ulong_sat_rtp(uchar);
-ulong __ovld __cnfn convert_ulong_rtn(uchar);
-ulong __ovld __cnfn convert_ulong_sat_rtn(uchar);
-ulong __ovld __cnfn convert_ulong(uchar);
-ulong __ovld __cnfn convert_ulong_sat(uchar);
-ulong __ovld __cnfn convert_ulong_rte(short);
-ulong __ovld __cnfn convert_ulong_sat_rte(short);
-ulong __ovld __cnfn convert_ulong_rtz(short);
-ulong __ovld __cnfn convert_ulong_sat_rtz(short);
-ulong __ovld __cnfn convert_ulong_rtp(short);
-ulong __ovld __cnfn convert_ulong_sat_rtp(short);
-ulong __ovld __cnfn convert_ulong_rtn(short);
-ulong __ovld __cnfn convert_ulong_sat_rtn(short);
-ulong __ovld __cnfn convert_ulong(short);
-ulong __ovld __cnfn convert_ulong_sat(short);
-ulong __ovld __cnfn convert_ulong_rte(ushort);
-ulong __ovld __cnfn convert_ulong_sat_rte(ushort);
-ulong __ovld __cnfn convert_ulong_rtz(ushort);
-ulong __ovld __cnfn convert_ulong_sat_rtz(ushort);
-ulong __ovld __cnfn convert_ulong_rtp(ushort);
-ulong __ovld __cnfn convert_ulong_sat_rtp(ushort);
-ulong __ovld __cnfn convert_ulong_rtn(ushort);
-ulong __ovld __cnfn convert_ulong_sat_rtn(ushort);
-ulong __ovld __cnfn convert_ulong(ushort);
-ulong __ovld __cnfn convert_ulong_sat(ushort);
-ulong __ovld __cnfn convert_ulong_rte(int);
-ulong __ovld __cnfn convert_ulong_sat_rte(int);
-ulong __ovld __cnfn convert_ulong_rtz(int);
-ulong __ovld __cnfn convert_ulong_sat_rtz(int);
-ulong __ovld __cnfn convert_ulong_rtp(int);
-ulong __ovld __cnfn convert_ulong_sat_rtp(int);
-ulong __ovld __cnfn convert_ulong_rtn(int);
-ulong __ovld __cnfn convert_ulong_sat_rtn(int);
-ulong __ovld __cnfn convert_ulong(int);
-ulong __ovld __cnfn convert_ulong_sat(int);
-ulong __ovld __cnfn convert_ulong_rte(uint);
-ulong __ovld __cnfn convert_ulong_sat_rte(uint);
-ulong __ovld __cnfn convert_ulong_rtz(uint);
-ulong __ovld __cnfn convert_ulong_sat_rtz(uint);
-ulong __ovld __cnfn convert_ulong_rtp(uint);
-ulong __ovld __cnfn convert_ulong_sat_rtp(uint);
-ulong __ovld __cnfn convert_ulong_rtn(uint);
-ulong __ovld __cnfn convert_ulong_sat_rtn(uint);
-ulong __ovld __cnfn convert_ulong(uint);
-ulong __ovld __cnfn convert_ulong_sat(uint);
-ulong __ovld __cnfn convert_ulong_rte(long);
-ulong __ovld __cnfn convert_ulong_sat_rte(long);
-ulong __ovld __cnfn convert_ulong_rtz(long);
-ulong __ovld __cnfn convert_ulong_sat_rtz(long);
-ulong __ovld __cnfn convert_ulong_rtp(long);
-ulong __ovld __cnfn convert_ulong_sat_rtp(long);
-ulong __ovld __cnfn convert_ulong_rtn(long);
-ulong __ovld __cnfn convert_ulong_sat_rtn(long);
-ulong __ovld __cnfn convert_ulong(long);
-ulong __ovld __cnfn convert_ulong_sat(long);
-ulong __ovld __cnfn convert_ulong_rte(ulong);
-ulong __ovld __cnfn convert_ulong_sat_rte(ulong);
-ulong __ovld __cnfn convert_ulong_rtz(ulong);
-ulong __ovld __cnfn convert_ulong_sat_rtz(ulong);
-ulong __ovld __cnfn convert_ulong_rtp(ulong);
-ulong __ovld __cnfn convert_ulong_sat_rtp(ulong);
-ulong __ovld __cnfn convert_ulong_rtn(ulong);
-ulong __ovld __cnfn convert_ulong_sat_rtn(ulong);
-ulong __ovld __cnfn convert_ulong(ulong);
-ulong __ovld __cnfn convert_ulong_sat(ulong);
-ulong __ovld __cnfn convert_ulong_rte(float);
-ulong __ovld __cnfn convert_ulong_sat_rte(float);
-ulong __ovld __cnfn convert_ulong_rtz(float);
-ulong __ovld __cnfn convert_ulong_sat_rtz(float);
-ulong __ovld __cnfn convert_ulong_rtp(float);
-ulong __ovld __cnfn convert_ulong_sat_rtp(float);
-ulong __ovld __cnfn convert_ulong_rtn(float);
-ulong __ovld __cnfn convert_ulong_sat_rtn(float);
-ulong __ovld __cnfn convert_ulong(float);
-ulong __ovld __cnfn convert_ulong_sat(float);
-float __ovld __cnfn convert_float_rte(char);
-float __ovld __cnfn convert_float_rtz(char);
-float __ovld __cnfn convert_float_rtp(char);
-float __ovld __cnfn convert_float_rtn(char);
-float __ovld __cnfn convert_float(char);
-float __ovld __cnfn convert_float_rte(uchar);
-float __ovld __cnfn convert_float_rtz(uchar);
-float __ovld __cnfn convert_float_rtp(uchar);
-float __ovld __cnfn convert_float_rtn(uchar);
-float __ovld __cnfn convert_float(uchar);
-float __ovld __cnfn convert_float_rte(short);
-float __ovld __cnfn convert_float_rtz(short);
-float __ovld __cnfn convert_float_rtp(short);
-float __ovld __cnfn convert_float_rtn(short);
-float __ovld __cnfn convert_float(short);
-float __ovld __cnfn convert_float_rte(ushort);
-float __ovld __cnfn convert_float_rtz(ushort);
-float __ovld __cnfn convert_float_rtp(ushort);
-float __ovld __cnfn convert_float_rtn(ushort);
-float __ovld __cnfn convert_float(ushort);
-float __ovld __cnfn convert_float_rte(int);
-float __ovld __cnfn convert_float_rtz(int);
-float __ovld __cnfn convert_float_rtp(int);
-float __ovld __cnfn convert_float_rtn(int);
-float __ovld __cnfn convert_float(int);
-float __ovld __cnfn convert_float_rte(uint);
-float __ovld __cnfn convert_float_rtz(uint);
-float __ovld __cnfn convert_float_rtp(uint);
-float __ovld __cnfn convert_float_rtn(uint);
-float __ovld __cnfn convert_float(uint);
-float __ovld __cnfn convert_float_rte(long);
-float __ovld __cnfn convert_float_rtz(long);
-float __ovld __cnfn convert_float_rtp(long);
-float __ovld __cnfn convert_float_rtn(long);
-float __ovld __cnfn convert_float(long);
-float __ovld __cnfn convert_float_rte(ulong);
-float __ovld __cnfn convert_float_rtz(ulong);
-float __ovld __cnfn convert_float_rtp(ulong);
-float __ovld __cnfn convert_float_rtn(ulong);
-float __ovld __cnfn convert_float(ulong);
-float __ovld __cnfn convert_float_rte(float);
-float __ovld __cnfn convert_float_rtz(float);
-float __ovld __cnfn convert_float_rtp(float);
-float __ovld __cnfn convert_float_rtn(float);
-float __ovld __cnfn convert_float(float);
-char2 __ovld __cnfn convert_char2_rte(char2);
-char2 __ovld __cnfn convert_char2_sat_rte(char2);
-char2 __ovld __cnfn convert_char2_rtz(char2);
-char2 __ovld __cnfn convert_char2_sat_rtz(char2);
-char2 __ovld __cnfn convert_char2_rtp(char2);
-char2 __ovld __cnfn convert_char2_sat_rtp(char2);
-char2 __ovld __cnfn convert_char2_rtn(char2);
-char2 __ovld __cnfn convert_char2_sat_rtn(char2);
-char2 __ovld __cnfn convert_char2(char2);
-char2 __ovld __cnfn convert_char2_sat(char2);
-char2 __ovld __cnfn convert_char2_rte(uchar2);
-char2 __ovld __cnfn convert_char2_sat_rte(uchar2);
-char2 __ovld __cnfn convert_char2_rtz(uchar2);
-char2 __ovld __cnfn convert_char2_sat_rtz(uchar2);
-char2 __ovld __cnfn convert_char2_rtp(uchar2);
-char2 __ovld __cnfn convert_char2_sat_rtp(uchar2);
-char2 __ovld __cnfn convert_char2_rtn(uchar2);
-char2 __ovld __cnfn convert_char2_sat_rtn(uchar2);
-char2 __ovld __cnfn convert_char2(uchar2);
-char2 __ovld __cnfn convert_char2_sat(uchar2);
-char2 __ovld __cnfn convert_char2_rte(short2);
-char2 __ovld __cnfn convert_char2_sat_rte(short2);
-char2 __ovld __cnfn convert_char2_rtz(short2);
-char2 __ovld __cnfn convert_char2_sat_rtz(short2);
-char2 __ovld __cnfn convert_char2_rtp(short2);
-char2 __ovld __cnfn convert_char2_sat_rtp(short2);
-char2 __ovld __cnfn convert_char2_rtn(short2);
-char2 __ovld __cnfn convert_char2_sat_rtn(short2);
-char2 __ovld __cnfn convert_char2(short2);
-char2 __ovld __cnfn convert_char2_sat(short2);
-char2 __ovld __cnfn convert_char2_rte(ushort2);
-char2 __ovld __cnfn convert_char2_sat_rte(ushort2);
-char2 __ovld __cnfn convert_char2_rtz(ushort2);
-char2 __ovld __cnfn convert_char2_sat_rtz(ushort2);
-char2 __ovld __cnfn convert_char2_rtp(ushort2);
-char2 __ovld __cnfn convert_char2_sat_rtp(ushort2);
-char2 __ovld __cnfn convert_char2_rtn(ushort2);
-char2 __ovld __cnfn convert_char2_sat_rtn(ushort2);
-char2 __ovld __cnfn convert_char2(ushort2);
-char2 __ovld __cnfn convert_char2_sat(ushort2);
-char2 __ovld __cnfn convert_char2_rte(int2);
-char2 __ovld __cnfn convert_char2_sat_rte(int2);
-char2 __ovld __cnfn convert_char2_rtz(int2);
-char2 __ovld __cnfn convert_char2_sat_rtz(int2);
-char2 __ovld __cnfn convert_char2_rtp(int2);
-char2 __ovld __cnfn convert_char2_sat_rtp(int2);
-char2 __ovld __cnfn convert_char2_rtn(int2);
-char2 __ovld __cnfn convert_char2_sat_rtn(int2);
-char2 __ovld __cnfn convert_char2(int2);
-char2 __ovld __cnfn convert_char2_sat(int2);
-char2 __ovld __cnfn convert_char2_rte(uint2);
-char2 __ovld __cnfn convert_char2_sat_rte(uint2);
-char2 __ovld __cnfn convert_char2_rtz(uint2);
-char2 __ovld __cnfn convert_char2_sat_rtz(uint2);
-char2 __ovld __cnfn convert_char2_rtp(uint2);
-char2 __ovld __cnfn convert_char2_sat_rtp(uint2);
-char2 __ovld __cnfn convert_char2_rtn(uint2);
-char2 __ovld __cnfn convert_char2_sat_rtn(uint2);
-char2 __ovld __cnfn convert_char2(uint2);
-char2 __ovld __cnfn convert_char2_sat(uint2);
-char2 __ovld __cnfn convert_char2_rte(long2);
-char2 __ovld __cnfn convert_char2_sat_rte(long2);
-char2 __ovld __cnfn convert_char2_rtz(long2);
-char2 __ovld __cnfn convert_char2_sat_rtz(long2);
-char2 __ovld __cnfn convert_char2_rtp(long2);
-char2 __ovld __cnfn convert_char2_sat_rtp(long2);
-char2 __ovld __cnfn convert_char2_rtn(long2);
-char2 __ovld __cnfn convert_char2_sat_rtn(long2);
-char2 __ovld __cnfn convert_char2(long2);
-char2 __ovld __cnfn convert_char2_sat(long2);
-char2 __ovld __cnfn convert_char2_rte(ulong2);
-char2 __ovld __cnfn convert_char2_sat_rte(ulong2);
-char2 __ovld __cnfn convert_char2_rtz(ulong2);
-char2 __ovld __cnfn convert_char2_sat_rtz(ulong2);
-char2 __ovld __cnfn convert_char2_rtp(ulong2);
-char2 __ovld __cnfn convert_char2_sat_rtp(ulong2);
-char2 __ovld __cnfn convert_char2_rtn(ulong2);
-char2 __ovld __cnfn convert_char2_sat_rtn(ulong2);
-char2 __ovld __cnfn convert_char2(ulong2);
-char2 __ovld __cnfn convert_char2_sat(ulong2);
-char2 __ovld __cnfn convert_char2_rte(float2);
-char2 __ovld __cnfn convert_char2_sat_rte(float2);
-char2 __ovld __cnfn convert_char2_rtz(float2);
-char2 __ovld __cnfn convert_char2_sat_rtz(float2);
-char2 __ovld __cnfn convert_char2_rtp(float2);
-char2 __ovld __cnfn convert_char2_sat_rtp(float2);
-char2 __ovld __cnfn convert_char2_rtn(float2);
-char2 __ovld __cnfn convert_char2_sat_rtn(float2);
-char2 __ovld __cnfn convert_char2(float2);
-char2 __ovld __cnfn convert_char2_sat(float2);
-uchar2 __ovld __cnfn convert_uchar2_rte(char2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rte(char2);
-uchar2 __ovld __cnfn convert_uchar2_rtz(char2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtz(char2);
-uchar2 __ovld __cnfn convert_uchar2_rtp(char2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtp(char2);
-uchar2 __ovld __cnfn convert_uchar2_rtn(char2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtn(char2);
-uchar2 __ovld __cnfn convert_uchar2(char2);
-uchar2 __ovld __cnfn convert_uchar2_sat(char2);
-uchar2 __ovld __cnfn convert_uchar2_rte(uchar2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rte(uchar2);
-uchar2 __ovld __cnfn convert_uchar2_rtz(uchar2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtz(uchar2);
-uchar2 __ovld __cnfn convert_uchar2_rtp(uchar2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtp(uchar2);
-uchar2 __ovld __cnfn convert_uchar2_rtn(uchar2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtn(uchar2);
-uchar2 __ovld __cnfn convert_uchar2(uchar2);
-uchar2 __ovld __cnfn convert_uchar2_sat(uchar2);
-uchar2 __ovld __cnfn convert_uchar2_rte(short2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rte(short2);
-uchar2 __ovld __cnfn convert_uchar2_rtz(short2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtz(short2);
-uchar2 __ovld __cnfn convert_uchar2_rtp(short2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtp(short2);
-uchar2 __ovld __cnfn convert_uchar2_rtn(short2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtn(short2);
-uchar2 __ovld __cnfn convert_uchar2(short2);
-uchar2 __ovld __cnfn convert_uchar2_sat(short2);
-uchar2 __ovld __cnfn convert_uchar2_rte(ushort2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rte(ushort2);
-uchar2 __ovld __cnfn convert_uchar2_rtz(ushort2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtz(ushort2);
-uchar2 __ovld __cnfn convert_uchar2_rtp(ushort2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtp(ushort2);
-uchar2 __ovld __cnfn convert_uchar2_rtn(ushort2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtn(ushort2);
-uchar2 __ovld __cnfn convert_uchar2(ushort2);
-uchar2 __ovld __cnfn convert_uchar2_sat(ushort2);
-uchar2 __ovld __cnfn convert_uchar2_rte(int2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rte(int2);
-uchar2 __ovld __cnfn convert_uchar2_rtz(int2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtz(int2);
-uchar2 __ovld __cnfn convert_uchar2_rtp(int2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtp(int2);
-uchar2 __ovld __cnfn convert_uchar2_rtn(int2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtn(int2);
-uchar2 __ovld __cnfn convert_uchar2(int2);
-uchar2 __ovld __cnfn convert_uchar2_sat(int2);
-uchar2 __ovld __cnfn convert_uchar2_rte(uint2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rte(uint2);
-uchar2 __ovld __cnfn convert_uchar2_rtz(uint2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtz(uint2);
-uchar2 __ovld __cnfn convert_uchar2_rtp(uint2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtp(uint2);
-uchar2 __ovld __cnfn convert_uchar2_rtn(uint2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtn(uint2);
-uchar2 __ovld __cnfn convert_uchar2(uint2);
-uchar2 __ovld __cnfn convert_uchar2_sat(uint2);
-uchar2 __ovld __cnfn convert_uchar2_rte(long2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rte(long2);
-uchar2 __ovld __cnfn convert_uchar2_rtz(long2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtz(long2);
-uchar2 __ovld __cnfn convert_uchar2_rtp(long2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtp(long2);
-uchar2 __ovld __cnfn convert_uchar2_rtn(long2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtn(long2);
-uchar2 __ovld __cnfn convert_uchar2(long2);
-uchar2 __ovld __cnfn convert_uchar2_sat(long2);
-uchar2 __ovld __cnfn convert_uchar2_rte(ulong2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rte(ulong2);
-uchar2 __ovld __cnfn convert_uchar2_rtz(ulong2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtz(ulong2);
-uchar2 __ovld __cnfn convert_uchar2_rtp(ulong2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtp(ulong2);
-uchar2 __ovld __cnfn convert_uchar2_rtn(ulong2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtn(ulong2);
-uchar2 __ovld __cnfn convert_uchar2(ulong2);
-uchar2 __ovld __cnfn convert_uchar2_sat(ulong2);
-uchar2 __ovld __cnfn convert_uchar2_rte(float2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rte(float2);
-uchar2 __ovld __cnfn convert_uchar2_rtz(float2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtz(float2);
-uchar2 __ovld __cnfn convert_uchar2_rtp(float2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtp(float2);
-uchar2 __ovld __cnfn convert_uchar2_rtn(float2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtn(float2);
-uchar2 __ovld __cnfn convert_uchar2(float2);
-uchar2 __ovld __cnfn convert_uchar2_sat(float2);
-short2 __ovld __cnfn convert_short2_rte(char2);
-short2 __ovld __cnfn convert_short2_sat_rte(char2);
-short2 __ovld __cnfn convert_short2_rtz(char2);
-short2 __ovld __cnfn convert_short2_sat_rtz(char2);
-short2 __ovld __cnfn convert_short2_rtp(char2);
-short2 __ovld __cnfn convert_short2_sat_rtp(char2);
-short2 __ovld __cnfn convert_short2_rtn(char2);
-short2 __ovld __cnfn convert_short2_sat_rtn(char2);
-short2 __ovld __cnfn convert_short2(char2);
-short2 __ovld __cnfn convert_short2_sat(char2);
-short2 __ovld __cnfn convert_short2_rte(uchar2);
-short2 __ovld __cnfn convert_short2_sat_rte(uchar2);
-short2 __ovld __cnfn convert_short2_rtz(uchar2);
-short2 __ovld __cnfn convert_short2_sat_rtz(uchar2);
-short2 __ovld __cnfn convert_short2_rtp(uchar2);
-short2 __ovld __cnfn convert_short2_sat_rtp(uchar2);
-short2 __ovld __cnfn convert_short2_rtn(uchar2);
-short2 __ovld __cnfn convert_short2_sat_rtn(uchar2);
-short2 __ovld __cnfn convert_short2(uchar2);
-short2 __ovld __cnfn convert_short2_sat(uchar2);
-short2 __ovld __cnfn convert_short2_rte(short2);
-short2 __ovld __cnfn convert_short2_sat_rte(short2);
-short2 __ovld __cnfn convert_short2_rtz(short2);
-short2 __ovld __cnfn convert_short2_sat_rtz(short2);
-short2 __ovld __cnfn convert_short2_rtp(short2);
-short2 __ovld __cnfn convert_short2_sat_rtp(short2);
-short2 __ovld __cnfn convert_short2_rtn(short2);
-short2 __ovld __cnfn convert_short2_sat_rtn(short2);
-short2 __ovld __cnfn convert_short2(short2);
-short2 __ovld __cnfn convert_short2_sat(short2);
-short2 __ovld __cnfn convert_short2_rte(ushort2);
-short2 __ovld __cnfn convert_short2_sat_rte(ushort2);
-short2 __ovld __cnfn convert_short2_rtz(ushort2);
-short2 __ovld __cnfn convert_short2_sat_rtz(ushort2);
-short2 __ovld __cnfn convert_short2_rtp(ushort2);
-short2 __ovld __cnfn convert_short2_sat_rtp(ushort2);
-short2 __ovld __cnfn convert_short2_rtn(ushort2);
-short2 __ovld __cnfn convert_short2_sat_rtn(ushort2);
-short2 __ovld __cnfn convert_short2(ushort2);
-short2 __ovld __cnfn convert_short2_sat(ushort2);
-short2 __ovld __cnfn convert_short2_rte(int2);
-short2 __ovld __cnfn convert_short2_sat_rte(int2);
-short2 __ovld __cnfn convert_short2_rtz(int2);
-short2 __ovld __cnfn convert_short2_sat_rtz(int2);
-short2 __ovld __cnfn convert_short2_rtp(int2);
-short2 __ovld __cnfn convert_short2_sat_rtp(int2);
-short2 __ovld __cnfn convert_short2_rtn(int2);
-short2 __ovld __cnfn convert_short2_sat_rtn(int2);
-short2 __ovld __cnfn convert_short2(int2);
-short2 __ovld __cnfn convert_short2_sat(int2);
-short2 __ovld __cnfn convert_short2_rte(uint2);
-short2 __ovld __cnfn convert_short2_sat_rte(uint2);
-short2 __ovld __cnfn convert_short2_rtz(uint2);
-short2 __ovld __cnfn convert_short2_sat_rtz(uint2);
-short2 __ovld __cnfn convert_short2_rtp(uint2);
-short2 __ovld __cnfn convert_short2_sat_rtp(uint2);
-short2 __ovld __cnfn convert_short2_rtn(uint2);
-short2 __ovld __cnfn convert_short2_sat_rtn(uint2);
-short2 __ovld __cnfn convert_short2(uint2);
-short2 __ovld __cnfn convert_short2_sat(uint2);
-short2 __ovld __cnfn convert_short2_rte(long2);
-short2 __ovld __cnfn convert_short2_sat_rte(long2);
-short2 __ovld __cnfn convert_short2_rtz(long2);
-short2 __ovld __cnfn convert_short2_sat_rtz(long2);
-short2 __ovld __cnfn convert_short2_rtp(long2);
-short2 __ovld __cnfn convert_short2_sat_rtp(long2);
-short2 __ovld __cnfn convert_short2_rtn(long2);
-short2 __ovld __cnfn convert_short2_sat_rtn(long2);
-short2 __ovld __cnfn convert_short2(long2);
-short2 __ovld __cnfn convert_short2_sat(long2);
-short2 __ovld __cnfn convert_short2_rte(ulong2);
-short2 __ovld __cnfn convert_short2_sat_rte(ulong2);
-short2 __ovld __cnfn convert_short2_rtz(ulong2);
-short2 __ovld __cnfn convert_short2_sat_rtz(ulong2);
-short2 __ovld __cnfn convert_short2_rtp(ulong2);
-short2 __ovld __cnfn convert_short2_sat_rtp(ulong2);
-short2 __ovld __cnfn convert_short2_rtn(ulong2);
-short2 __ovld __cnfn convert_short2_sat_rtn(ulong2);
-short2 __ovld __cnfn convert_short2(ulong2);
-short2 __ovld __cnfn convert_short2_sat(ulong2);
-short2 __ovld __cnfn convert_short2_rte(float2);
-short2 __ovld __cnfn convert_short2_sat_rte(float2);
-short2 __ovld __cnfn convert_short2_rtz(float2);
-short2 __ovld __cnfn convert_short2_sat_rtz(float2);
-short2 __ovld __cnfn convert_short2_rtp(float2);
-short2 __ovld __cnfn convert_short2_sat_rtp(float2);
-short2 __ovld __cnfn convert_short2_rtn(float2);
-short2 __ovld __cnfn convert_short2_sat_rtn(float2);
-short2 __ovld __cnfn convert_short2(float2);
-short2 __ovld __cnfn convert_short2_sat(float2);
-ushort2 __ovld __cnfn convert_ushort2_rte(char2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rte(char2);
-ushort2 __ovld __cnfn convert_ushort2_rtz(char2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtz(char2);
-ushort2 __ovld __cnfn convert_ushort2_rtp(char2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtp(char2);
-ushort2 __ovld __cnfn convert_ushort2_rtn(char2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtn(char2);
-ushort2 __ovld __cnfn convert_ushort2(char2);
-ushort2 __ovld __cnfn convert_ushort2_sat(char2);
-ushort2 __ovld __cnfn convert_ushort2_rte(uchar2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rte(uchar2);
-ushort2 __ovld __cnfn convert_ushort2_rtz(uchar2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtz(uchar2);
-ushort2 __ovld __cnfn convert_ushort2_rtp(uchar2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtp(uchar2);
-ushort2 __ovld __cnfn convert_ushort2_rtn(uchar2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtn(uchar2);
-ushort2 __ovld __cnfn convert_ushort2(uchar2);
-ushort2 __ovld __cnfn convert_ushort2_sat(uchar2);
-ushort2 __ovld __cnfn convert_ushort2_rte(short2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rte(short2);
-ushort2 __ovld __cnfn convert_ushort2_rtz(short2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtz(short2);
-ushort2 __ovld __cnfn convert_ushort2_rtp(short2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtp(short2);
-ushort2 __ovld __cnfn convert_ushort2_rtn(short2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtn(short2);
-ushort2 __ovld __cnfn convert_ushort2(short2);
-ushort2 __ovld __cnfn convert_ushort2_sat(short2);
-ushort2 __ovld __cnfn convert_ushort2_rte(ushort2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rte(ushort2);
-ushort2 __ovld __cnfn convert_ushort2_rtz(ushort2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtz(ushort2);
-ushort2 __ovld __cnfn convert_ushort2_rtp(ushort2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtp(ushort2);
-ushort2 __ovld __cnfn convert_ushort2_rtn(ushort2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtn(ushort2);
-ushort2 __ovld __cnfn convert_ushort2(ushort2);
-ushort2 __ovld __cnfn convert_ushort2_sat(ushort2);
-ushort2 __ovld __cnfn convert_ushort2_rte(int2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rte(int2);
-ushort2 __ovld __cnfn convert_ushort2_rtz(int2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtz(int2);
-ushort2 __ovld __cnfn convert_ushort2_rtp(int2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtp(int2);
-ushort2 __ovld __cnfn convert_ushort2_rtn(int2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtn(int2);
-ushort2 __ovld __cnfn convert_ushort2(int2);
-ushort2 __ovld __cnfn convert_ushort2_sat(int2);
-ushort2 __ovld __cnfn convert_ushort2_rte(uint2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rte(uint2);
-ushort2 __ovld __cnfn convert_ushort2_rtz(uint2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtz(uint2);
-ushort2 __ovld __cnfn convert_ushort2_rtp(uint2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtp(uint2);
-ushort2 __ovld __cnfn convert_ushort2_rtn(uint2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtn(uint2);
-ushort2 __ovld __cnfn convert_ushort2(uint2);
-ushort2 __ovld __cnfn convert_ushort2_sat(uint2);
-ushort2 __ovld __cnfn convert_ushort2_rte(long2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rte(long2);
-ushort2 __ovld __cnfn convert_ushort2_rtz(long2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtz(long2);
-ushort2 __ovld __cnfn convert_ushort2_rtp(long2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtp(long2);
-ushort2 __ovld __cnfn convert_ushort2_rtn(long2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtn(long2);
-ushort2 __ovld __cnfn convert_ushort2(long2);
-ushort2 __ovld __cnfn convert_ushort2_sat(long2);
-ushort2 __ovld __cnfn convert_ushort2_rte(ulong2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rte(ulong2);
-ushort2 __ovld __cnfn convert_ushort2_rtz(ulong2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtz(ulong2);
-ushort2 __ovld __cnfn convert_ushort2_rtp(ulong2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtp(ulong2);
-ushort2 __ovld __cnfn convert_ushort2_rtn(ulong2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtn(ulong2);
-ushort2 __ovld __cnfn convert_ushort2(ulong2);
-ushort2 __ovld __cnfn convert_ushort2_sat(ulong2);
-ushort2 __ovld __cnfn convert_ushort2_rte(float2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rte(float2);
-ushort2 __ovld __cnfn convert_ushort2_rtz(float2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtz(float2);
-ushort2 __ovld __cnfn convert_ushort2_rtp(float2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtp(float2);
-ushort2 __ovld __cnfn convert_ushort2_rtn(float2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtn(float2);
-ushort2 __ovld __cnfn convert_ushort2(float2);
-ushort2 __ovld __cnfn convert_ushort2_sat(float2);
-int2 __ovld __cnfn convert_int2_rte(char2);
-int2 __ovld __cnfn convert_int2_sat_rte(char2);
-int2 __ovld __cnfn convert_int2_rtz(char2);
-int2 __ovld __cnfn convert_int2_sat_rtz(char2);
-int2 __ovld __cnfn convert_int2_rtp(char2);
-int2 __ovld __cnfn convert_int2_sat_rtp(char2);
-int2 __ovld __cnfn convert_int2_rtn(char2);
-int2 __ovld __cnfn convert_int2_sat_rtn(char2);
-int2 __ovld __cnfn convert_int2(char2);
-int2 __ovld __cnfn convert_int2_sat(char2);
-int2 __ovld __cnfn convert_int2_rte(uchar2);
-int2 __ovld __cnfn convert_int2_sat_rte(uchar2);
-int2 __ovld __cnfn convert_int2_rtz(uchar2);
-int2 __ovld __cnfn convert_int2_sat_rtz(uchar2);
-int2 __ovld __cnfn convert_int2_rtp(uchar2);
-int2 __ovld __cnfn convert_int2_sat_rtp(uchar2);
-int2 __ovld __cnfn convert_int2_rtn(uchar2);
-int2 __ovld __cnfn convert_int2_sat_rtn(uchar2);
-int2 __ovld __cnfn convert_int2(uchar2);
-int2 __ovld __cnfn convert_int2_sat(uchar2);
-int2 __ovld __cnfn convert_int2_rte(short2);
-int2 __ovld __cnfn convert_int2_sat_rte(short2);
-int2 __ovld __cnfn convert_int2_rtz(short2);
-int2 __ovld __cnfn convert_int2_sat_rtz(short2);
-int2 __ovld __cnfn convert_int2_rtp(short2);
-int2 __ovld __cnfn convert_int2_sat_rtp(short2);
-int2 __ovld __cnfn convert_int2_rtn(short2);
-int2 __ovld __cnfn convert_int2_sat_rtn(short2);
-int2 __ovld __cnfn convert_int2(short2);
-int2 __ovld __cnfn convert_int2_sat(short2);
-int2 __ovld __cnfn convert_int2_rte(ushort2);
-int2 __ovld __cnfn convert_int2_sat_rte(ushort2);
-int2 __ovld __cnfn convert_int2_rtz(ushort2);
-int2 __ovld __cnfn convert_int2_sat_rtz(ushort2);
-int2 __ovld __cnfn convert_int2_rtp(ushort2);
-int2 __ovld __cnfn convert_int2_sat_rtp(ushort2);
-int2 __ovld __cnfn convert_int2_rtn(ushort2);
-int2 __ovld __cnfn convert_int2_sat_rtn(ushort2);
-int2 __ovld __cnfn convert_int2(ushort2);
-int2 __ovld __cnfn convert_int2_sat(ushort2);
-int2 __ovld __cnfn convert_int2_rte(int2);
-int2 __ovld __cnfn convert_int2_sat_rte(int2);
-int2 __ovld __cnfn convert_int2_rtz(int2);
-int2 __ovld __cnfn convert_int2_sat_rtz(int2);
-int2 __ovld __cnfn convert_int2_rtp(int2);
-int2 __ovld __cnfn convert_int2_sat_rtp(int2);
-int2 __ovld __cnfn convert_int2_rtn(int2);
-int2 __ovld __cnfn convert_int2_sat_rtn(int2);
-int2 __ovld __cnfn convert_int2(int2);
-int2 __ovld __cnfn convert_int2_sat(int2);
-int2 __ovld __cnfn convert_int2_rte(uint2);
-int2 __ovld __cnfn convert_int2_sat_rte(uint2);
-int2 __ovld __cnfn convert_int2_rtz(uint2);
-int2 __ovld __cnfn convert_int2_sat_rtz(uint2);
-int2 __ovld __cnfn convert_int2_rtp(uint2);
-int2 __ovld __cnfn convert_int2_sat_rtp(uint2);
-int2 __ovld __cnfn convert_int2_rtn(uint2);
-int2 __ovld __cnfn convert_int2_sat_rtn(uint2);
-int2 __ovld __cnfn convert_int2(uint2);
-int2 __ovld __cnfn convert_int2_sat(uint2);
-int2 __ovld __cnfn convert_int2_rte(long2);
-int2 __ovld __cnfn convert_int2_sat_rte(long2);
-int2 __ovld __cnfn convert_int2_rtz(long2);
-int2 __ovld __cnfn convert_int2_sat_rtz(long2);
-int2 __ovld __cnfn convert_int2_rtp(long2);
-int2 __ovld __cnfn convert_int2_sat_rtp(long2);
-int2 __ovld __cnfn convert_int2_rtn(long2);
-int2 __ovld __cnfn convert_int2_sat_rtn(long2);
-int2 __ovld __cnfn convert_int2(long2);
-int2 __ovld __cnfn convert_int2_sat(long2);
-int2 __ovld __cnfn convert_int2_rte(ulong2);
-int2 __ovld __cnfn convert_int2_sat_rte(ulong2);
-int2 __ovld __cnfn convert_int2_rtz(ulong2);
-int2 __ovld __cnfn convert_int2_sat_rtz(ulong2);
-int2 __ovld __cnfn convert_int2_rtp(ulong2);
-int2 __ovld __cnfn convert_int2_sat_rtp(ulong2);
-int2 __ovld __cnfn convert_int2_rtn(ulong2);
-int2 __ovld __cnfn convert_int2_sat_rtn(ulong2);
-int2 __ovld __cnfn convert_int2(ulong2);
-int2 __ovld __cnfn convert_int2_sat(ulong2);
-int2 __ovld __cnfn convert_int2_rte(float2);
-int2 __ovld __cnfn convert_int2_sat_rte(float2);
-int2 __ovld __cnfn convert_int2_rtz(float2);
-int2 __ovld __cnfn convert_int2_sat_rtz(float2);
-int2 __ovld __cnfn convert_int2_rtp(float2);
-int2 __ovld __cnfn convert_int2_sat_rtp(float2);
-int2 __ovld __cnfn convert_int2_rtn(float2);
-int2 __ovld __cnfn convert_int2_sat_rtn(float2);
-int2 __ovld __cnfn convert_int2(float2);
-int2 __ovld __cnfn convert_int2_sat(float2);
-uint2 __ovld __cnfn convert_uint2_rte(char2);
-uint2 __ovld __cnfn convert_uint2_sat_rte(char2);
-uint2 __ovld __cnfn convert_uint2_rtz(char2);
-uint2 __ovld __cnfn convert_uint2_sat_rtz(char2);
-uint2 __ovld __cnfn convert_uint2_rtp(char2);
-uint2 __ovld __cnfn convert_uint2_sat_rtp(char2);
-uint2 __ovld __cnfn convert_uint2_rtn(char2);
-uint2 __ovld __cnfn convert_uint2_sat_rtn(char2);
-uint2 __ovld __cnfn convert_uint2(char2);
-uint2 __ovld __cnfn convert_uint2_sat(char2);
-uint2 __ovld __cnfn convert_uint2_rte(uchar2);
-uint2 __ovld __cnfn convert_uint2_sat_rte(uchar2);
-uint2 __ovld __cnfn convert_uint2_rtz(uchar2);
-uint2 __ovld __cnfn convert_uint2_sat_rtz(uchar2);
-uint2 __ovld __cnfn convert_uint2_rtp(uchar2);
-uint2 __ovld __cnfn convert_uint2_sat_rtp(uchar2);
-uint2 __ovld __cnfn convert_uint2_rtn(uchar2);
-uint2 __ovld __cnfn convert_uint2_sat_rtn(uchar2);
-uint2 __ovld __cnfn convert_uint2(uchar2);
-uint2 __ovld __cnfn convert_uint2_sat(uchar2);
-uint2 __ovld __cnfn convert_uint2_rte(short2);
-uint2 __ovld __cnfn convert_uint2_sat_rte(short2);
-uint2 __ovld __cnfn convert_uint2_rtz(short2);
-uint2 __ovld __cnfn convert_uint2_sat_rtz(short2);
-uint2 __ovld __cnfn convert_uint2_rtp(short2);
-uint2 __ovld __cnfn convert_uint2_sat_rtp(short2);
-uint2 __ovld __cnfn convert_uint2_rtn(short2);
-uint2 __ovld __cnfn convert_uint2_sat_rtn(short2);
-uint2 __ovld __cnfn convert_uint2(short2);
-uint2 __ovld __cnfn convert_uint2_sat(short2);
-uint2 __ovld __cnfn convert_uint2_rte(ushort2);
-uint2 __ovld __cnfn convert_uint2_sat_rte(ushort2);
-uint2 __ovld __cnfn convert_uint2_rtz(ushort2);
-uint2 __ovld __cnfn convert_uint2_sat_rtz(ushort2);
-uint2 __ovld __cnfn convert_uint2_rtp(ushort2);
-uint2 __ovld __cnfn convert_uint2_sat_rtp(ushort2);
-uint2 __ovld __cnfn convert_uint2_rtn(ushort2);
-uint2 __ovld __cnfn convert_uint2_sat_rtn(ushort2);
-uint2 __ovld __cnfn convert_uint2(ushort2);
-uint2 __ovld __cnfn convert_uint2_sat(ushort2);
-uint2 __ovld __cnfn convert_uint2_rte(int2);
-uint2 __ovld __cnfn convert_uint2_sat_rte(int2);
-uint2 __ovld __cnfn convert_uint2_rtz(int2);
-uint2 __ovld __cnfn convert_uint2_sat_rtz(int2);
-uint2 __ovld __cnfn convert_uint2_rtp(int2);
-uint2 __ovld __cnfn convert_uint2_sat_rtp(int2);
-uint2 __ovld __cnfn convert_uint2_rtn(int2);
-uint2 __ovld __cnfn convert_uint2_sat_rtn(int2);
-uint2 __ovld __cnfn convert_uint2(int2);
-uint2 __ovld __cnfn convert_uint2_sat(int2);
-uint2 __ovld __cnfn convert_uint2_rte(uint2);
-uint2 __ovld __cnfn convert_uint2_sat_rte(uint2);
-uint2 __ovld __cnfn convert_uint2_rtz(uint2);
-uint2 __ovld __cnfn convert_uint2_sat_rtz(uint2);
-uint2 __ovld __cnfn convert_uint2_rtp(uint2);
-uint2 __ovld __cnfn convert_uint2_sat_rtp(uint2);
-uint2 __ovld __cnfn convert_uint2_rtn(uint2);
-uint2 __ovld __cnfn convert_uint2_sat_rtn(uint2);
-uint2 __ovld __cnfn convert_uint2(uint2);
-uint2 __ovld __cnfn convert_uint2_sat(uint2);
-uint2 __ovld __cnfn convert_uint2_rte(long2);
-uint2 __ovld __cnfn convert_uint2_sat_rte(long2);
-uint2 __ovld __cnfn convert_uint2_rtz(long2);
-uint2 __ovld __cnfn convert_uint2_sat_rtz(long2);
-uint2 __ovld __cnfn convert_uint2_rtp(long2);
-uint2 __ovld __cnfn convert_uint2_sat_rtp(long2);
-uint2 __ovld __cnfn convert_uint2_rtn(long2);
-uint2 __ovld __cnfn convert_uint2_sat_rtn(long2);
-uint2 __ovld __cnfn convert_uint2(long2);
-uint2 __ovld __cnfn convert_uint2_sat(long2);
-uint2 __ovld __cnfn convert_uint2_rte(ulong2);
-uint2 __ovld __cnfn convert_uint2_sat_rte(ulong2);
-uint2 __ovld __cnfn convert_uint2_rtz(ulong2);
-uint2 __ovld __cnfn convert_uint2_sat_rtz(ulong2);
-uint2 __ovld __cnfn convert_uint2_rtp(ulong2);
-uint2 __ovld __cnfn convert_uint2_sat_rtp(ulong2);
-uint2 __ovld __cnfn convert_uint2_rtn(ulong2);
-uint2 __ovld __cnfn convert_uint2_sat_rtn(ulong2);
-uint2 __ovld __cnfn convert_uint2(ulong2);
-uint2 __ovld __cnfn convert_uint2_sat(ulong2);
-uint2 __ovld __cnfn convert_uint2_rte(float2);
-uint2 __ovld __cnfn convert_uint2_sat_rte(float2);
-uint2 __ovld __cnfn convert_uint2_rtz(float2);
-uint2 __ovld __cnfn convert_uint2_sat_rtz(float2);
-uint2 __ovld __cnfn convert_uint2_rtp(float2);
-uint2 __ovld __cnfn convert_uint2_sat_rtp(float2);
-uint2 __ovld __cnfn convert_uint2_rtn(float2);
-uint2 __ovld __cnfn convert_uint2_sat_rtn(float2);
-uint2 __ovld __cnfn convert_uint2(float2);
-uint2 __ovld __cnfn convert_uint2_sat(float2);
-long2 __ovld __cnfn convert_long2_rte(char2);
-long2 __ovld __cnfn convert_long2_sat_rte(char2);
-long2 __ovld __cnfn convert_long2_rtz(char2);
-long2 __ovld __cnfn convert_long2_sat_rtz(char2);
-long2 __ovld __cnfn convert_long2_rtp(char2);
-long2 __ovld __cnfn convert_long2_sat_rtp(char2);
-long2 __ovld __cnfn convert_long2_rtn(char2);
-long2 __ovld __cnfn convert_long2_sat_rtn(char2);
-long2 __ovld __cnfn convert_long2(char2);
-long2 __ovld __cnfn convert_long2_sat(char2);
-long2 __ovld __cnfn convert_long2_rte(uchar2);
-long2 __ovld __cnfn convert_long2_sat_rte(uchar2);
-long2 __ovld __cnfn convert_long2_rtz(uchar2);
-long2 __ovld __cnfn convert_long2_sat_rtz(uchar2);
-long2 __ovld __cnfn convert_long2_rtp(uchar2);
-long2 __ovld __cnfn convert_long2_sat_rtp(uchar2);
-long2 __ovld __cnfn convert_long2_rtn(uchar2);
-long2 __ovld __cnfn convert_long2_sat_rtn(uchar2);
-long2 __ovld __cnfn convert_long2(uchar2);
-long2 __ovld __cnfn convert_long2_sat(uchar2);
-long2 __ovld __cnfn convert_long2_rte(short2);
-long2 __ovld __cnfn convert_long2_sat_rte(short2);
-long2 __ovld __cnfn convert_long2_rtz(short2);
-long2 __ovld __cnfn convert_long2_sat_rtz(short2);
-long2 __ovld __cnfn convert_long2_rtp(short2);
-long2 __ovld __cnfn convert_long2_sat_rtp(short2);
-long2 __ovld __cnfn convert_long2_rtn(short2);
-long2 __ovld __cnfn convert_long2_sat_rtn(short2);
-long2 __ovld __cnfn convert_long2(short2);
-long2 __ovld __cnfn convert_long2_sat(short2);
-long2 __ovld __cnfn convert_long2_rte(ushort2);
-long2 __ovld __cnfn convert_long2_sat_rte(ushort2);
-long2 __ovld __cnfn convert_long2_rtz(ushort2);
-long2 __ovld __cnfn convert_long2_sat_rtz(ushort2);
-long2 __ovld __cnfn convert_long2_rtp(ushort2);
-long2 __ovld __cnfn convert_long2_sat_rtp(ushort2);
-long2 __ovld __cnfn convert_long2_rtn(ushort2);
-long2 __ovld __cnfn convert_long2_sat_rtn(ushort2);
-long2 __ovld __cnfn convert_long2(ushort2);
-long2 __ovld __cnfn convert_long2_sat(ushort2);
-long2 __ovld __cnfn convert_long2_rte(int2);
-long2 __ovld __cnfn convert_long2_sat_rte(int2);
-long2 __ovld __cnfn convert_long2_rtz(int2);
-long2 __ovld __cnfn convert_long2_sat_rtz(int2);
-long2 __ovld __cnfn convert_long2_rtp(int2);
-long2 __ovld __cnfn convert_long2_sat_rtp(int2);
-long2 __ovld __cnfn convert_long2_rtn(int2);
-long2 __ovld __cnfn convert_long2_sat_rtn(int2);
-long2 __ovld __cnfn convert_long2(int2);
-long2 __ovld __cnfn convert_long2_sat(int2);
-long2 __ovld __cnfn convert_long2_rte(uint2);
-long2 __ovld __cnfn convert_long2_sat_rte(uint2);
-long2 __ovld __cnfn convert_long2_rtz(uint2);
-long2 __ovld __cnfn convert_long2_sat_rtz(uint2);
-long2 __ovld __cnfn convert_long2_rtp(uint2);
-long2 __ovld __cnfn convert_long2_sat_rtp(uint2);
-long2 __ovld __cnfn convert_long2_rtn(uint2);
-long2 __ovld __cnfn convert_long2_sat_rtn(uint2);
-long2 __ovld __cnfn convert_long2(uint2);
-long2 __ovld __cnfn convert_long2_sat(uint2);
-long2 __ovld __cnfn convert_long2_rte(long2);
-long2 __ovld __cnfn convert_long2_sat_rte(long2);
-long2 __ovld __cnfn convert_long2_rtz(long2);
-long2 __ovld __cnfn convert_long2_sat_rtz(long2);
-long2 __ovld __cnfn convert_long2_rtp(long2);
-long2 __ovld __cnfn convert_long2_sat_rtp(long2);
-long2 __ovld __cnfn convert_long2_rtn(long2);
-long2 __ovld __cnfn convert_long2_sat_rtn(long2);
-long2 __ovld __cnfn convert_long2(long2);
-long2 __ovld __cnfn convert_long2_sat(long2);
-long2 __ovld __cnfn convert_long2_rte(ulong2);
-long2 __ovld __cnfn convert_long2_sat_rte(ulong2);
-long2 __ovld __cnfn convert_long2_rtz(ulong2);
-long2 __ovld __cnfn convert_long2_sat_rtz(ulong2);
-long2 __ovld __cnfn convert_long2_rtp(ulong2);
-long2 __ovld __cnfn convert_long2_sat_rtp(ulong2);
-long2 __ovld __cnfn convert_long2_rtn(ulong2);
-long2 __ovld __cnfn convert_long2_sat_rtn(ulong2);
-long2 __ovld __cnfn convert_long2(ulong2);
-long2 __ovld __cnfn convert_long2_sat(ulong2);
-long2 __ovld __cnfn convert_long2_rte(float2);
-long2 __ovld __cnfn convert_long2_sat_rte(float2);
-long2 __ovld __cnfn convert_long2_rtz(float2);
-long2 __ovld __cnfn convert_long2_sat_rtz(float2);
-long2 __ovld __cnfn convert_long2_rtp(float2);
-long2 __ovld __cnfn convert_long2_sat_rtp(float2);
-long2 __ovld __cnfn convert_long2_rtn(float2);
-long2 __ovld __cnfn convert_long2_sat_rtn(float2);
-long2 __ovld __cnfn convert_long2(float2);
-long2 __ovld __cnfn convert_long2_sat(float2);
-ulong2 __ovld __cnfn convert_ulong2_rte(char2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rte(char2);
-ulong2 __ovld __cnfn convert_ulong2_rtz(char2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtz(char2);
-ulong2 __ovld __cnfn convert_ulong2_rtp(char2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtp(char2);
-ulong2 __ovld __cnfn convert_ulong2_rtn(char2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtn(char2);
-ulong2 __ovld __cnfn convert_ulong2(char2);
-ulong2 __ovld __cnfn convert_ulong2_sat(char2);
-ulong2 __ovld __cnfn convert_ulong2_rte(uchar2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rte(uchar2);
-ulong2 __ovld __cnfn convert_ulong2_rtz(uchar2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtz(uchar2);
-ulong2 __ovld __cnfn convert_ulong2_rtp(uchar2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtp(uchar2);
-ulong2 __ovld __cnfn convert_ulong2_rtn(uchar2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtn(uchar2);
-ulong2 __ovld __cnfn convert_ulong2(uchar2);
-ulong2 __ovld __cnfn convert_ulong2_sat(uchar2);
-ulong2 __ovld __cnfn convert_ulong2_rte(short2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rte(short2);
-ulong2 __ovld __cnfn convert_ulong2_rtz(short2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtz(short2);
-ulong2 __ovld __cnfn convert_ulong2_rtp(short2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtp(short2);
-ulong2 __ovld __cnfn convert_ulong2_rtn(short2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtn(short2);
-ulong2 __ovld __cnfn convert_ulong2(short2);
-ulong2 __ovld __cnfn convert_ulong2_sat(short2);
-ulong2 __ovld __cnfn convert_ulong2_rte(ushort2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rte(ushort2);
-ulong2 __ovld __cnfn convert_ulong2_rtz(ushort2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtz(ushort2);
-ulong2 __ovld __cnfn convert_ulong2_rtp(ushort2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtp(ushort2);
-ulong2 __ovld __cnfn convert_ulong2_rtn(ushort2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtn(ushort2);
-ulong2 __ovld __cnfn convert_ulong2(ushort2);
-ulong2 __ovld __cnfn convert_ulong2_sat(ushort2);
-ulong2 __ovld __cnfn convert_ulong2_rte(int2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rte(int2);
-ulong2 __ovld __cnfn convert_ulong2_rtz(int2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtz(int2);
-ulong2 __ovld __cnfn convert_ulong2_rtp(int2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtp(int2);
-ulong2 __ovld __cnfn convert_ulong2_rtn(int2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtn(int2);
-ulong2 __ovld __cnfn convert_ulong2(int2);
-ulong2 __ovld __cnfn convert_ulong2_sat(int2);
-ulong2 __ovld __cnfn convert_ulong2_rte(uint2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rte(uint2);
-ulong2 __ovld __cnfn convert_ulong2_rtz(uint2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtz(uint2);
-ulong2 __ovld __cnfn convert_ulong2_rtp(uint2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtp(uint2);
-ulong2 __ovld __cnfn convert_ulong2_rtn(uint2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtn(uint2);
-ulong2 __ovld __cnfn convert_ulong2(uint2);
-ulong2 __ovld __cnfn convert_ulong2_sat(uint2);
-ulong2 __ovld __cnfn convert_ulong2_rte(long2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rte(long2);
-ulong2 __ovld __cnfn convert_ulong2_rtz(long2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtz(long2);
-ulong2 __ovld __cnfn convert_ulong2_rtp(long2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtp(long2);
-ulong2 __ovld __cnfn convert_ulong2_rtn(long2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtn(long2);
-ulong2 __ovld __cnfn convert_ulong2(long2);
-ulong2 __ovld __cnfn convert_ulong2_sat(long2);
-ulong2 __ovld __cnfn convert_ulong2_rte(ulong2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rte(ulong2);
-ulong2 __ovld __cnfn convert_ulong2_rtz(ulong2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtz(ulong2);
-ulong2 __ovld __cnfn convert_ulong2_rtp(ulong2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtp(ulong2);
-ulong2 __ovld __cnfn convert_ulong2_rtn(ulong2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtn(ulong2);
-ulong2 __ovld __cnfn convert_ulong2(ulong2);
-ulong2 __ovld __cnfn convert_ulong2_sat(ulong2);
-ulong2 __ovld __cnfn convert_ulong2_rte(float2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rte(float2);
-ulong2 __ovld __cnfn convert_ulong2_rtz(float2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtz(float2);
-ulong2 __ovld __cnfn convert_ulong2_rtp(float2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtp(float2);
-ulong2 __ovld __cnfn convert_ulong2_rtn(float2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtn(float2);
-ulong2 __ovld __cnfn convert_ulong2(float2);
-ulong2 __ovld __cnfn convert_ulong2_sat(float2);
-float2 __ovld __cnfn convert_float2_rte(char2);
-float2 __ovld __cnfn convert_float2_rtz(char2);
-float2 __ovld __cnfn convert_float2_rtp(char2);
-float2 __ovld __cnfn convert_float2_rtn(char2);
-float2 __ovld __cnfn convert_float2(char2);
-float2 __ovld __cnfn convert_float2_rte(uchar2);
-float2 __ovld __cnfn convert_float2_rtz(uchar2);
-float2 __ovld __cnfn convert_float2_rtp(uchar2);
-float2 __ovld __cnfn convert_float2_rtn(uchar2);
-float2 __ovld __cnfn convert_float2(uchar2);
-float2 __ovld __cnfn convert_float2_rte(short2);
-float2 __ovld __cnfn convert_float2_rtz(short2);
-float2 __ovld __cnfn convert_float2_rtp(short2);
-float2 __ovld __cnfn convert_float2_rtn(short2);
-float2 __ovld __cnfn convert_float2(short2);
-float2 __ovld __cnfn convert_float2_rte(ushort2);
-float2 __ovld __cnfn convert_float2_rtz(ushort2);
-float2 __ovld __cnfn convert_float2_rtp(ushort2);
-float2 __ovld __cnfn convert_float2_rtn(ushort2);
-float2 __ovld __cnfn convert_float2(ushort2);
-float2 __ovld __cnfn convert_float2_rte(int2);
-float2 __ovld __cnfn convert_float2_rtz(int2);
-float2 __ovld __cnfn convert_float2_rtp(int2);
-float2 __ovld __cnfn convert_float2_rtn(int2);
-float2 __ovld __cnfn convert_float2(int2);
-float2 __ovld __cnfn convert_float2_rte(uint2);
-float2 __ovld __cnfn convert_float2_rtz(uint2);
-float2 __ovld __cnfn convert_float2_rtp(uint2);
-float2 __ovld __cnfn convert_float2_rtn(uint2);
-float2 __ovld __cnfn convert_float2(uint2);
-float2 __ovld __cnfn convert_float2_rte(long2);
-float2 __ovld __cnfn convert_float2_rtz(long2);
-float2 __ovld __cnfn convert_float2_rtp(long2);
-float2 __ovld __cnfn convert_float2_rtn(long2);
-float2 __ovld __cnfn convert_float2(long2);
-float2 __ovld __cnfn convert_float2_rte(ulong2);
-float2 __ovld __cnfn convert_float2_rtz(ulong2);
-float2 __ovld __cnfn convert_float2_rtp(ulong2);
-float2 __ovld __cnfn convert_float2_rtn(ulong2);
-float2 __ovld __cnfn convert_float2(ulong2);
-float2 __ovld __cnfn convert_float2_rte(float2);
-float2 __ovld __cnfn convert_float2_rtz(float2);
-float2 __ovld __cnfn convert_float2_rtp(float2);
-float2 __ovld __cnfn convert_float2_rtn(float2);
-float2 __ovld __cnfn convert_float2(float2);
-char3 __ovld __cnfn convert_char3_rte(char3);
-char3 __ovld __cnfn convert_char3_sat_rte(char3);
-char3 __ovld __cnfn convert_char3_rtz(char3);
-char3 __ovld __cnfn convert_char3_sat_rtz(char3);
-char3 __ovld __cnfn convert_char3_rtp(char3);
-char3 __ovld __cnfn convert_char3_sat_rtp(char3);
-char3 __ovld __cnfn convert_char3_rtn(char3);
-char3 __ovld __cnfn convert_char3_sat_rtn(char3);
-char3 __ovld __cnfn convert_char3(char3);
-char3 __ovld __cnfn convert_char3_sat(char3);
-char3 __ovld __cnfn convert_char3_rte(uchar3);
-char3 __ovld __cnfn convert_char3_sat_rte(uchar3);
-char3 __ovld __cnfn convert_char3_rtz(uchar3);
-char3 __ovld __cnfn convert_char3_sat_rtz(uchar3);
-char3 __ovld __cnfn convert_char3_rtp(uchar3);
-char3 __ovld __cnfn convert_char3_sat_rtp(uchar3);
-char3 __ovld __cnfn convert_char3_rtn(uchar3);
-char3 __ovld __cnfn convert_char3_sat_rtn(uchar3);
-char3 __ovld __cnfn convert_char3(uchar3);
-char3 __ovld __cnfn convert_char3_sat(uchar3);
-char3 __ovld __cnfn convert_char3_rte(short3);
-char3 __ovld __cnfn convert_char3_sat_rte(short3);
-char3 __ovld __cnfn convert_char3_rtz(short3);
-char3 __ovld __cnfn convert_char3_sat_rtz(short3);
-char3 __ovld __cnfn convert_char3_rtp(short3);
-char3 __ovld __cnfn convert_char3_sat_rtp(short3);
-char3 __ovld __cnfn convert_char3_rtn(short3);
-char3 __ovld __cnfn convert_char3_sat_rtn(short3);
-char3 __ovld __cnfn convert_char3(short3);
-char3 __ovld __cnfn convert_char3_sat(short3);
-char3 __ovld __cnfn convert_char3_rte(ushort3);
-char3 __ovld __cnfn convert_char3_sat_rte(ushort3);
-char3 __ovld __cnfn convert_char3_rtz(ushort3);
-char3 __ovld __cnfn convert_char3_sat_rtz(ushort3);
-char3 __ovld __cnfn convert_char3_rtp(ushort3);
-char3 __ovld __cnfn convert_char3_sat_rtp(ushort3);
-char3 __ovld __cnfn convert_char3_rtn(ushort3);
-char3 __ovld __cnfn convert_char3_sat_rtn(ushort3);
-char3 __ovld __cnfn convert_char3(ushort3);
-char3 __ovld __cnfn convert_char3_sat(ushort3);
-char3 __ovld __cnfn convert_char3_rte(int3);
-char3 __ovld __cnfn convert_char3_sat_rte(int3);
-char3 __ovld __cnfn convert_char3_rtz(int3);
-char3 __ovld __cnfn convert_char3_sat_rtz(int3);
-char3 __ovld __cnfn convert_char3_rtp(int3);
-char3 __ovld __cnfn convert_char3_sat_rtp(int3);
-char3 __ovld __cnfn convert_char3_rtn(int3);
-char3 __ovld __cnfn convert_char3_sat_rtn(int3);
-char3 __ovld __cnfn convert_char3(int3);
-char3 __ovld __cnfn convert_char3_sat(int3);
-char3 __ovld __cnfn convert_char3_rte(uint3);
-char3 __ovld __cnfn convert_char3_sat_rte(uint3);
-char3 __ovld __cnfn convert_char3_rtz(uint3);
-char3 __ovld __cnfn convert_char3_sat_rtz(uint3);
-char3 __ovld __cnfn convert_char3_rtp(uint3);
-char3 __ovld __cnfn convert_char3_sat_rtp(uint3);
-char3 __ovld __cnfn convert_char3_rtn(uint3);
-char3 __ovld __cnfn convert_char3_sat_rtn(uint3);
-char3 __ovld __cnfn convert_char3(uint3);
-char3 __ovld __cnfn convert_char3_sat(uint3);
-char3 __ovld __cnfn convert_char3_rte(long3);
-char3 __ovld __cnfn convert_char3_sat_rte(long3);
-char3 __ovld __cnfn convert_char3_rtz(long3);
-char3 __ovld __cnfn convert_char3_sat_rtz(long3);
-char3 __ovld __cnfn convert_char3_rtp(long3);
-char3 __ovld __cnfn convert_char3_sat_rtp(long3);
-char3 __ovld __cnfn convert_char3_rtn(long3);
-char3 __ovld __cnfn convert_char3_sat_rtn(long3);
-char3 __ovld __cnfn convert_char3(long3);
-char3 __ovld __cnfn convert_char3_sat(long3);
-char3 __ovld __cnfn convert_char3_rte(ulong3);
-char3 __ovld __cnfn convert_char3_sat_rte(ulong3);
-char3 __ovld __cnfn convert_char3_rtz(ulong3);
-char3 __ovld __cnfn convert_char3_sat_rtz(ulong3);
-char3 __ovld __cnfn convert_char3_rtp(ulong3);
-char3 __ovld __cnfn convert_char3_sat_rtp(ulong3);
-char3 __ovld __cnfn convert_char3_rtn(ulong3);
-char3 __ovld __cnfn convert_char3_sat_rtn(ulong3);
-char3 __ovld __cnfn convert_char3(ulong3);
-char3 __ovld __cnfn convert_char3_sat(ulong3);
-char3 __ovld __cnfn convert_char3_rte(float3);
-char3 __ovld __cnfn convert_char3_sat_rte(float3);
-char3 __ovld __cnfn convert_char3_rtz(float3);
-char3 __ovld __cnfn convert_char3_sat_rtz(float3);
-char3 __ovld __cnfn convert_char3_rtp(float3);
-char3 __ovld __cnfn convert_char3_sat_rtp(float3);
-char3 __ovld __cnfn convert_char3_rtn(float3);
-char3 __ovld __cnfn convert_char3_sat_rtn(float3);
-char3 __ovld __cnfn convert_char3(float3);
-char3 __ovld __cnfn convert_char3_sat(float3);
-uchar3 __ovld __cnfn convert_uchar3_rte(char3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rte(char3);
-uchar3 __ovld __cnfn convert_uchar3_rtz(char3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtz(char3);
-uchar3 __ovld __cnfn convert_uchar3_rtp(char3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtp(char3);
-uchar3 __ovld __cnfn convert_uchar3_rtn(char3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtn(char3);
-uchar3 __ovld __cnfn convert_uchar3(char3);
-uchar3 __ovld __cnfn convert_uchar3_sat(char3);
-uchar3 __ovld __cnfn convert_uchar3_rte(uchar3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rte(uchar3);
-uchar3 __ovld __cnfn convert_uchar3_rtz(uchar3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtz(uchar3);
-uchar3 __ovld __cnfn convert_uchar3_rtp(uchar3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtp(uchar3);
-uchar3 __ovld __cnfn convert_uchar3_rtn(uchar3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtn(uchar3);
-uchar3 __ovld __cnfn convert_uchar3(uchar3);
-uchar3 __ovld __cnfn convert_uchar3_sat(uchar3);
-uchar3 __ovld __cnfn convert_uchar3_rte(short3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rte(short3);
-uchar3 __ovld __cnfn convert_uchar3_rtz(short3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtz(short3);
-uchar3 __ovld __cnfn convert_uchar3_rtp(short3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtp(short3);
-uchar3 __ovld __cnfn convert_uchar3_rtn(short3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtn(short3);
-uchar3 __ovld __cnfn convert_uchar3(short3);
-uchar3 __ovld __cnfn convert_uchar3_sat(short3);
-uchar3 __ovld __cnfn convert_uchar3_rte(ushort3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rte(ushort3);
-uchar3 __ovld __cnfn convert_uchar3_rtz(ushort3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtz(ushort3);
-uchar3 __ovld __cnfn convert_uchar3_rtp(ushort3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtp(ushort3);
-uchar3 __ovld __cnfn convert_uchar3_rtn(ushort3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtn(ushort3);
-uchar3 __ovld __cnfn convert_uchar3(ushort3);
-uchar3 __ovld __cnfn convert_uchar3_sat(ushort3);
-uchar3 __ovld __cnfn convert_uchar3_rte(int3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rte(int3);
-uchar3 __ovld __cnfn convert_uchar3_rtz(int3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtz(int3);
-uchar3 __ovld __cnfn convert_uchar3_rtp(int3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtp(int3);
-uchar3 __ovld __cnfn convert_uchar3_rtn(int3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtn(int3);
-uchar3 __ovld __cnfn convert_uchar3(int3);
-uchar3 __ovld __cnfn convert_uchar3_sat(int3);
-uchar3 __ovld __cnfn convert_uchar3_rte(uint3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rte(uint3);
-uchar3 __ovld __cnfn convert_uchar3_rtz(uint3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtz(uint3);
-uchar3 __ovld __cnfn convert_uchar3_rtp(uint3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtp(uint3);
-uchar3 __ovld __cnfn convert_uchar3_rtn(uint3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtn(uint3);
-uchar3 __ovld __cnfn convert_uchar3(uint3);
-uchar3 __ovld __cnfn convert_uchar3_sat(uint3);
-uchar3 __ovld __cnfn convert_uchar3_rte(long3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rte(long3);
-uchar3 __ovld __cnfn convert_uchar3_rtz(long3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtz(long3);
-uchar3 __ovld __cnfn convert_uchar3_rtp(long3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtp(long3);
-uchar3 __ovld __cnfn convert_uchar3_rtn(long3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtn(long3);
-uchar3 __ovld __cnfn convert_uchar3(long3);
-uchar3 __ovld __cnfn convert_uchar3_sat(long3);
-uchar3 __ovld __cnfn convert_uchar3_rte(ulong3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rte(ulong3);
-uchar3 __ovld __cnfn convert_uchar3_rtz(ulong3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtz(ulong3);
-uchar3 __ovld __cnfn convert_uchar3_rtp(ulong3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtp(ulong3);
-uchar3 __ovld __cnfn convert_uchar3_rtn(ulong3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtn(ulong3);
-uchar3 __ovld __cnfn convert_uchar3(ulong3);
-uchar3 __ovld __cnfn convert_uchar3_sat(ulong3);
-uchar3 __ovld __cnfn convert_uchar3_rte(float3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rte(float3);
-uchar3 __ovld __cnfn convert_uchar3_rtz(float3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtz(float3);
-uchar3 __ovld __cnfn convert_uchar3_rtp(float3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtp(float3);
-uchar3 __ovld __cnfn convert_uchar3_rtn(float3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtn(float3);
-uchar3 __ovld __cnfn convert_uchar3(float3);
-uchar3 __ovld __cnfn convert_uchar3_sat(float3);
-short3 __ovld __cnfn convert_short3_rte(char3);
-short3 __ovld __cnfn convert_short3_sat_rte(char3);
-short3 __ovld __cnfn convert_short3_rtz(char3);
-short3 __ovld __cnfn convert_short3_sat_rtz(char3);
-short3 __ovld __cnfn convert_short3_rtp(char3);
-short3 __ovld __cnfn convert_short3_sat_rtp(char3);
-short3 __ovld __cnfn convert_short3_rtn(char3);
-short3 __ovld __cnfn convert_short3_sat_rtn(char3);
-short3 __ovld __cnfn convert_short3(char3);
-short3 __ovld __cnfn convert_short3_sat(char3);
-short3 __ovld __cnfn convert_short3_rte(uchar3);
-short3 __ovld __cnfn convert_short3_sat_rte(uchar3);
-short3 __ovld __cnfn convert_short3_rtz(uchar3);
-short3 __ovld __cnfn convert_short3_sat_rtz(uchar3);
-short3 __ovld __cnfn convert_short3_rtp(uchar3);
-short3 __ovld __cnfn convert_short3_sat_rtp(uchar3);
-short3 __ovld __cnfn convert_short3_rtn(uchar3);
-short3 __ovld __cnfn convert_short3_sat_rtn(uchar3);
-short3 __ovld __cnfn convert_short3(uchar3);
-short3 __ovld __cnfn convert_short3_sat(uchar3);
-short3 __ovld __cnfn convert_short3_rte(short3);
-short3 __ovld __cnfn convert_short3_sat_rte(short3);
-short3 __ovld __cnfn convert_short3_rtz(short3);
-short3 __ovld __cnfn convert_short3_sat_rtz(short3);
-short3 __ovld __cnfn convert_short3_rtp(short3);
-short3 __ovld __cnfn convert_short3_sat_rtp(short3);
-short3 __ovld __cnfn convert_short3_rtn(short3);
-short3 __ovld __cnfn convert_short3_sat_rtn(short3);
-short3 __ovld __cnfn convert_short3(short3);
-short3 __ovld __cnfn convert_short3_sat(short3);
-short3 __ovld __cnfn convert_short3_rte(ushort3);
-short3 __ovld __cnfn convert_short3_sat_rte(ushort3);
-short3 __ovld __cnfn convert_short3_rtz(ushort3);
-short3 __ovld __cnfn convert_short3_sat_rtz(ushort3);
-short3 __ovld __cnfn convert_short3_rtp(ushort3);
-short3 __ovld __cnfn convert_short3_sat_rtp(ushort3);
-short3 __ovld __cnfn convert_short3_rtn(ushort3);
-short3 __ovld __cnfn convert_short3_sat_rtn(ushort3);
-short3 __ovld __cnfn convert_short3(ushort3);
-short3 __ovld __cnfn convert_short3_sat(ushort3);
-short3 __ovld __cnfn convert_short3_rte(int3);
-short3 __ovld __cnfn convert_short3_sat_rte(int3);
-short3 __ovld __cnfn convert_short3_rtz(int3);
-short3 __ovld __cnfn convert_short3_sat_rtz(int3);
-short3 __ovld __cnfn convert_short3_rtp(int3);
-short3 __ovld __cnfn convert_short3_sat_rtp(int3);
-short3 __ovld __cnfn convert_short3_rtn(int3);
-short3 __ovld __cnfn convert_short3_sat_rtn(int3);
-short3 __ovld __cnfn convert_short3(int3);
-short3 __ovld __cnfn convert_short3_sat(int3);
-short3 __ovld __cnfn convert_short3_rte(uint3);
-short3 __ovld __cnfn convert_short3_sat_rte(uint3);
-short3 __ovld __cnfn convert_short3_rtz(uint3);
-short3 __ovld __cnfn convert_short3_sat_rtz(uint3);
-short3 __ovld __cnfn convert_short3_rtp(uint3);
-short3 __ovld __cnfn convert_short3_sat_rtp(uint3);
-short3 __ovld __cnfn convert_short3_rtn(uint3);
-short3 __ovld __cnfn convert_short3_sat_rtn(uint3);
-short3 __ovld __cnfn convert_short3(uint3);
-short3 __ovld __cnfn convert_short3_sat(uint3);
-short3 __ovld __cnfn convert_short3_rte(long3);
-short3 __ovld __cnfn convert_short3_sat_rte(long3);
-short3 __ovld __cnfn convert_short3_rtz(long3);
-short3 __ovld __cnfn convert_short3_sat_rtz(long3);
-short3 __ovld __cnfn convert_short3_rtp(long3);
-short3 __ovld __cnfn convert_short3_sat_rtp(long3);
-short3 __ovld __cnfn convert_short3_rtn(long3);
-short3 __ovld __cnfn convert_short3_sat_rtn(long3);
-short3 __ovld __cnfn convert_short3(long3);
-short3 __ovld __cnfn convert_short3_sat(long3);
-short3 __ovld __cnfn convert_short3_rte(ulong3);
-short3 __ovld __cnfn convert_short3_sat_rte(ulong3);
-short3 __ovld __cnfn convert_short3_rtz(ulong3);
-short3 __ovld __cnfn convert_short3_sat_rtz(ulong3);
-short3 __ovld __cnfn convert_short3_rtp(ulong3);
-short3 __ovld __cnfn convert_short3_sat_rtp(ulong3);
-short3 __ovld __cnfn convert_short3_rtn(ulong3);
-short3 __ovld __cnfn convert_short3_sat_rtn(ulong3);
-short3 __ovld __cnfn convert_short3(ulong3);
-short3 __ovld __cnfn convert_short3_sat(ulong3);
-short3 __ovld __cnfn convert_short3_rte(float3);
-short3 __ovld __cnfn convert_short3_sat_rte(float3);
-short3 __ovld __cnfn convert_short3_rtz(float3);
-short3 __ovld __cnfn convert_short3_sat_rtz(float3);
-short3 __ovld __cnfn convert_short3_rtp(float3);
-short3 __ovld __cnfn convert_short3_sat_rtp(float3);
-short3 __ovld __cnfn convert_short3_rtn(float3);
-short3 __ovld __cnfn convert_short3_sat_rtn(float3);
-short3 __ovld __cnfn convert_short3(float3);
-short3 __ovld __cnfn convert_short3_sat(float3);
-ushort3 __ovld __cnfn convert_ushort3_rte(char3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rte(char3);
-ushort3 __ovld __cnfn convert_ushort3_rtz(char3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtz(char3);
-ushort3 __ovld __cnfn convert_ushort3_rtp(char3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtp(char3);
-ushort3 __ovld __cnfn convert_ushort3_rtn(char3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtn(char3);
-ushort3 __ovld __cnfn convert_ushort3(char3);
-ushort3 __ovld __cnfn convert_ushort3_sat(char3);
-ushort3 __ovld __cnfn convert_ushort3_rte(uchar3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rte(uchar3);
-ushort3 __ovld __cnfn convert_ushort3_rtz(uchar3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtz(uchar3);
-ushort3 __ovld __cnfn convert_ushort3_rtp(uchar3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtp(uchar3);
-ushort3 __ovld __cnfn convert_ushort3_rtn(uchar3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtn(uchar3);
-ushort3 __ovld __cnfn convert_ushort3(uchar3);
-ushort3 __ovld __cnfn convert_ushort3_sat(uchar3);
-ushort3 __ovld __cnfn convert_ushort3_rte(short3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rte(short3);
-ushort3 __ovld __cnfn convert_ushort3_rtz(short3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtz(short3);
-ushort3 __ovld __cnfn convert_ushort3_rtp(short3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtp(short3);
-ushort3 __ovld __cnfn convert_ushort3_rtn(short3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtn(short3);
-ushort3 __ovld __cnfn convert_ushort3(short3);
-ushort3 __ovld __cnfn convert_ushort3_sat(short3);
-ushort3 __ovld __cnfn convert_ushort3_rte(ushort3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rte(ushort3);
-ushort3 __ovld __cnfn convert_ushort3_rtz(ushort3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtz(ushort3);
-ushort3 __ovld __cnfn convert_ushort3_rtp(ushort3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtp(ushort3);
-ushort3 __ovld __cnfn convert_ushort3_rtn(ushort3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtn(ushort3);
-ushort3 __ovld __cnfn convert_ushort3(ushort3);
-ushort3 __ovld __cnfn convert_ushort3_sat(ushort3);
-ushort3 __ovld __cnfn convert_ushort3_rte(int3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rte(int3);
-ushort3 __ovld __cnfn convert_ushort3_rtz(int3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtz(int3);
-ushort3 __ovld __cnfn convert_ushort3_rtp(int3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtp(int3);
-ushort3 __ovld __cnfn convert_ushort3_rtn(int3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtn(int3);
-ushort3 __ovld __cnfn convert_ushort3(int3);
-ushort3 __ovld __cnfn convert_ushort3_sat(int3);
-ushort3 __ovld __cnfn convert_ushort3_rte(uint3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rte(uint3);
-ushort3 __ovld __cnfn convert_ushort3_rtz(uint3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtz(uint3);
-ushort3 __ovld __cnfn convert_ushort3_rtp(uint3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtp(uint3);
-ushort3 __ovld __cnfn convert_ushort3_rtn(uint3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtn(uint3);
-ushort3 __ovld __cnfn convert_ushort3(uint3);
-ushort3 __ovld __cnfn convert_ushort3_sat(uint3);
-ushort3 __ovld __cnfn convert_ushort3_rte(long3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rte(long3);
-ushort3 __ovld __cnfn convert_ushort3_rtz(long3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtz(long3);
-ushort3 __ovld __cnfn convert_ushort3_rtp(long3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtp(long3);
-ushort3 __ovld __cnfn convert_ushort3_rtn(long3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtn(long3);
-ushort3 __ovld __cnfn convert_ushort3(long3);
-ushort3 __ovld __cnfn convert_ushort3_sat(long3);
-ushort3 __ovld __cnfn convert_ushort3_rte(ulong3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rte(ulong3);
-ushort3 __ovld __cnfn convert_ushort3_rtz(ulong3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtz(ulong3);
-ushort3 __ovld __cnfn convert_ushort3_rtp(ulong3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtp(ulong3);
-ushort3 __ovld __cnfn convert_ushort3_rtn(ulong3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtn(ulong3);
-ushort3 __ovld __cnfn convert_ushort3(ulong3);
-ushort3 __ovld __cnfn convert_ushort3_sat(ulong3);
-ushort3 __ovld __cnfn convert_ushort3_rte(float3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rte(float3);
-ushort3 __ovld __cnfn convert_ushort3_rtz(float3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtz(float3);
-ushort3 __ovld __cnfn convert_ushort3_rtp(float3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtp(float3);
-ushort3 __ovld __cnfn convert_ushort3_rtn(float3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtn(float3);
-ushort3 __ovld __cnfn convert_ushort3(float3);
-ushort3 __ovld __cnfn convert_ushort3_sat(float3);
-int3 __ovld __cnfn convert_int3_rte(char3);
-int3 __ovld __cnfn convert_int3_sat_rte(char3);
-int3 __ovld __cnfn convert_int3_rtz(char3);
-int3 __ovld __cnfn convert_int3_sat_rtz(char3);
-int3 __ovld __cnfn convert_int3_rtp(char3);
-int3 __ovld __cnfn convert_int3_sat_rtp(char3);
-int3 __ovld __cnfn convert_int3_rtn(char3);
-int3 __ovld __cnfn convert_int3_sat_rtn(char3);
-int3 __ovld __cnfn convert_int3(char3);
-int3 __ovld __cnfn convert_int3_sat(char3);
-int3 __ovld __cnfn convert_int3_rte(uchar3);
-int3 __ovld __cnfn convert_int3_sat_rte(uchar3);
-int3 __ovld __cnfn convert_int3_rtz(uchar3);
-int3 __ovld __cnfn convert_int3_sat_rtz(uchar3);
-int3 __ovld __cnfn convert_int3_rtp(uchar3);
-int3 __ovld __cnfn convert_int3_sat_rtp(uchar3);
-int3 __ovld __cnfn convert_int3_rtn(uchar3);
-int3 __ovld __cnfn convert_int3_sat_rtn(uchar3);
-int3 __ovld __cnfn convert_int3(uchar3);
-int3 __ovld __cnfn convert_int3_sat(uchar3);
-int3 __ovld __cnfn convert_int3_rte(short3);
-int3 __ovld __cnfn convert_int3_sat_rte(short3);
-int3 __ovld __cnfn convert_int3_rtz(short3);
-int3 __ovld __cnfn convert_int3_sat_rtz(short3);
-int3 __ovld __cnfn convert_int3_rtp(short3);
-int3 __ovld __cnfn convert_int3_sat_rtp(short3);
-int3 __ovld __cnfn convert_int3_rtn(short3);
-int3 __ovld __cnfn convert_int3_sat_rtn(short3);
-int3 __ovld __cnfn convert_int3(short3);
-int3 __ovld __cnfn convert_int3_sat(short3);
-int3 __ovld __cnfn convert_int3_rte(ushort3);
-int3 __ovld __cnfn convert_int3_sat_rte(ushort3);
-int3 __ovld __cnfn convert_int3_rtz(ushort3);
-int3 __ovld __cnfn convert_int3_sat_rtz(ushort3);
-int3 __ovld __cnfn convert_int3_rtp(ushort3);
-int3 __ovld __cnfn convert_int3_sat_rtp(ushort3);
-int3 __ovld __cnfn convert_int3_rtn(ushort3);
-int3 __ovld __cnfn convert_int3_sat_rtn(ushort3);
-int3 __ovld __cnfn convert_int3(ushort3);
-int3 __ovld __cnfn convert_int3_sat(ushort3);
-int3 __ovld __cnfn convert_int3_rte(int3);
-int3 __ovld __cnfn convert_int3_sat_rte(int3);
-int3 __ovld __cnfn convert_int3_rtz(int3);
-int3 __ovld __cnfn convert_int3_sat_rtz(int3);
-int3 __ovld __cnfn convert_int3_rtp(int3);
-int3 __ovld __cnfn convert_int3_sat_rtp(int3);
-int3 __ovld __cnfn convert_int3_rtn(int3);
-int3 __ovld __cnfn convert_int3_sat_rtn(int3);
-int3 __ovld __cnfn convert_int3(int3);
-int3 __ovld __cnfn convert_int3_sat(int3);
-int3 __ovld __cnfn convert_int3_rte(uint3);
-int3 __ovld __cnfn convert_int3_sat_rte(uint3);
-int3 __ovld __cnfn convert_int3_rtz(uint3);
-int3 __ovld __cnfn convert_int3_sat_rtz(uint3);
-int3 __ovld __cnfn convert_int3_rtp(uint3);
-int3 __ovld __cnfn convert_int3_sat_rtp(uint3);
-int3 __ovld __cnfn convert_int3_rtn(uint3);
-int3 __ovld __cnfn convert_int3_sat_rtn(uint3);
-int3 __ovld __cnfn convert_int3(uint3);
-int3 __ovld __cnfn convert_int3_sat(uint3);
-int3 __ovld __cnfn convert_int3_rte(long3);
-int3 __ovld __cnfn convert_int3_sat_rte(long3);
-int3 __ovld __cnfn convert_int3_rtz(long3);
-int3 __ovld __cnfn convert_int3_sat_rtz(long3);
-int3 __ovld __cnfn convert_int3_rtp(long3);
-int3 __ovld __cnfn convert_int3_sat_rtp(long3);
-int3 __ovld __cnfn convert_int3_rtn(long3);
-int3 __ovld __cnfn convert_int3_sat_rtn(long3);
-int3 __ovld __cnfn convert_int3(long3);
-int3 __ovld __cnfn convert_int3_sat(long3);
-int3 __ovld __cnfn convert_int3_rte(ulong3);
-int3 __ovld __cnfn convert_int3_sat_rte(ulong3);
-int3 __ovld __cnfn convert_int3_rtz(ulong3);
-int3 __ovld __cnfn convert_int3_sat_rtz(ulong3);
-int3 __ovld __cnfn convert_int3_rtp(ulong3);
-int3 __ovld __cnfn convert_int3_sat_rtp(ulong3);
-int3 __ovld __cnfn convert_int3_rtn(ulong3);
-int3 __ovld __cnfn convert_int3_sat_rtn(ulong3);
-int3 __ovld __cnfn convert_int3(ulong3);
-int3 __ovld __cnfn convert_int3_sat(ulong3);
-int3 __ovld __cnfn convert_int3_rte(float3);
-int3 __ovld __cnfn convert_int3_sat_rte(float3);
-int3 __ovld __cnfn convert_int3_rtz(float3);
-int3 __ovld __cnfn convert_int3_sat_rtz(float3);
-int3 __ovld __cnfn convert_int3_rtp(float3);
-int3 __ovld __cnfn convert_int3_sat_rtp(float3);
-int3 __ovld __cnfn convert_int3_rtn(float3);
-int3 __ovld __cnfn convert_int3_sat_rtn(float3);
-int3 __ovld __cnfn convert_int3(float3);
-int3 __ovld __cnfn convert_int3_sat(float3);
-uint3 __ovld __cnfn convert_uint3_rte(char3);
-uint3 __ovld __cnfn convert_uint3_sat_rte(char3);
-uint3 __ovld __cnfn convert_uint3_rtz(char3);
-uint3 __ovld __cnfn convert_uint3_sat_rtz(char3);
-uint3 __ovld __cnfn convert_uint3_rtp(char3);
-uint3 __ovld __cnfn convert_uint3_sat_rtp(char3);
-uint3 __ovld __cnfn convert_uint3_rtn(char3);
-uint3 __ovld __cnfn convert_uint3_sat_rtn(char3);
-uint3 __ovld __cnfn convert_uint3(char3);
-uint3 __ovld __cnfn convert_uint3_sat(char3);
-uint3 __ovld __cnfn convert_uint3_rte(uchar3);
-uint3 __ovld __cnfn convert_uint3_sat_rte(uchar3);
-uint3 __ovld __cnfn convert_uint3_rtz(uchar3);
-uint3 __ovld __cnfn convert_uint3_sat_rtz(uchar3);
-uint3 __ovld __cnfn convert_uint3_rtp(uchar3);
-uint3 __ovld __cnfn convert_uint3_sat_rtp(uchar3);
-uint3 __ovld __cnfn convert_uint3_rtn(uchar3);
-uint3 __ovld __cnfn convert_uint3_sat_rtn(uchar3);
-uint3 __ovld __cnfn convert_uint3(uchar3);
-uint3 __ovld __cnfn convert_uint3_sat(uchar3);
-uint3 __ovld __cnfn convert_uint3_rte(short3);
-uint3 __ovld __cnfn convert_uint3_sat_rte(short3);
-uint3 __ovld __cnfn convert_uint3_rtz(short3);
-uint3 __ovld __cnfn convert_uint3_sat_rtz(short3);
-uint3 __ovld __cnfn convert_uint3_rtp(short3);
-uint3 __ovld __cnfn convert_uint3_sat_rtp(short3);
-uint3 __ovld __cnfn convert_uint3_rtn(short3);
-uint3 __ovld __cnfn convert_uint3_sat_rtn(short3);
-uint3 __ovld __cnfn convert_uint3(short3);
-uint3 __ovld __cnfn convert_uint3_sat(short3);
-uint3 __ovld __cnfn convert_uint3_rte(ushort3);
-uint3 __ovld __cnfn convert_uint3_sat_rte(ushort3);
-uint3 __ovld __cnfn convert_uint3_rtz(ushort3);
-uint3 __ovld __cnfn convert_uint3_sat_rtz(ushort3);
-uint3 __ovld __cnfn convert_uint3_rtp(ushort3);
-uint3 __ovld __cnfn convert_uint3_sat_rtp(ushort3);
-uint3 __ovld __cnfn convert_uint3_rtn(ushort3);
-uint3 __ovld __cnfn convert_uint3_sat_rtn(ushort3);
-uint3 __ovld __cnfn convert_uint3(ushort3);
-uint3 __ovld __cnfn convert_uint3_sat(ushort3);
-uint3 __ovld __cnfn convert_uint3_rte(int3);
-uint3 __ovld __cnfn convert_uint3_sat_rte(int3);
-uint3 __ovld __cnfn convert_uint3_rtz(int3);
-uint3 __ovld __cnfn convert_uint3_sat_rtz(int3);
-uint3 __ovld __cnfn convert_uint3_rtp(int3);
-uint3 __ovld __cnfn convert_uint3_sat_rtp(int3);
-uint3 __ovld __cnfn convert_uint3_rtn(int3);
-uint3 __ovld __cnfn convert_uint3_sat_rtn(int3);
-uint3 __ovld __cnfn convert_uint3(int3);
-uint3 __ovld __cnfn convert_uint3_sat(int3);
-uint3 __ovld __cnfn convert_uint3_rte(uint3);
-uint3 __ovld __cnfn convert_uint3_sat_rte(uint3);
-uint3 __ovld __cnfn convert_uint3_rtz(uint3);
-uint3 __ovld __cnfn convert_uint3_sat_rtz(uint3);
-uint3 __ovld __cnfn convert_uint3_rtp(uint3);
-uint3 __ovld __cnfn convert_uint3_sat_rtp(uint3);
-uint3 __ovld __cnfn convert_uint3_rtn(uint3);
-uint3 __ovld __cnfn convert_uint3_sat_rtn(uint3);
-uint3 __ovld __cnfn convert_uint3(uint3);
-uint3 __ovld __cnfn convert_uint3_sat(uint3);
-uint3 __ovld __cnfn convert_uint3_rte(long3);
-uint3 __ovld __cnfn convert_uint3_sat_rte(long3);
-uint3 __ovld __cnfn convert_uint3_rtz(long3);
-uint3 __ovld __cnfn convert_uint3_sat_rtz(long3);
-uint3 __ovld __cnfn convert_uint3_rtp(long3);
-uint3 __ovld __cnfn convert_uint3_sat_rtp(long3);
-uint3 __ovld __cnfn convert_uint3_rtn(long3);
-uint3 __ovld __cnfn convert_uint3_sat_rtn(long3);
-uint3 __ovld __cnfn convert_uint3(long3);
-uint3 __ovld __cnfn convert_uint3_sat(long3);
-uint3 __ovld __cnfn convert_uint3_rte(ulong3);
-uint3 __ovld __cnfn convert_uint3_sat_rte(ulong3);
-uint3 __ovld __cnfn convert_uint3_rtz(ulong3);
-uint3 __ovld __cnfn convert_uint3_sat_rtz(ulong3);
-uint3 __ovld __cnfn convert_uint3_rtp(ulong3);
-uint3 __ovld __cnfn convert_uint3_sat_rtp(ulong3);
-uint3 __ovld __cnfn convert_uint3_rtn(ulong3);
-uint3 __ovld __cnfn convert_uint3_sat_rtn(ulong3);
-uint3 __ovld __cnfn convert_uint3(ulong3);
-uint3 __ovld __cnfn convert_uint3_sat(ulong3);
-uint3 __ovld __cnfn convert_uint3_rte(float3);
-uint3 __ovld __cnfn convert_uint3_sat_rte(float3);
-uint3 __ovld __cnfn convert_uint3_rtz(float3);
-uint3 __ovld __cnfn convert_uint3_sat_rtz(float3);
-uint3 __ovld __cnfn convert_uint3_rtp(float3);
-uint3 __ovld __cnfn convert_uint3_sat_rtp(float3);
-uint3 __ovld __cnfn convert_uint3_rtn(float3);
-uint3 __ovld __cnfn convert_uint3_sat_rtn(float3);
-uint3 __ovld __cnfn convert_uint3(float3);
-uint3 __ovld __cnfn convert_uint3_sat(float3);
-long3 __ovld __cnfn convert_long3_rte(char3);
-long3 __ovld __cnfn convert_long3_sat_rte(char3);
-long3 __ovld __cnfn convert_long3_rtz(char3);
-long3 __ovld __cnfn convert_long3_sat_rtz(char3);
-long3 __ovld __cnfn convert_long3_rtp(char3);
-long3 __ovld __cnfn convert_long3_sat_rtp(char3);
-long3 __ovld __cnfn convert_long3_rtn(char3);
-long3 __ovld __cnfn convert_long3_sat_rtn(char3);
-long3 __ovld __cnfn convert_long3(char3);
-long3 __ovld __cnfn convert_long3_sat(char3);
-long3 __ovld __cnfn convert_long3_rte(uchar3);
-long3 __ovld __cnfn convert_long3_sat_rte(uchar3);
-long3 __ovld __cnfn convert_long3_rtz(uchar3);
-long3 __ovld __cnfn convert_long3_sat_rtz(uchar3);
-long3 __ovld __cnfn convert_long3_rtp(uchar3);
-long3 __ovld __cnfn convert_long3_sat_rtp(uchar3);
-long3 __ovld __cnfn convert_long3_rtn(uchar3);
-long3 __ovld __cnfn convert_long3_sat_rtn(uchar3);
-long3 __ovld __cnfn convert_long3(uchar3);
-long3 __ovld __cnfn convert_long3_sat(uchar3);
-long3 __ovld __cnfn convert_long3_rte(short3);
-long3 __ovld __cnfn convert_long3_sat_rte(short3);
-long3 __ovld __cnfn convert_long3_rtz(short3);
-long3 __ovld __cnfn convert_long3_sat_rtz(short3);
-long3 __ovld __cnfn convert_long3_rtp(short3);
-long3 __ovld __cnfn convert_long3_sat_rtp(short3);
-long3 __ovld __cnfn convert_long3_rtn(short3);
-long3 __ovld __cnfn convert_long3_sat_rtn(short3);
-long3 __ovld __cnfn convert_long3(short3);
-long3 __ovld __cnfn convert_long3_sat(short3);
-long3 __ovld __cnfn convert_long3_rte(ushort3);
-long3 __ovld __cnfn convert_long3_sat_rte(ushort3);
-long3 __ovld __cnfn convert_long3_rtz(ushort3);
-long3 __ovld __cnfn convert_long3_sat_rtz(ushort3);
-long3 __ovld __cnfn convert_long3_rtp(ushort3);
-long3 __ovld __cnfn convert_long3_sat_rtp(ushort3);
-long3 __ovld __cnfn convert_long3_rtn(ushort3);
-long3 __ovld __cnfn convert_long3_sat_rtn(ushort3);
-long3 __ovld __cnfn convert_long3(ushort3);
-long3 __ovld __cnfn convert_long3_sat(ushort3);
-long3 __ovld __cnfn convert_long3_rte(int3);
-long3 __ovld __cnfn convert_long3_sat_rte(int3);
-long3 __ovld __cnfn convert_long3_rtz(int3);
-long3 __ovld __cnfn convert_long3_sat_rtz(int3);
-long3 __ovld __cnfn convert_long3_rtp(int3);
-long3 __ovld __cnfn convert_long3_sat_rtp(int3);
-long3 __ovld __cnfn convert_long3_rtn(int3);
-long3 __ovld __cnfn convert_long3_sat_rtn(int3);
-long3 __ovld __cnfn convert_long3(int3);
-long3 __ovld __cnfn convert_long3_sat(int3);
-long3 __ovld __cnfn convert_long3_rte(uint3);
-long3 __ovld __cnfn convert_long3_sat_rte(uint3);
-long3 __ovld __cnfn convert_long3_rtz(uint3);
-long3 __ovld __cnfn convert_long3_sat_rtz(uint3);
-long3 __ovld __cnfn convert_long3_rtp(uint3);
-long3 __ovld __cnfn convert_long3_sat_rtp(uint3);
-long3 __ovld __cnfn convert_long3_rtn(uint3);
-long3 __ovld __cnfn convert_long3_sat_rtn(uint3);
-long3 __ovld __cnfn convert_long3(uint3);
-long3 __ovld __cnfn convert_long3_sat(uint3);
-long3 __ovld __cnfn convert_long3_rte(long3);
-long3 __ovld __cnfn convert_long3_sat_rte(long3);
-long3 __ovld __cnfn convert_long3_rtz(long3);
-long3 __ovld __cnfn convert_long3_sat_rtz(long3);
-long3 __ovld __cnfn convert_long3_rtp(long3);
-long3 __ovld __cnfn convert_long3_sat_rtp(long3);
-long3 __ovld __cnfn convert_long3_rtn(long3);
-long3 __ovld __cnfn convert_long3_sat_rtn(long3);
-long3 __ovld __cnfn convert_long3(long3);
-long3 __ovld __cnfn convert_long3_sat(long3);
-long3 __ovld __cnfn convert_long3_rte(ulong3);
-long3 __ovld __cnfn convert_long3_sat_rte(ulong3);
-long3 __ovld __cnfn convert_long3_rtz(ulong3);
-long3 __ovld __cnfn convert_long3_sat_rtz(ulong3);
-long3 __ovld __cnfn convert_long3_rtp(ulong3);
-long3 __ovld __cnfn convert_long3_sat_rtp(ulong3);
-long3 __ovld __cnfn convert_long3_rtn(ulong3);
-long3 __ovld __cnfn convert_long3_sat_rtn(ulong3);
-long3 __ovld __cnfn convert_long3(ulong3);
-long3 __ovld __cnfn convert_long3_sat(ulong3);
-long3 __ovld __cnfn convert_long3_rte(float3);
-long3 __ovld __cnfn convert_long3_sat_rte(float3);
-long3 __ovld __cnfn convert_long3_rtz(float3);
-long3 __ovld __cnfn convert_long3_sat_rtz(float3);
-long3 __ovld __cnfn convert_long3_rtp(float3);
-long3 __ovld __cnfn convert_long3_sat_rtp(float3);
-long3 __ovld __cnfn convert_long3_rtn(float3);
-long3 __ovld __cnfn convert_long3_sat_rtn(float3);
-long3 __ovld __cnfn convert_long3(float3);
-long3 __ovld __cnfn convert_long3_sat(float3);
-ulong3 __ovld __cnfn convert_ulong3_rte(char3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rte(char3);
-ulong3 __ovld __cnfn convert_ulong3_rtz(char3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtz(char3);
-ulong3 __ovld __cnfn convert_ulong3_rtp(char3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtp(char3);
-ulong3 __ovld __cnfn convert_ulong3_rtn(char3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtn(char3);
-ulong3 __ovld __cnfn convert_ulong3(char3);
-ulong3 __ovld __cnfn convert_ulong3_sat(char3);
-ulong3 __ovld __cnfn convert_ulong3_rte(uchar3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rte(uchar3);
-ulong3 __ovld __cnfn convert_ulong3_rtz(uchar3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtz(uchar3);
-ulong3 __ovld __cnfn convert_ulong3_rtp(uchar3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtp(uchar3);
-ulong3 __ovld __cnfn convert_ulong3_rtn(uchar3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtn(uchar3);
-ulong3 __ovld __cnfn convert_ulong3(uchar3);
-ulong3 __ovld __cnfn convert_ulong3_sat(uchar3);
-ulong3 __ovld __cnfn convert_ulong3_rte(short3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rte(short3);
-ulong3 __ovld __cnfn convert_ulong3_rtz(short3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtz(short3);
-ulong3 __ovld __cnfn convert_ulong3_rtp(short3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtp(short3);
-ulong3 __ovld __cnfn convert_ulong3_rtn(short3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtn(short3);
-ulong3 __ovld __cnfn convert_ulong3(short3);
-ulong3 __ovld __cnfn convert_ulong3_sat(short3);
-ulong3 __ovld __cnfn convert_ulong3_rte(ushort3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rte(ushort3);
-ulong3 __ovld __cnfn convert_ulong3_rtz(ushort3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtz(ushort3);
-ulong3 __ovld __cnfn convert_ulong3_rtp(ushort3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtp(ushort3);
-ulong3 __ovld __cnfn convert_ulong3_rtn(ushort3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtn(ushort3);
-ulong3 __ovld __cnfn convert_ulong3(ushort3);
-ulong3 __ovld __cnfn convert_ulong3_sat(ushort3);
-ulong3 __ovld __cnfn convert_ulong3_rte(int3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rte(int3);
-ulong3 __ovld __cnfn convert_ulong3_rtz(int3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtz(int3);
-ulong3 __ovld __cnfn convert_ulong3_rtp(int3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtp(int3);
-ulong3 __ovld __cnfn convert_ulong3_rtn(int3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtn(int3);
-ulong3 __ovld __cnfn convert_ulong3(int3);
-ulong3 __ovld __cnfn convert_ulong3_sat(int3);
-ulong3 __ovld __cnfn convert_ulong3_rte(uint3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rte(uint3);
-ulong3 __ovld __cnfn convert_ulong3_rtz(uint3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtz(uint3);
-ulong3 __ovld __cnfn convert_ulong3_rtp(uint3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtp(uint3);
-ulong3 __ovld __cnfn convert_ulong3_rtn(uint3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtn(uint3);
-ulong3 __ovld __cnfn convert_ulong3(uint3);
-ulong3 __ovld __cnfn convert_ulong3_sat(uint3);
-ulong3 __ovld __cnfn convert_ulong3_rte(long3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rte(long3);
-ulong3 __ovld __cnfn convert_ulong3_rtz(long3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtz(long3);
-ulong3 __ovld __cnfn convert_ulong3_rtp(long3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtp(long3);
-ulong3 __ovld __cnfn convert_ulong3_rtn(long3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtn(long3);
-ulong3 __ovld __cnfn convert_ulong3(long3);
-ulong3 __ovld __cnfn convert_ulong3_sat(long3);
-ulong3 __ovld __cnfn convert_ulong3_rte(ulong3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rte(ulong3);
-ulong3 __ovld __cnfn convert_ulong3_rtz(ulong3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtz(ulong3);
-ulong3 __ovld __cnfn convert_ulong3_rtp(ulong3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtp(ulong3);
-ulong3 __ovld __cnfn convert_ulong3_rtn(ulong3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtn(ulong3);
-ulong3 __ovld __cnfn convert_ulong3(ulong3);
-ulong3 __ovld __cnfn convert_ulong3_sat(ulong3);
-ulong3 __ovld __cnfn convert_ulong3_rte(float3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rte(float3);
-ulong3 __ovld __cnfn convert_ulong3_rtz(float3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtz(float3);
-ulong3 __ovld __cnfn convert_ulong3_rtp(float3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtp(float3);
-ulong3 __ovld __cnfn convert_ulong3_rtn(float3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtn(float3);
-ulong3 __ovld __cnfn convert_ulong3(float3);
-ulong3 __ovld __cnfn convert_ulong3_sat(float3);
-float3 __ovld __cnfn convert_float3_rte(char3);
-float3 __ovld __cnfn convert_float3_rtz(char3);
-float3 __ovld __cnfn convert_float3_rtp(char3);
-float3 __ovld __cnfn convert_float3_rtn(char3);
-float3 __ovld __cnfn convert_float3(char3);
-float3 __ovld __cnfn convert_float3_rte(uchar3);
-float3 __ovld __cnfn convert_float3_rtz(uchar3);
-float3 __ovld __cnfn convert_float3_rtp(uchar3);
-float3 __ovld __cnfn convert_float3_rtn(uchar3);
-float3 __ovld __cnfn convert_float3(uchar3);
-float3 __ovld __cnfn convert_float3_rte(short3);
-float3 __ovld __cnfn convert_float3_rtz(short3);
-float3 __ovld __cnfn convert_float3_rtp(short3);
-float3 __ovld __cnfn convert_float3_rtn(short3);
-float3 __ovld __cnfn convert_float3(short3);
-float3 __ovld __cnfn convert_float3_rte(ushort3);
-float3 __ovld __cnfn convert_float3_rtz(ushort3);
-float3 __ovld __cnfn convert_float3_rtp(ushort3);
-float3 __ovld __cnfn convert_float3_rtn(ushort3);
-float3 __ovld __cnfn convert_float3(ushort3);
-float3 __ovld __cnfn convert_float3_rte(int3);
-float3 __ovld __cnfn convert_float3_rtz(int3);
-float3 __ovld __cnfn convert_float3_rtp(int3);
-float3 __ovld __cnfn convert_float3_rtn(int3);
-float3 __ovld __cnfn convert_float3(int3);
-float3 __ovld __cnfn convert_float3_rte(uint3);
-float3 __ovld __cnfn convert_float3_rtz(uint3);
-float3 __ovld __cnfn convert_float3_rtp(uint3);
-float3 __ovld __cnfn convert_float3_rtn(uint3);
-float3 __ovld __cnfn convert_float3(uint3);
-float3 __ovld __cnfn convert_float3_rte(long3);
-float3 __ovld __cnfn convert_float3_rtz(long3);
-float3 __ovld __cnfn convert_float3_rtp(long3);
-float3 __ovld __cnfn convert_float3_rtn(long3);
-float3 __ovld __cnfn convert_float3(long3);
-float3 __ovld __cnfn convert_float3_rte(ulong3);
-float3 __ovld __cnfn convert_float3_rtz(ulong3);
-float3 __ovld __cnfn convert_float3_rtp(ulong3);
-float3 __ovld __cnfn convert_float3_rtn(ulong3);
-float3 __ovld __cnfn convert_float3(ulong3);
-float3 __ovld __cnfn convert_float3_rte(float3);
-float3 __ovld __cnfn convert_float3_rtz(float3);
-float3 __ovld __cnfn convert_float3_rtp(float3);
-float3 __ovld __cnfn convert_float3_rtn(float3);
-float3 __ovld __cnfn convert_float3(float3);
-char4 __ovld __cnfn convert_char4_rte(char4);
-char4 __ovld __cnfn convert_char4_sat_rte(char4);
-char4 __ovld __cnfn convert_char4_rtz(char4);
-char4 __ovld __cnfn convert_char4_sat_rtz(char4);
-char4 __ovld __cnfn convert_char4_rtp(char4);
-char4 __ovld __cnfn convert_char4_sat_rtp(char4);
-char4 __ovld __cnfn convert_char4_rtn(char4);
-char4 __ovld __cnfn convert_char4_sat_rtn(char4);
-char4 __ovld __cnfn convert_char4(char4);
-char4 __ovld __cnfn convert_char4_sat(char4);
-char4 __ovld __cnfn convert_char4_rte(uchar4);
-char4 __ovld __cnfn convert_char4_sat_rte(uchar4);
-char4 __ovld __cnfn convert_char4_rtz(uchar4);
-char4 __ovld __cnfn convert_char4_sat_rtz(uchar4);
-char4 __ovld __cnfn convert_char4_rtp(uchar4);
-char4 __ovld __cnfn convert_char4_sat_rtp(uchar4);
-char4 __ovld __cnfn convert_char4_rtn(uchar4);
-char4 __ovld __cnfn convert_char4_sat_rtn(uchar4);
-char4 __ovld __cnfn convert_char4(uchar4);
-char4 __ovld __cnfn convert_char4_sat(uchar4);
-char4 __ovld __cnfn convert_char4_rte(short4);
-char4 __ovld __cnfn convert_char4_sat_rte(short4);
-char4 __ovld __cnfn convert_char4_rtz(short4);
-char4 __ovld __cnfn convert_char4_sat_rtz(short4);
-char4 __ovld __cnfn convert_char4_rtp(short4);
-char4 __ovld __cnfn convert_char4_sat_rtp(short4);
-char4 __ovld __cnfn convert_char4_rtn(short4);
-char4 __ovld __cnfn convert_char4_sat_rtn(short4);
-char4 __ovld __cnfn convert_char4(short4);
-char4 __ovld __cnfn convert_char4_sat(short4);
-char4 __ovld __cnfn convert_char4_rte(ushort4);
-char4 __ovld __cnfn convert_char4_sat_rte(ushort4);
-char4 __ovld __cnfn convert_char4_rtz(ushort4);
-char4 __ovld __cnfn convert_char4_sat_rtz(ushort4);
-char4 __ovld __cnfn convert_char4_rtp(ushort4);
-char4 __ovld __cnfn convert_char4_sat_rtp(ushort4);
-char4 __ovld __cnfn convert_char4_rtn(ushort4);
-char4 __ovld __cnfn convert_char4_sat_rtn(ushort4);
-char4 __ovld __cnfn convert_char4(ushort4);
-char4 __ovld __cnfn convert_char4_sat(ushort4);
-char4 __ovld __cnfn convert_char4_rte(int4);
-char4 __ovld __cnfn convert_char4_sat_rte(int4);
-char4 __ovld __cnfn convert_char4_rtz(int4);
-char4 __ovld __cnfn convert_char4_sat_rtz(int4);
-char4 __ovld __cnfn convert_char4_rtp(int4);
-char4 __ovld __cnfn convert_char4_sat_rtp(int4);
-char4 __ovld __cnfn convert_char4_rtn(int4);
-char4 __ovld __cnfn convert_char4_sat_rtn(int4);
-char4 __ovld __cnfn convert_char4(int4);
-char4 __ovld __cnfn convert_char4_sat(int4);
-char4 __ovld __cnfn convert_char4_rte(uint4);
-char4 __ovld __cnfn convert_char4_sat_rte(uint4);
-char4 __ovld __cnfn convert_char4_rtz(uint4);
-char4 __ovld __cnfn convert_char4_sat_rtz(uint4);
-char4 __ovld __cnfn convert_char4_rtp(uint4);
-char4 __ovld __cnfn convert_char4_sat_rtp(uint4);
-char4 __ovld __cnfn convert_char4_rtn(uint4);
-char4 __ovld __cnfn convert_char4_sat_rtn(uint4);
-char4 __ovld __cnfn convert_char4(uint4);
-char4 __ovld __cnfn convert_char4_sat(uint4);
-char4 __ovld __cnfn convert_char4_rte(long4);
-char4 __ovld __cnfn convert_char4_sat_rte(long4);
-char4 __ovld __cnfn convert_char4_rtz(long4);
-char4 __ovld __cnfn convert_char4_sat_rtz(long4);
-char4 __ovld __cnfn convert_char4_rtp(long4);
-char4 __ovld __cnfn convert_char4_sat_rtp(long4);
-char4 __ovld __cnfn convert_char4_rtn(long4);
-char4 __ovld __cnfn convert_char4_sat_rtn(long4);
-char4 __ovld __cnfn convert_char4(long4);
-char4 __ovld __cnfn convert_char4_sat(long4);
-char4 __ovld __cnfn convert_char4_rte(ulong4);
-char4 __ovld __cnfn convert_char4_sat_rte(ulong4);
-char4 __ovld __cnfn convert_char4_rtz(ulong4);
-char4 __ovld __cnfn convert_char4_sat_rtz(ulong4);
-char4 __ovld __cnfn convert_char4_rtp(ulong4);
-char4 __ovld __cnfn convert_char4_sat_rtp(ulong4);
-char4 __ovld __cnfn convert_char4_rtn(ulong4);
-char4 __ovld __cnfn convert_char4_sat_rtn(ulong4);
-char4 __ovld __cnfn convert_char4(ulong4);
-char4 __ovld __cnfn convert_char4_sat(ulong4);
-char4 __ovld __cnfn convert_char4_rte(float4);
-char4 __ovld __cnfn convert_char4_sat_rte(float4);
-char4 __ovld __cnfn convert_char4_rtz(float4);
-char4 __ovld __cnfn convert_char4_sat_rtz(float4);
-char4 __ovld __cnfn convert_char4_rtp(float4);
-char4 __ovld __cnfn convert_char4_sat_rtp(float4);
-char4 __ovld __cnfn convert_char4_rtn(float4);
-char4 __ovld __cnfn convert_char4_sat_rtn(float4);
-char4 __ovld __cnfn convert_char4(float4);
-char4 __ovld __cnfn convert_char4_sat(float4);
-uchar4 __ovld __cnfn convert_uchar4_rte(char4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rte(char4);
-uchar4 __ovld __cnfn convert_uchar4_rtz(char4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtz(char4);
-uchar4 __ovld __cnfn convert_uchar4_rtp(char4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtp(char4);
-uchar4 __ovld __cnfn convert_uchar4_rtn(char4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtn(char4);
-uchar4 __ovld __cnfn convert_uchar4(char4);
-uchar4 __ovld __cnfn convert_uchar4_sat(char4);
-uchar4 __ovld __cnfn convert_uchar4_rte(uchar4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rte(uchar4);
-uchar4 __ovld __cnfn convert_uchar4_rtz(uchar4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtz(uchar4);
-uchar4 __ovld __cnfn convert_uchar4_rtp(uchar4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtp(uchar4);
-uchar4 __ovld __cnfn convert_uchar4_rtn(uchar4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtn(uchar4);
-uchar4 __ovld __cnfn convert_uchar4(uchar4);
-uchar4 __ovld __cnfn convert_uchar4_sat(uchar4);
-uchar4 __ovld __cnfn convert_uchar4_rte(short4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rte(short4);
-uchar4 __ovld __cnfn convert_uchar4_rtz(short4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtz(short4);
-uchar4 __ovld __cnfn convert_uchar4_rtp(short4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtp(short4);
-uchar4 __ovld __cnfn convert_uchar4_rtn(short4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtn(short4);
-uchar4 __ovld __cnfn convert_uchar4(short4);
-uchar4 __ovld __cnfn convert_uchar4_sat(short4);
-uchar4 __ovld __cnfn convert_uchar4_rte(ushort4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rte(ushort4);
-uchar4 __ovld __cnfn convert_uchar4_rtz(ushort4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtz(ushort4);
-uchar4 __ovld __cnfn convert_uchar4_rtp(ushort4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtp(ushort4);
-uchar4 __ovld __cnfn convert_uchar4_rtn(ushort4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtn(ushort4);
-uchar4 __ovld __cnfn convert_uchar4(ushort4);
-uchar4 __ovld __cnfn convert_uchar4_sat(ushort4);
-uchar4 __ovld __cnfn convert_uchar4_rte(int4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rte(int4);
-uchar4 __ovld __cnfn convert_uchar4_rtz(int4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtz(int4);
-uchar4 __ovld __cnfn convert_uchar4_rtp(int4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtp(int4);
-uchar4 __ovld __cnfn convert_uchar4_rtn(int4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtn(int4);
-uchar4 __ovld __cnfn convert_uchar4(int4);
-uchar4 __ovld __cnfn convert_uchar4_sat(int4);
-uchar4 __ovld __cnfn convert_uchar4_rte(uint4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rte(uint4);
-uchar4 __ovld __cnfn convert_uchar4_rtz(uint4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtz(uint4);
-uchar4 __ovld __cnfn convert_uchar4_rtp(uint4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtp(uint4);
-uchar4 __ovld __cnfn convert_uchar4_rtn(uint4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtn(uint4);
-uchar4 __ovld __cnfn convert_uchar4(uint4);
-uchar4 __ovld __cnfn convert_uchar4_sat(uint4);
-uchar4 __ovld __cnfn convert_uchar4_rte(long4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rte(long4);
-uchar4 __ovld __cnfn convert_uchar4_rtz(long4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtz(long4);
-uchar4 __ovld __cnfn convert_uchar4_rtp(long4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtp(long4);
-uchar4 __ovld __cnfn convert_uchar4_rtn(long4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtn(long4);
-uchar4 __ovld __cnfn convert_uchar4(long4);
-uchar4 __ovld __cnfn convert_uchar4_sat(long4);
-uchar4 __ovld __cnfn convert_uchar4_rte(ulong4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rte(ulong4);
-uchar4 __ovld __cnfn convert_uchar4_rtz(ulong4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtz(ulong4);
-uchar4 __ovld __cnfn convert_uchar4_rtp(ulong4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtp(ulong4);
-uchar4 __ovld __cnfn convert_uchar4_rtn(ulong4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtn(ulong4);
-uchar4 __ovld __cnfn convert_uchar4(ulong4);
-uchar4 __ovld __cnfn convert_uchar4_sat(ulong4);
-uchar4 __ovld __cnfn convert_uchar4_rte(float4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rte(float4);
-uchar4 __ovld __cnfn convert_uchar4_rtz(float4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtz(float4);
-uchar4 __ovld __cnfn convert_uchar4_rtp(float4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtp(float4);
-uchar4 __ovld __cnfn convert_uchar4_rtn(float4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtn(float4);
-uchar4 __ovld __cnfn convert_uchar4(float4);
-uchar4 __ovld __cnfn convert_uchar4_sat(float4);
-short4 __ovld __cnfn convert_short4_rte(char4);
-short4 __ovld __cnfn convert_short4_sat_rte(char4);
-short4 __ovld __cnfn convert_short4_rtz(char4);
-short4 __ovld __cnfn convert_short4_sat_rtz(char4);
-short4 __ovld __cnfn convert_short4_rtp(char4);
-short4 __ovld __cnfn convert_short4_sat_rtp(char4);
-short4 __ovld __cnfn convert_short4_rtn(char4);
-short4 __ovld __cnfn convert_short4_sat_rtn(char4);
-short4 __ovld __cnfn convert_short4(char4);
-short4 __ovld __cnfn convert_short4_sat(char4);
-short4 __ovld __cnfn convert_short4_rte(uchar4);
-short4 __ovld __cnfn convert_short4_sat_rte(uchar4);
-short4 __ovld __cnfn convert_short4_rtz(uchar4);
-short4 __ovld __cnfn convert_short4_sat_rtz(uchar4);
-short4 __ovld __cnfn convert_short4_rtp(uchar4);
-short4 __ovld __cnfn convert_short4_sat_rtp(uchar4);
-short4 __ovld __cnfn convert_short4_rtn(uchar4);
-short4 __ovld __cnfn convert_short4_sat_rtn(uchar4);
-short4 __ovld __cnfn convert_short4(uchar4);
-short4 __ovld __cnfn convert_short4_sat(uchar4);
-short4 __ovld __cnfn convert_short4_rte(short4);
-short4 __ovld __cnfn convert_short4_sat_rte(short4);
-short4 __ovld __cnfn convert_short4_rtz(short4);
-short4 __ovld __cnfn convert_short4_sat_rtz(short4);
-short4 __ovld __cnfn convert_short4_rtp(short4);
-short4 __ovld __cnfn convert_short4_sat_rtp(short4);
-short4 __ovld __cnfn convert_short4_rtn(short4);
-short4 __ovld __cnfn convert_short4_sat_rtn(short4);
-short4 __ovld __cnfn convert_short4(short4);
-short4 __ovld __cnfn convert_short4_sat(short4);
-short4 __ovld __cnfn convert_short4_rte(ushort4);
-short4 __ovld __cnfn convert_short4_sat_rte(ushort4);
-short4 __ovld __cnfn convert_short4_rtz(ushort4);
-short4 __ovld __cnfn convert_short4_sat_rtz(ushort4);
-short4 __ovld __cnfn convert_short4_rtp(ushort4);
-short4 __ovld __cnfn convert_short4_sat_rtp(ushort4);
-short4 __ovld __cnfn convert_short4_rtn(ushort4);
-short4 __ovld __cnfn convert_short4_sat_rtn(ushort4);
-short4 __ovld __cnfn convert_short4(ushort4);
-short4 __ovld __cnfn convert_short4_sat(ushort4);
-short4 __ovld __cnfn convert_short4_rte(int4);
-short4 __ovld __cnfn convert_short4_sat_rte(int4);
-short4 __ovld __cnfn convert_short4_rtz(int4);
-short4 __ovld __cnfn convert_short4_sat_rtz(int4);
-short4 __ovld __cnfn convert_short4_rtp(int4);
-short4 __ovld __cnfn convert_short4_sat_rtp(int4);
-short4 __ovld __cnfn convert_short4_rtn(int4);
-short4 __ovld __cnfn convert_short4_sat_rtn(int4);
-short4 __ovld __cnfn convert_short4(int4);
-short4 __ovld __cnfn convert_short4_sat(int4);
-short4 __ovld __cnfn convert_short4_rte(uint4);
-short4 __ovld __cnfn convert_short4_sat_rte(uint4);
-short4 __ovld __cnfn convert_short4_rtz(uint4);
-short4 __ovld __cnfn convert_short4_sat_rtz(uint4);
-short4 __ovld __cnfn convert_short4_rtp(uint4);
-short4 __ovld __cnfn convert_short4_sat_rtp(uint4);
-short4 __ovld __cnfn convert_short4_rtn(uint4);
-short4 __ovld __cnfn convert_short4_sat_rtn(uint4);
-short4 __ovld __cnfn convert_short4(uint4);
-short4 __ovld __cnfn convert_short4_sat(uint4);
-short4 __ovld __cnfn convert_short4_rte(long4);
-short4 __ovld __cnfn convert_short4_sat_rte(long4);
-short4 __ovld __cnfn convert_short4_rtz(long4);
-short4 __ovld __cnfn convert_short4_sat_rtz(long4);
-short4 __ovld __cnfn convert_short4_rtp(long4);
-short4 __ovld __cnfn convert_short4_sat_rtp(long4);
-short4 __ovld __cnfn convert_short4_rtn(long4);
-short4 __ovld __cnfn convert_short4_sat_rtn(long4);
-short4 __ovld __cnfn convert_short4(long4);
-short4 __ovld __cnfn convert_short4_sat(long4);
-short4 __ovld __cnfn convert_short4_rte(ulong4);
-short4 __ovld __cnfn convert_short4_sat_rte(ulong4);
-short4 __ovld __cnfn convert_short4_rtz(ulong4);
-short4 __ovld __cnfn convert_short4_sat_rtz(ulong4);
-short4 __ovld __cnfn convert_short4_rtp(ulong4);
-short4 __ovld __cnfn convert_short4_sat_rtp(ulong4);
-short4 __ovld __cnfn convert_short4_rtn(ulong4);
-short4 __ovld __cnfn convert_short4_sat_rtn(ulong4);
-short4 __ovld __cnfn convert_short4(ulong4);
-short4 __ovld __cnfn convert_short4_sat(ulong4);
-short4 __ovld __cnfn convert_short4_rte(float4);
-short4 __ovld __cnfn convert_short4_sat_rte(float4);
-short4 __ovld __cnfn convert_short4_rtz(float4);
-short4 __ovld __cnfn convert_short4_sat_rtz(float4);
-short4 __ovld __cnfn convert_short4_rtp(float4);
-short4 __ovld __cnfn convert_short4_sat_rtp(float4);
-short4 __ovld __cnfn convert_short4_rtn(float4);
-short4 __ovld __cnfn convert_short4_sat_rtn(float4);
-short4 __ovld __cnfn convert_short4(float4);
-short4 __ovld __cnfn convert_short4_sat(float4);
-ushort4 __ovld __cnfn convert_ushort4_rte(char4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rte(char4);
-ushort4 __ovld __cnfn convert_ushort4_rtz(char4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtz(char4);
-ushort4 __ovld __cnfn convert_ushort4_rtp(char4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtp(char4);
-ushort4 __ovld __cnfn convert_ushort4_rtn(char4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtn(char4);
-ushort4 __ovld __cnfn convert_ushort4(char4);
-ushort4 __ovld __cnfn convert_ushort4_sat(char4);
-ushort4 __ovld __cnfn convert_ushort4_rte(uchar4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rte(uchar4);
-ushort4 __ovld __cnfn convert_ushort4_rtz(uchar4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtz(uchar4);
-ushort4 __ovld __cnfn convert_ushort4_rtp(uchar4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtp(uchar4);
-ushort4 __ovld __cnfn convert_ushort4_rtn(uchar4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtn(uchar4);
-ushort4 __ovld __cnfn convert_ushort4(uchar4);
-ushort4 __ovld __cnfn convert_ushort4_sat(uchar4);
-ushort4 __ovld __cnfn convert_ushort4_rte(short4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rte(short4);
-ushort4 __ovld __cnfn convert_ushort4_rtz(short4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtz(short4);
-ushort4 __ovld __cnfn convert_ushort4_rtp(short4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtp(short4);
-ushort4 __ovld __cnfn convert_ushort4_rtn(short4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtn(short4);
-ushort4 __ovld __cnfn convert_ushort4(short4);
-ushort4 __ovld __cnfn convert_ushort4_sat(short4);
-ushort4 __ovld __cnfn convert_ushort4_rte(ushort4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rte(ushort4);
-ushort4 __ovld __cnfn convert_ushort4_rtz(ushort4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtz(ushort4);
-ushort4 __ovld __cnfn convert_ushort4_rtp(ushort4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtp(ushort4);
-ushort4 __ovld __cnfn convert_ushort4_rtn(ushort4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtn(ushort4);
-ushort4 __ovld __cnfn convert_ushort4(ushort4);
-ushort4 __ovld __cnfn convert_ushort4_sat(ushort4);
-ushort4 __ovld __cnfn convert_ushort4_rte(int4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rte(int4);
-ushort4 __ovld __cnfn convert_ushort4_rtz(int4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtz(int4);
-ushort4 __ovld __cnfn convert_ushort4_rtp(int4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtp(int4);
-ushort4 __ovld __cnfn convert_ushort4_rtn(int4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtn(int4);
-ushort4 __ovld __cnfn convert_ushort4(int4);
-ushort4 __ovld __cnfn convert_ushort4_sat(int4);
-ushort4 __ovld __cnfn convert_ushort4_rte(uint4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rte(uint4);
-ushort4 __ovld __cnfn convert_ushort4_rtz(uint4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtz(uint4);
-ushort4 __ovld __cnfn convert_ushort4_rtp(uint4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtp(uint4);
-ushort4 __ovld __cnfn convert_ushort4_rtn(uint4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtn(uint4);
-ushort4 __ovld __cnfn convert_ushort4(uint4);
-ushort4 __ovld __cnfn convert_ushort4_sat(uint4);
-ushort4 __ovld __cnfn convert_ushort4_rte(long4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rte(long4);
-ushort4 __ovld __cnfn convert_ushort4_rtz(long4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtz(long4);
-ushort4 __ovld __cnfn convert_ushort4_rtp(long4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtp(long4);
-ushort4 __ovld __cnfn convert_ushort4_rtn(long4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtn(long4);
-ushort4 __ovld __cnfn convert_ushort4(long4);
-ushort4 __ovld __cnfn convert_ushort4_sat(long4);
-ushort4 __ovld __cnfn convert_ushort4_rte(ulong4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rte(ulong4);
-ushort4 __ovld __cnfn convert_ushort4_rtz(ulong4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtz(ulong4);
-ushort4 __ovld __cnfn convert_ushort4_rtp(ulong4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtp(ulong4);
-ushort4 __ovld __cnfn convert_ushort4_rtn(ulong4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtn(ulong4);
-ushort4 __ovld __cnfn convert_ushort4(ulong4);
-ushort4 __ovld __cnfn convert_ushort4_sat(ulong4);
-ushort4 __ovld __cnfn convert_ushort4_rte(float4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rte(float4);
-ushort4 __ovld __cnfn convert_ushort4_rtz(float4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtz(float4);
-ushort4 __ovld __cnfn convert_ushort4_rtp(float4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtp(float4);
-ushort4 __ovld __cnfn convert_ushort4_rtn(float4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtn(float4);
-ushort4 __ovld __cnfn convert_ushort4(float4);
-ushort4 __ovld __cnfn convert_ushort4_sat(float4);
-int4 __ovld __cnfn convert_int4_rte(char4);
-int4 __ovld __cnfn convert_int4_sat_rte(char4);
-int4 __ovld __cnfn convert_int4_rtz(char4);
-int4 __ovld __cnfn convert_int4_sat_rtz(char4);
-int4 __ovld __cnfn convert_int4_rtp(char4);
-int4 __ovld __cnfn convert_int4_sat_rtp(char4);
-int4 __ovld __cnfn convert_int4_rtn(char4);
-int4 __ovld __cnfn convert_int4_sat_rtn(char4);
-int4 __ovld __cnfn convert_int4(char4);
-int4 __ovld __cnfn convert_int4_sat(char4);
-int4 __ovld __cnfn convert_int4_rte(uchar4);
-int4 __ovld __cnfn convert_int4_sat_rte(uchar4);
-int4 __ovld __cnfn convert_int4_rtz(uchar4);
-int4 __ovld __cnfn convert_int4_sat_rtz(uchar4);
-int4 __ovld __cnfn convert_int4_rtp(uchar4);
-int4 __ovld __cnfn convert_int4_sat_rtp(uchar4);
-int4 __ovld __cnfn convert_int4_rtn(uchar4);
-int4 __ovld __cnfn convert_int4_sat_rtn(uchar4);
-int4 __ovld __cnfn convert_int4(uchar4);
-int4 __ovld __cnfn convert_int4_sat(uchar4);
-int4 __ovld __cnfn convert_int4_rte(short4);
-int4 __ovld __cnfn convert_int4_sat_rte(short4);
-int4 __ovld __cnfn convert_int4_rtz(short4);
-int4 __ovld __cnfn convert_int4_sat_rtz(short4);
-int4 __ovld __cnfn convert_int4_rtp(short4);
-int4 __ovld __cnfn convert_int4_sat_rtp(short4);
-int4 __ovld __cnfn convert_int4_rtn(short4);
-int4 __ovld __cnfn convert_int4_sat_rtn(short4);
-int4 __ovld __cnfn convert_int4(short4);
-int4 __ovld __cnfn convert_int4_sat(short4);
-int4 __ovld __cnfn convert_int4_rte(ushort4);
-int4 __ovld __cnfn convert_int4_sat_rte(ushort4);
-int4 __ovld __cnfn convert_int4_rtz(ushort4);
-int4 __ovld __cnfn convert_int4_sat_rtz(ushort4);
-int4 __ovld __cnfn convert_int4_rtp(ushort4);
-int4 __ovld __cnfn convert_int4_sat_rtp(ushort4);
-int4 __ovld __cnfn convert_int4_rtn(ushort4);
-int4 __ovld __cnfn convert_int4_sat_rtn(ushort4);
-int4 __ovld __cnfn convert_int4(ushort4);
-int4 __ovld __cnfn convert_int4_sat(ushort4);
-int4 __ovld __cnfn convert_int4_rte(int4);
-int4 __ovld __cnfn convert_int4_sat_rte(int4);
-int4 __ovld __cnfn convert_int4_rtz(int4);
-int4 __ovld __cnfn convert_int4_sat_rtz(int4);
-int4 __ovld __cnfn convert_int4_rtp(int4);
-int4 __ovld __cnfn convert_int4_sat_rtp(int4);
-int4 __ovld __cnfn convert_int4_rtn(int4);
-int4 __ovld __cnfn convert_int4_sat_rtn(int4);
-int4 __ovld __cnfn convert_int4(int4);
-int4 __ovld __cnfn convert_int4_sat(int4);
-int4 __ovld __cnfn convert_int4_rte(uint4);
-int4 __ovld __cnfn convert_int4_sat_rte(uint4);
-int4 __ovld __cnfn convert_int4_rtz(uint4);
-int4 __ovld __cnfn convert_int4_sat_rtz(uint4);
-int4 __ovld __cnfn convert_int4_rtp(uint4);
-int4 __ovld __cnfn convert_int4_sat_rtp(uint4);
-int4 __ovld __cnfn convert_int4_rtn(uint4);
-int4 __ovld __cnfn convert_int4_sat_rtn(uint4);
-int4 __ovld __cnfn convert_int4(uint4);
-int4 __ovld __cnfn convert_int4_sat(uint4);
-int4 __ovld __cnfn convert_int4_rte(long4);
-int4 __ovld __cnfn convert_int4_sat_rte(long4);
-int4 __ovld __cnfn convert_int4_rtz(long4);
-int4 __ovld __cnfn convert_int4_sat_rtz(long4);
-int4 __ovld __cnfn convert_int4_rtp(long4);
-int4 __ovld __cnfn convert_int4_sat_rtp(long4);
-int4 __ovld __cnfn convert_int4_rtn(long4);
-int4 __ovld __cnfn convert_int4_sat_rtn(long4);
-int4 __ovld __cnfn convert_int4(long4);
-int4 __ovld __cnfn convert_int4_sat(long4);
-int4 __ovld __cnfn convert_int4_rte(ulong4);
-int4 __ovld __cnfn convert_int4_sat_rte(ulong4);
-int4 __ovld __cnfn convert_int4_rtz(ulong4);
-int4 __ovld __cnfn convert_int4_sat_rtz(ulong4);
-int4 __ovld __cnfn convert_int4_rtp(ulong4);
-int4 __ovld __cnfn convert_int4_sat_rtp(ulong4);
-int4 __ovld __cnfn convert_int4_rtn(ulong4);
-int4 __ovld __cnfn convert_int4_sat_rtn(ulong4);
-int4 __ovld __cnfn convert_int4(ulong4);
-int4 __ovld __cnfn convert_int4_sat(ulong4);
-int4 __ovld __cnfn convert_int4_rte(float4);
-int4 __ovld __cnfn convert_int4_sat_rte(float4);
-int4 __ovld __cnfn convert_int4_rtz(float4);
-int4 __ovld __cnfn convert_int4_sat_rtz(float4);
-int4 __ovld __cnfn convert_int4_rtp(float4);
-int4 __ovld __cnfn convert_int4_sat_rtp(float4);
-int4 __ovld __cnfn convert_int4_rtn(float4);
-int4 __ovld __cnfn convert_int4_sat_rtn(float4);
-int4 __ovld __cnfn convert_int4(float4);
-int4 __ovld __cnfn convert_int4_sat(float4);
-uint4 __ovld __cnfn convert_uint4_rte(char4);
-uint4 __ovld __cnfn convert_uint4_sat_rte(char4);
-uint4 __ovld __cnfn convert_uint4_rtz(char4);
-uint4 __ovld __cnfn convert_uint4_sat_rtz(char4);
-uint4 __ovld __cnfn convert_uint4_rtp(char4);
-uint4 __ovld __cnfn convert_uint4_sat_rtp(char4);
-uint4 __ovld __cnfn convert_uint4_rtn(char4);
-uint4 __ovld __cnfn convert_uint4_sat_rtn(char4);
-uint4 __ovld __cnfn convert_uint4(char4);
-uint4 __ovld __cnfn convert_uint4_sat(char4);
-uint4 __ovld __cnfn convert_uint4_rte(uchar4);
-uint4 __ovld __cnfn convert_uint4_sat_rte(uchar4);
-uint4 __ovld __cnfn convert_uint4_rtz(uchar4);
-uint4 __ovld __cnfn convert_uint4_sat_rtz(uchar4);
-uint4 __ovld __cnfn convert_uint4_rtp(uchar4);
-uint4 __ovld __cnfn convert_uint4_sat_rtp(uchar4);
-uint4 __ovld __cnfn convert_uint4_rtn(uchar4);
-uint4 __ovld __cnfn convert_uint4_sat_rtn(uchar4);
-uint4 __ovld __cnfn convert_uint4(uchar4);
-uint4 __ovld __cnfn convert_uint4_sat(uchar4);
-uint4 __ovld __cnfn convert_uint4_rte(short4);
-uint4 __ovld __cnfn convert_uint4_sat_rte(short4);
-uint4 __ovld __cnfn convert_uint4_rtz(short4);
-uint4 __ovld __cnfn convert_uint4_sat_rtz(short4);
-uint4 __ovld __cnfn convert_uint4_rtp(short4);
-uint4 __ovld __cnfn convert_uint4_sat_rtp(short4);
-uint4 __ovld __cnfn convert_uint4_rtn(short4);
-uint4 __ovld __cnfn convert_uint4_sat_rtn(short4);
-uint4 __ovld __cnfn convert_uint4(short4);
-uint4 __ovld __cnfn convert_uint4_sat(short4);
-uint4 __ovld __cnfn convert_uint4_rte(ushort4);
-uint4 __ovld __cnfn convert_uint4_sat_rte(ushort4);
-uint4 __ovld __cnfn convert_uint4_rtz(ushort4);
-uint4 __ovld __cnfn convert_uint4_sat_rtz(ushort4);
-uint4 __ovld __cnfn convert_uint4_rtp(ushort4);
-uint4 __ovld __cnfn convert_uint4_sat_rtp(ushort4);
-uint4 __ovld __cnfn convert_uint4_rtn(ushort4);
-uint4 __ovld __cnfn convert_uint4_sat_rtn(ushort4);
-uint4 __ovld __cnfn convert_uint4(ushort4);
-uint4 __ovld __cnfn convert_uint4_sat(ushort4);
-uint4 __ovld __cnfn convert_uint4_rte(int4);
-uint4 __ovld __cnfn convert_uint4_sat_rte(int4);
-uint4 __ovld __cnfn convert_uint4_rtz(int4);
-uint4 __ovld __cnfn convert_uint4_sat_rtz(int4);
-uint4 __ovld __cnfn convert_uint4_rtp(int4);
-uint4 __ovld __cnfn convert_uint4_sat_rtp(int4);
-uint4 __ovld __cnfn convert_uint4_rtn(int4);
-uint4 __ovld __cnfn convert_uint4_sat_rtn(int4);
-uint4 __ovld __cnfn convert_uint4(int4);
-uint4 __ovld __cnfn convert_uint4_sat(int4);
-uint4 __ovld __cnfn convert_uint4_rte(uint4);
-uint4 __ovld __cnfn convert_uint4_sat_rte(uint4);
-uint4 __ovld __cnfn convert_uint4_rtz(uint4);
-uint4 __ovld __cnfn convert_uint4_sat_rtz(uint4);
-uint4 __ovld __cnfn convert_uint4_rtp(uint4);
-uint4 __ovld __cnfn convert_uint4_sat_rtp(uint4);
-uint4 __ovld __cnfn convert_uint4_rtn(uint4);
-uint4 __ovld __cnfn convert_uint4_sat_rtn(uint4);
-uint4 __ovld __cnfn convert_uint4(uint4);
-uint4 __ovld __cnfn convert_uint4_sat(uint4);
-uint4 __ovld __cnfn convert_uint4_rte(long4);
-uint4 __ovld __cnfn convert_uint4_sat_rte(long4);
-uint4 __ovld __cnfn convert_uint4_rtz(long4);
-uint4 __ovld __cnfn convert_uint4_sat_rtz(long4);
-uint4 __ovld __cnfn convert_uint4_rtp(long4);
-uint4 __ovld __cnfn convert_uint4_sat_rtp(long4);
-uint4 __ovld __cnfn convert_uint4_rtn(long4);
-uint4 __ovld __cnfn convert_uint4_sat_rtn(long4);
-uint4 __ovld __cnfn convert_uint4(long4);
-uint4 __ovld __cnfn convert_uint4_sat(long4);
-uint4 __ovld __cnfn convert_uint4_rte(ulong4);
-uint4 __ovld __cnfn convert_uint4_sat_rte(ulong4);
-uint4 __ovld __cnfn convert_uint4_rtz(ulong4);
-uint4 __ovld __cnfn convert_uint4_sat_rtz(ulong4);
-uint4 __ovld __cnfn convert_uint4_rtp(ulong4);
-uint4 __ovld __cnfn convert_uint4_sat_rtp(ulong4);
-uint4 __ovld __cnfn convert_uint4_rtn(ulong4);
-uint4 __ovld __cnfn convert_uint4_sat_rtn(ulong4);
-uint4 __ovld __cnfn convert_uint4(ulong4);
-uint4 __ovld __cnfn convert_uint4_sat(ulong4);
-uint4 __ovld __cnfn convert_uint4_rte(float4);
-uint4 __ovld __cnfn convert_uint4_sat_rte(float4);
-uint4 __ovld __cnfn convert_uint4_rtz(float4);
-uint4 __ovld __cnfn convert_uint4_sat_rtz(float4);
-uint4 __ovld __cnfn convert_uint4_rtp(float4);
-uint4 __ovld __cnfn convert_uint4_sat_rtp(float4);
-uint4 __ovld __cnfn convert_uint4_rtn(float4);
-uint4 __ovld __cnfn convert_uint4_sat_rtn(float4);
-uint4 __ovld __cnfn convert_uint4(float4);
-uint4 __ovld __cnfn convert_uint4_sat(float4);
-long4 __ovld __cnfn convert_long4_rte(char4);
-long4 __ovld __cnfn convert_long4_sat_rte(char4);
-long4 __ovld __cnfn convert_long4_rtz(char4);
-long4 __ovld __cnfn convert_long4_sat_rtz(char4);
-long4 __ovld __cnfn convert_long4_rtp(char4);
-long4 __ovld __cnfn convert_long4_sat_rtp(char4);
-long4 __ovld __cnfn convert_long4_rtn(char4);
-long4 __ovld __cnfn convert_long4_sat_rtn(char4);
-long4 __ovld __cnfn convert_long4(char4);
-long4 __ovld __cnfn convert_long4_sat(char4);
-long4 __ovld __cnfn convert_long4_rte(uchar4);
-long4 __ovld __cnfn convert_long4_sat_rte(uchar4);
-long4 __ovld __cnfn convert_long4_rtz(uchar4);
-long4 __ovld __cnfn convert_long4_sat_rtz(uchar4);
-long4 __ovld __cnfn convert_long4_rtp(uchar4);
-long4 __ovld __cnfn convert_long4_sat_rtp(uchar4);
-long4 __ovld __cnfn convert_long4_rtn(uchar4);
-long4 __ovld __cnfn convert_long4_sat_rtn(uchar4);
-long4 __ovld __cnfn convert_long4(uchar4);
-long4 __ovld __cnfn convert_long4_sat(uchar4);
-long4 __ovld __cnfn convert_long4_rte(short4);
-long4 __ovld __cnfn convert_long4_sat_rte(short4);
-long4 __ovld __cnfn convert_long4_rtz(short4);
-long4 __ovld __cnfn convert_long4_sat_rtz(short4);
-long4 __ovld __cnfn convert_long4_rtp(short4);
-long4 __ovld __cnfn convert_long4_sat_rtp(short4);
-long4 __ovld __cnfn convert_long4_rtn(short4);
-long4 __ovld __cnfn convert_long4_sat_rtn(short4);
-long4 __ovld __cnfn convert_long4(short4);
-long4 __ovld __cnfn convert_long4_sat(short4);
-long4 __ovld __cnfn convert_long4_rte(ushort4);
-long4 __ovld __cnfn convert_long4_sat_rte(ushort4);
-long4 __ovld __cnfn convert_long4_rtz(ushort4);
-long4 __ovld __cnfn convert_long4_sat_rtz(ushort4);
-long4 __ovld __cnfn convert_long4_rtp(ushort4);
-long4 __ovld __cnfn convert_long4_sat_rtp(ushort4);
-long4 __ovld __cnfn convert_long4_rtn(ushort4);
-long4 __ovld __cnfn convert_long4_sat_rtn(ushort4);
-long4 __ovld __cnfn convert_long4(ushort4);
-long4 __ovld __cnfn convert_long4_sat(ushort4);
-long4 __ovld __cnfn convert_long4_rte(int4);
-long4 __ovld __cnfn convert_long4_sat_rte(int4);
-long4 __ovld __cnfn convert_long4_rtz(int4);
-long4 __ovld __cnfn convert_long4_sat_rtz(int4);
-long4 __ovld __cnfn convert_long4_rtp(int4);
-long4 __ovld __cnfn convert_long4_sat_rtp(int4);
-long4 __ovld __cnfn convert_long4_rtn(int4);
-long4 __ovld __cnfn convert_long4_sat_rtn(int4);
-long4 __ovld __cnfn convert_long4(int4);
-long4 __ovld __cnfn convert_long4_sat(int4);
-long4 __ovld __cnfn convert_long4_rte(uint4);
-long4 __ovld __cnfn convert_long4_sat_rte(uint4);
-long4 __ovld __cnfn convert_long4_rtz(uint4);
-long4 __ovld __cnfn convert_long4_sat_rtz(uint4);
-long4 __ovld __cnfn convert_long4_rtp(uint4);
-long4 __ovld __cnfn convert_long4_sat_rtp(uint4);
-long4 __ovld __cnfn convert_long4_rtn(uint4);
-long4 __ovld __cnfn convert_long4_sat_rtn(uint4);
-long4 __ovld __cnfn convert_long4(uint4);
-long4 __ovld __cnfn convert_long4_sat(uint4);
-long4 __ovld __cnfn convert_long4_rte(long4);
-long4 __ovld __cnfn convert_long4_sat_rte(long4);
-long4 __ovld __cnfn convert_long4_rtz(long4);
-long4 __ovld __cnfn convert_long4_sat_rtz(long4);
-long4 __ovld __cnfn convert_long4_rtp(long4);
-long4 __ovld __cnfn convert_long4_sat_rtp(long4);
-long4 __ovld __cnfn convert_long4_rtn(long4);
-long4 __ovld __cnfn convert_long4_sat_rtn(long4);
-long4 __ovld __cnfn convert_long4(long4);
-long4 __ovld __cnfn convert_long4_sat(long4);
-long4 __ovld __cnfn convert_long4_rte(ulong4);
-long4 __ovld __cnfn convert_long4_sat_rte(ulong4);
-long4 __ovld __cnfn convert_long4_rtz(ulong4);
-long4 __ovld __cnfn convert_long4_sat_rtz(ulong4);
-long4 __ovld __cnfn convert_long4_rtp(ulong4);
-long4 __ovld __cnfn convert_long4_sat_rtp(ulong4);
-long4 __ovld __cnfn convert_long4_rtn(ulong4);
-long4 __ovld __cnfn convert_long4_sat_rtn(ulong4);
-long4 __ovld __cnfn convert_long4(ulong4);
-long4 __ovld __cnfn convert_long4_sat(ulong4);
-long4 __ovld __cnfn convert_long4_rte(float4);
-long4 __ovld __cnfn convert_long4_sat_rte(float4);
-long4 __ovld __cnfn convert_long4_rtz(float4);
-long4 __ovld __cnfn convert_long4_sat_rtz(float4);
-long4 __ovld __cnfn convert_long4_rtp(float4);
-long4 __ovld __cnfn convert_long4_sat_rtp(float4);
-long4 __ovld __cnfn convert_long4_rtn(float4);
-long4 __ovld __cnfn convert_long4_sat_rtn(float4);
-long4 __ovld __cnfn convert_long4(float4);
-long4 __ovld __cnfn convert_long4_sat(float4);
-ulong4 __ovld __cnfn convert_ulong4_rte(char4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rte(char4);
-ulong4 __ovld __cnfn convert_ulong4_rtz(char4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtz(char4);
-ulong4 __ovld __cnfn convert_ulong4_rtp(char4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtp(char4);
-ulong4 __ovld __cnfn convert_ulong4_rtn(char4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtn(char4);
-ulong4 __ovld __cnfn convert_ulong4(char4);
-ulong4 __ovld __cnfn convert_ulong4_sat(char4);
-ulong4 __ovld __cnfn convert_ulong4_rte(uchar4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rte(uchar4);
-ulong4 __ovld __cnfn convert_ulong4_rtz(uchar4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtz(uchar4);
-ulong4 __ovld __cnfn convert_ulong4_rtp(uchar4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtp(uchar4);
-ulong4 __ovld __cnfn convert_ulong4_rtn(uchar4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtn(uchar4);
-ulong4 __ovld __cnfn convert_ulong4(uchar4);
-ulong4 __ovld __cnfn convert_ulong4_sat(uchar4);
-ulong4 __ovld __cnfn convert_ulong4_rte(short4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rte(short4);
-ulong4 __ovld __cnfn convert_ulong4_rtz(short4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtz(short4);
-ulong4 __ovld __cnfn convert_ulong4_rtp(short4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtp(short4);
-ulong4 __ovld __cnfn convert_ulong4_rtn(short4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtn(short4);
-ulong4 __ovld __cnfn convert_ulong4(short4);
-ulong4 __ovld __cnfn convert_ulong4_sat(short4);
-ulong4 __ovld __cnfn convert_ulong4_rte(ushort4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rte(ushort4);
-ulong4 __ovld __cnfn convert_ulong4_rtz(ushort4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtz(ushort4);
-ulong4 __ovld __cnfn convert_ulong4_rtp(ushort4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtp(ushort4);
-ulong4 __ovld __cnfn convert_ulong4_rtn(ushort4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtn(ushort4);
-ulong4 __ovld __cnfn convert_ulong4(ushort4);
-ulong4 __ovld __cnfn convert_ulong4_sat(ushort4);
-ulong4 __ovld __cnfn convert_ulong4_rte(int4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rte(int4);
-ulong4 __ovld __cnfn convert_ulong4_rtz(int4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtz(int4);
-ulong4 __ovld __cnfn convert_ulong4_rtp(int4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtp(int4);
-ulong4 __ovld __cnfn convert_ulong4_rtn(int4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtn(int4);
-ulong4 __ovld __cnfn convert_ulong4(int4);
-ulong4 __ovld __cnfn convert_ulong4_sat(int4);
-ulong4 __ovld __cnfn convert_ulong4_rte(uint4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rte(uint4);
-ulong4 __ovld __cnfn convert_ulong4_rtz(uint4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtz(uint4);
-ulong4 __ovld __cnfn convert_ulong4_rtp(uint4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtp(uint4);
-ulong4 __ovld __cnfn convert_ulong4_rtn(uint4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtn(uint4);
-ulong4 __ovld __cnfn convert_ulong4(uint4);
-ulong4 __ovld __cnfn convert_ulong4_sat(uint4);
-ulong4 __ovld __cnfn convert_ulong4_rte(long4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rte(long4);
-ulong4 __ovld __cnfn convert_ulong4_rtz(long4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtz(long4);
-ulong4 __ovld __cnfn convert_ulong4_rtp(long4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtp(long4);
-ulong4 __ovld __cnfn convert_ulong4_rtn(long4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtn(long4);
-ulong4 __ovld __cnfn convert_ulong4(long4);
-ulong4 __ovld __cnfn convert_ulong4_sat(long4);
-ulong4 __ovld __cnfn convert_ulong4_rte(ulong4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rte(ulong4);
-ulong4 __ovld __cnfn convert_ulong4_rtz(ulong4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtz(ulong4);
-ulong4 __ovld __cnfn convert_ulong4_rtp(ulong4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtp(ulong4);
-ulong4 __ovld __cnfn convert_ulong4_rtn(ulong4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtn(ulong4);
-ulong4 __ovld __cnfn convert_ulong4(ulong4);
-ulong4 __ovld __cnfn convert_ulong4_sat(ulong4);
-ulong4 __ovld __cnfn convert_ulong4_rte(float4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rte(float4);
-ulong4 __ovld __cnfn convert_ulong4_rtz(float4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtz(float4);
-ulong4 __ovld __cnfn convert_ulong4_rtp(float4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtp(float4);
-ulong4 __ovld __cnfn convert_ulong4_rtn(float4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtn(float4);
-ulong4 __ovld __cnfn convert_ulong4(float4);
-ulong4 __ovld __cnfn convert_ulong4_sat(float4);
-float4 __ovld __cnfn convert_float4_rte(char4);
-float4 __ovld __cnfn convert_float4_rtz(char4);
-float4 __ovld __cnfn convert_float4_rtp(char4);
-float4 __ovld __cnfn convert_float4_rtn(char4);
-float4 __ovld __cnfn convert_float4(char4);
-float4 __ovld __cnfn convert_float4_rte(uchar4);
-float4 __ovld __cnfn convert_float4_rtz(uchar4);
-float4 __ovld __cnfn convert_float4_rtp(uchar4);
-float4 __ovld __cnfn convert_float4_rtn(uchar4);
-float4 __ovld __cnfn convert_float4(uchar4);
-float4 __ovld __cnfn convert_float4_rte(short4);
-float4 __ovld __cnfn convert_float4_rtz(short4);
-float4 __ovld __cnfn convert_float4_rtp(short4);
-float4 __ovld __cnfn convert_float4_rtn(short4);
-float4 __ovld __cnfn convert_float4(short4);
-float4 __ovld __cnfn convert_float4_rte(ushort4);
-float4 __ovld __cnfn convert_float4_rtz(ushort4);
-float4 __ovld __cnfn convert_float4_rtp(ushort4);
-float4 __ovld __cnfn convert_float4_rtn(ushort4);
-float4 __ovld __cnfn convert_float4(ushort4);
-float4 __ovld __cnfn convert_float4_rte(int4);
-float4 __ovld __cnfn convert_float4_rtz(int4);
-float4 __ovld __cnfn convert_float4_rtp(int4);
-float4 __ovld __cnfn convert_float4_rtn(int4);
-float4 __ovld __cnfn convert_float4(int4);
-float4 __ovld __cnfn convert_float4_rte(uint4);
-float4 __ovld __cnfn convert_float4_rtz(uint4);
-float4 __ovld __cnfn convert_float4_rtp(uint4);
-float4 __ovld __cnfn convert_float4_rtn(uint4);
-float4 __ovld __cnfn convert_float4(uint4);
-float4 __ovld __cnfn convert_float4_rte(long4);
-float4 __ovld __cnfn convert_float4_rtz(long4);
-float4 __ovld __cnfn convert_float4_rtp(long4);
-float4 __ovld __cnfn convert_float4_rtn(long4);
-float4 __ovld __cnfn convert_float4(long4);
-float4 __ovld __cnfn convert_float4_rte(ulong4);
-float4 __ovld __cnfn convert_float4_rtz(ulong4);
-float4 __ovld __cnfn convert_float4_rtp(ulong4);
-float4 __ovld __cnfn convert_float4_rtn(ulong4);
-float4 __ovld __cnfn convert_float4(ulong4);
-float4 __ovld __cnfn convert_float4_rte(float4);
-float4 __ovld __cnfn convert_float4_rtz(float4);
-float4 __ovld __cnfn convert_float4_rtp(float4);
-float4 __ovld __cnfn convert_float4_rtn(float4);
-float4 __ovld __cnfn convert_float4(float4);
-char8 __ovld __cnfn convert_char8_rte(char8);
-char8 __ovld __cnfn convert_char8_sat_rte(char8);
-char8 __ovld __cnfn convert_char8_rtz(char8);
-char8 __ovld __cnfn convert_char8_sat_rtz(char8);
-char8 __ovld __cnfn convert_char8_rtp(char8);
-char8 __ovld __cnfn convert_char8_sat_rtp(char8);
-char8 __ovld __cnfn convert_char8_rtn(char8);
-char8 __ovld __cnfn convert_char8_sat_rtn(char8);
-char8 __ovld __cnfn convert_char8(char8);
-char8 __ovld __cnfn convert_char8_sat(char8);
-char8 __ovld __cnfn convert_char8_rte(uchar8);
-char8 __ovld __cnfn convert_char8_sat_rte(uchar8);
-char8 __ovld __cnfn convert_char8_rtz(uchar8);
-char8 __ovld __cnfn convert_char8_sat_rtz(uchar8);
-char8 __ovld __cnfn convert_char8_rtp(uchar8);
-char8 __ovld __cnfn convert_char8_sat_rtp(uchar8);
-char8 __ovld __cnfn convert_char8_rtn(uchar8);
-char8 __ovld __cnfn convert_char8_sat_rtn(uchar8);
-char8 __ovld __cnfn convert_char8(uchar8);
-char8 __ovld __cnfn convert_char8_sat(uchar8);
-char8 __ovld __cnfn convert_char8_rte(short8);
-char8 __ovld __cnfn convert_char8_sat_rte(short8);
-char8 __ovld __cnfn convert_char8_rtz(short8);
-char8 __ovld __cnfn convert_char8_sat_rtz(short8);
-char8 __ovld __cnfn convert_char8_rtp(short8);
-char8 __ovld __cnfn convert_char8_sat_rtp(short8);
-char8 __ovld __cnfn convert_char8_rtn(short8);
-char8 __ovld __cnfn convert_char8_sat_rtn(short8);
-char8 __ovld __cnfn convert_char8(short8);
-char8 __ovld __cnfn convert_char8_sat(short8);
-char8 __ovld __cnfn convert_char8_rte(ushort8);
-char8 __ovld __cnfn convert_char8_sat_rte(ushort8);
-char8 __ovld __cnfn convert_char8_rtz(ushort8);
-char8 __ovld __cnfn convert_char8_sat_rtz(ushort8);
-char8 __ovld __cnfn convert_char8_rtp(ushort8);
-char8 __ovld __cnfn convert_char8_sat_rtp(ushort8);
-char8 __ovld __cnfn convert_char8_rtn(ushort8);
-char8 __ovld __cnfn convert_char8_sat_rtn(ushort8);
-char8 __ovld __cnfn convert_char8(ushort8);
-char8 __ovld __cnfn convert_char8_sat(ushort8);
-char8 __ovld __cnfn convert_char8_rte(int8);
-char8 __ovld __cnfn convert_char8_sat_rte(int8);
-char8 __ovld __cnfn convert_char8_rtz(int8);
-char8 __ovld __cnfn convert_char8_sat_rtz(int8);
-char8 __ovld __cnfn convert_char8_rtp(int8);
-char8 __ovld __cnfn convert_char8_sat_rtp(int8);
-char8 __ovld __cnfn convert_char8_rtn(int8);
-char8 __ovld __cnfn convert_char8_sat_rtn(int8);
-char8 __ovld __cnfn convert_char8(int8);
-char8 __ovld __cnfn convert_char8_sat(int8);
-char8 __ovld __cnfn convert_char8_rte(uint8);
-char8 __ovld __cnfn convert_char8_sat_rte(uint8);
-char8 __ovld __cnfn convert_char8_rtz(uint8);
-char8 __ovld __cnfn convert_char8_sat_rtz(uint8);
-char8 __ovld __cnfn convert_char8_rtp(uint8);
-char8 __ovld __cnfn convert_char8_sat_rtp(uint8);
-char8 __ovld __cnfn convert_char8_rtn(uint8);
-char8 __ovld __cnfn convert_char8_sat_rtn(uint8);
-char8 __ovld __cnfn convert_char8(uint8);
-char8 __ovld __cnfn convert_char8_sat(uint8);
-char8 __ovld __cnfn convert_char8_rte(long8);
-char8 __ovld __cnfn convert_char8_sat_rte(long8);
-char8 __ovld __cnfn convert_char8_rtz(long8);
-char8 __ovld __cnfn convert_char8_sat_rtz(long8);
-char8 __ovld __cnfn convert_char8_rtp(long8);
-char8 __ovld __cnfn convert_char8_sat_rtp(long8);
-char8 __ovld __cnfn convert_char8_rtn(long8);
-char8 __ovld __cnfn convert_char8_sat_rtn(long8);
-char8 __ovld __cnfn convert_char8(long8);
-char8 __ovld __cnfn convert_char8_sat(long8);
-char8 __ovld __cnfn convert_char8_rte(ulong8);
-char8 __ovld __cnfn convert_char8_sat_rte(ulong8);
-char8 __ovld __cnfn convert_char8_rtz(ulong8);
-char8 __ovld __cnfn convert_char8_sat_rtz(ulong8);
-char8 __ovld __cnfn convert_char8_rtp(ulong8);
-char8 __ovld __cnfn convert_char8_sat_rtp(ulong8);
-char8 __ovld __cnfn convert_char8_rtn(ulong8);
-char8 __ovld __cnfn convert_char8_sat_rtn(ulong8);
-char8 __ovld __cnfn convert_char8(ulong8);
-char8 __ovld __cnfn convert_char8_sat(ulong8);
-char8 __ovld __cnfn convert_char8_rte(float8);
-char8 __ovld __cnfn convert_char8_sat_rte(float8);
-char8 __ovld __cnfn convert_char8_rtz(float8);
-char8 __ovld __cnfn convert_char8_sat_rtz(float8);
-char8 __ovld __cnfn convert_char8_rtp(float8);
-char8 __ovld __cnfn convert_char8_sat_rtp(float8);
-char8 __ovld __cnfn convert_char8_rtn(float8);
-char8 __ovld __cnfn convert_char8_sat_rtn(float8);
-char8 __ovld __cnfn convert_char8(float8);
-char8 __ovld __cnfn convert_char8_sat(float8);
-uchar8 __ovld __cnfn convert_uchar8_rte(char8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rte(char8);
-uchar8 __ovld __cnfn convert_uchar8_rtz(char8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtz(char8);
-uchar8 __ovld __cnfn convert_uchar8_rtp(char8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtp(char8);
-uchar8 __ovld __cnfn convert_uchar8_rtn(char8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtn(char8);
-uchar8 __ovld __cnfn convert_uchar8(char8);
-uchar8 __ovld __cnfn convert_uchar8_sat(char8);
-uchar8 __ovld __cnfn convert_uchar8_rte(uchar8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rte(uchar8);
-uchar8 __ovld __cnfn convert_uchar8_rtz(uchar8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtz(uchar8);
-uchar8 __ovld __cnfn convert_uchar8_rtp(uchar8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtp(uchar8);
-uchar8 __ovld __cnfn convert_uchar8_rtn(uchar8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtn(uchar8);
-uchar8 __ovld __cnfn convert_uchar8(uchar8);
-uchar8 __ovld __cnfn convert_uchar8_sat(uchar8);
-uchar8 __ovld __cnfn convert_uchar8_rte(short8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rte(short8);
-uchar8 __ovld __cnfn convert_uchar8_rtz(short8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtz(short8);
-uchar8 __ovld __cnfn convert_uchar8_rtp(short8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtp(short8);
-uchar8 __ovld __cnfn convert_uchar8_rtn(short8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtn(short8);
-uchar8 __ovld __cnfn convert_uchar8(short8);
-uchar8 __ovld __cnfn convert_uchar8_sat(short8);
-uchar8 __ovld __cnfn convert_uchar8_rte(ushort8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rte(ushort8);
-uchar8 __ovld __cnfn convert_uchar8_rtz(ushort8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtz(ushort8);
-uchar8 __ovld __cnfn convert_uchar8_rtp(ushort8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtp(ushort8);
-uchar8 __ovld __cnfn convert_uchar8_rtn(ushort8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtn(ushort8);
-uchar8 __ovld __cnfn convert_uchar8(ushort8);
-uchar8 __ovld __cnfn convert_uchar8_sat(ushort8);
-uchar8 __ovld __cnfn convert_uchar8_rte(int8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rte(int8);
-uchar8 __ovld __cnfn convert_uchar8_rtz(int8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtz(int8);
-uchar8 __ovld __cnfn convert_uchar8_rtp(int8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtp(int8);
-uchar8 __ovld __cnfn convert_uchar8_rtn(int8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtn(int8);
-uchar8 __ovld __cnfn convert_uchar8(int8);
-uchar8 __ovld __cnfn convert_uchar8_sat(int8);
-uchar8 __ovld __cnfn convert_uchar8_rte(uint8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rte(uint8);
-uchar8 __ovld __cnfn convert_uchar8_rtz(uint8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtz(uint8);
-uchar8 __ovld __cnfn convert_uchar8_rtp(uint8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtp(uint8);
-uchar8 __ovld __cnfn convert_uchar8_rtn(uint8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtn(uint8);
-uchar8 __ovld __cnfn convert_uchar8(uint8);
-uchar8 __ovld __cnfn convert_uchar8_sat(uint8);
-uchar8 __ovld __cnfn convert_uchar8_rte(long8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rte(long8);
-uchar8 __ovld __cnfn convert_uchar8_rtz(long8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtz(long8);
-uchar8 __ovld __cnfn convert_uchar8_rtp(long8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtp(long8);
-uchar8 __ovld __cnfn convert_uchar8_rtn(long8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtn(long8);
-uchar8 __ovld __cnfn convert_uchar8(long8);
-uchar8 __ovld __cnfn convert_uchar8_sat(long8);
-uchar8 __ovld __cnfn convert_uchar8_rte(ulong8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rte(ulong8);
-uchar8 __ovld __cnfn convert_uchar8_rtz(ulong8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtz(ulong8);
-uchar8 __ovld __cnfn convert_uchar8_rtp(ulong8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtp(ulong8);
-uchar8 __ovld __cnfn convert_uchar8_rtn(ulong8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtn(ulong8);
-uchar8 __ovld __cnfn convert_uchar8(ulong8);
-uchar8 __ovld __cnfn convert_uchar8_sat(ulong8);
-uchar8 __ovld __cnfn convert_uchar8_rte(float8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rte(float8);
-uchar8 __ovld __cnfn convert_uchar8_rtz(float8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtz(float8);
-uchar8 __ovld __cnfn convert_uchar8_rtp(float8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtp(float8);
-uchar8 __ovld __cnfn convert_uchar8_rtn(float8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtn(float8);
-uchar8 __ovld __cnfn convert_uchar8(float8);
-uchar8 __ovld __cnfn convert_uchar8_sat(float8);
-short8 __ovld __cnfn convert_short8_rte(char8);
-short8 __ovld __cnfn convert_short8_sat_rte(char8);
-short8 __ovld __cnfn convert_short8_rtz(char8);
-short8 __ovld __cnfn convert_short8_sat_rtz(char8);
-short8 __ovld __cnfn convert_short8_rtp(char8);
-short8 __ovld __cnfn convert_short8_sat_rtp(char8);
-short8 __ovld __cnfn convert_short8_rtn(char8);
-short8 __ovld __cnfn convert_short8_sat_rtn(char8);
-short8 __ovld __cnfn convert_short8(char8);
-short8 __ovld __cnfn convert_short8_sat(char8);
-short8 __ovld __cnfn convert_short8_rte(uchar8);
-short8 __ovld __cnfn convert_short8_sat_rte(uchar8);
-short8 __ovld __cnfn convert_short8_rtz(uchar8);
-short8 __ovld __cnfn convert_short8_sat_rtz(uchar8);
-short8 __ovld __cnfn convert_short8_rtp(uchar8);
-short8 __ovld __cnfn convert_short8_sat_rtp(uchar8);
-short8 __ovld __cnfn convert_short8_rtn(uchar8);
-short8 __ovld __cnfn convert_short8_sat_rtn(uchar8);
-short8 __ovld __cnfn convert_short8(uchar8);
-short8 __ovld __cnfn convert_short8_sat(uchar8);
-short8 __ovld __cnfn convert_short8_rte(short8);
-short8 __ovld __cnfn convert_short8_sat_rte(short8);
-short8 __ovld __cnfn convert_short8_rtz(short8);
-short8 __ovld __cnfn convert_short8_sat_rtz(short8);
-short8 __ovld __cnfn convert_short8_rtp(short8);
-short8 __ovld __cnfn convert_short8_sat_rtp(short8);
-short8 __ovld __cnfn convert_short8_rtn(short8);
-short8 __ovld __cnfn convert_short8_sat_rtn(short8);
-short8 __ovld __cnfn convert_short8(short8);
-short8 __ovld __cnfn convert_short8_sat(short8);
-short8 __ovld __cnfn convert_short8_rte(ushort8);
-short8 __ovld __cnfn convert_short8_sat_rte(ushort8);
-short8 __ovld __cnfn convert_short8_rtz(ushort8);
-short8 __ovld __cnfn convert_short8_sat_rtz(ushort8);
-short8 __ovld __cnfn convert_short8_rtp(ushort8);
-short8 __ovld __cnfn convert_short8_sat_rtp(ushort8);
-short8 __ovld __cnfn convert_short8_rtn(ushort8);
-short8 __ovld __cnfn convert_short8_sat_rtn(ushort8);
-short8 __ovld __cnfn convert_short8(ushort8);
-short8 __ovld __cnfn convert_short8_sat(ushort8);
-short8 __ovld __cnfn convert_short8_rte(int8);
-short8 __ovld __cnfn convert_short8_sat_rte(int8);
-short8 __ovld __cnfn convert_short8_rtz(int8);
-short8 __ovld __cnfn convert_short8_sat_rtz(int8);
-short8 __ovld __cnfn convert_short8_rtp(int8);
-short8 __ovld __cnfn convert_short8_sat_rtp(int8);
-short8 __ovld __cnfn convert_short8_rtn(int8);
-short8 __ovld __cnfn convert_short8_sat_rtn(int8);
-short8 __ovld __cnfn convert_short8(int8);
-short8 __ovld __cnfn convert_short8_sat(int8);
-short8 __ovld __cnfn convert_short8_rte(uint8);
-short8 __ovld __cnfn convert_short8_sat_rte(uint8);
-short8 __ovld __cnfn convert_short8_rtz(uint8);
-short8 __ovld __cnfn convert_short8_sat_rtz(uint8);
-short8 __ovld __cnfn convert_short8_rtp(uint8);
-short8 __ovld __cnfn convert_short8_sat_rtp(uint8);
-short8 __ovld __cnfn convert_short8_rtn(uint8);
-short8 __ovld __cnfn convert_short8_sat_rtn(uint8);
-short8 __ovld __cnfn convert_short8(uint8);
-short8 __ovld __cnfn convert_short8_sat(uint8);
-short8 __ovld __cnfn convert_short8_rte(long8);
-short8 __ovld __cnfn convert_short8_sat_rte(long8);
-short8 __ovld __cnfn convert_short8_rtz(long8);
-short8 __ovld __cnfn convert_short8_sat_rtz(long8);
-short8 __ovld __cnfn convert_short8_rtp(long8);
-short8 __ovld __cnfn convert_short8_sat_rtp(long8);
-short8 __ovld __cnfn convert_short8_rtn(long8);
-short8 __ovld __cnfn convert_short8_sat_rtn(long8);
-short8 __ovld __cnfn convert_short8(long8);
-short8 __ovld __cnfn convert_short8_sat(long8);
-short8 __ovld __cnfn convert_short8_rte(ulong8);
-short8 __ovld __cnfn convert_short8_sat_rte(ulong8);
-short8 __ovld __cnfn convert_short8_rtz(ulong8);
-short8 __ovld __cnfn convert_short8_sat_rtz(ulong8);
-short8 __ovld __cnfn convert_short8_rtp(ulong8);
-short8 __ovld __cnfn convert_short8_sat_rtp(ulong8);
-short8 __ovld __cnfn convert_short8_rtn(ulong8);
-short8 __ovld __cnfn convert_short8_sat_rtn(ulong8);
-short8 __ovld __cnfn convert_short8(ulong8);
-short8 __ovld __cnfn convert_short8_sat(ulong8);
-short8 __ovld __cnfn convert_short8_rte(float8);
-short8 __ovld __cnfn convert_short8_sat_rte(float8);
-short8 __ovld __cnfn convert_short8_rtz(float8);
-short8 __ovld __cnfn convert_short8_sat_rtz(float8);
-short8 __ovld __cnfn convert_short8_rtp(float8);
-short8 __ovld __cnfn convert_short8_sat_rtp(float8);
-short8 __ovld __cnfn convert_short8_rtn(float8);
-short8 __ovld __cnfn convert_short8_sat_rtn(float8);
-short8 __ovld __cnfn convert_short8(float8);
-short8 __ovld __cnfn convert_short8_sat(float8);
-ushort8 __ovld __cnfn convert_ushort8_rte(char8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rte(char8);
-ushort8 __ovld __cnfn convert_ushort8_rtz(char8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtz(char8);
-ushort8 __ovld __cnfn convert_ushort8_rtp(char8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtp(char8);
-ushort8 __ovld __cnfn convert_ushort8_rtn(char8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtn(char8);
-ushort8 __ovld __cnfn convert_ushort8(char8);
-ushort8 __ovld __cnfn convert_ushort8_sat(char8);
-ushort8 __ovld __cnfn convert_ushort8_rte(uchar8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rte(uchar8);
-ushort8 __ovld __cnfn convert_ushort8_rtz(uchar8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtz(uchar8);
-ushort8 __ovld __cnfn convert_ushort8_rtp(uchar8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtp(uchar8);
-ushort8 __ovld __cnfn convert_ushort8_rtn(uchar8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtn(uchar8);
-ushort8 __ovld __cnfn convert_ushort8(uchar8);
-ushort8 __ovld __cnfn convert_ushort8_sat(uchar8);
-ushort8 __ovld __cnfn convert_ushort8_rte(short8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rte(short8);
-ushort8 __ovld __cnfn convert_ushort8_rtz(short8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtz(short8);
-ushort8 __ovld __cnfn convert_ushort8_rtp(short8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtp(short8);
-ushort8 __ovld __cnfn convert_ushort8_rtn(short8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtn(short8);
-ushort8 __ovld __cnfn convert_ushort8(short8);
-ushort8 __ovld __cnfn convert_ushort8_sat(short8);
-ushort8 __ovld __cnfn convert_ushort8_rte(ushort8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rte(ushort8);
-ushort8 __ovld __cnfn convert_ushort8_rtz(ushort8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtz(ushort8);
-ushort8 __ovld __cnfn convert_ushort8_rtp(ushort8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtp(ushort8);
-ushort8 __ovld __cnfn convert_ushort8_rtn(ushort8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtn(ushort8);
-ushort8 __ovld __cnfn convert_ushort8(ushort8);
-ushort8 __ovld __cnfn convert_ushort8_sat(ushort8);
-ushort8 __ovld __cnfn convert_ushort8_rte(int8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rte(int8);
-ushort8 __ovld __cnfn convert_ushort8_rtz(int8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtz(int8);
-ushort8 __ovld __cnfn convert_ushort8_rtp(int8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtp(int8);
-ushort8 __ovld __cnfn convert_ushort8_rtn(int8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtn(int8);
-ushort8 __ovld __cnfn convert_ushort8(int8);
-ushort8 __ovld __cnfn convert_ushort8_sat(int8);
-ushort8 __ovld __cnfn convert_ushort8_rte(uint8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rte(uint8);
-ushort8 __ovld __cnfn convert_ushort8_rtz(uint8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtz(uint8);
-ushort8 __ovld __cnfn convert_ushort8_rtp(uint8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtp(uint8);
-ushort8 __ovld __cnfn convert_ushort8_rtn(uint8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtn(uint8);
-ushort8 __ovld __cnfn convert_ushort8(uint8);
-ushort8 __ovld __cnfn convert_ushort8_sat(uint8);
-ushort8 __ovld __cnfn convert_ushort8_rte(long8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rte(long8);
-ushort8 __ovld __cnfn convert_ushort8_rtz(long8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtz(long8);
-ushort8 __ovld __cnfn convert_ushort8_rtp(long8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtp(long8);
-ushort8 __ovld __cnfn convert_ushort8_rtn(long8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtn(long8);
-ushort8 __ovld __cnfn convert_ushort8(long8);
-ushort8 __ovld __cnfn convert_ushort8_sat(long8);
-ushort8 __ovld __cnfn convert_ushort8_rte(ulong8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rte(ulong8);
-ushort8 __ovld __cnfn convert_ushort8_rtz(ulong8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtz(ulong8);
-ushort8 __ovld __cnfn convert_ushort8_rtp(ulong8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtp(ulong8);
-ushort8 __ovld __cnfn convert_ushort8_rtn(ulong8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtn(ulong8);
-ushort8 __ovld __cnfn convert_ushort8(ulong8);
-ushort8 __ovld __cnfn convert_ushort8_sat(ulong8);
-ushort8 __ovld __cnfn convert_ushort8_rte(float8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rte(float8);
-ushort8 __ovld __cnfn convert_ushort8_rtz(float8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtz(float8);
-ushort8 __ovld __cnfn convert_ushort8_rtp(float8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtp(float8);
-ushort8 __ovld __cnfn convert_ushort8_rtn(float8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtn(float8);
-ushort8 __ovld __cnfn convert_ushort8(float8);
-ushort8 __ovld __cnfn convert_ushort8_sat(float8);
-int8 __ovld __cnfn convert_int8_rte(char8);
-int8 __ovld __cnfn convert_int8_sat_rte(char8);
-int8 __ovld __cnfn convert_int8_rtz(char8);
-int8 __ovld __cnfn convert_int8_sat_rtz(char8);
-int8 __ovld __cnfn convert_int8_rtp(char8);
-int8 __ovld __cnfn convert_int8_sat_rtp(char8);
-int8 __ovld __cnfn convert_int8_rtn(char8);
-int8 __ovld __cnfn convert_int8_sat_rtn(char8);
-int8 __ovld __cnfn convert_int8(char8);
-int8 __ovld __cnfn convert_int8_sat(char8);
-int8 __ovld __cnfn convert_int8_rte(uchar8);
-int8 __ovld __cnfn convert_int8_sat_rte(uchar8);
-int8 __ovld __cnfn convert_int8_rtz(uchar8);
-int8 __ovld __cnfn convert_int8_sat_rtz(uchar8);
-int8 __ovld __cnfn convert_int8_rtp(uchar8);
-int8 __ovld __cnfn convert_int8_sat_rtp(uchar8);
-int8 __ovld __cnfn convert_int8_rtn(uchar8);
-int8 __ovld __cnfn convert_int8_sat_rtn(uchar8);
-int8 __ovld __cnfn convert_int8(uchar8);
-int8 __ovld __cnfn convert_int8_sat(uchar8);
-int8 __ovld __cnfn convert_int8_rte(short8);
-int8 __ovld __cnfn convert_int8_sat_rte(short8);
-int8 __ovld __cnfn convert_int8_rtz(short8);
-int8 __ovld __cnfn convert_int8_sat_rtz(short8);
-int8 __ovld __cnfn convert_int8_rtp(short8);
-int8 __ovld __cnfn convert_int8_sat_rtp(short8);
-int8 __ovld __cnfn convert_int8_rtn(short8);
-int8 __ovld __cnfn convert_int8_sat_rtn(short8);
-int8 __ovld __cnfn convert_int8(short8);
-int8 __ovld __cnfn convert_int8_sat(short8);
-int8 __ovld __cnfn convert_int8_rte(ushort8);
-int8 __ovld __cnfn convert_int8_sat_rte(ushort8);
-int8 __ovld __cnfn convert_int8_rtz(ushort8);
-int8 __ovld __cnfn convert_int8_sat_rtz(ushort8);
-int8 __ovld __cnfn convert_int8_rtp(ushort8);
-int8 __ovld __cnfn convert_int8_sat_rtp(ushort8);
-int8 __ovld __cnfn convert_int8_rtn(ushort8);
-int8 __ovld __cnfn convert_int8_sat_rtn(ushort8);
-int8 __ovld __cnfn convert_int8(ushort8);
-int8 __ovld __cnfn convert_int8_sat(ushort8);
-int8 __ovld __cnfn convert_int8_rte(int8);
-int8 __ovld __cnfn convert_int8_sat_rte(int8);
-int8 __ovld __cnfn convert_int8_rtz(int8);
-int8 __ovld __cnfn convert_int8_sat_rtz(int8);
-int8 __ovld __cnfn convert_int8_rtp(int8);
-int8 __ovld __cnfn convert_int8_sat_rtp(int8);
-int8 __ovld __cnfn convert_int8_rtn(int8);
-int8 __ovld __cnfn convert_int8_sat_rtn(int8);
-int8 __ovld __cnfn convert_int8(int8);
-int8 __ovld __cnfn convert_int8_sat(int8);
-int8 __ovld __cnfn convert_int8_rte(uint8);
-int8 __ovld __cnfn convert_int8_sat_rte(uint8);
-int8 __ovld __cnfn convert_int8_rtz(uint8);
-int8 __ovld __cnfn convert_int8_sat_rtz(uint8);
-int8 __ovld __cnfn convert_int8_rtp(uint8);
-int8 __ovld __cnfn convert_int8_sat_rtp(uint8);
-int8 __ovld __cnfn convert_int8_rtn(uint8);
-int8 __ovld __cnfn convert_int8_sat_rtn(uint8);
-int8 __ovld __cnfn convert_int8(uint8);
-int8 __ovld __cnfn convert_int8_sat(uint8);
-int8 __ovld __cnfn convert_int8_rte(long8);
-int8 __ovld __cnfn convert_int8_sat_rte(long8);
-int8 __ovld __cnfn convert_int8_rtz(long8);
-int8 __ovld __cnfn convert_int8_sat_rtz(long8);
-int8 __ovld __cnfn convert_int8_rtp(long8);
-int8 __ovld __cnfn convert_int8_sat_rtp(long8);
-int8 __ovld __cnfn convert_int8_rtn(long8);
-int8 __ovld __cnfn convert_int8_sat_rtn(long8);
-int8 __ovld __cnfn convert_int8(long8);
-int8 __ovld __cnfn convert_int8_sat(long8);
-int8 __ovld __cnfn convert_int8_rte(ulong8);
-int8 __ovld __cnfn convert_int8_sat_rte(ulong8);
-int8 __ovld __cnfn convert_int8_rtz(ulong8);
-int8 __ovld __cnfn convert_int8_sat_rtz(ulong8);
-int8 __ovld __cnfn convert_int8_rtp(ulong8);
-int8 __ovld __cnfn convert_int8_sat_rtp(ulong8);
-int8 __ovld __cnfn convert_int8_rtn(ulong8);
-int8 __ovld __cnfn convert_int8_sat_rtn(ulong8);
-int8 __ovld __cnfn convert_int8(ulong8);
-int8 __ovld __cnfn convert_int8_sat(ulong8);
-int8 __ovld __cnfn convert_int8_rte(float8);
-int8 __ovld __cnfn convert_int8_sat_rte(float8);
-int8 __ovld __cnfn convert_int8_rtz(float8);
-int8 __ovld __cnfn convert_int8_sat_rtz(float8);
-int8 __ovld __cnfn convert_int8_rtp(float8);
-int8 __ovld __cnfn convert_int8_sat_rtp(float8);
-int8 __ovld __cnfn convert_int8_rtn(float8);
-int8 __ovld __cnfn convert_int8_sat_rtn(float8);
-int8 __ovld __cnfn convert_int8(float8);
-int8 __ovld __cnfn convert_int8_sat(float8);
-uint8 __ovld __cnfn convert_uint8_rte(char8);
-uint8 __ovld __cnfn convert_uint8_sat_rte(char8);
-uint8 __ovld __cnfn convert_uint8_rtz(char8);
-uint8 __ovld __cnfn convert_uint8_sat_rtz(char8);
-uint8 __ovld __cnfn convert_uint8_rtp(char8);
-uint8 __ovld __cnfn convert_uint8_sat_rtp(char8);
-uint8 __ovld __cnfn convert_uint8_rtn(char8);
-uint8 __ovld __cnfn convert_uint8_sat_rtn(char8);
-uint8 __ovld __cnfn convert_uint8(char8);
-uint8 __ovld __cnfn convert_uint8_sat(char8);
-uint8 __ovld __cnfn convert_uint8_rte(uchar8);
-uint8 __ovld __cnfn convert_uint8_sat_rte(uchar8);
-uint8 __ovld __cnfn convert_uint8_rtz(uchar8);
-uint8 __ovld __cnfn convert_uint8_sat_rtz(uchar8);
-uint8 __ovld __cnfn convert_uint8_rtp(uchar8);
-uint8 __ovld __cnfn convert_uint8_sat_rtp(uchar8);
-uint8 __ovld __cnfn convert_uint8_rtn(uchar8);
-uint8 __ovld __cnfn convert_uint8_sat_rtn(uchar8);
-uint8 __ovld __cnfn convert_uint8(uchar8);
-uint8 __ovld __cnfn convert_uint8_sat(uchar8);
-uint8 __ovld __cnfn convert_uint8_rte(short8);
-uint8 __ovld __cnfn convert_uint8_sat_rte(short8);
-uint8 __ovld __cnfn convert_uint8_rtz(short8);
-uint8 __ovld __cnfn convert_uint8_sat_rtz(short8);
-uint8 __ovld __cnfn convert_uint8_rtp(short8);
-uint8 __ovld __cnfn convert_uint8_sat_rtp(short8);
-uint8 __ovld __cnfn convert_uint8_rtn(short8);
-uint8 __ovld __cnfn convert_uint8_sat_rtn(short8);
-uint8 __ovld __cnfn convert_uint8(short8);
-uint8 __ovld __cnfn convert_uint8_sat(short8);
-uint8 __ovld __cnfn convert_uint8_rte(ushort8);
-uint8 __ovld __cnfn convert_uint8_sat_rte(ushort8);
-uint8 __ovld __cnfn convert_uint8_rtz(ushort8);
-uint8 __ovld __cnfn convert_uint8_sat_rtz(ushort8);
-uint8 __ovld __cnfn convert_uint8_rtp(ushort8);
-uint8 __ovld __cnfn convert_uint8_sat_rtp(ushort8);
-uint8 __ovld __cnfn convert_uint8_rtn(ushort8);
-uint8 __ovld __cnfn convert_uint8_sat_rtn(ushort8);
-uint8 __ovld __cnfn convert_uint8(ushort8);
-uint8 __ovld __cnfn convert_uint8_sat(ushort8);
-uint8 __ovld __cnfn convert_uint8_rte(int8);
-uint8 __ovld __cnfn convert_uint8_sat_rte(int8);
-uint8 __ovld __cnfn convert_uint8_rtz(int8);
-uint8 __ovld __cnfn convert_uint8_sat_rtz(int8);
-uint8 __ovld __cnfn convert_uint8_rtp(int8);
-uint8 __ovld __cnfn convert_uint8_sat_rtp(int8);
-uint8 __ovld __cnfn convert_uint8_rtn(int8);
-uint8 __ovld __cnfn convert_uint8_sat_rtn(int8);
-uint8 __ovld __cnfn convert_uint8(int8);
-uint8 __ovld __cnfn convert_uint8_sat(int8);
-uint8 __ovld __cnfn convert_uint8_rte(uint8);
-uint8 __ovld __cnfn convert_uint8_sat_rte(uint8);
-uint8 __ovld __cnfn convert_uint8_rtz(uint8);
-uint8 __ovld __cnfn convert_uint8_sat_rtz(uint8);
-uint8 __ovld __cnfn convert_uint8_rtp(uint8);
-uint8 __ovld __cnfn convert_uint8_sat_rtp(uint8);
-uint8 __ovld __cnfn convert_uint8_rtn(uint8);
-uint8 __ovld __cnfn convert_uint8_sat_rtn(uint8);
-uint8 __ovld __cnfn convert_uint8(uint8);
-uint8 __ovld __cnfn convert_uint8_sat(uint8);
-uint8 __ovld __cnfn convert_uint8_rte(long8);
-uint8 __ovld __cnfn convert_uint8_sat_rte(long8);
-uint8 __ovld __cnfn convert_uint8_rtz(long8);
-uint8 __ovld __cnfn convert_uint8_sat_rtz(long8);
-uint8 __ovld __cnfn convert_uint8_rtp(long8);
-uint8 __ovld __cnfn convert_uint8_sat_rtp(long8);
-uint8 __ovld __cnfn convert_uint8_rtn(long8);
-uint8 __ovld __cnfn convert_uint8_sat_rtn(long8);
-uint8 __ovld __cnfn convert_uint8(long8);
-uint8 __ovld __cnfn convert_uint8_sat(long8);
-uint8 __ovld __cnfn convert_uint8_rte(ulong8);
-uint8 __ovld __cnfn convert_uint8_sat_rte(ulong8);
-uint8 __ovld __cnfn convert_uint8_rtz(ulong8);
-uint8 __ovld __cnfn convert_uint8_sat_rtz(ulong8);
-uint8 __ovld __cnfn convert_uint8_rtp(ulong8);
-uint8 __ovld __cnfn convert_uint8_sat_rtp(ulong8);
-uint8 __ovld __cnfn convert_uint8_rtn(ulong8);
-uint8 __ovld __cnfn convert_uint8_sat_rtn(ulong8);
-uint8 __ovld __cnfn convert_uint8(ulong8);
-uint8 __ovld __cnfn convert_uint8_sat(ulong8);
-uint8 __ovld __cnfn convert_uint8_rte(float8);
-uint8 __ovld __cnfn convert_uint8_sat_rte(float8);
-uint8 __ovld __cnfn convert_uint8_rtz(float8);
-uint8 __ovld __cnfn convert_uint8_sat_rtz(float8);
-uint8 __ovld __cnfn convert_uint8_rtp(float8);
-uint8 __ovld __cnfn convert_uint8_sat_rtp(float8);
-uint8 __ovld __cnfn convert_uint8_rtn(float8);
-uint8 __ovld __cnfn convert_uint8_sat_rtn(float8);
-uint8 __ovld __cnfn convert_uint8(float8);
-uint8 __ovld __cnfn convert_uint8_sat(float8);
-long8 __ovld __cnfn convert_long8_rte(char8);
-long8 __ovld __cnfn convert_long8_sat_rte(char8);
-long8 __ovld __cnfn convert_long8_rtz(char8);
-long8 __ovld __cnfn convert_long8_sat_rtz(char8);
-long8 __ovld __cnfn convert_long8_rtp(char8);
-long8 __ovld __cnfn convert_long8_sat_rtp(char8);
-long8 __ovld __cnfn convert_long8_rtn(char8);
-long8 __ovld __cnfn convert_long8_sat_rtn(char8);
-long8 __ovld __cnfn convert_long8(char8);
-long8 __ovld __cnfn convert_long8_sat(char8);
-long8 __ovld __cnfn convert_long8_rte(uchar8);
-long8 __ovld __cnfn convert_long8_sat_rte(uchar8);
-long8 __ovld __cnfn convert_long8_rtz(uchar8);
-long8 __ovld __cnfn convert_long8_sat_rtz(uchar8);
-long8 __ovld __cnfn convert_long8_rtp(uchar8);
-long8 __ovld __cnfn convert_long8_sat_rtp(uchar8);
-long8 __ovld __cnfn convert_long8_rtn(uchar8);
-long8 __ovld __cnfn convert_long8_sat_rtn(uchar8);
-long8 __ovld __cnfn convert_long8(uchar8);
-long8 __ovld __cnfn convert_long8_sat(uchar8);
-long8 __ovld __cnfn convert_long8_rte(short8);
-long8 __ovld __cnfn convert_long8_sat_rte(short8);
-long8 __ovld __cnfn convert_long8_rtz(short8);
-long8 __ovld __cnfn convert_long8_sat_rtz(short8);
-long8 __ovld __cnfn convert_long8_rtp(short8);
-long8 __ovld __cnfn convert_long8_sat_rtp(short8);
-long8 __ovld __cnfn convert_long8_rtn(short8);
-long8 __ovld __cnfn convert_long8_sat_rtn(short8);
-long8 __ovld __cnfn convert_long8(short8);
-long8 __ovld __cnfn convert_long8_sat(short8);
-long8 __ovld __cnfn convert_long8_rte(ushort8);
-long8 __ovld __cnfn convert_long8_sat_rte(ushort8);
-long8 __ovld __cnfn convert_long8_rtz(ushort8);
-long8 __ovld __cnfn convert_long8_sat_rtz(ushort8);
-long8 __ovld __cnfn convert_long8_rtp(ushort8);
-long8 __ovld __cnfn convert_long8_sat_rtp(ushort8);
-long8 __ovld __cnfn convert_long8_rtn(ushort8);
-long8 __ovld __cnfn convert_long8_sat_rtn(ushort8);
-long8 __ovld __cnfn convert_long8(ushort8);
-long8 __ovld __cnfn convert_long8_sat(ushort8);
-long8 __ovld __cnfn convert_long8_rte(int8);
-long8 __ovld __cnfn convert_long8_sat_rte(int8);
-long8 __ovld __cnfn convert_long8_rtz(int8);
-long8 __ovld __cnfn convert_long8_sat_rtz(int8);
-long8 __ovld __cnfn convert_long8_rtp(int8);
-long8 __ovld __cnfn convert_long8_sat_rtp(int8);
-long8 __ovld __cnfn convert_long8_rtn(int8);
-long8 __ovld __cnfn convert_long8_sat_rtn(int8);
-long8 __ovld __cnfn convert_long8(int8);
-long8 __ovld __cnfn convert_long8_sat(int8);
-long8 __ovld __cnfn convert_long8_rte(uint8);
-long8 __ovld __cnfn convert_long8_sat_rte(uint8);
-long8 __ovld __cnfn convert_long8_rtz(uint8);
-long8 __ovld __cnfn convert_long8_sat_rtz(uint8);
-long8 __ovld __cnfn convert_long8_rtp(uint8);
-long8 __ovld __cnfn convert_long8_sat_rtp(uint8);
-long8 __ovld __cnfn convert_long8_rtn(uint8);
-long8 __ovld __cnfn convert_long8_sat_rtn(uint8);
-long8 __ovld __cnfn convert_long8(uint8);
-long8 __ovld __cnfn convert_long8_sat(uint8);
-long8 __ovld __cnfn convert_long8_rte(long8);
-long8 __ovld __cnfn convert_long8_sat_rte(long8);
-long8 __ovld __cnfn convert_long8_rtz(long8);
-long8 __ovld __cnfn convert_long8_sat_rtz(long8);
-long8 __ovld __cnfn convert_long8_rtp(long8);
-long8 __ovld __cnfn convert_long8_sat_rtp(long8);
-long8 __ovld __cnfn convert_long8_rtn(long8);
-long8 __ovld __cnfn convert_long8_sat_rtn(long8);
-long8 __ovld __cnfn convert_long8(long8);
-long8 __ovld __cnfn convert_long8_sat(long8);
-long8 __ovld __cnfn convert_long8_rte(ulong8);
-long8 __ovld __cnfn convert_long8_sat_rte(ulong8);
-long8 __ovld __cnfn convert_long8_rtz(ulong8);
-long8 __ovld __cnfn convert_long8_sat_rtz(ulong8);
-long8 __ovld __cnfn convert_long8_rtp(ulong8);
-long8 __ovld __cnfn convert_long8_sat_rtp(ulong8);
-long8 __ovld __cnfn convert_long8_rtn(ulong8);
-long8 __ovld __cnfn convert_long8_sat_rtn(ulong8);
-long8 __ovld __cnfn convert_long8(ulong8);
-long8 __ovld __cnfn convert_long8_sat(ulong8);
-long8 __ovld __cnfn convert_long8_rte(float8);
-long8 __ovld __cnfn convert_long8_sat_rte(float8);
-long8 __ovld __cnfn convert_long8_rtz(float8);
-long8 __ovld __cnfn convert_long8_sat_rtz(float8);
-long8 __ovld __cnfn convert_long8_rtp(float8);
-long8 __ovld __cnfn convert_long8_sat_rtp(float8);
-long8 __ovld __cnfn convert_long8_rtn(float8);
-long8 __ovld __cnfn convert_long8_sat_rtn(float8);
-long8 __ovld __cnfn convert_long8(float8);
-long8 __ovld __cnfn convert_long8_sat(float8);
-ulong8 __ovld __cnfn convert_ulong8_rte(char8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rte(char8);
-ulong8 __ovld __cnfn convert_ulong8_rtz(char8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtz(char8);
-ulong8 __ovld __cnfn convert_ulong8_rtp(char8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtp(char8);
-ulong8 __ovld __cnfn convert_ulong8_rtn(char8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtn(char8);
-ulong8 __ovld __cnfn convert_ulong8(char8);
-ulong8 __ovld __cnfn convert_ulong8_sat(char8);
-ulong8 __ovld __cnfn convert_ulong8_rte(uchar8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rte(uchar8);
-ulong8 __ovld __cnfn convert_ulong8_rtz(uchar8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtz(uchar8);
-ulong8 __ovld __cnfn convert_ulong8_rtp(uchar8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtp(uchar8);
-ulong8 __ovld __cnfn convert_ulong8_rtn(uchar8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtn(uchar8);
-ulong8 __ovld __cnfn convert_ulong8(uchar8);
-ulong8 __ovld __cnfn convert_ulong8_sat(uchar8);
-ulong8 __ovld __cnfn convert_ulong8_rte(short8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rte(short8);
-ulong8 __ovld __cnfn convert_ulong8_rtz(short8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtz(short8);
-ulong8 __ovld __cnfn convert_ulong8_rtp(short8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtp(short8);
-ulong8 __ovld __cnfn convert_ulong8_rtn(short8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtn(short8);
-ulong8 __ovld __cnfn convert_ulong8(short8);
-ulong8 __ovld __cnfn convert_ulong8_sat(short8);
-ulong8 __ovld __cnfn convert_ulong8_rte(ushort8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rte(ushort8);
-ulong8 __ovld __cnfn convert_ulong8_rtz(ushort8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtz(ushort8);
-ulong8 __ovld __cnfn convert_ulong8_rtp(ushort8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtp(ushort8);
-ulong8 __ovld __cnfn convert_ulong8_rtn(ushort8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtn(ushort8);
-ulong8 __ovld __cnfn convert_ulong8(ushort8);
-ulong8 __ovld __cnfn convert_ulong8_sat(ushort8);
-ulong8 __ovld __cnfn convert_ulong8_rte(int8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rte(int8);
-ulong8 __ovld __cnfn convert_ulong8_rtz(int8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtz(int8);
-ulong8 __ovld __cnfn convert_ulong8_rtp(int8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtp(int8);
-ulong8 __ovld __cnfn convert_ulong8_rtn(int8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtn(int8);
-ulong8 __ovld __cnfn convert_ulong8(int8);
-ulong8 __ovld __cnfn convert_ulong8_sat(int8);
-ulong8 __ovld __cnfn convert_ulong8_rte(uint8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rte(uint8);
-ulong8 __ovld __cnfn convert_ulong8_rtz(uint8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtz(uint8);
-ulong8 __ovld __cnfn convert_ulong8_rtp(uint8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtp(uint8);
-ulong8 __ovld __cnfn convert_ulong8_rtn(uint8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtn(uint8);
-ulong8 __ovld __cnfn convert_ulong8(uint8);
-ulong8 __ovld __cnfn convert_ulong8_sat(uint8);
-ulong8 __ovld __cnfn convert_ulong8_rte(long8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rte(long8);
-ulong8 __ovld __cnfn convert_ulong8_rtz(long8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtz(long8);
-ulong8 __ovld __cnfn convert_ulong8_rtp(long8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtp(long8);
-ulong8 __ovld __cnfn convert_ulong8_rtn(long8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtn(long8);
-ulong8 __ovld __cnfn convert_ulong8(long8);
-ulong8 __ovld __cnfn convert_ulong8_sat(long8);
-ulong8 __ovld __cnfn convert_ulong8_rte(ulong8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rte(ulong8);
-ulong8 __ovld __cnfn convert_ulong8_rtz(ulong8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtz(ulong8);
-ulong8 __ovld __cnfn convert_ulong8_rtp(ulong8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtp(ulong8);
-ulong8 __ovld __cnfn convert_ulong8_rtn(ulong8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtn(ulong8);
-ulong8 __ovld __cnfn convert_ulong8(ulong8);
-ulong8 __ovld __cnfn convert_ulong8_sat(ulong8);
-ulong8 __ovld __cnfn convert_ulong8_rte(float8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rte(float8);
-ulong8 __ovld __cnfn convert_ulong8_rtz(float8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtz(float8);
-ulong8 __ovld __cnfn convert_ulong8_rtp(float8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtp(float8);
-ulong8 __ovld __cnfn convert_ulong8_rtn(float8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtn(float8);
-ulong8 __ovld __cnfn convert_ulong8(float8);
-ulong8 __ovld __cnfn convert_ulong8_sat(float8);
-float8 __ovld __cnfn convert_float8_rte(char8);
-float8 __ovld __cnfn convert_float8_rtz(char8);
-float8 __ovld __cnfn convert_float8_rtp(char8);
-float8 __ovld __cnfn convert_float8_rtn(char8);
-float8 __ovld __cnfn convert_float8(char8);
-float8 __ovld __cnfn convert_float8_rte(uchar8);
-float8 __ovld __cnfn convert_float8_rtz(uchar8);
-float8 __ovld __cnfn convert_float8_rtp(uchar8);
-float8 __ovld __cnfn convert_float8_rtn(uchar8);
-float8 __ovld __cnfn convert_float8(uchar8);
-float8 __ovld __cnfn convert_float8_rte(short8);
-float8 __ovld __cnfn convert_float8_rtz(short8);
-float8 __ovld __cnfn convert_float8_rtp(short8);
-float8 __ovld __cnfn convert_float8_rtn(short8);
-float8 __ovld __cnfn convert_float8(short8);
-float8 __ovld __cnfn convert_float8_rte(ushort8);
-float8 __ovld __cnfn convert_float8_rtz(ushort8);
-float8 __ovld __cnfn convert_float8_rtp(ushort8);
-float8 __ovld __cnfn convert_float8_rtn(ushort8);
-float8 __ovld __cnfn convert_float8(ushort8);
-float8 __ovld __cnfn convert_float8_rte(int8);
-float8 __ovld __cnfn convert_float8_rtz(int8);
-float8 __ovld __cnfn convert_float8_rtp(int8);
-float8 __ovld __cnfn convert_float8_rtn(int8);
-float8 __ovld __cnfn convert_float8(int8);
-float8 __ovld __cnfn convert_float8_rte(uint8);
-float8 __ovld __cnfn convert_float8_rtz(uint8);
-float8 __ovld __cnfn convert_float8_rtp(uint8);
-float8 __ovld __cnfn convert_float8_rtn(uint8);
-float8 __ovld __cnfn convert_float8(uint8);
-float8 __ovld __cnfn convert_float8_rte(long8);
-float8 __ovld __cnfn convert_float8_rtz(long8);
-float8 __ovld __cnfn convert_float8_rtp(long8);
-float8 __ovld __cnfn convert_float8_rtn(long8);
-float8 __ovld __cnfn convert_float8(long8);
-float8 __ovld __cnfn convert_float8_rte(ulong8);
-float8 __ovld __cnfn convert_float8_rtz(ulong8);
-float8 __ovld __cnfn convert_float8_rtp(ulong8);
-float8 __ovld __cnfn convert_float8_rtn(ulong8);
-float8 __ovld __cnfn convert_float8(ulong8);
-float8 __ovld __cnfn convert_float8_rte(float8);
-float8 __ovld __cnfn convert_float8_rtz(float8);
-float8 __ovld __cnfn convert_float8_rtp(float8);
-float8 __ovld __cnfn convert_float8_rtn(float8);
-float8 __ovld __cnfn convert_float8(float8);
-char16 __ovld __cnfn convert_char16_rte(char16);
-char16 __ovld __cnfn convert_char16_sat_rte(char16);
-char16 __ovld __cnfn convert_char16_rtz(char16);
-char16 __ovld __cnfn convert_char16_sat_rtz(char16);
-char16 __ovld __cnfn convert_char16_rtp(char16);
-char16 __ovld __cnfn convert_char16_sat_rtp(char16);
-char16 __ovld __cnfn convert_char16_rtn(char16);
-char16 __ovld __cnfn convert_char16_sat_rtn(char16);
-char16 __ovld __cnfn convert_char16(char16);
-char16 __ovld __cnfn convert_char16_sat(char16);
-char16 __ovld __cnfn convert_char16_rte(uchar16);
-char16 __ovld __cnfn convert_char16_sat_rte(uchar16);
-char16 __ovld __cnfn convert_char16_rtz(uchar16);
-char16 __ovld __cnfn convert_char16_sat_rtz(uchar16);
-char16 __ovld __cnfn convert_char16_rtp(uchar16);
-char16 __ovld __cnfn convert_char16_sat_rtp(uchar16);
-char16 __ovld __cnfn convert_char16_rtn(uchar16);
-char16 __ovld __cnfn convert_char16_sat_rtn(uchar16);
-char16 __ovld __cnfn convert_char16(uchar16);
-char16 __ovld __cnfn convert_char16_sat(uchar16);
-char16 __ovld __cnfn convert_char16_rte(short16);
-char16 __ovld __cnfn convert_char16_sat_rte(short16);
-char16 __ovld __cnfn convert_char16_rtz(short16);
-char16 __ovld __cnfn convert_char16_sat_rtz(short16);
-char16 __ovld __cnfn convert_char16_rtp(short16);
-char16 __ovld __cnfn convert_char16_sat_rtp(short16);
-char16 __ovld __cnfn convert_char16_rtn(short16);
-char16 __ovld __cnfn convert_char16_sat_rtn(short16);
-char16 __ovld __cnfn convert_char16(short16);
-char16 __ovld __cnfn convert_char16_sat(short16);
-char16 __ovld __cnfn convert_char16_rte(ushort16);
-char16 __ovld __cnfn convert_char16_sat_rte(ushort16);
-char16 __ovld __cnfn convert_char16_rtz(ushort16);
-char16 __ovld __cnfn convert_char16_sat_rtz(ushort16);
-char16 __ovld __cnfn convert_char16_rtp(ushort16);
-char16 __ovld __cnfn convert_char16_sat_rtp(ushort16);
-char16 __ovld __cnfn convert_char16_rtn(ushort16);
-char16 __ovld __cnfn convert_char16_sat_rtn(ushort16);
-char16 __ovld __cnfn convert_char16(ushort16);
-char16 __ovld __cnfn convert_char16_sat(ushort16);
-char16 __ovld __cnfn convert_char16_rte(int16);
-char16 __ovld __cnfn convert_char16_sat_rte(int16);
-char16 __ovld __cnfn convert_char16_rtz(int16);
-char16 __ovld __cnfn convert_char16_sat_rtz(int16);
-char16 __ovld __cnfn convert_char16_rtp(int16);
-char16 __ovld __cnfn convert_char16_sat_rtp(int16);
-char16 __ovld __cnfn convert_char16_rtn(int16);
-char16 __ovld __cnfn convert_char16_sat_rtn(int16);
-char16 __ovld __cnfn convert_char16(int16);
-char16 __ovld __cnfn convert_char16_sat(int16);
-char16 __ovld __cnfn convert_char16_rte(uint16);
-char16 __ovld __cnfn convert_char16_sat_rte(uint16);
-char16 __ovld __cnfn convert_char16_rtz(uint16);
-char16 __ovld __cnfn convert_char16_sat_rtz(uint16);
-char16 __ovld __cnfn convert_char16_rtp(uint16);
-char16 __ovld __cnfn convert_char16_sat_rtp(uint16);
-char16 __ovld __cnfn convert_char16_rtn(uint16);
-char16 __ovld __cnfn convert_char16_sat_rtn(uint16);
-char16 __ovld __cnfn convert_char16(uint16);
-char16 __ovld __cnfn convert_char16_sat(uint16);
-char16 __ovld __cnfn convert_char16_rte(long16);
-char16 __ovld __cnfn convert_char16_sat_rte(long16);
-char16 __ovld __cnfn convert_char16_rtz(long16);
-char16 __ovld __cnfn convert_char16_sat_rtz(long16);
-char16 __ovld __cnfn convert_char16_rtp(long16);
-char16 __ovld __cnfn convert_char16_sat_rtp(long16);
-char16 __ovld __cnfn convert_char16_rtn(long16);
-char16 __ovld __cnfn convert_char16_sat_rtn(long16);
-char16 __ovld __cnfn convert_char16(long16);
-char16 __ovld __cnfn convert_char16_sat(long16);
-char16 __ovld __cnfn convert_char16_rte(ulong16);
-char16 __ovld __cnfn convert_char16_sat_rte(ulong16);
-char16 __ovld __cnfn convert_char16_rtz(ulong16);
-char16 __ovld __cnfn convert_char16_sat_rtz(ulong16);
-char16 __ovld __cnfn convert_char16_rtp(ulong16);
-char16 __ovld __cnfn convert_char16_sat_rtp(ulong16);
-char16 __ovld __cnfn convert_char16_rtn(ulong16);
-char16 __ovld __cnfn convert_char16_sat_rtn(ulong16);
-char16 __ovld __cnfn convert_char16(ulong16);
-char16 __ovld __cnfn convert_char16_sat(ulong16);
-char16 __ovld __cnfn convert_char16_rte(float16);
-char16 __ovld __cnfn convert_char16_sat_rte(float16);
-char16 __ovld __cnfn convert_char16_rtz(float16);
-char16 __ovld __cnfn convert_char16_sat_rtz(float16);
-char16 __ovld __cnfn convert_char16_rtp(float16);
-char16 __ovld __cnfn convert_char16_sat_rtp(float16);
-char16 __ovld __cnfn convert_char16_rtn(float16);
-char16 __ovld __cnfn convert_char16_sat_rtn(float16);
-char16 __ovld __cnfn convert_char16(float16);
-char16 __ovld __cnfn convert_char16_sat(float16);
-uchar16 __ovld __cnfn convert_uchar16_rte(char16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rte(char16);
-uchar16 __ovld __cnfn convert_uchar16_rtz(char16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtz(char16);
-uchar16 __ovld __cnfn convert_uchar16_rtp(char16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtp(char16);
-uchar16 __ovld __cnfn convert_uchar16_rtn(char16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtn(char16);
-uchar16 __ovld __cnfn convert_uchar16(char16);
-uchar16 __ovld __cnfn convert_uchar16_sat(char16);
-uchar16 __ovld __cnfn convert_uchar16_rte(uchar16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rte(uchar16);
-uchar16 __ovld __cnfn convert_uchar16_rtz(uchar16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtz(uchar16);
-uchar16 __ovld __cnfn convert_uchar16_rtp(uchar16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtp(uchar16);
-uchar16 __ovld __cnfn convert_uchar16_rtn(uchar16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtn(uchar16);
-uchar16 __ovld __cnfn convert_uchar16(uchar16);
-uchar16 __ovld __cnfn convert_uchar16_sat(uchar16);
-uchar16 __ovld __cnfn convert_uchar16_rte(short16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rte(short16);
-uchar16 __ovld __cnfn convert_uchar16_rtz(short16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtz(short16);
-uchar16 __ovld __cnfn convert_uchar16_rtp(short16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtp(short16);
-uchar16 __ovld __cnfn convert_uchar16_rtn(short16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtn(short16);
-uchar16 __ovld __cnfn convert_uchar16(short16);
-uchar16 __ovld __cnfn convert_uchar16_sat(short16);
-uchar16 __ovld __cnfn convert_uchar16_rte(ushort16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rte(ushort16);
-uchar16 __ovld __cnfn convert_uchar16_rtz(ushort16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtz(ushort16);
-uchar16 __ovld __cnfn convert_uchar16_rtp(ushort16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtp(ushort16);
-uchar16 __ovld __cnfn convert_uchar16_rtn(ushort16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtn(ushort16);
-uchar16 __ovld __cnfn convert_uchar16(ushort16);
-uchar16 __ovld __cnfn convert_uchar16_sat(ushort16);
-uchar16 __ovld __cnfn convert_uchar16_rte(int16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rte(int16);
-uchar16 __ovld __cnfn convert_uchar16_rtz(int16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtz(int16);
-uchar16 __ovld __cnfn convert_uchar16_rtp(int16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtp(int16);
-uchar16 __ovld __cnfn convert_uchar16_rtn(int16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtn(int16);
-uchar16 __ovld __cnfn convert_uchar16(int16);
-uchar16 __ovld __cnfn convert_uchar16_sat(int16);
-uchar16 __ovld __cnfn convert_uchar16_rte(uint16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rte(uint16);
-uchar16 __ovld __cnfn convert_uchar16_rtz(uint16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtz(uint16);
-uchar16 __ovld __cnfn convert_uchar16_rtp(uint16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtp(uint16);
-uchar16 __ovld __cnfn convert_uchar16_rtn(uint16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtn(uint16);
-uchar16 __ovld __cnfn convert_uchar16(uint16);
-uchar16 __ovld __cnfn convert_uchar16_sat(uint16);
-uchar16 __ovld __cnfn convert_uchar16_rte(long16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rte(long16);
-uchar16 __ovld __cnfn convert_uchar16_rtz(long16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtz(long16);
-uchar16 __ovld __cnfn convert_uchar16_rtp(long16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtp(long16);
-uchar16 __ovld __cnfn convert_uchar16_rtn(long16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtn(long16);
-uchar16 __ovld __cnfn convert_uchar16(long16);
-uchar16 __ovld __cnfn convert_uchar16_sat(long16);
-uchar16 __ovld __cnfn convert_uchar16_rte(ulong16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rte(ulong16);
-uchar16 __ovld __cnfn convert_uchar16_rtz(ulong16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtz(ulong16);
-uchar16 __ovld __cnfn convert_uchar16_rtp(ulong16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtp(ulong16);
-uchar16 __ovld __cnfn convert_uchar16_rtn(ulong16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtn(ulong16);
-uchar16 __ovld __cnfn convert_uchar16(ulong16);
-uchar16 __ovld __cnfn convert_uchar16_sat(ulong16);
-uchar16 __ovld __cnfn convert_uchar16_rte(float16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rte(float16);
-uchar16 __ovld __cnfn convert_uchar16_rtz(float16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtz(float16);
-uchar16 __ovld __cnfn convert_uchar16_rtp(float16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtp(float16);
-uchar16 __ovld __cnfn convert_uchar16_rtn(float16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtn(float16);
-uchar16 __ovld __cnfn convert_uchar16(float16);
-uchar16 __ovld __cnfn convert_uchar16_sat(float16);
-short16 __ovld __cnfn convert_short16_rte(char16);
-short16 __ovld __cnfn convert_short16_sat_rte(char16);
-short16 __ovld __cnfn convert_short16_rtz(char16);
-short16 __ovld __cnfn convert_short16_sat_rtz(char16);
-short16 __ovld __cnfn convert_short16_rtp(char16);
-short16 __ovld __cnfn convert_short16_sat_rtp(char16);
-short16 __ovld __cnfn convert_short16_rtn(char16);
-short16 __ovld __cnfn convert_short16_sat_rtn(char16);
-short16 __ovld __cnfn convert_short16(char16);
-short16 __ovld __cnfn convert_short16_sat(char16);
-short16 __ovld __cnfn convert_short16_rte(uchar16);
-short16 __ovld __cnfn convert_short16_sat_rte(uchar16);
-short16 __ovld __cnfn convert_short16_rtz(uchar16);
-short16 __ovld __cnfn convert_short16_sat_rtz(uchar16);
-short16 __ovld __cnfn convert_short16_rtp(uchar16);
-short16 __ovld __cnfn convert_short16_sat_rtp(uchar16);
-short16 __ovld __cnfn convert_short16_rtn(uchar16);
-short16 __ovld __cnfn convert_short16_sat_rtn(uchar16);
-short16 __ovld __cnfn convert_short16(uchar16);
-short16 __ovld __cnfn convert_short16_sat(uchar16);
-short16 __ovld __cnfn convert_short16_rte(short16);
-short16 __ovld __cnfn convert_short16_sat_rte(short16);
-short16 __ovld __cnfn convert_short16_rtz(short16);
-short16 __ovld __cnfn convert_short16_sat_rtz(short16);
-short16 __ovld __cnfn convert_short16_rtp(short16);
-short16 __ovld __cnfn convert_short16_sat_rtp(short16);
-short16 __ovld __cnfn convert_short16_rtn(short16);
-short16 __ovld __cnfn convert_short16_sat_rtn(short16);
-short16 __ovld __cnfn convert_short16(short16);
-short16 __ovld __cnfn convert_short16_sat(short16);
-short16 __ovld __cnfn convert_short16_rte(ushort16);
-short16 __ovld __cnfn convert_short16_sat_rte(ushort16);
-short16 __ovld __cnfn convert_short16_rtz(ushort16);
-short16 __ovld __cnfn convert_short16_sat_rtz(ushort16);
-short16 __ovld __cnfn convert_short16_rtp(ushort16);
-short16 __ovld __cnfn convert_short16_sat_rtp(ushort16);
-short16 __ovld __cnfn convert_short16_rtn(ushort16);
-short16 __ovld __cnfn convert_short16_sat_rtn(ushort16);
-short16 __ovld __cnfn convert_short16(ushort16);
-short16 __ovld __cnfn convert_short16_sat(ushort16);
-short16 __ovld __cnfn convert_short16_rte(int16);
-short16 __ovld __cnfn convert_short16_sat_rte(int16);
-short16 __ovld __cnfn convert_short16_rtz(int16);
-short16 __ovld __cnfn convert_short16_sat_rtz(int16);
-short16 __ovld __cnfn convert_short16_rtp(int16);
-short16 __ovld __cnfn convert_short16_sat_rtp(int16);
-short16 __ovld __cnfn convert_short16_rtn(int16);
-short16 __ovld __cnfn convert_short16_sat_rtn(int16);
-short16 __ovld __cnfn convert_short16(int16);
-short16 __ovld __cnfn convert_short16_sat(int16);
-short16 __ovld __cnfn convert_short16_rte(uint16);
-short16 __ovld __cnfn convert_short16_sat_rte(uint16);
-short16 __ovld __cnfn convert_short16_rtz(uint16);
-short16 __ovld __cnfn convert_short16_sat_rtz(uint16);
-short16 __ovld __cnfn convert_short16_rtp(uint16);
-short16 __ovld __cnfn convert_short16_sat_rtp(uint16);
-short16 __ovld __cnfn convert_short16_rtn(uint16);
-short16 __ovld __cnfn convert_short16_sat_rtn(uint16);
-short16 __ovld __cnfn convert_short16(uint16);
-short16 __ovld __cnfn convert_short16_sat(uint16);
-short16 __ovld __cnfn convert_short16_rte(long16);
-short16 __ovld __cnfn convert_short16_sat_rte(long16);
-short16 __ovld __cnfn convert_short16_rtz(long16);
-short16 __ovld __cnfn convert_short16_sat_rtz(long16);
-short16 __ovld __cnfn convert_short16_rtp(long16);
-short16 __ovld __cnfn convert_short16_sat_rtp(long16);
-short16 __ovld __cnfn convert_short16_rtn(long16);
-short16 __ovld __cnfn convert_short16_sat_rtn(long16);
-short16 __ovld __cnfn convert_short16(long16);
-short16 __ovld __cnfn convert_short16_sat(long16);
-short16 __ovld __cnfn convert_short16_rte(ulong16);
-short16 __ovld __cnfn convert_short16_sat_rte(ulong16);
-short16 __ovld __cnfn convert_short16_rtz(ulong16);
-short16 __ovld __cnfn convert_short16_sat_rtz(ulong16);
-short16 __ovld __cnfn convert_short16_rtp(ulong16);
-short16 __ovld __cnfn convert_short16_sat_rtp(ulong16);
-short16 __ovld __cnfn convert_short16_rtn(ulong16);
-short16 __ovld __cnfn convert_short16_sat_rtn(ulong16);
-short16 __ovld __cnfn convert_short16(ulong16);
-short16 __ovld __cnfn convert_short16_sat(ulong16);
-short16 __ovld __cnfn convert_short16_rte(float16);
-short16 __ovld __cnfn convert_short16_sat_rte(float16);
-short16 __ovld __cnfn convert_short16_rtz(float16);
-short16 __ovld __cnfn convert_short16_sat_rtz(float16);
-short16 __ovld __cnfn convert_short16_rtp(float16);
-short16 __ovld __cnfn convert_short16_sat_rtp(float16);
-short16 __ovld __cnfn convert_short16_rtn(float16);
-short16 __ovld __cnfn convert_short16_sat_rtn(float16);
-short16 __ovld __cnfn convert_short16(float16);
-short16 __ovld __cnfn convert_short16_sat(float16);
-ushort16 __ovld __cnfn convert_ushort16_rte(char16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rte(char16);
-ushort16 __ovld __cnfn convert_ushort16_rtz(char16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtz(char16);
-ushort16 __ovld __cnfn convert_ushort16_rtp(char16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtp(char16);
-ushort16 __ovld __cnfn convert_ushort16_rtn(char16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtn(char16);
-ushort16 __ovld __cnfn convert_ushort16(char16);
-ushort16 __ovld __cnfn convert_ushort16_sat(char16);
-ushort16 __ovld __cnfn convert_ushort16_rte(uchar16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rte(uchar16);
-ushort16 __ovld __cnfn convert_ushort16_rtz(uchar16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtz(uchar16);
-ushort16 __ovld __cnfn convert_ushort16_rtp(uchar16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtp(uchar16);
-ushort16 __ovld __cnfn convert_ushort16_rtn(uchar16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtn(uchar16);
-ushort16 __ovld __cnfn convert_ushort16(uchar16);
-ushort16 __ovld __cnfn convert_ushort16_sat(uchar16);
-ushort16 __ovld __cnfn convert_ushort16_rte(short16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rte(short16);
-ushort16 __ovld __cnfn convert_ushort16_rtz(short16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtz(short16);
-ushort16 __ovld __cnfn convert_ushort16_rtp(short16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtp(short16);
-ushort16 __ovld __cnfn convert_ushort16_rtn(short16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtn(short16);
-ushort16 __ovld __cnfn convert_ushort16(short16);
-ushort16 __ovld __cnfn convert_ushort16_sat(short16);
-ushort16 __ovld __cnfn convert_ushort16_rte(ushort16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rte(ushort16);
-ushort16 __ovld __cnfn convert_ushort16_rtz(ushort16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtz(ushort16);
-ushort16 __ovld __cnfn convert_ushort16_rtp(ushort16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtp(ushort16);
-ushort16 __ovld __cnfn convert_ushort16_rtn(ushort16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtn(ushort16);
-ushort16 __ovld __cnfn convert_ushort16(ushort16);
-ushort16 __ovld __cnfn convert_ushort16_sat(ushort16);
-ushort16 __ovld __cnfn convert_ushort16_rte(int16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rte(int16);
-ushort16 __ovld __cnfn convert_ushort16_rtz(int16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtz(int16);
-ushort16 __ovld __cnfn convert_ushort16_rtp(int16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtp(int16);
-ushort16 __ovld __cnfn convert_ushort16_rtn(int16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtn(int16);
-ushort16 __ovld __cnfn convert_ushort16(int16);
-ushort16 __ovld __cnfn convert_ushort16_sat(int16);
-ushort16 __ovld __cnfn convert_ushort16_rte(uint16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rte(uint16);
-ushort16 __ovld __cnfn convert_ushort16_rtz(uint16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtz(uint16);
-ushort16 __ovld __cnfn convert_ushort16_rtp(uint16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtp(uint16);
-ushort16 __ovld __cnfn convert_ushort16_rtn(uint16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtn(uint16);
-ushort16 __ovld __cnfn convert_ushort16(uint16);
-ushort16 __ovld __cnfn convert_ushort16_sat(uint16);
-ushort16 __ovld __cnfn convert_ushort16_rte(long16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rte(long16);
-ushort16 __ovld __cnfn convert_ushort16_rtz(long16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtz(long16);
-ushort16 __ovld __cnfn convert_ushort16_rtp(long16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtp(long16);
-ushort16 __ovld __cnfn convert_ushort16_rtn(long16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtn(long16);
-ushort16 __ovld __cnfn convert_ushort16(long16);
-ushort16 __ovld __cnfn convert_ushort16_sat(long16);
-ushort16 __ovld __cnfn convert_ushort16_rte(ulong16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rte(ulong16);
-ushort16 __ovld __cnfn convert_ushort16_rtz(ulong16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtz(ulong16);
-ushort16 __ovld __cnfn convert_ushort16_rtp(ulong16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtp(ulong16);
-ushort16 __ovld __cnfn convert_ushort16_rtn(ulong16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtn(ulong16);
-ushort16 __ovld __cnfn convert_ushort16(ulong16);
-ushort16 __ovld __cnfn convert_ushort16_sat(ulong16);
-ushort16 __ovld __cnfn convert_ushort16_rte(float16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rte(float16);
-ushort16 __ovld __cnfn convert_ushort16_rtz(float16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtz(float16);
-ushort16 __ovld __cnfn convert_ushort16_rtp(float16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtp(float16);
-ushort16 __ovld __cnfn convert_ushort16_rtn(float16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtn(float16);
-ushort16 __ovld __cnfn convert_ushort16(float16);
-ushort16 __ovld __cnfn convert_ushort16_sat(float16);
-int16 __ovld __cnfn convert_int16_rte(char16);
-int16 __ovld __cnfn convert_int16_sat_rte(char16);
-int16 __ovld __cnfn convert_int16_rtz(char16);
-int16 __ovld __cnfn convert_int16_sat_rtz(char16);
-int16 __ovld __cnfn convert_int16_rtp(char16);
-int16 __ovld __cnfn convert_int16_sat_rtp(char16);
-int16 __ovld __cnfn convert_int16_rtn(char16);
-int16 __ovld __cnfn convert_int16_sat_rtn(char16);
-int16 __ovld __cnfn convert_int16(char16);
-int16 __ovld __cnfn convert_int16_sat(char16);
-int16 __ovld __cnfn convert_int16_rte(uchar16);
-int16 __ovld __cnfn convert_int16_sat_rte(uchar16);
-int16 __ovld __cnfn convert_int16_rtz(uchar16);
-int16 __ovld __cnfn convert_int16_sat_rtz(uchar16);
-int16 __ovld __cnfn convert_int16_rtp(uchar16);
-int16 __ovld __cnfn convert_int16_sat_rtp(uchar16);
-int16 __ovld __cnfn convert_int16_rtn(uchar16);
-int16 __ovld __cnfn convert_int16_sat_rtn(uchar16);
-int16 __ovld __cnfn convert_int16(uchar16);
-int16 __ovld __cnfn convert_int16_sat(uchar16);
-int16 __ovld __cnfn convert_int16_rte(short16);
-int16 __ovld __cnfn convert_int16_sat_rte(short16);
-int16 __ovld __cnfn convert_int16_rtz(short16);
-int16 __ovld __cnfn convert_int16_sat_rtz(short16);
-int16 __ovld __cnfn convert_int16_rtp(short16);
-int16 __ovld __cnfn convert_int16_sat_rtp(short16);
-int16 __ovld __cnfn convert_int16_rtn(short16);
-int16 __ovld __cnfn convert_int16_sat_rtn(short16);
-int16 __ovld __cnfn convert_int16(short16);
-int16 __ovld __cnfn convert_int16_sat(short16);
-int16 __ovld __cnfn convert_int16_rte(ushort16);
-int16 __ovld __cnfn convert_int16_sat_rte(ushort16);
-int16 __ovld __cnfn convert_int16_rtz(ushort16);
-int16 __ovld __cnfn convert_int16_sat_rtz(ushort16);
-int16 __ovld __cnfn convert_int16_rtp(ushort16);
-int16 __ovld __cnfn convert_int16_sat_rtp(ushort16);
-int16 __ovld __cnfn convert_int16_rtn(ushort16);
-int16 __ovld __cnfn convert_int16_sat_rtn(ushort16);
-int16 __ovld __cnfn convert_int16(ushort16);
-int16 __ovld __cnfn convert_int16_sat(ushort16);
-int16 __ovld __cnfn convert_int16_rte(int16);
-int16 __ovld __cnfn convert_int16_sat_rte(int16);
-int16 __ovld __cnfn convert_int16_rtz(int16);
-int16 __ovld __cnfn convert_int16_sat_rtz(int16);
-int16 __ovld __cnfn convert_int16_rtp(int16);
-int16 __ovld __cnfn convert_int16_sat_rtp(int16);
-int16 __ovld __cnfn convert_int16_rtn(int16);
-int16 __ovld __cnfn convert_int16_sat_rtn(int16);
-int16 __ovld __cnfn convert_int16(int16);
-int16 __ovld __cnfn convert_int16_sat(int16);
-int16 __ovld __cnfn convert_int16_rte(uint16);
-int16 __ovld __cnfn convert_int16_sat_rte(uint16);
-int16 __ovld __cnfn convert_int16_rtz(uint16);
-int16 __ovld __cnfn convert_int16_sat_rtz(uint16);
-int16 __ovld __cnfn convert_int16_rtp(uint16);
-int16 __ovld __cnfn convert_int16_sat_rtp(uint16);
-int16 __ovld __cnfn convert_int16_rtn(uint16);
-int16 __ovld __cnfn convert_int16_sat_rtn(uint16);
-int16 __ovld __cnfn convert_int16(uint16);
-int16 __ovld __cnfn convert_int16_sat(uint16);
-int16 __ovld __cnfn convert_int16_rte(long16);
-int16 __ovld __cnfn convert_int16_sat_rte(long16);
-int16 __ovld __cnfn convert_int16_rtz(long16);
-int16 __ovld __cnfn convert_int16_sat_rtz(long16);
-int16 __ovld __cnfn convert_int16_rtp(long16);
-int16 __ovld __cnfn convert_int16_sat_rtp(long16);
-int16 __ovld __cnfn convert_int16_rtn(long16);
-int16 __ovld __cnfn convert_int16_sat_rtn(long16);
-int16 __ovld __cnfn convert_int16(long16);
-int16 __ovld __cnfn convert_int16_sat(long16);
-int16 __ovld __cnfn convert_int16_rte(ulong16);
-int16 __ovld __cnfn convert_int16_sat_rte(ulong16);
-int16 __ovld __cnfn convert_int16_rtz(ulong16);
-int16 __ovld __cnfn convert_int16_sat_rtz(ulong16);
-int16 __ovld __cnfn convert_int16_rtp(ulong16);
-int16 __ovld __cnfn convert_int16_sat_rtp(ulong16);
-int16 __ovld __cnfn convert_int16_rtn(ulong16);
-int16 __ovld __cnfn convert_int16_sat_rtn(ulong16);
-int16 __ovld __cnfn convert_int16(ulong16);
-int16 __ovld __cnfn convert_int16_sat(ulong16);
-int16 __ovld __cnfn convert_int16_rte(float16);
-int16 __ovld __cnfn convert_int16_sat_rte(float16);
-int16 __ovld __cnfn convert_int16_rtz(float16);
-int16 __ovld __cnfn convert_int16_sat_rtz(float16);
-int16 __ovld __cnfn convert_int16_rtp(float16);
-int16 __ovld __cnfn convert_int16_sat_rtp(float16);
-int16 __ovld __cnfn convert_int16_rtn(float16);
-int16 __ovld __cnfn convert_int16_sat_rtn(float16);
-int16 __ovld __cnfn convert_int16(float16);
-int16 __ovld __cnfn convert_int16_sat(float16);
-uint16 __ovld __cnfn convert_uint16_rte(char16);
-uint16 __ovld __cnfn convert_uint16_sat_rte(char16);
-uint16 __ovld __cnfn convert_uint16_rtz(char16);
-uint16 __ovld __cnfn convert_uint16_sat_rtz(char16);
-uint16 __ovld __cnfn convert_uint16_rtp(char16);
-uint16 __ovld __cnfn convert_uint16_sat_rtp(char16);
-uint16 __ovld __cnfn convert_uint16_rtn(char16);
-uint16 __ovld __cnfn convert_uint16_sat_rtn(char16);
-uint16 __ovld __cnfn convert_uint16(char16);
-uint16 __ovld __cnfn convert_uint16_sat(char16);
-uint16 __ovld __cnfn convert_uint16_rte(uchar16);
-uint16 __ovld __cnfn convert_uint16_sat_rte(uchar16);
-uint16 __ovld __cnfn convert_uint16_rtz(uchar16);
-uint16 __ovld __cnfn convert_uint16_sat_rtz(uchar16);
-uint16 __ovld __cnfn convert_uint16_rtp(uchar16);
-uint16 __ovld __cnfn convert_uint16_sat_rtp(uchar16);
-uint16 __ovld __cnfn convert_uint16_rtn(uchar16);
-uint16 __ovld __cnfn convert_uint16_sat_rtn(uchar16);
-uint16 __ovld __cnfn convert_uint16(uchar16);
-uint16 __ovld __cnfn convert_uint16_sat(uchar16);
-uint16 __ovld __cnfn convert_uint16_rte(short16);
-uint16 __ovld __cnfn convert_uint16_sat_rte(short16);
-uint16 __ovld __cnfn convert_uint16_rtz(short16);
-uint16 __ovld __cnfn convert_uint16_sat_rtz(short16);
-uint16 __ovld __cnfn convert_uint16_rtp(short16);
-uint16 __ovld __cnfn convert_uint16_sat_rtp(short16);
-uint16 __ovld __cnfn convert_uint16_rtn(short16);
-uint16 __ovld __cnfn convert_uint16_sat_rtn(short16);
-uint16 __ovld __cnfn convert_uint16(short16);
-uint16 __ovld __cnfn convert_uint16_sat(short16);
-uint16 __ovld __cnfn convert_uint16_rte(ushort16);
-uint16 __ovld __cnfn convert_uint16_sat_rte(ushort16);
-uint16 __ovld __cnfn convert_uint16_rtz(ushort16);
-uint16 __ovld __cnfn convert_uint16_sat_rtz(ushort16);
-uint16 __ovld __cnfn convert_uint16_rtp(ushort16);
-uint16 __ovld __cnfn convert_uint16_sat_rtp(ushort16);
-uint16 __ovld __cnfn convert_uint16_rtn(ushort16);
-uint16 __ovld __cnfn convert_uint16_sat_rtn(ushort16);
-uint16 __ovld __cnfn convert_uint16(ushort16);
-uint16 __ovld __cnfn convert_uint16_sat(ushort16);
-uint16 __ovld __cnfn convert_uint16_rte(int16);
-uint16 __ovld __cnfn convert_uint16_sat_rte(int16);
-uint16 __ovld __cnfn convert_uint16_rtz(int16);
-uint16 __ovld __cnfn convert_uint16_sat_rtz(int16);
-uint16 __ovld __cnfn convert_uint16_rtp(int16);
-uint16 __ovld __cnfn convert_uint16_sat_rtp(int16);
-uint16 __ovld __cnfn convert_uint16_rtn(int16);
-uint16 __ovld __cnfn convert_uint16_sat_rtn(int16);
-uint16 __ovld __cnfn convert_uint16(int16);
-uint16 __ovld __cnfn convert_uint16_sat(int16);
-uint16 __ovld __cnfn convert_uint16_rte(uint16);
-uint16 __ovld __cnfn convert_uint16_sat_rte(uint16);
-uint16 __ovld __cnfn convert_uint16_rtz(uint16);
-uint16 __ovld __cnfn convert_uint16_sat_rtz(uint16);
-uint16 __ovld __cnfn convert_uint16_rtp(uint16);
-uint16 __ovld __cnfn convert_uint16_sat_rtp(uint16);
-uint16 __ovld __cnfn convert_uint16_rtn(uint16);
-uint16 __ovld __cnfn convert_uint16_sat_rtn(uint16);
-uint16 __ovld __cnfn convert_uint16(uint16);
-uint16 __ovld __cnfn convert_uint16_sat(uint16);
-uint16 __ovld __cnfn convert_uint16_rte(long16);
-uint16 __ovld __cnfn convert_uint16_sat_rte(long16);
-uint16 __ovld __cnfn convert_uint16_rtz(long16);
-uint16 __ovld __cnfn convert_uint16_sat_rtz(long16);
-uint16 __ovld __cnfn convert_uint16_rtp(long16);
-uint16 __ovld __cnfn convert_uint16_sat_rtp(long16);
-uint16 __ovld __cnfn convert_uint16_rtn(long16);
-uint16 __ovld __cnfn convert_uint16_sat_rtn(long16);
-uint16 __ovld __cnfn convert_uint16(long16);
-uint16 __ovld __cnfn convert_uint16_sat(long16);
-uint16 __ovld __cnfn convert_uint16_rte(ulong16);
-uint16 __ovld __cnfn convert_uint16_sat_rte(ulong16);
-uint16 __ovld __cnfn convert_uint16_rtz(ulong16);
-uint16 __ovld __cnfn convert_uint16_sat_rtz(ulong16);
-uint16 __ovld __cnfn convert_uint16_rtp(ulong16);
-uint16 __ovld __cnfn convert_uint16_sat_rtp(ulong16);
-uint16 __ovld __cnfn convert_uint16_rtn(ulong16);
-uint16 __ovld __cnfn convert_uint16_sat_rtn(ulong16);
-uint16 __ovld __cnfn convert_uint16(ulong16);
-uint16 __ovld __cnfn convert_uint16_sat(ulong16);
-uint16 __ovld __cnfn convert_uint16_rte(float16);
-uint16 __ovld __cnfn convert_uint16_sat_rte(float16);
-uint16 __ovld __cnfn convert_uint16_rtz(float16);
-uint16 __ovld __cnfn convert_uint16_sat_rtz(float16);
-uint16 __ovld __cnfn convert_uint16_rtp(float16);
-uint16 __ovld __cnfn convert_uint16_sat_rtp(float16);
-uint16 __ovld __cnfn convert_uint16_rtn(float16);
-uint16 __ovld __cnfn convert_uint16_sat_rtn(float16);
-uint16 __ovld __cnfn convert_uint16(float16);
-uint16 __ovld __cnfn convert_uint16_sat(float16);
-long16 __ovld __cnfn convert_long16_rte(char16);
-long16 __ovld __cnfn convert_long16_sat_rte(char16);
-long16 __ovld __cnfn convert_long16_rtz(char16);
-long16 __ovld __cnfn convert_long16_sat_rtz(char16);
-long16 __ovld __cnfn convert_long16_rtp(char16);
-long16 __ovld __cnfn convert_long16_sat_rtp(char16);
-long16 __ovld __cnfn convert_long16_rtn(char16);
-long16 __ovld __cnfn convert_long16_sat_rtn(char16);
-long16 __ovld __cnfn convert_long16(char16);
-long16 __ovld __cnfn convert_long16_sat(char16);
-long16 __ovld __cnfn convert_long16_rte(uchar16);
-long16 __ovld __cnfn convert_long16_sat_rte(uchar16);
-long16 __ovld __cnfn convert_long16_rtz(uchar16);
-long16 __ovld __cnfn convert_long16_sat_rtz(uchar16);
-long16 __ovld __cnfn convert_long16_rtp(uchar16);
-long16 __ovld __cnfn convert_long16_sat_rtp(uchar16);
-long16 __ovld __cnfn convert_long16_rtn(uchar16);
-long16 __ovld __cnfn convert_long16_sat_rtn(uchar16);
-long16 __ovld __cnfn convert_long16(uchar16);
-long16 __ovld __cnfn convert_long16_sat(uchar16);
-long16 __ovld __cnfn convert_long16_rte(short16);
-long16 __ovld __cnfn convert_long16_sat_rte(short16);
-long16 __ovld __cnfn convert_long16_rtz(short16);
-long16 __ovld __cnfn convert_long16_sat_rtz(short16);
-long16 __ovld __cnfn convert_long16_rtp(short16);
-long16 __ovld __cnfn convert_long16_sat_rtp(short16);
-long16 __ovld __cnfn convert_long16_rtn(short16);
-long16 __ovld __cnfn convert_long16_sat_rtn(short16);
-long16 __ovld __cnfn convert_long16(short16);
-long16 __ovld __cnfn convert_long16_sat(short16);
-long16 __ovld __cnfn convert_long16_rte(ushort16);
-long16 __ovld __cnfn convert_long16_sat_rte(ushort16);
-long16 __ovld __cnfn convert_long16_rtz(ushort16);
-long16 __ovld __cnfn convert_long16_sat_rtz(ushort16);
-long16 __ovld __cnfn convert_long16_rtp(ushort16);
-long16 __ovld __cnfn convert_long16_sat_rtp(ushort16);
-long16 __ovld __cnfn convert_long16_rtn(ushort16);
-long16 __ovld __cnfn convert_long16_sat_rtn(ushort16);
-long16 __ovld __cnfn convert_long16(ushort16);
-long16 __ovld __cnfn convert_long16_sat(ushort16);
-long16 __ovld __cnfn convert_long16_rte(int16);
-long16 __ovld __cnfn convert_long16_sat_rte(int16);
-long16 __ovld __cnfn convert_long16_rtz(int16);
-long16 __ovld __cnfn convert_long16_sat_rtz(int16);
-long16 __ovld __cnfn convert_long16_rtp(int16);
-long16 __ovld __cnfn convert_long16_sat_rtp(int16);
-long16 __ovld __cnfn convert_long16_rtn(int16);
-long16 __ovld __cnfn convert_long16_sat_rtn(int16);
-long16 __ovld __cnfn convert_long16(int16);
-long16 __ovld __cnfn convert_long16_sat(int16);
-long16 __ovld __cnfn convert_long16_rte(uint16);
-long16 __ovld __cnfn convert_long16_sat_rte(uint16);
-long16 __ovld __cnfn convert_long16_rtz(uint16);
-long16 __ovld __cnfn convert_long16_sat_rtz(uint16);
-long16 __ovld __cnfn convert_long16_rtp(uint16);
-long16 __ovld __cnfn convert_long16_sat_rtp(uint16);
-long16 __ovld __cnfn convert_long16_rtn(uint16);
-long16 __ovld __cnfn convert_long16_sat_rtn(uint16);
-long16 __ovld __cnfn convert_long16(uint16);
-long16 __ovld __cnfn convert_long16_sat(uint16);
-long16 __ovld __cnfn convert_long16_rte(long16);
-long16 __ovld __cnfn convert_long16_sat_rte(long16);
-long16 __ovld __cnfn convert_long16_rtz(long16);
-long16 __ovld __cnfn convert_long16_sat_rtz(long16);
-long16 __ovld __cnfn convert_long16_rtp(long16);
-long16 __ovld __cnfn convert_long16_sat_rtp(long16);
-long16 __ovld __cnfn convert_long16_rtn(long16);
-long16 __ovld __cnfn convert_long16_sat_rtn(long16);
-long16 __ovld __cnfn convert_long16(long16);
-long16 __ovld __cnfn convert_long16_sat(long16);
-long16 __ovld __cnfn convert_long16_rte(ulong16);
-long16 __ovld __cnfn convert_long16_sat_rte(ulong16);
-long16 __ovld __cnfn convert_long16_rtz(ulong16);
-long16 __ovld __cnfn convert_long16_sat_rtz(ulong16);
-long16 __ovld __cnfn convert_long16_rtp(ulong16);
-long16 __ovld __cnfn convert_long16_sat_rtp(ulong16);
-long16 __ovld __cnfn convert_long16_rtn(ulong16);
-long16 __ovld __cnfn convert_long16_sat_rtn(ulong16);
-long16 __ovld __cnfn convert_long16(ulong16);
-long16 __ovld __cnfn convert_long16_sat(ulong16);
-long16 __ovld __cnfn convert_long16_rte(float16);
-long16 __ovld __cnfn convert_long16_sat_rte(float16);
-long16 __ovld __cnfn convert_long16_rtz(float16);
-long16 __ovld __cnfn convert_long16_sat_rtz(float16);
-long16 __ovld __cnfn convert_long16_rtp(float16);
-long16 __ovld __cnfn convert_long16_sat_rtp(float16);
-long16 __ovld __cnfn convert_long16_rtn(float16);
-long16 __ovld __cnfn convert_long16_sat_rtn(float16);
-long16 __ovld __cnfn convert_long16(float16);
-long16 __ovld __cnfn convert_long16_sat(float16);
-ulong16 __ovld __cnfn convert_ulong16_rte(char16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rte(char16);
-ulong16 __ovld __cnfn convert_ulong16_rtz(char16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtz(char16);
-ulong16 __ovld __cnfn convert_ulong16_rtp(char16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtp(char16);
-ulong16 __ovld __cnfn convert_ulong16_rtn(char16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtn(char16);
-ulong16 __ovld __cnfn convert_ulong16(char16);
-ulong16 __ovld __cnfn convert_ulong16_sat(char16);
-ulong16 __ovld __cnfn convert_ulong16_rte(uchar16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rte(uchar16);
-ulong16 __ovld __cnfn convert_ulong16_rtz(uchar16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtz(uchar16);
-ulong16 __ovld __cnfn convert_ulong16_rtp(uchar16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtp(uchar16);
-ulong16 __ovld __cnfn convert_ulong16_rtn(uchar16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtn(uchar16);
-ulong16 __ovld __cnfn convert_ulong16(uchar16);
-ulong16 __ovld __cnfn convert_ulong16_sat(uchar16);
-ulong16 __ovld __cnfn convert_ulong16_rte(short16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rte(short16);
-ulong16 __ovld __cnfn convert_ulong16_rtz(short16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtz(short16);
-ulong16 __ovld __cnfn convert_ulong16_rtp(short16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtp(short16);
-ulong16 __ovld __cnfn convert_ulong16_rtn(short16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtn(short16);
-ulong16 __ovld __cnfn convert_ulong16(short16);
-ulong16 __ovld __cnfn convert_ulong16_sat(short16);
-ulong16 __ovld __cnfn convert_ulong16_rte(ushort16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rte(ushort16);
-ulong16 __ovld __cnfn convert_ulong16_rtz(ushort16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtz(ushort16);
-ulong16 __ovld __cnfn convert_ulong16_rtp(ushort16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtp(ushort16);
-ulong16 __ovld __cnfn convert_ulong16_rtn(ushort16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtn(ushort16);
-ulong16 __ovld __cnfn convert_ulong16(ushort16);
-ulong16 __ovld __cnfn convert_ulong16_sat(ushort16);
-ulong16 __ovld __cnfn convert_ulong16_rte(int16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rte(int16);
-ulong16 __ovld __cnfn convert_ulong16_rtz(int16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtz(int16);
-ulong16 __ovld __cnfn convert_ulong16_rtp(int16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtp(int16);
-ulong16 __ovld __cnfn convert_ulong16_rtn(int16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtn(int16);
-ulong16 __ovld __cnfn convert_ulong16(int16);
-ulong16 __ovld __cnfn convert_ulong16_sat(int16);
-ulong16 __ovld __cnfn convert_ulong16_rte(uint16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rte(uint16);
-ulong16 __ovld __cnfn convert_ulong16_rtz(uint16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtz(uint16);
-ulong16 __ovld __cnfn convert_ulong16_rtp(uint16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtp(uint16);
-ulong16 __ovld __cnfn convert_ulong16_rtn(uint16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtn(uint16);
-ulong16 __ovld __cnfn convert_ulong16(uint16);
-ulong16 __ovld __cnfn convert_ulong16_sat(uint16);
-ulong16 __ovld __cnfn convert_ulong16_rte(long16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rte(long16);
-ulong16 __ovld __cnfn convert_ulong16_rtz(long16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtz(long16);
-ulong16 __ovld __cnfn convert_ulong16_rtp(long16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtp(long16);
-ulong16 __ovld __cnfn convert_ulong16_rtn(long16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtn(long16);
-ulong16 __ovld __cnfn convert_ulong16(long16);
-ulong16 __ovld __cnfn convert_ulong16_sat(long16);
-ulong16 __ovld __cnfn convert_ulong16_rte(ulong16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rte(ulong16);
-ulong16 __ovld __cnfn convert_ulong16_rtz(ulong16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtz(ulong16);
-ulong16 __ovld __cnfn convert_ulong16_rtp(ulong16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtp(ulong16);
-ulong16 __ovld __cnfn convert_ulong16_rtn(ulong16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtn(ulong16);
-ulong16 __ovld __cnfn convert_ulong16(ulong16);
-ulong16 __ovld __cnfn convert_ulong16_sat(ulong16);
-ulong16 __ovld __cnfn convert_ulong16_rte(float16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rte(float16);
-ulong16 __ovld __cnfn convert_ulong16_rtz(float16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtz(float16);
-ulong16 __ovld __cnfn convert_ulong16_rtp(float16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtp(float16);
-ulong16 __ovld __cnfn convert_ulong16_rtn(float16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtn(float16);
-ulong16 __ovld __cnfn convert_ulong16(float16);
-ulong16 __ovld __cnfn convert_ulong16_sat(float16);
-float16 __ovld __cnfn convert_float16_rte(char16);
-float16 __ovld __cnfn convert_float16_rtz(char16);
-float16 __ovld __cnfn convert_float16_rtp(char16);
-float16 __ovld __cnfn convert_float16_rtn(char16);
-float16 __ovld __cnfn convert_float16(char16);
-float16 __ovld __cnfn convert_float16_rte(uchar16);
-float16 __ovld __cnfn convert_float16_rtz(uchar16);
-float16 __ovld __cnfn convert_float16_rtp(uchar16);
-float16 __ovld __cnfn convert_float16_rtn(uchar16);
-float16 __ovld __cnfn convert_float16(uchar16);
-float16 __ovld __cnfn convert_float16_rte(short16);
-float16 __ovld __cnfn convert_float16_rtz(short16);
-float16 __ovld __cnfn convert_float16_rtp(short16);
-float16 __ovld __cnfn convert_float16_rtn(short16);
-float16 __ovld __cnfn convert_float16(short16);
-float16 __ovld __cnfn convert_float16_rte(ushort16);
-float16 __ovld __cnfn convert_float16_rtz(ushort16);
-float16 __ovld __cnfn convert_float16_rtp(ushort16);
-float16 __ovld __cnfn convert_float16_rtn(ushort16);
-float16 __ovld __cnfn convert_float16(ushort16);
-float16 __ovld __cnfn convert_float16_rte(int16);
-float16 __ovld __cnfn convert_float16_rtz(int16);
-float16 __ovld __cnfn convert_float16_rtp(int16);
-float16 __ovld __cnfn convert_float16_rtn(int16);
-float16 __ovld __cnfn convert_float16(int16);
-float16 __ovld __cnfn convert_float16_rte(uint16);
-float16 __ovld __cnfn convert_float16_rtz(uint16);
-float16 __ovld __cnfn convert_float16_rtp(uint16);
-float16 __ovld __cnfn convert_float16_rtn(uint16);
-float16 __ovld __cnfn convert_float16(uint16);
-float16 __ovld __cnfn convert_float16_rte(long16);
-float16 __ovld __cnfn convert_float16_rtz(long16);
-float16 __ovld __cnfn convert_float16_rtp(long16);
-float16 __ovld __cnfn convert_float16_rtn(long16);
-float16 __ovld __cnfn convert_float16(long16);
-float16 __ovld __cnfn convert_float16_rte(ulong16);
-float16 __ovld __cnfn convert_float16_rtz(ulong16);
-float16 __ovld __cnfn convert_float16_rtp(ulong16);
-float16 __ovld __cnfn convert_float16_rtn(ulong16);
-float16 __ovld __cnfn convert_float16(ulong16);
-float16 __ovld __cnfn convert_float16_rte(float16);
-float16 __ovld __cnfn convert_float16_rtz(float16);
-float16 __ovld __cnfn convert_float16_rtp(float16);
-float16 __ovld __cnfn convert_float16_rtn(float16);
-float16 __ovld __cnfn convert_float16(float16);
-
-// Conversions with double data type parameters or return value.
-
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-char __ovld __cnfn convert_char(double);
-char __ovld __cnfn convert_char_rte(double);
-char __ovld __cnfn convert_char_rtn(double);
-char __ovld __cnfn convert_char_rtp(double);
-char __ovld __cnfn convert_char_rtz(double);
-char __ovld __cnfn convert_char_sat(double);
-char __ovld __cnfn convert_char_sat_rte(double);
-char __ovld __cnfn convert_char_sat_rtn(double);
-char __ovld __cnfn convert_char_sat_rtp(double);
-char __ovld __cnfn convert_char_sat_rtz(double);
-char2 __ovld __cnfn convert_char2(double2);
-char2 __ovld __cnfn convert_char2_rte(double2);
-char2 __ovld __cnfn convert_char2_rtn(double2);
-char2 __ovld __cnfn convert_char2_rtp(double2);
-char2 __ovld __cnfn convert_char2_rtz(double2);
-char2 __ovld __cnfn convert_char2_sat(double2);
-char2 __ovld __cnfn convert_char2_sat_rte(double2);
-char2 __ovld __cnfn convert_char2_sat_rtn(double2);
-char2 __ovld __cnfn convert_char2_sat_rtp(double2);
-char2 __ovld __cnfn convert_char2_sat_rtz(double2);
-char3 __ovld __cnfn convert_char3(double3);
-char3 __ovld __cnfn convert_char3_rte(double3);
-char3 __ovld __cnfn convert_char3_rtn(double3);
-char3 __ovld __cnfn convert_char3_rtp(double3);
-char3 __ovld __cnfn convert_char3_rtz(double3);
-char3 __ovld __cnfn convert_char3_sat(double3);
-char3 __ovld __cnfn convert_char3_sat_rte(double3);
-char3 __ovld __cnfn convert_char3_sat_rtn(double3);
-char3 __ovld __cnfn convert_char3_sat_rtp(double3);
-char3 __ovld __cnfn convert_char3_sat_rtz(double3);
-char4 __ovld __cnfn convert_char4(double4);
-char4 __ovld __cnfn convert_char4_rte(double4);
-char4 __ovld __cnfn convert_char4_rtn(double4);
-char4 __ovld __cnfn convert_char4_rtp(double4);
-char4 __ovld __cnfn convert_char4_rtz(double4);
-char4 __ovld __cnfn convert_char4_sat(double4);
-char4 __ovld __cnfn convert_char4_sat_rte(double4);
-char4 __ovld __cnfn convert_char4_sat_rtn(double4);
-char4 __ovld __cnfn convert_char4_sat_rtp(double4);
-char4 __ovld __cnfn convert_char4_sat_rtz(double4);
-char8 __ovld __cnfn convert_char8(double8);
-char8 __ovld __cnfn convert_char8_rte(double8);
-char8 __ovld __cnfn convert_char8_rtn(double8);
-char8 __ovld __cnfn convert_char8_rtp(double8);
-char8 __ovld __cnfn convert_char8_rtz(double8);
-char8 __ovld __cnfn convert_char8_sat(double8);
-char8 __ovld __cnfn convert_char8_sat_rte(double8);
-char8 __ovld __cnfn convert_char8_sat_rtn(double8);
-char8 __ovld __cnfn convert_char8_sat_rtp(double8);
-char8 __ovld __cnfn convert_char8_sat_rtz(double8);
-char16 __ovld __cnfn convert_char16(double16);
-char16 __ovld __cnfn convert_char16_rte(double16);
-char16 __ovld __cnfn convert_char16_rtn(double16);
-char16 __ovld __cnfn convert_char16_rtp(double16);
-char16 __ovld __cnfn convert_char16_rtz(double16);
-char16 __ovld __cnfn convert_char16_sat(double16);
-char16 __ovld __cnfn convert_char16_sat_rte(double16);
-char16 __ovld __cnfn convert_char16_sat_rtn(double16);
-char16 __ovld __cnfn convert_char16_sat_rtp(double16);
-char16 __ovld __cnfn convert_char16_sat_rtz(double16);
-
-uchar __ovld __cnfn convert_uchar(double);
-uchar __ovld __cnfn convert_uchar_rte(double);
-uchar __ovld __cnfn convert_uchar_rtn(double);
-uchar __ovld __cnfn convert_uchar_rtp(double);
-uchar __ovld __cnfn convert_uchar_rtz(double);
-uchar __ovld __cnfn convert_uchar_sat(double);
-uchar __ovld __cnfn convert_uchar_sat_rte(double);
-uchar __ovld __cnfn convert_uchar_sat_rtn(double);
-uchar __ovld __cnfn convert_uchar_sat_rtp(double);
-uchar __ovld __cnfn convert_uchar_sat_rtz(double);
-uchar2 __ovld __cnfn convert_uchar2(double2);
-uchar2 __ovld __cnfn convert_uchar2_rte(double2);
-uchar2 __ovld __cnfn convert_uchar2_rtn(double2);
-uchar2 __ovld __cnfn convert_uchar2_rtp(double2);
-uchar2 __ovld __cnfn convert_uchar2_rtz(double2);
-uchar2 __ovld __cnfn convert_uchar2_sat(double2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rte(double2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtn(double2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtp(double2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtz(double2);
-uchar3 __ovld __cnfn convert_uchar3(double3);
-uchar3 __ovld __cnfn convert_uchar3_rte(double3);
-uchar3 __ovld __cnfn convert_uchar3_rtn(double3);
-uchar3 __ovld __cnfn convert_uchar3_rtp(double3);
-uchar3 __ovld __cnfn convert_uchar3_rtz(double3);
-uchar3 __ovld __cnfn convert_uchar3_sat(double3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rte(double3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtn(double3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtp(double3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtz(double3);
-uchar4 __ovld __cnfn convert_uchar4(double4);
-uchar4 __ovld __cnfn convert_uchar4_rte(double4);
-uchar4 __ovld __cnfn convert_uchar4_rtn(double4);
-uchar4 __ovld __cnfn convert_uchar4_rtp(double4);
-uchar4 __ovld __cnfn convert_uchar4_rtz(double4);
-uchar4 __ovld __cnfn convert_uchar4_sat(double4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rte(double4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtn(double4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtp(double4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtz(double4);
-uchar8 __ovld __cnfn convert_uchar8(double8);
-uchar8 __ovld __cnfn convert_uchar8_rte(double8);
-uchar8 __ovld __cnfn convert_uchar8_rtn(double8);
-uchar8 __ovld __cnfn convert_uchar8_rtp(double8);
-uchar8 __ovld __cnfn convert_uchar8_rtz(double8);
-uchar8 __ovld __cnfn convert_uchar8_sat(double8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rte(double8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtn(double8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtp(double8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtz(double8);
-uchar16 __ovld __cnfn convert_uchar16(double16);
-uchar16 __ovld __cnfn convert_uchar16_rte(double16);
-uchar16 __ovld __cnfn convert_uchar16_rtn(double16);
-uchar16 __ovld __cnfn convert_uchar16_rtp(double16);
-uchar16 __ovld __cnfn convert_uchar16_rtz(double16);
-uchar16 __ovld __cnfn convert_uchar16_sat(double16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rte(double16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtn(double16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtp(double16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtz(double16);
-
-short __ovld __cnfn convert_short(double);
-short __ovld __cnfn convert_short_rte(double);
-short __ovld __cnfn convert_short_rtn(double);
-short __ovld __cnfn convert_short_rtp(double);
-short __ovld __cnfn convert_short_rtz(double);
-short __ovld __cnfn convert_short_sat(double);
-short __ovld __cnfn convert_short_sat_rte(double);
-short __ovld __cnfn convert_short_sat_rtn(double);
-short __ovld __cnfn convert_short_sat_rtp(double);
-short __ovld __cnfn convert_short_sat_rtz(double);
-short2 __ovld __cnfn convert_short2(double2);
-short2 __ovld __cnfn convert_short2_rte(double2);
-short2 __ovld __cnfn convert_short2_rtn(double2);
-short2 __ovld __cnfn convert_short2_rtp(double2);
-short2 __ovld __cnfn convert_short2_rtz(double2);
-short2 __ovld __cnfn convert_short2_sat(double2);
-short2 __ovld __cnfn convert_short2_sat_rte(double2);
-short2 __ovld __cnfn convert_short2_sat_rtn(double2);
-short2 __ovld __cnfn convert_short2_sat_rtp(double2);
-short2 __ovld __cnfn convert_short2_sat_rtz(double2);
-short3 __ovld __cnfn convert_short3(double3);
-short3 __ovld __cnfn convert_short3_rte(double3);
-short3 __ovld __cnfn convert_short3_rtn(double3);
-short3 __ovld __cnfn convert_short3_rtp(double3);
-short3 __ovld __cnfn convert_short3_rtz(double3);
-short3 __ovld __cnfn convert_short3_sat(double3);
-short3 __ovld __cnfn convert_short3_sat_rte(double3);
-short3 __ovld __cnfn convert_short3_sat_rtn(double3);
-short3 __ovld __cnfn convert_short3_sat_rtp(double3);
-short3 __ovld __cnfn convert_short3_sat_rtz(double3);
-short4 __ovld __cnfn convert_short4(double4);
-short4 __ovld __cnfn convert_short4_rte(double4);
-short4 __ovld __cnfn convert_short4_rtn(double4);
-short4 __ovld __cnfn convert_short4_rtp(double4);
-short4 __ovld __cnfn convert_short4_rtz(double4);
-short4 __ovld __cnfn convert_short4_sat(double4);
-short4 __ovld __cnfn convert_short4_sat_rte(double4);
-short4 __ovld __cnfn convert_short4_sat_rtn(double4);
-short4 __ovld __cnfn convert_short4_sat_rtp(double4);
-short4 __ovld __cnfn convert_short4_sat_rtz(double4);
-short8 __ovld __cnfn convert_short8(double8);
-short8 __ovld __cnfn convert_short8_rte(double8);
-short8 __ovld __cnfn convert_short8_rtn(double8);
-short8 __ovld __cnfn convert_short8_rtp(double8);
-short8 __ovld __cnfn convert_short8_rtz(double8);
-short8 __ovld __cnfn convert_short8_sat(double8);
-short8 __ovld __cnfn convert_short8_sat_rte(double8);
-short8 __ovld __cnfn convert_short8_sat_rtn(double8);
-short8 __ovld __cnfn convert_short8_sat_rtp(double8);
-short8 __ovld __cnfn convert_short8_sat_rtz(double8);
-short16 __ovld __cnfn convert_short16(double16);
-short16 __ovld __cnfn convert_short16_rte(double16);
-short16 __ovld __cnfn convert_short16_rtn(double16);
-short16 __ovld __cnfn convert_short16_rtp(double16);
-short16 __ovld __cnfn convert_short16_rtz(double16);
-short16 __ovld __cnfn convert_short16_sat(double16);
-short16 __ovld __cnfn convert_short16_sat_rte(double16);
-short16 __ovld __cnfn convert_short16_sat_rtn(double16);
-short16 __ovld __cnfn convert_short16_sat_rtp(double16);
-short16 __ovld __cnfn convert_short16_sat_rtz(double16);
-
-ushort __ovld __cnfn convert_ushort(double);
-ushort __ovld __cnfn convert_ushort_rte(double);
-ushort __ovld __cnfn convert_ushort_rtn(double);
-ushort __ovld __cnfn convert_ushort_rtp(double);
-ushort __ovld __cnfn convert_ushort_rtz(double);
-ushort __ovld __cnfn convert_ushort_sat(double);
-ushort __ovld __cnfn convert_ushort_sat_rte(double);
-ushort __ovld __cnfn convert_ushort_sat_rtn(double);
-ushort __ovld __cnfn convert_ushort_sat_rtp(double);
-ushort __ovld __cnfn convert_ushort_sat_rtz(double);
-ushort2 __ovld __cnfn convert_ushort2(double2);
-ushort2 __ovld __cnfn convert_ushort2_rte(double2);
-ushort2 __ovld __cnfn convert_ushort2_rtn(double2);
-ushort2 __ovld __cnfn convert_ushort2_rtp(double2);
-ushort2 __ovld __cnfn convert_ushort2_rtz(double2);
-ushort2 __ovld __cnfn convert_ushort2_sat(double2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rte(double2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtn(double2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtp(double2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtz(double2);
-ushort3 __ovld __cnfn convert_ushort3(double3);
-ushort3 __ovld __cnfn convert_ushort3_rte(double3);
-ushort3 __ovld __cnfn convert_ushort3_rtn(double3);
-ushort3 __ovld __cnfn convert_ushort3_rtp(double3);
-ushort3 __ovld __cnfn convert_ushort3_rtz(double3);
-ushort3 __ovld __cnfn convert_ushort3_sat(double3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rte(double3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtn(double3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtp(double3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtz(double3);
-ushort4 __ovld __cnfn convert_ushort4(double4);
-ushort4 __ovld __cnfn convert_ushort4_rte(double4);
-ushort4 __ovld __cnfn convert_ushort4_rtn(double4);
-ushort4 __ovld __cnfn convert_ushort4_rtp(double4);
-ushort4 __ovld __cnfn convert_ushort4_rtz(double4);
-ushort4 __ovld __cnfn convert_ushort4_sat(double4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rte(double4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtn(double4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtp(double4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtz(double4);
-ushort8 __ovld __cnfn convert_ushort8(double8);
-ushort8 __ovld __cnfn convert_ushort8_rte(double8);
-ushort8 __ovld __cnfn convert_ushort8_rtn(double8);
-ushort8 __ovld __cnfn convert_ushort8_rtp(double8);
-ushort8 __ovld __cnfn convert_ushort8_rtz(double8);
-ushort8 __ovld __cnfn convert_ushort8_sat(double8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rte(double8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtn(double8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtp(double8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtz(double8);
-ushort16 __ovld __cnfn convert_ushort16(double16);
-ushort16 __ovld __cnfn convert_ushort16_rte(double16);
-ushort16 __ovld __cnfn convert_ushort16_rtn(double16);
-ushort16 __ovld __cnfn convert_ushort16_rtp(double16);
-ushort16 __ovld __cnfn convert_ushort16_rtz(double16);
-ushort16 __ovld __cnfn convert_ushort16_sat(double16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rte(double16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtn(double16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtp(double16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtz(double16);
-
-int __ovld __cnfn convert_int(double);
-int __ovld __cnfn convert_int_rte(double);
-int __ovld __cnfn convert_int_rtn(double);
-int __ovld __cnfn convert_int_rtp(double);
-int __ovld __cnfn convert_int_rtz(double);
-int __ovld __cnfn convert_int_sat(double);
-int __ovld __cnfn convert_int_sat_rte(double);
-int __ovld __cnfn convert_int_sat_rtn(double);
-int __ovld __cnfn convert_int_sat_rtp(double);
-int __ovld __cnfn convert_int_sat_rtz(double);
-int2 __ovld __cnfn convert_int2(double2);
-int2 __ovld __cnfn convert_int2_rte(double2);
-int2 __ovld __cnfn convert_int2_rtn(double2);
-int2 __ovld __cnfn convert_int2_rtp(double2);
-int2 __ovld __cnfn convert_int2_rtz(double2);
-int2 __ovld __cnfn convert_int2_sat(double2);
-int2 __ovld __cnfn convert_int2_sat_rte(double2);
-int2 __ovld __cnfn convert_int2_sat_rtn(double2);
-int2 __ovld __cnfn convert_int2_sat_rtp(double2);
-int2 __ovld __cnfn convert_int2_sat_rtz(double2);
-int3 __ovld __cnfn convert_int3(double3);
-int3 __ovld __cnfn convert_int3_rte(double3);
-int3 __ovld __cnfn convert_int3_rtn(double3);
-int3 __ovld __cnfn convert_int3_rtp(double3);
-int3 __ovld __cnfn convert_int3_rtz(double3);
-int3 __ovld __cnfn convert_int3_sat(double3);
-int3 __ovld __cnfn convert_int3_sat_rte(double3);
-int3 __ovld __cnfn convert_int3_sat_rtn(double3);
-int3 __ovld __cnfn convert_int3_sat_rtp(double3);
-int3 __ovld __cnfn convert_int3_sat_rtz(double3);
-int4 __ovld __cnfn convert_int4(double4);
-int4 __ovld __cnfn convert_int4_rte(double4);
-int4 __ovld __cnfn convert_int4_rtn(double4);
-int4 __ovld __cnfn convert_int4_rtp(double4);
-int4 __ovld __cnfn convert_int4_rtz(double4);
-int4 __ovld __cnfn convert_int4_sat(double4);
-int4 __ovld __cnfn convert_int4_sat_rte(double4);
-int4 __ovld __cnfn convert_int4_sat_rtn(double4);
-int4 __ovld __cnfn convert_int4_sat_rtp(double4);
-int4 __ovld __cnfn convert_int4_sat_rtz(double4);
-int8 __ovld __cnfn convert_int8(double8);
-int8 __ovld __cnfn convert_int8_rte(double8);
-int8 __ovld __cnfn convert_int8_rtn(double8);
-int8 __ovld __cnfn convert_int8_rtp(double8);
-int8 __ovld __cnfn convert_int8_rtz(double8);
-int8 __ovld __cnfn convert_int8_sat(double8);
-int8 __ovld __cnfn convert_int8_sat_rte(double8);
-int8 __ovld __cnfn convert_int8_sat_rtn(double8);
-int8 __ovld __cnfn convert_int8_sat_rtp(double8);
-int8 __ovld __cnfn convert_int8_sat_rtz(double8);
-int16 __ovld __cnfn convert_int16(double16);
-int16 __ovld __cnfn convert_int16_rte(double16);
-int16 __ovld __cnfn convert_int16_rtn(double16);
-int16 __ovld __cnfn convert_int16_rtp(double16);
-int16 __ovld __cnfn convert_int16_rtz(double16);
-int16 __ovld __cnfn convert_int16_sat(double16);
-int16 __ovld __cnfn convert_int16_sat_rte(double16);
-int16 __ovld __cnfn convert_int16_sat_rtn(double16);
-int16 __ovld __cnfn convert_int16_sat_rtp(double16);
-int16 __ovld __cnfn convert_int16_sat_rtz(double16);
-
-uint __ovld __cnfn convert_uint(double);
-uint __ovld __cnfn convert_uint_rte(double);
-uint __ovld __cnfn convert_uint_rtn(double);
-uint __ovld __cnfn convert_uint_rtp(double);
-uint __ovld __cnfn convert_uint_rtz(double);
-uint __ovld __cnfn convert_uint_sat(double);
-uint __ovld __cnfn convert_uint_sat_rte(double);
-uint __ovld __cnfn convert_uint_sat_rtn(double);
-uint __ovld __cnfn convert_uint_sat_rtp(double);
-uint __ovld __cnfn convert_uint_sat_rtz(double);
-uint2 __ovld __cnfn convert_uint2(double2);
-uint2 __ovld __cnfn convert_uint2_rte(double2);
-uint2 __ovld __cnfn convert_uint2_rtn(double2);
-uint2 __ovld __cnfn convert_uint2_rtp(double2);
-uint2 __ovld __cnfn convert_uint2_rtz(double2);
-uint2 __ovld __cnfn convert_uint2_sat(double2);
-uint2 __ovld __cnfn convert_uint2_sat_rte(double2);
-uint2 __ovld __cnfn convert_uint2_sat_rtn(double2);
-uint2 __ovld __cnfn convert_uint2_sat_rtp(double2);
-uint2 __ovld __cnfn convert_uint2_sat_rtz(double2);
-uint3 __ovld __cnfn convert_uint3(double3);
-uint3 __ovld __cnfn convert_uint3_rte(double3);
-uint3 __ovld __cnfn convert_uint3_rtn(double3);
-uint3 __ovld __cnfn convert_uint3_rtp(double3);
-uint3 __ovld __cnfn convert_uint3_rtz(double3);
-uint3 __ovld __cnfn convert_uint3_sat(double3);
-uint3 __ovld __cnfn convert_uint3_sat_rte(double3);
-uint3 __ovld __cnfn convert_uint3_sat_rtn(double3);
-uint3 __ovld __cnfn convert_uint3_sat_rtp(double3);
-uint3 __ovld __cnfn convert_uint3_sat_rtz(double3);
-uint4 __ovld __cnfn convert_uint4(double4);
-uint4 __ovld __cnfn convert_uint4_rte(double4);
-uint4 __ovld __cnfn convert_uint4_rtn(double4);
-uint4 __ovld __cnfn convert_uint4_rtp(double4);
-uint4 __ovld __cnfn convert_uint4_rtz(double4);
-uint4 __ovld __cnfn convert_uint4_sat(double4);
-uint4 __ovld __cnfn convert_uint4_sat_rte(double4);
-uint4 __ovld __cnfn convert_uint4_sat_rtn(double4);
-uint4 __ovld __cnfn convert_uint4_sat_rtp(double4);
-uint4 __ovld __cnfn convert_uint4_sat_rtz(double4);
-uint8 __ovld __cnfn convert_uint8(double8);
-uint8 __ovld __cnfn convert_uint8_rte(double8);
-uint8 __ovld __cnfn convert_uint8_rtn(double8);
-uint8 __ovld __cnfn convert_uint8_rtp(double8);
-uint8 __ovld __cnfn convert_uint8_rtz(double8);
-uint8 __ovld __cnfn convert_uint8_sat(double8);
-uint8 __ovld __cnfn convert_uint8_sat_rte(double8);
-uint8 __ovld __cnfn convert_uint8_sat_rtn(double8);
-uint8 __ovld __cnfn convert_uint8_sat_rtp(double8);
-uint8 __ovld __cnfn convert_uint8_sat_rtz(double8);
-uint16 __ovld __cnfn convert_uint16(double16);
-uint16 __ovld __cnfn convert_uint16_rte(double16);
-uint16 __ovld __cnfn convert_uint16_rtn(double16);
-uint16 __ovld __cnfn convert_uint16_rtp(double16);
-uint16 __ovld __cnfn convert_uint16_rtz(double16);
-uint16 __ovld __cnfn convert_uint16_sat(double16);
-uint16 __ovld __cnfn convert_uint16_sat_rte(double16);
-uint16 __ovld __cnfn convert_uint16_sat_rtn(double16);
-uint16 __ovld __cnfn convert_uint16_sat_rtp(double16);
-uint16 __ovld __cnfn convert_uint16_sat_rtz(double16);
-
-long __ovld __cnfn convert_long(double);
-long __ovld __cnfn convert_long_rte(double);
-long __ovld __cnfn convert_long_rtn(double);
-long __ovld __cnfn convert_long_rtp(double);
-long __ovld __cnfn convert_long_rtz(double);
-long __ovld __cnfn convert_long_sat(double);
-long __ovld __cnfn convert_long_sat_rte(double);
-long __ovld __cnfn convert_long_sat_rtn(double);
-long __ovld __cnfn convert_long_sat_rtp(double);
-long __ovld __cnfn convert_long_sat_rtz(double);
-long2 __ovld __cnfn convert_long2(double2);
-long2 __ovld __cnfn convert_long2_rte(double2);
-long2 __ovld __cnfn convert_long2_rtn(double2);
-long2 __ovld __cnfn convert_long2_rtp(double2);
-long2 __ovld __cnfn convert_long2_rtz(double2);
-long2 __ovld __cnfn convert_long2_sat(double2);
-long2 __ovld __cnfn convert_long2_sat_rte(double2);
-long2 __ovld __cnfn convert_long2_sat_rtn(double2);
-long2 __ovld __cnfn convert_long2_sat_rtp(double2);
-long2 __ovld __cnfn convert_long2_sat_rtz(double2);
-long3 __ovld __cnfn convert_long3(double3);
-long3 __ovld __cnfn convert_long3_rte(double3);
-long3 __ovld __cnfn convert_long3_rtn(double3);
-long3 __ovld __cnfn convert_long3_rtp(double3);
-long3 __ovld __cnfn convert_long3_rtz(double3);
-long3 __ovld __cnfn convert_long3_sat(double3);
-long3 __ovld __cnfn convert_long3_sat_rte(double3);
-long3 __ovld __cnfn convert_long3_sat_rtn(double3);
-long3 __ovld __cnfn convert_long3_sat_rtp(double3);
-long3 __ovld __cnfn convert_long3_sat_rtz(double3);
-long4 __ovld __cnfn convert_long4(double4);
-long4 __ovld __cnfn convert_long4_rte(double4);
-long4 __ovld __cnfn convert_long4_rtn(double4);
-long4 __ovld __cnfn convert_long4_rtp(double4);
-long4 __ovld __cnfn convert_long4_rtz(double4);
-long4 __ovld __cnfn convert_long4_sat(double4);
-long4 __ovld __cnfn convert_long4_sat_rte(double4);
-long4 __ovld __cnfn convert_long4_sat_rtn(double4);
-long4 __ovld __cnfn convert_long4_sat_rtp(double4);
-long4 __ovld __cnfn convert_long4_sat_rtz(double4);
-long8 __ovld __cnfn convert_long8(double8);
-long8 __ovld __cnfn convert_long8_rte(double8);
-long8 __ovld __cnfn convert_long8_rtn(double8);
-long8 __ovld __cnfn convert_long8_rtp(double8);
-long8 __ovld __cnfn convert_long8_rtz(double8);
-long8 __ovld __cnfn convert_long8_sat(double8);
-long8 __ovld __cnfn convert_long8_sat_rte(double8);
-long8 __ovld __cnfn convert_long8_sat_rtn(double8);
-long8 __ovld __cnfn convert_long8_sat_rtp(double8);
-long8 __ovld __cnfn convert_long8_sat_rtz(double8);
-long16 __ovld __cnfn convert_long16(double16);
-long16 __ovld __cnfn convert_long16_rte(double16);
-long16 __ovld __cnfn convert_long16_rtn(double16);
-long16 __ovld __cnfn convert_long16_rtp(double16);
-long16 __ovld __cnfn convert_long16_rtz(double16);
-long16 __ovld __cnfn convert_long16_sat(double16);
-long16 __ovld __cnfn convert_long16_sat_rte(double16);
-long16 __ovld __cnfn convert_long16_sat_rtn(double16);
-long16 __ovld __cnfn convert_long16_sat_rtp(double16);
-long16 __ovld __cnfn convert_long16_sat_rtz(double16);
-
-ulong __ovld __cnfn convert_ulong(double);
-ulong __ovld __cnfn convert_ulong_rte(double);
-ulong __ovld __cnfn convert_ulong_rtn(double);
-ulong __ovld __cnfn convert_ulong_rtp(double);
-ulong __ovld __cnfn convert_ulong_rtz(double);
-ulong __ovld __cnfn convert_ulong_sat(double);
-ulong __ovld __cnfn convert_ulong_sat_rte(double);
-ulong __ovld __cnfn convert_ulong_sat_rtn(double);
-ulong __ovld __cnfn convert_ulong_sat_rtp(double);
-ulong __ovld __cnfn convert_ulong_sat_rtz(double);
-ulong2 __ovld __cnfn convert_ulong2(double2);
-ulong2 __ovld __cnfn convert_ulong2_rte(double2);
-ulong2 __ovld __cnfn convert_ulong2_rtn(double2);
-ulong2 __ovld __cnfn convert_ulong2_rtp(double2);
-ulong2 __ovld __cnfn convert_ulong2_rtz(double2);
-ulong2 __ovld __cnfn convert_ulong2_sat(double2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rte(double2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtn(double2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtp(double2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtz(double2);
-ulong3 __ovld __cnfn convert_ulong3(double3);
-ulong3 __ovld __cnfn convert_ulong3_rte(double3);
-ulong3 __ovld __cnfn convert_ulong3_rtn(double3);
-ulong3 __ovld __cnfn convert_ulong3_rtp(double3);
-ulong3 __ovld __cnfn convert_ulong3_rtz(double3);
-ulong3 __ovld __cnfn convert_ulong3_sat(double3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rte(double3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtn(double3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtp(double3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtz(double3);
-ulong4 __ovld __cnfn convert_ulong4(double4);
-ulong4 __ovld __cnfn convert_ulong4_rte(double4);
-ulong4 __ovld __cnfn convert_ulong4_rtn(double4);
-ulong4 __ovld __cnfn convert_ulong4_rtp(double4);
-ulong4 __ovld __cnfn convert_ulong4_rtz(double4);
-ulong4 __ovld __cnfn convert_ulong4_sat(double4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rte(double4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtn(double4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtp(double4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtz(double4);
-ulong8 __ovld __cnfn convert_ulong8(double8);
-ulong8 __ovld __cnfn convert_ulong8_rte(double8);
-ulong8 __ovld __cnfn convert_ulong8_rtn(double8);
-ulong8 __ovld __cnfn convert_ulong8_rtp(double8);
-ulong8 __ovld __cnfn convert_ulong8_rtz(double8);
-ulong8 __ovld __cnfn convert_ulong8_sat(double8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rte(double8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtn(double8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtp(double8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtz(double8);
-ulong16 __ovld __cnfn convert_ulong16(double16);
-ulong16 __ovld __cnfn convert_ulong16_rte(double16);
-ulong16 __ovld __cnfn convert_ulong16_rtn(double16);
-ulong16 __ovld __cnfn convert_ulong16_rtp(double16);
-ulong16 __ovld __cnfn convert_ulong16_rtz(double16);
-ulong16 __ovld __cnfn convert_ulong16_sat(double16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rte(double16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtn(double16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtp(double16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtz(double16);
-
-float __ovld __cnfn convert_float(double);
-float __ovld __cnfn convert_float_rte(double);
-float __ovld __cnfn convert_float_rtn(double);
-float __ovld __cnfn convert_float_rtp(double);
-float __ovld __cnfn convert_float_rtz(double);
-float2 __ovld __cnfn convert_float2(double2);
-float2 __ovld __cnfn convert_float2_rte(double2);
-float2 __ovld __cnfn convert_float2_rtn(double2);
-float2 __ovld __cnfn convert_float2_rtp(double2);
-float2 __ovld __cnfn convert_float2_rtz(double2);
-float3 __ovld __cnfn convert_float3(double3);
-float3 __ovld __cnfn convert_float3_rte(double3);
-float3 __ovld __cnfn convert_float3_rtn(double3);
-float3 __ovld __cnfn convert_float3_rtp(double3);
-float3 __ovld __cnfn convert_float3_rtz(double3);
-float4 __ovld __cnfn convert_float4(double4);
-float4 __ovld __cnfn convert_float4_rte(double4);
-float4 __ovld __cnfn convert_float4_rtn(double4);
-float4 __ovld __cnfn convert_float4_rtp(double4);
-float4 __ovld __cnfn convert_float4_rtz(double4);
-float8 __ovld __cnfn convert_float8(double8);
-float8 __ovld __cnfn convert_float8_rte(double8);
-float8 __ovld __cnfn convert_float8_rtn(double8);
-float8 __ovld __cnfn convert_float8_rtp(double8);
-float8 __ovld __cnfn convert_float8_rtz(double8);
-float16 __ovld __cnfn convert_float16(double16);
-float16 __ovld __cnfn convert_float16_rte(double16);
-float16 __ovld __cnfn convert_float16_rtn(double16);
-float16 __ovld __cnfn convert_float16_rtp(double16);
-float16 __ovld __cnfn convert_float16_rtz(double16);
-
-double __ovld __cnfn convert_double(char);
-double __ovld __cnfn convert_double(double);
-double __ovld __cnfn convert_double(float);
-double __ovld __cnfn convert_double(int);
-double __ovld __cnfn convert_double(long);
-double __ovld __cnfn convert_double(short);
-double __ovld __cnfn convert_double(uchar);
-double __ovld __cnfn convert_double(uint);
-double __ovld __cnfn convert_double(ulong);
-double __ovld __cnfn convert_double(ushort);
-double __ovld __cnfn convert_double_rte(char);
-double __ovld __cnfn convert_double_rte(double);
-double __ovld __cnfn convert_double_rte(float);
-double __ovld __cnfn convert_double_rte(int);
-double __ovld __cnfn convert_double_rte(long);
-double __ovld __cnfn convert_double_rte(short);
-double __ovld __cnfn convert_double_rte(uchar);
-double __ovld __cnfn convert_double_rte(uint);
-double __ovld __cnfn convert_double_rte(ulong);
-double __ovld __cnfn convert_double_rte(ushort);
-double __ovld __cnfn convert_double_rtn(char);
-double __ovld __cnfn convert_double_rtn(double);
-double __ovld __cnfn convert_double_rtn(float);
-double __ovld __cnfn convert_double_rtn(int);
-double __ovld __cnfn convert_double_rtn(long);
-double __ovld __cnfn convert_double_rtn(short);
-double __ovld __cnfn convert_double_rtn(uchar);
-double __ovld __cnfn convert_double_rtn(uint);
-double __ovld __cnfn convert_double_rtn(ulong);
-double __ovld __cnfn convert_double_rtn(ushort);
-double __ovld __cnfn convert_double_rtp(char);
-double __ovld __cnfn convert_double_rtp(double);
-double __ovld __cnfn convert_double_rtp(float);
-double __ovld __cnfn convert_double_rtp(int);
-double __ovld __cnfn convert_double_rtp(long);
-double __ovld __cnfn convert_double_rtp(short);
-double __ovld __cnfn convert_double_rtp(uchar);
-double __ovld __cnfn convert_double_rtp(uint);
-double __ovld __cnfn convert_double_rtp(ulong);
-double __ovld __cnfn convert_double_rtp(ushort);
-double __ovld __cnfn convert_double_rtz(char);
-double __ovld __cnfn convert_double_rtz(double);
-double __ovld __cnfn convert_double_rtz(float);
-double __ovld __cnfn convert_double_rtz(int);
-double __ovld __cnfn convert_double_rtz(long);
-double __ovld __cnfn convert_double_rtz(short);
-double __ovld __cnfn convert_double_rtz(uchar);
-double __ovld __cnfn convert_double_rtz(uint);
-double __ovld __cnfn convert_double_rtz(ulong);
-double __ovld __cnfn convert_double_rtz(ushort);
-double2 __ovld __cnfn convert_double2(char2);
-double2 __ovld __cnfn convert_double2(double2);
-double2 __ovld __cnfn convert_double2(float2);
-double2 __ovld __cnfn convert_double2(int2);
-double2 __ovld __cnfn convert_double2(long2);
-double2 __ovld __cnfn convert_double2(short2);
-double2 __ovld __cnfn convert_double2(uchar2);
-double2 __ovld __cnfn convert_double2(uint2);
-double2 __ovld __cnfn convert_double2(ulong2);
-double2 __ovld __cnfn convert_double2(ushort2);
-double2 __ovld __cnfn convert_double2_rte(char2);
-double2 __ovld __cnfn convert_double2_rte(double2);
-double2 __ovld __cnfn convert_double2_rte(float2);
-double2 __ovld __cnfn convert_double2_rte(int2);
-double2 __ovld __cnfn convert_double2_rte(long2);
-double2 __ovld __cnfn convert_double2_rte(short2);
-double2 __ovld __cnfn convert_double2_rte(uchar2);
-double2 __ovld __cnfn convert_double2_rte(uint2);
-double2 __ovld __cnfn convert_double2_rte(ulong2);
-double2 __ovld __cnfn convert_double2_rte(ushort2);
-double2 __ovld __cnfn convert_double2_rtn(char2);
-double2 __ovld __cnfn convert_double2_rtn(double2);
-double2 __ovld __cnfn convert_double2_rtn(float2);
-double2 __ovld __cnfn convert_double2_rtn(int2);
-double2 __ovld __cnfn convert_double2_rtn(long2);
-double2 __ovld __cnfn convert_double2_rtn(short2);
-double2 __ovld __cnfn convert_double2_rtn(uchar2);
-double2 __ovld __cnfn convert_double2_rtn(uint2);
-double2 __ovld __cnfn convert_double2_rtn(ulong2);
-double2 __ovld __cnfn convert_double2_rtn(ushort2);
-double2 __ovld __cnfn convert_double2_rtp(char2);
-double2 __ovld __cnfn convert_double2_rtp(double2);
-double2 __ovld __cnfn convert_double2_rtp(float2);
-double2 __ovld __cnfn convert_double2_rtp(int2);
-double2 __ovld __cnfn convert_double2_rtp(long2);
-double2 __ovld __cnfn convert_double2_rtp(short2);
-double2 __ovld __cnfn convert_double2_rtp(uchar2);
-double2 __ovld __cnfn convert_double2_rtp(uint2);
-double2 __ovld __cnfn convert_double2_rtp(ulong2);
-double2 __ovld __cnfn convert_double2_rtp(ushort2);
-double2 __ovld __cnfn convert_double2_rtz(char2);
-double2 __ovld __cnfn convert_double2_rtz(double2);
-double2 __ovld __cnfn convert_double2_rtz(float2);
-double2 __ovld __cnfn convert_double2_rtz(int2);
-double2 __ovld __cnfn convert_double2_rtz(long2);
-double2 __ovld __cnfn convert_double2_rtz(short2);
-double2 __ovld __cnfn convert_double2_rtz(uchar2);
-double2 __ovld __cnfn convert_double2_rtz(uint2);
-double2 __ovld __cnfn convert_double2_rtz(ulong2);
-double2 __ovld __cnfn convert_double2_rtz(ushort2);
-double3 __ovld __cnfn convert_double3(char3);
-double3 __ovld __cnfn convert_double3(double3);
-double3 __ovld __cnfn convert_double3(float3);
-double3 __ovld __cnfn convert_double3(int3);
-double3 __ovld __cnfn convert_double3(long3);
-double3 __ovld __cnfn convert_double3(short3);
-double3 __ovld __cnfn convert_double3(uchar3);
-double3 __ovld __cnfn convert_double3(uint3);
-double3 __ovld __cnfn convert_double3(ulong3);
-double3 __ovld __cnfn convert_double3(ushort3);
-double3 __ovld __cnfn convert_double3_rte(char3);
-double3 __ovld __cnfn convert_double3_rte(double3);
-double3 __ovld __cnfn convert_double3_rte(float3);
-double3 __ovld __cnfn convert_double3_rte(int3);
-double3 __ovld __cnfn convert_double3_rte(long3);
-double3 __ovld __cnfn convert_double3_rte(short3);
-double3 __ovld __cnfn convert_double3_rte(uchar3);
-double3 __ovld __cnfn convert_double3_rte(uint3);
-double3 __ovld __cnfn convert_double3_rte(ulong3);
-double3 __ovld __cnfn convert_double3_rte(ushort3);
-double3 __ovld __cnfn convert_double3_rtn(char3);
-double3 __ovld __cnfn convert_double3_rtn(double3);
-double3 __ovld __cnfn convert_double3_rtn(float3);
-double3 __ovld __cnfn convert_double3_rtn(int3);
-double3 __ovld __cnfn convert_double3_rtn(long3);
-double3 __ovld __cnfn convert_double3_rtn(short3);
-double3 __ovld __cnfn convert_double3_rtn(uchar3);
-double3 __ovld __cnfn convert_double3_rtn(uint3);
-double3 __ovld __cnfn convert_double3_rtn(ulong3);
-double3 __ovld __cnfn convert_double3_rtn(ushort3);
-double3 __ovld __cnfn convert_double3_rtp(char3);
-double3 __ovld __cnfn convert_double3_rtp(double3);
-double3 __ovld __cnfn convert_double3_rtp(float3);
-double3 __ovld __cnfn convert_double3_rtp(int3);
-double3 __ovld __cnfn convert_double3_rtp(long3);
-double3 __ovld __cnfn convert_double3_rtp(short3);
-double3 __ovld __cnfn convert_double3_rtp(uchar3);
-double3 __ovld __cnfn convert_double3_rtp(uint3);
-double3 __ovld __cnfn convert_double3_rtp(ulong3);
-double3 __ovld __cnfn convert_double3_rtp(ushort3);
-double3 __ovld __cnfn convert_double3_rtz(char3);
-double3 __ovld __cnfn convert_double3_rtz(double3);
-double3 __ovld __cnfn convert_double3_rtz(float3);
-double3 __ovld __cnfn convert_double3_rtz(int3);
-double3 __ovld __cnfn convert_double3_rtz(long3);
-double3 __ovld __cnfn convert_double3_rtz(short3);
-double3 __ovld __cnfn convert_double3_rtz(uchar3);
-double3 __ovld __cnfn convert_double3_rtz(uint3);
-double3 __ovld __cnfn convert_double3_rtz(ulong3);
-double3 __ovld __cnfn convert_double3_rtz(ushort3);
-double4 __ovld __cnfn convert_double4(char4);
-double4 __ovld __cnfn convert_double4(double4);
-double4 __ovld __cnfn convert_double4(float4);
-double4 __ovld __cnfn convert_double4(int4);
-double4 __ovld __cnfn convert_double4(long4);
-double4 __ovld __cnfn convert_double4(short4);
-double4 __ovld __cnfn convert_double4(uchar4);
-double4 __ovld __cnfn convert_double4(uint4);
-double4 __ovld __cnfn convert_double4(ulong4);
-double4 __ovld __cnfn convert_double4(ushort4);
-double4 __ovld __cnfn convert_double4_rte(char4);
-double4 __ovld __cnfn convert_double4_rte(double4);
-double4 __ovld __cnfn convert_double4_rte(float4);
-double4 __ovld __cnfn convert_double4_rte(int4);
-double4 __ovld __cnfn convert_double4_rte(long4);
-double4 __ovld __cnfn convert_double4_rte(short4);
-double4 __ovld __cnfn convert_double4_rte(uchar4);
-double4 __ovld __cnfn convert_double4_rte(uint4);
-double4 __ovld __cnfn convert_double4_rte(ulong4);
-double4 __ovld __cnfn convert_double4_rte(ushort4);
-double4 __ovld __cnfn convert_double4_rtn(char4);
-double4 __ovld __cnfn convert_double4_rtn(double4);
-double4 __ovld __cnfn convert_double4_rtn(float4);
-double4 __ovld __cnfn convert_double4_rtn(int4);
-double4 __ovld __cnfn convert_double4_rtn(long4);
-double4 __ovld __cnfn convert_double4_rtn(short4);
-double4 __ovld __cnfn convert_double4_rtn(uchar4);
-double4 __ovld __cnfn convert_double4_rtn(uint4);
-double4 __ovld __cnfn convert_double4_rtn(ulong4);
-double4 __ovld __cnfn convert_double4_rtn(ushort4);
-double4 __ovld __cnfn convert_double4_rtp(char4);
-double4 __ovld __cnfn convert_double4_rtp(double4);
-double4 __ovld __cnfn convert_double4_rtp(float4);
-double4 __ovld __cnfn convert_double4_rtp(int4);
-double4 __ovld __cnfn convert_double4_rtp(long4);
-double4 __ovld __cnfn convert_double4_rtp(short4);
-double4 __ovld __cnfn convert_double4_rtp(uchar4);
-double4 __ovld __cnfn convert_double4_rtp(uint4);
-double4 __ovld __cnfn convert_double4_rtp(ulong4);
-double4 __ovld __cnfn convert_double4_rtp(ushort4);
-double4 __ovld __cnfn convert_double4_rtz(char4);
-double4 __ovld __cnfn convert_double4_rtz(double4);
-double4 __ovld __cnfn convert_double4_rtz(float4);
-double4 __ovld __cnfn convert_double4_rtz(int4);
-double4 __ovld __cnfn convert_double4_rtz(long4);
-double4 __ovld __cnfn convert_double4_rtz(short4);
-double4 __ovld __cnfn convert_double4_rtz(uchar4);
-double4 __ovld __cnfn convert_double4_rtz(uint4);
-double4 __ovld __cnfn convert_double4_rtz(ulong4);
-double4 __ovld __cnfn convert_double4_rtz(ushort4);
-double8 __ovld __cnfn convert_double8(char8);
-double8 __ovld __cnfn convert_double8(double8);
-double8 __ovld __cnfn convert_double8(float8);
-double8 __ovld __cnfn convert_double8(int8);
-double8 __ovld __cnfn convert_double8(long8);
-double8 __ovld __cnfn convert_double8(short8);
-double8 __ovld __cnfn convert_double8(uchar8);
-double8 __ovld __cnfn convert_double8(uint8);
-double8 __ovld __cnfn convert_double8(ulong8);
-double8 __ovld __cnfn convert_double8(ushort8);
-double8 __ovld __cnfn convert_double8_rte(char8);
-double8 __ovld __cnfn convert_double8_rte(double8);
-double8 __ovld __cnfn convert_double8_rte(float8);
-double8 __ovld __cnfn convert_double8_rte(int8);
-double8 __ovld __cnfn convert_double8_rte(long8);
-double8 __ovld __cnfn convert_double8_rte(short8);
-double8 __ovld __cnfn convert_double8_rte(uchar8);
-double8 __ovld __cnfn convert_double8_rte(uint8);
-double8 __ovld __cnfn convert_double8_rte(ulong8);
-double8 __ovld __cnfn convert_double8_rte(ushort8);
-double8 __ovld __cnfn convert_double8_rtn(char8);
-double8 __ovld __cnfn convert_double8_rtn(double8);
-double8 __ovld __cnfn convert_double8_rtn(float8);
-double8 __ovld __cnfn convert_double8_rtn(int8);
-double8 __ovld __cnfn convert_double8_rtn(long8);
-double8 __ovld __cnfn convert_double8_rtn(short8);
-double8 __ovld __cnfn convert_double8_rtn(uchar8);
-double8 __ovld __cnfn convert_double8_rtn(uint8);
-double8 __ovld __cnfn convert_double8_rtn(ulong8);
-double8 __ovld __cnfn convert_double8_rtn(ushort8);
-double8 __ovld __cnfn convert_double8_rtp(char8);
-double8 __ovld __cnfn convert_double8_rtp(double8);
-double8 __ovld __cnfn convert_double8_rtp(float8);
-double8 __ovld __cnfn convert_double8_rtp(int8);
-double8 __ovld __cnfn convert_double8_rtp(long8);
-double8 __ovld __cnfn convert_double8_rtp(short8);
-double8 __ovld __cnfn convert_double8_rtp(uchar8);
-double8 __ovld __cnfn convert_double8_rtp(uint8);
-double8 __ovld __cnfn convert_double8_rtp(ulong8);
-double8 __ovld __cnfn convert_double8_rtp(ushort8);
-double8 __ovld __cnfn convert_double8_rtz(char8);
-double8 __ovld __cnfn convert_double8_rtz(double8);
-double8 __ovld __cnfn convert_double8_rtz(float8);
-double8 __ovld __cnfn convert_double8_rtz(int8);
-double8 __ovld __cnfn convert_double8_rtz(long8);
-double8 __ovld __cnfn convert_double8_rtz(short8);
-double8 __ovld __cnfn convert_double8_rtz(uchar8);
-double8 __ovld __cnfn convert_double8_rtz(uint8);
-double8 __ovld __cnfn convert_double8_rtz(ulong8);
-double8 __ovld __cnfn convert_double8_rtz(ushort8);
-double16 __ovld __cnfn convert_double16(char16);
-double16 __ovld __cnfn convert_double16(double16);
-double16 __ovld __cnfn convert_double16(float16);
-double16 __ovld __cnfn convert_double16(int16);
-double16 __ovld __cnfn convert_double16(long16);
-double16 __ovld __cnfn convert_double16(short16);
-double16 __ovld __cnfn convert_double16(uchar16);
-double16 __ovld __cnfn convert_double16(uint16);
-double16 __ovld __cnfn convert_double16(ulong16);
-double16 __ovld __cnfn convert_double16(ushort16);
-double16 __ovld __cnfn convert_double16_rte(char16);
-double16 __ovld __cnfn convert_double16_rte(double16);
-double16 __ovld __cnfn convert_double16_rte(float16);
-double16 __ovld __cnfn convert_double16_rte(int16);
-double16 __ovld __cnfn convert_double16_rte(long16);
-double16 __ovld __cnfn convert_double16_rte(short16);
-double16 __ovld __cnfn convert_double16_rte(uchar16);
-double16 __ovld __cnfn convert_double16_rte(uint16);
-double16 __ovld __cnfn convert_double16_rte(ulong16);
-double16 __ovld __cnfn convert_double16_rte(ushort16);
-double16 __ovld __cnfn convert_double16_rtn(char16);
-double16 __ovld __cnfn convert_double16_rtn(double16);
-double16 __ovld __cnfn convert_double16_rtn(float16);
-double16 __ovld __cnfn convert_double16_rtn(int16);
-double16 __ovld __cnfn convert_double16_rtn(long16);
-double16 __ovld __cnfn convert_double16_rtn(short16);
-double16 __ovld __cnfn convert_double16_rtn(uchar16);
-double16 __ovld __cnfn convert_double16_rtn(uint16);
-double16 __ovld __cnfn convert_double16_rtn(ulong16);
-double16 __ovld __cnfn convert_double16_rtn(ushort16);
-double16 __ovld __cnfn convert_double16_rtp(char16);
-double16 __ovld __cnfn convert_double16_rtp(double16);
-double16 __ovld __cnfn convert_double16_rtp(float16);
-double16 __ovld __cnfn convert_double16_rtp(int16);
-double16 __ovld __cnfn convert_double16_rtp(long16);
-double16 __ovld __cnfn convert_double16_rtp(short16);
-double16 __ovld __cnfn convert_double16_rtp(uchar16);
-double16 __ovld __cnfn convert_double16_rtp(uint16);
-double16 __ovld __cnfn convert_double16_rtp(ulong16);
-double16 __ovld __cnfn convert_double16_rtp(ushort16);
-double16 __ovld __cnfn convert_double16_rtz(char16);
-double16 __ovld __cnfn convert_double16_rtz(double16);
-double16 __ovld __cnfn convert_double16_rtz(float16);
-double16 __ovld __cnfn convert_double16_rtz(int16);
-double16 __ovld __cnfn convert_double16_rtz(long16);
-double16 __ovld __cnfn convert_double16_rtz(short16);
-double16 __ovld __cnfn convert_double16_rtz(uchar16);
-double16 __ovld __cnfn convert_double16_rtz(uint16);
-double16 __ovld __cnfn convert_double16_rtz(ulong16);
-double16 __ovld __cnfn convert_double16_rtz(ushort16);
-#endif //cl_khr_fp64
-
-#ifdef cl_khr_fp16
-#pragma OPENCL EXTENSION cl_khr_fp16 : enable
-// Convert half types to non-double types.
-uchar __ovld __cnfn convert_uchar(half);
-uchar __ovld __cnfn convert_uchar_rte(half);
-uchar __ovld __cnfn convert_uchar_rtp(half);
-uchar __ovld __cnfn convert_uchar_rtn(half);
-uchar __ovld __cnfn convert_uchar_rtz(half);
-uchar __ovld __cnfn convert_uchar_sat(half);
-uchar __ovld __cnfn convert_uchar_sat_rte(half);
-uchar __ovld __cnfn convert_uchar_sat_rtp(half);
-uchar __ovld __cnfn convert_uchar_sat_rtn(half);
-uchar __ovld __cnfn convert_uchar_sat_rtz(half);
-uchar2 __ovld __cnfn convert_uchar2(half2);
-uchar2 __ovld __cnfn convert_uchar2_rte(half2);
-uchar2 __ovld __cnfn convert_uchar2_rtp(half2);
-uchar2 __ovld __cnfn convert_uchar2_rtn(half2);
-uchar2 __ovld __cnfn convert_uchar2_rtz(half2);
-uchar2 __ovld __cnfn convert_uchar2_sat(half2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rte(half2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtp(half2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtn(half2);
-uchar2 __ovld __cnfn convert_uchar2_sat_rtz(half2);
-uchar3 __ovld __cnfn convert_uchar3(half3);
-uchar3 __ovld __cnfn convert_uchar3_rte(half3);
-uchar3 __ovld __cnfn convert_uchar3_rtp(half3);
-uchar3 __ovld __cnfn convert_uchar3_rtn(half3);
-uchar3 __ovld __cnfn convert_uchar3_rtz(half3);
-uchar3 __ovld __cnfn convert_uchar3_sat(half3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rte(half3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtp(half3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtn(half3);
-uchar3 __ovld __cnfn convert_uchar3_sat_rtz(half3);
-uchar4 __ovld __cnfn convert_uchar4(half4);
-uchar4 __ovld __cnfn convert_uchar4_rte(half4);
-uchar4 __ovld __cnfn convert_uchar4_rtp(half4);
-uchar4 __ovld __cnfn convert_uchar4_rtn(half4);
-uchar4 __ovld __cnfn convert_uchar4_rtz(half4);
-uchar4 __ovld __cnfn convert_uchar4_sat(half4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rte(half4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtp(half4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtn(half4);
-uchar4 __ovld __cnfn convert_uchar4_sat_rtz(half4);
-uchar8 __ovld __cnfn convert_uchar8(half8);
-uchar8 __ovld __cnfn convert_uchar8_rte(half8);
-uchar8 __ovld __cnfn convert_uchar8_rtp(half8);
-uchar8 __ovld __cnfn convert_uchar8_rtn(half8);
-uchar8 __ovld __cnfn convert_uchar8_rtz(half8);
-uchar8 __ovld __cnfn convert_uchar8_sat(half8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rte(half8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtp(half8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtn(half8);
-uchar8 __ovld __cnfn convert_uchar8_sat_rtz(half8);
-uchar16 __ovld __cnfn convert_uchar16(half16);
-uchar16 __ovld __cnfn convert_uchar16_rte(half16);
-uchar16 __ovld __cnfn convert_uchar16_rtp(half16);
-uchar16 __ovld __cnfn convert_uchar16_rtn(half16);
-uchar16 __ovld __cnfn convert_uchar16_rtz(half16);
-uchar16 __ovld __cnfn convert_uchar16_sat(half16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rte(half16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtp(half16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtn(half16);
-uchar16 __ovld __cnfn convert_uchar16_sat_rtz(half16);
-ushort __ovld __cnfn convert_ushort(half);
-ushort __ovld __cnfn convert_ushort_rte(half);
-ushort __ovld __cnfn convert_ushort_rtp(half);
-ushort __ovld __cnfn convert_ushort_rtn(half);
-ushort __ovld __cnfn convert_ushort_rtz(half);
-ushort __ovld __cnfn convert_ushort_sat(half);
-ushort __ovld __cnfn convert_ushort_sat_rte(half);
-ushort __ovld __cnfn convert_ushort_sat_rtp(half);
-ushort __ovld __cnfn convert_ushort_sat_rtn(half);
-ushort __ovld __cnfn convert_ushort_sat_rtz(half);
-ushort2 __ovld __cnfn convert_ushort2(half2);
-ushort2 __ovld __cnfn convert_ushort2_rte(half2);
-ushort2 __ovld __cnfn convert_ushort2_rtp(half2);
-ushort2 __ovld __cnfn convert_ushort2_rtn(half2);
-ushort2 __ovld __cnfn convert_ushort2_rtz(half2);
-ushort2 __ovld __cnfn convert_ushort2_sat(half2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rte(half2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtp(half2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtn(half2);
-ushort2 __ovld __cnfn convert_ushort2_sat_rtz(half2);
-ushort3 __ovld __cnfn convert_ushort3(half3);
-ushort3 __ovld __cnfn convert_ushort3_rte(half3);
-ushort3 __ovld __cnfn convert_ushort3_rtp(half3);
-ushort3 __ovld __cnfn convert_ushort3_rtn(half3);
-ushort3 __ovld __cnfn convert_ushort3_rtz(half3);
-ushort3 __ovld __cnfn convert_ushort3_sat(half3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rte(half3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtp(half3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtn(half3);
-ushort3 __ovld __cnfn convert_ushort3_sat_rtz(half3);
-ushort4 __ovld __cnfn convert_ushort4(half4);
-ushort4 __ovld __cnfn convert_ushort4_rte(half4);
-ushort4 __ovld __cnfn convert_ushort4_rtp(half4);
-ushort4 __ovld __cnfn convert_ushort4_rtn(half4);
-ushort4 __ovld __cnfn convert_ushort4_rtz(half4);
-ushort4 __ovld __cnfn convert_ushort4_sat(half4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rte(half4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtp(half4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtn(half4);
-ushort4 __ovld __cnfn convert_ushort4_sat_rtz(half4);
-ushort8 __ovld __cnfn convert_ushort8(half8);
-ushort8 __ovld __cnfn convert_ushort8_rte(half8);
-ushort8 __ovld __cnfn convert_ushort8_rtp(half8);
-ushort8 __ovld __cnfn convert_ushort8_rtn(half8);
-ushort8 __ovld __cnfn convert_ushort8_rtz(half8);
-ushort8 __ovld __cnfn convert_ushort8_sat(half8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rte(half8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtp(half8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtn(half8);
-ushort8 __ovld __cnfn convert_ushort8_sat_rtz(half8);
-ushort16 __ovld __cnfn convert_ushort16(half16);
-ushort16 __ovld __cnfn convert_ushort16_rte(half16);
-ushort16 __ovld __cnfn convert_ushort16_rtp(half16);
-ushort16 __ovld __cnfn convert_ushort16_rtn(half16);
-ushort16 __ovld __cnfn convert_ushort16_rtz(half16);
-ushort16 __ovld __cnfn convert_ushort16_sat(half16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rte(half16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtp(half16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtn(half16);
-ushort16 __ovld __cnfn convert_ushort16_sat_rtz(half16);
-uint __ovld __cnfn convert_uint(half);
-uint __ovld __cnfn convert_uint_rte(half);
-uint __ovld __cnfn convert_uint_rtp(half);
-uint __ovld __cnfn convert_uint_rtn(half);
-uint __ovld __cnfn convert_uint_rtz(half);
-uint __ovld __cnfn convert_uint_sat(half);
-uint __ovld __cnfn convert_uint_sat_rte(half);
-uint __ovld __cnfn convert_uint_sat_rtp(half);
-uint __ovld __cnfn convert_uint_sat_rtn(half);
-uint __ovld __cnfn convert_uint_sat_rtz(half);
-uint2 __ovld __cnfn convert_uint2(half2);
-uint2 __ovld __cnfn convert_uint2_rte(half2);
-uint2 __ovld __cnfn convert_uint2_rtp(half2);
-uint2 __ovld __cnfn convert_uint2_rtn(half2);
-uint2 __ovld __cnfn convert_uint2_rtz(half2);
-uint2 __ovld __cnfn convert_uint2_sat(half2);
-uint2 __ovld __cnfn convert_uint2_sat_rte(half2);
-uint2 __ovld __cnfn convert_uint2_sat_rtp(half2);
-uint2 __ovld __cnfn convert_uint2_sat_rtn(half2);
-uint2 __ovld __cnfn convert_uint2_sat_rtz(half2);
-uint3 __ovld __cnfn convert_uint3(half3);
-uint3 __ovld __cnfn convert_uint3_rte(half3);
-uint3 __ovld __cnfn convert_uint3_rtp(half3);
-uint3 __ovld __cnfn convert_uint3_rtn(half3);
-uint3 __ovld __cnfn convert_uint3_rtz(half3);
-uint3 __ovld __cnfn convert_uint3_sat(half3);
-uint3 __ovld __cnfn convert_uint3_sat_rte(half3);
-uint3 __ovld __cnfn convert_uint3_sat_rtp(half3);
-uint3 __ovld __cnfn convert_uint3_sat_rtn(half3);
-uint3 __ovld __cnfn convert_uint3_sat_rtz(half3);
-uint4 __ovld __cnfn convert_uint4(half4);
-uint4 __ovld __cnfn convert_uint4_rte(half4);
-uint4 __ovld __cnfn convert_uint4_rtp(half4);
-uint4 __ovld __cnfn convert_uint4_rtn(half4);
-uint4 __ovld __cnfn convert_uint4_rtz(half4);
-uint4 __ovld __cnfn convert_uint4_sat(half4);
-uint4 __ovld __cnfn convert_uint4_sat_rte(half4);
-uint4 __ovld __cnfn convert_uint4_sat_rtp(half4);
-uint4 __ovld __cnfn convert_uint4_sat_rtn(half4);
-uint4 __ovld __cnfn convert_uint4_sat_rtz(half4);
-uint8 __ovld __cnfn convert_uint8(half8);
-uint8 __ovld __cnfn convert_uint8_rte(half8);
-uint8 __ovld __cnfn convert_uint8_rtp(half8);
-uint8 __ovld __cnfn convert_uint8_rtn(half8);
-uint8 __ovld __cnfn convert_uint8_rtz(half8);
-uint8 __ovld __cnfn convert_uint8_sat(half8);
-uint8 __ovld __cnfn convert_uint8_sat_rte(half8);
-uint8 __ovld __cnfn convert_uint8_sat_rtp(half8);
-uint8 __ovld __cnfn convert_uint8_sat_rtn(half8);
-uint8 __ovld __cnfn convert_uint8_sat_rtz(half8);
-uint16 __ovld __cnfn convert_uint16(half16);
-uint16 __ovld __cnfn convert_uint16_rte(half16);
-uint16 __ovld __cnfn convert_uint16_rtp(half16);
-uint16 __ovld __cnfn convert_uint16_rtn(half16);
-uint16 __ovld __cnfn convert_uint16_rtz(half16);
-uint16 __ovld __cnfn convert_uint16_sat(half16);
-uint16 __ovld __cnfn convert_uint16_sat_rte(half16);
-uint16 __ovld __cnfn convert_uint16_sat_rtp(half16);
-uint16 __ovld __cnfn convert_uint16_sat_rtn(half16);
-uint16 __ovld __cnfn convert_uint16_sat_rtz(half16);
-ulong __ovld __cnfn convert_ulong(half);
-ulong __ovld __cnfn convert_ulong_rte(half);
-ulong __ovld __cnfn convert_ulong_rtp(half);
-ulong __ovld __cnfn convert_ulong_rtn(half);
-ulong __ovld __cnfn convert_ulong_rtz(half);
-ulong __ovld __cnfn convert_ulong_sat(half);
-ulong __ovld __cnfn convert_ulong_sat_rte(half);
-ulong __ovld __cnfn convert_ulong_sat_rtp(half);
-ulong __ovld __cnfn convert_ulong_sat_rtn(half);
-ulong __ovld __cnfn convert_ulong_sat_rtz(half);
-ulong2 __ovld __cnfn convert_ulong2(half2);
-ulong2 __ovld __cnfn convert_ulong2_rte(half2);
-ulong2 __ovld __cnfn convert_ulong2_rtp(half2);
-ulong2 __ovld __cnfn convert_ulong2_rtn(half2);
-ulong2 __ovld __cnfn convert_ulong2_rtz(half2);
-ulong2 __ovld __cnfn convert_ulong2_sat(half2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rte(half2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtp(half2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtn(half2);
-ulong2 __ovld __cnfn convert_ulong2_sat_rtz(half2);
-ulong3 __ovld __cnfn convert_ulong3(half3);
-ulong3 __ovld __cnfn convert_ulong3_rte(half3);
-ulong3 __ovld __cnfn convert_ulong3_rtp(half3);
-ulong3 __ovld __cnfn convert_ulong3_rtn(half3);
-ulong3 __ovld __cnfn convert_ulong3_rtz(half3);
-ulong3 __ovld __cnfn convert_ulong3_sat(half3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rte(half3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtp(half3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtn(half3);
-ulong3 __ovld __cnfn convert_ulong3_sat_rtz(half3);
-ulong4 __ovld __cnfn convert_ulong4(half4);
-ulong4 __ovld __cnfn convert_ulong4_rte(half4);
-ulong4 __ovld __cnfn convert_ulong4_rtp(half4);
-ulong4 __ovld __cnfn convert_ulong4_rtn(half4);
-ulong4 __ovld __cnfn convert_ulong4_rtz(half4);
-ulong4 __ovld __cnfn convert_ulong4_sat(half4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rte(half4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtp(half4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtn(half4);
-ulong4 __ovld __cnfn convert_ulong4_sat_rtz(half4);
-ulong8 __ovld __cnfn convert_ulong8(half8);
-ulong8 __ovld __cnfn convert_ulong8_rte(half8);
-ulong8 __ovld __cnfn convert_ulong8_rtp(half8);
-ulong8 __ovld __cnfn convert_ulong8_rtn(half8);
-ulong8 __ovld __cnfn convert_ulong8_rtz(half8);
-ulong8 __ovld __cnfn convert_ulong8_sat(half8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rte(half8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtp(half8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtn(half8);
-ulong8 __ovld __cnfn convert_ulong8_sat_rtz(half8);
-ulong16 __ovld __cnfn convert_ulong16(half16);
-ulong16 __ovld __cnfn convert_ulong16_rte(half16);
-ulong16 __ovld __cnfn convert_ulong16_rtp(half16);
-ulong16 __ovld __cnfn convert_ulong16_rtn(half16);
-ulong16 __ovld __cnfn convert_ulong16_rtz(half16);
-ulong16 __ovld __cnfn convert_ulong16_sat(half16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rte(half16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtp(half16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtn(half16);
-ulong16 __ovld __cnfn convert_ulong16_sat_rtz(half16);
-char __ovld __cnfn convert_char(half);
-char __ovld __cnfn convert_char_rte(half);
-char __ovld __cnfn convert_char_rtp(half);
-char __ovld __cnfn convert_char_rtn(half);
-char __ovld __cnfn convert_char_rtz(half);
-char __ovld __cnfn convert_char_sat(half);
-char __ovld __cnfn convert_char_sat_rte(half);
-char __ovld __cnfn convert_char_sat_rtp(half);
-char __ovld __cnfn convert_char_sat_rtn(half);
-char __ovld __cnfn convert_char_sat_rtz(half);
-char2 __ovld __cnfn convert_char2(half2);
-char2 __ovld __cnfn convert_char2_rte(half2);
-char2 __ovld __cnfn convert_char2_rtp(half2);
-char2 __ovld __cnfn convert_char2_rtn(half2);
-char2 __ovld __cnfn convert_char2_rtz(half2);
-char2 __ovld __cnfn convert_char2_sat(half2);
-char2 __ovld __cnfn convert_char2_sat_rte(half2);
-char2 __ovld __cnfn convert_char2_sat_rtp(half2);
-char2 __ovld __cnfn convert_char2_sat_rtn(half2);
-char2 __ovld __cnfn convert_char2_sat_rtz(half2);
-char3 __ovld __cnfn convert_char3(half3);
-char3 __ovld __cnfn convert_char3_rte(half3);
-char3 __ovld __cnfn convert_char3_rtp(half3);
-char3 __ovld __cnfn convert_char3_rtn(half3);
-char3 __ovld __cnfn convert_char3_rtz(half3);
-char3 __ovld __cnfn convert_char3_sat(half3);
-char3 __ovld __cnfn convert_char3_sat_rte(half3);
-char3 __ovld __cnfn convert_char3_sat_rtp(half3);
-char3 __ovld __cnfn convert_char3_sat_rtn(half3);
-char3 __ovld __cnfn convert_char3_sat_rtz(half3);
-char4 __ovld __cnfn convert_char4(half4);
-char4 __ovld __cnfn convert_char4_rte(half4);
-char4 __ovld __cnfn convert_char4_rtp(half4);
-char4 __ovld __cnfn convert_char4_rtn(half4);
-char4 __ovld __cnfn convert_char4_rtz(half4);
-char4 __ovld __cnfn convert_char4_sat(half4);
-char4 __ovld __cnfn convert_char4_sat_rte(half4);
-char4 __ovld __cnfn convert_char4_sat_rtp(half4);
-char4 __ovld __cnfn convert_char4_sat_rtn(half4);
-char4 __ovld __cnfn convert_char4_sat_rtz(half4);
-char8 __ovld __cnfn convert_char8(half8);
-char8 __ovld __cnfn convert_char8_rte(half8);
-char8 __ovld __cnfn convert_char8_rtp(half8);
-char8 __ovld __cnfn convert_char8_rtn(half8);
-char8 __ovld __cnfn convert_char8_rtz(half8);
-char8 __ovld __cnfn convert_char8_sat(half8);
-char8 __ovld __cnfn convert_char8_sat_rte(half8);
-char8 __ovld __cnfn convert_char8_sat_rtp(half8);
-char8 __ovld __cnfn convert_char8_sat_rtn(half8);
-char8 __ovld __cnfn convert_char8_sat_rtz(half8);
-char16 __ovld __cnfn convert_char16(half16);
-char16 __ovld __cnfn convert_char16_rte(half16);
-char16 __ovld __cnfn convert_char16_rtp(half16);
-char16 __ovld __cnfn convert_char16_rtn(half16);
-char16 __ovld __cnfn convert_char16_rtz(half16);
-char16 __ovld __cnfn convert_char16_sat(half16);
-char16 __ovld __cnfn convert_char16_sat_rte(half16);
-char16 __ovld __cnfn convert_char16_sat_rtp(half16);
-char16 __ovld __cnfn convert_char16_sat_rtn(half16);
-char16 __ovld __cnfn convert_char16_sat_rtz(half16);
-short __ovld __cnfn convert_short(half);
-short __ovld __cnfn convert_short_rte(half);
-short __ovld __cnfn convert_short_rtp(half);
-short __ovld __cnfn convert_short_rtn(half);
-short __ovld __cnfn convert_short_rtz(half);
-short __ovld __cnfn convert_short_sat(half);
-short __ovld __cnfn convert_short_sat_rte(half);
-short __ovld __cnfn convert_short_sat_rtp(half);
-short __ovld __cnfn convert_short_sat_rtn(half);
-short __ovld __cnfn convert_short_sat_rtz(half);
-short2 __ovld __cnfn convert_short2(half2);
-short2 __ovld __cnfn convert_short2_rte(half2);
-short2 __ovld __cnfn convert_short2_rtp(half2);
-short2 __ovld __cnfn convert_short2_rtn(half2);
-short2 __ovld __cnfn convert_short2_rtz(half2);
-short2 __ovld __cnfn convert_short2_sat(half2);
-short2 __ovld __cnfn convert_short2_sat_rte(half2);
-short2 __ovld __cnfn convert_short2_sat_rtp(half2);
-short2 __ovld __cnfn convert_short2_sat_rtn(half2);
-short2 __ovld __cnfn convert_short2_sat_rtz(half2);
-short3 __ovld __cnfn convert_short3(half3);
-short3 __ovld __cnfn convert_short3_rte(half3);
-short3 __ovld __cnfn convert_short3_rtp(half3);
-short3 __ovld __cnfn convert_short3_rtn(half3);
-short3 __ovld __cnfn convert_short3_rtz(half3);
-short3 __ovld __cnfn convert_short3_sat(half3);
-short3 __ovld __cnfn convert_short3_sat_rte(half3);
-short3 __ovld __cnfn convert_short3_sat_rtp(half3);
-short3 __ovld __cnfn convert_short3_sat_rtn(half3);
-short3 __ovld __cnfn convert_short3_sat_rtz(half3);
-short4 __ovld __cnfn convert_short4(half4);
-short4 __ovld __cnfn convert_short4_rte(half4);
-short4 __ovld __cnfn convert_short4_rtp(half4);
-short4 __ovld __cnfn convert_short4_rtn(half4);
-short4 __ovld __cnfn convert_short4_rtz(half4);
-short4 __ovld __cnfn convert_short4_sat(half4);
-short4 __ovld __cnfn convert_short4_sat_rte(half4);
-short4 __ovld __cnfn convert_short4_sat_rtp(half4);
-short4 __ovld __cnfn convert_short4_sat_rtn(half4);
-short4 __ovld __cnfn convert_short4_sat_rtz(half4);
-short8 __ovld __cnfn convert_short8(half8);
-short8 __ovld __cnfn convert_short8_rte(half8);
-short8 __ovld __cnfn convert_short8_rtp(half8);
-short8 __ovld __cnfn convert_short8_rtn(half8);
-short8 __ovld __cnfn convert_short8_rtz(half8);
-short8 __ovld __cnfn convert_short8_sat(half8);
-short8 __ovld __cnfn convert_short8_sat_rte(half8);
-short8 __ovld __cnfn convert_short8_sat_rtp(half8);
-short8 __ovld __cnfn convert_short8_sat_rtn(half8);
-short8 __ovld __cnfn convert_short8_sat_rtz(half8);
-short16 __ovld __cnfn convert_short16(half16);
-short16 __ovld __cnfn convert_short16_rte(half16);
-short16 __ovld __cnfn convert_short16_rtp(half16);
-short16 __ovld __cnfn convert_short16_rtn(half16);
-short16 __ovld __cnfn convert_short16_rtz(half16);
-short16 __ovld __cnfn convert_short16_sat(half16);
-short16 __ovld __cnfn convert_short16_sat_rte(half16);
-short16 __ovld __cnfn convert_short16_sat_rtp(half16);
-short16 __ovld __cnfn convert_short16_sat_rtn(half16);
-short16 __ovld __cnfn convert_short16_sat_rtz(half16);
-int __ovld __cnfn convert_int(half);
-int __ovld __cnfn convert_int_rte(half);
-int __ovld __cnfn convert_int_rtp(half);
-int __ovld __cnfn convert_int_rtn(half);
-int __ovld __cnfn convert_int_rtz(half);
-int __ovld __cnfn convert_int_sat(half);
-int __ovld __cnfn convert_int_sat_rte(half);
-int __ovld __cnfn convert_int_sat_rtp(half);
-int __ovld __cnfn convert_int_sat_rtn(half);
-int __ovld __cnfn convert_int_sat_rtz(half);
-int2 __ovld __cnfn convert_int2(half2);
-int2 __ovld __cnfn convert_int2_rte(half2);
-int2 __ovld __cnfn convert_int2_rtp(half2);
-int2 __ovld __cnfn convert_int2_rtn(half2);
-int2 __ovld __cnfn convert_int2_rtz(half2);
-int2 __ovld __cnfn convert_int2_sat(half2);
-int2 __ovld __cnfn convert_int2_sat_rte(half2);
-int2 __ovld __cnfn convert_int2_sat_rtp(half2);
-int2 __ovld __cnfn convert_int2_sat_rtn(half2);
-int2 __ovld __cnfn convert_int2_sat_rtz(half2);
-int3 __ovld __cnfn convert_int3(half3);
-int3 __ovld __cnfn convert_int3_rte(half3);
-int3 __ovld __cnfn convert_int3_rtp(half3);
-int3 __ovld __cnfn convert_int3_rtn(half3);
-int3 __ovld __cnfn convert_int3_rtz(half3);
-int3 __ovld __cnfn convert_int3_sat(half3);
-int3 __ovld __cnfn convert_int3_sat_rte(half3);
-int3 __ovld __cnfn convert_int3_sat_rtp(half3);
-int3 __ovld __cnfn convert_int3_sat_rtn(half3);
-int3 __ovld __cnfn convert_int3_sat_rtz(half3);
-int4 __ovld __cnfn convert_int4(half4);
-int4 __ovld __cnfn convert_int4_rte(half4);
-int4 __ovld __cnfn convert_int4_rtp(half4);
-int4 __ovld __cnfn convert_int4_rtn(half4);
-int4 __ovld __cnfn convert_int4_rtz(half4);
-int4 __ovld __cnfn convert_int4_sat(half4);
-int4 __ovld __cnfn convert_int4_sat_rte(half4);
-int4 __ovld __cnfn convert_int4_sat_rtp(half4);
-int4 __ovld __cnfn convert_int4_sat_rtn(half4);
-int4 __ovld __cnfn convert_int4_sat_rtz(half4);
-int8 __ovld __cnfn convert_int8(half8);
-int8 __ovld __cnfn convert_int8_rte(half8);
-int8 __ovld __cnfn convert_int8_rtp(half8);
-int8 __ovld __cnfn convert_int8_rtn(half8);
-int8 __ovld __cnfn convert_int8_rtz(half8);
-int8 __ovld __cnfn convert_int8_sat(half8);
-int8 __ovld __cnfn convert_int8_sat_rte(half8);
-int8 __ovld __cnfn convert_int8_sat_rtp(half8);
-int8 __ovld __cnfn convert_int8_sat_rtn(half8);
-int8 __ovld __cnfn convert_int8_sat_rtz(half8);
-int16 __ovld __cnfn convert_int16(half16);
-int16 __ovld __cnfn convert_int16_rte(half16);
-int16 __ovld __cnfn convert_int16_rtp(half16);
-int16 __ovld __cnfn convert_int16_rtn(half16);
-int16 __ovld __cnfn convert_int16_rtz(half16);
-int16 __ovld __cnfn convert_int16_sat(half16);
-int16 __ovld __cnfn convert_int16_sat_rte(half16);
-int16 __ovld __cnfn convert_int16_sat_rtp(half16);
-int16 __ovld __cnfn convert_int16_sat_rtn(half16);
-int16 __ovld __cnfn convert_int16_sat_rtz(half16);
-long __ovld __cnfn convert_long(half);
-long __ovld __cnfn convert_long_rte(half);
-long __ovld __cnfn convert_long_rtp(half);
-long __ovld __cnfn convert_long_rtn(half);
-long __ovld __cnfn convert_long_rtz(half);
-long __ovld __cnfn convert_long_sat(half);
-long __ovld __cnfn convert_long_sat_rte(half);
-long __ovld __cnfn convert_long_sat_rtp(half);
-long __ovld __cnfn convert_long_sat_rtn(half);
-long __ovld __cnfn convert_long_sat_rtz(half);
-long2 __ovld __cnfn convert_long2(half2);
-long2 __ovld __cnfn convert_long2_rte(half2);
-long2 __ovld __cnfn convert_long2_rtp(half2);
-long2 __ovld __cnfn convert_long2_rtn(half2);
-long2 __ovld __cnfn convert_long2_rtz(half2);
-long2 __ovld __cnfn convert_long2_sat(half2);
-long2 __ovld __cnfn convert_long2_sat_rte(half2);
-long2 __ovld __cnfn convert_long2_sat_rtp(half2);
-long2 __ovld __cnfn convert_long2_sat_rtn(half2);
-long2 __ovld __cnfn convert_long2_sat_rtz(half2);
-long3 __ovld __cnfn convert_long3(half3);
-long3 __ovld __cnfn convert_long3_rte(half3);
-long3 __ovld __cnfn convert_long3_rtp(half3);
-long3 __ovld __cnfn convert_long3_rtn(half3);
-long3 __ovld __cnfn convert_long3_rtz(half3);
-long3 __ovld __cnfn convert_long3_sat(half3);
-long3 __ovld __cnfn convert_long3_sat_rte(half3);
-long3 __ovld __cnfn convert_long3_sat_rtp(half3);
-long3 __ovld __cnfn convert_long3_sat_rtn(half3);
-long3 __ovld __cnfn convert_long3_sat_rtz(half3);
-long4 __ovld __cnfn convert_long4(half4);
-long4 __ovld __cnfn convert_long4_rte(half4);
-long4 __ovld __cnfn convert_long4_rtp(half4);
-long4 __ovld __cnfn convert_long4_rtn(half4);
-long4 __ovld __cnfn convert_long4_rtz(half4);
-long4 __ovld __cnfn convert_long4_sat(half4);
-long4 __ovld __cnfn convert_long4_sat_rte(half4);
-long4 __ovld __cnfn convert_long4_sat_rtp(half4);
-long4 __ovld __cnfn convert_long4_sat_rtn(half4);
-long4 __ovld __cnfn convert_long4_sat_rtz(half4);
-long8 __ovld __cnfn convert_long8(half8);
-long8 __ovld __cnfn convert_long8_rte(half8);
-long8 __ovld __cnfn convert_long8_rtp(half8);
-long8 __ovld __cnfn convert_long8_rtn(half8);
-long8 __ovld __cnfn convert_long8_rtz(half8);
-long8 __ovld __cnfn convert_long8_sat(half8);
-long8 __ovld __cnfn convert_long8_sat_rte(half8);
-long8 __ovld __cnfn convert_long8_sat_rtp(half8);
-long8 __ovld __cnfn convert_long8_sat_rtn(half8);
-long8 __ovld __cnfn convert_long8_sat_rtz(half8);
-long16 __ovld __cnfn convert_long16(half16);
-long16 __ovld __cnfn convert_long16_rte(half16);
-long16 __ovld __cnfn convert_long16_rtp(half16);
-long16 __ovld __cnfn convert_long16_rtn(half16);
-long16 __ovld __cnfn convert_long16_rtz(half16);
-long16 __ovld __cnfn convert_long16_sat(half16);
-long16 __ovld __cnfn convert_long16_sat_rte(half16);
-long16 __ovld __cnfn convert_long16_sat_rtp(half16);
-long16 __ovld __cnfn convert_long16_sat_rtn(half16);
-long16 __ovld __cnfn convert_long16_sat_rtz(half16);
-float __ovld __cnfn convert_float(half);
-float __ovld __cnfn convert_float_rte(half);
-float __ovld __cnfn convert_float_rtp(half);
-float __ovld __cnfn convert_float_rtn(half);
-float __ovld __cnfn convert_float_rtz(half);
-float2 __ovld __cnfn convert_float2(half2);
-float2 __ovld __cnfn convert_float2_rte(half2);
-float2 __ovld __cnfn convert_float2_rtp(half2);
-float2 __ovld __cnfn convert_float2_rtn(half2);
-float2 __ovld __cnfn convert_float2_rtz(half2);
-float3 __ovld __cnfn convert_float3(half3);
-float3 __ovld __cnfn convert_float3_rte(half3);
-float3 __ovld __cnfn convert_float3_rtp(half3);
-float3 __ovld __cnfn convert_float3_rtn(half3);
-float3 __ovld __cnfn convert_float3_rtz(half3);
-float4 __ovld __cnfn convert_float4(half4);
-float4 __ovld __cnfn convert_float4_rte(half4);
-float4 __ovld __cnfn convert_float4_rtp(half4);
-float4 __ovld __cnfn convert_float4_rtn(half4);
-float4 __ovld __cnfn convert_float4_rtz(half4);
-float8 __ovld __cnfn convert_float8(half8);
-float8 __ovld __cnfn convert_float8_rte(half8);
-float8 __ovld __cnfn convert_float8_rtp(half8);
-float8 __ovld __cnfn convert_float8_rtn(half8);
-float8 __ovld __cnfn convert_float8_rtz(half8);
-float16 __ovld __cnfn convert_float16(half16);
-float16 __ovld __cnfn convert_float16_rte(half16);
-float16 __ovld __cnfn convert_float16_rtp(half16);
-float16 __ovld __cnfn convert_float16_rtn(half16);
-float16 __ovld __cnfn convert_float16_rtz(half16);
-
-// Convert non-double types to half types.
-half __ovld __cnfn convert_half(uchar);
-half __ovld __cnfn convert_half(ushort);
-half __ovld __cnfn convert_half(uint);
-half __ovld __cnfn convert_half(ulong);
-half __ovld __cnfn convert_half(char);
-half __ovld __cnfn convert_half(short);
-half __ovld __cnfn convert_half(int);
-half __ovld __cnfn convert_half(long);
-half __ovld __cnfn convert_half(float);
-half __ovld __cnfn convert_half(half);
-half __ovld __cnfn convert_half_rte(uchar);
-half __ovld __cnfn convert_half_rte(ushort);
-half __ovld __cnfn convert_half_rte(uint);
-half __ovld __cnfn convert_half_rte(ulong);
-half __ovld __cnfn convert_half_rte(char);
-half __ovld __cnfn convert_half_rte(short);
-half __ovld __cnfn convert_half_rte(int);
-half __ovld __cnfn convert_half_rte(long);
-half __ovld __cnfn convert_half_rte(float);
-half __ovld __cnfn convert_half_rte(half);
-half __ovld __cnfn convert_half_rtp(uchar);
-half __ovld __cnfn convert_half_rtp(ushort);
-half __ovld __cnfn convert_half_rtp(uint);
-half __ovld __cnfn convert_half_rtp(ulong);
-half __ovld __cnfn convert_half_rtp(char);
-half __ovld __cnfn convert_half_rtp(short);
-half __ovld __cnfn convert_half_rtp(int);
-half __ovld __cnfn convert_half_rtp(long);
-half __ovld __cnfn convert_half_rtp(float);
-half __ovld __cnfn convert_half_rtp(half);
-half __ovld __cnfn convert_half_rtn(uchar);
-half __ovld __cnfn convert_half_rtn(ushort);
-half __ovld __cnfn convert_half_rtn(uint);
-half __ovld __cnfn convert_half_rtn(ulong);
-half __ovld __cnfn convert_half_rtn(char);
-half __ovld __cnfn convert_half_rtn(short);
-half __ovld __cnfn convert_half_rtn(int);
-half __ovld __cnfn convert_half_rtn(long);
-half __ovld __cnfn convert_half_rtn(float);
-half __ovld __cnfn convert_half_rtn(half);
-half __ovld __cnfn convert_half_rtz(uchar);
-half __ovld __cnfn convert_half_rtz(ushort);
-half __ovld __cnfn convert_half_rtz(uint);
-half __ovld __cnfn convert_half_rtz(ulong);
-half __ovld __cnfn convert_half_rtz(char);
-half __ovld __cnfn convert_half_rtz(short);
-half __ovld __cnfn convert_half_rtz(int);
-half __ovld __cnfn convert_half_rtz(long);
-half __ovld __cnfn convert_half_rtz(float);
-half __ovld __cnfn convert_half_rtz(half);
-half2 __ovld __cnfn convert_half2(char2);
-half2 __ovld __cnfn convert_half2(uchar2);
-half2 __ovld __cnfn convert_half2(short2);
-half2 __ovld __cnfn convert_half2(ushort2);
-half2 __ovld __cnfn convert_half2(int2);
-half2 __ovld __cnfn convert_half2(uint2);
-half2 __ovld __cnfn convert_half2(long2);
-half2 __ovld __cnfn convert_half2(ulong2);
-half2 __ovld __cnfn convert_half2(float2);
-half2 __ovld __cnfn convert_half2(half2);
-half2 __ovld __cnfn convert_half2_rte(char2);
-half2 __ovld __cnfn convert_half2_rte(uchar2);
-half2 __ovld __cnfn convert_half2_rte(short2);
-half2 __ovld __cnfn convert_half2_rte(ushort2);
-half2 __ovld __cnfn convert_half2_rte(int2);
-half2 __ovld __cnfn convert_half2_rte(uint2);
-half2 __ovld __cnfn convert_half2_rte(long2);
-half2 __ovld __cnfn convert_half2_rte(ulong2);
-half2 __ovld __cnfn convert_half2_rte(float2);
-half2 __ovld __cnfn convert_half2_rte(half2);
-half2 __ovld __cnfn convert_half2_rtp(char2);
-half2 __ovld __cnfn convert_half2_rtp(uchar2);
-half2 __ovld __cnfn convert_half2_rtp(short2);
-half2 __ovld __cnfn convert_half2_rtp(ushort2);
-half2 __ovld __cnfn convert_half2_rtp(int2);
-half2 __ovld __cnfn convert_half2_rtp(uint2);
-half2 __ovld __cnfn convert_half2_rtp(long2);
-half2 __ovld __cnfn convert_half2_rtp(ulong2);
-half2 __ovld __cnfn convert_half2_rtp(float2);
-half2 __ovld __cnfn convert_half2_rtp(half2);
-half2 __ovld __cnfn convert_half2_rtn(char2);
-half2 __ovld __cnfn convert_half2_rtn(uchar2);
-half2 __ovld __cnfn convert_half2_rtn(short2);
-half2 __ovld __cnfn convert_half2_rtn(ushort2);
-half2 __ovld __cnfn convert_half2_rtn(int2);
-half2 __ovld __cnfn convert_half2_rtn(uint2);
-half2 __ovld __cnfn convert_half2_rtn(long2);
-half2 __ovld __cnfn convert_half2_rtn(ulong2);
-half2 __ovld __cnfn convert_half2_rtn(float2);
-half2 __ovld __cnfn convert_half2_rtn(half2);
-half2 __ovld __cnfn convert_half2_rtz(char2);
-half2 __ovld __cnfn convert_half2_rtz(uchar2);
-half2 __ovld __cnfn convert_half2_rtz(short2);
-half2 __ovld __cnfn convert_half2_rtz(ushort2);
-half2 __ovld __cnfn convert_half2_rtz(int2);
-half2 __ovld __cnfn convert_half2_rtz(uint2);
-half2 __ovld __cnfn convert_half2_rtz(long2);
-half2 __ovld __cnfn convert_half2_rtz(ulong2);
-half2 __ovld __cnfn convert_half2_rtz(float2);
-half2 __ovld __cnfn convert_half2_rtz(half2);
-half3 __ovld __cnfn convert_half3(char3);
-half3 __ovld __cnfn convert_half3(uchar3);
-half3 __ovld __cnfn convert_half3(short3);
-half3 __ovld __cnfn convert_half3(ushort3);
-half3 __ovld __cnfn convert_half3(int3);
-half3 __ovld __cnfn convert_half3(uint3);
-half3 __ovld __cnfn convert_half3(long3);
-half3 __ovld __cnfn convert_half3(ulong3);
-half3 __ovld __cnfn convert_half3(float3);
-half3 __ovld __cnfn convert_half3(half3);
-half3 __ovld __cnfn convert_half3_rte(char3);
-half3 __ovld __cnfn convert_half3_rte(uchar3);
-half3 __ovld __cnfn convert_half3_rte(short3);
-half3 __ovld __cnfn convert_half3_rte(ushort3);
-half3 __ovld __cnfn convert_half3_rte(int3);
-half3 __ovld __cnfn convert_half3_rte(uint3);
-half3 __ovld __cnfn convert_half3_rte(long3);
-half3 __ovld __cnfn convert_half3_rte(ulong3);
-half3 __ovld __cnfn convert_half3_rte(float3);
-half3 __ovld __cnfn convert_half3_rte(half3);
-half3 __ovld __cnfn convert_half3_rtp(char3);
-half3 __ovld __cnfn convert_half3_rtp(uchar3);
-half3 __ovld __cnfn convert_half3_rtp(short3);
-half3 __ovld __cnfn convert_half3_rtp(ushort3);
-half3 __ovld __cnfn convert_half3_rtp(int3);
-half3 __ovld __cnfn convert_half3_rtp(uint3);
-half3 __ovld __cnfn convert_half3_rtp(long3);
-half3 __ovld __cnfn convert_half3_rtp(ulong3);
-half3 __ovld __cnfn convert_half3_rtp(float3);
-half3 __ovld __cnfn convert_half3_rtp(half3);
-half3 __ovld __cnfn convert_half3_rtn(char3);
-half3 __ovld __cnfn convert_half3_rtn(uchar3);
-half3 __ovld __cnfn convert_half3_rtn(short3);
-half3 __ovld __cnfn convert_half3_rtn(ushort3);
-half3 __ovld __cnfn convert_half3_rtn(int3);
-half3 __ovld __cnfn convert_half3_rtn(uint3);
-half3 __ovld __cnfn convert_half3_rtn(long3);
-half3 __ovld __cnfn convert_half3_rtn(ulong3);
-half3 __ovld __cnfn convert_half3_rtn(float3);
-half3 __ovld __cnfn convert_half3_rtn(half3);
-half3 __ovld __cnfn convert_half3_rtz(char3);
-half3 __ovld __cnfn convert_half3_rtz(uchar3);
-half3 __ovld __cnfn convert_half3_rtz(short3);
-half3 __ovld __cnfn convert_half3_rtz(ushort3);
-half3 __ovld __cnfn convert_half3_rtz(int3);
-half3 __ovld __cnfn convert_half3_rtz(uint3);
-half3 __ovld __cnfn convert_half3_rtz(long3);
-half3 __ovld __cnfn convert_half3_rtz(ulong3);
-half3 __ovld __cnfn convert_half3_rtz(float3);
-half3 __ovld __cnfn convert_half3_rtz(half3);
-half4 __ovld __cnfn convert_half4(char4);
-half4 __ovld __cnfn convert_half4(uchar4);
-half4 __ovld __cnfn convert_half4(short4);
-half4 __ovld __cnfn convert_half4(ushort4);
-half4 __ovld __cnfn convert_half4(int4);
-half4 __ovld __cnfn convert_half4(uint4);
-half4 __ovld __cnfn convert_half4(long4);
-half4 __ovld __cnfn convert_half4(ulong4);
-half4 __ovld __cnfn convert_half4(float4);
-half4 __ovld __cnfn convert_half4(half4);
-half4 __ovld __cnfn convert_half4_rte(char4);
-half4 __ovld __cnfn convert_half4_rte(uchar4);
-half4 __ovld __cnfn convert_half4_rte(short4);
-half4 __ovld __cnfn convert_half4_rte(ushort4);
-half4 __ovld __cnfn convert_half4_rte(int4);
-half4 __ovld __cnfn convert_half4_rte(uint4);
-half4 __ovld __cnfn convert_half4_rte(long4);
-half4 __ovld __cnfn convert_half4_rte(ulong4);
-half4 __ovld __cnfn convert_half4_rte(float4);
-half4 __ovld __cnfn convert_half4_rte(half4);
-half4 __ovld __cnfn convert_half4_rtp(char4);
-half4 __ovld __cnfn convert_half4_rtp(uchar4);
-half4 __ovld __cnfn convert_half4_rtp(short4);
-half4 __ovld __cnfn convert_half4_rtp(ushort4);
-half4 __ovld __cnfn convert_half4_rtp(int4);
-half4 __ovld __cnfn convert_half4_rtp(uint4);
-half4 __ovld __cnfn convert_half4_rtp(long4);
-half4 __ovld __cnfn convert_half4_rtp(ulong4);
-half4 __ovld __cnfn convert_half4_rtp(float4);
-half4 __ovld __cnfn convert_half4_rtp(half4);
-half4 __ovld __cnfn convert_half4_rtn(char4);
-half4 __ovld __cnfn convert_half4_rtn(uchar4);
-half4 __ovld __cnfn convert_half4_rtn(short4);
-half4 __ovld __cnfn convert_half4_rtn(ushort4);
-half4 __ovld __cnfn convert_half4_rtn(int4);
-half4 __ovld __cnfn convert_half4_rtn(uint4);
-half4 __ovld __cnfn convert_half4_rtn(long4);
-half4 __ovld __cnfn convert_half4_rtn(ulong4);
-half4 __ovld __cnfn convert_half4_rtn(float4);
-half4 __ovld __cnfn convert_half4_rtn(half4);
-half4 __ovld __cnfn convert_half4_rtz(char4);
-half4 __ovld __cnfn convert_half4_rtz(uchar4);
-half4 __ovld __cnfn convert_half4_rtz(short4);
-half4 __ovld __cnfn convert_half4_rtz(ushort4);
-half4 __ovld __cnfn convert_half4_rtz(int4);
-half4 __ovld __cnfn convert_half4_rtz(uint4);
-half4 __ovld __cnfn convert_half4_rtz(long4);
-half4 __ovld __cnfn convert_half4_rtz(ulong4);
-half4 __ovld __cnfn convert_half4_rtz(float4);
-half4 __ovld __cnfn convert_half4_rtz(half4);
-half8 __ovld __cnfn convert_half8(char8);
-half8 __ovld __cnfn convert_half8(uchar8);
-half8 __ovld __cnfn convert_half8(short8);
-half8 __ovld __cnfn convert_half8(ushort8);
-half8 __ovld __cnfn convert_half8(int8);
-half8 __ovld __cnfn convert_half8(uint8);
-half8 __ovld __cnfn convert_half8(long8);
-half8 __ovld __cnfn convert_half8(ulong8);
-half8 __ovld __cnfn convert_half8(float8);
-half8 __ovld __cnfn convert_half8(half8);
-half8 __ovld __cnfn convert_half8_rte(char8);
-half8 __ovld __cnfn convert_half8_rte(uchar8);
-half8 __ovld __cnfn convert_half8_rte(short8);
-half8 __ovld __cnfn convert_half8_rte(ushort8);
-half8 __ovld __cnfn convert_half8_rte(int8);
-half8 __ovld __cnfn convert_half8_rte(uint8);
-half8 __ovld __cnfn convert_half8_rte(long8);
-half8 __ovld __cnfn convert_half8_rte(ulong8);
-half8 __ovld __cnfn convert_half8_rte(float8);
-half8 __ovld __cnfn convert_half8_rte(half8);
-half8 __ovld __cnfn convert_half8_rtp(char8);
-half8 __ovld __cnfn convert_half8_rtp(uchar8);
-half8 __ovld __cnfn convert_half8_rtp(short8);
-half8 __ovld __cnfn convert_half8_rtp(ushort8);
-half8 __ovld __cnfn convert_half8_rtp(int8);
-half8 __ovld __cnfn convert_half8_rtp(uint8);
-half8 __ovld __cnfn convert_half8_rtp(long8);
-half8 __ovld __cnfn convert_half8_rtp(ulong8);
-half8 __ovld __cnfn convert_half8_rtp(float8);
-half8 __ovld __cnfn convert_half8_rtp(half8);
-half8 __ovld __cnfn convert_half8_rtn(char8);
-half8 __ovld __cnfn convert_half8_rtn(uchar8);
-half8 __ovld __cnfn convert_half8_rtn(short8);
-half8 __ovld __cnfn convert_half8_rtn(ushort8);
-half8 __ovld __cnfn convert_half8_rtn(int8);
-half8 __ovld __cnfn convert_half8_rtn(uint8);
-half8 __ovld __cnfn convert_half8_rtn(long8);
-half8 __ovld __cnfn convert_half8_rtn(ulong8);
-half8 __ovld __cnfn convert_half8_rtn(float8);
-half8 __ovld __cnfn convert_half8_rtn(half8);
-half8 __ovld __cnfn convert_half8_rtz(char8);
-half8 __ovld __cnfn convert_half8_rtz(uchar8);
-half8 __ovld __cnfn convert_half8_rtz(short8);
-half8 __ovld __cnfn convert_half8_rtz(ushort8);
-half8 __ovld __cnfn convert_half8_rtz(int8);
-half8 __ovld __cnfn convert_half8_rtz(uint8);
-half8 __ovld __cnfn convert_half8_rtz(long8);
-half8 __ovld __cnfn convert_half8_rtz(ulong8);
-half8 __ovld __cnfn convert_half8_rtz(float8);
-half8 __ovld __cnfn convert_half8_rtz(half8);
-half16 __ovld __cnfn convert_half16(char16);
-half16 __ovld __cnfn convert_half16(uchar16);
-half16 __ovld __cnfn convert_half16(short16);
-half16 __ovld __cnfn convert_half16(ushort16);
-half16 __ovld __cnfn convert_half16(int16);
-half16 __ovld __cnfn convert_half16(uint16);
-half16 __ovld __cnfn convert_half16(long16);
-half16 __ovld __cnfn convert_half16(ulong16);
-half16 __ovld __cnfn convert_half16(float16);
-half16 __ovld __cnfn convert_half16(half16);
-half16 __ovld __cnfn convert_half16_rte(char16);
-half16 __ovld __cnfn convert_half16_rte(uchar16);
-half16 __ovld __cnfn convert_half16_rte(short16);
-half16 __ovld __cnfn convert_half16_rte(ushort16);
-half16 __ovld __cnfn convert_half16_rte(int16);
-half16 __ovld __cnfn convert_half16_rte(uint16);
-half16 __ovld __cnfn convert_half16_rte(long16);
-half16 __ovld __cnfn convert_half16_rte(ulong16);
-half16 __ovld __cnfn convert_half16_rte(float16);
-half16 __ovld __cnfn convert_half16_rte(half16);
-half16 __ovld __cnfn convert_half16_rtp(char16);
-half16 __ovld __cnfn convert_half16_rtp(uchar16);
-half16 __ovld __cnfn convert_half16_rtp(short16);
-half16 __ovld __cnfn convert_half16_rtp(ushort16);
-half16 __ovld __cnfn convert_half16_rtp(int16);
-half16 __ovld __cnfn convert_half16_rtp(uint16);
-half16 __ovld __cnfn convert_half16_rtp(long16);
-half16 __ovld __cnfn convert_half16_rtp(ulong16);
-half16 __ovld __cnfn convert_half16_rtp(float16);
-half16 __ovld __cnfn convert_half16_rtp(half16);
-half16 __ovld __cnfn convert_half16_rtn(char16);
-half16 __ovld __cnfn convert_half16_rtn(uchar16);
-half16 __ovld __cnfn convert_half16_rtn(short16);
-half16 __ovld __cnfn convert_half16_rtn(ushort16);
-half16 __ovld __cnfn convert_half16_rtn(int16);
-half16 __ovld __cnfn convert_half16_rtn(uint16);
-half16 __ovld __cnfn convert_half16_rtn(long16);
-half16 __ovld __cnfn convert_half16_rtn(ulong16);
-half16 __ovld __cnfn convert_half16_rtn(float16);
-half16 __ovld __cnfn convert_half16_rtn(half16);
-half16 __ovld __cnfn convert_half16_rtz(char16);
-half16 __ovld __cnfn convert_half16_rtz(uchar16);
-half16 __ovld __cnfn convert_half16_rtz(short16);
-half16 __ovld __cnfn convert_half16_rtz(ushort16);
-half16 __ovld __cnfn convert_half16_rtz(int16);
-half16 __ovld __cnfn convert_half16_rtz(uint16);
-half16 __ovld __cnfn convert_half16_rtz(long16);
-half16 __ovld __cnfn convert_half16_rtz(ulong16);
-half16 __ovld __cnfn convert_half16_rtz(float16);
-half16 __ovld __cnfn convert_half16_rtz(half16);
-
-// Convert half types to double types.
-#ifdef cl_khr_fp64
-double __ovld __cnfn convert_double(half);
-double __ovld __cnfn convert_double_rte(half);
-double __ovld __cnfn convert_double_rtp(half);
-double __ovld __cnfn convert_double_rtn(half);
-double __ovld __cnfn convert_double_rtz(half);
-double2 __ovld __cnfn convert_double2(half2);
-double2 __ovld __cnfn convert_double2_rte(half2);
-double2 __ovld __cnfn convert_double2_rtp(half2);
-double2 __ovld __cnfn convert_double2_rtn(half2);
-double2 __ovld __cnfn convert_double2_rtz(half2);
-double3 __ovld __cnfn convert_double3(half3);
-double3 __ovld __cnfn convert_double3_rte(half3);
-double3 __ovld __cnfn convert_double3_rtp(half3);
-double3 __ovld __cnfn convert_double3_rtn(half3);
-double3 __ovld __cnfn convert_double3_rtz(half3);
-double4 __ovld __cnfn convert_double4(half4);
-double4 __ovld __cnfn convert_double4_rte(half4);
-double4 __ovld __cnfn convert_double4_rtp(half4);
-double4 __ovld __cnfn convert_double4_rtn(half4);
-double4 __ovld __cnfn convert_double4_rtz(half4);
-double8 __ovld __cnfn convert_double8(half8);
-double8 __ovld __cnfn convert_double8_rte(half8);
-double8 __ovld __cnfn convert_double8_rtp(half8);
-double8 __ovld __cnfn convert_double8_rtn(half8);
-double8 __ovld __cnfn convert_double8_rtz(half8);
-double16 __ovld __cnfn convert_double16(half16);
-double16 __ovld __cnfn convert_double16_rte(half16);
-double16 __ovld __cnfn convert_double16_rtp(half16);
-double16 __ovld __cnfn convert_double16_rtn(half16);
-double16 __ovld __cnfn convert_double16_rtz(half16);
-
-// Convert double types to half types.
-half __ovld __cnfn convert_half(double);
-half __ovld __cnfn convert_half_rte(double);
-half __ovld __cnfn convert_half_rtp(double);
-half __ovld __cnfn convert_half_rtn(double);
-half __ovld __cnfn convert_half_rtz(double);
-half2 __ovld __cnfn convert_half2(double2);
-half2 __ovld __cnfn convert_half2_rte(double2);
-half2 __ovld __cnfn convert_half2_rtp(double2);
-half2 __ovld __cnfn convert_half2_rtn(double2);
-half2 __ovld __cnfn convert_half2_rtz(double2);
-half3 __ovld __cnfn convert_half3(double3);
-half3 __ovld __cnfn convert_half3_rte(double3);
-half3 __ovld __cnfn convert_half3_rtp(double3);
-half3 __ovld __cnfn convert_half3_rtn(double3);
-half3 __ovld __cnfn convert_half3_rtz(double3);
-half4 __ovld __cnfn convert_half4(double4);
-half4 __ovld __cnfn convert_half4_rte(double4);
-half4 __ovld __cnfn convert_half4_rtp(double4);
-half4 __ovld __cnfn convert_half4_rtn(double4);
-half4 __ovld __cnfn convert_half4_rtz(double4);
-half8 __ovld __cnfn convert_half8(double8);
-half8 __ovld __cnfn convert_half8_rte(double8);
-half8 __ovld __cnfn convert_half8_rtp(double8);
-half8 __ovld __cnfn convert_half8_rtn(double8);
-half8 __ovld __cnfn convert_half8_rtz(double8);
-half16 __ovld __cnfn convert_half16(double16);
-half16 __ovld __cnfn convert_half16_rte(double16);
-half16 __ovld __cnfn convert_half16_rtp(double16);
-half16 __ovld __cnfn convert_half16_rtn(double16);
-half16 __ovld __cnfn convert_half16_rtz(double16);
-#endif //cl_khr_fp64
-
-#endif // cl_khr_fp16
-
-// OpenCL v1.1 s6.11.1, v1.2 s6.12.1, v2.0 s6.13.1 - Work-item Functions
-
-/**
- * Returns the number of dimensions in use. This is the
- * value given to the work_dim argument specified in
- * clEnqueueNDRangeKernel.
- * For clEnqueueTask, this returns 1.
- */
-uint __ovld __cnfn get_work_dim(void);
-
-/**
- * Returns the number of global work-items specified for
- * dimension identified by dimindx. This value is given by
- * the global_work_size argument to
- * clEnqueueNDRangeKernel. Valid values of dimindx
- * are 0 to get_work_dim() - 1. For other values of
- * dimindx, get_global_size() returns 1.
- * For clEnqueueTask, this always returns 1.
- */
-size_t __ovld __cnfn get_global_size(uint dimindx);
-
-/**
- * Returns the unique global work-item ID value for
- * dimension identified by dimindx. The global work-item
- * ID specifies the work-item ID based on the number of
- * global work-items specified to execute the kernel. Valid
- * values of dimindx are 0 to get_work_dim() - 1. For
- * other values of dimindx, get_global_id() returns 0.
- * For clEnqueueTask, this returns 0.
- */
-size_t __ovld __cnfn get_global_id(uint dimindx);
-
-/**
- * Returns the number of local work-items specified in
- * dimension identified by dimindx. This value is given by
- * the local_work_size argument to
- * clEnqueueNDRangeKernel if local_work_size is not
- * NULL; otherwise the OpenCL implementation chooses
- * an appropriate local_work_size value which is returned
- * by this function. Valid values of dimindx are 0 to
- * get_work_dim() - 1. For other values of dimindx,
- * get_local_size() returns 1.
- * For clEnqueueTask, this always returns 1.
- */
-size_t __ovld __cnfn get_local_size(uint dimindx);
-
-/**
- * Returns the unique local work-item ID i.e. a work-item
- * within a specific work-group for dimension identified by
- * dimindx. Valid values of dimindx are 0 to
- * get_work_dim() - 1. For other values of dimindx,
- * get_local_id() returns 0.
- * For clEnqueueTask, this returns 0.
- */
-size_t __ovld __cnfn get_local_id(uint dimindx);
-
-/**
- * Returns the number of work-groups that will execute a
- * kernel for dimension identified by dimindx.
- * Valid values of dimindx are 0 to get_work_dim() - 1.
- * For other values of dimindx, get_num_groups() returns 1.
- * For clEnqueueTask, this always returns 1.
- */
-size_t __ovld __cnfn get_num_groups(uint dimindx);
-
-/**
- * get_group_id returns the work-group ID which is a
- * number from 0 .. get_num_groups(dimindx) - 1.
- * Valid values of dimindx are 0 to get_work_dim() - 1.
- * For other values, get_group_id() returns 0.
- * For clEnqueueTask, this returns 0.
- */
-size_t __ovld __cnfn get_group_id(uint dimindx);
-
-/**
- * get_global_offset returns the offset values specified in
- * global_work_offset argument to
- * clEnqueueNDRangeKernel.
- * Valid values of dimindx are 0 to get_work_dim() - 1.
- * For other values, get_global_offset() returns 0.
- * For clEnqueueTask, this returns 0.
- */
-size_t __ovld __cnfn get_global_offset(uint dimindx);
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-size_t __ovld get_enqueued_local_size(uint dimindx);
-size_t __ovld get_global_linear_id(void);
-size_t __ovld get_local_linear_id(void);
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-// OpenCL v1.1 s6.11.2, v1.2 s6.12.2, v2.0 s6.13.2 - Math functions
-
-/**
- * Arc cosine function.
- */
-float __ovld __cnfn acos(float);
-float2 __ovld __cnfn acos(float2);
-float3 __ovld __cnfn acos(float3);
-float4 __ovld __cnfn acos(float4);
-float8 __ovld __cnfn acos(float8);
-float16 __ovld __cnfn acos(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn acos(double);
-double2 __ovld __cnfn acos(double2);
-double3 __ovld __cnfn acos(double3);
-double4 __ovld __cnfn acos(double4);
-double8 __ovld __cnfn acos(double8);
-double16 __ovld __cnfn acos(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn acos(half);
-half2 __ovld __cnfn acos(half2);
-half3 __ovld __cnfn acos(half3);
-half4 __ovld __cnfn acos(half4);
-half8 __ovld __cnfn acos(half8);
-half16 __ovld __cnfn acos(half16);
-#endif //cl_khr_fp16
-
-/**
- * Inverse hyperbolic cosine.
- */
-float __ovld __cnfn acosh(float);
-float2 __ovld __cnfn acosh(float2);
-float3 __ovld __cnfn acosh(float3);
-float4 __ovld __cnfn acosh(float4);
-float8 __ovld __cnfn acosh(float8);
-float16 __ovld __cnfn acosh(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn acosh(double);
-double2 __ovld __cnfn acosh(double2);
-double3 __ovld __cnfn acosh(double3);
-double4 __ovld __cnfn acosh(double4);
-double8 __ovld __cnfn acosh(double8);
-double16 __ovld __cnfn acosh(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn acosh(half);
-half2 __ovld __cnfn acosh(half2);
-half3 __ovld __cnfn acosh(half3);
-half4 __ovld __cnfn acosh(half4);
-half8 __ovld __cnfn acosh(half8);
-half16 __ovld __cnfn acosh(half16);
-#endif //cl_khr_fp16
-
-/**
- * Compute acos (x) / PI.
- */
-float __ovld __cnfn acospi(float x);
-float2 __ovld __cnfn acospi(float2 x);
-float3 __ovld __cnfn acospi(float3 x);
-float4 __ovld __cnfn acospi(float4 x);
-float8 __ovld __cnfn acospi(float8 x);
-float16 __ovld __cnfn acospi(float16 x);
-#ifdef cl_khr_fp64
-double __ovld __cnfn acospi(double x);
-double2 __ovld __cnfn acospi(double2 x);
-double3 __ovld __cnfn acospi(double3 x);
-double4 __ovld __cnfn acospi(double4 x);
-double8 __ovld __cnfn acospi(double8 x);
-double16 __ovld __cnfn acospi(double16 x);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn acospi(half x);
-half2 __ovld __cnfn acospi(half2 x);
-half3 __ovld __cnfn acospi(half3 x);
-half4 __ovld __cnfn acospi(half4 x);
-half8 __ovld __cnfn acospi(half8 x);
-half16 __ovld __cnfn acospi(half16 x);
-#endif //cl_khr_fp16
-
-/**
- * Arc sine function.
- */
-float __ovld __cnfn asin(float);
-float2 __ovld __cnfn asin(float2);
-float3 __ovld __cnfn asin(float3);
-float4 __ovld __cnfn asin(float4);
-float8 __ovld __cnfn asin(float8);
-float16 __ovld __cnfn asin(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn asin(double);
-double2 __ovld __cnfn asin(double2);
-double3 __ovld __cnfn asin(double3);
-double4 __ovld __cnfn asin(double4);
-double8 __ovld __cnfn asin(double8);
-double16 __ovld __cnfn asin(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn asin(half);
-half2 __ovld __cnfn asin(half2);
-half3 __ovld __cnfn asin(half3);
-half4 __ovld __cnfn asin(half4);
-half8 __ovld __cnfn asin(half8);
-half16 __ovld __cnfn asin(half16);
-#endif //cl_khr_fp16
-
-/**
- * Inverse hyperbolic sine.
- */
-float __ovld __cnfn asinh(float);
-float2 __ovld __cnfn asinh(float2);
-float3 __ovld __cnfn asinh(float3);
-float4 __ovld __cnfn asinh(float4);
-float8 __ovld __cnfn asinh(float8);
-float16 __ovld __cnfn asinh(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn asinh(double);
-double2 __ovld __cnfn asinh(double2);
-double3 __ovld __cnfn asinh(double3);
-double4 __ovld __cnfn asinh(double4);
-double8 __ovld __cnfn asinh(double8);
-double16 __ovld __cnfn asinh(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn asinh(half);
-half2 __ovld __cnfn asinh(half2);
-half3 __ovld __cnfn asinh(half3);
-half4 __ovld __cnfn asinh(half4);
-half8 __ovld __cnfn asinh(half8);
-half16 __ovld __cnfn asinh(half16);
-#endif //cl_khr_fp16
-
-/**
- * Compute asin (x) / PI.
- */
-float __ovld __cnfn asinpi(float x);
-float2 __ovld __cnfn asinpi(float2 x);
-float3 __ovld __cnfn asinpi(float3 x);
-float4 __ovld __cnfn asinpi(float4 x);
-float8 __ovld __cnfn asinpi(float8 x);
-float16 __ovld __cnfn asinpi(float16 x);
-#ifdef cl_khr_fp64
-double __ovld __cnfn asinpi(double x);
-double2 __ovld __cnfn asinpi(double2 x);
-double3 __ovld __cnfn asinpi(double3 x);
-double4 __ovld __cnfn asinpi(double4 x);
-double8 __ovld __cnfn asinpi(double8 x);
-double16 __ovld __cnfn asinpi(double16 x);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn asinpi(half x);
-half2 __ovld __cnfn asinpi(half2 x);
-half3 __ovld __cnfn asinpi(half3 x);
-half4 __ovld __cnfn asinpi(half4 x);
-half8 __ovld __cnfn asinpi(half8 x);
-half16 __ovld __cnfn asinpi(half16 x);
-#endif //cl_khr_fp16
-
-/**
- * Arc tangent function.
- */
-float __ovld __cnfn atan(float y_over_x);
-float2 __ovld __cnfn atan(float2 y_over_x);
-float3 __ovld __cnfn atan(float3 y_over_x);
-float4 __ovld __cnfn atan(float4 y_over_x);
-float8 __ovld __cnfn atan(float8 y_over_x);
-float16 __ovld __cnfn atan(float16 y_over_x);
-#ifdef cl_khr_fp64
-double __ovld __cnfn atan(double y_over_x);
-double2 __ovld __cnfn atan(double2 y_over_x);
-double3 __ovld __cnfn atan(double3 y_over_x);
-double4 __ovld __cnfn atan(double4 y_over_x);
-double8 __ovld __cnfn atan(double8 y_over_x);
-double16 __ovld __cnfn atan(double16 y_over_x);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn atan(half y_over_x);
-half2 __ovld __cnfn atan(half2 y_over_x);
-half3 __ovld __cnfn atan(half3 y_over_x);
-half4 __ovld __cnfn atan(half4 y_over_x);
-half8 __ovld __cnfn atan(half8 y_over_x);
-half16 __ovld __cnfn atan(half16 y_over_x);
-#endif //cl_khr_fp16
-
-/**
- * Arc tangent of y / x.
- */
-float __ovld __cnfn atan2(float y, float x);
-float2 __ovld __cnfn atan2(float2 y, float2 x);
-float3 __ovld __cnfn atan2(float3 y, float3 x);
-float4 __ovld __cnfn atan2(float4 y, float4 x);
-float8 __ovld __cnfn atan2(float8 y, float8 x);
-float16 __ovld __cnfn atan2(float16 y, float16 x);
-#ifdef cl_khr_fp64
-double __ovld __cnfn atan2(double y, double x);
-double2 __ovld __cnfn atan2(double2 y, double2 x);
-double3 __ovld __cnfn atan2(double3 y, double3 x);
-double4 __ovld __cnfn atan2(double4 y, double4 x);
-double8 __ovld __cnfn atan2(double8 y, double8 x);
-double16 __ovld __cnfn atan2(double16 y, double16 x);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn atan2(half y, half x);
-half2 __ovld __cnfn atan2(half2 y, half2 x);
-half3 __ovld __cnfn atan2(half3 y, half3 x);
-half4 __ovld __cnfn atan2(half4 y, half4 x);
-half8 __ovld __cnfn atan2(half8 y, half8 x);
-half16 __ovld __cnfn atan2(half16 y, half16 x);
-#endif //cl_khr_fp16
-
-/**
- * Hyperbolic arc tangent.
- */
-float __ovld __cnfn atanh(float);
-float2 __ovld __cnfn atanh(float2);
-float3 __ovld __cnfn atanh(float3);
-float4 __ovld __cnfn atanh(float4);
-float8 __ovld __cnfn atanh(float8);
-float16 __ovld __cnfn atanh(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn atanh(double);
-double2 __ovld __cnfn atanh(double2);
-double3 __ovld __cnfn atanh(double3);
-double4 __ovld __cnfn atanh(double4);
-double8 __ovld __cnfn atanh(double8);
-double16 __ovld __cnfn atanh(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn atanh(half);
-half2 __ovld __cnfn atanh(half2);
-half3 __ovld __cnfn atanh(half3);
-half4 __ovld __cnfn atanh(half4);
-half8 __ovld __cnfn atanh(half8);
-half16 __ovld __cnfn atanh(half16);
-#endif //cl_khr_fp16
-
-/**
- * Compute atan (x) / PI.
- */
-float __ovld __cnfn atanpi(float x);
-float2 __ovld __cnfn atanpi(float2 x);
-float3 __ovld __cnfn atanpi(float3 x);
-float4 __ovld __cnfn atanpi(float4 x);
-float8 __ovld __cnfn atanpi(float8 x);
-float16 __ovld __cnfn atanpi(float16 x);
-#ifdef cl_khr_fp64
-double __ovld __cnfn atanpi(double x);
-double2 __ovld __cnfn atanpi(double2 x);
-double3 __ovld __cnfn atanpi(double3 x);
-double4 __ovld __cnfn atanpi(double4 x);
-double8 __ovld __cnfn atanpi(double8 x);
-double16 __ovld __cnfn atanpi(double16 x);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn atanpi(half x);
-half2 __ovld __cnfn atanpi(half2 x);
-half3 __ovld __cnfn atanpi(half3 x);
-half4 __ovld __cnfn atanpi(half4 x);
-half8 __ovld __cnfn atanpi(half8 x);
-half16 __ovld __cnfn atanpi(half16 x);
-#endif //cl_khr_fp16
-
-/**
- * Compute atan2 (y, x) / PI.
- */
-float __ovld __cnfn atan2pi(float y, float x);
-float2 __ovld __cnfn atan2pi(float2 y, float2 x);
-float3 __ovld __cnfn atan2pi(float3 y, float3 x);
-float4 __ovld __cnfn atan2pi(float4 y, float4 x);
-float8 __ovld __cnfn atan2pi(float8 y, float8 x);
-float16 __ovld __cnfn atan2pi(float16 y, float16 x);
-#ifdef cl_khr_fp64
-double __ovld __cnfn atan2pi(double y, double x);
-double2 __ovld __cnfn atan2pi(double2 y, double2 x);
-double3 __ovld __cnfn atan2pi(double3 y, double3 x);
-double4 __ovld __cnfn atan2pi(double4 y, double4 x);
-double8 __ovld __cnfn atan2pi(double8 y, double8 x);
-double16 __ovld __cnfn atan2pi(double16 y, double16 x);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn atan2pi(half y, half x);
-half2 __ovld __cnfn atan2pi(half2 y, half2 x);
-half3 __ovld __cnfn atan2pi(half3 y, half3 x);
-half4 __ovld __cnfn atan2pi(half4 y, half4 x);
-half8 __ovld __cnfn atan2pi(half8 y, half8 x);
-half16 __ovld __cnfn atan2pi(half16 y, half16 x);
-#endif //cl_khr_fp16
-
-/**
- * Compute cube-root.
- */
-float __ovld __cnfn cbrt(float);
-float2 __ovld __cnfn cbrt(float2);
-float3 __ovld __cnfn cbrt(float3);
-float4 __ovld __cnfn cbrt(float4);
-float8 __ovld __cnfn cbrt(float8);
-float16 __ovld __cnfn cbrt(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn cbrt(double);
-double2 __ovld __cnfn cbrt(double2);
-double3 __ovld __cnfn cbrt(double3);
-double4 __ovld __cnfn cbrt(double4);
-double8 __ovld __cnfn cbrt(double8);
-double16 __ovld __cnfn cbrt(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn cbrt(half);
-half2 __ovld __cnfn cbrt(half2);
-half3 __ovld __cnfn cbrt(half3);
-half4 __ovld __cnfn cbrt(half4);
-half8 __ovld __cnfn cbrt(half8);
-half16 __ovld __cnfn cbrt(half16);
-#endif //cl_khr_fp16
-
-/**
- * Round to integral value using the round to positive
- * infinity rounding mode.
- */
-float __ovld __cnfn ceil(float);
-float2 __ovld __cnfn ceil(float2);
-float3 __ovld __cnfn ceil(float3);
-float4 __ovld __cnfn ceil(float4);
-float8 __ovld __cnfn ceil(float8);
-float16 __ovld __cnfn ceil(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn ceil(double);
-double2 __ovld __cnfn ceil(double2);
-double3 __ovld __cnfn ceil(double3);
-double4 __ovld __cnfn ceil(double4);
-double8 __ovld __cnfn ceil(double8);
-double16 __ovld __cnfn ceil(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn ceil(half);
-half2 __ovld __cnfn ceil(half2);
-half3 __ovld __cnfn ceil(half3);
-half4 __ovld __cnfn ceil(half4);
-half8 __ovld __cnfn ceil(half8);
-half16 __ovld __cnfn ceil(half16);
-#endif //cl_khr_fp16
-
-/**
- * Returns x with its sign changed to match the sign of y.
- */
-float __ovld __cnfn copysign(float x, float y);
-float2 __ovld __cnfn copysign(float2 x, float2 y);
-float3 __ovld __cnfn copysign(float3 x, float3 y);
-float4 __ovld __cnfn copysign(float4 x, float4 y);
-float8 __ovld __cnfn copysign(float8 x, float8 y);
-float16 __ovld __cnfn copysign(float16 x, float16 y);
-#ifdef cl_khr_fp64
-double __ovld __cnfn copysign(double x, double y);
-double2 __ovld __cnfn copysign(double2 x, double2 y);
-double3 __ovld __cnfn copysign(double3 x, double3 y);
-double4 __ovld __cnfn copysign(double4 x, double4 y);
-double8 __ovld __cnfn copysign(double8 x, double8 y);
-double16 __ovld __cnfn copysign(double16 x, double16 y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn copysign(half x, half y);
-half2 __ovld __cnfn copysign(half2 x, half2 y);
-half3 __ovld __cnfn copysign(half3 x, half3 y);
-half4 __ovld __cnfn copysign(half4 x, half4 y);
-half8 __ovld __cnfn copysign(half8 x, half8 y);
-half16 __ovld __cnfn copysign(half16 x, half16 y);
-#endif //cl_khr_fp16
-
-/**
- * Compute cosine.
- */
-float __ovld __cnfn cos(float);
-float2 __ovld __cnfn cos(float2);
-float3 __ovld __cnfn cos(float3);
-float4 __ovld __cnfn cos(float4);
-float8 __ovld __cnfn cos(float8);
-float16 __ovld __cnfn cos(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn cos(double);
-double2 __ovld __cnfn cos(double2);
-double3 __ovld __cnfn cos(double3);
-double4 __ovld __cnfn cos(double4);
-double8 __ovld __cnfn cos(double8);
-double16 __ovld __cnfn cos(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn cos(half);
-half2 __ovld __cnfn cos(half2);
-half3 __ovld __cnfn cos(half3);
-half4 __ovld __cnfn cos(half4);
-half8 __ovld __cnfn cos(half8);
-half16 __ovld __cnfn cos(half16);
-#endif //cl_khr_fp16
-
-/**
- * Compute hyperbolic cosine.
- */
-float __ovld __cnfn cosh(float);
-float2 __ovld __cnfn cosh(float2);
-float3 __ovld __cnfn cosh(float3);
-float4 __ovld __cnfn cosh(float4);
-float8 __ovld __cnfn cosh(float8);
-float16 __ovld __cnfn cosh(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn cosh(double);
-double2 __ovld __cnfn cosh(double2);
-double3 __ovld __cnfn cosh(double3);
-double4 __ovld __cnfn cosh(double4);
-double8 __ovld __cnfn cosh(double8);
-double16 __ovld __cnfn cosh(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn cosh(half);
-half2 __ovld __cnfn cosh(half2);
-half3 __ovld __cnfn cosh(half3);
-half4 __ovld __cnfn cosh(half4);
-half8 __ovld __cnfn cosh(half8);
-half16 __ovld __cnfn cosh(half16);
-#endif //cl_khr_fp16
-
-/**
- * Compute cos (PI * x).
- */
-float __ovld __cnfn cospi(float x);
-float2 __ovld __cnfn cospi(float2 x);
-float3 __ovld __cnfn cospi(float3 x);
-float4 __ovld __cnfn cospi(float4 x);
-float8 __ovld __cnfn cospi(float8 x);
-float16 __ovld __cnfn cospi(float16 x);
-#ifdef cl_khr_fp64
-double __ovld __cnfn cospi(double x);
-double2 __ovld __cnfn cospi(double2 x);
-double3 __ovld __cnfn cospi(double3 x);
-double4 __ovld __cnfn cospi(double4 x);
-double8 __ovld __cnfn cospi(double8 x);
-double16 __ovld __cnfn cospi(double16 x);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn cospi(half x);
-half2 __ovld __cnfn cospi(half2 x);
-half3 __ovld __cnfn cospi(half3 x);
-half4 __ovld __cnfn cospi(half4 x);
-half8 __ovld __cnfn cospi(half8 x);
-half16 __ovld __cnfn cospi(half16 x);
-#endif //cl_khr_fp16
-
-/**
- * Complementary error function.
- */
-float __ovld __cnfn erfc(float);
-float2 __ovld __cnfn erfc(float2);
-float3 __ovld __cnfn erfc(float3);
-float4 __ovld __cnfn erfc(float4);
-float8 __ovld __cnfn erfc(float8);
-float16 __ovld __cnfn erfc(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn erfc(double);
-double2 __ovld __cnfn erfc(double2);
-double3 __ovld __cnfn erfc(double3);
-double4 __ovld __cnfn erfc(double4);
-double8 __ovld __cnfn erfc(double8);
-double16 __ovld __cnfn erfc(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn erfc(half);
-half2 __ovld __cnfn erfc(half2);
-half3 __ovld __cnfn erfc(half3);
-half4 __ovld __cnfn erfc(half4);
-half8 __ovld __cnfn erfc(half8);
-half16 __ovld __cnfn erfc(half16);
-#endif //cl_khr_fp16
-
-/**
- * Error function encountered in integrating the
- * normal distribution.
- */
-float __ovld __cnfn erf(float);
-float2 __ovld __cnfn erf(float2);
-float3 __ovld __cnfn erf(float3);
-float4 __ovld __cnfn erf(float4);
-float8 __ovld __cnfn erf(float8);
-float16 __ovld __cnfn erf(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn erf(double);
-double2 __ovld __cnfn erf(double2);
-double3 __ovld __cnfn erf(double3);
-double4 __ovld __cnfn erf(double4);
-double8 __ovld __cnfn erf(double8);
-double16 __ovld __cnfn erf(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn erf(half);
-half2 __ovld __cnfn erf(half2);
-half3 __ovld __cnfn erf(half3);
-half4 __ovld __cnfn erf(half4);
-half8 __ovld __cnfn erf(half8);
-half16 __ovld __cnfn erf(half16);
-#endif //cl_khr_fp16
-
-/**
- * Compute the base e exponential function of x.
- */
-float __ovld __cnfn exp(float x);
-float2 __ovld __cnfn exp(float2 x);
-float3 __ovld __cnfn exp(float3 x);
-float4 __ovld __cnfn exp(float4 x);
-float8 __ovld __cnfn exp(float8 x);
-float16 __ovld __cnfn exp(float16 x);
-#ifdef cl_khr_fp64
-double __ovld __cnfn exp(double x);
-double2 __ovld __cnfn exp(double2 x);
-double3 __ovld __cnfn exp(double3 x);
-double4 __ovld __cnfn exp(double4 x);
-double8 __ovld __cnfn exp(double8 x);
-double16 __ovld __cnfn exp(double16 x);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn exp(half x);
-half2 __ovld __cnfn exp(half2 x);
-half3 __ovld __cnfn exp(half3 x);
-half4 __ovld __cnfn exp(half4 x);
-half8 __ovld __cnfn exp(half8 x);
-half16 __ovld __cnfn exp(half16 x);
-#endif //cl_khr_fp16
-
-/**
- * Exponential base 2 function.
- */
-float __ovld __cnfn exp2(float);
-float2 __ovld __cnfn exp2(float2);
-float3 __ovld __cnfn exp2(float3);
-float4 __ovld __cnfn exp2(float4);
-float8 __ovld __cnfn exp2(float8);
-float16 __ovld __cnfn exp2(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn exp2(double);
-double2 __ovld __cnfn exp2(double2);
-double3 __ovld __cnfn exp2(double3);
-double4 __ovld __cnfn exp2(double4);
-double8 __ovld __cnfn exp2(double8);
-double16 __ovld __cnfn exp2(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn exp2(half);
-half2 __ovld __cnfn exp2(half2);
-half3 __ovld __cnfn exp2(half3);
-half4 __ovld __cnfn exp2(half4);
-half8 __ovld __cnfn exp2(half8);
-half16 __ovld __cnfn exp2(half16);
-#endif //cl_khr_fp16
-
-/**
- * Exponential base 10 function.
- */
-float __ovld __cnfn exp10(float);
-float2 __ovld __cnfn exp10(float2);
-float3 __ovld __cnfn exp10(float3);
-float4 __ovld __cnfn exp10(float4);
-float8 __ovld __cnfn exp10(float8);
-float16 __ovld __cnfn exp10(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn exp10(double);
-double2 __ovld __cnfn exp10(double2);
-double3 __ovld __cnfn exp10(double3);
-double4 __ovld __cnfn exp10(double4);
-double8 __ovld __cnfn exp10(double8);
-double16 __ovld __cnfn exp10(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn exp10(half);
-half2 __ovld __cnfn exp10(half2);
-half3 __ovld __cnfn exp10(half3);
-half4 __ovld __cnfn exp10(half4);
-half8 __ovld __cnfn exp10(half8);
-half16 __ovld __cnfn exp10(half16);
-#endif //cl_khr_fp16
-
-/**
- * Compute e^x- 1.0.
- */
-float __ovld __cnfn expm1(float x);
-float2 __ovld __cnfn expm1(float2 x);
-float3 __ovld __cnfn expm1(float3 x);
-float4 __ovld __cnfn expm1(float4 x);
-float8 __ovld __cnfn expm1(float8 x);
-float16 __ovld __cnfn expm1(float16 x);
-#ifdef cl_khr_fp64
-double __ovld __cnfn expm1(double x);
-double2 __ovld __cnfn expm1(double2 x);
-double3 __ovld __cnfn expm1(double3 x);
-double4 __ovld __cnfn expm1(double4 x);
-double8 __ovld __cnfn expm1(double8 x);
-double16 __ovld __cnfn expm1(double16 x);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn expm1(half x);
-half2 __ovld __cnfn expm1(half2 x);
-half3 __ovld __cnfn expm1(half3 x);
-half4 __ovld __cnfn expm1(half4 x);
-half8 __ovld __cnfn expm1(half8 x);
-half16 __ovld __cnfn expm1(half16 x);
-#endif //cl_khr_fp16
-
-/**
- * Compute absolute value of a floating-point number.
- */
-float __ovld __cnfn fabs(float);
-float2 __ovld __cnfn fabs(float2);
-float3 __ovld __cnfn fabs(float3);
-float4 __ovld __cnfn fabs(float4);
-float8 __ovld __cnfn fabs(float8);
-float16 __ovld __cnfn fabs(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn fabs(double);
-double2 __ovld __cnfn fabs(double2);
-double3 __ovld __cnfn fabs(double3);
-double4 __ovld __cnfn fabs(double4);
-double8 __ovld __cnfn fabs(double8);
-double16 __ovld __cnfn fabs(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn fabs(half);
-half2 __ovld __cnfn fabs(half2);
-half3 __ovld __cnfn fabs(half3);
-half4 __ovld __cnfn fabs(half4);
-half8 __ovld __cnfn fabs(half8);
-half16 __ovld __cnfn fabs(half16);
-#endif //cl_khr_fp16
-
-/**
- * x - y if x > y, +0 if x is less than or equal to y.
- */
-float __ovld __cnfn fdim(float x, float y);
-float2 __ovld __cnfn fdim(float2 x, float2 y);
-float3 __ovld __cnfn fdim(float3 x, float3 y);
-float4 __ovld __cnfn fdim(float4 x, float4 y);
-float8 __ovld __cnfn fdim(float8 x, float8 y);
-float16 __ovld __cnfn fdim(float16 x, float16 y);
-#ifdef cl_khr_fp64
-double __ovld __cnfn fdim(double x, double y);
-double2 __ovld __cnfn fdim(double2 x, double2 y);
-double3 __ovld __cnfn fdim(double3 x, double3 y);
-double4 __ovld __cnfn fdim(double4 x, double4 y);
-double8 __ovld __cnfn fdim(double8 x, double8 y);
-double16 __ovld __cnfn fdim(double16 x, double16 y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn fdim(half x, half y);
-half2 __ovld __cnfn fdim(half2 x, half2 y);
-half3 __ovld __cnfn fdim(half3 x, half3 y);
-half4 __ovld __cnfn fdim(half4 x, half4 y);
-half8 __ovld __cnfn fdim(half8 x, half8 y);
-half16 __ovld __cnfn fdim(half16 x, half16 y);
-#endif //cl_khr_fp16
-
-/**
- * Round to integral value using the round to -ve
- * infinity rounding mode.
- */
-float __ovld __cnfn floor(float);
-float2 __ovld __cnfn floor(float2);
-float3 __ovld __cnfn floor(float3);
-float4 __ovld __cnfn floor(float4);
-float8 __ovld __cnfn floor(float8);
-float16 __ovld __cnfn floor(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn floor(double);
-double2 __ovld __cnfn floor(double2);
-double3 __ovld __cnfn floor(double3);
-double4 __ovld __cnfn floor(double4);
-double8 __ovld __cnfn floor(double8);
-double16 __ovld __cnfn floor(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn floor(half);
-half2 __ovld __cnfn floor(half2);
-half3 __ovld __cnfn floor(half3);
-half4 __ovld __cnfn floor(half4);
-half8 __ovld __cnfn floor(half8);
-half16 __ovld __cnfn floor(half16);
-#endif //cl_khr_fp16
-
-/**
- * Returns the correctly rounded floating-point
- * representation of the sum of c with the infinitely
- * precise product of a and b. Rounding of
- * intermediate products shall not occur. Edge case
- * behavior is per the IEEE 754-2008 standard.
- */
-float __ovld __cnfn fma(float a, float b, float c);
-float2 __ovld __cnfn fma(float2 a, float2 b, float2 c);
-float3 __ovld __cnfn fma(float3 a, float3 b, float3 c);
-float4 __ovld __cnfn fma(float4 a, float4 b, float4 c);
-float8 __ovld __cnfn fma(float8 a, float8 b, float8 c);
-float16 __ovld __cnfn fma(float16 a, float16 b, float16 c);
-#ifdef cl_khr_fp64
-double __ovld __cnfn fma(double a, double b, double c);
-double2 __ovld __cnfn fma(double2 a, double2 b, double2 c);
-double3 __ovld __cnfn fma(double3 a, double3 b, double3 c);
-double4 __ovld __cnfn fma(double4 a, double4 b, double4 c);
-double8 __ovld __cnfn fma(double8 a, double8 b, double8 c);
-double16 __ovld __cnfn fma(double16 a, double16 b, double16 c);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn fma(half a, half b, half c);
-half2 __ovld __cnfn fma(half2 a, half2 b, half2 c);
-half3 __ovld __cnfn fma(half3 a, half3 b, half3 c);
-half4 __ovld __cnfn fma(half4 a, half4 b, half4 c);
-half8 __ovld __cnfn fma(half8 a, half8 b, half8 c);
-half16 __ovld __cnfn fma(half16 a, half16 b, half16 c);
-#endif //cl_khr_fp16
-
-/**
- * Returns y if x < y, otherwise it returns x. If one
- * argument is a NaN, fmax() returns the other
- * argument. If both arguments are NaNs, fmax()
- * returns a NaN.
- */
-float __ovld __cnfn fmax(float x, float y);
-float2 __ovld __cnfn fmax(float2 x, float2 y);
-float3 __ovld __cnfn fmax(float3 x, float3 y);
-float4 __ovld __cnfn fmax(float4 x, float4 y);
-float8 __ovld __cnfn fmax(float8 x, float8 y);
-float16 __ovld __cnfn fmax(float16 x, float16 y);
-float2 __ovld __cnfn fmax(float2 x, float y);
-float3 __ovld __cnfn fmax(float3 x, float y);
-float4 __ovld __cnfn fmax(float4 x, float y);
-float8 __ovld __cnfn fmax(float8 x, float y);
-float16 __ovld __cnfn fmax(float16 x, float y);
-#ifdef cl_khr_fp64
-double __ovld __cnfn fmax(double x, double y);
-double2 __ovld __cnfn fmax(double2 x, double2 y);
-double3 __ovld __cnfn fmax(double3 x, double3 y);
-double4 __ovld __cnfn fmax(double4 x, double4 y);
-double8 __ovld __cnfn fmax(double8 x, double8 y);
-double16 __ovld __cnfn fmax(double16 x, double16 y);
-double2 __ovld __cnfn fmax(double2 x, double y);
-double3 __ovld __cnfn fmax(double3 x, double y);
-double4 __ovld __cnfn fmax(double4 x, double y);
-double8 __ovld __cnfn fmax(double8 x, double y);
-double16 __ovld __cnfn fmax(double16 x, double y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn fmax(half x, half y);
-half2 __ovld __cnfn fmax(half2 x, half2 y);
-half3 __ovld __cnfn fmax(half3 x, half3 y);
-half4 __ovld __cnfn fmax(half4 x, half4 y);
-half8 __ovld __cnfn fmax(half8 x, half8 y);
-half16 __ovld __cnfn fmax(half16 x, half16 y);
-half2 __ovld __cnfn fmax(half2 x, half y);
-half3 __ovld __cnfn fmax(half3 x, half y);
-half4 __ovld __cnfn fmax(half4 x, half y);
-half8 __ovld __cnfn fmax(half8 x, half y);
-half16 __ovld __cnfn fmax(half16 x, half y);
-#endif //cl_khr_fp16
-
-/**
- * Returns y if y < x, otherwise it returns x. If one
- * argument is a NaN, fmin() returns the other
- * argument. If both arguments are NaNs, fmin()
- * returns a NaN.
- */
-float __ovld __cnfn fmin(float x, float y);
-float2 __ovld __cnfn fmin(float2 x, float2 y);
-float3 __ovld __cnfn fmin(float3 x, float3 y);
-float4 __ovld __cnfn fmin(float4 x, float4 y);
-float8 __ovld __cnfn fmin(float8 x, float8 y);
-float16 __ovld __cnfn fmin(float16 x, float16 y);
-float2 __ovld __cnfn fmin(float2 x, float y);
-float3 __ovld __cnfn fmin(float3 x, float y);
-float4 __ovld __cnfn fmin(float4 x, float y);
-float8 __ovld __cnfn fmin(float8 x, float y);
-float16 __ovld __cnfn fmin(float16 x, float y);
-#ifdef cl_khr_fp64
-double __ovld __cnfn fmin(double x, double y);
-double2 __ovld __cnfn fmin(double2 x, double2 y);
-double3 __ovld __cnfn fmin(double3 x, double3 y);
-double4 __ovld __cnfn fmin(double4 x, double4 y);
-double8 __ovld __cnfn fmin(double8 x, double8 y);
-double16 __ovld __cnfn fmin(double16 x, double16 y);
-double2 __ovld __cnfn fmin(double2 x, double y);
-double3 __ovld __cnfn fmin(double3 x, double y);
-double4 __ovld __cnfn fmin(double4 x, double y);
-double8 __ovld __cnfn fmin(double8 x, double y);
-double16 __ovld __cnfn fmin(double16 x, double y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn fmin(half x, half y);
-half2 __ovld __cnfn fmin(half2 x, half2 y);
-half3 __ovld __cnfn fmin(half3 x, half3 y);
-half4 __ovld __cnfn fmin(half4 x, half4 y);
-half8 __ovld __cnfn fmin(half8 x, half8 y);
-half16 __ovld __cnfn fmin(half16 x, half16 y);
-half2 __ovld __cnfn fmin(half2 x, half y);
-half3 __ovld __cnfn fmin(half3 x, half y);
-half4 __ovld __cnfn fmin(half4 x, half y);
-half8 __ovld __cnfn fmin(half8 x, half y);
-half16 __ovld __cnfn fmin(half16 x, half y);
-#endif //cl_khr_fp16
-
-/**
- * Modulus. Returns x - y * trunc (x/y).
- */
-float __ovld __cnfn fmod(float x, float y);
-float2 __ovld __cnfn fmod(float2 x, float2 y);
-float3 __ovld __cnfn fmod(float3 x, float3 y);
-float4 __ovld __cnfn fmod(float4 x, float4 y);
-float8 __ovld __cnfn fmod(float8 x, float8 y);
-float16 __ovld __cnfn fmod(float16 x, float16 y);
-#ifdef cl_khr_fp64
-double __ovld __cnfn fmod(double x, double y);
-double2 __ovld __cnfn fmod(double2 x, double2 y);
-double3 __ovld __cnfn fmod(double3 x, double3 y);
-double4 __ovld __cnfn fmod(double4 x, double4 y);
-double8 __ovld __cnfn fmod(double8 x, double8 y);
-double16 __ovld __cnfn fmod(double16 x, double16 y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn fmod(half x, half y);
-half2 __ovld __cnfn fmod(half2 x, half2 y);
-half3 __ovld __cnfn fmod(half3 x, half3 y);
-half4 __ovld __cnfn fmod(half4 x, half4 y);
-half8 __ovld __cnfn fmod(half8 x, half8 y);
-half16 __ovld __cnfn fmod(half16 x, half16 y);
-#endif //cl_khr_fp16
-
-/**
- * Returns fmin(x - floor (x), 0x1.fffffep-1f ).
- * floor(x) is returned in iptr.
- */
-#if defined(__opencl_c_generic_address_space)
-float __ovld fract(float x, float *iptr);
-float2 __ovld fract(float2 x, float2 *iptr);
-float3 __ovld fract(float3 x, float3 *iptr);
-float4 __ovld fract(float4 x, float4 *iptr);
-float8 __ovld fract(float8 x, float8 *iptr);
-float16 __ovld fract(float16 x, float16 *iptr);
-#ifdef cl_khr_fp64
-double __ovld fract(double x, double *iptr);
-double2 __ovld fract(double2 x, double2 *iptr);
-double3 __ovld fract(double3 x, double3 *iptr);
-double4 __ovld fract(double4 x, double4 *iptr);
-double8 __ovld fract(double8 x, double8 *iptr);
-double16 __ovld fract(double16 x, double16 *iptr);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld fract(half x, half *iptr);
-half2 __ovld fract(half2 x, half2 *iptr);
-half3 __ovld fract(half3 x, half3 *iptr);
-half4 __ovld fract(half4 x, half4 *iptr);
-half8 __ovld fract(half8 x, half8 *iptr);
-half16 __ovld fract(half16 x, half16 *iptr);
-#endif //cl_khr_fp16
-#else
-float __ovld fract(float x, __global float *iptr);
-float2 __ovld fract(float2 x, __global float2 *iptr);
-float3 __ovld fract(float3 x, __global float3 *iptr);
-float4 __ovld fract(float4 x, __global float4 *iptr);
-float8 __ovld fract(float8 x, __global float8 *iptr);
-float16 __ovld fract(float16 x, __global float16 *iptr);
-float __ovld fract(float x, __local float *iptr);
-float2 __ovld fract(float2 x, __local float2 *iptr);
-float3 __ovld fract(float3 x, __local float3 *iptr);
-float4 __ovld fract(float4 x, __local float4 *iptr);
-float8 __ovld fract(float8 x, __local float8 *iptr);
-float16 __ovld fract(float16 x, __local float16 *iptr);
-float __ovld fract(float x, __private float *iptr);
-float2 __ovld fract(float2 x, __private float2 *iptr);
-float3 __ovld fract(float3 x, __private float3 *iptr);
-float4 __ovld fract(float4 x, __private float4 *iptr);
-float8 __ovld fract(float8 x, __private float8 *iptr);
-float16 __ovld fract(float16 x, __private float16 *iptr);
-#ifdef cl_khr_fp64
-double __ovld fract(double x, __global double *iptr);
-double2 __ovld fract(double2 x, __global double2 *iptr);
-double3 __ovld fract(double3 x, __global double3 *iptr);
-double4 __ovld fract(double4 x, __global double4 *iptr);
-double8 __ovld fract(double8 x, __global double8 *iptr);
-double16 __ovld fract(double16 x, __global double16 *iptr);
-double __ovld fract(double x, __local double *iptr);
-double2 __ovld fract(double2 x, __local double2 *iptr);
-double3 __ovld fract(double3 x, __local double3 *iptr);
-double4 __ovld fract(double4 x, __local double4 *iptr);
-double8 __ovld fract(double8 x, __local double8 *iptr);
-double16 __ovld fract(double16 x, __local double16 *iptr);
-double __ovld fract(double x, __private double *iptr);
-double2 __ovld fract(double2 x, __private double2 *iptr);
-double3 __ovld fract(double3 x, __private double3 *iptr);
-double4 __ovld fract(double4 x, __private double4 *iptr);
-double8 __ovld fract(double8 x, __private double8 *iptr);
-double16 __ovld fract(double16 x, __private double16 *iptr);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld fract(half x, __global half *iptr);
-half2 __ovld fract(half2 x, __global half2 *iptr);
-half3 __ovld fract(half3 x, __global half3 *iptr);
-half4 __ovld fract(half4 x, __global half4 *iptr);
-half8 __ovld fract(half8 x, __global half8 *iptr);
-half16 __ovld fract(half16 x, __global half16 *iptr);
-half __ovld fract(half x, __local half *iptr);
-half2 __ovld fract(half2 x, __local half2 *iptr);
-half3 __ovld fract(half3 x, __local half3 *iptr);
-half4 __ovld fract(half4 x, __local half4 *iptr);
-half8 __ovld fract(half8 x, __local half8 *iptr);
-half16 __ovld fract(half16 x, __local half16 *iptr);
-half __ovld fract(half x, __private half *iptr);
-half2 __ovld fract(half2 x, __private half2 *iptr);
-half3 __ovld fract(half3 x, __private half3 *iptr);
-half4 __ovld fract(half4 x, __private half4 *iptr);
-half8 __ovld fract(half8 x, __private half8 *iptr);
-half16 __ovld fract(half16 x, __private half16 *iptr);
-#endif //cl_khr_fp16
-#endif //defined(__opencl_c_generic_address_space)
-
-/**
- * Extract mantissa and exponent from x. For each
- * component the mantissa returned is a float with
- * magnitude in the interval [1/2, 1) or 0. Each
- * component of x equals mantissa returned * 2^exp.
- */
-#if defined(__opencl_c_generic_address_space)
-float __ovld frexp(float x, int *exp);
-float2 __ovld frexp(float2 x, int2 *exp);
-float3 __ovld frexp(float3 x, int3 *exp);
-float4 __ovld frexp(float4 x, int4 *exp);
-float8 __ovld frexp(float8 x, int8 *exp);
-float16 __ovld frexp(float16 x, int16 *exp);
-#ifdef cl_khr_fp64
-double __ovld frexp(double x, int *exp);
-double2 __ovld frexp(double2 x, int2 *exp);
-double3 __ovld frexp(double3 x, int3 *exp);
-double4 __ovld frexp(double4 x, int4 *exp);
-double8 __ovld frexp(double8 x, int8 *exp);
-double16 __ovld frexp(double16 x, int16 *exp);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld frexp(half x, int *exp);
-half2 __ovld frexp(half2 x, int2 *exp);
-half3 __ovld frexp(half3 x, int3 *exp);
-half4 __ovld frexp(half4 x, int4 *exp);
-half8 __ovld frexp(half8 x, int8 *exp);
-half16 __ovld frexp(half16 x, int16 *exp);
-#endif //cl_khr_fp16
-#else
-float __ovld frexp(float x, __global int *exp);
-float2 __ovld frexp(float2 x, __global int2 *exp);
-float3 __ovld frexp(float3 x, __global int3 *exp);
-float4 __ovld frexp(float4 x, __global int4 *exp);
-float8 __ovld frexp(float8 x, __global int8 *exp);
-float16 __ovld frexp(float16 x, __global int16 *exp);
-float __ovld frexp(float x, __local int *exp);
-float2 __ovld frexp(float2 x, __local int2 *exp);
-float3 __ovld frexp(float3 x, __local int3 *exp);
-float4 __ovld frexp(float4 x, __local int4 *exp);
-float8 __ovld frexp(float8 x, __local int8 *exp);
-float16 __ovld frexp(float16 x, __local int16 *exp);
-float __ovld frexp(float x, __private int *exp);
-float2 __ovld frexp(float2 x, __private int2 *exp);
-float3 __ovld frexp(float3 x, __private int3 *exp);
-float4 __ovld frexp(float4 x, __private int4 *exp);
-float8 __ovld frexp(float8 x, __private int8 *exp);
-float16 __ovld frexp(float16 x, __private int16 *exp);
-#ifdef cl_khr_fp64
-double __ovld frexp(double x, __global int *exp);
-double2 __ovld frexp(double2 x, __global int2 *exp);
-double3 __ovld frexp(double3 x, __global int3 *exp);
-double4 __ovld frexp(double4 x, __global int4 *exp);
-double8 __ovld frexp(double8 x, __global int8 *exp);
-double16 __ovld frexp(double16 x, __global int16 *exp);
-double __ovld frexp(double x, __local int *exp);
-double2 __ovld frexp(double2 x, __local int2 *exp);
-double3 __ovld frexp(double3 x, __local int3 *exp);
-double4 __ovld frexp(double4 x, __local int4 *exp);
-double8 __ovld frexp(double8 x, __local int8 *exp);
-double16 __ovld frexp(double16 x, __local int16 *exp);
-double __ovld frexp(double x, __private int *exp);
-double2 __ovld frexp(double2 x, __private int2 *exp);
-double3 __ovld frexp(double3 x, __private int3 *exp);
-double4 __ovld frexp(double4 x, __private int4 *exp);
-double8 __ovld frexp(double8 x, __private int8 *exp);
-double16 __ovld frexp(double16 x, __private int16 *exp);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld frexp(half x, __global int *exp);
-half2 __ovld frexp(half2 x, __global int2 *exp);
-half3 __ovld frexp(half3 x, __global int3 *exp);
-half4 __ovld frexp(half4 x, __global int4 *exp);
-half8 __ovld frexp(half8 x, __global int8 *exp);
-half16 __ovld frexp(half16 x, __global int16 *exp);
-half __ovld frexp(half x, __local int *exp);
-half2 __ovld frexp(half2 x, __local int2 *exp);
-half3 __ovld frexp(half3 x, __local int3 *exp);
-half4 __ovld frexp(half4 x, __local int4 *exp);
-half8 __ovld frexp(half8 x, __local int8 *exp);
-half16 __ovld frexp(half16 x, __local int16 *exp);
-half __ovld frexp(half x, __private int *exp);
-half2 __ovld frexp(half2 x, __private int2 *exp);
-half3 __ovld frexp(half3 x, __private int3 *exp);
-half4 __ovld frexp(half4 x, __private int4 *exp);
-half8 __ovld frexp(half8 x, __private int8 *exp);
-half16 __ovld frexp(half16 x, __private int16 *exp);
-#endif //cl_khr_fp16
-#endif //defined(__opencl_c_generic_address_space)
-
-/**
- * Compute the value of the square root of x^2 + y^2
- * without undue overflow or underflow.
- */
-float __ovld __cnfn hypot(float x, float y);
-float2 __ovld __cnfn hypot(float2 x, float2 y);
-float3 __ovld __cnfn hypot(float3 x, float3 y);
-float4 __ovld __cnfn hypot(float4 x, float4 y);
-float8 __ovld __cnfn hypot(float8 x, float8 y);
-float16 __ovld __cnfn hypot(float16 x, float16 y);
-#ifdef cl_khr_fp64
-double __ovld __cnfn hypot(double x, double y);
-double2 __ovld __cnfn hypot(double2 x, double2 y);
-double3 __ovld __cnfn hypot(double3 x, double3 y);
-double4 __ovld __cnfn hypot(double4 x, double4 y);
-double8 __ovld __cnfn hypot(double8 x, double8 y);
-double16 __ovld __cnfn hypot(double16 x, double16 y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn hypot(half x, half y);
-half2 __ovld __cnfn hypot(half2 x, half2 y);
-half3 __ovld __cnfn hypot(half3 x, half3 y);
-half4 __ovld __cnfn hypot(half4 x, half4 y);
-half8 __ovld __cnfn hypot(half8 x, half8 y);
-half16 __ovld __cnfn hypot(half16 x, half16 y);
-#endif //cl_khr_fp16
-
-/**
- * Return the exponent as an integer value.
- */
-int __ovld __cnfn ilogb(float x);
-int2 __ovld __cnfn ilogb(float2 x);
-int3 __ovld __cnfn ilogb(float3 x);
-int4 __ovld __cnfn ilogb(float4 x);
-int8 __ovld __cnfn ilogb(float8 x);
-int16 __ovld __cnfn ilogb(float16 x);
-#ifdef cl_khr_fp64
-int __ovld __cnfn ilogb(double x);
-int2 __ovld __cnfn ilogb(double2 x);
-int3 __ovld __cnfn ilogb(double3 x);
-int4 __ovld __cnfn ilogb(double4 x);
-int8 __ovld __cnfn ilogb(double8 x);
-int16 __ovld __cnfn ilogb(double16 x);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-int __ovld __cnfn ilogb(half x);
-int2 __ovld __cnfn ilogb(half2 x);
-int3 __ovld __cnfn ilogb(half3 x);
-int4 __ovld __cnfn ilogb(half4 x);
-int8 __ovld __cnfn ilogb(half8 x);
-int16 __ovld __cnfn ilogb(half16 x);
-#endif //cl_khr_fp16
-
-/**
- * Multiply x by 2 to the power n.
- */
-float __ovld __cnfn ldexp(float x, int n);
-float2 __ovld __cnfn ldexp(float2 x, int2 n);
-float3 __ovld __cnfn ldexp(float3 x, int3 n);
-float4 __ovld __cnfn ldexp(float4 x, int4 n);
-float8 __ovld __cnfn ldexp(float8 x, int8 n);
-float16 __ovld __cnfn ldexp(float16 x, int16 n);
-float2 __ovld __cnfn ldexp(float2 x, int n);
-float3 __ovld __cnfn ldexp(float3 x, int n);
-float4 __ovld __cnfn ldexp(float4 x, int n);
-float8 __ovld __cnfn ldexp(float8 x, int n);
-float16 __ovld __cnfn ldexp(float16 x, int n);
-#ifdef cl_khr_fp64
-double __ovld __cnfn ldexp(double x, int n);
-double2 __ovld __cnfn ldexp(double2 x, int2 n);
-double3 __ovld __cnfn ldexp(double3 x, int3 n);
-double4 __ovld __cnfn ldexp(double4 x, int4 n);
-double8 __ovld __cnfn ldexp(double8 x, int8 n);
-double16 __ovld __cnfn ldexp(double16 x, int16 n);
-double2 __ovld __cnfn ldexp(double2 x, int n);
-double3 __ovld __cnfn ldexp(double3 x, int n);
-double4 __ovld __cnfn ldexp(double4 x, int n);
-double8 __ovld __cnfn ldexp(double8 x, int n);
-double16 __ovld __cnfn ldexp(double16 x, int n);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn ldexp(half x, int n);
-half2 __ovld __cnfn ldexp(half2 x, int2 n);
-half3 __ovld __cnfn ldexp(half3 x, int3 n);
-half4 __ovld __cnfn ldexp(half4 x, int4 n);
-half8 __ovld __cnfn ldexp(half8 x, int8 n);
-half16 __ovld __cnfn ldexp(half16 x, int16 n);
-half2 __ovld __cnfn ldexp(half2 x, int n);
-half3 __ovld __cnfn ldexp(half3 x, int n);
-half4 __ovld __cnfn ldexp(half4 x, int n);
-half8 __ovld __cnfn ldexp(half8 x, int n);
-half16 __ovld __cnfn ldexp(half16 x, int n);
-#endif //cl_khr_fp16
-
-/**
- * Log gamma function. Returns the natural
- * logarithm of the absolute value of the gamma
- * function. The sign of the gamma function is
- * returned in the signp argument of lgamma_r.
- */
-float __ovld __cnfn lgamma(float x);
-float2 __ovld __cnfn lgamma(float2 x);
-float3 __ovld __cnfn lgamma(float3 x);
-float4 __ovld __cnfn lgamma(float4 x);
-float8 __ovld __cnfn lgamma(float8 x);
-float16 __ovld __cnfn lgamma(float16 x);
-#ifdef cl_khr_fp64
-double __ovld __cnfn lgamma(double x);
-double2 __ovld __cnfn lgamma(double2 x);
-double3 __ovld __cnfn lgamma(double3 x);
-double4 __ovld __cnfn lgamma(double4 x);
-double8 __ovld __cnfn lgamma(double8 x);
-double16 __ovld __cnfn lgamma(double16 x);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn lgamma(half x);
-half2 __ovld __cnfn lgamma(half2 x);
-half3 __ovld __cnfn lgamma(half3 x);
-half4 __ovld __cnfn lgamma(half4 x);
-half8 __ovld __cnfn lgamma(half8 x);
-half16 __ovld __cnfn lgamma(half16 x);
-#endif //cl_khr_fp16
-
-#if defined(__opencl_c_generic_address_space)
-float __ovld lgamma_r(float x, int *signp);
-float2 __ovld lgamma_r(float2 x, int2 *signp);
-float3 __ovld lgamma_r(float3 x, int3 *signp);
-float4 __ovld lgamma_r(float4 x, int4 *signp);
-float8 __ovld lgamma_r(float8 x, int8 *signp);
-float16 __ovld lgamma_r(float16 x, int16 *signp);
-#ifdef cl_khr_fp64
-double __ovld lgamma_r(double x, int *signp);
-double2 __ovld lgamma_r(double2 x, int2 *signp);
-double3 __ovld lgamma_r(double3 x, int3 *signp);
-double4 __ovld lgamma_r(double4 x, int4 *signp);
-double8 __ovld lgamma_r(double8 x, int8 *signp);
-double16 __ovld lgamma_r(double16 x, int16 *signp);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld lgamma_r(half x, int *signp);
-half2 __ovld lgamma_r(half2 x, int2 *signp);
-half3 __ovld lgamma_r(half3 x, int3 *signp);
-half4 __ovld lgamma_r(half4 x, int4 *signp);
-half8 __ovld lgamma_r(half8 x, int8 *signp);
-half16 __ovld lgamma_r(half16 x, int16 *signp);
-#endif //cl_khr_fp16
-#else
-float __ovld lgamma_r(float x, __global int *signp);
-float2 __ovld lgamma_r(float2 x, __global int2 *signp);
-float3 __ovld lgamma_r(float3 x, __global int3 *signp);
-float4 __ovld lgamma_r(float4 x, __global int4 *signp);
-float8 __ovld lgamma_r(float8 x, __global int8 *signp);
-float16 __ovld lgamma_r(float16 x, __global int16 *signp);
-float __ovld lgamma_r(float x, __local int *signp);
-float2 __ovld lgamma_r(float2 x, __local int2 *signp);
-float3 __ovld lgamma_r(float3 x, __local int3 *signp);
-float4 __ovld lgamma_r(float4 x, __local int4 *signp);
-float8 __ovld lgamma_r(float8 x, __local int8 *signp);
-float16 __ovld lgamma_r(float16 x, __local int16 *signp);
-float __ovld lgamma_r(float x, __private int *signp);
-float2 __ovld lgamma_r(float2 x, __private int2 *signp);
-float3 __ovld lgamma_r(float3 x, __private int3 *signp);
-float4 __ovld lgamma_r(float4 x, __private int4 *signp);
-float8 __ovld lgamma_r(float8 x, __private int8 *signp);
-float16 __ovld lgamma_r(float16 x, __private int16 *signp);
-#ifdef cl_khr_fp64
-double __ovld lgamma_r(double x, __global int *signp);
-double2 __ovld lgamma_r(double2 x, __global int2 *signp);
-double3 __ovld lgamma_r(double3 x, __global int3 *signp);
-double4 __ovld lgamma_r(double4 x, __global int4 *signp);
-double8 __ovld lgamma_r(double8 x, __global int8 *signp);
-double16 __ovld lgamma_r(double16 x, __global int16 *signp);
-double __ovld lgamma_r(double x, __local int *signp);
-double2 __ovld lgamma_r(double2 x, __local int2 *signp);
-double3 __ovld lgamma_r(double3 x, __local int3 *signp);
-double4 __ovld lgamma_r(double4 x, __local int4 *signp);
-double8 __ovld lgamma_r(double8 x, __local int8 *signp);
-double16 __ovld lgamma_r(double16 x, __local int16 *signp);
-double __ovld lgamma_r(double x, __private int *signp);
-double2 __ovld lgamma_r(double2 x, __private int2 *signp);
-double3 __ovld lgamma_r(double3 x, __private int3 *signp);
-double4 __ovld lgamma_r(double4 x, __private int4 *signp);
-double8 __ovld lgamma_r(double8 x, __private int8 *signp);
-double16 __ovld lgamma_r(double16 x, __private int16 *signp);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld lgamma_r(half x, __global int *signp);
-half2 __ovld lgamma_r(half2 x, __global int2 *signp);
-half3 __ovld lgamma_r(half3 x, __global int3 *signp);
-half4 __ovld lgamma_r(half4 x, __global int4 *signp);
-half8 __ovld lgamma_r(half8 x, __global int8 *signp);
-half16 __ovld lgamma_r(half16 x, __global int16 *signp);
-half __ovld lgamma_r(half x, __local int *signp);
-half2 __ovld lgamma_r(half2 x, __local int2 *signp);
-half3 __ovld lgamma_r(half3 x, __local int3 *signp);
-half4 __ovld lgamma_r(half4 x, __local int4 *signp);
-half8 __ovld lgamma_r(half8 x, __local int8 *signp);
-half16 __ovld lgamma_r(half16 x, __local int16 *signp);
-half __ovld lgamma_r(half x, __private int *signp);
-half2 __ovld lgamma_r(half2 x, __private int2 *signp);
-half3 __ovld lgamma_r(half3 x, __private int3 *signp);
-half4 __ovld lgamma_r(half4 x, __private int4 *signp);
-half8 __ovld lgamma_r(half8 x, __private int8 *signp);
-half16 __ovld lgamma_r(half16 x, __private int16 *signp);
-#endif //cl_khr_fp16
-#endif //defined(__opencl_c_generic_address_space)
-
-/**
- * Compute natural logarithm.
- */
-float __ovld __cnfn log(float);
-float2 __ovld __cnfn log(float2);
-float3 __ovld __cnfn log(float3);
-float4 __ovld __cnfn log(float4);
-float8 __ovld __cnfn log(float8);
-float16 __ovld __cnfn log(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn log(double);
-double2 __ovld __cnfn log(double2);
-double3 __ovld __cnfn log(double3);
-double4 __ovld __cnfn log(double4);
-double8 __ovld __cnfn log(double8);
-double16 __ovld __cnfn log(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn log(half);
-half2 __ovld __cnfn log(half2);
-half3 __ovld __cnfn log(half3);
-half4 __ovld __cnfn log(half4);
-half8 __ovld __cnfn log(half8);
-half16 __ovld __cnfn log(half16);
-#endif //cl_khr_fp16
-
-/**
- * Compute a base 2 logarithm.
- */
-float __ovld __cnfn log2(float);
-float2 __ovld __cnfn log2(float2);
-float3 __ovld __cnfn log2(float3);
-float4 __ovld __cnfn log2(float4);
-float8 __ovld __cnfn log2(float8);
-float16 __ovld __cnfn log2(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn log2(double);
-double2 __ovld __cnfn log2(double2);
-double3 __ovld __cnfn log2(double3);
-double4 __ovld __cnfn log2(double4);
-double8 __ovld __cnfn log2(double8);
-double16 __ovld __cnfn log2(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn log2(half);
-half2 __ovld __cnfn log2(half2);
-half3 __ovld __cnfn log2(half3);
-half4 __ovld __cnfn log2(half4);
-half8 __ovld __cnfn log2(half8);
-half16 __ovld __cnfn log2(half16);
-#endif //cl_khr_fp16
-
-/**
- * Compute a base 10 logarithm.
- */
-float __ovld __cnfn log10(float);
-float2 __ovld __cnfn log10(float2);
-float3 __ovld __cnfn log10(float3);
-float4 __ovld __cnfn log10(float4);
-float8 __ovld __cnfn log10(float8);
-float16 __ovld __cnfn log10(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn log10(double);
-double2 __ovld __cnfn log10(double2);
-double3 __ovld __cnfn log10(double3);
-double4 __ovld __cnfn log10(double4);
-double8 __ovld __cnfn log10(double8);
-double16 __ovld __cnfn log10(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn log10(half);
-half2 __ovld __cnfn log10(half2);
-half3 __ovld __cnfn log10(half3);
-half4 __ovld __cnfn log10(half4);
-half8 __ovld __cnfn log10(half8);
-half16 __ovld __cnfn log10(half16);
-#endif //cl_khr_fp16
-
-/**
- * Compute a base e logarithm of (1.0 + x).
- */
-float __ovld __cnfn log1p(float x);
-float2 __ovld __cnfn log1p(float2 x);
-float3 __ovld __cnfn log1p(float3 x);
-float4 __ovld __cnfn log1p(float4 x);
-float8 __ovld __cnfn log1p(float8 x);
-float16 __ovld __cnfn log1p(float16 x);
-#ifdef cl_khr_fp64
-double __ovld __cnfn log1p(double x);
-double2 __ovld __cnfn log1p(double2 x);
-double3 __ovld __cnfn log1p(double3 x);
-double4 __ovld __cnfn log1p(double4 x);
-double8 __ovld __cnfn log1p(double8 x);
-double16 __ovld __cnfn log1p(double16 x);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn log1p(half x);
-half2 __ovld __cnfn log1p(half2 x);
-half3 __ovld __cnfn log1p(half3 x);
-half4 __ovld __cnfn log1p(half4 x);
-half8 __ovld __cnfn log1p(half8 x);
-half16 __ovld __cnfn log1p(half16 x);
-#endif //cl_khr_fp16
-
-/**
- * Compute the exponent of x, which is the integral
- * part of logr | x |.
- */
-float __ovld __cnfn logb(float x);
-float2 __ovld __cnfn logb(float2 x);
-float3 __ovld __cnfn logb(float3 x);
-float4 __ovld __cnfn logb(float4 x);
-float8 __ovld __cnfn logb(float8 x);
-float16 __ovld __cnfn logb(float16 x);
-#ifdef cl_khr_fp64
-double __ovld __cnfn logb(double x);
-double2 __ovld __cnfn logb(double2 x);
-double3 __ovld __cnfn logb(double3 x);
-double4 __ovld __cnfn logb(double4 x);
-double8 __ovld __cnfn logb(double8 x);
-double16 __ovld __cnfn logb(double16 x);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn logb(half x);
-half2 __ovld __cnfn logb(half2 x);
-half3 __ovld __cnfn logb(half3 x);
-half4 __ovld __cnfn logb(half4 x);
-half8 __ovld __cnfn logb(half8 x);
-half16 __ovld __cnfn logb(half16 x);
-#endif //cl_khr_fp16
-
-/**
- * mad approximates a * b + c. Whether or how the
- * product of a * b is rounded and how supernormal or
- * subnormal intermediate products are handled is not
- * defined. mad is intended to be used where speed is
- * preferred over accuracy.
- */
-float __ovld __cnfn mad(float a, float b, float c);
-float2 __ovld __cnfn mad(float2 a, float2 b, float2 c);
-float3 __ovld __cnfn mad(float3 a, float3 b, float3 c);
-float4 __ovld __cnfn mad(float4 a, float4 b, float4 c);
-float8 __ovld __cnfn mad(float8 a, float8 b, float8 c);
-float16 __ovld __cnfn mad(float16 a, float16 b, float16 c);
-#ifdef cl_khr_fp64
-double __ovld __cnfn mad(double a, double b, double c);
-double2 __ovld __cnfn mad(double2 a, double2 b, double2 c);
-double3 __ovld __cnfn mad(double3 a, double3 b, double3 c);
-double4 __ovld __cnfn mad(double4 a, double4 b, double4 c);
-double8 __ovld __cnfn mad(double8 a, double8 b, double8 c);
-double16 __ovld __cnfn mad(double16 a, double16 b, double16 c);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn mad(half a, half b, half c);
-half2 __ovld __cnfn mad(half2 a, half2 b, half2 c);
-half3 __ovld __cnfn mad(half3 a, half3 b, half3 c);
-half4 __ovld __cnfn mad(half4 a, half4 b, half4 c);
-half8 __ovld __cnfn mad(half8 a, half8 b, half8 c);
-half16 __ovld __cnfn mad(half16 a, half16 b, half16 c);
-#endif //cl_khr_fp16
-
-/**
- * Returns x if | x | > | y |, y if | y | > | x |, otherwise
- * fmax(x, y).
- */
-float __ovld __cnfn maxmag(float x, float y);
-float2 __ovld __cnfn maxmag(float2 x, float2 y);
-float3 __ovld __cnfn maxmag(float3 x, float3 y);
-float4 __ovld __cnfn maxmag(float4 x, float4 y);
-float8 __ovld __cnfn maxmag(float8 x, float8 y);
-float16 __ovld __cnfn maxmag(float16 x, float16 y);
-#ifdef cl_khr_fp64
-double __ovld __cnfn maxmag(double x, double y);
-double2 __ovld __cnfn maxmag(double2 x, double2 y);
-double3 __ovld __cnfn maxmag(double3 x, double3 y);
-double4 __ovld __cnfn maxmag(double4 x, double4 y);
-double8 __ovld __cnfn maxmag(double8 x, double8 y);
-double16 __ovld __cnfn maxmag(double16 x, double16 y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn maxmag(half x, half y);
-half2 __ovld __cnfn maxmag(half2 x, half2 y);
-half3 __ovld __cnfn maxmag(half3 x, half3 y);
-half4 __ovld __cnfn maxmag(half4 x, half4 y);
-half8 __ovld __cnfn maxmag(half8 x, half8 y);
-half16 __ovld __cnfn maxmag(half16 x, half16 y);
-#endif //cl_khr_fp16
-
-/**
- * Returns x if | x | < | y |, y if | y | < | x |, otherwise
- * fmin(x, y).
- */
-float __ovld __cnfn minmag(float x, float y);
-float2 __ovld __cnfn minmag(float2 x, float2 y);
-float3 __ovld __cnfn minmag(float3 x, float3 y);
-float4 __ovld __cnfn minmag(float4 x, float4 y);
-float8 __ovld __cnfn minmag(float8 x, float8 y);
-float16 __ovld __cnfn minmag(float16 x, float16 y);
-#ifdef cl_khr_fp64
-double __ovld __cnfn minmag(double x, double y);
-double2 __ovld __cnfn minmag(double2 x, double2 y);
-double3 __ovld __cnfn minmag(double3 x, double3 y);
-double4 __ovld __cnfn minmag(double4 x, double4 y);
-double8 __ovld __cnfn minmag(double8 x, double8 y);
-double16 __ovld __cnfn minmag(double16 x, double16 y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn minmag(half x, half y);
-half2 __ovld __cnfn minmag(half2 x, half2 y);
-half3 __ovld __cnfn minmag(half3 x, half3 y);
-half4 __ovld __cnfn minmag(half4 x, half4 y);
-half8 __ovld __cnfn minmag(half8 x, half8 y);
-half16 __ovld __cnfn minmag(half16 x, half16 y);
-#endif //cl_khr_fp16
-
-/**
- * Decompose a floating-point number. The modf
- * function breaks the argument x into integral and
- * fractional parts, each of which has the same sign as
- * the argument. It stores the integral part in the object
- * pointed to by iptr.
- */
-#if defined(__opencl_c_generic_address_space)
-float __ovld modf(float x, float *iptr);
-float2 __ovld modf(float2 x, float2 *iptr);
-float3 __ovld modf(float3 x, float3 *iptr);
-float4 __ovld modf(float4 x, float4 *iptr);
-float8 __ovld modf(float8 x, float8 *iptr);
-float16 __ovld modf(float16 x, float16 *iptr);
-#ifdef cl_khr_fp64
-double __ovld modf(double x, double *iptr);
-double2 __ovld modf(double2 x, double2 *iptr);
-double3 __ovld modf(double3 x, double3 *iptr);
-double4 __ovld modf(double4 x, double4 *iptr);
-double8 __ovld modf(double8 x, double8 *iptr);
-double16 __ovld modf(double16 x, double16 *iptr);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld modf(half x, half *iptr);
-half2 __ovld modf(half2 x, half2 *iptr);
-half3 __ovld modf(half3 x, half3 *iptr);
-half4 __ovld modf(half4 x, half4 *iptr);
-half8 __ovld modf(half8 x, half8 *iptr);
-half16 __ovld modf(half16 x, half16 *iptr);
-#endif //cl_khr_fp16
-#else
-float __ovld modf(float x, __global float *iptr);
-float2 __ovld modf(float2 x, __global float2 *iptr);
-float3 __ovld modf(float3 x, __global float3 *iptr);
-float4 __ovld modf(float4 x, __global float4 *iptr);
-float8 __ovld modf(float8 x, __global float8 *iptr);
-float16 __ovld modf(float16 x, __global float16 *iptr);
-float __ovld modf(float x, __local float *iptr);
-float2 __ovld modf(float2 x, __local float2 *iptr);
-float3 __ovld modf(float3 x, __local float3 *iptr);
-float4 __ovld modf(float4 x, __local float4 *iptr);
-float8 __ovld modf(float8 x, __local float8 *iptr);
-float16 __ovld modf(float16 x, __local float16 *iptr);
-float __ovld modf(float x, __private float *iptr);
-float2 __ovld modf(float2 x, __private float2 *iptr);
-float3 __ovld modf(float3 x, __private float3 *iptr);
-float4 __ovld modf(float4 x, __private float4 *iptr);
-float8 __ovld modf(float8 x, __private float8 *iptr);
-float16 __ovld modf(float16 x, __private float16 *iptr);
-#ifdef cl_khr_fp64
-double __ovld modf(double x, __global double *iptr);
-double2 __ovld modf(double2 x, __global double2 *iptr);
-double3 __ovld modf(double3 x, __global double3 *iptr);
-double4 __ovld modf(double4 x, __global double4 *iptr);
-double8 __ovld modf(double8 x, __global double8 *iptr);
-double16 __ovld modf(double16 x, __global double16 *iptr);
-double __ovld modf(double x, __local double *iptr);
-double2 __ovld modf(double2 x, __local double2 *iptr);
-double3 __ovld modf(double3 x, __local double3 *iptr);
-double4 __ovld modf(double4 x, __local double4 *iptr);
-double8 __ovld modf(double8 x, __local double8 *iptr);
-double16 __ovld modf(double16 x, __local double16 *iptr);
-double __ovld modf(double x, __private double *iptr);
-double2 __ovld modf(double2 x, __private double2 *iptr);
-double3 __ovld modf(double3 x, __private double3 *iptr);
-double4 __ovld modf(double4 x, __private double4 *iptr);
-double8 __ovld modf(double8 x, __private double8 *iptr);
-double16 __ovld modf(double16 x, __private double16 *iptr);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld modf(half x, __global half *iptr);
-half2 __ovld modf(half2 x, __global half2 *iptr);
-half3 __ovld modf(half3 x, __global half3 *iptr);
-half4 __ovld modf(half4 x, __global half4 *iptr);
-half8 __ovld modf(half8 x, __global half8 *iptr);
-half16 __ovld modf(half16 x, __global half16 *iptr);
-half __ovld modf(half x, __local half *iptr);
-half2 __ovld modf(half2 x, __local half2 *iptr);
-half3 __ovld modf(half3 x, __local half3 *iptr);
-half4 __ovld modf(half4 x, __local half4 *iptr);
-half8 __ovld modf(half8 x, __local half8 *iptr);
-half16 __ovld modf(half16 x, __local half16 *iptr);
-half __ovld modf(half x, __private half *iptr);
-half2 __ovld modf(half2 x, __private half2 *iptr);
-half3 __ovld modf(half3 x, __private half3 *iptr);
-half4 __ovld modf(half4 x, __private half4 *iptr);
-half8 __ovld modf(half8 x, __private half8 *iptr);
-half16 __ovld modf(half16 x, __private half16 *iptr);
-#endif //cl_khr_fp16
-#endif //defined(__opencl_c_generic_address_space)
-
-/**
- * Returns a quiet NaN. The nancode may be placed
- * in the significand of the resulting NaN.
- */
-float __ovld __cnfn nan(uint nancode);
-float2 __ovld __cnfn nan(uint2 nancode);
-float3 __ovld __cnfn nan(uint3 nancode);
-float4 __ovld __cnfn nan(uint4 nancode);
-float8 __ovld __cnfn nan(uint8 nancode);
-float16 __ovld __cnfn nan(uint16 nancode);
-#ifdef cl_khr_fp64
-double __ovld __cnfn nan(ulong nancode);
-double2 __ovld __cnfn nan(ulong2 nancode);
-double3 __ovld __cnfn nan(ulong3 nancode);
-double4 __ovld __cnfn nan(ulong4 nancode);
-double8 __ovld __cnfn nan(ulong8 nancode);
-double16 __ovld __cnfn nan(ulong16 nancode);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn nan(ushort nancode);
-half2 __ovld __cnfn nan(ushort2 nancode);
-half3 __ovld __cnfn nan(ushort3 nancode);
-half4 __ovld __cnfn nan(ushort4 nancode);
-half8 __ovld __cnfn nan(ushort8 nancode);
-half16 __ovld __cnfn nan(ushort16 nancode);
-#endif //cl_khr_fp16
-
-/**
- * Computes the next representable single-precision
- * floating-point value following x in the direction of
- * y. Thus, if y is less than x, nextafter() returns the
- * largest representable floating-point number less
- * than x.
- */
-float __ovld __cnfn nextafter(float x, float y);
-float2 __ovld __cnfn nextafter(float2 x, float2 y);
-float3 __ovld __cnfn nextafter(float3 x, float3 y);
-float4 __ovld __cnfn nextafter(float4 x, float4 y);
-float8 __ovld __cnfn nextafter(float8 x, float8 y);
-float16 __ovld __cnfn nextafter(float16 x, float16 y);
-#ifdef cl_khr_fp64
-double __ovld __cnfn nextafter(double x, double y);
-double2 __ovld __cnfn nextafter(double2 x, double2 y);
-double3 __ovld __cnfn nextafter(double3 x, double3 y);
-double4 __ovld __cnfn nextafter(double4 x, double4 y);
-double8 __ovld __cnfn nextafter(double8 x, double8 y);
-double16 __ovld __cnfn nextafter(double16 x, double16 y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn nextafter(half x, half y);
-half2 __ovld __cnfn nextafter(half2 x, half2 y);
-half3 __ovld __cnfn nextafter(half3 x, half3 y);
-half4 __ovld __cnfn nextafter(half4 x, half4 y);
-half8 __ovld __cnfn nextafter(half8 x, half8 y);
-half16 __ovld __cnfn nextafter(half16 x, half16 y);
-#endif //cl_khr_fp16
-
-/**
- * Compute x to the power y.
- */
-float __ovld __cnfn pow(float x, float y);
-float2 __ovld __cnfn pow(float2 x, float2 y);
-float3 __ovld __cnfn pow(float3 x, float3 y);
-float4 __ovld __cnfn pow(float4 x, float4 y);
-float8 __ovld __cnfn pow(float8 x, float8 y);
-float16 __ovld __cnfn pow(float16 x, float16 y);
-#ifdef cl_khr_fp64
-double __ovld __cnfn pow(double x, double y);
-double2 __ovld __cnfn pow(double2 x, double2 y);
-double3 __ovld __cnfn pow(double3 x, double3 y);
-double4 __ovld __cnfn pow(double4 x, double4 y);
-double8 __ovld __cnfn pow(double8 x, double8 y);
-double16 __ovld __cnfn pow(double16 x, double16 y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn pow(half x, half y);
-half2 __ovld __cnfn pow(half2 x, half2 y);
-half3 __ovld __cnfn pow(half3 x, half3 y);
-half4 __ovld __cnfn pow(half4 x, half4 y);
-half8 __ovld __cnfn pow(half8 x, half8 y);
-half16 __ovld __cnfn pow(half16 x, half16 y);
-#endif //cl_khr_fp16
-
-/**
- * Compute x to the power y, where y is an integer.
- */
-float __ovld __cnfn pown(float x, int y);
-float2 __ovld __cnfn pown(float2 x, int2 y);
-float3 __ovld __cnfn pown(float3 x, int3 y);
-float4 __ovld __cnfn pown(float4 x, int4 y);
-float8 __ovld __cnfn pown(float8 x, int8 y);
-float16 __ovld __cnfn pown(float16 x, int16 y);
-#ifdef cl_khr_fp64
-double __ovld __cnfn pown(double x, int y);
-double2 __ovld __cnfn pown(double2 x, int2 y);
-double3 __ovld __cnfn pown(double3 x, int3 y);
-double4 __ovld __cnfn pown(double4 x, int4 y);
-double8 __ovld __cnfn pown(double8 x, int8 y);
-double16 __ovld __cnfn pown(double16 x, int16 y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn pown(half x, int y);
-half2 __ovld __cnfn pown(half2 x, int2 y);
-half3 __ovld __cnfn pown(half3 x, int3 y);
-half4 __ovld __cnfn pown(half4 x, int4 y);
-half8 __ovld __cnfn pown(half8 x, int8 y);
-half16 __ovld __cnfn pown(half16 x, int16 y);
-#endif //cl_khr_fp16
-
-/**
- * Compute x to the power y, where x is >= 0.
- */
-float __ovld __cnfn powr(float x, float y);
-float2 __ovld __cnfn powr(float2 x, float2 y);
-float3 __ovld __cnfn powr(float3 x, float3 y);
-float4 __ovld __cnfn powr(float4 x, float4 y);
-float8 __ovld __cnfn powr(float8 x, float8 y);
-float16 __ovld __cnfn powr(float16 x, float16 y);
-#ifdef cl_khr_fp64
-double __ovld __cnfn powr(double x, double y);
-double2 __ovld __cnfn powr(double2 x, double2 y);
-double3 __ovld __cnfn powr(double3 x, double3 y);
-double4 __ovld __cnfn powr(double4 x, double4 y);
-double8 __ovld __cnfn powr(double8 x, double8 y);
-double16 __ovld __cnfn powr(double16 x, double16 y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn powr(half x, half y);
-half2 __ovld __cnfn powr(half2 x, half2 y);
-half3 __ovld __cnfn powr(half3 x, half3 y);
-half4 __ovld __cnfn powr(half4 x, half4 y);
-half8 __ovld __cnfn powr(half8 x, half8 y);
-half16 __ovld __cnfn powr(half16 x, half16 y);
-#endif //cl_khr_fp16
-
-/**
- * Compute the value r such that r = x - n*y, where n
- * is the integer nearest the exact value of x/y. If there
- * are two integers closest to x/y, n shall be the even
- * one. If r is zero, it is given the same sign as x.
- */
-float __ovld __cnfn remainder(float x, float y);
-float2 __ovld __cnfn remainder(float2 x, float2 y);
-float3 __ovld __cnfn remainder(float3 x, float3 y);
-float4 __ovld __cnfn remainder(float4 x, float4 y);
-float8 __ovld __cnfn remainder(float8 x, float8 y);
-float16 __ovld __cnfn remainder(float16 x, float16 y);
-#ifdef cl_khr_fp64
-double __ovld __cnfn remainder(double x, double y);
-double2 __ovld __cnfn remainder(double2 x, double2 y);
-double3 __ovld __cnfn remainder(double3 x, double3 y);
-double4 __ovld __cnfn remainder(double4 x, double4 y);
-double8 __ovld __cnfn remainder(double8 x, double8 y);
-double16 __ovld __cnfn remainder(double16 x, double16 y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn remainder(half x, half y);
-half2 __ovld __cnfn remainder(half2 x, half2 y);
-half3 __ovld __cnfn remainder(half3 x, half3 y);
-half4 __ovld __cnfn remainder(half4 x, half4 y);
-half8 __ovld __cnfn remainder(half8 x, half8 y);
-half16 __ovld __cnfn remainder(half16 x, half16 y);
-#endif //cl_khr_fp16
-
-/**
- * The remquo function computes the value r such
- * that r = x - n*y, where n is the integer nearest the
- * exact value of x/y. If there are two integers closest
- * to x/y, n shall be the even one. If r is zero, it is
- * given the same sign as x. This is the same value
- * that is returned by the remainder function.
- * remquo also calculates the lower seven bits of the
- * integral quotient x/y, and gives that value the same
- * sign as x/y. It stores this signed value in the object
- * pointed to by quo.
- */
-#if defined(__opencl_c_generic_address_space)
-float __ovld remquo(float x, float y, int *quo);
-float2 __ovld remquo(float2 x, float2 y, int2 *quo);
-float3 __ovld remquo(float3 x, float3 y, int3 *quo);
-float4 __ovld remquo(float4 x, float4 y, int4 *quo);
-float8 __ovld remquo(float8 x, float8 y, int8 *quo);
-float16 __ovld remquo(float16 x, float16 y, int16 *quo);
-#ifdef cl_khr_fp64
-double __ovld remquo(double x, double y, int *quo);
-double2 __ovld remquo(double2 x, double2 y, int2 *quo);
-double3 __ovld remquo(double3 x, double3 y, int3 *quo);
-double4 __ovld remquo(double4 x, double4 y, int4 *quo);
-double8 __ovld remquo(double8 x, double8 y, int8 *quo);
-double16 __ovld remquo(double16 x, double16 y, int16 *quo);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld remquo(half x, half y, int *quo);
-half2 __ovld remquo(half2 x, half2 y, int2 *quo);
-half3 __ovld remquo(half3 x, half3 y, int3 *quo);
-half4 __ovld remquo(half4 x, half4 y, int4 *quo);
-half8 __ovld remquo(half8 x, half8 y, int8 *quo);
-half16 __ovld remquo(half16 x, half16 y, int16 *quo);
-
-#endif //cl_khr_fp16
-#else
-float __ovld remquo(float x, float y, __global int *quo);
-float2 __ovld remquo(float2 x, float2 y, __global int2 *quo);
-float3 __ovld remquo(float3 x, float3 y, __global int3 *quo);
-float4 __ovld remquo(float4 x, float4 y, __global int4 *quo);
-float8 __ovld remquo(float8 x, float8 y, __global int8 *quo);
-float16 __ovld remquo(float16 x, float16 y, __global int16 *quo);
-float __ovld remquo(float x, float y, __local int *quo);
-float2 __ovld remquo(float2 x, float2 y, __local int2 *quo);
-float3 __ovld remquo(float3 x, float3 y, __local int3 *quo);
-float4 __ovld remquo(float4 x, float4 y, __local int4 *quo);
-float8 __ovld remquo(float8 x, float8 y, __local int8 *quo);
-float16 __ovld remquo(float16 x, float16 y, __local int16 *quo);
-float __ovld remquo(float x, float y, __private int *quo);
-float2 __ovld remquo(float2 x, float2 y, __private int2 *quo);
-float3 __ovld remquo(float3 x, float3 y, __private int3 *quo);
-float4 __ovld remquo(float4 x, float4 y, __private int4 *quo);
-float8 __ovld remquo(float8 x, float8 y, __private int8 *quo);
-float16 __ovld remquo(float16 x, float16 y, __private int16 *quo);
-#ifdef cl_khr_fp64
-double __ovld remquo(double x, double y, __global int *quo);
-double2 __ovld remquo(double2 x, double2 y, __global int2 *quo);
-double3 __ovld remquo(double3 x, double3 y, __global int3 *quo);
-double4 __ovld remquo(double4 x, double4 y, __global int4 *quo);
-double8 __ovld remquo(double8 x, double8 y, __global int8 *quo);
-double16 __ovld remquo(double16 x, double16 y, __global int16 *quo);
-double __ovld remquo(double x, double y, __local int *quo);
-double2 __ovld remquo(double2 x, double2 y, __local int2 *quo);
-double3 __ovld remquo(double3 x, double3 y, __local int3 *quo);
-double4 __ovld remquo(double4 x, double4 y, __local int4 *quo);
-double8 __ovld remquo(double8 x, double8 y, __local int8 *quo);
-double16 __ovld remquo(double16 x, double16 y, __local int16 *quo);
-double __ovld remquo(double x, double y, __private int *quo);
-double2 __ovld remquo(double2 x, double2 y, __private int2 *quo);
-double3 __ovld remquo(double3 x, double3 y, __private int3 *quo);
-double4 __ovld remquo(double4 x, double4 y, __private int4 *quo);
-double8 __ovld remquo(double8 x, double8 y, __private int8 *quo);
-double16 __ovld remquo(double16 x, double16 y, __private int16 *quo);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld remquo(half x, half y, __global int *quo);
-half2 __ovld remquo(half2 x, half2 y, __global int2 *quo);
-half3 __ovld remquo(half3 x, half3 y, __global int3 *quo);
-half4 __ovld remquo(half4 x, half4 y, __global int4 *quo);
-half8 __ovld remquo(half8 x, half8 y, __global int8 *quo);
-half16 __ovld remquo(half16 x, half16 y, __global int16 *quo);
-half __ovld remquo(half x, half y, __local int *quo);
-half2 __ovld remquo(half2 x, half2 y, __local int2 *quo);
-half3 __ovld remquo(half3 x, half3 y, __local int3 *quo);
-half4 __ovld remquo(half4 x, half4 y, __local int4 *quo);
-half8 __ovld remquo(half8 x, half8 y, __local int8 *quo);
-half16 __ovld remquo(half16 x, half16 y, __local int16 *quo);
-half __ovld remquo(half x, half y, __private int *quo);
-half2 __ovld remquo(half2 x, half2 y, __private int2 *quo);
-half3 __ovld remquo(half3 x, half3 y, __private int3 *quo);
-half4 __ovld remquo(half4 x, half4 y, __private int4 *quo);
-half8 __ovld remquo(half8 x, half8 y, __private int8 *quo);
-half16 __ovld remquo(half16 x, half16 y, __private int16 *quo);
-#endif //cl_khr_fp16
-#endif //defined(__opencl_c_generic_address_space)
-/**
- * Round to integral value (using round to nearest
- * even rounding mode) in floating-point format.
- * Refer to section 7.1 for description of rounding
- * modes.
- */
-float __ovld __cnfn rint(float);
-float2 __ovld __cnfn rint(float2);
-float3 __ovld __cnfn rint(float3);
-float4 __ovld __cnfn rint(float4);
-float8 __ovld __cnfn rint(float8);
-float16 __ovld __cnfn rint(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn rint(double);
-double2 __ovld __cnfn rint(double2);
-double3 __ovld __cnfn rint(double3);
-double4 __ovld __cnfn rint(double4);
-double8 __ovld __cnfn rint(double8);
-double16 __ovld __cnfn rint(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn rint(half);
-half2 __ovld __cnfn rint(half2);
-half3 __ovld __cnfn rint(half3);
-half4 __ovld __cnfn rint(half4);
-half8 __ovld __cnfn rint(half8);
-half16 __ovld __cnfn rint(half16);
-#endif //cl_khr_fp16
-
-/**
- * Compute x to the power 1/y.
- */
-float __ovld __cnfn rootn(float x, int y);
-float2 __ovld __cnfn rootn(float2 x, int2 y);
-float3 __ovld __cnfn rootn(float3 x, int3 y);
-float4 __ovld __cnfn rootn(float4 x, int4 y);
-float8 __ovld __cnfn rootn(float8 x, int8 y);
-float16 __ovld __cnfn rootn(float16 x, int16 y);
-#ifdef cl_khr_fp64
-double __ovld __cnfn rootn(double x, int y);
-double2 __ovld __cnfn rootn(double2 x, int2 y);
-double3 __ovld __cnfn rootn(double3 x, int3 y);
-double4 __ovld __cnfn rootn(double4 x, int4 y);
-double8 __ovld __cnfn rootn(double8 x, int8 y);
-double16 __ovld __cnfn rootn(double16 x, int16 y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn rootn(half x, int y);
-half2 __ovld __cnfn rootn(half2 x, int2 y);
-half3 __ovld __cnfn rootn(half3 x, int3 y);
-half4 __ovld __cnfn rootn(half4 x, int4 y);
-half8 __ovld __cnfn rootn(half8 x, int8 y);
-half16 __ovld __cnfn rootn(half16 x, int16 y);
-#endif //cl_khr_fp16
-
-/**
- * Return the integral value nearest to x rounding
- * halfway cases away from zero, regardless of the
- * current rounding direction.
- */
-float __ovld __cnfn round(float x);
-float2 __ovld __cnfn round(float2 x);
-float3 __ovld __cnfn round(float3 x);
-float4 __ovld __cnfn round(float4 x);
-float8 __ovld __cnfn round(float8 x);
-float16 __ovld __cnfn round(float16 x);
-#ifdef cl_khr_fp64
-double __ovld __cnfn round(double x);
-double2 __ovld __cnfn round(double2 x);
-double3 __ovld __cnfn round(double3 x);
-double4 __ovld __cnfn round(double4 x);
-double8 __ovld __cnfn round(double8 x);
-double16 __ovld __cnfn round(double16 x);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn round(half x);
-half2 __ovld __cnfn round(half2 x);
-half3 __ovld __cnfn round(half3 x);
-half4 __ovld __cnfn round(half4 x);
-half8 __ovld __cnfn round(half8 x);
-half16 __ovld __cnfn round(half16 x);
-#endif //cl_khr_fp16
-
-/**
- * Compute inverse square root.
- */
-float __ovld __cnfn rsqrt(float);
-float2 __ovld __cnfn rsqrt(float2);
-float3 __ovld __cnfn rsqrt(float3);
-float4 __ovld __cnfn rsqrt(float4);
-float8 __ovld __cnfn rsqrt(float8);
-float16 __ovld __cnfn rsqrt(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn rsqrt(double);
-double2 __ovld __cnfn rsqrt(double2);
-double3 __ovld __cnfn rsqrt(double3);
-double4 __ovld __cnfn rsqrt(double4);
-double8 __ovld __cnfn rsqrt(double8);
-double16 __ovld __cnfn rsqrt(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn rsqrt(half);
-half2 __ovld __cnfn rsqrt(half2);
-half3 __ovld __cnfn rsqrt(half3);
-half4 __ovld __cnfn rsqrt(half4);
-half8 __ovld __cnfn rsqrt(half8);
-half16 __ovld __cnfn rsqrt(half16);
-#endif //cl_khr_fp16
-
-/**
- * Compute sine.
- */
-float __ovld __cnfn sin(float);
-float2 __ovld __cnfn sin(float2);
-float3 __ovld __cnfn sin(float3);
-float4 __ovld __cnfn sin(float4);
-float8 __ovld __cnfn sin(float8);
-float16 __ovld __cnfn sin(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn sin(double);
-double2 __ovld __cnfn sin(double2);
-double3 __ovld __cnfn sin(double3);
-double4 __ovld __cnfn sin(double4);
-double8 __ovld __cnfn sin(double8);
-double16 __ovld __cnfn sin(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn sin(half);
-half2 __ovld __cnfn sin(half2);
-half3 __ovld __cnfn sin(half3);
-half4 __ovld __cnfn sin(half4);
-half8 __ovld __cnfn sin(half8);
-half16 __ovld __cnfn sin(half16);
-#endif //cl_khr_fp16
-
-/**
- * Compute sine and cosine of x. The computed sine
- * is the return value and computed cosine is returned
- * in cosval.
- */
-#if defined(__opencl_c_generic_address_space)
-float __ovld sincos(float x, float *cosval);
-float2 __ovld sincos(float2 x, float2 *cosval);
-float3 __ovld sincos(float3 x, float3 *cosval);
-float4 __ovld sincos(float4 x, float4 *cosval);
-float8 __ovld sincos(float8 x, float8 *cosval);
-float16 __ovld sincos(float16 x, float16 *cosval);
-#ifdef cl_khr_fp64
-double __ovld sincos(double x, double *cosval);
-double2 __ovld sincos(double2 x, double2 *cosval);
-double3 __ovld sincos(double3 x, double3 *cosval);
-double4 __ovld sincos(double4 x, double4 *cosval);
-double8 __ovld sincos(double8 x, double8 *cosval);
-double16 __ovld sincos(double16 x, double16 *cosval);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld sincos(half x, half *cosval);
-half2 __ovld sincos(half2 x, half2 *cosval);
-half3 __ovld sincos(half3 x, half3 *cosval);
-half4 __ovld sincos(half4 x, half4 *cosval);
-half8 __ovld sincos(half8 x, half8 *cosval);
-half16 __ovld sincos(half16 x, half16 *cosval);
-#endif //cl_khr_fp16
-#else
-float __ovld sincos(float x, __global float *cosval);
-float2 __ovld sincos(float2 x, __global float2 *cosval);
-float3 __ovld sincos(float3 x, __global float3 *cosval);
-float4 __ovld sincos(float4 x, __global float4 *cosval);
-float8 __ovld sincos(float8 x, __global float8 *cosval);
-float16 __ovld sincos(float16 x, __global float16 *cosval);
-float __ovld sincos(float x, __local float *cosval);
-float2 __ovld sincos(float2 x, __local float2 *cosval);
-float3 __ovld sincos(float3 x, __local float3 *cosval);
-float4 __ovld sincos(float4 x, __local float4 *cosval);
-float8 __ovld sincos(float8 x, __local float8 *cosval);
-float16 __ovld sincos(float16 x, __local float16 *cosval);
-float __ovld sincos(float x, __private float *cosval);
-float2 __ovld sincos(float2 x, __private float2 *cosval);
-float3 __ovld sincos(float3 x, __private float3 *cosval);
-float4 __ovld sincos(float4 x, __private float4 *cosval);
-float8 __ovld sincos(float8 x, __private float8 *cosval);
-float16 __ovld sincos(float16 x, __private float16 *cosval);
-#ifdef cl_khr_fp64
-double __ovld sincos(double x, __global double *cosval);
-double2 __ovld sincos(double2 x, __global double2 *cosval);
-double3 __ovld sincos(double3 x, __global double3 *cosval);
-double4 __ovld sincos(double4 x, __global double4 *cosval);
-double8 __ovld sincos(double8 x, __global double8 *cosval);
-double16 __ovld sincos(double16 x, __global double16 *cosval);
-double __ovld sincos(double x, __local double *cosval);
-double2 __ovld sincos(double2 x, __local double2 *cosval);
-double3 __ovld sincos(double3 x, __local double3 *cosval);
-double4 __ovld sincos(double4 x, __local double4 *cosval);
-double8 __ovld sincos(double8 x, __local double8 *cosval);
-double16 __ovld sincos(double16 x, __local double16 *cosval);
-double __ovld sincos(double x, __private double *cosval);
-double2 __ovld sincos(double2 x, __private double2 *cosval);
-double3 __ovld sincos(double3 x, __private double3 *cosval);
-double4 __ovld sincos(double4 x, __private double4 *cosval);
-double8 __ovld sincos(double8 x, __private double8 *cosval);
-double16 __ovld sincos(double16 x, __private double16 *cosval);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld sincos(half x, __global half *cosval);
-half2 __ovld sincos(half2 x, __global half2 *cosval);
-half3 __ovld sincos(half3 x, __global half3 *cosval);
-half4 __ovld sincos(half4 x, __global half4 *cosval);
-half8 __ovld sincos(half8 x, __global half8 *cosval);
-half16 __ovld sincos(half16 x, __global half16 *cosval);
-half __ovld sincos(half x, __local half *cosval);
-half2 __ovld sincos(half2 x, __local half2 *cosval);
-half3 __ovld sincos(half3 x, __local half3 *cosval);
-half4 __ovld sincos(half4 x, __local half4 *cosval);
-half8 __ovld sincos(half8 x, __local half8 *cosval);
-half16 __ovld sincos(half16 x, __local half16 *cosval);
-half __ovld sincos(half x, __private half *cosval);
-half2 __ovld sincos(half2 x, __private half2 *cosval);
-half3 __ovld sincos(half3 x, __private half3 *cosval);
-half4 __ovld sincos(half4 x, __private half4 *cosval);
-half8 __ovld sincos(half8 x, __private half8 *cosval);
-half16 __ovld sincos(half16 x, __private half16 *cosval);
-#endif //cl_khr_fp16
-#endif //defined(__opencl_c_generic_address_space)
-
-/**
- * Compute hyperbolic sine.
- */
-float __ovld __cnfn sinh(float);
-float2 __ovld __cnfn sinh(float2);
-float3 __ovld __cnfn sinh(float3);
-float4 __ovld __cnfn sinh(float4);
-float8 __ovld __cnfn sinh(float8);
-float16 __ovld __cnfn sinh(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn sinh(double);
-double2 __ovld __cnfn sinh(double2);
-double3 __ovld __cnfn sinh(double3);
-double4 __ovld __cnfn sinh(double4);
-double8 __ovld __cnfn sinh(double8);
-double16 __ovld __cnfn sinh(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn sinh(half);
-half2 __ovld __cnfn sinh(half2);
-half3 __ovld __cnfn sinh(half3);
-half4 __ovld __cnfn sinh(half4);
-half8 __ovld __cnfn sinh(half8);
-half16 __ovld __cnfn sinh(half16);
-#endif //cl_khr_fp16
-
-/**
- * Compute sin (PI * x).
- */
-float __ovld __cnfn sinpi(float x);
-float2 __ovld __cnfn sinpi(float2 x);
-float3 __ovld __cnfn sinpi(float3 x);
-float4 __ovld __cnfn sinpi(float4 x);
-float8 __ovld __cnfn sinpi(float8 x);
-float16 __ovld __cnfn sinpi(float16 x);
-#ifdef cl_khr_fp64
-double __ovld __cnfn sinpi(double x);
-double2 __ovld __cnfn sinpi(double2 x);
-double3 __ovld __cnfn sinpi(double3 x);
-double4 __ovld __cnfn sinpi(double4 x);
-double8 __ovld __cnfn sinpi(double8 x);
-double16 __ovld __cnfn sinpi(double16 x);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn sinpi(half x);
-half2 __ovld __cnfn sinpi(half2 x);
-half3 __ovld __cnfn sinpi(half3 x);
-half4 __ovld __cnfn sinpi(half4 x);
-half8 __ovld __cnfn sinpi(half8 x);
-half16 __ovld __cnfn sinpi(half16 x);
-#endif //cl_khr_fp16
-
-/**
- * Compute square root.
- */
-float __ovld __cnfn sqrt(float);
-float2 __ovld __cnfn sqrt(float2);
-float3 __ovld __cnfn sqrt(float3);
-float4 __ovld __cnfn sqrt(float4);
-float8 __ovld __cnfn sqrt(float8);
-float16 __ovld __cnfn sqrt(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn sqrt(double);
-double2 __ovld __cnfn sqrt(double2);
-double3 __ovld __cnfn sqrt(double3);
-double4 __ovld __cnfn sqrt(double4);
-double8 __ovld __cnfn sqrt(double8);
-double16 __ovld __cnfn sqrt(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn sqrt(half);
-half2 __ovld __cnfn sqrt(half2);
-half3 __ovld __cnfn sqrt(half3);
-half4 __ovld __cnfn sqrt(half4);
-half8 __ovld __cnfn sqrt(half8);
-half16 __ovld __cnfn sqrt(half16);
-#endif //cl_khr_fp16
-
-/**
- * Compute tangent.
- */
-float __ovld __cnfn tan(float);
-float2 __ovld __cnfn tan(float2);
-float3 __ovld __cnfn tan(float3);
-float4 __ovld __cnfn tan(float4);
-float8 __ovld __cnfn tan(float8);
-float16 __ovld __cnfn tan(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn tan(double);
-double2 __ovld __cnfn tan(double2);
-double3 __ovld __cnfn tan(double3);
-double4 __ovld __cnfn tan(double4);
-double8 __ovld __cnfn tan(double8);
-double16 __ovld __cnfn tan(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn tan(half);
-half2 __ovld __cnfn tan(half2);
-half3 __ovld __cnfn tan(half3);
-half4 __ovld __cnfn tan(half4);
-half8 __ovld __cnfn tan(half8);
-half16 __ovld __cnfn tan(half16);
-#endif //cl_khr_fp16
-
-/**
- * Compute hyperbolic tangent.
- */
-float __ovld __cnfn tanh(float);
-float2 __ovld __cnfn tanh(float2);
-float3 __ovld __cnfn tanh(float3);
-float4 __ovld __cnfn tanh(float4);
-float8 __ovld __cnfn tanh(float8);
-float16 __ovld __cnfn tanh(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn tanh(double);
-double2 __ovld __cnfn tanh(double2);
-double3 __ovld __cnfn tanh(double3);
-double4 __ovld __cnfn tanh(double4);
-double8 __ovld __cnfn tanh(double8);
-double16 __ovld __cnfn tanh(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn tanh(half);
-half2 __ovld __cnfn tanh(half2);
-half3 __ovld __cnfn tanh(half3);
-half4 __ovld __cnfn tanh(half4);
-half8 __ovld __cnfn tanh(half8);
-half16 __ovld __cnfn tanh(half16);
-#endif //cl_khr_fp16
-
-/**
- * Compute tan (PI * x).
- */
-float __ovld __cnfn tanpi(float x);
-float2 __ovld __cnfn tanpi(float2 x);
-float3 __ovld __cnfn tanpi(float3 x);
-float4 __ovld __cnfn tanpi(float4 x);
-float8 __ovld __cnfn tanpi(float8 x);
-float16 __ovld __cnfn tanpi(float16 x);
-#ifdef cl_khr_fp64
-double __ovld __cnfn tanpi(double x);
-double2 __ovld __cnfn tanpi(double2 x);
-double3 __ovld __cnfn tanpi(double3 x);
-double4 __ovld __cnfn tanpi(double4 x);
-double8 __ovld __cnfn tanpi(double8 x);
-double16 __ovld __cnfn tanpi(double16 x);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn tanpi(half x);
-half2 __ovld __cnfn tanpi(half2 x);
-half3 __ovld __cnfn tanpi(half3 x);
-half4 __ovld __cnfn tanpi(half4 x);
-half8 __ovld __cnfn tanpi(half8 x);
-half16 __ovld __cnfn tanpi(half16 x);
-#endif //cl_khr_fp16
-
-/**
- * Compute the gamma function.
- */
-float __ovld __cnfn tgamma(float);
-float2 __ovld __cnfn tgamma(float2);
-float3 __ovld __cnfn tgamma(float3);
-float4 __ovld __cnfn tgamma(float4);
-float8 __ovld __cnfn tgamma(float8);
-float16 __ovld __cnfn tgamma(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn tgamma(double);
-double2 __ovld __cnfn tgamma(double2);
-double3 __ovld __cnfn tgamma(double3);
-double4 __ovld __cnfn tgamma(double4);
-double8 __ovld __cnfn tgamma(double8);
-double16 __ovld __cnfn tgamma(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn tgamma(half);
-half2 __ovld __cnfn tgamma(half2);
-half3 __ovld __cnfn tgamma(half3);
-half4 __ovld __cnfn tgamma(half4);
-half8 __ovld __cnfn tgamma(half8);
-half16 __ovld __cnfn tgamma(half16);
-#endif //cl_khr_fp16
-
-/**
- * Round to integral value using the round to zero
- * rounding mode.
- */
-float __ovld __cnfn trunc(float);
-float2 __ovld __cnfn trunc(float2);
-float3 __ovld __cnfn trunc(float3);
-float4 __ovld __cnfn trunc(float4);
-float8 __ovld __cnfn trunc(float8);
-float16 __ovld __cnfn trunc(float16);
-#ifdef cl_khr_fp64
-double __ovld __cnfn trunc(double);
-double2 __ovld __cnfn trunc(double2);
-double3 __ovld __cnfn trunc(double3);
-double4 __ovld __cnfn trunc(double4);
-double8 __ovld __cnfn trunc(double8);
-double16 __ovld __cnfn trunc(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn trunc(half);
-half2 __ovld __cnfn trunc(half2);
-half3 __ovld __cnfn trunc(half3);
-half4 __ovld __cnfn trunc(half4);
-half8 __ovld __cnfn trunc(half8);
-half16 __ovld __cnfn trunc(half16);
-#endif //cl_khr_fp16
-
-/**
- * Compute cosine. x must be in the range -2^16 ... +2^16.
- */
-float __ovld __cnfn half_cos(float x);
-float2 __ovld __cnfn half_cos(float2 x);
-float3 __ovld __cnfn half_cos(float3 x);
-float4 __ovld __cnfn half_cos(float4 x);
-float8 __ovld __cnfn half_cos(float8 x);
-float16 __ovld __cnfn half_cos(float16 x);
-
-/**
- * Compute x / y.
- */
-float __ovld __cnfn half_divide(float x, float y);
-float2 __ovld __cnfn half_divide(float2 x, float2 y);
-float3 __ovld __cnfn half_divide(float3 x, float3 y);
-float4 __ovld __cnfn half_divide(float4 x, float4 y);
-float8 __ovld __cnfn half_divide(float8 x, float8 y);
-float16 __ovld __cnfn half_divide(float16 x, float16 y);
-
-/**
- * Compute the base- e exponential of x.
- */
-float __ovld __cnfn half_exp(float x);
-float2 __ovld __cnfn half_exp(float2 x);
-float3 __ovld __cnfn half_exp(float3 x);
-float4 __ovld __cnfn half_exp(float4 x);
-float8 __ovld __cnfn half_exp(float8 x);
-float16 __ovld __cnfn half_exp(float16 x);
-
-/**
- * Compute the base- 2 exponential of x.
- */
-float __ovld __cnfn half_exp2(float x);
-float2 __ovld __cnfn half_exp2(float2 x);
-float3 __ovld __cnfn half_exp2(float3 x);
-float4 __ovld __cnfn half_exp2(float4 x);
-float8 __ovld __cnfn half_exp2(float8 x);
-float16 __ovld __cnfn half_exp2(float16 x);
-
-/**
- * Compute the base- 10 exponential of x.
- */
-float __ovld __cnfn half_exp10(float x);
-float2 __ovld __cnfn half_exp10(float2 x);
-float3 __ovld __cnfn half_exp10(float3 x);
-float4 __ovld __cnfn half_exp10(float4 x);
-float8 __ovld __cnfn half_exp10(float8 x);
-float16 __ovld __cnfn half_exp10(float16 x);
-
-/**
- * Compute natural logarithm.
- */
-float __ovld __cnfn half_log(float x);
-float2 __ovld __cnfn half_log(float2 x);
-float3 __ovld __cnfn half_log(float3 x);
-float4 __ovld __cnfn half_log(float4 x);
-float8 __ovld __cnfn half_log(float8 x);
-float16 __ovld __cnfn half_log(float16 x);
-
-/**
- * Compute a base 2 logarithm.
- */
-float __ovld __cnfn half_log2(float x);
-float2 __ovld __cnfn half_log2(float2 x);
-float3 __ovld __cnfn half_log2(float3 x);
-float4 __ovld __cnfn half_log2(float4 x);
-float8 __ovld __cnfn half_log2(float8 x);
-float16 __ovld __cnfn half_log2(float16 x);
-
-/**
- * Compute a base 10 logarithm.
- */
-float __ovld __cnfn half_log10(float x);
-float2 __ovld __cnfn half_log10(float2 x);
-float3 __ovld __cnfn half_log10(float3 x);
-float4 __ovld __cnfn half_log10(float4 x);
-float8 __ovld __cnfn half_log10(float8 x);
-float16 __ovld __cnfn half_log10(float16 x);
-
-/**
- * Compute x to the power y, where x is >= 0.
- */
-float __ovld __cnfn half_powr(float x, float y);
-float2 __ovld __cnfn half_powr(float2 x, float2 y);
-float3 __ovld __cnfn half_powr(float3 x, float3 y);
-float4 __ovld __cnfn half_powr(float4 x, float4 y);
-float8 __ovld __cnfn half_powr(float8 x, float8 y);
-float16 __ovld __cnfn half_powr(float16 x, float16 y);
-
-/**
- * Compute reciprocal.
- */
-float __ovld __cnfn half_recip(float x);
-float2 __ovld __cnfn half_recip(float2 x);
-float3 __ovld __cnfn half_recip(float3 x);
-float4 __ovld __cnfn half_recip(float4 x);
-float8 __ovld __cnfn half_recip(float8 x);
-float16 __ovld __cnfn half_recip(float16 x);
-
-/**
- * Compute inverse square root.
- */
-float __ovld __cnfn half_rsqrt(float x);
-float2 __ovld __cnfn half_rsqrt(float2 x);
-float3 __ovld __cnfn half_rsqrt(float3 x);
-float4 __ovld __cnfn half_rsqrt(float4 x);
-float8 __ovld __cnfn half_rsqrt(float8 x);
-float16 __ovld __cnfn half_rsqrt(float16 x);
-
-/**
- * Compute sine. x must be in the range -2^16 ... +2^16.
- */
-float __ovld __cnfn half_sin(float x);
-float2 __ovld __cnfn half_sin(float2 x);
-float3 __ovld __cnfn half_sin(float3 x);
-float4 __ovld __cnfn half_sin(float4 x);
-float8 __ovld __cnfn half_sin(float8 x);
-float16 __ovld __cnfn half_sin(float16 x);
-
-/**
- * Compute square root.
- */
-float __ovld __cnfn half_sqrt(float x);
-float2 __ovld __cnfn half_sqrt(float2 x);
-float3 __ovld __cnfn half_sqrt(float3 x);
-float4 __ovld __cnfn half_sqrt(float4 x);
-float8 __ovld __cnfn half_sqrt(float8 x);
-float16 __ovld __cnfn half_sqrt(float16 x);
-
-/**
- * Compute tangent. x must be in the range -216 ... +216.
- */
-float __ovld __cnfn half_tan(float x);
-float2 __ovld __cnfn half_tan(float2 x);
-float3 __ovld __cnfn half_tan(float3 x);
-float4 __ovld __cnfn half_tan(float4 x);
-float8 __ovld __cnfn half_tan(float8 x);
-float16 __ovld __cnfn half_tan(float16 x);
-
-/**
- * Compute cosine over an implementation-defined range.
- * The maximum error is implementation-defined.
- */
-float __ovld __cnfn native_cos(float x);
-float2 __ovld __cnfn native_cos(float2 x);
-float3 __ovld __cnfn native_cos(float3 x);
-float4 __ovld __cnfn native_cos(float4 x);
-float8 __ovld __cnfn native_cos(float8 x);
-float16 __ovld __cnfn native_cos(float16 x);
-
-/**
- * Compute x / y over an implementation-defined range.
- * The maximum error is implementation-defined.
- */
-float __ovld __cnfn native_divide(float x, float y);
-float2 __ovld __cnfn native_divide(float2 x, float2 y);
-float3 __ovld __cnfn native_divide(float3 x, float3 y);
-float4 __ovld __cnfn native_divide(float4 x, float4 y);
-float8 __ovld __cnfn native_divide(float8 x, float8 y);
-float16 __ovld __cnfn native_divide(float16 x, float16 y);
-
-/**
- * Compute the base- e exponential of x over an
- * implementation-defined range. The maximum error is
- * implementation-defined.
- */
-float __ovld __cnfn native_exp(float x);
-float2 __ovld __cnfn native_exp(float2 x);
-float3 __ovld __cnfn native_exp(float3 x);
-float4 __ovld __cnfn native_exp(float4 x);
-float8 __ovld __cnfn native_exp(float8 x);
-float16 __ovld __cnfn native_exp(float16 x);
-
-/**
- * Compute the base- 2 exponential of x over an
- * implementation-defined range. The maximum error is
- * implementation-defined.
- */
-float __ovld __cnfn native_exp2(float x);
-float2 __ovld __cnfn native_exp2(float2 x);
-float3 __ovld __cnfn native_exp2(float3 x);
-float4 __ovld __cnfn native_exp2(float4 x);
-float8 __ovld __cnfn native_exp2(float8 x);
-float16 __ovld __cnfn native_exp2(float16 x);
-
-/**
- * Compute the base- 10 exponential of x over an
- * implementation-defined range. The maximum error is
- * implementation-defined.
- */
-float __ovld __cnfn native_exp10(float x);
-float2 __ovld __cnfn native_exp10(float2 x);
-float3 __ovld __cnfn native_exp10(float3 x);
-float4 __ovld __cnfn native_exp10(float4 x);
-float8 __ovld __cnfn native_exp10(float8 x);
-float16 __ovld __cnfn native_exp10(float16 x);
-
-/**
- * Compute natural logarithm over an implementationdefined
- * range. The maximum error is implementation
- * defined.
- */
-float __ovld __cnfn native_log(float x);
-float2 __ovld __cnfn native_log(float2 x);
-float3 __ovld __cnfn native_log(float3 x);
-float4 __ovld __cnfn native_log(float4 x);
-float8 __ovld __cnfn native_log(float8 x);
-float16 __ovld __cnfn native_log(float16 x);
-
-/**
- * Compute a base 2 logarithm over an implementationdefined
- * range. The maximum error is implementationdefined.
- */
-float __ovld __cnfn native_log2(float x);
-float2 __ovld __cnfn native_log2(float2 x);
-float3 __ovld __cnfn native_log2(float3 x);
-float4 __ovld __cnfn native_log2(float4 x);
-float8 __ovld __cnfn native_log2(float8 x);
-float16 __ovld __cnfn native_log2(float16 x);
-
-/**
- * Compute a base 10 logarithm over an implementationdefined
- * range. The maximum error is implementationdefined.
- */
-float __ovld __cnfn native_log10(float x);
-float2 __ovld __cnfn native_log10(float2 x);
-float3 __ovld __cnfn native_log10(float3 x);
-float4 __ovld __cnfn native_log10(float4 x);
-float8 __ovld __cnfn native_log10(float8 x);
-float16 __ovld __cnfn native_log10(float16 x);
-
-/**
- * Compute x to the power y, where x is >= 0. The range of
- * x and y are implementation-defined. The maximum error
- * is implementation-defined.
- */
-float __ovld __cnfn native_powr(float x, float y);
-float2 __ovld __cnfn native_powr(float2 x, float2 y);
-float3 __ovld __cnfn native_powr(float3 x, float3 y);
-float4 __ovld __cnfn native_powr(float4 x, float4 y);
-float8 __ovld __cnfn native_powr(float8 x, float8 y);
-float16 __ovld __cnfn native_powr(float16 x, float16 y);
-
-/**
- * Compute reciprocal over an implementation-defined
- * range. The maximum error is implementation-defined.
- */
-float __ovld __cnfn native_recip(float x);
-float2 __ovld __cnfn native_recip(float2 x);
-float3 __ovld __cnfn native_recip(float3 x);
-float4 __ovld __cnfn native_recip(float4 x);
-float8 __ovld __cnfn native_recip(float8 x);
-float16 __ovld __cnfn native_recip(float16 x);
-
-/**
- * Compute inverse square root over an implementationdefined
- * range. The maximum error is implementationdefined.
- */
-float __ovld __cnfn native_rsqrt(float x);
-float2 __ovld __cnfn native_rsqrt(float2 x);
-float3 __ovld __cnfn native_rsqrt(float3 x);
-float4 __ovld __cnfn native_rsqrt(float4 x);
-float8 __ovld __cnfn native_rsqrt(float8 x);
-float16 __ovld __cnfn native_rsqrt(float16 x);
-
-/**
- * Compute sine over an implementation-defined range.
- * The maximum error is implementation-defined.
- */
-float __ovld __cnfn native_sin(float x);
-float2 __ovld __cnfn native_sin(float2 x);
-float3 __ovld __cnfn native_sin(float3 x);
-float4 __ovld __cnfn native_sin(float4 x);
-float8 __ovld __cnfn native_sin(float8 x);
-float16 __ovld __cnfn native_sin(float16 x);
-
-/**
- * Compute square root over an implementation-defined
- * range. The maximum error is implementation-defined.
- */
-float __ovld __cnfn native_sqrt(float x);
-float2 __ovld __cnfn native_sqrt(float2 x);
-float3 __ovld __cnfn native_sqrt(float3 x);
-float4 __ovld __cnfn native_sqrt(float4 x);
-float8 __ovld __cnfn native_sqrt(float8 x);
-float16 __ovld __cnfn native_sqrt(float16 x);
-
-/**
- * Compute tangent over an implementation-defined range.
- * The maximum error is implementation-defined.
- */
-float __ovld __cnfn native_tan(float x);
-float2 __ovld __cnfn native_tan(float2 x);
-float3 __ovld __cnfn native_tan(float3 x);
-float4 __ovld __cnfn native_tan(float4 x);
-float8 __ovld __cnfn native_tan(float8 x);
-float16 __ovld __cnfn native_tan(float16 x);
-
-// OpenCL v1.1 s6.11.3, v1.2 s6.12.3, v2.0 s6.13.3 - Integer Functions
-
-/**
- * Returns | x |.
- */
-uchar __ovld __cnfn abs(char x);
-uchar __ovld __cnfn abs(uchar x);
-uchar2 __ovld __cnfn abs(char2 x);
-uchar2 __ovld __cnfn abs(uchar2 x);
-uchar3 __ovld __cnfn abs(char3 x);
-uchar3 __ovld __cnfn abs(uchar3 x);
-uchar4 __ovld __cnfn abs(char4 x);
-uchar4 __ovld __cnfn abs(uchar4 x);
-uchar8 __ovld __cnfn abs(char8 x);
-uchar8 __ovld __cnfn abs(uchar8 x);
-uchar16 __ovld __cnfn abs(char16 x);
-uchar16 __ovld __cnfn abs(uchar16 x);
-ushort __ovld __cnfn abs(short x);
-ushort __ovld __cnfn abs(ushort x);
-ushort2 __ovld __cnfn abs(short2 x);
-ushort2 __ovld __cnfn abs(ushort2 x);
-ushort3 __ovld __cnfn abs(short3 x);
-ushort3 __ovld __cnfn abs(ushort3 x);
-ushort4 __ovld __cnfn abs(short4 x);
-ushort4 __ovld __cnfn abs(ushort4 x);
-ushort8 __ovld __cnfn abs(short8 x);
-ushort8 __ovld __cnfn abs(ushort8 x);
-ushort16 __ovld __cnfn abs(short16 x);
-ushort16 __ovld __cnfn abs(ushort16 x);
-uint __ovld __cnfn abs(int x);
-uint __ovld __cnfn abs(uint x);
-uint2 __ovld __cnfn abs(int2 x);
-uint2 __ovld __cnfn abs(uint2 x);
-uint3 __ovld __cnfn abs(int3 x);
-uint3 __ovld __cnfn abs(uint3 x);
-uint4 __ovld __cnfn abs(int4 x);
-uint4 __ovld __cnfn abs(uint4 x);
-uint8 __ovld __cnfn abs(int8 x);
-uint8 __ovld __cnfn abs(uint8 x);
-uint16 __ovld __cnfn abs(int16 x);
-uint16 __ovld __cnfn abs(uint16 x);
-ulong __ovld __cnfn abs(long x);
-ulong __ovld __cnfn abs(ulong x);
-ulong2 __ovld __cnfn abs(long2 x);
-ulong2 __ovld __cnfn abs(ulong2 x);
-ulong3 __ovld __cnfn abs(long3 x);
-ulong3 __ovld __cnfn abs(ulong3 x);
-ulong4 __ovld __cnfn abs(long4 x);
-ulong4 __ovld __cnfn abs(ulong4 x);
-ulong8 __ovld __cnfn abs(long8 x);
-ulong8 __ovld __cnfn abs(ulong8 x);
-ulong16 __ovld __cnfn abs(long16 x);
-ulong16 __ovld __cnfn abs(ulong16 x);
-
-/**
- * Returns | x - y | without modulo overflow.
- */
-uchar __ovld __cnfn abs_diff(char x, char y);
-uchar __ovld __cnfn abs_diff(uchar x, uchar y);
-uchar2 __ovld __cnfn abs_diff(char2 x, char2 y);
-uchar2 __ovld __cnfn abs_diff(uchar2 x, uchar2 y);
-uchar3 __ovld __cnfn abs_diff(char3 x, char3 y);
-uchar3 __ovld __cnfn abs_diff(uchar3 x, uchar3 y);
-uchar4 __ovld __cnfn abs_diff(char4 x, char4 y);
-uchar4 __ovld __cnfn abs_diff(uchar4 x, uchar4 y);
-uchar8 __ovld __cnfn abs_diff(char8 x, char8 y);
-uchar8 __ovld __cnfn abs_diff(uchar8 x, uchar8 y);
-uchar16 __ovld __cnfn abs_diff(char16 x, char16 y);
-uchar16 __ovld __cnfn abs_diff(uchar16 x, uchar16 y);
-ushort __ovld __cnfn abs_diff(short x, short y);
-ushort __ovld __cnfn abs_diff(ushort x, ushort y);
-ushort2 __ovld __cnfn abs_diff(short2 x, short2 y);
-ushort2 __ovld __cnfn abs_diff(ushort2 x, ushort2 y);
-ushort3 __ovld __cnfn abs_diff(short3 x, short3 y);
-ushort3 __ovld __cnfn abs_diff(ushort3 x, ushort3 y);
-ushort4 __ovld __cnfn abs_diff(short4 x, short4 y);
-ushort4 __ovld __cnfn abs_diff(ushort4 x, ushort4 y);
-ushort8 __ovld __cnfn abs_diff(short8 x, short8 y);
-ushort8 __ovld __cnfn abs_diff(ushort8 x, ushort8 y);
-ushort16 __ovld __cnfn abs_diff(short16 x, short16 y);
-ushort16 __ovld __cnfn abs_diff(ushort16 x, ushort16 y);
-uint __ovld __cnfn abs_diff(int x, int y);
-uint __ovld __cnfn abs_diff(uint x, uint y);
-uint2 __ovld __cnfn abs_diff(int2 x, int2 y);
-uint2 __ovld __cnfn abs_diff(uint2 x, uint2 y);
-uint3 __ovld __cnfn abs_diff(int3 x, int3 y);
-uint3 __ovld __cnfn abs_diff(uint3 x, uint3 y);
-uint4 __ovld __cnfn abs_diff(int4 x, int4 y);
-uint4 __ovld __cnfn abs_diff(uint4 x, uint4 y);
-uint8 __ovld __cnfn abs_diff(int8 x, int8 y);
-uint8 __ovld __cnfn abs_diff(uint8 x, uint8 y);
-uint16 __ovld __cnfn abs_diff(int16 x, int16 y);
-uint16 __ovld __cnfn abs_diff(uint16 x, uint16 y);
-ulong __ovld __cnfn abs_diff(long x, long y);
-ulong __ovld __cnfn abs_diff(ulong x, ulong y);
-ulong2 __ovld __cnfn abs_diff(long2 x, long2 y);
-ulong2 __ovld __cnfn abs_diff(ulong2 x, ulong2 y);
-ulong3 __ovld __cnfn abs_diff(long3 x, long3 y);
-ulong3 __ovld __cnfn abs_diff(ulong3 x, ulong3 y);
-ulong4 __ovld __cnfn abs_diff(long4 x, long4 y);
-ulong4 __ovld __cnfn abs_diff(ulong4 x, ulong4 y);
-ulong8 __ovld __cnfn abs_diff(long8 x, long8 y);
-ulong8 __ovld __cnfn abs_diff(ulong8 x, ulong8 y);
-ulong16 __ovld __cnfn abs_diff(long16 x, long16 y);
-ulong16 __ovld __cnfn abs_diff(ulong16 x, ulong16 y);
-
-/**
- * Returns x + y and saturates the result.
- */
-char __ovld __cnfn add_sat(char x, char y);
-uchar __ovld __cnfn add_sat(uchar x, uchar y);
-char2 __ovld __cnfn add_sat(char2 x, char2 y);
-uchar2 __ovld __cnfn add_sat(uchar2 x, uchar2 y);
-char3 __ovld __cnfn add_sat(char3 x, char3 y);
-uchar3 __ovld __cnfn add_sat(uchar3 x, uchar3 y);
-char4 __ovld __cnfn add_sat(char4 x, char4 y);
-uchar4 __ovld __cnfn add_sat(uchar4 x, uchar4 y);
-char8 __ovld __cnfn add_sat(char8 x, char8 y);
-uchar8 __ovld __cnfn add_sat(uchar8 x, uchar8 y);
-char16 __ovld __cnfn add_sat(char16 x, char16 y);
-uchar16 __ovld __cnfn add_sat(uchar16 x, uchar16 y);
-short __ovld __cnfn add_sat(short x, short y);
-ushort __ovld __cnfn add_sat(ushort x, ushort y);
-short2 __ovld __cnfn add_sat(short2 x, short2 y);
-ushort2 __ovld __cnfn add_sat(ushort2 x, ushort2 y);
-short3 __ovld __cnfn add_sat(short3 x, short3 y);
-ushort3 __ovld __cnfn add_sat(ushort3 x, ushort3 y);
-short4 __ovld __cnfn add_sat(short4 x, short4 y);
-ushort4 __ovld __cnfn add_sat(ushort4 x, ushort4 y);
-short8 __ovld __cnfn add_sat(short8 x, short8 y);
-ushort8 __ovld __cnfn add_sat(ushort8 x, ushort8 y);
-short16 __ovld __cnfn add_sat(short16 x, short16 y);
-ushort16 __ovld __cnfn add_sat(ushort16 x, ushort16 y);
-int __ovld __cnfn add_sat(int x, int y);
-uint __ovld __cnfn add_sat(uint x, uint y);
-int2 __ovld __cnfn add_sat(int2 x, int2 y);
-uint2 __ovld __cnfn add_sat(uint2 x, uint2 y);
-int3 __ovld __cnfn add_sat(int3 x, int3 y);
-uint3 __ovld __cnfn add_sat(uint3 x, uint3 y);
-int4 __ovld __cnfn add_sat(int4 x, int4 y);
-uint4 __ovld __cnfn add_sat(uint4 x, uint4 y);
-int8 __ovld __cnfn add_sat(int8 x, int8 y);
-uint8 __ovld __cnfn add_sat(uint8 x, uint8 y);
-int16 __ovld __cnfn add_sat(int16 x, int16 y);
-uint16 __ovld __cnfn add_sat(uint16 x, uint16 y);
-long __ovld __cnfn add_sat(long x, long y);
-ulong __ovld __cnfn add_sat(ulong x, ulong y);
-long2 __ovld __cnfn add_sat(long2 x, long2 y);
-ulong2 __ovld __cnfn add_sat(ulong2 x, ulong2 y);
-long3 __ovld __cnfn add_sat(long3 x, long3 y);
-ulong3 __ovld __cnfn add_sat(ulong3 x, ulong3 y);
-long4 __ovld __cnfn add_sat(long4 x, long4 y);
-ulong4 __ovld __cnfn add_sat(ulong4 x, ulong4 y);
-long8 __ovld __cnfn add_sat(long8 x, long8 y);
-ulong8 __ovld __cnfn add_sat(ulong8 x, ulong8 y);
-long16 __ovld __cnfn add_sat(long16 x, long16 y);
-ulong16 __ovld __cnfn add_sat(ulong16 x, ulong16 y);
-
-/**
- * Returns (x + y) >> 1. The intermediate sum does
- * not modulo overflow.
- */
-char __ovld __cnfn hadd(char x, char y);
-uchar __ovld __cnfn hadd(uchar x, uchar y);
-char2 __ovld __cnfn hadd(char2 x, char2 y);
-uchar2 __ovld __cnfn hadd(uchar2 x, uchar2 y);
-char3 __ovld __cnfn hadd(char3 x, char3 y);
-uchar3 __ovld __cnfn hadd(uchar3 x, uchar3 y);
-char4 __ovld __cnfn hadd(char4 x, char4 y);
-uchar4 __ovld __cnfn hadd(uchar4 x, uchar4 y);
-char8 __ovld __cnfn hadd(char8 x, char8 y);
-uchar8 __ovld __cnfn hadd(uchar8 x, uchar8 y);
-char16 __ovld __cnfn hadd(char16 x, char16 y);
-uchar16 __ovld __cnfn hadd(uchar16 x, uchar16 y);
-short __ovld __cnfn hadd(short x, short y);
-ushort __ovld __cnfn hadd(ushort x, ushort y);
-short2 __ovld __cnfn hadd(short2 x, short2 y);
-ushort2 __ovld __cnfn hadd(ushort2 x, ushort2 y);
-short3 __ovld __cnfn hadd(short3 x, short3 y);
-ushort3 __ovld __cnfn hadd(ushort3 x, ushort3 y);
-short4 __ovld __cnfn hadd(short4 x, short4 y);
-ushort4 __ovld __cnfn hadd(ushort4 x, ushort4 y);
-short8 __ovld __cnfn hadd(short8 x, short8 y);
-ushort8 __ovld __cnfn hadd(ushort8 x, ushort8 y);
-short16 __ovld __cnfn hadd(short16 x, short16 y);
-ushort16 __ovld __cnfn hadd(ushort16 x, ushort16 y);
-int __ovld __cnfn hadd(int x, int y);
-uint __ovld __cnfn hadd(uint x, uint y);
-int2 __ovld __cnfn hadd(int2 x, int2 y);
-uint2 __ovld __cnfn hadd(uint2 x, uint2 y);
-int3 __ovld __cnfn hadd(int3 x, int3 y);
-uint3 __ovld __cnfn hadd(uint3 x, uint3 y);
-int4 __ovld __cnfn hadd(int4 x, int4 y);
-uint4 __ovld __cnfn hadd(uint4 x, uint4 y);
-int8 __ovld __cnfn hadd(int8 x, int8 y);
-uint8 __ovld __cnfn hadd(uint8 x, uint8 y);
-int16 __ovld __cnfn hadd(int16 x, int16 y);
-uint16 __ovld __cnfn hadd(uint16 x, uint16 y);
-long __ovld __cnfn hadd(long x, long y);
-ulong __ovld __cnfn hadd(ulong x, ulong y);
-long2 __ovld __cnfn hadd(long2 x, long2 y);
-ulong2 __ovld __cnfn hadd(ulong2 x, ulong2 y);
-long3 __ovld __cnfn hadd(long3 x, long3 y);
-ulong3 __ovld __cnfn hadd(ulong3 x, ulong3 y);
-long4 __ovld __cnfn hadd(long4 x, long4 y);
-ulong4 __ovld __cnfn hadd(ulong4 x, ulong4 y);
-long8 __ovld __cnfn hadd(long8 x, long8 y);
-ulong8 __ovld __cnfn hadd(ulong8 x, ulong8 y);
-long16 __ovld __cnfn hadd(long16 x, long16 y);
-ulong16 __ovld __cnfn hadd(ulong16 x, ulong16 y);
-
-/**
- * Returns (x + y + 1) >> 1. The intermediate sum
- * does not modulo overflow.
- */
-char __ovld __cnfn rhadd(char x, char y);
-uchar __ovld __cnfn rhadd(uchar x, uchar y);
-char2 __ovld __cnfn rhadd(char2 x, char2 y);
-uchar2 __ovld __cnfn rhadd(uchar2 x, uchar2 y);
-char3 __ovld __cnfn rhadd(char3 x, char3 y);
-uchar3 __ovld __cnfn rhadd(uchar3 x, uchar3 y);
-char4 __ovld __cnfn rhadd(char4 x, char4 y);
-uchar4 __ovld __cnfn rhadd(uchar4 x, uchar4 y);
-char8 __ovld __cnfn rhadd(char8 x, char8 y);
-uchar8 __ovld __cnfn rhadd(uchar8 x, uchar8 y);
-char16 __ovld __cnfn rhadd(char16 x, char16 y);
-uchar16 __ovld __cnfn rhadd(uchar16 x, uchar16 y);
-short __ovld __cnfn rhadd(short x, short y);
-ushort __ovld __cnfn rhadd(ushort x, ushort y);
-short2 __ovld __cnfn rhadd(short2 x, short2 y);
-ushort2 __ovld __cnfn rhadd(ushort2 x, ushort2 y);
-short3 __ovld __cnfn rhadd(short3 x, short3 y);
-ushort3 __ovld __cnfn rhadd(ushort3 x, ushort3 y);
-short4 __ovld __cnfn rhadd(short4 x, short4 y);
-ushort4 __ovld __cnfn rhadd(ushort4 x, ushort4 y);
-short8 __ovld __cnfn rhadd(short8 x, short8 y);
-ushort8 __ovld __cnfn rhadd(ushort8 x, ushort8 y);
-short16 __ovld __cnfn rhadd(short16 x, short16 y);
-ushort16 __ovld __cnfn rhadd(ushort16 x, ushort16 y);
-int __ovld __cnfn rhadd(int x, int y);
-uint __ovld __cnfn rhadd(uint x, uint y);
-int2 __ovld __cnfn rhadd(int2 x, int2 y);
-uint2 __ovld __cnfn rhadd(uint2 x, uint2 y);
-int3 __ovld __cnfn rhadd(int3 x, int3 y);
-uint3 __ovld __cnfn rhadd(uint3 x, uint3 y);
-int4 __ovld __cnfn rhadd(int4 x, int4 y);
-uint4 __ovld __cnfn rhadd(uint4 x, uint4 y);
-int8 __ovld __cnfn rhadd(int8 x, int8 y);
-uint8 __ovld __cnfn rhadd(uint8 x, uint8 y);
-int16 __ovld __cnfn rhadd(int16 x, int16 y);
-uint16 __ovld __cnfn rhadd(uint16 x, uint16 y);
-long __ovld __cnfn rhadd(long x, long y);
-ulong __ovld __cnfn rhadd(ulong x, ulong y);
-long2 __ovld __cnfn rhadd(long2 x, long2 y);
-ulong2 __ovld __cnfn rhadd(ulong2 x, ulong2 y);
-long3 __ovld __cnfn rhadd(long3 x, long3 y);
-ulong3 __ovld __cnfn rhadd(ulong3 x, ulong3 y);
-long4 __ovld __cnfn rhadd(long4 x, long4 y);
-ulong4 __ovld __cnfn rhadd(ulong4 x, ulong4 y);
-long8 __ovld __cnfn rhadd(long8 x, long8 y);
-ulong8 __ovld __cnfn rhadd(ulong8 x, ulong8 y);
-long16 __ovld __cnfn rhadd(long16 x, long16 y);
-ulong16 __ovld __cnfn rhadd(ulong16 x, ulong16 y);
-
-/**
- * Returns min(max(x, minval), maxval).
- * Results are undefined if minval > maxval.
- */
-char __ovld __cnfn clamp(char x, char minval, char maxval);
-uchar __ovld __cnfn clamp(uchar x, uchar minval, uchar maxval);
-char2 __ovld __cnfn clamp(char2 x, char2 minval, char2 maxval);
-uchar2 __ovld __cnfn clamp(uchar2 x, uchar2 minval, uchar2 maxval);
-char3 __ovld __cnfn clamp(char3 x, char3 minval, char3 maxval);
-uchar3 __ovld __cnfn clamp(uchar3 x, uchar3 minval, uchar3 maxval);
-char4 __ovld __cnfn clamp(char4 x, char4 minval, char4 maxval);
-uchar4 __ovld __cnfn clamp(uchar4 x, uchar4 minval, uchar4 maxval);
-char8 __ovld __cnfn clamp(char8 x, char8 minval, char8 maxval);
-uchar8 __ovld __cnfn clamp(uchar8 x, uchar8 minval, uchar8 maxval);
-char16 __ovld __cnfn clamp(char16 x, char16 minval, char16 maxval);
-uchar16 __ovld __cnfn clamp(uchar16 x, uchar16 minval, uchar16 maxval);
-short __ovld __cnfn clamp(short x, short minval, short maxval);
-ushort __ovld __cnfn clamp(ushort x, ushort minval, ushort maxval);
-short2 __ovld __cnfn clamp(short2 x, short2 minval, short2 maxval);
-ushort2 __ovld __cnfn clamp(ushort2 x, ushort2 minval, ushort2 maxval);
-short3 __ovld __cnfn clamp(short3 x, short3 minval, short3 maxval);
-ushort3 __ovld __cnfn clamp(ushort3 x, ushort3 minval, ushort3 maxval);
-short4 __ovld __cnfn clamp(short4 x, short4 minval, short4 maxval);
-ushort4 __ovld __cnfn clamp(ushort4 x, ushort4 minval, ushort4 maxval);
-short8 __ovld __cnfn clamp(short8 x, short8 minval, short8 maxval);
-ushort8 __ovld __cnfn clamp(ushort8 x, ushort8 minval, ushort8 maxval);
-short16 __ovld __cnfn clamp(short16 x, short16 minval, short16 maxval);
-ushort16 __ovld __cnfn clamp(ushort16 x, ushort16 minval, ushort16 maxval);
-int __ovld __cnfn clamp(int x, int minval, int maxval);
-uint __ovld __cnfn clamp(uint x, uint minval, uint maxval);
-int2 __ovld __cnfn clamp(int2 x, int2 minval, int2 maxval);
-uint2 __ovld __cnfn clamp(uint2 x, uint2 minval, uint2 maxval);
-int3 __ovld __cnfn clamp(int3 x, int3 minval, int3 maxval);
-uint3 __ovld __cnfn clamp(uint3 x, uint3 minval, uint3 maxval);
-int4 __ovld __cnfn clamp(int4 x, int4 minval, int4 maxval);
-uint4 __ovld __cnfn clamp(uint4 x, uint4 minval, uint4 maxval);
-int8 __ovld __cnfn clamp(int8 x, int8 minval, int8 maxval);
-uint8 __ovld __cnfn clamp(uint8 x, uint8 minval, uint8 maxval);
-int16 __ovld __cnfn clamp(int16 x, int16 minval, int16 maxval);
-uint16 __ovld __cnfn clamp(uint16 x, uint16 minval, uint16 maxval);
-long __ovld __cnfn clamp(long x, long minval, long maxval);
-ulong __ovld __cnfn clamp(ulong x, ulong minval, ulong maxval);
-long2 __ovld __cnfn clamp(long2 x, long2 minval, long2 maxval);
-ulong2 __ovld __cnfn clamp(ulong2 x, ulong2 minval, ulong2 maxval);
-long3 __ovld __cnfn clamp(long3 x, long3 minval, long3 maxval);
-ulong3 __ovld __cnfn clamp(ulong3 x, ulong3 minval, ulong3 maxval);
-long4 __ovld __cnfn clamp(long4 x, long4 minval, long4 maxval);
-ulong4 __ovld __cnfn clamp(ulong4 x, ulong4 minval, ulong4 maxval);
-long8 __ovld __cnfn clamp(long8 x, long8 minval, long8 maxval);
-ulong8 __ovld __cnfn clamp(ulong8 x, ulong8 minval, ulong8 maxval);
-long16 __ovld __cnfn clamp(long16 x, long16 minval, long16 maxval);
-ulong16 __ovld __cnfn clamp(ulong16 x, ulong16 minval, ulong16 maxval);
-char2 __ovld __cnfn clamp(char2 x, char minval, char maxval);
-uchar2 __ovld __cnfn clamp(uchar2 x, uchar minval, uchar maxval);
-char3 __ovld __cnfn clamp(char3 x, char minval, char maxval);
-uchar3 __ovld __cnfn clamp(uchar3 x, uchar minval, uchar maxval);
-char4 __ovld __cnfn clamp(char4 x, char minval, char maxval);
-uchar4 __ovld __cnfn clamp(uchar4 x, uchar minval, uchar maxval);
-char8 __ovld __cnfn clamp(char8 x, char minval, char maxval);
-uchar8 __ovld __cnfn clamp(uchar8 x, uchar minval, uchar maxval);
-char16 __ovld __cnfn clamp(char16 x, char minval, char maxval);
-uchar16 __ovld __cnfn clamp(uchar16 x, uchar minval, uchar maxval);
-short2 __ovld __cnfn clamp(short2 x, short minval, short maxval);
-ushort2 __ovld __cnfn clamp(ushort2 x, ushort minval, ushort maxval);
-short3 __ovld __cnfn clamp(short3 x, short minval, short maxval);
-ushort3 __ovld __cnfn clamp(ushort3 x, ushort minval, ushort maxval);
-short4 __ovld __cnfn clamp(short4 x, short minval, short maxval);
-ushort4 __ovld __cnfn clamp(ushort4 x, ushort minval, ushort maxval);
-short8 __ovld __cnfn clamp(short8 x, short minval, short maxval);
-ushort8 __ovld __cnfn clamp(ushort8 x, ushort minval, ushort maxval);
-short16 __ovld __cnfn clamp(short16 x, short minval, short maxval);
-ushort16 __ovld __cnfn clamp(ushort16 x, ushort minval, ushort maxval);
-int2 __ovld __cnfn clamp(int2 x, int minval, int maxval);
-uint2 __ovld __cnfn clamp(uint2 x, uint minval, uint maxval);
-int3 __ovld __cnfn clamp(int3 x, int minval, int maxval);
-uint3 __ovld __cnfn clamp(uint3 x, uint minval, uint maxval);
-int4 __ovld __cnfn clamp(int4 x, int minval, int maxval);
-uint4 __ovld __cnfn clamp(uint4 x, uint minval, uint maxval);
-int8 __ovld __cnfn clamp(int8 x, int minval, int maxval);
-uint8 __ovld __cnfn clamp(uint8 x, uint minval, uint maxval);
-int16 __ovld __cnfn clamp(int16 x, int minval, int maxval);
-uint16 __ovld __cnfn clamp(uint16 x, uint minval, uint maxval);
-long2 __ovld __cnfn clamp(long2 x, long minval, long maxval);
-ulong2 __ovld __cnfn clamp(ulong2 x, ulong minval, ulong maxval);
-long3 __ovld __cnfn clamp(long3 x, long minval, long maxval);
-ulong3 __ovld __cnfn clamp(ulong3 x, ulong minval, ulong maxval);
-long4 __ovld __cnfn clamp(long4 x, long minval, long maxval);
-ulong4 __ovld __cnfn clamp(ulong4 x, ulong minval, ulong maxval);
-long8 __ovld __cnfn clamp(long8 x, long minval, long maxval);
-ulong8 __ovld __cnfn clamp(ulong8 x, ulong minval, ulong maxval);
-long16 __ovld __cnfn clamp(long16 x, long minval, long maxval);
-ulong16 __ovld __cnfn clamp(ulong16 x, ulong minval, ulong maxval);
-
-/**
- * Returns the number of leading 0-bits in x, starting
- * at the most significant bit position.
- */
-char __ovld __cnfn clz(char x);
-uchar __ovld __cnfn clz(uchar x);
-char2 __ovld __cnfn clz(char2 x);
-uchar2 __ovld __cnfn clz(uchar2 x);
-char3 __ovld __cnfn clz(char3 x);
-uchar3 __ovld __cnfn clz(uchar3 x);
-char4 __ovld __cnfn clz(char4 x);
-uchar4 __ovld __cnfn clz(uchar4 x);
-char8 __ovld __cnfn clz(char8 x);
-uchar8 __ovld __cnfn clz(uchar8 x);
-char16 __ovld __cnfn clz(char16 x);
-uchar16 __ovld __cnfn clz(uchar16 x);
-short __ovld __cnfn clz(short x);
-ushort __ovld __cnfn clz(ushort x);
-short2 __ovld __cnfn clz(short2 x);
-ushort2 __ovld __cnfn clz(ushort2 x);
-short3 __ovld __cnfn clz(short3 x);
-ushort3 __ovld __cnfn clz(ushort3 x);
-short4 __ovld __cnfn clz(short4 x);
-ushort4 __ovld __cnfn clz(ushort4 x);
-short8 __ovld __cnfn clz(short8 x);
-ushort8 __ovld __cnfn clz(ushort8 x);
-short16 __ovld __cnfn clz(short16 x);
-ushort16 __ovld __cnfn clz(ushort16 x);
-int __ovld __cnfn clz(int x);
-uint __ovld __cnfn clz(uint x);
-int2 __ovld __cnfn clz(int2 x);
-uint2 __ovld __cnfn clz(uint2 x);
-int3 __ovld __cnfn clz(int3 x);
-uint3 __ovld __cnfn clz(uint3 x);
-int4 __ovld __cnfn clz(int4 x);
-uint4 __ovld __cnfn clz(uint4 x);
-int8 __ovld __cnfn clz(int8 x);
-uint8 __ovld __cnfn clz(uint8 x);
-int16 __ovld __cnfn clz(int16 x);
-uint16 __ovld __cnfn clz(uint16 x);
-long __ovld __cnfn clz(long x);
-ulong __ovld __cnfn clz(ulong x);
-long2 __ovld __cnfn clz(long2 x);
-ulong2 __ovld __cnfn clz(ulong2 x);
-long3 __ovld __cnfn clz(long3 x);
-ulong3 __ovld __cnfn clz(ulong3 x);
-long4 __ovld __cnfn clz(long4 x);
-ulong4 __ovld __cnfn clz(ulong4 x);
-long8 __ovld __cnfn clz(long8 x);
-ulong8 __ovld __cnfn clz(ulong8 x);
-long16 __ovld __cnfn clz(long16 x);
-ulong16 __ovld __cnfn clz(ulong16 x);
-
-/**
- * Returns the count of trailing 0-bits in x. If x is 0,
- * returns the size in bits of the type of x or
- * component type of x, if x is a vector.
- */
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-char __ovld __cnfn ctz(char x);
-uchar __ovld __cnfn ctz(uchar x);
-char2 __ovld __cnfn ctz(char2 x);
-uchar2 __ovld __cnfn ctz(uchar2 x);
-char3 __ovld __cnfn ctz(char3 x);
-uchar3 __ovld __cnfn ctz(uchar3 x);
-char4 __ovld __cnfn ctz(char4 x);
-uchar4 __ovld __cnfn ctz(uchar4 x);
-char8 __ovld __cnfn ctz(char8 x);
-uchar8 __ovld __cnfn ctz(uchar8 x);
-char16 __ovld __cnfn ctz(char16 x);
-uchar16 __ovld __cnfn ctz(uchar16 x);
-short __ovld __cnfn ctz(short x);
-ushort __ovld __cnfn ctz(ushort x);
-short2 __ovld __cnfn ctz(short2 x);
-ushort2 __ovld __cnfn ctz(ushort2 x);
-short3 __ovld __cnfn ctz(short3 x);
-ushort3 __ovld __cnfn ctz(ushort3 x);
-short4 __ovld __cnfn ctz(short4 x);
-ushort4 __ovld __cnfn ctz(ushort4 x);
-short8 __ovld __cnfn ctz(short8 x);
-ushort8 __ovld __cnfn ctz(ushort8 x);
-short16 __ovld __cnfn ctz(short16 x);
-ushort16 __ovld __cnfn ctz(ushort16 x);
-int __ovld __cnfn ctz(int x);
-uint __ovld __cnfn ctz(uint x);
-int2 __ovld __cnfn ctz(int2 x);
-uint2 __ovld __cnfn ctz(uint2 x);
-int3 __ovld __cnfn ctz(int3 x);
-uint3 __ovld __cnfn ctz(uint3 x);
-int4 __ovld __cnfn ctz(int4 x);
-uint4 __ovld __cnfn ctz(uint4 x);
-int8 __ovld __cnfn ctz(int8 x);
-uint8 __ovld __cnfn ctz(uint8 x);
-int16 __ovld __cnfn ctz(int16 x);
-uint16 __ovld __cnfn ctz(uint16 x);
-long __ovld __cnfn ctz(long x);
-ulong __ovld __cnfn ctz(ulong x);
-long2 __ovld __cnfn ctz(long2 x);
-ulong2 __ovld __cnfn ctz(ulong2 x);
-long3 __ovld __cnfn ctz(long3 x);
-ulong3 __ovld __cnfn ctz(ulong3 x);
-long4 __ovld __cnfn ctz(long4 x);
-ulong4 __ovld __cnfn ctz(ulong4 x);
-long8 __ovld __cnfn ctz(long8 x);
-ulong8 __ovld __cnfn ctz(ulong8 x);
-long16 __ovld __cnfn ctz(long16 x);
-ulong16 __ovld __cnfn ctz(ulong16 x);
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-/**
- * Returns mul_hi(a, b) + c.
- */
-char __ovld __cnfn mad_hi(char a, char b, char c);
-uchar __ovld __cnfn mad_hi(uchar a, uchar b, uchar c);
-char2 __ovld __cnfn mad_hi(char2 a, char2 b, char2 c);
-uchar2 __ovld __cnfn mad_hi(uchar2 a, uchar2 b, uchar2 c);
-char3 __ovld __cnfn mad_hi(char3 a, char3 b, char3 c);
-uchar3 __ovld __cnfn mad_hi(uchar3 a, uchar3 b, uchar3 c);
-char4 __ovld __cnfn mad_hi(char4 a, char4 b, char4 c);
-uchar4 __ovld __cnfn mad_hi(uchar4 a, uchar4 b, uchar4 c);
-char8 __ovld __cnfn mad_hi(char8 a, char8 b, char8 c);
-uchar8 __ovld __cnfn mad_hi(uchar8 a, uchar8 b, uchar8 c);
-char16 __ovld __cnfn mad_hi(char16 a, char16 b, char16 c);
-uchar16 __ovld __cnfn mad_hi(uchar16 a, uchar16 b, uchar16 c);
-short __ovld __cnfn mad_hi(short a, short b, short c);
-ushort __ovld __cnfn mad_hi(ushort a, ushort b, ushort c);
-short2 __ovld __cnfn mad_hi(short2 a, short2 b, short2 c);
-ushort2 __ovld __cnfn mad_hi(ushort2 a, ushort2 b, ushort2 c);
-short3 __ovld __cnfn mad_hi(short3 a, short3 b, short3 c);
-ushort3 __ovld __cnfn mad_hi(ushort3 a, ushort3 b, ushort3 c);
-short4 __ovld __cnfn mad_hi(short4 a, short4 b, short4 c);
-ushort4 __ovld __cnfn mad_hi(ushort4 a, ushort4 b, ushort4 c);
-short8 __ovld __cnfn mad_hi(short8 a, short8 b, short8 c);
-ushort8 __ovld __cnfn mad_hi(ushort8 a, ushort8 b, ushort8 c);
-short16 __ovld __cnfn mad_hi(short16 a, short16 b, short16 c);
-ushort16 __ovld __cnfn mad_hi(ushort16 a, ushort16 b, ushort16 c);
-int __ovld __cnfn mad_hi(int a, int b, int c);
-uint __ovld __cnfn mad_hi(uint a, uint b, uint c);
-int2 __ovld __cnfn mad_hi(int2 a, int2 b, int2 c);
-uint2 __ovld __cnfn mad_hi(uint2 a, uint2 b, uint2 c);
-int3 __ovld __cnfn mad_hi(int3 a, int3 b, int3 c);
-uint3 __ovld __cnfn mad_hi(uint3 a, uint3 b, uint3 c);
-int4 __ovld __cnfn mad_hi(int4 a, int4 b, int4 c);
-uint4 __ovld __cnfn mad_hi(uint4 a, uint4 b, uint4 c);
-int8 __ovld __cnfn mad_hi(int8 a, int8 b, int8 c);
-uint8 __ovld __cnfn mad_hi(uint8 a, uint8 b, uint8 c);
-int16 __ovld __cnfn mad_hi(int16 a, int16 b, int16 c);
-uint16 __ovld __cnfn mad_hi(uint16 a, uint16 b, uint16 c);
-long __ovld __cnfn mad_hi(long a, long b, long c);
-ulong __ovld __cnfn mad_hi(ulong a, ulong b, ulong c);
-long2 __ovld __cnfn mad_hi(long2 a, long2 b, long2 c);
-ulong2 __ovld __cnfn mad_hi(ulong2 a, ulong2 b, ulong2 c);
-long3 __ovld __cnfn mad_hi(long3 a, long3 b, long3 c);
-ulong3 __ovld __cnfn mad_hi(ulong3 a, ulong3 b, ulong3 c);
-long4 __ovld __cnfn mad_hi(long4 a, long4 b, long4 c);
-ulong4 __ovld __cnfn mad_hi(ulong4 a, ulong4 b, ulong4 c);
-long8 __ovld __cnfn mad_hi(long8 a, long8 b, long8 c);
-ulong8 __ovld __cnfn mad_hi(ulong8 a, ulong8 b, ulong8 c);
-long16 __ovld __cnfn mad_hi(long16 a, long16 b, long16 c);
-ulong16 __ovld __cnfn mad_hi(ulong16 a, ulong16 b, ulong16 c);
-
-/**
- * Returns a * b + c and saturates the result.
- */
-char __ovld __cnfn mad_sat(char a, char b, char c);
-uchar __ovld __cnfn mad_sat(uchar a, uchar b, uchar c);
-char2 __ovld __cnfn mad_sat(char2 a, char2 b, char2 c);
-uchar2 __ovld __cnfn mad_sat(uchar2 a, uchar2 b, uchar2 c);
-char3 __ovld __cnfn mad_sat(char3 a, char3 b, char3 c);
-uchar3 __ovld __cnfn mad_sat(uchar3 a, uchar3 b, uchar3 c);
-char4 __ovld __cnfn mad_sat(char4 a, char4 b, char4 c);
-uchar4 __ovld __cnfn mad_sat(uchar4 a, uchar4 b, uchar4 c);
-char8 __ovld __cnfn mad_sat(char8 a, char8 b, char8 c);
-uchar8 __ovld __cnfn mad_sat(uchar8 a, uchar8 b, uchar8 c);
-char16 __ovld __cnfn mad_sat(char16 a, char16 b, char16 c);
-uchar16 __ovld __cnfn mad_sat(uchar16 a, uchar16 b, uchar16 c);
-short __ovld __cnfn mad_sat(short a, short b, short c);
-ushort __ovld __cnfn mad_sat(ushort a, ushort b, ushort c);
-short2 __ovld __cnfn mad_sat(short2 a, short2 b, short2 c);
-ushort2 __ovld __cnfn mad_sat(ushort2 a, ushort2 b, ushort2 c);
-short3 __ovld __cnfn mad_sat(short3 a, short3 b, short3 c);
-ushort3 __ovld __cnfn mad_sat(ushort3 a, ushort3 b, ushort3 c);
-short4 __ovld __cnfn mad_sat(short4 a, short4 b, short4 c);
-ushort4 __ovld __cnfn mad_sat(ushort4 a, ushort4 b, ushort4 c);
-short8 __ovld __cnfn mad_sat(short8 a, short8 b, short8 c);
-ushort8 __ovld __cnfn mad_sat(ushort8 a, ushort8 b, ushort8 c);
-short16 __ovld __cnfn mad_sat(short16 a, short16 b, short16 c);
-ushort16 __ovld __cnfn mad_sat(ushort16 a, ushort16 b, ushort16 c);
-int __ovld __cnfn mad_sat(int a, int b, int c);
-uint __ovld __cnfn mad_sat(uint a, uint b, uint c);
-int2 __ovld __cnfn mad_sat(int2 a, int2 b, int2 c);
-uint2 __ovld __cnfn mad_sat(uint2 a, uint2 b, uint2 c);
-int3 __ovld __cnfn mad_sat(int3 a, int3 b, int3 c);
-uint3 __ovld __cnfn mad_sat(uint3 a, uint3 b, uint3 c);
-int4 __ovld __cnfn mad_sat(int4 a, int4 b, int4 c);
-uint4 __ovld __cnfn mad_sat(uint4 a, uint4 b, uint4 c);
-int8 __ovld __cnfn mad_sat(int8 a, int8 b, int8 c);
-uint8 __ovld __cnfn mad_sat(uint8 a, uint8 b, uint8 c);
-int16 __ovld __cnfn mad_sat(int16 a, int16 b, int16 c);
-uint16 __ovld __cnfn mad_sat(uint16 a, uint16 b, uint16 c);
-long __ovld __cnfn mad_sat(long a, long b, long c);
-ulong __ovld __cnfn mad_sat(ulong a, ulong b, ulong c);
-long2 __ovld __cnfn mad_sat(long2 a, long2 b, long2 c);
-ulong2 __ovld __cnfn mad_sat(ulong2 a, ulong2 b, ulong2 c);
-long3 __ovld __cnfn mad_sat(long3 a, long3 b, long3 c);
-ulong3 __ovld __cnfn mad_sat(ulong3 a, ulong3 b, ulong3 c);
-long4 __ovld __cnfn mad_sat(long4 a, long4 b, long4 c);
-ulong4 __ovld __cnfn mad_sat(ulong4 a, ulong4 b, ulong4 c);
-long8 __ovld __cnfn mad_sat(long8 a, long8 b, long8 c);
-ulong8 __ovld __cnfn mad_sat(ulong8 a, ulong8 b, ulong8 c);
-long16 __ovld __cnfn mad_sat(long16 a, long16 b, long16 c);
-ulong16 __ovld __cnfn mad_sat(ulong16 a, ulong16 b, ulong16 c);
-
-/**
- * Returns y if x < y, otherwise it returns x.
- */
-char __ovld __cnfn max(char x, char y);
-uchar __ovld __cnfn max(uchar x, uchar y);
-char2 __ovld __cnfn max(char2 x, char2 y);
-uchar2 __ovld __cnfn max(uchar2 x, uchar2 y);
-char3 __ovld __cnfn max(char3 x, char3 y);
-uchar3 __ovld __cnfn max(uchar3 x, uchar3 y);
-char4 __ovld __cnfn max(char4 x, char4 y);
-uchar4 __ovld __cnfn max(uchar4 x, uchar4 y);
-char8 __ovld __cnfn max(char8 x, char8 y);
-uchar8 __ovld __cnfn max(uchar8 x, uchar8 y);
-char16 __ovld __cnfn max(char16 x, char16 y);
-uchar16 __ovld __cnfn max(uchar16 x, uchar16 y);
-short __ovld __cnfn max(short x, short y);
-ushort __ovld __cnfn max(ushort x, ushort y);
-short2 __ovld __cnfn max(short2 x, short2 y);
-ushort2 __ovld __cnfn max(ushort2 x, ushort2 y);
-short3 __ovld __cnfn max(short3 x, short3 y);
-ushort3 __ovld __cnfn max(ushort3 x, ushort3 y);
-short4 __ovld __cnfn max(short4 x, short4 y);
-ushort4 __ovld __cnfn max(ushort4 x, ushort4 y);
-short8 __ovld __cnfn max(short8 x, short8 y);
-ushort8 __ovld __cnfn max(ushort8 x, ushort8 y);
-short16 __ovld __cnfn max(short16 x, short16 y);
-ushort16 __ovld __cnfn max(ushort16 x, ushort16 y);
-int __ovld __cnfn max(int x, int y);
-uint __ovld __cnfn max(uint x, uint y);
-int2 __ovld __cnfn max(int2 x, int2 y);
-uint2 __ovld __cnfn max(uint2 x, uint2 y);
-int3 __ovld __cnfn max(int3 x, int3 y);
-uint3 __ovld __cnfn max(uint3 x, uint3 y);
-int4 __ovld __cnfn max(int4 x, int4 y);
-uint4 __ovld __cnfn max(uint4 x, uint4 y);
-int8 __ovld __cnfn max(int8 x, int8 y);
-uint8 __ovld __cnfn max(uint8 x, uint8 y);
-int16 __ovld __cnfn max(int16 x, int16 y);
-uint16 __ovld __cnfn max(uint16 x, uint16 y);
-long __ovld __cnfn max(long x, long y);
-ulong __ovld __cnfn max(ulong x, ulong y);
-long2 __ovld __cnfn max(long2 x, long2 y);
-ulong2 __ovld __cnfn max(ulong2 x, ulong2 y);
-long3 __ovld __cnfn max(long3 x, long3 y);
-ulong3 __ovld __cnfn max(ulong3 x, ulong3 y);
-long4 __ovld __cnfn max(long4 x, long4 y);
-ulong4 __ovld __cnfn max(ulong4 x, ulong4 y);
-long8 __ovld __cnfn max(long8 x, long8 y);
-ulong8 __ovld __cnfn max(ulong8 x, ulong8 y);
-long16 __ovld __cnfn max(long16 x, long16 y);
-ulong16 __ovld __cnfn max(ulong16 x, ulong16 y);
-char2 __ovld __cnfn max(char2 x, char y);
-uchar2 __ovld __cnfn max(uchar2 x, uchar y);
-char3 __ovld __cnfn max(char3 x, char y);
-uchar3 __ovld __cnfn max(uchar3 x, uchar y);
-char4 __ovld __cnfn max(char4 x, char y);
-uchar4 __ovld __cnfn max(uchar4 x, uchar y);
-char8 __ovld __cnfn max(char8 x, char y);
-uchar8 __ovld __cnfn max(uchar8 x, uchar y);
-char16 __ovld __cnfn max(char16 x, char y);
-uchar16 __ovld __cnfn max(uchar16 x, uchar y);
-short2 __ovld __cnfn max(short2 x, short y);
-ushort2 __ovld __cnfn max(ushort2 x, ushort y);
-short3 __ovld __cnfn max(short3 x, short y);
-ushort3 __ovld __cnfn max(ushort3 x, ushort y);
-short4 __ovld __cnfn max(short4 x, short y);
-ushort4 __ovld __cnfn max(ushort4 x, ushort y);
-short8 __ovld __cnfn max(short8 x, short y);
-ushort8 __ovld __cnfn max(ushort8 x, ushort y);
-short16 __ovld __cnfn max(short16 x, short y);
-ushort16 __ovld __cnfn max(ushort16 x, ushort y);
-int2 __ovld __cnfn max(int2 x, int y);
-uint2 __ovld __cnfn max(uint2 x, uint y);
-int3 __ovld __cnfn max(int3 x, int y);
-uint3 __ovld __cnfn max(uint3 x, uint y);
-int4 __ovld __cnfn max(int4 x, int y);
-uint4 __ovld __cnfn max(uint4 x, uint y);
-int8 __ovld __cnfn max(int8 x, int y);
-uint8 __ovld __cnfn max(uint8 x, uint y);
-int16 __ovld __cnfn max(int16 x, int y);
-uint16 __ovld __cnfn max(uint16 x, uint y);
-long2 __ovld __cnfn max(long2 x, long y);
-ulong2 __ovld __cnfn max(ulong2 x, ulong y);
-long3 __ovld __cnfn max(long3 x, long y);
-ulong3 __ovld __cnfn max(ulong3 x, ulong y);
-long4 __ovld __cnfn max(long4 x, long y);
-ulong4 __ovld __cnfn max(ulong4 x, ulong y);
-long8 __ovld __cnfn max(long8 x, long y);
-ulong8 __ovld __cnfn max(ulong8 x, ulong y);
-long16 __ovld __cnfn max(long16 x, long y);
-ulong16 __ovld __cnfn max(ulong16 x, ulong y);
-
-/**
- * Returns y if y < x, otherwise it returns x.
- */
-char __ovld __cnfn min(char x, char y);
-uchar __ovld __cnfn min(uchar x, uchar y);
-char2 __ovld __cnfn min(char2 x, char2 y);
-uchar2 __ovld __cnfn min(uchar2 x, uchar2 y);
-char3 __ovld __cnfn min(char3 x, char3 y);
-uchar3 __ovld __cnfn min(uchar3 x, uchar3 y);
-char4 __ovld __cnfn min(char4 x, char4 y);
-uchar4 __ovld __cnfn min(uchar4 x, uchar4 y);
-char8 __ovld __cnfn min(char8 x, char8 y);
-uchar8 __ovld __cnfn min(uchar8 x, uchar8 y);
-char16 __ovld __cnfn min(char16 x, char16 y);
-uchar16 __ovld __cnfn min(uchar16 x, uchar16 y);
-short __ovld __cnfn min(short x, short y);
-ushort __ovld __cnfn min(ushort x, ushort y);
-short2 __ovld __cnfn min(short2 x, short2 y);
-ushort2 __ovld __cnfn min(ushort2 x, ushort2 y);
-short3 __ovld __cnfn min(short3 x, short3 y);
-ushort3 __ovld __cnfn min(ushort3 x, ushort3 y);
-short4 __ovld __cnfn min(short4 x, short4 y);
-ushort4 __ovld __cnfn min(ushort4 x, ushort4 y);
-short8 __ovld __cnfn min(short8 x, short8 y);
-ushort8 __ovld __cnfn min(ushort8 x, ushort8 y);
-short16 __ovld __cnfn min(short16 x, short16 y);
-ushort16 __ovld __cnfn min(ushort16 x, ushort16 y);
-int __ovld __cnfn min(int x, int y);
-uint __ovld __cnfn min(uint x, uint y);
-int2 __ovld __cnfn min(int2 x, int2 y);
-uint2 __ovld __cnfn min(uint2 x, uint2 y);
-int3 __ovld __cnfn min(int3 x, int3 y);
-uint3 __ovld __cnfn min(uint3 x, uint3 y);
-int4 __ovld __cnfn min(int4 x, int4 y);
-uint4 __ovld __cnfn min(uint4 x, uint4 y);
-int8 __ovld __cnfn min(int8 x, int8 y);
-uint8 __ovld __cnfn min(uint8 x, uint8 y);
-int16 __ovld __cnfn min(int16 x, int16 y);
-uint16 __ovld __cnfn min(uint16 x, uint16 y);
-long __ovld __cnfn min(long x, long y);
-ulong __ovld __cnfn min(ulong x, ulong y);
-long2 __ovld __cnfn min(long2 x, long2 y);
-ulong2 __ovld __cnfn min(ulong2 x, ulong2 y);
-long3 __ovld __cnfn min(long3 x, long3 y);
-ulong3 __ovld __cnfn min(ulong3 x, ulong3 y);
-long4 __ovld __cnfn min(long4 x, long4 y);
-ulong4 __ovld __cnfn min(ulong4 x, ulong4 y);
-long8 __ovld __cnfn min(long8 x, long8 y);
-ulong8 __ovld __cnfn min(ulong8 x, ulong8 y);
-long16 __ovld __cnfn min(long16 x, long16 y);
-ulong16 __ovld __cnfn min(ulong16 x, ulong16 y);
-char2 __ovld __cnfn min(char2 x, char y);
-uchar2 __ovld __cnfn min(uchar2 x, uchar y);
-char3 __ovld __cnfn min(char3 x, char y);
-uchar3 __ovld __cnfn min(uchar3 x, uchar y);
-char4 __ovld __cnfn min(char4 x, char y);
-uchar4 __ovld __cnfn min(uchar4 x, uchar y);
-char8 __ovld __cnfn min(char8 x, char y);
-uchar8 __ovld __cnfn min(uchar8 x, uchar y);
-char16 __ovld __cnfn min(char16 x, char y);
-uchar16 __ovld __cnfn min(uchar16 x, uchar y);
-short2 __ovld __cnfn min(short2 x, short y);
-ushort2 __ovld __cnfn min(ushort2 x, ushort y);
-short3 __ovld __cnfn min(short3 x, short y);
-ushort3 __ovld __cnfn min(ushort3 x, ushort y);
-short4 __ovld __cnfn min(short4 x, short y);
-ushort4 __ovld __cnfn min(ushort4 x, ushort y);
-short8 __ovld __cnfn min(short8 x, short y);
-ushort8 __ovld __cnfn min(ushort8 x, ushort y);
-short16 __ovld __cnfn min(short16 x, short y);
-ushort16 __ovld __cnfn min(ushort16 x, ushort y);
-int2 __ovld __cnfn min(int2 x, int y);
-uint2 __ovld __cnfn min(uint2 x, uint y);
-int3 __ovld __cnfn min(int3 x, int y);
-uint3 __ovld __cnfn min(uint3 x, uint y);
-int4 __ovld __cnfn min(int4 x, int y);
-uint4 __ovld __cnfn min(uint4 x, uint y);
-int8 __ovld __cnfn min(int8 x, int y);
-uint8 __ovld __cnfn min(uint8 x, uint y);
-int16 __ovld __cnfn min(int16 x, int y);
-uint16 __ovld __cnfn min(uint16 x, uint y);
-long2 __ovld __cnfn min(long2 x, long y);
-ulong2 __ovld __cnfn min(ulong2 x, ulong y);
-long3 __ovld __cnfn min(long3 x, long y);
-ulong3 __ovld __cnfn min(ulong3 x, ulong y);
-long4 __ovld __cnfn min(long4 x, long y);
-ulong4 __ovld __cnfn min(ulong4 x, ulong y);
-long8 __ovld __cnfn min(long8 x, long y);
-ulong8 __ovld __cnfn min(ulong8 x, ulong y);
-long16 __ovld __cnfn min(long16 x, long y);
-ulong16 __ovld __cnfn min(ulong16 x, ulong y);
-
-/**
- * Computes x * y and returns the high half of the
- * product of x and y.
- */
-char __ovld __cnfn mul_hi(char x, char y);
-uchar __ovld __cnfn mul_hi(uchar x, uchar y);
-char2 __ovld __cnfn mul_hi(char2 x, char2 y);
-uchar2 __ovld __cnfn mul_hi(uchar2 x, uchar2 y);
-char3 __ovld __cnfn mul_hi(char3 x, char3 y);
-uchar3 __ovld __cnfn mul_hi(uchar3 x, uchar3 y);
-char4 __ovld __cnfn mul_hi(char4 x, char4 y);
-uchar4 __ovld __cnfn mul_hi(uchar4 x, uchar4 y);
-char8 __ovld __cnfn mul_hi(char8 x, char8 y);
-uchar8 __ovld __cnfn mul_hi(uchar8 x, uchar8 y);
-char16 __ovld __cnfn mul_hi(char16 x, char16 y);
-uchar16 __ovld __cnfn mul_hi(uchar16 x, uchar16 y);
-short __ovld __cnfn mul_hi(short x, short y);
-ushort __ovld __cnfn mul_hi(ushort x, ushort y);
-short2 __ovld __cnfn mul_hi(short2 x, short2 y);
-ushort2 __ovld __cnfn mul_hi(ushort2 x, ushort2 y);
-short3 __ovld __cnfn mul_hi(short3 x, short3 y);
-ushort3 __ovld __cnfn mul_hi(ushort3 x, ushort3 y);
-short4 __ovld __cnfn mul_hi(short4 x, short4 y);
-ushort4 __ovld __cnfn mul_hi(ushort4 x, ushort4 y);
-short8 __ovld __cnfn mul_hi(short8 x, short8 y);
-ushort8 __ovld __cnfn mul_hi(ushort8 x, ushort8 y);
-short16 __ovld __cnfn mul_hi(short16 x, short16 y);
-ushort16 __ovld __cnfn mul_hi(ushort16 x, ushort16 y);
-int __ovld __cnfn mul_hi(int x, int y);
-uint __ovld __cnfn mul_hi(uint x, uint y);
-int2 __ovld __cnfn mul_hi(int2 x, int2 y);
-uint2 __ovld __cnfn mul_hi(uint2 x, uint2 y);
-int3 __ovld __cnfn mul_hi(int3 x, int3 y);
-uint3 __ovld __cnfn mul_hi(uint3 x, uint3 y);
-int4 __ovld __cnfn mul_hi(int4 x, int4 y);
-uint4 __ovld __cnfn mul_hi(uint4 x, uint4 y);
-int8 __ovld __cnfn mul_hi(int8 x, int8 y);
-uint8 __ovld __cnfn mul_hi(uint8 x, uint8 y);
-int16 __ovld __cnfn mul_hi(int16 x, int16 y);
-uint16 __ovld __cnfn mul_hi(uint16 x, uint16 y);
-long __ovld __cnfn mul_hi(long x, long y);
-ulong __ovld __cnfn mul_hi(ulong x, ulong y);
-long2 __ovld __cnfn mul_hi(long2 x, long2 y);
-ulong2 __ovld __cnfn mul_hi(ulong2 x, ulong2 y);
-long3 __ovld __cnfn mul_hi(long3 x, long3 y);
-ulong3 __ovld __cnfn mul_hi(ulong3 x, ulong3 y);
-long4 __ovld __cnfn mul_hi(long4 x, long4 y);
-ulong4 __ovld __cnfn mul_hi(ulong4 x, ulong4 y);
-long8 __ovld __cnfn mul_hi(long8 x, long8 y);
-ulong8 __ovld __cnfn mul_hi(ulong8 x, ulong8 y);
-long16 __ovld __cnfn mul_hi(long16 x, long16 y);
-ulong16 __ovld __cnfn mul_hi(ulong16 x, ulong16 y);
-
-/**
- * For each element in v, the bits are shifted left by
- * the number of bits given by the corresponding
- * element in i (subject to usual shift modulo rules
- * described in section 6.3). Bits shifted off the left
- * side of the element are shifted back in from the
- * right.
- */
-char __ovld __cnfn rotate(char v, char i);
-uchar __ovld __cnfn rotate(uchar v, uchar i);
-char2 __ovld __cnfn rotate(char2 v, char2 i);
-uchar2 __ovld __cnfn rotate(uchar2 v, uchar2 i);
-char3 __ovld __cnfn rotate(char3 v, char3 i);
-uchar3 __ovld __cnfn rotate(uchar3 v, uchar3 i);
-char4 __ovld __cnfn rotate(char4 v, char4 i);
-uchar4 __ovld __cnfn rotate(uchar4 v, uchar4 i);
-char8 __ovld __cnfn rotate(char8 v, char8 i);
-uchar8 __ovld __cnfn rotate(uchar8 v, uchar8 i);
-char16 __ovld __cnfn rotate(char16 v, char16 i);
-uchar16 __ovld __cnfn rotate(uchar16 v, uchar16 i);
-short __ovld __cnfn rotate(short v, short i);
-ushort __ovld __cnfn rotate(ushort v, ushort i);
-short2 __ovld __cnfn rotate(short2 v, short2 i);
-ushort2 __ovld __cnfn rotate(ushort2 v, ushort2 i);
-short3 __ovld __cnfn rotate(short3 v, short3 i);
-ushort3 __ovld __cnfn rotate(ushort3 v, ushort3 i);
-short4 __ovld __cnfn rotate(short4 v, short4 i);
-ushort4 __ovld __cnfn rotate(ushort4 v, ushort4 i);
-short8 __ovld __cnfn rotate(short8 v, short8 i);
-ushort8 __ovld __cnfn rotate(ushort8 v, ushort8 i);
-short16 __ovld __cnfn rotate(short16 v, short16 i);
-ushort16 __ovld __cnfn rotate(ushort16 v, ushort16 i);
-int __ovld __cnfn rotate(int v, int i);
-uint __ovld __cnfn rotate(uint v, uint i);
-int2 __ovld __cnfn rotate(int2 v, int2 i);
-uint2 __ovld __cnfn rotate(uint2 v, uint2 i);
-int3 __ovld __cnfn rotate(int3 v, int3 i);
-uint3 __ovld __cnfn rotate(uint3 v, uint3 i);
-int4 __ovld __cnfn rotate(int4 v, int4 i);
-uint4 __ovld __cnfn rotate(uint4 v, uint4 i);
-int8 __ovld __cnfn rotate(int8 v, int8 i);
-uint8 __ovld __cnfn rotate(uint8 v, uint8 i);
-int16 __ovld __cnfn rotate(int16 v, int16 i);
-uint16 __ovld __cnfn rotate(uint16 v, uint16 i);
-long __ovld __cnfn rotate(long v, long i);
-ulong __ovld __cnfn rotate(ulong v, ulong i);
-long2 __ovld __cnfn rotate(long2 v, long2 i);
-ulong2 __ovld __cnfn rotate(ulong2 v, ulong2 i);
-long3 __ovld __cnfn rotate(long3 v, long3 i);
-ulong3 __ovld __cnfn rotate(ulong3 v, ulong3 i);
-long4 __ovld __cnfn rotate(long4 v, long4 i);
-ulong4 __ovld __cnfn rotate(ulong4 v, ulong4 i);
-long8 __ovld __cnfn rotate(long8 v, long8 i);
-ulong8 __ovld __cnfn rotate(ulong8 v, ulong8 i);
-long16 __ovld __cnfn rotate(long16 v, long16 i);
-ulong16 __ovld __cnfn rotate(ulong16 v, ulong16 i);
-
-/**
- * Returns x - y and saturates the result.
- */
-char __ovld __cnfn sub_sat(char x, char y);
-uchar __ovld __cnfn sub_sat(uchar x, uchar y);
-char2 __ovld __cnfn sub_sat(char2 x, char2 y);
-uchar2 __ovld __cnfn sub_sat(uchar2 x, uchar2 y);
-char3 __ovld __cnfn sub_sat(char3 x, char3 y);
-uchar3 __ovld __cnfn sub_sat(uchar3 x, uchar3 y);
-char4 __ovld __cnfn sub_sat(char4 x, char4 y);
-uchar4 __ovld __cnfn sub_sat(uchar4 x, uchar4 y);
-char8 __ovld __cnfn sub_sat(char8 x, char8 y);
-uchar8 __ovld __cnfn sub_sat(uchar8 x, uchar8 y);
-char16 __ovld __cnfn sub_sat(char16 x, char16 y);
-uchar16 __ovld __cnfn sub_sat(uchar16 x, uchar16 y);
-short __ovld __cnfn sub_sat(short x, short y);
-ushort __ovld __cnfn sub_sat(ushort x, ushort y);
-short2 __ovld __cnfn sub_sat(short2 x, short2 y);
-ushort2 __ovld __cnfn sub_sat(ushort2 x, ushort2 y);
-short3 __ovld __cnfn sub_sat(short3 x, short3 y);
-ushort3 __ovld __cnfn sub_sat(ushort3 x, ushort3 y);
-short4 __ovld __cnfn sub_sat(short4 x, short4 y);
-ushort4 __ovld __cnfn sub_sat(ushort4 x, ushort4 y);
-short8 __ovld __cnfn sub_sat(short8 x, short8 y);
-ushort8 __ovld __cnfn sub_sat(ushort8 x, ushort8 y);
-short16 __ovld __cnfn sub_sat(short16 x, short16 y);
-ushort16 __ovld __cnfn sub_sat(ushort16 x, ushort16 y);
-int __ovld __cnfn sub_sat(int x, int y);
-uint __ovld __cnfn sub_sat(uint x, uint y);
-int2 __ovld __cnfn sub_sat(int2 x, int2 y);
-uint2 __ovld __cnfn sub_sat(uint2 x, uint2 y);
-int3 __ovld __cnfn sub_sat(int3 x, int3 y);
-uint3 __ovld __cnfn sub_sat(uint3 x, uint3 y);
-int4 __ovld __cnfn sub_sat(int4 x, int4 y);
-uint4 __ovld __cnfn sub_sat(uint4 x, uint4 y);
-int8 __ovld __cnfn sub_sat(int8 x, int8 y);
-uint8 __ovld __cnfn sub_sat(uint8 x, uint8 y);
-int16 __ovld __cnfn sub_sat(int16 x, int16 y);
-uint16 __ovld __cnfn sub_sat(uint16 x, uint16 y);
-long __ovld __cnfn sub_sat(long x, long y);
-ulong __ovld __cnfn sub_sat(ulong x, ulong y);
-long2 __ovld __cnfn sub_sat(long2 x, long2 y);
-ulong2 __ovld __cnfn sub_sat(ulong2 x, ulong2 y);
-long3 __ovld __cnfn sub_sat(long3 x, long3 y);
-ulong3 __ovld __cnfn sub_sat(ulong3 x, ulong3 y);
-long4 __ovld __cnfn sub_sat(long4 x, long4 y);
-ulong4 __ovld __cnfn sub_sat(ulong4 x, ulong4 y);
-long8 __ovld __cnfn sub_sat(long8 x, long8 y);
-ulong8 __ovld __cnfn sub_sat(ulong8 x, ulong8 y);
-long16 __ovld __cnfn sub_sat(long16 x, long16 y);
-ulong16 __ovld __cnfn sub_sat(ulong16 x, ulong16 y);
-
-/**
- * result[i] = ((short)hi[i] << 8) | lo[i]
- * result[i] = ((ushort)hi[i] << 8) | lo[i]
- */
-short __ovld __cnfn upsample(char hi, uchar lo);
-ushort __ovld __cnfn upsample(uchar hi, uchar lo);
-short2 __ovld __cnfn upsample(char2 hi, uchar2 lo);
-short3 __ovld __cnfn upsample(char3 hi, uchar3 lo);
-short4 __ovld __cnfn upsample(char4 hi, uchar4 lo);
-short8 __ovld __cnfn upsample(char8 hi, uchar8 lo);
-short16 __ovld __cnfn upsample(char16 hi, uchar16 lo);
-ushort2 __ovld __cnfn upsample(uchar2 hi, uchar2 lo);
-ushort3 __ovld __cnfn upsample(uchar3 hi, uchar3 lo);
-ushort4 __ovld __cnfn upsample(uchar4 hi, uchar4 lo);
-ushort8 __ovld __cnfn upsample(uchar8 hi, uchar8 lo);
-ushort16 __ovld __cnfn upsample(uchar16 hi, uchar16 lo);
-
-/**
- * result[i] = ((int)hi[i] << 16) | lo[i]
- * result[i] = ((uint)hi[i] << 16) | lo[i]
- */
-int __ovld __cnfn upsample(short hi, ushort lo);
-uint __ovld __cnfn upsample(ushort hi, ushort lo);
-int2 __ovld __cnfn upsample(short2 hi, ushort2 lo);
-int3 __ovld __cnfn upsample(short3 hi, ushort3 lo);
-int4 __ovld __cnfn upsample(short4 hi, ushort4 lo);
-int8 __ovld __cnfn upsample(short8 hi, ushort8 lo);
-int16 __ovld __cnfn upsample(short16 hi, ushort16 lo);
-uint2 __ovld __cnfn upsample(ushort2 hi, ushort2 lo);
-uint3 __ovld __cnfn upsample(ushort3 hi, ushort3 lo);
-uint4 __ovld __cnfn upsample(ushort4 hi, ushort4 lo);
-uint8 __ovld __cnfn upsample(ushort8 hi, ushort8 lo);
-uint16 __ovld __cnfn upsample(ushort16 hi, ushort16 lo);
-/**
- * result[i] = ((long)hi[i] << 32) | lo[i]
- * result[i] = ((ulong)hi[i] << 32) | lo[i]
- */
-long __ovld __cnfn upsample(int hi, uint lo);
-ulong __ovld __cnfn upsample(uint hi, uint lo);
-long2 __ovld __cnfn upsample(int2 hi, uint2 lo);
-long3 __ovld __cnfn upsample(int3 hi, uint3 lo);
-long4 __ovld __cnfn upsample(int4 hi, uint4 lo);
-long8 __ovld __cnfn upsample(int8 hi, uint8 lo);
-long16 __ovld __cnfn upsample(int16 hi, uint16 lo);
-ulong2 __ovld __cnfn upsample(uint2 hi, uint2 lo);
-ulong3 __ovld __cnfn upsample(uint3 hi, uint3 lo);
-ulong4 __ovld __cnfn upsample(uint4 hi, uint4 lo);
-ulong8 __ovld __cnfn upsample(uint8 hi, uint8 lo);
-ulong16 __ovld __cnfn upsample(uint16 hi, uint16 lo);
-
-/*
- * popcount(x): returns the number of set bit in x
- */
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
-char __ovld __cnfn popcount(char x);
-uchar __ovld __cnfn popcount(uchar x);
-char2 __ovld __cnfn popcount(char2 x);
-uchar2 __ovld __cnfn popcount(uchar2 x);
-char3 __ovld __cnfn popcount(char3 x);
-uchar3 __ovld __cnfn popcount(uchar3 x);
-char4 __ovld __cnfn popcount(char4 x);
-uchar4 __ovld __cnfn popcount(uchar4 x);
-char8 __ovld __cnfn popcount(char8 x);
-uchar8 __ovld __cnfn popcount(uchar8 x);
-char16 __ovld __cnfn popcount(char16 x);
-uchar16 __ovld __cnfn popcount(uchar16 x);
-short __ovld __cnfn popcount(short x);
-ushort __ovld __cnfn popcount(ushort x);
-short2 __ovld __cnfn popcount(short2 x);
-ushort2 __ovld __cnfn popcount(ushort2 x);
-short3 __ovld __cnfn popcount(short3 x);
-ushort3 __ovld __cnfn popcount(ushort3 x);
-short4 __ovld __cnfn popcount(short4 x);
-ushort4 __ovld __cnfn popcount(ushort4 x);
-short8 __ovld __cnfn popcount(short8 x);
-ushort8 __ovld __cnfn popcount(ushort8 x);
-short16 __ovld __cnfn popcount(short16 x);
-ushort16 __ovld __cnfn popcount(ushort16 x);
-int __ovld __cnfn popcount(int x);
-uint __ovld __cnfn popcount(uint x);
-int2 __ovld __cnfn popcount(int2 x);
-uint2 __ovld __cnfn popcount(uint2 x);
-int3 __ovld __cnfn popcount(int3 x);
-uint3 __ovld __cnfn popcount(uint3 x);
-int4 __ovld __cnfn popcount(int4 x);
-uint4 __ovld __cnfn popcount(uint4 x);
-int8 __ovld __cnfn popcount(int8 x);
-uint8 __ovld __cnfn popcount(uint8 x);
-int16 __ovld __cnfn popcount(int16 x);
-uint16 __ovld __cnfn popcount(uint16 x);
-long __ovld __cnfn popcount(long x);
-ulong __ovld __cnfn popcount(ulong x);
-long2 __ovld __cnfn popcount(long2 x);
-ulong2 __ovld __cnfn popcount(ulong2 x);
-long3 __ovld __cnfn popcount(long3 x);
-ulong3 __ovld __cnfn popcount(ulong3 x);
-long4 __ovld __cnfn popcount(long4 x);
-ulong4 __ovld __cnfn popcount(ulong4 x);
-long8 __ovld __cnfn popcount(long8 x);
-ulong8 __ovld __cnfn popcount(ulong8 x);
-long16 __ovld __cnfn popcount(long16 x);
-ulong16 __ovld __cnfn popcount(ulong16 x);
-#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
-
-/**
- * Multiply two 24-bit integer values x and y and add
- * the 32-bit integer result to the 32-bit integer z.
- * Refer to definition of mul24 to see how the 24-bit
- * integer multiplication is performed.
- */
-int __ovld __cnfn mad24(int x, int y, int z);
-uint __ovld __cnfn mad24(uint x, uint y, uint z);
-int2 __ovld __cnfn mad24(int2 x, int2 y, int2 z);
-uint2 __ovld __cnfn mad24(uint2 x, uint2 y, uint2 z);
-int3 __ovld __cnfn mad24(int3 x, int3 y, int3 z);
-uint3 __ovld __cnfn mad24(uint3 x, uint3 y, uint3 z);
-int4 __ovld __cnfn mad24(int4 x, int4 y, int4 z);
-uint4 __ovld __cnfn mad24(uint4 x, uint4 y, uint4 z);
-int8 __ovld __cnfn mad24(int8 x, int8 y, int8 z);
-uint8 __ovld __cnfn mad24(uint8 x, uint8 y, uint8 z);
-int16 __ovld __cnfn mad24(int16 x, int16 y, int16 z);
-uint16 __ovld __cnfn mad24(uint16 x, uint16 y, uint16 z);
-
-/**
- * Multiply two 24-bit integer values x and y. x and y
- * are 32-bit integers but only the low 24-bits are used
- * to perform the multiplication. mul24 should only
- * be used when values in x and y are in the range [-
- * 2^23, 2^23-1] if x and y are signed integers and in the
- * range [0, 2^24-1] if x and y are unsigned integers. If
- * x and y are not in this range, the multiplication
- * result is implementation-defined.
- */
-int __ovld __cnfn mul24(int x, int y);
-uint __ovld __cnfn mul24(uint x, uint y);
-int2 __ovld __cnfn mul24(int2 x, int2 y);
-uint2 __ovld __cnfn mul24(uint2 x, uint2 y);
-int3 __ovld __cnfn mul24(int3 x, int3 y);
-uint3 __ovld __cnfn mul24(uint3 x, uint3 y);
-int4 __ovld __cnfn mul24(int4 x, int4 y);
-uint4 __ovld __cnfn mul24(uint4 x, uint4 y);
-int8 __ovld __cnfn mul24(int8 x, int8 y);
-uint8 __ovld __cnfn mul24(uint8 x, uint8 y);
-int16 __ovld __cnfn mul24(int16 x, int16 y);
-uint16 __ovld __cnfn mul24(uint16 x, uint16 y);
-
-// OpenCL v1.1 s6.11.4, v1.2 s6.12.4, v2.0 s6.13.4 - Common Functions
-
-/**
- * Returns fmin(fmax(x, minval), maxval).
- * Results are undefined if minval > maxval.
- */
-float __ovld __cnfn clamp(float x, float minval, float maxval);
-float2 __ovld __cnfn clamp(float2 x, float2 minval, float2 maxval);
-float3 __ovld __cnfn clamp(float3 x, float3 minval, float3 maxval);
-float4 __ovld __cnfn clamp(float4 x, float4 minval, float4 maxval);
-float8 __ovld __cnfn clamp(float8 x, float8 minval, float8 maxval);
-float16 __ovld __cnfn clamp(float16 x, float16 minval, float16 maxval);
-float2 __ovld __cnfn clamp(float2 x, float minval, float maxval);
-float3 __ovld __cnfn clamp(float3 x, float minval, float maxval);
-float4 __ovld __cnfn clamp(float4 x, float minval, float maxval);
-float8 __ovld __cnfn clamp(float8 x, float minval, float maxval);
-float16 __ovld __cnfn clamp(float16 x, float minval, float maxval);
-#ifdef cl_khr_fp64
-double __ovld __cnfn clamp(double x, double minval, double maxval);
-double2 __ovld __cnfn clamp(double2 x, double2 minval, double2 maxval);
-double3 __ovld __cnfn clamp(double3 x, double3 minval, double3 maxval);
-double4 __ovld __cnfn clamp(double4 x, double4 minval, double4 maxval);
-double8 __ovld __cnfn clamp(double8 x, double8 minval, double8 maxval);
-double16 __ovld __cnfn clamp(double16 x, double16 minval, double16 maxval);
-double2 __ovld __cnfn clamp(double2 x, double minval, double maxval);
-double3 __ovld __cnfn clamp(double3 x, double minval, double maxval);
-double4 __ovld __cnfn clamp(double4 x, double minval, double maxval);
-double8 __ovld __cnfn clamp(double8 x, double minval, double maxval);
-double16 __ovld __cnfn clamp(double16 x, double minval, double maxval);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn clamp(half x, half minval, half maxval);
-half2 __ovld __cnfn clamp(half2 x, half2 minval, half2 maxval);
-half3 __ovld __cnfn clamp(half3 x, half3 minval, half3 maxval);
-half4 __ovld __cnfn clamp(half4 x, half4 minval, half4 maxval);
-half8 __ovld __cnfn clamp(half8 x, half8 minval, half8 maxval);
-half16 __ovld __cnfn clamp(half16 x, half16 minval, half16 maxval);
-half2 __ovld __cnfn clamp(half2 x, half minval, half maxval);
-half3 __ovld __cnfn clamp(half3 x, half minval, half maxval);
-half4 __ovld __cnfn clamp(half4 x, half minval, half maxval);
-half8 __ovld __cnfn clamp(half8 x, half minval, half maxval);
-half16 __ovld __cnfn clamp(half16 x, half minval, half maxval);
-#endif //cl_khr_fp16
-
-/**
- * Converts radians to degrees, i.e. (180 / PI) *
- * radians.
- */
-float __ovld __cnfn degrees(float radians);
-float2 __ovld __cnfn degrees(float2 radians);
-float3 __ovld __cnfn degrees(float3 radians);
-float4 __ovld __cnfn degrees(float4 radians);
-float8 __ovld __cnfn degrees(float8 radians);
-float16 __ovld __cnfn degrees(float16 radians);
-#ifdef cl_khr_fp64
-double __ovld __cnfn degrees(double radians);
-double2 __ovld __cnfn degrees(double2 radians);
-double3 __ovld __cnfn degrees(double3 radians);
-double4 __ovld __cnfn degrees(double4 radians);
-double8 __ovld __cnfn degrees(double8 radians);
-double16 __ovld __cnfn degrees(double16 radians);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn degrees(half radians);
-half2 __ovld __cnfn degrees(half2 radians);
-half3 __ovld __cnfn degrees(half3 radians);
-half4 __ovld __cnfn degrees(half4 radians);
-half8 __ovld __cnfn degrees(half8 radians);
-half16 __ovld __cnfn degrees(half16 radians);
-#endif //cl_khr_fp16
-
-/**
- * Returns y if x < y, otherwise it returns x. If x and y
- * are infinite or NaN, the return values are undefined.
- */
-float __ovld __cnfn max(float x, float y);
-float2 __ovld __cnfn max(float2 x, float2 y);
-float3 __ovld __cnfn max(float3 x, float3 y);
-float4 __ovld __cnfn max(float4 x, float4 y);
-float8 __ovld __cnfn max(float8 x, float8 y);
-float16 __ovld __cnfn max(float16 x, float16 y);
-float2 __ovld __cnfn max(float2 x, float y);
-float3 __ovld __cnfn max(float3 x, float y);
-float4 __ovld __cnfn max(float4 x, float y);
-float8 __ovld __cnfn max(float8 x, float y);
-float16 __ovld __cnfn max(float16 x, float y);
-#ifdef cl_khr_fp64
-double __ovld __cnfn max(double x, double y);
-double2 __ovld __cnfn max(double2 x, double2 y);
-double3 __ovld __cnfn max(double3 x, double3 y);
-double4 __ovld __cnfn max(double4 x, double4 y);
-double8 __ovld __cnfn max(double8 x, double8 y);
-double16 __ovld __cnfn max(double16 x, double16 y);
-double2 __ovld __cnfn max(double2 x, double y);
-double3 __ovld __cnfn max(double3 x, double y);
-double4 __ovld __cnfn max(double4 x, double y);
-double8 __ovld __cnfn max(double8 x, double y);
-double16 __ovld __cnfn max(double16 x, double y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn max(half x, half y);
-half2 __ovld __cnfn max(half2 x, half2 y);
-half3 __ovld __cnfn max(half3 x, half3 y);
-half4 __ovld __cnfn max(half4 x, half4 y);
-half8 __ovld __cnfn max(half8 x, half8 y);
-half16 __ovld __cnfn max(half16 x, half16 y);
-half2 __ovld __cnfn max(half2 x, half y);
-half3 __ovld __cnfn max(half3 x, half y);
-half4 __ovld __cnfn max(half4 x, half y);
-half8 __ovld __cnfn max(half8 x, half y);
-half16 __ovld __cnfn max(half16 x, half y);
-#endif //cl_khr_fp16
-
-/**
- * Returns y if y < x, otherwise it returns x. If x and y
- * are infinite or NaN, the return values are undefined.
- */
-float __ovld __cnfn min(float x, float y);
-float2 __ovld __cnfn min(float2 x, float2 y);
-float3 __ovld __cnfn min(float3 x, float3 y);
-float4 __ovld __cnfn min(float4 x, float4 y);
-float8 __ovld __cnfn min(float8 x, float8 y);
-float16 __ovld __cnfn min(float16 x, float16 y);
-float2 __ovld __cnfn min(float2 x, float y);
-float3 __ovld __cnfn min(float3 x, float y);
-float4 __ovld __cnfn min(float4 x, float y);
-float8 __ovld __cnfn min(float8 x, float y);
-float16 __ovld __cnfn min(float16 x, float y);
-#ifdef cl_khr_fp64
-double __ovld __cnfn min(double x, double y);
-double2 __ovld __cnfn min(double2 x, double2 y);
-double3 __ovld __cnfn min(double3 x, double3 y);
-double4 __ovld __cnfn min(double4 x, double4 y);
-double8 __ovld __cnfn min(double8 x, double8 y);
-double16 __ovld __cnfn min(double16 x, double16 y);
-double2 __ovld __cnfn min(double2 x, double y);
-double3 __ovld __cnfn min(double3 x, double y);
-double4 __ovld __cnfn min(double4 x, double y);
-double8 __ovld __cnfn min(double8 x, double y);
-double16 __ovld __cnfn min(double16 x, double y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn min(half x, half y);
-half2 __ovld __cnfn min(half2 x, half2 y);
-half3 __ovld __cnfn min(half3 x, half3 y);
-half4 __ovld __cnfn min(half4 x, half4 y);
-half8 __ovld __cnfn min(half8 x, half8 y);
-half16 __ovld __cnfn min(half16 x, half16 y);
-half2 __ovld __cnfn min(half2 x, half y);
-half3 __ovld __cnfn min(half3 x, half y);
-half4 __ovld __cnfn min(half4 x, half y);
-half8 __ovld __cnfn min(half8 x, half y);
-half16 __ovld __cnfn min(half16 x, half y);
-#endif //cl_khr_fp16
-
-/**
- * Returns the linear blend of x & y implemented as:
- * x + (y - x) * a
- * a must be a value in the range 0.0 ... 1.0. If a is not
- * in the range 0.0 ... 1.0, the return values are
- * undefined.
- */
-float __ovld __cnfn mix(float x, float y, float a);
-float2 __ovld __cnfn mix(float2 x, float2 y, float2 a);
-float3 __ovld __cnfn mix(float3 x, float3 y, float3 a);
-float4 __ovld __cnfn mix(float4 x, float4 y, float4 a);
-float8 __ovld __cnfn mix(float8 x, float8 y, float8 a);
-float16 __ovld __cnfn mix(float16 x, float16 y, float16 a);
-float2 __ovld __cnfn mix(float2 x, float2 y, float a);
-float3 __ovld __cnfn mix(float3 x, float3 y, float a);
-float4 __ovld __cnfn mix(float4 x, float4 y, float a);
-float8 __ovld __cnfn mix(float8 x, float8 y, float a);
-float16 __ovld __cnfn mix(float16 x, float16 y, float a);
-#ifdef cl_khr_fp64
-double __ovld __cnfn mix(double x, double y, double a);
-double2 __ovld __cnfn mix(double2 x, double2 y, double2 a);
-double3 __ovld __cnfn mix(double3 x, double3 y, double3 a);
-double4 __ovld __cnfn mix(double4 x, double4 y, double4 a);
-double8 __ovld __cnfn mix(double8 x, double8 y, double8 a);
-double16 __ovld __cnfn mix(double16 x, double16 y, double16 a);
-double2 __ovld __cnfn mix(double2 x, double2 y, double a);
-double3 __ovld __cnfn mix(double3 x, double3 y, double a);
-double4 __ovld __cnfn mix(double4 x, double4 y, double a);
-double8 __ovld __cnfn mix(double8 x, double8 y, double a);
-double16 __ovld __cnfn mix(double16 x, double16 y, double a);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn mix(half x, half y, half a);
-half2 __ovld __cnfn mix(half2 x, half2 y, half2 a);
-half3 __ovld __cnfn mix(half3 x, half3 y, half3 a);
-half4 __ovld __cnfn mix(half4 x, half4 y, half4 a);
-half8 __ovld __cnfn mix(half8 x, half8 y, half8 a);
-half16 __ovld __cnfn mix(half16 x, half16 y, half16 a);
-half2 __ovld __cnfn mix(half2 x, half2 y, half a);
-half3 __ovld __cnfn mix(half3 x, half3 y, half a);
-half4 __ovld __cnfn mix(half4 x, half4 y, half a);
-half8 __ovld __cnfn mix(half8 x, half8 y, half a);
-half16 __ovld __cnfn mix(half16 x, half16 y, half a);
-#endif //cl_khr_fp16
-
-/**
- * Converts degrees to radians, i.e. (PI / 180) *
- * degrees.
- */
-float __ovld __cnfn radians(float degrees);
-float2 __ovld __cnfn radians(float2 degrees);
-float3 __ovld __cnfn radians(float3 degrees);
-float4 __ovld __cnfn radians(float4 degrees);
-float8 __ovld __cnfn radians(float8 degrees);
-float16 __ovld __cnfn radians(float16 degrees);
-#ifdef cl_khr_fp64
-double __ovld __cnfn radians(double degrees);
-double2 __ovld __cnfn radians(double2 degrees);
-double3 __ovld __cnfn radians(double3 degrees);
-double4 __ovld __cnfn radians(double4 degrees);
-double8 __ovld __cnfn radians(double8 degrees);
-double16 __ovld __cnfn radians(double16 degrees);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn radians(half degrees);
-half2 __ovld __cnfn radians(half2 degrees);
-half3 __ovld __cnfn radians(half3 degrees);
-half4 __ovld __cnfn radians(half4 degrees);
-half8 __ovld __cnfn radians(half8 degrees);
-half16 __ovld __cnfn radians(half16 degrees);
-#endif //cl_khr_fp16
-
-/**
- * Returns 0.0 if x < edge, otherwise it returns 1.0.
- */
-float __ovld __cnfn step(float edge, float x);
-float2 __ovld __cnfn step(float2 edge, float2 x);
-float3 __ovld __cnfn step(float3 edge, float3 x);
-float4 __ovld __cnfn step(float4 edge, float4 x);
-float8 __ovld __cnfn step(float8 edge, float8 x);
-float16 __ovld __cnfn step(float16 edge, float16 x);
-float2 __ovld __cnfn step(float edge, float2 x);
-float3 __ovld __cnfn step(float edge, float3 x);
-float4 __ovld __cnfn step(float edge, float4 x);
-float8 __ovld __cnfn step(float edge, float8 x);
-float16 __ovld __cnfn step(float edge, float16 x);
-#ifdef cl_khr_fp64
-double __ovld __cnfn step(double edge, double x);
-double2 __ovld __cnfn step(double2 edge, double2 x);
-double3 __ovld __cnfn step(double3 edge, double3 x);
-double4 __ovld __cnfn step(double4 edge, double4 x);
-double8 __ovld __cnfn step(double8 edge, double8 x);
-double16 __ovld __cnfn step(double16 edge, double16 x);
-double2 __ovld __cnfn step(double edge, double2 x);
-double3 __ovld __cnfn step(double edge, double3 x);
-double4 __ovld __cnfn step(double edge, double4 x);
-double8 __ovld __cnfn step(double edge, double8 x);
-double16 __ovld __cnfn step(double edge, double16 x);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn step(half edge, half x);
-half2 __ovld __cnfn step(half2 edge, half2 x);
-half3 __ovld __cnfn step(half3 edge, half3 x);
-half4 __ovld __cnfn step(half4 edge, half4 x);
-half8 __ovld __cnfn step(half8 edge, half8 x);
-half16 __ovld __cnfn step(half16 edge, half16 x);
-half2 __ovld __cnfn step(half edge, half2 x);
-half3 __ovld __cnfn step(half edge, half3 x);
-half4 __ovld __cnfn step(half edge, half4 x);
-half8 __ovld __cnfn step(half edge, half8 x);
-half16 __ovld __cnfn step(half edge, half16 x);
-#endif //cl_khr_fp16
-
-/**
- * Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and
- * performs smooth Hermite interpolation between 0
- * and 1when edge0 < x < edge1. This is useful in
- * cases where you would want a threshold function
- * with a smooth transition.
- * This is equivalent to:
- * gentype t;
- * t = clamp ((x - edge0) / (edge1 - edge0), 0, 1);
- * return t * t * (3 - 2 * t);
- * Results are undefined if edge0 >= edge1 or if x,
- * edge0 or edge1 is a NaN.
- */
-float __ovld __cnfn smoothstep(float edge0, float edge1, float x);
-float2 __ovld __cnfn smoothstep(float2 edge0, float2 edge1, float2 x);
-float3 __ovld __cnfn smoothstep(float3 edge0, float3 edge1, float3 x);
-float4 __ovld __cnfn smoothstep(float4 edge0, float4 edge1, float4 x);
-float8 __ovld __cnfn smoothstep(float8 edge0, float8 edge1, float8 x);
-float16 __ovld __cnfn smoothstep(float16 edge0, float16 edge1, float16 x);
-float2 __ovld __cnfn smoothstep(float edge0, float edge1, float2 x);
-float3 __ovld __cnfn smoothstep(float edge0, float edge1, float3 x);
-float4 __ovld __cnfn smoothstep(float edge0, float edge1, float4 x);
-float8 __ovld __cnfn smoothstep(float edge0, float edge1, float8 x);
-float16 __ovld __cnfn smoothstep(float edge0, float edge1, float16 x);
-#ifdef cl_khr_fp64
-double __ovld __cnfn smoothstep(double edge0, double edge1, double x);
-double2 __ovld __cnfn smoothstep(double2 edge0, double2 edge1, double2 x);
-double3 __ovld __cnfn smoothstep(double3 edge0, double3 edge1, double3 x);
-double4 __ovld __cnfn smoothstep(double4 edge0, double4 edge1, double4 x);
-double8 __ovld __cnfn smoothstep(double8 edge0, double8 edge1, double8 x);
-double16 __ovld __cnfn smoothstep(double16 edge0, double16 edge1, double16 x);
-double2 __ovld __cnfn smoothstep(double edge0, double edge1, double2 x);
-double3 __ovld __cnfn smoothstep(double edge0, double edge1, double3 x);
-double4 __ovld __cnfn smoothstep(double edge0, double edge1, double4 x);
-double8 __ovld __cnfn smoothstep(double edge0, double edge1, double8 x);
-double16 __ovld __cnfn smoothstep(double edge0, double edge1, double16 x);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn smoothstep(half edge0, half edge1, half x);
-half2 __ovld __cnfn smoothstep(half2 edge0, half2 edge1, half2 x);
-half3 __ovld __cnfn smoothstep(half3 edge0, half3 edge1, half3 x);
-half4 __ovld __cnfn smoothstep(half4 edge0, half4 edge1, half4 x);
-half8 __ovld __cnfn smoothstep(half8 edge0, half8 edge1, half8 x);
-half16 __ovld __cnfn smoothstep(half16 edge0, half16 edge1, half16 x);
-half2 __ovld __cnfn smoothstep(half edge0, half edge1, half2 x);
-half3 __ovld __cnfn smoothstep(half edge0, half edge1, half3 x);
-half4 __ovld __cnfn smoothstep(half edge0, half edge1, half4 x);
-half8 __ovld __cnfn smoothstep(half edge0, half edge1, half8 x);
-half16 __ovld __cnfn smoothstep(half edge0, half edge1, half16 x);
-#endif //cl_khr_fp16
-
-/**
- * Returns 1.0 if x > 0, -0.0 if x = -0.0, +0.0 if x =
- * +0.0, or -1.0 if x < 0. Returns 0.0 if x is a NaN.
- */
-float __ovld __cnfn sign(float x);
-float2 __ovld __cnfn sign(float2 x);
-float3 __ovld __cnfn sign(float3 x);
-float4 __ovld __cnfn sign(float4 x);
-float8 __ovld __cnfn sign(float8 x);
-float16 __ovld __cnfn sign(float16 x);
-#ifdef cl_khr_fp64
-double __ovld __cnfn sign(double x);
-double2 __ovld __cnfn sign(double2 x);
-double3 __ovld __cnfn sign(double3 x);
-double4 __ovld __cnfn sign(double4 x);
-double8 __ovld __cnfn sign(double8 x);
-double16 __ovld __cnfn sign(double16 x);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn sign(half x);
-half2 __ovld __cnfn sign(half2 x);
-half3 __ovld __cnfn sign(half3 x);
-half4 __ovld __cnfn sign(half4 x);
-half8 __ovld __cnfn sign(half8 x);
-half16 __ovld __cnfn sign(half16 x);
-#endif //cl_khr_fp16
-
-// OpenCL v1.1 s6.11.5, v1.2 s6.12.5, v2.0 s6.13.5 - Geometric Functions
-
-/**
- * Returns the cross product of p0.xyz and p1.xyz. The
- * w component of float4 result returned will be 0.0.
- */
-float4 __ovld __cnfn cross(float4 p0, float4 p1);
-float3 __ovld __cnfn cross(float3 p0, float3 p1);
-#ifdef cl_khr_fp64
-double4 __ovld __cnfn cross(double4 p0, double4 p1);
-double3 __ovld __cnfn cross(double3 p0, double3 p1);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half4 __ovld __cnfn cross(half4 p0, half4 p1);
-half3 __ovld __cnfn cross(half3 p0, half3 p1);
-#endif //cl_khr_fp16
-
-/**
- * Compute dot product.
- */
-float __ovld __cnfn dot(float p0, float p1);
-float __ovld __cnfn dot(float2 p0, float2 p1);
-float __ovld __cnfn dot(float3 p0, float3 p1);
-float __ovld __cnfn dot(float4 p0, float4 p1);
-#ifdef cl_khr_fp64
-double __ovld __cnfn dot(double p0, double p1);
-double __ovld __cnfn dot(double2 p0, double2 p1);
-double __ovld __cnfn dot(double3 p0, double3 p1);
-double __ovld __cnfn dot(double4 p0, double4 p1);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn dot(half p0, half p1);
-half __ovld __cnfn dot(half2 p0, half2 p1);
-half __ovld __cnfn dot(half3 p0, half3 p1);
-half __ovld __cnfn dot(half4 p0, half4 p1);
-#endif //cl_khr_fp16
-
-/**
- * Returns the distance between p0 and p1. This is
- * calculated as length(p0 - p1).
- */
-float __ovld __cnfn distance(float p0, float p1);
-float __ovld __cnfn distance(float2 p0, float2 p1);
-float __ovld __cnfn distance(float3 p0, float3 p1);
-float __ovld __cnfn distance(float4 p0, float4 p1);
-#ifdef cl_khr_fp64
-double __ovld __cnfn distance(double p0, double p1);
-double __ovld __cnfn distance(double2 p0, double2 p1);
-double __ovld __cnfn distance(double3 p0, double3 p1);
-double __ovld __cnfn distance(double4 p0, double4 p1);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn distance(half p0, half p1);
-half __ovld __cnfn distance(half2 p0, half2 p1);
-half __ovld __cnfn distance(half3 p0, half3 p1);
-half __ovld __cnfn distance(half4 p0, half4 p1);
-#endif //cl_khr_fp16
-
-/**
- * Return the length of vector p, i.e.,
- * sqrt(p.x2 + p.y 2 + ...)
- */
-float __ovld __cnfn length(float p);
-float __ovld __cnfn length(float2 p);
-float __ovld __cnfn length(float3 p);
-float __ovld __cnfn length(float4 p);
-#ifdef cl_khr_fp64
-double __ovld __cnfn length(double p);
-double __ovld __cnfn length(double2 p);
-double __ovld __cnfn length(double3 p);
-double __ovld __cnfn length(double4 p);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn length(half p);
-half __ovld __cnfn length(half2 p);
-half __ovld __cnfn length(half3 p);
-half __ovld __cnfn length(half4 p);
-#endif //cl_khr_fp16
-
-/**
- * Returns a vector in the same direction as p but with a
- * length of 1.
- */
-float __ovld __cnfn normalize(float p);
-float2 __ovld __cnfn normalize(float2 p);
-float3 __ovld __cnfn normalize(float3 p);
-float4 __ovld __cnfn normalize(float4 p);
-#ifdef cl_khr_fp64
-double __ovld __cnfn normalize(double p);
-double2 __ovld __cnfn normalize(double2 p);
-double3 __ovld __cnfn normalize(double3 p);
-double4 __ovld __cnfn normalize(double4 p);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn normalize(half p);
-half2 __ovld __cnfn normalize(half2 p);
-half3 __ovld __cnfn normalize(half3 p);
-half4 __ovld __cnfn normalize(half4 p);
-#endif //cl_khr_fp16
-
-/**
- * Returns fast_length(p0 - p1).
- */
-float __ovld __cnfn fast_distance(float p0, float p1);
-float __ovld __cnfn fast_distance(float2 p0, float2 p1);
-float __ovld __cnfn fast_distance(float3 p0, float3 p1);
-float __ovld __cnfn fast_distance(float4 p0, float4 p1);
-#ifdef cl_khr_fp16
-half __ovld __cnfn fast_distance(half p0, half p1);
-half __ovld __cnfn fast_distance(half2 p0, half2 p1);
-half __ovld __cnfn fast_distance(half3 p0, half3 p1);
-half __ovld __cnfn fast_distance(half4 p0, half4 p1);
-#endif //cl_khr_fp16
-
-/**
- * Returns the length of vector p computed as:
- * half_sqrt(p.x2 + p.y2 + ...)
- */
-float __ovld __cnfn fast_length(float p);
-float __ovld __cnfn fast_length(float2 p);
-float __ovld __cnfn fast_length(float3 p);
-float __ovld __cnfn fast_length(float4 p);
-#ifdef cl_khr_fp16
-half __ovld __cnfn fast_length(half p);
-half __ovld __cnfn fast_length(half2 p);
-half __ovld __cnfn fast_length(half3 p);
-half __ovld __cnfn fast_length(half4 p);
-#endif //cl_khr_fp16
-
-/**
- * Returns a vector in the same direction as p but with a
- * length of 1. fast_normalize is computed as:
- * p * half_rsqrt (p.x^2 + p.y^2 + ... )
- * The result shall be within 8192 ulps error from the
- * infinitely precise result of
- * if (all(p == 0.0f))
- * result = p;
- * else
- * result = p / sqrt (p.x^2 + p.y^2 + ...);
- * with the following exceptions:
- * 1) If the sum of squares is greater than FLT_MAX
- * then the value of the floating-point values in the
- * result vector are undefined.
- * 2) If the sum of squares is less than FLT_MIN then
- * the implementation may return back p.
- * 3) If the device is in "denorms are flushed to zero"
- * mode, individual operand elements with magnitude
- * less than sqrt(FLT_MIN) may be flushed to zero
- * before proceeding with the calculation.
- */
-float __ovld __cnfn fast_normalize(float p);
-float2 __ovld __cnfn fast_normalize(float2 p);
-float3 __ovld __cnfn fast_normalize(float3 p);
-float4 __ovld __cnfn fast_normalize(float4 p);
-#ifdef cl_khr_fp16
-half __ovld __cnfn fast_normalize(half p);
-half2 __ovld __cnfn fast_normalize(half2 p);
-half3 __ovld __cnfn fast_normalize(half3 p);
-half4 __ovld __cnfn fast_normalize(half4 p);
-#endif //cl_khr_fp16
-
-// OpenCL v1.1 s6.11.6, v1.2 s6.12.6, v2.0 s6.13.6 - Relational Functions
-
-/**
- * intn isequal (floatn x, floatn y)
- * Returns the component-wise compare of x == y.
- */
-int __ovld __cnfn isequal(float x, float y);
-int2 __ovld __cnfn isequal(float2 x, float2 y);
-int3 __ovld __cnfn isequal(float3 x, float3 y);
-int4 __ovld __cnfn isequal(float4 x, float4 y);
-int8 __ovld __cnfn isequal(float8 x, float8 y);
-int16 __ovld __cnfn isequal(float16 x, float16 y);
-#ifdef cl_khr_fp64
-int __ovld __cnfn isequal(double x, double y);
-long2 __ovld __cnfn isequal(double2 x, double2 y);
-long3 __ovld __cnfn isequal(double3 x, double3 y);
-long4 __ovld __cnfn isequal(double4 x, double4 y);
-long8 __ovld __cnfn isequal(double8 x, double8 y);
-long16 __ovld __cnfn isequal(double16 x, double16 y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-int __ovld __cnfn isequal(half x, half y);
-short2 __ovld __cnfn isequal(half2 x, half2 y);
-short3 __ovld __cnfn isequal(half3 x, half3 y);
-short4 __ovld __cnfn isequal(half4 x, half4 y);
-short8 __ovld __cnfn isequal(half8 x, half8 y);
-short16 __ovld __cnfn isequal(half16 x, half16 y);
-#endif //cl_khr_fp16
-
-/**
- * Returns the component-wise compare of x != y.
- */
-int __ovld __cnfn isnotequal(float x, float y);
-int2 __ovld __cnfn isnotequal(float2 x, float2 y);
-int3 __ovld __cnfn isnotequal(float3 x, float3 y);
-int4 __ovld __cnfn isnotequal(float4 x, float4 y);
-int8 __ovld __cnfn isnotequal(float8 x, float8 y);
-int16 __ovld __cnfn isnotequal(float16 x, float16 y);
-#ifdef cl_khr_fp64
-int __ovld __cnfn isnotequal(double x, double y);
-long2 __ovld __cnfn isnotequal(double2 x, double2 y);
-long3 __ovld __cnfn isnotequal(double3 x, double3 y);
-long4 __ovld __cnfn isnotequal(double4 x, double4 y);
-long8 __ovld __cnfn isnotequal(double8 x, double8 y);
-long16 __ovld __cnfn isnotequal(double16 x, double16 y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-int __ovld __cnfn isnotequal(half x, half y);
-short2 __ovld __cnfn isnotequal(half2 x, half2 y);
-short3 __ovld __cnfn isnotequal(half3 x, half3 y);
-short4 __ovld __cnfn isnotequal(half4 x, half4 y);
-short8 __ovld __cnfn isnotequal(half8 x, half8 y);
-short16 __ovld __cnfn isnotequal(half16 x, half16 y);
-#endif //cl_khr_fp16
-
-/**
- * Returns the component-wise compare of x > y.
- */
-int __ovld __cnfn isgreater(float x, float y);
-int2 __ovld __cnfn isgreater(float2 x, float2 y);
-int3 __ovld __cnfn isgreater(float3 x, float3 y);
-int4 __ovld __cnfn isgreater(float4 x, float4 y);
-int8 __ovld __cnfn isgreater(float8 x, float8 y);
-int16 __ovld __cnfn isgreater(float16 x, float16 y);
-#ifdef cl_khr_fp64
-int __ovld __cnfn isgreater(double x, double y);
-long2 __ovld __cnfn isgreater(double2 x, double2 y);
-long3 __ovld __cnfn isgreater(double3 x, double3 y);
-long4 __ovld __cnfn isgreater(double4 x, double4 y);
-long8 __ovld __cnfn isgreater(double8 x, double8 y);
-long16 __ovld __cnfn isgreater(double16 x, double16 y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-int __ovld __cnfn isgreater(half x, half y);
-short2 __ovld __cnfn isgreater(half2 x, half2 y);
-short3 __ovld __cnfn isgreater(half3 x, half3 y);
-short4 __ovld __cnfn isgreater(half4 x, half4 y);
-short8 __ovld __cnfn isgreater(half8 x, half8 y);
-short16 __ovld __cnfn isgreater(half16 x, half16 y);
-#endif //cl_khr_fp16
-
-/**
- * Returns the component-wise compare of x >= y.
- */
-int __ovld __cnfn isgreaterequal(float x, float y);
-int2 __ovld __cnfn isgreaterequal(float2 x, float2 y);
-int3 __ovld __cnfn isgreaterequal(float3 x, float3 y);
-int4 __ovld __cnfn isgreaterequal(float4 x, float4 y);
-int8 __ovld __cnfn isgreaterequal(float8 x, float8 y);
-int16 __ovld __cnfn isgreaterequal(float16 x, float16 y);
-#ifdef cl_khr_fp64
-int __ovld __cnfn isgreaterequal(double x, double y);
-long2 __ovld __cnfn isgreaterequal(double2 x, double2 y);
-long3 __ovld __cnfn isgreaterequal(double3 x, double3 y);
-long4 __ovld __cnfn isgreaterequal(double4 x, double4 y);
-long8 __ovld __cnfn isgreaterequal(double8 x, double8 y);
-long16 __ovld __cnfn isgreaterequal(double16 x, double16 y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-int __ovld __cnfn isgreaterequal(half x, half y);
-short2 __ovld __cnfn isgreaterequal(half2 x, half2 y);
-short3 __ovld __cnfn isgreaterequal(half3 x, half3 y);
-short4 __ovld __cnfn isgreaterequal(half4 x, half4 y);
-short8 __ovld __cnfn isgreaterequal(half8 x, half8 y);
-short16 __ovld __cnfn isgreaterequal(half16 x, half16 y);
-#endif //cl_khr_fp16
-
-/**
- * Returns the component-wise compare of x < y.
- */
-int __ovld __cnfn isless(float x, float y);
-int2 __ovld __cnfn isless(float2 x, float2 y);
-int3 __ovld __cnfn isless(float3 x, float3 y);
-int4 __ovld __cnfn isless(float4 x, float4 y);
-int8 __ovld __cnfn isless(float8 x, float8 y);
-int16 __ovld __cnfn isless(float16 x, float16 y);
-#ifdef cl_khr_fp64
-int __ovld __cnfn isless(double x, double y);
-long2 __ovld __cnfn isless(double2 x, double2 y);
-long3 __ovld __cnfn isless(double3 x, double3 y);
-long4 __ovld __cnfn isless(double4 x, double4 y);
-long8 __ovld __cnfn isless(double8 x, double8 y);
-long16 __ovld __cnfn isless(double16 x, double16 y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-int __ovld __cnfn isless(half x, half y);
-short2 __ovld __cnfn isless(half2 x, half2 y);
-short3 __ovld __cnfn isless(half3 x, half3 y);
-short4 __ovld __cnfn isless(half4 x, half4 y);
-short8 __ovld __cnfn isless(half8 x, half8 y);
-short16 __ovld __cnfn isless(half16 x, half16 y);
-#endif //cl_khr_fp16
-
-/**
- * Returns the component-wise compare of x <= y.
- */
-int __ovld __cnfn islessequal(float x, float y);
-int2 __ovld __cnfn islessequal(float2 x, float2 y);
-int3 __ovld __cnfn islessequal(float3 x, float3 y);
-int4 __ovld __cnfn islessequal(float4 x, float4 y);
-int8 __ovld __cnfn islessequal(float8 x, float8 y);
-int16 __ovld __cnfn islessequal(float16 x, float16 y);
-#ifdef cl_khr_fp64
-int __ovld __cnfn islessequal(double x, double y);
-long2 __ovld __cnfn islessequal(double2 x, double2 y);
-long3 __ovld __cnfn islessequal(double3 x, double3 y);
-long4 __ovld __cnfn islessequal(double4 x, double4 y);
-long8 __ovld __cnfn islessequal(double8 x, double8 y);
-long16 __ovld __cnfn islessequal(double16 x, double16 y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-int __ovld __cnfn islessequal(half x, half y);
-short2 __ovld __cnfn islessequal(half2 x, half2 y);
-short3 __ovld __cnfn islessequal(half3 x, half3 y);
-short4 __ovld __cnfn islessequal(half4 x, half4 y);
-short8 __ovld __cnfn islessequal(half8 x, half8 y);
-short16 __ovld __cnfn islessequal(half16 x, half16 y);
-#endif //cl_khr_fp16
-
-/**
- * Returns the component-wise compare of
- * (x < y) || (x > y) .
- */
-int __ovld __cnfn islessgreater(float x, float y);
-int2 __ovld __cnfn islessgreater(float2 x, float2 y);
-int3 __ovld __cnfn islessgreater(float3 x, float3 y);
-int4 __ovld __cnfn islessgreater(float4 x, float4 y);
-int8 __ovld __cnfn islessgreater(float8 x, float8 y);
-int16 __ovld __cnfn islessgreater(float16 x, float16 y);
-#ifdef cl_khr_fp64
-int __ovld __cnfn islessgreater(double x, double y);
-long2 __ovld __cnfn islessgreater(double2 x, double2 y);
-long3 __ovld __cnfn islessgreater(double3 x, double3 y);
-long4 __ovld __cnfn islessgreater(double4 x, double4 y);
-long8 __ovld __cnfn islessgreater(double8 x, double8 y);
-long16 __ovld __cnfn islessgreater(double16 x, double16 y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-int __ovld __cnfn islessgreater(half x, half y);
-short2 __ovld __cnfn islessgreater(half2 x, half2 y);
-short3 __ovld __cnfn islessgreater(half3 x, half3 y);
-short4 __ovld __cnfn islessgreater(half4 x, half4 y);
-short8 __ovld __cnfn islessgreater(half8 x, half8 y);
-short16 __ovld __cnfn islessgreater(half16 x, half16 y);
-#endif //cl_khr_fp16
-
-/**
- * Test for finite value.
- */
-int __ovld __cnfn isfinite(float);
-int2 __ovld __cnfn isfinite(float2);
-int3 __ovld __cnfn isfinite(float3);
-int4 __ovld __cnfn isfinite(float4);
-int8 __ovld __cnfn isfinite(float8);
-int16 __ovld __cnfn isfinite(float16);
-#ifdef cl_khr_fp64
-int __ovld __cnfn isfinite(double);
-long2 __ovld __cnfn isfinite(double2);
-long3 __ovld __cnfn isfinite(double3);
-long4 __ovld __cnfn isfinite(double4);
-long8 __ovld __cnfn isfinite(double8);
-long16 __ovld __cnfn isfinite(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-int __ovld __cnfn isfinite(half);
-short2 __ovld __cnfn isfinite(half2);
-short3 __ovld __cnfn isfinite(half3);
-short4 __ovld __cnfn isfinite(half4);
-short8 __ovld __cnfn isfinite(half8);
-short16 __ovld __cnfn isfinite(half16);
-#endif //cl_khr_fp16
-
-/**
- * Test for infinity value (+ve or -ve) .
- */
-int __ovld __cnfn isinf(float);
-int2 __ovld __cnfn isinf(float2);
-int3 __ovld __cnfn isinf(float3);
-int4 __ovld __cnfn isinf(float4);
-int8 __ovld __cnfn isinf(float8);
-int16 __ovld __cnfn isinf(float16);
-#ifdef cl_khr_fp64
-int __ovld __cnfn isinf(double);
-long2 __ovld __cnfn isinf(double2);
-long3 __ovld __cnfn isinf(double3);
-long4 __ovld __cnfn isinf(double4);
-long8 __ovld __cnfn isinf(double8);
-long16 __ovld __cnfn isinf(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-int __ovld __cnfn isinf(half);
-short2 __ovld __cnfn isinf(half2);
-short3 __ovld __cnfn isinf(half3);
-short4 __ovld __cnfn isinf(half4);
-short8 __ovld __cnfn isinf(half8);
-short16 __ovld __cnfn isinf(half16);
-#endif //cl_khr_fp16
-
-/**
- * Test for a NaN.
- */
-int __ovld __cnfn isnan(float);
-int2 __ovld __cnfn isnan(float2);
-int3 __ovld __cnfn isnan(float3);
-int4 __ovld __cnfn isnan(float4);
-int8 __ovld __cnfn isnan(float8);
-int16 __ovld __cnfn isnan(float16);
-#ifdef cl_khr_fp64
-int __ovld __cnfn isnan(double);
-long2 __ovld __cnfn isnan(double2);
-long3 __ovld __cnfn isnan(double3);
-long4 __ovld __cnfn isnan(double4);
-long8 __ovld __cnfn isnan(double8);
-long16 __ovld __cnfn isnan(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-int __ovld __cnfn isnan(half);
-short2 __ovld __cnfn isnan(half2);
-short3 __ovld __cnfn isnan(half3);
-short4 __ovld __cnfn isnan(half4);
-short8 __ovld __cnfn isnan(half8);
-short16 __ovld __cnfn isnan(half16);
-#endif //cl_khr_fp16
-
-/**
- * Test for a normal value.
- */
-int __ovld __cnfn isnormal(float);
-int2 __ovld __cnfn isnormal(float2);
-int3 __ovld __cnfn isnormal(float3);
-int4 __ovld __cnfn isnormal(float4);
-int8 __ovld __cnfn isnormal(float8);
-int16 __ovld __cnfn isnormal(float16);
-#ifdef cl_khr_fp64
-int __ovld __cnfn isnormal(double);
-long2 __ovld __cnfn isnormal(double2);
-long3 __ovld __cnfn isnormal(double3);
-long4 __ovld __cnfn isnormal(double4);
-long8 __ovld __cnfn isnormal(double8);
-long16 __ovld __cnfn isnormal(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-int __ovld __cnfn isnormal(half);
-short2 __ovld __cnfn isnormal(half2);
-short3 __ovld __cnfn isnormal(half3);
-short4 __ovld __cnfn isnormal(half4);
-short8 __ovld __cnfn isnormal(half8);
-short16 __ovld __cnfn isnormal(half16);
-#endif //cl_khr_fp16
-
-/**
- * Test if arguments are ordered. isordered() takes
- * arguments x and y, and returns the result
- * isequal(x, x) && isequal(y, y).
- */
-int __ovld __cnfn isordered(float x, float y);
-int2 __ovld __cnfn isordered(float2 x, float2 y);
-int3 __ovld __cnfn isordered(float3 x, float3 y);
-int4 __ovld __cnfn isordered(float4 x, float4 y);
-int8 __ovld __cnfn isordered(float8 x, float8 y);
-int16 __ovld __cnfn isordered(float16 x, float16 y);
-#ifdef cl_khr_fp64
-int __ovld __cnfn isordered(double x, double y);
-long2 __ovld __cnfn isordered(double2 x, double2 y);
-long3 __ovld __cnfn isordered(double3 x, double3 y);
-long4 __ovld __cnfn isordered(double4 x, double4 y);
-long8 __ovld __cnfn isordered(double8 x, double8 y);
-long16 __ovld __cnfn isordered(double16 x, double16 y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-int __ovld __cnfn isordered(half x, half y);
-short2 __ovld __cnfn isordered(half2 x, half2 y);
-short3 __ovld __cnfn isordered(half3 x, half3 y);
-short4 __ovld __cnfn isordered(half4 x, half4 y);
-short8 __ovld __cnfn isordered(half8 x, half8 y);
-short16 __ovld __cnfn isordered(half16 x, half16 y);
-#endif //cl_khr_fp16
-
-/**
- * Test if arguments are unordered. isunordered()
- * takes arguments x and y, returning non-zero if x or y
- * is NaN, and zero otherwise.
- */
-int __ovld __cnfn isunordered(float x, float y);
-int2 __ovld __cnfn isunordered(float2 x, float2 y);
-int3 __ovld __cnfn isunordered(float3 x, float3 y);
-int4 __ovld __cnfn isunordered(float4 x, float4 y);
-int8 __ovld __cnfn isunordered(float8 x, float8 y);
-int16 __ovld __cnfn isunordered(float16 x, float16 y);
-#ifdef cl_khr_fp64
-int __ovld __cnfn isunordered(double x, double y);
-long2 __ovld __cnfn isunordered(double2 x, double2 y);
-long3 __ovld __cnfn isunordered(double3 x, double3 y);
-long4 __ovld __cnfn isunordered(double4 x, double4 y);
-long8 __ovld __cnfn isunordered(double8 x, double8 y);
-long16 __ovld __cnfn isunordered(double16 x, double16 y);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-int __ovld __cnfn isunordered(half x, half y);
-short2 __ovld __cnfn isunordered(half2 x, half2 y);
-short3 __ovld __cnfn isunordered(half3 x, half3 y);
-short4 __ovld __cnfn isunordered(half4 x, half4 y);
-short8 __ovld __cnfn isunordered(half8 x, half8 y);
-short16 __ovld __cnfn isunordered(half16 x, half16 y);
-#endif //cl_khr_fp16
-
-/**
- * Test for sign bit. The scalar version of the function
- * returns a 1 if the sign bit in the float is set else returns
- * 0. The vector version of the function returns the
- * following for each component in floatn: a -1 if the
- * sign bit in the float is set else returns 0.
- */
-int __ovld __cnfn signbit(float);
-int2 __ovld __cnfn signbit(float2);
-int3 __ovld __cnfn signbit(float3);
-int4 __ovld __cnfn signbit(float4);
-int8 __ovld __cnfn signbit(float8);
-int16 __ovld __cnfn signbit(float16);
-#ifdef cl_khr_fp64
-int __ovld __cnfn signbit(double);
-long2 __ovld __cnfn signbit(double2);
-long3 __ovld __cnfn signbit(double3);
-long4 __ovld __cnfn signbit(double4);
-long8 __ovld __cnfn signbit(double8);
-long16 __ovld __cnfn signbit(double16);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-int __ovld __cnfn signbit(half);
-short2 __ovld __cnfn signbit(half2);
-short3 __ovld __cnfn signbit(half3);
-short4 __ovld __cnfn signbit(half4);
-short8 __ovld __cnfn signbit(half8);
-short16 __ovld __cnfn signbit(half16);
-#endif //cl_khr_fp16
-
-/**
- * Returns 1 if the most significant bit in any component
- * of x is set; otherwise returns 0.
- */
-int __ovld __cnfn any(char x);
-int __ovld __cnfn any(char2 x);
-int __ovld __cnfn any(char3 x);
-int __ovld __cnfn any(char4 x);
-int __ovld __cnfn any(char8 x);
-int __ovld __cnfn any(char16 x);
-int __ovld __cnfn any(short x);
-int __ovld __cnfn any(short2 x);
-int __ovld __cnfn any(short3 x);
-int __ovld __cnfn any(short4 x);
-int __ovld __cnfn any(short8 x);
-int __ovld __cnfn any(short16 x);
-int __ovld __cnfn any(int x);
-int __ovld __cnfn any(int2 x);
-int __ovld __cnfn any(int3 x);
-int __ovld __cnfn any(int4 x);
-int __ovld __cnfn any(int8 x);
-int __ovld __cnfn any(int16 x);
-int __ovld __cnfn any(long x);
-int __ovld __cnfn any(long2 x);
-int __ovld __cnfn any(long3 x);
-int __ovld __cnfn any(long4 x);
-int __ovld __cnfn any(long8 x);
-int __ovld __cnfn any(long16 x);
-
-/**
- * Returns 1 if the most significant bit in all components
- * of x is set; otherwise returns 0.
- */
-int __ovld __cnfn all(char x);
-int __ovld __cnfn all(char2 x);
-int __ovld __cnfn all(char3 x);
-int __ovld __cnfn all(char4 x);
-int __ovld __cnfn all(char8 x);
-int __ovld __cnfn all(char16 x);
-int __ovld __cnfn all(short x);
-int __ovld __cnfn all(short2 x);
-int __ovld __cnfn all(short3 x);
-int __ovld __cnfn all(short4 x);
-int __ovld __cnfn all(short8 x);
-int __ovld __cnfn all(short16 x);
-int __ovld __cnfn all(int x);
-int __ovld __cnfn all(int2 x);
-int __ovld __cnfn all(int3 x);
-int __ovld __cnfn all(int4 x);
-int __ovld __cnfn all(int8 x);
-int __ovld __cnfn all(int16 x);
-int __ovld __cnfn all(long x);
-int __ovld __cnfn all(long2 x);
-int __ovld __cnfn all(long3 x);
-int __ovld __cnfn all(long4 x);
-int __ovld __cnfn all(long8 x);
-int __ovld __cnfn all(long16 x);
-
-/**
- * Each bit of the result is the corresponding bit of a if
- * the corresponding bit of c is 0. Otherwise it is the
- * corresponding bit of b.
- */
-char __ovld __cnfn bitselect(char a, char b, char c);
-uchar __ovld __cnfn bitselect(uchar a, uchar b, uchar c);
-char2 __ovld __cnfn bitselect(char2 a, char2 b, char2 c);
-uchar2 __ovld __cnfn bitselect(uchar2 a, uchar2 b, uchar2 c);
-char3 __ovld __cnfn bitselect(char3 a, char3 b, char3 c);
-uchar3 __ovld __cnfn bitselect(uchar3 a, uchar3 b, uchar3 c);
-char4 __ovld __cnfn bitselect(char4 a, char4 b, char4 c);
-uchar4 __ovld __cnfn bitselect(uchar4 a, uchar4 b, uchar4 c);
-char8 __ovld __cnfn bitselect(char8 a, char8 b, char8 c);
-uchar8 __ovld __cnfn bitselect(uchar8 a, uchar8 b, uchar8 c);
-char16 __ovld __cnfn bitselect(char16 a, char16 b, char16 c);
-uchar16 __ovld __cnfn bitselect(uchar16 a, uchar16 b, uchar16 c);
-short __ovld __cnfn bitselect(short a, short b, short c);
-ushort __ovld __cnfn bitselect(ushort a, ushort b, ushort c);
-short2 __ovld __cnfn bitselect(short2 a, short2 b, short2 c);
-ushort2 __ovld __cnfn bitselect(ushort2 a, ushort2 b, ushort2 c);
-short3 __ovld __cnfn bitselect(short3 a, short3 b, short3 c);
-ushort3 __ovld __cnfn bitselect(ushort3 a, ushort3 b, ushort3 c);
-short4 __ovld __cnfn bitselect(short4 a, short4 b, short4 c);
-ushort4 __ovld __cnfn bitselect(ushort4 a, ushort4 b, ushort4 c);
-short8 __ovld __cnfn bitselect(short8 a, short8 b, short8 c);
-ushort8 __ovld __cnfn bitselect(ushort8 a, ushort8 b, ushort8 c);
-short16 __ovld __cnfn bitselect(short16 a, short16 b, short16 c);
-ushort16 __ovld __cnfn bitselect(ushort16 a, ushort16 b, ushort16 c);
-int __ovld __cnfn bitselect(int a, int b, int c);
-uint __ovld __cnfn bitselect(uint a, uint b, uint c);
-int2 __ovld __cnfn bitselect(int2 a, int2 b, int2 c);
-uint2 __ovld __cnfn bitselect(uint2 a, uint2 b, uint2 c);
-int3 __ovld __cnfn bitselect(int3 a, int3 b, int3 c);
-uint3 __ovld __cnfn bitselect(uint3 a, uint3 b, uint3 c);
-int4 __ovld __cnfn bitselect(int4 a, int4 b, int4 c);
-uint4 __ovld __cnfn bitselect(uint4 a, uint4 b, uint4 c);
-int8 __ovld __cnfn bitselect(int8 a, int8 b, int8 c);
-uint8 __ovld __cnfn bitselect(uint8 a, uint8 b, uint8 c);
-int16 __ovld __cnfn bitselect(int16 a, int16 b, int16 c);
-uint16 __ovld __cnfn bitselect(uint16 a, uint16 b, uint16 c);
-long __ovld __cnfn bitselect(long a, long b, long c);
-ulong __ovld __cnfn bitselect(ulong a, ulong b, ulong c);
-long2 __ovld __cnfn bitselect(long2 a, long2 b, long2 c);
-ulong2 __ovld __cnfn bitselect(ulong2 a, ulong2 b, ulong2 c);
-long3 __ovld __cnfn bitselect(long3 a, long3 b, long3 c);
-ulong3 __ovld __cnfn bitselect(ulong3 a, ulong3 b, ulong3 c);
-long4 __ovld __cnfn bitselect(long4 a, long4 b, long4 c);
-ulong4 __ovld __cnfn bitselect(ulong4 a, ulong4 b, ulong4 c);
-long8 __ovld __cnfn bitselect(long8 a, long8 b, long8 c);
-ulong8 __ovld __cnfn bitselect(ulong8 a, ulong8 b, ulong8 c);
-long16 __ovld __cnfn bitselect(long16 a, long16 b, long16 c);
-ulong16 __ovld __cnfn bitselect(ulong16 a, ulong16 b, ulong16 c);
-float __ovld __cnfn bitselect(float a, float b, float c);
-float2 __ovld __cnfn bitselect(float2 a, float2 b, float2 c);
-float3 __ovld __cnfn bitselect(float3 a, float3 b, float3 c);
-float4 __ovld __cnfn bitselect(float4 a, float4 b, float4 c);
-float8 __ovld __cnfn bitselect(float8 a, float8 b, float8 c);
-float16 __ovld __cnfn bitselect(float16 a, float16 b, float16 c);
-#ifdef cl_khr_fp64
-double __ovld __cnfn bitselect(double a, double b, double c);
-double2 __ovld __cnfn bitselect(double2 a, double2 b, double2 c);
-double3 __ovld __cnfn bitselect(double3 a, double3 b, double3 c);
-double4 __ovld __cnfn bitselect(double4 a, double4 b, double4 c);
-double8 __ovld __cnfn bitselect(double8 a, double8 b, double8 c);
-double16 __ovld __cnfn bitselect(double16 a, double16 b, double16 c);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn bitselect(half a, half b, half c);
-half2 __ovld __cnfn bitselect(half2 a, half2 b, half2 c);
-half3 __ovld __cnfn bitselect(half3 a, half3 b, half3 c);
-half4 __ovld __cnfn bitselect(half4 a, half4 b, half4 c);
-half8 __ovld __cnfn bitselect(half8 a, half8 b, half8 c);
-half16 __ovld __cnfn bitselect(half16 a, half16 b, half16 c);
-#endif //cl_khr_fp16
-
-/**
- * For each component of a vector type,
- * result[i] = if MSB of c[i] is set ? b[i] : a[i].
- * For a scalar type, result = c ? b : a.
- * b and a must have the same type.
- * c must have the same number of elements and bits as a.
- */
-char __ovld __cnfn select(char a, char b, char c);
-uchar __ovld __cnfn select(uchar a, uchar b, char c);
-char2 __ovld __cnfn select(char2 a, char2 b, char2 c);
-uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, char2 c);
-char3 __ovld __cnfn select(char3 a, char3 b, char3 c);
-uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, char3 c);
-char4 __ovld __cnfn select(char4 a, char4 b, char4 c);
-uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, char4 c);
-char8 __ovld __cnfn select(char8 a, char8 b, char8 c);
-uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, char8 c);
-char16 __ovld __cnfn select(char16 a, char16 b, char16 c);
-uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, char16 c);
-
-short __ovld __cnfn select(short a, short b, short c);
-ushort __ovld __cnfn select(ushort a, ushort b, short c);
-short2 __ovld __cnfn select(short2 a, short2 b, short2 c);
-ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, short2 c);
-short3 __ovld __cnfn select(short3 a, short3 b, short3 c);
-ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, short3 c);
-short4 __ovld __cnfn select(short4 a, short4 b, short4 c);
-ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, short4 c);
-short8 __ovld __cnfn select(short8 a, short8 b, short8 c);
-ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, short8 c);
-short16 __ovld __cnfn select(short16 a, short16 b, short16 c);
-ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, short16 c);
-
-int __ovld __cnfn select(int a, int b, int c);
-uint __ovld __cnfn select(uint a, uint b, int c);
-int2 __ovld __cnfn select(int2 a, int2 b, int2 c);
-uint2 __ovld __cnfn select(uint2 a, uint2 b, int2 c);
-int3 __ovld __cnfn select(int3 a, int3 b, int3 c);
-uint3 __ovld __cnfn select(uint3 a, uint3 b, int3 c);
-int4 __ovld __cnfn select(int4 a, int4 b, int4 c);
-uint4 __ovld __cnfn select(uint4 a, uint4 b, int4 c);
-int8 __ovld __cnfn select(int8 a, int8 b, int8 c);
-uint8 __ovld __cnfn select(uint8 a, uint8 b, int8 c);
-int16 __ovld __cnfn select(int16 a, int16 b, int16 c);
-uint16 __ovld __cnfn select(uint16 a, uint16 b, int16 c);
-float __ovld __cnfn select(float a, float b, int c);
-float2 __ovld __cnfn select(float2 a, float2 b, int2 c);
-float3 __ovld __cnfn select(float3 a, float3 b, int3 c);
-float4 __ovld __cnfn select(float4 a, float4 b, int4 c);
-float8 __ovld __cnfn select(float8 a, float8 b, int8 c);
-float16 __ovld __cnfn select(float16 a, float16 b, int16 c);
-
-long __ovld __cnfn select(long a, long b, long c);
-ulong __ovld __cnfn select(ulong a, ulong b, long c);
-long2 __ovld __cnfn select(long2 a, long2 b, long2 c);
-ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, long2 c);
-long3 __ovld __cnfn select(long3 a, long3 b, long3 c);
-ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, long3 c);
-long4 __ovld __cnfn select(long4 a, long4 b, long4 c);
-ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, long4 c);
-long8 __ovld __cnfn select(long8 a, long8 b, long8 c);
-ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, long8 c);
-long16 __ovld __cnfn select(long16 a, long16 b, long16 c);
-ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, long16 c);
-
-char __ovld __cnfn select(char a, char b, uchar c);
-uchar __ovld __cnfn select(uchar a, uchar b, uchar c);
-char2 __ovld __cnfn select(char2 a, char2 b, uchar2 c);
-uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, uchar2 c);
-char3 __ovld __cnfn select(char3 a, char3 b, uchar3 c);
-uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, uchar3 c);
-char4 __ovld __cnfn select(char4 a, char4 b, uchar4 c);
-uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, uchar4 c);
-char8 __ovld __cnfn select(char8 a, char8 b, uchar8 c);
-uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, uchar8 c);
-char16 __ovld __cnfn select(char16 a, char16 b, uchar16 c);
-uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, uchar16 c);
-
-short __ovld __cnfn select(short a, short b, ushort c);
-ushort __ovld __cnfn select(ushort a, ushort b, ushort c);
-short2 __ovld __cnfn select(short2 a, short2 b, ushort2 c);
-ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, ushort2 c);
-short3 __ovld __cnfn select(short3 a, short3 b, ushort3 c);
-ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, ushort3 c);
-short4 __ovld __cnfn select(short4 a, short4 b, ushort4 c);
-ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, ushort4 c);
-short8 __ovld __cnfn select(short8 a, short8 b, ushort8 c);
-ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, ushort8 c);
-short16 __ovld __cnfn select(short16 a, short16 b, ushort16 c);
-ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, ushort16 c);
-
-int __ovld __cnfn select(int a, int b, uint c);
-uint __ovld __cnfn select(uint a, uint b, uint c);
-int2 __ovld __cnfn select(int2 a, int2 b, uint2 c);
-uint2 __ovld __cnfn select(uint2 a, uint2 b, uint2 c);
-int3 __ovld __cnfn select(int3 a, int3 b, uint3 c);
-uint3 __ovld __cnfn select(uint3 a, uint3 b, uint3 c);
-int4 __ovld __cnfn select(int4 a, int4 b, uint4 c);
-uint4 __ovld __cnfn select(uint4 a, uint4 b, uint4 c);
-int8 __ovld __cnfn select(int8 a, int8 b, uint8 c);
-uint8 __ovld __cnfn select(uint8 a, uint8 b, uint8 c);
-int16 __ovld __cnfn select(int16 a, int16 b, uint16 c);
-uint16 __ovld __cnfn select(uint16 a, uint16 b, uint16 c);
-float __ovld __cnfn select(float a, float b, uint c);
-float2 __ovld __cnfn select(float2 a, float2 b, uint2 c);
-float3 __ovld __cnfn select(float3 a, float3 b, uint3 c);
-float4 __ovld __cnfn select(float4 a, float4 b, uint4 c);
-float8 __ovld __cnfn select(float8 a, float8 b, uint8 c);
-float16 __ovld __cnfn select(float16 a, float16 b, uint16 c);
-
-long __ovld __cnfn select(long a, long b, ulong c);
-ulong __ovld __cnfn select(ulong a, ulong b, ulong c);
-long2 __ovld __cnfn select(long2 a, long2 b, ulong2 c);
-ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, ulong2 c);
-long3 __ovld __cnfn select(long3 a, long3 b, ulong3 c);
-ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, ulong3 c);
-long4 __ovld __cnfn select(long4 a, long4 b, ulong4 c);
-ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, ulong4 c);
-long8 __ovld __cnfn select(long8 a, long8 b, ulong8 c);
-ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, ulong8 c);
-long16 __ovld __cnfn select(long16 a, long16 b, ulong16 c);
-ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, ulong16 c);
-
-#ifdef cl_khr_fp64
-double __ovld __cnfn select(double a, double b, long c);
-double2 __ovld __cnfn select(double2 a, double2 b, long2 c);
-double3 __ovld __cnfn select(double3 a, double3 b, long3 c);
-double4 __ovld __cnfn select(double4 a, double4 b, long4 c);
-double8 __ovld __cnfn select(double8 a, double8 b, long8 c);
-double16 __ovld __cnfn select(double16 a, double16 b, long16 c);
-double __ovld __cnfn select(double a, double b, ulong c);
-double2 __ovld __cnfn select(double2 a, double2 b, ulong2 c);
-double3 __ovld __cnfn select(double3 a, double3 b, ulong3 c);
-double4 __ovld __cnfn select(double4 a, double4 b, ulong4 c);
-double8 __ovld __cnfn select(double8 a, double8 b, ulong8 c);
-double16 __ovld __cnfn select(double16 a, double16 b, ulong16 c);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-half __ovld __cnfn select(half a, half b, short c);
-half2 __ovld __cnfn select(half2 a, half2 b, short2 c);
-half3 __ovld __cnfn select(half3 a, half3 b, short3 c);
-half4 __ovld __cnfn select(half4 a, half4 b, short4 c);
-half8 __ovld __cnfn select(half8 a, half8 b, short8 c);
-half16 __ovld __cnfn select(half16 a, half16 b, short16 c);
-half __ovld __cnfn select(half a, half b, ushort c);
-half2 __ovld __cnfn select(half2 a, half2 b, ushort2 c);
-half3 __ovld __cnfn select(half3 a, half3 b, ushort3 c);
-half4 __ovld __cnfn select(half4 a, half4 b, ushort4 c);
-half8 __ovld __cnfn select(half8 a, half8 b, ushort8 c);
-half16 __ovld __cnfn select(half16 a, half16 b, ushort16 c);
-#endif //cl_khr_fp16
-
-// OpenCL v1.1 s6.11.7, v1.2 s6.12.7, v2.0 s6.13.7 - Vector Data Load and Store Functions
-// OpenCL extensions v1.1 s9.6.6, v1.2 s9.5.6, v2.0 s9.4.6 - Vector Data Load and Store Functions for Half Type
-/**
- * Use generic type gentype to indicate the built-in data types
- * char, uchar, short, ushort, int, uint, long, ulong, float,
- * double or half.
- *
- * vloadn return sizeof (gentypen) bytes of data read from address (p + (offset * n)).
- *
- * vstoren write sizeof (gentypen) bytes given by data to address (p + (offset * n)).
- *
- * The address computed as (p + (offset * n)) must be
- * 8-bit aligned if gentype is char, uchar;
- * 16-bit aligned if gentype is short, ushort, half;
- * 32-bit aligned if gentype is int, uint, float;
- * 64-bit aligned if gentype is long, ulong, double.
- */
-
-char2 __ovld vload2(size_t offset, const __constant char *p);
-uchar2 __ovld vload2(size_t offset, const __constant uchar *p);
-short2 __ovld vload2(size_t offset, const __constant short *p);
-ushort2 __ovld vload2(size_t offset, const __constant ushort *p);
-int2 __ovld vload2(size_t offset, const __constant int *p);
-uint2 __ovld vload2(size_t offset, const __constant uint *p);
-long2 __ovld vload2(size_t offset, const __constant long *p);
-ulong2 __ovld vload2(size_t offset, const __constant ulong *p);
-float2 __ovld vload2(size_t offset, const __constant float *p);
-char3 __ovld vload3(size_t offset, const __constant char *p);
-uchar3 __ovld vload3(size_t offset, const __constant uchar *p);
-short3 __ovld vload3(size_t offset, const __constant short *p);
-ushort3 __ovld vload3(size_t offset, const __constant ushort *p);
-int3 __ovld vload3(size_t offset, const __constant int *p);
-uint3 __ovld vload3(size_t offset, const __constant uint *p);
-long3 __ovld vload3(size_t offset, const __constant long *p);
-ulong3 __ovld vload3(size_t offset, const __constant ulong *p);
-float3 __ovld vload3(size_t offset, const __constant float *p);
-char4 __ovld vload4(size_t offset, const __constant char *p);
-uchar4 __ovld vload4(size_t offset, const __constant uchar *p);
-short4 __ovld vload4(size_t offset, const __constant short *p);
-ushort4 __ovld vload4(size_t offset, const __constant ushort *p);
-int4 __ovld vload4(size_t offset, const __constant int *p);
-uint4 __ovld vload4(size_t offset, const __constant uint *p);
-long4 __ovld vload4(size_t offset, const __constant long *p);
-ulong4 __ovld vload4(size_t offset, const __constant ulong *p);
-float4 __ovld vload4(size_t offset, const __constant float *p);
-char8 __ovld vload8(size_t offset, const __constant char *p);
-uchar8 __ovld vload8(size_t offset, const __constant uchar *p);
-short8 __ovld vload8(size_t offset, const __constant short *p);
-ushort8 __ovld vload8(size_t offset, const __constant ushort *p);
-int8 __ovld vload8(size_t offset, const __constant int *p);
-uint8 __ovld vload8(size_t offset, const __constant uint *p);
-long8 __ovld vload8(size_t offset, const __constant long *p);
-ulong8 __ovld vload8(size_t offset, const __constant ulong *p);
-float8 __ovld vload8(size_t offset, const __constant float *p);
-char16 __ovld vload16(size_t offset, const __constant char *p);
-uchar16 __ovld vload16(size_t offset, const __constant uchar *p);
-short16 __ovld vload16(size_t offset, const __constant short *p);
-ushort16 __ovld vload16(size_t offset, const __constant ushort *p);
-int16 __ovld vload16(size_t offset, const __constant int *p);
-uint16 __ovld vload16(size_t offset, const __constant uint *p);
-long16 __ovld vload16(size_t offset, const __constant long *p);
-ulong16 __ovld vload16(size_t offset, const __constant ulong *p);
-float16 __ovld vload16(size_t offset, const __constant float *p);
-#ifdef cl_khr_fp64
-double2 __ovld vload2(size_t offset, const __constant double *p);
-double3 __ovld vload3(size_t offset, const __constant double *p);
-double4 __ovld vload4(size_t offset, const __constant double *p);
-double8 __ovld vload8(size_t offset, const __constant double *p);
-double16 __ovld vload16(size_t offset, const __constant double *p);
-#endif //cl_khr_fp64
-
-#ifdef cl_khr_fp16
-half __ovld vload(size_t offset, const __constant half *p);
-half2 __ovld vload2(size_t offset, const __constant half *p);
-half3 __ovld vload3(size_t offset, const __constant half *p);
-half4 __ovld vload4(size_t offset, const __constant half *p);
-half8 __ovld vload8(size_t offset, const __constant half *p);
-half16 __ovld vload16(size_t offset, const __constant half *p);
-#endif //cl_khr_fp16
-
-#if defined(__opencl_c_generic_address_space)
-char2 __ovld vload2(size_t offset, const char *p);
-uchar2 __ovld vload2(size_t offset, const uchar *p);
-short2 __ovld vload2(size_t offset, const short *p);
-ushort2 __ovld vload2(size_t offset, const ushort *p);
-int2 __ovld vload2(size_t offset, const int *p);
-uint2 __ovld vload2(size_t offset, const uint *p);
-long2 __ovld vload2(size_t offset, const long *p);
-ulong2 __ovld vload2(size_t offset, const ulong *p);
-float2 __ovld vload2(size_t offset, const float *p);
-char3 __ovld vload3(size_t offset, const char *p);
-uchar3 __ovld vload3(size_t offset, const uchar *p);
-short3 __ovld vload3(size_t offset, const short *p);
-ushort3 __ovld vload3(size_t offset, const ushort *p);
-int3 __ovld vload3(size_t offset, const int *p);
-uint3 __ovld vload3(size_t offset, const uint *p);
-long3 __ovld vload3(size_t offset, const long *p);
-ulong3 __ovld vload3(size_t offset, const ulong *p);
-float3 __ovld vload3(size_t offset, const float *p);
-char4 __ovld vload4(size_t offset, const char *p);
-uchar4 __ovld vload4(size_t offset, const uchar *p);
-short4 __ovld vload4(size_t offset, const short *p);
-ushort4 __ovld vload4(size_t offset, const ushort *p);
-int4 __ovld vload4(size_t offset, const int *p);
-uint4 __ovld vload4(size_t offset, const uint *p);
-long4 __ovld vload4(size_t offset, const long *p);
-ulong4 __ovld vload4(size_t offset, const ulong *p);
-float4 __ovld vload4(size_t offset, const float *p);
-char8 __ovld vload8(size_t offset, const char *p);
-uchar8 __ovld vload8(size_t offset, const uchar *p);
-short8 __ovld vload8(size_t offset, const short *p);
-ushort8 __ovld vload8(size_t offset, const ushort *p);
-int8 __ovld vload8(size_t offset, const int *p);
-uint8 __ovld vload8(size_t offset, const uint *p);
-long8 __ovld vload8(size_t offset, const long *p);
-ulong8 __ovld vload8(size_t offset, const ulong *p);
-float8 __ovld vload8(size_t offset, const float *p);
-char16 __ovld vload16(size_t offset, const char *p);
-uchar16 __ovld vload16(size_t offset, const uchar *p);
-short16 __ovld vload16(size_t offset, const short *p);
-ushort16 __ovld vload16(size_t offset, const ushort *p);
-int16 __ovld vload16(size_t offset, const int *p);
-uint16 __ovld vload16(size_t offset, const uint *p);
-long16 __ovld vload16(size_t offset, const long *p);
-ulong16 __ovld vload16(size_t offset, const ulong *p);
-float16 __ovld vload16(size_t offset, const float *p);
-
-#ifdef cl_khr_fp64
-double2 __ovld vload2(size_t offset, const double *p);
-double3 __ovld vload3(size_t offset, const double *p);
-double4 __ovld vload4(size_t offset, const double *p);
-double8 __ovld vload8(size_t offset, const double *p);
-double16 __ovld vload16(size_t offset, const double *p);
-#endif //cl_khr_fp64
-
-#ifdef cl_khr_fp16
-half __ovld vload(size_t offset, const half *p);
-half2 __ovld vload2(size_t offset, const half *p);
-half3 __ovld vload3(size_t offset, const half *p);
-half4 __ovld vload4(size_t offset, const half *p);
-half8 __ovld vload8(size_t offset, const half *p);
-half16 __ovld vload16(size_t offset, const half *p);
-#endif //cl_khr_fp16
-#else
-char2 __ovld vload2(size_t offset, const __global char *p);
-uchar2 __ovld vload2(size_t offset, const __global uchar *p);
-short2 __ovld vload2(size_t offset, const __global short *p);
-ushort2 __ovld vload2(size_t offset, const __global ushort *p);
-int2 __ovld vload2(size_t offset, const __global int *p);
-uint2 __ovld vload2(size_t offset, const __global uint *p);
-long2 __ovld vload2(size_t offset, const __global long *p);
-ulong2 __ovld vload2(size_t offset, const __global ulong *p);
-float2 __ovld vload2(size_t offset, const __global float *p);
-char3 __ovld vload3(size_t offset, const __global char *p);
-uchar3 __ovld vload3(size_t offset, const __global uchar *p);
-short3 __ovld vload3(size_t offset, const __global short *p);
-ushort3 __ovld vload3(size_t offset, const __global ushort *p);
-int3 __ovld vload3(size_t offset, const __global int *p);
-uint3 __ovld vload3(size_t offset, const __global uint *p);
-long3 __ovld vload3(size_t offset, const __global long *p);
-ulong3 __ovld vload3(size_t offset, const __global ulong *p);
-float3 __ovld vload3(size_t offset, const __global float *p);
-char4 __ovld vload4(size_t offset, const __global char *p);
-uchar4 __ovld vload4(size_t offset, const __global uchar *p);
-short4 __ovld vload4(size_t offset, const __global short *p);
-ushort4 __ovld vload4(size_t offset, const __global ushort *p);
-int4 __ovld vload4(size_t offset, const __global int *p);
-uint4 __ovld vload4(size_t offset, const __global uint *p);
-long4 __ovld vload4(size_t offset, const __global long *p);
-ulong4 __ovld vload4(size_t offset, const __global ulong *p);
-float4 __ovld vload4(size_t offset, const __global float *p);
-char8 __ovld vload8(size_t offset, const __global char *p);
-uchar8 __ovld vload8(size_t offset, const __global uchar *p);
-short8 __ovld vload8(size_t offset, const __global short *p);
-ushort8 __ovld vload8(size_t offset, const __global ushort *p);
-int8 __ovld vload8(size_t offset, const __global int *p);
-uint8 __ovld vload8(size_t offset, const __global uint *p);
-long8 __ovld vload8(size_t offset, const __global long *p);
-ulong8 __ovld vload8(size_t offset, const __global ulong *p);
-float8 __ovld vload8(size_t offset, const __global float *p);
-char16 __ovld vload16(size_t offset, const __global char *p);
-uchar16 __ovld vload16(size_t offset, const __global uchar *p);
-short16 __ovld vload16(size_t offset, const __global short *p);
-ushort16 __ovld vload16(size_t offset, const __global ushort *p);
-int16 __ovld vload16(size_t offset, const __global int *p);
-uint16 __ovld vload16(size_t offset, const __global uint *p);
-long16 __ovld vload16(size_t offset, const __global long *p);
-ulong16 __ovld vload16(size_t offset, const __global ulong *p);
-float16 __ovld vload16(size_t offset, const __global float *p);
-char2 __ovld vload2(size_t offset, const __local char *p);
-uchar2 __ovld vload2(size_t offset, const __local uchar *p);
-short2 __ovld vload2(size_t offset, const __local short *p);
-ushort2 __ovld vload2(size_t offset, const __local ushort *p);
-int2 __ovld vload2(size_t offset, const __local int *p);
-uint2 __ovld vload2(size_t offset, const __local uint *p);
-long2 __ovld vload2(size_t offset, const __local long *p);
-ulong2 __ovld vload2(size_t offset, const __local ulong *p);
-float2 __ovld vload2(size_t offset, const __local float *p);
-char3 __ovld vload3(size_t offset, const __local char *p);
-uchar3 __ovld vload3(size_t offset, const __local uchar *p);
-short3 __ovld vload3(size_t offset, const __local short *p);
-ushort3 __ovld vload3(size_t offset, const __local ushort *p);
-int3 __ovld vload3(size_t offset, const __local int *p);
-uint3 __ovld vload3(size_t offset, const __local uint *p);
-long3 __ovld vload3(size_t offset, const __local long *p);
-ulong3 __ovld vload3(size_t offset, const __local ulong *p);
-float3 __ovld vload3(size_t offset, const __local float *p);
-char4 __ovld vload4(size_t offset, const __local char *p);
-uchar4 __ovld vload4(size_t offset, const __local uchar *p);
-short4 __ovld vload4(size_t offset, const __local short *p);
-ushort4 __ovld vload4(size_t offset, const __local ushort *p);
-int4 __ovld vload4(size_t offset, const __local int *p);
-uint4 __ovld vload4(size_t offset, const __local uint *p);
-long4 __ovld vload4(size_t offset, const __local long *p);
-ulong4 __ovld vload4(size_t offset, const __local ulong *p);
-float4 __ovld vload4(size_t offset, const __local float *p);
-char8 __ovld vload8(size_t offset, const __local char *p);
-uchar8 __ovld vload8(size_t offset, const __local uchar *p);
-short8 __ovld vload8(size_t offset, const __local short *p);
-ushort8 __ovld vload8(size_t offset, const __local ushort *p);
-int8 __ovld vload8(size_t offset, const __local int *p);
-uint8 __ovld vload8(size_t offset, const __local uint *p);
-long8 __ovld vload8(size_t offset, const __local long *p);
-ulong8 __ovld vload8(size_t offset, const __local ulong *p);
-float8 __ovld vload8(size_t offset, const __local float *p);
-char16 __ovld vload16(size_t offset, const __local char *p);
-uchar16 __ovld vload16(size_t offset, const __local uchar *p);
-short16 __ovld vload16(size_t offset, const __local short *p);
-ushort16 __ovld vload16(size_t offset, const __local ushort *p);
-int16 __ovld vload16(size_t offset, const __local int *p);
-uint16 __ovld vload16(size_t offset, const __local uint *p);
-long16 __ovld vload16(size_t offset, const __local long *p);
-ulong16 __ovld vload16(size_t offset, const __local ulong *p);
-float16 __ovld vload16(size_t offset, const __local float *p);
-char2 __ovld vload2(size_t offset, const __private char *p);
-uchar2 __ovld vload2(size_t offset, const __private uchar *p);
-short2 __ovld vload2(size_t offset, const __private short *p);
-ushort2 __ovld vload2(size_t offset, const __private ushort *p);
-int2 __ovld vload2(size_t offset, const __private int *p);
-uint2 __ovld vload2(size_t offset, const __private uint *p);
-long2 __ovld vload2(size_t offset, const __private long *p);
-ulong2 __ovld vload2(size_t offset, const __private ulong *p);
-float2 __ovld vload2(size_t offset, const __private float *p);
-char3 __ovld vload3(size_t offset, const __private char *p);
-uchar3 __ovld vload3(size_t offset, const __private uchar *p);
-short3 __ovld vload3(size_t offset, const __private short *p);
-ushort3 __ovld vload3(size_t offset, const __private ushort *p);
-int3 __ovld vload3(size_t offset, const __private int *p);
-uint3 __ovld vload3(size_t offset, const __private uint *p);
-long3 __ovld vload3(size_t offset, const __private long *p);
-ulong3 __ovld vload3(size_t offset, const __private ulong *p);
-float3 __ovld vload3(size_t offset, const __private float *p);
-char4 __ovld vload4(size_t offset, const __private char *p);
-uchar4 __ovld vload4(size_t offset, const __private uchar *p);
-short4 __ovld vload4(size_t offset, const __private short *p);
-ushort4 __ovld vload4(size_t offset, const __private ushort *p);
-int4 __ovld vload4(size_t offset, const __private int *p);
-uint4 __ovld vload4(size_t offset, const __private uint *p);
-long4 __ovld vload4(size_t offset, const __private long *p);
-ulong4 __ovld vload4(size_t offset, const __private ulong *p);
-float4 __ovld vload4(size_t offset, const __private float *p);
-char8 __ovld vload8(size_t offset, const __private char *p);
-uchar8 __ovld vload8(size_t offset, const __private uchar *p);
-short8 __ovld vload8(size_t offset, const __private short *p);
-ushort8 __ovld vload8(size_t offset, const __private ushort *p);
-int8 __ovld vload8(size_t offset, const __private int *p);
-uint8 __ovld vload8(size_t offset, const __private uint *p);
-long8 __ovld vload8(size_t offset, const __private long *p);
-ulong8 __ovld vload8(size_t offset, const __private ulong *p);
-float8 __ovld vload8(size_t offset, const __private float *p);
-char16 __ovld vload16(size_t offset, const __private char *p);
-uchar16 __ovld vload16(size_t offset, const __private uchar *p);
-short16 __ovld vload16(size_t offset, const __private short *p);
-ushort16 __ovld vload16(size_t offset, const __private ushort *p);
-int16 __ovld vload16(size_t offset, const __private int *p);
-uint16 __ovld vload16(size_t offset, const __private uint *p);
-long16 __ovld vload16(size_t offset, const __private long *p);
-ulong16 __ovld vload16(size_t offset, const __private ulong *p);
-float16 __ovld vload16(size_t offset, const __private float *p);
-
-#ifdef cl_khr_fp64
-double2 __ovld vload2(size_t offset, const __global double *p);
-double3 __ovld vload3(size_t offset, const __global double *p);
-double4 __ovld vload4(size_t offset, const __global double *p);
-double8 __ovld vload8(size_t offset, const __global double *p);
-double16 __ovld vload16(size_t offset, const __global double *p);
-double2 __ovld vload2(size_t offset, const __local double *p);
-double3 __ovld vload3(size_t offset, const __local double *p);
-double4 __ovld vload4(size_t offset, const __local double *p);
-double8 __ovld vload8(size_t offset, const __local double *p);
-double16 __ovld vload16(size_t offset, const __local double *p);
-double2 __ovld vload2(size_t offset, const __private double *p);
-double3 __ovld vload3(size_t offset, const __private double *p);
-double4 __ovld vload4(size_t offset, const __private double *p);
-double8 __ovld vload8(size_t offset, const __private double *p);
-double16 __ovld vload16(size_t offset, const __private double *p);
-#endif //cl_khr_fp64
-
-#ifdef cl_khr_fp16
-half __ovld vload(size_t offset, const __global half *p);
-half2 __ovld vload2(size_t offset, const __global half *p);
-half3 __ovld vload3(size_t offset, const __global half *p);
-half4 __ovld vload4(size_t offset, const __global half *p);
-half8 __ovld vload8(size_t offset, const __global half *p);
-half16 __ovld vload16(size_t offset, const __global half *p);
-half __ovld vload(size_t offset, const __local half *p);
-half2 __ovld vload2(size_t offset, const __local half *p);
-half3 __ovld vload3(size_t offset, const __local half *p);
-half4 __ovld vload4(size_t offset, const __local half *p);
-half8 __ovld vload8(size_t offset, const __local half *p);
-half16 __ovld vload16(size_t offset, const __local half *p);
-half __ovld vload(size_t offset, const __private half *p);
-half2 __ovld vload2(size_t offset, const __private half *p);
-half3 __ovld vload3(size_t offset, const __private half *p);
-half4 __ovld vload4(size_t offset, const __private half *p);
-half8 __ovld vload8(size_t offset, const __private half *p);
-half16 __ovld vload16(size_t offset, const __private half *p);
-#endif //cl_khr_fp16
-#endif //defined(__opencl_c_generic_address_space)
-
-#if defined(__opencl_c_generic_address_space)
-void __ovld vstore2(char2 data, size_t offset, char *p);
-void __ovld vstore2(uchar2 data, size_t offset, uchar *p);
-void __ovld vstore2(short2 data, size_t offset, short *p);
-void __ovld vstore2(ushort2 data, size_t offset, ushort *p);
-void __ovld vstore2(int2 data, size_t offset, int *p);
-void __ovld vstore2(uint2 data, size_t offset, uint *p);
-void __ovld vstore2(long2 data, size_t offset, long *p);
-void __ovld vstore2(ulong2 data, size_t offset, ulong *p);
-void __ovld vstore2(float2 data, size_t offset, float *p);
-void __ovld vstore3(char3 data, size_t offset, char *p);
-void __ovld vstore3(uchar3 data, size_t offset, uchar *p);
-void __ovld vstore3(short3 data, size_t offset, short *p);
-void __ovld vstore3(ushort3 data, size_t offset, ushort *p);
-void __ovld vstore3(int3 data, size_t offset, int *p);
-void __ovld vstore3(uint3 data, size_t offset, uint *p);
-void __ovld vstore3(long3 data, size_t offset, long *p);
-void __ovld vstore3(ulong3 data, size_t offset, ulong *p);
-void __ovld vstore3(float3 data, size_t offset, float *p);
-void __ovld vstore4(char4 data, size_t offset, char *p);
-void __ovld vstore4(uchar4 data, size_t offset, uchar *p);
-void __ovld vstore4(short4 data, size_t offset, short *p);
-void __ovld vstore4(ushort4 data, size_t offset, ushort *p);
-void __ovld vstore4(int4 data, size_t offset, int *p);
-void __ovld vstore4(uint4 data, size_t offset, uint *p);
-void __ovld vstore4(long4 data, size_t offset, long *p);
-void __ovld vstore4(ulong4 data, size_t offset, ulong *p);
-void __ovld vstore4(float4 data, size_t offset, float *p);
-void __ovld vstore8(char8 data, size_t offset, char *p);
-void __ovld vstore8(uchar8 data, size_t offset, uchar *p);
-void __ovld vstore8(short8 data, size_t offset, short *p);
-void __ovld vstore8(ushort8 data, size_t offset, ushort *p);
-void __ovld vstore8(int8 data, size_t offset, int *p);
-void __ovld vstore8(uint8 data, size_t offset, uint *p);
-void __ovld vstore8(long8 data, size_t offset, long *p);
-void __ovld vstore8(ulong8 data, size_t offset, ulong *p);
-void __ovld vstore8(float8 data, size_t offset, float *p);
-void __ovld vstore16(char16 data, size_t offset, char *p);
-void __ovld vstore16(uchar16 data, size_t offset, uchar *p);
-void __ovld vstore16(short16 data, size_t offset, short *p);
-void __ovld vstore16(ushort16 data, size_t offset, ushort *p);
-void __ovld vstore16(int16 data, size_t offset, int *p);
-void __ovld vstore16(uint16 data, size_t offset, uint *p);
-void __ovld vstore16(long16 data, size_t offset, long *p);
-void __ovld vstore16(ulong16 data, size_t offset, ulong *p);
-void __ovld vstore16(float16 data, size_t offset, float *p);
-#ifdef cl_khr_fp64
-void __ovld vstore2(double2 data, size_t offset, double *p);
-void __ovld vstore3(double3 data, size_t offset, double *p);
-void __ovld vstore4(double4 data, size_t offset, double *p);
-void __ovld vstore8(double8 data, size_t offset, double *p);
-void __ovld vstore16(double16 data, size_t offset, double *p);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-void __ovld vstore(half data, size_t offset, half *p);
-void __ovld vstore2(half2 data, size_t offset, half *p);
-void __ovld vstore3(half3 data, size_t offset, half *p);
-void __ovld vstore4(half4 data, size_t offset, half *p);
-void __ovld vstore8(half8 data, size_t offset, half *p);
-void __ovld vstore16(half16 data, size_t offset, half *p);
-#endif //cl_khr_fp16
-#else
-void __ovld vstore2(char2 data, size_t offset, __global char *p);
-void __ovld vstore2(uchar2 data, size_t offset, __global uchar *p);
-void __ovld vstore2(short2 data, size_t offset, __global short *p);
-void __ovld vstore2(ushort2 data, size_t offset, __global ushort *p);
-void __ovld vstore2(int2 data, size_t offset, __global int *p);
-void __ovld vstore2(uint2 data, size_t offset, __global uint *p);
-void __ovld vstore2(long2 data, size_t offset, __global long *p);
-void __ovld vstore2(ulong2 data, size_t offset, __global ulong *p);
-void __ovld vstore2(float2 data, size_t offset, __global float *p);
-void __ovld vstore3(char3 data, size_t offset, __global char *p);
-void __ovld vstore3(uchar3 data, size_t offset, __global uchar *p);
-void __ovld vstore3(short3 data, size_t offset, __global short *p);
-void __ovld vstore3(ushort3 data, size_t offset, __global ushort *p);
-void __ovld vstore3(int3 data, size_t offset, __global int *p);
-void __ovld vstore3(uint3 data, size_t offset, __global uint *p);
-void __ovld vstore3(long3 data, size_t offset, __global long *p);
-void __ovld vstore3(ulong3 data, size_t offset, __global ulong *p);
-void __ovld vstore3(float3 data, size_t offset, __global float *p);
-void __ovld vstore4(char4 data, size_t offset, __global char *p);
-void __ovld vstore4(uchar4 data, size_t offset, __global uchar *p);
-void __ovld vstore4(short4 data, size_t offset, __global short *p);
-void __ovld vstore4(ushort4 data, size_t offset, __global ushort *p);
-void __ovld vstore4(int4 data, size_t offset, __global int *p);
-void __ovld vstore4(uint4 data, size_t offset, __global uint *p);
-void __ovld vstore4(long4 data, size_t offset, __global long *p);
-void __ovld vstore4(ulong4 data, size_t offset, __global ulong *p);
-void __ovld vstore4(float4 data, size_t offset, __global float *p);
-void __ovld vstore8(char8 data, size_t offset, __global char *p);
-void __ovld vstore8(uchar8 data, size_t offset, __global uchar *p);
-void __ovld vstore8(short8 data, size_t offset, __global short *p);
-void __ovld vstore8(ushort8 data, size_t offset, __global ushort *p);
-void __ovld vstore8(int8 data, size_t offset, __global int *p);
-void __ovld vstore8(uint8 data, size_t offset, __global uint *p);
-void __ovld vstore8(long8 data, size_t offset, __global long *p);
-void __ovld vstore8(ulong8 data, size_t offset, __global ulong *p);
-void __ovld vstore8(float8 data, size_t offset, __global float *p);
-void __ovld vstore16(char16 data, size_t offset, __global char *p);
-void __ovld vstore16(uchar16 data, size_t offset, __global uchar *p);
-void __ovld vstore16(short16 data, size_t offset, __global short *p);
-void __ovld vstore16(ushort16 data, size_t offset, __global ushort *p);
-void __ovld vstore16(int16 data, size_t offset, __global int *p);
-void __ovld vstore16(uint16 data, size_t offset, __global uint *p);
-void __ovld vstore16(long16 data, size_t offset, __global long *p);
-void __ovld vstore16(ulong16 data, size_t offset, __global ulong *p);
-void __ovld vstore16(float16 data, size_t offset, __global float *p);
-void __ovld vstore2(char2 data, size_t offset, __local char *p);
-void __ovld vstore2(uchar2 data, size_t offset, __local uchar *p);
-void __ovld vstore2(short2 data, size_t offset, __local short *p);
-void __ovld vstore2(ushort2 data, size_t offset, __local ushort *p);
-void __ovld vstore2(int2 data, size_t offset, __local int *p);
-void __ovld vstore2(uint2 data, size_t offset, __local uint *p);
-void __ovld vstore2(long2 data, size_t offset, __local long *p);
-void __ovld vstore2(ulong2 data, size_t offset, __local ulong *p);
-void __ovld vstore2(float2 data, size_t offset, __local float *p);
-void __ovld vstore3(char3 data, size_t offset, __local char *p);
-void __ovld vstore3(uchar3 data, size_t offset, __local uchar *p);
-void __ovld vstore3(short3 data, size_t offset, __local short *p);
-void __ovld vstore3(ushort3 data, size_t offset, __local ushort *p);
-void __ovld vstore3(int3 data, size_t offset, __local int *p);
-void __ovld vstore3(uint3 data, size_t offset, __local uint *p);
-void __ovld vstore3(long3 data, size_t offset, __local long *p);
-void __ovld vstore3(ulong3 data, size_t offset, __local ulong *p);
-void __ovld vstore3(float3 data, size_t offset, __local float *p);
-void __ovld vstore4(char4 data, size_t offset, __local char *p);
-void __ovld vstore4(uchar4 data, size_t offset, __local uchar *p);
-void __ovld vstore4(short4 data, size_t offset, __local short *p);
-void __ovld vstore4(ushort4 data, size_t offset, __local ushort *p);
-void __ovld vstore4(int4 data, size_t offset, __local int *p);
-void __ovld vstore4(uint4 data, size_t offset, __local uint *p);
-void __ovld vstore4(long4 data, size_t offset, __local long *p);
-void __ovld vstore4(ulong4 data, size_t offset, __local ulong *p);
-void __ovld vstore4(float4 data, size_t offset, __local float *p);
-void __ovld vstore8(char8 data, size_t offset, __local char *p);
-void __ovld vstore8(uchar8 data, size_t offset, __local uchar *p);
-void __ovld vstore8(short8 data, size_t offset, __local short *p);
-void __ovld vstore8(ushort8 data, size_t offset, __local ushort *p);
-void __ovld vstore8(int8 data, size_t offset, __local int *p);
-void __ovld vstore8(uint8 data, size_t offset, __local uint *p);
-void __ovld vstore8(long8 data, size_t offset, __local long *p);
-void __ovld vstore8(ulong8 data, size_t offset, __local ulong *p);
-void __ovld vstore8(float8 data, size_t offset, __local float *p);
-void __ovld vstore16(char16 data, size_t offset, __local char *p);
-void __ovld vstore16(uchar16 data, size_t offset, __local uchar *p);
-void __ovld vstore16(short16 data, size_t offset, __local short *p);
-void __ovld vstore16(ushort16 data, size_t offset, __local ushort *p);
-void __ovld vstore16(int16 data, size_t offset, __local int *p);
-void __ovld vstore16(uint16 data, size_t offset, __local uint *p);
-void __ovld vstore16(long16 data, size_t offset, __local long *p);
-void __ovld vstore16(ulong16 data, size_t offset, __local ulong *p);
-void __ovld vstore16(float16 data, size_t offset, __local float *p);
-void __ovld vstore2(char2 data, size_t offset, __private char *p);
-void __ovld vstore2(uchar2 data, size_t offset, __private uchar *p);
-void __ovld vstore2(short2 data, size_t offset, __private short *p);
-void __ovld vstore2(ushort2 data, size_t offset, __private ushort *p);
-void __ovld vstore2(int2 data, size_t offset, __private int *p);
-void __ovld vstore2(uint2 data, size_t offset, __private uint *p);
-void __ovld vstore2(long2 data, size_t offset, __private long *p);
-void __ovld vstore2(ulong2 data, size_t offset, __private ulong *p);
-void __ovld vstore2(float2 data, size_t offset, __private float *p);
-void __ovld vstore3(char3 data, size_t offset, __private char *p);
-void __ovld vstore3(uchar3 data, size_t offset, __private uchar *p);
-void __ovld vstore3(short3 data, size_t offset, __private short *p);
-void __ovld vstore3(ushort3 data, size_t offset, __private ushort *p);
-void __ovld vstore3(int3 data, size_t offset, __private int *p);
-void __ovld vstore3(uint3 data, size_t offset, __private uint *p);
-void __ovld vstore3(long3 data, size_t offset, __private long *p);
-void __ovld vstore3(ulong3 data, size_t offset, __private ulong *p);
-void __ovld vstore3(float3 data, size_t offset, __private float *p);
-void __ovld vstore4(char4 data, size_t offset, __private char *p);
-void __ovld vstore4(uchar4 data, size_t offset, __private uchar *p);
-void __ovld vstore4(short4 data, size_t offset, __private short *p);
-void __ovld vstore4(ushort4 data, size_t offset, __private ushort *p);
-void __ovld vstore4(int4 data, size_t offset, __private int *p);
-void __ovld vstore4(uint4 data, size_t offset, __private uint *p);
-void __ovld vstore4(long4 data, size_t offset, __private long *p);
-void __ovld vstore4(ulong4 data, size_t offset, __private ulong *p);
-void __ovld vstore4(float4 data, size_t offset, __private float *p);
-void __ovld vstore8(char8 data, size_t offset, __private char *p);
-void __ovld vstore8(uchar8 data, size_t offset, __private uchar *p);
-void __ovld vstore8(short8 data, size_t offset, __private short *p);
-void __ovld vstore8(ushort8 data, size_t offset, __private ushort *p);
-void __ovld vstore8(int8 data, size_t offset, __private int *p);
-void __ovld vstore8(uint8 data, size_t offset, __private uint *p);
-void __ovld vstore8(long8 data, size_t offset, __private long *p);
-void __ovld vstore8(ulong8 data, size_t offset, __private ulong *p);
-void __ovld vstore8(float8 data, size_t offset, __private float *p);
-void __ovld vstore16(char16 data, size_t offset, __private char *p);
-void __ovld vstore16(uchar16 data, size_t offset, __private uchar *p);
-void __ovld vstore16(short16 data, size_t offset, __private short *p);
-void __ovld vstore16(ushort16 data, size_t offset, __private ushort *p);
-void __ovld vstore16(int16 data, size_t offset, __private int *p);
-void __ovld vstore16(uint16 data, size_t offset, __private uint *p);
-void __ovld vstore16(long16 data, size_t offset, __private long *p);
-void __ovld vstore16(ulong16 data, size_t offset, __private ulong *p);
-void __ovld vstore16(float16 data, size_t offset, __private float *p);
-#ifdef cl_khr_fp64
-void __ovld vstore2(double2 data, size_t offset, __global double *p);
-void __ovld vstore3(double3 data, size_t offset, __global double *p);
-void __ovld vstore4(double4 data, size_t offset, __global double *p);
-void __ovld vstore8(double8 data, size_t offset, __global double *p);
-void __ovld vstore16(double16 data, size_t offset, __global double *p);
-void __ovld vstore2(double2 data, size_t offset, __local double *p);
-void __ovld vstore3(double3 data, size_t offset, __local double *p);
-void __ovld vstore4(double4 data, size_t offset, __local double *p);
-void __ovld vstore8(double8 data, size_t offset, __local double *p);
-void __ovld vstore16(double16 data, size_t offset, __local double *p);
-void __ovld vstore2(double2 data, size_t offset, __private double *p);
-void __ovld vstore3(double3 data, size_t offset, __private double *p);
-void __ovld vstore4(double4 data, size_t offset, __private double *p);
-void __ovld vstore8(double8 data, size_t offset, __private double *p);
-void __ovld vstore16(double16 data, size_t offset, __private double *p);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-void __ovld vstore(half data, size_t offset, __global half *p);
-void __ovld vstore2(half2 data, size_t offset, __global half *p);
-void __ovld vstore3(half3 data, size_t offset, __global half *p);
-void __ovld vstore4(half4 data, size_t offset, __global half *p);
-void __ovld vstore8(half8 data, size_t offset, __global half *p);
-void __ovld vstore16(half16 data, size_t offset, __global half *p);
-void __ovld vstore(half data, size_t offset, __local half *p);
-void __ovld vstore2(half2 data, size_t offset, __local half *p);
-void __ovld vstore3(half3 data, size_t offset, __local half *p);
-void __ovld vstore4(half4 data, size_t offset, __local half *p);
-void __ovld vstore8(half8 data, size_t offset, __local half *p);
-void __ovld vstore16(half16 data, size_t offset, __local half *p);
-void __ovld vstore(half data, size_t offset, __private half *p);
-void __ovld vstore2(half2 data, size_t offset, __private half *p);
-void __ovld vstore3(half3 data, size_t offset, __private half *p);
-void __ovld vstore4(half4 data, size_t offset, __private half *p);
-void __ovld vstore8(half8 data, size_t offset, __private half *p);
-void __ovld vstore16(half16 data, size_t offset, __private half *p);
-#endif //cl_khr_fp16
-#endif //defined(__opencl_c_generic_address_space)
-
-/**
- * Read sizeof (half) bytes of data from address
- * (p + offset). The data read is interpreted as a
- * half value. The half value is converted to a
- * float value and the float value is returned.
- * The read address computed as (p + offset)
- * must be 16-bit aligned.
- */
-float __ovld vload_half(size_t offset, const __constant half *p);
-#if defined(__opencl_c_generic_address_space)
-float __ovld vload_half(size_t offset, const half *p);
-#else
-float __ovld vload_half(size_t offset, const __global half *p);
-float __ovld vload_half(size_t offset, const __local half *p);
-float __ovld vload_half(size_t offset, const __private half *p);
-#endif //defined(__opencl_c_generic_address_space)
-
-/**
- * Read sizeof (halfn) bytes of data from address
- * (p + (offset * n)). The data read is interpreted
- * as a halfn value. The halfn value read is
- * converted to a floatn value and the floatn
- * value is returned. The read address computed
- * as (p + (offset * n)) must be 16-bit aligned.
- */
-float2 __ovld vload_half2(size_t offset, const __constant half *p);
-float3 __ovld vload_half3(size_t offset, const __constant half *p);
-float4 __ovld vload_half4(size_t offset, const __constant half *p);
-float8 __ovld vload_half8(size_t offset, const __constant half *p);
-float16 __ovld vload_half16(size_t offset, const __constant half *p);
-#if defined(__opencl_c_generic_address_space)
-float2 __ovld vload_half2(size_t offset, const half *p);
-float3 __ovld vload_half3(size_t offset, const half *p);
-float4 __ovld vload_half4(size_t offset, const half *p);
-float8 __ovld vload_half8(size_t offset, const half *p);
-float16 __ovld vload_half16(size_t offset, const half *p);
-#else
-float2 __ovld vload_half2(size_t offset, const __global half *p);
-float3 __ovld vload_half3(size_t offset, const __global half *p);
-float4 __ovld vload_half4(size_t offset, const __global half *p);
-float8 __ovld vload_half8(size_t offset, const __global half *p);
-float16 __ovld vload_half16(size_t offset, const __global half *p);
-float2 __ovld vload_half2(size_t offset, const __local half *p);
-float3 __ovld vload_half3(size_t offset, const __local half *p);
-float4 __ovld vload_half4(size_t offset, const __local half *p);
-float8 __ovld vload_half8(size_t offset, const __local half *p);
-float16 __ovld vload_half16(size_t offset, const __local half *p);
-float2 __ovld vload_half2(size_t offset, const __private half *p);
-float3 __ovld vload_half3(size_t offset, const __private half *p);
-float4 __ovld vload_half4(size_t offset, const __private half *p);
-float8 __ovld vload_half8(size_t offset, const __private half *p);
-float16 __ovld vload_half16(size_t offset, const __private half *p);
-#endif //defined(__opencl_c_generic_address_space)
-
-/**
- * The float value given by data is first
- * converted to a half value using the appropriate
- * rounding mode. The half value is then written
- * to address computed as (p + offset). The
- * address computed as (p + offset) must be 16-
- * bit aligned.
- * vstore_half use the current rounding mode.
- * The default current rounding mode is round to
- * nearest even.
- */
-#if defined(__opencl_c_generic_address_space)
-void __ovld vstore_half(float data, size_t offset, half *p);
-void __ovld vstore_half_rte(float data, size_t offset, half *p);
-void __ovld vstore_half_rtz(float data, size_t offset, half *p);
-void __ovld vstore_half_rtp(float data, size_t offset, half *p);
-void __ovld vstore_half_rtn(float data, size_t offset, half *p);
-#ifdef cl_khr_fp64
-void __ovld vstore_half(double data, size_t offset, half *p);
-void __ovld vstore_half_rte(double data, size_t offset, half *p);
-void __ovld vstore_half_rtz(double data, size_t offset, half *p);
-void __ovld vstore_half_rtp(double data, size_t offset, half *p);
-void __ovld vstore_half_rtn(double data, size_t offset, half *p);
-#endif //cl_khr_fp64
-#else
-void __ovld vstore_half(float data, size_t offset, __global half *p);
-void __ovld vstore_half_rte(float data, size_t offset, __global half *p);
-void __ovld vstore_half_rtz(float data, size_t offset, __global half *p);
-void __ovld vstore_half_rtp(float data, size_t offset, __global half *p);
-void __ovld vstore_half_rtn(float data, size_t offset, __global half *p);
-void __ovld vstore_half(float data, size_t offset, __local half *p);
-void __ovld vstore_half_rte(float data, size_t offset, __local half *p);
-void __ovld vstore_half_rtz(float data, size_t offset, __local half *p);
-void __ovld vstore_half_rtp(float data, size_t offset, __local half *p);
-void __ovld vstore_half_rtn(float data, size_t offset, __local half *p);
-void __ovld vstore_half(float data, size_t offset, __private half *p);
-void __ovld vstore_half_rte(float data, size_t offset, __private half *p);
-void __ovld vstore_half_rtz(float data, size_t offset, __private half *p);
-void __ovld vstore_half_rtp(float data, size_t offset, __private half *p);
-void __ovld vstore_half_rtn(float data, size_t offset, __private half *p);
-#ifdef cl_khr_fp64
-void __ovld vstore_half(double data, size_t offset, __global half *p);
-void __ovld vstore_half_rte(double data, size_t offset, __global half *p);
-void __ovld vstore_half_rtz(double data, size_t offset, __global half *p);
-void __ovld vstore_half_rtp(double data, size_t offset, __global half *p);
-void __ovld vstore_half_rtn(double data, size_t offset, __global half *p);
-void __ovld vstore_half(double data, size_t offset, __local half *p);
-void __ovld vstore_half_rte(double data, size_t offset, __local half *p);
-void __ovld vstore_half_rtz(double data, size_t offset, __local half *p);
-void __ovld vstore_half_rtp(double data, size_t offset, __local half *p);
-void __ovld vstore_half_rtn(double data, size_t offset, __local half *p);
-void __ovld vstore_half(double data, size_t offset, __private half *p);
-void __ovld vstore_half_rte(double data, size_t offset, __private half *p);
-void __ovld vstore_half_rtz(double data, size_t offset, __private half *p);
-void __ovld vstore_half_rtp(double data, size_t offset, __private half *p);
-void __ovld vstore_half_rtn(double data, size_t offset, __private half *p);
-#endif //cl_khr_fp64
-#endif //defined(__opencl_c_generic_address_space)
-
-/**
- * The floatn value given by data is converted to
- * a halfn value using the appropriate rounding
- * mode. The halfn value is then written to
- * address computed as (p + (offset * n)). The
- * address computed as (p + (offset * n)) must be
- * 16-bit aligned.
- * vstore_halfn uses the current rounding mode.
- * The default current rounding mode is round to
- * nearest even.
- */
-#if defined(__opencl_c_generic_address_space)
-void __ovld vstore_half2(float2 data, size_t offset, half *p);
-void __ovld vstore_half3(float3 data, size_t offset, half *p);
-void __ovld vstore_half4(float4 data, size_t offset, half *p);
-void __ovld vstore_half8(float8 data, size_t offset, half *p);
-void __ovld vstore_half16(float16 data, size_t offset, half *p);
-void __ovld vstore_half2_rte(float2 data, size_t offset, half *p);
-void __ovld vstore_half3_rte(float3 data, size_t offset, half *p);
-void __ovld vstore_half4_rte(float4 data, size_t offset, half *p);
-void __ovld vstore_half8_rte(float8 data, size_t offset, half *p);
-void __ovld vstore_half16_rte(float16 data, size_t offset, half *p);
-void __ovld vstore_half2_rtz(float2 data, size_t offset, half *p);
-void __ovld vstore_half3_rtz(float3 data, size_t offset, half *p);
-void __ovld vstore_half4_rtz(float4 data, size_t offset, half *p);
-void __ovld vstore_half8_rtz(float8 data, size_t offset, half *p);
-void __ovld vstore_half16_rtz(float16 data, size_t offset, half *p);
-void __ovld vstore_half2_rtp(float2 data, size_t offset, half *p);
-void __ovld vstore_half3_rtp(float3 data, size_t offset, half *p);
-void __ovld vstore_half4_rtp(float4 data, size_t offset, half *p);
-void __ovld vstore_half8_rtp(float8 data, size_t offset, half *p);
-void __ovld vstore_half16_rtp(float16 data, size_t offset, half *p);
-void __ovld vstore_half2_rtn(float2 data, size_t offset, half *p);
-void __ovld vstore_half3_rtn(float3 data, size_t offset, half *p);
-void __ovld vstore_half4_rtn(float4 data, size_t offset, half *p);
-void __ovld vstore_half8_rtn(float8 data, size_t offset, half *p);
-void __ovld vstore_half16_rtn(float16 data, size_t offset, half *p);
-#ifdef cl_khr_fp64
-void __ovld vstore_half2(double2 data, size_t offset, half *p);
-void __ovld vstore_half3(double3 data, size_t offset, half *p);
-void __ovld vstore_half4(double4 data, size_t offset, half *p);
-void __ovld vstore_half8(double8 data, size_t offset, half *p);
-void __ovld vstore_half16(double16 data, size_t offset, half *p);
-void __ovld vstore_half2_rte(double2 data, size_t offset, half *p);
-void __ovld vstore_half3_rte(double3 data, size_t offset, half *p);
-void __ovld vstore_half4_rte(double4 data, size_t offset, half *p);
-void __ovld vstore_half8_rte(double8 data, size_t offset, half *p);
-void __ovld vstore_half16_rte(double16 data, size_t offset, half *p);
-void __ovld vstore_half2_rtz(double2 data, size_t offset, half *p);
-void __ovld vstore_half3_rtz(double3 data, size_t offset, half *p);
-void __ovld vstore_half4_rtz(double4 data, size_t offset, half *p);
-void __ovld vstore_half8_rtz(double8 data, size_t offset, half *p);
-void __ovld vstore_half16_rtz(double16 data, size_t offset, half *p);
-void __ovld vstore_half2_rtp(double2 data, size_t offset, half *p);
-void __ovld vstore_half3_rtp(double3 data, size_t offset, half *p);
-void __ovld vstore_half4_rtp(double4 data, size_t offset, half *p);
-void __ovld vstore_half8_rtp(double8 data, size_t offset, half *p);
-void __ovld vstore_half16_rtp(double16 data, size_t offset, half *p);
-void __ovld vstore_half2_rtn(double2 data, size_t offset, half *p);
-void __ovld vstore_half3_rtn(double3 data, size_t offset, half *p);
-void __ovld vstore_half4_rtn(double4 data, size_t offset, half *p);
-void __ovld vstore_half8_rtn(double8 data, size_t offset, half *p);
-void __ovld vstore_half16_rtn(double16 data, size_t offset, half *p);
-#endif //cl_khr_fp64
-#else
-void __ovld vstore_half2(float2 data, size_t offset, __global half *p);
-void __ovld vstore_half3(float3 data, size_t offset, __global half *p);
-void __ovld vstore_half4(float4 data, size_t offset, __global half *p);
-void __ovld vstore_half8(float8 data, size_t offset, __global half *p);
-void __ovld vstore_half16(float16 data, size_t offset, __global half *p);
-void __ovld vstore_half2_rte(float2 data, size_t offset, __global half *p);
-void __ovld vstore_half3_rte(float3 data, size_t offset, __global half *p);
-void __ovld vstore_half4_rte(float4 data, size_t offset, __global half *p);
-void __ovld vstore_half8_rte(float8 data, size_t offset, __global half *p);
-void __ovld vstore_half16_rte(float16 data, size_t offset, __global half *p);
-void __ovld vstore_half2_rtz(float2 data, size_t offset, __global half *p);
-void __ovld vstore_half3_rtz(float3 data, size_t offset, __global half *p);
-void __ovld vstore_half4_rtz(float4 data, size_t offset, __global half *p);
-void __ovld vstore_half8_rtz(float8 data, size_t offset, __global half *p);
-void __ovld vstore_half16_rtz(float16 data, size_t offset, __global half *p);
-void __ovld vstore_half2_rtp(float2 data, size_t offset, __global half *p);
-void __ovld vstore_half3_rtp(float3 data, size_t offset, __global half *p);
-void __ovld vstore_half4_rtp(float4 data, size_t offset, __global half *p);
-void __ovld vstore_half8_rtp(float8 data, size_t offset, __global half *p);
-void __ovld vstore_half16_rtp(float16 data, size_t offset, __global half *p);
-void __ovld vstore_half2_rtn(float2 data, size_t offset, __global half *p);
-void __ovld vstore_half3_rtn(float3 data, size_t offset, __global half *p);
-void __ovld vstore_half4_rtn(float4 data, size_t offset, __global half *p);
-void __ovld vstore_half8_rtn(float8 data, size_t offset, __global half *p);
-void __ovld vstore_half16_rtn(float16 data, size_t offset, __global half *p);
-void __ovld vstore_half2(float2 data, size_t offset, __local half *p);
-void __ovld vstore_half3(float3 data, size_t offset, __local half *p);
-void __ovld vstore_half4(float4 data, size_t offset, __local half *p);
-void __ovld vstore_half8(float8 data, size_t offset, __local half *p);
-void __ovld vstore_half16(float16 data, size_t offset, __local half *p);
-void __ovld vstore_half2_rte(float2 data, size_t offset, __local half *p);
-void __ovld vstore_half3_rte(float3 data, size_t offset, __local half *p);
-void __ovld vstore_half4_rte(float4 data, size_t offset, __local half *p);
-void __ovld vstore_half8_rte(float8 data, size_t offset, __local half *p);
-void __ovld vstore_half16_rte(float16 data, size_t offset, __local half *p);
-void __ovld vstore_half2_rtz(float2 data, size_t offset, __local half *p);
-void __ovld vstore_half3_rtz(float3 data, size_t offset, __local half *p);
-void __ovld vstore_half4_rtz(float4 data, size_t offset, __local half *p);
-void __ovld vstore_half8_rtz(float8 data, size_t offset, __local half *p);
-void __ovld vstore_half16_rtz(float16 data, size_t offset, __local half *p);
-void __ovld vstore_half2_rtp(float2 data, size_t offset, __local half *p);
-void __ovld vstore_half3_rtp(float3 data, size_t offset, __local half *p);
-void __ovld vstore_half4_rtp(float4 data, size_t offset, __local half *p);
-void __ovld vstore_half8_rtp(float8 data, size_t offset, __local half *p);
-void __ovld vstore_half16_rtp(float16 data, size_t offset, __local half *p);
-void __ovld vstore_half2_rtn(float2 data, size_t offset, __local half *p);
-void __ovld vstore_half3_rtn(float3 data, size_t offset, __local half *p);
-void __ovld vstore_half4_rtn(float4 data, size_t offset, __local half *p);
-void __ovld vstore_half8_rtn(float8 data, size_t offset, __local half *p);
-void __ovld vstore_half16_rtn(float16 data, size_t offset, __local half *p);
-void __ovld vstore_half2(float2 data, size_t offset, __private half *p);
-void __ovld vstore_half3(float3 data, size_t offset, __private half *p);
-void __ovld vstore_half4(float4 data, size_t offset, __private half *p);
-void __ovld vstore_half8(float8 data, size_t offset, __private half *p);
-void __ovld vstore_half16(float16 data, size_t offset, __private half *p);
-void __ovld vstore_half2_rte(float2 data, size_t offset, __private half *p);
-void __ovld vstore_half3_rte(float3 data, size_t offset, __private half *p);
-void __ovld vstore_half4_rte(float4 data, size_t offset, __private half *p);
-void __ovld vstore_half8_rte(float8 data, size_t offset, __private half *p);
-void __ovld vstore_half16_rte(float16 data, size_t offset, __private half *p);
-void __ovld vstore_half2_rtz(float2 data, size_t offset, __private half *p);
-void __ovld vstore_half3_rtz(float3 data, size_t offset, __private half *p);
-void __ovld vstore_half4_rtz(float4 data, size_t offset, __private half *p);
-void __ovld vstore_half8_rtz(float8 data, size_t offset, __private half *p);
-void __ovld vstore_half16_rtz(float16 data, size_t offset, __private half *p);
-void __ovld vstore_half2_rtp(float2 data, size_t offset, __private half *p);
-void __ovld vstore_half3_rtp(float3 data, size_t offset, __private half *p);
-void __ovld vstore_half4_rtp(float4 data, size_t offset, __private half *p);
-void __ovld vstore_half8_rtp(float8 data, size_t offset, __private half *p);
-void __ovld vstore_half16_rtp(float16 data, size_t offset, __private half *p);
-void __ovld vstore_half2_rtn(float2 data, size_t offset, __private half *p);
-void __ovld vstore_half3_rtn(float3 data, size_t offset, __private half *p);
-void __ovld vstore_half4_rtn(float4 data, size_t offset, __private half *p);
-void __ovld vstore_half8_rtn(float8 data, size_t offset, __private half *p);
-void __ovld vstore_half16_rtn(float16 data, size_t offset, __private half *p);
-#ifdef cl_khr_fp64
-void __ovld vstore_half2(double2 data, size_t offset, __global half *p);
-void __ovld vstore_half3(double3 data, size_t offset, __global half *p);
-void __ovld vstore_half4(double4 data, size_t offset, __global half *p);
-void __ovld vstore_half8(double8 data, size_t offset, __global half *p);
-void __ovld vstore_half16(double16 data, size_t offset, __global half *p);
-void __ovld vstore_half2_rte(double2 data, size_t offset, __global half *p);
-void __ovld vstore_half3_rte(double3 data, size_t offset, __global half *p);
-void __ovld vstore_half4_rte(double4 data, size_t offset, __global half *p);
-void __ovld vstore_half8_rte(double8 data, size_t offset, __global half *p);
-void __ovld vstore_half16_rte(double16 data, size_t offset, __global half *p);
-void __ovld vstore_half2_rtz(double2 data, size_t offset, __global half *p);
-void __ovld vstore_half3_rtz(double3 data, size_t offset, __global half *p);
-void __ovld vstore_half4_rtz(double4 data, size_t offset, __global half *p);
-void __ovld vstore_half8_rtz(double8 data, size_t offset, __global half *p);
-void __ovld vstore_half16_rtz(double16 data, size_t offset, __global half *p);
-void __ovld vstore_half2_rtp(double2 data, size_t offset, __global half *p);
-void __ovld vstore_half3_rtp(double3 data, size_t offset, __global half *p);
-void __ovld vstore_half4_rtp(double4 data, size_t offset, __global half *p);
-void __ovld vstore_half8_rtp(double8 data, size_t offset, __global half *p);
-void __ovld vstore_half16_rtp(double16 data, size_t offset, __global half *p);
-void __ovld vstore_half2_rtn(double2 data, size_t offset, __global half *p);
-void __ovld vstore_half3_rtn(double3 data, size_t offset, __global half *p);
-void __ovld vstore_half4_rtn(double4 data, size_t offset, __global half *p);
-void __ovld vstore_half8_rtn(double8 data, size_t offset, __global half *p);
-void __ovld vstore_half16_rtn(double16 data, size_t offset, __global half *p);
-void __ovld vstore_half2(double2 data, size_t offset, __local half *p);
-void __ovld vstore_half3(double3 data, size_t offset, __local half *p);
-void __ovld vstore_half4(double4 data, size_t offset, __local half *p);
-void __ovld vstore_half8(double8 data, size_t offset, __local half *p);
-void __ovld vstore_half16(double16 data, size_t offset, __local half *p);
-void __ovld vstore_half2_rte(double2 data, size_t offset, __local half *p);
-void __ovld vstore_half3_rte(double3 data, size_t offset, __local half *p);
-void __ovld vstore_half4_rte(double4 data, size_t offset, __local half *p);
-void __ovld vstore_half8_rte(double8 data, size_t offset, __local half *p);
-void __ovld vstore_half16_rte(double16 data, size_t offset, __local half *p);
-void __ovld vstore_half2_rtz(double2 data, size_t offset, __local half *p);
-void __ovld vstore_half3_rtz(double3 data, size_t offset, __local half *p);
-void __ovld vstore_half4_rtz(double4 data, size_t offset, __local half *p);
-void __ovld vstore_half8_rtz(double8 data, size_t offset, __local half *p);
-void __ovld vstore_half16_rtz(double16 data, size_t offset, __local half *p);
-void __ovld vstore_half2_rtp(double2 data, size_t offset, __local half *p);
-void __ovld vstore_half3_rtp(double3 data, size_t offset, __local half *p);
-void __ovld vstore_half4_rtp(double4 data, size_t offset, __local half *p);
-void __ovld vstore_half8_rtp(double8 data, size_t offset, __local half *p);
-void __ovld vstore_half16_rtp(double16 data, size_t offset, __local half *p);
-void __ovld vstore_half2_rtn(double2 data, size_t offset, __local half *p);
-void __ovld vstore_half3_rtn(double3 data, size_t offset, __local half *p);
-void __ovld vstore_half4_rtn(double4 data, size_t offset, __local half *p);
-void __ovld vstore_half8_rtn(double8 data, size_t offset, __local half *p);
-void __ovld vstore_half16_rtn(double16 data, size_t offset, __local half *p);
-void __ovld vstore_half2(double2 data, size_t offset, __private half *p);
-void __ovld vstore_half3(double3 data, size_t offset, __private half *p);
-void __ovld vstore_half4(double4 data, size_t offset, __private half *p);
-void __ovld vstore_half8(double8 data, size_t offset, __private half *p);
-void __ovld vstore_half16(double16 data, size_t offset, __private half *p);
-void __ovld vstore_half2_rte(double2 data, size_t offset, __private half *p);
-void __ovld vstore_half3_rte(double3 data, size_t offset, __private half *p);
-void __ovld vstore_half4_rte(double4 data, size_t offset, __private half *p);
-void __ovld vstore_half8_rte(double8 data, size_t offset, __private half *p);
-void __ovld vstore_half16_rte(double16 data, size_t offset, __private half *p);
-void __ovld vstore_half2_rtz(double2 data, size_t offset, __private half *p);
-void __ovld vstore_half3_rtz(double3 data, size_t offset, __private half *p);
-void __ovld vstore_half4_rtz(double4 data, size_t offset, __private half *p);
-void __ovld vstore_half8_rtz(double8 data, size_t offset, __private half *p);
-void __ovld vstore_half16_rtz(double16 data, size_t offset, __private half *p);
-void __ovld vstore_half2_rtp(double2 data, size_t offset, __private half *p);
-void __ovld vstore_half3_rtp(double3 data, size_t offset, __private half *p);
-void __ovld vstore_half4_rtp(double4 data, size_t offset, __private half *p);
-void __ovld vstore_half8_rtp(double8 data, size_t offset, __private half *p);
-void __ovld vstore_half16_rtp(double16 data, size_t offset, __private half *p);
-void __ovld vstore_half2_rtn(double2 data, size_t offset, __private half *p);
-void __ovld vstore_half3_rtn(double3 data, size_t offset, __private half *p);
-void __ovld vstore_half4_rtn(double4 data, size_t offset, __private half *p);
-void __ovld vstore_half8_rtn(double8 data, size_t offset, __private half *p);
-void __ovld vstore_half16_rtn(double16 data, size_t offset, __private half *p);
-#endif //cl_khr_fp64
-#endif //defined(__opencl_c_generic_address_space)
-
-/**
- * For n = 1, 2, 4, 8 and 16 read sizeof (halfn)
- * bytes of data from address (p + (offset * n)).
- * The data read is interpreted as a halfn value.
- * The halfn value read is converted to a floatn
- * value and the floatn value is returned.
- * The address computed as (p + (offset * n))
- * must be aligned to sizeof (halfn) bytes.
- * For n = 3, vloada_half3 reads a half3 from
- * address (p + (offset * 4)) and returns a float3.
- * The address computed as (p + (offset * 4))
- * must be aligned to sizeof (half) * 4 bytes.
- */
-float2 __ovld vloada_half2(size_t offset, const __constant half *p);
-float3 __ovld vloada_half3(size_t offset, const __constant half *p);
-float4 __ovld vloada_half4(size_t offset, const __constant half *p);
-float8 __ovld vloada_half8(size_t offset, const __constant half *p);
-float16 __ovld vloada_half16(size_t offset, const __constant half *p);
-#if defined(__opencl_c_generic_address_space)
-float2 __ovld vloada_half2(size_t offset, const half *p);
-float3 __ovld vloada_half3(size_t offset, const half *p);
-float4 __ovld vloada_half4(size_t offset, const half *p);
-float8 __ovld vloada_half8(size_t offset, const half *p);
-float16 __ovld vloada_half16(size_t offset, const half *p);
-#else
-float2 __ovld vloada_half2(size_t offset, const __global half *p);
-float3 __ovld vloada_half3(size_t offset, const __global half *p);
-float4 __ovld vloada_half4(size_t offset, const __global half *p);
-float8 __ovld vloada_half8(size_t offset, const __global half *p);
-float16 __ovld vloada_half16(size_t offset, const __global half *p);
-float2 __ovld vloada_half2(size_t offset, const __local half *p);
-float3 __ovld vloada_half3(size_t offset, const __local half *p);
-float4 __ovld vloada_half4(size_t offset, const __local half *p);
-float8 __ovld vloada_half8(size_t offset, const __local half *p);
-float16 __ovld vloada_half16(size_t offset, const __local half *p);
-float2 __ovld vloada_half2(size_t offset, const __private half *p);
-float3 __ovld vloada_half3(size_t offset, const __private half *p);
-float4 __ovld vloada_half4(size_t offset, const __private half *p);
-float8 __ovld vloada_half8(size_t offset, const __private half *p);
-float16 __ovld vloada_half16(size_t offset, const __private half *p);
-#endif //defined(__opencl_c_generic_address_space)
-
-/**
- * The floatn value given by data is converted to
- * a halfn value using the appropriate rounding
- * mode.
- * For n = 1, 2, 4, 8 and 16, the halfn value is
- * written to the address computed as (p + (offset
- * * n)). The address computed as (p + (offset *
- * n)) must be aligned to sizeof (halfn) bytes.
- * For n = 3, the half3 value is written to the
- * address computed as (p + (offset * 4)). The
- * address computed as (p + (offset * 4)) must be
- * aligned to sizeof (half) * 4 bytes.
- * vstorea_halfn uses the current rounding
- * mode. The default current rounding mode is
- * round to nearest even.
- */
-#if defined(__opencl_c_generic_address_space)
-void __ovld vstorea_half2(float2 data, size_t offset, half *p);
-void __ovld vstorea_half3(float3 data, size_t offset, half *p);
-void __ovld vstorea_half4(float4 data, size_t offset, half *p);
-void __ovld vstorea_half8(float8 data, size_t offset, half *p);
-void __ovld vstorea_half16(float16 data, size_t offset, half *p);
-
-void __ovld vstorea_half2_rte(float2 data, size_t offset, half *p);
-void __ovld vstorea_half3_rte(float3 data, size_t offset, half *p);
-void __ovld vstorea_half4_rte(float4 data, size_t offset, half *p);
-void __ovld vstorea_half8_rte(float8 data, size_t offset, half *p);
-void __ovld vstorea_half16_rte(float16 data, size_t offset, half *p);
-
-void __ovld vstorea_half2_rtz(float2 data, size_t offset, half *p);
-void __ovld vstorea_half3_rtz(float3 data, size_t offset, half *p);
-void __ovld vstorea_half4_rtz(float4 data, size_t offset, half *p);
-void __ovld vstorea_half8_rtz(float8 data, size_t offset, half *p);
-void __ovld vstorea_half16_rtz(float16 data, size_t offset, half *p);
-
-void __ovld vstorea_half2_rtp(float2 data, size_t offset, half *p);
-void __ovld vstorea_half3_rtp(float3 data, size_t offset, half *p);
-void __ovld vstorea_half4_rtp(float4 data, size_t offset, half *p);
-void __ovld vstorea_half8_rtp(float8 data, size_t offset, half *p);
-void __ovld vstorea_half16_rtp(float16 data, size_t offset, half *p);
-
-void __ovld vstorea_half2_rtn(float2 data, size_t offset, half *p);
-void __ovld vstorea_half3_rtn(float3 data, size_t offset, half *p);
-void __ovld vstorea_half4_rtn(float4 data, size_t offset, half *p);
-void __ovld vstorea_half8_rtn(float8 data, size_t offset, half *p);
-void __ovld vstorea_half16_rtn(float16 data, size_t offset, half *p);
-
-#ifdef cl_khr_fp64
-void __ovld vstorea_half2(double2 data, size_t offset, half *p);
-void __ovld vstorea_half3(double3 data, size_t offset, half *p);
-void __ovld vstorea_half4(double4 data, size_t offset, half *p);
-void __ovld vstorea_half8(double8 data, size_t offset, half *p);
-void __ovld vstorea_half16(double16 data, size_t offset, half *p);
-
-void __ovld vstorea_half2_rte(double2 data, size_t offset, half *p);
-void __ovld vstorea_half3_rte(double3 data, size_t offset, half *p);
-void __ovld vstorea_half4_rte(double4 data, size_t offset, half *p);
-void __ovld vstorea_half8_rte(double8 data, size_t offset, half *p);
-void __ovld vstorea_half16_rte(double16 data, size_t offset, half *p);
-
-void __ovld vstorea_half2_rtz(double2 data, size_t offset, half *p);
-void __ovld vstorea_half3_rtz(double3 data, size_t offset, half *p);
-void __ovld vstorea_half4_rtz(double4 data, size_t offset, half *p);
-void __ovld vstorea_half8_rtz(double8 data, size_t offset, half *p);
-void __ovld vstorea_half16_rtz(double16 data, size_t offset, half *p);
-
-void __ovld vstorea_half2_rtp(double2 data, size_t offset, half *p);
-void __ovld vstorea_half3_rtp(double3 data, size_t offset, half *p);
-void __ovld vstorea_half4_rtp(double4 data, size_t offset, half *p);
-void __ovld vstorea_half8_rtp(double8 data, size_t offset, half *p);
-void __ovld vstorea_half16_rtp(double16 data, size_t offset, half *p);
-
-void __ovld vstorea_half2_rtn(double2 data, size_t offset, half *p);
-void __ovld vstorea_half3_rtn(double3 data, size_t offset, half *p);
-void __ovld vstorea_half4_rtn(double4 data, size_t offset, half *p);
-void __ovld vstorea_half8_rtn(double8 data, size_t offset, half *p);
-void __ovld vstorea_half16_rtn(double16 data, size_t offset, half *p);
-#endif //cl_khr_fp64
-
-#else
-void __ovld vstorea_half2(float2 data, size_t offset, __global half *p);
-void __ovld vstorea_half3(float3 data, size_t offset, __global half *p);
-void __ovld vstorea_half4(float4 data, size_t offset, __global half *p);
-void __ovld vstorea_half8(float8 data, size_t offset, __global half *p);
-void __ovld vstorea_half16(float16 data, size_t offset, __global half *p);
-
-void __ovld vstorea_half2_rte(float2 data, size_t offset, __global half *p);
-void __ovld vstorea_half3_rte(float3 data, size_t offset, __global half *p);
-void __ovld vstorea_half4_rte(float4 data, size_t offset, __global half *p);
-void __ovld vstorea_half8_rte(float8 data, size_t offset, __global half *p);
-void __ovld vstorea_half16_rte(float16 data, size_t offset, __global half *p);
-
-void __ovld vstorea_half2_rtz(float2 data, size_t offset, __global half *p);
-void __ovld vstorea_half3_rtz(float3 data, size_t offset, __global half *p);
-void __ovld vstorea_half4_rtz(float4 data, size_t offset, __global half *p);
-void __ovld vstorea_half8_rtz(float8 data, size_t offset, __global half *p);
-void __ovld vstorea_half16_rtz(float16 data, size_t offset, __global half *p);
-
-void __ovld vstorea_half2_rtp(float2 data, size_t offset, __global half *p);
-void __ovld vstorea_half3_rtp(float3 data, size_t offset, __global half *p);
-void __ovld vstorea_half4_rtp(float4 data, size_t offset, __global half *p);
-void __ovld vstorea_half8_rtp(float8 data, size_t offset, __global half *p);
-void __ovld vstorea_half16_rtp(float16 data, size_t offset, __global half *p);
-
-void __ovld vstorea_half2_rtn(float2 data, size_t offset, __global half *p);
-void __ovld vstorea_half3_rtn(float3 data, size_t offset, __global half *p);
-void __ovld vstorea_half4_rtn(float4 data, size_t offset, __global half *p);
-void __ovld vstorea_half8_rtn(float8 data, size_t offset, __global half *p);
-void __ovld vstorea_half16_rtn(float16 data, size_t offset, __global half *p);
-
-void __ovld vstorea_half2(float2 data, size_t offset, __local half *p);
-void __ovld vstorea_half3(float3 data, size_t offset, __local half *p);
-void __ovld vstorea_half4(float4 data, size_t offset, __local half *p);
-void __ovld vstorea_half8(float8 data, size_t offset, __local half *p);
-void __ovld vstorea_half16(float16 data, size_t offset, __local half *p);
-
-void __ovld vstorea_half2_rte(float2 data, size_t offset, __local half *p);
-void __ovld vstorea_half3_rte(float3 data, size_t offset, __local half *p);
-void __ovld vstorea_half4_rte(float4 data, size_t offset, __local half *p);
-void __ovld vstorea_half8_rte(float8 data, size_t offset, __local half *p);
-void __ovld vstorea_half16_rte(float16 data, size_t offset, __local half *p);
-
-void __ovld vstorea_half2_rtz(float2 data, size_t offset, __local half *p);
-void __ovld vstorea_half3_rtz(float3 data, size_t offset, __local half *p);
-void __ovld vstorea_half4_rtz(float4 data, size_t offset, __local half *p);
-void __ovld vstorea_half8_rtz(float8 data, size_t offset, __local half *p);
-void __ovld vstorea_half16_rtz(float16 data, size_t offset, __local half *p);
-
-void __ovld vstorea_half2_rtp(float2 data, size_t offset, __local half *p);
-void __ovld vstorea_half3_rtp(float3 data, size_t offset, __local half *p);
-void __ovld vstorea_half4_rtp(float4 data, size_t offset, __local half *p);
-void __ovld vstorea_half8_rtp(float8 data, size_t offset, __local half *p);
-void __ovld vstorea_half16_rtp(float16 data, size_t offset, __local half *p);
-
-void __ovld vstorea_half2_rtn(float2 data, size_t offset, __local half *p);
-void __ovld vstorea_half3_rtn(float3 data, size_t offset, __local half *p);
-void __ovld vstorea_half4_rtn(float4 data, size_t offset, __local half *p);
-void __ovld vstorea_half8_rtn(float8 data, size_t offset, __local half *p);
-void __ovld vstorea_half16_rtn(float16 data, size_t offset, __local half *p);
-
-void __ovld vstorea_half2(float2 data, size_t offset, __private half *p);
-void __ovld vstorea_half3(float3 data, size_t offset, __private half *p);
-void __ovld vstorea_half4(float4 data, size_t offset, __private half *p);
-void __ovld vstorea_half8(float8 data, size_t offset, __private half *p);
-void __ovld vstorea_half16(float16 data, size_t offset, __private half *p);
-
-void __ovld vstorea_half2_rte(float2 data, size_t offset, __private half *p);
-void __ovld vstorea_half3_rte(float3 data, size_t offset, __private half *p);
-void __ovld vstorea_half4_rte(float4 data, size_t offset, __private half *p);
-void __ovld vstorea_half8_rte(float8 data, size_t offset, __private half *p);
-void __ovld vstorea_half16_rte(float16 data, size_t offset, __private half *p);
-
-void __ovld vstorea_half2_rtz(float2 data, size_t offset, __private half *p);
-void __ovld vstorea_half3_rtz(float3 data, size_t offset, __private half *p);
-void __ovld vstorea_half4_rtz(float4 data, size_t offset, __private half *p);
-void __ovld vstorea_half8_rtz(float8 data, size_t offset, __private half *p);
-void __ovld vstorea_half16_rtz(float16 data, size_t offset, __private half *p);
-
-void __ovld vstorea_half2_rtp(float2 data, size_t offset, __private half *p);
-void __ovld vstorea_half3_rtp(float3 data, size_t offset, __private half *p);
-void __ovld vstorea_half4_rtp(float4 data, size_t offset, __private half *p);
-void __ovld vstorea_half8_rtp(float8 data, size_t offset, __private half *p);
-void __ovld vstorea_half16_rtp(float16 data, size_t offset, __private half *p);
-
-void __ovld vstorea_half2_rtn(float2 data, size_t offset, __private half *p);
-void __ovld vstorea_half3_rtn(float3 data, size_t offset, __private half *p);
-void __ovld vstorea_half4_rtn(float4 data, size_t offset, __private half *p);
-void __ovld vstorea_half8_rtn(float8 data, size_t offset, __private half *p);
-void __ovld vstorea_half16_rtn(float16 data, size_t offset, __private half *p);
-
-#ifdef cl_khr_fp64
-void __ovld vstorea_half2(double2 data, size_t offset, __global half *p);
-void __ovld vstorea_half3(double3 data, size_t offset, __global half *p);
-void __ovld vstorea_half4(double4 data, size_t offset, __global half *p);
-void __ovld vstorea_half8(double8 data, size_t offset, __global half *p);
-void __ovld vstorea_half16(double16 data, size_t offset, __global half *p);
-
-void __ovld vstorea_half2_rte(double2 data, size_t offset, __global half *p);
-void __ovld vstorea_half3_rte(double3 data, size_t offset, __global half *p);
-void __ovld vstorea_half4_rte(double4 data, size_t offset, __global half *p);
-void __ovld vstorea_half8_rte(double8 data, size_t offset, __global half *p);
-void __ovld vstorea_half16_rte(double16 data, size_t offset, __global half *p);
-
-void __ovld vstorea_half2_rtz(double2 data, size_t offset, __global half *p);
-void __ovld vstorea_half3_rtz(double3 data, size_t offset, __global half *p);
-void __ovld vstorea_half4_rtz(double4 data, size_t offset, __global half *p);
-void __ovld vstorea_half8_rtz(double8 data, size_t offset, __global half *p);
-void __ovld vstorea_half16_rtz(double16 data, size_t offset, __global half *p);
-
-void __ovld vstorea_half2_rtp(double2 data, size_t offset, __global half *p);
-void __ovld vstorea_half3_rtp(double3 data, size_t offset, __global half *p);
-void __ovld vstorea_half4_rtp(double4 data, size_t offset, __global half *p);
-void __ovld vstorea_half8_rtp(double8 data, size_t offset, __global half *p);
-void __ovld vstorea_half16_rtp(double16 data, size_t offset, __global half *p);
-
-void __ovld vstorea_half2_rtn(double2 data, size_t offset, __global half *p);
-void __ovld vstorea_half3_rtn(double3 data, size_t offset, __global half *p);
-void __ovld vstorea_half4_rtn(double4 data, size_t offset, __global half *p);
-void __ovld vstorea_half8_rtn(double8 data, size_t offset, __global half *p);
-void __ovld vstorea_half16_rtn(double16 data, size_t offset, __global half *p);
-
-void __ovld vstorea_half2(double2 data, size_t offset, __local half *p);
-void __ovld vstorea_half3(double3 data, size_t offset, __local half *p);
-void __ovld vstorea_half4(double4 data, size_t offset, __local half *p);
-void __ovld vstorea_half8(double8 data, size_t offset, __local half *p);
-void __ovld vstorea_half16(double16 data, size_t offset, __local half *p);
-
-void __ovld vstorea_half2_rte(double2 data, size_t offset, __local half *p);
-void __ovld vstorea_half3_rte(double3 data, size_t offset, __local half *p);
-void __ovld vstorea_half4_rte(double4 data, size_t offset, __local half *p);
-void __ovld vstorea_half8_rte(double8 data, size_t offset, __local half *p);
-void __ovld vstorea_half16_rte(double16 data, size_t offset, __local half *p);
-
-void __ovld vstorea_half2_rtz(double2 data, size_t offset, __local half *p);
-void __ovld vstorea_half3_rtz(double3 data, size_t offset, __local half *p);
-void __ovld vstorea_half4_rtz(double4 data, size_t offset, __local half *p);
-void __ovld vstorea_half8_rtz(double8 data, size_t offset, __local half *p);
-void __ovld vstorea_half16_rtz(double16 data, size_t offset, __local half *p);
-
-void __ovld vstorea_half2_rtp(double2 data, size_t offset, __local half *p);
-void __ovld vstorea_half3_rtp(double3 data, size_t offset, __local half *p);
-void __ovld vstorea_half4_rtp(double4 data, size_t offset, __local half *p);
-void __ovld vstorea_half8_rtp(double8 data, size_t offset, __local half *p);
-void __ovld vstorea_half16_rtp(double16 data, size_t offset, __local half *p);
-
-void __ovld vstorea_half2_rtn(double2 data, size_t offset, __local half *p);
-void __ovld vstorea_half3_rtn(double3 data, size_t offset, __local half *p);
-void __ovld vstorea_half4_rtn(double4 data, size_t offset, __local half *p);
-void __ovld vstorea_half8_rtn(double8 data, size_t offset, __local half *p);
-void __ovld vstorea_half16_rtn(double16 data, size_t offset, __local half *p);
-
-void __ovld vstorea_half2(double2 data, size_t offset, __private half *p);
-void __ovld vstorea_half3(double3 data, size_t offset, __private half *p);
-void __ovld vstorea_half4(double4 data, size_t offset, __private half *p);
-void __ovld vstorea_half8(double8 data, size_t offset, __private half *p);
-void __ovld vstorea_half16(double16 data, size_t offset, __private half *p);
-
-void __ovld vstorea_half2_rte(double2 data, size_t offset, __private half *p);
-void __ovld vstorea_half3_rte(double3 data, size_t offset, __private half *p);
-void __ovld vstorea_half4_rte(double4 data, size_t offset, __private half *p);
-void __ovld vstorea_half8_rte(double8 data, size_t offset, __private half *p);
-void __ovld vstorea_half16_rte(double16 data, size_t offset, __private half *p);
-
-void __ovld vstorea_half2_rtz(double2 data, size_t offset, __private half *p);
-void __ovld vstorea_half3_rtz(double3 data, size_t offset, __private half *p);
-void __ovld vstorea_half4_rtz(double4 data, size_t offset, __private half *p);
-void __ovld vstorea_half8_rtz(double8 data, size_t offset, __private half *p);
-void __ovld vstorea_half16_rtz(double16 data, size_t offset, __private half *p);
-
-void __ovld vstorea_half2_rtp(double2 data, size_t offset, __private half *p);
-void __ovld vstorea_half3_rtp(double3 data, size_t offset, __private half *p);
-void __ovld vstorea_half4_rtp(double4 data, size_t offset, __private half *p);
-void __ovld vstorea_half8_rtp(double8 data, size_t offset, __private half *p);
-void __ovld vstorea_half16_rtp(double16 data, size_t offset, __private half *p);
-
-void __ovld vstorea_half2_rtn(double2 data,size_t offset, __private half *p);
-void __ovld vstorea_half3_rtn(double3 data,size_t offset, __private half *p);
-void __ovld vstorea_half4_rtn(double4 data,size_t offset, __private half *p);
-void __ovld vstorea_half8_rtn(double8 data,size_t offset, __private half *p);
-void __ovld vstorea_half16_rtn(double16 data,size_t offset, __private half *p);
-#endif //cl_khr_fp64
-#endif //defined(__opencl_c_generic_address_space)
-
-// OpenCL v1.1 s6.11.8, v1.2 s6.12.8, v2.0 s6.13.8 - Synchronization Functions
-
-/**
- * All work-items in a work-group executing the kernel
- * on a processor must execute this function before any
- * are allowed to continue execution beyond the barrier.
- * This function must be encountered by all work-items in
- * a work-group executing the kernel.
- * If barrier is inside a conditional statement, then all
- * work-items must enter the conditional if any work-item
- * enters the conditional statement and executes the
- * barrier.
- * If barrer is inside a loop, all work-items must execute
- * the barrier for each iteration of the loop before any are
- * allowed to continue execution beyond the barrier.
- * The barrier function also queues a memory fence
- * (reads and writes) to ensure correct ordering of
- * memory operations to local or global memory.
- * The flags argument specifies the memory address space
- * and can be set to a combination of the following literal
- * values.
- * CLK_LOCAL_MEM_FENCE - The barrier function
- * will either flush any variables stored in local memory
- * or queue a memory fence to ensure correct ordering of
- * memory operations to local memory.
- * CLK_GLOBAL_MEM_FENCE - The barrier function
- * will queue a memory fence to ensure correct ordering
- * of memory operations to global memory. This can be
- * useful when work-items, for example, write to buffer or
- * image objects and then want to read the updated data.
- */
-
-void __ovld __conv barrier(cl_mem_fence_flags flags);
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-void __ovld __conv work_group_barrier(cl_mem_fence_flags flags, memory_scope scope);
-void __ovld __conv work_group_barrier(cl_mem_fence_flags flags);
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-// OpenCL v1.1 s6.11.9, v1.2 s6.12.9 - Explicit Memory Fence Functions
-
-/**
- * Orders loads and stores of a work-item
- * executing a kernel. This means that loads
- * and stores preceding the mem_fence will
- * be committed to memory before any loads
- * and stores following the mem_fence.
- * The flags argument specifies the memory
- * address space and can be set to a
- * combination of the following literal
- * values:
- * CLK_LOCAL_MEM_FENCE
- * CLK_GLOBAL_MEM_FENCE.
- */
-void __ovld mem_fence(cl_mem_fence_flags flags);
-
-/**
- * Read memory barrier that orders only
- * loads.
- * The flags argument specifies the memory
- * address space and can be set to a
- * combination of the following literal
- * values:
- * CLK_LOCAL_MEM_FENCE
- * CLK_GLOBAL_MEM_FENCE.
- */
-void __ovld read_mem_fence(cl_mem_fence_flags flags);
-
-/**
- * Write memory barrier that orders only
- * stores.
- * The flags argument specifies the memory
- * address space and can be set to a
- * combination of the following literal
- * values:
- * CLK_LOCAL_MEM_FENCE
- * CLK_GLOBAL_MEM_FENCE.
- */
-void __ovld write_mem_fence(cl_mem_fence_flags flags);
-
-// OpenCL v2.0 s6.13.9 - Address Space Qualifier Functions
-
-#if defined(__opencl_c_generic_address_space)
-cl_mem_fence_flags __ovld get_fence(const void *ptr);
-cl_mem_fence_flags __ovld get_fence(void *ptr);
-
-/**
- * Builtin functions to_global, to_local, and to_private need to be declared as Clang builtin functions
- * and checked in Sema since they should be declared as
- *   addr gentype* to_addr (gentype*);
- * where gentype is builtin type or user defined type.
- */
-
-#endif //defined(__opencl_c_generic_address_space)
-
-// OpenCL v1.1 s6.11.10, v1.2 s6.12.10, v2.0 s6.13.10 - Async Copies from Global to Local Memory, Local to Global Memory, and Prefetch
-
-/**
- * event_t async_work_group_copy (
- * __global gentype *dst,
- * const __local gentype *src,
- * size_t num_elements,
- * event_t event)
- * Perform an async copy of num_elements
- * gentype elements from src to dst. The async
- * copy is performed by all work-items in a workgroup
- * and this built-in function must therefore
- * be encountered by all work-items in a workgroup
- * executing the kernel with the same
- * argument values; otherwise the results are
- * undefined.
- * Returns an event object that can be used by
- * wait_group_events to wait for the async copy
- * to finish. The event argument can also be used
- * to associate the async_work_group_copy with
- * a previous async copy allowing an event to be
- * shared by multiple async copies; otherwise event
- * should be zero.
- * If event argument is non-zero, the event object
- * supplied in event argument will be returned.
- * This function does not perform any implicit
- * synchronization of source data such as using a
- * barrier before performing the copy.
- */
-event_t __ovld async_work_group_copy(__local char *dst, const __global char *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local uchar *dst, const __global uchar *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local short *dst, const __global short *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local ushort *dst, const __global ushort *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local int *dst, const __global int *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local uint *dst, const __global uint *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local long *dst, const __global long *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local ulong *dst, const __global ulong *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local float *dst, const __global float *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local char2 *dst, const __global char2 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local uchar2 *dst, const __global uchar2 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local short2 *dst, const __global short2 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local ushort2 *dst, const __global ushort2 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local int2 *dst, const __global int2 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local uint2 *dst, const __global uint2 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local long2 *dst, const __global long2 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local ulong2 *dst, const __global ulong2 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local float2 *dst, const __global float2 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local char3 *dst, const __global char3 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local uchar3 *dst, const __global uchar3 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local short3 *dst, const __global short3 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local ushort3 *dst, const __global ushort3 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local int3 *dst, const __global int3 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local uint3 *dst, const __global uint3 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local long3 *dst, const __global long3 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local ulong3 *dst, const __global ulong3 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local float3 *dst, const __global float3 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local char4 *dst, const __global char4 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local uchar4 *dst, const __global uchar4 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local short4 *dst, const __global short4 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local ushort4 *dst, const __global ushort4 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local int4 *dst, const __global int4 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local uint4 *dst, const __global uint4 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local long4 *dst, const __global long4 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local ulong4 *dst, const __global ulong4 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local float4 *dst, const __global float4 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local char8 *dst, const __global char8 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local uchar8 *dst, const __global uchar8 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local short8 *dst, const __global short8 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local ushort8 *dst, const __global ushort8 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local int8 *dst, const __global int8 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local uint8 *dst, const __global uint8 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local long8 *dst, const __global long8 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local ulong8 *dst, const __global ulong8 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local float8 *dst, const __global float8 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local char16 *dst, const __global char16 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local uchar16 *dst, const __global uchar16 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local short16 *dst, const __global short16 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local ushort16 *dst, const __global ushort16 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local int16 *dst, const __global int16 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local uint16 *dst, const __global uint16 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local long16 *dst, const __global long16 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local ulong16 *dst, const __global ulong16 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local float16 *dst, const __global float16 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global char *dst, const __local char *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global uchar *dst, const __local uchar *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global short *dst, const __local short *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global ushort *dst, const __local ushort *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global int *dst, const __local int *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global uint *dst, const __local uint *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global long *dst, const __local long *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global ulong *dst, const __local ulong *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global float *dst, const __local float *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global char2 *dst, const __local char2 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global uchar2 *dst, const __local uchar2 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global short2 *dst, const __local short2 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global ushort2 *dst, const __local ushort2 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global int2 *dst, const __local int2 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global uint2 *dst, const __local uint2 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global long2 *dst, const __local long2 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global ulong2 *dst, const __local ulong2 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global float2 *dst, const __local float2 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global char3 *dst, const __local char3 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global uchar3 *dst, const __local uchar3 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global short3 *dst, const __local short3 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global ushort3 *dst, const __local ushort3 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global int3 *dst, const __local int3 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global uint3 *dst, const __local uint3 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global long3 *dst, const __local long3 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global ulong3 *dst, const __local ulong3 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global float3 *dst, const __local float3 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global char4 *dst, const __local char4 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global uchar4 *dst, const __local uchar4 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global short4 *dst, const __local short4 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global ushort4 *dst, const __local ushort4 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global int4 *dst, const __local int4 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global uint4 *dst, const __local uint4 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global long4 *dst, const __local long4 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global ulong4 *dst, const __local ulong4 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global float4 *dst, const __local float4 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global char8 *dst, const __local char8 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global uchar8 *dst, const __local uchar8 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global short8 *dst, const __local short8 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global ushort8 *dst, const __local ushort8 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global int8 *dst, const __local int8 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global uint8 *dst, const __local uint8 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global long8 *dst, const __local long8 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global ulong8 *dst, const __local ulong8 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global float8 *dst, const __local float8 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global char16 *dst, const __local char16 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global uchar16 *dst, const __local uchar16 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global short16 *dst, const __local short16 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global ushort16 *dst, const __local ushort16 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global int16 *dst, const __local int16 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global uint16 *dst, const __local uint16 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global long16 *dst, const __local long16 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global ulong16 *dst, const __local ulong16 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global float16 *dst, const __local float16 *src, size_t num_elements, event_t event);
-#ifdef cl_khr_fp64
-event_t __ovld async_work_group_copy(__local double *dst, const __global double *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local double2 *dst, const __global double2 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local double3 *dst, const __global double3 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local double4 *dst, const __global double4 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local double8 *dst, const __global double8 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local double16 *dst, const __global double16 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global double *dst, const __local double *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global double2 *dst, const __local double2 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global double3 *dst, const __local double3 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global double4 *dst, const __local double4 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global double8 *dst, const __local double8 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global double16 *dst, const __local double16 *src, size_t num_elements, event_t event);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-event_t __ovld async_work_group_copy(__local half *dst, const __global half *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local half2 *dst, const __global half2 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local half3 *dst, const __global half3 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local half4 *dst, const __global half4 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local half8 *dst, const __global half8 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__local half16 *dst, const __global half16 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global half *dst, const __local half *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global half2 *dst, const __local half2 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global half3 *dst, const __local half3 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global half4 *dst, const __local half4 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global half8 *dst, const __local half8 *src, size_t num_elements, event_t event);
-event_t __ovld async_work_group_copy(__global half16 *dst, const __local half16 *src, size_t num_elements, event_t event);
-#endif //cl_khr_fp16
-
-/**
- * Perform an async gather of num_elements
- * gentype elements from src to dst. The
- * src_stride is the stride in elements for each
- * gentype element read from src. The dst_stride
- * is the stride in elements for each gentype
- * element written to dst. The async gather is
- * performed by all work-items in a work-group.
- * This built-in function must therefore be
- * encountered by all work-items in a work-group
- * executing the kernel with the same argument
- * values; otherwise the results are undefined.
- * Returns an event object that can be used by
- * wait_group_events to wait for the async copy
- * to finish. The event argument can also be used
- * to associate the
- * async_work_group_strided_copy with a
- * previous async copy allowing an event to be
- * shared by multiple async copies; otherwise event
- * should be zero.
- * If event argument is non-zero, the event object
- * supplied in event argument will be returned.
- * This function does not perform any implicit
- * synchronization of source data such as using a
- * barrier before performing the copy.
- */
-event_t __ovld async_work_group_strided_copy(__local char *dst, const __global char *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local uchar *dst, const __global uchar *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local short *dst, const __global short *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local ushort *dst, const __global ushort *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local int *dst, const __global int *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local uint *dst, const __global uint *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local long *dst, const __global long *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local ulong *dst, const __global ulong *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local float *dst, const __global float *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local char2 *dst, const __global char2 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local uchar2 *dst, const __global uchar2 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local short2 *dst, const __global short2 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local ushort2 *dst, const __global ushort2 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local int2 *dst, const __global int2 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local uint2 *dst, const __global uint2 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local long2 *dst, const __global long2 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local ulong2 *dst, const __global ulong2 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local float2 *dst, const __global float2 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local char3 *dst, const __global char3 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local uchar3 *dst, const __global uchar3 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local short3 *dst, const __global short3 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local ushort3 *dst, const __global ushort3 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local int3 *dst, const __global int3 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local uint3 *dst, const __global uint3 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local long3 *dst, const __global long3 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local ulong3 *dst, const __global ulong3 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local float3 *dst, const __global float3 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local char4 *dst, const __global char4 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local uchar4 *dst, const __global uchar4 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local short4 *dst, const __global short4 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local ushort4 *dst, const __global ushort4 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local int4 *dst, const __global int4 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local uint4 *dst, const __global uint4 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local long4 *dst, const __global long4 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local ulong4 *dst, const __global ulong4 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local float4 *dst, const __global float4 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local char8 *dst, const __global char8 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local uchar8 *dst, const __global uchar8 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local short8 *dst, const __global short8 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local ushort8 *dst, const __global ushort8 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local int8 *dst, const __global int8 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local uint8 *dst, const __global uint8 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local long8 *dst, const __global long8 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local ulong8 *dst, const __global ulong8 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local float8 *dst, const __global float8 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local char16 *dst, const __global char16 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local uchar16 *dst, const __global uchar16 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local short16 *dst, const __global short16 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local ushort16 *dst, const __global ushort16 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local int16 *dst, const __global int16 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local uint16 *dst, const __global uint16 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local long16 *dst, const __global long16 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local ulong16 *dst, const __global ulong16 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local float16 *dst, const __global float16 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global char *dst, const __local char *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global uchar *dst, const __local uchar *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global short *dst, const __local short *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global ushort *dst, const __local ushort *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global int *dst, const __local int *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global uint *dst, const __local uint *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global long *dst, const __local long *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global ulong *dst, const __local ulong *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global float *dst, const __local float *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global char2 *dst, const __local char2 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global uchar2 *dst, const __local uchar2 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global short2 *dst, const __local short2 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global ushort2 *dst, const __local ushort2 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global int2 *dst, const __local int2 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global uint2 *dst, const __local uint2 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global long2 *dst, const __local long2 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global ulong2 *dst, const __local ulong2 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global float2 *dst, const __local float2 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global char3 *dst, const __local char3 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global uchar3 *dst, const __local uchar3 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global short3 *dst, const __local short3 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global ushort3 *dst, const __local ushort3 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global int3 *dst, const __local int3 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global uint3 *dst, const __local uint3 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global long3 *dst, const __local long3 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global ulong3 *dst, const __local ulong3 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global float3 *dst, const __local float3 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global char4 *dst, const __local char4 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global uchar4 *dst, const __local uchar4 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global short4 *dst, const __local short4 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global ushort4 *dst, const __local ushort4 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global int4 *dst, const __local int4 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global uint4 *dst, const __local uint4 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global long4 *dst, const __local long4 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global ulong4 *dst, const __local ulong4 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global float4 *dst, const __local float4 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global char8 *dst, const __local char8 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global uchar8 *dst, const __local uchar8 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global short8 *dst, const __local short8 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global ushort8 *dst, const __local ushort8 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global int8 *dst, const __local int8 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global uint8 *dst, const __local uint8 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global long8 *dst, const __local long8 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global ulong8 *dst, const __local ulong8 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global float8 *dst, const __local float8 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global char16 *dst, const __local char16 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global uchar16 *dst, const __local uchar16 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global short16 *dst, const __local short16 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global ushort16 *dst, const __local ushort16 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global int16 *dst, const __local int16 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global uint16 *dst, const __local uint16 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global long16 *dst, const __local long16 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global ulong16 *dst, const __local ulong16 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global float16 *dst, const __local float16 *src, size_t num_elements, size_t dst_stride, event_t event);
-#ifdef cl_khr_fp64
-event_t __ovld async_work_group_strided_copy(__local double *dst, const __global double *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local double2 *dst, const __global double2 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local double3 *dst, const __global double3 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local double4 *dst, const __global double4 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local double8 *dst, const __global double8 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local double16 *dst, const __global double16 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global double *dst, const __local double *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global double2 *dst, const __local double2 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global double3 *dst, const __local double3 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global double4 *dst, const __local double4 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global double8 *dst, const __local double8 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global double16 *dst, const __local double16 *src, size_t num_elements, size_t dst_stride, event_t event);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-event_t __ovld async_work_group_strided_copy(__local half *dst, const __global half *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local half2 *dst, const __global half2 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local half3 *dst, const __global half3 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local half4 *dst, const __global half4 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local half8 *dst, const __global half8 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__local half16 *dst, const __global half16 *src, size_t num_elements, size_t src_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global half *dst, const __local half *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global half2 *dst, const __local half2 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global half3 *dst, const __local half3 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global half4 *dst, const __local half4 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global half8 *dst, const __local half8 *src, size_t num_elements, size_t dst_stride, event_t event);
-event_t __ovld async_work_group_strided_copy(__global half16 *dst, const __local half16 *src, size_t num_elements, size_t dst_stride, event_t event);
-#endif //cl_khr_fp16
-
-/**
- * Wait for events that identify the
- * async_work_group_copy operations to
- * complete. The event objects specified in
- * event_list will be released after the wait is
- * performed.
- * This function must be encountered by all workitems
- * in a work-group executing the kernel with
- * the same num_events and event objects specified
- * in event_list; otherwise the results are undefined.
- */
-void __ovld wait_group_events(int num_events, event_t *event_list);
-
-/**
- * Prefetch num_elements * sizeof(gentype)
- * bytes into the global cache. The prefetch
- * instruction is applied to a work-item in a workgroup
- * and does not affect the functional
- * behavior of the kernel.
- */
-void __ovld prefetch(const __global char *p, size_t num_elements);
-void __ovld prefetch(const __global uchar *p, size_t num_elements);
-void __ovld prefetch(const __global short *p, size_t num_elements);
-void __ovld prefetch(const __global ushort *p, size_t num_elements);
-void __ovld prefetch(const __global int *p, size_t num_elements);
-void __ovld prefetch(const __global uint *p, size_t num_elements);
-void __ovld prefetch(const __global long *p, size_t num_elements);
-void __ovld prefetch(const __global ulong *p, size_t num_elements);
-void __ovld prefetch(const __global float *p, size_t num_elements);
-void __ovld prefetch(const __global char2 *p, size_t num_elements);
-void __ovld prefetch(const __global uchar2 *p, size_t num_elements);
-void __ovld prefetch(const __global short2 *p, size_t num_elements);
-void __ovld prefetch(const __global ushort2 *p, size_t num_elements);
-void __ovld prefetch(const __global int2 *p, size_t num_elements);
-void __ovld prefetch(const __global uint2 *p, size_t num_elements);
-void __ovld prefetch(const __global long2 *p, size_t num_elements);
-void __ovld prefetch(const __global ulong2 *p, size_t num_elements);
-void __ovld prefetch(const __global float2 *p, size_t num_elements);
-void __ovld prefetch(const __global char3 *p, size_t num_elements);
-void __ovld prefetch(const __global uchar3 *p, size_t num_elements);
-void __ovld prefetch(const __global short3 *p, size_t num_elements);
-void __ovld prefetch(const __global ushort3 *p, size_t num_elements);
-void __ovld prefetch(const __global int3 *p, size_t num_elements);
-void __ovld prefetch(const __global uint3 *p, size_t num_elements);
-void __ovld prefetch(const __global long3 *p, size_t num_elements);
-void __ovld prefetch(const __global ulong3 *p, size_t num_elements);
-void __ovld prefetch(const __global float3 *p, size_t num_elements);
-void __ovld prefetch(const __global char4 *p, size_t num_elements);
-void __ovld prefetch(const __global uchar4 *p, size_t num_elements);
-void __ovld prefetch(const __global short4 *p, size_t num_elements);
-void __ovld prefetch(const __global ushort4 *p, size_t num_elements);
-void __ovld prefetch(const __global int4 *p, size_t num_elements);
-void __ovld prefetch(const __global uint4 *p, size_t num_elements);
-void __ovld prefetch(const __global long4 *p, size_t num_elements);
-void __ovld prefetch(const __global ulong4 *p, size_t num_elements);
-void __ovld prefetch(const __global float4 *p, size_t num_elements);
-void __ovld prefetch(const __global char8 *p, size_t num_elements);
-void __ovld prefetch(const __global uchar8 *p, size_t num_elements);
-void __ovld prefetch(const __global short8 *p, size_t num_elements);
-void __ovld prefetch(const __global ushort8 *p, size_t num_elements);
-void __ovld prefetch(const __global int8 *p, size_t num_elements);
-void __ovld prefetch(const __global uint8 *p, size_t num_elements);
-void __ovld prefetch(const __global long8 *p, size_t num_elements);
-void __ovld prefetch(const __global ulong8 *p, size_t num_elements);
-void __ovld prefetch(const __global float8 *p, size_t num_elements);
-void __ovld prefetch(const __global char16 *p, size_t num_elements);
-void __ovld prefetch(const __global uchar16 *p, size_t num_elements);
-void __ovld prefetch(const __global short16 *p, size_t num_elements);
-void __ovld prefetch(const __global ushort16 *p, size_t num_elements);
-void __ovld prefetch(const __global int16 *p, size_t num_elements);
-void __ovld prefetch(const __global uint16 *p, size_t num_elements);
-void __ovld prefetch(const __global long16 *p, size_t num_elements);
-void __ovld prefetch(const __global ulong16 *p, size_t num_elements);
-void __ovld prefetch(const __global float16 *p, size_t num_elements);
-#ifdef cl_khr_fp64
-void __ovld prefetch(const __global double *p, size_t num_elements);
-void __ovld prefetch(const __global double2 *p, size_t num_elements);
-void __ovld prefetch(const __global double3 *p, size_t num_elements);
-void __ovld prefetch(const __global double4 *p, size_t num_elements);
-void __ovld prefetch(const __global double8 *p, size_t num_elements);
-void __ovld prefetch(const __global double16 *p, size_t num_elements);
-#endif //cl_khr_fp64
-#ifdef cl_khr_fp16
-void __ovld prefetch(const __global half *p, size_t num_elements);
-void __ovld prefetch(const __global half2 *p, size_t num_elements);
-void __ovld prefetch(const __global half3 *p, size_t num_elements);
-void __ovld prefetch(const __global half4 *p, size_t num_elements);
-void __ovld prefetch(const __global half8 *p, size_t num_elements);
-void __ovld prefetch(const __global half16 *p, size_t num_elements);
-#endif // cl_khr_fp16
-
-// OpenCL v1.1 s6.11.1, v1.2 s6.12.11 - Atomic Functions
-
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : enable
-#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : enable
-#endif
-/**
- * Read the 32-bit value (referred to as old)
- * stored at location pointed by p. Compute
- * (old + val) and store result at location
- * pointed by p. The function returns old.
- */
-int __ovld atomic_add(volatile __global int *p, int val);
-unsigned int __ovld atomic_add(volatile __global unsigned int *p, unsigned int val);
-int __ovld atomic_add(volatile __local int *p, int val);
-unsigned int __ovld atomic_add(volatile __local unsigned int *p, unsigned int val);
-#ifdef __OPENCL_CPP_VERSION__
-int __ovld atomic_add(volatile int *p, int val);
-unsigned int __ovld atomic_add(volatile unsigned int *p, unsigned int val);
-#endif
-
-#if defined(cl_khr_global_int32_base_atomics)
-int __ovld atom_add(volatile __global int *p, int val);
-unsigned int __ovld atom_add(volatile __global unsigned int *p, unsigned int val);
-#endif
-#if defined(cl_khr_local_int32_base_atomics)
-int __ovld atom_add(volatile __local int *p, int val);
-unsigned int __ovld atom_add(volatile __local unsigned int *p, unsigned int val);
-#endif
-
-#if defined(cl_khr_int64_base_atomics)
-long __ovld atom_add(volatile __global long *p, long val);
-unsigned long __ovld atom_add(volatile __global unsigned long *p, unsigned long val);
-long __ovld atom_add(volatile __local long *p, long val);
-unsigned long __ovld atom_add(volatile __local unsigned long *p, unsigned long val);
-#endif
-
-/**
- * Read the 32-bit value (referred to as old) stored at location pointed by p.
- * Compute (old - val) and store result at location pointed by p. The function
- * returns old.
- */
-int __ovld atomic_sub(volatile __global int *p, int val);
-unsigned int __ovld atomic_sub(volatile __global unsigned int *p, unsigned int val);
-int __ovld atomic_sub(volatile __local int *p, int val);
-unsigned int __ovld atomic_sub(volatile __local unsigned int *p, unsigned int val);
-#ifdef __OPENCL_CPP_VERSION__
-int __ovld atomic_sub(volatile int *p, int val);
-unsigned int __ovld atomic_sub(volatile unsigned int *p, unsigned int val);
-#endif
-
-#if defined(cl_khr_global_int32_base_atomics)
-int __ovld atom_sub(volatile __global int *p, int val);
-unsigned int __ovld atom_sub(volatile __global unsigned int *p, unsigned int val);
-#endif
-#if defined(cl_khr_local_int32_base_atomics)
-int __ovld atom_sub(volatile __local int *p, int val);
-unsigned int __ovld atom_sub(volatile __local unsigned int *p, unsigned int val);
-#endif
-
-#if defined(cl_khr_int64_base_atomics)
-long __ovld atom_sub(volatile __global long *p, long val);
-unsigned long __ovld atom_sub(volatile __global unsigned long *p, unsigned long val);
-long __ovld atom_sub(volatile __local long *p, long val);
-unsigned long __ovld atom_sub(volatile __local unsigned long *p, unsigned long val);
-#endif
-
-/**
- * Swaps the old value stored at location p
- * with new value given by val. Returns old
- * value.
- */
-int __ovld atomic_xchg(volatile __global int *p, int val);
-unsigned int __ovld atomic_xchg(volatile __global unsigned int *p, unsigned int val);
-int __ovld atomic_xchg(volatile __local int *p, int val);
-unsigned int __ovld atomic_xchg(volatile __local unsigned int *p, unsigned int val);
-float __ovld atomic_xchg(volatile __global float *p, float val);
-float __ovld atomic_xchg(volatile __local float *p, float val);
-#ifdef __OPENCL_CPP_VERSION__
-int __ovld atomic_xchg(volatile int *p, int val);
-unsigned int __ovld atomic_xchg(volatile unsigned int *p, unsigned int val);
-float __ovld atomic_xchg(volatile float *p, float val);
-#endif
-
-#if defined(cl_khr_global_int32_base_atomics)
-int __ovld atom_xchg(volatile __global int *p, int val);
-unsigned int __ovld atom_xchg(volatile __global unsigned int *p, unsigned int val);
-#endif
-#if defined(cl_khr_local_int32_base_atomics)
-int __ovld atom_xchg(volatile __local int *p, int val);
-unsigned int __ovld atom_xchg(volatile __local unsigned int *p, unsigned int val);
-#endif
-
-#if defined(cl_khr_int64_base_atomics)
-long __ovld atom_xchg(volatile __global long *p, long val);
-long __ovld atom_xchg(volatile __local long *p, long val);
-unsigned long __ovld atom_xchg(volatile __global unsigned long *p, unsigned long val);
-unsigned long __ovld atom_xchg(volatile __local unsigned long *p, unsigned long val);
-#endif
-
-/**
- * Read the 32-bit value (referred to as old)
- * stored at location pointed by p. Compute
- * (old + 1) and store result at location
- * pointed by p. The function returns old.
- */
-int __ovld atomic_inc(volatile __global int *p);
-unsigned int __ovld atomic_inc(volatile __global unsigned int *p);
-int __ovld atomic_inc(volatile __local int *p);
-unsigned int __ovld atomic_inc(volatile __local unsigned int *p);
-#ifdef __OPENCL_CPP_VERSION__
-int __ovld atomic_inc(volatile int *p);
-unsigned int __ovld atomic_inc(volatile unsigned int *p);
-#endif
-
-#if defined(cl_khr_global_int32_base_atomics)
-int __ovld atom_inc(volatile __global int *p);
-unsigned int __ovld atom_inc(volatile __global unsigned int *p);
-#endif
-#if defined(cl_khr_local_int32_base_atomics)
-int __ovld atom_inc(volatile __local int *p);
-unsigned int __ovld atom_inc(volatile __local unsigned int *p);
-#endif
-
-#if defined(cl_khr_int64_base_atomics)
-long __ovld atom_inc(volatile __global long *p);
-unsigned long __ovld atom_inc(volatile __global unsigned long *p);
-long __ovld atom_inc(volatile __local long *p);
-unsigned long __ovld atom_inc(volatile __local unsigned long *p);
-#endif
-
-/**
- * Read the 32-bit value (referred to as old)
- * stored at location pointed by p. Compute
- * (old - 1) and store result at location
- * pointed by p. The function returns old.
- */
-int __ovld atomic_dec(volatile __global int *p);
-unsigned int __ovld atomic_dec(volatile __global unsigned int *p);
-int __ovld atomic_dec(volatile __local int *p);
-unsigned int __ovld atomic_dec(volatile __local unsigned int *p);
-#ifdef __OPENCL_CPP_VERSION__
-int __ovld atomic_dec(volatile int *p);
-unsigned int __ovld atomic_dec(volatile unsigned int *p);
-#endif
-
-#if defined(cl_khr_global_int32_base_atomics)
-int __ovld atom_dec(volatile __global int *p);
-unsigned int __ovld atom_dec(volatile __global unsigned int *p);
-#endif
-#if defined(cl_khr_local_int32_base_atomics)
-int __ovld atom_dec(volatile __local int *p);
-unsigned int __ovld atom_dec(volatile __local unsigned int *p);
-#endif
-
-#if defined(cl_khr_int64_base_atomics)
-long __ovld atom_dec(volatile __global long *p);
-unsigned long __ovld atom_dec(volatile __global unsigned long *p);
-long __ovld atom_dec(volatile __local long *p);
-unsigned long __ovld atom_dec(volatile __local unsigned long *p);
-#endif
-
-/**
- * Read the 32-bit value (referred to as old)
- * stored at location pointed by p. Compute
- * (old == cmp) ? val : old and store result at
- * location pointed by p. The function
- * returns old.
- */
-int __ovld atomic_cmpxchg(volatile __global int *p, int cmp, int val);
-unsigned int __ovld atomic_cmpxchg(volatile __global unsigned int *p, unsigned int cmp, unsigned int val);
-int __ovld atomic_cmpxchg(volatile __local int *p, int cmp, int val);
-unsigned int __ovld atomic_cmpxchg(volatile __local unsigned int *p, unsigned int cmp, unsigned int val);
-#ifdef __OPENCL_CPP_VERSION__
-int __ovld atomic_cmpxchg(volatile int *p, int cmp, int val);
-unsigned int __ovld atomic_cmpxchg(volatile unsigned int *p, unsigned int cmp, unsigned int val);
-#endif
-
-#if defined(cl_khr_global_int32_base_atomics)
-int __ovld atom_cmpxchg(volatile __global int *p, int cmp, int val);
-unsigned int __ovld atom_cmpxchg(volatile __global unsigned int *p, unsigned int cmp, unsigned int val);
-#endif
-#if defined(cl_khr_local_int32_base_atomics)
-int __ovld atom_cmpxchg(volatile __local int *p, int cmp, int val);
-unsigned int __ovld atom_cmpxchg(volatile __local unsigned int *p, unsigned int cmp, unsigned int val);
-#endif
-
-#if defined(cl_khr_int64_base_atomics)
-long __ovld atom_cmpxchg(volatile __global long *p, long cmp, long val);
-unsigned long __ovld atom_cmpxchg(volatile __global unsigned long *p, unsigned long cmp, unsigned long val);
-long __ovld atom_cmpxchg(volatile __local long *p, long cmp, long val);
-unsigned long __ovld atom_cmpxchg(volatile __local unsigned long *p, unsigned long cmp, unsigned long val);
-#endif
-
-/**
- * Read the 32-bit value (referred to as old)
- * stored at location pointed by p. Compute
- * min(old, val) and store minimum value at
- * location pointed by p. The function
- * returns old.
- */
-int __ovld atomic_min(volatile __global int *p, int val);
-unsigned int __ovld atomic_min(volatile __global unsigned int *p, unsigned int val);
-int __ovld atomic_min(volatile __local int *p, int val);
-unsigned int __ovld atomic_min(volatile __local unsigned int *p, unsigned int val);
-#ifdef __OPENCL_CPP_VERSION__
-int __ovld atomic_min(volatile int *p, int val);
-unsigned int __ovld atomic_min(volatile unsigned int *p, unsigned int val);
-#endif
-
-#if defined(cl_khr_global_int32_extended_atomics)
-int __ovld atom_min(volatile __global int *p, int val);
-unsigned int __ovld atom_min(volatile __global unsigned int *p, unsigned int val);
-#endif
-#if defined(cl_khr_local_int32_extended_atomics)
-int __ovld atom_min(volatile __local int *p, int val);
-unsigned int __ovld atom_min(volatile __local unsigned int *p, unsigned int val);
-#endif
-
-#if defined(cl_khr_int64_extended_atomics)
-long __ovld atom_min(volatile __global long *p, long val);
-unsigned long __ovld atom_min(volatile __global unsigned long *p, unsigned long val);
-long __ovld atom_min(volatile __local long *p, long val);
-unsigned long __ovld atom_min(volatile __local unsigned long *p, unsigned long val);
-#endif
-
-/**
- * Read the 32-bit value (referred to as old)
- * stored at location pointed by p. Compute
- * max(old, val) and store maximum value at
- * location pointed by p. The function
- * returns old.
- */
-int __ovld atomic_max(volatile __global int *p, int val);
-unsigned int __ovld atomic_max(volatile __global unsigned int *p, unsigned int val);
-int __ovld atomic_max(volatile __local int *p, int val);
-unsigned int __ovld atomic_max(volatile __local unsigned int *p, unsigned int val);
-#ifdef __OPENCL_CPP_VERSION__
-int __ovld atomic_max(volatile int *p, int val);
-unsigned int __ovld atomic_max(volatile unsigned int *p, unsigned int val);
-#endif
-
-#if defined(cl_khr_global_int32_extended_atomics)
-int __ovld atom_max(volatile __global int *p, int val);
-unsigned int __ovld atom_max(volatile __global unsigned int *p, unsigned int val);
-#endif
-#if defined(cl_khr_local_int32_extended_atomics)
-int __ovld atom_max(volatile __local int *p, int val);
-unsigned int __ovld atom_max(volatile __local unsigned int *p, unsigned int val);
-#endif
-
-#if defined(cl_khr_int64_extended_atomics)
-long __ovld atom_max(volatile __global long *p, long val);
-unsigned long __ovld atom_max(volatile __global unsigned long *p, unsigned long val);
-long __ovld atom_max(volatile __local long *p, long val);
-unsigned long __ovld atom_max(volatile __local unsigned long *p, unsigned long val);
-#endif
-
-/**
- * Read the 32-bit value (referred to as old)
- * stored at location pointed by p. Compute
- * (old & val) and store result at location
- * pointed by p. The function returns old.
- */
-int __ovld atomic_and(volatile __global int *p, int val);
-unsigned int __ovld atomic_and(volatile __global unsigned int *p, unsigned int val);
-int __ovld atomic_and(volatile __local int *p, int val);
-unsigned int __ovld atomic_and(volatile __local unsigned int *p, unsigned int val);
-#ifdef __OPENCL_CPP_VERSION__
-int __ovld atomic_and(volatile int *p, int val);
-unsigned int __ovld atomic_and(volatile unsigned int *p, unsigned int val);
-#endif
-
-#if defined(cl_khr_global_int32_extended_atomics)
-int __ovld atom_and(volatile __global int *p, int val);
-unsigned int __ovld atom_and(volatile __global unsigned int *p, unsigned int val);
-#endif
-#if defined(cl_khr_local_int32_extended_atomics)
-int __ovld atom_and(volatile __local int *p, int val);
-unsigned int __ovld atom_and(volatile __local unsigned int *p, unsigned int val);
-#endif
-
-#if defined(cl_khr_int64_extended_atomics)
-long __ovld atom_and(volatile __global long *p, long val);
-unsigned long __ovld atom_and(volatile __global unsigned long *p, unsigned long val);
-long __ovld atom_and(volatile __local long *p, long val);
-unsigned long __ovld atom_and(volatile __local unsigned long *p, unsigned long val);
-#endif
-
-/**
- * Read the 32-bit value (referred to as old)
- * stored at location pointed by p. Compute
- * (old | val) and store result at location
- * pointed by p. The function returns old.
- */
-int __ovld atomic_or(volatile __global int *p, int val);
-unsigned int __ovld atomic_or(volatile __global unsigned int *p, unsigned int val);
-int __ovld atomic_or(volatile __local int *p, int val);
-unsigned int __ovld atomic_or(volatile __local unsigned int *p, unsigned int val);
-#ifdef __OPENCL_CPP_VERSION__
-int __ovld atomic_or(volatile int *p, int val);
-unsigned int __ovld atomic_or(volatile unsigned int *p, unsigned int val);
-#endif
-
-#if defined(cl_khr_global_int32_extended_atomics)
-int __ovld atom_or(volatile __global int *p, int val);
-unsigned int __ovld atom_or(volatile __global unsigned int *p, unsigned int val);
-#endif
-#if defined(cl_khr_local_int32_extended_atomics)
-int __ovld atom_or(volatile __local int *p, int val);
-unsigned int __ovld atom_or(volatile __local unsigned int *p, unsigned int val);
-#endif
-
-#if defined(cl_khr_int64_extended_atomics)
-long __ovld atom_or(volatile __global long *p, long val);
-unsigned long __ovld atom_or(volatile __global unsigned long *p, unsigned long val);
-long __ovld atom_or(volatile __local long *p, long val);
-unsigned long __ovld atom_or(volatile __local unsigned long *p, unsigned long val);
-#endif
-
-/**
- * Read the 32-bit value (referred to as old)
- * stored at location pointed by p. Compute
- * (old ^ val) and store result at location
- * pointed by p. The function returns old.
- */
-int __ovld atomic_xor(volatile __global int *p, int val);
-unsigned int __ovld atomic_xor(volatile __global unsigned int *p, unsigned int val);
-int __ovld atomic_xor(volatile __local int *p, int val);
-unsigned int __ovld atomic_xor(volatile __local unsigned int *p, unsigned int val);
-#ifdef __OPENCL_CPP_VERSION__
-int __ovld atomic_xor(volatile int *p, int val);
-unsigned int __ovld atomic_xor(volatile unsigned int *p, unsigned int val);
-#endif
-
-#if defined(cl_khr_global_int32_extended_atomics)
-int __ovld atom_xor(volatile __global int *p, int val);
-unsigned int __ovld atom_xor(volatile __global unsigned int *p, unsigned int val);
-#endif
-#if defined(cl_khr_local_int32_extended_atomics)
-int __ovld atom_xor(volatile __local int *p, int val);
-unsigned int __ovld atom_xor(volatile __local unsigned int *p, unsigned int val);
-#endif
-
-#if defined(cl_khr_int64_extended_atomics)
-long __ovld atom_xor(volatile __global long *p, long val);
-unsigned long __ovld atom_xor(volatile __global unsigned long *p, unsigned long val);
-long __ovld atom_xor(volatile __local long *p, long val);
-unsigned long __ovld atom_xor(volatile __local unsigned long *p, unsigned long val);
-#endif
-
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : disable
-#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : disable
-#endif
-
-// OpenCL v2.0 s6.13.11 - Atomics Functions
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-// double atomics support requires extensions cl_khr_int64_base_atomics and cl_khr_int64_extended_atomics
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : enable
-#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : enable
-#endif
-
-// atomic_init()
-#if defined(__opencl_c_generic_address_space)
-void __ovld atomic_init(volatile atomic_int *object, int value);
-void __ovld atomic_init(volatile atomic_uint *object, uint value);
-void __ovld atomic_init(volatile atomic_float *object, float value);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-void __ovld atomic_init(volatile atomic_long *object, long value);
-void __ovld atomic_init(volatile atomic_ulong *object, ulong value);
-#ifdef cl_khr_fp64
-void __ovld atomic_init(volatile atomic_double *object, double value);
-#endif //cl_khr_fp64
-#endif
-#endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
-void __ovld atomic_init(volatile __global atomic_int *object, int value);
-void __ovld atomic_init(volatile __local atomic_int *object, int value);
-void __ovld atomic_init(volatile __global atomic_uint *object, uint value);
-void __ovld atomic_init(volatile __local atomic_uint *object, uint value);
-void __ovld atomic_init(volatile __global atomic_float *object, float value);
-void __ovld atomic_init(volatile __local atomic_float *object, float value);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-void __ovld atomic_init(volatile __global atomic_long *object, long value);
-void __ovld atomic_init(volatile __local atomic_long *object, long value);
-void __ovld atomic_init(volatile __global atomic_ulong *object, ulong value);
-void __ovld atomic_init(volatile __local atomic_ulong *object, ulong value);
-#ifdef cl_khr_fp64
-void __ovld atomic_init(volatile __global atomic_double *object, double value);
-void __ovld atomic_init(volatile __local atomic_double *object, double value);
-#endif //cl_khr_fp64
-#endif
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
-
-// atomic_work_item_fence()
-void __ovld atomic_work_item_fence(cl_mem_fence_flags flags, memory_order order, memory_scope scope);
-
-// atomic_fetch()
-// OpenCL v2.0 s6.13.11.7.5:
-// add/sub: atomic type argument can be uintptr_t/intptr_t, value type argument can be ptrdiff_t.
-
-#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
-#if defined(__opencl_c_generic_address_space)
-int __ovld atomic_fetch_add(volatile atomic_int *object, int operand);
-uint __ovld atomic_fetch_add(volatile atomic_uint *object, uint operand);
-int __ovld atomic_fetch_sub(volatile atomic_int *object, int operand);
-uint __ovld atomic_fetch_sub(volatile atomic_uint *object, uint operand);
-int __ovld atomic_fetch_or(volatile atomic_int *object, int operand);
-uint __ovld atomic_fetch_or(volatile atomic_uint *object, uint operand);
-int __ovld atomic_fetch_xor(volatile atomic_int *object, int operand);
-uint __ovld atomic_fetch_xor(volatile atomic_uint *object, uint operand);
-int __ovld atomic_fetch_and(volatile atomic_int *object, int operand);
-uint __ovld atomic_fetch_and(volatile atomic_uint *object, uint operand);
-int __ovld atomic_fetch_min(volatile atomic_int *object, int operand);
-uint __ovld atomic_fetch_min(volatile atomic_uint *object, uint operand);
-int __ovld atomic_fetch_max(volatile atomic_int *object, int operand);
-uint __ovld atomic_fetch_max(volatile atomic_uint *object, uint operand);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-long __ovld atomic_fetch_add(volatile atomic_long *object, long operand);
-ulong __ovld atomic_fetch_add(volatile atomic_ulong *object, ulong operand);
-long __ovld atomic_fetch_sub(volatile atomic_long *object, long operand);
-ulong __ovld atomic_fetch_sub(volatile atomic_ulong *object, ulong operand);
-long __ovld atomic_fetch_or(volatile atomic_long *object, long operand);
-ulong __ovld atomic_fetch_or(volatile atomic_ulong *object, ulong operand);
-long __ovld atomic_fetch_xor(volatile atomic_long *object, long operand);
-ulong __ovld atomic_fetch_xor(volatile atomic_ulong *object, ulong operand);
-long __ovld atomic_fetch_and(volatile atomic_long *object, long operand);
-ulong __ovld atomic_fetch_and(volatile atomic_ulong *object, ulong operand);
-long __ovld atomic_fetch_min(volatile atomic_long *object, long operand);
-ulong __ovld atomic_fetch_min(volatile atomic_ulong *object, ulong operand);
-long __ovld atomic_fetch_max(volatile atomic_long *object, long operand);
-ulong __ovld atomic_fetch_max(volatile atomic_ulong *object, ulong operand);
-uintptr_t __ovld atomic_fetch_add(volatile atomic_uintptr_t *object, ptrdiff_t operand);
-uintptr_t __ovld atomic_fetch_sub(volatile atomic_uintptr_t *object, ptrdiff_t operand);
-#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
-int __ovld atomic_fetch_add(volatile __global atomic_int *object, int operand);
-int __ovld atomic_fetch_add(volatile __local atomic_int *object, int operand);
-uint __ovld atomic_fetch_add(volatile __global atomic_uint *object, uint operand);
-uint __ovld atomic_fetch_add(volatile __local atomic_uint *object, uint operand);
-int __ovld atomic_fetch_sub(volatile __global atomic_int *object, int operand);
-int __ovld atomic_fetch_sub(volatile __local atomic_int *object, int operand);
-uint __ovld atomic_fetch_sub(volatile __global atomic_uint *object, uint operand);
-uint __ovld atomic_fetch_sub(volatile __local atomic_uint *object, uint operand);
-int __ovld atomic_fetch_or(volatile __global atomic_int *object, int operand);
-int __ovld atomic_fetch_or(volatile __local atomic_int *object, int operand);
-uint __ovld atomic_fetch_or(volatile __global atomic_uint *object, uint operand);
-uint __ovld atomic_fetch_or(volatile __local atomic_uint *object, uint operand);
-int __ovld atomic_fetch_xor(volatile __global atomic_int *object, int operand);
-int __ovld atomic_fetch_xor(volatile __local atomic_int *object, int operand);
-uint __ovld atomic_fetch_xor(volatile __global atomic_uint *object, uint operand);
-uint __ovld atomic_fetch_xor(volatile __local atomic_uint *object, uint operand);i
-int __ovld atomic_fetch_and(volatile __global atomic_int *object, int operand);
-int __ovld atomic_fetch_and(volatile __local atomic_int *object, int operand);
-uint __ovld atomic_fetch_and(volatile __global atomic_uint *object, uint operand);
-uint __ovld atomic_fetch_and(volatile __local atomic_uint *object, uint operand);
-int __ovld atomic_fetch_min(volatile __global atomic_int *object, int operand);
-int __ovld atomic_fetch_min(volatile __local atomic_int *object, int operand);
-uint __ovld atomic_fetch_min(volatile __global atomic_uint *object, uint operand);
-uint __ovld atomic_fetch_min(volatile __local atomic_uint *object, uint operand);
-int __ovld atomic_fetch_max(volatile __global atomic_int *object, int operand);
-int __ovld atomic_fetch_max(volatile __local atomic_int *object, int operand);
-uint __ovld atomic_fetch_max(volatile __global atomic_uint *object, uint operand);
-uint __ovld atomic_fetch_max(volatile __local atomic_uint *object, uint operand);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-long __ovld atomic_fetch_add(volatile __global atomic_long *object, long operand);
-long __ovld atomic_fetch_add(volatile __local atomic_long *object, long operand);
-ulong __ovld atomic_fetch_add(volatile __global atomic_ulong *object, ulong operand);
-ulong __ovld atomic_fetch_add(volatile __local atomic_ulong *object, ulong operand);
-uintptr_t __ovld atomic_fetch_add(volatile __global atomic_uintptr_t *object, ptrdiff_t operand);
-uintptr_t __ovld atomic_fetch_add(volatile __local atomic_uintptr_t *object, ptrdiff_t operand);
-long __ovld atomic_fetch_sub(volatile __global atomic_long *object, long operand);
-long __ovld atomic_fetch_sub(volatile __local atomic_long *object, long operand);
-ulong __ovld atomic_fetch_sub(volatile __global atomic_ulong *object, ulong operand);
-ulong __ovld atomic_fetch_sub(volatile __local atomic_ulong *object, ulong operand);
-uintptr_t __ovld atomic_fetch_sub(volatile __global atomic_uintptr_t *object, ptrdiff_t operand);
-uintptr_t __ovld atomic_fetch_sub(volatile __local atomic_uintptr_t *object, ptrdiff_t operand);
-long __ovld atomic_fetch_or(volatile __global atomic_long *object, long operand);
-long __ovld atomic_fetch_or(volatile __local atomic_long *object, long operand);
-ulong __ovld atomic_fetch_or(volatile __global atomic_ulong *object, ulong operand);
-ulong __ovld atomic_fetch_or(volatile __local atomic_ulong *object, ulong operand);
-uintptr_t __ovld atomic_fetch_or(volatile __global atomic_uintptr_t *object, intptr_t operand);
-uintptr_t __ovld atomic_fetch_or(volatile __local atomic_uintptr_t *object, intptr_t operand);
-intptr_t __ovld atomic_fetch_or(volatile __global atomic_intptr_t *object, uintptr_t operand);
-intptr_t __ovld atomic_fetch_or(volatile __local atomic_intptr_t *object, uintptr_t operand);
-long __ovld atomic_fetch_xor(volatile __global atomic_long *object, long operand);
-long __ovld atomic_fetch_xor(volatile __local atomic_long *object, long operand);
-ulong __ovld atomic_fetch_xor(volatile __global atomic_ulong *object, ulong operand);
-ulong __ovld atomic_fetch_xor(volatile __local atomic_ulong *object, ulong operand);
-uintptr_t __ovld atomic_fetch_xor(volatile __global atomic_uintptr_t *object, intptr_t operand);
-uintptr_t __ovld atomic_fetch_xor(volatile __local atomic_uintptr_t *object, intptr_t operand);
-intptr_t __ovld atomic_fetch_xor(volatile __global atomic_intptr_t *object, uintptr_t operand);
-intptr_t __ovld atomic_fetch_xor(volatile __local atomic_intptr_t *object, uintptr_t operand);
-long __ovld atomic_fetch_and(volatile __global atomic_long *object, long operand);
-long __ovld atomic_fetch_and(volatile __local atomic_long *object, long operand);
-ulong __ovld atomic_fetch_and(volatile __global atomic_ulong *object, ulong operand);
-ulong __ovld atomic_fetch_and(volatile __local atomic_ulong *object, ulong operand);
-uintptr_t __ovld atomic_fetch_and(volatile __global atomic_uintptr_t *object, intptr_t operand);
-uintptr_t __ovld atomic_fetch_and(volatile __local atomic_uintptr_t *object, intptr_t operand);
-intptr_t __ovld atomic_fetch_and(volatile __global atomic_intptr_t *object, uintptr_t operand);
-intptr_t __ovld atomic_fetch_and(volatile __local atomic_intptr_t *object, uintptr_t operand);
-long __ovld atomic_fetch_min(volatile __global atomic_long *object, long operand);
-long __ovld atomic_fetch_min(volatile __local atomic_long *object, long operand);
-ulong __ovld atomic_fetch_min(volatile __global atomic_ulong *object, ulong operand);
-ulong __ovld atomic_fetch_min(volatile __local atomic_ulong *object, ulong operand);
-uintptr_t __ovld atomic_fetch_min(volatile __global atomic_uintptr_t *object, intptr_t operand);
-uintptr_t __ovld atomic_fetch_min(volatile __local atomic_uintptr_t *object, intptr_t operand);
-intptr_t __ovld atomic_fetch_min(volatile __global atomic_intptr_t *object, uintptr_t operand);
-intptr_t __ovld atomic_fetch_min(volatile __local atomic_intptr_t *object, uintptr_t operand);
-long __ovld atomic_fetch_max(volatile __global atomic_long *object, long operand);
-long __ovld atomic_fetch_max(volatile __local atomic_long *object, long operand);
-ulong __ovld atomic_fetch_max(volatile __global atomic_ulong *object, ulong operand);
-ulong __ovld atomic_fetch_max(volatile __local atomic_ulong *object, ulong operand);
-uintptr_t __ovld atomic_fetch_add(volatile __global atomic_uintptr_t *object, ptrdiff_t operand);
-uintptr_t __ovld atomic_fetch_sub(volatile __local atomic_uintptr_t *object, ptrdiff_t operand);
-#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
-#endif
-
-#if defined(__opencl_c_atomic_scope_device)
-#if defined(__opencl_c_generic_address_space)
-int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order);
-uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order);
-int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order);
-uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order);
-int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order);
-uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order);
-int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order);
-uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order);
-int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order);
-uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order);
-int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order);
-uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order);
-int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order);
-uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order);
-ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
-long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order);
-ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
-long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order);
-ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
-long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order);
-ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
-long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order);
-ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
-long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order);
-ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
-long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order);
-ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
-uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
-uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
-#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
-int __ovld atomic_fetch_add_explicit(volatile __global atomic_int *object, int operand, memory_order order);
-int __ovld atomic_fetch_add_explicit(volatile __local atomic_int *object, int operand, memory_order order);
-uint __ovld atomic_fetch_add_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
-uint __ovld atomic_fetch_add_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
-int __ovld atomic_fetch_sub_explicit(volatile __global atomic_int *object, int operand, memory_order order);
-int __ovld atomic_fetch_sub_explicit(volatile __local atomic_int *object, int operand, memory_order order);
-uint __ovld atomic_fetch_sub_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
-uint __ovld atomic_fetch_sub_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
-int __ovld atomic_fetch_or_explicit(volatile __global atomic_int *object, int operand, memory_order order);
-int __ovld atomic_fetch_or_explicit(volatile __local atomic_int *object, int operand, memory_order order);
-uint __ovld atomic_fetch_or_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
-uint __ovld atomic_fetch_or_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
-int __ovld atomic_fetch_xor_explicit(volatile __global atomic_int *object, int operand, memory_order order);
-int __ovld atomic_fetch_xor_explicit(volatile __local atomic_int *object, int operand, memory_order order);
-uint __ovld atomic_fetch_xor_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
-uint __ovld atomic_fetch_xor_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
-int __ovld atomic_fetch_and_explicit(volatile __global atomic_int *object, int operand, memory_order order);
-int __ovld atomic_fetch_and_explicit(volatile __local atomic_int *object, int operand, memory_order order);
-uint __ovld atomic_fetch_and_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
-uint __ovld atomic_fetch_and_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
-int __ovld atomic_fetch_min_explicit(volatile __global atomic_int *object, int operand, memory_order order);
-int __ovld atomic_fetch_min_explicit(volatile __local atomic_int *object, int operand, memory_order order);
-uint __ovld atomic_fetch_min_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
-uint __ovld atomic_fetch_min_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
-int __ovld atomic_fetch_max_explicit(volatile __global atomic_int *object, int operand, memory_order order);
-int __ovld atomic_fetch_max_explicit(volatile __local atomic_int *object, int operand, memory_order order);
-uint __ovld atomic_fetch_max_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
-uint __ovld atomic_fetch_max_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-long __ovld atomic_fetch_add_explicit(volatile __global atomic_long *object, long operand, memory_order order);
-long __ovld atomic_fetch_add_explicit(volatile __local atomic_long *object, long operand, memory_order order);
-ulong __ovld atomic_fetch_add_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
-ulong __ovld atomic_fetch_add_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
-uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
-uintptr_t __ovld atomic_fetch_add_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
-long __ovld atomic_fetch_sub_explicit(volatile __global atomic_long *object, long operand, memory_order order);
-long __ovld atomic_fetch_sub_explicit(volatile __local atomic_long *object, long operand, memory_order order);
-ulong __ovld atomic_fetch_sub_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
-ulong __ovld atomic_fetch_sub_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
-uintptr_t __ovld atomic_fetch_sub_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
-uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
-long __ovld atomic_fetch_or_explicit(volatile __global atomic_long *object, long operand, memory_order order);
-long __ovld atomic_fetch_or_explicit(volatile __local atomic_long *object, long operand, memory_order order);
-ulong __ovld atomic_fetch_or_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
-ulong __ovld atomic_fetch_or_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
-uintptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order);
-uintptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order);
-intptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order);
-intptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order);
-long __ovld atomic_fetch_xor_explicit(volatile __global atomic_long *object, long operand, memory_order order);
-long __ovld atomic_fetch_xor_explicit(volatile __local atomic_long *object, long operand, memory_order order);
-ulong __ovld atomic_fetch_xor_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
-ulong __ovld atomic_fetch_xor_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
-uintptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order);
-uintptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order);
-intptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order);
-intptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order);
-long __ovld atomic_fetch_and_explicit(volatile __global atomic_long *object, long operand, memory_order order);
-long __ovld atomic_fetch_and_explicit(volatile __local atomic_long *object, long operand, memory_order order);
-ulong __ovld atomic_fetch_and_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
-ulong __ovld atomic_fetch_and_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
-uintptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order);
-uintptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order);
-intptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order);
-intptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order);
-long __ovld atomic_fetch_min_explicit(volatile __global atomic_long *object, long operand, memory_order order);
-long __ovld atomic_fetch_min_explicit(volatile __local atomic_long *object, long operand, memory_order order);
-ulong __ovld atomic_fetch_min_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
-ulong __ovld atomic_fetch_min_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
-uintptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order);
-uintptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order);
-intptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order);
-intptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order);
-long __ovld atomic_fetch_max_explicit(volatile __global atomic_long *object, long operand, memory_order order);
-long __ovld atomic_fetch_max_explicit(volatile __local atomic_long *object, long operand, memory_order order);
-ulong __ovld atomic_fetch_max_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
-ulong __ovld atomic_fetch_max_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
-uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
-uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
-#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
-#endif
-
-#if defined(__opencl_c_generic_address_space)
-int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
-uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
-int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
-uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
-int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
-uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
-int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
-uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
-int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
-uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
-int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
-uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
-int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
-uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
-ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
-long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
-ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
-long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
-ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
-long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
-ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
-long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
-ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
-long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
-ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
-long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
-ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
-uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
-uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
-#endif
-#endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
-int __ovld atomic_fetch_add_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
-int __ovld atomic_fetch_add_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
-uint __ovld atomic_fetch_add_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
-uint __ovld atomic_fetch_add_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
-int __ovld atomic_fetch_sub_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
-int __ovld atomic_fetch_sub_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
-uint __ovld atomic_fetch_sub_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
-uint __ovld atomic_fetch_sub_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
-int __ovld atomic_fetch_or_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
-int __ovld atomic_fetch_or_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
-uint __ovld atomic_fetch_or_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
-uint __ovld atomic_fetch_or_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
-int __ovld atomic_fetch_xor_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
-int __ovld atomic_fetch_xor_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
-uint __ovld atomic_fetch_xor_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
-uint __ovld atomic_fetch_xor_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
-int __ovld atomic_fetch_and_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
-int __ovld atomic_fetch_and_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
-uint __ovld atomic_fetch_and_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
-uint __ovld atomic_fetch_and_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
-int __ovld atomic_fetch_min_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
-int __ovld atomic_fetch_min_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
-uint __ovld atomic_fetch_min_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
-uint __ovld atomic_fetch_min_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
-int __ovld atomic_fetch_max_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
-int __ovld atomic_fetch_max_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
-uint __ovld atomic_fetch_max_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
-uint __ovld atomic_fetch_max_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-long __ovld atomic_fetch_add_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
-long __ovld atomic_fetch_add_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
-uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
-uintptr_t __ovld atomic_fetch_add_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
-ulong __ovld atomic_fetch_add_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
-ulong __ovld atomic_fetch_add_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
-long __ovld atomic_fetch_sub_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
-long __ovld atomic_fetch_sub_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
-ulong __ovld atomic_fetch_sub_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
-ulong __ovld atomic_fetch_sub_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
-uintptr_t __ovld atomic_fetch_sub_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
-uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
-long __ovld atomic_fetch_or_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
-long __ovld atomic_fetch_or_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
-ulong __ovld atomic_fetch_or_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
-ulong __ovld atomic_fetch_or_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
-uintptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
-uintptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
-intptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
-intptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
-long __ovld atomic_fetch_xor_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
-long __ovld atomic_fetch_xor_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
-ulong __ovld atomic_fetch_xor_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
-ulong __ovld atomic_fetch_xor_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
-uintptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
-uintptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
-intptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
-intptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
-long __ovld atomic_fetch_and_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
-long __ovld atomic_fetch_and_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
-ulong __ovld atomic_fetch_and_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
-ulong __ovld atomic_fetch_and_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
-uintptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
-uintptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
-intptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
-intptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
-long __ovld atomic_fetch_min_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
-long __ovld atomic_fetch_min_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
-ulong __ovld atomic_fetch_min_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
-ulong __ovld atomic_fetch_min_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
-uintptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
-uintptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
-intptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
-intptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
-long __ovld atomic_fetch_max_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
-long __ovld atomic_fetch_max_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
-ulong __ovld atomic_fetch_max_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
-ulong __ovld atomic_fetch_max_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
-uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
-uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
-#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
-
-// atomic_store()
-
-#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
-#if defined(__opencl_c_generic_address_space)
-void __ovld atomic_store(volatile atomic_int *object, int desired);
-void __ovld atomic_store(volatile atomic_uint *object, uint desired);
-void __ovld atomic_store(volatile atomic_float *object, float desired);
-
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-void __ovld atomic_store(volatile atomic_double *object, double desired);
-#endif //cl_khr_fp64
-void __ovld atomic_store(volatile atomic_long *object, long desired);
-void __ovld atomic_store(volatile atomic_ulong *object, ulong desired);
-#endif
-#endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
-void __ovld atomic_store(volatile __global atomic_int *object, int desired);
-void __ovld atomic_store(volatile __local atomic_int *object, int desired);
-void __ovld atomic_store(volatile __global atomic_uint *object, uint desired);
-void __ovld atomic_store(volatile __local atomic_uint *object, uint desired);
-void __ovld atomic_store(volatile __global atomic_float *object, float desired);
-void __ovld atomic_store(volatile __local atomic_float *object, float desired);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-void __ovld atomic_store(volatile __global atomic_double *object, double desired);
-void __ovld atomic_store(volatile __local atomic_double *object, double desired);
-#endif //cl_khr_fp64
-void __ovld atomic_store(volatile __global atomic_long *object, long desired);
-void __ovld atomic_store(volatile __local atomic_long *object, long desired);
-void __ovld atomic_store(volatile __global atomic_ulong *object, ulong desired);
-void __ovld atomic_store(volatile __local atomic_ulong *object, ulong desired);
-#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
-#endif
-
-#if defined(__opencl_c_atomic_scope_device)
-#if defined(__opencl_c_generic_address_space)
-void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order);
-void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order);
-void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order);
-#endif //cl_khr_fp64
-void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order);
-void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
-#endif
-#endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
-void __ovld atomic_store_explicit(volatile __global atomic_int *object, int desired, memory_order order);
-void __ovld atomic_store_explicit(volatile __local atomic_int *object, int desired, memory_order order);
-void __ovld atomic_store_explicit(volatile __global atomic_uint *object, uint desired, memory_order order);
-void __ovld atomic_store_explicit(volatile __local atomic_uint *object, uint desired, memory_order order);
-void __ovld atomic_store_explicit(volatile __global atomic_float *object, float desired, memory_order order);
-void __ovld atomic_store_explicit(volatile __local atomic_float *object, float desired, memory_order order);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-void __ovld atomic_store_explicit(volatile __global atomic_double *object, double desired, memory_order order);
-void __ovld atomic_store_explicit(volatile __local atomic_double *object, double desired, memory_order order);
-#endif
-void __ovld atomic_store_explicit(volatile __global atomic_long *object, long desired, memory_order order);
-void __ovld atomic_store_explicit(volatile __local atomic_long *object, long desired, memory_order order);
-void __ovld atomic_store_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order);
-void __ovld atomic_store_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order);
-#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
-#endif
-
-#if defined(__opencl_c_generic_address_space)
-void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
-void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
-void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope);
-#endif //cl_khr_fp64
-void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
-void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
-#endif
-#endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
-void __ovld atomic_store_explicit(volatile __global atomic_int *object, int desired, memory_order order, memory_scope scope);
-void __ovld atomic_store_explicit(volatile __local atomic_int *object, int desired, memory_order order, memory_scope scope);
-void __ovld atomic_store_explicit(volatile __global atomic_uint *object, uint desired, memory_order order, memory_scope scope);
-void __ovld atomic_store_explicit(volatile __local atomic_uint *object, uint desired, memory_order order, memory_scope scope);
-void __ovld atomic_store_explicit(volatile __global atomic_float *object, float desired, memory_order order, memory_scope scope);
-void __ovld atomic_store_explicit(volatile __local atomic_float *object, float desired, memory_order order, memory_scope scope);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-void __ovld atomic_store_explicit(volatile __global atomic_double *object, double desired, memory_order order, memory_scope scope);
-void __ovld atomic_store_explicit(volatile __local atomic_double *object, double desired, memory_order order, memory_scope scope);
-#endif //cl_khr_fp64
-void __ovld atomic_store_explicit(volatile __global atomic_long *object, long desired, memory_order order, memory_scope scope);
-void __ovld atomic_store_explicit(volatile __local atomic_long *object, long desired, memory_order order, memory_scope scope);
-void __ovld atomic_store_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
-void __ovld atomic_store_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
-#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
-
-// atomic_load()
-#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
-#if defined(__opencl_c_generic_address_space)
-int __ovld atomic_load(volatile atomic_int *object);
-uint __ovld atomic_load(volatile atomic_uint *object);
-float __ovld atomic_load(volatile atomic_float *object);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-double __ovld atomic_load(volatile atomic_double *object);
-#endif //cl_khr_fp64
-long __ovld atomic_load(volatile atomic_long *object);
-ulong __ovld atomic_load(volatile atomic_ulong *object);
-#endif
-#endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
-int __ovld atomic_load(volatile __global atomic_int *object);
-int __ovld atomic_load(volatile __local atomic_int *object);
-uint __ovld atomic_load(volatile __global atomic_uint *object);
-uint __ovld atomic_load(volatile __local atomic_uint *object);
-float __ovld atomic_load(volatile __global atomic_float *object);
-float __ovld atomic_load(volatile __local atomic_float *object);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-double __ovld atomic_load(volatile __global atomic_double *object);
-double __ovld atomic_load(volatile __local atomic_double *object);
-#endif //cl_khr_fp64
-long __ovld atomic_load(volatile __global atomic_long *object);
-long __ovld atomic_load(volatile __local atomic_long *object);
-ulong __ovld atomic_load(volatile __global atomic_ulong *object);
-ulong __ovld atomic_load(volatile __local atomic_ulong *object);
-#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
-#endif
-
-#if defined(__opencl_c_atomic_scope_device)
-#if defined(__opencl_c_generic_address_space)
-int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order);
-uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order);
-float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order);
-#endif //cl_khr_fp64
-long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order);
-ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order);
-#endif
-#endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
-int __ovld atomic_load_explicit(volatile __global atomic_int *object, memory_order order);
-int __ovld atomic_load_explicit(volatile __local atomic_int *object, memory_order order);
-uint __ovld atomic_load_explicit(volatile __global atomic_uint *object, memory_order order);
-uint __ovld atomic_load_explicit(volatile __local atomic_uint *object, memory_order order);
-float __ovld atomic_load_explicit(volatile __global atomic_float *object, memory_order order);
-float __ovld atomic_load_explicit(volatile __local atomic_float *object, memory_order order);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-double __ovld atomic_load_explicit(volatile __global atomic_double *object, memory_order order);
-double __ovld atomic_load_explicit(volatile __local atomic_double *object, memory_order order);
-#endif //cl_khr_fp64
-long __ovld atomic_load_explicit(volatile __global atomic_long *object, memory_order order);
-long __ovld atomic_load_explicit(volatile __local atomic_long *object, memory_order order);
-ulong __ovld atomic_load_explicit(volatile __global atomic_ulong *object, memory_order order);
-ulong __ovld atomic_load_explicit(volatile __local atomic_ulong *object, memory_order order);
-#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
-#endif
-
-#if defined(__opencl_c_generic_address_space)
-int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order, memory_scope scope);
-uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order, memory_scope scope);
-float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order, memory_scope scope);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order, memory_scope scope);
-#endif //cl_khr_fp64
-long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order, memory_scope scope);
-ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order, memory_scope scope);
-#endif
-#endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
-int __ovld atomic_load_explicit(volatile __global atomic_int *object, memory_order order, memory_scope scope);
-int __ovld atomic_load_explicit(volatile __local atomic_int *object, memory_order order, memory_scope scope);
-uint __ovld atomic_load_explicit(volatile __global atomic_uint *object, memory_order order, memory_scope scope);
-uint __ovld atomic_load_explicit(volatile __local atomic_uint *object, memory_order order, memory_scope scope);
-float __ovld atomic_load_explicit(volatile __global atomic_float *object, memory_order order, memory_scope scope);
-float __ovld atomic_load_explicit(volatile __local atomic_float *object, memory_order order, memory_scope scope);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-double __ovld atomic_load_explicit(volatile __global atomic_double *object, memory_order order, memory_scope scope);
-double __ovld atomic_load_explicit(volatile __local atomic_double *object, memory_order order, memory_scope scope);
-#endif
-long __ovld atomic_load_explicit(volatile __global atomic_long *object, memory_order order, memory_scope scope);
-long __ovld atomic_load_explicit(volatile __local atomic_long *object, memory_order order, memory_scope scope);
-ulong __ovld atomic_load_explicit(volatile __global atomic_ulong *object, memory_order order, memory_scope scope);
-ulong __ovld atomic_load_explicit(volatile __local atomic_ulong *object, memory_order order, memory_scope scope);
-#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
-
-// atomic_exchange()
-
-#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
-#if defined(__opencl_c_generic_address_space)
-int __ovld atomic_exchange(volatile atomic_int *object, int desired);
-uint __ovld atomic_exchange(volatile atomic_uint *object, uint desired);
-float __ovld atomic_exchange(volatile atomic_float *object, float desired);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-double __ovld atomic_exchange(volatile atomic_double *object, double desired);
-#endif //cl_khr_fp64
-long __ovld atomic_exchange(volatile atomic_long *object, long desired);
-ulong __ovld atomic_exchange(volatile atomic_ulong *object, ulong desired);
-#endif
-#endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
-int __ovld atomic_exchange(volatile __global atomic_int *object, int desired);
-int __ovld atomic_exchange(volatile __local atomic_int *object, int desired);
-uint __ovld atomic_exchange(volatile __global atomic_uint *object, uint desired);
-uint __ovld atomic_exchange(volatile __local atomic_uint *object, uint desired);
-float __ovld atomic_exchange(volatile __global atomic_float *object, float desired);
-float __ovld atomic_exchange(volatile __local atomic_float *object, float desired);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-double __ovld atomic_exchange(volatile __global atomic_double *object, double desired);
-double __ovld atomic_exchange(volatile __local atomic_double *object, double desired);
-#endif //cl_khr_fp64
-long __ovld atomic_exchange(volatile __global atomic_long *object, long desired);
-long __ovld atomic_exchange(volatile __local atomic_long *object, long desired);
-ulong __ovld atomic_exchange(volatile __global atomic_ulong *object, ulong desired);
-ulong __ovld atomic_exchange(volatile __local atomic_ulong *object, ulong desired);
-#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
-#endif
-
-#if defined(__opencl_c_atomic_scope_device)
-#if defined(__opencl_c_generic_address_space)
-int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order);
-uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order);
-float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order);
-#endif //cl_khr_fp64
-long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order);
-ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
-#endif
-#endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
-int __ovld atomic_exchange_explicit(volatile __global atomic_int *object, int desired, memory_order order);
-int __ovld atomic_exchange_explicit(volatile __local atomic_int *object, int desired, memory_order order);
-uint __ovld atomic_exchange_explicit(volatile __global atomic_uint *object, uint desired, memory_order order);
-uint __ovld atomic_exchange_explicit(volatile __local atomic_uint *object, uint desired, memory_order order);
-float __ovld atomic_exchange_explicit(volatile __global atomic_float *object, float desired, memory_order order);
-float __ovld atomic_exchange_explicit(volatile __local atomic_float *object, float desired, memory_order order);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-double __ovld atomic_exchange_explicit(volatile __global atomic_double *object, double desired, memory_order order);
-double __ovld atomic_exchange_explicit(volatile __local atomic_double *object, double desired, memory_order order);
-#endif //cl_khr_fp64
-long __ovld atomic_exchange_explicit(volatile __global atomic_long *object, long desired, memory_order order);
-long __ovld atomic_exchange_explicit(volatile __local atomic_long *object, long desired, memory_order order);
-ulong __ovld atomic_exchange_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order);
-ulong __ovld atomic_exchange_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order);
-#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)wi
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
-#endif
-
-#if defined(__opencl_c_generic_address_space)
-int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
-uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
-float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope);
-#endif //cl_khr_fp64
-long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
-ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
-#endif
-#endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
-int __ovld atomic_exchange_explicit(volatile __global atomic_int *object, int desired, memory_order order, memory_scope scope);
-int __ovld atomic_exchange_explicit(volatile __local atomic_int *object, int desired, memory_order order, memory_scope scope);
-uint __ovld atomic_exchange_explicit(volatile __global atomic_uint *object, uint desired, memory_order order, memory_scope scope);
-uint __ovld atomic_exchange_explicit(volatile __local atomic_uint *object, uint desired, memory_order order, memory_scope scope);
-float __ovld atomic_exchange_explicit(volatile __global atomic_float *object, float desired, memory_order order, memory_scope scope);
-float __ovld atomic_exchange_explicit(volatile __local atomic_float *object, float desired, memory_order order, memory_scope scope);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-double __ovld atomic_exchange_explicit(volatile __global atomic_double *object, double desired, memory_order order, memory_scope scope);
-double __ovld atomic_exchange_explicit(volatile __local atomic_double *object, double desired, memory_order order, memory_scope scope);
-#endif //cl_khr_fp64
-long __ovld atomic_exchange_explicit(volatile __global atomic_long *object, long desired, memory_order order, memory_scope scope);
-long __ovld atomic_exchange_explicit(volatile __local atomic_long *object, long desired, memory_order order, memory_scope scope);
-ulong __ovld atomic_exchange_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
-ulong __ovld atomic_exchange_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
-#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
-
-// atomic_compare_exchange_strong() and atomic_compare_exchange_weak()
-#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
-#if defined(__opencl_c_generic_address_space)
-bool __ovld atomic_compare_exchange_strong(volatile atomic_int *object, int *expected, int desired);
-bool __ovld atomic_compare_exchange_strong(volatile atomic_uint *object, uint *expected, uint desired);
-bool __ovld atomic_compare_exchange_weak(volatile atomic_int *object, int *expected, int desired);
-bool __ovld atomic_compare_exchange_weak(volatile atomic_uint *object, uint *expected, uint desired);
-bool __ovld atomic_compare_exchange_strong(volatile atomic_float *object, float *expected, float desired);
-bool __ovld atomic_compare_exchange_weak(volatile atomic_float *object, float *expected, float desired);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-bool __ovld atomic_compare_exchange_strong(volatile atomic_double *object, double *expected, double desired);
-bool __ovld atomic_compare_exchange_weak(volatile atomic_double *object, double *expected, double desired);
-#endif //cl_khr_fp64
-bool __ovld atomic_compare_exchange_strong(volatile atomic_long *object, long *expected, long desired);
-bool __ovld atomic_compare_exchange_weak(volatile atomic_long *object, long *expected, long desired);
-bool __ovld atomic_compare_exchange_strong(volatile atomic_ulong *object, ulong *expected, ulong desired);
-bool __ovld atomic_compare_exchange_weak(volatile atomic_ulong *object, ulong *expected, ulong desired);
-#endif
-#endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
-bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *object, __global int *expected, int desired);
-bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *object, __local int *expected, int desired);
-bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *object, __private int *expected, int desired);
-bool __ovld atomic_compare_exchange_strong(volatile __local atomic_int *object, __global int *expected, int desired);
-bool __ovld atomic_compare_exchange_strong(volatile __local atomic_int *object, __local int *expected, int desired);
-bool __ovld atomic_compare_exchange_strong(volatile __local atomic_int *object, __private int *expected, int desired);
-bool __ovld atomic_compare_exchange_strong(volatile __global atomic_uint *object, __global uint *expected, uint desired);
-bool __ovld atomic_compare_exchange_strong(volatile __global atomic_uint *object, __local uint *expected, uint desired);
-bool __ovld atomic_compare_exchange_strong(volatile __global atomic_uint *object, __private uint *expected, uint desired);
-bool __ovld atomic_compare_exchange_strong(volatile __local atomic_uint *object, __global uint *expected, uint desired);
-bool __ovld atomic_compare_exchange_strong(volatile __local atomic_uint *object, __local uint *expected, uint desired);
-bool __ovld atomic_compare_exchange_strong(volatile __local atomic_uint *object, __private uint *expected, uint desired);
-bool __ovld atomic_compare_exchange_strong(volatile __global atomic_float *object, __global float *expected, float desired);
-bool __ovld atomic_compare_exchange_strong(volatile __global atomic_float *object, __local float *expected, float desired);
-bool __ovld atomic_compare_exchange_strong(volatile __global atomic_float *object, __private float *expected, float desired);
-bool __ovld atomic_compare_exchange_strong(volatile __local atomic_float *object, __global float *expected, float desired);
-bool __ovld atomic_compare_exchange_strong(volatile __local atomic_float *object, __local float *expected, float desired);
-bool __ovld atomic_compare_exchange_strong(volatile __local atomic_float *object, __private float *expected, float desired);
-bool __ovld atomic_compare_exchange_weak(volatile __global atomic_int *object, __global int *expected, int desired);
-bool __ovld atomic_compare_exchange_weak(volatile __global atomic_int *object, __local int *expected, int desired);
-bool __ovld atomic_compare_exchange_weak(volatile __global atomic_int *object, __private int *expected, int desired);
-bool __ovld atomic_compare_exchange_weak(volatile __local atomic_int *object, __global int *expected, int desired);
-bool __ovld atomic_compare_exchange_weak(volatile __local atomic_int *object, __local int *expected, int desired);
-bool __ovld atomic_compare_exchange_weak(volatile __local atomic_int *object, __private int *expected, int desired);
-bool __ovld atomic_compare_exchange_weak(volatile __global atomic_uint *object, __global uint *expected, uint desired);
-bool __ovld atomic_compare_exchange_weak(volatile __global atomic_uint *object, __local uint *expected, uint desired);
-bool __ovld atomic_compare_exchange_weak(volatile __global atomic_uint *object, __private uint *expected, uint desired);
-bool __ovld atomic_compare_exchange_weak(volatile __local atomic_uint *object, __global uint *expected, uint desired);
-bool __ovld atomic_compare_exchange_weak(volatile __local atomic_uint *object, __local uint *expected, uint desired);
-bool __ovld atomic_compare_exchange_weak(volatile __local atomic_uint *object, __private uint *expected, uint desired);
-bool __ovld atomic_compare_exchange_weak(volatile __global atomic_float *object, __global float *expected, float desired);
-bool __ovld atomic_compare_exchange_weak(volatile __global atomic_float *object, __local float *expected, float desired);
-bool __ovld atomic_compare_exchange_weak(volatile __global atomic_float *object, __private float *expected, float desired);
-bool __ovld atomic_compare_exchange_weak(volatile __local atomic_float *object, __global float *expected, float desired);
-bool __ovld atomic_compare_exchange_weak(volatile __local atomic_float *object, __local float *expected, float desired);
-bool __ovld atomic_compare_exchange_weak(volatile __local atomic_float *object, __private float *expected, float desired);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-bool __ovld atomic_compare_exchange_strong(volatile __global atomic_double *object, __global double *expected, double desired);
-bool __ovld atomic_compare_exchange_strong(volatile __global atomic_double *object, __local double *expected, double desired);
-bool __ovld atomic_compare_exchange_strong(volatile __global atomic_double *object, __private double *expected, double desired);
-bool __ovld atomic_compare_exchange_strong(volatile __local atomic_double *object, __global double *expected, double desired);
-bool __ovld atomic_compare_exchange_strong(volatile __local atomic_double *object, __local double *expected, double desired);
-bool __ovld atomic_compare_exchange_strong(volatile __local atomic_double *object, __private double *expected, double desired);
-bool __ovld atomic_compare_exchange_weak(volatile __global atomic_double *object, __global double *expected, double desired);
-bool __ovld atomic_compare_exchange_weak(volatile __global atomic_double *object, __local double *expected, double desired);
-bool __ovld atomic_compare_exchange_weak(volatile __global atomic_double *object, __private double *expected, double desired);
-bool __ovld atomic_compare_exchange_weak(volatile __local atomic_double *object, __global double *expected, double desired);
-bool __ovld atomic_compare_exchange_weak(volatile __local atomic_double *object, __local double *expected, double desired);
-bool __ovld atomic_compare_exchange_weak(volatile __local atomic_double *object, __private double *expected, double desired);
-#endif //cl_khr_fp64
-bool __ovld atomic_compare_exchange_strong(volatile __global atomic_long *object, __global long *expected, long desired);
-bool __ovld atomic_compare_exchange_strong(volatile __global atomic_long *object, __local long *expected, long desired);
-bool __ovld atomic_compare_exchange_strong(volatile __global atomic_long *object, __private long *expected, long desired);
-bool __ovld atomic_compare_exchange_strong(volatile __local atomic_long *object, __global long *expected, long desired);
-bool __ovld atomic_compare_exchange_strong(volatile __local atomic_long *object, __local long *expected, long desired);
-bool __ovld atomic_compare_exchange_strong(volatile __local atomic_long *object, __private long *expected, long desired);
-bool __ovld atomic_compare_exchange_strong(volatile __global atomic_ulong *object, __global ulong *expected, ulong desired);
-bool __ovld atomic_compare_exchange_strong(volatile __global atomic_ulong *object, __local ulong *expected, ulong desired);
-bool __ovld atomic_compare_exchange_strong(volatile __global atomic_ulong *object, __private ulong *expected, ulong desired);
-bool __ovld atomic_compare_exchange_strong(volatile __local atomic_ulong *object, __global ulong *expected, ulong desired);
-bool __ovld atomic_compare_exchange_strong(volatile __local atomic_ulong *object, __local ulong *expected, ulong desired);
-bool __ovld atomic_compare_exchange_strong(volatile __local atomic_ulong *object, __private ulong *expected, ulong desired);
-bool __ovld atomic_compare_exchange_weak(volatile __global atomic_long *object, __global long *expected, long desired);
-bool __ovld atomic_compare_exchange_weak(volatile __global atomic_long *object, __local long *expected, long desired);
-bool __ovld atomic_compare_exchange_weak(volatile __global atomic_long *object, __private long *expected, long desired);
-bool __ovld atomic_compare_exchange_weak(volatile __local atomic_long *object, __global long *expected, long desired);
-bool __ovld atomic_compare_exchange_weak(volatile __local atomic_long *object, __local long *expected, long desired);
-bool __ovld atomic_compare_exchange_weak(volatile __local atomic_long *object, __private long *expected, long desired);
-bool __ovld atomic_compare_exchange_weak(volatile __global atomic_ulong *object, __global ulong *expected, ulong desired);
-bool __ovld atomic_compare_exchange_weak(volatile __global atomic_ulong *object, __local ulong *expected, ulong desired);
-bool __ovld atomic_compare_exchange_weak(volatile __global atomic_ulong *object, __private ulong *expected, ulong desired);
-bool __ovld atomic_compare_exchange_weak(volatile __local atomic_ulong *object, __global ulong *expected, ulong desired);
-bool __ovld atomic_compare_exchange_weak(volatile __local atomic_ulong *object, __local ulong *expected, ulong desired);
-bool __ovld atomic_compare_exchange_weak(volatile __local atomic_ulong *object, __private ulong *expected, ulong desired);
-#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
-#endif
-
-#if defined(__opencl_c_generic_address_space)
-bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
-                                                                                 int desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected,
-                                                                                 int desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected,
-                                                                                 float desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected,
-                                                                                 float desired, memory_order success, memory_order failure);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected,
-                                                                                 double desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected,
-                                                                                 double desired, memory_order success, memory_order failure);
-#endif //cl_khr_fp64
-bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected,
-                                                                                 long desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected,
-                                                                                 long desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure);
-#endif
-#endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __global int *expected,
-                                                                                 int desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __local int *expected,
-                                                                                 int desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __private int *expected,
-                                                                                 int desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __global int *expected,
-                                                                                 int desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __local int *expected,
-                                                                                 int desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __private int *expected,
-                                                                                 int desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __global uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __local uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __private uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __global uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __local uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __private uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __global float *expected,
-                                                                                 float desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __local float *expected,
-                                                                                 float desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __private float *expected,
-                                                                                 float desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __global float *expected,
-                                                                                 float desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __local float *expected,
-                                                                                 float desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __private float *expected,
-                                                                                 float desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __global int *expected,
-                                                                                 int desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __local int *expected,
-                                                                                 int desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __private int *expected,
-                                                                                 int desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __global int *expected,
-                                                                                 int desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __local int *expected,
-                                                                                 int desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __private int *expected,
-                                                                                 int desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __global uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __local uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __private uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __global uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __local uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __private uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __global float *expected,
-                                                                                 float desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __local float *expected,
-                                                                                 float desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __private float *expected,
-                                                                                 float desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __global float *expected,
-                                                                                 float desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __local float *expected,
-                                                                                 float desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __private float *expected,
-                                                                                 float desired, memory_order success, memory_order failure);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __global double *expected,
-                                                                                 double desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __local double *expected,
-                                                                                 double desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __private double *expected,
-                                                                                 double desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __global double *expected,
-                                                                                 double desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __local double *expected,
-                                                                                 double desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __private double *expected,
-                                                                                 double desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __global double *expected,
-                                                                                 double desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __local double *expected,
-                                                                                 double desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __private double *expected,
-                                                                                 double desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __global double *expected,
-                                                                                 double desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __local double *expected,
-                                                                                 double desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __private double *expected,
-                                                                                 double desired, memory_order success, memory_order failure);
-#endif //cl_khr_fp64
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __global long *expected,
-                                                                                 long desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __local long *expected,
-                                                                                 long desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __private long *expected,
-                                                                                 long desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __global long *expected,
-                                                                                 long desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __local long *expected,
-                                                                                 long desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __private long *expected,
-                                                                                 long desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __global ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __local ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __private ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __global ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __local ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __private ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __global long *expected,
-                                                                                 long desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __local long *expected,
-                                                                                 long desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __private long *expected,
-                                                                                 long desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __global long *expected,
-                                                                                 long desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __local long *expected,
-                                                                                 long desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __private long *expected,
-                                                                                 long desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __global ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __local ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __private ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __global ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __local ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __private ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure);
-#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
-
-#if defined(__opencl_c_generic_address_space)
-bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
-                                                                                 int desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected,
-                                                                                 int desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected,
-                                                                                 float desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected,
-                                                                                 float desired, memory_order success, memory_order failure, memory_scope scope);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected,
-                                                                                 double desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected,
-                                                                                 double desired, memory_order success, memory_order failure, memory_scope scope);
-#endif //cl_khr_fp64
-bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected,
-                                                                                 long desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected,
-                                                                                 long desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure, memory_scope scope);
-#endif
-#endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __global int *expected,
-                                                                                 int desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __local int *expected,
-                                                                                 int desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __private int *expected,
-                                                                                 int desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __global int *expected,
-                                                                                 int desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __local int *expected,
-                                                                                 int desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __private int *expected,
-                                                                                 int desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __global uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __local uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __private uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __global uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __local uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __private uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __global float *expected,
-                                                                                 float desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __local float *expected,
-                                                                                 float desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __private float *expected,
-                                                                                 float desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __global float *expected,
-                                                                                 float desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __local float *expected,
-                                                                                 float desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __private float *expected,
-                                                                                 float desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __global int *expected,
-                                                                                 int desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __local int *expected,
-                                                                                 int desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __private int *expected,
-                                                                                 int desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __global int *expected,
-                                                                                 int desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __local int *expected,
-                                                                                 int desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __private int *expected,
-                                                                                 int desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __global uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __local uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __private uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __global uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __local uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __private uint *expected,
-                                                                                 uint desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __global float *expected,
-                                                                                 float desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __local float *expected,
-                                                                                 float desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __private float *expected,
-                                                                                 float desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __global float *expected,
-                                                                                 float desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __local float *expected,
-                                                                                 float desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __private float *expected,
-                                                                                 float desired, memory_order success, memory_order failure, memory_scope scope);
-#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#ifdef cl_khr_fp64
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __global double *expected,
-                                                                                 double desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __local double *expected,
-                                                                                 double desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __private double *expected,
-                                                                                 double desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __global double *expected,
-                                                                                 double desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __local double *expected,
-                                                                                 double desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __private double *expected,
-                                                                                 double desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __global double *expected,
-                                                                                 double desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __local double *expected,
-                                                                                 double desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __private double *expected,
-                                                                                 double desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __global double *expected,
-                                                                                 double desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __local double *expected,
-                                                                                 double desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __private double *expected,
-                                                                                 double desired, memory_order success, memory_order failure, memory_scope scope);
-#endif //cl_khr_fp64
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __global long *expected,
-                                                                                 long desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __local long *expected,
-                                                                                 long desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __private long *expected,
-                                                                                 long desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __global long *expected,
-                                                                                 long desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __local long *expected,
-                                                                                 long desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __private long *expected,
-                                                                                 long desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __global ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __local ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __private ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __global ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __local ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __private ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __global long *expected,
-                                                                                 long desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __local long *expected,
-                                                                                 long desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __private long *expected,
-                                                                                 long desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __global long *expected,
-                                                                                 long desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __local long *expected,
-                                                                                 long desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __private long *expected,
-                                                                                 long desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __global ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __local ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __private ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __global ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __local ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure, memory_scope scope);
-bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __private ulong *expected,
-                                                                                 ulong desired, memory_order success, memory_order failure, memory_scope scope);
-#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
-
-// atomic_flag_test_and_set() and atomic_flag_clear()
-#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
-#if defined(__opencl_c_generic_address_space)
-bool __ovld atomic_flag_test_and_set(volatile atomic_flag *object);
-void __ovld atomic_flag_clear(volatile atomic_flag *object);
-#endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
-bool __ovld atomic_flag_test_and_set(volatile __global atomic_flag *object);
-bool __ovld atomic_flag_test_and_set(volatile __local atomic_flag *object);
-void __ovld atomic_flag_clear(volatile __global atomic_flag *object);
-void __ovld atomic_flag_clear(volatile __local atomic_flag *object);
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
-#endif
-
-#if defined(__opencl_c_atomic_scope_device)
-#if defined(__opencl_c_generic_address_space)
-bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order);
-void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order);
-#endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
-bool __ovld atomic_flag_test_and_set_explicit(volatile __global atomic_flag *object, memory_order order);
-bool __ovld atomic_flag_test_and_set_explicit(volatile __local atomic_flag *object, memory_order order);
-void __ovld atomic_flag_clear_explicit(volatile __global atomic_flag *object, memory_order order);
-void __ovld atomic_flag_clear_explicit(volatile __local atomic_flag *object, memory_order order);
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
-#endif
-
-#if defined(__opencl_c_generic_address_space)
-bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
-void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
-#endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
-bool __ovld atomic_flag_test_and_set_explicit(volatile __global atomic_flag *object, memory_order order, memory_scope scope);
-bool __ovld atomic_flag_test_and_set_explicit(volatile __local atomic_flag *object, memory_order order, memory_scope scope);
-void __ovld atomic_flag_clear_explicit(volatile __global atomic_flag *object, memory_order order, memory_scope scope);
-void __ovld atomic_flag_clear_explicit(volatile __local atomic_flag *object, memory_order order, memory_scope scope);
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-// OpenCL v1.1 s6.11.12, v1.2 s6.12.12, v2.0 s6.13.12 - Miscellaneous Vector Functions
-
-/**
- * The shuffle and shuffle2 built-in functions construct
- * a permutation of elements from one or two input
- * vectors respectively that are of the same type,
- * returning a vector with the same element type as the
- * input and length that is the same as the shuffle mask.
- * The size of each element in the mask must match the
- * size of each element in the result. For shuffle, only
- * the ilogb(2m-1) least significant bits of each mask
- * element are considered. For shuffle2, only the
- * ilogb(2m-1)+1 least significant bits of each mask
- * element are considered. Other bits in the mask shall
- * be ignored.
- * The elements of the input vectors are numbered from
- * left to right across one or both of the vectors. For this
- * purpose, the number of elements in a vector is given
- * by vec_step(gentypem). The shuffle mask operand
- * specifies, for each element of the result vector, which
- * element of the one or two input vectors the result
- * element gets.
- * Examples:
- * uint4 mask = (uint4)(3, 2,
- * 1, 0);
- * float4 a;
- * float4 r = shuffle(a, mask);
- * // r.s0123 = a.wzyx
- * uint8 mask = (uint8)(0, 1, 2, 3,
- * 4, 5, 6, 7);
- * float4 a, b;
- * float8 r = shuffle2(a, b, mask);
- * // r.s0123 = a.xyzw
- * // r.s4567 = b.xyzw
- * uint4 mask;
- * float8 a;
- * float4 b;
- * b = shuffle(a, mask);
- * Examples that are not valid are:
- * uint8 mask;
- * short16 a;
- * short8 b;
- * b = shuffle(a, mask); <- not valid
- */
-char2 __ovld __cnfn shuffle(char2 x, uchar2 mask);
-char2 __ovld __cnfn shuffle(char4 x, uchar2 mask);
-char2 __ovld __cnfn shuffle(char8 x, uchar2 mask);
-char2 __ovld __cnfn shuffle(char16 x, uchar2 mask);
-
-uchar2 __ovld __cnfn shuffle(uchar2 x, uchar2 mask);
-uchar2 __ovld __cnfn shuffle(uchar4 x, uchar2 mask);
-uchar2 __ovld __cnfn shuffle(uchar8 x, uchar2 mask);
-uchar2 __ovld __cnfn shuffle(uchar16 x, uchar2 mask);
-
-short2 __ovld __cnfn shuffle(short2 x, ushort2 mask);
-short2 __ovld __cnfn shuffle(short4 x, ushort2 mask);
-short2 __ovld __cnfn shuffle(short8 x, ushort2 mask);
-short2 __ovld __cnfn shuffle(short16 x, ushort2 mask);
-
-ushort2 __ovld __cnfn shuffle(ushort2 x, ushort2 mask);
-ushort2 __ovld __cnfn shuffle(ushort4 x, ushort2 mask);
-ushort2 __ovld __cnfn shuffle(ushort8 x, ushort2 mask);
-ushort2 __ovld __cnfn shuffle(ushort16 x, ushort2 mask);
-
-int2 __ovld __cnfn shuffle(int2 x, uint2 mask);
-int2 __ovld __cnfn shuffle(int4 x, uint2 mask);
-int2 __ovld __cnfn shuffle(int8 x, uint2 mask);
-int2 __ovld __cnfn shuffle(int16 x, uint2 mask);
-
-uint2 __ovld __cnfn shuffle(uint2 x, uint2 mask);
-uint2 __ovld __cnfn shuffle(uint4 x, uint2 mask);
-uint2 __ovld __cnfn shuffle(uint8 x, uint2 mask);
-uint2 __ovld __cnfn shuffle(uint16 x, uint2 mask);
-
-long2 __ovld __cnfn shuffle(long2 x, ulong2 mask);
-long2 __ovld __cnfn shuffle(long4 x, ulong2 mask);
-long2 __ovld __cnfn shuffle(long8 x, ulong2 mask);
-long2 __ovld __cnfn shuffle(long16 x, ulong2 mask);
-
-ulong2 __ovld __cnfn shuffle(ulong2 x, ulong2 mask);
-ulong2 __ovld __cnfn shuffle(ulong4 x, ulong2 mask);
-ulong2 __ovld __cnfn shuffle(ulong8 x, ulong2 mask);
-ulong2 __ovld __cnfn shuffle(ulong16 x, ulong2 mask);
-
-float2 __ovld __cnfn shuffle(float2 x, uint2 mask);
-float2 __ovld __cnfn shuffle(float4 x, uint2 mask);
-float2 __ovld __cnfn shuffle(float8 x, uint2 mask);
-float2 __ovld __cnfn shuffle(float16 x, uint2 mask);
-
-char4 __ovld __cnfn shuffle(char2 x, uchar4 mask);
-char4 __ovld __cnfn shuffle(char4 x, uchar4 mask);
-char4 __ovld __cnfn shuffle(char8 x, uchar4 mask);
-char4 __ovld __cnfn shuffle(char16 x, uchar4 mask);
-
-uchar4 __ovld __cnfn shuffle(uchar2 x, uchar4 mask);
-uchar4 __ovld __cnfn shuffle(uchar4 x, uchar4 mask);
-uchar4 __ovld __cnfn shuffle(uchar8 x, uchar4 mask);
-uchar4 __ovld __cnfn shuffle(uchar16 x, uchar4 mask);
-
-short4 __ovld __cnfn shuffle(short2 x, ushort4 mask);
-short4 __ovld __cnfn shuffle(short4 x, ushort4 mask);
-short4 __ovld __cnfn shuffle(short8 x, ushort4 mask);
-short4 __ovld __cnfn shuffle(short16 x, ushort4 mask);
-
-ushort4 __ovld __cnfn shuffle(ushort2 x, ushort4 mask);
-ushort4 __ovld __cnfn shuffle(ushort4 x, ushort4 mask);
-ushort4 __ovld __cnfn shuffle(ushort8 x, ushort4 mask);
-ushort4 __ovld __cnfn shuffle(ushort16 x, ushort4 mask);
-
-int4 __ovld __cnfn shuffle(int2 x, uint4 mask);
-int4 __ovld __cnfn shuffle(int4 x, uint4 mask);
-int4 __ovld __cnfn shuffle(int8 x, uint4 mask);
-int4 __ovld __cnfn shuffle(int16 x, uint4 mask);
-
-uint4 __ovld __cnfn shuffle(uint2 x, uint4 mask);
-uint4 __ovld __cnfn shuffle(uint4 x, uint4 mask);
-uint4 __ovld __cnfn shuffle(uint8 x, uint4 mask);
-uint4 __ovld __cnfn shuffle(uint16 x, uint4 mask);
-
-long4 __ovld __cnfn shuffle(long2 x, ulong4 mask);
-long4 __ovld __cnfn shuffle(long4 x, ulong4 mask);
-long4 __ovld __cnfn shuffle(long8 x, ulong4 mask);
-long4 __ovld __cnfn shuffle(long16 x, ulong4 mask);
-
-ulong4 __ovld __cnfn shuffle(ulong2 x, ulong4 mask);
-ulong4 __ovld __cnfn shuffle(ulong4 x, ulong4 mask);
-ulong4 __ovld __cnfn shuffle(ulong8 x, ulong4 mask);
-ulong4 __ovld __cnfn shuffle(ulong16 x, ulong4 mask);
-
-float4 __ovld __cnfn shuffle(float2 x, uint4 mask);
-float4 __ovld __cnfn shuffle(float4 x, uint4 mask);
-float4 __ovld __cnfn shuffle(float8 x, uint4 mask);
-float4 __ovld __cnfn shuffle(float16 x, uint4 mask);
-
-char8 __ovld __cnfn shuffle(char2 x, uchar8 mask);
-char8 __ovld __cnfn shuffle(char4 x, uchar8 mask);
-char8 __ovld __cnfn shuffle(char8 x, uchar8 mask);
-char8 __ovld __cnfn shuffle(char16 x, uchar8 mask);
-
-uchar8 __ovld __cnfn shuffle(uchar2 x, uchar8 mask);
-uchar8 __ovld __cnfn shuffle(uchar4 x, uchar8 mask);
-uchar8 __ovld __cnfn shuffle(uchar8 x, uchar8 mask);
-uchar8 __ovld __cnfn shuffle(uchar16 x, uchar8 mask);
-
-short8 __ovld __cnfn shuffle(short2 x, ushort8 mask);
-short8 __ovld __cnfn shuffle(short4 x, ushort8 mask);
-short8 __ovld __cnfn shuffle(short8 x, ushort8 mask);
-short8 __ovld __cnfn shuffle(short16 x, ushort8 mask);
-
-ushort8 __ovld __cnfn shuffle(ushort2 x, ushort8 mask);
-ushort8 __ovld __cnfn shuffle(ushort4 x, ushort8 mask);
-ushort8 __ovld __cnfn shuffle(ushort8 x, ushort8 mask);
-ushort8 __ovld __cnfn shuffle(ushort16 x, ushort8 mask);
-
-int8 __ovld __cnfn shuffle(int2 x, uint8 mask);
-int8 __ovld __cnfn shuffle(int4 x, uint8 mask);
-int8 __ovld __cnfn shuffle(int8 x, uint8 mask);
-int8 __ovld __cnfn shuffle(int16 x, uint8 mask);
-
-uint8 __ovld __cnfn shuffle(uint2 x, uint8 mask);
-uint8 __ovld __cnfn shuffle(uint4 x, uint8 mask);
-uint8 __ovld __cnfn shuffle(uint8 x, uint8 mask);
-uint8 __ovld __cnfn shuffle(uint16 x, uint8 mask);
-
-long8 __ovld __cnfn shuffle(long2 x, ulong8 mask);
-long8 __ovld __cnfn shuffle(long4 x, ulong8 mask);
-long8 __ovld __cnfn shuffle(long8 x, ulong8 mask);
-long8 __ovld __cnfn shuffle(long16 x, ulong8 mask);
-
-ulong8 __ovld __cnfn shuffle(ulong2 x, ulong8 mask);
-ulong8 __ovld __cnfn shuffle(ulong4 x, ulong8 mask);
-ulong8 __ovld __cnfn shuffle(ulong8 x, ulong8 mask);
-ulong8 __ovld __cnfn shuffle(ulong16 x, ulong8 mask);
-
-float8 __ovld __cnfn shuffle(float2 x, uint8 mask);
-float8 __ovld __cnfn shuffle(float4 x, uint8 mask);
-float8 __ovld __cnfn shuffle(float8 x, uint8 mask);
-float8 __ovld __cnfn shuffle(float16 x, uint8 mask);
-
-char16 __ovld __cnfn shuffle(char2 x, uchar16 mask);
-char16 __ovld __cnfn shuffle(char4 x, uchar16 mask);
-char16 __ovld __cnfn shuffle(char8 x, uchar16 mask);
-char16 __ovld __cnfn shuffle(char16 x, uchar16 mask);
-
-uchar16 __ovld __cnfn shuffle(uchar2 x, uchar16 mask);
-uchar16 __ovld __cnfn shuffle(uchar4 x, uchar16 mask);
-uchar16 __ovld __cnfn shuffle(uchar8 x, uchar16 mask);
-uchar16 __ovld __cnfn shuffle(uchar16 x, uchar16 mask);
-
-short16 __ovld __cnfn shuffle(short2 x, ushort16 mask);
-short16 __ovld __cnfn shuffle(short4 x, ushort16 mask);
-short16 __ovld __cnfn shuffle(short8 x, ushort16 mask);
-short16 __ovld __cnfn shuffle(short16 x, ushort16 mask);
-
-ushort16 __ovld __cnfn shuffle(ushort2 x, ushort16 mask);
-ushort16 __ovld __cnfn shuffle(ushort4 x, ushort16 mask);
-ushort16 __ovld __cnfn shuffle(ushort8 x, ushort16 mask);
-ushort16 __ovld __cnfn shuffle(ushort16 x, ushort16 mask);
-
-int16 __ovld __cnfn shuffle(int2 x, uint16 mask);
-int16 __ovld __cnfn shuffle(int4 x, uint16 mask);
-int16 __ovld __cnfn shuffle(int8 x, uint16 mask);
-int16 __ovld __cnfn shuffle(int16 x, uint16 mask);
-
-uint16 __ovld __cnfn shuffle(uint2 x, uint16 mask);
-uint16 __ovld __cnfn shuffle(uint4 x, uint16 mask);
-uint16 __ovld __cnfn shuffle(uint8 x, uint16 mask);
-uint16 __ovld __cnfn shuffle(uint16 x, uint16 mask);
-
-long16 __ovld __cnfn shuffle(long2 x, ulong16 mask);
-long16 __ovld __cnfn shuffle(long4 x, ulong16 mask);
-long16 __ovld __cnfn shuffle(long8 x, ulong16 mask);
-long16 __ovld __cnfn shuffle(long16 x, ulong16 mask);
-
-ulong16 __ovld __cnfn shuffle(ulong2 x, ulong16 mask);
-ulong16 __ovld __cnfn shuffle(ulong4 x, ulong16 mask);
-ulong16 __ovld __cnfn shuffle(ulong8 x, ulong16 mask);
-ulong16 __ovld __cnfn shuffle(ulong16 x, ulong16 mask);
-
-float16 __ovld __cnfn shuffle(float2 x, uint16 mask);
-float16 __ovld __cnfn shuffle(float4 x, uint16 mask);
-float16 __ovld __cnfn shuffle(float8 x, uint16 mask);
-float16 __ovld __cnfn shuffle(float16 x, uint16 mask);
-
-#ifdef cl_khr_fp64
-double2 __ovld __cnfn shuffle(double2 x, ulong2 mask);
-double2 __ovld __cnfn shuffle(double4 x, ulong2 mask);
-double2 __ovld __cnfn shuffle(double8 x, ulong2 mask);
-double2 __ovld __cnfn shuffle(double16 x, ulong2 mask);
-
-double4 __ovld __cnfn shuffle(double2 x, ulong4 mask);
-double4 __ovld __cnfn shuffle(double4 x, ulong4 mask);
-double4 __ovld __cnfn shuffle(double8 x, ulong4 mask);
-double4 __ovld __cnfn shuffle(double16 x, ulong4 mask);
-
-double8 __ovld __cnfn shuffle(double2 x, ulong8 mask);
-double8 __ovld __cnfn shuffle(double4 x, ulong8 mask);
-double8 __ovld __cnfn shuffle(double8 x, ulong8 mask);
-double8 __ovld __cnfn shuffle(double16 x, ulong8 mask);
-
-double16 __ovld __cnfn shuffle(double2 x, ulong16 mask);
-double16 __ovld __cnfn shuffle(double4 x, ulong16 mask);
-double16 __ovld __cnfn shuffle(double8 x, ulong16 mask);
-double16 __ovld __cnfn shuffle(double16 x, ulong16 mask);
-#endif //cl_khr_fp64
-
-#ifdef cl_khr_fp16
-half2 __ovld __cnfn shuffle(half2 x, ushort2 mask);
-half2 __ovld __cnfn shuffle(half4 x, ushort2 mask);
-half2 __ovld __cnfn shuffle(half8 x, ushort2 mask);
-half2 __ovld __cnfn shuffle(half16 x, ushort2 mask);
-
-half4 __ovld __cnfn shuffle(half2 x, ushort4 mask);
-half4 __ovld __cnfn shuffle(half4 x, ushort4 mask);
-half4 __ovld __cnfn shuffle(half8 x, ushort4 mask);
-half4 __ovld __cnfn shuffle(half16 x, ushort4 mask);
-
-half8 __ovld __cnfn shuffle(half2 x, ushort8 mask);
-half8 __ovld __cnfn shuffle(half4 x, ushort8 mask);
-half8 __ovld __cnfn shuffle(half8 x, ushort8 mask);
-half8 __ovld __cnfn shuffle(half16 x, ushort8 mask);
-
-half16 __ovld __cnfn shuffle(half2 x, ushort16 mask);
-half16 __ovld __cnfn shuffle(half4 x, ushort16 mask);
-half16 __ovld __cnfn shuffle(half8 x, ushort16 mask);
-half16 __ovld __cnfn shuffle(half16 x, ushort16 mask);
-#endif //cl_khr_fp16
-
-char2 __ovld __cnfn shuffle2(char2 x, char2 y, uchar2 mask);
-char2 __ovld __cnfn shuffle2(char4 x, char4 y, uchar2 mask);
-char2 __ovld __cnfn shuffle2(char8 x, char8 y, uchar2 mask);
-char2 __ovld __cnfn shuffle2(char16 x, char16 y, uchar2 mask);
-
-uchar2 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar2 mask);
-uchar2 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar2 mask);
-uchar2 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar2 mask);
-uchar2 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar2 mask);
-
-short2 __ovld __cnfn shuffle2(short2 x, short2 y, ushort2 mask);
-short2 __ovld __cnfn shuffle2(short4 x, short4 y, ushort2 mask);
-short2 __ovld __cnfn shuffle2(short8 x, short8 y, ushort2 mask);
-short2 __ovld __cnfn shuffle2(short16 x, short16 y, ushort2 mask);
-
-ushort2 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort2 mask);
-ushort2 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort2 mask);
-ushort2 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort2 mask);
-ushort2 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort2 mask);
-
-int2 __ovld __cnfn shuffle2(int2 x, int2 y, uint2 mask);
-int2 __ovld __cnfn shuffle2(int4 x, int4 y, uint2 mask);
-int2 __ovld __cnfn shuffle2(int8 x, int8 y, uint2 mask);
-int2 __ovld __cnfn shuffle2(int16 x, int16 y, uint2 mask);
-
-uint2 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint2 mask);
-uint2 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint2 mask);
-uint2 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint2 mask);
-uint2 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint2 mask);
-
-long2 __ovld __cnfn shuffle2(long2 x, long2 y, ulong2 mask);
-long2 __ovld __cnfn shuffle2(long4 x, long4 y, ulong2 mask);
-long2 __ovld __cnfn shuffle2(long8 x, long8 y, ulong2 mask);
-long2 __ovld __cnfn shuffle2(long16 x, long16 y, ulong2 mask);
-
-ulong2 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong2 mask);
-ulong2 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong2 mask);
-ulong2 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong2 mask);
-ulong2 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong2 mask);
-
-float2 __ovld __cnfn shuffle2(float2 x, float2 y, uint2 mask);
-float2 __ovld __cnfn shuffle2(float4 x, float4 y, uint2 mask);
-float2 __ovld __cnfn shuffle2(float8 x, float8 y, uint2 mask);
-float2 __ovld __cnfn shuffle2(float16 x, float16 y, uint2 mask);
-
-char4 __ovld __cnfn shuffle2(char2 x, char2 y, uchar4 mask);
-char4 __ovld __cnfn shuffle2(char4 x, char4 y, uchar4 mask);
-char4 __ovld __cnfn shuffle2(char8 x, char8 y, uchar4 mask);
-char4 __ovld __cnfn shuffle2(char16 x, char16 y, uchar4 mask);
-
-uchar4 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar4 mask);
-uchar4 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar4 mask);
-uchar4 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar4 mask);
-uchar4 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar4 mask);
-
-short4 __ovld __cnfn shuffle2(short2 x, short2 y, ushort4 mask);
-short4 __ovld __cnfn shuffle2(short4 x, short4 y, ushort4 mask);
-short4 __ovld __cnfn shuffle2(short8 x, short8 y, ushort4 mask);
-short4 __ovld __cnfn shuffle2(short16 x, short16 y, ushort4 mask);
-
-ushort4 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort4 mask);
-ushort4 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort4 mask);
-ushort4 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort4 mask);
-ushort4 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort4 mask);
-
-int4 __ovld __cnfn shuffle2(int2 x, int2 y, uint4 mask);
-int4 __ovld __cnfn shuffle2(int4 x, int4 y, uint4 mask);
-int4 __ovld __cnfn shuffle2(int8 x, int8 y, uint4 mask);
-int4 __ovld __cnfn shuffle2(int16 x, int16 y, uint4 mask);
-
-uint4 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint4 mask);
-uint4 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint4 mask);
-uint4 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint4 mask);
-uint4 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint4 mask);
-
-long4 __ovld __cnfn shuffle2(long2 x, long2 y, ulong4 mask);
-long4 __ovld __cnfn shuffle2(long4 x, long4 y, ulong4 mask);
-long4 __ovld __cnfn shuffle2(long8 x, long8 y, ulong4 mask);
-long4 __ovld __cnfn shuffle2(long16 x, long16 y, ulong4 mask);
-
-ulong4 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong4 mask);
-ulong4 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong4 mask);
-ulong4 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong4 mask);
-ulong4 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong4 mask);
-
-float4 __ovld __cnfn shuffle2(float2 x, float2 y, uint4 mask);
-float4 __ovld __cnfn shuffle2(float4 x, float4 y, uint4 mask);
-float4 __ovld __cnfn shuffle2(float8 x, float8 y, uint4 mask);
-float4 __ovld __cnfn shuffle2(float16 x, float16 y, uint4 mask);
-
-char8 __ovld __cnfn shuffle2(char2 x, char2 y, uchar8 mask);
-char8 __ovld __cnfn shuffle2(char4 x, char4 y, uchar8 mask);
-char8 __ovld __cnfn shuffle2(char8 x, char8 y, uchar8 mask);
-char8 __ovld __cnfn shuffle2(char16 x, char16 y, uchar8 mask);
-
-uchar8 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar8 mask);
-uchar8 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar8 mask);
-uchar8 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar8 mask);
-uchar8 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar8 mask);
-
-short8 __ovld __cnfn shuffle2(short2 x, short2 y, ushort8 mask);
-short8 __ovld __cnfn shuffle2(short4 x, short4 y, ushort8 mask);
-short8 __ovld __cnfn shuffle2(short8 x, short8 y, ushort8 mask);
-short8 __ovld __cnfn shuffle2(short16 x, short16 y, ushort8 mask);
-
-ushort8 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort8 mask);
-ushort8 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort8 mask);
-ushort8 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort8 mask);
-ushort8 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort8 mask);
-
-int8 __ovld __cnfn shuffle2(int2 x, int2 y, uint8 mask);
-int8 __ovld __cnfn shuffle2(int4 x, int4 y, uint8 mask);
-int8 __ovld __cnfn shuffle2(int8 x, int8 y, uint8 mask);
-int8 __ovld __cnfn shuffle2(int16 x, int16 y, uint8 mask);
-
-uint8 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint8 mask);
-uint8 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint8 mask);
-uint8 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint8 mask);
-uint8 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint8 mask);
-
-long8 __ovld __cnfn shuffle2(long2 x, long2 y, ulong8 mask);
-long8 __ovld __cnfn shuffle2(long4 x, long4 y, ulong8 mask);
-long8 __ovld __cnfn shuffle2(long8 x, long8 y, ulong8 mask);
-long8 __ovld __cnfn shuffle2(long16 x, long16 y, ulong8 mask);
-
-ulong8 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong8 mask);
-ulong8 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong8 mask);
-ulong8 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong8 mask);
-ulong8 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong8 mask);
-
-float8 __ovld __cnfn shuffle2(float2 x, float2 y, uint8 mask);
-float8 __ovld __cnfn shuffle2(float4 x, float4 y, uint8 mask);
-float8 __ovld __cnfn shuffle2(float8 x, float8 y, uint8 mask);
-float8 __ovld __cnfn shuffle2(float16 x, float16 y, uint8 mask);
-
-char16 __ovld __cnfn shuffle2(char2 x, char2 y, uchar16 mask);
-char16 __ovld __cnfn shuffle2(char4 x, char4 y, uchar16 mask);
-char16 __ovld __cnfn shuffle2(char8 x, char8 y, uchar16 mask);
-char16 __ovld __cnfn shuffle2(char16 x, char16 y, uchar16 mask);
-
-uchar16 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar16 mask);
-uchar16 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar16 mask);
-uchar16 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar16 mask);
-uchar16 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar16 mask);
-
-short16 __ovld __cnfn shuffle2(short2 x, short2 y, ushort16 mask);
-short16 __ovld __cnfn shuffle2(short4 x, short4 y, ushort16 mask);
-short16 __ovld __cnfn shuffle2(short8 x, short8 y, ushort16 mask);
-short16 __ovld __cnfn shuffle2(short16 x, short16 y, ushort16 mask);
-
-ushort16 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort16 mask);
-ushort16 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort16 mask);
-ushort16 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort16 mask);
-ushort16 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort16 mask);
-
-int16 __ovld __cnfn shuffle2(int2 x, int2 y, uint16 mask);
-int16 __ovld __cnfn shuffle2(int4 x, int4 y, uint16 mask);
-int16 __ovld __cnfn shuffle2(int8 x, int8 y, uint16 mask);
-int16 __ovld __cnfn shuffle2(int16 x, int16 y, uint16 mask);
-
-uint16 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint16 mask);
-uint16 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint16 mask);
-uint16 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint16 mask);
-uint16 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint16 mask);
-
-long16 __ovld __cnfn shuffle2(long2 x, long2 y, ulong16 mask);
-long16 __ovld __cnfn shuffle2(long4 x, long4 y, ulong16 mask);
-long16 __ovld __cnfn shuffle2(long8 x, long8 y, ulong16 mask);
-long16 __ovld __cnfn shuffle2(long16 x, long16 y, ulong16 mask);
-
-ulong16 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong16 mask);
-ulong16 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong16 mask);
-ulong16 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong16 mask);
-ulong16 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong16 mask);
-
-float16 __ovld __cnfn shuffle2(float2 x, float2 y, uint16 mask);
-float16 __ovld __cnfn shuffle2(float4 x, float4 y, uint16 mask);
-float16 __ovld __cnfn shuffle2(float8 x, float8 y, uint16 mask);
-float16 __ovld __cnfn shuffle2(float16 x, float16 y, uint16 mask);
-
-#ifdef cl_khr_fp64
-double2 __ovld __cnfn shuffle2(double2 x, double2 y, ulong2 mask);
-double2 __ovld __cnfn shuffle2(double4 x, double4 y, ulong2 mask);
-double2 __ovld __cnfn shuffle2(double8 x, double8 y, ulong2 mask);
-double2 __ovld __cnfn shuffle2(double16 x, double16 y, ulong2 mask);
-
-double4 __ovld __cnfn shuffle2(double2 x, double2 y, ulong4 mask);
-double4 __ovld __cnfn shuffle2(double4 x, double4 y, ulong4 mask);
-double4 __ovld __cnfn shuffle2(double8 x, double8 y, ulong4 mask);
-double4 __ovld __cnfn shuffle2(double16 x, double16 y, ulong4 mask);
-
-double8 __ovld __cnfn shuffle2(double2 x, double2 y, ulong8 mask);
-double8 __ovld __cnfn shuffle2(double4 x, double4 y, ulong8 mask);
-double8 __ovld __cnfn shuffle2(double8 x, double8 y, ulong8 mask);
-double8 __ovld __cnfn shuffle2(double16 x, double16 y, ulong8 mask);
-
-double16 __ovld __cnfn shuffle2(double2 x, double2 y, ulong16 mask);
-double16 __ovld __cnfn shuffle2(double4 x, double4 y, ulong16 mask);
-double16 __ovld __cnfn shuffle2(double8 x, double8 y, ulong16 mask);
-double16 __ovld __cnfn shuffle2(double16 x, double16 y, ulong16 mask);
-#endif //cl_khr_fp64
-
-#ifdef cl_khr_fp16
-half2 __ovld __cnfn shuffle2(half2 x, half2 y, ushort2 mask);
-half2 __ovld __cnfn shuffle2(half4 x, half4 y, ushort2 mask);
-half2 __ovld __cnfn shuffle2(half8 x, half8 y, ushort2 mask);
-half2 __ovld __cnfn shuffle2(half16 x, half16 y, ushort2 mask);
-
-half4 __ovld __cnfn shuffle2(half2 x, half2 y, ushort4 mask);
-half4 __ovld __cnfn shuffle2(half4 x, half4 y, ushort4 mask);
-half4 __ovld __cnfn shuffle2(half8 x, half8 y, ushort4 mask);
-half4 __ovld __cnfn shuffle2(half16 x, half16 y, ushort4 mask);
-
-half8 __ovld __cnfn shuffle2(half2 x, half2 y, ushort8 mask);
-half8 __ovld __cnfn shuffle2(half4 x, half4 y, ushort8 mask);
-half8 __ovld __cnfn shuffle2(half8 x, half8 y, ushort8 mask);
-half8 __ovld __cnfn shuffle2(half16 x, half16 y, ushort8 mask);
-
-half16 __ovld __cnfn shuffle2(half2 x, half2 y, ushort16 mask);
-half16 __ovld __cnfn shuffle2(half4 x, half4 y, ushort16 mask);
-half16 __ovld __cnfn shuffle2(half8 x, half8 y, ushort16 mask);
-half16 __ovld __cnfn shuffle2(half16 x, half16 y, ushort16 mask);
-#endif //cl_khr_fp16
-
-// OpenCL v1.1 s6.11.3, v1.2 s6.12.14, v2.0 s6.13.14 - Image Read and Write Functions
-
-#ifdef cl_khr_gl_msaa_sharing
-#pragma OPENCL EXTENSION cl_khr_gl_msaa_sharing : enable
-#endif //cl_khr_gl_msaa_sharing
-
-/**
- * Use the coordinate (coord.xy) to do an element lookup in
- * the 2D image object specified by image.
- *
- * Use the coordinate (coord.x, coord.y, coord.z) to do
- * an element lookup in the 3D image object specified
- * by image. coord.w is ignored.
- *
- * Use the coordinate (coord.z) to index into the
- * 2D image array object specified by image_array
- * and (coord.x, coord.y) to do an element lookup in
- * the 2D image object specified by image.
- *
- * Use the coordinate (x) to do an element lookup in
- * the 1D image object specified by image.
- *
- * Use the coordinate (coord.y) to index into the
- * 1D image array object specified by image_array
- * and (coord.x) to do an element lookup in
- * the 1D image object specified by image.
- *
- * Use the coordinate (cood.xy) and sample to do an
- * element lookup in the 2D multi-sample image specified
- * by image.
- *
- * Use coord.xy and sample to do an element
- * lookup in the 2D multi-sample image layer
- * identified by index coord.z in the 2D multi-sample
- * image array specified by image.
- *
- * For mipmap images, use the mip-level specified by
- * the Level-of-Detail (lod) or use gradients for LOD
- * computation.
- *
- * read_imagef returns floating-point values in the
- * range [0.0 ... 1.0] for image objects created with
- * image_channel_data_type set to one of the predefined
- * packed formats or CL_UNORM_INT8, or
- * CL_UNORM_INT16.
- *
- * read_imagef returns floating-point values in the
- * range [-1.0 ... 1.0] for image objects created with
- * image_channel_data_type set to CL_SNORM_INT8,
- * or CL_SNORM_INT16.
- *
- * read_imagef returns floating-point values for image
- * objects created with image_channel_data_type set to
- * CL_HALF_FLOAT or CL_FLOAT.
- *
- * read_imagei and read_imageui return
- * unnormalized signed integer and unsigned integer
- * values respectively. Each channel will be stored in a
- * 32-bit integer.
- *
- * read_imagei can only be used with image objects
- * created with image_channel_data_type set to one of
- * the following values:
- * CL_SIGNED_INT8,
- * CL_SIGNED_INT16 and
- * CL_SIGNED_INT32.
- * If the image_channel_data_type is not one of the
- * above values, the values returned by read_imagei
- * are undefined.
- *
- * read_imageui can only be used with image objects
- * created with image_channel_data_type set to one of
- * the following values:
- * CL_UNSIGNED_INT8,
- * CL_UNSIGNED_INT16 and
- * CL_UNSIGNED_INT32.
- * If the image_channel_data_type is not one of the
- * above values, the values returned by read_imageui
- * are undefined.
- *
- * The read_image{i|ui} calls support a nearest filter
- * only. The filter_mode specified in sampler
- * must be set to CLK_FILTER_NEAREST; otherwise
- * the values returned are undefined.
-
- * The read_image{f|i|ui} calls that take
- * integer coordinates must use a sampler with
- * normalized coordinates set to
- * CLK_NORMALIZED_COORDS_FALSE and
- * addressing mode set to
- * CLK_ADDRESS_CLAMP_TO_EDGE,
- * CLK_ADDRESS_CLAMP or CLK_ADDRESS_NONE;
- * otherwise the values returned are undefined.
- *
- * Values returned by read_imagef for image objects
- * with image_channel_data_type values not specified
- * in the description above are undefined.
- */
-
-float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, int2 coord);
-float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord);
-
-int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, int2 coord);
-int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord);
-uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, int2 coord);
-uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord);
-
-float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, int4 coord);
-float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord);
-
-int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, int4 coord);
-int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord);
-uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, int4 coord);
-uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord);
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
-float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
-float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
-
-int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
-int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
-uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
-uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
-#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
-
-float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, int coord);
-float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord);
-
-int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, int coord);
-int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord);
-uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, int coord);
-uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord);
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
-float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
-float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
-
-int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
-int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
-uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
-uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
-#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
-
-#ifdef cl_khr_depth_images
-float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord);
-float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, int2 coord);
-
-float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord);
-float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, int4 coord);
-#endif //cl_khr_depth_images
-
-#if defined(cl_khr_gl_msaa_sharing)
-float4 __purefn __ovld read_imagef(read_only image2d_msaa_t image, int2 coord, int sample);
-int4 __purefn __ovld read_imagei(read_only image2d_msaa_t image, int2 coord, int sample);
-uint4 __purefn __ovld read_imageui(read_only image2d_msaa_t image, int2 coord, int sample);
-
-float __purefn __ovld read_imagef(read_only image2d_msaa_depth_t image, int2 coord, int sample);
-
-float4 __purefn __ovld read_imagef(read_only image2d_array_msaa_t image, int4 coord, int sample);
-int4 __purefn __ovld read_imagei(read_only image2d_array_msaa_t image, int4 coord, int sample);
-uint4 __purefn __ovld read_imageui(read_only image2d_array_msaa_t image, int4 coord, int sample);
-
-float __purefn __ovld read_imagef(read_only image2d_array_msaa_depth_t image, int4 coord, int sample);
-#endif //cl_khr_gl_msaa_sharing
-
-// OpenCL Extension v2.0 s9.18 - Mipmaps
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-#ifdef cl_khr_mipmap_image
-
-float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float lod);
-int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float lod);
-uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float lod);
-
-float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
-int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
-uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
-
-float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
-int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
-uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
-
-float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
-
-float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
-int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
-uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
-
-float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod);
-
-float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
-int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
-uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
-
-float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
-int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
-uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
-
-float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
-int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
-uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
-
-float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
-int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
-uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
-
-float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
-
-float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
-int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
-uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
-
-float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
-
-float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
-int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
-uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
-
-#endif //cl_khr_mipmap_image
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
-
-/**
-* Sampler-less Image Access
-*/
-
-float4 __purefn __ovld read_imagef(read_only image1d_t image, int coord);
-int4 __purefn __ovld read_imagei(read_only image1d_t image, int coord);
-uint4 __purefn __ovld read_imageui(read_only image1d_t image, int coord);
-
-float4 __purefn __ovld read_imagef(read_only image1d_buffer_t image, int coord);
-int4 __purefn __ovld read_imagei(read_only image1d_buffer_t image, int coord);
-uint4 __purefn __ovld read_imageui(read_only image1d_buffer_t image, int coord);
-
-float4 __purefn __ovld read_imagef(read_only image1d_array_t image, int2 coord);
-int4 __purefn __ovld read_imagei(read_only image1d_array_t image, int2 coord);
-uint4 __purefn __ovld read_imageui(read_only image1d_array_t image, int2 coord);
-
-float4 __purefn __ovld read_imagef(read_only image2d_t image, int2 coord);
-int4 __purefn __ovld read_imagei(read_only image2d_t image, int2 coord);
-uint4 __purefn __ovld read_imageui(read_only image2d_t image, int2 coord);
-
-float4 __purefn __ovld read_imagef(read_only image2d_array_t image, int4 coord);
-int4 __purefn __ovld read_imagei(read_only image2d_array_t image, int4 coord);
-uint4 __purefn __ovld read_imageui(read_only image2d_array_t image, int4 coord);
-
-#ifdef cl_khr_depth_images
-float __purefn __ovld read_imagef(read_only image2d_depth_t image, int2 coord);
-float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, int4 coord);
-#endif //cl_khr_depth_images
-
-float4 __purefn __ovld read_imagef(read_only image3d_t image, int4 coord);
-int4 __purefn __ovld read_imagei(read_only image3d_t image, int4 coord);
-uint4 __purefn __ovld read_imageui(read_only image3d_t image, int4 coord);
-
-#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
-
-// Image read functions returning half4 type
-#ifdef cl_khr_fp16
-half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, int coord);
-half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, float coord);
-half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, int2 coord);
-half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, float2 coord);
-half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, int4 coord);
-half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, float4 coord);
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
-half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, int2 coord);
-half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, float2 coord);
-half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, int4 coord);
-half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, float4 coord);
-/**
- * Sampler-less Image Access
- */
-half4 __purefn __ovld read_imageh(read_only image1d_t image, int coord);
-half4 __purefn __ovld read_imageh(read_only image2d_t image, int2 coord);
-half4 __purefn __ovld read_imageh(read_only image3d_t image, int4 coord);
-half4 __purefn __ovld read_imageh(read_only image1d_array_t image, int2 coord);
-half4 __purefn __ovld read_imageh(read_only image2d_array_t image, int4 coord);
-half4 __purefn __ovld read_imageh(read_only image1d_buffer_t image, int coord);
-#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
-#endif //cl_khr_fp16
-
-// Image read functions for read_write images
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-float4 __purefn __ovld read_imagef(read_write image1d_t image, int coord);
-int4 __purefn __ovld read_imagei(read_write image1d_t image, int coord);
-uint4 __purefn __ovld read_imageui(read_write image1d_t image, int coord);
-
-float4 __purefn __ovld read_imagef(read_write image1d_buffer_t image, int coord);
-int4 __purefn __ovld read_imagei(read_write image1d_buffer_t image, int coord);
-uint4 __purefn __ovld read_imageui(read_write image1d_buffer_t image, int coord);
-
-float4 __purefn __ovld read_imagef(read_write image1d_array_t image, int2 coord);
-int4 __purefn __ovld read_imagei(read_write image1d_array_t image, int2 coord);
-uint4 __purefn __ovld read_imageui(read_write image1d_array_t image, int2 coord);
-
-float4 __purefn __ovld read_imagef(read_write image2d_t image, int2 coord);
-int4 __purefn __ovld read_imagei(read_write image2d_t image, int2 coord);
-uint4 __purefn __ovld read_imageui(read_write image2d_t image, int2 coord);
-
-float4 __purefn __ovld read_imagef(read_write image2d_array_t image, int4 coord);
-int4 __purefn __ovld read_imagei(read_write image2d_array_t image, int4 coord);
-uint4 __purefn __ovld read_imageui(read_write image2d_array_t image, int4 coord);
-
-float4 __purefn __ovld read_imagef(read_write image3d_t image, int4 coord);
-int4 __purefn __ovld read_imagei(read_write image3d_t image, int4 coord);
-uint4 __purefn __ovld read_imageui(read_write image3d_t image, int4 coord);
-
-#ifdef cl_khr_depth_images
-float __purefn __ovld read_imagef(read_write image2d_depth_t image, int2 coord);
-float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, int4 coord);
-#endif //cl_khr_depth_images
-
-#if cl_khr_gl_msaa_sharing
-float4 __purefn __ovld read_imagef(read_write image2d_msaa_t image, int2 coord, int sample);
-int4 __purefn __ovld read_imagei(read_write image2d_msaa_t image, int2 coord, int sample);
-uint4 __purefn __ovld read_imageui(read_write image2d_msaa_t image, int2 coord, int sample);
-
-float4 __purefn __ovld read_imagef(read_write image2d_array_msaa_t image, int4 coord, int sample);
-int4 __purefn __ovld read_imagei(read_write image2d_array_msaa_t image, int4 coord, int sample);
-uint4 __purefn __ovld read_imageui(read_write image2d_array_msaa_t image, int4 coord, int sample);
-
-float __purefn __ovld read_imagef(read_write image2d_msaa_depth_t image, int2 coord, int sample);
-float __purefn __ovld read_imagef(read_write image2d_array_msaa_depth_t image, int4 coord, int sample);
-#endif //cl_khr_gl_msaa_sharing
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-#ifdef cl_khr_mipmap_image
-float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float lod);
-int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float lod);
-uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float lod);
-
-float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
-int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
-uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
-
-float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
-int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
-uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
-
-float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
-
-float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
-int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
-uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
-
-float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod);
-
-float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
-int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
-uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
-
-float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
-int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
-uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
-
-float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
-int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
-uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
-
-float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
-int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
-uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
-
-float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
-
-float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
-int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
-uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
-
-float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
-
-float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
-int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
-uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
-
-#endif //cl_khr_mipmap_image
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-// Image read functions returning half4 type
-#ifdef cl_khr_fp16
-half4 __purefn __ovld read_imageh(read_write image1d_t image, int coord);
-half4 __purefn __ovld read_imageh(read_write image2d_t image, int2 coord);
-half4 __purefn __ovld read_imageh(read_write image3d_t image, int4 coord);
-half4 __purefn __ovld read_imageh(read_write image1d_array_t image, int2 coord);
-half4 __purefn __ovld read_imageh(read_write image2d_array_t image, int4 coord);
-half4 __purefn __ovld read_imageh(read_write image1d_buffer_t image, int coord);
-#endif //cl_khr_fp16
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-/**
- * Write color value to location specified by coordinate
- * (coord.x, coord.y) in the 2D image object specified by image.
- * (coord.x, coord.y) are considered to be unnormalized coordinates
- * and must be in the range 0 ... image width - 1, and 0
- * ... image height - 1.
-
- * Write color value to location specified by coordinate
- * (coord.x, coord.y) in the 2D image object specified by index
- * (coord.z) of the 2D image array object image_array.
- * (coord.x, coord.y) are considered to be unnormalized
- * coordinates and must be in the range 0 ... image width
- * - 1.
- *
- * Write color value to location specified by coordinate
- * (coord) in the 1D image (buffer) object specified by image.
- * coord is considered to be unnormalized coordinates
- * and must be in the range 0 ... image width - 1.
- *
- * Write color value to location specified by coordinate
- * (coord.x) in the 1D image object specified by index
- * (coord.y) of the 1D image array object image_array.
- * x is considered to be unnormalized coordinates
- * and must be in the range 0 ... image width - 1.
- *
- * Write color value to location specified by coordinate
- * (coord.x, coord.y, coord.z) in the 3D image object specified by image.
- * coord.x & coord.y are considered to be unnormalized coordinates
- * and must be in the range 0 ... image width - 1, and 0
- * ... image height - 1.
- *
- * For mipmap images, use mip-level specified by lod.
- *
- * Appropriate data format conversion to the specified
- * image format is done before writing the color value.
- *
- * write_imagef can only be used with image objects
- * created with image_channel_data_type set to one of
- * the pre-defined packed formats or set to
- * CL_SNORM_INT8, CL_UNORM_INT8,
- * CL_SNORM_INT16, CL_UNORM_INT16,
- * CL_HALF_FLOAT or CL_FLOAT. Appropriate data
- * format conversion will be done to convert channel
- * data from a floating-point value to actual data format
- * in which the channels are stored.
- *
- * write_imagei can only be used with image objects
- * created with image_channel_data_type set to one of
- * the following values:
- * CL_SIGNED_INT8,
- * CL_SIGNED_INT16 and
- * CL_SIGNED_INT32.
- *
- * write_imageui can only be used with image objects
- * created with image_channel_data_type set to one of
- * the following values:
- * CL_UNSIGNED_INT8,
- * CL_UNSIGNED_INT16 and
- * CL_UNSIGNED_INT32.
- *
- * The behavior of write_imagef, write_imagei and
- * write_imageui for image objects created with
- * image_channel_data_type values not specified in
- * the description above or with (x, y) coordinate
- * values that are not in the range (0 ... image width -1,
- * 0 ... image height - 1), respectively, is undefined.
- */
-void __ovld write_imagef(write_only image2d_t image, int2 coord, float4 color);
-void __ovld write_imagei(write_only image2d_t image, int2 coord, int4 color);
-void __ovld write_imageui(write_only image2d_t image, int2 coord, uint4 color);
-
-void __ovld write_imagef(write_only image2d_array_t image_array, int4 coord, float4 color);
-void __ovld write_imagei(write_only image2d_array_t image_array, int4 coord, int4 color);
-void __ovld write_imageui(write_only image2d_array_t image_array, int4 coord, uint4 color);
-
-void __ovld write_imagef(write_only image1d_t image, int coord, float4 color);
-void __ovld write_imagei(write_only image1d_t image, int coord, int4 color);
-void __ovld write_imageui(write_only image1d_t image, int coord, uint4 color);
-
-void __ovld write_imagef(write_only image1d_buffer_t image, int coord, float4 color);
-void __ovld write_imagei(write_only image1d_buffer_t image, int coord, int4 color);
-void __ovld write_imageui(write_only image1d_buffer_t image, int coord, uint4 color);
-
-void __ovld write_imagef(write_only image1d_array_t image_array, int2 coord, float4 color);
-void __ovld write_imagei(write_only image1d_array_t image_array, int2 coord, int4 color);
-void __ovld write_imageui(write_only image1d_array_t image_array, int2 coord, uint4 color);
-
-#ifdef cl_khr_3d_image_writes
-void __ovld write_imagef(write_only image3d_t image, int4 coord, float4 color);
-void __ovld write_imagei(write_only image3d_t image, int4 coord, int4 color);
-void __ovld write_imageui(write_only image3d_t image, int4 coord, uint4 color);
-#endif
-
-#ifdef cl_khr_depth_images
-void __ovld write_imagef(write_only image2d_depth_t image, int2 coord, float color);
-void __ovld write_imagef(write_only image2d_array_depth_t image, int4 coord, float color);
-#endif //cl_khr_depth_images
-
-// OpenCL Extension v2.0 s9.18 - Mipmaps
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-#if defined(cl_khr_mipmap_image_writes)
-void __ovld write_imagef(write_only image1d_t image, int coord, int lod, float4 color);
-void __ovld write_imagei(write_only image1d_t image, int coord, int lod, int4 color);
-void __ovld write_imageui(write_only image1d_t image, int coord, int lod, uint4 color);
-
-void __ovld write_imagef(write_only image1d_array_t image_array, int2 coord, int lod, float4 color);
-void __ovld write_imagei(write_only image1d_array_t image_array, int2 coord, int lod, int4 color);
-void __ovld write_imageui(write_only image1d_array_t image_array, int2 coord, int lod, uint4 color);
-
-void __ovld write_imagef(write_only image2d_t image, int2 coord, int lod, float4 color);
-void __ovld write_imagei(write_only image2d_t image, int2 coord, int lod, int4 color);
-void __ovld write_imageui(write_only image2d_t image, int2 coord, int lod, uint4 color);
-
-void __ovld write_imagef(write_only image2d_array_t image_array, int4 coord, int lod, float4 color);
-void __ovld write_imagei(write_only image2d_array_t image_array, int4 coord, int lod, int4 color);
-void __ovld write_imageui(write_only image2d_array_t image_array, int4 coord, int lod, uint4 color);
-
-void __ovld write_imagef(write_only image2d_depth_t image, int2 coord, int lod, float depth);
-void __ovld write_imagef(write_only image2d_array_depth_t image, int4 coord, int lod, float depth);
-
-#ifdef cl_khr_3d_image_writes
-void __ovld write_imagef(write_only image3d_t image, int4 coord, int lod, float4 color);
-void __ovld write_imagei(write_only image3d_t image, int4 coord, int lod, int4 color);
-void __ovld write_imageui(write_only image3d_t image, int4 coord, int lod, uint4 color);
-#endif //cl_khr_3d_image_writes
-
-#endif //defined(cl_khr_mipmap_image_writes)
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-// Image write functions for half4 type
-#ifdef cl_khr_fp16
-void __ovld write_imageh(write_only image1d_t image, int coord, half4 color);
-void __ovld write_imageh(write_only image2d_t image, int2 coord, half4 color);
-#ifdef cl_khr_3d_image_writes
-void __ovld write_imageh(write_only image3d_t image, int4 coord, half4 color);
-#endif
-void __ovld write_imageh(write_only image1d_array_t image, int2 coord, half4 color);
-void __ovld write_imageh(write_only image2d_array_t image, int4 coord, half4 color);
-void __ovld write_imageh(write_only image1d_buffer_t image, int coord, half4 color);
-#endif //cl_khr_fp16
-
-// Image write functions for read_write images
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-void __ovld write_imagef(read_write image2d_t image, int2 coord, float4 color);
-void __ovld write_imagei(read_write image2d_t image, int2 coord, int4 color);
-void __ovld write_imageui(read_write image2d_t image, int2 coord, uint4 color);
-
-void __ovld write_imagef(read_write image2d_array_t image_array, int4 coord, float4 color);
-void __ovld write_imagei(read_write image2d_array_t image_array, int4 coord, int4 color);
-void __ovld write_imageui(read_write image2d_array_t image_array, int4 coord, uint4 color);
-
-void __ovld write_imagef(read_write image1d_t image, int coord, float4 color);
-void __ovld write_imagei(read_write image1d_t image, int coord, int4 color);
-void __ovld write_imageui(read_write image1d_t image, int coord, uint4 color);
-
-void __ovld write_imagef(read_write image1d_buffer_t image, int coord, float4 color);
-void __ovld write_imagei(read_write image1d_buffer_t image, int coord, int4 color);
-void __ovld write_imageui(read_write image1d_buffer_t image, int coord, uint4 color);
-
-void __ovld write_imagef(read_write image1d_array_t image_array, int2 coord, float4 color);
-void __ovld write_imagei(read_write image1d_array_t image_array, int2 coord, int4 color);
-void __ovld write_imageui(read_write image1d_array_t image_array, int2 coord, uint4 color);
-
-#ifdef cl_khr_3d_image_writes
-void __ovld write_imagef(read_write image3d_t image, int4 coord, float4 color);
-void __ovld write_imagei(read_write image3d_t image, int4 coord, int4 color);
-void __ovld write_imageui(read_write image3d_t image, int4 coord, uint4 color);
-#endif
-
-#ifdef cl_khr_depth_images
-void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, float color);
-void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, float color);
-#endif //cl_khr_depth_images
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-#if defined(cl_khr_mipmap_image_writes)
-void __ovld write_imagef(read_write image1d_t image, int coord, int lod, float4 color);
-void __ovld write_imagei(read_write image1d_t image, int coord, int lod, int4 color);
-void __ovld write_imageui(read_write image1d_t image, int coord, int lod, uint4 color);
-
-void __ovld write_imagef(read_write image1d_array_t image_array, int2 coord, int lod, float4 color);
-void __ovld write_imagei(read_write image1d_array_t image_array, int2 coord, int lod, int4 color);
-void __ovld write_imageui(read_write image1d_array_t image_array, int2 coord, int lod, uint4 color);
-
-void __ovld write_imagef(read_write image2d_t image, int2 coord, int lod, float4 color);
-void __ovld write_imagei(read_write image2d_t image, int2 coord, int lod, int4 color);
-void __ovld write_imageui(read_write image2d_t image, int2 coord, int lod, uint4 color);
-
-void __ovld write_imagef(read_write image2d_array_t image_array, int4 coord, int lod, float4 color);
-void __ovld write_imagei(read_write image2d_array_t image_array, int4 coord, int lod, int4 color);
-void __ovld write_imageui(read_write image2d_array_t image_array, int4 coord, int lod, uint4 color);
-
-void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, int lod, float color);
-void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, int lod, float color);
-
-#ifdef cl_khr_3d_image_writes
-void __ovld write_imagef(read_write image3d_t image, int4 coord, int lod, float4 color);
-void __ovld write_imagei(read_write image3d_t image, int4 coord, int lod, int4 color);
-void __ovld write_imageui(read_write image3d_t image, int4 coord, int lod, uint4 color);
-#endif //cl_khr_3d_image_writes
-
-#endif //cl_khr_mipmap_image_writes
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-// Image write functions for half4 type
-#ifdef cl_khr_fp16
-void __ovld write_imageh(read_write image1d_t image, int coord, half4 color);
-void __ovld write_imageh(read_write image2d_t image, int2 coord, half4 color);
-#ifdef cl_khr_3d_image_writes
-void __ovld write_imageh(read_write image3d_t image, int4 coord, half4 color);
-#endif
-void __ovld write_imageh(read_write image1d_array_t image, int2 coord, half4 color);
-void __ovld write_imageh(read_write image2d_array_t image, int4 coord, half4 color);
-void __ovld write_imageh(read_write image1d_buffer_t image, int coord, half4 color);
-#endif //cl_khr_fp16
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-// Note: In OpenCL v1.0/1.1/1.2, image argument of image query builtin functions does not have
-// access qualifier, which by default assume read_only access qualifier. Image query builtin
-// functions with write_only image argument should also be declared.
-
-/**
- * Return the image width in pixels.
- *
-  */
-int __ovld __cnfn get_image_width(read_only image1d_t image);
-int __ovld __cnfn get_image_width(read_only image1d_buffer_t image);
-int __ovld __cnfn get_image_width(read_only image2d_t image);
-#ifdef cl_khr_3d_image_writes
-int __ovld __cnfn get_image_width(read_only image3d_t image);
-#endif
-int __ovld __cnfn get_image_width(read_only image1d_array_t image);
-int __ovld __cnfn get_image_width(read_only image2d_array_t image);
-#ifdef cl_khr_depth_images
-int __ovld __cnfn get_image_width(read_only image2d_depth_t image);
-int __ovld __cnfn get_image_width(read_only image2d_array_depth_t image);
-#endif //cl_khr_depth_images
-#if defined(cl_khr_gl_msaa_sharing)
-int __ovld __cnfn get_image_width(read_only image2d_msaa_t image);
-int __ovld __cnfn get_image_width(read_only image2d_msaa_depth_t image);
-int __ovld __cnfn get_image_width(read_only image2d_array_msaa_t image);
-int __ovld __cnfn get_image_width(read_only image2d_array_msaa_depth_t image);
-#endif //cl_khr_gl_msaa_sharing
-
-int __ovld __cnfn get_image_width(write_only image1d_t image);
-int __ovld __cnfn get_image_width(write_only image1d_buffer_t image);
-int __ovld __cnfn get_image_width(write_only image2d_t image);
-#ifdef cl_khr_3d_image_writes
-int __ovld __cnfn get_image_width(write_only image3d_t image);
-#endif
-int __ovld __cnfn get_image_width(write_only image1d_array_t image);
-int __ovld __cnfn get_image_width(write_only image2d_array_t image);
-#ifdef cl_khr_depth_images
-int __ovld __cnfn get_image_width(write_only image2d_depth_t image);
-int __ovld __cnfn get_image_width(write_only image2d_array_depth_t image);
-#endif //cl_khr_depth_images
-#if defined(cl_khr_gl_msaa_sharing)
-int __ovld __cnfn get_image_width(write_only image2d_msaa_t image);
-int __ovld __cnfn get_image_width(write_only image2d_msaa_depth_t image);
-int __ovld __cnfn get_image_width(write_only image2d_array_msaa_t image);
-int __ovld __cnfn get_image_width(write_only image2d_array_msaa_depth_t image);
-#endif //cl_khr_gl_msaa_sharing
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-int __ovld __cnfn get_image_width(read_write image1d_t image);
-int __ovld __cnfn get_image_width(read_write image1d_buffer_t image);
-int __ovld __cnfn get_image_width(read_write image2d_t image);
-int __ovld __cnfn get_image_width(read_write image3d_t image);
-int __ovld __cnfn get_image_width(read_write image1d_array_t image);
-int __ovld __cnfn get_image_width(read_write image2d_array_t image);
-#ifdef cl_khr_depth_images
-int __ovld __cnfn get_image_width(read_write image2d_depth_t image);
-int __ovld __cnfn get_image_width(read_write image2d_array_depth_t image);
-#endif //cl_khr_depth_images
-#if defined(cl_khr_gl_msaa_sharing)
-int __ovld __cnfn get_image_width(read_write image2d_msaa_t image);
-int __ovld __cnfn get_image_width(read_write image2d_msaa_depth_t image);
-int __ovld __cnfn get_image_width(read_write image2d_array_msaa_t image);
-int __ovld __cnfn get_image_width(read_write image2d_array_msaa_depth_t image);
-#endif //cl_khr_gl_msaa_sharing
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-/**
- * Return the image height in pixels.
- */
-int __ovld __cnfn get_image_height(read_only image2d_t image);
-int __ovld __cnfn get_image_height(read_only image3d_t image);
-int __ovld __cnfn get_image_height(read_only image2d_array_t image);
-#ifdef cl_khr_depth_images
-int __ovld __cnfn get_image_height(read_only image2d_depth_t image);
-int __ovld __cnfn get_image_height(read_only image2d_array_depth_t image);
-#endif //cl_khr_depth_images
-#if defined(cl_khr_gl_msaa_sharing)
-int __ovld __cnfn get_image_height(read_only image2d_msaa_t image);
-int __ovld __cnfn get_image_height(read_only image2d_msaa_depth_t image);
-int __ovld __cnfn get_image_height(read_only image2d_array_msaa_t image);
-int __ovld __cnfn get_image_height(read_only image2d_array_msaa_depth_t image);
-#endif //cl_khr_gl_msaa_sharing
-
-int __ovld __cnfn get_image_height(write_only image2d_t image);
-#ifdef cl_khr_3d_image_writes
-int __ovld __cnfn get_image_height(write_only image3d_t image);
-#endif
-int __ovld __cnfn get_image_height(write_only image2d_array_t image);
-#ifdef cl_khr_depth_images
-int __ovld __cnfn get_image_height(write_only image2d_depth_t image);
-int __ovld __cnfn get_image_height(write_only image2d_array_depth_t image);
-#endif //cl_khr_depth_images
-#if defined(cl_khr_gl_msaa_sharing)
-int __ovld __cnfn get_image_height(write_only image2d_msaa_t image);
-int __ovld __cnfn get_image_height(write_only image2d_msaa_depth_t image);
-int __ovld __cnfn get_image_height(write_only image2d_array_msaa_t image);
-int __ovld __cnfn get_image_height(write_only image2d_array_msaa_depth_t image);
-#endif //cl_khr_gl_msaa_sharing
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-int __ovld __cnfn get_image_height(read_write image2d_t image);
-int __ovld __cnfn get_image_height(read_write image3d_t image);
-int __ovld __cnfn get_image_height(read_write image2d_array_t image);
-#ifdef cl_khr_depth_images
-int __ovld __cnfn get_image_height(read_write image2d_depth_t image);
-int __ovld __cnfn get_image_height(read_write image2d_array_depth_t image);
-#endif //cl_khr_depth_images
-#if defined(cl_khr_gl_msaa_sharing)
-int __ovld __cnfn get_image_height(read_write image2d_msaa_t image);
-int __ovld __cnfn get_image_height(read_write image2d_msaa_depth_t image);
-int __ovld __cnfn get_image_height(read_write image2d_array_msaa_t image);
-int __ovld __cnfn get_image_height(read_write image2d_array_msaa_depth_t image);
-#endif //cl_khr_gl_msaa_sharing
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-/**
- * Return the image depth in pixels.
- */
-int __ovld __cnfn get_image_depth(read_only image3d_t image);
-
-#ifdef cl_khr_3d_image_writes
-int __ovld __cnfn get_image_depth(write_only image3d_t image);
-#endif
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-int __ovld __cnfn get_image_depth(read_write image3d_t image);
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-// OpenCL Extension v2.0 s9.18 - Mipmaps
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-#ifdef cl_khr_mipmap_image
-/**
- * Return the image miplevels.
- */
-
-int __ovld get_image_num_mip_levels(read_only image1d_t image);
-int __ovld get_image_num_mip_levels(read_only image2d_t image);
-int __ovld get_image_num_mip_levels(read_only image3d_t image);
-
-int __ovld get_image_num_mip_levels(write_only image1d_t image);
-int __ovld get_image_num_mip_levels(write_only image2d_t image);
-#ifdef cl_khr_3d_image_writes
-int __ovld get_image_num_mip_levels(write_only image3d_t image);
-#endif
-
-int __ovld get_image_num_mip_levels(read_write image1d_t image);
-int __ovld get_image_num_mip_levels(read_write image2d_t image);
-int __ovld get_image_num_mip_levels(read_write image3d_t image);
-
-int __ovld get_image_num_mip_levels(read_only image1d_array_t image);
-int __ovld get_image_num_mip_levels(read_only image2d_array_t image);
-int __ovld get_image_num_mip_levels(read_only image2d_array_depth_t image);
-int __ovld get_image_num_mip_levels(read_only image2d_depth_t image);
-
-int __ovld get_image_num_mip_levels(write_only image1d_array_t image);
-int __ovld get_image_num_mip_levels(write_only image2d_array_t image);
-int __ovld get_image_num_mip_levels(write_only image2d_array_depth_t image);
-int __ovld get_image_num_mip_levels(write_only image2d_depth_t image);
-
-int __ovld get_image_num_mip_levels(read_write image1d_array_t image);
-int __ovld get_image_num_mip_levels(read_write image2d_array_t image);
-int __ovld get_image_num_mip_levels(read_write image2d_array_depth_t image);
-int __ovld get_image_num_mip_levels(read_write image2d_depth_t image);
-
-#endif //cl_khr_mipmap_image
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-/**
- * Return the channel data type. Valid values are:
- * CLK_SNORM_INT8
- * CLK_SNORM_INT16
- * CLK_UNORM_INT8
- * CLK_UNORM_INT16
- * CLK_UNORM_SHORT_565
- * CLK_UNORM_SHORT_555
- * CLK_UNORM_SHORT_101010
- * CLK_SIGNED_INT8
- * CLK_SIGNED_INT16
- * CLK_SIGNED_INT32
- * CLK_UNSIGNED_INT8
- * CLK_UNSIGNED_INT16
- * CLK_UNSIGNED_INT32
- * CLK_HALF_FLOAT
- * CLK_FLOAT
- */
-
-int __ovld __cnfn get_image_channel_data_type(read_only image1d_t image);
-int __ovld __cnfn get_image_channel_data_type(read_only image1d_buffer_t image);
-int __ovld __cnfn get_image_channel_data_type(read_only image2d_t image);
-int __ovld __cnfn get_image_channel_data_type(read_only image3d_t image);
-int __ovld __cnfn get_image_channel_data_type(read_only image1d_array_t image);
-int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_t image);
-#ifdef cl_khr_depth_images
-int __ovld __cnfn get_image_channel_data_type(read_only image2d_depth_t image);
-int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_depth_t image);
-#endif //cl_khr_depth_images
-#if defined(cl_khr_gl_msaa_sharing)
-int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_t image);
-int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_depth_t image);
-int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_t image);
-int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_depth_t image);
-#endif //cl_khr_gl_msaa_sharing
-
-int __ovld __cnfn get_image_channel_data_type(write_only image1d_t image);
-int __ovld __cnfn get_image_channel_data_type(write_only image1d_buffer_t image);
-int __ovld __cnfn get_image_channel_data_type(write_only image2d_t image);
-#ifdef cl_khr_3d_image_writes
-int __ovld __cnfn get_image_channel_data_type(write_only image3d_t image);
-#endif
-int __ovld __cnfn get_image_channel_data_type(write_only image1d_array_t image);
-int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_t image);
-#ifdef cl_khr_depth_images
-int __ovld __cnfn get_image_channel_data_type(write_only image2d_depth_t image);
-int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_depth_t image);
-#endif //cl_khr_depth_images
-#if defined(cl_khr_gl_msaa_sharing)
-int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_t image);
-int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_depth_t image);
-int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_t image);
-int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_depth_t image);
-#endif //cl_khr_gl_msaa_sharing
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-int __ovld __cnfn get_image_channel_data_type(read_write image1d_t image);
-int __ovld __cnfn get_image_channel_data_type(read_write image1d_buffer_t image);
-int __ovld __cnfn get_image_channel_data_type(read_write image2d_t image);
-int __ovld __cnfn get_image_channel_data_type(read_write image3d_t image);
-int __ovld __cnfn get_image_channel_data_type(read_write image1d_array_t image);
-int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_t image);
-#ifdef cl_khr_depth_images
-int __ovld __cnfn get_image_channel_data_type(read_write image2d_depth_t image);
-int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_depth_t image);
-#endif //cl_khr_depth_images
-#if defined(cl_khr_gl_msaa_sharing)
-int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_t image);
-int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_depth_t image);
-int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_t image);
-int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_depth_t image);
-#endif //cl_khr_gl_msaa_sharing
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-/**
- * Return the image channel order. Valid values are:
- * CLK_A
- * CLK_R
- * CLK_Rx
- * CLK_RG
- * CLK_RGx
- * CLK_RA
- * CLK_RGB
- * CLK_RGBx
- * CLK_RGBA
- * CLK_ARGB
- * CLK_BGRA
- * CLK_INTENSITY
- * CLK_LUMINANCE
- */
-
-int __ovld __cnfn get_image_channel_order(read_only image1d_t image);
-int __ovld __cnfn get_image_channel_order(read_only image1d_buffer_t image);
-int __ovld __cnfn get_image_channel_order(read_only image2d_t image);
-int __ovld __cnfn get_image_channel_order(read_only image3d_t image);
-int __ovld __cnfn get_image_channel_order(read_only image1d_array_t image);
-int __ovld __cnfn get_image_channel_order(read_only image2d_array_t image);
-#ifdef cl_khr_depth_images
-int __ovld __cnfn get_image_channel_order(read_only image2d_depth_t image);
-int __ovld __cnfn get_image_channel_order(read_only image2d_array_depth_t image);
-#endif //cl_khr_depth_images
-#if defined(cl_khr_gl_msaa_sharing)
-int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_t image);
-int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_depth_t image);
-int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_t image);
-int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_depth_t image);
-#endif //cl_khr_gl_msaa_sharing
-
-int __ovld __cnfn get_image_channel_order(write_only image1d_t image);
-int __ovld __cnfn get_image_channel_order(write_only image1d_buffer_t image);
-int __ovld __cnfn get_image_channel_order(write_only image2d_t image);
-#ifdef cl_khr_3d_image_writes
-int __ovld __cnfn get_image_channel_order(write_only image3d_t image);
-#endif
-int __ovld __cnfn get_image_channel_order(write_only image1d_array_t image);
-int __ovld __cnfn get_image_channel_order(write_only image2d_array_t image);
-#ifdef cl_khr_depth_images
-int __ovld __cnfn get_image_channel_order(write_only image2d_depth_t image);
-int __ovld __cnfn get_image_channel_order(write_only image2d_array_depth_t image);
-#endif //cl_khr_depth_images
-#if defined(cl_khr_gl_msaa_sharing)
-int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_t image);
-int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_depth_t image);
-int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_t image);
-int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_depth_t image);
-#endif //cl_khr_gl_msaa_sharing
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-int __ovld __cnfn get_image_channel_order(read_write image1d_t image);
-int __ovld __cnfn get_image_channel_order(read_write image1d_buffer_t image);
-int __ovld __cnfn get_image_channel_order(read_write image2d_t image);
-int __ovld __cnfn get_image_channel_order(read_write image3d_t image);
-int __ovld __cnfn get_image_channel_order(read_write image1d_array_t image);
-int __ovld __cnfn get_image_channel_order(read_write image2d_array_t image);
-#ifdef cl_khr_depth_images
-int __ovld __cnfn get_image_channel_order(read_write image2d_depth_t image);
-int __ovld __cnfn get_image_channel_order(read_write image2d_array_depth_t image);
-#endif //cl_khr_depth_images
-#if defined(cl_khr_gl_msaa_sharing)
-int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_t image);
-int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_depth_t image);
-int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_t image);
-int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_depth_t image);
-#endif //cl_khr_gl_msaa_sharing
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-/**
- * Return the 2D image width and height as an int2
- * type. The width is returned in the x component, and
- * the height in the y component.
- */
-int2 __ovld __cnfn get_image_dim(read_only image2d_t image);
-int2 __ovld __cnfn get_image_dim(read_only image2d_array_t image);
-#ifdef cl_khr_depth_images
-int2 __ovld __cnfn get_image_dim(read_only image2d_array_depth_t image);
-int2 __ovld __cnfn get_image_dim(read_only image2d_depth_t image);
-#endif //cl_khr_depth_images
-#if defined(cl_khr_gl_msaa_sharing)
-int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_t image);
-int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_depth_t image);
-int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_t image);
-int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_depth_t image);
-#endif //cl_khr_gl_msaa_sharing
-
-int2 __ovld __cnfn get_image_dim(write_only image2d_t image);
-int2 __ovld __cnfn get_image_dim(write_only image2d_array_t image);
-#ifdef cl_khr_depth_images
-int2 __ovld __cnfn get_image_dim(write_only image2d_array_depth_t image);
-int2 __ovld __cnfn get_image_dim(write_only image2d_depth_t image);
-#endif //cl_khr_depth_images
-#if defined(cl_khr_gl_msaa_sharing)
-int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_t image);
-int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_depth_t image);
-int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_t image);
-int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_depth_t image);
-#endif //cl_khr_gl_msaa_sharing
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-int2 __ovld __cnfn get_image_dim(read_write image2d_t image);
-int2 __ovld __cnfn get_image_dim(read_write image2d_array_t image);
-#ifdef cl_khr_depth_images
-int2 __ovld __cnfn get_image_dim(read_write image2d_array_depth_t image);
-int2 __ovld __cnfn get_image_dim(read_write image2d_depth_t image);
-#endif //cl_khr_depth_images
-#if defined(cl_khr_gl_msaa_sharing)
-int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_t image);
-int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_depth_t image);
-int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_t image);
-int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_depth_t image);
-#endif //cl_khr_gl_msaa_sharing
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-/**
- * Return the 3D image width, height, and depth as an
- * int4 type. The width is returned in the x
- * component, height in the y component, depth in the z
- * component and the w component is 0.
- */
-int4 __ovld __cnfn get_image_dim(read_only image3d_t image);
-#ifdef cl_khr_3d_image_writes
-int4 __ovld __cnfn get_image_dim(write_only image3d_t image);
-#endif
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-int4 __ovld __cnfn get_image_dim(read_write image3d_t image);
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-/**
- * Return the image array size.
- */
-
-size_t __ovld __cnfn get_image_array_size(read_only image1d_array_t image_array);
-size_t __ovld __cnfn get_image_array_size(read_only image2d_array_t image_array);
-#ifdef cl_khr_depth_images
-size_t __ovld __cnfn get_image_array_size(read_only image2d_array_depth_t image_array);
-#endif //cl_khr_depth_images
-#if defined(cl_khr_gl_msaa_sharing)
-size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_t image_array);
-size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_depth_t image_array);
-#endif //cl_khr_gl_msaa_sharing
-
-size_t __ovld __cnfn get_image_array_size(write_only image1d_array_t image_array);
-size_t __ovld __cnfn get_image_array_size(write_only image2d_array_t image_array);
-#ifdef cl_khr_depth_images
-size_t __ovld __cnfn get_image_array_size(write_only image2d_array_depth_t image_array);
-#endif //cl_khr_depth_images
-#if defined(cl_khr_gl_msaa_sharing)
-size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_t image_array);
-size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_depth_t image_array);
-#endif //cl_khr_gl_msaa_sharing
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-size_t __ovld __cnfn get_image_array_size(read_write image1d_array_t image_array);
-size_t __ovld __cnfn get_image_array_size(read_write image2d_array_t image_array);
-#ifdef cl_khr_depth_images
-size_t __ovld __cnfn get_image_array_size(read_write image2d_array_depth_t image_array);
-#endif //cl_khr_depth_images
-#if defined(cl_khr_gl_msaa_sharing)
-size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_t image_array);
-size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_depth_t image_array);
-#endif //cl_khr_gl_msaa_sharing
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-/**
-* Return the number of samples associated with image
-*/
-#if defined(cl_khr_gl_msaa_sharing)
-int __ovld get_image_num_samples(read_only image2d_msaa_t image);
-int __ovld get_image_num_samples(read_only image2d_msaa_depth_t image);
-int __ovld get_image_num_samples(read_only image2d_array_msaa_t image);
-int __ovld get_image_num_samples(read_only image2d_array_msaa_depth_t image);
-
-int __ovld get_image_num_samples(write_only image2d_msaa_t image);
-int __ovld get_image_num_samples(write_only image2d_msaa_depth_t image);
-int __ovld get_image_num_samples(write_only image2d_array_msaa_t image);
-int __ovld get_image_num_samples(write_only image2d_array_msaa_depth_t image);
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-int __ovld get_image_num_samples(read_write image2d_msaa_t image);
-int __ovld get_image_num_samples(read_write image2d_msaa_depth_t image);
-int __ovld get_image_num_samples(read_write image2d_array_msaa_t image);
-int __ovld get_image_num_samples(read_write image2d_array_msaa_depth_t image);
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-#endif
-
-// OpenCL v2.0 s6.13.15 - Work-group Functions
-
-#if defined(__opencl_c_work_group_collective_functions)
-int __ovld __conv work_group_all(int predicate);
-int __ovld __conv work_group_any(int predicate);
-
-#ifdef cl_khr_fp16
-half __ovld __conv work_group_broadcast(half a, size_t local_id);
-half __ovld __conv work_group_broadcast(half a, size_t x, size_t y);
-half __ovld __conv work_group_broadcast(half a, size_t x, size_t y, size_t z);
-#endif
-int __ovld __conv work_group_broadcast(int a, size_t local_id);
-int __ovld __conv work_group_broadcast(int a, size_t x, size_t y);
-int __ovld __conv work_group_broadcast(int a, size_t x, size_t y, size_t z);
-uint __ovld __conv work_group_broadcast(uint a, size_t local_id);
-uint __ovld __conv work_group_broadcast(uint a, size_t x, size_t y);
-uint __ovld __conv work_group_broadcast(uint a, size_t x, size_t y, size_t z);
-long __ovld __conv work_group_broadcast(long a, size_t local_id);
-long __ovld __conv work_group_broadcast(long a, size_t x, size_t y);
-long __ovld __conv work_group_broadcast(long a, size_t x, size_t y, size_t z);
-ulong __ovld __conv work_group_broadcast(ulong a, size_t local_id);
-ulong __ovld __conv work_group_broadcast(ulong a, size_t x, size_t y);
-ulong __ovld __conv work_group_broadcast(ulong a, size_t x, size_t y, size_t z);
-float __ovld __conv work_group_broadcast(float a, size_t local_id);
-float __ovld __conv work_group_broadcast(float a, size_t x, size_t y);
-float __ovld __conv work_group_broadcast(float a, size_t x, size_t y, size_t z);
-#ifdef cl_khr_fp64
-double __ovld __conv work_group_broadcast(double a, size_t local_id);
-double __ovld __conv work_group_broadcast(double a, size_t x, size_t y);
-double __ovld __conv work_group_broadcast(double a, size_t x, size_t y, size_t z);
-#endif //cl_khr_fp64
-
-#ifdef cl_khr_fp16
-half __ovld __conv work_group_reduce_add(half x);
-half __ovld __conv work_group_reduce_min(half x);
-half __ovld __conv work_group_reduce_max(half x);
-half __ovld __conv work_group_scan_exclusive_add(half x);
-half __ovld __conv work_group_scan_exclusive_min(half x);
-half __ovld __conv work_group_scan_exclusive_max(half x);
-half __ovld __conv work_group_scan_inclusive_add(half x);
-half __ovld __conv work_group_scan_inclusive_min(half x);
-half __ovld __conv work_group_scan_inclusive_max(half x);
-#endif
-int __ovld __conv work_group_reduce_add(int x);
-int __ovld __conv work_group_reduce_min(int x);
-int __ovld __conv work_group_reduce_max(int x);
-int __ovld __conv work_group_scan_exclusive_add(int x);
-int __ovld __conv work_group_scan_exclusive_min(int x);
-int __ovld __conv work_group_scan_exclusive_max(int x);
-int __ovld __conv work_group_scan_inclusive_add(int x);
-int __ovld __conv work_group_scan_inclusive_min(int x);
-int __ovld __conv work_group_scan_inclusive_max(int x);
-uint __ovld __conv work_group_reduce_add(uint x);
-uint __ovld __conv work_group_reduce_min(uint x);
-uint __ovld __conv work_group_reduce_max(uint x);
-uint __ovld __conv work_group_scan_exclusive_add(uint x);
-uint __ovld __conv work_group_scan_exclusive_min(uint x);
-uint __ovld __conv work_group_scan_exclusive_max(uint x);
-uint __ovld __conv work_group_scan_inclusive_add(uint x);
-uint __ovld __conv work_group_scan_inclusive_min(uint x);
-uint __ovld __conv work_group_scan_inclusive_max(uint x);
-long __ovld __conv work_group_reduce_add(long x);
-long __ovld __conv work_group_reduce_min(long x);
-long __ovld __conv work_group_reduce_max(long x);
-long __ovld __conv work_group_scan_exclusive_add(long x);
-long __ovld __conv work_group_scan_exclusive_min(long x);
-long __ovld __conv work_group_scan_exclusive_max(long x);
-long __ovld __conv work_group_scan_inclusive_add(long x);
-long __ovld __conv work_group_scan_inclusive_min(long x);
-long __ovld __conv work_group_scan_inclusive_max(long x);
-ulong __ovld __conv work_group_reduce_add(ulong x);
-ulong __ovld __conv work_group_reduce_min(ulong x);
-ulong __ovld __conv work_group_reduce_max(ulong x);
-ulong __ovld __conv work_group_scan_exclusive_add(ulong x);
-ulong __ovld __conv work_group_scan_exclusive_min(ulong x);
-ulong __ovld __conv work_group_scan_exclusive_max(ulong x);
-ulong __ovld __conv work_group_scan_inclusive_add(ulong x);
-ulong __ovld __conv work_group_scan_inclusive_min(ulong x);
-ulong __ovld __conv work_group_scan_inclusive_max(ulong x);
-float __ovld __conv work_group_reduce_add(float x);
-float __ovld __conv work_group_reduce_min(float x);
-float __ovld __conv work_group_reduce_max(float x);
-float __ovld __conv work_group_scan_exclusive_add(float x);
-float __ovld __conv work_group_scan_exclusive_min(float x);
-float __ovld __conv work_group_scan_exclusive_max(float x);
-float __ovld __conv work_group_scan_inclusive_add(float x);
-float __ovld __conv work_group_scan_inclusive_min(float x);
-float __ovld __conv work_group_scan_inclusive_max(float x);
-#ifdef cl_khr_fp64
-double __ovld __conv work_group_reduce_add(double x);
-double __ovld __conv work_group_reduce_min(double x);
-double __ovld __conv work_group_reduce_max(double x);
-double __ovld __conv work_group_scan_exclusive_add(double x);
-double __ovld __conv work_group_scan_exclusive_min(double x);
-double __ovld __conv work_group_scan_exclusive_max(double x);
-double __ovld __conv work_group_scan_inclusive_add(double x);
-double __ovld __conv work_group_scan_inclusive_min(double x);
-double __ovld __conv work_group_scan_inclusive_max(double x);
-#endif //cl_khr_fp64
-
-#endif //defined(__opencl_c_work_group_collective_functions)
-
-// OpenCL v2.0 s6.13.16 - Pipe Functions
-#if defined(__opencl_c_pipes)
-bool __ovld is_valid_reserve_id(reserve_id_t reserve_id);
-#endif //defined(__opencl_c_pipes)
-
-
-// OpenCL v2.0 s6.13.17 - Enqueue Kernels
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-ndrange_t __ovld ndrange_1D(size_t);
-ndrange_t __ovld ndrange_1D(size_t, size_t);
-ndrange_t __ovld ndrange_1D(size_t, size_t, size_t);
-
-ndrange_t __ovld ndrange_2D(const size_t[2]);
-ndrange_t __ovld ndrange_2D(const size_t[2], const size_t[2]);
-ndrange_t __ovld ndrange_2D(const size_t[2], const size_t[2], const size_t[2]);
-
-ndrange_t __ovld ndrange_3D(const size_t[3]);
-ndrange_t __ovld ndrange_3D(const size_t[3], const size_t[3]);
-ndrange_t __ovld ndrange_3D(const size_t[3], const size_t[3], const size_t[3]);
-
-int __ovld enqueue_marker(queue_t, uint, const clk_event_t*, clk_event_t*);
-
-void __ovld retain_event(clk_event_t);
-
-void __ovld release_event(clk_event_t);
-
-clk_event_t __ovld create_user_event(void);
-
-void __ovld set_user_event_status(clk_event_t e, int state);
-
-bool __ovld is_valid_event (clk_event_t event);
-
-void __ovld capture_event_profiling_info(clk_event_t, clk_profiling_info, __global void* value);
-
-queue_t __ovld get_default_queue(void);
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-// OpenCL Extension v2.0 s9.17 - Sub-groups
-
-#if defined(cl_intel_subgroups) || defined(cl_khr_subgroups) || defined(__opencl_c_subgroups)
-// Shared Sub Group Functions
-uint    __ovld get_sub_group_size(void);
-uint    __ovld get_max_sub_group_size(void);
-uint    __ovld get_num_sub_groups(void);
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-uint    __ovld get_enqueued_num_sub_groups(void);
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-uint    __ovld get_sub_group_id(void);
-uint    __ovld get_sub_group_local_id(void);
-
-void    __ovld __conv sub_group_barrier(cl_mem_fence_flags flags);
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-void    __ovld __conv sub_group_barrier(cl_mem_fence_flags flags, memory_scope scope);
-#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-int     __ovld __conv sub_group_all(int predicate);
-int     __ovld __conv sub_group_any(int predicate);
-
-int     __ovld __conv sub_group_broadcast(int   x, uint sub_group_local_id);
-uint    __ovld __conv sub_group_broadcast(uint  x, uint sub_group_local_id);
-long    __ovld __conv sub_group_broadcast(long  x, uint sub_group_local_id);
-ulong   __ovld __conv sub_group_broadcast(ulong x, uint sub_group_local_id);
-float   __ovld __conv sub_group_broadcast(float x, uint sub_group_local_id);
-
-int     __ovld __conv sub_group_reduce_add(int   x);
-uint    __ovld __conv sub_group_reduce_add(uint  x);
-long    __ovld __conv sub_group_reduce_add(long  x);
-ulong   __ovld __conv sub_group_reduce_add(ulong x);
-float   __ovld __conv sub_group_reduce_add(float x);
-int     __ovld __conv sub_group_reduce_min(int   x);
-uint    __ovld __conv sub_group_reduce_min(uint  x);
-long    __ovld __conv sub_group_reduce_min(long  x);
-ulong   __ovld __conv sub_group_reduce_min(ulong x);
-float   __ovld __conv sub_group_reduce_min(float x);
-int     __ovld __conv sub_group_reduce_max(int   x);
-uint    __ovld __conv sub_group_reduce_max(uint  x);
-long    __ovld __conv sub_group_reduce_max(long  x);
-ulong   __ovld __conv sub_group_reduce_max(ulong x);
-float   __ovld __conv sub_group_reduce_max(float x);
-
-int     __ovld __conv sub_group_scan_exclusive_add(int   x);
-uint    __ovld __conv sub_group_scan_exclusive_add(uint  x);
-long    __ovld __conv sub_group_scan_exclusive_add(long  x);
-ulong   __ovld __conv sub_group_scan_exclusive_add(ulong x);
-float   __ovld __conv sub_group_scan_exclusive_add(float x);
-int     __ovld __conv sub_group_scan_exclusive_min(int   x);
-uint    __ovld __conv sub_group_scan_exclusive_min(uint  x);
-long    __ovld __conv sub_group_scan_exclusive_min(long  x);
-ulong   __ovld __conv sub_group_scan_exclusive_min(ulong x);
-float   __ovld __conv sub_group_scan_exclusive_min(float x);
-int     __ovld __conv sub_group_scan_exclusive_max(int   x);
-uint    __ovld __conv sub_group_scan_exclusive_max(uint  x);
-long    __ovld __conv sub_group_scan_exclusive_max(long  x);
-ulong   __ovld __conv sub_group_scan_exclusive_max(ulong x);
-float   __ovld __conv sub_group_scan_exclusive_max(float x);
-
-int     __ovld __conv sub_group_scan_inclusive_add(int   x);
-uint    __ovld __conv sub_group_scan_inclusive_add(uint  x);
-long    __ovld __conv sub_group_scan_inclusive_add(long  x);
-ulong   __ovld __conv sub_group_scan_inclusive_add(ulong x);
-float   __ovld __conv sub_group_scan_inclusive_add(float x);
-int     __ovld __conv sub_group_scan_inclusive_min(int   x);
-uint    __ovld __conv sub_group_scan_inclusive_min(uint  x);
-long    __ovld __conv sub_group_scan_inclusive_min(long  x);
-ulong   __ovld __conv sub_group_scan_inclusive_min(ulong x);
-float   __ovld __conv sub_group_scan_inclusive_min(float x);
-int     __ovld __conv sub_group_scan_inclusive_max(int   x);
-uint    __ovld __conv sub_group_scan_inclusive_max(uint  x);
-long    __ovld __conv sub_group_scan_inclusive_max(long  x);
-ulong   __ovld __conv sub_group_scan_inclusive_max(ulong x);
-float   __ovld __conv sub_group_scan_inclusive_max(float x);
-
-#ifdef cl_khr_fp16
-half    __ovld __conv sub_group_broadcast(half x, uint sub_group_local_id);
-half    __ovld __conv sub_group_reduce_add(half x);
-half    __ovld __conv sub_group_reduce_min(half x);
-half    __ovld __conv sub_group_reduce_max(half x);
-half    __ovld __conv sub_group_scan_exclusive_add(half x);
-half    __ovld __conv sub_group_scan_exclusive_min(half x);
-half    __ovld __conv sub_group_scan_exclusive_max(half x);
-half    __ovld __conv sub_group_scan_inclusive_add(half x);
-half    __ovld __conv sub_group_scan_inclusive_min(half x);
-half    __ovld __conv sub_group_scan_inclusive_max(half x);
-#endif //cl_khr_fp16
-
-#ifdef cl_khr_fp64
-double  __ovld __conv sub_group_broadcast(double x, uint sub_group_local_id);
-double  __ovld __conv sub_group_reduce_add(double x);
-double  __ovld __conv sub_group_reduce_min(double x);
-double  __ovld __conv sub_group_reduce_max(double x);
-double  __ovld __conv sub_group_scan_exclusive_add(double x);
-double  __ovld __conv sub_group_scan_exclusive_min(double x);
-double  __ovld __conv sub_group_scan_exclusive_max(double x);
-double  __ovld __conv sub_group_scan_inclusive_add(double x);
-double  __ovld __conv sub_group_scan_inclusive_min(double x);
-double  __ovld __conv sub_group_scan_inclusive_max(double x);
-#endif //cl_khr_fp64
-
-#endif //cl_khr_subgroups cl_intel_subgroups __opencl_c_subgroups
-
-#if defined(cl_khr_subgroup_extended_types)
-char __ovld __conv sub_group_broadcast( char value, uint index );
-char2 __ovld __conv sub_group_broadcast( char2 value, uint index );
-char3 __ovld __conv sub_group_broadcast( char3 value, uint index );
-char4 __ovld __conv sub_group_broadcast( char4 value, uint index );
-char8 __ovld __conv sub_group_broadcast( char8 value, uint index );
-char16 __ovld __conv sub_group_broadcast( char16 value, uint index );
-
-uchar __ovld __conv sub_group_broadcast( uchar value, uint index );
-uchar2 __ovld __conv sub_group_broadcast( uchar2 value, uint index );
-uchar3 __ovld __conv sub_group_broadcast( uchar3 value, uint index );
-uchar4 __ovld __conv sub_group_broadcast( uchar4 value, uint index );
-uchar8 __ovld __conv sub_group_broadcast( uchar8 value, uint index );
-uchar16 __ovld __conv sub_group_broadcast( uchar16 value, uint index );
-
-short __ovld __conv sub_group_broadcast( short value, uint index );
-short2 __ovld __conv sub_group_broadcast( short2 value, uint index );
-short3 __ovld __conv sub_group_broadcast( short3 value, uint index );
-short4 __ovld __conv sub_group_broadcast( short4 value, uint index );
-short8 __ovld __conv sub_group_broadcast( short8 value, uint index );
-short16 __ovld __conv sub_group_broadcast( short16 value, uint index );
-
-ushort __ovld __conv sub_group_broadcast( ushort value, uint index );
-ushort2 __ovld __conv sub_group_broadcast( ushort2 value, uint index );
-ushort3 __ovld __conv sub_group_broadcast( ushort3 value, uint index );
-ushort4 __ovld __conv sub_group_broadcast( ushort4 value, uint index );
-ushort8 __ovld __conv sub_group_broadcast( ushort8 value, uint index );
-ushort16 __ovld __conv sub_group_broadcast( ushort16 value, uint index );
-
-// scalar int broadcast is part of cl_khr_subgroups
-int2 __ovld __conv sub_group_broadcast( int2 value, uint index );
-int3 __ovld __conv sub_group_broadcast( int3 value, uint index );
-int4 __ovld __conv sub_group_broadcast( int4 value, uint index );
-int8 __ovld __conv sub_group_broadcast( int8 value, uint index );
-int16 __ovld __conv sub_group_broadcast( int16 value, uint index );
-
-// scalar uint broadcast is part of cl_khr_subgroups
-uint2 __ovld __conv sub_group_broadcast( uint2 value, uint index );
-uint3 __ovld __conv sub_group_broadcast( uint3 value, uint index );
-uint4 __ovld __conv sub_group_broadcast( uint4 value, uint index );
-uint8 __ovld __conv sub_group_broadcast( uint8 value, uint index );
-uint16 __ovld __conv sub_group_broadcast( uint16 value, uint index );
-
-// scalar long broadcast is part of cl_khr_subgroups
-long2 __ovld __conv sub_group_broadcast( long2 value, uint index );
-long3 __ovld __conv sub_group_broadcast( long3 value, uint index );
-long4 __ovld __conv sub_group_broadcast( long4 value, uint index );
-long8 __ovld __conv sub_group_broadcast( long8 value, uint index );
-long16 __ovld __conv sub_group_broadcast( long16 value, uint index );
-
-// scalar ulong broadcast is part of cl_khr_subgroups
-ulong2 __ovld __conv sub_group_broadcast( ulong2 value, uint index );
-ulong3 __ovld __conv sub_group_broadcast( ulong3 value, uint index );
-ulong4 __ovld __conv sub_group_broadcast( ulong4 value, uint index );
-ulong8 __ovld __conv sub_group_broadcast( ulong8 value, uint index );
-ulong16 __ovld __conv sub_group_broadcast( ulong16 value, uint index );
-
-// scalar float broadcast is part of cl_khr_subgroups
-float2 __ovld __conv sub_group_broadcast( float2 value, uint index );
-float3 __ovld __conv sub_group_broadcast( float3 value, uint index );
-float4 __ovld __conv sub_group_broadcast( float4 value, uint index );
-float8 __ovld __conv sub_group_broadcast( float8 value, uint index );
-float16 __ovld __conv sub_group_broadcast( float16 value, uint index );
-
-char __ovld __conv sub_group_reduce_add( char value );
-uchar __ovld __conv sub_group_reduce_add( uchar value );
-short __ovld __conv sub_group_reduce_add( short value );
-ushort __ovld __conv sub_group_reduce_add( ushort value );
-
-char __ovld __conv sub_group_reduce_min( char value );
-uchar __ovld __conv sub_group_reduce_min( uchar value );
-short __ovld __conv sub_group_reduce_min( short value );
-ushort __ovld __conv sub_group_reduce_min( ushort value );
-
-char __ovld __conv sub_group_reduce_max( char value );
-uchar __ovld __conv sub_group_reduce_max( uchar value );
-short __ovld __conv sub_group_reduce_max( short value );
-ushort __ovld __conv sub_group_reduce_max( ushort value );
-
-char __ovld __conv sub_group_scan_inclusive_add( char value );
-uchar __ovld __conv sub_group_scan_inclusive_add( uchar value );
-short __ovld __conv sub_group_scan_inclusive_add( short value );
-ushort __ovld __conv sub_group_scan_inclusive_add( ushort value );
-
-char __ovld __conv sub_group_scan_inclusive_min( char value );
-uchar __ovld __conv sub_group_scan_inclusive_min( uchar value );
-short __ovld __conv sub_group_scan_inclusive_min( short value );
-ushort __ovld __conv sub_group_scan_inclusive_min( ushort value );
-
-char __ovld __conv sub_group_scan_inclusive_max( char value );
-uchar __ovld __conv sub_group_scan_inclusive_max( uchar value );
-short __ovld __conv sub_group_scan_inclusive_max( short value );
-ushort __ovld __conv sub_group_scan_inclusive_max( ushort value );
-
-char __ovld __conv sub_group_scan_exclusive_add( char value );
-uchar __ovld __conv sub_group_scan_exclusive_add( uchar value );
-short __ovld __conv sub_group_scan_exclusive_add( short value );
-ushort __ovld __conv sub_group_scan_exclusive_add( ushort value );
-
-char __ovld __conv sub_group_scan_exclusive_min( char value );
-uchar __ovld __conv sub_group_scan_exclusive_min( uchar value );
-short __ovld __conv sub_group_scan_exclusive_min( short value );
-ushort __ovld __conv sub_group_scan_exclusive_min( ushort value );
-
-char __ovld __conv sub_group_scan_exclusive_max( char value );
-uchar __ovld __conv sub_group_scan_exclusive_max( uchar value );
-short __ovld __conv sub_group_scan_exclusive_max( short value );
-ushort __ovld __conv sub_group_scan_exclusive_max( ushort value );
-
-#if defined(cl_khr_fp16)
-// scalar half broadcast is part of cl_khr_subgroups
-half2 __ovld __conv sub_group_broadcast( half2 value, uint index );
-half3 __ovld __conv sub_group_broadcast( half3 value, uint index );
-half4 __ovld __conv sub_group_broadcast( half4 value, uint index );
-half8 __ovld __conv sub_group_broadcast( half8 value, uint index );
-half16 __ovld __conv sub_group_broadcast( half16 value, uint index );
-#endif  // cl_khr_fp16
-
-#if defined(cl_khr_fp64)
-// scalar double broadcast is part of cl_khr_subgroups
-double2 __ovld __conv sub_group_broadcast( double2 value, uint index );
-double3 __ovld __conv sub_group_broadcast( double3 value, uint index );
-double4 __ovld __conv sub_group_broadcast( double4 value, uint index );
-double8 __ovld __conv sub_group_broadcast( double8 value, uint index );
-double16 __ovld __conv sub_group_broadcast( double16 value, uint index );
-#endif  // cl_khr_fp64
-
-#endif  // cl_khr_subgroup_extended_types
-
-#if defined(cl_khr_subgroup_non_uniform_vote)
-int     __ovld sub_group_elect(void);
-int     __ovld sub_group_non_uniform_all( int predicate );
-int     __ovld sub_group_non_uniform_any( int predicate );
-
-int     __ovld sub_group_non_uniform_all_equal( char value );
-int     __ovld sub_group_non_uniform_all_equal( uchar value );
-int     __ovld sub_group_non_uniform_all_equal( short value );
-int     __ovld sub_group_non_uniform_all_equal( ushort value );
-int     __ovld sub_group_non_uniform_all_equal( int value );
-int     __ovld sub_group_non_uniform_all_equal( uint value );
-int     __ovld sub_group_non_uniform_all_equal( long value );
-int     __ovld sub_group_non_uniform_all_equal( ulong value );
-int     __ovld sub_group_non_uniform_all_equal( float value );
-
-#if defined(cl_khr_fp16)
-int     __ovld sub_group_non_uniform_all_equal( half value );
-#endif // cl_khr_fp16
-
-#if defined(cl_khr_fp64)
-int     __ovld sub_group_non_uniform_all_equal( double value );
-#endif // cl_khr_fp64
-
-#endif // cl_khr_subgroup_non_uniform_vote
-
-#if defined(cl_khr_subgroup_ballot)
-char    __ovld sub_group_non_uniform_broadcast( char value, uint index );
-char2   __ovld sub_group_non_uniform_broadcast( char2 value, uint index );
-char3   __ovld sub_group_non_uniform_broadcast( char3 value, uint index );
-char4   __ovld sub_group_non_uniform_broadcast( char4 value, uint index );
-char8   __ovld sub_group_non_uniform_broadcast( char8 value, uint index );
-char16  __ovld sub_group_non_uniform_broadcast( char16 value, uint index );
-
-uchar   __ovld sub_group_non_uniform_broadcast( uchar value, uint index );
-uchar2  __ovld sub_group_non_uniform_broadcast( uchar2 value, uint index );
-uchar3  __ovld sub_group_non_uniform_broadcast( uchar3 value, uint index );
-uchar4  __ovld sub_group_non_uniform_broadcast( uchar4 value, uint index );
-uchar8  __ovld sub_group_non_uniform_broadcast( uchar8 value, uint index );
-uchar16 __ovld sub_group_non_uniform_broadcast( uchar16 value, uint index );
-
-short   __ovld sub_group_non_uniform_broadcast( short value, uint index );
-short2  __ovld sub_group_non_uniform_broadcast( short2 value, uint index );
-short3  __ovld sub_group_non_uniform_broadcast( short3 value, uint index );
-short4  __ovld sub_group_non_uniform_broadcast( short4 value, uint index );
-short8  __ovld sub_group_non_uniform_broadcast( short8 value, uint index );
-short16 __ovld sub_group_non_uniform_broadcast( short16 value, uint index );
-
-ushort  __ovld sub_group_non_uniform_broadcast( ushort value, uint index );
-ushort2 __ovld sub_group_non_uniform_broadcast( ushort2 value, uint index );
-ushort3 __ovld sub_group_non_uniform_broadcast( ushort3 value, uint index );
-ushort4 __ovld sub_group_non_uniform_broadcast( ushort4 value, uint index );
-ushort8 __ovld sub_group_non_uniform_broadcast( ushort8 value, uint index );
-ushort16 __ovld sub_group_non_uniform_broadcast( ushort16 value, uint index );
-
-int     __ovld sub_group_non_uniform_broadcast( int value, uint index );
-int2    __ovld sub_group_non_uniform_broadcast( int2 value, uint index );
-int3    __ovld sub_group_non_uniform_broadcast( int3 value, uint index );
-int4    __ovld sub_group_non_uniform_broadcast( int4 value, uint index );
-int8    __ovld sub_group_non_uniform_broadcast( int8 value, uint index );
-int16   __ovld sub_group_non_uniform_broadcast( int16 value, uint index );
-
-uint    __ovld sub_group_non_uniform_broadcast( uint value, uint index );
-uint2   __ovld sub_group_non_uniform_broadcast( uint2 value, uint index );
-uint3   __ovld sub_group_non_uniform_broadcast( uint3 value, uint index );
-uint4   __ovld sub_group_non_uniform_broadcast( uint4 value, uint index );
-uint8   __ovld sub_group_non_uniform_broadcast( uint8 value, uint index );
-uint16  __ovld sub_group_non_uniform_broadcast( uint16 value, uint index );
-
-long    __ovld sub_group_non_uniform_broadcast( long value, uint index );
-long2   __ovld sub_group_non_uniform_broadcast( long2 value, uint index );
-long3   __ovld sub_group_non_uniform_broadcast( long3 value, uint index );
-long4   __ovld sub_group_non_uniform_broadcast( long4 value, uint index );
-long8   __ovld sub_group_non_uniform_broadcast( long8 value, uint index );
-long16  __ovld sub_group_non_uniform_broadcast( long16 value, uint index );
-
-ulong   __ovld sub_group_non_uniform_broadcast( ulong value, uint index );
-ulong2  __ovld sub_group_non_uniform_broadcast( ulong2 value, uint index );
-ulong3  __ovld sub_group_non_uniform_broadcast( ulong3 value, uint index );
-ulong4  __ovld sub_group_non_uniform_broadcast( ulong4 value, uint index );
-ulong8  __ovld sub_group_non_uniform_broadcast( ulong8 value, uint index );
-ulong16 __ovld sub_group_non_uniform_broadcast( ulong16 value, uint index );
-
-float   __ovld sub_group_non_uniform_broadcast( float value, uint index );
-float2  __ovld sub_group_non_uniform_broadcast( float2 value, uint index );
-float3  __ovld sub_group_non_uniform_broadcast( float3 value, uint index );
-float4  __ovld sub_group_non_uniform_broadcast( float4 value, uint index );
-float8  __ovld sub_group_non_uniform_broadcast( float8 value, uint index );
-float16 __ovld sub_group_non_uniform_broadcast( float16 value, uint index );
-
-char    __ovld sub_group_broadcast_first( char value );
-uchar   __ovld sub_group_broadcast_first( uchar value );
-short   __ovld sub_group_broadcast_first( short value );
-ushort  __ovld sub_group_broadcast_first( ushort value );
-int     __ovld sub_group_broadcast_first( int value );
-uint    __ovld sub_group_broadcast_first( uint value );
-long    __ovld sub_group_broadcast_first( long value );
-ulong   __ovld sub_group_broadcast_first( ulong value );
-float   __ovld sub_group_broadcast_first( float value );
-
-uint4   __ovld sub_group_ballot( int predicate );
-int     __ovld __cnfn sub_group_inverse_ballot( uint4 value );
-int     __ovld __cnfn sub_group_ballot_bit_extract( uint4 value, uint index );
-uint    __ovld __cnfn sub_group_ballot_bit_count( uint4 value );
-
-uint    __ovld sub_group_ballot_inclusive_scan( uint4 value );
-uint    __ovld sub_group_ballot_exclusive_scan( uint4 value );
-uint    __ovld sub_group_ballot_find_lsb( uint4 value );
-uint    __ovld sub_group_ballot_find_msb( uint4 value );
-
-uint4   __ovld __cnfn get_sub_group_eq_mask(void);
-uint4   __ovld __cnfn get_sub_group_ge_mask(void);
-uint4   __ovld __cnfn get_sub_group_gt_mask(void);
-uint4   __ovld __cnfn get_sub_group_le_mask(void);
-uint4   __ovld __cnfn get_sub_group_lt_mask(void);
-
-#if defined(cl_khr_fp16)
-half    __ovld sub_group_non_uniform_broadcast( half value, uint index );
-half2   __ovld sub_group_non_uniform_broadcast( half2 value, uint index );
-half3   __ovld sub_group_non_uniform_broadcast( half3 value, uint index );
-half4   __ovld sub_group_non_uniform_broadcast( half4 value, uint index );
-half8   __ovld sub_group_non_uniform_broadcast( half8 value, uint index );
-half16  __ovld sub_group_non_uniform_broadcast( half16 value, uint index );
-
-half    __ovld sub_group_broadcast_first( half value );
-#endif // cl_khr_fp16
-
-#if defined(cl_khr_fp64)
-double   __ovld sub_group_non_uniform_broadcast( double value, uint index );
-double2  __ovld sub_group_non_uniform_broadcast( double2 value, uint index );
-double3  __ovld sub_group_non_uniform_broadcast( double3 value, uint index );
-double4  __ovld sub_group_non_uniform_broadcast( double4 value, uint index );
-double8  __ovld sub_group_non_uniform_broadcast( double8 value, uint index );
-double16 __ovld sub_group_non_uniform_broadcast( double16 value, uint index );
-
-double   __ovld sub_group_broadcast_first( double value );
-#endif // cl_khr_fp64
-
-#endif // cl_khr_subgroup_ballot
-
-#if defined(cl_khr_subgroup_non_uniform_arithmetic)
-char    __ovld sub_group_non_uniform_reduce_add( char value );
-uchar   __ovld sub_group_non_uniform_reduce_add( uchar value );
-short   __ovld sub_group_non_uniform_reduce_add( short value );
-ushort  __ovld sub_group_non_uniform_reduce_add( ushort value );
-int     __ovld sub_group_non_uniform_reduce_add( int value );
-uint    __ovld sub_group_non_uniform_reduce_add( uint value );
-long    __ovld sub_group_non_uniform_reduce_add( long value );
-ulong   __ovld sub_group_non_uniform_reduce_add( ulong value );
-float   __ovld sub_group_non_uniform_reduce_add( float value );
-
-char    __ovld sub_group_non_uniform_reduce_mul( char value );
-uchar   __ovld sub_group_non_uniform_reduce_mul( uchar value );
-short   __ovld sub_group_non_uniform_reduce_mul( short value );
-ushort  __ovld sub_group_non_uniform_reduce_mul( ushort value );
-int     __ovld sub_group_non_uniform_reduce_mul( int value );
-uint    __ovld sub_group_non_uniform_reduce_mul( uint value );
-long    __ovld sub_group_non_uniform_reduce_mul( long value );
-ulong   __ovld sub_group_non_uniform_reduce_mul( ulong value );
-float   __ovld sub_group_non_uniform_reduce_mul( float value );
-
-char    __ovld sub_group_non_uniform_reduce_min( char value );
-uchar   __ovld sub_group_non_uniform_reduce_min( uchar value );
-short   __ovld sub_group_non_uniform_reduce_min( short value );
-ushort  __ovld sub_group_non_uniform_reduce_min( ushort value );
-int     __ovld sub_group_non_uniform_reduce_min( int value );
-uint    __ovld sub_group_non_uniform_reduce_min( uint value );
-long    __ovld sub_group_non_uniform_reduce_min( long value );
-ulong   __ovld sub_group_non_uniform_reduce_min( ulong value );
-float   __ovld sub_group_non_uniform_reduce_min( float value );
-
-char    __ovld sub_group_non_uniform_reduce_max( char value );
-uchar   __ovld sub_group_non_uniform_reduce_max( uchar value );
-short   __ovld sub_group_non_uniform_reduce_max( short value );
-ushort  __ovld sub_group_non_uniform_reduce_max( ushort value );
-int     __ovld sub_group_non_uniform_reduce_max( int value );
-uint    __ovld sub_group_non_uniform_reduce_max( uint value );
-long    __ovld sub_group_non_uniform_reduce_max( long value );
-ulong   __ovld sub_group_non_uniform_reduce_max( ulong value );
-float   __ovld sub_group_non_uniform_reduce_max( float value );
-
-char    __ovld sub_group_non_uniform_scan_inclusive_add( char value );
-uchar   __ovld sub_group_non_uniform_scan_inclusive_add( uchar value );
-short   __ovld sub_group_non_uniform_scan_inclusive_add( short value );
-ushort  __ovld sub_group_non_uniform_scan_inclusive_add( ushort value );
-int     __ovld sub_group_non_uniform_scan_inclusive_add( int value );
-uint    __ovld sub_group_non_uniform_scan_inclusive_add( uint value );
-long    __ovld sub_group_non_uniform_scan_inclusive_add( long value );
-ulong   __ovld sub_group_non_uniform_scan_inclusive_add( ulong value );
-float   __ovld sub_group_non_uniform_scan_inclusive_add( float value );
-
-char    __ovld sub_group_non_uniform_scan_inclusive_mul( char value );
-uchar   __ovld sub_group_non_uniform_scan_inclusive_mul( uchar value );
-short   __ovld sub_group_non_uniform_scan_inclusive_mul( short value );
-ushort  __ovld sub_group_non_uniform_scan_inclusive_mul( ushort value );
-int     __ovld sub_group_non_uniform_scan_inclusive_mul( int value );
-uint    __ovld sub_group_non_uniform_scan_inclusive_mul( uint value );
-long    __ovld sub_group_non_uniform_scan_inclusive_mul( long value );
-ulong   __ovld sub_group_non_uniform_scan_inclusive_mul( ulong value );
-float   __ovld sub_group_non_uniform_scan_inclusive_mul( float value );
-
-char    __ovld sub_group_non_uniform_scan_inclusive_min( char value );
-uchar   __ovld sub_group_non_uniform_scan_inclusive_min( uchar value );
-short   __ovld sub_group_non_uniform_scan_inclusive_min( short value );
-ushort  __ovld sub_group_non_uniform_scan_inclusive_min( ushort value );
-int     __ovld sub_group_non_uniform_scan_inclusive_min( int value );
-uint    __ovld sub_group_non_uniform_scan_inclusive_min( uint value );
-long    __ovld sub_group_non_uniform_scan_inclusive_min( long value );
-ulong   __ovld sub_group_non_uniform_scan_inclusive_min( ulong value );
-float   __ovld sub_group_non_uniform_scan_inclusive_min( float value );
-
-char    __ovld sub_group_non_uniform_scan_inclusive_max( char value );
-uchar   __ovld sub_group_non_uniform_scan_inclusive_max( uchar value );
-short   __ovld sub_group_non_uniform_scan_inclusive_max( short value );
-ushort  __ovld sub_group_non_uniform_scan_inclusive_max( ushort value );
-int     __ovld sub_group_non_uniform_scan_inclusive_max( int value );
-uint    __ovld sub_group_non_uniform_scan_inclusive_max( uint value );
-long    __ovld sub_group_non_uniform_scan_inclusive_max( long value );
-ulong   __ovld sub_group_non_uniform_scan_inclusive_max( ulong value );
-float   __ovld sub_group_non_uniform_scan_inclusive_max( float value );
-
-char    __ovld sub_group_non_uniform_scan_exclusive_add( char value );
-uchar   __ovld sub_group_non_uniform_scan_exclusive_add( uchar value );
-short   __ovld sub_group_non_uniform_scan_exclusive_add( short value );
-ushort  __ovld sub_group_non_uniform_scan_exclusive_add( ushort value );
-int     __ovld sub_group_non_uniform_scan_exclusive_add( int value );
-uint    __ovld sub_group_non_uniform_scan_exclusive_add( uint value );
-long    __ovld sub_group_non_uniform_scan_exclusive_add( long value );
-ulong   __ovld sub_group_non_uniform_scan_exclusive_add( ulong value );
-float   __ovld sub_group_non_uniform_scan_exclusive_add( float value );
-
-char    __ovld sub_group_non_uniform_scan_exclusive_mul( char value );
-uchar   __ovld sub_group_non_uniform_scan_exclusive_mul( uchar value );
-short   __ovld sub_group_non_uniform_scan_exclusive_mul( short value );
-ushort  __ovld sub_group_non_uniform_scan_exclusive_mul( ushort value );
-int     __ovld sub_group_non_uniform_scan_exclusive_mul( int value );
-uint    __ovld sub_group_non_uniform_scan_exclusive_mul( uint value );
-long    __ovld sub_group_non_uniform_scan_exclusive_mul( long value );
-ulong   __ovld sub_group_non_uniform_scan_exclusive_mul( ulong value );
-float   __ovld sub_group_non_uniform_scan_exclusive_mul( float value );
-
-char    __ovld sub_group_non_uniform_scan_exclusive_min( char value );
-uchar   __ovld sub_group_non_uniform_scan_exclusive_min( uchar value );
-short   __ovld sub_group_non_uniform_scan_exclusive_min( short value );
-ushort  __ovld sub_group_non_uniform_scan_exclusive_min( ushort value );
-int     __ovld sub_group_non_uniform_scan_exclusive_min( int value );
-uint    __ovld sub_group_non_uniform_scan_exclusive_min( uint value );
-long    __ovld sub_group_non_uniform_scan_exclusive_min( long value );
-ulong   __ovld sub_group_non_uniform_scan_exclusive_min( ulong value );
-float   __ovld sub_group_non_uniform_scan_exclusive_min( float value );
-
-char    __ovld sub_group_non_uniform_scan_exclusive_max( char value );
-uchar   __ovld sub_group_non_uniform_scan_exclusive_max( uchar value );
-short   __ovld sub_group_non_uniform_scan_exclusive_max( short value );
-ushort  __ovld sub_group_non_uniform_scan_exclusive_max( ushort value );
-int     __ovld sub_group_non_uniform_scan_exclusive_max( int value );
-uint    __ovld sub_group_non_uniform_scan_exclusive_max( uint value );
-long    __ovld sub_group_non_uniform_scan_exclusive_max( long value );
-ulong   __ovld sub_group_non_uniform_scan_exclusive_max( ulong value );
-float   __ovld sub_group_non_uniform_scan_exclusive_max( float value );
-
-char    __ovld sub_group_non_uniform_reduce_and( char value );
-uchar   __ovld sub_group_non_uniform_reduce_and( uchar value );
-short   __ovld sub_group_non_uniform_reduce_and( short value );
-ushort  __ovld sub_group_non_uniform_reduce_and( ushort value );
-int     __ovld sub_group_non_uniform_reduce_and( int value );
-uint    __ovld sub_group_non_uniform_reduce_and( uint value );
-long    __ovld sub_group_non_uniform_reduce_and( long value );
-ulong   __ovld sub_group_non_uniform_reduce_and( ulong value );
-
-char    __ovld sub_group_non_uniform_reduce_or( char value );
-uchar   __ovld sub_group_non_uniform_reduce_or( uchar value );
-short   __ovld sub_group_non_uniform_reduce_or( short value );
-ushort  __ovld sub_group_non_uniform_reduce_or( ushort value );
-int     __ovld sub_group_non_uniform_reduce_or( int value );
-uint    __ovld sub_group_non_uniform_reduce_or( uint value );
-long    __ovld sub_group_non_uniform_reduce_or( long value );
-ulong   __ovld sub_group_non_uniform_reduce_or( ulong value );
-
-char    __ovld sub_group_non_uniform_reduce_xor( char value );
-uchar   __ovld sub_group_non_uniform_reduce_xor( uchar value );
-short   __ovld sub_group_non_uniform_reduce_xor( short value );
-ushort  __ovld sub_group_non_uniform_reduce_xor( ushort value );
-int     __ovld sub_group_non_uniform_reduce_xor( int value );
-uint    __ovld sub_group_non_uniform_reduce_xor( uint value );
-long    __ovld sub_group_non_uniform_reduce_xor( long value );
-ulong   __ovld sub_group_non_uniform_reduce_xor( ulong value );
-
-char    __ovld sub_group_non_uniform_scan_inclusive_and( char value );
-uchar   __ovld sub_group_non_uniform_scan_inclusive_and( uchar value );
-short   __ovld sub_group_non_uniform_scan_inclusive_and( short value );
-ushort  __ovld sub_group_non_uniform_scan_inclusive_and( ushort value );
-int     __ovld sub_group_non_uniform_scan_inclusive_and( int value );
-uint    __ovld sub_group_non_uniform_scan_inclusive_and( uint value );
-long    __ovld sub_group_non_uniform_scan_inclusive_and( long value );
-ulong   __ovld sub_group_non_uniform_scan_inclusive_and( ulong value );
-
-char    __ovld sub_group_non_uniform_scan_inclusive_or( char value );
-uchar   __ovld sub_group_non_uniform_scan_inclusive_or( uchar value );
-short   __ovld sub_group_non_uniform_scan_inclusive_or( short value );
-ushort  __ovld sub_group_non_uniform_scan_inclusive_or( ushort value );
-int     __ovld sub_group_non_uniform_scan_inclusive_or( int value );
-uint    __ovld sub_group_non_uniform_scan_inclusive_or( uint value );
-long    __ovld sub_group_non_uniform_scan_inclusive_or( long value );
-ulong   __ovld sub_group_non_uniform_scan_inclusive_or( ulong value );
-
-char    __ovld sub_group_non_uniform_scan_inclusive_xor( char value );
-uchar   __ovld sub_group_non_uniform_scan_inclusive_xor( uchar value );
-short   __ovld sub_group_non_uniform_scan_inclusive_xor( short value );
-ushort  __ovld sub_group_non_uniform_scan_inclusive_xor( ushort value );
-int     __ovld sub_group_non_uniform_scan_inclusive_xor( int value );
-uint    __ovld sub_group_non_uniform_scan_inclusive_xor( uint value );
-long    __ovld sub_group_non_uniform_scan_inclusive_xor( long value );
-ulong   __ovld sub_group_non_uniform_scan_inclusive_xor( ulong value );
-
-char    __ovld sub_group_non_uniform_scan_exclusive_and( char value );
-uchar   __ovld sub_group_non_uniform_scan_exclusive_and( uchar value );
-short   __ovld sub_group_non_uniform_scan_exclusive_and( short value );
-ushort  __ovld sub_group_non_uniform_scan_exclusive_and( ushort value );
-int     __ovld sub_group_non_uniform_scan_exclusive_and( int value );
-uint    __ovld sub_group_non_uniform_scan_exclusive_and( uint value );
-long    __ovld sub_group_non_uniform_scan_exclusive_and( long value );
-ulong   __ovld sub_group_non_uniform_scan_exclusive_and( ulong value );
-
-char    __ovld sub_group_non_uniform_scan_exclusive_or( char value );
-uchar   __ovld sub_group_non_uniform_scan_exclusive_or( uchar value );
-short   __ovld sub_group_non_uniform_scan_exclusive_or( short value );
-ushort  __ovld sub_group_non_uniform_scan_exclusive_or( ushort value );
-int     __ovld sub_group_non_uniform_scan_exclusive_or( int value );
-uint    __ovld sub_group_non_uniform_scan_exclusive_or( uint value );
-long    __ovld sub_group_non_uniform_scan_exclusive_or( long value );
-ulong   __ovld sub_group_non_uniform_scan_exclusive_or( ulong value );
-
-char    __ovld sub_group_non_uniform_scan_exclusive_xor( char value );
-uchar   __ovld sub_group_non_uniform_scan_exclusive_xor( uchar value );
-short   __ovld sub_group_non_uniform_scan_exclusive_xor( short value );
-ushort  __ovld sub_group_non_uniform_scan_exclusive_xor( ushort value );
-int     __ovld sub_group_non_uniform_scan_exclusive_xor( int value );
-uint    __ovld sub_group_non_uniform_scan_exclusive_xor( uint value );
-long    __ovld sub_group_non_uniform_scan_exclusive_xor( long value );
-ulong   __ovld sub_group_non_uniform_scan_exclusive_xor( ulong value );
-
-int     __ovld sub_group_non_uniform_reduce_logical_and( int predicate );
-int     __ovld sub_group_non_uniform_reduce_logical_or( int predicate );
-int     __ovld sub_group_non_uniform_reduce_logical_xor( int predicate );
-
-int     __ovld sub_group_non_uniform_scan_inclusive_logical_and( int predicate );
-int     __ovld sub_group_non_uniform_scan_inclusive_logical_or( int predicate );
-int     __ovld sub_group_non_uniform_scan_inclusive_logical_xor( int predicate );
-
-int     __ovld sub_group_non_uniform_scan_exclusive_logical_and( int predicate );
-int     __ovld sub_group_non_uniform_scan_exclusive_logical_or( int predicate );
-int     __ovld sub_group_non_uniform_scan_exclusive_logical_xor( int predicate );
-
-#if defined(cl_khr_fp16)
-half    __ovld sub_group_non_uniform_reduce_add( half value );
-half    __ovld sub_group_non_uniform_reduce_mul( half value );
-half    __ovld sub_group_non_uniform_reduce_min( half value );
-half    __ovld sub_group_non_uniform_reduce_max( half value );
-half    __ovld sub_group_non_uniform_scan_inclusive_add( half value );
-half    __ovld sub_group_non_uniform_scan_inclusive_mul( half value );
-half    __ovld sub_group_non_uniform_scan_inclusive_min( half value );
-half    __ovld sub_group_non_uniform_scan_inclusive_max( half value );
-half    __ovld sub_group_non_uniform_scan_exclusive_add( half value );
-half    __ovld sub_group_non_uniform_scan_exclusive_mul( half value );
-half    __ovld sub_group_non_uniform_scan_exclusive_min( half value );
-half    __ovld sub_group_non_uniform_scan_exclusive_max( half value );
-#endif // cl_khr_fp16
-
-#if defined(cl_khr_fp64)
-double  __ovld sub_group_non_uniform_reduce_add( double value );
-double  __ovld sub_group_non_uniform_reduce_mul( double value );
-double  __ovld sub_group_non_uniform_reduce_min( double value );
-double  __ovld sub_group_non_uniform_reduce_max( double value );
-double  __ovld sub_group_non_uniform_scan_inclusive_add( double value );
-double  __ovld sub_group_non_uniform_scan_inclusive_mul( double value );
-double  __ovld sub_group_non_uniform_scan_inclusive_min( double value );
-double  __ovld sub_group_non_uniform_scan_inclusive_max( double value );
-double  __ovld sub_group_non_uniform_scan_exclusive_add( double value );
-double  __ovld sub_group_non_uniform_scan_exclusive_mul( double value );
-double  __ovld sub_group_non_uniform_scan_exclusive_min( double value );
-double  __ovld sub_group_non_uniform_scan_exclusive_max( double value );
-#endif // cl_khr_fp64
-
-#endif // cl_khr_subgroup_non_uniform_arithmetic
-
-#if defined(cl_khr_subgroup_shuffle)
-char    __ovld sub_group_shuffle( char value, uint index );
-uchar   __ovld sub_group_shuffle( uchar value, uint index );
-short   __ovld sub_group_shuffle( short value, uint index );
-ushort  __ovld sub_group_shuffle( ushort value, uint index );
-int     __ovld sub_group_shuffle( int value, uint index );
-uint    __ovld sub_group_shuffle( uint value, uint index );
-long    __ovld sub_group_shuffle( long value, uint index );
-ulong   __ovld sub_group_shuffle( ulong value, uint index );
-float   __ovld sub_group_shuffle( float value, uint index );
-
-char    __ovld sub_group_shuffle_xor( char value, uint mask );
-uchar   __ovld sub_group_shuffle_xor( uchar value, uint mask );
-short   __ovld sub_group_shuffle_xor( short value, uint mask );
-ushort  __ovld sub_group_shuffle_xor( ushort value, uint mask );
-int     __ovld sub_group_shuffle_xor( int value, uint mask );
-uint    __ovld sub_group_shuffle_xor( uint value, uint mask );
-long    __ovld sub_group_shuffle_xor( long value, uint mask );
-ulong   __ovld sub_group_shuffle_xor( ulong value, uint mask );
-float   __ovld sub_group_shuffle_xor( float value, uint mask );
-
-#if defined(cl_khr_fp16)
-half    __ovld sub_group_shuffle( half value, uint index );
-half    __ovld sub_group_shuffle_xor( half value, uint mask );
-#endif // cl_khr_fp16
-
-#if defined(cl_khr_fp64)
-double  __ovld sub_group_shuffle( double value, uint index );
-double  __ovld sub_group_shuffle_xor( double value, uint mask );
-#endif // cl_khr_fp64
-
-#endif // cl_khr_subgroup_shuffle
-
-#if defined(cl_khr_subgroup_shuffle_relative)
-char    __ovld sub_group_shuffle_up( char value, uint delta );
-uchar   __ovld sub_group_shuffle_up( uchar value, uint delta );
-short   __ovld sub_group_shuffle_up( short value, uint delta );
-ushort  __ovld sub_group_shuffle_up( ushort value, uint delta );
-int     __ovld sub_group_shuffle_up( int value, uint delta );
-uint    __ovld sub_group_shuffle_up( uint value, uint delta );
-long    __ovld sub_group_shuffle_up( long value, uint delta );
-ulong   __ovld sub_group_shuffle_up( ulong value, uint delta );
-float   __ovld sub_group_shuffle_up( float value, uint delta );
-
-char    __ovld sub_group_shuffle_down( char value, uint delta );
-uchar   __ovld sub_group_shuffle_down( uchar value, uint delta );
-short   __ovld sub_group_shuffle_down( short value, uint delta );
-ushort  __ovld sub_group_shuffle_down( ushort value, uint delta );
-int     __ovld sub_group_shuffle_down( int value, uint delta );
-uint    __ovld sub_group_shuffle_down( uint value, uint delta );
-long    __ovld sub_group_shuffle_down( long value, uint delta );
-ulong   __ovld sub_group_shuffle_down( ulong value, uint delta );
-float   __ovld sub_group_shuffle_down( float value, uint delta );
-
-#if defined(cl_khr_fp16)
-half    __ovld sub_group_shuffle_up( half value, uint delta );
-half    __ovld sub_group_shuffle_down( half value, uint delta );
-#endif // cl_khr_fp16
-
-#if defined(cl_khr_fp64)
-double  __ovld sub_group_shuffle_up( double value, uint delta );
-double  __ovld sub_group_shuffle_down( double value, uint delta );
-#endif // cl_khr_fp64
-
-#endif // cl_khr_subgroup_shuffle_relative
-
-#if defined(cl_khr_subgroup_clustered_reduce)
-char    __ovld sub_group_clustered_reduce_add( char value, uint clustersize );
-uchar   __ovld sub_group_clustered_reduce_add( uchar value, uint clustersize );
-short   __ovld sub_group_clustered_reduce_add( short value, uint clustersize );
-ushort  __ovld sub_group_clustered_reduce_add( ushort value, uint clustersize );
-int     __ovld sub_group_clustered_reduce_add( int value, uint clustersize );
-uint    __ovld sub_group_clustered_reduce_add( uint value, uint clustersize );
-long    __ovld sub_group_clustered_reduce_add( long value, uint clustersize );
-ulong   __ovld sub_group_clustered_reduce_add( ulong value, uint clustersize );
-float   __ovld sub_group_clustered_reduce_add( float value, uint clustersize );
-
-char    __ovld sub_group_clustered_reduce_mul( char value, uint clustersize );
-uchar   __ovld sub_group_clustered_reduce_mul( uchar value, uint clustersize );
-short   __ovld sub_group_clustered_reduce_mul( short value, uint clustersize );
-ushort  __ovld sub_group_clustered_reduce_mul( ushort value, uint clustersize );
-int     __ovld sub_group_clustered_reduce_mul( int value, uint clustersize );
-uint    __ovld sub_group_clustered_reduce_mul( uint value, uint clustersize );
-long    __ovld sub_group_clustered_reduce_mul( long value, uint clustersize );
-ulong   __ovld sub_group_clustered_reduce_mul( ulong value, uint clustersize );
-float   __ovld sub_group_clustered_reduce_mul( float value, uint clustersize );
-
-char    __ovld sub_group_clustered_reduce_min( char value, uint clustersize );
-uchar   __ovld sub_group_clustered_reduce_min( uchar value, uint clustersize );
-short   __ovld sub_group_clustered_reduce_min( short value, uint clustersize );
-ushort  __ovld sub_group_clustered_reduce_min( ushort value, uint clustersize );
-int     __ovld sub_group_clustered_reduce_min( int value, uint clustersize );
-uint    __ovld sub_group_clustered_reduce_min( uint value, uint clustersize );
-long    __ovld sub_group_clustered_reduce_min( long value, uint clustersize );
-ulong   __ovld sub_group_clustered_reduce_min( ulong value, uint clustersize );
-float   __ovld sub_group_clustered_reduce_min( float value, uint clustersize );
-
-char    __ovld sub_group_clustered_reduce_max( char value, uint clustersize );
-uchar   __ovld sub_group_clustered_reduce_max( uchar value, uint clustersize );
-short   __ovld sub_group_clustered_reduce_max( short value, uint clustersize );
-ushort  __ovld sub_group_clustered_reduce_max( ushort value, uint clustersize );
-int     __ovld sub_group_clustered_reduce_max( int value, uint clustersize );
-uint    __ovld sub_group_clustered_reduce_max( uint value, uint clustersize );
-long    __ovld sub_group_clustered_reduce_max( long value, uint clustersize );
-ulong   __ovld sub_group_clustered_reduce_max( ulong value, uint clustersize );
-float   __ovld sub_group_clustered_reduce_max( float value, uint clustersize );
-
-char    __ovld sub_group_clustered_reduce_and( char value, uint clustersize );
-uchar   __ovld sub_group_clustered_reduce_and( uchar value, uint clustersize );
-short   __ovld sub_group_clustered_reduce_and( short value, uint clustersize );
-ushort  __ovld sub_group_clustered_reduce_and( ushort value, uint clustersize );
-int     __ovld sub_group_clustered_reduce_and( int value, uint clustersize );
-uint    __ovld sub_group_clustered_reduce_and( uint value, uint clustersize );
-long    __ovld sub_group_clustered_reduce_and( long value, uint clustersize );
-ulong   __ovld sub_group_clustered_reduce_and( ulong value, uint clustersize );
-
-char    __ovld sub_group_clustered_reduce_or( char value, uint clustersize );
-uchar   __ovld sub_group_clustered_reduce_or( uchar value, uint clustersize );
-short   __ovld sub_group_clustered_reduce_or( short value, uint clustersize );
-ushort  __ovld sub_group_clustered_reduce_or( ushort value, uint clustersize );
-int     __ovld sub_group_clustered_reduce_or( int value, uint clustersize );
-uint    __ovld sub_group_clustered_reduce_or( uint value, uint clustersize );
-long    __ovld sub_group_clustered_reduce_or( long value, uint clustersize );
-ulong   __ovld sub_group_clustered_reduce_or( ulong value, uint clustersize );
-
-char    __ovld sub_group_clustered_reduce_xor( char value, uint clustersize );
-uchar   __ovld sub_group_clustered_reduce_xor( uchar value, uint clustersize );
-short   __ovld sub_group_clustered_reduce_xor( short value, uint clustersize );
-ushort  __ovld sub_group_clustered_reduce_xor( ushort value, uint clustersize );
-int     __ovld sub_group_clustered_reduce_xor( int value, uint clustersize );
-uint    __ovld sub_group_clustered_reduce_xor( uint value, uint clustersize );
-long    __ovld sub_group_clustered_reduce_xor( long value, uint clustersize );
-ulong   __ovld sub_group_clustered_reduce_xor( ulong value, uint clustersize );
-
-int     __ovld sub_group_clustered_reduce_logical_and( int predicate, uint clustersize );
-int     __ovld sub_group_clustered_reduce_logical_or( int predicate, uint clustersize );
-int     __ovld sub_group_clustered_reduce_logical_xor( int predicate, uint clustersize );
-
-#if defined(cl_khr_fp16)
-half    __ovld sub_group_clustered_reduce_add( half value, uint clustersize );
-half    __ovld sub_group_clustered_reduce_mul( half value, uint clustersize );
-half    __ovld sub_group_clustered_reduce_min( half value, uint clustersize );
-half    __ovld sub_group_clustered_reduce_max( half value, uint clustersize );
-#endif // cl_khr_fp16
-
-#if defined(cl_khr_fp64)
-double  __ovld sub_group_clustered_reduce_add( double value, uint clustersize );
-double  __ovld sub_group_clustered_reduce_mul( double value, uint clustersize );
-double  __ovld sub_group_clustered_reduce_min( double value, uint clustersize );
-double  __ovld sub_group_clustered_reduce_max( double value, uint clustersize );
-#endif // cl_khr_fp64
-
-#endif // cl_khr_subgroup_clustered_reduce
-
-#if defined(cl_khr_extended_bit_ops)
-char __ovld __cnfn bitfield_insert(char, char, uint, uint);
-uchar __ovld __cnfn bitfield_insert(uchar, uchar, uint, uint);
-short __ovld __cnfn bitfield_insert(short, short, uint, uint);
-ushort __ovld __cnfn bitfield_insert(ushort, ushort, uint, uint);
-int __ovld __cnfn bitfield_insert(int, int, uint, uint);
-uint __ovld __cnfn bitfield_insert(uint, uint, uint, uint);
-long __ovld __cnfn bitfield_insert(long, long, uint, uint);
-ulong __ovld __cnfn bitfield_insert(ulong, ulong, uint, uint);
-char2 __ovld __cnfn bitfield_insert(char2, char2, uint, uint);
-uchar2 __ovld __cnfn bitfield_insert(uchar2, uchar2, uint, uint);
-short2 __ovld __cnfn bitfield_insert(short2, short2, uint, uint);
-ushort2 __ovld __cnfn bitfield_insert(ushort2, ushort2, uint, uint);
-int2 __ovld __cnfn bitfield_insert(int2, int2, uint, uint);
-uint2 __ovld __cnfn bitfield_insert(uint2, uint2, uint, uint);
-long2 __ovld __cnfn bitfield_insert(long2, long2, uint, uint);
-ulong2 __ovld __cnfn bitfield_insert(ulong2, ulong2, uint, uint);
-char3 __ovld __cnfn bitfield_insert(char3, char3, uint, uint);
-uchar3 __ovld __cnfn bitfield_insert(uchar3, uchar3, uint, uint);
-short3 __ovld __cnfn bitfield_insert(short3, short3, uint, uint);
-ushort3 __ovld __cnfn bitfield_insert(ushort3, ushort3, uint, uint);
-int3 __ovld __cnfn bitfield_insert(int3, int3, uint, uint);
-uint3 __ovld __cnfn bitfield_insert(uint3, uint3, uint, uint);
-long3 __ovld __cnfn bitfield_insert(long3, long3, uint, uint);
-ulong3 __ovld __cnfn bitfield_insert(ulong3, ulong3, uint, uint);
-char4 __ovld __cnfn bitfield_insert(char4, char4, uint, uint);
-uchar4 __ovld __cnfn bitfield_insert(uchar4, uchar4, uint, uint);
-short4 __ovld __cnfn bitfield_insert(short4, short4, uint, uint);
-ushort4 __ovld __cnfn bitfield_insert(ushort4, ushort4, uint, uint);
-int4 __ovld __cnfn bitfield_insert(int4, int4, uint, uint);
-uint4 __ovld __cnfn bitfield_insert(uint4, uint4, uint, uint);
-long4 __ovld __cnfn bitfield_insert(long4, long4, uint, uint);
-ulong4 __ovld __cnfn bitfield_insert(ulong4, ulong4, uint, uint);
-char8 __ovld __cnfn bitfield_insert(char8, char8, uint, uint);
-uchar8 __ovld __cnfn bitfield_insert(uchar8, uchar8, uint, uint);
-short8 __ovld __cnfn bitfield_insert(short8, short8, uint, uint);
-ushort8 __ovld __cnfn bitfield_insert(ushort8, ushort8, uint, uint);
-int8 __ovld __cnfn bitfield_insert(int8, int8, uint, uint);
-uint8 __ovld __cnfn bitfield_insert(uint8, uint8, uint, uint);
-long8 __ovld __cnfn bitfield_insert(long8, long8, uint, uint);
-ulong8 __ovld __cnfn bitfield_insert(ulong8, ulong8, uint, uint);
-char16 __ovld __cnfn bitfield_insert(char16, char16, uint, uint);
-uchar16 __ovld __cnfn bitfield_insert(uchar16, uchar16, uint, uint);
-short16 __ovld __cnfn bitfield_insert(short16, short16, uint, uint);
-ushort16 __ovld __cnfn bitfield_insert(ushort16, ushort16, uint, uint);
-int16 __ovld __cnfn bitfield_insert(int16, int16, uint, uint);
-uint16 __ovld __cnfn bitfield_insert(uint16, uint16, uint, uint);
-long16 __ovld __cnfn bitfield_insert(long16, long16, uint, uint);
-ulong16 __ovld __cnfn bitfield_insert(ulong16, ulong16, uint, uint);
-
-char __ovld __cnfn bitfield_extract_signed(char, uint, uint);
-short __ovld __cnfn bitfield_extract_signed(short, uint, uint);
-int __ovld __cnfn bitfield_extract_signed(int, uint, uint);
-long __ovld __cnfn bitfield_extract_signed(long, uint, uint);
-char2 __ovld __cnfn bitfield_extract_signed(char2, uint, uint);
-short2 __ovld __cnfn bitfield_extract_signed(short2, uint, uint);
-int2 __ovld __cnfn bitfield_extract_signed(int2, uint, uint);
-long2 __ovld __cnfn bitfield_extract_signed(long2, uint, uint);
-char3 __ovld __cnfn bitfield_extract_signed(char3, uint, uint);
-short3 __ovld __cnfn bitfield_extract_signed(short3, uint, uint);
-int3 __ovld __cnfn bitfield_extract_signed(int3, uint, uint);
-long3 __ovld __cnfn bitfield_extract_signed(long3, uint, uint);
-char4 __ovld __cnfn bitfield_extract_signed(char4, uint, uint);
-short4 __ovld __cnfn bitfield_extract_signed(short4, uint, uint);
-int4 __ovld __cnfn bitfield_extract_signed(int4, uint, uint);
-long4 __ovld __cnfn bitfield_extract_signed(long4, uint, uint);
-char8 __ovld __cnfn bitfield_extract_signed(char8, uint, uint);
-short8 __ovld __cnfn bitfield_extract_signed(short8, uint, uint);
-int8 __ovld __cnfn bitfield_extract_signed(int8, uint, uint);
-long8 __ovld __cnfn bitfield_extract_signed(long8, uint, uint);
-char16 __ovld __cnfn bitfield_extract_signed(char16, uint, uint);
-short16 __ovld __cnfn bitfield_extract_signed(short16, uint, uint);
-int16 __ovld __cnfn bitfield_extract_signed(int16, uint, uint);
-long16 __ovld __cnfn bitfield_extract_signed(long16, uint, uint);
-
-char __ovld __cnfn bitfield_extract_signed(uchar, uint, uint);
-short __ovld __cnfn bitfield_extract_signed(ushort, uint, uint);
-int __ovld __cnfn bitfield_extract_signed(uint, uint, uint);
-long __ovld __cnfn bitfield_extract_signed(ulong, uint, uint);
-char2 __ovld __cnfn bitfield_extract_signed(uchar2, uint, uint);
-short2 __ovld __cnfn bitfield_extract_signed(ushort2, uint, uint);
-int2 __ovld __cnfn bitfield_extract_signed(uint2, uint, uint);
-long2 __ovld __cnfn bitfield_extract_signed(ulong2, uint, uint);
-char3 __ovld __cnfn bitfield_extract_signed(uchar3, uint, uint);
-short3 __ovld __cnfn bitfield_extract_signed(ushort3, uint, uint);
-int3 __ovld __cnfn bitfield_extract_signed(uint3, uint, uint);
-long3 __ovld __cnfn bitfield_extract_signed(ulong3, uint, uint);
-char4 __ovld __cnfn bitfield_extract_signed(uchar4, uint, uint);
-short4 __ovld __cnfn bitfield_extract_signed(ushort4, uint, uint);
-int4 __ovld __cnfn bitfield_extract_signed(uint4, uint, uint);
-long4 __ovld __cnfn bitfield_extract_signed(ulong4, uint, uint);
-char8 __ovld __cnfn bitfield_extract_signed(uchar8, uint, uint);
-short8 __ovld __cnfn bitfield_extract_signed(ushort8, uint, uint);
-int8 __ovld __cnfn bitfield_extract_signed(uint8, uint, uint);
-long8 __ovld __cnfn bitfield_extract_signed(ulong8, uint, uint);
-char16 __ovld __cnfn bitfield_extract_signed(uchar16, uint, uint);
-short16 __ovld __cnfn bitfield_extract_signed(ushort16, uint, uint);
-int16 __ovld __cnfn bitfield_extract_signed(uint16, uint, uint);
-long16 __ovld __cnfn bitfield_extract_signed(ulong16, uint, uint);
-
-uchar __ovld __cnfn bitfield_extract_unsigned(char, uint, uint);
-ushort __ovld __cnfn bitfield_extract_unsigned(short, uint, uint);
-uint __ovld __cnfn bitfield_extract_unsigned(int, uint, uint);
-ulong __ovld __cnfn bitfield_extract_unsigned(long, uint, uint);
-uchar2 __ovld __cnfn bitfield_extract_unsigned(char2, uint, uint);
-ushort2 __ovld __cnfn bitfield_extract_unsigned(short2, uint, uint);
-uint2 __ovld __cnfn bitfield_extract_unsigned(int2, uint, uint);
-ulong2 __ovld __cnfn bitfield_extract_unsigned(long2, uint, uint);
-uchar3 __ovld __cnfn bitfield_extract_unsigned(char3, uint, uint);
-ushort3 __ovld __cnfn bitfield_extract_unsigned(short3, uint, uint);
-uint3 __ovld __cnfn bitfield_extract_unsigned(int3, uint, uint);
-ulong3 __ovld __cnfn bitfield_extract_unsigned(long3, uint, uint);
-uchar4 __ovld __cnfn bitfield_extract_unsigned(char4, uint, uint);
-ushort4 __ovld __cnfn bitfield_extract_unsigned(short4, uint, uint);
-uint4 __ovld __cnfn bitfield_extract_unsigned(int4, uint, uint);
-ulong4 __ovld __cnfn bitfield_extract_unsigned(long4, uint, uint);
-uchar8 __ovld __cnfn bitfield_extract_unsigned(char8, uint, uint);
-ushort8 __ovld __cnfn bitfield_extract_unsigned(short8, uint, uint);
-uint8 __ovld __cnfn bitfield_extract_unsigned(int8, uint, uint);
-ulong8 __ovld __cnfn bitfield_extract_unsigned(long8, uint, uint);
-uchar16 __ovld __cnfn bitfield_extract_unsigned(char16, uint, uint);
-ushort16 __ovld __cnfn bitfield_extract_unsigned(short16, uint, uint);
-uint16 __ovld __cnfn bitfield_extract_unsigned(int16, uint, uint);
-ulong16 __ovld __cnfn bitfield_extract_unsigned(long16, uint, uint);
-
-uchar __ovld __cnfn bitfield_extract_unsigned(uchar, uint, uint);
-ushort __ovld __cnfn bitfield_extract_unsigned(ushort, uint, uint);
-uint __ovld __cnfn bitfield_extract_unsigned(uint, uint, uint);
-ulong __ovld __cnfn bitfield_extract_unsigned(ulong, uint, uint);
-uchar2 __ovld __cnfn bitfield_extract_unsigned(uchar2, uint, uint);
-ushort2 __ovld __cnfn bitfield_extract_unsigned(ushort2, uint, uint);
-uint2 __ovld __cnfn bitfield_extract_unsigned(uint2, uint, uint);
-ulong2 __ovld __cnfn bitfield_extract_unsigned(ulong2, uint, uint);
-uchar3 __ovld __cnfn bitfield_extract_unsigned(uchar3, uint, uint);
-ushort3 __ovld __cnfn bitfield_extract_unsigned(ushort3, uint, uint);
-uint3 __ovld __cnfn bitfield_extract_unsigned(uint3, uint, uint);
-ulong3 __ovld __cnfn bitfield_extract_unsigned(ulong3, uint, uint);
-uchar4 __ovld __cnfn bitfield_extract_unsigned(uchar4, uint, uint);
-ushort4 __ovld __cnfn bitfield_extract_unsigned(ushort4, uint, uint);
-uint4 __ovld __cnfn bitfield_extract_unsigned(uint4, uint, uint);
-ulong4 __ovld __cnfn bitfield_extract_unsigned(ulong4, uint, uint);
-uchar8 __ovld __cnfn bitfield_extract_unsigned(uchar8, uint, uint);
-ushort8 __ovld __cnfn bitfield_extract_unsigned(ushort8, uint, uint);
-uint8 __ovld __cnfn bitfield_extract_unsigned(uint8, uint, uint);
-ulong8 __ovld __cnfn bitfield_extract_unsigned(ulong8, uint, uint);
-uchar16 __ovld __cnfn bitfield_extract_unsigned(uchar16, uint, uint);
-ushort16 __ovld __cnfn bitfield_extract_unsigned(ushort16, uint, uint);
-uint16 __ovld __cnfn bitfield_extract_unsigned(uint16, uint, uint);
-ulong16 __ovld __cnfn bitfield_extract_unsigned(ulong16, uint, uint);
-
-char __ovld __cnfn bit_reverse(char);
-uchar __ovld __cnfn bit_reverse(uchar);
-short __ovld __cnfn bit_reverse(short);
-ushort __ovld __cnfn bit_reverse(ushort);
-int __ovld __cnfn bit_reverse(int);
-uint __ovld __cnfn bit_reverse(uint);
-long __ovld __cnfn bit_reverse(long);
-ulong __ovld __cnfn bit_reverse(ulong);
-char2 __ovld __cnfn bit_reverse(char2);
-uchar2 __ovld __cnfn bit_reverse(uchar2);
-short2 __ovld __cnfn bit_reverse(short2);
-ushort2 __ovld __cnfn bit_reverse(ushort2);
-int2 __ovld __cnfn bit_reverse(int2);
-uint2 __ovld __cnfn bit_reverse(uint2);
-long2 __ovld __cnfn bit_reverse(long2);
-ulong2 __ovld __cnfn bit_reverse(ulong2);
-char3 __ovld __cnfn bit_reverse(char3);
-uchar3 __ovld __cnfn bit_reverse(uchar3);
-short3 __ovld __cnfn bit_reverse(short3);
-ushort3 __ovld __cnfn bit_reverse(ushort3);
-int3 __ovld __cnfn bit_reverse(int3);
-uint3 __ovld __cnfn bit_reverse(uint3);
-long3 __ovld __cnfn bit_reverse(long3);
-ulong3 __ovld __cnfn bit_reverse(ulong3);
-char4 __ovld __cnfn bit_reverse(char4);
-uchar4 __ovld __cnfn bit_reverse(uchar4);
-short4 __ovld __cnfn bit_reverse(short4);
-ushort4 __ovld __cnfn bit_reverse(ushort4);
-int4 __ovld __cnfn bit_reverse(int4);
-uint4 __ovld __cnfn bit_reverse(uint4);
-long4 __ovld __cnfn bit_reverse(long4);
-ulong4 __ovld __cnfn bit_reverse(ulong4);
-char8 __ovld __cnfn bit_reverse(char8);
-uchar8 __ovld __cnfn bit_reverse(uchar8);
-short8 __ovld __cnfn bit_reverse(short8);
-ushort8 __ovld __cnfn bit_reverse(ushort8);
-int8 __ovld __cnfn bit_reverse(int8);
-uint8 __ovld __cnfn bit_reverse(uint8);
-long8 __ovld __cnfn bit_reverse(long8);
-ulong8 __ovld __cnfn bit_reverse(ulong8);
-char16 __ovld __cnfn bit_reverse(char16);
-uchar16 __ovld __cnfn bit_reverse(uchar16);
-short16 __ovld __cnfn bit_reverse(short16);
-ushort16 __ovld __cnfn bit_reverse(ushort16);
-int16 __ovld __cnfn bit_reverse(int16);
-uint16 __ovld __cnfn bit_reverse(uint16);
-long16 __ovld __cnfn bit_reverse(long16);
-ulong16 __ovld __cnfn bit_reverse(ulong16);
-#endif // cl_khr_extended_bit_ops
-
-#if defined(__opencl_c_integer_dot_product_input_4x8bit)
-uint __ovld __cnfn dot(uchar4, uchar4);
-int __ovld __cnfn dot(char4, char4);
-int __ovld __cnfn dot(uchar4, char4);
-int __ovld __cnfn dot(char4, uchar4);
-
-uint __ovld __cnfn dot_acc_sat(uchar4, uchar4, uint);
-int __ovld __cnfn dot_acc_sat(char4, char4, int);
-int __ovld __cnfn dot_acc_sat(uchar4, char4, int);
-int __ovld __cnfn dot_acc_sat(char4, uchar4, int);
-#endif // __opencl_c_integer_dot_product_input_4x8bit
-
-#if defined(__opencl_c_integer_dot_product_input_4x8bit_packed)
-uint __ovld __cnfn dot_4x8packed_uu_uint(uint, uint);
-int __ovld __cnfn dot_4x8packed_ss_int(uint, uint);
-int __ovld __cnfn dot_4x8packed_us_int(uint, uint);
-int __ovld __cnfn dot_4x8packed_su_int(uint, uint);
-
-uint __ovld __cnfn dot_acc_sat_4x8packed_uu_uint(uint, uint, uint);
-int __ovld __cnfn dot_acc_sat_4x8packed_ss_int(uint, uint, int);
-int __ovld __cnfn dot_acc_sat_4x8packed_us_int(uint, uint, int);
-int __ovld __cnfn dot_acc_sat_4x8packed_su_int(uint, uint, int);
-#endif // __opencl_c_integer_dot_product_input_4x8bit_packed
-
-#if defined(cl_intel_subgroups)
-// Intel-Specific Sub Group Functions
-float   __ovld __conv intel_sub_group_shuffle( float  x, uint c );
-float2  __ovld __conv intel_sub_group_shuffle( float2 x, uint c );
-float3  __ovld __conv intel_sub_group_shuffle( float3 x, uint c );
-float4  __ovld __conv intel_sub_group_shuffle( float4 x, uint c );
-float8  __ovld __conv intel_sub_group_shuffle( float8 x, uint c );
-float16 __ovld __conv intel_sub_group_shuffle( float16 x, uint c );
-
-int     __ovld __conv intel_sub_group_shuffle( int  x, uint c );
-int2    __ovld __conv intel_sub_group_shuffle( int2 x, uint c );
-int3    __ovld __conv intel_sub_group_shuffle( int3 x, uint c );
-int4    __ovld __conv intel_sub_group_shuffle( int4 x, uint c );
-int8    __ovld __conv intel_sub_group_shuffle( int8 x, uint c );
-int16   __ovld __conv intel_sub_group_shuffle( int16 x, uint c );
-
-uint    __ovld __conv intel_sub_group_shuffle( uint  x, uint c );
-uint2   __ovld __conv intel_sub_group_shuffle( uint2 x, uint c );
-uint3   __ovld __conv intel_sub_group_shuffle( uint3 x, uint c );
-uint4   __ovld __conv intel_sub_group_shuffle( uint4 x, uint c );
-uint8   __ovld __conv intel_sub_group_shuffle( uint8 x, uint c );
-uint16  __ovld __conv intel_sub_group_shuffle( uint16 x, uint c );
-
-long    __ovld __conv intel_sub_group_shuffle( long x, uint c );
-ulong   __ovld __conv intel_sub_group_shuffle( ulong x, uint c );
-
-float   __ovld __conv intel_sub_group_shuffle_down( float  cur, float  next, uint c );
-float2  __ovld __conv intel_sub_group_shuffle_down( float2 cur, float2 next, uint c );
-float3  __ovld __conv intel_sub_group_shuffle_down( float3 cur, float3 next, uint c );
-float4  __ovld __conv intel_sub_group_shuffle_down( float4 cur, float4 next, uint c );
-float8  __ovld __conv intel_sub_group_shuffle_down( float8 cur, float8 next, uint c );
-float16 __ovld __conv intel_sub_group_shuffle_down( float16 cur, float16 next, uint c );
-
-int     __ovld __conv intel_sub_group_shuffle_down( int  cur, int  next, uint c );
-int2    __ovld __conv intel_sub_group_shuffle_down( int2 cur, int2 next, uint c );
-int3    __ovld __conv intel_sub_group_shuffle_down( int3 cur, int3 next, uint c );
-int4    __ovld __conv intel_sub_group_shuffle_down( int4 cur, int4 next, uint c );
-int8    __ovld __conv intel_sub_group_shuffle_down( int8 cur, int8 next, uint c );
-int16   __ovld __conv intel_sub_group_shuffle_down( int16 cur, int16 next, uint c );
-
-uint    __ovld __conv intel_sub_group_shuffle_down( uint  cur, uint  next, uint c );
-uint2   __ovld __conv intel_sub_group_shuffle_down( uint2 cur, uint2 next, uint c );
-uint3   __ovld __conv intel_sub_group_shuffle_down( uint3 cur, uint3 next, uint c );
-uint4   __ovld __conv intel_sub_group_shuffle_down( uint4 cur, uint4 next, uint c );
-uint8   __ovld __conv intel_sub_group_shuffle_down( uint8 cur, uint8 next, uint c );
-uint16  __ovld __conv intel_sub_group_shuffle_down( uint16 cur, uint16 next, uint c );
-
-long    __ovld __conv intel_sub_group_shuffle_down( long prev, long cur, uint c );
-ulong   __ovld __conv intel_sub_group_shuffle_down( ulong prev, ulong cur, uint c );
-
-float   __ovld __conv intel_sub_group_shuffle_up( float  prev, float  cur, uint c );
-float2  __ovld __conv intel_sub_group_shuffle_up( float2 prev, float2 cur, uint c );
-float3  __ovld __conv intel_sub_group_shuffle_up( float3 prev, float3 cur, uint c );
-float4  __ovld __conv intel_sub_group_shuffle_up( float4 prev, float4 cur, uint c );
-float8  __ovld __conv intel_sub_group_shuffle_up( float8 prev, float8 cur, uint c );
-float16 __ovld __conv intel_sub_group_shuffle_up( float16 prev, float16 cur, uint c );
-
-int     __ovld __conv intel_sub_group_shuffle_up( int  prev, int  cur, uint c );
-int2    __ovld __conv intel_sub_group_shuffle_up( int2 prev, int2 cur, uint c );
-int3    __ovld __conv intel_sub_group_shuffle_up( int3 prev, int3 cur, uint c );
-int4    __ovld __conv intel_sub_group_shuffle_up( int4 prev, int4 cur, uint c );
-int8    __ovld __conv intel_sub_group_shuffle_up( int8 prev, int8 cur, uint c );
-int16   __ovld __conv intel_sub_group_shuffle_up( int16 prev, int16 cur, uint c );
-
-uint    __ovld __conv intel_sub_group_shuffle_up( uint  prev, uint  cur, uint c );
-uint2   __ovld __conv intel_sub_group_shuffle_up( uint2 prev, uint2 cur, uint c );
-uint3   __ovld __conv intel_sub_group_shuffle_up( uint3 prev, uint3 cur, uint c );
-uint4   __ovld __conv intel_sub_group_shuffle_up( uint4 prev, uint4 cur, uint c );
-uint8   __ovld __conv intel_sub_group_shuffle_up( uint8 prev, uint8 cur, uint c );
-uint16  __ovld __conv intel_sub_group_shuffle_up( uint16 prev, uint16 cur, uint c );
-
-long    __ovld __conv intel_sub_group_shuffle_up( long prev, long cur, uint c );
-ulong   __ovld __conv intel_sub_group_shuffle_up( ulong prev, ulong cur, uint c );
-
-float   __ovld __conv intel_sub_group_shuffle_xor( float  x, uint c );
-float2  __ovld __conv intel_sub_group_shuffle_xor( float2 x, uint c );
-float3  __ovld __conv intel_sub_group_shuffle_xor( float3 x, uint c );
-float4  __ovld __conv intel_sub_group_shuffle_xor( float4 x, uint c );
-float8  __ovld __conv intel_sub_group_shuffle_xor( float8 x, uint c );
-float16 __ovld __conv intel_sub_group_shuffle_xor( float16 x, uint c );
-
-int     __ovld __conv intel_sub_group_shuffle_xor( int  x, uint c );
-int2    __ovld __conv intel_sub_group_shuffle_xor( int2 x, uint c );
-int3    __ovld __conv intel_sub_group_shuffle_xor( int3 x, uint c );
-int4    __ovld __conv intel_sub_group_shuffle_xor( int4 x, uint c );
-int8    __ovld __conv intel_sub_group_shuffle_xor( int8 x, uint c );
-int16   __ovld __conv intel_sub_group_shuffle_xor( int16 x, uint c );
-
-uint    __ovld __conv intel_sub_group_shuffle_xor( uint  x, uint c );
-uint2   __ovld __conv intel_sub_group_shuffle_xor( uint2 x, uint c );
-uint3   __ovld __conv intel_sub_group_shuffle_xor( uint3 x, uint c );
-uint4   __ovld __conv intel_sub_group_shuffle_xor( uint4 x, uint c );
-uint8   __ovld __conv intel_sub_group_shuffle_xor( uint8 x, uint c );
-uint16  __ovld __conv intel_sub_group_shuffle_xor( uint16 x, uint c );
-
-long    __ovld __conv intel_sub_group_shuffle_xor( long x, uint c );
-ulong   __ovld __conv intel_sub_group_shuffle_xor( ulong x, uint c );
-
-uint    __ovld __conv intel_sub_group_block_read( read_only image2d_t image, int2 coord );
-uint2   __ovld __conv intel_sub_group_block_read2( read_only image2d_t image, int2 coord );
-uint4   __ovld __conv intel_sub_group_block_read4( read_only image2d_t image, int2 coord );
-uint8   __ovld __conv intel_sub_group_block_read8( read_only image2d_t image, int2 coord );
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-uint    __ovld __conv intel_sub_group_block_read(read_write image2d_t image, int2 coord);
-uint2   __ovld __conv intel_sub_group_block_read2(read_write image2d_t image, int2 coord);
-uint4   __ovld __conv intel_sub_group_block_read4(read_write image2d_t image, int2 coord);
-uint8   __ovld __conv intel_sub_group_block_read8(read_write image2d_t image, int2 coord);
-#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-uint    __ovld __conv intel_sub_group_block_read( const __global uint* p );
-uint2   __ovld __conv intel_sub_group_block_read2( const __global uint* p );
-uint4   __ovld __conv intel_sub_group_block_read4( const __global uint* p );
-uint8   __ovld __conv intel_sub_group_block_read8( const __global uint* p );
-
-void    __ovld __conv intel_sub_group_block_write(write_only image2d_t image, int2 coord, uint data);
-void    __ovld __conv intel_sub_group_block_write2(write_only image2d_t image, int2 coord, uint2 data);
-void    __ovld __conv intel_sub_group_block_write4(write_only image2d_t image, int2 coord, uint4 data);
-void    __ovld __conv intel_sub_group_block_write8(write_only image2d_t image, int2 coord, uint8 data);
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-void    __ovld __conv intel_sub_group_block_write(read_write image2d_t image, int2 coord, uint data);
-void    __ovld __conv intel_sub_group_block_write2(read_write image2d_t image, int2 coord, uint2 data);
-void    __ovld __conv intel_sub_group_block_write4(read_write image2d_t image, int2 coord, uint4 data);
-void    __ovld __conv intel_sub_group_block_write8(read_write image2d_t image, int2 coord, uint8 data);
-#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-void    __ovld __conv intel_sub_group_block_write( __global uint* p, uint data );
-void    __ovld __conv intel_sub_group_block_write2( __global uint* p, uint2 data );
-void    __ovld __conv intel_sub_group_block_write4( __global uint* p, uint4 data );
-void    __ovld __conv intel_sub_group_block_write8( __global uint* p, uint8 data );
-
-#ifdef cl_khr_fp16
-half    __ovld __conv intel_sub_group_shuffle( half x, uint c );
-half    __ovld __conv intel_sub_group_shuffle_down( half prev, half cur, uint c );
-half    __ovld __conv intel_sub_group_shuffle_up( half prev, half cur, uint c );
-half    __ovld __conv intel_sub_group_shuffle_xor( half x, uint c );
-#endif
-
-#if defined(cl_khr_fp64)
-double  __ovld __conv intel_sub_group_shuffle( double x, uint c );
-double  __ovld __conv intel_sub_group_shuffle_down( double prev, double cur, uint c );
-double  __ovld __conv intel_sub_group_shuffle_up( double prev, double cur, uint c );
-double  __ovld __conv intel_sub_group_shuffle_xor( double x, uint c );
-#endif
-
-#endif //cl_intel_subgroups
-
-#if defined(cl_intel_subgroups_short)
-short       __ovld __conv intel_sub_group_broadcast( short  x, uint sub_group_local_id );
-short2      __ovld __conv intel_sub_group_broadcast( short2 x, uint sub_group_local_id );
-short3      __ovld __conv intel_sub_group_broadcast( short3 x, uint sub_group_local_id );
-short4      __ovld __conv intel_sub_group_broadcast( short4 x, uint sub_group_local_id );
-short8      __ovld __conv intel_sub_group_broadcast( short8 x, uint sub_group_local_id );
-
-ushort      __ovld __conv intel_sub_group_broadcast( ushort  x, uint sub_group_local_id );
-ushort2     __ovld __conv intel_sub_group_broadcast( ushort2 x, uint sub_group_local_id );
-ushort3     __ovld __conv intel_sub_group_broadcast( ushort3 x, uint sub_group_local_id );
-ushort4     __ovld __conv intel_sub_group_broadcast( ushort4 x, uint sub_group_local_id );
-ushort8     __ovld __conv intel_sub_group_broadcast( ushort8 x, uint sub_group_local_id );
-
-short       __ovld __conv intel_sub_group_shuffle( short   x, uint c );
-short2      __ovld __conv intel_sub_group_shuffle( short2  x, uint c );
-short3      __ovld __conv intel_sub_group_shuffle( short3  x, uint c );
-short4      __ovld __conv intel_sub_group_shuffle( short4  x, uint c );
-short8      __ovld __conv intel_sub_group_shuffle( short8  x, uint c );
-short16     __ovld __conv intel_sub_group_shuffle( short16 x, uint c);
-
-ushort      __ovld __conv intel_sub_group_shuffle( ushort   x, uint c );
-ushort2     __ovld __conv intel_sub_group_shuffle( ushort2  x, uint c );
-ushort3     __ovld __conv intel_sub_group_shuffle( ushort3  x, uint c );
-ushort4     __ovld __conv intel_sub_group_shuffle( ushort4  x, uint c );
-ushort8     __ovld __conv intel_sub_group_shuffle( ushort8  x, uint c );
-ushort16    __ovld __conv intel_sub_group_shuffle( ushort16 x, uint c );
-
-short       __ovld __conv intel_sub_group_shuffle_down( short   cur, short   next, uint c );
-short2      __ovld __conv intel_sub_group_shuffle_down( short2  cur, short2  next, uint c );
-short3      __ovld __conv intel_sub_group_shuffle_down( short3  cur, short3  next, uint c );
-short4      __ovld __conv intel_sub_group_shuffle_down( short4  cur, short4  next, uint c );
-short8      __ovld __conv intel_sub_group_shuffle_down( short8  cur, short8  next, uint c );
-short16     __ovld __conv intel_sub_group_shuffle_down( short16 cur, short16 next, uint c );
-
-ushort      __ovld __conv intel_sub_group_shuffle_down( ushort   cur, ushort   next, uint c );
-ushort2     __ovld __conv intel_sub_group_shuffle_down( ushort2  cur, ushort2  next, uint c );
-ushort3     __ovld __conv intel_sub_group_shuffle_down( ushort3  cur, ushort3  next, uint c );
-ushort4     __ovld __conv intel_sub_group_shuffle_down( ushort4  cur, ushort4  next, uint c );
-ushort8     __ovld __conv intel_sub_group_shuffle_down( ushort8  cur, ushort8  next, uint c );
-ushort16    __ovld __conv intel_sub_group_shuffle_down( ushort16 cur, ushort16 next, uint c );
-
-short       __ovld __conv intel_sub_group_shuffle_up( short   cur, short   next, uint c );
-short2      __ovld __conv intel_sub_group_shuffle_up( short2  cur, short2  next, uint c );
-short3      __ovld __conv intel_sub_group_shuffle_up( short3  cur, short3  next, uint c );
-short4      __ovld __conv intel_sub_group_shuffle_up( short4  cur, short4  next, uint c );
-short8      __ovld __conv intel_sub_group_shuffle_up( short8  cur, short8  next, uint c );
-short16     __ovld __conv intel_sub_group_shuffle_up( short16 cur, short16 next, uint c );
-
-ushort      __ovld __conv intel_sub_group_shuffle_up( ushort   cur, ushort   next, uint c );
-ushort2     __ovld __conv intel_sub_group_shuffle_up( ushort2  cur, ushort2  next, uint c );
-ushort3     __ovld __conv intel_sub_group_shuffle_up( ushort3  cur, ushort3  next, uint c );
-ushort4     __ovld __conv intel_sub_group_shuffle_up( ushort4  cur, ushort4  next, uint c );
-ushort8     __ovld __conv intel_sub_group_shuffle_up( ushort8  cur, ushort8  next, uint c );
-ushort16    __ovld __conv intel_sub_group_shuffle_up( ushort16 cur, ushort16 next, uint c );
-
-short       __ovld __conv intel_sub_group_shuffle_xor( short   x, uint c );
-short2      __ovld __conv intel_sub_group_shuffle_xor( short2  x, uint c );
-short3      __ovld __conv intel_sub_group_shuffle_xor( short3  x, uint c );
-short4      __ovld __conv intel_sub_group_shuffle_xor( short4  x, uint c );
-short8      __ovld __conv intel_sub_group_shuffle_xor( short8  x, uint c );
-short16     __ovld __conv intel_sub_group_shuffle_xor( short16 x, uint c );
-
-ushort      __ovld __conv intel_sub_group_shuffle_xor( ushort   x, uint c );
-ushort2     __ovld __conv intel_sub_group_shuffle_xor( ushort2  x, uint c );
-ushort3     __ovld __conv intel_sub_group_shuffle_xor( ushort3  x, uint c );
-ushort4     __ovld __conv intel_sub_group_shuffle_xor( ushort4  x, uint c );
-ushort8     __ovld __conv intel_sub_group_shuffle_xor( ushort8  x, uint c );
-ushort16    __ovld __conv intel_sub_group_shuffle_xor( ushort16 x, uint c );
-
-short       __ovld __conv intel_sub_group_reduce_add( short   x );
-ushort      __ovld __conv intel_sub_group_reduce_add( ushort  x );
-short       __ovld __conv intel_sub_group_reduce_min( short   x );
-ushort      __ovld __conv intel_sub_group_reduce_min( ushort  x );
-short       __ovld __conv intel_sub_group_reduce_max( short   x );
-ushort      __ovld __conv intel_sub_group_reduce_max( ushort  x );
-
-short       __ovld __conv intel_sub_group_scan_exclusive_add( short   x );
-ushort      __ovld __conv intel_sub_group_scan_exclusive_add( ushort  x );
-short       __ovld __conv intel_sub_group_scan_exclusive_min( short   x );
-ushort      __ovld __conv intel_sub_group_scan_exclusive_min( ushort  x );
-short       __ovld __conv intel_sub_group_scan_exclusive_max( short   x );
-ushort      __ovld __conv intel_sub_group_scan_exclusive_max( ushort  x );
-
-short       __ovld __conv intel_sub_group_scan_inclusive_add( short   x );
-ushort      __ovld __conv intel_sub_group_scan_inclusive_add( ushort  x );
-short       __ovld __conv intel_sub_group_scan_inclusive_min( short   x );
-ushort      __ovld __conv intel_sub_group_scan_inclusive_min( ushort  x );
-short       __ovld __conv intel_sub_group_scan_inclusive_max( short   x );
-ushort      __ovld __conv intel_sub_group_scan_inclusive_max( ushort  x );
-
-uint       __ovld __conv intel_sub_group_block_read_ui( read_only image2d_t image, int2 byte_coord );
-uint2      __ovld __conv intel_sub_group_block_read_ui2( read_only image2d_t image, int2 byte_coord );
-uint4      __ovld __conv intel_sub_group_block_read_ui4( read_only image2d_t image, int2 byte_coord );
-uint8      __ovld __conv intel_sub_group_block_read_ui8( read_only image2d_t image, int2 byte_coord );
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-uint       __ovld __conv intel_sub_group_block_read_ui( read_write image2d_t image, int2 byte_coord );
-uint2      __ovld __conv intel_sub_group_block_read_ui2( read_write image2d_t image, int2 byte_coord );
-uint4      __ovld __conv intel_sub_group_block_read_ui4( read_write image2d_t image, int2 byte_coord );
-uint8      __ovld __conv intel_sub_group_block_read_ui8( read_write image2d_t image, int2 byte_coord );
-#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-uint       __ovld __conv intel_sub_group_block_read_ui( const __global uint* p );
-uint2      __ovld __conv intel_sub_group_block_read_ui2( const __global uint* p );
-uint4      __ovld __conv intel_sub_group_block_read_ui4( const __global uint* p );
-uint8      __ovld __conv intel_sub_group_block_read_ui8( const __global uint* p );
-
-void       __ovld __conv intel_sub_group_block_write_ui( read_only image2d_t image, int2 byte_coord, uint data );
-void       __ovld __conv intel_sub_group_block_write_ui2( read_only image2d_t image, int2 byte_coord, uint2 data );
-void       __ovld __conv intel_sub_group_block_write_ui4( read_only image2d_t image, int2 byte_coord, uint4 data );
-void       __ovld __conv intel_sub_group_block_write_ui8( read_only image2d_t image, int2 byte_coord, uint8 data );
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-void       __ovld __conv intel_sub_group_block_write_ui( read_write image2d_t image, int2 byte_coord, uint data );
-void       __ovld __conv intel_sub_group_block_write_ui2( read_write image2d_t image, int2 byte_coord, uint2 data );
-void       __ovld __conv intel_sub_group_block_write_ui4( read_write image2d_t image, int2 byte_coord, uint4 data );
-void       __ovld __conv intel_sub_group_block_write_ui8( read_write image2d_t image, int2 byte_coord, uint8 data );
-#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-void       __ovld __conv intel_sub_group_block_write_ui( __global uint* p, uint data );
-void       __ovld __conv intel_sub_group_block_write_ui2( __global uint* p, uint2 data );
-void       __ovld __conv intel_sub_group_block_write_ui4( __global uint* p, uint4 data );
-void       __ovld __conv intel_sub_group_block_write_ui8( __global uint* p, uint8 data );
-
-ushort      __ovld __conv intel_sub_group_block_read_us( read_only image2d_t image, int2 coord );
-ushort2     __ovld __conv intel_sub_group_block_read_us2( read_only image2d_t image, int2 coord );
-ushort4     __ovld __conv intel_sub_group_block_read_us4( read_only image2d_t image, int2 coord );
-ushort8     __ovld __conv intel_sub_group_block_read_us8( read_only image2d_t image, int2 coord );
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-ushort      __ovld __conv intel_sub_group_block_read_us(read_write image2d_t image, int2 coord);
-ushort2     __ovld __conv intel_sub_group_block_read_us2(read_write image2d_t image, int2 coord);
-ushort4     __ovld __conv intel_sub_group_block_read_us4(read_write image2d_t image, int2 coord);
-ushort8     __ovld __conv intel_sub_group_block_read_us8(read_write image2d_t image, int2 coord);
-#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-ushort      __ovld __conv intel_sub_group_block_read_us(  const __global ushort* p );
-ushort2     __ovld __conv intel_sub_group_block_read_us2( const __global ushort* p );
-ushort4     __ovld __conv intel_sub_group_block_read_us4( const __global ushort* p );
-ushort8     __ovld __conv intel_sub_group_block_read_us8( const __global ushort* p );
-
-void        __ovld __conv intel_sub_group_block_write_us(write_only image2d_t image, int2 coord, ushort  data);
-void        __ovld __conv intel_sub_group_block_write_us2(write_only image2d_t image, int2 coord, ushort2 data);
-void        __ovld __conv intel_sub_group_block_write_us4(write_only image2d_t image, int2 coord, ushort4 data);
-void        __ovld __conv intel_sub_group_block_write_us8(write_only image2d_t image, int2 coord, ushort8 data);
-
-#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-void        __ovld __conv intel_sub_group_block_write_us(read_write image2d_t image, int2 coord, ushort  data);
-void        __ovld __conv intel_sub_group_block_write_us2(read_write image2d_t image, int2 coord, ushort2 data);
-void        __ovld __conv intel_sub_group_block_write_us4(read_write image2d_t image, int2 coord, ushort4 data);
-void        __ovld __conv intel_sub_group_block_write_us8(read_write image2d_t image, int2 coord, ushort8 data);
-#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
-
-void        __ovld __conv intel_sub_group_block_write_us(  __global ushort* p, ushort  data );
-void        __ovld __conv intel_sub_group_block_write_us2( __global ushort* p, ushort2 data );
-void        __ovld __conv intel_sub_group_block_write_us4( __global ushort* p, ushort4 data );
-void        __ovld __conv intel_sub_group_block_write_us8( __global ushort* p, ushort8 data );
-#endif // cl_intel_subgroups_short
-
-#ifdef cl_intel_device_side_avc_motion_estimation
-#pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : begin
-
-// MCE built-in functions
-uchar __ovld
-intel_sub_group_avc_mce_get_default_inter_base_multi_reference_penalty(
-    uchar slice_type, uchar qp);
-ulong __ovld intel_sub_group_avc_mce_get_default_inter_shape_penalty(
-    uchar slice_type, uchar qp);
-uchar __ovld intel_sub_group_avc_mce_get_default_inter_direction_penalty(
-    uchar slice_type, uchar qp);
-uint __ovld intel_sub_group_avc_mce_get_default_intra_luma_shape_penalty(
-    uchar slice_type, uchar qp);
-uint2 __ovld
-intel_sub_group_avc_mce_get_default_inter_motion_vector_cost_table(
-    uchar slice_type, uchar qp);
-uchar __ovld intel_sub_group_avc_mce_get_default_intra_luma_mode_penalty(
-    uchar slice_type, uchar qp);
-
-uint2 __ovld intel_sub_group_avc_mce_get_default_high_penalty_cost_table();
-uint2 __ovld intel_sub_group_avc_mce_get_default_medium_penalty_cost_table();
-uint2 __ovld intel_sub_group_avc_mce_get_default_low_penalty_cost_table();
-uint __ovld intel_sub_group_avc_mce_get_default_non_dc_luma_intra_penalty();
-uchar __ovld
-intel_sub_group_avc_mce_get_default_intra_chroma_mode_base_penalty();
-
-intel_sub_group_avc_mce_payload_t __ovld
-intel_sub_group_avc_mce_set_inter_base_multi_reference_penalty(
-    uchar reference_base_penalty, intel_sub_group_avc_mce_payload_t payload);
-intel_sub_group_avc_mce_payload_t __ovld
-intel_sub_group_avc_mce_set_inter_shape_penalty(
-    ulong packed_shape_penalty, intel_sub_group_avc_mce_payload_t payload);
-intel_sub_group_avc_mce_payload_t __ovld
-intel_sub_group_avc_mce_set_inter_direction_penalty(
-    uchar direction_cost, intel_sub_group_avc_mce_payload_t payload);
-intel_sub_group_avc_mce_payload_t __ovld
-intel_sub_group_avc_mce_set_motion_vector_cost_function(
-    ulong packed_cost_center_delta, uint2 packed_cost_table,
-    uchar cost_precision, intel_sub_group_avc_mce_payload_t payload);
-intel_sub_group_avc_mce_payload_t __ovld
-intel_sub_group_avc_mce_set_ac_only_haar(
-    intel_sub_group_avc_mce_payload_t payload);
-intel_sub_group_avc_mce_payload_t __ovld
-intel_sub_group_avc_mce_set_source_interlaced_field_polarity(
-    uchar src_field_polarity, intel_sub_group_avc_mce_payload_t payload);
-intel_sub_group_avc_mce_payload_t __ovld
-intel_sub_group_avc_mce_set_single_reference_interlaced_field_polarity(
-    uchar ref_field_polarity, intel_sub_group_avc_mce_payload_t payload);
-intel_sub_group_avc_mce_payload_t __ovld
-intel_sub_group_avc_mce_set_dual_reference_interlaced_field_polarities(
-    uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
-    intel_sub_group_avc_mce_payload_t payload);
-
-ulong __ovld intel_sub_group_avc_mce_get_motion_vectors(
-    intel_sub_group_avc_mce_result_t result);
-ushort __ovld intel_sub_group_avc_mce_get_inter_distortions(
-    intel_sub_group_avc_mce_result_t result);
-ushort __ovld intel_sub_group_avc_mce_get_best_inter_distortion(
-    intel_sub_group_avc_mce_result_t result);
-uchar __ovld intel_sub_group_avc_mce_get_inter_major_shape(
-    intel_sub_group_avc_mce_result_t result);
-uchar __ovld intel_sub_group_avc_mce_get_inter_minor_shapes(
-    intel_sub_group_avc_mce_result_t result);
-uchar __ovld intel_sub_group_avc_mce_get_inter_directions(
-    intel_sub_group_avc_mce_result_t result);
-uchar __ovld intel_sub_group_avc_mce_get_inter_motion_vector_count(
-    intel_sub_group_avc_mce_result_t result);
-uint __ovld intel_sub_group_avc_mce_get_inter_reference_ids(
-    intel_sub_group_avc_mce_result_t result);
-uchar __ovld
-intel_sub_group_avc_mce_get_inter_reference_interlaced_field_polarities(
-    uint packed_reference_ids, uint packed_reference_parameter_field_polarities,
-    intel_sub_group_avc_mce_result_t result);
-
-// IME built-in functions
-intel_sub_group_avc_ime_payload_t __ovld
-intel_sub_group_avc_ime_initialize(
-    ushort2 src_coord, uchar partition_mask, uchar sad_adjustment);
-intel_sub_group_avc_ime_payload_t __ovld
-intel_sub_group_avc_ime_set_single_reference(
-    short2 ref_offset, uchar search_window_config,
-    intel_sub_group_avc_ime_payload_t payload);
-intel_sub_group_avc_ime_payload_t __ovld
-intel_sub_group_avc_ime_set_dual_reference(
-    short2 fwd_ref_offset, short2 bwd_ref_offset, uchar search_window_config,
-    intel_sub_group_avc_ime_payload_t payload);
-intel_sub_group_avc_ime_payload_t __ovld
-intel_sub_group_avc_ime_set_max_motion_vector_count(
-    uchar max_motion_vector_count, intel_sub_group_avc_ime_payload_t payload);
-intel_sub_group_avc_ime_payload_t __ovld
-intel_sub_group_avc_ime_set_unidirectional_mix_disable(
-    intel_sub_group_avc_ime_payload_t payload);
-intel_sub_group_avc_ime_payload_t __ovld
-intel_sub_group_avc_ime_set_early_search_termination_threshold(
-    uchar threshold, intel_sub_group_avc_ime_payload_t payload);
-intel_sub_group_avc_ime_payload_t __ovld
-intel_sub_group_avc_ime_set_weighted_sad(
-    uint packed_sad_weights, intel_sub_group_avc_ime_payload_t payload);
-
-__attribute__((deprecated("If you use the latest Intel driver, please use "
-                          "intel_sub_group_avc_ime_ref_window_size instead",
-                          "intel_sub_group_avc_ime_ref_window_size")))
-ushort2 __ovld
-intel_sub_group_ime_ref_window_size(uchar search_window_config, char dual_ref);
-ushort2 __ovld intel_sub_group_avc_ime_ref_window_size(
-    uchar search_window_config, char dual_ref);
-short2 __ovld intel_sub_group_avc_ime_adjust_ref_offset(
-    short2 ref_offset, ushort2 src_coord, ushort2 ref_window_size,
-    ushort2 image_size);
-
-intel_sub_group_avc_ime_result_t __ovld
-intel_sub_group_avc_ime_evaluate_with_single_reference(
-    read_only image2d_t src_image, read_only image2d_t ref_image,
-    sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload);
-intel_sub_group_avc_ime_result_t __ovld
-intel_sub_group_avc_ime_evaluate_with_dual_reference(
-    read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
-    read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
-    intel_sub_group_avc_ime_payload_t payload);
-intel_sub_group_avc_ime_result_single_reference_streamout_t __ovld
-intel_sub_group_avc_ime_evaluate_with_single_reference_streamout(
-    read_only image2d_t src_image, read_only image2d_t ref_image,
-    sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload);
-intel_sub_group_avc_ime_result_dual_reference_streamout_t __ovld
-intel_sub_group_avc_ime_evaluate_with_dual_reference_streamout(
-    read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
-    read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
-    intel_sub_group_avc_ime_payload_t payload);
-intel_sub_group_avc_ime_result_t __ovld
-intel_sub_group_avc_ime_evaluate_with_single_reference_streamin(
-    read_only image2d_t src_image, read_only image2d_t ref_image,
-    sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload,
-    intel_sub_group_avc_ime_single_reference_streamin_t streamin_components);
-intel_sub_group_avc_ime_result_t __ovld
-intel_sub_group_avc_ime_evaluate_with_dual_reference_streamin(
-    read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
-    read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
-    intel_sub_group_avc_ime_payload_t payload,
-    intel_sub_group_avc_ime_dual_reference_streamin_t streamin_components);
-intel_sub_group_avc_ime_result_single_reference_streamout_t __ovld
-intel_sub_group_avc_ime_evaluate_with_single_reference_streaminout(
-    read_only image2d_t src_image, read_only image2d_t ref_image,
-    sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload,
-    intel_sub_group_avc_ime_single_reference_streamin_t streamin_components);
-intel_sub_group_avc_ime_result_dual_reference_streamout_t __ovld
-intel_sub_group_avc_ime_evaluate_with_dual_reference_streaminout(
-    read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
-    read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
-    intel_sub_group_avc_ime_payload_t payload,
-    intel_sub_group_avc_ime_dual_reference_streamin_t streamin_components);
-
-intel_sub_group_avc_ime_single_reference_streamin_t __ovld
-intel_sub_group_avc_ime_get_single_reference_streamin(
-    intel_sub_group_avc_ime_result_single_reference_streamout_t result);
-intel_sub_group_avc_ime_dual_reference_streamin_t __ovld
-intel_sub_group_avc_ime_get_dual_reference_streamin(
-    intel_sub_group_avc_ime_result_dual_reference_streamout_t result);
-intel_sub_group_avc_ime_result_t __ovld
-intel_sub_group_avc_ime_strip_single_reference_streamout(
-    intel_sub_group_avc_ime_result_single_reference_streamout_t result);
-intel_sub_group_avc_ime_result_t __ovld
-intel_sub_group_avc_ime_strip_dual_reference_streamout(
-    intel_sub_group_avc_ime_result_dual_reference_streamout_t result);
-
-uint __ovld intel_sub_group_avc_ime_get_streamout_major_shape_motion_vectors(
-    intel_sub_group_avc_ime_result_single_reference_streamout_t result,
-    uchar major_shape);
-ushort __ovld intel_sub_group_avc_ime_get_streamout_major_shape_distortions(
-    intel_sub_group_avc_ime_result_single_reference_streamout_t result,
-    uchar major_shape);
-uchar __ovld intel_sub_group_avc_ime_get_streamout_major_shape_reference_ids(
-    intel_sub_group_avc_ime_result_single_reference_streamout_t result,
-    uchar major_shape);
-uint __ovld intel_sub_group_avc_ime_get_streamout_major_shape_motion_vectors(
-    intel_sub_group_avc_ime_result_dual_reference_streamout_t result,
-    uchar major_shape, uchar direction);
-ushort __ovld intel_sub_group_avc_ime_get_streamout_major_shape_distortions(
-    intel_sub_group_avc_ime_result_dual_reference_streamout_t result,
-    uchar major_shape, uchar direction);
-uchar __ovld intel_sub_group_avc_ime_get_streamout_major_shape_reference_ids(
-    intel_sub_group_avc_ime_result_dual_reference_streamout_t result,
-    uchar major_shape, uchar direction);
-
-uchar __ovld intel_sub_group_avc_ime_get_border_reached(
-    uchar image_select, intel_sub_group_avc_ime_result_t result);
-uchar __ovld intel_sub_group_avc_ime_get_truncated_search_indication(
-    intel_sub_group_avc_ime_result_t result);
-uchar __ovld
-intel_sub_group_avc_ime_get_unidirectional_early_search_termination(
-    intel_sub_group_avc_ime_result_t result);
-uint __ovld intel_sub_group_avc_ime_get_weighting_pattern_minimum_motion_vector(
-    intel_sub_group_avc_ime_result_t result);
-ushort __ovld intel_sub_group_avc_ime_get_weighting_pattern_minimum_distortion(
-    intel_sub_group_avc_ime_result_t result);
-
-// REF built-in functions
-intel_sub_group_avc_ref_payload_t __ovld
-intel_sub_group_avc_fme_initialize(
-    ushort2 src_coord, ulong motion_vectors, uchar major_shapes,
-    uchar minor_shapes, uchar directions, uchar pixel_resolution,
-    uchar sad_adjustment);
-intel_sub_group_avc_ref_payload_t __ovld
-intel_sub_group_avc_bme_initialize(
-    ushort2 src_coord, ulong motion_vectors, uchar major_shapes,
-    uchar minor_shapes, uchar directions, uchar pixel_resolution,
-    uchar bidirectional_weight, uchar sad_adjustment);
-
-intel_sub_group_avc_ref_payload_t __ovld
-intel_sub_group_avc_ref_set_bidirectional_mix_disable(
-    intel_sub_group_avc_ref_payload_t payload);
-intel_sub_group_avc_ref_payload_t __ovld
-intel_sub_group_avc_ref_set_bilinear_filter_enable(
-    intel_sub_group_avc_ref_payload_t payload);
-
-intel_sub_group_avc_ref_result_t __ovld
-intel_sub_group_avc_ref_evaluate_with_single_reference(
-    read_only image2d_t src_image, read_only image2d_t ref_image,
-    sampler_t vme_media_sampler, intel_sub_group_avc_ref_payload_t payload);
-intel_sub_group_avc_ref_result_t __ovld
-intel_sub_group_avc_ref_evaluate_with_dual_reference(
-    read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
-    read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
-    intel_sub_group_avc_ref_payload_t payload);
-intel_sub_group_avc_ref_result_t __ovld
-intel_sub_group_avc_ref_evaluate_with_multi_reference(
-    read_only image2d_t src_image, uint packed_reference_ids,
-    sampler_t vme_media_sampler, intel_sub_group_avc_ref_payload_t payload);
-intel_sub_group_avc_ref_result_t __ovld
-intel_sub_group_avc_ref_evaluate_with_multi_reference(
-    read_only image2d_t src_image, uint packed_reference_ids,
-    uchar packed_reference_field_polarities, sampler_t vme_media_sampler,
-    intel_sub_group_avc_ref_payload_t payload);
-
-// SIC built-in functions
-intel_sub_group_avc_sic_payload_t __ovld
-intel_sub_group_avc_sic_initialize(
-    ushort2 src_coord);
-intel_sub_group_avc_sic_payload_t __ovld
-intel_sub_group_avc_sic_configure_skc(
-    uint skip_block_partition_type, uint skip_motion_vector_mask,
-    ulong motion_vectors, uchar bidirectional_weight, uchar skip_sad_adjustment,
-    intel_sub_group_avc_sic_payload_t payload);
-intel_sub_group_avc_sic_payload_t __ovld
-intel_sub_group_avc_sic_configure_ipe(
-    uchar luma_intra_partition_mask, uchar intra_neighbour_availabilty,
-    uchar left_edge_luma_pixels, uchar upper_left_corner_luma_pixel,
-    uchar upper_edge_luma_pixels, uchar upper_right_edge_luma_pixels,
-    uchar intra_sad_adjustment, intel_sub_group_avc_sic_payload_t payload);
-intel_sub_group_avc_sic_payload_t __ovld
-intel_sub_group_avc_sic_configure_ipe(
-    uchar luma_intra_partition_mask, uchar intra_neighbour_availabilty,
-    uchar left_edge_luma_pixels, uchar upper_left_corner_luma_pixel,
-    uchar upper_edge_luma_pixels, uchar upper_right_edge_luma_pixels,
-    ushort left_edge_chroma_pixels, ushort upper_left_corner_chroma_pixel,
-    ushort upper_edge_chroma_pixels, uchar intra_sad_adjustment,
-    intel_sub_group_avc_sic_payload_t payload);
-uint __ovld
-intel_sub_group_avc_sic_get_motion_vector_mask(
-    uint skip_block_partition_type, uchar direction);
-
-intel_sub_group_avc_sic_payload_t __ovld
-intel_sub_group_avc_sic_set_intra_luma_shape_penalty(
-    uint packed_shape_cost, intel_sub_group_avc_sic_payload_t payload);
-intel_sub_group_avc_sic_payload_t __ovld
-intel_sub_group_avc_sic_set_intra_luma_mode_cost_function(
-    uchar luma_mode_penalty, uint luma_packed_neighbor_modes,
-    uint luma_packed_non_dc_penalty, intel_sub_group_avc_sic_payload_t payload);
-intel_sub_group_avc_sic_payload_t __ovld
-intel_sub_group_avc_sic_set_intra_chroma_mode_cost_function(
-    uchar chroma_mode_penalty, intel_sub_group_avc_sic_payload_t payload);
-
-intel_sub_group_avc_sic_payload_t __ovld
-intel_sub_group_avc_sic_set_skc_bilinear_filter_enable(
-    intel_sub_group_avc_sic_payload_t payload);
-intel_sub_group_avc_sic_payload_t __ovld
-intel_sub_group_avc_sic_set_skc_forward_transform_enable(
-    ulong packed_sad_coefficients, intel_sub_group_avc_sic_payload_t payload);
-intel_sub_group_avc_sic_payload_t __ovld
-intel_sub_group_avc_sic_set_block_based_raw_skip_sad(
-    uchar block_based_skip_type,
-    intel_sub_group_avc_sic_payload_t payload);
-
-intel_sub_group_avc_sic_result_t __ovld
-intel_sub_group_avc_sic_evaluate_ipe(
-    read_only image2d_t src_image, sampler_t vme_media_sampler,
-    intel_sub_group_avc_sic_payload_t payload);
-intel_sub_group_avc_sic_result_t __ovld
-intel_sub_group_avc_sic_evaluate_with_single_reference(
-    read_only image2d_t src_image, read_only image2d_t ref_image,
-    sampler_t vme_media_sampler, intel_sub_group_avc_sic_payload_t payload);
-intel_sub_group_avc_sic_result_t __ovld
-intel_sub_group_avc_sic_evaluate_with_dual_reference(
-    read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
-    read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
-    intel_sub_group_avc_sic_payload_t payload);
-intel_sub_group_avc_sic_result_t __ovld
-intel_sub_group_avc_sic_evaluate_with_multi_reference(
-    read_only image2d_t src_image, uint packed_reference_ids,
-    sampler_t vme_media_sampler, intel_sub_group_avc_sic_payload_t payload);
-intel_sub_group_avc_sic_result_t __ovld
-intel_sub_group_avc_sic_evaluate_with_multi_reference(
-    read_only image2d_t src_image, uint packed_reference_ids,
-    uchar packed_reference_field_polarities, sampler_t vme_media_sampler,
-    intel_sub_group_avc_sic_payload_t payload);
-
-uchar __ovld intel_sub_group_avc_sic_get_ipe_luma_shape(
-    intel_sub_group_avc_sic_result_t result);
-ushort __ovld intel_sub_group_avc_sic_get_best_ipe_luma_distortion(
-    intel_sub_group_avc_sic_result_t result);
-ushort __ovld intel_sub_group_avc_sic_get_best_ipe_chroma_distortion(
-    intel_sub_group_avc_sic_result_t result);
-ulong __ovld intel_sub_group_avc_sic_get_packed_ipe_luma_modes(
-    intel_sub_group_avc_sic_result_t result);
-uchar __ovld intel_sub_group_avc_sic_get_ipe_chroma_mode(
-    intel_sub_group_avc_sic_result_t result);
-uint __ovld intel_sub_group_avc_sic_get_packed_skc_luma_count_threshold(
-    intel_sub_group_avc_sic_result_t result);
-ulong __ovld intel_sub_group_avc_sic_get_packed_skc_luma_sum_threshold(
-    intel_sub_group_avc_sic_result_t result);
-ushort __ovld intel_sub_group_avc_sic_get_inter_raw_sads(
-    intel_sub_group_avc_sic_result_t result);
-
-// Wrappers
-intel_sub_group_avc_ime_payload_t __ovld
-intel_sub_group_avc_ime_set_inter_base_multi_reference_penalty(
-    uchar reference_base_penalty, intel_sub_group_avc_ime_payload_t payload);
-intel_sub_group_avc_ref_payload_t __ovld
-intel_sub_group_avc_ref_set_inter_base_multi_reference_penalty(
-    uchar reference_base_penalty, intel_sub_group_avc_ref_payload_t payload);
-intel_sub_group_avc_sic_payload_t __ovld
-intel_sub_group_avc_sic_set_inter_base_multi_reference_penalty(
-    uchar reference_base_penalty, intel_sub_group_avc_sic_payload_t payload);
-
-intel_sub_group_avc_ime_payload_t __ovld
-intel_sub_group_avc_ime_set_inter_shape_penalty(
-    ulong packed_shape_cost, intel_sub_group_avc_ime_payload_t payload);
-intel_sub_group_avc_ref_payload_t __ovld
-intel_sub_group_avc_ref_set_inter_shape_penalty(
-    ulong packed_shape_cost, intel_sub_group_avc_ref_payload_t payload);
-intel_sub_group_avc_sic_payload_t __ovld
-intel_sub_group_avc_sic_set_inter_shape_penalty(
-    ulong packed_shape_cost, intel_sub_group_avc_sic_payload_t payload);
-
-intel_sub_group_avc_ime_payload_t __ovld
-intel_sub_group_avc_ime_set_inter_direction_penalty(
-    uchar direction_cost, intel_sub_group_avc_ime_payload_t payload);
-intel_sub_group_avc_ref_payload_t __ovld
-intel_sub_group_avc_ref_set_inter_direction_penalty(
-    uchar direction_cost, intel_sub_group_avc_ref_payload_t payload);
-intel_sub_group_avc_sic_payload_t __ovld
-intel_sub_group_avc_sic_set_inter_direction_penalty(
-    uchar direction_cost, intel_sub_group_avc_sic_payload_t payload);
-
-intel_sub_group_avc_ime_payload_t __ovld
-intel_sub_group_avc_ime_set_motion_vector_cost_function(
-    ulong packed_cost_center_delta, uint2 packed_cost_table,
-    uchar cost_precision, intel_sub_group_avc_ime_payload_t payload);
-intel_sub_group_avc_ref_payload_t __ovld
-intel_sub_group_avc_ref_set_motion_vector_cost_function(
-    ulong packed_cost_center_delta, uint2 packed_cost_table,
-    uchar cost_precision, intel_sub_group_avc_ref_payload_t payload);
-intel_sub_group_avc_sic_payload_t __ovld
-intel_sub_group_avc_sic_set_motion_vector_cost_function(
-    ulong packed_cost_center_delta, uint2 packed_cost_table,
-    uchar cost_precision, intel_sub_group_avc_sic_payload_t payload);
-
-intel_sub_group_avc_ime_payload_t __ovld
-intel_sub_group_avc_ime_set_source_interlaced_field_polarity(
-    uchar src_field_polarity, intel_sub_group_avc_ime_payload_t payload);
-intel_sub_group_avc_ref_payload_t __ovld
-intel_sub_group_avc_ref_set_source_interlaced_field_polarity(
-    uchar src_field_polarity, intel_sub_group_avc_ref_payload_t payload);
-intel_sub_group_avc_sic_payload_t __ovld
-intel_sub_group_avc_sic_set_source_interlaced_field_polarity(
-    uchar src_field_polarity, intel_sub_group_avc_sic_payload_t payload);
-
-intel_sub_group_avc_ime_payload_t __ovld
-intel_sub_group_avc_ime_set_single_reference_interlaced_field_polarity(
-    uchar ref_field_polarity, intel_sub_group_avc_ime_payload_t payload);
-intel_sub_group_avc_ref_payload_t __ovld
-intel_sub_group_avc_ref_set_single_reference_interlaced_field_polarity(
-    uchar ref_field_polarity, intel_sub_group_avc_ref_payload_t payload);
-intel_sub_group_avc_sic_payload_t __ovld
-intel_sub_group_avc_sic_set_single_reference_interlaced_field_polarity(
-    uchar ref_field_polarity, intel_sub_group_avc_sic_payload_t payload);
-intel_sub_group_avc_ime_payload_t __ovld
-intel_sub_group_avc_ime_set_dual_reference_interlaced_field_polarities(
-    uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
-    intel_sub_group_avc_ime_payload_t payload);
-intel_sub_group_avc_ref_payload_t __ovld
-intel_sub_group_avc_ref_set_dual_reference_interlaced_field_polarities(
-    uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
-    intel_sub_group_avc_ref_payload_t payload);
-intel_sub_group_avc_sic_payload_t __ovld
-intel_sub_group_avc_sic_set_dual_reference_interlaced_field_polarities(
-    uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
-    intel_sub_group_avc_sic_payload_t payload);
-
-intel_sub_group_avc_ime_payload_t __ovld
-intel_sub_group_avc_ime_set_ac_only_haar(
-    intel_sub_group_avc_ime_payload_t payload);
-intel_sub_group_avc_ref_payload_t __ovld
-intel_sub_group_avc_ref_set_ac_only_haar(
-    intel_sub_group_avc_ref_payload_t payload);
-intel_sub_group_avc_sic_payload_t __ovld
-intel_sub_group_avc_sic_set_ac_only_haar(
-    intel_sub_group_avc_sic_payload_t payload);
-
-ulong __ovld intel_sub_group_avc_ime_get_motion_vectors(
-    intel_sub_group_avc_ime_result_t result);
-ulong __ovld intel_sub_group_avc_ref_get_motion_vectors(
-    intel_sub_group_avc_ref_result_t result);
-
-ushort __ovld intel_sub_group_avc_ime_get_inter_distortions(
-    intel_sub_group_avc_ime_result_t result);
-ushort __ovld intel_sub_group_avc_ref_get_inter_distortions(
-    intel_sub_group_avc_ref_result_t result);
-ushort __ovld intel_sub_group_avc_sic_get_inter_distortions(
-    intel_sub_group_avc_sic_result_t result);
-
-ushort __ovld intel_sub_group_avc_ime_get_best_inter_distortion(
-    intel_sub_group_avc_ime_result_t result);
-ushort __ovld intel_sub_group_avc_ref_get_best_inter_distortion(
-    intel_sub_group_avc_ref_result_t result);
-
-uchar __ovld intel_sub_group_avc_ime_get_inter_major_shape(
-    intel_sub_group_avc_ime_result_t result);
-uchar __ovld intel_sub_group_avc_ref_get_inter_major_shape(
-    intel_sub_group_avc_ref_result_t result);
-uchar __ovld intel_sub_group_avc_ime_get_inter_minor_shapes(
-    intel_sub_group_avc_ime_result_t result);
-uchar __ovld intel_sub_group_avc_ref_get_inter_minor_shapes(
-    intel_sub_group_avc_ref_result_t result);
-
-uchar __ovld intel_sub_group_avc_ime_get_inter_directions(
-    intel_sub_group_avc_ime_result_t result);
-uchar __ovld intel_sub_group_avc_ref_get_inter_directions(
-    intel_sub_group_avc_ref_result_t result);
-
-uchar __ovld intel_sub_group_avc_ime_get_inter_motion_vector_count(
-    intel_sub_group_avc_ime_result_t result);
-uchar __ovld intel_sub_group_avc_ref_get_inter_motion_vector_count(
-    intel_sub_group_avc_ref_result_t result);
-
-uint __ovld intel_sub_group_avc_ime_get_inter_reference_ids(
-    intel_sub_group_avc_ime_result_t result);
-uint __ovld intel_sub_group_avc_ref_get_inter_reference_ids(
-    intel_sub_group_avc_ref_result_t result);
-
-uchar __ovld
-intel_sub_group_avc_ime_get_inter_reference_interlaced_field_polarities(
-    uint packed_reference_ids, uint packed_reference_parameter_field_polarities,
-    intel_sub_group_avc_ime_result_t result);
-uchar __ovld
-intel_sub_group_avc_ref_get_inter_reference_interlaced_field_polarities(
-    uint packed_reference_ids, uint packed_reference_parameter_field_polarities,
-    intel_sub_group_avc_ref_result_t result);
-
-// Type conversion functions
-intel_sub_group_avc_mce_payload_t __ovld
-intel_sub_group_avc_ime_convert_to_mce_payload(
-    intel_sub_group_avc_ime_payload_t payload);
-intel_sub_group_avc_ime_payload_t __ovld
-intel_sub_group_avc_mce_convert_to_ime_payload(
-    intel_sub_group_avc_mce_payload_t payload);
-intel_sub_group_avc_mce_payload_t __ovld
-intel_sub_group_avc_ref_convert_to_mce_payload(
-    intel_sub_group_avc_ref_payload_t payload);
-intel_sub_group_avc_ref_payload_t __ovld
-intel_sub_group_avc_mce_convert_to_ref_payload(
-    intel_sub_group_avc_mce_payload_t payload);
-intel_sub_group_avc_mce_payload_t __ovld
-intel_sub_group_avc_sic_convert_to_mce_payload(
-    intel_sub_group_avc_sic_payload_t payload);
-intel_sub_group_avc_sic_payload_t __ovld
-intel_sub_group_avc_mce_convert_to_sic_payload(
-    intel_sub_group_avc_mce_payload_t payload);
-
-intel_sub_group_avc_mce_result_t __ovld
-intel_sub_group_avc_ime_convert_to_mce_result(
-    intel_sub_group_avc_ime_result_t result);
-intel_sub_group_avc_ime_result_t __ovld
-intel_sub_group_avc_mce_convert_to_ime_result(
-    intel_sub_group_avc_mce_result_t result);
-intel_sub_group_avc_mce_result_t __ovld
-intel_sub_group_avc_ref_convert_to_mce_result(
-    intel_sub_group_avc_ref_result_t result);
-intel_sub_group_avc_ref_result_t __ovld
-intel_sub_group_avc_mce_convert_to_ref_result(
-    intel_sub_group_avc_mce_result_t result);
-intel_sub_group_avc_mce_result_t __ovld
-intel_sub_group_avc_sic_convert_to_mce_result(
-    intel_sub_group_avc_sic_result_t result);
-intel_sub_group_avc_sic_result_t __ovld
-intel_sub_group_avc_mce_convert_to_sic_result(
-    intel_sub_group_avc_mce_result_t result);
-#pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : end
-#endif // cl_intel_device_side_avc_motion_estimation
-
-#ifdef cl_amd_media_ops
-uint __ovld amd_bitalign(uint a, uint b, uint c);
-uint2 __ovld amd_bitalign(uint2 a, uint2 b, uint2 c);
-uint3 __ovld amd_bitalign(uint3 a, uint3 b, uint3 c);
-uint4 __ovld amd_bitalign(uint4 a, uint4 b, uint4 c);
-uint8 __ovld amd_bitalign(uint8 a, uint8 b, uint8 c);
-uint16 __ovld amd_bitalign(uint16 a, uint16 b, uint16 c);
-
-uint __ovld amd_bytealign(uint a, uint b, uint c);
-uint2 __ovld amd_bytealign(uint2 a, uint2 b, uint2 c);
-uint3 __ovld amd_bytealign(uint3 a, uint3 b, uint3 c);
-uint4 __ovld amd_bytealign(uint4 a, uint4 b, uint4 c);
-uint8 __ovld amd_bytealign(uint8 a, uint8 b, uint8 c);
-uint16 __ovld amd_bytealign(uint16 a, uint16 b, uint16 c);
-
-uint __ovld amd_lerp(uint a, uint b, uint c);
-uint2 __ovld amd_lerp(uint2 a, uint2 b, uint2 c);
-uint3 __ovld amd_lerp(uint3 a, uint3 b, uint3 c);
-uint4 __ovld amd_lerp(uint4 a, uint4 b, uint4 c);
-uint8 __ovld amd_lerp(uint8 a, uint8 b, uint8 c);
-uint16 __ovld amd_lerp(uint16 a, uint16 b, uint16 c);
-
-uint __ovld amd_pack(float4 v);
-
-uint __ovld amd_sad4(uint4 x, uint4 y, uint z);
-
-uint __ovld amd_sadhi(uint a, uint b, uint c);
-uint2 __ovld amd_sadhi(uint2 a, uint2 b, uint2 c);
-uint3 __ovld amd_sadhi(uint3 a, uint3 b, uint3 c);
-uint4 __ovld amd_sadhi(uint4 a, uint4 b, uint4 c);
-uint8 __ovld amd_sadhi(uint8 a, uint8 b, uint8 c);
-uint16 __ovld amd_sadhi(uint16 a, uint16 b, uint16 c);
-
-uint __ovld amd_sad(uint a, uint b, uint c);
-uint2 __ovld amd_sad(uint2 a, uint2 b, uint2 c);
-uint3 __ovld amd_sad(uint3 a, uint3 b, uint3 c);
-uint4 __ovld amd_sad(uint4 a, uint4 b, uint4 c);
-uint8 __ovld amd_sad(uint8 a, uint8 b, uint8 c);
-uint16 __ovld amd_sad(uint16 a, uint16 b, uint16 c);
-
-float __ovld amd_unpack0(uint a);
-float2 __ovld amd_unpack0(uint2 a);
-float3 __ovld amd_unpack0(uint3 a);
-float4 __ovld amd_unpack0(uint4 a);
-float8 __ovld amd_unpack0(uint8 a);
-float16 __ovld amd_unpack0(uint16 a);
-
-float __ovld amd_unpack1(uint a);
-float2 __ovld amd_unpack1(uint2 a);
-float3 __ovld amd_unpack1(uint3 a);
-float4 __ovld amd_unpack1(uint4 a);
-float8 __ovld amd_unpack1(uint8 a);
-float16 __ovld amd_unpack1(uint16 a);
-
-float __ovld amd_unpack2(uint a);
-float2 __ovld amd_unpack2(uint2 a);
-float3 __ovld amd_unpack2(uint3 a);
-float4 __ovld amd_unpack2(uint4 a);
-float8 __ovld amd_unpack2(uint8 a);
-float16 __ovld amd_unpack2(uint16 a);
-
-float __ovld amd_unpack3(uint a);
-float2 __ovld amd_unpack3(uint2 a);
-float3 __ovld amd_unpack3(uint3 a);
-float4 __ovld amd_unpack3(uint4 a);
-float8 __ovld amd_unpack3(uint8 a);
-float16 __ovld amd_unpack3(uint16 a);
-#endif // cl_amd_media_ops
-
-#ifdef cl_amd_media_ops2
-int __ovld amd_bfe(int src0, uint src1, uint src2);
-int2 __ovld amd_bfe(int2 src0, uint2 src1, uint2 src2);
-int3 __ovld amd_bfe(int3 src0, uint3 src1, uint3 src2);
-int4 __ovld amd_bfe(int4 src0, uint4 src1, uint4 src2);
-int8 __ovld amd_bfe(int8 src0, uint8 src1, uint8 src2);
-int16 __ovld amd_bfe(int16 src0, uint16 src1, uint16 src2);
-
-uint __ovld amd_bfe(uint src0, uint src1, uint src2);
-uint2 __ovld amd_bfe(uint2 src0, uint2 src1, uint2 src2);
-uint3 __ovld amd_bfe(uint3 src0, uint3 src1, uint3 src2);
-uint4 __ovld amd_bfe(uint4 src0, uint4 src1, uint4 src2);
-uint8 __ovld amd_bfe(uint8 src0, uint8 src1, uint8 src2);
-uint16 __ovld amd_bfe(uint16 src0, uint16 src1, uint16 src2);
-
-uint __ovld amd_bfm(uint src0, uint src1);
-uint2 __ovld amd_bfm(uint2 src0, uint2 src1);
-uint3 __ovld amd_bfm(uint3 src0, uint3 src1);
-uint4 __ovld amd_bfm(uint4 src0, uint4 src1);
-uint8 __ovld amd_bfm(uint8 src0, uint8 src1);
-uint16 __ovld amd_bfm(uint16 src0, uint16 src1);
-
-float __ovld amd_max3(float src0, float src1, float src2);
-float2 __ovld amd_max3(float2 src0, float2 src1, float2 src2);
-float3 __ovld amd_max3(float3 src0, float3 src1, float3 src2);
-float4 __ovld amd_max3(float4 src0, float4 src1, float4 src2);
-float8 __ovld amd_max3(float8 src0, float8 src1, float8 src2);
-float16 __ovld amd_max3(float16 src0, float16 src1, float16 src2);
-
-int __ovld amd_max3(int src0, int src1, int src2);
-int2 __ovld amd_max3(int2 src0, int2 src1, int2 src2);
-int3 __ovld amd_max3(int3 src0, int3 src1, int3 src2);
-int4 __ovld amd_max3(int4 src0, int4 src1, int4 src2);
-int8 __ovld amd_max3(int8 src0, int8 src1, int8 src2);
-int16 __ovld amd_max3(int16 src0, int16 src1, int16 src2);
-
-uint __ovld amd_max3(uint src0, uint src1, uint src2);
-uint2 __ovld amd_max3(uint2 src0, uint2 src1, uint2 src2);
-uint3 __ovld amd_max3(uint3 src0, uint3 src1, uint3 src2);
-uint4 __ovld amd_max3(uint4 src0, uint4 src1, uint4 src2);
-uint8 __ovld amd_max3(uint8 src0, uint8 src1, uint8 src2);
-uint16 __ovld amd_max3(uint16 src0, uint16 src1, uint16 src2);
-
-float __ovld amd_median3(float src0, float src1, float src2);
-float2 __ovld amd_median3(float2 src0, float2 src1, float2 src2);
-float3 __ovld amd_median3(float3 src0, float3 src1, float3 src2);
-float4 __ovld amd_median3(float4 src0, float4 src1, float4 src2);
-float8 __ovld amd_median3(float8 src0, float8 src1, float8 src2);
-float16 __ovld amd_median3(float16 src0, float16 src1, float16 src2);
-
-int __ovld amd_median3(int src0, int src1, int src2);
-int2 __ovld amd_median3(int2 src0, int2 src1, int2 src2);
-int3 __ovld amd_median3(int3 src0, int3 src1, int3 src2);
-int4 __ovld amd_median3(int4 src0, int4 src1, int4 src2);
-int8 __ovld amd_median3(int8 src0, int8 src1, int8 src2);
-int16 __ovld amd_median3(int16 src0, int16 src1, int16 src2);
-
-uint __ovld amd_median3(uint src0, uint src1, uint src2);
-uint2 __ovld amd_median3(uint2 src0, uint2 src1, uint2 src2);
-uint3 __ovld amd_median3(uint3 src0, uint3 src1, uint3 src2);
-uint4 __ovld amd_median3(uint4 src0, uint4 src1, uint4 src2);
-uint8 __ovld amd_median3(uint8 src0, uint8 src1, uint8 src2);
-uint16 __ovld amd_median3(uint16 src0, uint16 src1, uint16 src2);
-
-float __ovld amd_min3(float src0, float src1, float src);
-float2 __ovld amd_min3(float2 src0, float2 src1, float2 src);
-float3 __ovld amd_min3(float3 src0, float3 src1, float3 src);
-float4 __ovld amd_min3(float4 src0, float4 src1, float4 src);
-float8 __ovld amd_min3(float8 src0, float8 src1, float8 src);
-float16 __ovld amd_min3(float16 src0, float16 src1, float16 src);
-
-int __ovld amd_min3(int src0, int src1, int src2);
-int2 __ovld amd_min3(int2 src0, int2 src1, int2 src2);
-int3 __ovld amd_min3(int3 src0, int3 src1, int3 src2);
-int4 __ovld amd_min3(int4 src0, int4 src1, int4 src2);
-int8 __ovld amd_min3(int8 src0, int8 src1, int8 src2);
-int16 __ovld amd_min3(int16 src0, int16 src1, int16 src2);
-
-uint __ovld amd_min3(uint src0, uint src1, uint src2);
-uint2 __ovld amd_min3(uint2 src0, uint2 src1, uint2 src2);
-uint3 __ovld amd_min3(uint3 src0, uint3 src1, uint3 src2);
-uint4 __ovld amd_min3(uint4 src0, uint4 src1, uint4 src2);
-uint8 __ovld amd_min3(uint8 src0, uint8 src1, uint8 src2);
-uint16 __ovld amd_min3(uint16 src0, uint16 src1, uint16 src2);
-
-ulong __ovld amd_mqsad(ulong src0, uint src1, ulong src2);
-ulong2 __ovld amd_mqsad(ulong2 src0, uint2 src1, ulong2 src2);
-ulong3 __ovld amd_mqsad(ulong3 src0, uint3 src1, ulong3 src2);
-ulong4 __ovld amd_mqsad(ulong4 src0, uint4 src1, ulong4 src2);
-ulong8 __ovld amd_mqsad(ulong8 src0, uint8 src1, ulong8 src2);
-ulong16 __ovld amd_mqsad(ulong16 src0, uint16 src1, ulong16 src2);
-
-ulong __ovld amd_qsad(ulong src0, uint src1, ulong src2);
-ulong2 __ovld amd_qsad(ulong2 src0, uint2 src1, ulong2 src2);
-ulong3 __ovld amd_qsad(ulong3 src0, uint3 src1, ulong3 src2);
-ulong4 __ovld amd_qsad(ulong4 src0, uint4 src1, ulong4 src2);
-ulong8 __ovld amd_qsad(ulong8 src0, uint8 src1, ulong8 src2);
-ulong16 __ovld amd_qsad(ulong16 src0, uint16 src1, ulong16 src2);
-
-uint __ovld amd_msad(uint src0, uint src1, uint src2);
-uint2 __ovld amd_msad(uint2 src0, uint2 src1, uint2 src2);
-uint3 __ovld amd_msad(uint3 src0, uint3 src1, uint3 src2);
-uint4 __ovld amd_msad(uint4 src0, uint4 src1, uint4 src2);
-uint8 __ovld amd_msad(uint8 src0, uint8 src1, uint8 src2);
-uint16 __ovld amd_msad(uint16 src0, uint16 src1, uint16 src2);
-
-uint __ovld amd_sadd(uint src0, uint src1, uint src2);
-uint2 __ovld amd_sadd(uint2 src0, uint2 src1, uint2 src2);
-uint3 __ovld amd_sadd(uint3 src0, uint3 src1, uint3 src2);
-uint4 __ovld amd_sadd(uint4 src0, uint4 src1, uint4 src2);
-uint8 __ovld amd_sadd(uint8 src0, uint8 src1, uint8 src2);
-uint16 __ovld amd_sadd(uint16 src0, uint16 src1, uint16 src2);
-
-uint __ovld amd_sadw(uint src0, uint src1, uint src2);
-uint2 __ovld amd_sadw(uint2 src0, uint2 src1, uint2 src2);
-uint3 __ovld amd_sadw(uint3 src0, uint3 src1, uint3 src2);
-uint4 __ovld amd_sadw(uint4 src0, uint4 src1, uint4 src2);
-uint8 __ovld amd_sadw(uint8 src0, uint8 src1, uint8 src2);
-uint16 __ovld amd_sadw(uint16 src0, uint16 src1, uint16 src2);
-#endif // cl_amd_media_ops2
-
-#if defined(cl_arm_integer_dot_product_int8)
-uint __ovld arm_dot(uchar4 a, uchar4 b);
-int __ovld arm_dot(char4 a, char4 b);
-#endif // defined(cl_arm_integer_dot_product_int8)
-
-#if defined(cl_arm_integer_dot_product_accumulate_int8)
-uint __ovld arm_dot_acc(uchar4 a, uchar4 b, uint c);
-int __ovld arm_dot_acc(char4 a, char4 b, int c);
-#endif // defined(cl_arm_integer_dot_product_accumulate_int8)
-
-#if defined(cl_arm_integer_dot_product_accumulate_int16)
-uint __ovld arm_dot_acc(ushort2 a, ushort2 b, uint c);
-int __ovld arm_dot_acc(short2 a, short2 b, int c);
-#endif // defined(cl_arm_integer_dot_product_accumulate_int16)
-
-#if defined(cl_arm_integer_dot_product_accumulate_saturate_int8)
-uint __ovld arm_dot_acc_sat(uchar4 a, uchar4 b, uint c);
-int __ovld arm_dot_acc_sat(char4 a, char4 b, int c);
-#endif // defined(cl_arm_integer_dot_product_accumulate_saturate_int8)
-
-// Disable any extensions we may have enabled previously.
-#pragma OPENCL EXTENSION all : disable
-
-#undef __cnfn
-#undef __ovld
-#endif //_OPENCL_H_
diff --git a/linux-x86/lib64/clang/14.0.1/include/openmp_wrappers/complex b/linux-x86/lib64/clang/14.0.1/include/openmp_wrappers/complex
deleted file mode 100644
index d6e740d..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/openmp_wrappers/complex
+++ /dev/null
@@ -1,55 +0,0 @@
-/*===-- complex --- OpenMP complex wrapper for target regions --------- c++ -===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-
-#ifndef __CLANG_OPENMP_COMPLEX__
-#define __CLANG_OPENMP_COMPLEX__
-
-#ifndef _OPENMP
-#error "This file is for OpenMP compilation only."
-#endif
-
-// We require std::math functions in the complex builtins below.
-#include <cmath>
-
-#ifdef __NVPTX__
-#define __OPENMP_NVPTX__
-#include <__clang_cuda_complex_builtins.h>
-#undef __OPENMP_NVPTX__
-#endif // __NVPTX__
-
-#ifdef __AMDGCN__
-#define __OPENMP_AMDGCN__
-#include <__clang_cuda_complex_builtins.h>
-#undef __OPENMP_AMDGCN__
-#endif // __AMDGCN__
-
-#endif
-
-// Grab the host header too.
-#include_next <complex>
-
-// If we are compiling against libc++, the macro _LIBCPP_STD_VER should be set
-// after including <cmath> above. Since the complex header we use is a
-// simplified version of the libc++, we don't need it in this case. If we
-// compile against libstdc++, or any other standard library, we will overload
-// the (hopefully template) functions in the <complex> header with the ones we
-// got from libc++ which decomposes math functions, like `std::sin`, into
-// arithmetic and calls to non-complex functions, all of which we can then
-// handle.
-#ifndef _LIBCPP_STD_VER
-
-#pragma omp begin declare variant match(                                       \
-    device = {arch(nvptx, nvptx64)},                                           \
-    implementation = {extension(match_any, allow_templates)})
-
-#include <complex_cmath.h>
-
-#pragma omp end declare variant
-
-#endif // _LIBCPP_STD_VER
diff --git a/linux-x86/lib64/clang/14.0.1/include/pmmintrin.h b/linux-x86/lib64/clang/14.0.1/include/pmmintrin.h
deleted file mode 100644
index a83b2eb..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/pmmintrin.h
+++ /dev/null
@@ -1,290 +0,0 @@
-/*===---- pmmintrin.h - SSE3 intrinsics ------------------------------------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-
-#ifndef __PMMINTRIN_H
-#define __PMMINTRIN_H
-
-#include <emmintrin.h>
-
-/* Define the default attributes for the functions in this file. */
-#define __DEFAULT_FN_ATTRS \
-  __attribute__((__always_inline__, __nodebug__, __target__("sse3"), __min_vector_width__(128)))
-
-/// Loads data from an unaligned memory location to elements in a 128-bit
-///    vector.
-///
-///    If the address of the data is not 16-byte aligned, the instruction may
-///    read two adjacent aligned blocks of memory to retrieve the requested
-///    data.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VLDDQU </c> instruction.
-///
-/// \param __p
-///    A pointer to a 128-bit integer vector containing integer values.
-/// \returns A 128-bit vector containing the moved values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_lddqu_si128(__m128i const *__p)
-{
-  return (__m128i)__builtin_ia32_lddqu((char const *)__p);
-}
-
-/// Adds the even-indexed values and subtracts the odd-indexed values of
-///    two 128-bit vectors of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VADDSUBPS </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing the left source operand.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing the right source operand.
-/// \returns A 128-bit vector of [4 x float] containing the alternating sums and
-///    differences of both operands.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_addsub_ps(__m128 __a, __m128 __b)
-{
-  return __builtin_ia32_addsubps((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Horizontally adds the adjacent pairs of values contained in two
-///    128-bit vectors of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VHADDPS </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the source operands.
-///    The horizontal sums of the values are stored in the lower bits of the
-///    destination.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the source operands.
-///    The horizontal sums of the values are stored in the upper bits of the
-///    destination.
-/// \returns A 128-bit vector of [4 x float] containing the horizontal sums of
-///    both operands.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_hadd_ps(__m128 __a, __m128 __b)
-{
-  return __builtin_ia32_haddps((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Horizontally subtracts the adjacent pairs of values contained in two
-///    128-bit vectors of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VHSUBPS </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the source operands.
-///    The horizontal differences between the values are stored in the lower
-///    bits of the destination.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the source operands.
-///    The horizontal differences between the values are stored in the upper
-///    bits of the destination.
-/// \returns A 128-bit vector of [4 x float] containing the horizontal
-///    differences of both operands.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_hsub_ps(__m128 __a, __m128 __b)
-{
-  return __builtin_ia32_hsubps((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Moves and duplicates odd-indexed values from a 128-bit vector
-///    of [4 x float] to float values stored in a 128-bit vector of
-///    [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVSHDUP </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. \n
-///    Bits [127:96] of the source are written to bits [127:96] and [95:64] of
-///    the destination. \n
-///    Bits [63:32] of the source are written to bits [63:32] and [31:0] of the
-///    destination.
-/// \returns A 128-bit vector of [4 x float] containing the moved and duplicated
-///    values.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_movehdup_ps(__m128 __a)
-{
-  return __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 1, 1, 3, 3);
-}
-
-/// Duplicates even-indexed values from a 128-bit vector of
-///    [4 x float] to float values stored in a 128-bit vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVSLDUP </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] \n
-///    Bits [95:64] of the source are written to bits [127:96] and [95:64] of
-///    the destination. \n
-///    Bits [31:0] of the source are written to bits [63:32] and [31:0] of the
-///    destination.
-/// \returns A 128-bit vector of [4 x float] containing the moved and duplicated
-///    values.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_moveldup_ps(__m128 __a)
-{
-  return __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 0, 2, 2);
-}
-
-/// Adds the even-indexed values and subtracts the odd-indexed values of
-///    two 128-bit vectors of [2 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VADDSUBPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double] containing the left source operand.
-/// \param __b
-///    A 128-bit vector of [2 x double] containing the right source operand.
-/// \returns A 128-bit vector of [2 x double] containing the alternating sums
-///    and differences of both operands.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_addsub_pd(__m128d __a, __m128d __b)
-{
-  return __builtin_ia32_addsubpd((__v2df)__a, (__v2df)__b);
-}
-
-/// Horizontally adds the pairs of values contained in two 128-bit
-///    vectors of [2 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VHADDPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double] containing one of the source operands.
-///    The horizontal sum of the values is stored in the lower bits of the
-///    destination.
-/// \param __b
-///    A 128-bit vector of [2 x double] containing one of the source operands.
-///    The horizontal sum of the values is stored in the upper bits of the
-///    destination.
-/// \returns A 128-bit vector of [2 x double] containing the horizontal sums of
-///    both operands.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_hadd_pd(__m128d __a, __m128d __b)
-{
-  return __builtin_ia32_haddpd((__v2df)__a, (__v2df)__b);
-}
-
-/// Horizontally subtracts the pairs of values contained in two 128-bit
-///    vectors of [2 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VHSUBPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double] containing one of the source operands.
-///    The horizontal difference of the values is stored in the lower bits of
-///    the destination.
-/// \param __b
-///    A 128-bit vector of [2 x double] containing one of the source operands.
-///    The horizontal difference of the values is stored in the upper bits of
-///    the destination.
-/// \returns A 128-bit vector of [2 x double] containing the horizontal
-///    differences of both operands.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_hsub_pd(__m128d __a, __m128d __b)
-{
-  return __builtin_ia32_hsubpd((__v2df)__a, (__v2df)__b);
-}
-
-/// Moves and duplicates one double-precision value to double-precision
-///    values stored in a 128-bit vector of [2 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m128d _mm_loaddup_pd(double const *dp);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VMOVDDUP </c> instruction.
-///
-/// \param dp
-///    A pointer to a double-precision value to be moved and duplicated.
-/// \returns A 128-bit vector of [2 x double] containing the moved and
-///    duplicated values.
-#define        _mm_loaddup_pd(dp)        _mm_load1_pd(dp)
-
-/// Moves and duplicates the double-precision value in the lower bits of
-///    a 128-bit vector of [2 x double] to double-precision values stored in a
-///    128-bit vector of [2 x double].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVDDUP </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. Bits [63:0] are written to bits
-///    [127:64] and [63:0] of the destination.
-/// \returns A 128-bit vector of [2 x double] containing the moved and
-///    duplicated values.
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_movedup_pd(__m128d __a)
-{
-  return __builtin_shufflevector((__v2df)__a, (__v2df)__a, 0, 0);
-}
-
-/// Establishes a linear address memory range to be monitored and puts
-///    the processor in the monitor event pending state. Data stored in the
-///    monitored address range causes the processor to exit the pending state.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> MONITOR </c> instruction.
-///
-/// \param __p
-///    The memory range to be monitored. The size of the range is determined by
-///    CPUID function 0000_0005h.
-/// \param __extensions
-///    Optional extensions for the monitoring state.
-/// \param __hints
-///    Optional hints for the monitoring state.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_monitor(void const *__p, unsigned __extensions, unsigned __hints)
-{
-  __builtin_ia32_monitor(__p, __extensions, __hints);
-}
-
-/// Used with the MONITOR instruction to wait while the processor is in
-///    the monitor event pending state. Data stored in the monitored address
-///    range causes the processor to exit the pending state.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> MWAIT </c> instruction.
-///
-/// \param __extensions
-///    Optional extensions for the monitoring state, which may vary by
-///    processor.
-/// \param __hints
-///    Optional hints for the monitoring state, which may vary by processor.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mwait(unsigned __extensions, unsigned __hints)
-{
-  __builtin_ia32_mwait(__extensions, __hints);
-}
-
-#undef __DEFAULT_FN_ATTRS
-
-#endif /* __PMMINTRIN_H */
diff --git a/linux-x86/lib64/clang/14.0.1/include/ppc_wrappers/emmintrin.h b/linux-x86/lib64/clang/14.0.1/include/ppc_wrappers/emmintrin.h
deleted file mode 100644
index 4dcb848..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/ppc_wrappers/emmintrin.h
+++ /dev/null
@@ -1,2324 +0,0 @@
-/*===---- emmintrin.h - Implementation of SSE2 intrinsics on PowerPC -------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-
-/* Implemented from the specification included in the Intel C++ Compiler
-   User Guide and Reference, version 9.0.  */
-
-#ifndef NO_WARN_X86_INTRINSICS
-/* This header file is to help porting code using Intel intrinsics
-   explicitly from x86_64 to powerpc64/powerpc64le.
-
-   Since X86 SSE2 intrinsics mainly handles __m128i and __m128d type,
-   PowerPC VMX/VSX ISA is a good match for vector float SIMD operations.
-   However scalar float operations in vector (XMM) registers require
-   the POWER8 VSX ISA (2.07) level. There are differences for data
-   format and placement of float scalars in the vector register, which
-   require extra steps to match SSE2 scalar float semantics on POWER.
-
-   It should be noted that there's much difference between X86_64's
-   MXSCR and PowerISA's FPSCR/VSCR registers. It's recommended to use
-   portable <fenv.h> instead of access MXSCR directly.
-
-   Most SSE2 scalar float intrinsic operations can be performed more
-   efficiently as C language float scalar operations or optimized to
-   use vector SIMD operations. We recommend this for new applications.
-*/
-#error "Please read comment above.  Use -DNO_WARN_X86_INTRINSICS to disable this error."
-#endif
-
-#ifndef EMMINTRIN_H_
-#define EMMINTRIN_H_
-
-#if defined(__linux__) && defined(__ppc64__)
-
-#include <altivec.h>
-
-/* We need definitions from the SSE header files.  */
-#include <xmmintrin.h>
-
-/* SSE2 */
-typedef __vector double __v2df;
-typedef __vector long long __v2di;
-typedef __vector unsigned long long __v2du;
-typedef __vector int __v4si;
-typedef __vector unsigned int __v4su;
-typedef __vector short __v8hi;
-typedef __vector unsigned short __v8hu;
-typedef __vector signed char __v16qi;
-typedef __vector unsigned char __v16qu;
-
-/* The Intel API is flexible enough that we must allow aliasing with other
-   vector types, and their scalar components.  */
-typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__));
-typedef double __m128d __attribute__ ((__vector_size__ (16), __may_alias__));
-
-/* Unaligned version of the same types.  */
-typedef long long __m128i_u __attribute__ ((__vector_size__ (16), __may_alias__, __aligned__ (1)));
-typedef double __m128d_u __attribute__ ((__vector_size__ (16), __may_alias__, __aligned__ (1)));
-
-/* Define two value permute mask.  */
-#define _MM_SHUFFLE2(x,y) (((x) << 1) | (y))
-
-/* Create a vector with element 0 as F and the rest zero.  */
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_set_sd (double __F)
-{
-  return __extension__ (__m128d){ __F, 0.0 };
-}
-
-/* Create a vector with both elements equal to F.  */
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_set1_pd (double __F)
-{
-  return __extension__ (__m128d){ __F, __F };
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_set_pd1 (double __F)
-{
-  return _mm_set1_pd (__F);
-}
-
-/* Create a vector with the lower value X and upper value W.  */
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_set_pd (double __W, double __X)
-{
-  return __extension__ (__m128d){ __X, __W };
-}
-
-/* Create a vector with the lower value W and upper value X.  */
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_setr_pd (double __W, double __X)
-{
-  return __extension__ (__m128d){ __W, __X };
-}
-
-/* Create an undefined vector.  */
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_undefined_pd (void)
-{
-  __m128d __Y = __Y;
-  return __Y;
-}
-
-/* Create a vector of zeros.  */
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_setzero_pd (void)
-{
-  return (__m128d) vec_splats (0);
-}
-
-/* Sets the low DPFP value of A from the low value of B.  */
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_move_sd (__m128d __A, __m128d __B)
-{
-  __v2df result = (__v2df) __A;
-  result [0] = ((__v2df) __B)[0];
-  return (__m128d) result;
-}
-
-/* Load two DPFP values from P.  The address must be 16-byte aligned.  */
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_load_pd (double const *__P)
-{
-  return ((__m128d)vec_ld(0, (__v16qu*)__P));
-}
-
-/* Load two DPFP values from P.  The address need not be 16-byte aligned.  */
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_loadu_pd (double const *__P)
-{
-  return (vec_vsx_ld(0, __P));
-}
-
-/* Create a vector with all two elements equal to *P.  */
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_load1_pd (double const *__P)
-{
-  return (vec_splats (*__P));
-}
-
-/* Create a vector with element 0 as *P and the rest zero.  */
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_load_sd (double const *__P)
-{
-  return _mm_set_sd (*__P);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_load_pd1 (double const *__P)
-{
-  return _mm_load1_pd (__P);
-}
-
-/* Load two DPFP values in reverse order.  The address must be aligned.  */
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_loadr_pd (double const *__P)
-{
-  __v2df __tmp = _mm_load_pd (__P);
-  return (__m128d)vec_xxpermdi (__tmp, __tmp, 2);
-}
-
-/* Store two DPFP values.  The address must be 16-byte aligned.  */
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_store_pd (double *__P, __m128d __A)
-{
-  vec_st((__v16qu)__A, 0, (__v16qu*)__P);
-}
-
-/* Store two DPFP values.  The address need not be 16-byte aligned.  */
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_storeu_pd (double *__P, __m128d __A)
-{
-  *(__m128d_u *)__P = __A;
-}
-
-/* Stores the lower DPFP value.  */
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_store_sd (double *__P, __m128d __A)
-{
-  *__P = ((__v2df)__A)[0];
-}
-
-extern __inline double __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtsd_f64 (__m128d __A)
-{
-  return ((__v2df)__A)[0];
-}
-
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_storel_pd (double *__P, __m128d __A)
-{
-  _mm_store_sd (__P, __A);
-}
-
-/* Stores the upper DPFP value.  */
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_storeh_pd (double *__P, __m128d __A)
-{
-  *__P = ((__v2df)__A)[1];
-}
-/* Store the lower DPFP value across two words.
-   The address must be 16-byte aligned.  */
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_store1_pd (double *__P, __m128d __A)
-{
-  _mm_store_pd (__P, vec_splat (__A, 0));
-}
-
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_store_pd1 (double *__P, __m128d __A)
-{
-  _mm_store1_pd (__P, __A);
-}
-
-/* Store two DPFP values in reverse order.  The address must be aligned.  */
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_storer_pd (double *__P, __m128d __A)
-{
-  _mm_store_pd (__P, vec_xxpermdi (__A, __A, 2));
-}
-
-/* Intel intrinsic.  */
-extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtsi128_si64 (__m128i __A)
-{
-  return ((__v2di)__A)[0];
-}
-
-/* Microsoft intrinsic.  */
-extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtsi128_si64x (__m128i __A)
-{
-  return ((__v2di)__A)[0];
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_add_pd (__m128d __A, __m128d __B)
-{
-  return (__m128d) ((__v2df)__A + (__v2df)__B);
-}
-
-/* Add the lower double-precision (64-bit) floating-point element in
-   a and b, store the result in the lower element of dst, and copy
-   the upper element from a to the upper element of dst. */
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_add_sd (__m128d __A, __m128d __B)
-{
-  __A[0] = __A[0] + __B[0];
-  return (__A);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sub_pd (__m128d __A, __m128d __B)
-{
-  return (__m128d) ((__v2df)__A - (__v2df)__B);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sub_sd (__m128d __A, __m128d __B)
-{
-  __A[0] = __A[0] - __B[0];
-  return (__A);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_mul_pd (__m128d __A, __m128d __B)
-{
-  return (__m128d) ((__v2df)__A * (__v2df)__B);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_mul_sd (__m128d __A, __m128d __B)
-{
-  __A[0] = __A[0] * __B[0];
-  return (__A);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_div_pd (__m128d __A, __m128d __B)
-{
-  return (__m128d) ((__v2df)__A / (__v2df)__B);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_div_sd (__m128d __A, __m128d __B)
-{
-  __A[0] = __A[0] / __B[0];
-  return (__A);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sqrt_pd (__m128d __A)
-{
-  return (vec_sqrt (__A));
-}
-
-/* Return pair {sqrt (B[0]), A[1]}.  */
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sqrt_sd (__m128d __A, __m128d __B)
-{
-  __v2df c;
-  c = vec_sqrt ((__v2df) _mm_set1_pd (__B[0]));
-  return (__m128d) _mm_setr_pd (c[0], __A[1]);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_min_pd (__m128d __A, __m128d __B)
-{
-  return (vec_min (__A, __B));
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_min_sd (__m128d __A, __m128d __B)
-{
-  __v2df a, b, c;
-  a = vec_splats (__A[0]);
-  b = vec_splats (__B[0]);
-  c = vec_min (a, b);
-  return (__m128d) _mm_setr_pd (c[0], __A[1]);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_max_pd (__m128d __A, __m128d __B)
-{
-  return (vec_max (__A, __B));
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_max_sd (__m128d __A, __m128d __B)
-{
-  __v2df a, b, c;
-  a = vec_splats (__A[0]);
-  b = vec_splats (__B[0]);
-  c = vec_max (a, b);
-  return (__m128d) _mm_setr_pd (c[0], __A[1]);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpeq_pd (__m128d __A, __m128d __B)
-{
-  return ((__m128d)vec_cmpeq ((__v2df) __A, (__v2df) __B));
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmplt_pd (__m128d __A, __m128d __B)
-{
-  return ((__m128d)vec_cmplt ((__v2df) __A, (__v2df) __B));
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmple_pd (__m128d __A, __m128d __B)
-{
-  return ((__m128d)vec_cmple ((__v2df) __A, (__v2df) __B));
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpgt_pd (__m128d __A, __m128d __B)
-{
-  return ((__m128d)vec_cmpgt ((__v2df) __A, (__v2df) __B));
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpge_pd (__m128d __A, __m128d __B)
-{
-  return ((__m128d)vec_cmpge ((__v2df) __A,(__v2df) __B));
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpneq_pd (__m128d __A, __m128d __B)
-{
-  __v2df temp = (__v2df) vec_cmpeq ((__v2df) __A, (__v2df)__B);
-  return ((__m128d)vec_nor (temp, temp));
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpnlt_pd (__m128d __A, __m128d __B)
-{
-  return ((__m128d)vec_cmpge ((__v2df) __A, (__v2df) __B));
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpnle_pd (__m128d __A, __m128d __B)
-{
-  return ((__m128d)vec_cmpgt ((__v2df) __A, (__v2df) __B));
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpngt_pd (__m128d __A, __m128d __B)
-{
-  return ((__m128d)vec_cmple ((__v2df) __A, (__v2df) __B));
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpnge_pd (__m128d __A, __m128d __B)
-{
-  return ((__m128d)vec_cmplt ((__v2df) __A, (__v2df) __B));
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpord_pd (__m128d __A, __m128d __B)
-{
-#if _ARCH_PWR8
-  __v2du c, d;
-  /* Compare against self will return false (0's) if NAN.  */
-  c = (__v2du)vec_cmpeq (__A, __A);
-  d = (__v2du)vec_cmpeq (__B, __B);
-#else
-  __v2du a, b;
-  __v2du c, d;
-  const __v2du double_exp_mask  = {0x7ff0000000000000, 0x7ff0000000000000};
-  a = (__v2du)vec_abs ((__v2df)__A);
-  b = (__v2du)vec_abs ((__v2df)__B);
-  c = (__v2du)vec_cmpgt (double_exp_mask, a);
-  d = (__v2du)vec_cmpgt (double_exp_mask, b);
-#endif
-  /* A != NAN and B != NAN.  */
-  return ((__m128d)vec_and(c, d));
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpunord_pd (__m128d __A, __m128d __B)
-{
-#if _ARCH_PWR8
-  __v2du c, d;
-  /* Compare against self will return false (0's) if NAN.  */
-  c = (__v2du)vec_cmpeq ((__v2df)__A, (__v2df)__A);
-  d = (__v2du)vec_cmpeq ((__v2df)__B, (__v2df)__B);
-  /* A == NAN OR B == NAN converts too:
-     NOT(A != NAN) OR NOT(B != NAN).  */
-  c = vec_nor (c, c);
-  return ((__m128d)vec_orc(c, d));
-#else
-  __v2du c, d;
-  /* Compare against self will return false (0's) if NAN.  */
-  c = (__v2du)vec_cmpeq ((__v2df)__A, (__v2df)__A);
-  d = (__v2du)vec_cmpeq ((__v2df)__B, (__v2df)__B);
-  /* Convert the true ('1's) is NAN.  */
-  c = vec_nor (c, c);
-  d = vec_nor (d, d);
-  return ((__m128d)vec_or(c, d));
-#endif
-}
-
-extern __inline  __m128d  __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpeq_sd(__m128d  __A, __m128d  __B)
-{
-  __v2df a, b, c;
-  /* PowerISA VSX does not allow partial (for just lower double)
-     results. So to insure we don't generate spurious exceptions
-     (from the upper double values) we splat the lower double
-     before we do the operation. */
-  a = vec_splats (__A[0]);
-  b = vec_splats (__B[0]);
-  c = (__v2df) vec_cmpeq(a, b);
-  /* Then we merge the lower double result with the original upper
-     double from __A.  */
-  return (__m128d) _mm_setr_pd (c[0], __A[1]);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmplt_sd (__m128d __A, __m128d __B)
-{
-  __v2df a, b, c;
-  a = vec_splats (__A[0]);
-  b = vec_splats (__B[0]);
-  c = (__v2df) vec_cmplt(a, b);
-  return (__m128d) _mm_setr_pd (c[0], __A[1]);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmple_sd (__m128d __A, __m128d __B)
-{
-  __v2df a, b, c;
-  a = vec_splats (__A[0]);
-  b = vec_splats (__B[0]);
-  c = (__v2df) vec_cmple(a, b);
-  return (__m128d) _mm_setr_pd (c[0], __A[1]);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpgt_sd (__m128d __A, __m128d __B)
-{
-  __v2df a, b, c;
-  a = vec_splats (__A[0]);
-  b = vec_splats (__B[0]);
-  c = (__v2df) vec_cmpgt(a, b);
-  return (__m128d) _mm_setr_pd (c[0], __A[1]);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpge_sd (__m128d __A, __m128d __B)
-{
-  __v2df a, b, c;
-  a = vec_splats (__A[0]);
-  b = vec_splats (__B[0]);
-  c = (__v2df) vec_cmpge(a, b);
-  return (__m128d) _mm_setr_pd (c[0], __A[1]);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpneq_sd (__m128d __A, __m128d __B)
-{
-  __v2df a, b, c;
-  a = vec_splats (__A[0]);
-  b = vec_splats (__B[0]);
-  c = (__v2df) vec_cmpeq(a, b);
-  c = vec_nor (c, c);
-  return (__m128d) _mm_setr_pd (c[0], __A[1]);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpnlt_sd (__m128d __A, __m128d __B)
-{
-  __v2df a, b, c;
-  a = vec_splats (__A[0]);
-  b = vec_splats (__B[0]);
-  /* Not less than is just greater than or equal.  */
-  c = (__v2df) vec_cmpge(a, b);
-  return (__m128d) _mm_setr_pd (c[0], __A[1]);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpnle_sd (__m128d __A, __m128d __B)
-{
-  __v2df a, b, c;
-  a = vec_splats (__A[0]);
-  b = vec_splats (__B[0]);
-  /* Not less than or equal is just greater than.  */
-  c = (__v2df) vec_cmpge(a, b);
-  return (__m128d) _mm_setr_pd (c[0], __A[1]);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpngt_sd (__m128d __A, __m128d __B)
-{
-  __v2df a, b, c;
-  a = vec_splats (__A[0]);
-  b = vec_splats (__B[0]);
-  /* Not greater than is just less than or equal.  */
-  c = (__v2df) vec_cmple(a, b);
-  return (__m128d) _mm_setr_pd (c[0], __A[1]);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpnge_sd (__m128d __A, __m128d __B)
-{
-  __v2df a, b, c;
-  a = vec_splats (__A[0]);
-  b = vec_splats (__B[0]);
-  /* Not greater than or equal is just less than.  */
-  c = (__v2df) vec_cmplt(a, b);
-  return (__m128d) _mm_setr_pd (c[0], __A[1]);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpord_sd (__m128d __A, __m128d __B)
-{
-  __v2df r;
-  r = (__v2df)_mm_cmpord_pd (vec_splats (__A[0]), vec_splats (__B[0]));
-  return (__m128d) _mm_setr_pd (r[0], ((__v2df)__A)[1]);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpunord_sd (__m128d __A, __m128d __B)
-{
-  __v2df r;
-  r = _mm_cmpunord_pd (vec_splats (__A[0]), vec_splats (__B[0]));
-  return (__m128d) _mm_setr_pd (r[0], __A[1]);
-}
-
-/* FIXME
-   The __mm_comi??_sd and __mm_ucomi??_sd implementations below are
-   exactly the same because GCC for PowerPC only generates unordered
-   compares (scalar and vector).
-   Technically __mm_comieq_sp et all should be using the ordered
-   compare and signal for QNaNs.  The __mm_ucomieq_sd et all should
-   be OK.   */
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_comieq_sd (__m128d __A, __m128d __B)
-{
-  return (__A[0] == __B[0]);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_comilt_sd (__m128d __A, __m128d __B)
-{
-  return (__A[0] < __B[0]);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_comile_sd (__m128d __A, __m128d __B)
-{
-  return (__A[0] <= __B[0]);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_comigt_sd (__m128d __A, __m128d __B)
-{
-  return (__A[0] > __B[0]);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_comige_sd (__m128d __A, __m128d __B)
-{
-  return (__A[0] >= __B[0]);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_comineq_sd (__m128d __A, __m128d __B)
-{
-  return (__A[0] != __B[0]);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_ucomieq_sd (__m128d __A, __m128d __B)
-{
-	return (__A[0] == __B[0]);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_ucomilt_sd (__m128d __A, __m128d __B)
-{
-	return (__A[0] < __B[0]);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_ucomile_sd (__m128d __A, __m128d __B)
-{
-	return (__A[0] <= __B[0]);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_ucomigt_sd (__m128d __A, __m128d __B)
-{
-	return (__A[0] > __B[0]);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_ucomige_sd (__m128d __A, __m128d __B)
-{
-	return (__A[0] >= __B[0]);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_ucomineq_sd (__m128d __A, __m128d __B)
-{
-  return (__A[0] != __B[0]);
-}
-
-/* Create a vector of Qi, where i is the element number.  */
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_set_epi64x (long long __q1, long long __q0)
-{
-  return __extension__ (__m128i)(__v2di){ __q0, __q1 };
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_set_epi64 (__m64 __q1,  __m64 __q0)
-{
-  return _mm_set_epi64x ((long long)__q1, (long long)__q0);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_set_epi32 (int __q3, int __q2, int __q1, int __q0)
-{
-  return __extension__ (__m128i)(__v4si){ __q0, __q1, __q2, __q3 };
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_set_epi16 (short __q7, short __q6, short __q5, short __q4,
-	       short __q3, short __q2, short __q1, short __q0)
-{
-  return __extension__ (__m128i)(__v8hi){
-    __q0, __q1, __q2, __q3, __q4, __q5, __q6, __q7 };
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_set_epi8 (char __q15, char __q14, char __q13, char __q12,
-	      char __q11, char __q10, char __q09, char __q08,
-	      char __q07, char __q06, char __q05, char __q04,
-	      char __q03, char __q02, char __q01, char __q00)
-{
-  return __extension__ (__m128i)(__v16qi){
-    __q00, __q01, __q02, __q03, __q04, __q05, __q06, __q07,
-    __q08, __q09, __q10, __q11, __q12, __q13, __q14, __q15
-  };
-}
-
-/* Set all of the elements of the vector to A.  */
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_set1_epi64x (long long __A)
-{
-  return _mm_set_epi64x (__A, __A);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_set1_epi64 (__m64 __A)
-{
-  return _mm_set_epi64 (__A, __A);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_set1_epi32 (int __A)
-{
-  return _mm_set_epi32 (__A, __A, __A, __A);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_set1_epi16 (short __A)
-{
-  return _mm_set_epi16 (__A, __A, __A, __A, __A, __A, __A, __A);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_set1_epi8 (char __A)
-{
-  return _mm_set_epi8 (__A, __A, __A, __A, __A, __A, __A, __A,
-		       __A, __A, __A, __A, __A, __A, __A, __A);
-}
-
-/* Create a vector of Qi, where i is the element number.
-   The parameter order is reversed from the _mm_set_epi* functions.  */
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_setr_epi64 (__m64 __q0, __m64 __q1)
-{
-  return _mm_set_epi64 (__q1, __q0);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_setr_epi32 (int __q0, int __q1, int __q2, int __q3)
-{
-  return _mm_set_epi32 (__q3, __q2, __q1, __q0);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_setr_epi16 (short __q0, short __q1, short __q2, short __q3,
-	        short __q4, short __q5, short __q6, short __q7)
-{
-  return _mm_set_epi16 (__q7, __q6, __q5, __q4, __q3, __q2, __q1, __q0);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_setr_epi8 (char __q00, char __q01, char __q02, char __q03,
-	       char __q04, char __q05, char __q06, char __q07,
-	       char __q08, char __q09, char __q10, char __q11,
-	       char __q12, char __q13, char __q14, char __q15)
-{
-  return _mm_set_epi8 (__q15, __q14, __q13, __q12, __q11, __q10, __q09, __q08,
-		       __q07, __q06, __q05, __q04, __q03, __q02, __q01, __q00);
-}
-
-/* Create a vector with element 0 as *P and the rest zero.  */
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_load_si128 (__m128i const *__P)
-{
-  return *__P;
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_loadu_si128 (__m128i_u const *__P)
-{
-  return (__m128i) (vec_vsx_ld(0, (signed int const *)__P));
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_loadl_epi64 (__m128i_u const *__P)
-{
-  return _mm_set_epi64 ((__m64)0LL, *(__m64 *)__P);
-}
-
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_store_si128 (__m128i *__P, __m128i __B)
-{
-  vec_st ((__v16qu) __B, 0, (__v16qu*)__P);
-}
-
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_storeu_si128 (__m128i_u *__P, __m128i __B)
-{
-  *__P = __B;
-}
-
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_storel_epi64 (__m128i_u *__P, __m128i __B)
-{
-  *(long long *)__P = ((__v2di)__B)[0];
-}
-
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_movepi64_pi64 (__m128i_u __B)
-{
-  return (__m64) ((__v2di)__B)[0];
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_movpi64_epi64 (__m64 __A)
-{
-  return _mm_set_epi64 ((__m64)0LL, __A);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_move_epi64 (__m128i __A)
-{
-  return _mm_set_epi64 ((__m64)0LL, (__m64)__A[0]);
-}
-
-/* Create an undefined vector.  */
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_undefined_si128 (void)
-{
-  __m128i __Y = __Y;
-  return __Y;
-}
-
-/* Create a vector of zeros.  */
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_setzero_si128 (void)
-{
-  return __extension__ (__m128i)(__v4si){ 0, 0, 0, 0 };
-}
-
-#ifdef _ARCH_PWR8
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtepi32_pd (__m128i __A)
-{
-  __v2di val;
-  /* For LE need to generate Vector Unpack Low Signed Word.
-     Which is generated from unpackh.  */
-  val = (__v2di)vec_unpackh ((__v4si)__A);
-
-  return (__m128d)vec_ctf (val, 0);
-}
-#endif
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtepi32_ps (__m128i __A)
-{
-  return ((__m128)vec_ctf((__v4si)__A, 0));
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtpd_epi32 (__m128d __A)
-{
-  __v2df rounded = vec_rint (__A);
-  __v4si result, temp;
-  const __v4si vzero =
-    { 0, 0, 0, 0 };
-
-  /* VSX Vector truncate Double-Precision to integer and Convert to
-   Signed Integer Word format with Saturate.  */
-  __asm__(
-      "xvcvdpsxws %x0,%x1"
-      : "=wa" (temp)
-      : "wa" (rounded)
-      : );
-
-#ifdef _ARCH_PWR8
-  temp = vec_mergeo (temp, temp);
-  result = (__v4si) vec_vpkudum ((__vector long long) temp,
-				 (__vector long long) vzero);
-#else
-  {
-    const __v16qu pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b,
-	0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f };
-    result = (__v4si) vec_perm ((__v16qu) temp, (__v16qu) vzero, pkperm);
-  }
-#endif
-  return (__m128i) result;
-}
-
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtpd_pi32 (__m128d __A)
-{
-  __m128i result = _mm_cvtpd_epi32(__A);
-
-  return (__m64) result[0];
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtpd_ps (__m128d __A)
-{
-  __v4sf result;
-  __v4si temp;
-  const __v4si vzero = { 0, 0, 0, 0 };
-
-  __asm__(
-      "xvcvdpsp %x0,%x1"
-      : "=wa" (temp)
-      : "wa" (__A)
-      : );
-
-#ifdef _ARCH_PWR8
-  temp = vec_mergeo (temp, temp);
-  result = (__v4sf) vec_vpkudum ((__vector long long) temp,
-				 (__vector long long) vzero);
-#else
-  {
-    const __v16qu pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b,
-	0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f };
-    result = (__v4sf) vec_perm ((__v16qu) temp, (__v16qu) vzero, pkperm);
-  }
-#endif
-  return ((__m128)result);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvttpd_epi32 (__m128d __A)
-{
-  __v4si result;
-  __v4si temp;
-  const __v4si vzero = { 0, 0, 0, 0 };
-
-  /* VSX Vector truncate Double-Precision to integer and Convert to
-   Signed Integer Word format with Saturate.  */
-  __asm__(
-      "xvcvdpsxws %x0,%x1"
-      : "=wa" (temp)
-      : "wa" (__A)
-      : );
-
-#ifdef _ARCH_PWR8
-  temp = vec_mergeo (temp, temp);
-  result = (__v4si) vec_vpkudum ((__vector long long) temp,
-				 (__vector long long) vzero);
-#else
-  {
-    const __v16qu pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b,
-	0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f };
-    result = (__v4si) vec_perm ((__v16qu) temp, (__v16qu) vzero, pkperm);
-  }
-#endif
-
-  return ((__m128i) result);
-}
-
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvttpd_pi32 (__m128d __A)
-{
-  __m128i result = _mm_cvttpd_epi32 (__A);
-
-  return (__m64) result[0];
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtsi128_si32 (__m128i __A)
-{
-  return ((__v4si)__A)[0];
-}
-
-#ifdef _ARCH_PWR8
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtpi32_pd (__m64 __A)
-{
-  __v4si temp;
-  __v2di tmp2;
-  __v2df result;
-
-  temp = (__v4si)vec_splats (__A);
-  tmp2 = (__v2di)vec_unpackl (temp);
-  result = vec_ctf ((__vector signed long long) tmp2, 0);
-  return (__m128d)result;
-}
-#endif
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtps_epi32 (__m128 __A)
-{
-  __v4sf rounded;
-  __v4si result;
-
-  rounded = vec_rint((__v4sf) __A);
-  result = vec_cts (rounded, 0);
-  return (__m128i) result;
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvttps_epi32 (__m128 __A)
-{
-  __v4si result;
-
-  result = vec_cts ((__v4sf) __A, 0);
-  return (__m128i) result;
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtps_pd (__m128 __A)
-{
-  /* Check if vec_doubleh is defined by <altivec.h>. If so use that. */
-#ifdef vec_doubleh
-  return (__m128d) vec_doubleh ((__v4sf)__A);
-#else
-  /* Otherwise the compiler is not current and so need to generate the
-     equivalent code.  */
-  __v4sf a = (__v4sf)__A;
-  __v4sf temp;
-  __v2df result;
-#ifdef __LITTLE_ENDIAN__
-  /* The input float values are in elements {[0], [1]} but the convert
-     instruction needs them in elements {[1], [3]}, So we use two
-     shift left double vector word immediates to get the elements
-     lined up.  */
-  temp = __builtin_vsx_xxsldwi (a, a, 3);
-  temp = __builtin_vsx_xxsldwi (a, temp, 2);
-#else
-  /* The input float values are in elements {[0], [1]} but the convert
-     instruction needs them in elements {[0], [2]}, So we use two
-     shift left double vector word immediates to get the elements
-     lined up.  */
-  temp = vec_vmrghw (a, a);
-#endif
-  __asm__(
-      " xvcvspdp %x0,%x1"
-      : "=wa" (result)
-      : "wa" (temp)
-      : );
-  return (__m128d) result;
-#endif
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtsd_si32 (__m128d __A)
-{
-  __v2df rounded = vec_rint((__v2df) __A);
-  int result = ((__v2df)rounded)[0];
-
-  return result;
-}
-/* Intel intrinsic.  */
-extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtsd_si64 (__m128d __A)
-{
-  __v2df rounded = vec_rint ((__v2df) __A );
-  long long result = ((__v2df) rounded)[0];
-
-  return result;
-}
-
-/* Microsoft intrinsic.  */
-extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtsd_si64x (__m128d __A)
-{
-  return _mm_cvtsd_si64 ((__v2df)__A);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvttsd_si32 (__m128d __A)
-{
-  int result = ((__v2df)__A)[0];
-
-  return result;
-}
-
-/* Intel intrinsic.  */
-extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvttsd_si64 (__m128d __A)
-{
-  long long result = ((__v2df)__A)[0];
-
-  return result;
-}
-
-/* Microsoft intrinsic.  */
-extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvttsd_si64x (__m128d __A)
-{
-  return _mm_cvttsd_si64 (__A);
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtsd_ss (__m128 __A, __m128d __B)
-{
-  __v4sf result = (__v4sf)__A;
-
-#ifdef __LITTLE_ENDIAN__
-  __v4sf temp_s;
-  /* Copy double element[0] to element [1] for conversion.  */
-  __v2df temp_b = vec_splat((__v2df)__B, 0);
-
-  /* Pre-rotate __A left 3 (logically right 1) elements.  */
-  result = __builtin_vsx_xxsldwi (result, result, 3);
-  /* Convert double to single float scalar in a vector.  */
-  __asm__(
-      "xscvdpsp %x0,%x1"
-      : "=wa" (temp_s)
-      : "wa" (temp_b)
-      : );
-  /* Shift the resulting scalar into vector element [0].  */
-  result = __builtin_vsx_xxsldwi (result, temp_s, 1);
-#else
-  result [0] = ((__v2df)__B)[0];
-#endif
-  return (__m128) result;
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtsi32_sd (__m128d __A, int __B)
-{
-  __v2df result = (__v2df)__A;
-  double db = __B;
-  result [0] = db;
-  return (__m128d)result;
-}
-
-/* Intel intrinsic.  */
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtsi64_sd (__m128d __A, long long __B)
-{
-  __v2df result = (__v2df)__A;
-  double db = __B;
-  result [0] = db;
-  return (__m128d)result;
-}
-
-/* Microsoft intrinsic.  */
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtsi64x_sd (__m128d __A, long long __B)
-{
-  return _mm_cvtsi64_sd (__A, __B);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtss_sd (__m128d __A, __m128 __B)
-{
-#ifdef __LITTLE_ENDIAN__
-  /* Use splat to move element [0] into position for the convert. */
-  __v4sf temp = vec_splat ((__v4sf)__B, 0);
-  __v2df res;
-  /* Convert single float scalar to double in a vector.  */
-  __asm__(
-      "xscvspdp %x0,%x1"
-      : "=wa" (res)
-      : "wa" (temp)
-      : );
-  return (__m128d) vec_mergel (res, (__v2df)__A);
-#else
-  __v2df res = (__v2df)__A;
-  res [0] = ((__v4sf)__B) [0];
-  return (__m128d) res;
-#endif
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_shuffle_pd(__m128d __A, __m128d __B, const int __mask)
-{
-  __vector double result;
-  const int litmsk = __mask & 0x3;
-
-  if (litmsk == 0)
-    result = vec_mergeh (__A, __B);
-#if __GNUC__ < 6
-  else if (litmsk == 1)
-    result = vec_xxpermdi (__B, __A, 2);
-  else if (litmsk == 2)
-    result = vec_xxpermdi (__B, __A, 1);
-#else
-  else if (litmsk == 1)
-    result = vec_xxpermdi (__A, __B, 2);
-  else if (litmsk == 2)
-    result = vec_xxpermdi (__A, __B, 1);
-#endif
-  else
-    result = vec_mergel (__A, __B);
-
-  return result;
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_unpackhi_pd (__m128d __A, __m128d __B)
-{
-  return (__m128d) vec_mergel ((__v2df)__A, (__v2df)__B);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_unpacklo_pd (__m128d __A, __m128d __B)
-{
-  return (__m128d) vec_mergeh ((__v2df)__A, (__v2df)__B);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_loadh_pd (__m128d __A, double const *__B)
-{
-  __v2df result = (__v2df)__A;
-  result [1] = *__B;
-  return (__m128d)result;
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_loadl_pd (__m128d __A, double const *__B)
-{
-  __v2df result = (__v2df)__A;
-  result [0] = *__B;
-  return (__m128d)result;
-}
-
-#ifdef _ARCH_PWR8
-/* Intrinsic functions that require PowerISA 2.07 minimum.  */
-
-/* Creates a 2-bit mask from the most significant bits of the DPFP values.  */
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_movemask_pd (__m128d  __A)
-{
-  __vector unsigned long long result;
-  static const __vector unsigned int perm_mask =
-    {
-#ifdef __LITTLE_ENDIAN__
-	0x80800040, 0x80808080, 0x80808080, 0x80808080
-#else
-      0x80808080, 0x80808080, 0x80808080, 0x80804000
-#endif
-    };
-
-  result = ((__vector unsigned long long)
-	    vec_vbpermq ((__vector unsigned char) __A,
-			 (__vector unsigned char) perm_mask));
-
-#ifdef __LITTLE_ENDIAN__
-  return result[1];
-#else
-  return result[0];
-#endif
-}
-#endif /* _ARCH_PWR8 */
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_packs_epi16 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_packs ((__v8hi) __A, (__v8hi)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_packs_epi32 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_packs ((__v4si)__A, (__v4si)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_packus_epi16 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_packsu ((__v8hi) __A, (__v8hi)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_unpackhi_epi8 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_mergel ((__v16qu)__A, (__v16qu)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_unpackhi_epi16 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_mergel ((__v8hu)__A, (__v8hu)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_unpackhi_epi32 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_mergel ((__v4su)__A, (__v4su)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_unpackhi_epi64 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_mergel ((__vector long long) __A,
-			       (__vector long long) __B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_unpacklo_epi8 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_mergeh ((__v16qu)__A, (__v16qu)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_unpacklo_epi16 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_mergeh ((__v8hi)__A, (__v8hi)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_unpacklo_epi32 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_mergeh ((__v4si)__A, (__v4si)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_unpacklo_epi64 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_mergeh ((__vector long long) __A,
-			       (__vector long long) __B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_add_epi8 (__m128i __A, __m128i __B)
-{
-  return (__m128i) ((__v16qu)__A + (__v16qu)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_add_epi16 (__m128i __A, __m128i __B)
-{
-  return (__m128i) ((__v8hu)__A + (__v8hu)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_add_epi32 (__m128i __A, __m128i __B)
-{
-  return (__m128i) ((__v4su)__A + (__v4su)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_add_epi64 (__m128i __A, __m128i __B)
-{
-  return (__m128i) ((__v2du)__A + (__v2du)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_adds_epi8 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_adds ((__v16qi)__A, (__v16qi)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_adds_epi16 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_adds ((__v8hi)__A, (__v8hi)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_adds_epu8 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_adds ((__v16qu)__A, (__v16qu)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_adds_epu16 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_adds ((__v8hu)__A, (__v8hu)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sub_epi8 (__m128i __A, __m128i __B)
-{
-  return (__m128i) ((__v16qu)__A - (__v16qu)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sub_epi16 (__m128i __A, __m128i __B)
-{
-  return (__m128i) ((__v8hu)__A - (__v8hu)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sub_epi32 (__m128i __A, __m128i __B)
-{
-  return (__m128i) ((__v4su)__A - (__v4su)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sub_epi64 (__m128i __A, __m128i __B)
-{
-  return (__m128i) ((__v2du)__A - (__v2du)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_subs_epi8 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_subs ((__v16qi)__A, (__v16qi)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_subs_epi16 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_subs ((__v8hi)__A, (__v8hi)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_subs_epu8 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_subs ((__v16qu)__A, (__v16qu)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_subs_epu16 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_subs ((__v8hu)__A, (__v8hu)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_madd_epi16 (__m128i __A, __m128i __B)
-{
-  __vector signed int zero = {0, 0, 0, 0};
-
-  return (__m128i) vec_vmsumshm ((__v8hi)__A, (__v8hi)__B, zero);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_mulhi_epi16 (__m128i __A, __m128i __B)
-{
-  __vector signed int w0, w1;
-
-  __vector unsigned char xform1 = {
-#ifdef __LITTLE_ENDIAN__
-      0x02, 0x03, 0x12, 0x13,  0x06, 0x07, 0x16, 0x17,
-      0x0A, 0x0B, 0x1A, 0x1B,  0x0E, 0x0F, 0x1E, 0x1F
-#else
-      0x00, 0x01, 0x10, 0x11,  0x04, 0x05, 0x14, 0x15,
-      0x08, 0x09, 0x18, 0x19,  0x0C, 0x0D, 0x1C, 0x1D
-#endif
-    };
-
-  w0 = vec_vmulesh ((__v8hi)__A, (__v8hi)__B);
-  w1 = vec_vmulosh ((__v8hi)__A, (__v8hi)__B);
-  return (__m128i) vec_perm (w0, w1, xform1);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_mullo_epi16 (__m128i __A, __m128i __B)
-{
-    return (__m128i) ((__v8hi)__A * (__v8hi)__B);
-}
-
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_mul_su32 (__m64 __A, __m64 __B)
-{
-  unsigned int a = __A;
-  unsigned int b = __B;
-
-  return ((__m64)a * (__m64)b);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_mul_epu32 (__m128i __A, __m128i __B)
-{
-#if __GNUC__ < 8
-  __v2du result;
-
-#ifdef __LITTLE_ENDIAN__
-  /* VMX Vector Multiply Odd Unsigned Word.  */
-  __asm__(
-      "vmulouw %0,%1,%2"
-      : "=v" (result)
-      : "v" (__A), "v" (__B)
-      : );
-#else
-  /* VMX Vector Multiply Even Unsigned Word.  */
-  __asm__(
-      "vmuleuw %0,%1,%2"
-      : "=v" (result)
-      : "v" (__A), "v" (__B)
-      : );
-#endif
-  return (__m128i) result;
-#else
-  return (__m128i) vec_mule ((__v4su)__A, (__v4su)__B);
-#endif
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_slli_epi16 (__m128i __A, int __B)
-{
-  __v8hu lshift;
-  __v8hi result = { 0, 0, 0, 0, 0, 0, 0, 0 };
-
-  if (__B >= 0 && __B < 16)
-    {
-      if (__builtin_constant_p(__B))
-	lshift = (__v8hu) vec_splat_s16(__B);
-      else
-	lshift = vec_splats ((unsigned short) __B);
-
-      result = vec_sl ((__v8hi) __A, lshift);
-    }
-
-  return (__m128i) result;
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_slli_epi32 (__m128i __A, int __B)
-{
-  __v4su lshift;
-  __v4si result = { 0, 0, 0, 0 };
-
-  if (__B >= 0 && __B < 32)
-    {
-      if (__builtin_constant_p(__B) && __B < 16)
-	lshift = (__v4su) vec_splat_s32(__B);
-      else
-	lshift = vec_splats ((unsigned int) __B);
-
-      result = vec_sl ((__v4si) __A, lshift);
-    }
-
-  return (__m128i) result;
-}
-
-#ifdef _ARCH_PWR8
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_slli_epi64 (__m128i __A, int __B)
-{
-  __v2du lshift;
-  __v2di result = { 0, 0 };
-
-  if (__B >= 0 && __B < 64)
-    {
-      if (__builtin_constant_p(__B) && __B < 16)
-	lshift = (__v2du) vec_splat_s32(__B);
-      else
-	lshift = (__v2du) vec_splats ((unsigned int) __B);
-
-      result = vec_sl ((__v2di) __A, lshift);
-    }
-
-  return (__m128i) result;
-}
-#endif
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_srai_epi16 (__m128i __A, int __B)
-{
-  __v8hu rshift = { 15, 15, 15, 15, 15, 15, 15, 15 };
-  __v8hi result;
-
-  if (__B < 16)
-    {
-      if (__builtin_constant_p(__B))
-	rshift = (__v8hu) vec_splat_s16(__B);
-      else
-	rshift = vec_splats ((unsigned short) __B);
-    }
-  result = vec_sra ((__v8hi) __A, rshift);
-
-  return (__m128i) result;
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_srai_epi32 (__m128i __A, int __B)
-{
-  __v4su rshift = { 31, 31, 31, 31 };
-  __v4si result;
-
-  if (__B < 32)
-    {
-      if (__builtin_constant_p(__B))
-	{
-	  if (__B < 16)
-	      rshift = (__v4su) vec_splat_s32(__B);
-	    else
-	      rshift = (__v4su) vec_splats((unsigned int)__B);
-	}
-      else
-	rshift = vec_splats ((unsigned int) __B);
-    }
-  result = vec_sra ((__v4si) __A, rshift);
-
-  return (__m128i) result;
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_bslli_si128 (__m128i __A, const int __N)
-{
-  __v16qu result;
-  const __v16qu zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-
-  if (__N < 16)
-    result = vec_sld ((__v16qu) __A, zeros, __N);
-  else
-    result = zeros;
-
-  return (__m128i) result;
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_bsrli_si128 (__m128i __A, const int __N)
-{
-  __v16qu result;
-  const __v16qu zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-
-  if (__N < 16)
-#ifdef __LITTLE_ENDIAN__
-    if (__builtin_constant_p(__N))
-      /* Would like to use Vector Shift Left Double by Octet
-	 Immediate here to use the immediate form and avoid
-	 load of __N * 8 value into a separate VR.  */
-      result = vec_sld (zeros, (__v16qu) __A, (16 - __N));
-    else
-#endif
-      {
-	__v16qu shift = vec_splats((unsigned char)(__N*8));
-#ifdef __LITTLE_ENDIAN__
-	result = vec_sro ((__v16qu)__A, shift);
-#else
-	result = vec_slo ((__v16qu)__A, shift);
-#endif
-      }
-  else
-    result = zeros;
-
-  return (__m128i) result;
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_srli_si128 (__m128i __A, const int __N)
-{
-  return _mm_bsrli_si128 (__A, __N);
-}
-
-extern __inline  __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_slli_si128 (__m128i __A, const int _imm5)
-{
-  __v16qu result;
-  const __v16qu zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-
-  if (_imm5 < 16)
-#ifdef __LITTLE_ENDIAN__
-    result = vec_sld ((__v16qu) __A, zeros, _imm5);
-#else
-    result = vec_sld (zeros, (__v16qu) __A, (16 - _imm5));
-#endif
-  else
-    result = zeros;
-
-  return (__m128i) result;
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-
-_mm_srli_epi16 (__m128i  __A, int __B)
-{
-  __v8hu rshift;
-  __v8hi result = { 0, 0, 0, 0, 0, 0, 0, 0 };
-
-  if (__B < 16)
-    {
-      if (__builtin_constant_p(__B))
-	rshift = (__v8hu) vec_splat_s16(__B);
-      else
-	rshift = vec_splats ((unsigned short) __B);
-
-      result = vec_sr ((__v8hi) __A, rshift);
-    }
-
-  return (__m128i) result;
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_srli_epi32 (__m128i __A, int __B)
-{
-  __v4su rshift;
-  __v4si result = { 0, 0, 0, 0 };
-
-  if (__B < 32)
-    {
-      if (__builtin_constant_p(__B))
-	{
-	  if (__B < 16)
-	      rshift = (__v4su) vec_splat_s32(__B);
-	    else
-	      rshift = (__v4su) vec_splats((unsigned int)__B);
-	}
-      else
-	rshift = vec_splats ((unsigned int) __B);
-
-      result = vec_sr ((__v4si) __A, rshift);
-    }
-
-  return (__m128i) result;
-}
-
-#ifdef _ARCH_PWR8
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_srli_epi64 (__m128i __A, int __B)
-{
-  __v2du rshift;
-  __v2di result = { 0, 0 };
-
-  if (__B < 64)
-    {
-      if (__builtin_constant_p(__B))
-	{
-	  if (__B < 16)
-	      rshift = (__v2du) vec_splat_s32(__B);
-	    else
-	      rshift = (__v2du) vec_splats((unsigned long long)__B);
-	}
-      else
-	rshift = (__v2du) vec_splats ((unsigned int) __B);
-
-      result = vec_sr ((__v2di) __A, rshift);
-    }
-
-  return (__m128i) result;
-}
-#endif
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sll_epi16 (__m128i __A, __m128i __B)
-{
-  __v8hu lshift;
-  __vector __bool short shmask;
-  const __v8hu shmax = { 15, 15, 15, 15, 15, 15, 15, 15 };
-  __v8hu result;
-
-#ifdef __LITTLE_ENDIAN__
-  lshift = vec_splat ((__v8hu) __B, 0);
-#else
-  lshift = vec_splat ((__v8hu) __B, 3);
-#endif
-  shmask = vec_cmple (lshift, shmax);
-  result = vec_sl ((__v8hu) __A, lshift);
-  result = vec_sel ((__v8hu) shmask, result, shmask);
-
-  return (__m128i) result;
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sll_epi32 (__m128i __A, __m128i __B)
-{
-  __v4su lshift;
-  __vector __bool int shmask;
-  const __v4su shmax = { 32, 32, 32, 32 };
-  __v4su result;
-#ifdef __LITTLE_ENDIAN__
-  lshift = vec_splat ((__v4su) __B, 0);
-#else
-  lshift = vec_splat ((__v4su) __B, 1);
-#endif
-  shmask = vec_cmplt (lshift, shmax);
-  result = vec_sl ((__v4su) __A, lshift);
-  result = vec_sel ((__v4su) shmask, result, shmask);
-
-  return (__m128i) result;
-}
-
-#ifdef _ARCH_PWR8
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sll_epi64 (__m128i __A, __m128i __B)
-{
-  __v2du lshift;
-  __vector __bool long long shmask;
-  const __v2du shmax = { 64, 64 };
-  __v2du result;
-
-  lshift = vec_splat ((__v2du) __B, 0);
-  shmask = vec_cmplt (lshift, shmax);
-  result = vec_sl ((__v2du) __A, lshift);
-  result = (__v2du)vec_sel ((__v2df) shmask, (__v2df)result, shmask);
-
-  return (__m128i) result;
-}
-#endif
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sra_epi16 (__m128i __A, __m128i __B)
-{
-  const __v8hu rshmax = { 15, 15, 15, 15, 15, 15, 15, 15 };
-  __v8hu rshift;
-  __v8hi result;
-
-#ifdef __LITTLE_ENDIAN__
-  rshift = vec_splat ((__v8hu)__B, 0);
-#else
-  rshift = vec_splat ((__v8hu)__B, 3);
-#endif
-  rshift = vec_min (rshift, rshmax);
-  result = vec_sra ((__v8hi) __A, rshift);
-
-  return (__m128i) result;
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sra_epi32 (__m128i __A, __m128i __B)
-{
-  const __v4su rshmax = { 31, 31, 31, 31 };
-  __v4su rshift;
-  __v4si result;
-
-#ifdef __LITTLE_ENDIAN__
-  rshift = vec_splat ((__v4su)__B, 0);
-#else
-  rshift = vec_splat ((__v4su)__B, 1);
-#endif
-  rshift = vec_min (rshift, rshmax);
-  result = vec_sra ((__v4si) __A, rshift);
-
-  return (__m128i) result;
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_srl_epi16 (__m128i __A, __m128i __B)
-{
-  __v8hu rshift;
-  __vector __bool short shmask;
-  const __v8hu shmax = { 15, 15, 15, 15, 15, 15, 15, 15 };
-  __v8hu result;
-
-#ifdef __LITTLE_ENDIAN__
-  rshift = vec_splat ((__v8hu) __B, 0);
-#else
-  rshift = vec_splat ((__v8hu) __B, 3);
-#endif
-  shmask = vec_cmple (rshift, shmax);
-  result = vec_sr ((__v8hu) __A, rshift);
-  result = vec_sel ((__v8hu) shmask, result, shmask);
-
-  return (__m128i) result;
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_srl_epi32 (__m128i __A, __m128i __B)
-{
-  __v4su rshift;
-  __vector __bool int shmask;
-  const __v4su shmax = { 32, 32, 32, 32 };
-  __v4su result;
-
-#ifdef __LITTLE_ENDIAN__
-  rshift = vec_splat ((__v4su) __B, 0);
-#else
-  rshift = vec_splat ((__v4su) __B, 1);
-#endif
-  shmask = vec_cmplt (rshift, shmax);
-  result = vec_sr ((__v4su) __A, rshift);
-  result = vec_sel ((__v4su) shmask, result, shmask);
-
-  return (__m128i) result;
-}
-
-#ifdef _ARCH_PWR8
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_srl_epi64 (__m128i __A, __m128i __B)
-{
-  __v2du rshift;
-  __vector __bool long long shmask;
-  const __v2du shmax = { 64, 64 };
-  __v2du result;
-
-  rshift = vec_splat ((__v2du) __B, 0);
-  shmask = vec_cmplt (rshift, shmax);
-  result = vec_sr ((__v2du) __A, rshift);
-  result = (__v2du)vec_sel ((__v2df) shmask, (__v2df)result, shmask);
-
-  return (__m128i) result;
-}
-#endif
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_and_pd (__m128d __A, __m128d __B)
-{
-  return (vec_and ((__v2df) __A, (__v2df) __B));
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_andnot_pd (__m128d __A, __m128d __B)
-{
-  return (vec_andc ((__v2df) __B, (__v2df) __A));
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_or_pd (__m128d __A, __m128d __B)
-{
-  return (vec_or ((__v2df) __A, (__v2df) __B));
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_xor_pd (__m128d __A, __m128d __B)
-{
-  return (vec_xor ((__v2df) __A, (__v2df) __B));
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_and_si128 (__m128i __A, __m128i __B)
-{
-  return (__m128i)vec_and ((__v2di) __A, (__v2di) __B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_andnot_si128 (__m128i __A, __m128i __B)
-{
-  return (__m128i)vec_andc ((__v2di) __B, (__v2di) __A);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_or_si128 (__m128i __A, __m128i __B)
-{
-  return (__m128i)vec_or ((__v2di) __A, (__v2di) __B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_xor_si128 (__m128i __A, __m128i __B)
-{
-  return (__m128i)vec_xor ((__v2di) __A, (__v2di) __B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpeq_epi8 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_cmpeq ((__v16qi) __A, (__v16qi)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpeq_epi16 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_cmpeq ((__v8hi) __A, (__v8hi)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpeq_epi32 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_cmpeq ((__v4si) __A, (__v4si)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmplt_epi8 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_cmplt ((__v16qi) __A, (__v16qi)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmplt_epi16 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_cmplt ((__v8hi) __A, (__v8hi)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmplt_epi32 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_cmplt ((__v4si) __A, (__v4si)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpgt_epi8 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_cmpgt ((__v16qi) __A, (__v16qi)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpgt_epi16 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_cmpgt ((__v8hi) __A, (__v8hi)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpgt_epi32 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_cmpgt ((__v4si) __A, (__v4si)__B);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_extract_epi16 (__m128i const __A, int const __N)
-{
-  return (unsigned short) ((__v8hi)__A)[__N & 7];
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_insert_epi16 (__m128i const __A, int const __D, int const __N)
-{
-  __v8hi result = (__v8hi)__A;
-
-  result [(__N & 7)] = __D;
-
-  return (__m128i) result;
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_max_epi16 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_max ((__v8hi)__A, (__v8hi)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_max_epu8 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_max ((__v16qu) __A, (__v16qu)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_min_epi16 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_min ((__v8hi) __A, (__v8hi)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_min_epu8 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_min ((__v16qu) __A, (__v16qu)__B);
-}
-
-
-#ifdef _ARCH_PWR8
-/* Intrinsic functions that require PowerISA 2.07 minimum.  */
-
-/* Creates a 4-bit mask from the most significant bits of the SPFP values.  */
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_movemask_epi8 (__m128i __A)
-{
-  __vector unsigned long long result;
-  static const __vector unsigned char perm_mask =
-    {
-	0x78, 0x70, 0x68, 0x60, 0x58, 0x50, 0x48, 0x40,
-	0x38, 0x30, 0x28, 0x20, 0x18, 0x10, 0x08, 0x00
-    };
-
-  result = ((__vector unsigned long long)
-	    vec_vbpermq ((__vector unsigned char) __A,
-			 (__vector unsigned char) perm_mask));
-
-#ifdef __LITTLE_ENDIAN__
-  return result[1];
-#else
-  return result[0];
-#endif
-}
-#endif /* _ARCH_PWR8 */
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_mulhi_epu16 (__m128i __A, __m128i __B)
-{
-  __v4su w0, w1;
-  __v16qu xform1 = {
-#ifdef __LITTLE_ENDIAN__
-      0x02, 0x03, 0x12, 0x13,  0x06, 0x07, 0x16, 0x17,
-      0x0A, 0x0B, 0x1A, 0x1B,  0x0E, 0x0F, 0x1E, 0x1F
-#else
-      0x00, 0x01, 0x10, 0x11,  0x04, 0x05, 0x14, 0x15,
-      0x08, 0x09, 0x18, 0x19,  0x0C, 0x0D, 0x1C, 0x1D
-#endif
-    };
-
-  w0 = vec_vmuleuh ((__v8hu)__A, (__v8hu)__B);
-  w1 = vec_vmulouh ((__v8hu)__A, (__v8hu)__B);
-  return (__m128i) vec_perm (w0, w1, xform1);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_shufflehi_epi16 (__m128i __A, const int __mask)
-{
-  unsigned long element_selector_98 = __mask & 0x03;
-  unsigned long element_selector_BA = (__mask >> 2) & 0x03;
-  unsigned long element_selector_DC = (__mask >> 4) & 0x03;
-  unsigned long element_selector_FE = (__mask >> 6) & 0x03;
-  static const unsigned short permute_selectors[4] =
-    {
-#ifdef __LITTLE_ENDIAN__
-	      0x0908, 0x0B0A, 0x0D0C, 0x0F0E
-#else
-	      0x0809, 0x0A0B, 0x0C0D, 0x0E0F
-#endif
-    };
-  __v2du pmask =
-#ifdef __LITTLE_ENDIAN__
-      { 0x1716151413121110UL,  0UL};
-#else
-      { 0x1011121314151617UL,  0UL};
-#endif
-  __m64_union t;
-  __v2du a, r;
-
-  t.as_short[0] = permute_selectors[element_selector_98];
-  t.as_short[1] = permute_selectors[element_selector_BA];
-  t.as_short[2] = permute_selectors[element_selector_DC];
-  t.as_short[3] = permute_selectors[element_selector_FE];
-  pmask[1] = t.as_m64;
-  a = (__v2du)__A;
-  r = vec_perm (a, a, (__vector unsigned char)pmask);
-  return (__m128i) r;
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_shufflelo_epi16 (__m128i __A, const int __mask)
-{
-  unsigned long element_selector_10 = __mask & 0x03;
-  unsigned long element_selector_32 = (__mask >> 2) & 0x03;
-  unsigned long element_selector_54 = (__mask >> 4) & 0x03;
-  unsigned long element_selector_76 = (__mask >> 6) & 0x03;
-  static const unsigned short permute_selectors[4] =
-    {
-#ifdef __LITTLE_ENDIAN__
-	      0x0100, 0x0302, 0x0504, 0x0706
-#else
-	      0x0001, 0x0203, 0x0405, 0x0607
-#endif
-    };
-  __v2du pmask =
-#ifdef __LITTLE_ENDIAN__
-                 { 0UL,  0x1f1e1d1c1b1a1918UL};
-#else
-                 { 0UL,  0x18191a1b1c1d1e1fUL};
-#endif
-  __m64_union t;
-  __v2du a, r;
-  t.as_short[0] = permute_selectors[element_selector_10];
-  t.as_short[1] = permute_selectors[element_selector_32];
-  t.as_short[2] = permute_selectors[element_selector_54];
-  t.as_short[3] = permute_selectors[element_selector_76];
-  pmask[0] = t.as_m64;
-  a = (__v2du)__A;
-  r = vec_perm (a, a, (__vector unsigned char)pmask);
-  return (__m128i) r;
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_shuffle_epi32 (__m128i __A, const int __mask)
-{
-  unsigned long element_selector_10 = __mask & 0x03;
-  unsigned long element_selector_32 = (__mask >> 2) & 0x03;
-  unsigned long element_selector_54 = (__mask >> 4) & 0x03;
-  unsigned long element_selector_76 = (__mask >> 6) & 0x03;
-  static const unsigned int permute_selectors[4] =
-    {
-#ifdef __LITTLE_ENDIAN__
-	0x03020100, 0x07060504, 0x0B0A0908, 0x0F0E0D0C
-#else
-      0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F
-#endif
-    };
-  __v4su t;
-
-  t[0] = permute_selectors[element_selector_10];
-  t[1] = permute_selectors[element_selector_32];
-  t[2] = permute_selectors[element_selector_54] + 0x10101010;
-  t[3] = permute_selectors[element_selector_76] + 0x10101010;
-  return (__m128i)vec_perm ((__v4si) __A, (__v4si)__A, (__vector unsigned char)t);
-}
-
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_maskmoveu_si128 (__m128i __A, __m128i __B, char *__C)
-{
-  __v2du hibit = { 0x7f7f7f7f7f7f7f7fUL, 0x7f7f7f7f7f7f7f7fUL};
-  __v16qu mask, tmp;
-  __m128i_u *p = (__m128i_u*)__C;
-
-  tmp = (__v16qu)_mm_loadu_si128(p);
-  mask = (__v16qu)vec_cmpgt ((__v16qu)__B, (__v16qu)hibit);
-  tmp = vec_sel (tmp, (__v16qu)__A, mask);
-  _mm_storeu_si128 (p, (__m128i)tmp);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_avg_epu8 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_avg ((__v16qu)__A, (__v16qu)__B);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_avg_epu16 (__m128i __A, __m128i __B)
-{
-  return (__m128i) vec_avg ((__v8hu)__A, (__v8hu)__B);
-}
-
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sad_epu8 (__m128i __A, __m128i __B)
-{
-  __v16qu a, b;
-  __v16qu vmin, vmax, vabsdiff;
-  __v4si vsum;
-  const __v4su zero = { 0, 0, 0, 0 };
-  __v4si result;
-
-  a = (__v16qu) __A;
-  b = (__v16qu) __B;
-  vmin = vec_min (a, b);
-  vmax = vec_max (a, b);
-  vabsdiff = vec_sub (vmax, vmin);
-  /* Sum four groups of bytes into integers.  */
-  vsum = (__vector signed int) vec_sum4s (vabsdiff, zero);
-  /* Sum across four integers with two integer results.  */
-  result = vec_sum2s (vsum, (__vector signed int) zero);
-  /* Rotate the sums into the correct position.  */
-#ifdef __LITTLE_ENDIAN__
-  result = vec_sld (result, result, 4);
-#else
-  result = vec_sld (result, result, 6);
-#endif
-  /* Rotate the sums into the correct position.  */
-  return (__m128i) result;
-}
-
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_stream_si32 (int *__A, int __B)
-{
-  /* Use the data cache block touch for store transient.  */
-  __asm__ (
-    "dcbtstt 0,%0"
-    :
-    : "b" (__A)
-    : "memory"
-  );
-  *__A = __B;
-}
-
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_stream_si64 (long long int *__A, long long int __B)
-{
-  /* Use the data cache block touch for store transient.  */
-  __asm__ (
-    "	dcbtstt	0,%0"
-    :
-    : "b" (__A)
-    : "memory"
-  );
-  *__A = __B;
-}
-
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_stream_si128 (__m128i *__A, __m128i __B)
-{
-  /* Use the data cache block touch for store transient.  */
-  __asm__ (
-    "dcbtstt 0,%0"
-    :
-    : "b" (__A)
-    : "memory"
-  );
-  *__A = __B;
-}
-
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_stream_pd (double *__A, __m128d __B)
-{
-  /* Use the data cache block touch for store transient.  */
-  __asm__ (
-    "dcbtstt 0,%0"
-    :
-    : "b" (__A)
-    : "memory"
-  );
-  *(__m128d*)__A = __B;
-}
-
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_clflush (void const *__A)
-{
-  /* Use the data cache block flush.  */
-  __asm__ (
-    "dcbf 0,%0"
-    :
-    : "b" (__A)
-    : "memory"
-  );
-}
-
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_lfence (void)
-{
-  /* Use light weight sync for load to load ordering.  */
-  __atomic_thread_fence (__ATOMIC_RELEASE);
-}
-
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_mfence (void)
-{
-  /* Use heavy weight sync for any to any ordering.  */
-  __atomic_thread_fence (__ATOMIC_SEQ_CST);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtsi32_si128 (int __A)
-{
-  return _mm_set_epi32 (0, 0, 0, __A);
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtsi64_si128 (long long __A)
-{
-  return __extension__ (__m128i)(__v2di){ __A, 0LL };
-}
-
-/* Microsoft intrinsic.  */
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtsi64x_si128 (long long __A)
-{
-  return __extension__ (__m128i)(__v2di){ __A, 0LL };
-}
-
-/* Casts between various SP, DP, INT vector types.  Note that these do no
-   conversion of values, they just change the type.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_castpd_ps(__m128d __A)
-{
-  return (__m128) __A;
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_castpd_si128(__m128d __A)
-{
-  return (__m128i) __A;
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_castps_pd(__m128 __A)
-{
-  return (__m128d) __A;
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_castps_si128(__m128 __A)
-{
-  return (__m128i) __A;
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_castsi128_ps(__m128i __A)
-{
-  return (__m128) __A;
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_castsi128_pd(__m128i __A)
-{
-  return (__m128d) __A;
-}
-
-#else
-#include_next <emmintrin.h>
-#endif /* defined(__linux__) && defined(__ppc64__) */
-
-#endif /* EMMINTRIN_H_ */
diff --git a/linux-x86/lib64/clang/14.0.1/include/ppc_wrappers/mmintrin.h b/linux-x86/lib64/clang/14.0.1/include/ppc_wrappers/mmintrin.h
deleted file mode 100644
index c55c447..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/ppc_wrappers/mmintrin.h
+++ /dev/null
@@ -1,1450 +0,0 @@
-/*===---- mmintrin.h - Implementation of MMX intrinsics on PowerPC ---------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-
-/* Implemented from the specification included in the Intel C++ Compiler
-   User Guide and Reference, version 9.0.  */
-
-#ifndef NO_WARN_X86_INTRINSICS
-/* This header file is to help porting code using Intel intrinsics
-   explicitly from x86_64 to powerpc64/powerpc64le.
-
-   Since PowerPC target doesn't support native 64-bit vector type, we
-   typedef __m64 to 64-bit unsigned long long in MMX intrinsics, which
-   works well for _si64 and some _pi32 operations.
-
-   For _pi16 and _pi8 operations, it's better to transfer __m64 into
-   128-bit PowerPC vector first. Power8 introduced direct register
-   move instructions which helps for more efficient implementation.
-
-   It's user's responsibility to determine if the results of such port
-   are acceptable or further changes are needed. Please note that much
-   code using Intel intrinsics CAN BE REWRITTEN in more portable and
-   efficient standard C or GNU C extensions with 64-bit scalar
-   operations, or 128-bit SSE/Altivec operations, which are more
-   recommended. */
-#error                                                                         \
-    "Please read comment above.  Use -DNO_WARN_X86_INTRINSICS to disable this error."
-#endif
-
-#ifndef _MMINTRIN_H_INCLUDED
-#define _MMINTRIN_H_INCLUDED
-
-#if defined(__linux__) && defined(__ppc64__)
-
-#include <altivec.h>
-/* The Intel API is flexible enough that we must allow aliasing with other
-   vector types, and their scalar components.  */
-typedef __attribute__((__aligned__(8))) unsigned long long __m64;
-
-typedef __attribute__((__aligned__(8))) union {
-  __m64 as_m64;
-  char as_char[8];
-  signed char as_signed_char[8];
-  short as_short[4];
-  int as_int[2];
-  long long as_long_long;
-  float as_float[2];
-  double as_double;
-} __m64_union;
-
-/* Empty the multimedia state.  */
-extern __inline void
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_empty(void) {
-  /* nothing to do on PowerPC.  */
-}
-
-extern __inline void
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_empty(void) {
-  /* nothing to do on PowerPC.  */
-}
-
-/* Convert I to a __m64 object.  The integer is zero-extended to 64-bits.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_cvtsi32_si64(int __i) {
-  return (__m64)(unsigned int)__i;
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_from_int(int __i) {
-  return _mm_cvtsi32_si64(__i);
-}
-
-/* Convert the lower 32 bits of the __m64 object into an integer.  */
-extern __inline int
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_cvtsi64_si32(__m64 __i) {
-  return ((int)__i);
-}
-
-extern __inline int
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_to_int(__m64 __i) {
-  return _mm_cvtsi64_si32(__i);
-}
-
-/* Convert I to a __m64 object.  */
-
-/* Intel intrinsic.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_from_int64(long long __i) {
-  return (__m64)__i;
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_cvtsi64_m64(long long __i) {
-  return (__m64)__i;
-}
-
-/* Microsoft intrinsic.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_cvtsi64x_si64(long long __i) {
-  return (__m64)__i;
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_set_pi64x(long long __i) {
-  return (__m64)__i;
-}
-
-/* Convert the __m64 object to a 64bit integer.  */
-
-/* Intel intrinsic.  */
-extern __inline long long
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_to_int64(__m64 __i) {
-  return (long long)__i;
-}
-
-extern __inline long long
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_cvtm64_si64(__m64 __i) {
-  return (long long)__i;
-}
-
-/* Microsoft intrinsic.  */
-extern __inline long long
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_cvtsi64_si64x(__m64 __i) {
-  return (long long)__i;
-}
-
-#ifdef _ARCH_PWR8
-/* Pack the four 16-bit values from M1 into the lower four 8-bit values of
-   the result, and the four 16-bit values from M2 into the upper four 8-bit
-   values of the result, all with signed saturation.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_packs_pi16(__m64 __m1, __m64 __m2) {
-  __vector signed short vm1;
-  __vector signed char vresult;
-
-  vm1 = (__vector signed short)(__vector unsigned long long)
-#ifdef __LITTLE_ENDIAN__
-      {__m1, __m2};
-#else
-      {__m2, __m1};
-#endif
-  vresult = vec_packs(vm1, vm1);
-  return (__m64)((__vector long long)vresult)[0];
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_packsswb(__m64 __m1, __m64 __m2) {
-  return _mm_packs_pi16(__m1, __m2);
-}
-
-/* Pack the two 32-bit values from M1 in to the lower two 16-bit values of
-   the result, and the two 32-bit values from M2 into the upper two 16-bit
-   values of the result, all with signed saturation.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_packs_pi32(__m64 __m1, __m64 __m2) {
-  __vector signed int vm1;
-  __vector signed short vresult;
-
-  vm1 = (__vector signed int)(__vector unsigned long long)
-#ifdef __LITTLE_ENDIAN__
-      {__m1, __m2};
-#else
-      {__m2, __m1};
-#endif
-  vresult = vec_packs(vm1, vm1);
-  return (__m64)((__vector long long)vresult)[0];
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_packssdw(__m64 __m1, __m64 __m2) {
-  return _mm_packs_pi32(__m1, __m2);
-}
-
-/* Pack the four 16-bit values from M1 into the lower four 8-bit values of
-   the result, and the four 16-bit values from M2 into the upper four 8-bit
-   values of the result, all with unsigned saturation.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_packs_pu16(__m64 __m1, __m64 __m2) {
-  __vector unsigned char r;
-  __vector signed short vm1 = (__vector signed short)(__vector long long)
-#ifdef __LITTLE_ENDIAN__
-      {__m1, __m2};
-#else
-      {__m2, __m1};
-#endif
-  const __vector signed short __zero = {0};
-  __vector __bool short __select = vec_cmplt(vm1, __zero);
-  r = vec_packs((__vector unsigned short)vm1, (__vector unsigned short)vm1);
-  __vector __bool char packsel = vec_pack(__select, __select);
-  r = vec_sel(r, (const __vector unsigned char)__zero, packsel);
-  return (__m64)((__vector long long)r)[0];
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_packuswb(__m64 __m1, __m64 __m2) {
-  return _mm_packs_pu16(__m1, __m2);
-}
-#endif /* end ARCH_PWR8 */
-
-/* Interleave the four 8-bit values from the high half of M1 with the four
-   8-bit values from the high half of M2.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_unpackhi_pi8(__m64 __m1, __m64 __m2) {
-#if _ARCH_PWR8
-  __vector unsigned char a, b, c;
-
-  a = (__vector unsigned char)vec_splats(__m1);
-  b = (__vector unsigned char)vec_splats(__m2);
-  c = vec_mergel(a, b);
-  return (__m64)((__vector long long)c)[1];
-#else
-  __m64_union m1, m2, res;
-
-  m1.as_m64 = __m1;
-  m2.as_m64 = __m2;
-
-  res.as_char[0] = m1.as_char[4];
-  res.as_char[1] = m2.as_char[4];
-  res.as_char[2] = m1.as_char[5];
-  res.as_char[3] = m2.as_char[5];
-  res.as_char[4] = m1.as_char[6];
-  res.as_char[5] = m2.as_char[6];
-  res.as_char[6] = m1.as_char[7];
-  res.as_char[7] = m2.as_char[7];
-
-  return (__m64)res.as_m64;
-#endif
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_punpckhbw(__m64 __m1, __m64 __m2) {
-  return _mm_unpackhi_pi8(__m1, __m2);
-}
-
-/* Interleave the two 16-bit values from the high half of M1 with the two
-   16-bit values from the high half of M2.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_unpackhi_pi16(__m64 __m1, __m64 __m2) {
-  __m64_union m1, m2, res;
-
-  m1.as_m64 = __m1;
-  m2.as_m64 = __m2;
-
-  res.as_short[0] = m1.as_short[2];
-  res.as_short[1] = m2.as_short[2];
-  res.as_short[2] = m1.as_short[3];
-  res.as_short[3] = m2.as_short[3];
-
-  return (__m64)res.as_m64;
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_punpckhwd(__m64 __m1, __m64 __m2) {
-  return _mm_unpackhi_pi16(__m1, __m2);
-}
-/* Interleave the 32-bit value from the high half of M1 with the 32-bit
-   value from the high half of M2.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_unpackhi_pi32(__m64 __m1, __m64 __m2) {
-  __m64_union m1, m2, res;
-
-  m1.as_m64 = __m1;
-  m2.as_m64 = __m2;
-
-  res.as_int[0] = m1.as_int[1];
-  res.as_int[1] = m2.as_int[1];
-
-  return (__m64)res.as_m64;
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_punpckhdq(__m64 __m1, __m64 __m2) {
-  return _mm_unpackhi_pi32(__m1, __m2);
-}
-/* Interleave the four 8-bit values from the low half of M1 with the four
-   8-bit values from the low half of M2.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_unpacklo_pi8(__m64 __m1, __m64 __m2) {
-#if _ARCH_PWR8
-  __vector unsigned char a, b, c;
-
-  a = (__vector unsigned char)vec_splats(__m1);
-  b = (__vector unsigned char)vec_splats(__m2);
-  c = vec_mergel(a, b);
-  return (__m64)((__vector long long)c)[0];
-#else
-  __m64_union m1, m2, res;
-
-  m1.as_m64 = __m1;
-  m2.as_m64 = __m2;
-
-  res.as_char[0] = m1.as_char[0];
-  res.as_char[1] = m2.as_char[0];
-  res.as_char[2] = m1.as_char[1];
-  res.as_char[3] = m2.as_char[1];
-  res.as_char[4] = m1.as_char[2];
-  res.as_char[5] = m2.as_char[2];
-  res.as_char[6] = m1.as_char[3];
-  res.as_char[7] = m2.as_char[3];
-
-  return (__m64)res.as_m64;
-#endif
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_punpcklbw(__m64 __m1, __m64 __m2) {
-  return _mm_unpacklo_pi8(__m1, __m2);
-}
-/* Interleave the two 16-bit values from the low half of M1 with the two
-   16-bit values from the low half of M2.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_unpacklo_pi16(__m64 __m1, __m64 __m2) {
-  __m64_union m1, m2, res;
-
-  m1.as_m64 = __m1;
-  m2.as_m64 = __m2;
-
-  res.as_short[0] = m1.as_short[0];
-  res.as_short[1] = m2.as_short[0];
-  res.as_short[2] = m1.as_short[1];
-  res.as_short[3] = m2.as_short[1];
-
-  return (__m64)res.as_m64;
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_punpcklwd(__m64 __m1, __m64 __m2) {
-  return _mm_unpacklo_pi16(__m1, __m2);
-}
-
-/* Interleave the 32-bit value from the low half of M1 with the 32-bit
-   value from the low half of M2.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_unpacklo_pi32(__m64 __m1, __m64 __m2) {
-  __m64_union m1, m2, res;
-
-  m1.as_m64 = __m1;
-  m2.as_m64 = __m2;
-
-  res.as_int[0] = m1.as_int[0];
-  res.as_int[1] = m2.as_int[0];
-
-  return (__m64)res.as_m64;
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_punpckldq(__m64 __m1, __m64 __m2) {
-  return _mm_unpacklo_pi32(__m1, __m2);
-}
-
-/* Add the 8-bit values in M1 to the 8-bit values in M2.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_add_pi8(__m64 __m1, __m64 __m2) {
-#if _ARCH_PWR8
-  __vector signed char a, b, c;
-
-  a = (__vector signed char)vec_splats(__m1);
-  b = (__vector signed char)vec_splats(__m2);
-  c = vec_add(a, b);
-  return (__m64)((__vector long long)c)[0];
-#else
-  __m64_union m1, m2, res;
-
-  m1.as_m64 = __m1;
-  m2.as_m64 = __m2;
-
-  res.as_char[0] = m1.as_char[0] + m2.as_char[0];
-  res.as_char[1] = m1.as_char[1] + m2.as_char[1];
-  res.as_char[2] = m1.as_char[2] + m2.as_char[2];
-  res.as_char[3] = m1.as_char[3] + m2.as_char[3];
-  res.as_char[4] = m1.as_char[4] + m2.as_char[4];
-  res.as_char[5] = m1.as_char[5] + m2.as_char[5];
-  res.as_char[6] = m1.as_char[6] + m2.as_char[6];
-  res.as_char[7] = m1.as_char[7] + m2.as_char[7];
-
-  return (__m64)res.as_m64;
-#endif
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_paddb(__m64 __m1, __m64 __m2) {
-  return _mm_add_pi8(__m1, __m2);
-}
-
-/* Add the 16-bit values in M1 to the 16-bit values in M2.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_add_pi16(__m64 __m1, __m64 __m2) {
-#if _ARCH_PWR8
-  __vector signed short a, b, c;
-
-  a = (__vector signed short)vec_splats(__m1);
-  b = (__vector signed short)vec_splats(__m2);
-  c = vec_add(a, b);
-  return (__m64)((__vector long long)c)[0];
-#else
-  __m64_union m1, m2, res;
-
-  m1.as_m64 = __m1;
-  m2.as_m64 = __m2;
-
-  res.as_short[0] = m1.as_short[0] + m2.as_short[0];
-  res.as_short[1] = m1.as_short[1] + m2.as_short[1];
-  res.as_short[2] = m1.as_short[2] + m2.as_short[2];
-  res.as_short[3] = m1.as_short[3] + m2.as_short[3];
-
-  return (__m64)res.as_m64;
-#endif
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_paddw(__m64 __m1, __m64 __m2) {
-  return _mm_add_pi16(__m1, __m2);
-}
-
-/* Add the 32-bit values in M1 to the 32-bit values in M2.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_add_pi32(__m64 __m1, __m64 __m2) {
-#if _ARCH_PWR9
-  __vector signed int a, b, c;
-
-  a = (__vector signed int)vec_splats(__m1);
-  b = (__vector signed int)vec_splats(__m2);
-  c = vec_add(a, b);
-  return (__m64)((__vector long long)c)[0];
-#else
-  __m64_union m1, m2, res;
-
-  m1.as_m64 = __m1;
-  m2.as_m64 = __m2;
-
-  res.as_int[0] = m1.as_int[0] + m2.as_int[0];
-  res.as_int[1] = m1.as_int[1] + m2.as_int[1];
-
-  return (__m64)res.as_m64;
-#endif
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_paddd(__m64 __m1, __m64 __m2) {
-  return _mm_add_pi32(__m1, __m2);
-}
-
-/* Subtract the 8-bit values in M2 from the 8-bit values in M1.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_sub_pi8(__m64 __m1, __m64 __m2) {
-#if _ARCH_PWR8
-  __vector signed char a, b, c;
-
-  a = (__vector signed char)vec_splats(__m1);
-  b = (__vector signed char)vec_splats(__m2);
-  c = vec_sub(a, b);
-  return (__m64)((__vector long long)c)[0];
-#else
-  __m64_union m1, m2, res;
-
-  m1.as_m64 = __m1;
-  m2.as_m64 = __m2;
-
-  res.as_char[0] = m1.as_char[0] - m2.as_char[0];
-  res.as_char[1] = m1.as_char[1] - m2.as_char[1];
-  res.as_char[2] = m1.as_char[2] - m2.as_char[2];
-  res.as_char[3] = m1.as_char[3] - m2.as_char[3];
-  res.as_char[4] = m1.as_char[4] - m2.as_char[4];
-  res.as_char[5] = m1.as_char[5] - m2.as_char[5];
-  res.as_char[6] = m1.as_char[6] - m2.as_char[6];
-  res.as_char[7] = m1.as_char[7] - m2.as_char[7];
-
-  return (__m64)res.as_m64;
-#endif
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_psubb(__m64 __m1, __m64 __m2) {
-  return _mm_sub_pi8(__m1, __m2);
-}
-
-/* Subtract the 16-bit values in M2 from the 16-bit values in M1.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_sub_pi16(__m64 __m1, __m64 __m2) {
-#if _ARCH_PWR8
-  __vector signed short a, b, c;
-
-  a = (__vector signed short)vec_splats(__m1);
-  b = (__vector signed short)vec_splats(__m2);
-  c = vec_sub(a, b);
-  return (__m64)((__vector long long)c)[0];
-#else
-  __m64_union m1, m2, res;
-
-  m1.as_m64 = __m1;
-  m2.as_m64 = __m2;
-
-  res.as_short[0] = m1.as_short[0] - m2.as_short[0];
-  res.as_short[1] = m1.as_short[1] - m2.as_short[1];
-  res.as_short[2] = m1.as_short[2] - m2.as_short[2];
-  res.as_short[3] = m1.as_short[3] - m2.as_short[3];
-
-  return (__m64)res.as_m64;
-#endif
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_psubw(__m64 __m1, __m64 __m2) {
-  return _mm_sub_pi16(__m1, __m2);
-}
-
-/* Subtract the 32-bit values in M2 from the 32-bit values in M1.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_sub_pi32(__m64 __m1, __m64 __m2) {
-#if _ARCH_PWR9
-  __vector signed int a, b, c;
-
-  a = (__vector signed int)vec_splats(__m1);
-  b = (__vector signed int)vec_splats(__m2);
-  c = vec_sub(a, b);
-  return (__m64)((__vector long long)c)[0];
-#else
-  __m64_union m1, m2, res;
-
-  m1.as_m64 = __m1;
-  m2.as_m64 = __m2;
-
-  res.as_int[0] = m1.as_int[0] - m2.as_int[0];
-  res.as_int[1] = m1.as_int[1] - m2.as_int[1];
-
-  return (__m64)res.as_m64;
-#endif
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_psubd(__m64 __m1, __m64 __m2) {
-  return _mm_sub_pi32(__m1, __m2);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_add_si64(__m64 __m1, __m64 __m2) {
-  return (__m1 + __m2);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_sub_si64(__m64 __m1, __m64 __m2) {
-  return (__m1 - __m2);
-}
-
-/* Shift the 64-bit value in M left by COUNT.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_sll_si64(__m64 __m, __m64 __count) {
-  return (__m << __count);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_psllq(__m64 __m, __m64 __count) {
-  return _mm_sll_si64(__m, __count);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_slli_si64(__m64 __m, const int __count) {
-  return (__m << __count);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_psllqi(__m64 __m, const int __count) {
-  return _mm_slli_si64(__m, __count);
-}
-
-/* Shift the 64-bit value in M left by COUNT; shift in zeros.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_srl_si64(__m64 __m, __m64 __count) {
-  return (__m >> __count);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_psrlq(__m64 __m, __m64 __count) {
-  return _mm_srl_si64(__m, __count);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_srli_si64(__m64 __m, const int __count) {
-  return (__m >> __count);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_psrlqi(__m64 __m, const int __count) {
-  return _mm_srli_si64(__m, __count);
-}
-
-/* Bit-wise AND the 64-bit values in M1 and M2.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_and_si64(__m64 __m1, __m64 __m2) {
-  return (__m1 & __m2);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_pand(__m64 __m1, __m64 __m2) {
-  return _mm_and_si64(__m1, __m2);
-}
-
-/* Bit-wise complement the 64-bit value in M1 and bit-wise AND it with the
-   64-bit value in M2.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_andnot_si64(__m64 __m1, __m64 __m2) {
-  return (~__m1 & __m2);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_pandn(__m64 __m1, __m64 __m2) {
-  return _mm_andnot_si64(__m1, __m2);
-}
-
-/* Bit-wise inclusive OR the 64-bit values in M1 and M2.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_or_si64(__m64 __m1, __m64 __m2) {
-  return (__m1 | __m2);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_por(__m64 __m1, __m64 __m2) {
-  return _mm_or_si64(__m1, __m2);
-}
-
-/* Bit-wise exclusive OR the 64-bit values in M1 and M2.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_xor_si64(__m64 __m1, __m64 __m2) {
-  return (__m1 ^ __m2);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_pxor(__m64 __m1, __m64 __m2) {
-  return _mm_xor_si64(__m1, __m2);
-}
-
-/* Creates a 64-bit zero.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_setzero_si64(void) {
-  return (__m64)0;
-}
-
-/* Compare eight 8-bit values.  The result of the comparison is 0xFF if the
-   test is true and zero if false.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_cmpeq_pi8(__m64 __m1, __m64 __m2) {
-#if defined(_ARCH_PWR6) && defined(__powerpc64__)
-  __m64 res;
-  __asm__("cmpb %0,%1,%2;\n" : "=r"(res) : "r"(__m1), "r"(__m2) :);
-  return (res);
-#else
-  __m64_union m1, m2, res;
-
-  m1.as_m64 = __m1;
-  m2.as_m64 = __m2;
-
-  res.as_char[0] = (m1.as_char[0] == m2.as_char[0]) ? -1 : 0;
-  res.as_char[1] = (m1.as_char[1] == m2.as_char[1]) ? -1 : 0;
-  res.as_char[2] = (m1.as_char[2] == m2.as_char[2]) ? -1 : 0;
-  res.as_char[3] = (m1.as_char[3] == m2.as_char[3]) ? -1 : 0;
-  res.as_char[4] = (m1.as_char[4] == m2.as_char[4]) ? -1 : 0;
-  res.as_char[5] = (m1.as_char[5] == m2.as_char[5]) ? -1 : 0;
-  res.as_char[6] = (m1.as_char[6] == m2.as_char[6]) ? -1 : 0;
-  res.as_char[7] = (m1.as_char[7] == m2.as_char[7]) ? -1 : 0;
-
-  return (__m64)res.as_m64;
-#endif
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_pcmpeqb(__m64 __m1, __m64 __m2) {
-  return _mm_cmpeq_pi8(__m1, __m2);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_cmpgt_pi8(__m64 __m1, __m64 __m2) {
-#if _ARCH_PWR8
-  __vector signed char a, b, c;
-
-  a = (__vector signed char)vec_splats(__m1);
-  b = (__vector signed char)vec_splats(__m2);
-  c = (__vector signed char)vec_cmpgt(a, b);
-  return (__m64)((__vector long long)c)[0];
-#else
-  __m64_union m1, m2, res;
-
-  m1.as_m64 = __m1;
-  m2.as_m64 = __m2;
-
-  res.as_char[0] = (m1.as_char[0] > m2.as_char[0]) ? -1 : 0;
-  res.as_char[1] = (m1.as_char[1] > m2.as_char[1]) ? -1 : 0;
-  res.as_char[2] = (m1.as_char[2] > m2.as_char[2]) ? -1 : 0;
-  res.as_char[3] = (m1.as_char[3] > m2.as_char[3]) ? -1 : 0;
-  res.as_char[4] = (m1.as_char[4] > m2.as_char[4]) ? -1 : 0;
-  res.as_char[5] = (m1.as_char[5] > m2.as_char[5]) ? -1 : 0;
-  res.as_char[6] = (m1.as_char[6] > m2.as_char[6]) ? -1 : 0;
-  res.as_char[7] = (m1.as_char[7] > m2.as_char[7]) ? -1 : 0;
-
-  return (__m64)res.as_m64;
-#endif
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_pcmpgtb(__m64 __m1, __m64 __m2) {
-  return _mm_cmpgt_pi8(__m1, __m2);
-}
-
-/* Compare four 16-bit values.  The result of the comparison is 0xFFFF if
-   the test is true and zero if false.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_cmpeq_pi16(__m64 __m1, __m64 __m2) {
-#if _ARCH_PWR8
-  __vector signed short a, b, c;
-
-  a = (__vector signed short)vec_splats(__m1);
-  b = (__vector signed short)vec_splats(__m2);
-  c = (__vector signed short)vec_cmpeq(a, b);
-  return (__m64)((__vector long long)c)[0];
-#else
-  __m64_union m1, m2, res;
-
-  m1.as_m64 = __m1;
-  m2.as_m64 = __m2;
-
-  res.as_short[0] = (m1.as_short[0] == m2.as_short[0]) ? -1 : 0;
-  res.as_short[1] = (m1.as_short[1] == m2.as_short[1]) ? -1 : 0;
-  res.as_short[2] = (m1.as_short[2] == m2.as_short[2]) ? -1 : 0;
-  res.as_short[3] = (m1.as_short[3] == m2.as_short[3]) ? -1 : 0;
-
-  return (__m64)res.as_m64;
-#endif
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_pcmpeqw(__m64 __m1, __m64 __m2) {
-  return _mm_cmpeq_pi16(__m1, __m2);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_cmpgt_pi16(__m64 __m1, __m64 __m2) {
-#if _ARCH_PWR8
-  __vector signed short a, b, c;
-
-  a = (__vector signed short)vec_splats(__m1);
-  b = (__vector signed short)vec_splats(__m2);
-  c = (__vector signed short)vec_cmpgt(a, b);
-  return (__m64)((__vector long long)c)[0];
-#else
-  __m64_union m1, m2, res;
-
-  m1.as_m64 = __m1;
-  m2.as_m64 = __m2;
-
-  res.as_short[0] = (m1.as_short[0] > m2.as_short[0]) ? -1 : 0;
-  res.as_short[1] = (m1.as_short[1] > m2.as_short[1]) ? -1 : 0;
-  res.as_short[2] = (m1.as_short[2] > m2.as_short[2]) ? -1 : 0;
-  res.as_short[3] = (m1.as_short[3] > m2.as_short[3]) ? -1 : 0;
-
-  return (__m64)res.as_m64;
-#endif
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_pcmpgtw(__m64 __m1, __m64 __m2) {
-  return _mm_cmpgt_pi16(__m1, __m2);
-}
-
-/* Compare two 32-bit values.  The result of the comparison is 0xFFFFFFFF if
-   the test is true and zero if false.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_cmpeq_pi32(__m64 __m1, __m64 __m2) {
-#if _ARCH_PWR9
-  __vector signed int a, b, c;
-
-  a = (__vector signed int)vec_splats(__m1);
-  b = (__vector signed int)vec_splats(__m2);
-  c = (__vector signed int)vec_cmpeq(a, b);
-  return (__m64)((__vector long long)c)[0];
-#else
-  __m64_union m1, m2, res;
-
-  m1.as_m64 = __m1;
-  m2.as_m64 = __m2;
-
-  res.as_int[0] = (m1.as_int[0] == m2.as_int[0]) ? -1 : 0;
-  res.as_int[1] = (m1.as_int[1] == m2.as_int[1]) ? -1 : 0;
-
-  return (__m64)res.as_m64;
-#endif
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_pcmpeqd(__m64 __m1, __m64 __m2) {
-  return _mm_cmpeq_pi32(__m1, __m2);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_cmpgt_pi32(__m64 __m1, __m64 __m2) {
-#if _ARCH_PWR9
-  __vector signed int a, b, c;
-
-  a = (__vector signed int)vec_splats(__m1);
-  b = (__vector signed int)vec_splats(__m2);
-  c = (__vector signed int)vec_cmpgt(a, b);
-  return (__m64)((__vector long long)c)[0];
-#else
-  __m64_union m1, m2, res;
-
-  m1.as_m64 = __m1;
-  m2.as_m64 = __m2;
-
-  res.as_int[0] = (m1.as_int[0] > m2.as_int[0]) ? -1 : 0;
-  res.as_int[1] = (m1.as_int[1] > m2.as_int[1]) ? -1 : 0;
-
-  return (__m64)res.as_m64;
-#endif
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_pcmpgtd(__m64 __m1, __m64 __m2) {
-  return _mm_cmpgt_pi32(__m1, __m2);
-}
-
-#if _ARCH_PWR8
-/* Add the 8-bit values in M1 to the 8-bit values in M2 using signed
-   saturated arithmetic.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_adds_pi8(__m64 __m1, __m64 __m2) {
-  __vector signed char a, b, c;
-
-  a = (__vector signed char)vec_splats(__m1);
-  b = (__vector signed char)vec_splats(__m2);
-  c = vec_adds(a, b);
-  return (__m64)((__vector long long)c)[0];
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_paddsb(__m64 __m1, __m64 __m2) {
-  return _mm_adds_pi8(__m1, __m2);
-}
-/* Add the 16-bit values in M1 to the 16-bit values in M2 using signed
-   saturated arithmetic.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_adds_pi16(__m64 __m1, __m64 __m2) {
-  __vector signed short a, b, c;
-
-  a = (__vector signed short)vec_splats(__m1);
-  b = (__vector signed short)vec_splats(__m2);
-  c = vec_adds(a, b);
-  return (__m64)((__vector long long)c)[0];
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_paddsw(__m64 __m1, __m64 __m2) {
-  return _mm_adds_pi16(__m1, __m2);
-}
-/* Add the 8-bit values in M1 to the 8-bit values in M2 using unsigned
-   saturated arithmetic.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_adds_pu8(__m64 __m1, __m64 __m2) {
-  __vector unsigned char a, b, c;
-
-  a = (__vector unsigned char)vec_splats(__m1);
-  b = (__vector unsigned char)vec_splats(__m2);
-  c = vec_adds(a, b);
-  return (__m64)((__vector long long)c)[0];
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_paddusb(__m64 __m1, __m64 __m2) {
-  return _mm_adds_pu8(__m1, __m2);
-}
-
-/* Add the 16-bit values in M1 to the 16-bit values in M2 using unsigned
-   saturated arithmetic.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_adds_pu16(__m64 __m1, __m64 __m2) {
-  __vector unsigned short a, b, c;
-
-  a = (__vector unsigned short)vec_splats(__m1);
-  b = (__vector unsigned short)vec_splats(__m2);
-  c = vec_adds(a, b);
-  return (__m64)((__vector long long)c)[0];
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_paddusw(__m64 __m1, __m64 __m2) {
-  return _mm_adds_pu16(__m1, __m2);
-}
-
-/* Subtract the 8-bit values in M2 from the 8-bit values in M1 using signed
-   saturating arithmetic.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_subs_pi8(__m64 __m1, __m64 __m2) {
-  __vector signed char a, b, c;
-
-  a = (__vector signed char)vec_splats(__m1);
-  b = (__vector signed char)vec_splats(__m2);
-  c = vec_subs(a, b);
-  return (__m64)((__vector long long)c)[0];
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_psubsb(__m64 __m1, __m64 __m2) {
-  return _mm_subs_pi8(__m1, __m2);
-}
-
-/* Subtract the 16-bit values in M2 from the 16-bit values in M1 using
-   signed saturating arithmetic.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_subs_pi16(__m64 __m1, __m64 __m2) {
-  __vector signed short a, b, c;
-
-  a = (__vector signed short)vec_splats(__m1);
-  b = (__vector signed short)vec_splats(__m2);
-  c = vec_subs(a, b);
-  return (__m64)((__vector long long)c)[0];
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_psubsw(__m64 __m1, __m64 __m2) {
-  return _mm_subs_pi16(__m1, __m2);
-}
-
-/* Subtract the 8-bit values in M2 from the 8-bit values in M1 using
-   unsigned saturating arithmetic.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_subs_pu8(__m64 __m1, __m64 __m2) {
-  __vector unsigned char a, b, c;
-
-  a = (__vector unsigned char)vec_splats(__m1);
-  b = (__vector unsigned char)vec_splats(__m2);
-  c = vec_subs(a, b);
-  return (__m64)((__vector long long)c)[0];
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_psubusb(__m64 __m1, __m64 __m2) {
-  return _mm_subs_pu8(__m1, __m2);
-}
-
-/* Subtract the 16-bit values in M2 from the 16-bit values in M1 using
-   unsigned saturating arithmetic.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_subs_pu16(__m64 __m1, __m64 __m2) {
-  __vector unsigned short a, b, c;
-
-  a = (__vector unsigned short)vec_splats(__m1);
-  b = (__vector unsigned short)vec_splats(__m2);
-  c = vec_subs(a, b);
-  return (__m64)((__vector long long)c)[0];
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_psubusw(__m64 __m1, __m64 __m2) {
-  return _mm_subs_pu16(__m1, __m2);
-}
-
-/* Multiply four 16-bit values in M1 by four 16-bit values in M2 producing
-   four 32-bit intermediate results, which are then summed by pairs to
-   produce two 32-bit results.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_madd_pi16(__m64 __m1, __m64 __m2) {
-  __vector signed short a, b;
-  __vector signed int c;
-  __vector signed int zero = {0, 0, 0, 0};
-
-  a = (__vector signed short)vec_splats(__m1);
-  b = (__vector signed short)vec_splats(__m2);
-  c = vec_vmsumshm(a, b, zero);
-  return (__m64)((__vector long long)c)[0];
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_pmaddwd(__m64 __m1, __m64 __m2) {
-  return _mm_madd_pi16(__m1, __m2);
-}
-/* Multiply four signed 16-bit values in M1 by four signed 16-bit values in
-   M2 and produce the high 16 bits of the 32-bit results.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_mulhi_pi16(__m64 __m1, __m64 __m2) {
-  __vector signed short a, b;
-  __vector signed short c;
-  __vector signed int w0, w1;
-  __vector unsigned char xform1 = {
-#ifdef __LITTLE_ENDIAN__
-      0x02, 0x03, 0x12, 0x13, 0x06, 0x07, 0x16, 0x17, 0x0A,
-      0x0B, 0x1A, 0x1B, 0x0E, 0x0F, 0x1E, 0x1F
-#else
-      0x00, 0x01, 0x10, 0x11, 0x04, 0x05, 0x14, 0x15, 0x00,
-      0x01, 0x10, 0x11, 0x04, 0x05, 0x14, 0x15
-#endif
-  };
-
-  a = (__vector signed short)vec_splats(__m1);
-  b = (__vector signed short)vec_splats(__m2);
-
-  w0 = vec_vmulesh(a, b);
-  w1 = vec_vmulosh(a, b);
-  c = (__vector signed short)vec_perm(w0, w1, xform1);
-
-  return (__m64)((__vector long long)c)[0];
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_pmulhw(__m64 __m1, __m64 __m2) {
-  return _mm_mulhi_pi16(__m1, __m2);
-}
-
-/* Multiply four 16-bit values in M1 by four 16-bit values in M2 and produce
-   the low 16 bits of the results.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_mullo_pi16(__m64 __m1, __m64 __m2) {
-  __vector signed short a, b, c;
-
-  a = (__vector signed short)vec_splats(__m1);
-  b = (__vector signed short)vec_splats(__m2);
-  c = a * b;
-  return (__m64)((__vector long long)c)[0];
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_pmullw(__m64 __m1, __m64 __m2) {
-  return _mm_mullo_pi16(__m1, __m2);
-}
-
-/* Shift four 16-bit values in M left by COUNT.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_sll_pi16(__m64 __m, __m64 __count) {
-  __vector signed short m, r;
-  __vector unsigned short c;
-
-  if (__count <= 15) {
-    m = (__vector signed short)vec_splats(__m);
-    c = (__vector unsigned short)vec_splats((unsigned short)__count);
-    r = vec_sl(m, (__vector unsigned short)c);
-    return (__m64)((__vector long long)r)[0];
-  } else
-    return (0);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_psllw(__m64 __m, __m64 __count) {
-  return _mm_sll_pi16(__m, __count);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_slli_pi16(__m64 __m, int __count) {
-  /* Promote int to long then invoke mm_sll_pi16.  */
-  return _mm_sll_pi16(__m, __count);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_psllwi(__m64 __m, int __count) {
-  return _mm_slli_pi16(__m, __count);
-}
-
-/* Shift two 32-bit values in M left by COUNT.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_sll_pi32(__m64 __m, __m64 __count) {
-  __m64_union m, res;
-
-  m.as_m64 = __m;
-
-  res.as_int[0] = m.as_int[0] << __count;
-  res.as_int[1] = m.as_int[1] << __count;
-  return (res.as_m64);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_pslld(__m64 __m, __m64 __count) {
-  return _mm_sll_pi32(__m, __count);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_slli_pi32(__m64 __m, int __count) {
-  /* Promote int to long then invoke mm_sll_pi32.  */
-  return _mm_sll_pi32(__m, __count);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_pslldi(__m64 __m, int __count) {
-  return _mm_slli_pi32(__m, __count);
-}
-
-/* Shift four 16-bit values in M right by COUNT; shift in the sign bit.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_sra_pi16(__m64 __m, __m64 __count) {
-  __vector signed short m, r;
-  __vector unsigned short c;
-
-  if (__count <= 15) {
-    m = (__vector signed short)vec_splats(__m);
-    c = (__vector unsigned short)vec_splats((unsigned short)__count);
-    r = vec_sra(m, (__vector unsigned short)c);
-    return (__m64)((__vector long long)r)[0];
-  } else
-    return (0);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_psraw(__m64 __m, __m64 __count) {
-  return _mm_sra_pi16(__m, __count);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_srai_pi16(__m64 __m, int __count) {
-  /* Promote int to long then invoke mm_sra_pi32.  */
-  return _mm_sra_pi16(__m, __count);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_psrawi(__m64 __m, int __count) {
-  return _mm_srai_pi16(__m, __count);
-}
-
-/* Shift two 32-bit values in M right by COUNT; shift in the sign bit.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_sra_pi32(__m64 __m, __m64 __count) {
-  __m64_union m, res;
-
-  m.as_m64 = __m;
-
-  res.as_int[0] = m.as_int[0] >> __count;
-  res.as_int[1] = m.as_int[1] >> __count;
-  return (res.as_m64);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_psrad(__m64 __m, __m64 __count) {
-  return _mm_sra_pi32(__m, __count);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_srai_pi32(__m64 __m, int __count) {
-  /* Promote int to long then invoke mm_sra_pi32.  */
-  return _mm_sra_pi32(__m, __count);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_psradi(__m64 __m, int __count) {
-  return _mm_srai_pi32(__m, __count);
-}
-
-/* Shift four 16-bit values in M right by COUNT; shift in zeros.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_srl_pi16(__m64 __m, __m64 __count) {
-  __vector unsigned short m, r;
-  __vector unsigned short c;
-
-  if (__count <= 15) {
-    m = (__vector unsigned short)vec_splats(__m);
-    c = (__vector unsigned short)vec_splats((unsigned short)__count);
-    r = vec_sr(m, (__vector unsigned short)c);
-    return (__m64)((__vector long long)r)[0];
-  } else
-    return (0);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_psrlw(__m64 __m, __m64 __count) {
-  return _mm_srl_pi16(__m, __count);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_srli_pi16(__m64 __m, int __count) {
-  /* Promote int to long then invoke mm_sra_pi32.  */
-  return _mm_srl_pi16(__m, __count);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_psrlwi(__m64 __m, int __count) {
-  return _mm_srli_pi16(__m, __count);
-}
-
-/* Shift two 32-bit values in M right by COUNT; shift in zeros.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_srl_pi32(__m64 __m, __m64 __count) {
-  __m64_union m, res;
-
-  m.as_m64 = __m;
-
-  res.as_int[0] = (unsigned int)m.as_int[0] >> __count;
-  res.as_int[1] = (unsigned int)m.as_int[1] >> __count;
-  return (res.as_m64);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_psrld(__m64 __m, __m64 __count) {
-  return _mm_srl_pi32(__m, __count);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_srli_pi32(__m64 __m, int __count) {
-  /* Promote int to long then invoke mm_srl_pi32.  */
-  return _mm_srl_pi32(__m, __count);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _m_psrldi(__m64 __m, int __count) {
-  return _mm_srli_pi32(__m, __count);
-}
-#endif /* _ARCH_PWR8 */
-
-/* Creates a vector of two 32-bit values; I0 is least significant.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_set_pi32(int __i1, int __i0) {
-  __m64_union res;
-
-  res.as_int[0] = __i0;
-  res.as_int[1] = __i1;
-  return (res.as_m64);
-}
-
-/* Creates a vector of four 16-bit values; W0 is least significant.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_set_pi16(short __w3, short __w2, short __w1, short __w0) {
-  __m64_union res;
-
-  res.as_short[0] = __w0;
-  res.as_short[1] = __w1;
-  res.as_short[2] = __w2;
-  res.as_short[3] = __w3;
-  return (res.as_m64);
-}
-
-/* Creates a vector of eight 8-bit values; B0 is least significant.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_set_pi8(char __b7, char __b6, char __b5, char __b4, char __b3,
-                char __b2, char __b1, char __b0) {
-  __m64_union res;
-
-  res.as_char[0] = __b0;
-  res.as_char[1] = __b1;
-  res.as_char[2] = __b2;
-  res.as_char[3] = __b3;
-  res.as_char[4] = __b4;
-  res.as_char[5] = __b5;
-  res.as_char[6] = __b6;
-  res.as_char[7] = __b7;
-  return (res.as_m64);
-}
-
-/* Similar, but with the arguments in reverse order.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_setr_pi32(int __i0, int __i1) {
-  __m64_union res;
-
-  res.as_int[0] = __i0;
-  res.as_int[1] = __i1;
-  return (res.as_m64);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_setr_pi16(short __w0, short __w1, short __w2, short __w3) {
-  return _mm_set_pi16(__w3, __w2, __w1, __w0);
-}
-
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_setr_pi8(char __b0, char __b1, char __b2, char __b3, char __b4,
-                 char __b5, char __b6, char __b7) {
-  return _mm_set_pi8(__b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0);
-}
-
-/* Creates a vector of two 32-bit values, both elements containing I.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_set1_pi32(int __i) {
-  __m64_union res;
-
-  res.as_int[0] = __i;
-  res.as_int[1] = __i;
-  return (res.as_m64);
-}
-
-/* Creates a vector of four 16-bit values, all elements containing W.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_set1_pi16(short __w) {
-#if _ARCH_PWR9
-  __vector signed short w;
-
-  w = (__vector signed short)vec_splats(__w);
-  return (__m64)((__vector long long)w)[0];
-#else
-  __m64_union res;
-
-  res.as_short[0] = __w;
-  res.as_short[1] = __w;
-  res.as_short[2] = __w;
-  res.as_short[3] = __w;
-  return (res.as_m64);
-#endif
-}
-
-/* Creates a vector of eight 8-bit values, all elements containing B.  */
-extern __inline __m64
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_set1_pi8(signed char __b) {
-#if _ARCH_PWR8
-  __vector signed char b;
-
-  b = (__vector signed char)vec_splats(__b);
-  return (__m64)((__vector long long)b)[0];
-#else
-  __m64_union res;
-
-  res.as_char[0] = __b;
-  res.as_char[1] = __b;
-  res.as_char[2] = __b;
-  res.as_char[3] = __b;
-  res.as_char[4] = __b;
-  res.as_char[5] = __b;
-  res.as_char[6] = __b;
-  res.as_char[7] = __b;
-  return (res.as_m64);
-#endif
-}
-
-#else
-#include_next <mmintrin.h>
-#endif /* defined(__linux__) && defined(__ppc64__) */
-
-#endif /* _MMINTRIN_H_INCLUDED */
diff --git a/linux-x86/lib64/clang/14.0.1/include/ppc_wrappers/pmmintrin.h b/linux-x86/lib64/clang/14.0.1/include/ppc_wrappers/pmmintrin.h
deleted file mode 100644
index 6d93383..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/ppc_wrappers/pmmintrin.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/*===---- pmmintrin.h - Implementation of SSE3 intrinsics on PowerPC -------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-
-/* Implemented from the specification included in the Intel C++ Compiler
-   User Guide and Reference, version 9.0.  */
-
-#ifndef NO_WARN_X86_INTRINSICS
-/* This header is distributed to simplify porting x86_64 code that
-   makes explicit use of Intel intrinsics to powerpc64le.
-   It is the user's responsibility to determine if the results are
-   acceptable and make additional changes as necessary.
-   Note that much code that uses Intel intrinsics can be rewritten in
-   standard C or GNU C extensions, which are more portable and better
-   optimized across multiple targets.
-
-   In the specific case of X86 SSE3 intrinsics, the PowerPC VMX/VSX ISA
-   is a good match for most SIMD operations.  However the Horizontal
-   add/sub requires the data pairs be permuted into a separate
-   registers with vertical even/odd alignment for the operation.
-   And the addsub operation requires the sign of only the even numbered
-   elements be flipped (xored with -0.0).
-   For larger blocks of code using these intrinsic implementations,
-   the compiler be should be able to schedule instructions to avoid
-   additional latency.
-
-   In the specific case of the monitor and mwait instructions there are
-   no direct equivalent in the PowerISA at this time.  So those
-   intrinsics are not implemented.  */
-#error "Please read comment above.  Use -DNO_WARN_X86_INTRINSICS to disable this warning."
-#endif
-
-#ifndef PMMINTRIN_H_
-#define PMMINTRIN_H_
-
-#if defined(__linux__) && defined(__ppc64__)
-
-/* We need definitions from the SSE2 and SSE header files*/
-#include <emmintrin.h>
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_addsub_ps (__m128 __X, __m128 __Y)
-{
-  const __v4sf even_n0 = {-0.0, 0.0, -0.0, 0.0};
-  __v4sf even_neg_Y = vec_xor(__Y, even_n0);
-  return (__m128) vec_add (__X, even_neg_Y);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_addsub_pd (__m128d __X, __m128d __Y)
-{
-  const __v2df even_n0 = {-0.0, 0.0};
-  __v2df even_neg_Y = vec_xor(__Y, even_n0);
-  return (__m128d) vec_add (__X, even_neg_Y);
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_hadd_ps (__m128 __X, __m128 __Y)
-{
-  __vector unsigned char xform2 = {
-      0x00, 0x01, 0x02, 0x03,
-      0x08, 0x09, 0x0A, 0x0B,
-      0x10, 0x11, 0x12, 0x13,
-      0x18, 0x19, 0x1A, 0x1B
-    };
-  __vector unsigned char xform1 = {
-      0x04, 0x05, 0x06, 0x07,
-      0x0C, 0x0D, 0x0E, 0x0F,
-      0x14, 0x15, 0x16, 0x17,
-      0x1C, 0x1D, 0x1E, 0x1F
-    };
-  return (__m128) vec_add (vec_perm ((__v4sf) __X, (__v4sf) __Y, xform2),
-			   vec_perm ((__v4sf) __X, (__v4sf) __Y, xform1));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_hsub_ps (__m128 __X, __m128 __Y)
-{
-  __vector unsigned char xform2 = {
-      0x00, 0x01, 0x02, 0x03,
-      0x08, 0x09, 0x0A, 0x0B,
-      0x10, 0x11, 0x12, 0x13,
-      0x18, 0x19, 0x1A, 0x1B
-    };
-  __vector unsigned char xform1 = {
-      0x04, 0x05, 0x06, 0x07,
-      0x0C, 0x0D, 0x0E, 0x0F,
-      0x14, 0x15, 0x16, 0x17,
-      0x1C, 0x1D, 0x1E, 0x1F
-    };
-  return (__m128) vec_sub (vec_perm ((__v4sf) __X, (__v4sf) __Y, xform2),
-			   vec_perm ((__v4sf) __X, (__v4sf) __Y, xform1));
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_hadd_pd (__m128d __X, __m128d __Y)
-{
-  return (__m128d) vec_add (vec_mergeh ((__v2df) __X, (__v2df)__Y),
-				  vec_mergel ((__v2df) __X, (__v2df)__Y));
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_hsub_pd (__m128d __X, __m128d __Y)
-{
-  return (__m128d) vec_sub (vec_mergeh ((__v2df) __X, (__v2df)__Y),
-			    vec_mergel ((__v2df) __X, (__v2df)__Y));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_movehdup_ps (__m128 __X)
-{
-  return (__m128)vec_mergeo ((__v4su)__X, (__v4su)__X);
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_moveldup_ps (__m128 __X)
-{
-  return (__m128)vec_mergee ((__v4su)__X, (__v4su)__X);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_loaddup_pd (double const *__P)
-{
-  return (__m128d) vec_splats (*__P);
-}
-
-extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_movedup_pd (__m128d __X)
-{
-  return _mm_shuffle_pd (__X, __X, _MM_SHUFFLE2 (0,0));
-}
-
-extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_lddqu_si128 (__m128i const *__P)
-{
-  return (__m128i) (vec_vsx_ld(0, (signed int const *)__P));
-}
-
-/* POWER8 / POWER9 have no equivalent for _mm_monitor nor _mm_wait.  */
-
-#else
-#include_next <pmmintrin.h>
-#endif /* defined(__linux__) && defined(__ppc64__) */
-
-#endif /* PMMINTRIN_H_ */
diff --git a/linux-x86/lib64/clang/14.0.1/include/ppc_wrappers/smmintrin.h b/linux-x86/lib64/clang/14.0.1/include/ppc_wrappers/smmintrin.h
deleted file mode 100644
index 64f0c76..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/ppc_wrappers/smmintrin.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*===---- smmintrin.h - Implementation of SSE4 intrinsics on PowerPC -------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-
-/* Implemented from the specification included in the Intel C++ Compiler
-   User Guide and Reference, version 9.0.
-
-   NOTE: This is NOT a complete implementation of the SSE4 intrinsics!  */
-
-#ifndef NO_WARN_X86_INTRINSICS
-/* This header is distributed to simplify porting x86_64 code that
-   makes explicit use of Intel intrinsics to powerp64/powerpc64le.
-
-   It is the user's responsibility to determine if the results are
-   acceptable and make additional changes as necessary.
-
-   Note that much code that uses Intel intrinsics can be rewritten in
-   standard C or GNU C extensions, which are more portable and better
-   optimized across multiple targets.  */
-#error                                                                         \
-    "Please read comment above.  Use -DNO_WARN_X86_INTRINSICS to disable this error."
-#endif
-
-#ifndef SMMINTRIN_H_
-#define SMMINTRIN_H_
-
-#if defined(__linux__) && defined(__ppc64__)
-
-#include <altivec.h>
-#include <emmintrin.h>
-
-extern __inline int
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_extract_epi8(__m128i __X, const int __N) {
-  return (unsigned char)((__v16qi)__X)[__N & 15];
-}
-
-extern __inline int
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_extract_epi32(__m128i __X, const int __N) {
-  return ((__v4si)__X)[__N & 3];
-}
-
-extern __inline int
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_extract_epi64(__m128i __X, const int __N) {
-  return ((__v2di)__X)[__N & 1];
-}
-
-extern __inline int
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_extract_ps(__m128 __X, const int __N) {
-  return ((__v4si)__X)[__N & 3];
-}
-
-extern __inline __m128i
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_blend_epi16(__m128i __A, __m128i __B, const int __imm8) {
-  __v16qi __charmask = vec_splats((signed char)__imm8);
-  __charmask = vec_gb(__charmask);
-  __v8hu __shortmask = (__v8hu)vec_unpackh(__charmask);
-#ifdef __BIG_ENDIAN__
-  __shortmask = vec_reve(__shortmask);
-#endif
-  return (__m128i)vec_sel((__v8hu)__A, (__v8hu)__B, __shortmask);
-}
-
-extern __inline __m128i
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_blendv_epi8(__m128i __A, __m128i __B, __m128i __mask) {
-  const __v16qu __seven = vec_splats((unsigned char)0x07);
-  __v16qu __lmask = vec_sra((__v16qu)__mask, __seven);
-  return (__m128i)vec_sel((__v16qu)__A, (__v16qu)__B, __lmask);
-}
-
-extern __inline __m128i
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_insert_epi8(__m128i const __A, int const __D, int const __N) {
-  __v16qi result = (__v16qi)__A;
-  result[__N & 0xf] = __D;
-  return (__m128i)result;
-}
-
-extern __inline __m128i
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_insert_epi32(__m128i const __A, int const __D, int const __N) {
-  __v4si result = (__v4si)__A;
-  result[__N & 3] = __D;
-  return (__m128i)result;
-}
-
-extern __inline __m128i
-    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-    _mm_insert_epi64(__m128i const __A, long long const __D, int const __N) {
-  __v2di result = (__v2di)__A;
-  result[__N & 1] = __D;
-  return (__m128i)result;
-}
-
-#else
-#include_next <smmintrin.h>
-#endif /* defined(__linux__) && defined(__ppc64__) */
-
-#endif /* _SMMINTRIN_H_ */
diff --git a/linux-x86/lib64/clang/14.0.1/include/ppc_wrappers/tmmintrin.h b/linux-x86/lib64/clang/14.0.1/include/ppc_wrappers/tmmintrin.h
deleted file mode 100644
index b5a935d..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/ppc_wrappers/tmmintrin.h
+++ /dev/null
@@ -1,495 +0,0 @@
-/*===---- tmmintrin.h - Implementation of SSSE3 intrinsics on PowerPC ------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-
-/* Implemented from the specification included in the Intel C++ Compiler
-   User Guide and Reference, version 9.0.  */
-
-#ifndef NO_WARN_X86_INTRINSICS
-/* This header is distributed to simplify porting x86_64 code that
-   makes explicit use of Intel intrinsics to powerpc64le.
-
-   It is the user's responsibility to determine if the results are
-   acceptable and make additional changes as necessary.
-
-   Note that much code that uses Intel intrinsics can be rewritten in
-   standard C or GNU C extensions, which are more portable and better
-   optimized across multiple targets.  */
-#endif
-
-#ifndef TMMINTRIN_H_
-#define TMMINTRIN_H_
-
-#if defined(__linux__) && defined(__ppc64__)
-
-#include <altivec.h>
-
-/* We need definitions from the SSE header files.  */
-#include <pmmintrin.h>
-
-extern __inline __m128i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_abs_epi16 (__m128i __A)
-{
-  return (__m128i) vec_abs ((__v8hi) __A);
-}
-
-extern __inline __m128i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_abs_epi32 (__m128i __A)
-{
-  return (__m128i) vec_abs ((__v4si) __A);
-}
-
-extern __inline __m128i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_abs_epi8 (__m128i __A)
-{
-  return (__m128i) vec_abs ((__v16qi) __A);
-}
-
-extern __inline __m64
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_abs_pi16 (__m64 __A)
-{
-  __v8hi __B = (__v8hi) (__v2du) { __A, __A };
-  return (__m64) ((__v2du) vec_abs (__B))[0];
-}
-
-extern __inline __m64
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_abs_pi32 (__m64 __A)
-{
-  __v4si __B = (__v4si) (__v2du) { __A, __A };
-  return (__m64) ((__v2du) vec_abs (__B))[0];
-}
-
-extern __inline __m64
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_abs_pi8 (__m64 __A)
-{
-  __v16qi __B = (__v16qi) (__v2du) { __A, __A };
-  return (__m64) ((__v2du) vec_abs (__B))[0];
-}
-
-extern __inline __m128i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_alignr_epi8 (__m128i __A, __m128i __B, const unsigned int __count)
-{
-  if (__builtin_constant_p (__count) && __count < 16)
-    {
-#ifdef __LITTLE_ENDIAN__
-      __A = (__m128i) vec_reve ((__v16qu) __A);
-      __B = (__m128i) vec_reve ((__v16qu) __B);
-#endif
-      __A = (__m128i) vec_sld ((__v16qu) __B, (__v16qu) __A, __count);
-#ifdef __LITTLE_ENDIAN__
-      __A = (__m128i) vec_reve ((__v16qu) __A);
-#endif
-      return __A;
-    }
-
-  if (__count == 0)
-    return __B;
-
-  if (__count >= 16)
-    {
-      if (__count >= 32)
-	{
-	  const __v16qu zero = { 0 };
-	  return (__m128i) zero;
-	}
-      else
-	{
-	  const __v16qu __shift =
-	    vec_splats ((unsigned char) ((__count - 16) * 8));
-#ifdef __LITTLE_ENDIAN__
-	  return (__m128i) vec_sro ((__v16qu) __A, __shift);
-#else
-	  return (__m128i) vec_slo ((__v16qu) __A, __shift);
-#endif
-	}
-    }
-  else
-    {
-      const __v16qu __shiftA =
-	vec_splats ((unsigned char) ((16 - __count) * 8));
-      const __v16qu __shiftB = vec_splats ((unsigned char) (__count * 8));
-#ifdef __LITTLE_ENDIAN__
-      __A = (__m128i) vec_slo ((__v16qu) __A, __shiftA);
-      __B = (__m128i) vec_sro ((__v16qu) __B, __shiftB);
-#else
-      __A = (__m128i) vec_sro ((__v16qu) __A, __shiftA);
-      __B = (__m128i) vec_slo ((__v16qu) __B, __shiftB);
-#endif
-      return (__m128i) vec_or ((__v16qu) __A, (__v16qu) __B);
-    }
-}
-
-extern __inline __m64
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_alignr_pi8 (__m64 __A, __m64 __B, unsigned int __count)
-{
-  if (__count < 16)
-    {
-      __v2du __C = { __B, __A };
-#ifdef __LITTLE_ENDIAN__
-      const __v4su __shift = { __count << 3, 0, 0, 0 };
-      __C = (__v2du) vec_sro ((__v16qu) __C, (__v16qu) __shift);
-#else
-      const __v4su __shift = { 0, 0, 0, __count << 3 };
-      __C = (__v2du) vec_slo ((__v16qu) __C, (__v16qu) __shift);
-#endif
-      return (__m64) __C[0];
-    }
-  else
-    {
-      const __m64 __zero = { 0 };
-      return __zero;
-    }
-}
-
-extern __inline __m128i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_hadd_epi16 (__m128i __A, __m128i __B)
-{
-  const __v16qu __P =
-    {  0,  1,  4,  5,  8,  9, 12, 13, 16, 17, 20, 21, 24, 25, 28, 29 };
-  const __v16qu __Q =
-    {  2,  3,  6,  7, 10, 11, 14, 15, 18, 19, 22, 23, 26, 27, 30, 31 };
-  __v8hi __C = vec_perm ((__v8hi) __A, (__v8hi) __B, __P);
-  __v8hi __D = vec_perm ((__v8hi) __A, (__v8hi) __B, __Q);
-  return (__m128i) vec_add (__C, __D);
-}
-
-extern __inline __m128i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_hadd_epi32 (__m128i __A, __m128i __B)
-{
-  const __v16qu __P =
-    {  0,  1,  2,  3,  8,  9, 10, 11, 16, 17, 18, 19, 24, 25, 26, 27 };
-  const __v16qu __Q =
-    {  4,  5,  6,  7, 12, 13, 14, 15, 20, 21, 22, 23, 28, 29, 30, 31 };
-  __v4si __C = vec_perm ((__v4si) __A, (__v4si) __B, __P);
-  __v4si __D = vec_perm ((__v4si) __A, (__v4si) __B, __Q);
-  return (__m128i) vec_add (__C, __D);
-}
-
-extern __inline __m64
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_hadd_pi16 (__m64 __A, __m64 __B)
-{
-  __v8hi __C = (__v8hi) (__v2du) { __A, __B };
-  const __v16qu __P =
-    {  0,  1,  4,  5,  8,  9, 12, 13,  0,  1,  4,  5,  8,  9, 12, 13 };
-  const __v16qu __Q =
-    {  2,  3,  6,  7, 10, 11, 14, 15,  2,  3,  6,  7, 10, 11, 14, 15 };
-  __v8hi __D = vec_perm (__C, __C, __Q);
-  __C = vec_perm (__C, __C, __P);
-  __C = vec_add (__C, __D);
-  return (__m64) ((__v2du) __C)[1];
-}
-
-extern __inline __m64
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_hadd_pi32 (__m64 __A, __m64 __B)
-{
-  __v4si __C = (__v4si) (__v2du) { __A, __B };
-  const __v16qu __P =
-    {  0,  1,  2,  3,  8,  9, 10, 11,  0,  1,  2,  3,  8,  9, 10, 11 };
-  const __v16qu __Q =
-    {  4,  5,  6,  7, 12, 13, 14, 15,  4,  5,  6,  7, 12, 13, 14, 15 };
-  __v4si __D = vec_perm (__C, __C, __Q);
-  __C = vec_perm (__C, __C, __P);
-  __C = vec_add (__C, __D);
-  return (__m64) ((__v2du) __C)[1];
-}
-
-extern __inline __m128i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_hadds_epi16 (__m128i __A, __m128i __B)
-{
-  __v4si __C = { 0 }, __D = { 0 };
-  __C = vec_sum4s ((__v8hi) __A, __C);
-  __D = vec_sum4s ((__v8hi) __B, __D);
-  __C = (__v4si) vec_packs (__C, __D);
-  return (__m128i) __C;
-}
-
-extern __inline __m64
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_hadds_pi16 (__m64 __A, __m64 __B)
-{
-  const __v4si __zero = { 0 };
-  __v8hi __C = (__v8hi) (__v2du) { __A, __B };
-  __v4si __D = vec_sum4s (__C, __zero);
-  __C = vec_packs (__D, __D);
-  return (__m64) ((__v2du) __C)[1];
-}
-
-extern __inline __m128i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_hsub_epi16 (__m128i __A, __m128i __B)
-{
-  const __v16qu __P =
-    {  0,  1,  4,  5,  8,  9, 12, 13, 16, 17, 20, 21, 24, 25, 28, 29 };
-  const __v16qu __Q =
-    {  2,  3,  6,  7, 10, 11, 14, 15, 18, 19, 22, 23, 26, 27, 30, 31 };
-  __v8hi __C = vec_perm ((__v8hi) __A, (__v8hi) __B, __P);
-  __v8hi __D = vec_perm ((__v8hi) __A, (__v8hi) __B, __Q);
-  return (__m128i) vec_sub (__C, __D);
-}
-
-extern __inline __m128i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_hsub_epi32 (__m128i __A, __m128i __B)
-{
-  const __v16qu __P =
-    {  0,  1,  2,  3,  8,  9, 10, 11, 16, 17, 18, 19, 24, 25, 26, 27 };
-  const __v16qu __Q =
-    {  4,  5,  6,  7, 12, 13, 14, 15, 20, 21, 22, 23, 28, 29, 30, 31 };
-  __v4si __C = vec_perm ((__v4si) __A, (__v4si) __B, __P);
-  __v4si __D = vec_perm ((__v4si) __A, (__v4si) __B, __Q);
-  return (__m128i) vec_sub (__C, __D);
-}
-
-extern __inline __m64
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_hsub_pi16 (__m64 __A, __m64 __B)
-{
-  const __v16qu __P =
-    {  0,  1,  4,  5,  8,  9, 12, 13,  0,  1,  4,  5,  8,  9, 12, 13 };
-  const __v16qu __Q =
-    {  2,  3,  6,  7, 10, 11, 14, 15,  2,  3,  6,  7, 10, 11, 14, 15 };
-  __v8hi __C = (__v8hi) (__v2du) { __A, __B };
-  __v8hi __D = vec_perm (__C, __C, __Q);
-  __C = vec_perm (__C, __C, __P);
-  __C = vec_sub (__C, __D);
-  return (__m64) ((__v2du) __C)[1];
-}
-
-extern __inline __m64
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_hsub_pi32 (__m64 __A, __m64 __B)
-{
-  const __v16qu __P =
-    {  0,  1,  2,  3,  8,  9, 10, 11,  0,  1,  2,  3,  8,  9, 10, 11 };
-  const __v16qu __Q =
-    {  4,  5,  6,  7, 12, 13, 14, 15,  4,  5,  6,  7, 12, 13, 14, 15 };
-  __v4si __C = (__v4si) (__v2du) { __A, __B };
-  __v4si __D = vec_perm (__C, __C, __Q);
-  __C = vec_perm (__C, __C, __P);
-  __C = vec_sub (__C, __D);
-  return (__m64) ((__v2du) __C)[1];
-}
-
-extern __inline __m128i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_hsubs_epi16 (__m128i __A, __m128i __B)
-{
-  const __v16qu __P =
-    {  0,  1,  4,  5,  8,  9, 12, 13, 16, 17, 20, 21, 24, 25, 28, 29 };
-  const __v16qu __Q =
-    {  2,  3,  6,  7, 10, 11, 14, 15, 18, 19, 22, 23, 26, 27, 30, 31 };
-  __v8hi __C = vec_perm ((__v8hi) __A, (__v8hi) __B, __P);
-  __v8hi __D = vec_perm ((__v8hi) __A, (__v8hi) __B, __Q);
-  return (__m128i) vec_subs (__C, __D);
-}
-
-extern __inline __m64
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_hsubs_pi16 (__m64 __A, __m64 __B)
-{
-  const __v16qu __P =
-    {  0,  1,  4,  5,  8,  9, 12, 13,  0,  1,  4,  5,  8,  9, 12, 13 };
-  const __v16qu __Q =
-    {  2,  3,  6,  7, 10, 11, 14, 15,  2,  3,  6,  7, 10, 11, 14, 15 };
-  __v8hi __C = (__v8hi) (__v2du) { __A, __B };
-  __v8hi __D = vec_perm (__C, __C, __P);
-  __v8hi __E = vec_perm (__C, __C, __Q);
-  __C = vec_subs (__D, __E);
-  return (__m64) ((__v2du) __C)[1];
-}
-
-extern __inline __m128i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_shuffle_epi8 (__m128i __A, __m128i __B)
-{
-  const __v16qi __zero = { 0 };
-  __vector __bool char __select = vec_cmplt ((__v16qi) __B, __zero);
-  __v16qi __C = vec_perm ((__v16qi) __A, (__v16qi) __A, (__v16qu) __B);
-  return (__m128i) vec_sel (__C, __zero, __select);
-}
-
-extern __inline __m64
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_shuffle_pi8 (__m64 __A, __m64 __B)
-{
-  const __v16qi __zero = { 0 };
-  __v16qi __C = (__v16qi) (__v2du) { __A, __A };
-  __v16qi __D = (__v16qi) (__v2du) { __B, __B };
-  __vector __bool char __select = vec_cmplt ((__v16qi) __D, __zero);
-  __C = vec_perm ((__v16qi) __C, (__v16qi) __C, (__v16qu) __D);
-  __C = vec_sel (__C, __zero, __select);
-  return (__m64) ((__v2du) (__C))[0];
-}
-
-extern __inline __m128i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sign_epi8 (__m128i __A, __m128i __B)
-{
-  const __v16qi __zero = { 0 };
-  __v16qi __selectneg = (__v16qi) vec_cmplt ((__v16qi) __B, __zero);
-  __v16qi __selectpos =
-    (__v16qi) vec_neg ((__v16qi) vec_cmpgt ((__v16qi) __B, __zero));
-  __v16qi __conv = vec_add (__selectneg, __selectpos);
-  return (__m128i) vec_mul ((__v16qi) __A, (__v16qi) __conv);
-}
-
-extern __inline __m128i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sign_epi16 (__m128i __A, __m128i __B)
-{
-  const __v8hi __zero = { 0 };
-  __v8hi __selectneg = (__v8hi) vec_cmplt ((__v8hi) __B, __zero);
-  __v8hi __selectpos =
-    (__v8hi) vec_neg ((__v8hi) vec_cmpgt ((__v8hi) __B, __zero));
-  __v8hi __conv = vec_add (__selectneg, __selectpos);
-  return (__m128i) vec_mul ((__v8hi) __A, (__v8hi) __conv);
-}
-
-extern __inline __m128i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sign_epi32 (__m128i __A, __m128i __B)
-{
-  const __v4si __zero = { 0 };
-  __v4si __selectneg = (__v4si) vec_cmplt ((__v4si) __B, __zero);
-  __v4si __selectpos =
-    (__v4si) vec_neg ((__v4si) vec_cmpgt ((__v4si) __B, __zero));
-  __v4si __conv = vec_add (__selectneg, __selectpos);
-  return (__m128i) vec_mul ((__v4si) __A, (__v4si) __conv);
-}
-
-extern __inline __m64
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sign_pi8 (__m64 __A, __m64 __B)
-{
-  const __v16qi __zero = { 0 };
-  __v16qi __C = (__v16qi) (__v2du) { __A, __A };
-  __v16qi __D = (__v16qi) (__v2du) { __B, __B };
-  __C = (__v16qi) _mm_sign_epi8 ((__m128i) __C, (__m128i) __D);
-  return (__m64) ((__v2du) (__C))[0];
-}
-
-extern __inline __m64
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sign_pi16 (__m64 __A, __m64 __B)
-{
-  const __v8hi __zero = { 0 };
-  __v8hi __C = (__v8hi) (__v2du) { __A, __A };
-  __v8hi __D = (__v8hi) (__v2du) { __B, __B };
-  __C = (__v8hi) _mm_sign_epi16 ((__m128i) __C, (__m128i) __D);
-  return (__m64) ((__v2du) (__C))[0];
-}
-
-extern __inline __m64
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sign_pi32 (__m64 __A, __m64 __B)
-{
-  const __v4si __zero = { 0 };
-  __v4si __C = (__v4si) (__v2du) { __A, __A };
-  __v4si __D = (__v4si) (__v2du) { __B, __B };
-  __C = (__v4si) _mm_sign_epi32 ((__m128i) __C, (__m128i) __D);
-  return (__m64) ((__v2du) (__C))[0];
-}
-
-extern __inline __m128i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_maddubs_epi16 (__m128i __A, __m128i __B)
-{
-  __v8hi __unsigned = vec_splats ((signed short) 0x00ff);
-  __v8hi __C = vec_and (vec_unpackh ((__v16qi) __A), __unsigned);
-  __v8hi __D = vec_and (vec_unpackl ((__v16qi) __A), __unsigned);
-  __v8hi __E = vec_unpackh ((__v16qi) __B);
-  __v8hi __F = vec_unpackl ((__v16qi) __B);
-  __C = vec_mul (__C, __E);
-  __D = vec_mul (__D, __F);
-  const __v16qu __odds  =
-    {  0,  1,  4,  5,  8,  9, 12, 13, 16, 17, 20, 21, 24, 25, 28, 29 };
-  const __v16qu __evens =
-    {  2,  3,  6,  7, 10, 11, 14, 15, 18, 19, 22, 23, 26, 27, 30, 31 };
-  __E = vec_perm (__C, __D, __odds);
-  __F = vec_perm (__C, __D, __evens);
-  return (__m128i) vec_adds (__E, __F);
-}
-
-extern __inline __m64
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_maddubs_pi16 (__m64 __A, __m64 __B)
-{
-  __v8hi __C = (__v8hi) (__v2du) { __A, __A };
-  __C = vec_unpackl ((__v16qi) __C);
-  const __v8hi __unsigned = vec_splats ((signed short) 0x00ff);
-  __C = vec_and (__C, __unsigned);
-  __v8hi __D = (__v8hi) (__v2du) { __B, __B };
-  __D = vec_unpackl ((__v16qi) __D);
-  __D = vec_mul (__C, __D);
-  const __v16qu __odds  =
-    {  0,  1,  4,  5,  8,  9, 12, 13, 16, 17, 20, 21, 24, 25, 28, 29 };
-  const __v16qu __evens =
-    {  2,  3,  6,  7, 10, 11, 14, 15, 18, 19, 22, 23, 26, 27, 30, 31 };
-  __C = vec_perm (__D, __D, __odds);
-  __D = vec_perm (__D, __D, __evens);
-  __C = vec_adds (__C, __D);
-  return (__m64) ((__v2du) (__C))[0];
-}
-
-extern __inline __m128i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_mulhrs_epi16 (__m128i __A, __m128i __B)
-{
-  __v4si __C = vec_unpackh ((__v8hi) __A);
-  __v4si __D = vec_unpackh ((__v8hi) __B);
-  __C = vec_mul (__C, __D);
-  __D = vec_unpackl ((__v8hi) __A);
-  __v4si __E = vec_unpackl ((__v8hi) __B);
-  __D = vec_mul (__D, __E);
-  const __v4su __shift = vec_splats ((unsigned int) 14);
-  __C = vec_sr (__C, __shift);
-  __D = vec_sr (__D, __shift);
-  const __v4si __ones = vec_splats ((signed int) 1);
-  __C = vec_add (__C, __ones);
-  __C = vec_sr (__C, (__v4su) __ones);
-  __D = vec_add (__D, __ones);
-  __D = vec_sr (__D, (__v4su) __ones);
-  return (__m128i) vec_pack (__C, __D);
-}
-
-extern __inline __m64
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_mulhrs_pi16 (__m64 __A, __m64 __B)
-{
-  __v4si __C = (__v4si) (__v2du) { __A, __A };
-  __C = vec_unpackh ((__v8hi) __C);
-  __v4si __D = (__v4si) (__v2du) { __B, __B };
-  __D = vec_unpackh ((__v8hi) __D);
-  __C = vec_mul (__C, __D);
-  const __v4su __shift = vec_splats ((unsigned int) 14);
-  __C = vec_sr (__C, __shift);
-  const __v4si __ones = vec_splats ((signed int) 1);
-  __C = vec_add (__C, __ones);
-  __C = vec_sr (__C, (__v4su) __ones);
-  __v8hi __E = vec_pack (__C, __D);
-  return (__m64) ((__v2du) (__E))[0];
-}
-
-#else
-#include_next <tmmintrin.h>
-#endif /* defined(__linux__) && defined(__ppc64__) */
-
-#endif /* TMMINTRIN_H_ */
diff --git a/linux-x86/lib64/clang/14.0.1/include/ppc_wrappers/xmmintrin.h b/linux-x86/lib64/clang/14.0.1/include/ppc_wrappers/xmmintrin.h
deleted file mode 100644
index 0e45b96..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/ppc_wrappers/xmmintrin.h
+++ /dev/null
@@ -1,1843 +0,0 @@
-/*===---- xmmintrin.h - Implementation of SSE intrinsics on PowerPC --------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-
-/* Implemented from the specification included in the Intel C++ Compiler
-   User Guide and Reference, version 9.0.  */
-
-#ifndef NO_WARN_X86_INTRINSICS
-/* This header file is to help porting code using Intel intrinsics
-   explicitly from x86_64 to powerpc64/powerpc64le.
-
-   Since X86 SSE intrinsics mainly handles __m128 type, PowerPC
-   VMX/VSX ISA is a good match for vector float SIMD operations.
-   However scalar float operations in vector (XMM) registers require
-   the POWER8 VSX ISA (2.07) level. There are differences for data
-   format and placement of float scalars in the vector register, which
-   require extra steps to match SSE scalar float semantics on POWER.
-
-   It should be noted that there's much difference between X86_64's
-   MXSCR and PowerISA's FPSCR/VSCR registers. It's recommended to use
-   portable <fenv.h> instead of access MXSCR directly.
-
-   Most SSE scalar float intrinsic operations can be performed more
-   efficiently as C language float scalar operations or optimized to
-   use vector SIMD operations. We recommend this for new applications. */
-#error "Please read comment above. Use -DNO_WARN_X86_INTRINSICS to disable this error."
-#endif
-
-#ifndef _XMMINTRIN_H_INCLUDED
-#define _XMMINTRIN_H_INCLUDED
-
-#if defined(__linux__) && defined(__ppc64__)
-
-/* Define four value permute mask */
-#define _MM_SHUFFLE(w,x,y,z) (((w) << 6) | ((x) << 4) | ((y) << 2) | (z))
-
-#include <altivec.h>
-
-/* Avoid collisions between altivec.h and strict adherence to C++ and
-   C11 standards.  This should eventually be done inside altivec.h itself,
-   but only after testing a full distro build.  */
-#if defined(__STRICT_ANSI__) && (defined(__cplusplus) || \
-				 (defined(__STDC_VERSION__) &&	\
-				  __STDC_VERSION__ >= 201112L))
-#undef vector
-#undef pixel
-#undef bool
-#endif
-
-/* We need type definitions from the MMX header file.  */
-#include <mmintrin.h>
-
-/* Get _mm_malloc () and _mm_free ().  */
-#if __STDC_HOSTED__
-#include <mm_malloc.h>
-#endif
-
-/* The Intel API is flexible enough that we must allow aliasing with other
-   vector types, and their scalar components.  */
-typedef vector float __m128 __attribute__((__may_alias__));
-
-/* Unaligned version of the same type.  */
-typedef vector float __m128_u __attribute__((__may_alias__, __aligned__(1)));
-
-/* Internal data types for implementing the intrinsics.  */
-typedef vector float __v4sf;
-
-/* Create an undefined vector.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_undefined_ps (void)
-{
-  __m128 __Y = __Y;
-  return __Y;
-}
-
-/* Create a vector of zeros.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_setzero_ps (void)
-{
-  return __extension__ (__m128){ 0.0f, 0.0f, 0.0f, 0.0f };
-}
-
-/* Load four SPFP values from P.  The address must be 16-byte aligned.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_load_ps (float const *__P)
-{
-  return ((__m128)vec_ld(0, (__v4sf*)__P));
-}
-
-/* Load four SPFP values from P.  The address need not be 16-byte aligned.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_loadu_ps (float const *__P)
-{
-  return (vec_vsx_ld(0, __P));
-}
-
-/* Load four SPFP values in reverse order.  The address must be aligned.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_loadr_ps (float const *__P)
-{
-  __v4sf   __tmp;
-  __m128 result;
-  static const __vector unsigned char permute_vector =
-    { 0x1C, 0x1D, 0x1E, 0x1F, 0x18, 0x19, 0x1A, 0x1B, 0x14, 0x15, 0x16,
-	0x17, 0x10, 0x11, 0x12, 0x13 };
-
-  __tmp = vec_ld (0, (__v4sf *) __P);
-  result = (__m128) vec_perm (__tmp, __tmp, permute_vector);
-  return result;
-}
-
-/* Create a vector with all four elements equal to F.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_set1_ps (float __F)
-{
-  return __extension__ (__m128)(__v4sf){ __F, __F, __F, __F };
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_set_ps1 (float __F)
-{
-  return _mm_set1_ps (__F);
-}
-
-/* Create the vector [Z Y X W].  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_set_ps (const float __Z, const float __Y, const float __X, const float __W)
-{
-  return __extension__ (__m128)(__v4sf){ __W, __X, __Y, __Z };
-}
-
-/* Create the vector [W X Y Z].  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_setr_ps (float __Z, float __Y, float __X, float __W)
-{
-  return __extension__ (__m128)(__v4sf){ __Z, __Y, __X, __W };
-}
-
-/* Store four SPFP values.  The address must be 16-byte aligned.  */
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_store_ps (float *__P, __m128 __A)
-{
-  vec_st((__v4sf)__A, 0, (__v4sf*)__P);
-}
-
-/* Store four SPFP values.  The address need not be 16-byte aligned.  */
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_storeu_ps (float *__P, __m128 __A)
-{
-  *(__m128_u *)__P = __A;
-}
-
-/* Store four SPFP values in reverse order.  The address must be aligned.  */
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_storer_ps (float *__P, __m128 __A)
-{
-  __v4sf   __tmp;
-  static const __vector unsigned char permute_vector =
-    { 0x1C, 0x1D, 0x1E, 0x1F, 0x18, 0x19, 0x1A, 0x1B, 0x14, 0x15, 0x16,
-	0x17, 0x10, 0x11, 0x12, 0x13 };
-
-  __tmp = (__m128) vec_perm (__A, __A, permute_vector);
-
-  _mm_store_ps (__P, __tmp);
-}
-
-/* Store the lower SPFP value across four words.  */
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_store1_ps (float *__P, __m128 __A)
-{
-  __v4sf __va = vec_splat((__v4sf)__A, 0);
-  _mm_store_ps (__P, __va);
-}
-
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_store_ps1 (float *__P, __m128 __A)
-{
-  _mm_store1_ps (__P, __A);
-}
-
-/* Create a vector with element 0 as F and the rest zero.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_set_ss (float __F)
-{
-  return __extension__ (__m128)(__v4sf){ __F, 0.0f, 0.0f, 0.0f };
-}
-
-/* Sets the low SPFP value of A from the low value of B.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_move_ss (__m128 __A, __m128 __B)
-{
-  static const __vector unsigned int mask = {0xffffffff, 0, 0, 0};
-
-  return (vec_sel ((__v4sf)__A, (__v4sf)__B, mask));
-}
-
-/* Create a vector with element 0 as *P and the rest zero.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_load_ss (float const *__P)
-{
-  return _mm_set_ss (*__P);
-}
-
-/* Stores the lower SPFP value.  */
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_store_ss (float *__P, __m128 __A)
-{
-  *__P = ((__v4sf)__A)[0];
-}
-
-/* Perform the respective operation on the lower SPFP (single-precision
-   floating-point) values of A and B; the upper three SPFP values are
-   passed through from A.  */
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_add_ss (__m128 __A, __m128 __B)
-{
-#ifdef _ARCH_PWR7
-  __m128 a, b, c;
-  static const __vector unsigned int mask = {0xffffffff, 0, 0, 0};
-  /* PowerISA VSX does not allow partial (for just lower double)
-     results. So to insure we don't generate spurious exceptions
-     (from the upper double values) we splat the lower double
-     before we to the operation.  */
-  a = vec_splat (__A, 0);
-  b = vec_splat (__B, 0);
-  c = a + b;
-  /* Then we merge the lower float result with the original upper
-     float elements from __A.  */
-  return (vec_sel (__A, c, mask));
-#else
-  __A[0] = __A[0] + __B[0];
-  return (__A);
-#endif
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sub_ss (__m128 __A, __m128 __B)
-{
-#ifdef _ARCH_PWR7
-  __m128 a, b, c;
-  static const __vector unsigned int mask = {0xffffffff, 0, 0, 0};
-  /* PowerISA VSX does not allow partial (for just lower double)
-     results. So to insure we don't generate spurious exceptions
-     (from the upper double values) we splat the lower double
-     before we to the operation.  */
-  a = vec_splat (__A, 0);
-  b = vec_splat (__B, 0);
-  c = a - b;
-  /* Then we merge the lower float result with the original upper
-     float elements from __A.  */
-  return (vec_sel (__A, c, mask));
-#else
-  __A[0] = __A[0] - __B[0];
-  return (__A);
-#endif
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_mul_ss (__m128 __A, __m128 __B)
-{
-#ifdef _ARCH_PWR7
-  __m128 a, b, c;
-  static const __vector unsigned int mask = {0xffffffff, 0, 0, 0};
-  /* PowerISA VSX does not allow partial (for just lower double)
-     results. So to insure we don't generate spurious exceptions
-     (from the upper double values) we splat the lower double
-     before we to the operation.  */
-  a = vec_splat (__A, 0);
-  b = vec_splat (__B, 0);
-  c = a * b;
-  /* Then we merge the lower float result with the original upper
-     float elements from __A.  */
-  return (vec_sel (__A, c, mask));
-#else
-  __A[0] = __A[0] * __B[0];
-  return (__A);
-#endif
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_div_ss (__m128 __A, __m128 __B)
-{
-#ifdef _ARCH_PWR7
-  __m128 a, b, c;
-  static const __vector unsigned int mask = {0xffffffff, 0, 0, 0};
-  /* PowerISA VSX does not allow partial (for just lower double)
-     results. So to insure we don't generate spurious exceptions
-     (from the upper double values) we splat the lower double
-     before we to the operation.  */
-  a = vec_splat (__A, 0);
-  b = vec_splat (__B, 0);
-  c = a / b;
-  /* Then we merge the lower float result with the original upper
-     float elements from __A.  */
-  return (vec_sel (__A, c, mask));
-#else
-  __A[0] = __A[0] / __B[0];
-  return (__A);
-#endif
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sqrt_ss (__m128 __A)
-{
-  __m128 a, c;
-  static const __vector unsigned int mask = {0xffffffff, 0, 0, 0};
-  /* PowerISA VSX does not allow partial (for just lower double)
-   * results. So to insure we don't generate spurious exceptions
-   * (from the upper double values) we splat the lower double
-   * before we to the operation. */
-  a = vec_splat (__A, 0);
-  c = vec_sqrt (a);
-  /* Then we merge the lower float result with the original upper
-   * float elements from __A.  */
-  return (vec_sel (__A, c, mask));
-}
-
-/* Perform the respective operation on the four SPFP values in A and B.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_add_ps (__m128 __A, __m128 __B)
-{
-  return (__m128) ((__v4sf)__A + (__v4sf)__B);
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sub_ps (__m128 __A, __m128 __B)
-{
-  return (__m128) ((__v4sf)__A - (__v4sf)__B);
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_mul_ps (__m128 __A, __m128 __B)
-{
-  return (__m128) ((__v4sf)__A * (__v4sf)__B);
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_div_ps (__m128 __A, __m128 __B)
-{
-  return (__m128) ((__v4sf)__A / (__v4sf)__B);
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sqrt_ps (__m128 __A)
-{
-  return (vec_sqrt ((__v4sf)__A));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_rcp_ps (__m128 __A)
-{
-  return (vec_re ((__v4sf)__A));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_rsqrt_ps (__m128 __A)
-{
-  return (vec_rsqrte (__A));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_rcp_ss (__m128 __A)
-{
-  __m128 a, c;
-  static const __vector unsigned int mask = {0xffffffff, 0, 0, 0};
-  /* PowerISA VSX does not allow partial (for just lower double)
-   * results. So to insure we don't generate spurious exceptions
-   * (from the upper double values) we splat the lower double
-   * before we to the operation. */
-  a = vec_splat (__A, 0);
-  c = _mm_rcp_ps (a);
-  /* Then we merge the lower float result with the original upper
-   * float elements from __A.  */
-  return (vec_sel (__A, c, mask));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_rsqrt_ss (__m128 __A)
-{
-  __m128 a, c;
-  static const __vector unsigned int mask = {0xffffffff, 0, 0, 0};
-  /* PowerISA VSX does not allow partial (for just lower double)
-   * results. So to insure we don't generate spurious exceptions
-   * (from the upper double values) we splat the lower double
-   * before we to the operation. */
-  a = vec_splat (__A, 0);
-  c = vec_rsqrte (a);
-  /* Then we merge the lower float result with the original upper
-   * float elements from __A.  */
-  return (vec_sel (__A, c, mask));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_min_ss (__m128 __A, __m128 __B)
-{
-  __v4sf a, b, c;
-  static const __vector unsigned int mask = {0xffffffff, 0, 0, 0};
-  /* PowerISA VSX does not allow partial (for just lower float)
-   * results. So to insure we don't generate spurious exceptions
-   * (from the upper float values) we splat the lower float
-   * before we to the operation. */
-  a = vec_splat ((__v4sf)__A, 0);
-  b = vec_splat ((__v4sf)__B, 0);
-  c = vec_min (a, b);
-  /* Then we merge the lower float result with the original upper
-   * float elements from __A.  */
-  return (vec_sel ((__v4sf)__A, c, mask));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_max_ss (__m128 __A, __m128 __B)
-{
-  __v4sf a, b, c;
-  static const __vector unsigned int mask = {0xffffffff, 0, 0, 0};
-  /* PowerISA VSX does not allow partial (for just lower float)
-   * results. So to insure we don't generate spurious exceptions
-   * (from the upper float values) we splat the lower float
-   * before we to the operation. */
-  a = vec_splat (__A, 0);
-  b = vec_splat (__B, 0);
-  c = vec_max (a, b);
-  /* Then we merge the lower float result with the original upper
-   * float elements from __A.  */
-  return (vec_sel ((__v4sf)__A, c, mask));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_min_ps (__m128 __A, __m128 __B)
-{
-  __vector __bool int m = vec_cmpgt ((__v4sf) __B, (__v4sf) __A);
-  return vec_sel (__B, __A, m);
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_max_ps (__m128 __A, __m128 __B)
-{
-  __vector __bool int m = vec_cmpgt ((__v4sf) __A, (__v4sf) __B);
-  return vec_sel (__B, __A, m);
-}
-
-/* Perform logical bit-wise operations on 128-bit values.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_and_ps (__m128 __A, __m128 __B)
-{
-  return ((__m128)vec_and ((__v4sf)__A, (__v4sf)__B));
-//  return __builtin_ia32_andps (__A, __B);
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_andnot_ps (__m128 __A, __m128 __B)
-{
-  return ((__m128)vec_andc ((__v4sf)__B, (__v4sf)__A));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_or_ps (__m128 __A, __m128 __B)
-{
-  return ((__m128)vec_or ((__v4sf)__A, (__v4sf)__B));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_xor_ps (__m128 __A, __m128 __B)
-{
-  return ((__m128)vec_xor ((__v4sf)__A, (__v4sf)__B));
-}
-
-/* Perform a comparison on the four SPFP values of A and B.  For each
-   element, if the comparison is true, place a mask of all ones in the
-   result, otherwise a mask of zeros.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpeq_ps (__m128 __A, __m128 __B)
-{
-  return ((__m128)vec_cmpeq ((__v4sf)__A,(__v4sf) __B));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmplt_ps (__m128 __A, __m128 __B)
-{
-  return ((__m128)vec_cmplt ((__v4sf)__A, (__v4sf)__B));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmple_ps (__m128 __A, __m128 __B)
-{
-  return ((__m128)vec_cmple ((__v4sf)__A, (__v4sf)__B));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpgt_ps (__m128 __A, __m128 __B)
-{
-  return ((__m128)vec_cmpgt ((__v4sf)__A, (__v4sf)__B));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpge_ps (__m128 __A, __m128 __B)
-{
-  return ((__m128)vec_cmpge ((__v4sf)__A, (__v4sf)__B));
-}
-
-extern __inline  __m128  __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpneq_ps (__m128  __A, __m128  __B)
-{
-  __v4sf temp = (__v4sf ) vec_cmpeq ((__v4sf) __A, (__v4sf)__B);
-  return ((__m128)vec_nor (temp, temp));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpnlt_ps (__m128 __A, __m128 __B)
-{
-  return ((__m128)vec_cmpge ((__v4sf)__A, (__v4sf)__B));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpnle_ps (__m128 __A, __m128 __B)
-{
-  return ((__m128)vec_cmpgt ((__v4sf)__A, (__v4sf)__B));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpngt_ps (__m128 __A, __m128 __B)
-{
-  return ((__m128)vec_cmple ((__v4sf)__A, (__v4sf)__B));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpnge_ps (__m128 __A, __m128 __B)
-{
-  return ((__m128)vec_cmplt ((__v4sf)__A, (__v4sf)__B));
-}
-
-extern __inline  __m128  __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpord_ps (__m128  __A, __m128  __B)
-{
-  __vector unsigned int a, b;
-  __vector unsigned int c, d;
-  static const __vector unsigned int float_exp_mask =
-    { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 };
-
-  a = (__vector unsigned int) vec_abs ((__v4sf)__A);
-  b = (__vector unsigned int) vec_abs ((__v4sf)__B);
-  c = (__vector unsigned int) vec_cmpgt (float_exp_mask, a);
-  d = (__vector unsigned int) vec_cmpgt (float_exp_mask, b);
-  return ((__m128 ) vec_and (c, d));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpunord_ps (__m128 __A, __m128 __B)
-{
-  __vector unsigned int a, b;
-  __vector unsigned int c, d;
-  static const __vector unsigned int float_exp_mask =
-    { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 };
-
-  a = (__vector unsigned int) vec_abs ((__v4sf)__A);
-  b = (__vector unsigned int) vec_abs ((__v4sf)__B);
-  c = (__vector unsigned int) vec_cmpgt (a, float_exp_mask);
-  d = (__vector unsigned int) vec_cmpgt (b, float_exp_mask);
-  return ((__m128 ) vec_or (c, d));
-}
-
-/* Perform a comparison on the lower SPFP values of A and B.  If the
-   comparison is true, place a mask of all ones in the result, otherwise a
-   mask of zeros.  The upper three SPFP values are passed through from A.  */
-extern __inline  __m128  __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpeq_ss (__m128  __A, __m128  __B)
-{
-  static const __vector unsigned int mask =
-    { 0xffffffff, 0, 0, 0 };
-  __v4sf a, b, c;
-  /* PowerISA VMX does not allow partial (for just element 0)
-   * results. So to insure we don't generate spurious exceptions
-   * (from the upper elements) we splat the lower float
-   * before we to the operation. */
-  a = vec_splat ((__v4sf) __A, 0);
-  b = vec_splat ((__v4sf) __B, 0);
-  c = (__v4sf) vec_cmpeq(a, b);
-  /* Then we merge the lower float result with the original upper
-   * float elements from __A.  */
-  return ((__m128)vec_sel ((__v4sf)__A, c, mask));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmplt_ss (__m128 __A, __m128 __B)
-{
-  static const __vector unsigned int mask =
-    { 0xffffffff, 0, 0, 0 };
-  __v4sf a, b, c;
-  /* PowerISA VMX does not allow partial (for just element 0)
-   * results. So to insure we don't generate spurious exceptions
-   * (from the upper elements) we splat the lower float
-   * before we to the operation. */
-  a = vec_splat ((__v4sf) __A, 0);
-  b = vec_splat ((__v4sf) __B, 0);
-  c = (__v4sf) vec_cmplt(a, b);
-  /* Then we merge the lower float result with the original upper
-   * float elements from __A.  */
-  return ((__m128)vec_sel ((__v4sf)__A, c, mask));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmple_ss (__m128 __A, __m128 __B)
-{
-  static const __vector unsigned int mask =
-    { 0xffffffff, 0, 0, 0 };
-  __v4sf a, b, c;
-  /* PowerISA VMX does not allow partial (for just element 0)
-   * results. So to insure we don't generate spurious exceptions
-   * (from the upper elements) we splat the lower float
-   * before we to the operation. */
-  a = vec_splat ((__v4sf) __A, 0);
-  b = vec_splat ((__v4sf) __B, 0);
-  c = (__v4sf) vec_cmple(a, b);
-  /* Then we merge the lower float result with the original upper
-   * float elements from __A.  */
-  return ((__m128)vec_sel ((__v4sf)__A, c, mask));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpgt_ss (__m128 __A, __m128 __B)
-{
-  static const __vector unsigned int mask =
-    { 0xffffffff, 0, 0, 0 };
-  __v4sf a, b, c;
-  /* PowerISA VMX does not allow partial (for just element 0)
-   * results. So to insure we don't generate spurious exceptions
-   * (from the upper elements) we splat the lower float
-   * before we to the operation. */
-  a = vec_splat ((__v4sf) __A, 0);
-  b = vec_splat ((__v4sf) __B, 0);
-  c = (__v4sf) vec_cmpgt(a, b);
-  /* Then we merge the lower float result with the original upper
-   * float elements from __A.  */
-  return ((__m128)vec_sel ((__v4sf)__A, c, mask));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpge_ss (__m128 __A, __m128 __B)
-{
-  static const __vector unsigned int mask =
-    { 0xffffffff, 0, 0, 0 };
-  __v4sf a, b, c;
-  /* PowerISA VMX does not allow partial (for just element 0)
-   * results. So to insure we don't generate spurious exceptions
-   * (from the upper elements) we splat the lower float
-   * before we to the operation. */
-  a = vec_splat ((__v4sf) __A, 0);
-  b = vec_splat ((__v4sf) __B, 0);
-  c = (__v4sf) vec_cmpge(a, b);
-  /* Then we merge the lower float result with the original upper
-   * float elements from __A.  */
-  return ((__m128)vec_sel ((__v4sf)__A, c, mask));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpneq_ss (__m128 __A, __m128 __B)
-{
-  static const __vector unsigned int mask =
-    { 0xffffffff, 0, 0, 0 };
-  __v4sf a, b, c;
-  /* PowerISA VMX does not allow partial (for just element 0)
-   * results. So to insure we don't generate spurious exceptions
-   * (from the upper elements) we splat the lower float
-   * before we to the operation. */
-  a = vec_splat ((__v4sf) __A, 0);
-  b = vec_splat ((__v4sf) __B, 0);
-  c = (__v4sf) vec_cmpeq(a, b);
-  c = vec_nor (c, c);
-  /* Then we merge the lower float result with the original upper
-   * float elements from __A.  */
-  return ((__m128)vec_sel ((__v4sf)__A, c, mask));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpnlt_ss (__m128 __A, __m128 __B)
-{
-  static const __vector unsigned int mask =
-    { 0xffffffff, 0, 0, 0 };
-  __v4sf a, b, c;
-  /* PowerISA VMX does not allow partial (for just element 0)
-   * results. So to insure we don't generate spurious exceptions
-   * (from the upper elements) we splat the lower float
-   * before we to the operation. */
-  a = vec_splat ((__v4sf) __A, 0);
-  b = vec_splat ((__v4sf) __B, 0);
-  c = (__v4sf) vec_cmpge(a, b);
-  /* Then we merge the lower float result with the original upper
-   * float elements from __A.  */
-  return ((__m128)vec_sel ((__v4sf)__A, c, mask));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpnle_ss (__m128 __A, __m128 __B)
-{
-  static const __vector unsigned int mask =
-    { 0xffffffff, 0, 0, 0 };
-  __v4sf a, b, c;
-  /* PowerISA VMX does not allow partial (for just element 0)
-   * results. So to insure we don't generate spurious exceptions
-   * (from the upper elements) we splat the lower float
-   * before we to the operation. */
-  a = vec_splat ((__v4sf) __A, 0);
-  b = vec_splat ((__v4sf) __B, 0);
-  c = (__v4sf) vec_cmpgt(a, b);
-  /* Then we merge the lower float result with the original upper
-   * float elements from __A.  */
-  return ((__m128)vec_sel ((__v4sf)__A, c, mask));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpngt_ss (__m128 __A, __m128 __B)
-{
-  static const __vector unsigned int mask =
-    { 0xffffffff, 0, 0, 0 };
-  __v4sf a, b, c;
-  /* PowerISA VMX does not allow partial (for just element 0)
-   * results. So to insure we don't generate spurious exceptions
-   * (from the upper elements) we splat the lower float
-   * before we to the operation. */
-  a = vec_splat ((__v4sf) __A, 0);
-  b = vec_splat ((__v4sf) __B, 0);
-  c = (__v4sf) vec_cmple(a, b);
-  /* Then we merge the lower float result with the original upper
-   * float elements from __A.  */
-  return ((__m128)vec_sel ((__v4sf)__A, c, mask));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpnge_ss (__m128 __A, __m128 __B)
-{
-  static const __vector unsigned int mask =
-    { 0xffffffff, 0, 0, 0 };
-  __v4sf a, b, c;
-  /* PowerISA VMX does not allow partial (for just element 0)
-   * results. So to insure we don't generate spurious exceptions
-   * (from the upper elements) we splat the lower float
-   * before we do the operation. */
-  a = vec_splat ((__v4sf) __A, 0);
-  b = vec_splat ((__v4sf) __B, 0);
-  c = (__v4sf) vec_cmplt(a, b);
-  /* Then we merge the lower float result with the original upper
-   * float elements from __A.  */
-  return ((__m128)vec_sel ((__v4sf)__A, c, mask));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpord_ss (__m128 __A, __m128 __B)
-{
-  __vector unsigned int a, b;
-  __vector unsigned int c, d;
-  static const __vector unsigned int float_exp_mask =
-    { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 };
-  static const __vector unsigned int mask =
-    { 0xffffffff, 0, 0, 0 };
-
-  a = (__vector unsigned int) vec_abs ((__v4sf)__A);
-  b = (__vector unsigned int) vec_abs ((__v4sf)__B);
-  c = (__vector unsigned int) vec_cmpgt (float_exp_mask, a);
-  d = (__vector unsigned int) vec_cmpgt (float_exp_mask, b);
-  c = vec_and (c, d);
-  /* Then we merge the lower float result with the original upper
-   * float elements from __A.  */
-  return ((__m128)vec_sel ((__v4sf)__A, (__v4sf)c, mask));
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cmpunord_ss (__m128 __A, __m128 __B)
-{
-  __vector unsigned int a, b;
-  __vector unsigned int c, d;
-  static const __vector unsigned int float_exp_mask =
-    { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 };
-  static const __vector unsigned int mask =
-    { 0xffffffff, 0, 0, 0 };
-
-  a = (__vector unsigned int) vec_abs ((__v4sf)__A);
-  b = (__vector unsigned int) vec_abs ((__v4sf)__B);
-  c = (__vector unsigned int) vec_cmpgt (a, float_exp_mask);
-  d = (__vector unsigned int) vec_cmpgt (b, float_exp_mask);
-  c = vec_or (c, d);
-  /* Then we merge the lower float result with the original upper
-   * float elements from __A.  */
-  return ((__m128)vec_sel ((__v4sf)__A, (__v4sf)c, mask));
-}
-
-/* Compare the lower SPFP values of A and B and return 1 if true
-   and 0 if false.  */
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_comieq_ss (__m128 __A, __m128 __B)
-{
-  return (__A[0] == __B[0]);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_comilt_ss (__m128 __A, __m128 __B)
-{
-  return (__A[0] < __B[0]);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_comile_ss (__m128 __A, __m128 __B)
-{
-  return (__A[0] <= __B[0]);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_comigt_ss (__m128 __A, __m128 __B)
-{
-  return (__A[0] > __B[0]);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_comige_ss (__m128 __A, __m128 __B)
-{
-  return (__A[0] >= __B[0]);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_comineq_ss (__m128 __A, __m128 __B)
-{
-  return (__A[0] != __B[0]);
-}
-
-/* FIXME
- * The __mm_ucomi??_ss implementations below are exactly the same as
- * __mm_comi??_ss because GCC for PowerPC only generates unordered
- * compares (scalar and vector).
- * Technically __mm_comieq_ss et al should be using the ordered
- * compare and signal for QNaNs.
- * The __mm_ucomieq_sd et all should be OK, as is.
- */
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_ucomieq_ss (__m128 __A, __m128 __B)
-{
-  return (__A[0] == __B[0]);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_ucomilt_ss (__m128 __A, __m128 __B)
-{
-  return (__A[0] < __B[0]);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_ucomile_ss (__m128 __A, __m128 __B)
-{
-  return (__A[0] <= __B[0]);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_ucomigt_ss (__m128 __A, __m128 __B)
-{
-  return (__A[0] > __B[0]);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_ucomige_ss (__m128 __A, __m128 __B)
-{
-  return (__A[0] >= __B[0]);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_ucomineq_ss (__m128 __A, __m128 __B)
-{
-  return (__A[0] != __B[0]);
-}
-
-extern __inline float __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtss_f32 (__m128 __A)
-{
-  return ((__v4sf)__A)[0];
-}
-
-/* Convert the lower SPFP value to a 32-bit integer according to the current
-   rounding mode.  */
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtss_si32 (__m128 __A)
-{
-  __m64 res = 0;
-#ifdef _ARCH_PWR8
-  double dtmp;
-  __asm__(
-#ifdef __LITTLE_ENDIAN__
-      "xxsldwi %x0,%x0,%x0,3;\n"
-#endif
-      "xscvspdp %x2,%x0;\n"
-      "fctiw  %2,%2;\n"
-      "mfvsrd  %1,%x2;\n"
-      : "+wa" (__A),
-        "=r" (res),
-        "=f" (dtmp)
-      : );
-#else
-  res = __builtin_rint(__A[0]);
-#endif
-  return (res);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvt_ss2si (__m128 __A)
-{
-  return _mm_cvtss_si32 (__A);
-}
-
-/* Convert the lower SPFP value to a 32-bit integer according to the
-   current rounding mode.  */
-
-/* Intel intrinsic.  */
-extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtss_si64 (__m128 __A)
-{
-  __m64 res = 0;
-#ifdef _ARCH_PWR8
-  double dtmp;
-  __asm__(
-#ifdef __LITTLE_ENDIAN__
-      "xxsldwi %x0,%x0,%x0,3;\n"
-#endif
-      "xscvspdp %x2,%x0;\n"
-      "fctid  %2,%2;\n"
-      "mfvsrd  %1,%x2;\n"
-      : "+wa" (__A),
-        "=r" (res),
-        "=f" (dtmp)
-      : );
-#else
-  res = __builtin_llrint(__A[0]);
-#endif
-  return (res);
-}
-
-/* Microsoft intrinsic.  */
-extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtss_si64x (__m128 __A)
-{
-  return _mm_cvtss_si64 ((__v4sf) __A);
-}
-
-/* Constants for use with _mm_prefetch.  */
-enum _mm_hint
-{
-  /* _MM_HINT_ET is _MM_HINT_T with set 3rd bit.  */
-  _MM_HINT_ET0 = 7,
-  _MM_HINT_ET1 = 6,
-  _MM_HINT_T0 = 3,
-  _MM_HINT_T1 = 2,
-  _MM_HINT_T2 = 1,
-  _MM_HINT_NTA = 0
-};
-
-/* Loads one cache line from address P to a location "closer" to the
-   processor.  The selector I specifies the type of prefetch operation.  */
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_prefetch (const void *__P, enum _mm_hint __I)
-{
-  /* Current PowerPC will ignores the hint parameters.  */
-  __builtin_prefetch (__P);
-}
-
-/* Convert the two lower SPFP values to 32-bit integers according to the
-   current rounding mode.  Return the integers in packed form.  */
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtps_pi32 (__m128 __A)
-{
-  /* Splat two lower SPFP values to both halves.  */
-  __v4sf temp, rounded;
-  __vector unsigned long long result;
-
-  /* Splat two lower SPFP values to both halves.  */
-  temp = (__v4sf) vec_splat ((__vector long long)__A, 0);
-  rounded = vec_rint(temp);
-  result = (__vector unsigned long long) vec_cts (rounded, 0);
-
-  return (__m64) ((__vector long long) result)[0];
-}
-
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvt_ps2pi (__m128 __A)
-{
-  return _mm_cvtps_pi32 (__A);
-}
-
-/* Truncate the lower SPFP value to a 32-bit integer.  */
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvttss_si32 (__m128 __A)
-{
-  /* Extract the lower float element.  */
-  float temp = __A[0];
-  /* truncate to 32-bit integer and return.  */
-  return temp;
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtt_ss2si (__m128 __A)
-{
-  return _mm_cvttss_si32 (__A);
-}
-
-/* Intel intrinsic.  */
-extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvttss_si64 (__m128 __A)
-{
-  /* Extract the lower float element.  */
-  float temp = __A[0];
-  /* truncate to 32-bit integer and return.  */
-  return temp;
-}
-
-/* Microsoft intrinsic.  */
-extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvttss_si64x (__m128 __A)
-{
-  /* Extract the lower float element.  */
-  float temp = __A[0];
-  /* truncate to 32-bit integer and return.  */
-  return temp;
-}
-
-/* Truncate the two lower SPFP values to 32-bit integers.  Return the
-   integers in packed form.  */
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvttps_pi32 (__m128 __A)
-{
-  __v4sf temp;
-  __vector unsigned long long result;
-
-  /* Splat two lower SPFP values to both halves.  */
-  temp = (__v4sf) vec_splat ((__vector long long)__A, 0);
-  result = (__vector unsigned long long) vec_cts (temp, 0);
-
-  return (__m64) ((__vector long long) result)[0];
-}
-
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtt_ps2pi (__m128 __A)
-{
-  return _mm_cvttps_pi32 (__A);
-}
-
-/* Convert B to a SPFP value and insert it as element zero in A.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtsi32_ss (__m128 __A, int __B)
-{
-  float temp = __B;
-  __A[0] = temp;
-
-  return __A;
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvt_si2ss (__m128 __A, int __B)
-{
-  return _mm_cvtsi32_ss (__A, __B);
-}
-
-/* Convert B to a SPFP value and insert it as element zero in A.  */
-/* Intel intrinsic.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtsi64_ss (__m128 __A, long long __B)
-{
-  float temp = __B;
-  __A[0] = temp;
-
-  return __A;
-}
-
-/* Microsoft intrinsic.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtsi64x_ss (__m128 __A, long long __B)
-{
-  return _mm_cvtsi64_ss (__A, __B);
-}
-
-/* Convert the two 32-bit values in B to SPFP form and insert them
-   as the two lower elements in A.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtpi32_ps (__m128        __A, __m64        __B)
-{
-  __vector signed int vm1;
-  __vector float vf1;
-
-  vm1 = (__vector signed int) (__vector unsigned long long) {__B, __B};
-  vf1 = (__vector float) vec_ctf (vm1, 0);
-
-  return ((__m128) (__vector unsigned long long)
-    { ((__vector unsigned long long)vf1) [0],
-	((__vector unsigned long long)__A) [1]});
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvt_pi2ps (__m128 __A, __m64 __B)
-{
-  return _mm_cvtpi32_ps (__A, __B);
-}
-
-/* Convert the four signed 16-bit values in A to SPFP form.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtpi16_ps (__m64 __A)
-{
-  __vector signed short vs8;
-  __vector signed int vi4;
-  __vector float vf1;
-
-  vs8 = (__vector signed short) (__vector unsigned long long) { __A, __A };
-  vi4 = vec_vupklsh (vs8);
-  vf1 = (__vector float) vec_ctf (vi4, 0);
-
-  return (__m128) vf1;
-}
-
-/* Convert the four unsigned 16-bit values in A to SPFP form.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtpu16_ps (__m64 __A)
-{
-  const __vector unsigned short zero =
-    { 0, 0, 0, 0, 0, 0, 0, 0 };
-  __vector unsigned short vs8;
-  __vector unsigned int vi4;
-  __vector float vf1;
-
-  vs8 = (__vector unsigned short) (__vector unsigned long long) { __A, __A };
-  vi4 = (__vector unsigned int) vec_mergel
-#ifdef __LITTLE_ENDIAN__
-                                           (vs8, zero);
-#else
-                                           (zero, vs8);
-#endif
-  vf1 = (__vector float) vec_ctf (vi4, 0);
-
-  return (__m128) vf1;
-}
-
-/* Convert the low four signed 8-bit values in A to SPFP form.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtpi8_ps (__m64 __A)
-{
-  __vector signed char vc16;
-  __vector signed short vs8;
-  __vector signed int vi4;
-  __vector float vf1;
-
-  vc16 = (__vector signed char) (__vector unsigned long long) { __A, __A };
-  vs8 = vec_vupkhsb (vc16);
-  vi4 = vec_vupkhsh (vs8);
-  vf1 = (__vector float) vec_ctf (vi4, 0);
-
-  return (__m128) vf1;
-}
-
-/* Convert the low four unsigned 8-bit values in A to SPFP form.  */
-extern __inline  __m128  __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-
-_mm_cvtpu8_ps (__m64  __A)
-{
-  const __vector unsigned char zero =
-    { 0, 0, 0, 0, 0, 0, 0, 0 };
-  __vector unsigned char vc16;
-  __vector unsigned short vs8;
-  __vector unsigned int vi4;
-  __vector float vf1;
-
-  vc16 = (__vector unsigned char) (__vector unsigned long long) { __A, __A };
-#ifdef __LITTLE_ENDIAN__
-  vs8 = (__vector unsigned short) vec_mergel (vc16, zero);
-  vi4 = (__vector unsigned int) vec_mergeh (vs8,
-					    (__vector unsigned short) zero);
-#else
-  vs8 = (__vector unsigned short) vec_mergel (zero, vc16);
-  vi4 = (__vector unsigned int) vec_mergeh ((__vector unsigned short) zero,
-                                            vs8);
-#endif
-  vf1 = (__vector float) vec_ctf (vi4, 0);
-
-  return (__m128) vf1;
-}
-
-/* Convert the four signed 32-bit values in A and B to SPFP form.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtpi32x2_ps (__m64 __A, __m64 __B)
-{
-  __vector signed int vi4;
-  __vector float vf4;
-
-  vi4 = (__vector signed int) (__vector unsigned long long) { __A, __B };
-  vf4 = (__vector float) vec_ctf (vi4, 0);
-  return (__m128) vf4;
-}
-
-/* Convert the four SPFP values in A to four signed 16-bit integers.  */
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtps_pi16 (__m128 __A)
-{
-  __v4sf rounded;
-  __vector signed int temp;
-  __vector unsigned long long result;
-
-  rounded = vec_rint(__A);
-  temp = vec_cts (rounded, 0);
-  result = (__vector unsigned long long) vec_pack (temp, temp);
-
-  return (__m64) ((__vector long long) result)[0];
-}
-
-/* Convert the four SPFP values in A to four signed 8-bit integers.  */
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_cvtps_pi8 (__m128 __A)
-{
-  __v4sf rounded;
-  __vector signed int tmp_i;
-  static const __vector signed int zero = {0, 0, 0, 0};
-  __vector signed short tmp_s;
-  __vector signed char res_v;
-
-  rounded = vec_rint(__A);
-  tmp_i = vec_cts (rounded, 0);
-  tmp_s = vec_pack (tmp_i, zero);
-  res_v = vec_pack (tmp_s, tmp_s);
-  return (__m64) ((__vector long long) res_v)[0];
-}
-
-/* Selects four specific SPFP values from A and B based on MASK.  */
-extern __inline  __m128  __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-
-_mm_shuffle_ps (__m128  __A, __m128  __B, int const __mask)
-{
-  unsigned long element_selector_10 = __mask & 0x03;
-  unsigned long element_selector_32 = (__mask >> 2) & 0x03;
-  unsigned long element_selector_54 = (__mask >> 4) & 0x03;
-  unsigned long element_selector_76 = (__mask >> 6) & 0x03;
-  static const unsigned int permute_selectors[4] =
-    {
-#ifdef __LITTLE_ENDIAN__
-      0x03020100, 0x07060504, 0x0B0A0908, 0x0F0E0D0C
-#else
-      0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F
-#endif
-    };
-  __vector unsigned int t;
-
-  t[0] = permute_selectors[element_selector_10];
-  t[1] = permute_selectors[element_selector_32];
-  t[2] = permute_selectors[element_selector_54] + 0x10101010;
-  t[3] = permute_selectors[element_selector_76] + 0x10101010;
-  return vec_perm ((__v4sf) __A, (__v4sf)__B, (__vector unsigned char)t);
-}
-
-/* Selects and interleaves the upper two SPFP values from A and B.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_unpackhi_ps (__m128 __A, __m128 __B)
-{
-  return (__m128) vec_vmrglw ((__v4sf) __A, (__v4sf)__B);
-}
-
-/* Selects and interleaves the lower two SPFP values from A and B.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_unpacklo_ps (__m128 __A, __m128 __B)
-{
-  return (__m128) vec_vmrghw ((__v4sf) __A, (__v4sf)__B);
-}
-
-/* Sets the upper two SPFP values with 64-bits of data loaded from P;
-   the lower two values are passed through from A.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_loadh_pi (__m128 __A, __m64 const *__P)
-{
-  __vector unsigned long long __a = (__vector unsigned long long)__A;
-  __vector unsigned long long __p = vec_splats(*__P);
-  __a [1] = __p [1];
-
-  return (__m128)__a;
-}
-
-/* Stores the upper two SPFP values of A into P.  */
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_storeh_pi (__m64 *__P, __m128 __A)
-{
-  __vector unsigned long long __a = (__vector unsigned long long) __A;
-
-  *__P = __a[1];
-}
-
-/* Moves the upper two values of B into the lower two values of A.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_movehl_ps (__m128 __A, __m128 __B)
-{
-  return (__m128) vec_mergel ((__vector unsigned long long)__B,
-			      (__vector unsigned long long)__A);
-}
-
-/* Moves the lower two values of B into the upper two values of A.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_movelh_ps (__m128 __A, __m128 __B)
-{
-  return (__m128) vec_mergeh ((__vector unsigned long long)__A,
-			      (__vector unsigned long long)__B);
-}
-
-/* Sets the lower two SPFP values with 64-bits of data loaded from P;
-   the upper two values are passed through from A.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_loadl_pi (__m128 __A, __m64 const *__P)
-{
-  __vector unsigned long long __a = (__vector unsigned long long)__A;
-  __vector unsigned long long __p = vec_splats(*__P);
-  __a [0] = __p [0];
-
-  return (__m128)__a;
-}
-
-/* Stores the lower two SPFP values of A into P.  */
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_storel_pi (__m64 *__P, __m128 __A)
-{
-  __vector unsigned long long __a = (__vector unsigned long long) __A;
-
-  *__P = __a[0];
-}
-
-#ifdef _ARCH_PWR8
-/* Intrinsic functions that require PowerISA 2.07 minimum.  */
-
-/* Creates a 4-bit mask from the most significant bits of the SPFP values.  */
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_movemask_ps (__m128  __A)
-{
-  __vector unsigned long long result;
-  static const __vector unsigned int perm_mask =
-    {
-#ifdef __LITTLE_ENDIAN__
-	0x00204060, 0x80808080, 0x80808080, 0x80808080
-#else
-      0x80808080, 0x80808080, 0x80808080, 0x00204060
-#endif
-    };
-
-  result = ((__vector unsigned long long)
-	    vec_vbpermq ((__vector unsigned char) __A,
-			 (__vector unsigned char) perm_mask));
-
-#ifdef __LITTLE_ENDIAN__
-  return result[1];
-#else
-  return result[0];
-#endif
-}
-#endif /* _ARCH_PWR8 */
-
-/* Create a vector with all four elements equal to *P.  */
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_load1_ps (float const *__P)
-{
-  return _mm_set1_ps (*__P);
-}
-
-extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_load_ps1 (float const *__P)
-{
-  return _mm_load1_ps (__P);
-}
-
-/* Extracts one of the four words of A.  The selector N must be immediate.  */
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_extract_pi16 (__m64 const __A, int const __N)
-{
-  unsigned int shiftr = __N & 3;
-#ifdef __BIG_ENDIAN__
-  shiftr = 3 - shiftr;
-#endif
-
-  return ((__A >> (shiftr * 16)) & 0xffff);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_m_pextrw (__m64 const __A, int const __N)
-{
-  return _mm_extract_pi16 (__A, __N);
-}
-
-/* Inserts word D into one of four words of A.  The selector N must be
-   immediate.  */
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_insert_pi16 (__m64 const __A, int const __D, int const __N)
-{
-  const int shiftl = (__N & 3) * 16;
-  const __m64 shiftD = (const __m64) __D << shiftl;
-  const __m64 mask = 0xffffUL << shiftl;
-  __m64 result = (__A & (~mask)) | (shiftD & mask);
-
-  return (result);
-}
-
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_m_pinsrw (__m64 const __A, int const __D, int const __N)
-{
-  return _mm_insert_pi16 (__A, __D, __N);
-}
-
-/* Compute the element-wise maximum of signed 16-bit values.  */
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-
-_mm_max_pi16 (__m64 __A, __m64 __B)
-{
-#if _ARCH_PWR8
-  __vector signed short a, b, r;
-  __vector __bool short c;
-
-  a = (__vector signed short)vec_splats (__A);
-  b = (__vector signed short)vec_splats (__B);
-  c = (__vector __bool short)vec_cmpgt (a, b);
-  r = vec_sel (b, a, c);
-  return (__m64) ((__vector long long) r)[0];
-#else
-  __m64_union m1, m2, res;
-
-  m1.as_m64 = __A;
-  m2.as_m64 = __B;
-
-  res.as_short[0] =
-      (m1.as_short[0] > m2.as_short[0]) ? m1.as_short[0] : m2.as_short[0];
-  res.as_short[1] =
-      (m1.as_short[1] > m2.as_short[1]) ? m1.as_short[1] : m2.as_short[1];
-  res.as_short[2] =
-      (m1.as_short[2] > m2.as_short[2]) ? m1.as_short[2] : m2.as_short[2];
-  res.as_short[3] =
-      (m1.as_short[3] > m2.as_short[3]) ? m1.as_short[3] : m2.as_short[3];
-
-  return (__m64) res.as_m64;
-#endif
-}
-
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_m_pmaxsw (__m64 __A, __m64 __B)
-{
-  return _mm_max_pi16 (__A, __B);
-}
-
-/* Compute the element-wise maximum of unsigned 8-bit values.  */
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_max_pu8 (__m64 __A, __m64 __B)
-{
-#if _ARCH_PWR8
-  __vector unsigned char a, b, r;
-  __vector __bool char c;
-
-  a = (__vector unsigned char)vec_splats (__A);
-  b = (__vector unsigned char)vec_splats (__B);
-  c = (__vector __bool char)vec_cmpgt (a, b);
-  r = vec_sel (b, a, c);
-  return (__m64) ((__vector long long) r)[0];
-#else
-  __m64_union m1, m2, res;
-  long i;
-
-  m1.as_m64 = __A;
-  m2.as_m64 = __B;
-
-
-  for (i = 0; i < 8; i++)
-  res.as_char[i] =
-      ((unsigned char) m1.as_char[i] > (unsigned char) m2.as_char[i]) ?
-	  m1.as_char[i] : m2.as_char[i];
-
-  return (__m64) res.as_m64;
-#endif
-}
-
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_m_pmaxub (__m64 __A, __m64 __B)
-{
-  return _mm_max_pu8 (__A, __B);
-}
-
-/* Compute the element-wise minimum of signed 16-bit values.  */
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_min_pi16 (__m64 __A, __m64 __B)
-{
-#if _ARCH_PWR8
-  __vector signed short a, b, r;
-  __vector __bool short c;
-
-  a = (__vector signed short)vec_splats (__A);
-  b = (__vector signed short)vec_splats (__B);
-  c = (__vector __bool short)vec_cmplt (a, b);
-  r = vec_sel (b, a, c);
-  return (__m64) ((__vector long long) r)[0];
-#else
-  __m64_union m1, m2, res;
-
-  m1.as_m64 = __A;
-  m2.as_m64 = __B;
-
-  res.as_short[0] =
-      (m1.as_short[0] < m2.as_short[0]) ? m1.as_short[0] : m2.as_short[0];
-  res.as_short[1] =
-      (m1.as_short[1] < m2.as_short[1]) ? m1.as_short[1] : m2.as_short[1];
-  res.as_short[2] =
-      (m1.as_short[2] < m2.as_short[2]) ? m1.as_short[2] : m2.as_short[2];
-  res.as_short[3] =
-      (m1.as_short[3] < m2.as_short[3]) ? m1.as_short[3] : m2.as_short[3];
-
-  return (__m64) res.as_m64;
-#endif
-}
-
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_m_pminsw (__m64 __A, __m64 __B)
-{
-  return _mm_min_pi16 (__A, __B);
-}
-
-/* Compute the element-wise minimum of unsigned 8-bit values.  */
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_min_pu8 (__m64 __A, __m64 __B)
-{
-#if _ARCH_PWR8
-  __vector unsigned char a, b, r;
-  __vector __bool char c;
-
-  a = (__vector unsigned char)vec_splats (__A);
-  b = (__vector unsigned char)vec_splats (__B);
-  c = (__vector __bool char)vec_cmplt (a, b);
-  r = vec_sel (b, a, c);
-  return (__m64) ((__vector long long) r)[0];
-#else
-  __m64_union m1, m2, res;
-  long i;
-
-  m1.as_m64 = __A;
-  m2.as_m64 = __B;
-
-
-  for (i = 0; i < 8; i++)
-  res.as_char[i] =
-      ((unsigned char) m1.as_char[i] < (unsigned char) m2.as_char[i]) ?
-	  m1.as_char[i] : m2.as_char[i];
-
-  return (__m64) res.as_m64;
-#endif
-}
-
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_m_pminub (__m64 __A, __m64 __B)
-{
-  return _mm_min_pu8 (__A, __B);
-}
-
-/* Create an 8-bit mask of the signs of 8-bit values.  */
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_movemask_pi8 (__m64 __A)
-{
-  unsigned long long p =
-#ifdef __LITTLE_ENDIAN__
-                         0x0008101820283038UL; // permute control for sign bits
-#else
-                         0x3830282018100800UL; // permute control for sign bits
-#endif
-  return __builtin_bpermd (p, __A);
-}
-
-extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_m_pmovmskb (__m64 __A)
-{
-  return _mm_movemask_pi8 (__A);
-}
-
-/* Multiply four unsigned 16-bit values in A by four unsigned 16-bit values
-   in B and produce the high 16 bits of the 32-bit results.  */
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_mulhi_pu16 (__m64 __A, __m64 __B)
-{
-  __vector unsigned short a, b;
-  __vector unsigned short c;
-  __vector unsigned int w0, w1;
-  __vector unsigned char xform1 = {
-#ifdef __LITTLE_ENDIAN__
-      0x02, 0x03, 0x12, 0x13,  0x06, 0x07, 0x16, 0x17,
-      0x0A, 0x0B, 0x1A, 0x1B,  0x0E, 0x0F, 0x1E, 0x1F
-#else
-      0x00, 0x01, 0x10, 0x11,  0x04, 0x05, 0x14, 0x15,
-      0x00, 0x01, 0x10, 0x11,  0x04, 0x05, 0x14, 0x15
-#endif
-    };
-
-  a = (__vector unsigned short)vec_splats (__A);
-  b = (__vector unsigned short)vec_splats (__B);
-
-  w0 = vec_vmuleuh (a, b);
-  w1 = vec_vmulouh (a, b);
-  c = (__vector unsigned short)vec_perm (w0, w1, xform1);
-
-  return (__m64) ((__vector long long) c)[0];
-}
-
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_m_pmulhuw (__m64 __A, __m64 __B)
-{
-  return _mm_mulhi_pu16 (__A, __B);
-}
-
-/* Return a combination of the four 16-bit values in A.  The selector
-   must be an immediate.  */
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_shuffle_pi16 (__m64 __A, int const __N)
-{
-  unsigned long element_selector_10 = __N & 0x03;
-  unsigned long element_selector_32 = (__N >> 2) & 0x03;
-  unsigned long element_selector_54 = (__N >> 4) & 0x03;
-  unsigned long element_selector_76 = (__N >> 6) & 0x03;
-  static const unsigned short permute_selectors[4] =
-    {
-#ifdef __LITTLE_ENDIAN__
-	      0x0908, 0x0B0A, 0x0D0C, 0x0F0E
-#else
-	      0x0607, 0x0405, 0x0203, 0x0001
-#endif
-    };
-  __m64_union t;
-  __vector unsigned long long a, p, r;
-
-#ifdef __LITTLE_ENDIAN__
-  t.as_short[0] = permute_selectors[element_selector_10];
-  t.as_short[1] = permute_selectors[element_selector_32];
-  t.as_short[2] = permute_selectors[element_selector_54];
-  t.as_short[3] = permute_selectors[element_selector_76];
-#else
-  t.as_short[3] = permute_selectors[element_selector_10];
-  t.as_short[2] = permute_selectors[element_selector_32];
-  t.as_short[1] = permute_selectors[element_selector_54];
-  t.as_short[0] = permute_selectors[element_selector_76];
-#endif
-  p = vec_splats (t.as_m64);
-  a = vec_splats (__A);
-  r = vec_perm (a, a, (__vector unsigned char)p);
-  return (__m64) ((__vector long long) r)[0];
-}
-
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_m_pshufw (__m64 __A, int const __N)
-{
-  return _mm_shuffle_pi16 (__A, __N);
-}
-
-/* Conditionally store byte elements of A into P.  The high bit of each
-   byte in the selector N determines whether the corresponding byte from
-   A is stored.  */
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_maskmove_si64 (__m64 __A, __m64 __N, char *__P)
-{
-  __m64 hibit = 0x8080808080808080UL;
-  __m64 mask, tmp;
-  __m64 *p = (__m64*)__P;
-
-  tmp = *p;
-  mask = _mm_cmpeq_pi8 ((__N & hibit), hibit);
-  tmp = (tmp & (~mask)) | (__A & mask);
-  *p = tmp;
-}
-
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_m_maskmovq (__m64 __A, __m64 __N, char *__P)
-{
-  _mm_maskmove_si64 (__A, __N, __P);
-}
-
-/* Compute the rounded averages of the unsigned 8-bit values in A and B.  */
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_avg_pu8 (__m64 __A, __m64 __B)
-{
-  __vector unsigned char a, b, c;
-
-  a = (__vector unsigned char)vec_splats (__A);
-  b = (__vector unsigned char)vec_splats (__B);
-  c = vec_avg (a, b);
-  return (__m64) ((__vector long long) c)[0];
-}
-
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_m_pavgb (__m64 __A, __m64 __B)
-{
-  return _mm_avg_pu8 (__A, __B);
-}
-
-/* Compute the rounded averages of the unsigned 16-bit values in A and B.  */
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_avg_pu16 (__m64 __A, __m64 __B)
-{
-  __vector unsigned short a, b, c;
-
-  a = (__vector unsigned short)vec_splats (__A);
-  b = (__vector unsigned short)vec_splats (__B);
-  c = vec_avg (a, b);
-  return (__m64) ((__vector long long) c)[0];
-}
-
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_m_pavgw (__m64 __A, __m64 __B)
-{
-  return _mm_avg_pu16 (__A, __B);
-}
-
-/* Compute the sum of the absolute differences of the unsigned 8-bit
-   values in A and B.  Return the value in the lower 16-bit word; the
-   upper words are cleared.  */
-extern __inline    __m64    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sad_pu8 (__m64  __A, __m64  __B)
-{
-  __vector unsigned char a, b;
-  __vector unsigned char vmin, vmax, vabsdiff;
-  __vector signed int vsum;
-  const __vector unsigned int zero =
-    { 0, 0, 0, 0 };
-  __m64_union result = {0};
-
-  a = (__vector unsigned char) (__vector unsigned long long) { 0UL, __A };
-  b = (__vector unsigned char) (__vector unsigned long long) { 0UL, __B };
-  vmin = vec_min (a, b);
-  vmax = vec_max (a, b);
-  vabsdiff = vec_sub (vmax, vmin);
-  /* Sum four groups of bytes into integers.  */
-  vsum = (__vector signed int) vec_sum4s (vabsdiff, zero);
-  /* Sum across four integers with integer result.  */
-  vsum = vec_sums (vsum, (__vector signed int) zero);
-  /* The sum is in the right most 32-bits of the vector result.
-     Transfer to a GPR and truncate to 16 bits.  */
-  result.as_short[0] = vsum[3];
-  return result.as_m64;
-}
-
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_m_psadbw (__m64 __A, __m64 __B)
-{
-  return _mm_sad_pu8 (__A, __B);
-}
-
-/* Stores the data in A to the address P without polluting the caches.  */
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_stream_pi (__m64 *__P, __m64 __A)
-{
-  /* Use the data cache block touch for store transient.  */
-  __asm__ (
-    "	dcbtstt	0,%0"
-    :
-    : "b" (__P)
-    : "memory"
-  );
-  *__P = __A;
-}
-
-/* Likewise.  The address must be 16-byte aligned.  */
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_stream_ps (float *__P, __m128 __A)
-{
-  /* Use the data cache block touch for store transient.  */
-  __asm__ (
-    "	dcbtstt	0,%0"
-    :
-    : "b" (__P)
-    : "memory"
-  );
-  _mm_store_ps (__P, __A);
-}
-
-/* Guarantees that every preceding store is globally visible before
-   any subsequent store.  */
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_sfence (void)
-{
-  /* Generate a light weight sync.  */
-  __atomic_thread_fence (__ATOMIC_RELEASE);
-}
-
-/* The execution of the next instruction is delayed by an implementation
-   specific amount of time.  The instruction does not modify the
-   architectural state.  This is after the pop_options pragma because
-   it does not require SSE support in the processor--the encoding is a
-   nop on processors that do not support it.  */
-extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_pause (void)
-{
-  /* There is no exact match with this construct, but the following is
-     close to the desired effect.  */
-#if _ARCH_PWR8
-  /* On power8 and later processors we can depend on Program Priority
-     (PRI) and associated "very low" PPI setting.  Since we don't know
-     what PPI this thread is running at we: 1) save the current PRI
-     from the PPR SPR into a local GRP, 2) set the PRI to "very low*
-     via the special or 31,31,31 encoding. 3) issue an "isync" to
-     insure the PRI change takes effect before we execute any more
-     instructions.
-     Now we can execute a lwsync (release barrier) while we execute
-     this thread at "very low" PRI.  Finally we restore the original
-     PRI and continue execution.  */
-  unsigned long __PPR;
-
-  __asm__ volatile (
-    "	mfppr	%0;"
-    "   or 31,31,31;"
-    "   isync;"
-    "   lwsync;"
-    "   isync;"
-    "   mtppr	%0;"
-    : "=r" (__PPR)
-    :
-    : "memory"
-  );
-#else
-  /* For older processor where we may not even have Program Priority
-     controls we can only depend on Heavy Weight Sync.  */
-  __atomic_thread_fence (__ATOMIC_SEQ_CST);
-#endif
-}
-
-/* Transpose the 4x4 matrix composed of row[0-3].  */
-#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3)			\
-do {									\
-  __v4sf __r0 = (row0), __r1 = (row1), __r2 = (row2), __r3 = (row3);	\
-  __v4sf __t0 = vec_vmrghw (__r0, __r1);			\
-  __v4sf __t1 = vec_vmrghw (__r2, __r3);			\
-  __v4sf __t2 = vec_vmrglw (__r0, __r1);			\
-  __v4sf __t3 = vec_vmrglw (__r2, __r3);			\
-  (row0) = (__v4sf)vec_mergeh ((__vector long long)__t0, 	\
-			       (__vector long long)__t1);	\
-  (row1) = (__v4sf)vec_mergel ((__vector long long)__t0,	\
-			       (__vector long long)__t1);	\
-  (row2) = (__v4sf)vec_mergeh ((__vector long long)__t2,	\
-			       (__vector long long)__t3);	\
-  (row3) = (__v4sf)vec_mergel ((__vector long long)__t2,	\
-			       (__vector long long)__t3);	\
-} while (0)
-
-/* For backward source compatibility.  */
-//# include <emmintrin.h>
-
-#else
-#include_next <xmmintrin.h>
-#endif /* defined(__linux__) && defined(__ppc64__) */
-
-#endif /* _XMMINTRIN_H_INCLUDED */
diff --git a/linux-x86/lib64/clang/14.0.1/include/profile/InstrProfData.inc b/linux-x86/lib64/clang/14.0.1/include/profile/InstrProfData.inc
deleted file mode 100644
index cb2d6a6..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/profile/InstrProfData.inc
+++ /dev/null
@@ -1,896 +0,0 @@
-/*===-- InstrProfData.inc - instr profiling runtime structures -*- C++ -*-=== *\
-|*
-|* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-|* See https://llvm.org/LICENSE.txt for license information.
-|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-|*
-\*===----------------------------------------------------------------------===*/
-/*
- * This is the main file that defines all the data structure, signature,
- * constant literals that are shared across profiling runtime library,
- * compiler (instrumentation), and host tools (reader/writer). The entities
- * defined in this file affect the profile runtime ABI, the raw profile format,
- * or both.
- *
- * The file has two identical copies. The primary copy lives in LLVM and
- * the other one  sits in compiler-rt/lib/profile directory. To make changes
- * in this file, first modify the primary copy and copy it over to compiler-rt.
- * Testing of any change in this file can start only after the two copies are
- * synced up.
- *
- * The first part of the file includes macros that defines types, names, and
- * initializers for the member fields of the core data structures. The field
- * declarations for one structure is enabled by defining the field activation
- * macro associated with that structure. Only one field activation record
- * can be defined at one time and the rest definitions will be filtered out by
- * the preprocessor.
- *
- * Examples of how the template is used to instantiate structure definition:
- * 1. To declare a structure:
- *
- * struct ProfData {
- * #define INSTR_PROF_DATA(Type, LLVMType, Name, Initializer) \
- *    Type Name;
- * #include "llvm/ProfileData/InstrProfData.inc"
- * };
- *
- * 2. To construct LLVM type arrays for the struct type:
- *
- * Type *DataTypes[] = {
- * #define INSTR_PROF_DATA(Type, LLVMType, Name, Initializer) \
- *   LLVMType,
- * #include "llvm/ProfileData/InstrProfData.inc"
- * };
- *
- * 4. To construct constant array for the initializers:
- * #define INSTR_PROF_DATA(Type, LLVMType, Name, Initializer) \
- *   Initializer,
- * Constant *ConstantVals[] = {
- * #include "llvm/ProfileData/InstrProfData.inc"
- * };
- *
- *
- * The second part of the file includes definitions all other entities that
- * are related to runtime ABI and format. When no field activation macro is
- * defined, this file can be included to introduce the definitions.
- *
-\*===----------------------------------------------------------------------===*/
-
-/* Functions marked with INSTR_PROF_VISIBILITY must have hidden visibility in
- * the compiler runtime. */
-#ifndef INSTR_PROF_VISIBILITY
-#define INSTR_PROF_VISIBILITY
-#endif
-
-/* INSTR_PROF_DATA start. */
-/* Definition of member fields of the per-function control structure. */
-#ifndef INSTR_PROF_DATA
-#define INSTR_PROF_DATA(Type, LLVMType, Name, Initializer)
-#else
-#define INSTR_PROF_DATA_DEFINED
-#endif
-INSTR_PROF_DATA(const uint64_t, llvm::Type::getInt64Ty(Ctx), NameRef, \
-                ConstantInt::get(llvm::Type::getInt64Ty(Ctx), \
-                IndexedInstrProf::ComputeHash(getPGOFuncNameVarInitializer(Inc->getName()))))
-INSTR_PROF_DATA(const uint64_t, llvm::Type::getInt64Ty(Ctx), FuncHash, \
-                ConstantInt::get(llvm::Type::getInt64Ty(Ctx), \
-                Inc->getHash()->getZExtValue()))
-INSTR_PROF_DATA(const IntPtrT, IntPtrTy, CounterPtr, RelativeCounterPtr)
-/* This is used to map function pointers for the indirect call targets to
- * function name hashes during the conversion from raw to merged profile
- * data.
- */
-INSTR_PROF_DATA(const IntPtrT, llvm::Type::getInt8PtrTy(Ctx), FunctionPointer, \
-                FunctionAddr)
-INSTR_PROF_DATA(IntPtrT, llvm::Type::getInt8PtrTy(Ctx), Values, \
-                ValuesPtrExpr)
-INSTR_PROF_DATA(const uint32_t, llvm::Type::getInt32Ty(Ctx), NumCounters, \
-                ConstantInt::get(llvm::Type::getInt32Ty(Ctx), NumCounters))
-INSTR_PROF_DATA(const uint16_t, Int16ArrayTy, NumValueSites[IPVK_Last+1], \
-                ConstantArray::get(Int16ArrayTy, Int16ArrayVals))
-#undef INSTR_PROF_DATA
-/* INSTR_PROF_DATA end. */
-
-
-/* This is an internal data structure used by value profiler. It
- * is defined here to allow serialization code sharing by LLVM
- * to be used in unit test.
- *
- * typedef struct ValueProfNode {
- *   // InstrProfValueData VData;
- *   uint64_t Value;
- *   uint64_t Count;
- *   struct ValueProfNode *Next;
- * } ValueProfNode;
- */
-/* INSTR_PROF_VALUE_NODE start. */
-#ifndef INSTR_PROF_VALUE_NODE
-#define INSTR_PROF_VALUE_NODE(Type, LLVMType, Name, Initializer)
-#else
-#define INSTR_PROF_DATA_DEFINED
-#endif
-INSTR_PROF_VALUE_NODE(uint64_t, llvm::Type::getInt64Ty(Ctx), Value, \
-                      ConstantInt::get(llvm::Type::GetInt64Ty(Ctx), 0))
-INSTR_PROF_VALUE_NODE(uint64_t, llvm::Type::getInt64Ty(Ctx), Count, \
-                      ConstantInt::get(llvm::Type::GetInt64Ty(Ctx), 0))
-INSTR_PROF_VALUE_NODE(PtrToNodeT, llvm::Type::getInt8PtrTy(Ctx), Next, \
-                      ConstantInt::get(llvm::Type::GetInt8PtrTy(Ctx), 0))
-#undef INSTR_PROF_VALUE_NODE
-/* INSTR_PROF_VALUE_NODE end. */
-
-/* INSTR_PROF_RAW_HEADER  start */
-/* Definition of member fields of the raw profile header data structure. */
-#ifndef INSTR_PROF_RAW_HEADER
-#define INSTR_PROF_RAW_HEADER(Type, Name, Initializer)
-#else
-#define INSTR_PROF_DATA_DEFINED
-#endif
-INSTR_PROF_RAW_HEADER(uint64_t, Magic, __llvm_profile_get_magic())
-INSTR_PROF_RAW_HEADER(uint64_t, Version, __llvm_profile_get_version())
-INSTR_PROF_RAW_HEADER(uint64_t, BinaryIdsSize, __llvm_write_binary_ids(NULL))
-INSTR_PROF_RAW_HEADER(uint64_t, DataSize, DataSize)
-INSTR_PROF_RAW_HEADER(uint64_t, PaddingBytesBeforeCounters, PaddingBytesBeforeCounters)
-INSTR_PROF_RAW_HEADER(uint64_t, CountersSize, CountersSize)
-INSTR_PROF_RAW_HEADER(uint64_t, PaddingBytesAfterCounters, PaddingBytesAfterCounters)
-INSTR_PROF_RAW_HEADER(uint64_t, NamesSize,  NamesSize)
-INSTR_PROF_RAW_HEADER(uint64_t, CountersDelta,
-                      (uintptr_t)CountersBegin - (uintptr_t)DataBegin)
-INSTR_PROF_RAW_HEADER(uint64_t, NamesDelta, (uintptr_t)NamesBegin)
-INSTR_PROF_RAW_HEADER(uint64_t, ValueKindLast, IPVK_Last)
-#undef INSTR_PROF_RAW_HEADER
-/* INSTR_PROF_RAW_HEADER  end */
-
-/* VALUE_PROF_FUNC_PARAM start */
-/* Definition of parameter types of the runtime API used to do value profiling
- * for a given value site.
- */
-#ifndef VALUE_PROF_FUNC_PARAM
-#define VALUE_PROF_FUNC_PARAM(ArgType, ArgName, ArgLLVMType)
-#define INSTR_PROF_COMMA
-#else
-#define INSTR_PROF_DATA_DEFINED
-#define INSTR_PROF_COMMA ,
-#endif
-VALUE_PROF_FUNC_PARAM(uint64_t, TargetValue, Type::getInt64Ty(Ctx)) \
-                      INSTR_PROF_COMMA
-VALUE_PROF_FUNC_PARAM(void *, Data, Type::getInt8PtrTy(Ctx)) INSTR_PROF_COMMA
-VALUE_PROF_FUNC_PARAM(uint32_t, CounterIndex, Type::getInt32Ty(Ctx))
-#undef VALUE_PROF_FUNC_PARAM
-#undef INSTR_PROF_COMMA
-/* VALUE_PROF_FUNC_PARAM end */
-
-/* VALUE_PROF_KIND start */
-#ifndef VALUE_PROF_KIND
-#define VALUE_PROF_KIND(Enumerator, Value, Descr)
-#else
-#define INSTR_PROF_DATA_DEFINED
-#endif
-/* For indirect function call value profiling, the addresses of the target
- * functions are profiled by the instrumented code. The target addresses are
- * written in the raw profile data and converted to target function name's MD5
- * hash by the profile reader during deserialization.  Typically, this happens
- * when the raw profile data is read during profile merging.
- *
- * For this remapping the ProfData is used.  ProfData contains both the function
- * name hash and the function address.
- */
-VALUE_PROF_KIND(IPVK_IndirectCallTarget, 0, "indirect call target")
-/* For memory intrinsic functions size profiling. */
-VALUE_PROF_KIND(IPVK_MemOPSize, 1, "memory intrinsic functions size")
-/* These two kinds must be the last to be
- * declared. This is to make sure the string
- * array created with the template can be
- * indexed with the kind value.
- */
-VALUE_PROF_KIND(IPVK_First, IPVK_IndirectCallTarget, "first")
-VALUE_PROF_KIND(IPVK_Last, IPVK_MemOPSize, "last")
-
-#undef VALUE_PROF_KIND
-/* VALUE_PROF_KIND end */
-
-#undef COVMAP_V2_OR_V3
-#ifdef COVMAP_V2
-#define COVMAP_V2_OR_V3
-#endif
-#ifdef COVMAP_V3
-#define COVMAP_V2_OR_V3
-#endif
-
-/* COVMAP_FUNC_RECORD start */
-/* Definition of member fields of the function record structure in coverage
- * map.
- */
-#ifndef COVMAP_FUNC_RECORD
-#define COVMAP_FUNC_RECORD(Type, LLVMType, Name, Initializer)
-#else
-#define INSTR_PROF_DATA_DEFINED
-#endif
-#ifdef COVMAP_V1
-COVMAP_FUNC_RECORD(const IntPtrT, llvm::Type::getInt8PtrTy(Ctx), \
-                   NamePtr, llvm::ConstantExpr::getBitCast(NamePtr, \
-                   llvm::Type::getInt8PtrTy(Ctx)))
-COVMAP_FUNC_RECORD(const uint32_t, llvm::Type::getInt32Ty(Ctx), NameSize, \
-                   llvm::ConstantInt::get(llvm::Type::getInt32Ty(Ctx), \
-                   NameValue.size()))
-#endif
-#ifdef COVMAP_V2_OR_V3
-COVMAP_FUNC_RECORD(const int64_t, llvm::Type::getInt64Ty(Ctx), NameRef, \
-                   llvm::ConstantInt::get( \
-                     llvm::Type::getInt64Ty(Ctx), NameHash))
-#endif
-COVMAP_FUNC_RECORD(const uint32_t, llvm::Type::getInt32Ty(Ctx), DataSize, \
-                   llvm::ConstantInt::get( \
-                     llvm::Type::getInt32Ty(Ctx), CoverageMapping.size()))
-COVMAP_FUNC_RECORD(const uint64_t, llvm::Type::getInt64Ty(Ctx), FuncHash, \
-                   llvm::ConstantInt::get( \
-                     llvm::Type::getInt64Ty(Ctx), FuncHash))
-#ifdef COVMAP_V3
-COVMAP_FUNC_RECORD(const uint64_t, llvm::Type::getInt64Ty(Ctx), FilenamesRef, \
-                   llvm::ConstantInt::get( \
-                     llvm::Type::getInt64Ty(Ctx), FilenamesRef))
-COVMAP_FUNC_RECORD(const char, \
-                   llvm::ArrayType::get(llvm::Type::getInt8Ty(Ctx), \
-                                        CoverageMapping.size()), \
-                   CoverageMapping,
-                   llvm::ConstantDataArray::getRaw( \
-                     CoverageMapping, CoverageMapping.size(), \
-                     llvm::Type::getInt8Ty(Ctx)))
-#endif
-#undef COVMAP_FUNC_RECORD
-/* COVMAP_FUNC_RECORD end.  */
-
-/* COVMAP_HEADER start */
-/* Definition of member fields of coverage map header.
- */
-#ifndef COVMAP_HEADER
-#define COVMAP_HEADER(Type, LLVMType, Name, Initializer)
-#else
-#define INSTR_PROF_DATA_DEFINED
-#endif
-COVMAP_HEADER(uint32_t, Int32Ty, NRecords, \
-              llvm::ConstantInt::get(Int32Ty, NRecords))
-COVMAP_HEADER(uint32_t, Int32Ty, FilenamesSize, \
-              llvm::ConstantInt::get(Int32Ty, FilenamesSize))
-COVMAP_HEADER(uint32_t, Int32Ty, CoverageSize, \
-              llvm::ConstantInt::get(Int32Ty, CoverageMappingSize))
-COVMAP_HEADER(uint32_t, Int32Ty, Version, \
-              llvm::ConstantInt::get(Int32Ty, CovMapVersion::CurrentVersion))
-#undef COVMAP_HEADER
-/* COVMAP_HEADER end.  */
-
-
-#ifdef INSTR_PROF_SECT_ENTRY
-#define INSTR_PROF_DATA_DEFINED
-INSTR_PROF_SECT_ENTRY(IPSK_data, \
-                      INSTR_PROF_QUOTE(INSTR_PROF_DATA_COMMON), \
-                      INSTR_PROF_DATA_COFF, "__DATA,")
-INSTR_PROF_SECT_ENTRY(IPSK_cnts, \
-                      INSTR_PROF_QUOTE(INSTR_PROF_CNTS_COMMON), \
-                      INSTR_PROF_CNTS_COFF, "__DATA,")
-INSTR_PROF_SECT_ENTRY(IPSK_name, \
-                      INSTR_PROF_QUOTE(INSTR_PROF_NAME_COMMON), \
-                      INSTR_PROF_NAME_COFF, "__DATA,")
-INSTR_PROF_SECT_ENTRY(IPSK_vals, \
-                      INSTR_PROF_QUOTE(INSTR_PROF_VALS_COMMON), \
-                      INSTR_PROF_VALS_COFF, "__DATA,")
-INSTR_PROF_SECT_ENTRY(IPSK_vnodes, \
-                      INSTR_PROF_QUOTE(INSTR_PROF_VNODES_COMMON), \
-                      INSTR_PROF_VNODES_COFF, "__DATA,")
-INSTR_PROF_SECT_ENTRY(IPSK_covmap, \
-                      INSTR_PROF_QUOTE(INSTR_PROF_COVMAP_COMMON), \
-                      INSTR_PROF_COVMAP_COFF, "__LLVM_COV,")
-INSTR_PROF_SECT_ENTRY(IPSK_covfun, \
-                      INSTR_PROF_QUOTE(INSTR_PROF_COVFUN_COMMON), \
-                      INSTR_PROF_COVFUN_COFF, "__LLVM_COV,")
-INSTR_PROF_SECT_ENTRY(IPSK_orderfile, \
-                      INSTR_PROF_QUOTE(INSTR_PROF_ORDERFILE_COMMON), \
-                      INSTR_PROF_QUOTE(INSTR_PROF_ORDERFILE_COFF), "__DATA,")
-
-#undef INSTR_PROF_SECT_ENTRY
-#endif
-
-
-#ifdef INSTR_PROF_VALUE_PROF_DATA
-#define INSTR_PROF_DATA_DEFINED
-
-#define INSTR_PROF_MAX_NUM_VAL_PER_SITE 255
-/*!
- * This is the header of the data structure that defines the on-disk
- * layout of the value profile data of a particular kind for one function.
- */
-typedef struct ValueProfRecord {
-  /* The kind of the value profile record. */
-  uint32_t Kind;
-  /*
-   * The number of value profile sites. It is guaranteed to be non-zero;
-   * otherwise the record for this kind won't be emitted.
-   */
-  uint32_t NumValueSites;
-  /*
-   * The first element of the array that stores the number of profiled
-   * values for each value site. The size of the array is NumValueSites.
-   * Since NumValueSites is greater than zero, there is at least one
-   * element in the array.
-   */
-  uint8_t SiteCountArray[1];
-
-  /*
-   * The fake declaration is for documentation purpose only.
-   * Align the start of next field to be on 8 byte boundaries.
-  uint8_t Padding[X];
-   */
-
-  /* The array of value profile data. The size of the array is the sum
-   * of all elements in SiteCountArray[].
-  InstrProfValueData ValueData[];
-   */
-
-#ifdef __cplusplus
-  /*!
-   * Return the number of value sites.
-   */
-  uint32_t getNumValueSites() const { return NumValueSites; }
-  /*!
-   * Read data from this record and save it to Record.
-   */
-  void deserializeTo(InstrProfRecord &Record,
-                     InstrProfSymtab *SymTab);
-  /*
-   * In-place byte swap:
-   * Do byte swap for this instance. \c Old is the original order before
-   * the swap, and \c New is the New byte order.
-   */
-  void swapBytes(support::endianness Old, support::endianness New);
-#endif
-} ValueProfRecord;
-
-/*!
- * Per-function header/control data structure for value profiling
- * data in indexed format.
- */
-typedef struct ValueProfData {
-  /*
-   * Total size in bytes including this field. It must be a multiple
-   * of sizeof(uint64_t).
-   */
-  uint32_t TotalSize;
-  /*
-   *The number of value profile kinds that has value profile data.
-   * In this implementation, a value profile kind is considered to
-   * have profile data if the number of value profile sites for the
-   * kind is not zero. More aggressively, the implementation can
-   * choose to check the actual data value: if none of the value sites
-   * has any profiled values, the kind can be skipped.
-   */
-  uint32_t NumValueKinds;
-
-  /*
-   * Following are a sequence of variable length records. The prefix/header
-   * of each record is defined by ValueProfRecord type. The number of
-   * records is NumValueKinds.
-   * ValueProfRecord Record_1;
-   * ValueProfRecord Record_N;
-   */
-
-#if __cplusplus
-  /*!
-   * Return the total size in bytes of the on-disk value profile data
-   * given the data stored in Record.
-   */
-  static uint32_t getSize(const InstrProfRecord &Record);
-  /*!
-   * Return a pointer to \c ValueProfData instance ready to be streamed.
-   */
-  static std::unique_ptr<ValueProfData>
-  serializeFrom(const InstrProfRecord &Record);
-  /*!
-   * Check the integrity of the record.
-   */
-  Error checkIntegrity();
-  /*!
-   * Return a pointer to \c ValueProfileData instance ready to be read.
-   * All data in the instance are properly byte swapped. The input
-   * data is assumed to be in little endian order.
-   */
-  static Expected<std::unique_ptr<ValueProfData>>
-  getValueProfData(const unsigned char *SrcBuffer,
-                   const unsigned char *const SrcBufferEnd,
-                   support::endianness SrcDataEndianness);
-  /*!
-   * Swap byte order from \c Endianness order to host byte order.
-   */
-  void swapBytesToHost(support::endianness Endianness);
-  /*!
-   * Swap byte order from host byte order to \c Endianness order.
-   */
-  void swapBytesFromHost(support::endianness Endianness);
-  /*!
-   * Return the total size of \c ValueProfileData.
-   */
-  uint32_t getSize() const { return TotalSize; }
-  /*!
-   * Read data from this data and save it to \c Record.
-   */
-  void deserializeTo(InstrProfRecord &Record,
-                     InstrProfSymtab *SymTab);
-  void operator delete(void *ptr) { ::operator delete(ptr); }
-#endif
-} ValueProfData;
-
-/*
- * The closure is designed to abstact away two types of value profile data:
- * - InstrProfRecord which is the primary data structure used to
- *   represent profile data in host tools (reader, writer, and profile-use)
- * - value profile runtime data structure suitable to be used by C
- *   runtime library.
- *
- * Both sources of data need to serialize to disk/memory-buffer in common
- * format: ValueProfData. The abstraction allows compiler-rt's raw profiler
- * writer to share the same format and code with indexed profile writer.
- *
- * For documentation of the member methods below, refer to corresponding methods
- * in class InstrProfRecord.
- */
-typedef struct ValueProfRecordClosure {
-  const void *Record;
-  uint32_t (*GetNumValueKinds)(const void *Record);
-  uint32_t (*GetNumValueSites)(const void *Record, uint32_t VKind);
-  uint32_t (*GetNumValueData)(const void *Record, uint32_t VKind);
-  uint32_t (*GetNumValueDataForSite)(const void *R, uint32_t VK, uint32_t S);
-
-  /*
-   * After extracting the value profile data from the value profile record,
-   * this method is used to map the in-memory value to on-disk value. If
-   * the method is null, value will be written out untranslated.
-   */
-  uint64_t (*RemapValueData)(uint32_t, uint64_t Value);
-  void (*GetValueForSite)(const void *R, InstrProfValueData *Dst, uint32_t K,
-                          uint32_t S);
-  ValueProfData *(*AllocValueProfData)(size_t TotalSizeInBytes);
-} ValueProfRecordClosure;
-
-INSTR_PROF_VISIBILITY ValueProfRecord *
-getFirstValueProfRecord(ValueProfData *VPD);
-INSTR_PROF_VISIBILITY ValueProfRecord *
-getValueProfRecordNext(ValueProfRecord *VPR);
-INSTR_PROF_VISIBILITY InstrProfValueData *
-getValueProfRecordValueData(ValueProfRecord *VPR);
-INSTR_PROF_VISIBILITY uint32_t
-getValueProfRecordHeaderSize(uint32_t NumValueSites);
-
-#undef INSTR_PROF_VALUE_PROF_DATA
-#endif  /* INSTR_PROF_VALUE_PROF_DATA */
-
-
-#ifdef INSTR_PROF_COMMON_API_IMPL
-#define INSTR_PROF_DATA_DEFINED
-#ifdef __cplusplus
-#define INSTR_PROF_INLINE inline
-#define INSTR_PROF_NULLPTR nullptr
-#else
-#define INSTR_PROF_INLINE
-#define INSTR_PROF_NULLPTR NULL
-#endif
-
-#ifndef offsetof
-#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
-#endif
-
-/*!
- * Return the \c ValueProfRecord header size including the
- * padding bytes.
- */
-INSTR_PROF_VISIBILITY INSTR_PROF_INLINE
-uint32_t getValueProfRecordHeaderSize(uint32_t NumValueSites) {
-  uint32_t Size = offsetof(ValueProfRecord, SiteCountArray) +
-                  sizeof(uint8_t) * NumValueSites;
-  /* Round the size to multiple of 8 bytes. */
-  Size = (Size + 7) & ~7;
-  return Size;
-}
-
-/*!
- * Return the total size of the value profile record including the
- * header and the value data.
- */
-INSTR_PROF_VISIBILITY INSTR_PROF_INLINE
-uint32_t getValueProfRecordSize(uint32_t NumValueSites,
-                                uint32_t NumValueData) {
-  return getValueProfRecordHeaderSize(NumValueSites) +
-         sizeof(InstrProfValueData) * NumValueData;
-}
-
-/*!
- * Return the pointer to the start of value data array.
- */
-INSTR_PROF_VISIBILITY INSTR_PROF_INLINE
-InstrProfValueData *getValueProfRecordValueData(ValueProfRecord *This) {
-  return (InstrProfValueData *)((char *)This + getValueProfRecordHeaderSize(
-                                                   This->NumValueSites));
-}
-
-/*!
- * Return the total number of value data for \c This record.
- */
-INSTR_PROF_VISIBILITY INSTR_PROF_INLINE
-uint32_t getValueProfRecordNumValueData(ValueProfRecord *This) {
-  uint32_t NumValueData = 0;
-  uint32_t I;
-  for (I = 0; I < This->NumValueSites; I++)
-    NumValueData += This->SiteCountArray[I];
-  return NumValueData;
-}
-
-/*!
- * Use this method to advance to the next \c This \c ValueProfRecord.
- */
-INSTR_PROF_VISIBILITY INSTR_PROF_INLINE
-ValueProfRecord *getValueProfRecordNext(ValueProfRecord *This) {
-  uint32_t NumValueData = getValueProfRecordNumValueData(This);
-  return (ValueProfRecord *)((char *)This +
-                             getValueProfRecordSize(This->NumValueSites,
-                                                    NumValueData));
-}
-
-/*!
- * Return the first \c ValueProfRecord instance.
- */
-INSTR_PROF_VISIBILITY INSTR_PROF_INLINE
-ValueProfRecord *getFirstValueProfRecord(ValueProfData *This) {
-  return (ValueProfRecord *)((char *)This + sizeof(ValueProfData));
-}
-
-/* Closure based interfaces.  */
-
-/*!
- * Return the total size in bytes of the on-disk value profile data
- * given the data stored in Record.
- */
-INSTR_PROF_VISIBILITY uint32_t
-getValueProfDataSize(ValueProfRecordClosure *Closure) {
-  uint32_t Kind;
-  uint32_t TotalSize = sizeof(ValueProfData);
-  const void *Record = Closure->Record;
-
-  for (Kind = IPVK_First; Kind <= IPVK_Last; Kind++) {
-    uint32_t NumValueSites = Closure->GetNumValueSites(Record, Kind);
-    if (!NumValueSites)
-      continue;
-    TotalSize += getValueProfRecordSize(NumValueSites,
-                                        Closure->GetNumValueData(Record, Kind));
-  }
-  return TotalSize;
-}
-
-/*!
- * Extract value profile data of a function for the profile kind \c ValueKind
- * from the \c Closure and serialize the data into \c This record instance.
- */
-INSTR_PROF_VISIBILITY void
-serializeValueProfRecordFrom(ValueProfRecord *This,
-                             ValueProfRecordClosure *Closure,
-                             uint32_t ValueKind, uint32_t NumValueSites) {
-  uint32_t S;
-  const void *Record = Closure->Record;
-  This->Kind = ValueKind;
-  This->NumValueSites = NumValueSites;
-  InstrProfValueData *DstVD = getValueProfRecordValueData(This);
-
-  for (S = 0; S < NumValueSites; S++) {
-    uint32_t ND = Closure->GetNumValueDataForSite(Record, ValueKind, S);
-    This->SiteCountArray[S] = ND;
-    Closure->GetValueForSite(Record, DstVD, ValueKind, S);
-    DstVD += ND;
-  }
-}
-
-/*!
- * Extract value profile data of a function  from the \c Closure
- * and serialize the data into \c DstData if it is not NULL or heap
- * memory allocated by the \c Closure's allocator method. If \c
- * DstData is not null, the caller is expected to set the TotalSize
- * in DstData.
- */
-INSTR_PROF_VISIBILITY ValueProfData *
-serializeValueProfDataFrom(ValueProfRecordClosure *Closure,
-                           ValueProfData *DstData) {
-  uint32_t Kind;
-  uint32_t TotalSize =
-      DstData ? DstData->TotalSize : getValueProfDataSize(Closure);
-
-  ValueProfData *VPD =
-      DstData ? DstData : Closure->AllocValueProfData(TotalSize);
-
-  VPD->TotalSize = TotalSize;
-  VPD->NumValueKinds = Closure->GetNumValueKinds(Closure->Record);
-  ValueProfRecord *VR = getFirstValueProfRecord(VPD);
-  for (Kind = IPVK_First; Kind <= IPVK_Last; Kind++) {
-    uint32_t NumValueSites = Closure->GetNumValueSites(Closure->Record, Kind);
-    if (!NumValueSites)
-      continue;
-    serializeValueProfRecordFrom(VR, Closure, Kind, NumValueSites);
-    VR = getValueProfRecordNext(VR);
-  }
-  return VPD;
-}
-
-#undef INSTR_PROF_COMMON_API_IMPL
-#endif /* INSTR_PROF_COMMON_API_IMPL */
-
-/*============================================================================*/
-
-#ifndef INSTR_PROF_DATA_DEFINED
-
-#ifndef INSTR_PROF_DATA_INC
-#define INSTR_PROF_DATA_INC
-
-/* Helper macros.  */
-#define INSTR_PROF_SIMPLE_QUOTE(x) #x
-#define INSTR_PROF_QUOTE(x) INSTR_PROF_SIMPLE_QUOTE(x)
-#define INSTR_PROF_SIMPLE_CONCAT(x,y) x ## y
-#define INSTR_PROF_CONCAT(x,y) INSTR_PROF_SIMPLE_CONCAT(x,y)
-
-/* Magic number to detect file format and endianness.
- * Use 255 at one end, since no UTF-8 file can use that character.  Avoid 0,
- * so that utilities, like strings, don't grab it as a string.  129 is also
- * invalid UTF-8, and high enough to be interesting.
- * Use "lprofr" in the centre to stand for "LLVM Profile Raw", or "lprofR"
- * for 32-bit platforms.
- */
-#define INSTR_PROF_RAW_MAGIC_64 (uint64_t)255 << 56 | (uint64_t)'l' << 48 | \
-       (uint64_t)'p' << 40 | (uint64_t)'r' << 32 | (uint64_t)'o' << 24 |  \
-        (uint64_t)'f' << 16 | (uint64_t)'r' << 8 | (uint64_t)129
-#define INSTR_PROF_RAW_MAGIC_32 (uint64_t)255 << 56 | (uint64_t)'l' << 48 | \
-       (uint64_t)'p' << 40 | (uint64_t)'r' << 32 | (uint64_t)'o' << 24 |  \
-        (uint64_t)'f' << 16 | (uint64_t)'R' << 8 | (uint64_t)129
-
-/* Raw profile format version (start from 1). */
-#define INSTR_PROF_RAW_VERSION 7
-/* Indexed profile format version (start from 1). */
-#define INSTR_PROF_INDEX_VERSION 7
-/* Coverage mapping format version (start from 0). */
-#define INSTR_PROF_COVMAP_VERSION 5
-
-/* Profile version is always of type uint64_t. Reserve the upper 8 bits in the
- * version for other variants of profile. We set the lowest bit of the upper 8
- * bits (i.e. bit 56) to 1 to indicate if this is an IR-level instrumentaiton
- * generated profile, and 0 if this is a Clang FE generated profile.
- * 1 in bit 57 indicates there are context-sensitive records in the profile.
- */
-#define VARIANT_MASKS_ALL 0xff00000000000000ULL
-#define GET_VERSION(V) ((V) & ~VARIANT_MASKS_ALL)
-#define VARIANT_MASK_IR_PROF (0x1ULL << 56)
-#define VARIANT_MASK_CSIR_PROF (0x1ULL << 57)
-#define VARIANT_MASK_INSTR_ENTRY (0x1ULL << 58)
-#define INSTR_PROF_RAW_VERSION_VAR __llvm_profile_raw_version
-#define INSTR_PROF_PROFILE_RUNTIME_VAR __llvm_profile_runtime
-#define INSTR_PROF_PROFILE_COUNTER_BIAS_VAR __llvm_profile_counter_bias
-
-/* The variable that holds the name of the profile data
- * specified via command line. */
-#define INSTR_PROF_PROFILE_NAME_VAR __llvm_profile_filename
-
-/* section name strings common to all targets other
-   than WIN32 */
-#define INSTR_PROF_DATA_COMMON __llvm_prf_data
-#define INSTR_PROF_NAME_COMMON __llvm_prf_names
-#define INSTR_PROF_CNTS_COMMON __llvm_prf_cnts
-#define INSTR_PROF_VALS_COMMON __llvm_prf_vals
-#define INSTR_PROF_VNODES_COMMON __llvm_prf_vnds
-#define INSTR_PROF_COVMAP_COMMON __llvm_covmap
-#define INSTR_PROF_COVFUN_COMMON __llvm_covfun
-#define INSTR_PROF_ORDERFILE_COMMON __llvm_orderfile
-/* Windows section names. Because these section names contain dollar characters,
- * they must be quoted.
- */
-#define INSTR_PROF_DATA_COFF ".lprfd$M"
-#define INSTR_PROF_NAME_COFF ".lprfn$M"
-#define INSTR_PROF_CNTS_COFF ".lprfc$M"
-#define INSTR_PROF_VALS_COFF ".lprfv$M"
-#define INSTR_PROF_VNODES_COFF ".lprfnd$M"
-#define INSTR_PROF_COVMAP_COFF ".lcovmap$M"
-#define INSTR_PROF_COVFUN_COFF ".lcovfun$M"
-#define INSTR_PROF_ORDERFILE_COFF ".lorderfile$M"
-
-#ifdef _WIN32
-/* Runtime section names and name strings.  */
-#define INSTR_PROF_DATA_SECT_NAME INSTR_PROF_DATA_COFF
-#define INSTR_PROF_NAME_SECT_NAME INSTR_PROF_NAME_COFF
-#define INSTR_PROF_CNTS_SECT_NAME INSTR_PROF_CNTS_COFF
-/* Array of pointers. Each pointer points to a list
- * of value nodes associated with one value site.
- */
-#define INSTR_PROF_VALS_SECT_NAME INSTR_PROF_VALS_COFF
-/* Value profile nodes section. */
-#define INSTR_PROF_VNODES_SECT_NAME INSTR_PROF_VNODES_COFF
-#define INSTR_PROF_COVMAP_SECT_NAME INSTR_PROF_COVMAP_COFF
-#define INSTR_PROF_COVFUN_SECT_NAME INSTR_PROF_COVFUN_COFF
-#define INSTR_PROF_ORDERFILE_SECT_NAME INSTR_PROF_ORDERFILE_COFF
-#else
-/* Runtime section names and name strings.  */
-#define INSTR_PROF_DATA_SECT_NAME INSTR_PROF_QUOTE(INSTR_PROF_DATA_COMMON)
-#define INSTR_PROF_NAME_SECT_NAME INSTR_PROF_QUOTE(INSTR_PROF_NAME_COMMON)
-#define INSTR_PROF_CNTS_SECT_NAME INSTR_PROF_QUOTE(INSTR_PROF_CNTS_COMMON)
-/* Array of pointers. Each pointer points to a list
- * of value nodes associated with one value site.
- */
-#define INSTR_PROF_VALS_SECT_NAME INSTR_PROF_QUOTE(INSTR_PROF_VALS_COMMON)
-/* Value profile nodes section. */
-#define INSTR_PROF_VNODES_SECT_NAME INSTR_PROF_QUOTE(INSTR_PROF_VNODES_COMMON)
-#define INSTR_PROF_COVMAP_SECT_NAME INSTR_PROF_QUOTE(INSTR_PROF_COVMAP_COMMON)
-#define INSTR_PROF_COVFUN_SECT_NAME INSTR_PROF_QUOTE(INSTR_PROF_COVFUN_COMMON)
-/* Order file instrumentation. */
-#define INSTR_PROF_ORDERFILE_SECT_NAME                                         \
-  INSTR_PROF_QUOTE(INSTR_PROF_ORDERFILE_COMMON)
-#endif
-
-#define INSTR_PROF_ORDERFILE_BUFFER_NAME _llvm_order_file_buffer
-#define INSTR_PROF_ORDERFILE_BUFFER_NAME_STR                                   \
-  INSTR_PROF_QUOTE(INSTR_PROF_ORDERFILE_BUFFER_NAME)
-#define INSTR_PROF_ORDERFILE_BUFFER_IDX_NAME _llvm_order_file_buffer_idx
-#define INSTR_PROF_ORDERFILE_BUFFER_IDX_NAME_STR                               \
-  INSTR_PROF_QUOTE(INSTR_PROF_ORDERFILE_BUFFER_IDX_NAME)
-
-/* Macros to define start/stop section symbol for a given
- * section on Linux. For instance
- * INSTR_PROF_SECT_START(INSTR_PROF_DATA_SECT_NAME) will
- * expand to __start___llvm_prof_data
- */
-#define INSTR_PROF_SECT_START(Sect) \
-        INSTR_PROF_CONCAT(__start_,Sect)
-#define INSTR_PROF_SECT_STOP(Sect) \
-        INSTR_PROF_CONCAT(__stop_,Sect)
-
-/* Value Profiling API linkage name.  */
-#define INSTR_PROF_VALUE_PROF_FUNC __llvm_profile_instrument_target
-#define INSTR_PROF_VALUE_PROF_FUNC_STR \
-        INSTR_PROF_QUOTE(INSTR_PROF_VALUE_PROF_FUNC)
-#define INSTR_PROF_VALUE_PROF_MEMOP_FUNC __llvm_profile_instrument_memop
-#define INSTR_PROF_VALUE_PROF_MEMOP_FUNC_STR                                   \
-  INSTR_PROF_QUOTE(INSTR_PROF_VALUE_PROF_MEMOP_FUNC)
-
-/* InstrProfile per-function control data alignment.  */
-#define INSTR_PROF_DATA_ALIGNMENT 8
-
-/* The data structure that represents a tracked value by the
- * value profiler.
- */
-typedef struct InstrProfValueData {
-  /* Profiled value. */
-  uint64_t Value;
-  /* Number of times the value appears in the training run. */
-  uint64_t Count;
-} InstrProfValueData;
-
-#endif /* INSTR_PROF_DATA_INC */
-
-#ifndef INSTR_ORDER_FILE_INC
-/* The maximal # of functions: 128*1024 (the buffer size will be 128*4 KB). */
-#define INSTR_ORDER_FILE_BUFFER_SIZE 131072
-#define INSTR_ORDER_FILE_BUFFER_BITS 17
-#define INSTR_ORDER_FILE_BUFFER_MASK 0x1ffff
-#endif /* INSTR_ORDER_FILE_INC */
-#else
-#undef INSTR_PROF_DATA_DEFINED
-#endif
-
-#undef COVMAP_V2_OR_V3
-
-#ifdef INSTR_PROF_VALUE_PROF_MEMOP_API
-
-#ifdef __cplusplus
-#define INSTR_PROF_INLINE inline
-#else
-#define INSTR_PROF_INLINE
-#endif
-
-/* The value range buckets (22 buckets) for the memop size value profiling looks
- * like:
- *
- *   [0, 0]
- *   [1, 1]
- *   [2, 2]
- *   [3, 3]
- *   [4, 4]
- *   [5, 5]
- *   [6, 6]
- *   [7, 7]
- *   [8, 8]
- *   [9, 15]
- *   [16, 16]
- *   [17, 31]
- *   [32, 32]
- *   [33, 63]
- *   [64, 64]
- *   [65, 127]
- *   [128, 128]
- *   [129, 255]
- *   [256, 256]
- *   [257, 511]
- *   [512, 512]
- *   [513, UINT64_MAX]
- *
- * Each range has a 'representative value' which is the lower end value of the
- * range and used to store in the runtime profile data records and the VP
- * metadata. For example, it's 2 for [2, 2] and 64 for [65, 127].
- */
-#define INSTR_PROF_NUM_BUCKETS 22
-
-/*
- * Clz and Popcount. This code was copied from
- * compiler-rt/lib/fuzzer/{FuzzerBuiltins.h,FuzzerBuiltinsMsvc.h} and
- * llvm/include/llvm/Support/MathExtras.h.
- */
-#if defined(_MSC_VER) && !defined(__clang__)
-
-#include <intrin.h>
-INSTR_PROF_VISIBILITY INSTR_PROF_INLINE
-int InstProfClzll(unsigned long long X) {
-  unsigned long LeadZeroIdx = 0;
-#if !defined(_M_ARM64) && !defined(_M_X64)
-  // Scan the high 32 bits.
-  if (_BitScanReverse(&LeadZeroIdx, (unsigned long)(X >> 32)))
-    return (int)(63 - (LeadZeroIdx + 32)); // Create a bit offset
-                                                      // from the MSB.
-  // Scan the low 32 bits.
-  if (_BitScanReverse(&LeadZeroIdx, (unsigned long)(X)))
-    return (int)(63 - LeadZeroIdx);
-#else
-  if (_BitScanReverse64(&LeadZeroIdx, X)) return 63 - LeadZeroIdx;
-#endif
-  return 64;
-}
-INSTR_PROF_VISIBILITY INSTR_PROF_INLINE
-int InstProfPopcountll(unsigned long long X) {
-  // This code originates from https://reviews.llvm.org/rG30626254510f.
-  unsigned long long v = X;
-  v = v - ((v >> 1) & 0x5555555555555555ULL);
-  v = (v & 0x3333333333333333ULL) + ((v >> 2) & 0x3333333333333333ULL);
-  v = (v + (v >> 4)) & 0x0F0F0F0F0F0F0F0FULL;
-  return (int)((unsigned long long)(v * 0x0101010101010101ULL) >> 56);
-}
-
-#else
-
-INSTR_PROF_VISIBILITY INSTR_PROF_INLINE
-int InstProfClzll(unsigned long long X) { return __builtin_clzll(X); }
-INSTR_PROF_VISIBILITY INSTR_PROF_INLINE
-int InstProfPopcountll(unsigned long long X) { return __builtin_popcountll(X); }
-
-#endif  /* defined(_MSC_VER) && !defined(__clang__) */
-
-/* Map an (observed) memop size value to the representative value of its range.
- * For example, 5 -> 5, 22 -> 17, 99 -> 65, 256 -> 256, 1001 -> 513. */
-INSTR_PROF_VISIBILITY INSTR_PROF_INLINE uint64_t
-InstrProfGetRangeRepValue(uint64_t Value) {
-  if (Value <= 8)
-    // The first ranges are individually tracked. Use the value as is.
-    return Value;
-  else if (Value >= 513)
-    // The last range is mapped to its lowest value.
-    return 513;
-  else if (InstProfPopcountll(Value) == 1)
-    // If it's a power of two, use it as is.
-    return Value;
-  else
-    // Otherwise, take to the previous power of two + 1.
-    return (UINT64_C(1) << (64 - InstProfClzll(Value) - 1)) + 1;
-}
-
-/* Return true if the range that an (observed) memop size value belongs to has
- * only a single value in the range.  For example, 0 -> true, 8 -> true, 10 ->
- * false, 64 -> true, 100 -> false, 513 -> false. */
-INSTR_PROF_VISIBILITY INSTR_PROF_INLINE unsigned
-InstrProfIsSingleValRange(uint64_t Value) {
-  if (Value <= 8)
-    // The first ranges are individually tracked.
-    return 1;
-  else if (InstProfPopcountll(Value) == 1)
-    // If it's a power of two, there's only one value.
-    return 1;
-  else
-    // Otherwise, there's more than one value in the range.
-    return 0;
-}
-
-#endif /* INSTR_PROF_VALUE_PROF_MEMOP_API */
diff --git a/linux-x86/lib64/clang/14.0.1/include/riscv_vector.h b/linux-x86/lib64/clang/14.0.1/include/riscv_vector.h
deleted file mode 100644
index debc75c..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/riscv_vector.h
+++ /dev/null
@@ -1,123925 +0,0 @@
-/*===---- riscv_vector.h - RISC-V V-extension RVVIntrinsics -------------------===
- *
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-
-#ifndef __RISCV_VECTOR_H
-#define __RISCV_VECTOR_H
-
-#include <stdint.h>
-#include <stddef.h>
-
-#ifndef __riscv_vector
-#error "Vector intrinsics require the vector extension."
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-#define vsetvl_e8mf8(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 5)
-#define vsetvl_e8mf4(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 6)
-#define vsetvl_e8mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 7)
-#define vsetvl_e8m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 0)
-#define vsetvl_e8m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 1)
-#define vsetvl_e8m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 2)
-#define vsetvl_e8m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 3)
-
-#define vsetvl_e16mf4(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 6)
-#define vsetvl_e16mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 7)
-#define vsetvl_e16m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 0)
-#define vsetvl_e16m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 1)
-#define vsetvl_e16m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 2)
-#define vsetvl_e16m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 3)
-
-#define vsetvl_e32mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 7)
-#define vsetvl_e32m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 0)
-#define vsetvl_e32m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 1)
-#define vsetvl_e32m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 2)
-#define vsetvl_e32m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 3)
-
-#define vsetvl_e64m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 0)
-#define vsetvl_e64m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 1)
-#define vsetvl_e64m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 2)
-#define vsetvl_e64m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 3)
-
-
-#define vsetvlmax_e8mf8() __builtin_rvv_vsetvlimax(0, 5)
-#define vsetvlmax_e8mf4() __builtin_rvv_vsetvlimax(0, 6)
-#define vsetvlmax_e8mf2() __builtin_rvv_vsetvlimax(0, 7)
-#define vsetvlmax_e8m1() __builtin_rvv_vsetvlimax(0, 0)
-#define vsetvlmax_e8m2() __builtin_rvv_vsetvlimax(0, 1)
-#define vsetvlmax_e8m4() __builtin_rvv_vsetvlimax(0, 2)
-#define vsetvlmax_e8m8() __builtin_rvv_vsetvlimax(0, 3)
-
-#define vsetvlmax_e16mf4() __builtin_rvv_vsetvlimax(1, 6)
-#define vsetvlmax_e16mf2() __builtin_rvv_vsetvlimax(1, 7)
-#define vsetvlmax_e16m1() __builtin_rvv_vsetvlimax(1, 0)
-#define vsetvlmax_e16m2() __builtin_rvv_vsetvlimax(1, 1)
-#define vsetvlmax_e16m4() __builtin_rvv_vsetvlimax(1, 2)
-#define vsetvlmax_e16m8() __builtin_rvv_vsetvlimax(1, 3)
-
-#define vsetvlmax_e32mf2() __builtin_rvv_vsetvlimax(2, 7)
-#define vsetvlmax_e32m1() __builtin_rvv_vsetvlimax(2, 0)
-#define vsetvlmax_e32m2() __builtin_rvv_vsetvlimax(2, 1)
-#define vsetvlmax_e32m4() __builtin_rvv_vsetvlimax(2, 2)
-#define vsetvlmax_e32m8() __builtin_rvv_vsetvlimax(2, 3)
-
-#define vsetvlmax_e64m1() __builtin_rvv_vsetvlimax(3, 0)
-#define vsetvlmax_e64m2() __builtin_rvv_vsetvlimax(3, 1)
-#define vsetvlmax_e64m4() __builtin_rvv_vsetvlimax(3, 2)
-#define vsetvlmax_e64m8() __builtin_rvv_vsetvlimax(3, 3)
-
-typedef __rvv_bool64_t vbool64_t;
-typedef __rvv_bool32_t vbool32_t;
-typedef __rvv_bool16_t vbool16_t;
-typedef __rvv_bool8_t vbool8_t;
-typedef __rvv_bool4_t vbool4_t;
-typedef __rvv_bool2_t vbool2_t;
-typedef __rvv_bool1_t vbool1_t;
-typedef __rvv_int8mf8_t vint8mf8_t;
-typedef __rvv_uint8mf8_t vuint8mf8_t;
-typedef __rvv_int8mf4_t vint8mf4_t;
-typedef __rvv_uint8mf4_t vuint8mf4_t;
-typedef __rvv_int8mf2_t vint8mf2_t;
-typedef __rvv_uint8mf2_t vuint8mf2_t;
-typedef __rvv_int8m1_t vint8m1_t;
-typedef __rvv_uint8m1_t vuint8m1_t;
-typedef __rvv_int8m2_t vint8m2_t;
-typedef __rvv_uint8m2_t vuint8m2_t;
-typedef __rvv_int8m4_t vint8m4_t;
-typedef __rvv_uint8m4_t vuint8m4_t;
-typedef __rvv_int8m8_t vint8m8_t;
-typedef __rvv_uint8m8_t vuint8m8_t;
-typedef __rvv_int16mf4_t vint16mf4_t;
-typedef __rvv_uint16mf4_t vuint16mf4_t;
-typedef __rvv_int16mf2_t vint16mf2_t;
-typedef __rvv_uint16mf2_t vuint16mf2_t;
-typedef __rvv_int16m1_t vint16m1_t;
-typedef __rvv_uint16m1_t vuint16m1_t;
-typedef __rvv_int16m2_t vint16m2_t;
-typedef __rvv_uint16m2_t vuint16m2_t;
-typedef __rvv_int16m4_t vint16m4_t;
-typedef __rvv_uint16m4_t vuint16m4_t;
-typedef __rvv_int16m8_t vint16m8_t;
-typedef __rvv_uint16m8_t vuint16m8_t;
-typedef __rvv_int32mf2_t vint32mf2_t;
-typedef __rvv_uint32mf2_t vuint32mf2_t;
-typedef __rvv_int32m1_t vint32m1_t;
-typedef __rvv_uint32m1_t vuint32m1_t;
-typedef __rvv_int32m2_t vint32m2_t;
-typedef __rvv_uint32m2_t vuint32m2_t;
-typedef __rvv_int32m4_t vint32m4_t;
-typedef __rvv_uint32m4_t vuint32m4_t;
-typedef __rvv_int32m8_t vint32m8_t;
-typedef __rvv_uint32m8_t vuint32m8_t;
-typedef __rvv_int64m1_t vint64m1_t;
-typedef __rvv_uint64m1_t vuint64m1_t;
-typedef __rvv_int64m2_t vint64m2_t;
-typedef __rvv_uint64m2_t vuint64m2_t;
-typedef __rvv_int64m4_t vint64m4_t;
-typedef __rvv_uint64m4_t vuint64m4_t;
-typedef __rvv_int64m8_t vint64m8_t;
-typedef __rvv_uint64m8_t vuint64m8_t;
-#if defined(__riscv_zfh)
-typedef __rvv_float16mf4_t vfloat16mf4_t;
-typedef __rvv_float16mf2_t vfloat16mf2_t;
-typedef __rvv_float16m1_t vfloat16m1_t;
-typedef __rvv_float16m2_t vfloat16m2_t;
-typedef __rvv_float16m4_t vfloat16m4_t;
-typedef __rvv_float16m8_t vfloat16m8_t;
-#endif
-#if defined(__riscv_f)
-typedef __rvv_float32mf2_t vfloat32mf2_t;
-typedef __rvv_float32m1_t vfloat32m1_t;
-typedef __rvv_float32m2_t vfloat32m2_t;
-typedef __rvv_float32m4_t vfloat32m4_t;
-typedef __rvv_float32m8_t vfloat32m8_t;
-#endif
-#if defined(__riscv_d)
-typedef __rvv_float64m1_t vfloat64m1_t;
-typedef __rvv_float64m2_t vfloat64m2_t;
-typedef __rvv_float64m4_t vfloat64m4_t;
-typedef __rvv_float64m8_t vfloat64m8_t;
-#endif
-
-#define vadd_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vadd_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vadd_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vadd_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vadd_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vadd_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vadd_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vadd_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vadd_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vadd_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vadd_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vadd_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vadd_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vadd_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vadd_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vadd_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vadd_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vadd_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vadd_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vadd_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vadd_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vadd_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vadd_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vadd_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vadd_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vadd_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vadd_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vadd_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vadd_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vadd_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vadd_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vadd_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vadd_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vadd_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vadd_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vadd_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vadd_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vadd_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vadd_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vadd_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vadd_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vadd_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vadd_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vadd_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vadd_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u16mf4((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u16mf2((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u16m1((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u16m2((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u16m4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u16m8((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u32mf2((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u32m1((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u32m2((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u32m4((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u32m8((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u64m1((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u64m2((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u64m4((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vwaddu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_vv_u64m8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vwaddu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei8_v_u8m1(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u8m1((const uint8_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vluxei8_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (const uint8_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_u8m2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u8m2((const uint8_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vluxei8_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (const uint8_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxei8_v_u8m4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u8m4((const uint8_t *)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vluxei8_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (const uint8_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vluxei8_v_u8m8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u8m8((const uint8_t *)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vluxei8_v_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (const uint8_t *)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vluxei8_v_u8mf2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u8mf2((const uint8_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vluxei8_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (const uint8_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_u8mf4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u8mf4((const uint8_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vluxei8_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (const uint8_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_u8mf8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u8mf8((const uint8_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vluxei8_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (const uint8_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vlse64_v_u64m1(op0, op1, op2) \
-__builtin_rvv_vlse64_v_u64m1((const uint64_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (const uint64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse64_v_u64m2(op0, op1, op2) \
-__builtin_rvv_vlse64_v_u64m2((const uint64_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (const uint64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse64_v_u64m4(op0, op1, op2) \
-__builtin_rvv_vlse64_v_u64m4((const uint64_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (const uint64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse64_v_u64m8(op0, op1, op2) \
-__builtin_rvv_vlse64_v_u64m8((const uint64_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (const uint64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vsse16_v_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_i16m1((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsse16_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsse16_v_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_i16m2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsse16_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsse16_v_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_i16m4((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vsse16_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsse16_v_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_i16m8((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vsse16_v_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_i16m8_m((vbool2_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vsse16_v_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_i16mf2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsse16_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsse16_v_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_i16mf4((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsse16_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsse16_v_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_u16m1((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vsse16_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsse16_v_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_u16m2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vsse16_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsse16_v_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_u16m4((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vsse16_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsse16_v_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_u16m8((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vsse16_v_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_u16m8_m((vbool2_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vsse16_v_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_u16mf2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vsse16_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsse16_v_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_u16mf4((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vsse16_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsse32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_i32m1((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vsse32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsse32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_i32m2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vsse32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsse32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_i32m4((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vsse32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsse32_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_i32m8((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vsse32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vsse32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_i32mf2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsse32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsse32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_u32m1((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vsse32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsse32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_u32m2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vsse32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsse32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_u32m4((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vsse32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsse32_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_u32m8((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vsse32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsse32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_u32mf2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vsse32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsse64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_i64m1((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vsse64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsse64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_i64m2((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vsse64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsse64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_i64m4((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vsse64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsse64_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_i64m8((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vsse64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsse64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_u64m1((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vsse64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsse64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_u64m2((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vsse64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsse64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_u64m4((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vsse64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsse64_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_u64m8((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vsse64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxei16_v_i8m1(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i8m1((const int8_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vluxei16_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (const int8_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxei16_v_i8m2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i8m2((const int8_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vluxei16_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (const int8_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxei16_v_i8m4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i8m4((const int8_t *)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vluxei16_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (const int8_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vluxei16_v_i8mf2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i8mf2((const int8_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vluxei16_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (const int8_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_i8mf4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i8mf4((const int8_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vluxei16_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (const int8_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxei16_v_i8mf8(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i8mf8((const int8_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vluxei16_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (const int8_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxei16_v_u8m1(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u8m1((const uint8_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vluxei16_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (const uint8_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxei16_v_u8m2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u8m2((const uint8_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vluxei16_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (const uint8_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxei16_v_u8m4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u8m4((const uint8_t *)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vluxei16_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (const uint8_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vluxei16_v_u8mf2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u8mf2((const uint8_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vluxei16_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (const uint8_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_u8mf4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u8mf4((const uint8_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vluxei16_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (const uint8_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxei16_v_u8mf8(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u8mf8((const uint8_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vluxei16_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (const uint8_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxei32_v_i8m1(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i8m1((const int8_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vluxei32_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (const int8_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei32_v_i8m2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i8m2((const int8_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vluxei32_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (const int8_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxei32_v_i8mf2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i8mf2((const int8_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vluxei32_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (const int8_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_i8mf4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i8mf4((const int8_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vluxei32_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (const int8_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxei32_v_i8mf8(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i8mf8((const int8_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vluxei32_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (const int8_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxei32_v_u8m1(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u8m1((const uint8_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vluxei32_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (const uint8_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei32_v_u8m2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u8m2((const uint8_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vluxei32_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (const uint8_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxei32_v_u8mf2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u8mf2((const uint8_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vluxei32_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (const uint8_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_u8mf4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u8mf4((const uint8_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vluxei32_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (const uint8_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxei32_v_u8mf8(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u8mf8((const uint8_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vluxei32_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (const uint8_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxei64_v_i8m1(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i8m1((const int8_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vluxei64_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (const int8_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxei64_v_i8mf2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i8mf2((const int8_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vluxei64_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (const int8_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_i8mf4(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i8mf4((const int8_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vluxei64_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (const int8_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxei64_v_i8mf8(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i8mf8((const int8_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vluxei64_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (const int8_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxei64_v_u8m1(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u8m1((const uint8_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vluxei64_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (const uint8_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxei64_v_u8mf2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u8mf2((const uint8_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vluxei64_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (const uint8_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_u8mf4(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u8mf4((const uint8_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vluxei64_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (const uint8_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxei64_v_u8mf8(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u8mf8((const uint8_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vluxei64_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (const uint8_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_i16m1(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i16m1((const int16_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vluxei8_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (const int16_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_i16m2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i16m2((const int16_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vluxei8_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (const int16_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_i16m4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i16m4((const int16_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vluxei8_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (const int16_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxei8_v_i16m8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i16m8((const int16_t *)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vluxei8_v_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (const int16_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vluxei8_v_i16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i16mf2((const int16_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vluxei8_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (const int16_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_i16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i16mf4((const int16_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vluxei8_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (const int16_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxei8_v_u16m1(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u16m1((const uint16_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vluxei8_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (const uint16_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_u16m2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u16m2((const uint16_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vluxei8_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (const uint16_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_u16m4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u16m4((const uint16_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vluxei8_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (const uint16_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxei8_v_u16m8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u16m8((const uint16_t *)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vluxei8_v_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (const uint16_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vluxei8_v_u16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u16mf2((const uint16_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vluxei8_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (const uint16_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_u16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u16mf4((const uint16_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vluxei8_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (const uint16_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxei16_v_i16m1(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i16m1((const int16_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vluxei16_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (const int16_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_i16m2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i16m2((const int16_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vluxei16_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (const int16_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxei16_v_i16m4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i16m4((const int16_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vluxei16_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (const int16_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxei16_v_i16m8(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i16m8((const int16_t *)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vluxei16_v_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (const int16_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vluxei16_v_i16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i16mf2((const int16_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vluxei16_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (const int16_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxei16_v_i16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i16mf4((const int16_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vluxei16_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (const int16_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxei16_v_u16m1(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u16m1((const uint16_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vluxei16_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (const uint16_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_u16m2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u16m2((const uint16_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vluxei16_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (const uint16_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxei16_v_u16m4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u16m4((const uint16_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vluxei16_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (const uint16_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxei16_v_u16m8(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u16m8((const uint16_t *)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vluxei16_v_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (const uint16_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vluxei16_v_u16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u16mf2((const uint16_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vluxei16_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (const uint16_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxei16_v_u16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u16mf4((const uint16_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vluxei16_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (const uint16_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxei32_v_i16m1(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i16m1((const int16_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vluxei32_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (const int16_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_i16m2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i16m2((const int16_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vluxei32_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (const int16_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei32_v_i16m4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i16m4((const int16_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vluxei32_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (const int16_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxei32_v_i16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i16mf2((const int16_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vluxei32_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (const int16_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxei32_v_i16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i16mf4((const int16_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vluxei32_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (const int16_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxei32_v_u16m1(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u16m1((const uint16_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vluxei32_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (const uint16_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_u16m2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u16m2((const uint16_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vluxei32_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (const uint16_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei32_v_u16m4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u16m4((const uint16_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vluxei32_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (const uint16_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxei32_v_u16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u16mf2((const uint16_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vluxei32_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (const uint16_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxei32_v_u16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u16mf4((const uint16_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vluxei32_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (const uint16_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxei64_v_i16m1(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i16m1((const int16_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vluxei64_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (const int16_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_i16m2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i16m2((const int16_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vluxei64_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (const int16_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxei64_v_i16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i16mf2((const int16_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vluxei64_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (const int16_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxei64_v_i16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i16mf4((const int16_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vluxei64_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (const int16_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxei64_v_u16m1(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u16m1((const uint16_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vluxei64_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (const uint16_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_u16m2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u16m2((const uint16_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vluxei64_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (const uint16_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxei64_v_u16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u16mf2((const uint16_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vluxei64_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (const uint16_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxei64_v_u16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u16mf4((const uint16_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vluxei64_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (const uint16_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_i32m1(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i32m1((const int32_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vluxei8_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (const int32_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_i32m2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i32m2((const int32_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vluxei8_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (const int32_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_i32m4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i32m4((const int32_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vluxei8_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (const int32_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_i32m8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i32m8((const int32_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vluxei8_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (const int32_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxei8_v_i32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i32mf2((const int32_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vluxei8_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (const int32_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxei8_v_u32m1(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u32m1((const uint32_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vluxei8_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (const uint32_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_u32m2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u32m2((const uint32_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vluxei8_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (const uint32_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_u32m4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u32m4((const uint32_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vluxei8_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (const uint32_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_u32m8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u32m8((const uint32_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vluxei8_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (const uint32_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxei8_v_u32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u32mf2((const uint32_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vluxei8_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (const uint32_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxei16_v_i32m1(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i32m1((const int32_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vluxei16_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (const int32_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxei16_v_i32m2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i32m2((const int32_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vluxei16_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (const int32_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_i32m4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i32m4((const int32_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vluxei16_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (const int32_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxei16_v_i32m8(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i32m8((const int32_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vluxei16_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (const int32_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxei16_v_i32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i32mf2((const int32_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vluxei16_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (const int32_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxei16_v_u32m1(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u32m1((const uint32_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vluxei16_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (const uint32_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxei16_v_u32m2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u32m2((const uint32_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vluxei16_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (const uint32_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_u32m4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u32m4((const uint32_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vluxei16_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (const uint32_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxei16_v_u32m8(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u32m8((const uint32_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vluxei16_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (const uint32_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxei16_v_u32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u32mf2((const uint32_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vluxei16_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (const uint32_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxei32_v_i32m1(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i32m1((const int32_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vluxei32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (const int32_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxei32_v_i32m2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i32m2((const int32_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vluxei32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (const int32_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_i32m4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i32m4((const int32_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vluxei32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (const int32_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei32_v_i32m8(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i32m8((const int32_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vluxei32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (const int32_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxei32_v_i32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i32mf2((const int32_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vluxei32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (const int32_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxei32_v_u32m1(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u32m1((const uint32_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vluxei32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (const uint32_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxei32_v_u32m2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u32m2((const uint32_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vluxei32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (const uint32_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_u32m4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u32m4((const uint32_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vluxei32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (const uint32_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei32_v_u32m8(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u32m8((const uint32_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vluxei32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (const uint32_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxei32_v_u32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u32mf2((const uint32_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vluxei32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (const uint32_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxei64_v_i32m1(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i32m1((const int32_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vluxei64_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (const int32_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxei64_v_i32m2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i32m2((const int32_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vluxei64_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (const int32_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_i32m4(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i32m4((const int32_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vluxei64_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (const int32_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxei64_v_i32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i32mf2((const int32_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vluxei64_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (const int32_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxei64_v_u32m1(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u32m1((const uint32_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vluxei64_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (const uint32_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxei64_v_u32m2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u32m2((const uint32_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vluxei64_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (const uint32_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_u32m4(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u32m4((const uint32_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vluxei64_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (const uint32_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxei64_v_u32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u32mf2((const uint32_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vluxei64_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (const uint32_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_i64m1(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i64m1((const int64_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vluxei8_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (const int64_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxei8_v_i64m2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i64m2((const int64_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vluxei8_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (const int64_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_i64m4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i64m4((const int64_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vluxei8_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (const int64_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_i64m8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i64m8((const int64_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vluxei8_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (const int64_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_u64m1(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u64m1((const uint64_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vluxei8_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (const uint64_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxei8_v_u64m2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u64m2((const uint64_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vluxei8_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (const uint64_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_u64m4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u64m4((const uint64_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vluxei8_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (const uint64_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_u64m8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_u64m8((const uint64_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vluxei8_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (const uint64_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_i64m1(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i64m1((const int64_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vluxei16_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (const int64_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxei16_v_i64m2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i64m2((const int64_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vluxei16_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (const int64_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxei16_v_i64m4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i64m4((const int64_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vluxei16_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (const int64_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_i64m8(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_i64m8((const int64_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vluxei16_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (const int64_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxei16_v_u64m1(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u64m1((const uint64_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vluxei16_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (const uint64_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxei16_v_u64m2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u64m2((const uint64_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vluxei16_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (const uint64_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxei16_v_u64m4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u64m4((const uint64_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vluxei16_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (const uint64_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_u64m8(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_u64m8((const uint64_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vluxei16_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (const uint64_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_i64m1(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i64m1((const int64_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vluxei32_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (const int64_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxei32_v_i64m2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i64m2((const int64_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vluxei32_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (const int64_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxei32_v_i64m4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i64m4((const int64_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vluxei32_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (const int64_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_i64m8(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_i64m8((const int64_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vluxei32_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (const int64_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei32_v_u64m1(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u64m1((const uint64_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vluxei32_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (const uint64_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxei32_v_u64m2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u64m2((const uint64_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vluxei32_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (const uint64_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxei32_v_u64m4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u64m4((const uint64_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vluxei32_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (const uint64_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_u64m8(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_u64m8((const uint64_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vluxei32_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (const uint64_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_i64m1(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i64m1((const int64_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vluxei64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (const int64_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxei64_v_i64m2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i64m2((const int64_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vluxei64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (const int64_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxei64_v_i64m4(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i64m4((const int64_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vluxei64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (const int64_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_i64m8(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_i64m8((const int64_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vluxei64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (const int64_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxei64_v_u64m1(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u64m1((const uint64_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vluxei64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (const uint64_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxei64_v_u64m2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u64m2((const uint64_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vluxei64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (const uint64_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxei64_v_u64m4(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u64m4((const uint64_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vluxei64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (const uint64_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_u64m8(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_u64m8((const uint64_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vluxei64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (const uint64_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxei8_v_i8m1(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i8m1((const int8_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vloxei8_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (const int8_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_i8m2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i8m2((const int8_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vloxei8_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (const int8_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxei8_v_i8m4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i8m4((const int8_t *)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vloxei8_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (const int8_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vloxei8_v_i8m8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i8m8((const int8_t *)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vloxei8_v_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (const int8_t *)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vloxei8_v_i8mf2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i8mf2((const int8_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vloxei8_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (const int8_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxei8_v_i8mf4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i8mf4((const int8_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vloxei8_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (const int8_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxei8_v_i8mf8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i8mf8((const int8_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vloxei8_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (const int8_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxei8_v_u8m1(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u8m1((const uint8_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vloxei8_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (const uint8_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_u8m2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u8m2((const uint8_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vloxei8_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (const uint8_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxei8_v_u8m4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u8m4((const uint8_t *)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vloxei8_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (const uint8_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vloxei8_v_u8m8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u8m8((const uint8_t *)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vloxei8_v_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (const uint8_t *)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vloxei8_v_u8mf2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u8mf2((const uint8_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vloxei8_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (const uint8_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxei8_v_u8mf4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u8mf4((const uint8_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vloxei8_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (const uint8_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxei8_v_u8mf8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u8mf8((const uint8_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vloxei8_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (const uint8_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxei16_v_i8m1(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i8m1((const int8_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vloxei16_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (const int8_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxei16_v_i8m2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i8m2((const int8_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vloxei16_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (const int8_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxei16_v_i8m4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i8m4((const int8_t *)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vloxei16_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (const int8_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vloxei16_v_i8mf2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i8mf2((const int8_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vloxei16_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (const int8_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_i8mf4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i8mf4((const int8_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vloxei16_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (const int8_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxei16_v_i8mf8(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i8mf8((const int8_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vloxei16_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (const int8_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxei16_v_u8m1(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u8m1((const uint8_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vloxei16_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (const uint8_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxei16_v_u8m2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u8m2((const uint8_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vloxei16_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (const uint8_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxei16_v_u8m4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u8m4((const uint8_t *)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vloxei16_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (const uint8_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vloxei16_v_u8mf2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u8mf2((const uint8_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vloxei16_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (const uint8_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_u8mf4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u8mf4((const uint8_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vloxei16_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (const uint8_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxei16_v_u8mf8(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u8mf8((const uint8_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vloxei16_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (const uint8_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxei32_v_i8m1(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i8m1((const int8_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vloxei32_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (const int8_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxei32_v_i8m2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i8m2((const int8_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vloxei32_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (const int8_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxei32_v_i8mf2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i8mf2((const int8_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vloxei32_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (const int8_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_i8mf4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i8mf4((const int8_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vloxei32_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (const int8_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxei32_v_i8mf8(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i8mf8((const int8_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vloxei32_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (const int8_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxei32_v_u8m1(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u8m1((const uint8_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vloxei32_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (const uint8_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxei32_v_u8m2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u8m2((const uint8_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vloxei32_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (const uint8_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxei32_v_u8mf2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u8mf2((const uint8_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vloxei32_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (const uint8_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_u8mf4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u8mf4((const uint8_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vloxei32_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (const uint8_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxei32_v_u8mf8(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u8mf8((const uint8_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vloxei32_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (const uint8_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxei64_v_i8m1(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i8m1((const int8_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vloxei64_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (const int8_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxei64_v_i8mf2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i8mf2((const int8_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vloxei64_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (const int8_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_i8mf4(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i8mf4((const int8_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vloxei64_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (const int8_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxei64_v_i8mf8(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i8mf8((const int8_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vloxei64_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (const int8_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxei64_v_u8m1(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u8m1((const uint8_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vloxei64_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (const uint8_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxei64_v_u8mf2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u8mf2((const uint8_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vloxei64_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (const uint8_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_u8mf4(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u8mf4((const uint8_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vloxei64_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (const uint8_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxei64_v_u8mf8(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u8mf8((const uint8_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vloxei64_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (const uint8_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_i16m1(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i16m1((const int16_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vloxei8_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (const int16_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxei8_v_i16m2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i16m2((const int16_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vloxei8_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (const int16_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_i16m4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i16m4((const int16_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vloxei8_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (const int16_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxei8_v_i16m8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i16m8((const int16_t *)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vloxei8_v_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (const int16_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vloxei8_v_i16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i16mf2((const int16_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vloxei8_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (const int16_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxei8_v_i16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i16mf4((const int16_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vloxei8_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (const int16_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxei8_v_u16m1(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u16m1((const uint16_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vloxei8_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (const uint16_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxei8_v_u16m2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u16m2((const uint16_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vloxei8_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (const uint16_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_u16m4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u16m4((const uint16_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vloxei8_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (const uint16_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxei8_v_u16m8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u16m8((const uint16_t *)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vloxei8_v_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (const uint16_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vloxei8_v_u16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u16mf2((const uint16_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vloxei8_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (const uint16_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxei8_v_u16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u16mf4((const uint16_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vloxei8_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (const uint16_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxei16_v_i16m1(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i16m1((const int16_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vloxei16_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (const int16_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_i16m2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i16m2((const int16_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vloxei16_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (const int16_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxei16_v_i16m4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i16m4((const int16_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vloxei16_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (const int16_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxei16_v_i16m8(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i16m8((const int16_t *)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vloxei16_v_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (const int16_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vloxei16_v_i16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i16mf2((const int16_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vloxei16_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (const int16_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxei16_v_i16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i16mf4((const int16_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vloxei16_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (const int16_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxei16_v_u16m1(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u16m1((const uint16_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vloxei16_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (const uint16_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_u16m2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u16m2((const uint16_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vloxei16_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (const uint16_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxei16_v_u16m4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u16m4((const uint16_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vloxei16_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (const uint16_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxei16_v_u16m8(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u16m8((const uint16_t *)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vloxei16_v_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (const uint16_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vloxei16_v_u16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u16mf2((const uint16_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vloxei16_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (const uint16_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxei16_v_u16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u16mf4((const uint16_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vloxei16_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (const uint16_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxei32_v_i16m1(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i16m1((const int16_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vloxei32_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (const int16_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_i16m2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i16m2((const int16_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vloxei32_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (const int16_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxei32_v_i16m4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i16m4((const int16_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vloxei32_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (const int16_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxei32_v_i16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i16mf2((const int16_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vloxei32_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (const int16_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxei32_v_i16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i16mf4((const int16_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vloxei32_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (const int16_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxei32_v_u16m1(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u16m1((const uint16_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vloxei32_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (const uint16_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_u16m2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u16m2((const uint16_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vloxei32_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (const uint16_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxei32_v_u16m4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u16m4((const uint16_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vloxei32_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (const uint16_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxei32_v_u16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u16mf2((const uint16_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vloxei32_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (const uint16_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxei32_v_u16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u16mf4((const uint16_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vloxei32_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (const uint16_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxei64_v_i16m1(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i16m1((const int16_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vloxei64_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (const int16_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_i16m2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i16m2((const int16_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vloxei64_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (const int16_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxei64_v_i16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i16mf2((const int16_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vloxei64_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (const int16_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxei64_v_i16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i16mf4((const int16_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vloxei64_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (const int16_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxei64_v_u16m1(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u16m1((const uint16_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vloxei64_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (const uint16_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_u16m2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u16m2((const uint16_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vloxei64_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (const uint16_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxei64_v_u16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u16mf2((const uint16_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vloxei64_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (const uint16_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxei64_v_u16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u16mf4((const uint16_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vloxei64_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (const uint16_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_i32m1(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i32m1((const int32_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vloxei8_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (const int32_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxei8_v_i32m2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i32m2((const int32_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vloxei8_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (const int32_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxei8_v_i32m4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i32m4((const int32_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vloxei8_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (const int32_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_i32m8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i32m8((const int32_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vloxei8_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (const int32_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxei8_v_i32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i32mf2((const int32_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vloxei8_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (const int32_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxei8_v_u32m1(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u32m1((const uint32_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vloxei8_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (const uint32_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxei8_v_u32m2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u32m2((const uint32_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vloxei8_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (const uint32_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxei8_v_u32m4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u32m4((const uint32_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vloxei8_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (const uint32_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_u32m8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u32m8((const uint32_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vloxei8_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (const uint32_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxei8_v_u32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u32mf2((const uint32_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vloxei8_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (const uint32_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxei16_v_i32m1(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i32m1((const int32_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vloxei16_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (const int32_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxei16_v_i32m2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i32m2((const int32_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vloxei16_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (const int32_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_i32m4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i32m4((const int32_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vloxei16_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (const int32_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxei16_v_i32m8(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i32m8((const int32_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vloxei16_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (const int32_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxei16_v_i32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i32mf2((const int32_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vloxei16_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (const int32_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxei16_v_u32m1(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u32m1((const uint32_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vloxei16_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (const uint32_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxei16_v_u32m2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u32m2((const uint32_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vloxei16_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (const uint32_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_u32m4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u32m4((const uint32_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vloxei16_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (const uint32_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxei16_v_u32m8(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u32m8((const uint32_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vloxei16_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (const uint32_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxei16_v_u32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u32mf2((const uint32_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vloxei16_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (const uint32_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxei32_v_i32m1(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i32m1((const int32_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vloxei32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (const int32_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxei32_v_i32m2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i32m2((const int32_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vloxei32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (const int32_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_i32m4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i32m4((const int32_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vloxei32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (const int32_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxei32_v_i32m8(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i32m8((const int32_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vloxei32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (const int32_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxei32_v_i32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i32mf2((const int32_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vloxei32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (const int32_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxei32_v_u32m1(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u32m1((const uint32_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vloxei32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (const uint32_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxei32_v_u32m2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u32m2((const uint32_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vloxei32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (const uint32_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_u32m4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u32m4((const uint32_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vloxei32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (const uint32_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxei32_v_u32m8(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u32m8((const uint32_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vloxei32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (const uint32_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxei32_v_u32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u32mf2((const uint32_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vloxei32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (const uint32_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxei64_v_i32m1(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i32m1((const int32_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vloxei64_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (const int32_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxei64_v_i32m2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i32m2((const int32_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vloxei64_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (const int32_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_i32m4(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i32m4((const int32_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vloxei64_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (const int32_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxei64_v_i32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i32mf2((const int32_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vloxei64_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (const int32_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxei64_v_u32m1(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u32m1((const uint32_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vloxei64_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (const uint32_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxei64_v_u32m2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u32m2((const uint32_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vloxei64_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (const uint32_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_u32m4(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u32m4((const uint32_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vloxei64_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (const uint32_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxei64_v_u32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u32mf2((const uint32_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vloxei64_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (const uint32_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_i64m1(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i64m1((const int64_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vloxei8_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (const int64_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxei8_v_i64m2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i64m2((const int64_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vloxei8_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (const int64_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxei8_v_i64m4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i64m4((const int64_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vloxei8_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (const int64_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxei8_v_i64m8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_i64m8((const int64_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vloxei8_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (const int64_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vse8_v_i8m1(op0, op1, op2) \
-__builtin_rvv_vse8_v_i8m1((int8_t *)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vse8_v_i8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vse8_v_i8m2(op0, op1, op2) \
-__builtin_rvv_vse8_v_i8m2((int8_t *)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vse8_v_i8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vse8_v_i8m4(op0, op1, op2) \
-__builtin_rvv_vse8_v_i8m4((int8_t *)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vse8_v_i8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vse8_v_i8m8(op0, op1, op2) \
-__builtin_rvv_vse8_v_i8m8((int8_t *)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vse8_v_i8m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_i8m8_m((vbool1_t)(op0), (int8_t *)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vse8_v_i8mf2(op0, op1, op2) \
-__builtin_rvv_vse8_v_i8mf2((int8_t *)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vse8_v_i8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vse8_v_i8mf4(op0, op1, op2) \
-__builtin_rvv_vse8_v_i8mf4((int8_t *)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vse8_v_i8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vse8_v_i8mf8(op0, op1, op2) \
-__builtin_rvv_vse8_v_i8mf8((int8_t *)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vse8_v_i8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vloxei8_v_u64m1(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u64m1((const uint64_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vloxei8_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (const uint64_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxei8_v_u64m2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u64m2((const uint64_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vloxei8_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (const uint64_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxei8_v_u64m4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u64m4((const uint64_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vloxei8_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (const uint64_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxei8_v_u64m8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_u64m8((const uint64_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vloxei8_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (const uint64_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_i64m1(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i64m1((const int64_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vloxei16_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (const int64_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxei16_v_i64m2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i64m2((const int64_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vloxei16_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (const int64_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxei16_v_i64m4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i64m4((const int64_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vloxei16_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (const int64_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_i64m8(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_i64m8((const int64_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vloxei16_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (const int64_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxei16_v_u64m1(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u64m1((const uint64_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vloxei16_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (const uint64_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxei16_v_u64m2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u64m2((const uint64_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vloxei16_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (const uint64_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxei16_v_u64m4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u64m4((const uint64_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vloxei16_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (const uint64_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_u64m8(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_u64m8((const uint64_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vloxei16_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (const uint64_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_i64m1(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i64m1((const int64_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vloxei32_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (const int64_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxei32_v_i64m2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i64m2((const int64_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vloxei32_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (const int64_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxei32_v_i64m4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i64m4((const int64_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vloxei32_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (const int64_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_i64m8(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_i64m8((const int64_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vloxei32_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (const int64_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxei32_v_u64m1(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u64m1((const uint64_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vloxei32_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (const uint64_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxei32_v_u64m2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u64m2((const uint64_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vloxei32_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (const uint64_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxei32_v_u64m4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u64m4((const uint64_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vloxei32_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (const uint64_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_u64m8(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_u64m8((const uint64_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vloxei32_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (const uint64_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_i64m1(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i64m1((const int64_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vloxei64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (const int64_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxei64_v_i64m2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i64m2((const int64_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vloxei64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (const int64_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxei64_v_i64m4(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i64m4((const int64_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vloxei64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (const int64_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_i64m8(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_i64m8((const int64_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vloxei64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (const int64_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxei64_v_u64m1(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u64m1((const uint64_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vloxei64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (const uint64_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxei64_v_u64m2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u64m2((const uint64_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vloxei64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (const uint64_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxei64_v_u64m4(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u64m4((const uint64_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vloxei64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (const uint64_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_u64m8(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_u64m8((const uint64_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vloxei64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (const uint64_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vse8_v_u8m1(op0, op1, op2) \
-__builtin_rvv_vse8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vse8_v_u8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vse8_v_u8m2(op0, op1, op2) \
-__builtin_rvv_vse8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vse8_v_u8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vse8_v_u8m4(op0, op1, op2) \
-__builtin_rvv_vse8_v_u8m4((uint8_t *)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vse8_v_u8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vse8_v_u8m8(op0, op1, op2) \
-__builtin_rvv_vse8_v_u8m8((uint8_t *)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vse8_v_u8m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_u8m8_m((vbool1_t)(op0), (uint8_t *)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vse8_v_u8mf2(op0, op1, op2) \
-__builtin_rvv_vse8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vse8_v_u8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vse8_v_u8mf4(op0, op1, op2) \
-__builtin_rvv_vse8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vse8_v_u8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vse8_v_u8mf8(op0, op1, op2) \
-__builtin_rvv_vse8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vse8_v_u8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vwaddu_wv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u16mf4((vuint16mf4_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u16mf2((vuint16mf2_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u16m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u16m1((vuint16m1_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u16m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u16m2((vuint16m2_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u16m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u16m4((vuint16m4_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u16m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u16m8((vuint16m8_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u32mf2((vuint32mf2_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u32m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u32m1((vuint32m1_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u32m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u32m2((vuint32m2_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u32m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u32m4((vuint32m4_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u32m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u32m8((vuint32m8_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u64m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u64m1((vuint64m1_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u64m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u64m2((vuint64m2_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u64m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u64m4((vuint64m4_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vwaddu_wv_u64m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_wv_u64m8((vuint64m8_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vwaddu_wv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsse8_v_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_i8m1((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsse8_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsse8_v_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_i8m2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vsse8_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsse8_v_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_i8m4((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vsse8_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsse8_v_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_i8m8((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vsse8_v_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_i8m8_m((vbool1_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vsse8_v_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_i8mf2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsse8_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsse8_v_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_i8mf4((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsse8_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsse8_v_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_i8mf8((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsse8_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i8m2((int8_t *)(op0), (vuint16m4_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint16m4_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i8m4((int8_t *)(op0), (vuint16m8_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (vuint16m8_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u8m2((uint8_t *)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u8m4((uint8_t *)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (vuint16m8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i8m2((int8_t *)(op0), (vuint32m8_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint32m8_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vadd_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vadd_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vadd_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vadd_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vadd_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vadd_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vadd_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vadd_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vadd_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vadd_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vadd_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vadd_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vadd_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vadd_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vadd_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vadd_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vadd_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vadd_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vadd_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vadd_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vadd_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vadd_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vadd_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vadd_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vadd_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vadd_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vadd_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vadd_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vadd_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vadd_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vadd_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vadd_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vadd_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vadd_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vadd_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vadd_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vadd_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vadd_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vadd_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vadd_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vadd_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vadd_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vadd_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vadd_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vadd_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vadd_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vadd_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vadd_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vadd_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vadd_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vadd_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vadd_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vadd_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vadd_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vadd_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vadd_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vadd_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vadd_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vadd_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vadd_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vadd_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vadd_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vadd_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vadd_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vadd_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vadd_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vadd_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vadd_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vadd_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vadd_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vadd_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vadd_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vadd_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vadd_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vadd_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vadd_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vadd_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vadd_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vadd_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vadd_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vadd_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vadd_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vadd_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vadd_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vadd_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vadd_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vadd_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vadd_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vadd_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vadd_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vadd_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vadd_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vadd_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vadd_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vadd_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vadd_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vadd_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vadd_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vadd_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vadd_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vadd_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vadd_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vadd_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vadd_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vadd_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vadd_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vadd_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vadd_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vadd_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vadd_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vadd_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vadd_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vadd_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vadd_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vadd_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vadd_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vadd_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vadd_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vadd_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vadd_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vadd_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vadd_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vadd_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vadd_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vadd_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vadd_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vadd_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vadd_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vadd_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vadd_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vadd_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vadd_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vadd_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vadd_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vadd_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vadd_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vsub_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vsub_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsub_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vsub_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsub_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vsub_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsub_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vsub_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vsub_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vsub_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsub_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vsub_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsub_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vsub_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsub_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vsub_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsub_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vsub_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsub_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vsub_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsub_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vsub_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vsub_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vsub_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsub_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vsub_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsub_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vsub_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsub_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vsub_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsub_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vsub_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsub_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vsub_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vsub_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vsub_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsub_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vsub_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsub_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vsub_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsub_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vsub_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsub_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vsub_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vsub_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u8m2((uint8_t *)(op0), (vuint32m8_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint32m8_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsub_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsub_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsub_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsub_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsub_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsub_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsub_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsub_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsub_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsub_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsub_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsub_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsub_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsub_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsub_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsub_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsub_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsub_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsub_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsub_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsub_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsub_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsub_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsub_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsub_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsub_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsub_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsub_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsub_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsub_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsub_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsub_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsub_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsub_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsub_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsub_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsub_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsub_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsub_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsub_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsub_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsub_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsub_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vsub_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsub_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsub_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vsub_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsub_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vsub_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsub_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vsub_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsub_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vsub_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vsub_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vsub_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsub_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vsub_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsub_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vsub_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsub_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vsub_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsub_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vsub_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsub_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vsub_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsub_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vsub_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vsub_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vsub_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsub_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vsub_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsub_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vsub_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsub_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vsub_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsub_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vsub_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsub_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vsub_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsub_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vsub_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsub_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vsub_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsub_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vsub_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsub_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vsub_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsub_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vsub_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vsub_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsub_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsub_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsub_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsub_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsub_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsub_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsub_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsub_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsub_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsub_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsub_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsub_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsub_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsub_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsub_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsub_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsub_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsub_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsub_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsub_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsub_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsub_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsub_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsub_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsub_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsub_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsub_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vsub_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vsub_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vsub_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vsub_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vsub_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vsub_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vsub_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vsub_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vsub_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vsub_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vsub_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vsub_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vsub_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vsub_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vsub_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vsub_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vsub_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vsub_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsub_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vrsub_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrsub_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrsub_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrsub_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrsub_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrsub_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrsub_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrsub_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrsub_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrsub_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrsub_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrsub_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrsub_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrsub_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrsub_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrsub_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrsub_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrsub_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrsub_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrsub_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrsub_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrsub_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrsub_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrsub_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrsub_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrsub_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrsub_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vrsub_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vrsub_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vrsub_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vrsub_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vrsub_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vrsub_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vrsub_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vrsub_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vrsub_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vrsub_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vrsub_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vrsub_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vrsub_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vrsub_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vrsub_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vrsub_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vrsub_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vrsub_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vrsub_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vrsub_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vrsub_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vrsub_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vrsub_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vrsub_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vrsub_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vrsub_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vrsub_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vrsub_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vrsub_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vrsub_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vrsub_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vrsub_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vrsub_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vrsub_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vrsub_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vrsub_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vrsub_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vrsub_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vrsub_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vrsub_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vrsub_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vrsub_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vrsub_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vrsub_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vrsub_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vrsub_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vrsub_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vrsub_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vrsub_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vrsub_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vrsub_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vrsub_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vrsub_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vrsub_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vrsub_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vrsub_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vrsub_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vrsub_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vrsub_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vrsub_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vrsub_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vrsub_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrsub_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u16mf4((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u16mf2((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u16m1((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u16m2((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u16m4((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u16m8((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u32mf2((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u32m1((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u32m2((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u32m4((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u32m8((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u64m1((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u64m2((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u64m4((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwaddu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_vx_u64m8((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwaddu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u16mf4((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u16mf2((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u16m1((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u16m2((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u16m4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u16m8((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u32mf2((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u32m1((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u32m2((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u32m4((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u32m8((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u64m1((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u64m2((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u64m4((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vwsubu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_vv_u64m8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vwsubu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u16mf4((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u16mf2((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u16m1((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u16m2((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u16m4((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u16m8((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u32mf2((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u32m1((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u32m2((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u32m4((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u32m8((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u64m1((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u64m2((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u64m4((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwsubu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_vx_u64m8((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwsubu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwadd_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i16mf4((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vwadd_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vwadd_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i16mf2((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vwadd_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vwadd_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i16m1((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vwadd_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vwadd_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i16m2((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vwadd_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vwadd_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i16m4((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vwadd_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vwadd_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i16m8((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vwadd_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vwadd_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i32mf2((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vwadd_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vwadd_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i32m1((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vwadd_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vwadd_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i32m2((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vwadd_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwadd_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i32m4((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vwadd_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vwadd_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i32m8((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vwadd_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vwadd_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i64m1((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vwadd_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vwadd_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i64m2((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vwadd_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwadd_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i64m4((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vwadd_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vwadd_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vwadd_vv_i64m8((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vwadd_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vwadd_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i16mf4((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i16mf2((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i16m1((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i16m2((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i16m4((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i16m8((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i32mf2((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwadd_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwadd_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i32m1((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwadd_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwadd_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i32m2((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwadd_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwadd_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i32m4((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwadd_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwadd_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i32m8((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwadd_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwadd_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i64m1((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwadd_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwadd_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i64m2((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwadd_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwadd_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i64m4((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwadd_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwadd_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vwadd_vx_i64m8((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwadd_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vwsub_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i16mf4((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vwsub_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vwsub_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i16mf2((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vwsub_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vwsub_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i16m1((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vwsub_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vwsub_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i16m2((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vwsub_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vwsub_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i16m4((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vwsub_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vwsub_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i16m8((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vwsub_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vwsub_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i32mf2((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vwsub_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vwsub_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i32m1((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vwsub_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vwsub_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i32m2((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vwsub_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwsub_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i32m4((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vwsub_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vwsub_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i32m8((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vwsub_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vwsub_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i64m1((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vwsub_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vwsub_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i64m2((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vwsub_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwsub_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i64m4((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vwsub_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vwsub_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vwsub_vv_i64m8((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vwsub_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vwsub_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i16mf4((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i16mf2((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i16m1((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i16m2((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i16m4((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i16m8((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i32mf2((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwsub_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwsub_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i32m1((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwsub_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwsub_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i32m2((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwsub_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwsub_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i32m4((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwsub_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwsub_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i32m8((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwsub_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwsub_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i64m1((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwsub_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwsub_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i64m2((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwsub_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwsub_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i64m4((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwsub_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwsub_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vwsub_vx_i64m8((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwsub_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u16mf4((vuint16mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u16mf2((vuint16mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u16m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u16m1((vuint16m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u16m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u16m2((vuint16m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u16m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u16m4((vuint16m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u16m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u16m8((vuint16m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u32mf2((vuint32mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u32m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u32m1((vuint32m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u32m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u32m2((vuint32m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u32m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u32m4((vuint32m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u32m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u32m8((vuint32m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u64m1(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u64m1((vuint64m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u64m2(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u64m2((vuint64m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u64m4(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u64m4((vuint64m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwaddu_wx_u64m8(op0, op1, op2) \
-__builtin_rvv_vwaddu_wx_u64m8((vuint64m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwaddu_wx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwaddu_wx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u16mf4((vuint16mf4_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u16mf2((vuint16mf2_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u16m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u16m1((vuint16m1_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u16m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u16m2((vuint16m2_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u16m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u16m4((vuint16m4_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u16m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u16m8((vuint16m8_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u32mf2((vuint32mf2_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u32m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u32m1((vuint32m1_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u32m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u32m2((vuint32m2_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u32m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u32m4((vuint32m4_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u32m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u32m8((vuint32m8_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u64m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u64m1((vuint64m1_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u64m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u64m2((vuint64m2_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u64m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u64m4((vuint64m4_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vwsubu_wv_u64m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_wv_u64m8((vuint64m8_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vwsubu_wv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u16mf4((vuint16mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u16mf2((vuint16mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u16m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u16m1((vuint16m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u16m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u16m2((vuint16m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u16m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u16m4((vuint16m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u16m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u16m8((vuint16m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u32mf2((vuint32mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u32m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u32m1((vuint32m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u32m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u32m2((vuint32m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u32m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u32m4((vuint32m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u32m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u32m8((vuint32m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u64m1(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u64m1((vuint64m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u64m2(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u64m2((vuint64m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u64m4(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u64m4((vuint64m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwsubu_wx_u64m8(op0, op1, op2) \
-__builtin_rvv_vwsubu_wx_u64m8((vuint64m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwsubu_wx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsubu_wx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwadd_wv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i16mf4((vint16mf4_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vwadd_wv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vwadd_wv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i16mf2((vint16mf2_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vwadd_wv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vwadd_wv_i16m1(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i16m1((vint16m1_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vwadd_wv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vwadd_wv_i16m2(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i16m2((vint16m2_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vwadd_wv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vwadd_wv_i16m4(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i16m4((vint16m4_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vwadd_wv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vwadd_wv_i16m8(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i16m8((vint16m8_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vwadd_wv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vwadd_wv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i32mf2((vint32mf2_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vwadd_wv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vwadd_wv_i32m1(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i32m1((vint32m1_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vwadd_wv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vwadd_wv_i32m2(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i32m2((vint32m2_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vwadd_wv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwadd_wv_i32m4(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i32m4((vint32m4_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vwadd_wv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vwadd_wv_i32m8(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i32m8((vint32m8_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vwadd_wv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vwadd_wv_i64m1(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i64m1((vint64m1_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vwadd_wv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vwadd_wv_i64m2(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i64m2((vint64m2_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vwadd_wv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwadd_wv_i64m4(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i64m4((vint64m4_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vwadd_wv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vwadd_wv_i64m8(op0, op1, op2) \
-__builtin_rvv_vwadd_wv_i64m8((vint64m8_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vwadd_wv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vwadd_wx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i16mf4((vint16mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_wx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_wx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i16mf2((vint16mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_wx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_wx_i16m1(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i16m1((vint16m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_wx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_wx_i16m2(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i16m2((vint16m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_wx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_wx_i16m4(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i16m4((vint16m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_wx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_wx_i16m8(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i16m8((vint16m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwadd_wx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwadd_wx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i32mf2((vint32mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwadd_wx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwadd_wx_i32m1(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i32m1((vint32m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwadd_wx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwadd_wx_i32m2(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i32m2((vint32m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwadd_wx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwadd_wx_i32m4(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i32m4((vint32m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwadd_wx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwadd_wx_i32m8(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i32m8((vint32m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwadd_wx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwadd_wx_i64m1(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i64m1((vint64m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwadd_wx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwadd_wx_i64m2(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i64m2((vint64m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwadd_wx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwadd_wx_i64m4(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i64m4((vint64m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwadd_wx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwadd_wx_i64m8(op0, op1, op2) \
-__builtin_rvv_vwadd_wx_i64m8((vint64m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwadd_wx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwadd_wx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwsub_wv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i16mf4((vint16mf4_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vwsub_wv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vwsub_wv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i16mf2((vint16mf2_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vwsub_wv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vwsub_wv_i16m1(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i16m1((vint16m1_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vwsub_wv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vwsub_wv_i16m2(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i16m2((vint16m2_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vwsub_wv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vwsub_wv_i16m4(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i16m4((vint16m4_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vwsub_wv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vwsub_wv_i16m8(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i16m8((vint16m8_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vwsub_wv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vwsub_wv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i32mf2((vint32mf2_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vwsub_wv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vwsub_wv_i32m1(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i32m1((vint32m1_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vwsub_wv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vwsub_wv_i32m2(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i32m2((vint32m2_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vwsub_wv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwsub_wv_i32m4(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i32m4((vint32m4_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vwsub_wv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vwsub_wv_i32m8(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i32m8((vint32m8_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vwsub_wv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vwsub_wv_i64m1(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i64m1((vint64m1_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vwsub_wv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vwsub_wv_i64m2(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i64m2((vint64m2_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vwsub_wv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwsub_wv_i64m4(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i64m4((vint64m4_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vwsub_wv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vwsub_wv_i64m8(op0, op1, op2) \
-__builtin_rvv_vwsub_wv_i64m8((vint64m8_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vwsub_wv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vwsub_wx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i16mf4((vint16mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_wx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_wx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i16mf2((vint16mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_wx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_wx_i16m1(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i16m1((vint16m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_wx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_wx_i16m2(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i16m2((vint16m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_wx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_wx_i16m4(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i16m4((vint16m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_wx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_wx_i16m8(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i16m8((vint16m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwsub_wx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwsub_wx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i32mf2((vint32mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwsub_wx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwsub_wx_i32m1(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i32m1((vint32m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwsub_wx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwsub_wx_i32m2(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i32m2((vint32m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwsub_wx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwsub_wx_i32m4(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i32m4((vint32m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwsub_wx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwsub_wx_i32m8(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i32m8((vint32m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwsub_wx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwsub_wx_i64m1(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i64m1((vint64m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwsub_wx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwsub_wx_i64m2(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i64m2((vint64m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwsub_wx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwsub_wx_i64m4(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i64m4((vint64m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwsub_wx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwsub_wx_i64m8(op0, op1, op2) \
-__builtin_rvv_vwsub_wx_i64m8((vint64m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwsub_wx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwsub_wx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwcvt_x_x_v_i16m2(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i16m2((vint8m1_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i16m4(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i16m4((vint8m2_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i16m8(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i16m8((vint8m4_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i16m1(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i16m1((vint8mf2_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i16mf2(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i16mf2((vint8mf4_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i16mf4(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i16mf4((vint8mf8_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i32m2(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i32m2((vint16m1_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i32m4(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i32m4((vint16m2_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i32m8(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i32m8((vint16m4_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i32m1(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i32m1((vint16mf2_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i32mf2(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i32mf2((vint16mf4_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i64m2(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i64m2((vint32m1_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i64m4(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i64m4((vint32m2_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i64m8(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i64m8((vint32m4_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vwcvt_x_x_v_i64m1(op0, op1) \
-__builtin_rvv_vwcvt_x_x_v_i64m1((vint32mf2_t)(op0), (size_t)(op1))
-#define vwcvt_x_x_v_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvt_x_x_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vadc_vvm_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vvm_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vvm_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vadc_vvm_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vadc_vvm_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vvm_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vvm_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vvm_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vvm_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vvm_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vvm_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vadc_vvm_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vvm_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vvm_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vvm_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vvm_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vvm_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vvm_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vvm_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vvm_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vvm_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vvm_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vxm_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i8m1((vint8m1_t)(op0), (int8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vxm_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i8m2((vint8m2_t)(op0), (int8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vxm_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i8m4((vint8m4_t)(op0), (int8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vadc_vxm_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i8m8((vint8m8_t)(op0), (int8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vadc_vxm_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vxm_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vxm_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vxm_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i16m1((vint16m1_t)(op0), (int16_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vxm_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i16m2((vint16m2_t)(op0), (int16_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vxm_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i16m4((vint16m4_t)(op0), (int16_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vxm_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i16m8((vint16m8_t)(op0), (int16_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vadc_vxm_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vxm_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vxm_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i32m1((vint32m1_t)(op0), (int32_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vxm_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i32m2((vint32m2_t)(op0), (int32_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vxm_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i32m4((vint32m4_t)(op0), (int32_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vxm_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i32m8((vint32m8_t)(op0), (int32_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vxm_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vxm_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i64m1((vint64m1_t)(op0), (int64_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vxm_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i64m2((vint64m2_t)(op0), (int64_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vxm_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i64m4((vint64m4_t)(op0), (int64_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vxm_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_i64m8((vint64m8_t)(op0), (int64_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vvm_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vvm_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vvm_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vadc_vvm_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vadc_vvm_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vvm_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vvm_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vvm_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vvm_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vvm_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vvm_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vadc_vvm_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vvm_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vvm_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vvm_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vvm_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vvm_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vvm_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vvm_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vvm_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vvm_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vvm_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vvm_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vxm_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vxm_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vxm_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vadc_vxm_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vadc_vxm_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vxm_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vxm_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vxm_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vxm_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vxm_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vxm_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vadc_vxm_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vxm_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vxm_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vxm_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vxm_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vadc_vxm_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vadc_vxm_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vxm_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vadc_vxm_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vadc_vxm_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vadc_vxm_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vadc_vxm_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i8m1_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i8m1_b8((vint8m1_t)(op0), (vint8m1_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i8m2_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i8m2_b4((vint8m2_t)(op0), (vint8m2_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i8m4_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i8m4_b2((vint8m4_t)(op0), (vint8m4_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i8m8_b1(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i8m8_b1((vint8m8_t)(op0), (vint8m8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i8mf2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i8mf2_b16((vint8mf2_t)(op0), (vint8mf2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i8mf4_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i8mf4_b32((vint8mf4_t)(op0), (vint8mf4_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i8mf8_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i8mf8_b64((vint8mf8_t)(op0), (vint8mf8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i16m1_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i16m1_b16((vint16m1_t)(op0), (vint16m1_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i16m2_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i16m2_b8((vint16m2_t)(op0), (vint16m2_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i16m4_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i16m4_b4((vint16m4_t)(op0), (vint16m4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i16m8_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i16m8_b2((vint16m8_t)(op0), (vint16m8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i16mf2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i16mf2_b32((vint16mf2_t)(op0), (vint16mf2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i16mf4_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i16mf4_b64((vint16mf4_t)(op0), (vint16mf4_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i32m1_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i32m1_b32((vint32m1_t)(op0), (vint32m1_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i32m2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i32m2_b16((vint32m2_t)(op0), (vint32m2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i32m4_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i32m4_b8((vint32m4_t)(op0), (vint32m4_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i32m8_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i32m8_b4((vint32m8_t)(op0), (vint32m8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i32mf2_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i32mf2_b64((vint32mf2_t)(op0), (vint32mf2_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i64m1_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i64m1_b64((vint64m1_t)(op0), (vint64m1_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i64m2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i64m2_b32((vint64m2_t)(op0), (vint64m2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i64m4_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i64m4_b16((vint64m4_t)(op0), (vint64m4_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vvm_i64m8_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_i64m8_b8((vint64m8_t)(op0), (vint64m8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i8m1_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i8m1_b8((vint8m1_t)(op0), (int8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i8m2_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i8m2_b4((vint8m2_t)(op0), (int8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i8m4_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i8m4_b2((vint8m4_t)(op0), (int8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i8m8_b1(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i8m8_b1((vint8m8_t)(op0), (int8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i8mf2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i8mf2_b16((vint8mf2_t)(op0), (int8_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i8mf4_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i8mf4_b32((vint8mf4_t)(op0), (int8_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i8mf8_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i8mf8_b64((vint8mf8_t)(op0), (int8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i16m1_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i16m1_b16((vint16m1_t)(op0), (int16_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i16m2_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i16m2_b8((vint16m2_t)(op0), (int16_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i16m4_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i16m4_b4((vint16m4_t)(op0), (int16_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i16m8_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i16m8_b2((vint16m8_t)(op0), (int16_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i16mf2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i16mf2_b32((vint16mf2_t)(op0), (int16_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i16mf4_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i16mf4_b64((vint16mf4_t)(op0), (int16_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i32m1_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i32m1_b32((vint32m1_t)(op0), (int32_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i32m2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i32m2_b16((vint32m2_t)(op0), (int32_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i32m4_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i32m4_b8((vint32m4_t)(op0), (int32_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i32m8_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i32m8_b4((vint32m8_t)(op0), (int32_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i32mf2_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i32mf2_b64((vint32mf2_t)(op0), (int32_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i64m1_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i64m1_b64((vint64m1_t)(op0), (int64_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i64m2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i64m2_b32((vint64m2_t)(op0), (int64_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i64m4_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i64m4_b16((vint64m4_t)(op0), (int64_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vxm_i64m8_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_i64m8_b8((vint64m8_t)(op0), (int64_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u8m1_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u8m1_b8((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u8m2_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u8m2_b4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u8m4_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u8m4_b2((vuint8m4_t)(op0), (vuint8m4_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u8m8_b1(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u8m8_b1((vuint8m8_t)(op0), (vuint8m8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u8mf2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u8mf2_b16((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u8mf4_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u8mf4_b32((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u8mf8_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u8mf8_b64((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u16m1_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u16m1_b16((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u16m2_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u16m2_b8((vuint16m2_t)(op0), (vuint16m2_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u16m4_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u16m4_b4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u16m8_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u16m8_b2((vuint16m8_t)(op0), (vuint16m8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u16mf2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u16mf2_b32((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u16mf4_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u16mf4_b64((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u32m1_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u32m1_b32((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u32m2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u32m2_b16((vuint32m2_t)(op0), (vuint32m2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u32m4_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u32m4_b8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u32m8_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u32m8_b4((vuint32m8_t)(op0), (vuint32m8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u32mf2_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u32mf2_b64((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u64m1_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u64m1_b64((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u64m2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u64m2_b32((vuint64m2_t)(op0), (vuint64m2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u64m4_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u64m4_b16((vuint64m4_t)(op0), (vuint64m4_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vvm_u64m8_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vvm_u64m8_b8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u8m1_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u8m1_b8((vuint8m1_t)(op0), (uint8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u8m2_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u8m2_b4((vuint8m2_t)(op0), (uint8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u8m4_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u8m4_b2((vuint8m4_t)(op0), (uint8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u8m8_b1(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u8m8_b1((vuint8m8_t)(op0), (uint8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u8mf2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u8mf2_b16((vuint8mf2_t)(op0), (uint8_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u8mf4_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u8mf4_b32((vuint8mf4_t)(op0), (uint8_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u8mf8_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u8mf8_b64((vuint8mf8_t)(op0), (uint8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u16m1_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u16m1_b16((vuint16m1_t)(op0), (uint16_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u16m2_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u16m2_b8((vuint16m2_t)(op0), (uint16_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u16m4_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u16m4_b4((vuint16m4_t)(op0), (uint16_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u16m8_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u16m8_b2((vuint16m8_t)(op0), (uint16_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u16mf2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u16mf2_b32((vuint16mf2_t)(op0), (uint16_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u16mf4_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u16mf4_b64((vuint16mf4_t)(op0), (uint16_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u32m1_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u32m1_b32((vuint32m1_t)(op0), (uint32_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u32m2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u32m2_b16((vuint32m2_t)(op0), (uint32_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u32m4_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u32m4_b8((vuint32m4_t)(op0), (uint32_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u32m8_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u32m8_b4((vuint32m8_t)(op0), (uint32_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u32mf2_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u32mf2_b64((vuint32mf2_t)(op0), (uint32_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u64m1_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u64m1_b64((vuint64m1_t)(op0), (uint64_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u64m2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u64m2_b32((vuint64m2_t)(op0), (uint64_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u64m4_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u64m4_b16((vuint64m4_t)(op0), (uint64_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmadc_vxm_u64m8_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmadc_vxm_u64m8_b8((vuint64m8_t)(op0), (uint64_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmadc_vv_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i8m1_b8((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmadc_vv_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i8m2_b4((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmadc_vv_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i8m4_b2((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmadc_vv_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i8m8_b1((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmadc_vv_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i8mf2_b16((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmadc_vv_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i8mf4_b32((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmadc_vv_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i8mf8_b64((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmadc_vv_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i16m1_b16((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmadc_vv_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i16m2_b8((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmadc_vv_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i16m4_b4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmadc_vv_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i16m8_b2((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmadc_vv_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i16mf2_b32((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmadc_vv_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i16mf4_b64((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmadc_vv_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i32m1_b32((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmadc_vv_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i32m2_b16((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmadc_vv_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i32m4_b8((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmadc_vv_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i32m8_b4((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmadc_vv_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i32mf2_b64((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmadc_vv_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i64m1_b64((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmadc_vv_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i64m2_b32((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmadc_vv_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i64m4_b16((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmadc_vv_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_i64m8_b8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmadc_vx_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i8m1_b8((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmadc_vx_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i8m2_b4((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmadc_vx_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i8m4_b2((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmadc_vx_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i8m8_b1((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmadc_vx_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i8mf2_b16((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmadc_vx_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i8mf4_b32((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmadc_vx_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i8mf8_b64((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmadc_vx_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i16m1_b16((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmadc_vx_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i16m2_b8((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmadc_vx_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i16m4_b4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmadc_vx_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i16m8_b2((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmadc_vx_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i16mf2_b32((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmadc_vx_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i16mf4_b64((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmadc_vx_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i32m1_b32((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmadc_vx_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i32m2_b16((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmadc_vx_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i32m4_b8((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmadc_vx_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i32m8_b4((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmadc_vx_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i32mf2_b64((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmadc_vx_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i64m1_b64((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmadc_vx_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i64m2_b32((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmadc_vx_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i64m4_b16((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmadc_vx_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_i64m8_b8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsuxei8_v_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i16m2((int16_t *)(op0), (vuint8m1_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint8m1_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i16m4((int16_t *)(op0), (vuint8m2_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint8m2_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i16m8((int16_t *)(op0), (vuint8m4_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i16m8_m((vbool2_t)(op0), (int16_t *)(op1), (vuint8m4_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmadc_vv_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u8m1_b8((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmadc_vv_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u8m2_b4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmadc_vv_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u8m4_b2((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmadc_vv_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u8m8_b1((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmadc_vv_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u8mf2_b16((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmadc_vv_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u8mf4_b32((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmadc_vv_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u8mf8_b64((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmadc_vv_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u16m1_b16((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmadc_vv_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u16m2_b8((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmadc_vv_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u16m4_b4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmadc_vv_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u16m8_b2((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmadc_vv_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u16mf2_b32((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmadc_vv_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u16mf4_b64((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmadc_vv_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u32m1_b32((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmadc_vv_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u32m2_b16((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmadc_vv_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u32m4_b8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmadc_vv_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u32m8_b4((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmadc_vv_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u32mf2_b64((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmadc_vv_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u64m1_b64((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmadc_vv_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u64m2_b32((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmadc_vv_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u64m4_b16((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmadc_vv_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vv_u64m8_b8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmadc_vx_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u8m1_b8((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmadc_vx_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u8m2_b4((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmadc_vx_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u8m4_b2((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmadc_vx_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u8m8_b1((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmadc_vx_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u8mf2_b16((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmadc_vx_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u8mf4_b32((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmadc_vx_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u8mf8_b64((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmadc_vx_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u16m1_b16((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmadc_vx_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u16m2_b8((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmadc_vx_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u16m4_b4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmadc_vx_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u16m8_b2((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmadc_vx_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u16mf2_b32((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmadc_vx_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u16mf4_b64((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmadc_vx_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u32m1_b32((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmadc_vx_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u32m2_b16((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmadc_vx_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u32m4_b8((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmadc_vx_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u32m8_b4((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmadc_vx_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u32mf2_b64((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmadc_vx_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u64m1_b64((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmadc_vx_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u64m2_b32((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmadc_vx_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u64m4_b16((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmadc_vx_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmadc_vx_u64m8_b8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vsbc_vvm_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vvm_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i8m1((vint8m1_t)(op0), (int8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i8m2((vint8m2_t)(op0), (int8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i8m4((vint8m4_t)(op0), (int8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i8m8((vint8m8_t)(op0), (int8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i16m1((vint16m1_t)(op0), (int16_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i16m2((vint16m2_t)(op0), (int16_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i16m4((vint16m4_t)(op0), (int16_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i16m8((vint16m8_t)(op0), (int16_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i32m1((vint32m1_t)(op0), (int32_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i32m2((vint32m2_t)(op0), (int32_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i32m4((vint32m4_t)(op0), (int32_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i32m8((vint32m8_t)(op0), (int32_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i64m1((vint64m1_t)(op0), (int64_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i64m2((vint64m2_t)(op0), (int64_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i64m4((vint64m4_t)(op0), (int64_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vxm_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_i64m8((vint64m8_t)(op0), (int64_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vvm_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vvm_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vsbc_vxm_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsbc_vxm_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i8m1_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i8m1_b8((vint8m1_t)(op0), (vint8m1_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i8m2_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i8m2_b4((vint8m2_t)(op0), (vint8m2_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i8m4_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i8m4_b2((vint8m4_t)(op0), (vint8m4_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i8m8_b1(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i8m8_b1((vint8m8_t)(op0), (vint8m8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i8mf2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i8mf2_b16((vint8mf2_t)(op0), (vint8mf2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i8mf4_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i8mf4_b32((vint8mf4_t)(op0), (vint8mf4_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i8mf8_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i8mf8_b64((vint8mf8_t)(op0), (vint8mf8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i16m1_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i16m1_b16((vint16m1_t)(op0), (vint16m1_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i16m2_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i16m2_b8((vint16m2_t)(op0), (vint16m2_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i16m4_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i16m4_b4((vint16m4_t)(op0), (vint16m4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i16m8_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i16m8_b2((vint16m8_t)(op0), (vint16m8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i16mf2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i16mf2_b32((vint16mf2_t)(op0), (vint16mf2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i16mf4_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i16mf4_b64((vint16mf4_t)(op0), (vint16mf4_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i32m1_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i32m1_b32((vint32m1_t)(op0), (vint32m1_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i32m2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i32m2_b16((vint32m2_t)(op0), (vint32m2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i32m4_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i32m4_b8((vint32m4_t)(op0), (vint32m4_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i32m8_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i32m8_b4((vint32m8_t)(op0), (vint32m8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i32mf2_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i32mf2_b64((vint32mf2_t)(op0), (vint32mf2_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i64m1_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i64m1_b64((vint64m1_t)(op0), (vint64m1_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i64m2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i64m2_b32((vint64m2_t)(op0), (vint64m2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i64m4_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i64m4_b16((vint64m4_t)(op0), (vint64m4_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_i64m8_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_i64m8_b8((vint64m8_t)(op0), (vint64m8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i8m1_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i8m1_b8((vint8m1_t)(op0), (int8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i8m2_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i8m2_b4((vint8m2_t)(op0), (int8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i8m4_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i8m4_b2((vint8m4_t)(op0), (int8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i8m8_b1(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i8m8_b1((vint8m8_t)(op0), (int8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i8mf2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i8mf2_b16((vint8mf2_t)(op0), (int8_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i8mf4_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i8mf4_b32((vint8mf4_t)(op0), (int8_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i8mf8_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i8mf8_b64((vint8mf8_t)(op0), (int8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i16m1_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i16m1_b16((vint16m1_t)(op0), (int16_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i16m2_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i16m2_b8((vint16m2_t)(op0), (int16_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i16m4_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i16m4_b4((vint16m4_t)(op0), (int16_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i16m8_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i16m8_b2((vint16m8_t)(op0), (int16_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i16mf2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i16mf2_b32((vint16mf2_t)(op0), (int16_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i16mf4_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i16mf4_b64((vint16mf4_t)(op0), (int16_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i32m1_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i32m1_b32((vint32m1_t)(op0), (int32_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i32m2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i32m2_b16((vint32m2_t)(op0), (int32_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i32m4_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i32m4_b8((vint32m4_t)(op0), (int32_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i32m8_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i32m8_b4((vint32m8_t)(op0), (int32_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i32mf2_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i32mf2_b64((vint32mf2_t)(op0), (int32_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i64m1_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i64m1_b64((vint64m1_t)(op0), (int64_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i64m2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i64m2_b32((vint64m2_t)(op0), (int64_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i64m4_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i64m4_b16((vint64m4_t)(op0), (int64_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_i64m8_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_i64m8_b8((vint64m8_t)(op0), (int64_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u8m1_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u8m1_b8((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u8m2_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u8m2_b4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u8m4_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u8m4_b2((vuint8m4_t)(op0), (vuint8m4_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u8m8_b1(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u8m8_b1((vuint8m8_t)(op0), (vuint8m8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u8mf2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u8mf2_b16((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u8mf4_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u8mf4_b32((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u8mf8_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u8mf8_b64((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u16m1_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u16m1_b16((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u16m2_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u16m2_b8((vuint16m2_t)(op0), (vuint16m2_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u16m4_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u16m4_b4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u16m8_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u16m8_b2((vuint16m8_t)(op0), (vuint16m8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u16mf2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u16mf2_b32((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u16mf4_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u16mf4_b64((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u32m1_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u32m1_b32((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u32m2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u32m2_b16((vuint32m2_t)(op0), (vuint32m2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u32m4_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u32m4_b8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u32m8_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u32m8_b4((vuint32m8_t)(op0), (vuint32m8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u32mf2_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u32mf2_b64((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u64m1_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u64m1_b64((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u64m2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u64m2_b32((vuint64m2_t)(op0), (vuint64m2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u64m4_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u64m4_b16((vuint64m4_t)(op0), (vuint64m4_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vvm_u64m8_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vvm_u64m8_b8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u8m1_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u8m1_b8((vuint8m1_t)(op0), (uint8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u8m2_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u8m2_b4((vuint8m2_t)(op0), (uint8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u8m4_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u8m4_b2((vuint8m4_t)(op0), (uint8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u8m8_b1(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u8m8_b1((vuint8m8_t)(op0), (uint8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u8mf2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u8mf2_b16((vuint8mf2_t)(op0), (uint8_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u8mf4_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u8mf4_b32((vuint8mf4_t)(op0), (uint8_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u8mf8_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u8mf8_b64((vuint8mf8_t)(op0), (uint8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u16m1_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u16m1_b16((vuint16m1_t)(op0), (uint16_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u16m2_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u16m2_b8((vuint16m2_t)(op0), (uint16_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u16m4_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u16m4_b4((vuint16m4_t)(op0), (uint16_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u16m8_b2(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u16m8_b2((vuint16m8_t)(op0), (uint16_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u16mf2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u16mf2_b32((vuint16mf2_t)(op0), (uint16_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u16mf4_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u16mf4_b64((vuint16mf4_t)(op0), (uint16_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u32m1_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u32m1_b32((vuint32m1_t)(op0), (uint32_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u32m2_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u32m2_b16((vuint32m2_t)(op0), (uint32_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u32m4_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u32m4_b8((vuint32m4_t)(op0), (uint32_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u32m8_b4(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u32m8_b4((vuint32m8_t)(op0), (uint32_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u32mf2_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u32mf2_b64((vuint32mf2_t)(op0), (uint32_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u64m1_b64(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u64m1_b64((vuint64m1_t)(op0), (uint64_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u64m2_b32(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u64m2_b32((vuint64m2_t)(op0), (uint64_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u64m4_b16(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u64m4_b16((vuint64m4_t)(op0), (uint64_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbc_vxm_u64m8_b8(op0, op1, op2, op3) \
-__builtin_rvv_vmsbc_vxm_u64m8_b8((vuint64m8_t)(op0), (uint64_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u16m2((uint16_t *)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint8m1_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u16m4((uint16_t *)(op0), (vuint8m2_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint8m2_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u16m8((uint16_t *)(op0), (vuint8m4_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u16m8_m((vbool2_t)(op0), (uint16_t *)(op1), (vuint8m4_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmsbc_vv_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i8m1_b8((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i8m2_b4((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i8m4_b2((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i8m8_b1((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i8mf2_b16((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i8mf4_b32((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i8mf8_b64((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i16m1_b16((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i16m2_b8((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i16m4_b4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i16m8_b2((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i16mf2_b32((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i16mf4_b64((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i32m1_b32((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i32m2_b16((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i32m4_b8((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i32m8_b4((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i32mf2_b64((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i64m1_b64((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i64m2_b32((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i64m4_b16((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_i64m8_b8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i8m1_b8((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i8m2_b4((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i8m4_b2((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i8m8_b1((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i8mf2_b16((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i8mf4_b32((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i8mf8_b64((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i16m1_b16((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i16m2_b8((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i16m4_b4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i16m8_b2((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i16mf2_b32((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i16mf4_b64((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i32m1_b32((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i32m2_b16((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i32m4_b8((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i32m8_b4((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i32mf2_b64((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i64m1_b64((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i64m2_b32((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i64m4_b16((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsbc_vx_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_i64m8_b8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u8m1_b8((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u8m2_b4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u8m4_b2((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u8m8_b1((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u8mf2_b16((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u8mf4_b32((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u8mf8_b64((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u16m1_b16((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u16m2_b8((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u16m4_b4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u16m8_b2((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u16mf2_b32((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u16mf4_b64((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u32m1_b32((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u32m2_b16((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u32m4_b8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u32m8_b4((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u32mf2_b64((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u64m1_b64((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u64m2_b32((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u64m4_b16((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmsbc_vv_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vv_u64m8_b8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u8m1_b8((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u8m2_b4((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u8m4_b2((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u8m8_b1((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u8mf2_b16((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u8mf4_b32((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u8mf8_b64((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u16m1_b16((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u16m2_b8((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u16m4_b4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u16m8_b2((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u16mf2_b32((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u16mf4_b64((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u32m1_b32((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u32m2_b16((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u32m4_b8((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u32m8_b4((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u32mf2_b64((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u64m1_b64((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u64m2_b32((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u64m4_b16((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsbc_vx_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsbc_vx_u64m8_b8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vand_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vand_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vand_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vand_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vand_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vand_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vand_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vand_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vand_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vand_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vand_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vand_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vand_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vand_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vand_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vand_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vand_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vand_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vand_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vand_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vand_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vand_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vand_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vand_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vand_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vand_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vand_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vand_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vand_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vand_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vand_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vand_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vand_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vand_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vand_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vand_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vand_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vand_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vand_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vand_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vand_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vand_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vand_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vand_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vand_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vand_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vand_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vand_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vand_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vand_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vand_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vand_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vand_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vand_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vand_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vand_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vand_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vand_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vand_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vand_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vand_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vand_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vand_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vand_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vand_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vand_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vand_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vand_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vand_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vand_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vand_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vand_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vand_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vand_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vand_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vand_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vand_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vand_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vand_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vand_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vand_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vand_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vand_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vand_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vand_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vand_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vand_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vand_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vand_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vand_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vand_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vand_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vand_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vand_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vand_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vand_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vand_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vand_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vand_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vand_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vand_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vand_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vand_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vand_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vand_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vand_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vand_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vand_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vand_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vand_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vand_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vand_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vand_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vand_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vand_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vand_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vand_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vand_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vand_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vand_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vand_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vand_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vand_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vand_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vand_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vand_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vand_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vand_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vand_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vand_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vand_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vand_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vand_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vand_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vand_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vand_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vand_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vand_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vand_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vand_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vand_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vand_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vand_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vand_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vand_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vand_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vand_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vand_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vand_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vand_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vand_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vand_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vand_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vand_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vand_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vand_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vand_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vand_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vand_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vand_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vand_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vand_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vand_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vand_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vand_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vand_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vand_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vand_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vand_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vand_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vand_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vand_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vand_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vand_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vand_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vand_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vand_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vand_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vand_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vand_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vand_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vand_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vand_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vand_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vand_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vand_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vand_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vand_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vand_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vand_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vand_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vand_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vand_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vand_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vand_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vand_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vand_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vand_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vand_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vand_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vand_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vand_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vand_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vand_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vand_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vand_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vand_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vand_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vand_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vand_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vand_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vand_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vand_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vand_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vand_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vand_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vand_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vand_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vand_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vand_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vand_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vand_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vand_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vand_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vand_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vand_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vand_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vand_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vand_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vand_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vand_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vand_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vand_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vand_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vand_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vand_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vand_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vand_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vand_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vand_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vand_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vand_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vand_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vand_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vand_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vand_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vand_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vand_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vand_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vand_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vand_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vand_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vand_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vand_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vand_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vand_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vand_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vand_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vand_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vand_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vand_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vand_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vand_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vand_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vand_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vxor_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vxor_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vxor_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vxor_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vxor_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vxor_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vxor_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vxor_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vxor_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vxor_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vxor_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vxor_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vxor_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vxor_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vxor_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vxor_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vxor_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vxor_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vxor_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vxor_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vxor_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vxor_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vxor_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vxor_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vxor_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vxor_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vxor_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vxor_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vxor_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vxor_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vxor_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vxor_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vxor_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vxor_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vxor_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vxor_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vxor_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vxor_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vxor_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vxor_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vxor_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vxor_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vxor_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vxor_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vxor_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vxor_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vxor_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vxor_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vxor_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vxor_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vxor_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vxor_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vxor_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vxor_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vxor_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vxor_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vxor_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vxor_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vxor_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vxor_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vxor_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vxor_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vxor_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vxor_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vxor_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vxor_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vxor_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vxor_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vxor_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vxor_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vxor_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vxor_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vxor_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vxor_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vxor_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vxor_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vxor_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vxor_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vxor_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vxor_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vxor_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vxor_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vxor_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vxor_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vxor_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vxor_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vxor_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vxor_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vxor_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vxor_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i16m2((int16_t *)(op0), (vuint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i16m4((int16_t *)(op0), (vuint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i16m8((int16_t *)(op0), (vuint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i16m8_m((vbool2_t)(op0), (int16_t *)(op1), (vuint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vxor_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vxor_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vxor_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vxor_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vxor_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vxor_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vxor_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vxor_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vxor_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vxor_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vxor_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vxor_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vxor_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vxor_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vxor_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vxor_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vxor_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vxor_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vxor_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vxor_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vxor_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vxor_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vxor_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vxor_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vxor_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vxor_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vxor_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vxor_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vxor_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vxor_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vxor_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vxor_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vxor_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vxor_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vxor_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vxor_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vxor_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vxor_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vxor_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vxor_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vxor_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vxor_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vxor_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vxor_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vxor_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vxor_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vxor_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vxor_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vxor_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vxor_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vxor_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vxor_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vxor_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vxor_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vxor_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vxor_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vxor_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vxor_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vxor_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vxor_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vxor_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vxor_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vxor_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vxor_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vxor_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vxor_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vxor_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vxor_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vxor_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vxor_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vxor_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vxor_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vxor_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vxor_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vxor_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vxor_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vxor_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vxor_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vxor_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vxor_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vxor_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vxor_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vxor_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vxor_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vxor_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vxor_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vxor_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vxor_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vxor_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vxor_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vxor_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vor_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vor_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vor_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vor_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vor_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vor_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vor_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vor_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vor_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vor_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vor_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vor_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vor_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vor_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vor_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vor_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vor_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vor_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vor_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vor_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vor_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vor_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vor_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vor_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vor_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vor_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vor_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vor_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vor_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vor_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vor_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vor_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vor_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vor_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vor_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vor_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vor_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vor_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vor_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vor_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vor_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vor_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vor_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vor_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vor_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vor_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vor_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vor_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vor_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vor_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vor_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vor_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vor_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vor_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vor_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vor_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vor_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vor_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vor_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vor_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vor_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vor_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vor_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vor_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vor_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vor_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vor_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vor_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vor_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vor_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vor_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vor_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vor_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vor_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vor_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vor_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vor_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vor_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vor_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vor_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vor_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vor_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vor_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vor_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vor_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vor_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vor_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vor_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vor_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vor_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vor_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vor_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vor_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vor_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vor_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vor_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vor_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vor_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vor_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vor_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vor_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vor_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vor_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vor_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vor_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vor_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vor_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vor_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vor_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vor_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vor_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vor_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vor_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vor_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vor_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vor_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vor_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vor_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vor_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vor_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vor_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vor_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vor_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vor_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vor_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vor_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vor_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vor_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vor_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vor_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vor_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vor_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vor_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vor_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vor_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vor_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vor_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vor_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vor_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vor_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vor_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vor_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vor_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vor_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vor_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vor_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vor_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vor_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vor_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vor_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vor_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vor_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vor_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vor_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vor_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vor_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vor_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vor_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vor_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vor_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vor_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vor_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vor_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vor_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vor_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vor_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vor_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vor_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vor_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vor_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vor_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vor_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vor_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vor_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vor_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vor_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vor_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vor_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vor_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vor_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vor_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vor_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vor_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vor_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vor_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vor_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vor_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vor_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vor_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vor_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vor_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vor_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vor_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vor_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vor_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vor_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vor_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vor_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vor_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vor_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vor_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vor_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vor_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vor_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vor_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vor_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vor_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vor_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vor_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vor_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vor_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vor_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vor_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vor_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vor_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vor_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vor_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vor_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vor_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vor_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vor_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vor_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vor_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vor_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vor_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vor_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vor_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vor_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vor_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vor_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vor_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vor_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vor_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vor_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vor_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vor_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vor_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vor_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vor_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vor_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vor_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vor_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vor_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vor_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vor_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vor_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vor_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vor_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vor_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vor_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vor_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vor_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vor_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vor_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vor_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vor_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vor_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vor_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vor_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vor_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vor_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vor_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vor_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vor_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vor_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vsll_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i8m1((vint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vsll_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsll_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i8m2((vint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vsll_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsll_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i8m4((vint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vsll_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsll_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i8m8((vint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vsll_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vsll_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i8mf2((vint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vsll_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsll_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i8mf4((vint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vsll_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsll_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i8mf8((vint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vsll_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsll_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i16m1((vint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vsll_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsll_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i16m2((vint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vsll_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsll_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i16m4((vint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vsll_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsll_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i16m8((vint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vsll_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vsll_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i16mf2((vint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vsll_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsll_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i16mf4((vint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vsll_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsll_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i32m1((vint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vsll_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsll_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i32m2((vint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vsll_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsll_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i32m4((vint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vsll_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsll_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i32m8((vint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vsll_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsll_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i32mf2((vint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vsll_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsll_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i64m1((vint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vsll_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsll_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i64m2((vint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vsll_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsll_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i64m4((vint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vsll_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsll_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vsll_vv_i64m8((vint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vsll_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsll_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i8m1((vint8m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i8m2((vint8m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i8m4((vint8m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i8m8((vint8m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i8mf2((vint8mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i8mf4((vint8mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i8mf8((vint8mf8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i16m1((vint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i16m2((vint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i16m4((vint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i16m8((vint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i16mf2((vint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i16mf4((vint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i32m1((vint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i32m2((vint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i32m4((vint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i32m8((vint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i32mf2((vint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i64m1((vint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i64m2((vint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i64m4((vint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vsll_vx_i64m8((vint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vsll_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsll_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vsll_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsll_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vsll_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsll_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vsll_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vsll_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vsll_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsll_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vsll_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsll_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vsll_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsll_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vsll_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsll_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vsll_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsll_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vsll_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsll_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vsll_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vsll_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vsll_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsll_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vsll_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsll_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vsll_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsll_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vsll_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsll_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vsll_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsll_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vsll_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsll_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vsll_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsll_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vsll_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsll_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vsll_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsll_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vsll_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsll_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vsll_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vsll_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsll_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u8m1((vuint8m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u8m2((vuint8m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u8m4((vuint8m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u8m8((vuint8m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u8mf2((vuint8mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u8mf4((vuint8mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u8mf8((vuint8mf8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u16m1((vuint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u16m2((vuint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u16m4((vuint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u16m8((vuint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u16mf2((vuint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u16mf4((vuint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u32m1((vuint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u32m2((vuint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u32m4((vuint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u32m8((vuint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u32mf2((vuint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u64m1((vuint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u64m2((vuint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u64m4((vuint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsll_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vsll_vx_u64m8((vuint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsll_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsll_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u16m4((uint16_t *)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u16m8((uint16_t *)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u16m8_m((vbool2_t)(op0), (uint16_t *)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsrl_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vsrl_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsrl_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vsrl_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsrl_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vsrl_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsrl_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vsrl_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vsrl_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vsrl_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsrl_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vsrl_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsrl_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vsrl_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsrl_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vsrl_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsrl_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vsrl_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsrl_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vsrl_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsrl_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vsrl_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vsrl_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vsrl_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsrl_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vsrl_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsrl_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vsrl_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsrl_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vsrl_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsrl_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vsrl_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsrl_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vsrl_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsrl_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vsrl_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsrl_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vsrl_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsrl_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vsrl_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsrl_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vsrl_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsrl_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vsrl_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vsrl_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsrl_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u8m1((vuint8m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u8m2((vuint8m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u8m4((vuint8m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u8m8((vuint8m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u8mf2((vuint8mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u8mf4((vuint8mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u8mf8((vuint8mf8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u16m1((vuint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u16m2((vuint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u16m4((vuint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u16m8((vuint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u16mf2((vuint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u16mf4((vuint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u32m1((vuint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u32m2((vuint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u32m4((vuint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u32m8((vuint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u32mf2((vuint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u64m1((vuint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u64m2((vuint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u64m4((vuint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsrl_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vsrl_vx_u64m8((vuint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsrl_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsrl_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i8m1((vint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vsra_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsra_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i8m2((vint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vsra_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsra_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i8m4((vint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vsra_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsra_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i8m8((vint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vsra_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vsra_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i8mf2((vint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vsra_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsra_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i8mf4((vint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vsra_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsra_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i8mf8((vint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vsra_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsra_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i16m1((vint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vsra_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsra_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i16m2((vint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vsra_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsra_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i16m4((vint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vsra_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsra_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i16m8((vint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vsra_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vsra_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i16mf2((vint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vsra_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsra_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i16mf4((vint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vsra_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsra_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i32m1((vint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vsra_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsra_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i32m2((vint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vsra_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsra_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i32m4((vint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vsra_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsra_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i32m8((vint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vsra_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsra_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i32mf2((vint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vsra_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsra_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i64m1((vint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vsra_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsra_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i64m2((vint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vsra_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsra_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i64m4((vint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vsra_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsra_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vsra_vv_i64m8((vint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vsra_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsra_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i8m1((vint8m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i8m2((vint8m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i8m4((vint8m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i8m8((vint8m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i8mf2((vint8mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i8mf4((vint8mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i8mf8((vint8mf8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i16m1((vint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i16m2((vint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i16m4((vint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i16m8((vint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i16mf2((vint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i16mf4((vint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i32m1((vint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i32m2((vint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i32m4((vint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i32m8((vint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i32mf2((vint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i64m1((vint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i64m2((vint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i64m4((vint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsra_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vsra_vx_i64m8((vint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vsra_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsra_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u8m1(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u8m1((vuint16m2_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u8m2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u8m2((vuint16m4_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u8m4(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u8m4((vuint16m8_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint16m8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u8mf2((vuint16m1_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u8mf4((vuint16mf2_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u8mf8((vuint16mf4_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u16m1(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u16m1((vuint32m2_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u16m2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u16m2((vuint32m4_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u16m4(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u16m4((vuint32m8_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u16mf2((vuint32m1_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u16mf4((vuint32mf2_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u32m1(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u32m1((vuint64m2_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u32m2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u32m2((vuint64m4_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u32m4(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u32m4((vuint64m8_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vnsrl_wv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wv_u32mf2((vuint64m1_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vnsrl_wv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u8m1(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u8m1((vuint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u8m2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u8m2((vuint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u8m4(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u8m4((vuint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u8mf2((vuint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u8mf4((vuint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u8mf8((vuint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u16m1(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u16m1((vuint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u16m2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u16m2((vuint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u16m4(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u16m4((vuint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u16mf2((vuint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u16mf4((vuint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u32m1(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u32m1((vuint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u32m2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u32m2((vuint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u32m4(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u32m4((vuint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsrl_wx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vnsrl_wx_u32mf2((vuint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsrl_wx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsrl_wx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wv_i8m1(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i8m1((vint16m2_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vnsra_wv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint16m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vnsra_wv_i8m2(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i8m2((vint16m4_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vnsra_wv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint16m4_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vnsra_wv_i8m4(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i8m4((vint16m8_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vnsra_wv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint16m8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vnsra_wv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i8mf2((vint16m1_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vnsra_wv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint16m1_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vnsra_wv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i8mf4((vint16mf2_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vnsra_wv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint16mf2_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vnsra_wv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i8mf8((vint16mf4_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vnsra_wv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint16mf4_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vnsra_wv_i16m1(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i16m1((vint32m2_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vnsra_wv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint32m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vnsra_wv_i16m2(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i16m2((vint32m4_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vnsra_wv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint32m4_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vnsra_wv_i16m4(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i16m4((vint32m8_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vnsra_wv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint32m8_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vnsra_wv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i16mf2((vint32m1_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vnsra_wv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint32m1_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vnsra_wv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i16mf4((vint32mf2_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vnsra_wv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint32mf2_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vnsra_wv_i32m1(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i32m1((vint64m2_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vnsra_wv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vnsra_wv_i32m2(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i32m2((vint64m4_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vnsra_wv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vnsra_wv_i32m4(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i32m4((vint64m8_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vnsra_wv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vnsra_wv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vnsra_wv_i32mf2((vint64m1_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vnsra_wv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vnsra_wx_i8m1(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i8m1((vint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i8m2(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i8m2((vint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i8m4(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i8m4((vint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i8mf2((vint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i8mf4((vint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i8mf8((vint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i16m1(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i16m1((vint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i16m2(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i16m2((vint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i16m4(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i16m4((vint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i16mf2((vint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i16mf4((vint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i32m1(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i32m1((vint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i32m2(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i32m2((vint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i32m4(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i32m4((vint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnsra_wx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vnsra_wx_i32mf2((vint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnsra_wx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnsra_wx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vncvt_x_x_w_u8m1(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u8m1((vuint16m2_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u8m2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u8m2((vuint16m4_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u8m4(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u8m4((vuint16m8_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u8mf2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u8mf2((vuint16m1_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u8mf4(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u8mf4((vuint16mf2_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u8mf8(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u8mf8((vuint16mf4_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u16m1(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u16m1((vuint32m2_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u16m2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u16m2((vuint32m4_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u16m4(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u16m4((vuint32m8_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u16mf2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u16mf2((vuint32m1_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u16mf4(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u16mf4((vuint32mf2_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u32m1(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u32m1((vuint64m2_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u32m2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u32m2((vuint64m4_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u32m4(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u32m4((vuint64m8_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_u32mf2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_u32mf2((vuint64m1_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vmseq_vv_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i8m1_b8((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmseq_vv_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmseq_vv_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i8m2_b4((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmseq_vv_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmseq_vv_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i8m4_b2((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmseq_vv_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmseq_vv_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i8m8_b1((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmseq_vv_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmseq_vv_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i8mf2_b16((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmseq_vv_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmseq_vv_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i8mf4_b32((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmseq_vv_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmseq_vv_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i8mf8_b64((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmseq_vv_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmseq_vv_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i16m1_b16((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmseq_vv_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmseq_vv_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i16m2_b8((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmseq_vv_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmseq_vv_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i16m4_b4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmseq_vv_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmseq_vv_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i16m8_b2((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmseq_vv_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmseq_vv_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i16mf2_b32((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmseq_vv_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmseq_vv_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i16mf4_b64((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmseq_vv_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmseq_vv_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i32m1_b32((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmseq_vv_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmseq_vv_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i32m2_b16((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmseq_vv_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmseq_vv_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i32m4_b8((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmseq_vv_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmseq_vv_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i32m8_b4((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmseq_vv_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmseq_vv_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i32mf2_b64((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmseq_vv_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmseq_vv_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i64m1_b64((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmseq_vv_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmseq_vv_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i64m2_b32((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmseq_vv_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmseq_vv_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i64m4_b16((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmseq_vv_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmseq_vv_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_i64m8_b8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmseq_vv_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsse8_v_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_u8m1((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vsse8_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsse8_v_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_u8m2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vsse8_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsse8_v_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_u8m4((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vsse8_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsse8_v_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_u8m8((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vsse8_v_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_u8m8_m((vbool1_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vsse8_v_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_u8mf2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vsse8_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsse8_v_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_u8mf4((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vsse8_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsse8_v_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsse8_v_u8mf8((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vsse8_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i16m2((int16_t *)(op0), (vuint32m4_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint32m4_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i16m4((int16_t *)(op0), (vuint32m8_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint32m8_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmseq_vx_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i8m1_b8((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmseq_vx_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmseq_vx_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i8m2_b4((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmseq_vx_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmseq_vx_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i8m4_b2((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmseq_vx_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmseq_vx_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i8m8_b1((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmseq_vx_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmseq_vx_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i8mf2_b16((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmseq_vx_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmseq_vx_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i8mf4_b32((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmseq_vx_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmseq_vx_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i8mf8_b64((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmseq_vx_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmseq_vx_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i16m1_b16((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmseq_vx_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmseq_vx_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i16m2_b8((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmseq_vx_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmseq_vx_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i16m4_b4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmseq_vx_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmseq_vx_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i16m8_b2((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmseq_vx_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmseq_vx_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i16mf2_b32((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmseq_vx_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmseq_vx_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i16mf4_b64((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmseq_vx_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmseq_vx_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i32m1_b32((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmseq_vx_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmseq_vx_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i32m2_b16((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmseq_vx_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmseq_vx_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i32m4_b8((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmseq_vx_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmseq_vx_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i32m8_b4((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmseq_vx_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmseq_vx_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i32mf2_b64((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmseq_vx_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmseq_vx_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i64m1_b64((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmseq_vx_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmseq_vx_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i64m2_b32((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmseq_vx_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmseq_vx_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i64m4_b16((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmseq_vx_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmseq_vx_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_i64m8_b8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmseq_vx_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmseq_vv_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u8m1_b8((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmseq_vv_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmseq_vv_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u8m2_b4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmseq_vv_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmseq_vv_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u8m4_b2((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmseq_vv_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmseq_vv_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u8m8_b1((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmseq_vv_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmseq_vv_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u8mf2_b16((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmseq_vv_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmseq_vv_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u8mf4_b32((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmseq_vv_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmseq_vv_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u8mf8_b64((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmseq_vv_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmseq_vv_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u16m1_b16((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmseq_vv_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmseq_vv_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u16m2_b8((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmseq_vv_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmseq_vv_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u16m4_b4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmseq_vv_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmseq_vv_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u16m8_b2((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmseq_vv_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmseq_vv_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u16mf2_b32((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmseq_vv_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmseq_vv_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u16mf4_b64((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmseq_vv_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmseq_vv_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u32m1_b32((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmseq_vv_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmseq_vv_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u32m2_b16((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmseq_vv_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmseq_vv_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u32m4_b8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmseq_vv_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmseq_vv_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u32m8_b4((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmseq_vv_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmseq_vv_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u32mf2_b64((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmseq_vv_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmseq_vv_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u64m1_b64((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmseq_vv_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmseq_vv_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u64m2_b32((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmseq_vv_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmseq_vv_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u64m4_b16((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmseq_vv_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmseq_vv_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vv_u64m8_b8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmseq_vv_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vv_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmseq_vx_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u8m1_b8((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmseq_vx_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmseq_vx_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u8m2_b4((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmseq_vx_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmseq_vx_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u8m4_b2((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmseq_vx_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmseq_vx_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u8m8_b1((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmseq_vx_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmseq_vx_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u8mf2_b16((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmseq_vx_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmseq_vx_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u8mf4_b32((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmseq_vx_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmseq_vx_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u8mf8_b64((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmseq_vx_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmseq_vx_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u16m1_b16((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmseq_vx_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmseq_vx_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u16m2_b8((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmseq_vx_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmseq_vx_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u16m4_b4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmseq_vx_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmseq_vx_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u16m8_b2((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmseq_vx_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmseq_vx_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u16mf2_b32((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmseq_vx_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmseq_vx_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u16mf4_b64((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmseq_vx_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmseq_vx_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u32m1_b32((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmseq_vx_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmseq_vx_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u32m2_b16((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmseq_vx_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmseq_vx_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u32m4_b8((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmseq_vx_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmseq_vx_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u32m8_b4((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmseq_vx_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmseq_vx_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u32mf2_b64((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmseq_vx_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmseq_vx_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u64m1_b64((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmseq_vx_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmseq_vx_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u64m2_b32((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmseq_vx_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmseq_vx_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u64m4_b16((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmseq_vx_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmseq_vx_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmseq_vx_u64m8_b8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmseq_vx_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmseq_vx_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsne_vv_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i8m1_b8((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmsne_vv_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmsne_vv_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i8m2_b4((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmsne_vv_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmsne_vv_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i8m4_b2((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmsne_vv_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmsne_vv_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i8m8_b1((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmsne_vv_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmsne_vv_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i8mf2_b16((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmsne_vv_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmsne_vv_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i8mf4_b32((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmsne_vv_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmsne_vv_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i8mf8_b64((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmsne_vv_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmsne_vv_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i16m1_b16((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmsne_vv_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmsne_vv_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i16m2_b8((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmsne_vv_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmsne_vv_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i16m4_b4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmsne_vv_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmsne_vv_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i16m8_b2((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmsne_vv_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmsne_vv_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i16mf2_b32((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmsne_vv_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmsne_vv_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i16mf4_b64((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmsne_vv_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmsne_vv_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i32m1_b32((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmsne_vv_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmsne_vv_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i32m2_b16((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmsne_vv_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmsne_vv_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i32m4_b8((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmsne_vv_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmsne_vv_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i32m8_b4((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmsne_vv_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmsne_vv_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i32mf2_b64((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmsne_vv_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmsne_vv_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i64m1_b64((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmsne_vv_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmsne_vv_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i64m2_b32((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmsne_vv_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmsne_vv_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i64m4_b16((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmsne_vv_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmsne_vv_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_i64m8_b8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmsne_vv_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vmsne_vx_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i8m1_b8((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsne_vx_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsne_vx_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i8m2_b4((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsne_vx_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsne_vx_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i8m4_b2((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsne_vx_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsne_vx_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i8m8_b1((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsne_vx_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsne_vx_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i8mf2_b16((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsne_vx_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsne_vx_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i8mf4_b32((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsne_vx_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsne_vx_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i8mf8_b64((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsne_vx_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsne_vx_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i16m1_b16((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsne_vx_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsne_vx_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i16m2_b8((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsne_vx_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsne_vx_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i16m4_b4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsne_vx_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsne_vx_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i16m8_b2((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsne_vx_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsne_vx_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i16mf2_b32((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsne_vx_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsne_vx_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i16mf4_b64((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsne_vx_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsne_vx_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i32m1_b32((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsne_vx_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsne_vx_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i32m2_b16((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsne_vx_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsne_vx_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i32m4_b8((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsne_vx_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsne_vx_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i32m8_b4((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsne_vx_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsne_vx_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i32mf2_b64((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsne_vx_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsne_vx_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i64m1_b64((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsne_vx_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsne_vx_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i64m2_b32((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsne_vx_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsne_vx_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i64m4_b16((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsne_vx_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsne_vx_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_i64m8_b8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsne_vx_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsne_vv_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u8m1_b8((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmsne_vv_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmsne_vv_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u8m2_b4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmsne_vv_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmsne_vv_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u8m4_b2((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmsne_vv_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmsne_vv_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u8m8_b1((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmsne_vv_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmsne_vv_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u8mf2_b16((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmsne_vv_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmsne_vv_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u8mf4_b32((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmsne_vv_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmsne_vv_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u8mf8_b64((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmsne_vv_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmsne_vv_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u16m1_b16((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmsne_vv_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmsne_vv_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u16m2_b8((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmsne_vv_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmsne_vv_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u16m4_b4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmsne_vv_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmsne_vv_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u16m8_b2((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmsne_vv_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmsne_vv_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u16mf2_b32((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmsne_vv_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmsne_vv_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u16mf4_b64((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmsne_vv_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmsne_vv_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u32m1_b32((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmsne_vv_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmsne_vv_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u32m2_b16((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmsne_vv_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmsne_vv_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u32m4_b8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmsne_vv_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmsne_vv_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u32m8_b4((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmsne_vv_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmsne_vv_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u32mf2_b64((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmsne_vv_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmsne_vv_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u64m1_b64((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmsne_vv_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmsne_vv_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u64m2_b32((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmsne_vv_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmsne_vv_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u64m4_b16((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmsne_vv_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmsne_vv_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vv_u64m8_b8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmsne_vv_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vv_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmsne_vx_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u8m1_b8((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsne_vx_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsne_vx_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u8m2_b4((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsne_vx_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsne_vx_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u8m4_b2((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsne_vx_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsne_vx_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u8m8_b1((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsne_vx_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsne_vx_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u8mf2_b16((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsne_vx_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsne_vx_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u8mf4_b32((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsne_vx_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsne_vx_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u8mf8_b64((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsne_vx_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsne_vx_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u16m1_b16((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsne_vx_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsne_vx_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u16m2_b8((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsne_vx_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsne_vx_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u16m4_b4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsne_vx_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsne_vx_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u16m8_b2((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsne_vx_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsne_vx_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u16mf2_b32((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsne_vx_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsne_vx_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u16mf4_b64((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsne_vx_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsne_vx_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u32m1_b32((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsne_vx_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsne_vx_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u32m2_b16((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsne_vx_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsne_vx_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u32m4_b8((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsne_vx_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsne_vx_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u32m8_b4((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsne_vx_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsne_vx_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u32mf2_b64((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsne_vx_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsne_vx_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u64m1_b64((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsne_vx_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsne_vx_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u64m2_b32((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsne_vx_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsne_vx_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u64m4_b16((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsne_vx_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsne_vx_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsne_vx_u64m8_b8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsne_vx_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsne_vx_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u8m1_b8((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u8m2_b4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u8m4_b2((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u8m8_b1((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u8mf2_b16((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u8mf4_b32((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u8mf8_b64((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u16m1_b16((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u16m2_b8((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u16m4_b4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u16m8_b2((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u16mf2_b32((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u16mf4_b64((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u32m1_b32((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u32m2_b16((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u32m4_b8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u32m8_b4((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u32mf2_b64((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u64m1_b64((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u64m2_b32((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u64m4_b16((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmsltu_vv_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsltu_vv_u64m8_b8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmsltu_vv_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vv_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u8m1_b8((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u8m2_b4((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u8m4_b2((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u8m8_b1((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u8mf2_b16((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u8mf4_b32((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u8mf8_b64((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u16m1_b16((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u16m2_b8((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u16m4_b4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u16m8_b2((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u16mf2_b32((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u16mf4_b64((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u32m1_b32((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u32m2_b16((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u32m4_b8((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u32m8_b4((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u32mf2_b64((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u64m1_b64((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u64m2_b32((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u64m4_b16((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsltu_vx_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsltu_vx_u64m8_b8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsltu_vx_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsltu_vx_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmslt_vv_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i8m1_b8((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmslt_vv_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmslt_vv_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i8m2_b4((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmslt_vv_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmslt_vv_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i8m4_b2((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmslt_vv_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmslt_vv_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i8m8_b1((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmslt_vv_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmslt_vv_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i8mf2_b16((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmslt_vv_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmslt_vv_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i8mf4_b32((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmslt_vv_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmslt_vv_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i8mf8_b64((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmslt_vv_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmslt_vv_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i16m1_b16((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmslt_vv_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmslt_vv_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i16m2_b8((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmslt_vv_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmslt_vv_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i16m4_b4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmslt_vv_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmslt_vv_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i16m8_b2((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmslt_vv_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmslt_vv_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i16mf2_b32((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmslt_vv_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmslt_vv_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i16mf4_b64((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmslt_vv_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmslt_vv_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i32m1_b32((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmslt_vv_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmslt_vv_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i32m2_b16((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmslt_vv_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmslt_vv_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i32m4_b8((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmslt_vv_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmslt_vv_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i32m8_b4((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmslt_vv_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmslt_vv_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i32mf2_b64((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmslt_vv_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmslt_vv_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i64m1_b64((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmslt_vv_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmslt_vv_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i64m2_b32((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmslt_vv_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmslt_vv_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i64m4_b16((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmslt_vv_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmslt_vv_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmslt_vv_i64m8_b8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmslt_vv_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vv_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u16m2((uint16_t *)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u16m4((uint16_t *)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint32m8_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmslt_vx_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i8m1_b8((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmslt_vx_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmslt_vx_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i8m2_b4((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmslt_vx_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmslt_vx_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i8m4_b2((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmslt_vx_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmslt_vx_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i8m8_b1((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmslt_vx_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmslt_vx_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i8mf2_b16((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmslt_vx_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmslt_vx_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i8mf4_b32((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmslt_vx_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmslt_vx_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i8mf8_b64((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmslt_vx_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmslt_vx_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i16m1_b16((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmslt_vx_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmslt_vx_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i16m2_b8((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmslt_vx_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmslt_vx_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i16m4_b4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmslt_vx_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmslt_vx_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i16m8_b2((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmslt_vx_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmslt_vx_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i16mf2_b32((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmslt_vx_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmslt_vx_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i16mf4_b64((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmslt_vx_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmslt_vx_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i32m1_b32((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmslt_vx_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmslt_vx_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i32m2_b16((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmslt_vx_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmslt_vx_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i32m4_b8((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmslt_vx_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmslt_vx_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i32m8_b4((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmslt_vx_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmslt_vx_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i32mf2_b64((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmslt_vx_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmslt_vx_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i64m1_b64((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmslt_vx_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmslt_vx_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i64m2_b32((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmslt_vx_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmslt_vx_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i64m4_b16((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmslt_vx_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmslt_vx_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmslt_vx_i64m8_b8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmslt_vx_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmslt_vx_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u8m1_b8((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u8m2_b4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u8m4_b2((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u8m8_b1((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u8mf2_b16((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u8mf4_b32((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u8mf8_b64((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u16m1_b16((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u16m2_b8((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u16m4_b4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u16m8_b2((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u16mf2_b32((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u16mf4_b64((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u32m1_b32((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u32m2_b16((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u32m4_b8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u32m8_b4((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u32mf2_b64((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u64m1_b64((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u64m2_b32((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u64m4_b16((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmsleu_vv_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsleu_vv_u64m8_b8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmsleu_vv_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vv_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u8m1_b8((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u8m2_b4((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u8m4_b2((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u8m8_b1((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u8mf2_b16((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u8mf4_b32((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u8mf8_b64((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u16m1_b16((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u16m2_b8((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u16m4_b4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u16m8_b2((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u16mf2_b32((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u16mf4_b64((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u32m1_b32((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u32m2_b16((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u32m4_b8((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u32m8_b4((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u32mf2_b64((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u64m1_b64((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u64m2_b32((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u64m4_b16((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsleu_vx_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsleu_vx_u64m8_b8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsleu_vx_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsleu_vx_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsle_vv_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i8m1_b8((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmsle_vv_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmsle_vv_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i8m2_b4((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmsle_vv_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmsle_vv_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i8m4_b2((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmsle_vv_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmsle_vv_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i8m8_b1((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmsle_vv_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmsle_vv_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i8mf2_b16((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmsle_vv_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmsle_vv_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i8mf4_b32((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmsle_vv_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmsle_vv_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i8mf8_b64((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmsle_vv_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmsle_vv_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i16m1_b16((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmsle_vv_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmsle_vv_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i16m2_b8((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmsle_vv_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmsle_vv_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i16m4_b4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmsle_vv_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmsle_vv_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i16m8_b2((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmsle_vv_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmsle_vv_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i16mf2_b32((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmsle_vv_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmsle_vv_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i16mf4_b64((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmsle_vv_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmsle_vv_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i32m1_b32((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmsle_vv_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmsle_vv_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i32m2_b16((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmsle_vv_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmsle_vv_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i32m4_b8((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmsle_vv_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmsle_vv_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i32m8_b4((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmsle_vv_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmsle_vv_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i32mf2_b64((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmsle_vv_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmsle_vv_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i64m1_b64((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmsle_vv_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmsle_vv_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i64m2_b32((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmsle_vv_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmsle_vv_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i64m4_b16((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmsle_vv_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmsle_vv_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsle_vv_i64m8_b8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmsle_vv_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vv_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vmsle_vx_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i8m1_b8((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsle_vx_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsle_vx_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i8m2_b4((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsle_vx_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsle_vx_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i8m4_b2((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsle_vx_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsle_vx_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i8m8_b1((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsle_vx_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsle_vx_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i8mf2_b16((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsle_vx_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsle_vx_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i8mf4_b32((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsle_vx_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsle_vx_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i8mf8_b64((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsle_vx_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsle_vx_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i16m1_b16((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsle_vx_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsle_vx_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i16m2_b8((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsle_vx_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsle_vx_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i16m4_b4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsle_vx_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsle_vx_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i16m8_b2((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsle_vx_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsle_vx_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i16mf2_b32((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsle_vx_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsle_vx_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i16mf4_b64((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsle_vx_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsle_vx_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i32m1_b32((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsle_vx_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsle_vx_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i32m2_b16((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsle_vx_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsle_vx_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i32m4_b8((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsle_vx_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsle_vx_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i32m8_b4((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsle_vx_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsle_vx_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i32mf2_b64((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsle_vx_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsle_vx_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i64m1_b64((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsle_vx_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsle_vx_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i64m2_b32((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsle_vx_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsle_vx_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i64m4_b16((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsle_vx_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsle_vx_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsle_vx_i64m8_b8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsle_vx_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsle_vx_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u8m1_b8((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u8m2_b4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u8m4_b2((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u8m8_b1((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u8mf2_b16((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u8mf4_b32((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u8mf8_b64((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u16m1_b16((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u16m2_b8((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u16m4_b4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u16m8_b2((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u16mf2_b32((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u16mf4_b64((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u32m1_b32((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u32m2_b16((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u32m4_b8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u32m8_b4((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u32mf2_b64((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u64m1_b64((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u64m2_b32((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u64m4_b16((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmsgtu_vv_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vv_u64m8_b8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmsgtu_vv_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vv_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u8m1_b8((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u8m2_b4((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u8m4_b2((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u8m8_b1((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u8mf2_b16((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u8mf4_b32((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u8mf8_b64((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u16m1_b16((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u16m2_b8((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u16m4_b4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u16m8_b2((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u16mf2_b32((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u16mf4_b64((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u32m1_b32((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u32m2_b16((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u32m4_b8((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u32m8_b4((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u32mf2_b64((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u64m1_b64((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u64m2_b32((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u64m4_b16((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsgtu_vx_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsgtu_vx_u64m8_b8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsgtu_vx_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgtu_vx_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i8m1_b8((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i8m2_b4((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i8m4_b2((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i8m8_b1((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i8mf2_b16((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i8mf4_b32((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i8mf8_b64((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i16m1_b16((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i16m2_b8((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i16m4_b4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i16m8_b2((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i16mf2_b32((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i16mf4_b64((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i32m1_b32((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i32m2_b16((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i32m4_b8((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i32m8_b4((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i32mf2_b64((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i64m1_b64((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i64m2_b32((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i64m4_b16((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmsgt_vv_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsgt_vv_i64m8_b8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmsgt_vv_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vv_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i8m1_b8((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i8m2_b4((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i8m4_b2((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i8m8_b1((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i8mf2_b16((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i8mf4_b32((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i8mf8_b64((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i16m1_b16((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i16m2_b8((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i16m4_b4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i16m8_b2((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i16mf2_b32((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i16mf4_b64((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i32m1_b32((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i32m2_b16((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i32m4_b8((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i32m8_b4((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i32mf2_b64((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i64m1_b64((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i64m2_b32((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i64m4_b16((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsgt_vx_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsgt_vx_i64m8_b8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsgt_vx_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgt_vx_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u8m1_b8((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u8m2_b4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u8m4_b2((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u8m8_b1((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u8mf2_b16((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u8mf4_b32((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u8mf8_b64((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u16m1_b16((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u16m2_b8((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u16m4_b4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u16m8_b2((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u16mf2_b32((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u16mf4_b64((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u32m1_b32((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u32m2_b16((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u32m4_b8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u32m8_b4((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u32mf2_b64((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u64m1_b64((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u64m2_b32((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u64m4_b16((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmsgeu_vv_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vv_u64m8_b8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmsgeu_vv_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vv_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i16m2((int16_t *)(op0), (vuint64m8_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint64m8_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u8m1_b8((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u8m2_b4((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u8m4_b2((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u8m8_b1((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u8mf2_b16((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u8mf4_b32((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u8mf8_b64((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u16m1_b16((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u16m2_b8((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u16m4_b4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u16m8_b2((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u16mf2_b32((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u16mf4_b64((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u32m1_b32((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u32m2_b16((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u32m4_b8((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u32m8_b4((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u32mf2_b64((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u64m1_b64((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u64m2_b32((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u64m4_b16((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsgeu_vx_u64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsgeu_vx_u64m8_b8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmsgeu_vx_u64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsgeu_vx_u64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmsge_vv_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i8m1_b8((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmsge_vv_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmsge_vv_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i8m2_b4((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmsge_vv_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmsge_vv_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i8m4_b2((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmsge_vv_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmsge_vv_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i8m8_b1((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmsge_vv_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmsge_vv_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i8mf2_b16((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmsge_vv_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmsge_vv_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i8mf4_b32((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmsge_vv_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmsge_vv_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i8mf8_b64((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmsge_vv_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmsge_vv_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i16m1_b16((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmsge_vv_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmsge_vv_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i16m2_b8((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmsge_vv_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmsge_vv_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i16m4_b4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmsge_vv_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmsge_vv_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i16m8_b2((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmsge_vv_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmsge_vv_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i16mf2_b32((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmsge_vv_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmsge_vv_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i16mf4_b64((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmsge_vv_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmsge_vv_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i32m1_b32((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmsge_vv_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmsge_vv_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i32m2_b16((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmsge_vv_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmsge_vv_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i32m4_b8((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmsge_vv_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmsge_vv_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i32m8_b4((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmsge_vv_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmsge_vv_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i32mf2_b64((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmsge_vv_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmsge_vv_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i64m1_b64((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmsge_vv_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmsge_vv_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i64m2_b32((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmsge_vv_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmsge_vv_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i64m4_b16((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmsge_vv_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmsge_vv_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsge_vv_i64m8_b8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmsge_vv_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vv_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vmsge_vx_i8m1_b8(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i8m1_b8((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsge_vx_i8m1_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i8m1_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsge_vx_i8m2_b4(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i8m2_b4((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsge_vx_i8m2_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i8m2_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsge_vx_i8m4_b2(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i8m4_b2((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsge_vx_i8m4_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i8m4_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsge_vx_i8m8_b1(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i8m8_b1((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsge_vx_i8m8_b1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i8m8_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsge_vx_i8mf2_b16(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i8mf2_b16((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsge_vx_i8mf2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i8mf2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsge_vx_i8mf4_b32(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i8mf4_b32((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsge_vx_i8mf4_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i8mf4_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsge_vx_i8mf8_b64(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i8mf8_b64((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmsge_vx_i8mf8_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i8mf8_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmsge_vx_i16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i16m1_b16((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsge_vx_i16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsge_vx_i16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i16m2_b8((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsge_vx_i16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsge_vx_i16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i16m4_b4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsge_vx_i16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsge_vx_i16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i16m8_b2((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsge_vx_i16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsge_vx_i16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i16mf2_b32((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsge_vx_i16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsge_vx_i16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i16mf4_b64((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmsge_vx_i16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmsge_vx_i32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i32m1_b32((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsge_vx_i32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsge_vx_i32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i32m2_b16((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsge_vx_i32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsge_vx_i32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i32m4_b8((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsge_vx_i32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsge_vx_i32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i32m8_b4((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsge_vx_i32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsge_vx_i32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i32mf2_b64((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmsge_vx_i32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmsge_vx_i64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i64m1_b64((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsge_vx_i64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsge_vx_i64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i64m2_b32((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsge_vx_i64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsge_vx_i64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i64m4_b16((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsge_vx_i64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmsge_vx_i64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmsge_vx_i64m8_b8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmsge_vx_i64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmsge_vx_i64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vminu_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vminu_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vminu_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vminu_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vminu_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vminu_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vminu_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vminu_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vminu_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vminu_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vminu_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vminu_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vminu_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vminu_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vminu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vminu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vminu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vminu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vminu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vminu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vminu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vminu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vminu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vminu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vminu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vminu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vminu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vminu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vminu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vminu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vminu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vminu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vminu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vminu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vminu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vminu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vminu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vminu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vminu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vminu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vminu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vminu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vminu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vminu_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vminu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vminu_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vminu_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vminu_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vminu_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vminu_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vminu_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vminu_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vminu_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vminu_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vminu_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vminu_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vminu_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vminu_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vminu_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vminu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vminu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vminu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vminu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vminu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vminu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vminu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vminu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vminu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vminu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vminu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vminu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vminu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vminu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vminu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vminu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vminu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vminu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vminu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vminu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vminu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vminu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vminu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vminu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vminu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vminu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vminu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vminu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vminu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vminu_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vminu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vminu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmin_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmin_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmin_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmin_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmin_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmin_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmin_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmin_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmin_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmin_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmin_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmin_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmin_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmin_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmin_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmin_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmin_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmin_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmin_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmin_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmin_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmin_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmin_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmin_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmin_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmin_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmin_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmin_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmin_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmin_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmin_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmin_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmin_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmin_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmin_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmin_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmin_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmin_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmin_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmin_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmin_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmin_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmin_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vmin_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmin_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vmin_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmin_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmin_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmin_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmin_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmin_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmin_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmin_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmin_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmin_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmin_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmin_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmin_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmin_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmin_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmin_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmin_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmin_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmin_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmin_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmin_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmin_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmin_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmin_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmin_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmin_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmin_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmin_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmin_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmin_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmin_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmin_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmin_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmin_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmin_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmin_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmin_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmin_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmin_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmin_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmin_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmin_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmin_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vmin_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmin_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmin_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmaxu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vmaxu_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmaxu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmaxu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vmaxu_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmaxu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmaxu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmax_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmax_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmax_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmax_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmax_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmax_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmax_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmax_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmax_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmax_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmax_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmax_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmax_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmax_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmax_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmax_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmax_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmax_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmax_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmax_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmax_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmax_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmax_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmax_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmax_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmax_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmax_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmax_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmax_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmax_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmax_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmax_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmax_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmax_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmax_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmax_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmax_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmax_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmax_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmax_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmax_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmax_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmax_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vmax_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmax_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u16m2((uint16_t *)(op0), (vuint64m8_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint64m8_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmax_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmax_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmax_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmax_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmax_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmax_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmax_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmax_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmax_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmax_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmax_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmax_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmax_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmax_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmax_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmax_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmax_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmax_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmax_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmax_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmax_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmax_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmax_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmax_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmax_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmax_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmax_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmax_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmax_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmax_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmax_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmax_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmax_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmax_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmax_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmax_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmax_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmax_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmax_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmax_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmax_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmax_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmax_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vmax_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmax_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmax_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmul_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmul_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmul_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmul_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmul_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmul_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmul_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmul_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmul_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmul_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmul_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmul_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmul_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmul_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmul_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmul_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmul_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmul_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmul_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmul_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmul_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmul_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmul_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmul_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmul_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmul_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmul_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmul_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmul_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmul_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmul_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmul_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmul_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmul_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmul_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmul_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmul_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmul_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmul_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmul_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmul_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmul_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmul_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vmul_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmul_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vmul_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmul_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmul_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmul_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmul_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmul_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmul_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmul_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmul_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmul_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmul_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmul_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmul_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmul_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmul_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmul_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmul_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmul_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmul_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmul_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmul_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmul_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmul_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmul_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmul_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmul_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmul_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmul_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmul_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmul_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmul_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmul_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmul_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmul_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmul_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmul_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmul_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmul_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmul_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmul_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmul_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmul_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmul_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vmul_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmul_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmul_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmul_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmul_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmul_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmul_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmul_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmul_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmul_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmul_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmul_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmul_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmul_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmul_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmul_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmul_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmul_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmul_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmul_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmul_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmul_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmul_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmul_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmul_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmul_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmul_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmul_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmul_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmul_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmul_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmul_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmul_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmul_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmul_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmul_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmul_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmul_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmul_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmul_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmul_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmul_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmul_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmul_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmul_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vmul_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmul_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmul_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmul_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmul_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmul_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmul_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmul_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmul_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmul_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmul_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmul_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmul_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmul_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmul_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmul_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmul_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmul_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmul_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmul_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmul_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmul_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmul_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmul_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmul_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmul_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmul_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmul_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmul_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmul_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmul_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmul_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmul_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmul_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmul_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmul_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmul_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmul_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmul_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmul_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmul_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmul_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmul_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmul_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmul_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vmul_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmul_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmul_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmulh_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vmulh_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmulh_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vmulh_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmulh_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vmulh_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmulh_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vmulh_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmulh_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vmulh_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmulh_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vmulh_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmulh_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vmulh_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmulh_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vmulh_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmulh_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vmulh_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmulh_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vmulh_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmulh_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vmulh_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmulh_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vmulh_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmulh_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vmulh_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmulh_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vmulh_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmulh_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vmulh_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmulh_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vmulh_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmulh_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vmulh_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmulh_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vmulh_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmulh_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vmulh_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmulh_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vmulh_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmulh_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vmulh_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmulh_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vmulh_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vmulh_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vmulh_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmulh_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmulh_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmulh_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmulh_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmulh_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmulh_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmulh_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmulh_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmulh_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmulh_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmulh_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmulh_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmulh_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vmulh_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmulh_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmulh_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmulh_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmulh_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmulh_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmulh_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmulh_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmulh_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmulh_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmulh_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmulh_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vmulh_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmulh_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmulh_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmulh_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmulh_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmulh_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmulh_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmulh_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmulh_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmulh_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vmulh_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmulh_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmulh_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmulh_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmulh_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmulh_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmulh_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vmulh_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmulh_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulh_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmulhu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vmulhu_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmulhu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmulhu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vmulhu_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmulhu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i8m1((vint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i8m2((vint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i8m4((vint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i8m8((vint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i8mf2((vint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i8mf4((vint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i8mf8((vint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i16m1((vint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i16m2((vint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i16m4((vint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i16m8((vint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i16mf2((vint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i16mf4((vint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i32m1((vint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i32m2((vint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i32m4((vint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i32m8((vint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i32mf2((vint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i64m1((vint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i64m2((vint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i64m4((vint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmulhsu_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vv_i64m8((vint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmulhsu_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i32m4((int32_t *)(op0), (vuint8m1_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint8m1_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i32m8((int32_t *)(op0), (vuint8m2_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint8m2_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i8m1((vint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i8m2((vint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i8m4((vint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i8m8((vint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i8mf2((vint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i8mf4((vint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i8mf8((vint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i16m1((vint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i16m2((vint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i16m4((vint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i16m8((vint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i16mf2((vint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i16mf4((vint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i32m1((vint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i32m2((vint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i32m4((vint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i32m8((vint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i32mf2((vint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i64m1((vint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i64m2((vint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i64m4((vint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vmulhsu_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vmulhsu_vx_i64m8((vint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmulhsu_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmulhsu_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vdivu_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vdivu_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vdivu_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vdivu_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vdivu_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vdivu_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vdivu_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vdivu_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vdivu_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vdivu_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vdivu_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vdivu_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vdivu_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vdivu_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vdivu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vdivu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vdivu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vdivu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vdivu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vdivu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vdivu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vdivu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vdivu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vdivu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vdivu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vdivu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vdivu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vdivu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vdivu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vdivu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vdivu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vdivu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vdivu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vdivu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vdivu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vdivu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vdivu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vdivu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vdivu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vdivu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vdivu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vdivu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vdivu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vdivu_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vdivu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vdivu_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vdivu_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vdivu_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vdivu_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vdivu_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vdivu_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vdivu_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vdivu_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vdivu_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vdivu_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vdivu_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vdivu_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vdivu_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vdivu_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vdivu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vdivu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vdivu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vdivu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vdivu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vdivu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vdivu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vdivu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vdivu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vdivu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vdivu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vdivu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vdivu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vdivu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vdivu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vdivu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vdivu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vdivu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vdivu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vdivu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vdivu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vdivu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vdivu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vdivu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vdivu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vdivu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vdivu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vdivu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vdivu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vdivu_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vdivu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdivu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vdiv_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vdiv_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vdiv_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vdiv_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vdiv_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vdiv_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vdiv_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vdiv_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vdiv_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vdiv_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vdiv_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vdiv_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vdiv_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vdiv_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vdiv_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vdiv_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vdiv_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vdiv_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vdiv_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vdiv_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vdiv_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vdiv_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vdiv_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vdiv_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vdiv_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vdiv_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vdiv_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vdiv_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vdiv_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vdiv_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vdiv_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vdiv_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vdiv_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vdiv_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vdiv_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vdiv_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vdiv_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vdiv_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vdiv_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vdiv_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vdiv_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vdiv_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vdiv_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vdiv_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vdiv_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vdiv_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vdiv_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vdiv_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vdiv_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vdiv_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vdiv_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vdiv_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vdiv_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vdiv_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vdiv_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vdiv_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vdiv_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vdiv_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vdiv_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vdiv_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vdiv_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vdiv_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vdiv_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vdiv_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vdiv_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vdiv_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vdiv_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vdiv_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vdiv_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vdiv_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vdiv_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vdiv_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vdiv_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vdiv_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vdiv_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vdiv_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vdiv_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vdiv_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vdiv_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vdiv_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vdiv_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vdiv_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vdiv_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vdiv_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vdiv_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vdiv_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vdiv_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vdiv_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vdiv_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vdiv_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vdiv_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vremu_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vremu_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vremu_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vremu_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vremu_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vremu_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vremu_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vremu_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vremu_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vremu_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vremu_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vremu_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vremu_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vremu_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vremu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vremu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vremu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vremu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vremu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vremu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vremu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vremu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vremu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vremu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vremu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vremu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vremu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vremu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vremu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vremu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vremu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vremu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vremu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vremu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vremu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vremu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vremu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vremu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vremu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vremu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vremu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vremu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vremu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vremu_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vremu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vremu_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vremu_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vremu_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vremu_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vremu_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vremu_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vremu_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vremu_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vremu_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vremu_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vremu_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vremu_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vremu_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vremu_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vremu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vremu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vremu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vremu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vremu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vremu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vremu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vremu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vremu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vremu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vremu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vremu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vremu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vremu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vremu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vremu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vremu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vremu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vremu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vremu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vremu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vremu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vremu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vremu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vremu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vremu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vremu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vremu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vremu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vremu_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vremu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vremu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vrem_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vrem_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vrem_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vrem_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vrem_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vrem_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vrem_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vrem_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vrem_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vrem_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vrem_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vrem_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vrem_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vrem_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vrem_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vrem_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vrem_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vrem_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vrem_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vrem_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vrem_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vrem_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vrem_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vrem_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vrem_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vrem_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vrem_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vrem_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vrem_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vrem_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vrem_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vrem_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vrem_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vrem_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vrem_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vrem_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vrem_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vrem_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vrem_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vrem_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vrem_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vrem_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vrem_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vrem_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vrem_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vrem_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrem_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrem_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrem_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrem_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrem_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrem_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrem_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrem_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrem_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrem_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrem_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrem_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vrem_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vrem_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrem_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrem_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrem_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrem_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrem_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrem_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrem_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrem_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrem_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrem_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vrem_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vrem_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vrem_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vrem_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vrem_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vrem_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vrem_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vrem_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vrem_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vrem_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vrem_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vrem_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vrem_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vrem_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vrem_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vrem_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vrem_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vrem_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vrem_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vrem_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrem_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vwmul_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i16mf4((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vwmul_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vwmul_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i16mf2((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vwmul_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vwmul_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i16m1((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vwmul_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vwmul_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i16m2((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vwmul_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vwmul_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i16m4((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vwmul_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vwmul_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i16m8((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vwmul_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vwmul_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i32mf2((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vwmul_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vwmul_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i32m1((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vwmul_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vwmul_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i32m2((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vwmul_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwmul_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i32m4((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vwmul_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vwmul_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i32m8((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vwmul_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vwmul_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i64m1((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vwmul_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vwmul_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i64m2((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vwmul_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwmul_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i64m4((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vwmul_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vwmul_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vwmul_vv_i64m8((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vwmul_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u32m4((uint32_t *)(op0), (vuint8m1_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint8m1_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u32m8((uint32_t *)(op0), (vuint8m2_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint8m2_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vwmul_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i16mf4((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwmul_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwmul_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i16mf2((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwmul_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwmul_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i16m1((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwmul_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwmul_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i16m2((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwmul_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwmul_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i16m4((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwmul_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwmul_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i16m8((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vwmul_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vwmul_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i32mf2((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwmul_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwmul_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i32m1((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwmul_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwmul_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i32m2((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwmul_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwmul_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i32m4((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwmul_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwmul_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i32m8((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vwmul_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vwmul_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i64m1((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwmul_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwmul_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i64m2((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwmul_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwmul_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i64m4((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwmul_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwmul_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vwmul_vx_i64m8((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vwmul_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmul_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u16mf4((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u16mf2((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u16m1((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u16m2((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u16m4((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u16m8((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u32mf2((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u32m1((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u32m2((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u32m4((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u32m8((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u64m1((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u64m2((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u64m4((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vwmulu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vwmulu_vv_u64m8((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vwmulu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u16mf4((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u16mf2((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u16m1((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u16m2((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u16m4((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u16m8((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u32mf2((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u32m1((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u32m2((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u32m4((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u32m8((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u64m1((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u64m2((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u64m4((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwmulu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vwmulu_vx_u64m8((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwmulu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i16mf4((vint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i16mf2((vint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i16m1((vint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i16m2((vint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i16m4((vint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i16m8((vint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i32mf2((vint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i32m1((vint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i32m2((vint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i32m4((vint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i32m8((vint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i64m1((vint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i64m2((vint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i64m4((vint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vwmulsu_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vv_i64m8((vint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vwmulsu_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i16mf4((vint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i16mf2((vint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i16m1((vint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i16m2((vint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i16m4((vint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i16m8((vint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i32mf2((vint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i32m1((vint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i32m2((vint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i32m4((vint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i32m8((vint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i64m1((vint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i64m2((vint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i64m4((vint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vwmulsu_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vwmulsu_vx_i64m8((vint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vwmulsu_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmulsu_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vmacc_vv_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vmacc_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmacc_vv_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vmacc_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmacc_vv_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vmacc_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmacc_vv_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vmacc_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmacc_vv_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vmacc_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmacc_vv_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vmacc_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmacc_vv_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vmacc_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmacc_vv_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vmacc_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmacc_vv_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vmacc_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmacc_vv_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vmacc_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmacc_vv_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vmacc_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmacc_vv_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vmacc_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmacc_vv_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vmacc_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmacc_vv_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vmacc_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmacc_vv_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vmacc_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmacc_vv_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vmacc_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmacc_vv_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vmacc_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmacc_vv_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vmacc_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmacc_vv_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vmacc_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmacc_vv_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vmacc_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmacc_vv_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vmacc_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmacc_vv_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vmacc_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vmacc_vx_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vmacc_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (int8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmacc_vx_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vmacc_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (int8_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmacc_vx_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vmacc_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (int8_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmacc_vx_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vmacc_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (int8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmacc_vx_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vmacc_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (int8_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmacc_vx_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vmacc_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (int8_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmacc_vx_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vmacc_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (int8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmacc_vx_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vmacc_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (int16_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmacc_vx_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vmacc_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (int16_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmacc_vx_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vmacc_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (int16_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmacc_vx_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vmacc_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (int16_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmacc_vx_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vmacc_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (int16_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmacc_vx_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vmacc_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (int16_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmacc_vx_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vmacc_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (int32_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmacc_vx_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vmacc_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (int32_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmacc_vx_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vmacc_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (int32_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmacc_vx_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vmacc_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (int32_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmacc_vx_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vmacc_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (int32_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmacc_vx_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vmacc_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (int64_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmacc_vx_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vmacc_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (int64_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmacc_vx_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vmacc_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (int64_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmacc_vx_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vmacc_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (int64_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vmacc_vv_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vmacc_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmacc_vv_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vmacc_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmacc_vv_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vmacc_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmacc_vv_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vmacc_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmacc_vv_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vmacc_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmacc_vv_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vmacc_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmacc_vv_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vmacc_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmacc_vv_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vmacc_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmacc_vv_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vmacc_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmacc_vv_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vmacc_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmacc_vv_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vmacc_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmacc_vv_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vmacc_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmacc_vv_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vmacc_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmacc_vv_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vmacc_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmacc_vv_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vmacc_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmacc_vv_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vmacc_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmacc_vv_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vmacc_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmacc_vv_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vmacc_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmacc_vv_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vmacc_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmacc_vv_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vmacc_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmacc_vv_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vmacc_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmacc_vv_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vmacc_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmacc_vx_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vmacc_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (uint8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmacc_vx_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vmacc_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (uint8_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmacc_vx_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vmacc_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (uint8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmacc_vx_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vmacc_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (uint8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmacc_vx_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vmacc_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (uint8_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmacc_vx_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vmacc_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (uint8_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmacc_vx_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vmacc_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (uint8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmacc_vx_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vmacc_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (uint16_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmacc_vx_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vmacc_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (uint16_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmacc_vx_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vmacc_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (uint16_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmacc_vx_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vmacc_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (uint16_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmacc_vx_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vmacc_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (uint16_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmacc_vx_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vmacc_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (uint16_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmacc_vx_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vmacc_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (uint32_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmacc_vx_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vmacc_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (uint32_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmacc_vx_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vmacc_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (uint32_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmacc_vx_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vmacc_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (uint32_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmacc_vx_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vmacc_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (uint32_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmacc_vx_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vmacc_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (uint64_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmacc_vx_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vmacc_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (uint64_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmacc_vx_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vmacc_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (uint64_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmacc_vx_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmacc_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vmacc_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmacc_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (uint64_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vnmsac_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i32m4((int32_t *)(op0), (vuint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint16m2_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i32m8((int32_t *)(op0), (vuint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint16m4_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (int8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (int8_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (int8_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (int8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (int8_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (int8_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (int8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (int16_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (int16_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (int16_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (int16_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (int16_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (int16_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (int32_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (int32_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (int32_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (int32_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (int32_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (int64_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (int64_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (int64_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vnmsac_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (int64_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vnmsac_vv_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vnmsac_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (uint8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (uint8_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (uint8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (uint8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (uint8_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (uint8_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (uint8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (uint16_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (uint16_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (uint16_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (uint16_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (uint16_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (uint16_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (uint32_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (uint32_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (uint32_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (uint32_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (uint32_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (uint64_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (uint64_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (uint64_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vnmsac_vx_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsac_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vnmsac_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsac_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (uint64_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmadd_vv_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vmadd_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmadd_vv_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vmadd_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmadd_vv_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vmadd_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmadd_vv_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vmadd_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmadd_vv_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vmadd_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmadd_vv_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vmadd_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmadd_vv_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vmadd_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmadd_vv_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vmadd_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmadd_vv_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vmadd_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmadd_vv_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vmadd_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmadd_vv_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vmadd_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmadd_vv_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vmadd_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmadd_vv_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vmadd_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmadd_vv_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vmadd_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmadd_vv_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vmadd_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmadd_vv_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vmadd_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmadd_vv_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vmadd_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmadd_vv_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vmadd_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmadd_vv_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vmadd_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmadd_vv_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vmadd_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmadd_vv_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vmadd_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmadd_vv_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vmadd_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vmadd_vx_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vmadd_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (int8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vmadd_vx_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vmadd_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (int8_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vmadd_vx_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vmadd_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (int8_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vmadd_vx_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vmadd_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (int8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vmadd_vx_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vmadd_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (int8_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vmadd_vx_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vmadd_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (int8_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vmadd_vx_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vmadd_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (int8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vmadd_vx_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vmadd_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (int16_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vmadd_vx_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vmadd_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (int16_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vmadd_vx_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vmadd_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (int16_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vmadd_vx_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vmadd_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (int16_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vmadd_vx_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vmadd_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (int16_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vmadd_vx_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vmadd_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (int16_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vmadd_vx_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vmadd_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (int32_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vmadd_vx_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vmadd_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (int32_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vmadd_vx_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vmadd_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (int32_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmadd_vx_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vmadd_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (int32_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vmadd_vx_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vmadd_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (int32_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmadd_vx_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vmadd_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (int64_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vmadd_vx_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vmadd_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (int64_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vmadd_vx_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vmadd_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (int64_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vmadd_vx_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vmadd_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (int64_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vmadd_vv_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vmadd_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmadd_vv_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vmadd_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmadd_vv_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vmadd_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmadd_vv_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vmadd_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmadd_vv_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vmadd_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmadd_vv_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vmadd_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmadd_vv_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vmadd_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmadd_vv_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vmadd_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmadd_vv_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vmadd_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmadd_vv_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vmadd_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmadd_vv_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vmadd_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmadd_vv_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vmadd_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmadd_vv_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vmadd_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmadd_vv_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vmadd_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmadd_vv_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vmadd_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmadd_vv_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vmadd_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmadd_vv_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vmadd_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmadd_vv_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vmadd_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmadd_vv_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vmadd_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmadd_vv_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vmadd_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmadd_vv_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vmadd_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmadd_vv_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vmadd_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmadd_vx_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vmadd_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (uint8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vmadd_vx_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vmadd_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (uint8_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vmadd_vx_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vmadd_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (uint8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vmadd_vx_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vmadd_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (uint8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vmadd_vx_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vmadd_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (uint8_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vmadd_vx_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vmadd_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (uint8_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vmadd_vx_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vmadd_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (uint8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmadd_vx_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vmadd_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (uint16_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vmadd_vx_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vmadd_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (uint16_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vmadd_vx_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vmadd_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (uint16_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vmadd_vx_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vmadd_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (uint16_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vmadd_vx_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vmadd_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (uint16_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vmadd_vx_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vmadd_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (uint16_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vmadd_vx_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vmadd_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (uint32_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vmadd_vx_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vmadd_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (uint32_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vmadd_vx_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vmadd_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (uint32_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vmadd_vx_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vmadd_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (uint32_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vmadd_vx_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vmadd_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (uint32_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vmadd_vx_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vmadd_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (uint64_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmadd_vx_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vmadd_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (uint64_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vmadd_vx_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vmadd_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (uint64_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vmadd_vx_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmadd_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vmadd_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmadd_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (uint64_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vnmsub_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (int8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (int8_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (int8_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (int8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (int8_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (int8_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (int8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (int16_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (int16_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (int16_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (int16_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (int16_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (int16_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (int32_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (int32_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (int32_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (int32_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (int32_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (int64_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (int64_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (int64_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vnmsub_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (int64_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vnmsub_vv_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vnmsub_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u32m4((uint32_t *)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint16m2_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u32m8((uint32_t *)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint16m4_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (uint8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (uint8_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (uint8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (uint8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (uint8_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (uint8_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (uint8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (uint16_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (uint16_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (uint16_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (uint16_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (uint16_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (uint16_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (uint32_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (uint32_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (uint32_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (uint32_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (uint32_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (uint64_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (uint64_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (uint64_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vnmsub_vx_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vnmsub_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vnmsub_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnmsub_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (uint64_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u16mf4((vuint16mf4_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u16mf2((vuint16mf2_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u16m1((vuint16m1_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u16m2((vuint16m2_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u16m4((vuint16m4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u16m8((vuint16m8_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u32mf2((vuint32mf2_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u32m1((vuint32m1_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u32m2((vuint32m2_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u32m4((vuint32m4_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u32m8((vuint32m8_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u64m1((vuint64m1_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u64m2((vuint64m2_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u64m4((vuint64m4_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vwmaccu_vv_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vv_u64m8((vuint64m8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vwmaccu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u16mf4((vuint16mf4_t)(op0), (uint8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (uint8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u16mf2((vuint16mf2_t)(op0), (uint8_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (uint8_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u16m1((vuint16m1_t)(op0), (uint8_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (uint8_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u16m2((vuint16m2_t)(op0), (uint8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (uint8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u16m4((vuint16m4_t)(op0), (uint8_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (uint8_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u16m8((vuint16m8_t)(op0), (uint8_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (uint8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u32mf2((vuint32mf2_t)(op0), (uint16_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (uint16_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u32m1((vuint32m1_t)(op0), (uint16_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (uint16_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u32m2((vuint32m2_t)(op0), (uint16_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (uint16_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u32m4((vuint32m4_t)(op0), (uint16_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (uint16_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u32m8((vuint32m8_t)(op0), (uint16_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (uint16_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u64m1((vuint64m1_t)(op0), (uint32_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (uint32_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u64m2((vuint64m2_t)(op0), (uint32_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (uint32_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u64m4((vuint64m4_t)(op0), (uint32_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (uint32_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vwmaccu_vx_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccu_vx_u64m8((vuint64m8_t)(op0), (uint32_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vwmaccu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (uint32_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i16mf4((vint16mf4_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i16mf2((vint16mf2_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i16m1((vint16m1_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i16m2((vint16m2_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i16m4((vint16m4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i16m8((vint16m8_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i32mf2((vint32mf2_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i32m1((vint32m1_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i32m2((vint32m2_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i32m4((vint32m4_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i32m8((vint32m8_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i64m1((vint64m1_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i64m2((vint64m2_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i64m4((vint64m4_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vwmacc_vv_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vv_i64m8((vint64m8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vwmacc_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i16mf4((vint16mf4_t)(op0), (int8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (int8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i16mf2((vint16mf2_t)(op0), (int8_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (int8_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i16m1((vint16m1_t)(op0), (int8_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (int8_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i16m2((vint16m2_t)(op0), (int8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (int8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i16m4((vint16m4_t)(op0), (int8_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (int8_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i16m8((vint16m8_t)(op0), (int8_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (int8_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i32mf2((vint32mf2_t)(op0), (int16_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (int16_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i32m1((vint32m1_t)(op0), (int16_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (int16_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i32m2((vint32m2_t)(op0), (int16_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (int16_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i32m4((vint32m4_t)(op0), (int16_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (int16_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i32m8((vint32m8_t)(op0), (int16_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (int16_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i64m1((vint64m1_t)(op0), (int32_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (int32_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i64m2((vint64m2_t)(op0), (int32_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (int32_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i64m4((vint64m4_t)(op0), (int32_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (int32_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vwmacc_vx_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmacc_vx_i64m8((vint64m8_t)(op0), (int32_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vwmacc_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmacc_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (int32_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i16mf4((vint16mf4_t)(op0), (vint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i16mf2((vint16mf2_t)(op0), (vint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i16m1((vint16m1_t)(op0), (vint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i16m2((vint16m2_t)(op0), (vint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i16m4((vint16m4_t)(op0), (vint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i16m8((vint16m8_t)(op0), (vint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i32mf2((vint32mf2_t)(op0), (vint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i32m1((vint32m1_t)(op0), (vint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i32m2((vint32m2_t)(op0), (vint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i32m4((vint32m4_t)(op0), (vint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i32m8((vint32m8_t)(op0), (vint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i64m1((vint64m1_t)(op0), (vint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i64m2((vint64m2_t)(op0), (vint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i64m4((vint64m4_t)(op0), (vint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vv_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vv_i64m8((vint64m8_t)(op0), (vint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vwmaccsu_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i16mf4((vint16mf4_t)(op0), (int8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (int8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i16mf2((vint16mf2_t)(op0), (int8_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (int8_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i16m1((vint16m1_t)(op0), (int8_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (int8_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i16m2((vint16m2_t)(op0), (int8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (int8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i16m4((vint16m4_t)(op0), (int8_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (int8_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i16m8((vint16m8_t)(op0), (int8_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (int8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i32mf2((vint32mf2_t)(op0), (int16_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (int16_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i32m1((vint32m1_t)(op0), (int16_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (int16_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i32m2((vint32m2_t)(op0), (int16_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (int16_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i32m4((vint32m4_t)(op0), (int16_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (int16_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i32m8((vint32m8_t)(op0), (int16_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (int16_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i64m1((vint64m1_t)(op0), (int32_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (int32_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i64m2((vint64m2_t)(op0), (int32_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (int32_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i64m4((vint64m4_t)(op0), (int32_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (int32_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vwmaccsu_vx_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccsu_vx_i64m8((vint64m8_t)(op0), (int32_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vwmaccsu_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccsu_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (int32_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i16mf4((vint16mf4_t)(op0), (uint8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (uint8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i16mf2((vint16mf2_t)(op0), (uint8_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (uint8_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i16m1((vint16m1_t)(op0), (uint8_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (uint8_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i16m2((vint16m2_t)(op0), (uint8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (uint8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i16m4((vint16m4_t)(op0), (uint8_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (uint8_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i16m8((vint16m8_t)(op0), (uint8_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (uint8_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i32mf2((vint32mf2_t)(op0), (uint16_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (uint16_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i32m1((vint32m1_t)(op0), (uint16_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (uint16_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i32m2((vint32m2_t)(op0), (uint16_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (uint16_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i32m4((vint32m4_t)(op0), (uint16_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (uint16_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i32m8((vint32m8_t)(op0), (uint16_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (uint16_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i64m1((vint64m1_t)(op0), (uint32_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (uint32_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i64m2((vint64m2_t)(op0), (uint32_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (uint32_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i64m4((vint64m4_t)(op0), (uint32_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (uint32_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vwmaccus_vx_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vwmaccus_vx_i64m8((vint64m8_t)(op0), (uint32_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vwmaccus_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwmaccus_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (uint32_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vmerge_vvm_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i8m1((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i8m2((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i8m4((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i8m8((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i8mf2((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i8mf4((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i8mf8((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i16m1((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i16m2((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i16m4((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i16m8((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i16mf2((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i16mf4((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i32m1((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i32m2((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i32m4((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i32m8((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i32mf2((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i64m1((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i64m2((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i64m4((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_i64m8((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i8m1((vbool8_t)(op0), (vint8m1_t)(op1), (int8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i8m2((vbool4_t)(op0), (vint8m2_t)(op1), (int8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i8m4((vbool2_t)(op0), (vint8m4_t)(op1), (int8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i8m8((vbool1_t)(op0), (vint8m8_t)(op1), (int8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i8mf2((vbool16_t)(op0), (vint8mf2_t)(op1), (int8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i8mf4((vbool32_t)(op0), (vint8mf4_t)(op1), (int8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i8mf8((vbool64_t)(op0), (vint8mf8_t)(op1), (int8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i16m1((vbool16_t)(op0), (vint16m1_t)(op1), (int16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i16m2((vbool8_t)(op0), (vint16m2_t)(op1), (int16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i16m4((vbool4_t)(op0), (vint16m4_t)(op1), (int16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i16m8((vbool2_t)(op0), (vint16m8_t)(op1), (int16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i16mf2((vbool32_t)(op0), (vint16mf2_t)(op1), (int16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i16mf4((vbool64_t)(op0), (vint16mf4_t)(op1), (int16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i32m1((vbool32_t)(op0), (vint32m1_t)(op1), (int32_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i32m2((vbool16_t)(op0), (vint32m2_t)(op1), (int32_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i32m4((vbool8_t)(op0), (vint32m4_t)(op1), (int32_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i32m8((vbool4_t)(op0), (vint32m8_t)(op1), (int32_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i32mf2((vbool64_t)(op0), (vint32mf2_t)(op1), (int32_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i64m1((vbool64_t)(op0), (vint64m1_t)(op1), (int64_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i64m2((vbool32_t)(op0), (vint64m2_t)(op1), (int64_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i64m4((vbool16_t)(op0), (vint64m4_t)(op1), (int64_t)(op2), (size_t)(op3))
-#define vmerge_vxm_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_i64m8((vbool8_t)(op0), (vint64m8_t)(op1), (int64_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i32m4((int32_t *)(op0), (vuint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i32m8((int32_t *)(op0), (vuint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vmerge_vvm_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u8m1((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u8m2((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u8m4((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u8m8((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u8mf2((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u8mf4((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u8mf8((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u16m1((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u16m2((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u16m4((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u16m8((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u16mf2((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u16mf4((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u32m1((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u32m2((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u32m4((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u32m8((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u32mf2((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u64m1((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u64m2((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u64m4((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_u64m8((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u8m1((vbool8_t)(op0), (vuint8m1_t)(op1), (uint8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u8m2((vbool4_t)(op0), (vuint8m2_t)(op1), (uint8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u8m4((vbool2_t)(op0), (vuint8m4_t)(op1), (uint8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u8m8((vbool1_t)(op0), (vuint8m8_t)(op1), (uint8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u8mf2((vbool16_t)(op0), (vuint8mf2_t)(op1), (uint8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u8mf4((vbool32_t)(op0), (vuint8mf4_t)(op1), (uint8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u8mf8((vbool64_t)(op0), (vuint8mf8_t)(op1), (uint8_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u16m1((vbool16_t)(op0), (vuint16m1_t)(op1), (uint16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u16m2((vbool8_t)(op0), (vuint16m2_t)(op1), (uint16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u16m4((vbool4_t)(op0), (vuint16m4_t)(op1), (uint16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u16m8((vbool2_t)(op0), (vuint16m8_t)(op1), (uint16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u16mf2((vbool32_t)(op0), (vuint16mf2_t)(op1), (uint16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u16mf4((vbool64_t)(op0), (vuint16mf4_t)(op1), (uint16_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u32m1((vbool32_t)(op0), (vuint32m1_t)(op1), (uint32_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u32m2((vbool16_t)(op0), (vuint32m2_t)(op1), (uint32_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u32m4((vbool8_t)(op0), (vuint32m4_t)(op1), (uint32_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u32m8((vbool4_t)(op0), (vuint32m8_t)(op1), (uint32_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u32mf2((vbool64_t)(op0), (vuint32mf2_t)(op1), (uint32_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u64m1((vbool64_t)(op0), (vuint64m1_t)(op1), (uint64_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u64m2((vbool32_t)(op0), (vuint64m2_t)(op1), (uint64_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u64m4((vbool16_t)(op0), (vuint64m4_t)(op1), (uint64_t)(op2), (size_t)(op3))
-#define vmerge_vxm_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vxm_u64m8((vbool8_t)(op0), (vuint64m8_t)(op1), (uint64_t)(op2), (size_t)(op3))
-#define vmv_v_v_u8m1(op0, op1) \
-__builtin_rvv_vmv_v_v_u8m1((vuint8m1_t)(op0), (size_t)(op1))
-#define vmv_v_v_u8m2(op0, op1) \
-__builtin_rvv_vmv_v_v_u8m2((vuint8m2_t)(op0), (size_t)(op1))
-#define vmv_v_v_u8m4(op0, op1) \
-__builtin_rvv_vmv_v_v_u8m4((vuint8m4_t)(op0), (size_t)(op1))
-#define vmv_v_v_u8m8(op0, op1) \
-__builtin_rvv_vmv_v_v_u8m8((vuint8m8_t)(op0), (size_t)(op1))
-#define vmv_v_v_u8mf2(op0, op1) \
-__builtin_rvv_vmv_v_v_u8mf2((vuint8mf2_t)(op0), (size_t)(op1))
-#define vmv_v_v_u8mf4(op0, op1) \
-__builtin_rvv_vmv_v_v_u8mf4((vuint8mf4_t)(op0), (size_t)(op1))
-#define vmv_v_v_u8mf8(op0, op1) \
-__builtin_rvv_vmv_v_v_u8mf8((vuint8mf8_t)(op0), (size_t)(op1))
-#define vmv_v_v_u16m1(op0, op1) \
-__builtin_rvv_vmv_v_v_u16m1((vuint16m1_t)(op0), (size_t)(op1))
-#define vmv_v_v_u16m2(op0, op1) \
-__builtin_rvv_vmv_v_v_u16m2((vuint16m2_t)(op0), (size_t)(op1))
-#define vmv_v_v_u16m4(op0, op1) \
-__builtin_rvv_vmv_v_v_u16m4((vuint16m4_t)(op0), (size_t)(op1))
-#define vmv_v_v_u16m8(op0, op1) \
-__builtin_rvv_vmv_v_v_u16m8((vuint16m8_t)(op0), (size_t)(op1))
-#define vmv_v_v_u16mf2(op0, op1) \
-__builtin_rvv_vmv_v_v_u16mf2((vuint16mf2_t)(op0), (size_t)(op1))
-#define vmv_v_v_u16mf4(op0, op1) \
-__builtin_rvv_vmv_v_v_u16mf4((vuint16mf4_t)(op0), (size_t)(op1))
-#define vmv_v_v_u32m1(op0, op1) \
-__builtin_rvv_vmv_v_v_u32m1((vuint32m1_t)(op0), (size_t)(op1))
-#define vmv_v_v_u32m2(op0, op1) \
-__builtin_rvv_vmv_v_v_u32m2((vuint32m2_t)(op0), (size_t)(op1))
-#define vmv_v_v_u32m4(op0, op1) \
-__builtin_rvv_vmv_v_v_u32m4((vuint32m4_t)(op0), (size_t)(op1))
-#define vmv_v_v_u32m8(op0, op1) \
-__builtin_rvv_vmv_v_v_u32m8((vuint32m8_t)(op0), (size_t)(op1))
-#define vmv_v_v_u32mf2(op0, op1) \
-__builtin_rvv_vmv_v_v_u32mf2((vuint32mf2_t)(op0), (size_t)(op1))
-#define vmv_v_v_u64m1(op0, op1) \
-__builtin_rvv_vmv_v_v_u64m1((vuint64m1_t)(op0), (size_t)(op1))
-#define vmv_v_v_u64m2(op0, op1) \
-__builtin_rvv_vmv_v_v_u64m2((vuint64m2_t)(op0), (size_t)(op1))
-#define vmv_v_v_u64m4(op0, op1) \
-__builtin_rvv_vmv_v_v_u64m4((vuint64m4_t)(op0), (size_t)(op1))
-#define vmv_v_v_u64m8(op0, op1) \
-__builtin_rvv_vmv_v_v_u64m8((vuint64m8_t)(op0), (size_t)(op1))
-#define vmv_v_v_i8m1(op0, op1) \
-__builtin_rvv_vmv_v_v_i8m1((vint8m1_t)(op0), (size_t)(op1))
-#define vmv_v_v_i8m2(op0, op1) \
-__builtin_rvv_vmv_v_v_i8m2((vint8m2_t)(op0), (size_t)(op1))
-#define vmv_v_v_i8m4(op0, op1) \
-__builtin_rvv_vmv_v_v_i8m4((vint8m4_t)(op0), (size_t)(op1))
-#define vmv_v_v_i8m8(op0, op1) \
-__builtin_rvv_vmv_v_v_i8m8((vint8m8_t)(op0), (size_t)(op1))
-#define vmv_v_v_i8mf2(op0, op1) \
-__builtin_rvv_vmv_v_v_i8mf2((vint8mf2_t)(op0), (size_t)(op1))
-#define vmv_v_v_i8mf4(op0, op1) \
-__builtin_rvv_vmv_v_v_i8mf4((vint8mf4_t)(op0), (size_t)(op1))
-#define vmv_v_v_i8mf8(op0, op1) \
-__builtin_rvv_vmv_v_v_i8mf8((vint8mf8_t)(op0), (size_t)(op1))
-#define vmv_v_v_i16m1(op0, op1) \
-__builtin_rvv_vmv_v_v_i16m1((vint16m1_t)(op0), (size_t)(op1))
-#define vmv_v_v_i16m2(op0, op1) \
-__builtin_rvv_vmv_v_v_i16m2((vint16m2_t)(op0), (size_t)(op1))
-#define vmv_v_v_i16m4(op0, op1) \
-__builtin_rvv_vmv_v_v_i16m4((vint16m4_t)(op0), (size_t)(op1))
-#define vmv_v_v_i16m8(op0, op1) \
-__builtin_rvv_vmv_v_v_i16m8((vint16m8_t)(op0), (size_t)(op1))
-#define vmv_v_v_i16mf2(op0, op1) \
-__builtin_rvv_vmv_v_v_i16mf2((vint16mf2_t)(op0), (size_t)(op1))
-#define vmv_v_v_i16mf4(op0, op1) \
-__builtin_rvv_vmv_v_v_i16mf4((vint16mf4_t)(op0), (size_t)(op1))
-#define vmv_v_v_i32m1(op0, op1) \
-__builtin_rvv_vmv_v_v_i32m1((vint32m1_t)(op0), (size_t)(op1))
-#define vmv_v_v_i32m2(op0, op1) \
-__builtin_rvv_vmv_v_v_i32m2((vint32m2_t)(op0), (size_t)(op1))
-#define vmv_v_v_i32m4(op0, op1) \
-__builtin_rvv_vmv_v_v_i32m4((vint32m4_t)(op0), (size_t)(op1))
-#define vmv_v_v_i32m8(op0, op1) \
-__builtin_rvv_vmv_v_v_i32m8((vint32m8_t)(op0), (size_t)(op1))
-#define vmv_v_v_i32mf2(op0, op1) \
-__builtin_rvv_vmv_v_v_i32mf2((vint32mf2_t)(op0), (size_t)(op1))
-#define vmv_v_v_i64m1(op0, op1) \
-__builtin_rvv_vmv_v_v_i64m1((vint64m1_t)(op0), (size_t)(op1))
-#define vmv_v_v_i64m2(op0, op1) \
-__builtin_rvv_vmv_v_v_i64m2((vint64m2_t)(op0), (size_t)(op1))
-#define vmv_v_v_i64m4(op0, op1) \
-__builtin_rvv_vmv_v_v_i64m4((vint64m4_t)(op0), (size_t)(op1))
-#define vmv_v_v_i64m8(op0, op1) \
-__builtin_rvv_vmv_v_v_i64m8((vint64m8_t)(op0), (size_t)(op1))
-#define vmv_v_x_i8m1(op0, op1) \
-__builtin_rvv_vmv_v_x_i8m1((int8_t)(op0), (size_t)(op1))
-#define vmv_v_x_i8m2(op0, op1) \
-__builtin_rvv_vmv_v_x_i8m2((int8_t)(op0), (size_t)(op1))
-#define vmv_v_x_i8m4(op0, op1) \
-__builtin_rvv_vmv_v_x_i8m4((int8_t)(op0), (size_t)(op1))
-#define vmv_v_x_i8m8(op0, op1) \
-__builtin_rvv_vmv_v_x_i8m8((int8_t)(op0), (size_t)(op1))
-#define vmv_v_x_i8mf2(op0, op1) \
-__builtin_rvv_vmv_v_x_i8mf2((int8_t)(op0), (size_t)(op1))
-#define vmv_v_x_i8mf4(op0, op1) \
-__builtin_rvv_vmv_v_x_i8mf4((int8_t)(op0), (size_t)(op1))
-#define vmv_v_x_i8mf8(op0, op1) \
-__builtin_rvv_vmv_v_x_i8mf8((int8_t)(op0), (size_t)(op1))
-#define vmv_v_x_i16m1(op0, op1) \
-__builtin_rvv_vmv_v_x_i16m1((int16_t)(op0), (size_t)(op1))
-#define vmv_v_x_i16m2(op0, op1) \
-__builtin_rvv_vmv_v_x_i16m2((int16_t)(op0), (size_t)(op1))
-#define vmv_v_x_i16m4(op0, op1) \
-__builtin_rvv_vmv_v_x_i16m4((int16_t)(op0), (size_t)(op1))
-#define vmv_v_x_i16m8(op0, op1) \
-__builtin_rvv_vmv_v_x_i16m8((int16_t)(op0), (size_t)(op1))
-#define vmv_v_x_i16mf2(op0, op1) \
-__builtin_rvv_vmv_v_x_i16mf2((int16_t)(op0), (size_t)(op1))
-#define vmv_v_x_i16mf4(op0, op1) \
-__builtin_rvv_vmv_v_x_i16mf4((int16_t)(op0), (size_t)(op1))
-#define vmv_v_x_i32m1(op0, op1) \
-__builtin_rvv_vmv_v_x_i32m1((int32_t)(op0), (size_t)(op1))
-#define vmv_v_x_i32m2(op0, op1) \
-__builtin_rvv_vmv_v_x_i32m2((int32_t)(op0), (size_t)(op1))
-#define vmv_v_x_i32m4(op0, op1) \
-__builtin_rvv_vmv_v_x_i32m4((int32_t)(op0), (size_t)(op1))
-#define vmv_v_x_i32m8(op0, op1) \
-__builtin_rvv_vmv_v_x_i32m8((int32_t)(op0), (size_t)(op1))
-#define vmv_v_x_i32mf2(op0, op1) \
-__builtin_rvv_vmv_v_x_i32mf2((int32_t)(op0), (size_t)(op1))
-#define vmv_v_x_i64m1(op0, op1) \
-__builtin_rvv_vmv_v_x_i64m1((int64_t)(op0), (size_t)(op1))
-#define vmv_v_x_i64m2(op0, op1) \
-__builtin_rvv_vmv_v_x_i64m2((int64_t)(op0), (size_t)(op1))
-#define vmv_v_x_i64m4(op0, op1) \
-__builtin_rvv_vmv_v_x_i64m4((int64_t)(op0), (size_t)(op1))
-#define vmv_v_x_i64m8(op0, op1) \
-__builtin_rvv_vmv_v_x_i64m8((int64_t)(op0), (size_t)(op1))
-#define vmv_v_x_u8m1(op0, op1) \
-__builtin_rvv_vmv_v_x_u8m1((uint8_t)(op0), (size_t)(op1))
-#define vmv_v_x_u8m2(op0, op1) \
-__builtin_rvv_vmv_v_x_u8m2((uint8_t)(op0), (size_t)(op1))
-#define vmv_v_x_u8m4(op0, op1) \
-__builtin_rvv_vmv_v_x_u8m4((uint8_t)(op0), (size_t)(op1))
-#define vmv_v_x_u8m8(op0, op1) \
-__builtin_rvv_vmv_v_x_u8m8((uint8_t)(op0), (size_t)(op1))
-#define vmv_v_x_u8mf2(op0, op1) \
-__builtin_rvv_vmv_v_x_u8mf2((uint8_t)(op0), (size_t)(op1))
-#define vmv_v_x_u8mf4(op0, op1) \
-__builtin_rvv_vmv_v_x_u8mf4((uint8_t)(op0), (size_t)(op1))
-#define vmv_v_x_u8mf8(op0, op1) \
-__builtin_rvv_vmv_v_x_u8mf8((uint8_t)(op0), (size_t)(op1))
-#define vmv_v_x_u16m1(op0, op1) \
-__builtin_rvv_vmv_v_x_u16m1((uint16_t)(op0), (size_t)(op1))
-#define vmv_v_x_u16m2(op0, op1) \
-__builtin_rvv_vmv_v_x_u16m2((uint16_t)(op0), (size_t)(op1))
-#define vmv_v_x_u16m4(op0, op1) \
-__builtin_rvv_vmv_v_x_u16m4((uint16_t)(op0), (size_t)(op1))
-#define vmv_v_x_u16m8(op0, op1) \
-__builtin_rvv_vmv_v_x_u16m8((uint16_t)(op0), (size_t)(op1))
-#define vmv_v_x_u16mf2(op0, op1) \
-__builtin_rvv_vmv_v_x_u16mf2((uint16_t)(op0), (size_t)(op1))
-#define vmv_v_x_u16mf4(op0, op1) \
-__builtin_rvv_vmv_v_x_u16mf4((uint16_t)(op0), (size_t)(op1))
-#define vmv_v_x_u32m1(op0, op1) \
-__builtin_rvv_vmv_v_x_u32m1((uint32_t)(op0), (size_t)(op1))
-#define vmv_v_x_u32m2(op0, op1) \
-__builtin_rvv_vmv_v_x_u32m2((uint32_t)(op0), (size_t)(op1))
-#define vmv_v_x_u32m4(op0, op1) \
-__builtin_rvv_vmv_v_x_u32m4((uint32_t)(op0), (size_t)(op1))
-#define vmv_v_x_u32m8(op0, op1) \
-__builtin_rvv_vmv_v_x_u32m8((uint32_t)(op0), (size_t)(op1))
-#define vmv_v_x_u32mf2(op0, op1) \
-__builtin_rvv_vmv_v_x_u32mf2((uint32_t)(op0), (size_t)(op1))
-#define vmv_v_x_u64m1(op0, op1) \
-__builtin_rvv_vmv_v_x_u64m1((uint64_t)(op0), (size_t)(op1))
-#define vmv_v_x_u64m2(op0, op1) \
-__builtin_rvv_vmv_v_x_u64m2((uint64_t)(op0), (size_t)(op1))
-#define vmv_v_x_u64m4(op0, op1) \
-__builtin_rvv_vmv_v_x_u64m4((uint64_t)(op0), (size_t)(op1))
-#define vmv_v_x_u64m8(op0, op1) \
-__builtin_rvv_vmv_v_x_u64m8((uint64_t)(op0), (size_t)(op1))
-#define vsaddu_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsaddu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vsaddu_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vsaddu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vsaddu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vsaddu_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vsaddu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsaddu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vsadd_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vsadd_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsadd_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vsadd_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsadd_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vsadd_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsadd_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vsadd_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vsadd_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vsadd_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsadd_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vsadd_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsadd_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vsadd_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsadd_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vsadd_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsadd_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vsadd_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsadd_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vsadd_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsadd_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vsadd_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vsadd_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vsadd_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsadd_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vsadd_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsadd_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vsadd_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsadd_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vsadd_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsadd_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vsadd_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsadd_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vsadd_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vsadd_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vsadd_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsadd_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vsadd_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsadd_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vsadd_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsadd_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vsadd_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsadd_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vsadd_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vsadd_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsadd_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsadd_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsadd_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsadd_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsadd_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsadd_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsadd_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsadd_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsadd_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsadd_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsadd_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsadd_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsadd_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsadd_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsadd_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsadd_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsadd_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsadd_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsadd_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsadd_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsadd_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsadd_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsadd_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsadd_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsadd_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsadd_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsadd_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsadd_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsadd_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsadd_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsadd_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsadd_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsadd_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsadd_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsadd_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsadd_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsadd_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsadd_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsadd_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsadd_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsadd_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsadd_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsadd_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vsadd_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsadd_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsadd_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u32m8((uint32_t *)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vssubu_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vssubu_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vssubu_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vssubu_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vssubu_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vssubu_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vssubu_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vssubu_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vssubu_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vssubu_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vssubu_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vssubu_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vssubu_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vssubu_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vssubu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vssubu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vssubu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vssubu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vssubu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vssubu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vssubu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vssubu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vssubu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vssubu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vssubu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vssubu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vssubu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vssubu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vssubu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vssubu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vssubu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vssubu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vssubu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vssubu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vssubu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vssubu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vssubu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vssubu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vssubu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vssubu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vssubu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vssubu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vssubu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vssubu_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vssubu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vssubu_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vssubu_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vssubu_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vssubu_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vssubu_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vssubu_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vssubu_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vssubu_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vssubu_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vssubu_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vssubu_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vssubu_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vssubu_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vssubu_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vssubu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vssubu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vssubu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vssubu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vssubu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vssubu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vssubu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vssubu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vssubu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vssubu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vssubu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vssubu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vssubu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vssubu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vssubu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vssubu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vssubu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vssubu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vssubu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vssubu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vssubu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vssubu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vssubu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vssubu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vssubu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vssubu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vssubu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vssubu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vssubu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vssubu_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vssubu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssubu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vssub_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vssub_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vssub_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vssub_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vssub_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vssub_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vssub_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vssub_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vssub_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vssub_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vssub_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vssub_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vssub_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vssub_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vssub_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vssub_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vssub_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vssub_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vssub_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vssub_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vssub_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vssub_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vssub_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vssub_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vssub_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vssub_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vssub_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vssub_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vssub_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vssub_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vssub_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vssub_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vssub_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vssub_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vssub_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vssub_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vssub_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vssub_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vssub_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vssub_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vssub_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vssub_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vssub_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vssub_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vssub_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vssub_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vssub_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vssub_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vssub_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vssub_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vssub_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vssub_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vssub_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vssub_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vssub_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vssub_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vssub_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vssub_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vssub_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vssub_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vssub_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vssub_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vssub_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vssub_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vssub_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vssub_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vssub_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vssub_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vssub_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vssub_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vssub_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vssub_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vssub_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vssub_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vssub_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vssub_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vssub_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vssub_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vssub_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vssub_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vssub_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vssub_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vssub_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vssub_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vssub_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vssub_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vssub_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vssub_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vssub_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vssub_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssub_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vaaddu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vaaddu_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vaaddu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vaaddu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vaaddu_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vaaddu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaaddu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vaadd_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vaadd_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vaadd_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vaadd_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vaadd_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vaadd_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vaadd_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vaadd_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vaadd_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vaadd_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vaadd_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vaadd_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vaadd_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vaadd_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vaadd_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vaadd_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vaadd_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vaadd_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vaadd_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vaadd_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vaadd_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vaadd_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vaadd_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vaadd_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vaadd_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vaadd_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vaadd_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vaadd_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vaadd_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vaadd_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vaadd_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vaadd_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vaadd_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vaadd_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vaadd_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vaadd_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vaadd_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vaadd_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vaadd_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vaadd_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vaadd_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vaadd_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vaadd_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vaadd_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vaadd_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vaadd_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vaadd_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vaadd_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vaadd_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vaadd_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vaadd_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vaadd_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vaadd_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vaadd_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vaadd_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vaadd_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vaadd_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vaadd_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vaadd_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vaadd_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vaadd_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vaadd_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vaadd_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vaadd_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vaadd_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vaadd_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vaadd_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vaadd_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vaadd_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vaadd_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vaadd_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vaadd_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vaadd_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vaadd_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vaadd_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vaadd_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vaadd_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vaadd_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vaadd_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vaadd_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vaadd_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vaadd_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vaadd_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vaadd_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vaadd_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vaadd_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vaadd_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vaadd_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vaadd_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vaadd_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vaadd_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vasubu_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vasubu_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vasubu_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vasubu_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vasubu_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vasubu_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vasubu_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vasubu_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vasubu_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vasubu_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vasubu_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vasubu_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vasubu_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vasubu_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vasubu_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vasubu_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vasubu_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vasubu_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vasubu_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vasubu_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vasubu_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vasubu_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vasubu_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vasubu_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vasubu_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vasubu_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vasubu_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vasubu_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vasubu_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vasubu_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vasubu_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vasubu_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vasubu_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vasubu_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vasubu_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vasubu_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vasubu_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vasubu_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vasubu_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vasubu_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vasubu_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vasubu_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vasubu_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vasubu_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vasubu_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vasubu_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vasubu_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vasubu_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vasubu_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vasubu_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vasubu_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vasubu_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vasubu_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vasubu_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vasubu_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vasubu_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vasubu_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vasubu_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vasubu_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (uint8_t)(op3), (size_t)(op4))
-#define vasubu_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vasubu_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vasubu_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vasubu_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vasubu_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vasubu_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vasubu_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vasubu_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vasubu_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vasubu_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vasubu_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vasubu_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (uint16_t)(op3), (size_t)(op4))
-#define vasubu_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vasubu_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vasubu_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vasubu_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vasubu_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vasubu_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vasubu_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vasubu_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vasubu_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vasubu_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (uint32_t)(op3), (size_t)(op4))
-#define vasubu_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vasubu_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vasubu_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vasubu_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vasubu_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vasubu_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vasubu_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vasubu_vx_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vasubu_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasubu_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (uint64_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i8m2((int8_t *)(op0), (vuint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i8m4((int8_t *)(op0), (vuint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (vuint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i8m8((int8_t *)(op0), (vuint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i8m8_m((vbool1_t)(op0), (int8_t *)(op1), (vuint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i32m4((int32_t *)(op0), (vuint64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint64m8_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vasub_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vasub_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vasub_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vasub_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vasub_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vasub_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vasub_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vasub_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vasub_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vasub_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vasub_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vasub_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vasub_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vasub_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vasub_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vasub_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vasub_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vasub_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vasub_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vasub_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vasub_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vasub_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vasub_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vasub_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vasub_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vasub_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vasub_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vasub_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vasub_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vasub_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vasub_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vasub_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vasub_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vasub_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vasub_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vasub_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vasub_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vasub_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vasub_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vasub_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vasub_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vasub_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vasub_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vasub_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vasub_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vasub_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vasub_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vasub_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vasub_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vasub_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vasub_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vasub_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vasub_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vasub_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vasub_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vasub_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vasub_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vasub_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vasub_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vasub_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vasub_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vasub_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vasub_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vasub_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vasub_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vasub_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vasub_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vasub_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vasub_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vasub_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vasub_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vasub_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vasub_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vasub_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vasub_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vasub_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vasub_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vasub_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vasub_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vasub_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vasub_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vasub_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vasub_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vasub_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vasub_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vasub_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vasub_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vasub_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vasub_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vasub_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vasub_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsmul_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vsmul_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsmul_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vsmul_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsmul_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vsmul_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsmul_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vsmul_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vsmul_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vsmul_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsmul_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vsmul_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsmul_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vsmul_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsmul_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vsmul_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsmul_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vsmul_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsmul_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vsmul_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsmul_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vsmul_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vsmul_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vsmul_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsmul_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vsmul_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsmul_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vsmul_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsmul_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vsmul_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsmul_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vsmul_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsmul_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vsmul_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vsmul_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vsmul_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsmul_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vsmul_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsmul_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vsmul_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsmul_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vsmul_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsmul_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vsmul_vv_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vsmul_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsmul_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsmul_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsmul_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsmul_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsmul_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsmul_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsmul_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsmul_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsmul_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsmul_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsmul_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsmul_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsmul_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vsmul_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vsmul_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsmul_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsmul_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsmul_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsmul_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsmul_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsmul_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsmul_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsmul_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsmul_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsmul_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vsmul_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vsmul_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsmul_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsmul_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsmul_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsmul_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsmul_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsmul_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsmul_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsmul_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vsmul_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vsmul_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsmul_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsmul_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsmul_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsmul_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsmul_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vsmul_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vsmul_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vsmul_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsmul_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vssrl_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vssrl_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vssrl_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vssrl_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vssrl_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vssrl_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vssrl_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vssrl_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vssrl_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vssrl_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vssrl_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vssrl_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vssrl_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vssrl_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vssrl_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vssrl_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vssrl_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vssrl_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vssrl_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vssrl_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vssrl_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vssrl_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vssrl_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vssrl_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vssrl_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vssrl_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vssrl_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vssrl_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vssrl_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vssrl_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vssrl_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vssrl_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vssrl_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vssrl_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vssrl_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vssrl_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vssrl_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vssrl_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vssrl_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vssrl_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vssrl_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vssrl_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vssrl_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vssrl_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vssrl_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vssrl_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u8m1((vuint8m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u8m2((vuint8m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u8m4((vuint8m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u8m8((vuint8m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u8mf2((vuint8mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u8mf4((vuint8mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u8mf8((vuint8mf8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u16m1((vuint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u16m2((vuint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u16m4((vuint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u16m8((vuint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u16mf2((vuint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u16mf4((vuint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u32m1((vuint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u32m2((vuint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u32m4((vuint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u32m8((vuint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u32mf2((vuint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u64m1((vuint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u64m2((vuint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u64m4((vuint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssrl_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vssrl_vx_u64m8((vuint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssrl_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssrl_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i8m1((vint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vssra_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vssra_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i8m2((vint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vssra_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vssra_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i8m4((vint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vssra_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vssra_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i8m8((vint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vssra_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vssra_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i8mf2((vint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vssra_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vssra_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i8mf4((vint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vssra_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vssra_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i8mf8((vint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vssra_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vssra_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i16m1((vint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vssra_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vssra_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i16m2((vint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vssra_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vssra_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i16m4((vint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vssra_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vssra_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i16m8((vint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vssra_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vssra_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i16mf2((vint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vssra_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vssra_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i16mf4((vint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vssra_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vssra_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i32m1((vint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vssra_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vssra_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i32m2((vint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vssra_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vssra_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i32m4((vint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vssra_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vssra_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i32m8((vint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vssra_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vssra_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i32mf2((vint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vssra_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vssra_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i64m1((vint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vssra_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vssra_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i64m2((vint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vssra_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vssra_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i64m4((vint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vssra_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vssra_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vssra_vv_i64m8((vint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vssra_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vssra_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i8m1((vint8m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i8m2((vint8m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i8m4((vint8m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i8m8((vint8m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i8mf2((vint8mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i8mf4((vint8mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i8mf8((vint8mf8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i16m1((vint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i16m2((vint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i16m4((vint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i16m8((vint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i16mf2((vint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i16mf4((vint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i32m1((vint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i32m2((vint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i32m4((vint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i32m8((vint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i32mf2((vint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i64m1((vint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i64m2((vint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i64m4((vint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vssra_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vssra_vx_i64m8((vint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vssra_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssra_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u8m1(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u8m1((vuint16m2_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u8m2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u8m2((vuint16m4_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u8m4(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u8m4((vuint16m8_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint16m8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u8mf2((vuint16m1_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u8mf4((vuint16mf2_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u8mf8((vuint16mf4_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u16m1(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u16m1((vuint32m2_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u16m2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u16m2((vuint32m4_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u16m4(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u16m4((vuint32m8_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u16mf2((vuint32m1_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u16mf4((vuint32mf2_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u32m1(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u32m1((vuint64m2_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u32m2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u32m2((vuint64m4_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u32m4(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u32m4((vuint64m8_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vnclipu_wv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wv_u32mf2((vuint64m1_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vnclipu_wv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u8m1(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u8m1((vuint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u8m2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u8m2((vuint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u8m4(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u8m4((vuint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u8mf2((vuint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u8mf4((vuint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u8mf8((vuint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u16m1(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u16m1((vuint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u16m2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u16m2((vuint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u16m4(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u16m4((vuint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u16mf2((vuint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u16mf4((vuint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u32m1(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u32m1((vuint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u32m2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u32m2((vuint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u32m4(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u32m4((vuint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclipu_wx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vnclipu_wx_u32mf2((vuint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclipu_wx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclipu_wx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u32m4((uint32_t *)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vnclip_wv_i8m1(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i8m1((vint16m2_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vnclip_wv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint16m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vnclip_wv_i8m2(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i8m2((vint16m4_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vnclip_wv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint16m4_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vnclip_wv_i8m4(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i8m4((vint16m8_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vnclip_wv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint16m8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vnclip_wv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i8mf2((vint16m1_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vnclip_wv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint16m1_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vnclip_wv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i8mf4((vint16mf2_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vnclip_wv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint16mf2_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vnclip_wv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i8mf8((vint16mf4_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vnclip_wv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint16mf4_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vnclip_wv_i16m1(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i16m1((vint32m2_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vnclip_wv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint32m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vnclip_wv_i16m2(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i16m2((vint32m4_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vnclip_wv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint32m4_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vnclip_wv_i16m4(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i16m4((vint32m8_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vnclip_wv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint32m8_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vnclip_wv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i16mf2((vint32m1_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vnclip_wv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint32m1_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vnclip_wv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i16mf4((vint32mf2_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vnclip_wv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint32mf2_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vnclip_wv_i32m1(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i32m1((vint64m2_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vnclip_wv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vnclip_wv_i32m2(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i32m2((vint64m4_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vnclip_wv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vnclip_wv_i32m4(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i32m4((vint64m8_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vnclip_wv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vnclip_wv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vnclip_wv_i32mf2((vint64m1_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vnclip_wv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vnclip_wx_i8m1(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i8m1((vint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i8m2(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i8m2((vint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i8m4(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i8m4((vint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i8mf2((vint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i8mf4((vint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i8mf8((vint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i16m1(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i16m1((vint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i16m2(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i16m2((vint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i16m4(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i16m4((vint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i16mf2((vint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i16mf4((vint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i32m1(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i32m1((vint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i32m2(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i32m2((vint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i32m4(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i32m4((vint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vnclip_wx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vnclip_wx_i32mf2((vint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vnclip_wx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vnclip_wx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i64m4((int64_t *)(op0), (vuint8mf2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint8mf2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_i64m8((int64_t *)(op0), (vuint8m1_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint8m1_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u64m4((uint64_t *)(op0), (vuint8mf2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint8mf2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u64m8((uint64_t *)(op0), (vuint8m1_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint8m1_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i64m4((int64_t *)(op0), (vuint16m1_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint16m1_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_i64m8((int64_t *)(op0), (vuint16m2_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vsuxei16_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint16m2_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u64m4((uint64_t *)(op0), (vuint16m1_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint16m1_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_u64m8((uint64_t *)(op0), (vuint16m2_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vsuxei16_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint16m2_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i64m4((int64_t *)(op0), (vuint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint32m2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsuxei32_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_i64m8((int64_t *)(op0), (vuint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vsuxei32_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint32m4_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u64m4((uint64_t *)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint32m2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsuxei32_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_u64m8((uint64_t *)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vsuxei32_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint32m4_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i64m4((int64_t *)(op0), (vuint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsuxei64_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_i64m8((int64_t *)(op0), (vuint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vsuxei64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vredsum_vs_i8m1_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i8m1_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i8m1_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i8m1_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i8m2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i8m2_i8m1((vint8m1_t)(op0), (vint8m2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i8m2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i8m2_i8m1_m((vbool4_t)(op0), (vint8m1_t)(op1), (vint8m2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i8m4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i8m4_i8m1((vint8m1_t)(op0), (vint8m4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i8m4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i8m4_i8m1_m((vbool2_t)(op0), (vint8m1_t)(op1), (vint8m4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i8m8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i8m8_i8m1((vint8m1_t)(op0), (vint8m8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i8m8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i8m8_i8m1_m((vbool1_t)(op0), (vint8m1_t)(op1), (vint8m8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i8mf2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i8mf2_i8m1((vint8m1_t)(op0), (vint8mf2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i8mf2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i8mf2_i8m1_m((vbool16_t)(op0), (vint8m1_t)(op1), (vint8mf2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i8mf4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i8mf4_i8m1((vint8m1_t)(op0), (vint8mf4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i8mf4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i8mf4_i8m1_m((vbool32_t)(op0), (vint8m1_t)(op1), (vint8mf4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i8mf8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i8mf8_i8m1((vint8m1_t)(op0), (vint8mf8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i8mf8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i8mf8_i8m1_m((vbool64_t)(op0), (vint8m1_t)(op1), (vint8mf8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i16m1_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i16m1_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i16m1_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i16m1_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i16m2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i16m2_i16m1((vint16m1_t)(op0), (vint16m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i16m2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i16m2_i16m1_m((vbool8_t)(op0), (vint16m1_t)(op1), (vint16m2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i16m4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i16m4_i16m1((vint16m1_t)(op0), (vint16m4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i16m4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i16m4_i16m1_m((vbool4_t)(op0), (vint16m1_t)(op1), (vint16m4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i16m8_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i16m8_i16m1((vint16m1_t)(op0), (vint16m8_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i16m8_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i16m8_i16m1_m((vbool2_t)(op0), (vint16m1_t)(op1), (vint16m8_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i16mf2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i16mf2_i16m1((vint16m1_t)(op0), (vint16mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i16mf2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i16mf2_i16m1_m((vbool32_t)(op0), (vint16m1_t)(op1), (vint16mf2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i16mf4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i16mf4_i16m1((vint16m1_t)(op0), (vint16mf4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i16mf4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i16mf4_i16m1_m((vbool64_t)(op0), (vint16m1_t)(op1), (vint16mf4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i32m1_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i32m1_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i32m1_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i32m1_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i32m2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i32m2_i32m1((vint32m1_t)(op0), (vint32m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i32m2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i32m2_i32m1_m((vbool16_t)(op0), (vint32m1_t)(op1), (vint32m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i32m4_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i32m4_i32m1((vint32m1_t)(op0), (vint32m4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i32m4_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i32m4_i32m1_m((vbool8_t)(op0), (vint32m1_t)(op1), (vint32m4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i32m8_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i32m8_i32m1((vint32m1_t)(op0), (vint32m8_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i32m8_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i32m8_i32m1_m((vbool4_t)(op0), (vint32m1_t)(op1), (vint32m8_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i32mf2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i32mf2_i32m1((vint32m1_t)(op0), (vint32mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i32mf2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i32mf2_i32m1_m((vbool64_t)(op0), (vint32m1_t)(op1), (vint32mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i64m1_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i64m1_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i64m1_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i64m1_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i64m2_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i64m2_i64m1((vint64m1_t)(op0), (vint64m2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i64m2_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i64m2_i64m1_m((vbool32_t)(op0), (vint64m1_t)(op1), (vint64m2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i64m4_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i64m4_i64m1((vint64m1_t)(op0), (vint64m4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i64m4_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i64m4_i64m1_m((vbool16_t)(op0), (vint64m1_t)(op1), (vint64m4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_i64m8_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_i64m8_i64m1((vint64m1_t)(op0), (vint64m8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_i64m8_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_i64m8_i64m1_m((vbool8_t)(op0), (vint64m1_t)(op1), (vint64m8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u8m1_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u8m1_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u8m1_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u8m1_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u8m2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u8m2_u8m1((vuint8m1_t)(op0), (vuint8m2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u8m2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u8m2_u8m1_m((vbool4_t)(op0), (vuint8m1_t)(op1), (vuint8m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u8m4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u8m4_u8m1((vuint8m1_t)(op0), (vuint8m4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u8m4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u8m4_u8m1_m((vbool2_t)(op0), (vuint8m1_t)(op1), (vuint8m4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u8m8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u8m8_u8m1((vuint8m1_t)(op0), (vuint8m8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u8m8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u8m8_u8m1_m((vbool1_t)(op0), (vuint8m1_t)(op1), (vuint8m8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u8mf2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u8mf2_u8m1((vuint8m1_t)(op0), (vuint8mf2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u8mf2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u8mf2_u8m1_m((vbool16_t)(op0), (vuint8m1_t)(op1), (vuint8mf2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u8mf4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u8mf4_u8m1((vuint8m1_t)(op0), (vuint8mf4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u8mf4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u8mf4_u8m1_m((vbool32_t)(op0), (vuint8m1_t)(op1), (vuint8mf4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u8mf8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u8mf8_u8m1((vuint8m1_t)(op0), (vuint8mf8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u8mf8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u8mf8_u8m1_m((vbool64_t)(op0), (vuint8m1_t)(op1), (vuint8mf8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u16m1_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u16m1_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u16m1_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u16m1_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u16m2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u16m2_u16m1((vuint16m1_t)(op0), (vuint16m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u16m2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u16m2_u16m1_m((vbool8_t)(op0), (vuint16m1_t)(op1), (vuint16m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u16m4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u16m4_u16m1((vuint16m1_t)(op0), (vuint16m4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u16m4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u16m4_u16m1_m((vbool4_t)(op0), (vuint16m1_t)(op1), (vuint16m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u16m8_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u16m8_u16m1((vuint16m1_t)(op0), (vuint16m8_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u16m8_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u16m8_u16m1_m((vbool2_t)(op0), (vuint16m1_t)(op1), (vuint16m8_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u16mf2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u16mf2_u16m1((vuint16m1_t)(op0), (vuint16mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u16mf2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u16mf2_u16m1_m((vbool32_t)(op0), (vuint16m1_t)(op1), (vuint16mf2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u16mf4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u16mf4_u16m1((vuint16m1_t)(op0), (vuint16mf4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u16mf4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u16mf4_u16m1_m((vbool64_t)(op0), (vuint16m1_t)(op1), (vuint16mf4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u32m1_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u32m1_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u32m1_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u32m1_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u32m2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u32m2_u32m1((vuint32m1_t)(op0), (vuint32m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u32m2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u32m2_u32m1_m((vbool16_t)(op0), (vuint32m1_t)(op1), (vuint32m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u32m4_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u32m4_u32m1((vuint32m1_t)(op0), (vuint32m4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u32m4_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u32m4_u32m1_m((vbool8_t)(op0), (vuint32m1_t)(op1), (vuint32m4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u32m8_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u32m8_u32m1((vuint32m1_t)(op0), (vuint32m8_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u32m8_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u32m8_u32m1_m((vbool4_t)(op0), (vuint32m1_t)(op1), (vuint32m8_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u32mf2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u32mf2_u32m1((vuint32m1_t)(op0), (vuint32mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u32mf2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u32mf2_u32m1_m((vbool64_t)(op0), (vuint32m1_t)(op1), (vuint32mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u64m1_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u64m1_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u64m1_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u64m1_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u64m2_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u64m2_u64m1((vuint64m1_t)(op0), (vuint64m2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u64m2_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u64m2_u64m1_m((vbool32_t)(op0), (vuint64m1_t)(op1), (vuint64m2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u64m4_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u64m4_u64m1((vuint64m1_t)(op0), (vuint64m4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u64m4_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u64m4_u64m1_m((vbool16_t)(op0), (vuint64m1_t)(op1), (vuint64m4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredsum_vs_u64m8_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredsum_vs_u64m8_u64m1((vuint64m1_t)(op0), (vuint64m8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredsum_vs_u64m8_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredsum_vs_u64m8_u64m1_m((vbool8_t)(op0), (vuint64m1_t)(op1), (vuint64m8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u8m1_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u8m1_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u8m1_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u8m1_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u8m2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u8m2_u8m1((vuint8m1_t)(op0), (vuint8m2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u8m2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u8m2_u8m1_m((vbool4_t)(op0), (vuint8m1_t)(op1), (vuint8m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u8m4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u8m4_u8m1((vuint8m1_t)(op0), (vuint8m4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u8m4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u8m4_u8m1_m((vbool2_t)(op0), (vuint8m1_t)(op1), (vuint8m4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u8m8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u8m8_u8m1((vuint8m1_t)(op0), (vuint8m8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u8m8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u8m8_u8m1_m((vbool1_t)(op0), (vuint8m1_t)(op1), (vuint8m8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u8mf2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u8mf2_u8m1((vuint8m1_t)(op0), (vuint8mf2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u8mf2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u8mf2_u8m1_m((vbool16_t)(op0), (vuint8m1_t)(op1), (vuint8mf2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u8mf4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u8mf4_u8m1((vuint8m1_t)(op0), (vuint8mf4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u8mf4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u8mf4_u8m1_m((vbool32_t)(op0), (vuint8m1_t)(op1), (vuint8mf4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u8mf8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u8mf8_u8m1((vuint8m1_t)(op0), (vuint8mf8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u8mf8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u8mf8_u8m1_m((vbool64_t)(op0), (vuint8m1_t)(op1), (vuint8mf8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u16m1_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u16m1_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u16m1_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u16m1_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u16m2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u16m2_u16m1((vuint16m1_t)(op0), (vuint16m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u16m2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u16m2_u16m1_m((vbool8_t)(op0), (vuint16m1_t)(op1), (vuint16m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u16m4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u16m4_u16m1((vuint16m1_t)(op0), (vuint16m4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u16m4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u16m4_u16m1_m((vbool4_t)(op0), (vuint16m1_t)(op1), (vuint16m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u16m8_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u16m8_u16m1((vuint16m1_t)(op0), (vuint16m8_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u16m8_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u16m8_u16m1_m((vbool2_t)(op0), (vuint16m1_t)(op1), (vuint16m8_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u16mf2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u16mf2_u16m1((vuint16m1_t)(op0), (vuint16mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u16mf2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u16mf2_u16m1_m((vbool32_t)(op0), (vuint16m1_t)(op1), (vuint16mf2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u16mf4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u16mf4_u16m1((vuint16m1_t)(op0), (vuint16mf4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u16mf4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u16mf4_u16m1_m((vbool64_t)(op0), (vuint16m1_t)(op1), (vuint16mf4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u32m1_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u32m1_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u32m1_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u32m1_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u32m2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u32m2_u32m1((vuint32m1_t)(op0), (vuint32m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u32m2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u32m2_u32m1_m((vbool16_t)(op0), (vuint32m1_t)(op1), (vuint32m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u32m4_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u32m4_u32m1((vuint32m1_t)(op0), (vuint32m4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u32m4_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u32m4_u32m1_m((vbool8_t)(op0), (vuint32m1_t)(op1), (vuint32m4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u32m8_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u32m8_u32m1((vuint32m1_t)(op0), (vuint32m8_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u32m8_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u32m8_u32m1_m((vbool4_t)(op0), (vuint32m1_t)(op1), (vuint32m8_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u32mf2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u32mf2_u32m1((vuint32m1_t)(op0), (vuint32mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u32mf2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u32mf2_u32m1_m((vbool64_t)(op0), (vuint32m1_t)(op1), (vuint32mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u64m1_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u64m1_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u64m1_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u64m1_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u64m2_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u64m2_u64m1((vuint64m1_t)(op0), (vuint64m2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u64m2_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u64m2_u64m1_m((vbool32_t)(op0), (vuint64m1_t)(op1), (vuint64m2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u64m4_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u64m4_u64m1((vuint64m1_t)(op0), (vuint64m4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u64m4_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u64m4_u64m1_m((vbool16_t)(op0), (vuint64m1_t)(op1), (vuint64m4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredmaxu_vs_u64m8_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmaxu_vs_u64m8_u64m1((vuint64m1_t)(op0), (vuint64m8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredmaxu_vs_u64m8_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmaxu_vs_u64m8_u64m1_m((vbool8_t)(op0), (vuint64m1_t)(op1), (vuint64m8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i8m1_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i8m1_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i8m1_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i8m1_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i8m2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i8m2_i8m1((vint8m1_t)(op0), (vint8m2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i8m2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i8m2_i8m1_m((vbool4_t)(op0), (vint8m1_t)(op1), (vint8m2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i8m4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i8m4_i8m1((vint8m1_t)(op0), (vint8m4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i8m4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i8m4_i8m1_m((vbool2_t)(op0), (vint8m1_t)(op1), (vint8m4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i8m8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i8m8_i8m1((vint8m1_t)(op0), (vint8m8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i8m8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i8m8_i8m1_m((vbool1_t)(op0), (vint8m1_t)(op1), (vint8m8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i8mf2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i8mf2_i8m1((vint8m1_t)(op0), (vint8mf2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i8mf2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i8mf2_i8m1_m((vbool16_t)(op0), (vint8m1_t)(op1), (vint8mf2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i8mf4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i8mf4_i8m1((vint8m1_t)(op0), (vint8mf4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i8mf4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i8mf4_i8m1_m((vbool32_t)(op0), (vint8m1_t)(op1), (vint8mf4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i8mf8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i8mf8_i8m1((vint8m1_t)(op0), (vint8mf8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i8mf8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i8mf8_i8m1_m((vbool64_t)(op0), (vint8m1_t)(op1), (vint8mf8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i16m1_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i16m1_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i16m1_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i16m1_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i16m2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i16m2_i16m1((vint16m1_t)(op0), (vint16m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i16m2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i16m2_i16m1_m((vbool8_t)(op0), (vint16m1_t)(op1), (vint16m2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i16m4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i16m4_i16m1((vint16m1_t)(op0), (vint16m4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i16m4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i16m4_i16m1_m((vbool4_t)(op0), (vint16m1_t)(op1), (vint16m4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i16m8_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i16m8_i16m1((vint16m1_t)(op0), (vint16m8_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i16m8_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i16m8_i16m1_m((vbool2_t)(op0), (vint16m1_t)(op1), (vint16m8_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i16mf2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i16mf2_i16m1((vint16m1_t)(op0), (vint16mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i16mf2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i16mf2_i16m1_m((vbool32_t)(op0), (vint16m1_t)(op1), (vint16mf2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i16mf4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i16mf4_i16m1((vint16m1_t)(op0), (vint16mf4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i16mf4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i16mf4_i16m1_m((vbool64_t)(op0), (vint16m1_t)(op1), (vint16mf4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i32m1_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i32m1_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i32m1_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i32m1_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i32m2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i32m2_i32m1((vint32m1_t)(op0), (vint32m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i32m2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i32m2_i32m1_m((vbool16_t)(op0), (vint32m1_t)(op1), (vint32m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i32m4_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i32m4_i32m1((vint32m1_t)(op0), (vint32m4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i32m4_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i32m4_i32m1_m((vbool8_t)(op0), (vint32m1_t)(op1), (vint32m4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i32m8_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i32m8_i32m1((vint32m1_t)(op0), (vint32m8_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i32m8_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i32m8_i32m1_m((vbool4_t)(op0), (vint32m1_t)(op1), (vint32m8_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i32mf2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i32mf2_i32m1((vint32m1_t)(op0), (vint32mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i32mf2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i32mf2_i32m1_m((vbool64_t)(op0), (vint32m1_t)(op1), (vint32mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i64m1_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i64m1_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i64m1_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i64m1_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i64m2_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i64m2_i64m1((vint64m1_t)(op0), (vint64m2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i64m2_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i64m2_i64m1_m((vbool32_t)(op0), (vint64m1_t)(op1), (vint64m2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i64m4_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i64m4_i64m1((vint64m1_t)(op0), (vint64m4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i64m4_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i64m4_i64m1_m((vbool16_t)(op0), (vint64m1_t)(op1), (vint64m4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredmax_vs_i64m8_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmax_vs_i64m8_i64m1((vint64m1_t)(op0), (vint64m8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredmax_vs_i64m8_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmax_vs_i64m8_i64m1_m((vbool8_t)(op0), (vint64m1_t)(op1), (vint64m8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u8m1_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u8m1_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u8m1_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u8m1_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u8m2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u8m2_u8m1((vuint8m1_t)(op0), (vuint8m2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u8m2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u8m2_u8m1_m((vbool4_t)(op0), (vuint8m1_t)(op1), (vuint8m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u8m4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u8m4_u8m1((vuint8m1_t)(op0), (vuint8m4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u8m4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u8m4_u8m1_m((vbool2_t)(op0), (vuint8m1_t)(op1), (vuint8m4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u8m8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u8m8_u8m1((vuint8m1_t)(op0), (vuint8m8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u8m8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u8m8_u8m1_m((vbool1_t)(op0), (vuint8m1_t)(op1), (vuint8m8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u8mf2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u8mf2_u8m1((vuint8m1_t)(op0), (vuint8mf2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u8mf2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u8mf2_u8m1_m((vbool16_t)(op0), (vuint8m1_t)(op1), (vuint8mf2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u8mf4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u8mf4_u8m1((vuint8m1_t)(op0), (vuint8mf4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u8mf4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u8mf4_u8m1_m((vbool32_t)(op0), (vuint8m1_t)(op1), (vuint8mf4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u8mf8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u8mf8_u8m1((vuint8m1_t)(op0), (vuint8mf8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u8mf8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u8mf8_u8m1_m((vbool64_t)(op0), (vuint8m1_t)(op1), (vuint8mf8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u16m1_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u16m1_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u16m1_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u16m1_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u16m2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u16m2_u16m1((vuint16m1_t)(op0), (vuint16m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u16m2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u16m2_u16m1_m((vbool8_t)(op0), (vuint16m1_t)(op1), (vuint16m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u16m4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u16m4_u16m1((vuint16m1_t)(op0), (vuint16m4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u16m4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u16m4_u16m1_m((vbool4_t)(op0), (vuint16m1_t)(op1), (vuint16m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u16m8_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u16m8_u16m1((vuint16m1_t)(op0), (vuint16m8_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u16m8_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u16m8_u16m1_m((vbool2_t)(op0), (vuint16m1_t)(op1), (vuint16m8_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u16mf2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u16mf2_u16m1((vuint16m1_t)(op0), (vuint16mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u16mf2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u16mf2_u16m1_m((vbool32_t)(op0), (vuint16m1_t)(op1), (vuint16mf2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u16mf4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u16mf4_u16m1((vuint16m1_t)(op0), (vuint16mf4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u16mf4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u16mf4_u16m1_m((vbool64_t)(op0), (vuint16m1_t)(op1), (vuint16mf4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u32m1_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u32m1_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u32m1_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u32m1_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u32m2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u32m2_u32m1((vuint32m1_t)(op0), (vuint32m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u32m2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u32m2_u32m1_m((vbool16_t)(op0), (vuint32m1_t)(op1), (vuint32m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u32m4_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u32m4_u32m1((vuint32m1_t)(op0), (vuint32m4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u32m4_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u32m4_u32m1_m((vbool8_t)(op0), (vuint32m1_t)(op1), (vuint32m4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u32m8_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u32m8_u32m1((vuint32m1_t)(op0), (vuint32m8_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u32m8_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u32m8_u32m1_m((vbool4_t)(op0), (vuint32m1_t)(op1), (vuint32m8_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u32mf2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u32mf2_u32m1((vuint32m1_t)(op0), (vuint32mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u32mf2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u32mf2_u32m1_m((vbool64_t)(op0), (vuint32m1_t)(op1), (vuint32mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u64m1_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u64m1_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u64m1_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u64m1_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u64m2_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u64m2_u64m1((vuint64m1_t)(op0), (vuint64m2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u64m2_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u64m2_u64m1_m((vbool32_t)(op0), (vuint64m1_t)(op1), (vuint64m2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u64m4_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u64m4_u64m1((vuint64m1_t)(op0), (vuint64m4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u64m4_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u64m4_u64m1_m((vbool16_t)(op0), (vuint64m1_t)(op1), (vuint64m4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredminu_vs_u64m8_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredminu_vs_u64m8_u64m1((vuint64m1_t)(op0), (vuint64m8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredminu_vs_u64m8_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredminu_vs_u64m8_u64m1_m((vbool8_t)(op0), (vuint64m1_t)(op1), (vuint64m8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i8m1_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i8m1_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i8m1_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i8m1_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i8m2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i8m2_i8m1((vint8m1_t)(op0), (vint8m2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i8m2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i8m2_i8m1_m((vbool4_t)(op0), (vint8m1_t)(op1), (vint8m2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i8m4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i8m4_i8m1((vint8m1_t)(op0), (vint8m4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i8m4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i8m4_i8m1_m((vbool2_t)(op0), (vint8m1_t)(op1), (vint8m4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i8m8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i8m8_i8m1((vint8m1_t)(op0), (vint8m8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i8m8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i8m8_i8m1_m((vbool1_t)(op0), (vint8m1_t)(op1), (vint8m8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i8mf2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i8mf2_i8m1((vint8m1_t)(op0), (vint8mf2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i8mf2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i8mf2_i8m1_m((vbool16_t)(op0), (vint8m1_t)(op1), (vint8mf2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i8mf4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i8mf4_i8m1((vint8m1_t)(op0), (vint8mf4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i8mf4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i8mf4_i8m1_m((vbool32_t)(op0), (vint8m1_t)(op1), (vint8mf4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i8mf8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i8mf8_i8m1((vint8m1_t)(op0), (vint8mf8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i8mf8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i8mf8_i8m1_m((vbool64_t)(op0), (vint8m1_t)(op1), (vint8mf8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i16m1_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i16m1_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i16m1_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i16m1_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i16m2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i16m2_i16m1((vint16m1_t)(op0), (vint16m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i16m2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i16m2_i16m1_m((vbool8_t)(op0), (vint16m1_t)(op1), (vint16m2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i16m4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i16m4_i16m1((vint16m1_t)(op0), (vint16m4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i16m4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i16m4_i16m1_m((vbool4_t)(op0), (vint16m1_t)(op1), (vint16m4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i16m8_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i16m8_i16m1((vint16m1_t)(op0), (vint16m8_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i16m8_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i16m8_i16m1_m((vbool2_t)(op0), (vint16m1_t)(op1), (vint16m8_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i16mf2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i16mf2_i16m1((vint16m1_t)(op0), (vint16mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i16mf2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i16mf2_i16m1_m((vbool32_t)(op0), (vint16m1_t)(op1), (vint16mf2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i16mf4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i16mf4_i16m1((vint16m1_t)(op0), (vint16mf4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i16mf4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i16mf4_i16m1_m((vbool64_t)(op0), (vint16m1_t)(op1), (vint16mf4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i32m1_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i32m1_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i32m1_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i32m1_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i32m2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i32m2_i32m1((vint32m1_t)(op0), (vint32m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i32m2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i32m2_i32m1_m((vbool16_t)(op0), (vint32m1_t)(op1), (vint32m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i32m4_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i32m4_i32m1((vint32m1_t)(op0), (vint32m4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i32m4_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i32m4_i32m1_m((vbool8_t)(op0), (vint32m1_t)(op1), (vint32m4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i32m8_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i32m8_i32m1((vint32m1_t)(op0), (vint32m8_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i32m8_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i32m8_i32m1_m((vbool4_t)(op0), (vint32m1_t)(op1), (vint32m8_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i32mf2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i32mf2_i32m1((vint32m1_t)(op0), (vint32mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i32mf2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i32mf2_i32m1_m((vbool64_t)(op0), (vint32m1_t)(op1), (vint32mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i64m1_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i64m1_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i64m1_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i64m1_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i64m2_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i64m2_i64m1((vint64m1_t)(op0), (vint64m2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i64m2_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i64m2_i64m1_m((vbool32_t)(op0), (vint64m1_t)(op1), (vint64m2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i64m4_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i64m4_i64m1((vint64m1_t)(op0), (vint64m4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i64m4_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i64m4_i64m1_m((vbool16_t)(op0), (vint64m1_t)(op1), (vint64m4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredmin_vs_i64m8_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredmin_vs_i64m8_i64m1((vint64m1_t)(op0), (vint64m8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredmin_vs_i64m8_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredmin_vs_i64m8_i64m1_m((vbool8_t)(op0), (vint64m1_t)(op1), (vint64m8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i8m1_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i8m1_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i8m1_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i8m1_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i8m2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i8m2_i8m1((vint8m1_t)(op0), (vint8m2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i8m2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i8m2_i8m1_m((vbool4_t)(op0), (vint8m1_t)(op1), (vint8m2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i8m4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i8m4_i8m1((vint8m1_t)(op0), (vint8m4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i8m4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i8m4_i8m1_m((vbool2_t)(op0), (vint8m1_t)(op1), (vint8m4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i8m8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i8m8_i8m1((vint8m1_t)(op0), (vint8m8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i8m8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i8m8_i8m1_m((vbool1_t)(op0), (vint8m1_t)(op1), (vint8m8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i8mf2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i8mf2_i8m1((vint8m1_t)(op0), (vint8mf2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i8mf2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i8mf2_i8m1_m((vbool16_t)(op0), (vint8m1_t)(op1), (vint8mf2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i8mf4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i8mf4_i8m1((vint8m1_t)(op0), (vint8mf4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i8mf4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i8mf4_i8m1_m((vbool32_t)(op0), (vint8m1_t)(op1), (vint8mf4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i8mf8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i8mf8_i8m1((vint8m1_t)(op0), (vint8mf8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i8mf8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i8mf8_i8m1_m((vbool64_t)(op0), (vint8m1_t)(op1), (vint8mf8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i16m1_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i16m1_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i16m1_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i16m1_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i16m2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i16m2_i16m1((vint16m1_t)(op0), (vint16m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i16m2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i16m2_i16m1_m((vbool8_t)(op0), (vint16m1_t)(op1), (vint16m2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i16m4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i16m4_i16m1((vint16m1_t)(op0), (vint16m4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i16m4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i16m4_i16m1_m((vbool4_t)(op0), (vint16m1_t)(op1), (vint16m4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i16m8_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i16m8_i16m1((vint16m1_t)(op0), (vint16m8_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i16m8_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i16m8_i16m1_m((vbool2_t)(op0), (vint16m1_t)(op1), (vint16m8_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i16mf2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i16mf2_i16m1((vint16m1_t)(op0), (vint16mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i16mf2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i16mf2_i16m1_m((vbool32_t)(op0), (vint16m1_t)(op1), (vint16mf2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i16mf4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i16mf4_i16m1((vint16m1_t)(op0), (vint16mf4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i16mf4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i16mf4_i16m1_m((vbool64_t)(op0), (vint16m1_t)(op1), (vint16mf4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i32m1_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i32m1_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i32m1_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i32m1_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i32m2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i32m2_i32m1((vint32m1_t)(op0), (vint32m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i32m2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i32m2_i32m1_m((vbool16_t)(op0), (vint32m1_t)(op1), (vint32m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i32m4_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i32m4_i32m1((vint32m1_t)(op0), (vint32m4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i32m4_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i32m4_i32m1_m((vbool8_t)(op0), (vint32m1_t)(op1), (vint32m4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i32m8_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i32m8_i32m1((vint32m1_t)(op0), (vint32m8_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i32m8_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i32m8_i32m1_m((vbool4_t)(op0), (vint32m1_t)(op1), (vint32m8_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i32mf2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i32mf2_i32m1((vint32m1_t)(op0), (vint32mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i32mf2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i32mf2_i32m1_m((vbool64_t)(op0), (vint32m1_t)(op1), (vint32mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i64m1_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i64m1_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i64m1_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i64m1_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i64m2_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i64m2_i64m1((vint64m1_t)(op0), (vint64m2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i64m2_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i64m2_i64m1_m((vbool32_t)(op0), (vint64m1_t)(op1), (vint64m2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i64m4_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i64m4_i64m1((vint64m1_t)(op0), (vint64m4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i64m4_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i64m4_i64m1_m((vbool16_t)(op0), (vint64m1_t)(op1), (vint64m4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredand_vs_i64m8_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_i64m8_i64m1((vint64m1_t)(op0), (vint64m8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredand_vs_i64m8_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_i64m8_i64m1_m((vbool8_t)(op0), (vint64m1_t)(op1), (vint64m8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u8m1_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u8m1_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u8m1_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u8m1_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u8m2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u8m2_u8m1((vuint8m1_t)(op0), (vuint8m2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u8m2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u8m2_u8m1_m((vbool4_t)(op0), (vuint8m1_t)(op1), (vuint8m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u8m4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u8m4_u8m1((vuint8m1_t)(op0), (vuint8m4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u8m4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u8m4_u8m1_m((vbool2_t)(op0), (vuint8m1_t)(op1), (vuint8m4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u8m8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u8m8_u8m1((vuint8m1_t)(op0), (vuint8m8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u8m8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u8m8_u8m1_m((vbool1_t)(op0), (vuint8m1_t)(op1), (vuint8m8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u8mf2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u8mf2_u8m1((vuint8m1_t)(op0), (vuint8mf2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u8mf2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u8mf2_u8m1_m((vbool16_t)(op0), (vuint8m1_t)(op1), (vuint8mf2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u8mf4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u8mf4_u8m1((vuint8m1_t)(op0), (vuint8mf4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u8mf4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u8mf4_u8m1_m((vbool32_t)(op0), (vuint8m1_t)(op1), (vuint8mf4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u8mf8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u8mf8_u8m1((vuint8m1_t)(op0), (vuint8mf8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u8mf8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u8mf8_u8m1_m((vbool64_t)(op0), (vuint8m1_t)(op1), (vuint8mf8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u16m1_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u16m1_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u16m1_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u16m1_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u16m2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u16m2_u16m1((vuint16m1_t)(op0), (vuint16m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u16m2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u16m2_u16m1_m((vbool8_t)(op0), (vuint16m1_t)(op1), (vuint16m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u16m4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u16m4_u16m1((vuint16m1_t)(op0), (vuint16m4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u16m4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u16m4_u16m1_m((vbool4_t)(op0), (vuint16m1_t)(op1), (vuint16m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u16m8_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u16m8_u16m1((vuint16m1_t)(op0), (vuint16m8_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u16m8_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u16m8_u16m1_m((vbool2_t)(op0), (vuint16m1_t)(op1), (vuint16m8_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u16mf2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u16mf2_u16m1((vuint16m1_t)(op0), (vuint16mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u16mf2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u16mf2_u16m1_m((vbool32_t)(op0), (vuint16m1_t)(op1), (vuint16mf2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u16mf4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u16mf4_u16m1((vuint16m1_t)(op0), (vuint16mf4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u16mf4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u16mf4_u16m1_m((vbool64_t)(op0), (vuint16m1_t)(op1), (vuint16mf4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u32m1_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u32m1_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u32m1_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u32m1_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u32m2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u32m2_u32m1((vuint32m1_t)(op0), (vuint32m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u32m2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u32m2_u32m1_m((vbool16_t)(op0), (vuint32m1_t)(op1), (vuint32m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u32m4_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u32m4_u32m1((vuint32m1_t)(op0), (vuint32m4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u32m4_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u32m4_u32m1_m((vbool8_t)(op0), (vuint32m1_t)(op1), (vuint32m4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u32m8_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u32m8_u32m1((vuint32m1_t)(op0), (vuint32m8_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u32m8_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u32m8_u32m1_m((vbool4_t)(op0), (vuint32m1_t)(op1), (vuint32m8_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u32mf2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u32mf2_u32m1((vuint32m1_t)(op0), (vuint32mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u32mf2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u32mf2_u32m1_m((vbool64_t)(op0), (vuint32m1_t)(op1), (vuint32mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u64m1_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u64m1_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u64m1_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u64m1_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u64m2_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u64m2_u64m1((vuint64m1_t)(op0), (vuint64m2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u64m2_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u64m2_u64m1_m((vbool32_t)(op0), (vuint64m1_t)(op1), (vuint64m2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u64m4_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u64m4_u64m1((vuint64m1_t)(op0), (vuint64m4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u64m4_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u64m4_u64m1_m((vbool16_t)(op0), (vuint64m1_t)(op1), (vuint64m4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredand_vs_u64m8_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredand_vs_u64m8_u64m1((vuint64m1_t)(op0), (vuint64m8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredand_vs_u64m8_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredand_vs_u64m8_u64m1_m((vbool8_t)(op0), (vuint64m1_t)(op1), (vuint64m8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsuxei64_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_u64m8((uint64_t *)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vsuxei64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vredor_vs_i8m1_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i8m1_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i8m1_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i8m1_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i8m2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i8m2_i8m1((vint8m1_t)(op0), (vint8m2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i8m2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i8m2_i8m1_m((vbool4_t)(op0), (vint8m1_t)(op1), (vint8m2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i8m4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i8m4_i8m1((vint8m1_t)(op0), (vint8m4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i8m4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i8m4_i8m1_m((vbool2_t)(op0), (vint8m1_t)(op1), (vint8m4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i8m8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i8m8_i8m1((vint8m1_t)(op0), (vint8m8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i8m8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i8m8_i8m1_m((vbool1_t)(op0), (vint8m1_t)(op1), (vint8m8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i8mf2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i8mf2_i8m1((vint8m1_t)(op0), (vint8mf2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i8mf2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i8mf2_i8m1_m((vbool16_t)(op0), (vint8m1_t)(op1), (vint8mf2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i8mf4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i8mf4_i8m1((vint8m1_t)(op0), (vint8mf4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i8mf4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i8mf4_i8m1_m((vbool32_t)(op0), (vint8m1_t)(op1), (vint8mf4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i8mf8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i8mf8_i8m1((vint8m1_t)(op0), (vint8mf8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i8mf8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i8mf8_i8m1_m((vbool64_t)(op0), (vint8m1_t)(op1), (vint8mf8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i16m1_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i16m1_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i16m1_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i16m1_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i16m2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i16m2_i16m1((vint16m1_t)(op0), (vint16m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i16m2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i16m2_i16m1_m((vbool8_t)(op0), (vint16m1_t)(op1), (vint16m2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i16m4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i16m4_i16m1((vint16m1_t)(op0), (vint16m4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i16m4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i16m4_i16m1_m((vbool4_t)(op0), (vint16m1_t)(op1), (vint16m4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i16m8_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i16m8_i16m1((vint16m1_t)(op0), (vint16m8_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i16m8_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i16m8_i16m1_m((vbool2_t)(op0), (vint16m1_t)(op1), (vint16m8_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i16mf2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i16mf2_i16m1((vint16m1_t)(op0), (vint16mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i16mf2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i16mf2_i16m1_m((vbool32_t)(op0), (vint16m1_t)(op1), (vint16mf2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i16mf4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i16mf4_i16m1((vint16m1_t)(op0), (vint16mf4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i16mf4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i16mf4_i16m1_m((vbool64_t)(op0), (vint16m1_t)(op1), (vint16mf4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i32m1_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i32m1_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i32m1_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i32m1_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i32m2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i32m2_i32m1((vint32m1_t)(op0), (vint32m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i32m2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i32m2_i32m1_m((vbool16_t)(op0), (vint32m1_t)(op1), (vint32m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i32m4_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i32m4_i32m1((vint32m1_t)(op0), (vint32m4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i32m4_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i32m4_i32m1_m((vbool8_t)(op0), (vint32m1_t)(op1), (vint32m4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i32m8_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i32m8_i32m1((vint32m1_t)(op0), (vint32m8_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i32m8_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i32m8_i32m1_m((vbool4_t)(op0), (vint32m1_t)(op1), (vint32m8_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i32mf2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i32mf2_i32m1((vint32m1_t)(op0), (vint32mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i32mf2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i32mf2_i32m1_m((vbool64_t)(op0), (vint32m1_t)(op1), (vint32mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i64m1_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i64m1_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i64m1_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i64m1_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i64m2_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i64m2_i64m1((vint64m1_t)(op0), (vint64m2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i64m2_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i64m2_i64m1_m((vbool32_t)(op0), (vint64m1_t)(op1), (vint64m2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i64m4_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i64m4_i64m1((vint64m1_t)(op0), (vint64m4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i64m4_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i64m4_i64m1_m((vbool16_t)(op0), (vint64m1_t)(op1), (vint64m4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredor_vs_i64m8_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_i64m8_i64m1((vint64m1_t)(op0), (vint64m8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredor_vs_i64m8_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_i64m8_i64m1_m((vbool8_t)(op0), (vint64m1_t)(op1), (vint64m8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u8m1_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u8m1_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u8m1_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u8m1_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u8m2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u8m2_u8m1((vuint8m1_t)(op0), (vuint8m2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u8m2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u8m2_u8m1_m((vbool4_t)(op0), (vuint8m1_t)(op1), (vuint8m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u8m4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u8m4_u8m1((vuint8m1_t)(op0), (vuint8m4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u8m4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u8m4_u8m1_m((vbool2_t)(op0), (vuint8m1_t)(op1), (vuint8m4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u8m8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u8m8_u8m1((vuint8m1_t)(op0), (vuint8m8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u8m8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u8m8_u8m1_m((vbool1_t)(op0), (vuint8m1_t)(op1), (vuint8m8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u8mf2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u8mf2_u8m1((vuint8m1_t)(op0), (vuint8mf2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u8mf2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u8mf2_u8m1_m((vbool16_t)(op0), (vuint8m1_t)(op1), (vuint8mf2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u8mf4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u8mf4_u8m1((vuint8m1_t)(op0), (vuint8mf4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u8mf4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u8mf4_u8m1_m((vbool32_t)(op0), (vuint8m1_t)(op1), (vuint8mf4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u8mf8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u8mf8_u8m1((vuint8m1_t)(op0), (vuint8mf8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u8mf8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u8mf8_u8m1_m((vbool64_t)(op0), (vuint8m1_t)(op1), (vuint8mf8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u16m1_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u16m1_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u16m1_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u16m1_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u16m2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u16m2_u16m1((vuint16m1_t)(op0), (vuint16m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u16m2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u16m2_u16m1_m((vbool8_t)(op0), (vuint16m1_t)(op1), (vuint16m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u16m4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u16m4_u16m1((vuint16m1_t)(op0), (vuint16m4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u16m4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u16m4_u16m1_m((vbool4_t)(op0), (vuint16m1_t)(op1), (vuint16m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u16m8_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u16m8_u16m1((vuint16m1_t)(op0), (vuint16m8_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u16m8_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u16m8_u16m1_m((vbool2_t)(op0), (vuint16m1_t)(op1), (vuint16m8_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u16mf2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u16mf2_u16m1((vuint16m1_t)(op0), (vuint16mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u16mf2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u16mf2_u16m1_m((vbool32_t)(op0), (vuint16m1_t)(op1), (vuint16mf2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u16mf4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u16mf4_u16m1((vuint16m1_t)(op0), (vuint16mf4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u16mf4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u16mf4_u16m1_m((vbool64_t)(op0), (vuint16m1_t)(op1), (vuint16mf4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u32m1_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u32m1_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u32m1_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u32m1_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u32m2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u32m2_u32m1((vuint32m1_t)(op0), (vuint32m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u32m2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u32m2_u32m1_m((vbool16_t)(op0), (vuint32m1_t)(op1), (vuint32m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u32m4_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u32m4_u32m1((vuint32m1_t)(op0), (vuint32m4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u32m4_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u32m4_u32m1_m((vbool8_t)(op0), (vuint32m1_t)(op1), (vuint32m4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u32m8_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u32m8_u32m1((vuint32m1_t)(op0), (vuint32m8_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u32m8_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u32m8_u32m1_m((vbool4_t)(op0), (vuint32m1_t)(op1), (vuint32m8_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u32mf2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u32mf2_u32m1((vuint32m1_t)(op0), (vuint32mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u32mf2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u32mf2_u32m1_m((vbool64_t)(op0), (vuint32m1_t)(op1), (vuint32mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u64m1_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u64m1_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u64m1_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u64m1_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u64m2_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u64m2_u64m1((vuint64m1_t)(op0), (vuint64m2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u64m2_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u64m2_u64m1_m((vbool32_t)(op0), (vuint64m1_t)(op1), (vuint64m2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u64m4_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u64m4_u64m1((vuint64m1_t)(op0), (vuint64m4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u64m4_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u64m4_u64m1_m((vbool16_t)(op0), (vuint64m1_t)(op1), (vuint64m4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredor_vs_u64m8_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredor_vs_u64m8_u64m1((vuint64m1_t)(op0), (vuint64m8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredor_vs_u64m8_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredor_vs_u64m8_u64m1_m((vbool8_t)(op0), (vuint64m1_t)(op1), (vuint64m8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i8m1_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i8m1_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i8m1_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i8m1_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i8m2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i8m2_i8m1((vint8m1_t)(op0), (vint8m2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i8m2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i8m2_i8m1_m((vbool4_t)(op0), (vint8m1_t)(op1), (vint8m2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i8m4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i8m4_i8m1((vint8m1_t)(op0), (vint8m4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i8m4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i8m4_i8m1_m((vbool2_t)(op0), (vint8m1_t)(op1), (vint8m4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i8m8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i8m8_i8m1((vint8m1_t)(op0), (vint8m8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i8m8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i8m8_i8m1_m((vbool1_t)(op0), (vint8m1_t)(op1), (vint8m8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i8mf2_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i8mf2_i8m1((vint8m1_t)(op0), (vint8mf2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i8mf2_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i8mf2_i8m1_m((vbool16_t)(op0), (vint8m1_t)(op1), (vint8mf2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i8mf4_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i8mf4_i8m1((vint8m1_t)(op0), (vint8mf4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i8mf4_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i8mf4_i8m1_m((vbool32_t)(op0), (vint8m1_t)(op1), (vint8mf4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i8mf8_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i8mf8_i8m1((vint8m1_t)(op0), (vint8mf8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i8mf8_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i8mf8_i8m1_m((vbool64_t)(op0), (vint8m1_t)(op1), (vint8mf8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i16m1_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i16m1_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i16m1_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i16m1_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i16m2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i16m2_i16m1((vint16m1_t)(op0), (vint16m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i16m2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i16m2_i16m1_m((vbool8_t)(op0), (vint16m1_t)(op1), (vint16m2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i16m4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i16m4_i16m1((vint16m1_t)(op0), (vint16m4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i16m4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i16m4_i16m1_m((vbool4_t)(op0), (vint16m1_t)(op1), (vint16m4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i16m8_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i16m8_i16m1((vint16m1_t)(op0), (vint16m8_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i16m8_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i16m8_i16m1_m((vbool2_t)(op0), (vint16m1_t)(op1), (vint16m8_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i16mf2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i16mf2_i16m1((vint16m1_t)(op0), (vint16mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i16mf2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i16mf2_i16m1_m((vbool32_t)(op0), (vint16m1_t)(op1), (vint16mf2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i16mf4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i16mf4_i16m1((vint16m1_t)(op0), (vint16mf4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i16mf4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i16mf4_i16m1_m((vbool64_t)(op0), (vint16m1_t)(op1), (vint16mf4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i32m1_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i32m1_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i32m1_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i32m1_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i32m2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i32m2_i32m1((vint32m1_t)(op0), (vint32m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i32m2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i32m2_i32m1_m((vbool16_t)(op0), (vint32m1_t)(op1), (vint32m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i32m4_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i32m4_i32m1((vint32m1_t)(op0), (vint32m4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i32m4_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i32m4_i32m1_m((vbool8_t)(op0), (vint32m1_t)(op1), (vint32m4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i32m8_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i32m8_i32m1((vint32m1_t)(op0), (vint32m8_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i32m8_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i32m8_i32m1_m((vbool4_t)(op0), (vint32m1_t)(op1), (vint32m8_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i32mf2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i32mf2_i32m1((vint32m1_t)(op0), (vint32mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i32mf2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i32mf2_i32m1_m((vbool64_t)(op0), (vint32m1_t)(op1), (vint32mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i64m1_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i64m1_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i64m1_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i64m1_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i64m2_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i64m2_i64m1((vint64m1_t)(op0), (vint64m2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i64m2_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i64m2_i64m1_m((vbool32_t)(op0), (vint64m1_t)(op1), (vint64m2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i64m4_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i64m4_i64m1((vint64m1_t)(op0), (vint64m4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i64m4_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i64m4_i64m1_m((vbool16_t)(op0), (vint64m1_t)(op1), (vint64m4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_i64m8_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_i64m8_i64m1((vint64m1_t)(op0), (vint64m8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_i64m8_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_i64m8_i64m1_m((vbool8_t)(op0), (vint64m1_t)(op1), (vint64m8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u8m1_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u8m1_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u8m1_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u8m1_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u8m2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u8m2_u8m1((vuint8m1_t)(op0), (vuint8m2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u8m2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u8m2_u8m1_m((vbool4_t)(op0), (vuint8m1_t)(op1), (vuint8m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u8m4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u8m4_u8m1((vuint8m1_t)(op0), (vuint8m4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u8m4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u8m4_u8m1_m((vbool2_t)(op0), (vuint8m1_t)(op1), (vuint8m4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u8m8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u8m8_u8m1((vuint8m1_t)(op0), (vuint8m8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u8m8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u8m8_u8m1_m((vbool1_t)(op0), (vuint8m1_t)(op1), (vuint8m8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u8mf2_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u8mf2_u8m1((vuint8m1_t)(op0), (vuint8mf2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u8mf2_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u8mf2_u8m1_m((vbool16_t)(op0), (vuint8m1_t)(op1), (vuint8mf2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u8mf4_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u8mf4_u8m1((vuint8m1_t)(op0), (vuint8mf4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u8mf4_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u8mf4_u8m1_m((vbool32_t)(op0), (vuint8m1_t)(op1), (vuint8mf4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u8mf8_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u8mf8_u8m1((vuint8m1_t)(op0), (vuint8mf8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u8mf8_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u8mf8_u8m1_m((vbool64_t)(op0), (vuint8m1_t)(op1), (vuint8mf8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u16m1_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u16m1_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u16m1_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u16m1_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u16m2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u16m2_u16m1((vuint16m1_t)(op0), (vuint16m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u16m2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u16m2_u16m1_m((vbool8_t)(op0), (vuint16m1_t)(op1), (vuint16m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u16m4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u16m4_u16m1((vuint16m1_t)(op0), (vuint16m4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u16m4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u16m4_u16m1_m((vbool4_t)(op0), (vuint16m1_t)(op1), (vuint16m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u16m8_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u16m8_u16m1((vuint16m1_t)(op0), (vuint16m8_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u16m8_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u16m8_u16m1_m((vbool2_t)(op0), (vuint16m1_t)(op1), (vuint16m8_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u16mf2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u16mf2_u16m1((vuint16m1_t)(op0), (vuint16mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u16mf2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u16mf2_u16m1_m((vbool32_t)(op0), (vuint16m1_t)(op1), (vuint16mf2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u16mf4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u16mf4_u16m1((vuint16m1_t)(op0), (vuint16mf4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u16mf4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u16mf4_u16m1_m((vbool64_t)(op0), (vuint16m1_t)(op1), (vuint16mf4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u32m1_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u32m1_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u32m1_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u32m1_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u32m2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u32m2_u32m1((vuint32m1_t)(op0), (vuint32m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u32m2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u32m2_u32m1_m((vbool16_t)(op0), (vuint32m1_t)(op1), (vuint32m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u32m4_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u32m4_u32m1((vuint32m1_t)(op0), (vuint32m4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u32m4_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u32m4_u32m1_m((vbool8_t)(op0), (vuint32m1_t)(op1), (vuint32m4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u32m8_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u32m8_u32m1((vuint32m1_t)(op0), (vuint32m8_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u32m8_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u32m8_u32m1_m((vbool4_t)(op0), (vuint32m1_t)(op1), (vuint32m8_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u32mf2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u32mf2_u32m1((vuint32m1_t)(op0), (vuint32mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u32mf2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u32mf2_u32m1_m((vbool64_t)(op0), (vuint32m1_t)(op1), (vuint32mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u64m1_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u64m1_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u64m1_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u64m1_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u64m2_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u64m2_u64m1((vuint64m1_t)(op0), (vuint64m2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u64m2_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u64m2_u64m1_m((vbool32_t)(op0), (vuint64m1_t)(op1), (vuint64m2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u64m4_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u64m4_u64m1((vuint64m1_t)(op0), (vuint64m4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u64m4_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u64m4_u64m1_m((vbool16_t)(op0), (vuint64m1_t)(op1), (vuint64m4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vredxor_vs_u64m8_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vredxor_vs_u64m8_u64m1((vuint64m1_t)(op0), (vuint64m8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vredxor_vs_u64m8_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vredxor_vs_u64m8_u64m1_m((vbool8_t)(op0), (vuint64m1_t)(op1), (vuint64m8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i8m1_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i8m1_i16m1((vint16m1_t)(op0), (vint8m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i8m1_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i8m1_i16m1_m((vbool8_t)(op0), (vint16m1_t)(op1), (vint8m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i8m2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i8m2_i16m1((vint16m1_t)(op0), (vint8m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i8m2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i8m2_i16m1_m((vbool4_t)(op0), (vint16m1_t)(op1), (vint8m2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i8m4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i8m4_i16m1((vint16m1_t)(op0), (vint8m4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i8m4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i8m4_i16m1_m((vbool2_t)(op0), (vint16m1_t)(op1), (vint8m4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i8m8_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i8m8_i16m1((vint16m1_t)(op0), (vint8m8_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i8m8_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i8m8_i16m1_m((vbool1_t)(op0), (vint16m1_t)(op1), (vint8m8_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i8mf2_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i8mf2_i16m1((vint16m1_t)(op0), (vint8mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i8mf2_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i8mf2_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i8mf4_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i8mf4_i16m1((vint16m1_t)(op0), (vint8mf4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i8mf4_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i8mf4_i16m1_m((vbool32_t)(op0), (vint16m1_t)(op1), (vint8mf4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i8mf8_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i8mf8_i16m1((vint16m1_t)(op0), (vint8mf8_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i8mf8_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i8mf8_i16m1_m((vbool64_t)(op0), (vint16m1_t)(op1), (vint8mf8_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i16m1_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i16m1_i32m1((vint32m1_t)(op0), (vint16m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i16m1_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i16m1_i32m1_m((vbool16_t)(op0), (vint32m1_t)(op1), (vint16m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i16m2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i16m2_i32m1((vint32m1_t)(op0), (vint16m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i16m2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i16m2_i32m1_m((vbool8_t)(op0), (vint32m1_t)(op1), (vint16m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i16m4_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i16m4_i32m1((vint32m1_t)(op0), (vint16m4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i16m4_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i16m4_i32m1_m((vbool4_t)(op0), (vint32m1_t)(op1), (vint16m4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i16m8_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i16m8_i32m1((vint32m1_t)(op0), (vint16m8_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i16m8_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i16m8_i32m1_m((vbool2_t)(op0), (vint32m1_t)(op1), (vint16m8_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i16mf2_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i16mf2_i32m1((vint32m1_t)(op0), (vint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i16mf2_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i16mf2_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i16mf4_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i16mf4_i32m1((vint32m1_t)(op0), (vint16mf4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i16mf4_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i16mf4_i32m1_m((vbool64_t)(op0), (vint32m1_t)(op1), (vint16mf4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i32m1_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i32m1_i64m1((vint64m1_t)(op0), (vint32m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i32m1_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i32m1_i64m1_m((vbool32_t)(op0), (vint64m1_t)(op1), (vint32m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i32m2_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i32m2_i64m1((vint64m1_t)(op0), (vint32m2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i32m2_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i32m2_i64m1_m((vbool16_t)(op0), (vint64m1_t)(op1), (vint32m2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i32m4_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i32m4_i64m1((vint64m1_t)(op0), (vint32m4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i32m4_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i32m4_i64m1_m((vbool8_t)(op0), (vint64m1_t)(op1), (vint32m4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i32m8_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i32m8_i64m1((vint64m1_t)(op0), (vint32m8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i32m8_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i32m8_i64m1_m((vbool4_t)(op0), (vint64m1_t)(op1), (vint32m8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vwredsum_vs_i32mf2_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsum_vs_i32mf2_i64m1((vint64m1_t)(op0), (vint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vwredsum_vs_i32mf2_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsum_vs_i32mf2_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u8m1_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u8m1_u16m1((vuint16m1_t)(op0), (vuint8m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u8m1_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u8m1_u16m1_m((vbool8_t)(op0), (vuint16m1_t)(op1), (vuint8m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u8m2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u8m2_u16m1((vuint16m1_t)(op0), (vuint8m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u8m2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u8m2_u16m1_m((vbool4_t)(op0), (vuint16m1_t)(op1), (vuint8m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u8m4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u8m4_u16m1((vuint16m1_t)(op0), (vuint8m4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u8m4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u8m4_u16m1_m((vbool2_t)(op0), (vuint16m1_t)(op1), (vuint8m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u8m8_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u8m8_u16m1((vuint16m1_t)(op0), (vuint8m8_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u8m8_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u8m8_u16m1_m((vbool1_t)(op0), (vuint16m1_t)(op1), (vuint8m8_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u8mf2_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u8mf2_u16m1((vuint16m1_t)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u8mf2_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u8mf2_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u8mf4_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u8mf4_u16m1((vuint16m1_t)(op0), (vuint8mf4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u8mf4_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u8mf4_u16m1_m((vbool32_t)(op0), (vuint16m1_t)(op1), (vuint8mf4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u8mf8_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u8mf8_u16m1((vuint16m1_t)(op0), (vuint8mf8_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u8mf8_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u8mf8_u16m1_m((vbool64_t)(op0), (vuint16m1_t)(op1), (vuint8mf8_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u16m1_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u16m1_u32m1((vuint32m1_t)(op0), (vuint16m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u16m1_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u16m1_u32m1_m((vbool16_t)(op0), (vuint32m1_t)(op1), (vuint16m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u16m2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u16m2_u32m1((vuint32m1_t)(op0), (vuint16m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u16m2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u16m2_u32m1_m((vbool8_t)(op0), (vuint32m1_t)(op1), (vuint16m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u16m4_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u16m4_u32m1((vuint32m1_t)(op0), (vuint16m4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u16m4_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u16m4_u32m1_m((vbool4_t)(op0), (vuint32m1_t)(op1), (vuint16m4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u16m8_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u16m8_u32m1((vuint32m1_t)(op0), (vuint16m8_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u16m8_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u16m8_u32m1_m((vbool2_t)(op0), (vuint32m1_t)(op1), (vuint16m8_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u16mf2_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u16mf2_u32m1((vuint32m1_t)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u16mf2_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u16mf2_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u16mf4_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u16mf4_u32m1((vuint32m1_t)(op0), (vuint16mf4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u16mf4_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u16mf4_u32m1_m((vbool64_t)(op0), (vuint32m1_t)(op1), (vuint16mf4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u32m1_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u32m1_u64m1((vuint64m1_t)(op0), (vuint32m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u32m1_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u32m1_u64m1_m((vbool32_t)(op0), (vuint64m1_t)(op1), (vuint32m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u32m2_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u32m2_u64m1((vuint64m1_t)(op0), (vuint32m2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u32m2_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u32m2_u64m1_m((vbool16_t)(op0), (vuint64m1_t)(op1), (vuint32m2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u32m4_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u32m4_u64m1((vuint64m1_t)(op0), (vuint32m4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u32m4_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u32m4_u64m1_m((vbool8_t)(op0), (vuint64m1_t)(op1), (vuint32m4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u32m8_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u32m8_u64m1((vuint64m1_t)(op0), (vuint32m8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u32m8_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u32m8_u64m1_m((vbool4_t)(op0), (vuint64m1_t)(op1), (vuint32m8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vwredsumu_vs_u32mf2_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vwredsumu_vs_u32mf2_u64m1((vuint64m1_t)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vwredsumu_vs_u32mf2_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vwredsumu_vs_u32mf2_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u8m4((uint8_t *)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u8m8((uint8_t *)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u8m8_m((vbool1_t)(op0), (uint8_t *)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vmnot_m_b8(op0, op1) \
-__builtin_rvv_vmnot_m_b8((vbool8_t)(op0), (size_t)(op1))
-#define vmnot_m_b4(op0, op1) \
-__builtin_rvv_vmnot_m_b4((vbool4_t)(op0), (size_t)(op1))
-#define vmnot_m_b2(op0, op1) \
-__builtin_rvv_vmnot_m_b2((vbool2_t)(op0), (size_t)(op1))
-#define vmnot_m_b1(op0, op1) \
-__builtin_rvv_vmnot_m_b1((vbool1_t)(op0), (size_t)(op1))
-#define vmnot_m_b16(op0, op1) \
-__builtin_rvv_vmnot_m_b16((vbool16_t)(op0), (size_t)(op1))
-#define vmnot_m_b32(op0, op1) \
-__builtin_rvv_vmnot_m_b32((vbool32_t)(op0), (size_t)(op1))
-#define vmnot_m_b64(op0, op1) \
-__builtin_rvv_vmnot_m_b64((vbool64_t)(op0), (size_t)(op1))
-#define viota_m_u8m1(op0, op1) \
-__builtin_rvv_viota_m_u8m1((vbool8_t)(op0), (size_t)(op1))
-#define viota_m_u8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define viota_m_u8m2(op0, op1) \
-__builtin_rvv_viota_m_u8m2((vbool4_t)(op0), (size_t)(op1))
-#define viota_m_u8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define viota_m_u8m4(op0, op1) \
-__builtin_rvv_viota_m_u8m4((vbool2_t)(op0), (size_t)(op1))
-#define viota_m_u8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define viota_m_u8m8(op0, op1) \
-__builtin_rvv_viota_m_u8m8((vbool1_t)(op0), (size_t)(op1))
-#define viota_m_u8m8_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define viota_m_u8mf2(op0, op1) \
-__builtin_rvv_viota_m_u8mf2((vbool16_t)(op0), (size_t)(op1))
-#define viota_m_u8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define viota_m_u8mf4(op0, op1) \
-__builtin_rvv_viota_m_u8mf4((vbool32_t)(op0), (size_t)(op1))
-#define viota_m_u8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define viota_m_u8mf8(op0, op1) \
-__builtin_rvv_viota_m_u8mf8((vbool64_t)(op0), (size_t)(op1))
-#define viota_m_u8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define viota_m_u16m1(op0, op1) \
-__builtin_rvv_viota_m_u16m1((vbool16_t)(op0), (size_t)(op1))
-#define viota_m_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define viota_m_u16m2(op0, op1) \
-__builtin_rvv_viota_m_u16m2((vbool8_t)(op0), (size_t)(op1))
-#define viota_m_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define viota_m_u16m4(op0, op1) \
-__builtin_rvv_viota_m_u16m4((vbool4_t)(op0), (size_t)(op1))
-#define viota_m_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define viota_m_u16m8(op0, op1) \
-__builtin_rvv_viota_m_u16m8((vbool2_t)(op0), (size_t)(op1))
-#define viota_m_u16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define viota_m_u16mf2(op0, op1) \
-__builtin_rvv_viota_m_u16mf2((vbool32_t)(op0), (size_t)(op1))
-#define viota_m_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define viota_m_u16mf4(op0, op1) \
-__builtin_rvv_viota_m_u16mf4((vbool64_t)(op0), (size_t)(op1))
-#define viota_m_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define viota_m_u32m1(op0, op1) \
-__builtin_rvv_viota_m_u32m1((vbool32_t)(op0), (size_t)(op1))
-#define viota_m_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define viota_m_u32m2(op0, op1) \
-__builtin_rvv_viota_m_u32m2((vbool16_t)(op0), (size_t)(op1))
-#define viota_m_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define viota_m_u32m4(op0, op1) \
-__builtin_rvv_viota_m_u32m4((vbool8_t)(op0), (size_t)(op1))
-#define viota_m_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define viota_m_u32m8(op0, op1) \
-__builtin_rvv_viota_m_u32m8((vbool4_t)(op0), (size_t)(op1))
-#define viota_m_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define viota_m_u32mf2(op0, op1) \
-__builtin_rvv_viota_m_u32mf2((vbool64_t)(op0), (size_t)(op1))
-#define viota_m_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define viota_m_u64m1(op0, op1) \
-__builtin_rvv_viota_m_u64m1((vbool64_t)(op0), (size_t)(op1))
-#define viota_m_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define viota_m_u64m2(op0, op1) \
-__builtin_rvv_viota_m_u64m2((vbool32_t)(op0), (size_t)(op1))
-#define viota_m_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define viota_m_u64m4(op0, op1) \
-__builtin_rvv_viota_m_u64m4((vbool16_t)(op0), (size_t)(op1))
-#define viota_m_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define viota_m_u64m8(op0, op1) \
-__builtin_rvv_viota_m_u64m8((vbool8_t)(op0), (size_t)(op1))
-#define viota_m_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_viota_m_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vid_v_i8m1(op0) \
-__builtin_rvv_vid_v_i8m1((size_t)(op0))
-#define vid_v_i8m1_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (size_t)(op2))
-#define vid_v_i8m2(op0) \
-__builtin_rvv_vid_v_i8m2((size_t)(op0))
-#define vid_v_i8m2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (size_t)(op2))
-#define vid_v_i8m4(op0) \
-__builtin_rvv_vid_v_i8m4((size_t)(op0))
-#define vid_v_i8m4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (size_t)(op2))
-#define vid_v_i8m8(op0) \
-__builtin_rvv_vid_v_i8m8((size_t)(op0))
-#define vid_v_i8m8_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (size_t)(op2))
-#define vid_v_i8mf2(op0) \
-__builtin_rvv_vid_v_i8mf2((size_t)(op0))
-#define vid_v_i8mf2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (size_t)(op2))
-#define vid_v_i8mf4(op0) \
-__builtin_rvv_vid_v_i8mf4((size_t)(op0))
-#define vid_v_i8mf4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (size_t)(op2))
-#define vid_v_i8mf8(op0) \
-__builtin_rvv_vid_v_i8mf8((size_t)(op0))
-#define vid_v_i8mf8_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (size_t)(op2))
-#define vid_v_i16m1(op0) \
-__builtin_rvv_vid_v_i16m1((size_t)(op0))
-#define vid_v_i16m1_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vid_v_i16m2(op0) \
-__builtin_rvv_vid_v_i16m2((size_t)(op0))
-#define vid_v_i16m2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vid_v_i16m4(op0) \
-__builtin_rvv_vid_v_i16m4((size_t)(op0))
-#define vid_v_i16m4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vid_v_i16m8(op0) \
-__builtin_rvv_vid_v_i16m8((size_t)(op0))
-#define vid_v_i16m8_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vid_v_i16mf2(op0) \
-__builtin_rvv_vid_v_i16mf2((size_t)(op0))
-#define vid_v_i16mf2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vid_v_i16mf4(op0) \
-__builtin_rvv_vid_v_i16mf4((size_t)(op0))
-#define vid_v_i16mf4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vid_v_i32m1(op0) \
-__builtin_rvv_vid_v_i32m1((size_t)(op0))
-#define vid_v_i32m1_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vid_v_i32m2(op0) \
-__builtin_rvv_vid_v_i32m2((size_t)(op0))
-#define vid_v_i32m2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vid_v_i32m4(op0) \
-__builtin_rvv_vid_v_i32m4((size_t)(op0))
-#define vid_v_i32m4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vid_v_i32m8(op0) \
-__builtin_rvv_vid_v_i32m8((size_t)(op0))
-#define vid_v_i32m8_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vid_v_i32mf2(op0) \
-__builtin_rvv_vid_v_i32mf2((size_t)(op0))
-#define vid_v_i32mf2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vid_v_i64m1(op0) \
-__builtin_rvv_vid_v_i64m1((size_t)(op0))
-#define vid_v_i64m1_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vid_v_i64m2(op0) \
-__builtin_rvv_vid_v_i64m2((size_t)(op0))
-#define vid_v_i64m2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vid_v_i64m4(op0) \
-__builtin_rvv_vid_v_i64m4((size_t)(op0))
-#define vid_v_i64m4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vid_v_i64m8(op0) \
-__builtin_rvv_vid_v_i64m8((size_t)(op0))
-#define vid_v_i64m8_m(op0, op1, op2) \
-__builtin_rvv_vid_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vid_v_u8m1(op0) \
-__builtin_rvv_vid_v_u8m1((size_t)(op0))
-#define vid_v_u8m1_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vid_v_u8m2(op0) \
-__builtin_rvv_vid_v_u8m2((size_t)(op0))
-#define vid_v_u8m2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vid_v_u8m4(op0) \
-__builtin_rvv_vid_v_u8m4((size_t)(op0))
-#define vid_v_u8m4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vid_v_u8m8(op0) \
-__builtin_rvv_vid_v_u8m8((size_t)(op0))
-#define vid_v_u8m8_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vid_v_u8mf2(op0) \
-__builtin_rvv_vid_v_u8mf2((size_t)(op0))
-#define vid_v_u8mf2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vid_v_u8mf4(op0) \
-__builtin_rvv_vid_v_u8mf4((size_t)(op0))
-#define vid_v_u8mf4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vid_v_u8mf8(op0) \
-__builtin_rvv_vid_v_u8mf8((size_t)(op0))
-#define vid_v_u8mf8_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vid_v_u16m1(op0) \
-__builtin_rvv_vid_v_u16m1((size_t)(op0))
-#define vid_v_u16m1_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vid_v_u16m2(op0) \
-__builtin_rvv_vid_v_u16m2((size_t)(op0))
-#define vid_v_u16m2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vid_v_u16m4(op0) \
-__builtin_rvv_vid_v_u16m4((size_t)(op0))
-#define vid_v_u16m4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vid_v_u16m8(op0) \
-__builtin_rvv_vid_v_u16m8((size_t)(op0))
-#define vid_v_u16m8_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vid_v_u16mf2(op0) \
-__builtin_rvv_vid_v_u16mf2((size_t)(op0))
-#define vid_v_u16mf2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vid_v_u16mf4(op0) \
-__builtin_rvv_vid_v_u16mf4((size_t)(op0))
-#define vid_v_u16mf4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vid_v_u32m1(op0) \
-__builtin_rvv_vid_v_u32m1((size_t)(op0))
-#define vid_v_u32m1_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vid_v_u32m2(op0) \
-__builtin_rvv_vid_v_u32m2((size_t)(op0))
-#define vid_v_u32m2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vid_v_u32m4(op0) \
-__builtin_rvv_vid_v_u32m4((size_t)(op0))
-#define vid_v_u32m4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vid_v_u32m8(op0) \
-__builtin_rvv_vid_v_u32m8((size_t)(op0))
-#define vid_v_u32m8_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vid_v_u32mf2(op0) \
-__builtin_rvv_vid_v_u32mf2((size_t)(op0))
-#define vid_v_u32mf2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vid_v_u64m1(op0) \
-__builtin_rvv_vid_v_u64m1((size_t)(op0))
-#define vid_v_u64m1_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vid_v_u64m2(op0) \
-__builtin_rvv_vid_v_u64m2((size_t)(op0))
-#define vid_v_u64m2_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vid_v_u64m4(op0) \
-__builtin_rvv_vid_v_u64m4((size_t)(op0))
-#define vid_v_u64m4_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vid_v_u64m8(op0) \
-__builtin_rvv_vid_v_u64m8((size_t)(op0))
-#define vid_v_u64m8_m(op0, op1, op2) \
-__builtin_rvv_vid_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vmv_x_s_i8m1_i8(op0) \
-__builtin_rvv_vmv_x_s_i8m1_i8((vint8m1_t)(op0))
-#define vmv_x_s_i8m2_i8(op0) \
-__builtin_rvv_vmv_x_s_i8m2_i8((vint8m2_t)(op0))
-#define vmv_x_s_i8m4_i8(op0) \
-__builtin_rvv_vmv_x_s_i8m4_i8((vint8m4_t)(op0))
-#define vmv_x_s_i8m8_i8(op0) \
-__builtin_rvv_vmv_x_s_i8m8_i8((vint8m8_t)(op0))
-#define vmv_x_s_i8mf2_i8(op0) \
-__builtin_rvv_vmv_x_s_i8mf2_i8((vint8mf2_t)(op0))
-#define vmv_x_s_i8mf4_i8(op0) \
-__builtin_rvv_vmv_x_s_i8mf4_i8((vint8mf4_t)(op0))
-#define vmv_x_s_i8mf8_i8(op0) \
-__builtin_rvv_vmv_x_s_i8mf8_i8((vint8mf8_t)(op0))
-#define vmv_x_s_i16m1_i16(op0) \
-__builtin_rvv_vmv_x_s_i16m1_i16((vint16m1_t)(op0))
-#define vmv_x_s_i16m2_i16(op0) \
-__builtin_rvv_vmv_x_s_i16m2_i16((vint16m2_t)(op0))
-#define vmv_x_s_i16m4_i16(op0) \
-__builtin_rvv_vmv_x_s_i16m4_i16((vint16m4_t)(op0))
-#define vmv_x_s_i16m8_i16(op0) \
-__builtin_rvv_vmv_x_s_i16m8_i16((vint16m8_t)(op0))
-#define vmv_x_s_i16mf2_i16(op0) \
-__builtin_rvv_vmv_x_s_i16mf2_i16((vint16mf2_t)(op0))
-#define vmv_x_s_i16mf4_i16(op0) \
-__builtin_rvv_vmv_x_s_i16mf4_i16((vint16mf4_t)(op0))
-#define vmv_x_s_i32m1_i32(op0) \
-__builtin_rvv_vmv_x_s_i32m1_i32((vint32m1_t)(op0))
-#define vmv_x_s_i32m2_i32(op0) \
-__builtin_rvv_vmv_x_s_i32m2_i32((vint32m2_t)(op0))
-#define vmv_x_s_i32m4_i32(op0) \
-__builtin_rvv_vmv_x_s_i32m4_i32((vint32m4_t)(op0))
-#define vmv_x_s_i32m8_i32(op0) \
-__builtin_rvv_vmv_x_s_i32m8_i32((vint32m8_t)(op0))
-#define vmv_x_s_i32mf2_i32(op0) \
-__builtin_rvv_vmv_x_s_i32mf2_i32((vint32mf2_t)(op0))
-#define vmv_x_s_i64m1_i64(op0) \
-__builtin_rvv_vmv_x_s_i64m1_i64((vint64m1_t)(op0))
-#define vmv_x_s_i64m2_i64(op0) \
-__builtin_rvv_vmv_x_s_i64m2_i64((vint64m2_t)(op0))
-#define vmv_x_s_i64m4_i64(op0) \
-__builtin_rvv_vmv_x_s_i64m4_i64((vint64m4_t)(op0))
-#define vmv_x_s_i64m8_i64(op0) \
-__builtin_rvv_vmv_x_s_i64m8_i64((vint64m8_t)(op0))
-#define vmv_x_s_u8m1_u8(op0) \
-__builtin_rvv_vmv_x_s_u8m1_u8((vuint8m1_t)(op0))
-#define vmv_x_s_u8m2_u8(op0) \
-__builtin_rvv_vmv_x_s_u8m2_u8((vuint8m2_t)(op0))
-#define vmv_x_s_u8m4_u8(op0) \
-__builtin_rvv_vmv_x_s_u8m4_u8((vuint8m4_t)(op0))
-#define vmv_x_s_u8m8_u8(op0) \
-__builtin_rvv_vmv_x_s_u8m8_u8((vuint8m8_t)(op0))
-#define vmv_x_s_u8mf2_u8(op0) \
-__builtin_rvv_vmv_x_s_u8mf2_u8((vuint8mf2_t)(op0))
-#define vmv_x_s_u8mf4_u8(op0) \
-__builtin_rvv_vmv_x_s_u8mf4_u8((vuint8mf4_t)(op0))
-#define vmv_x_s_u8mf8_u8(op0) \
-__builtin_rvv_vmv_x_s_u8mf8_u8((vuint8mf8_t)(op0))
-#define vmv_x_s_u16m1_u16(op0) \
-__builtin_rvv_vmv_x_s_u16m1_u16((vuint16m1_t)(op0))
-#define vmv_x_s_u16m2_u16(op0) \
-__builtin_rvv_vmv_x_s_u16m2_u16((vuint16m2_t)(op0))
-#define vmv_x_s_u16m4_u16(op0) \
-__builtin_rvv_vmv_x_s_u16m4_u16((vuint16m4_t)(op0))
-#define vmv_x_s_u16m8_u16(op0) \
-__builtin_rvv_vmv_x_s_u16m8_u16((vuint16m8_t)(op0))
-#define vmv_x_s_u16mf2_u16(op0) \
-__builtin_rvv_vmv_x_s_u16mf2_u16((vuint16mf2_t)(op0))
-#define vmv_x_s_u16mf4_u16(op0) \
-__builtin_rvv_vmv_x_s_u16mf4_u16((vuint16mf4_t)(op0))
-#define vmv_x_s_u32m1_u32(op0) \
-__builtin_rvv_vmv_x_s_u32m1_u32((vuint32m1_t)(op0))
-#define vmv_x_s_u32m2_u32(op0) \
-__builtin_rvv_vmv_x_s_u32m2_u32((vuint32m2_t)(op0))
-#define vmv_x_s_u32m4_u32(op0) \
-__builtin_rvv_vmv_x_s_u32m4_u32((vuint32m4_t)(op0))
-#define vmv_x_s_u32m8_u32(op0) \
-__builtin_rvv_vmv_x_s_u32m8_u32((vuint32m8_t)(op0))
-#define vmv_x_s_u32mf2_u32(op0) \
-__builtin_rvv_vmv_x_s_u32mf2_u32((vuint32mf2_t)(op0))
-#define vmv_x_s_u64m1_u64(op0) \
-__builtin_rvv_vmv_x_s_u64m1_u64((vuint64m1_t)(op0))
-#define vmv_x_s_u64m2_u64(op0) \
-__builtin_rvv_vmv_x_s_u64m2_u64((vuint64m2_t)(op0))
-#define vmv_x_s_u64m4_u64(op0) \
-__builtin_rvv_vmv_x_s_u64m4_u64((vuint64m4_t)(op0))
-#define vmv_x_s_u64m8_u64(op0) \
-__builtin_rvv_vmv_x_s_u64m8_u64((vuint64m8_t)(op0))
-#define vmv_s_x_i8m1(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmv_s_x_i8m2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmv_s_x_i8m4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmv_s_x_i8m8(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmv_s_x_i8mf2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmv_s_x_i8mf4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmv_s_x_i8mf8(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vmv_s_x_i16m1(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmv_s_x_i16m2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmv_s_x_i16m4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmv_s_x_i16m8(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmv_s_x_i16mf2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmv_s_x_i16mf4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vmv_s_x_i32m1(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmv_s_x_i32m2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmv_s_x_i32m4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmv_s_x_i32m8(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmv_s_x_i32mf2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vmv_s_x_i64m1(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmv_s_x_i64m2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmv_s_x_i64m4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmv_s_x_i64m8(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vmv_s_x_u8m1(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u8m1((vuint8m1_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmv_s_x_u8m2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u8m2((vuint8m2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmv_s_x_u8m4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u8m4((vuint8m4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmv_s_x_u8m8(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u8m8((vuint8m8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmv_s_x_u8mf2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u8mf2((vuint8mf2_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmv_s_x_u8mf4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u8mf4((vuint8mf4_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmv_s_x_u8mf8(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u8mf8((vuint8mf8_t)(op0), (uint8_t)(op1), (size_t)(op2))
-#define vmv_s_x_u16m1(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmv_s_x_u16m2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmv_s_x_u16m4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmv_s_x_u16m8(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmv_s_x_u16mf2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmv_s_x_u16mf4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vmv_s_x_u32m1(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmv_s_x_u32m2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmv_s_x_u32m4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmv_s_x_u32m8(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmv_s_x_u32mf2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vmv_s_x_u64m1(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmv_s_x_u64m2(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmv_s_x_u64m4(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vmv_s_x_u64m8(op0, op1, op2) \
-__builtin_rvv_vmv_s_x_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u16m1(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u16m1((vuint16m1_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u16m2(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u16m2((vuint16m2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u16m4(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u16m4((vuint16m4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u16m8(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u16m8((vuint16m8_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u16mf2(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u16mf2((vuint16mf2_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u16mf4(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u16mf4((vuint16mf4_t)(op0), (uint16_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u32m1(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u32m1((vuint32m1_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u32m2(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u32m2((vuint32m2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u32m4(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u32m4((vuint32m4_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u32m8(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u32m8((vuint32m8_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u32mf2(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u32mf2((vuint32mf2_t)(op0), (uint32_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u64m1(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u64m1((vuint64m1_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u64m2(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u64m2((vuint64m2_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u64m4(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u64m4((vuint64m4_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vfmv_s_x_u64m8(op0, op1, op2) \
-__builtin_rvv_vfmv_s_x_u64m8((vuint64m8_t)(op0), (uint64_t)(op1), (size_t)(op2))
-#define vslideup_vx_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i8m1((vint8m1_t)(op0), (vint8m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i8m2((vint8m2_t)(op0), (vint8m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i8m4((vint8m4_t)(op0), (vint8m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i8m8((vint8m8_t)(op0), (vint8m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i8mf2((vint8mf2_t)(op0), (vint8mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i8mf4((vint8mf4_t)(op0), (vint8mf4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i8mf8((vint8mf8_t)(op0), (vint8mf8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i16m1((vint16m1_t)(op0), (vint16m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i16m2((vint16m2_t)(op0), (vint16m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i16m4((vint16m4_t)(op0), (vint16m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i16m8((vint16m8_t)(op0), (vint16m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i16mf2((vint16mf2_t)(op0), (vint16mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i16mf4((vint16mf4_t)(op0), (vint16mf4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i32m1((vint32m1_t)(op0), (vint32m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i32m2((vint32m2_t)(op0), (vint32m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i32m4((vint32m4_t)(op0), (vint32m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i32m8((vint32m8_t)(op0), (vint32m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i32mf2((vint32mf2_t)(op0), (vint32mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i64m1((vint64m1_t)(op0), (vint64m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i64m2((vint64m2_t)(op0), (vint64m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i64m4((vint64m4_t)(op0), (vint64m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_i64m8((vint64m8_t)(op0), (vint64m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1up_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1up_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u8m1((vuint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u8m2((vuint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u8m4((vuint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u8m8((vuint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u8mf2((vuint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u8mf4((vuint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u8mf8((vuint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u16m1((vuint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u16m2((vuint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u16m4((vuint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u16m8((vuint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u16mf2((vuint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u16mf4((vuint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u32m1((vuint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u32m2((vuint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u32m4((vuint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u32m8((vuint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u32mf2((vuint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u64m1((vuint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u64m2((vuint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u64m4((vuint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1up_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vslide1up_vx_u64m8((vuint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1up_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1up_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i8m1((vint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i8m2((vint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i8m4((vint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i8m8((vint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i8mf2((vint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i8mf4((vint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i8mf8((vint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i16m1((vint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i16m2((vint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i16m4((vint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i16m8((vint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i16mf2((vint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i16mf4((vint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i32m1((vint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i32m2((vint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i32m4((vint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i32m8((vint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i32mf2((vint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i64m1((vint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i64m2((vint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i64m4((vint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1down_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_i64m8((vint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1down_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u8m1((vuint8m1_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u8m2((vuint8m2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u8m4((vuint8m4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u8m8((vuint8m8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u8mf2((vuint8mf2_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u8mf4((vuint8mf4_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u8mf8((vuint8mf8_t)(op0), (int8_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (int8_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u16m1((vuint16m1_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u16m2((vuint16m2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u16m4((vuint16m4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u16m8((vuint16m8_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u16mf2((vuint16mf2_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u16mf4((vuint16mf4_t)(op0), (int16_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (int16_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u32m1((vuint32m1_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u32m2((vuint32m2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u32m4((vuint32m4_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u32m8((vuint32m8_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u32mf2((vuint32mf2_t)(op0), (int32_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (int32_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u64m1((vuint64m1_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u64m2((vuint64m2_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u64m4((vuint64m4_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vslide1down_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vslide1down_vx_u64m8((vuint64m8_t)(op0), (int64_t)(op1), (size_t)(op2))
-#define vslide1down_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslide1down_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (int64_t)(op3), (size_t)(op4))
-#define vrgather_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i8m1((vint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vrgather_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vrgather_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i8m2((vint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vrgather_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i8m4((vint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vrgather_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vrgather_vv_i8m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i8m8((vint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vrgather_vv_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vrgather_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i8mf2((vint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vrgather_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vrgather_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i8mf4((vint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vrgather_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vrgather_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i8mf8((vint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vrgather_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vrgather_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i16m1((vint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgather_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgather_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i16m2((vint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgather_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i16m4((vint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vrgather_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vrgather_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i16m8((vint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vrgather_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vrgather_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i16mf2((vint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgather_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgather_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i16mf4((vint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgather_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgather_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i32m1((vint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vrgather_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vrgather_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i32m2((vint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vrgather_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i32m4((vint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vrgather_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vrgather_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i32m8((vint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vrgather_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vrgather_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i32mf2((vint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vrgather_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vrgather_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i64m1((vint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vrgather_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vrgather_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i64m2((vint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vrgather_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i64m4((vint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vrgather_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vrgather_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_i64m8((vint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vrgather_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vrgather_vx_i8m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i8m1((vint8m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i8m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i8m2((vint8m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i8m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i8m4((vint8m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i8m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i8m8((vint8m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i8mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i8mf2((vint8mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i8mf4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i8mf4((vint8mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i8mf8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i8mf8((vint8mf8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i16m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i16m1((vint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i16m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i16m2((vint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i16m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i16m4((vint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i16m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i16m8((vint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i16mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i16mf2((vint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i16mf4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i16mf4((vint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i32m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i32m1((vint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i32m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i32m2((vint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i32m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i32m4((vint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i32m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i32m8((vint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i32mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i32mf2((vint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i64m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i64m1((vint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i64m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i64m2((vint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i64m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i64m4((vint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_i64m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_i64m8((vint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i8m1(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i8m1((vint8m1_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i8m2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i8m2((vint8m2_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i8m4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i8m4((vint8m4_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i8mf2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i8mf2((vint8mf2_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i8mf4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i8mf4((vint8mf4_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i8mf8(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i8mf8((vint8mf8_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i16m1(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i16m1((vint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i16m2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i16m2((vint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i16m4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i16m4((vint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i16m8(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i16m8((vint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i16mf2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i16mf2((vint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i16mf4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i16mf4((vint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i32m1(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i32m1((vint32m1_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i32m2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i32m2((vint32m2_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i32m4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i32m4((vint32m4_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i32m8(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i32m8((vint32m8_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i32mf2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i32mf2((vint32mf2_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i64m1(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i64m1((vint64m1_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i64m2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i64m2((vint64m2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i64m4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i64m4((vint64m4_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_i64m8(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_i64m8((vint64m8_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u8m1((vuint8m1_t)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vrgather_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vrgather_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u8m2((vuint8m2_t)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vrgather_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u8m4((vuint8m4_t)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vrgather_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vrgather_vv_u8m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u8m8((vuint8m8_t)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vrgather_vv_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vrgather_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u8mf2((vuint8mf2_t)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vrgather_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vrgather_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u8mf4((vuint8mf4_t)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vrgather_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vrgather_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u8mf8((vuint8mf8_t)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vrgather_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vrgather_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgather_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgather_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgather_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vrgather_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vrgather_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vrgather_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vrgather_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgather_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgather_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgather_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgather_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u32m1((vuint32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vrgather_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vrgather_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u32m2((vuint32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vrgather_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u32m4((vuint32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vrgather_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vrgather_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u32m8((vuint32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vrgather_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vrgather_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u32mf2((vuint32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vrgather_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vrgather_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u64m1((vuint64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vrgather_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vrgather_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u64m2((vuint64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vrgather_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u64m4((vuint64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vrgather_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vrgather_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_u64m8((vuint64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vrgather_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vrgather_vx_u8m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u8m1((vuint8m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u8m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u8m2((vuint8m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u8m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u8m4((vuint8m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u8m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u8m8((vuint8m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u8mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u8mf2((vuint8mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u8mf4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u8mf4((vuint8mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u8mf8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u8mf8((vuint8mf8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u16m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u16m1((vuint16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u16m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u16m2((vuint16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u16m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u16m4((vuint16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u16m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u16m8((vuint16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u16mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u16mf2((vuint16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u16mf4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u16mf4((vuint16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u32m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u32m1((vuint32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u32m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u32m2((vuint32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u32m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u32m4((vuint32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u32m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u32m8((vuint32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u32mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u32mf2((vuint32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u64m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u64m1((vuint64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u64m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u64m2((vuint64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u64m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u64m4((vuint64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_u64m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_u64m8((vuint64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u8m1(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u8m1((vuint8m1_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u8m2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u8m2((vuint8m2_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u8m4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u8m4((vuint8m4_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u8mf2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u8mf2((vuint8mf2_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u8mf4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u8mf4((vuint8mf4_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u8mf8(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u8mf8((vuint8mf8_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u16m1(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u16m1((vuint16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u16m2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u16m2((vuint16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u16m4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u16m4((vuint16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u16m8(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u16m8((vuint16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u16mf2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u16mf2((vuint16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u16mf4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u16mf4((vuint16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u32m1(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u32m1((vuint32m1_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u32m2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u32m2((vuint32m2_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u32m4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u32m4((vuint32m4_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u32m8(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u32m8((vuint32m8_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u32mf2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u32mf2((vuint32mf2_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u64m1(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u64m1((vuint64m1_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u64m2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u64m2((vuint64m2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u64m4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u64m4((vuint64m4_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_u64m8(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_u64m8((vuint64m8_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vcompress_vm_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i8m1((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vcompress_vm_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i8m2((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vcompress_vm_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i8m4((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vcompress_vm_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i8m8((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vcompress_vm_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i8mf2((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vcompress_vm_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i8mf4((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vcompress_vm_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i8mf8((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vcompress_vm_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i16m1((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vcompress_vm_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i16m2((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vcompress_vm_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i16m4((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vcompress_vm_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i16m8((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vcompress_vm_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i16mf2((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vcompress_vm_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i16mf4((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vcompress_vm_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i32m1((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vcompress_vm_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i32m2((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vcompress_vm_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i32m4((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vcompress_vm_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i32m8((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vcompress_vm_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i32mf2((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vcompress_vm_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i64m1((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vcompress_vm_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i64m2((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vcompress_vm_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i64m4((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vcompress_vm_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_i64m8((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vcompress_vm_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u8m1((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vcompress_vm_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u8m2((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vcompress_vm_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u8m4((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vcompress_vm_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u8m8((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vcompress_vm_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u8mf2((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vcompress_vm_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u8mf4((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vcompress_vm_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u8mf8((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vcompress_vm_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u16m1((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vcompress_vm_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u16m2((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vcompress_vm_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u16m4((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vcompress_vm_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u16m8((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vcompress_vm_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u16mf2((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vcompress_vm_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u16mf4((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vcompress_vm_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u32m1((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vcompress_vm_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u32m2((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vcompress_vm_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u32m4((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vcompress_vm_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u32m8((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vcompress_vm_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u32mf2((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vcompress_vm_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u64m1((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vcompress_vm_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u64m2((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vcompress_vm_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u64m4((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vcompress_vm_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_u64m8((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vget_v_i8m2_i8m1(op0, op1) \
-__builtin_rvv_vget_v_i8m2_i8m1((vint8m2_t)(op0), (size_t)(op1))
-#define vget_v_i8m4_i8m1(op0, op1) \
-__builtin_rvv_vget_v_i8m4_i8m1((vint8m4_t)(op0), (size_t)(op1))
-#define vget_v_i8m8_i8m1(op0, op1) \
-__builtin_rvv_vget_v_i8m8_i8m1((vint8m8_t)(op0), (size_t)(op1))
-#define vget_v_i16m2_i16m1(op0, op1) \
-__builtin_rvv_vget_v_i16m2_i16m1((vint16m2_t)(op0), (size_t)(op1))
-#define vget_v_i16m4_i16m1(op0, op1) \
-__builtin_rvv_vget_v_i16m4_i16m1((vint16m4_t)(op0), (size_t)(op1))
-#define vget_v_i16m8_i16m1(op0, op1) \
-__builtin_rvv_vget_v_i16m8_i16m1((vint16m8_t)(op0), (size_t)(op1))
-#define vget_v_i32m2_i32m1(op0, op1) \
-__builtin_rvv_vget_v_i32m2_i32m1((vint32m2_t)(op0), (size_t)(op1))
-#define vget_v_i32m4_i32m1(op0, op1) \
-__builtin_rvv_vget_v_i32m4_i32m1((vint32m4_t)(op0), (size_t)(op1))
-#define vget_v_i32m8_i32m1(op0, op1) \
-__builtin_rvv_vget_v_i32m8_i32m1((vint32m8_t)(op0), (size_t)(op1))
-#define vget_v_i64m2_i64m1(op0, op1) \
-__builtin_rvv_vget_v_i64m2_i64m1((vint64m2_t)(op0), (size_t)(op1))
-#define vget_v_i64m4_i64m1(op0, op1) \
-__builtin_rvv_vget_v_i64m4_i64m1((vint64m4_t)(op0), (size_t)(op1))
-#define vget_v_i64m8_i64m1(op0, op1) \
-__builtin_rvv_vget_v_i64m8_i64m1((vint64m8_t)(op0), (size_t)(op1))
-#define vget_v_u8m2_u8m1(op0, op1) \
-__builtin_rvv_vget_v_u8m2_u8m1((vuint8m2_t)(op0), (size_t)(op1))
-#define vget_v_u8m4_u8m1(op0, op1) \
-__builtin_rvv_vget_v_u8m4_u8m1((vuint8m4_t)(op0), (size_t)(op1))
-#define vget_v_u8m8_u8m1(op0, op1) \
-__builtin_rvv_vget_v_u8m8_u8m1((vuint8m8_t)(op0), (size_t)(op1))
-#define vget_v_u16m2_u16m1(op0, op1) \
-__builtin_rvv_vget_v_u16m2_u16m1((vuint16m2_t)(op0), (size_t)(op1))
-#define vget_v_u16m4_u16m1(op0, op1) \
-__builtin_rvv_vget_v_u16m4_u16m1((vuint16m4_t)(op0), (size_t)(op1))
-#define vget_v_u16m8_u16m1(op0, op1) \
-__builtin_rvv_vget_v_u16m8_u16m1((vuint16m8_t)(op0), (size_t)(op1))
-#define vget_v_u32m2_u32m1(op0, op1) \
-__builtin_rvv_vget_v_u32m2_u32m1((vuint32m2_t)(op0), (size_t)(op1))
-#define vget_v_u32m4_u32m1(op0, op1) \
-__builtin_rvv_vget_v_u32m4_u32m1((vuint32m4_t)(op0), (size_t)(op1))
-#define vget_v_u32m8_u32m1(op0, op1) \
-__builtin_rvv_vget_v_u32m8_u32m1((vuint32m8_t)(op0), (size_t)(op1))
-#define vget_v_u64m2_u64m1(op0, op1) \
-__builtin_rvv_vget_v_u64m2_u64m1((vuint64m2_t)(op0), (size_t)(op1))
-#define vget_v_u64m4_u64m1(op0, op1) \
-__builtin_rvv_vget_v_u64m4_u64m1((vuint64m4_t)(op0), (size_t)(op1))
-#define vget_v_u64m8_u64m1(op0, op1) \
-__builtin_rvv_vget_v_u64m8_u64m1((vuint64m8_t)(op0), (size_t)(op1))
-#define vget_v_i8m4_i8m2(op0, op1) \
-__builtin_rvv_vget_v_i8m4_i8m2((vint8m4_t)(op0), (size_t)(op1))
-#define vget_v_i8m8_i8m2(op0, op1) \
-__builtin_rvv_vget_v_i8m8_i8m2((vint8m8_t)(op0), (size_t)(op1))
-#define vget_v_i16m4_i16m2(op0, op1) \
-__builtin_rvv_vget_v_i16m4_i16m2((vint16m4_t)(op0), (size_t)(op1))
-#define vget_v_i16m8_i16m2(op0, op1) \
-__builtin_rvv_vget_v_i16m8_i16m2((vint16m8_t)(op0), (size_t)(op1))
-#define vget_v_i32m4_i32m2(op0, op1) \
-__builtin_rvv_vget_v_i32m4_i32m2((vint32m4_t)(op0), (size_t)(op1))
-#define vget_v_i32m8_i32m2(op0, op1) \
-__builtin_rvv_vget_v_i32m8_i32m2((vint32m8_t)(op0), (size_t)(op1))
-#define vget_v_i64m4_i64m2(op0, op1) \
-__builtin_rvv_vget_v_i64m4_i64m2((vint64m4_t)(op0), (size_t)(op1))
-#define vget_v_i64m8_i64m2(op0, op1) \
-__builtin_rvv_vget_v_i64m8_i64m2((vint64m8_t)(op0), (size_t)(op1))
-#define vget_v_u8m4_u8m2(op0, op1) \
-__builtin_rvv_vget_v_u8m4_u8m2((vuint8m4_t)(op0), (size_t)(op1))
-#define vget_v_u8m8_u8m2(op0, op1) \
-__builtin_rvv_vget_v_u8m8_u8m2((vuint8m8_t)(op0), (size_t)(op1))
-#define vget_v_u16m4_u16m2(op0, op1) \
-__builtin_rvv_vget_v_u16m4_u16m2((vuint16m4_t)(op0), (size_t)(op1))
-#define vget_v_u16m8_u16m2(op0, op1) \
-__builtin_rvv_vget_v_u16m8_u16m2((vuint16m8_t)(op0), (size_t)(op1))
-#define vget_v_u32m4_u32m2(op0, op1) \
-__builtin_rvv_vget_v_u32m4_u32m2((vuint32m4_t)(op0), (size_t)(op1))
-#define vget_v_u32m8_u32m2(op0, op1) \
-__builtin_rvv_vget_v_u32m8_u32m2((vuint32m8_t)(op0), (size_t)(op1))
-#define vget_v_u64m4_u64m2(op0, op1) \
-__builtin_rvv_vget_v_u64m4_u64m2((vuint64m4_t)(op0), (size_t)(op1))
-#define vget_v_u64m8_u64m2(op0, op1) \
-__builtin_rvv_vget_v_u64m8_u64m2((vuint64m8_t)(op0), (size_t)(op1))
-#define vget_v_i8m8_i8m4(op0, op1) \
-__builtin_rvv_vget_v_i8m8_i8m4((vint8m8_t)(op0), (size_t)(op1))
-#define vget_v_i16m8_i16m4(op0, op1) \
-__builtin_rvv_vget_v_i16m8_i16m4((vint16m8_t)(op0), (size_t)(op1))
-#define vget_v_i32m8_i32m4(op0, op1) \
-__builtin_rvv_vget_v_i32m8_i32m4((vint32m8_t)(op0), (size_t)(op1))
-#define vget_v_i64m8_i64m4(op0, op1) \
-__builtin_rvv_vget_v_i64m8_i64m4((vint64m8_t)(op0), (size_t)(op1))
-#define vget_v_u8m8_u8m4(op0, op1) \
-__builtin_rvv_vget_v_u8m8_u8m4((vuint8m8_t)(op0), (size_t)(op1))
-#define vget_v_u16m8_u16m4(op0, op1) \
-__builtin_rvv_vget_v_u16m8_u16m4((vuint16m8_t)(op0), (size_t)(op1))
-#define vget_v_u32m8_u32m4(op0, op1) \
-__builtin_rvv_vget_v_u32m8_u32m4((vuint32m8_t)(op0), (size_t)(op1))
-#define vget_v_u64m8_u64m4(op0, op1) \
-__builtin_rvv_vget_v_u64m8_u64m4((vuint64m8_t)(op0), (size_t)(op1))
-#define vset_v_i8m1_i8m2(op0, op1, op2) \
-__builtin_rvv_vset_v_i8m1_i8m2((vint8m2_t)(op0), (size_t)(op1), (vint8m1_t)(op2))
-#define vset_v_i16m1_i16m2(op0, op1, op2) \
-__builtin_rvv_vset_v_i16m1_i16m2((vint16m2_t)(op0), (size_t)(op1), (vint16m1_t)(op2))
-#define vset_v_i32m1_i32m2(op0, op1, op2) \
-__builtin_rvv_vset_v_i32m1_i32m2((vint32m2_t)(op0), (size_t)(op1), (vint32m1_t)(op2))
-#define vset_v_i64m1_i64m2(op0, op1, op2) \
-__builtin_rvv_vset_v_i64m1_i64m2((vint64m2_t)(op0), (size_t)(op1), (vint64m1_t)(op2))
-#define vset_v_u8m1_u8m2(op0, op1, op2) \
-__builtin_rvv_vset_v_u8m1_u8m2((vuint8m2_t)(op0), (size_t)(op1), (vuint8m1_t)(op2))
-#define vset_v_u16m1_u16m2(op0, op1, op2) \
-__builtin_rvv_vset_v_u16m1_u16m2((vuint16m2_t)(op0), (size_t)(op1), (vuint16m1_t)(op2))
-#define vset_v_u32m1_u32m2(op0, op1, op2) \
-__builtin_rvv_vset_v_u32m1_u32m2((vuint32m2_t)(op0), (size_t)(op1), (vuint32m1_t)(op2))
-#define vset_v_u64m1_u64m2(op0, op1, op2) \
-__builtin_rvv_vset_v_u64m1_u64m2((vuint64m2_t)(op0), (size_t)(op1), (vuint64m1_t)(op2))
-#define vset_v_i8m1_i8m4(op0, op1, op2) \
-__builtin_rvv_vset_v_i8m1_i8m4((vint8m4_t)(op0), (size_t)(op1), (vint8m1_t)(op2))
-#define vset_v_i8m2_i8m4(op0, op1, op2) \
-__builtin_rvv_vset_v_i8m2_i8m4((vint8m4_t)(op0), (size_t)(op1), (vint8m2_t)(op2))
-#define vset_v_i16m1_i16m4(op0, op1, op2) \
-__builtin_rvv_vset_v_i16m1_i16m4((vint16m4_t)(op0), (size_t)(op1), (vint16m1_t)(op2))
-#define vset_v_i16m2_i16m4(op0, op1, op2) \
-__builtin_rvv_vset_v_i16m2_i16m4((vint16m4_t)(op0), (size_t)(op1), (vint16m2_t)(op2))
-#define vset_v_i32m1_i32m4(op0, op1, op2) \
-__builtin_rvv_vset_v_i32m1_i32m4((vint32m4_t)(op0), (size_t)(op1), (vint32m1_t)(op2))
-#define vset_v_i32m2_i32m4(op0, op1, op2) \
-__builtin_rvv_vset_v_i32m2_i32m4((vint32m4_t)(op0), (size_t)(op1), (vint32m2_t)(op2))
-#define vset_v_i64m1_i64m4(op0, op1, op2) \
-__builtin_rvv_vset_v_i64m1_i64m4((vint64m4_t)(op0), (size_t)(op1), (vint64m1_t)(op2))
-#define vset_v_i64m2_i64m4(op0, op1, op2) \
-__builtin_rvv_vset_v_i64m2_i64m4((vint64m4_t)(op0), (size_t)(op1), (vint64m2_t)(op2))
-#define vset_v_u8m1_u8m4(op0, op1, op2) \
-__builtin_rvv_vset_v_u8m1_u8m4((vuint8m4_t)(op0), (size_t)(op1), (vuint8m1_t)(op2))
-#define vset_v_u8m2_u8m4(op0, op1, op2) \
-__builtin_rvv_vset_v_u8m2_u8m4((vuint8m4_t)(op0), (size_t)(op1), (vuint8m2_t)(op2))
-#define vset_v_u16m1_u16m4(op0, op1, op2) \
-__builtin_rvv_vset_v_u16m1_u16m4((vuint16m4_t)(op0), (size_t)(op1), (vuint16m1_t)(op2))
-#define vset_v_u16m2_u16m4(op0, op1, op2) \
-__builtin_rvv_vset_v_u16m2_u16m4((vuint16m4_t)(op0), (size_t)(op1), (vuint16m2_t)(op2))
-#define vset_v_u32m1_u32m4(op0, op1, op2) \
-__builtin_rvv_vset_v_u32m1_u32m4((vuint32m4_t)(op0), (size_t)(op1), (vuint32m1_t)(op2))
-#define vset_v_u32m2_u32m4(op0, op1, op2) \
-__builtin_rvv_vset_v_u32m2_u32m4((vuint32m4_t)(op0), (size_t)(op1), (vuint32m2_t)(op2))
-#define vset_v_u64m1_u64m4(op0, op1, op2) \
-__builtin_rvv_vset_v_u64m1_u64m4((vuint64m4_t)(op0), (size_t)(op1), (vuint64m1_t)(op2))
-#define vset_v_u64m2_u64m4(op0, op1, op2) \
-__builtin_rvv_vset_v_u64m2_u64m4((vuint64m4_t)(op0), (size_t)(op1), (vuint64m2_t)(op2))
-#define vset_v_i8m1_i8m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i8m1_i8m8((vint8m8_t)(op0), (size_t)(op1), (vint8m1_t)(op2))
-#define vset_v_i8m2_i8m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i8m2_i8m8((vint8m8_t)(op0), (size_t)(op1), (vint8m2_t)(op2))
-#define vset_v_i8m4_i8m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i8m4_i8m8((vint8m8_t)(op0), (size_t)(op1), (vint8m4_t)(op2))
-#define vset_v_i16m1_i16m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i16m1_i16m8((vint16m8_t)(op0), (size_t)(op1), (vint16m1_t)(op2))
-#define vset_v_i16m2_i16m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i16m2_i16m8((vint16m8_t)(op0), (size_t)(op1), (vint16m2_t)(op2))
-#define vset_v_i16m4_i16m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i16m4_i16m8((vint16m8_t)(op0), (size_t)(op1), (vint16m4_t)(op2))
-#define vset_v_i32m1_i32m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i32m1_i32m8((vint32m8_t)(op0), (size_t)(op1), (vint32m1_t)(op2))
-#define vset_v_i32m2_i32m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i32m2_i32m8((vint32m8_t)(op0), (size_t)(op1), (vint32m2_t)(op2))
-#define vset_v_i32m4_i32m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i32m4_i32m8((vint32m8_t)(op0), (size_t)(op1), (vint32m4_t)(op2))
-#define vset_v_i64m1_i64m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i64m1_i64m8((vint64m8_t)(op0), (size_t)(op1), (vint64m1_t)(op2))
-#define vset_v_i64m2_i64m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i64m2_i64m8((vint64m8_t)(op0), (size_t)(op1), (vint64m2_t)(op2))
-#define vset_v_i64m4_i64m8(op0, op1, op2) \
-__builtin_rvv_vset_v_i64m4_i64m8((vint64m8_t)(op0), (size_t)(op1), (vint64m4_t)(op2))
-#define vset_v_u8m1_u8m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u8m1_u8m8((vuint8m8_t)(op0), (size_t)(op1), (vuint8m1_t)(op2))
-#define vset_v_u8m2_u8m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u8m2_u8m8((vuint8m8_t)(op0), (size_t)(op1), (vuint8m2_t)(op2))
-#define vset_v_u8m4_u8m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u8m4_u8m8((vuint8m8_t)(op0), (size_t)(op1), (vuint8m4_t)(op2))
-#define vset_v_u16m1_u16m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u16m1_u16m8((vuint16m8_t)(op0), (size_t)(op1), (vuint16m1_t)(op2))
-#define vset_v_u16m2_u16m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u16m2_u16m8((vuint16m8_t)(op0), (size_t)(op1), (vuint16m2_t)(op2))
-#define vset_v_u16m4_u16m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u16m4_u16m8((vuint16m8_t)(op0), (size_t)(op1), (vuint16m4_t)(op2))
-#define vset_v_u32m1_u32m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u32m1_u32m8((vuint32m8_t)(op0), (size_t)(op1), (vuint32m1_t)(op2))
-#define vset_v_u32m2_u32m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u32m2_u32m8((vuint32m8_t)(op0), (size_t)(op1), (vuint32m2_t)(op2))
-#define vset_v_u32m4_u32m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u32m4_u32m8((vuint32m8_t)(op0), (size_t)(op1), (vuint32m4_t)(op2))
-#define vset_v_u64m1_u64m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u64m1_u64m8((vuint64m8_t)(op0), (size_t)(op1), (vuint64m1_t)(op2))
-#define vset_v_u64m2_u64m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u64m2_u64m8((vuint64m8_t)(op0), (size_t)(op1), (vuint64m2_t)(op2))
-#define vset_v_u64m4_u64m8(op0, op1, op2) \
-__builtin_rvv_vset_v_u64m4_u64m8((vuint64m8_t)(op0), (size_t)(op1), (vuint64m4_t)(op2))
-#define vsoxei8_v_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i8m2((int8_t *)(op0), (vuint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i8m4((int8_t *)(op0), (vuint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (vuint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i8m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i8m8((int8_t *)(op0), (vuint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i8m8_m((vbool1_t)(op0), (int8_t *)(op1), (vuint8m8_t)(op2), (vint8m8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u8m4((uint8_t *)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u8m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u8m8((uint8_t *)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u8m8_m((vbool1_t)(op0), (uint8_t *)(op1), (vuint8m8_t)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i8m2((int8_t *)(op0), (vuint16m4_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint16m4_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i8m4((int8_t *)(op0), (vuint16m8_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (vuint16m8_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u8m2((uint8_t *)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u8m4((uint8_t *)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (vuint16m8_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i8m2((int8_t *)(op0), (vuint32m8_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint32m8_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u8m2((uint8_t *)(op0), (vuint32m8_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint32m8_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i16m2((int16_t *)(op0), (vuint8m1_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint8m1_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i16m4((int16_t *)(op0), (vuint8m2_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint8m2_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i16m8((int16_t *)(op0), (vuint8m4_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i16m8_m((vbool2_t)(op0), (int16_t *)(op1), (vuint8m4_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u16m2((uint16_t *)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint8m1_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u16m4((uint16_t *)(op0), (vuint8m2_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint8m2_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u16m8((uint16_t *)(op0), (vuint8m4_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u16m8_m((vbool2_t)(op0), (uint16_t *)(op1), (vuint8m4_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i16m2((int16_t *)(op0), (vuint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i16m4((int16_t *)(op0), (vuint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i16m8((int16_t *)(op0), (vuint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i16m8_m((vbool2_t)(op0), (int16_t *)(op1), (vuint16m8_t)(op2), (vint16m8_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u16m4((uint16_t *)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u16m8((uint16_t *)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u16m8_m((vbool2_t)(op0), (uint16_t *)(op1), (vuint16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i16m2((int16_t *)(op0), (vuint32m4_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint32m4_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i16m4((int16_t *)(op0), (vuint32m8_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint32m8_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u16m2((uint16_t *)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u16m4((uint16_t *)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint32m8_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i16m2((int16_t *)(op0), (vuint64m8_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint64m8_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u16m2((uint16_t *)(op0), (vuint64m8_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint64m8_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i32m4((int32_t *)(op0), (vuint8m1_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint8m1_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i32m8((int32_t *)(op0), (vuint8m2_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint8m2_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u32m4((uint32_t *)(op0), (vuint8m1_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint8m1_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u32m8((uint32_t *)(op0), (vuint8m2_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint8m2_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i32m4((int32_t *)(op0), (vuint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint16m2_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i32m8((int32_t *)(op0), (vuint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint16m4_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u32m4((uint32_t *)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint16m2_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u32m8((uint32_t *)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint16m4_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i32m4((int32_t *)(op0), (vuint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i32m8((int32_t *)(op0), (vuint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u32m8((uint32_t *)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i32m4((int32_t *)(op0), (vuint64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint64m8_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u32m4((uint32_t *)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i64m4((int64_t *)(op0), (vuint8mf2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint8mf2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_i64m8((int64_t *)(op0), (vuint8m1_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint8m1_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u64m4((uint64_t *)(op0), (vuint8mf2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint8mf2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_u64m8((uint64_t *)(op0), (vuint8m1_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint8m1_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i64m4((int64_t *)(op0), (vuint16m1_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint16m1_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_i64m8((int64_t *)(op0), (vuint16m2_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vsoxei16_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint16m2_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u64m4((uint64_t *)(op0), (vuint16m1_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint16m1_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_u64m8((uint64_t *)(op0), (vuint16m2_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vsoxei16_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint16m2_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i64m4((int64_t *)(op0), (vuint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint32m2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_i64m8((int64_t *)(op0), (vuint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vsoxei32_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint32m4_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u64m4((uint64_t *)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint32m2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_u64m8((uint64_t *)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vsoxei32_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint32m4_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i64m4((int64_t *)(op0), (vuint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsoxei64_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_i64m8((int64_t *)(op0), (vuint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vsoxei64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsoxei64_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_u64m8((uint64_t *)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vsoxei64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vle16ff_v_i16m1(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_i16m1((const int16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (const int16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_i16m2(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_i16m2((const int16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (const int16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_i16m4(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_i16m4((const int16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (const int16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_i16m8(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_i16m8((const int16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (const int16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_i16mf2(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_i16mf2((const int16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (const int16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_i16mf4(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_i16mf4((const int16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (const int16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_u16m1(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_u16m1((const uint16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (const uint16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_u16m2(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_u16m2((const uint16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (const uint16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_u16m4(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_u16m4((const uint16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (const uint16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_u16m8(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_u16m8((const uint16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (const uint16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_u16mf2(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_u16mf2((const uint16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (const uint16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_u16mf4(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_u16mf4((const uint16_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (const uint16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_i32m1(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_i32m1((const int32_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (const int32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_i32m2(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_i32m2((const int32_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (const int32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_i32m4(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_i32m4((const int32_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (const int32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_i32m8(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_i32m8((const int32_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (const int32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_i32mf2(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_i32mf2((const int32_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (const int32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_u32m1(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_u32m1((const uint32_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (const uint32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_u32m2(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_u32m2((const uint32_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (const uint32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_u32m4(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_u32m4((const uint32_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (const uint32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_u32m8(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_u32m8((const uint32_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (const uint32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_u32mf2(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_u32mf2((const uint32_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (const uint32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle64ff_v_i64m1(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_i64m1((const int64_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (const int64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle64ff_v_i64m2(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_i64m2((const int64_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (const int64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle64ff_v_i64m4(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_i64m4((const int64_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (const int64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle64ff_v_i64m8(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_i64m8((const int64_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (const int64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle64ff_v_u64m1(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_u64m1((const uint64_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (const uint64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle64ff_v_u64m2(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_u64m2((const uint64_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (const uint64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle64ff_v_u64m4(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_u64m4((const uint64_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (const uint64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle64ff_v_u64m8(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_u64m8((const uint64_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (const uint64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8_v_i8m1(op0, op1) \
-__builtin_rvv_vle8_v_i8m1((const int8_t *)(op0), (size_t)(op1))
-#define vle8_v_i8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vle8_v_i8m2(op0, op1) \
-__builtin_rvv_vle8_v_i8m2((const int8_t *)(op0), (size_t)(op1))
-#define vle8_v_i8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vle8_v_i8m4(op0, op1) \
-__builtin_rvv_vle8_v_i8m4((const int8_t *)(op0), (size_t)(op1))
-#define vle8_v_i8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vle8_v_i8m8(op0, op1) \
-__builtin_rvv_vle8_v_i8m8((const int8_t *)(op0), (size_t)(op1))
-#define vle8_v_i8m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vle8_v_i8mf2(op0, op1) \
-__builtin_rvv_vle8_v_i8mf2((const int8_t *)(op0), (size_t)(op1))
-#define vle8_v_i8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vle8_v_i8mf4(op0, op1) \
-__builtin_rvv_vle8_v_i8mf4((const int8_t *)(op0), (size_t)(op1))
-#define vle8_v_i8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vle8_v_i8mf8(op0, op1) \
-__builtin_rvv_vle8_v_i8mf8((const int8_t *)(op0), (size_t)(op1))
-#define vle8_v_i8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vle8_v_u8m1(op0, op1) \
-__builtin_rvv_vle8_v_u8m1((const uint8_t *)(op0), (size_t)(op1))
-#define vle8_v_u8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vle8_v_u8m2(op0, op1) \
-__builtin_rvv_vle8_v_u8m2((const uint8_t *)(op0), (size_t)(op1))
-#define vle8_v_u8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vle8_v_u8m4(op0, op1) \
-__builtin_rvv_vle8_v_u8m4((const uint8_t *)(op0), (size_t)(op1))
-#define vle8_v_u8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vle8_v_u8m8(op0, op1) \
-__builtin_rvv_vle8_v_u8m8((const uint8_t *)(op0), (size_t)(op1))
-#define vle8_v_u8m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vle8_v_u8mf2(op0, op1) \
-__builtin_rvv_vle8_v_u8mf2((const uint8_t *)(op0), (size_t)(op1))
-#define vle8_v_u8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vle8_v_u8mf4(op0, op1) \
-__builtin_rvv_vle8_v_u8mf4((const uint8_t *)(op0), (size_t)(op1))
-#define vle8_v_u8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vle8_v_u8mf8(op0, op1) \
-__builtin_rvv_vle8_v_u8mf8((const uint8_t *)(op0), (size_t)(op1))
-#define vle8_v_u8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle8_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vle8ff_v_i8m1(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_i8m1((const int8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_i8m2(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_i8m2((const int8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_i8m4(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_i8m4((const int8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_i8m8(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_i8m8((const int8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_i8mf2(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_i8mf2((const int8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_i8mf4(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_i8mf4((const int8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_i8mf8(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_i8mf8((const int8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_u8m1(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_u8m1((const uint8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_u8m2(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_u8m2((const uint8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_u8m4(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_u8m4((const uint8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_u8m8(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_u8m8((const uint8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_u8mf2(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_u8mf2((const uint8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_u8mf4(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_u8mf4((const uint8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle8ff_v_u8mf8(op0, op1, op2) \
-__builtin_rvv_vle8ff_v_u8mf8((const uint8_t *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle8ff_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle8ff_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vneg_v_i8m1(op0, op1) \
-__builtin_rvv_vneg_v_i8m1((vint8m1_t)(op0), (size_t)(op1))
-#define vneg_v_i8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vneg_v_i8m2(op0, op1) \
-__builtin_rvv_vneg_v_i8m2((vint8m2_t)(op0), (size_t)(op1))
-#define vneg_v_i8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vneg_v_i8m4(op0, op1) \
-__builtin_rvv_vneg_v_i8m4((vint8m4_t)(op0), (size_t)(op1))
-#define vneg_v_i8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vneg_v_i8m8(op0, op1) \
-__builtin_rvv_vneg_v_i8m8((vint8m8_t)(op0), (size_t)(op1))
-#define vneg_v_i8m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vneg_v_i8mf2(op0, op1) \
-__builtin_rvv_vneg_v_i8mf2((vint8mf2_t)(op0), (size_t)(op1))
-#define vneg_v_i8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vneg_v_i8mf4(op0, op1) \
-__builtin_rvv_vneg_v_i8mf4((vint8mf4_t)(op0), (size_t)(op1))
-#define vneg_v_i8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vneg_v_i8mf8(op0, op1) \
-__builtin_rvv_vneg_v_i8mf8((vint8mf8_t)(op0), (size_t)(op1))
-#define vneg_v_i8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vneg_v_i16m1(op0, op1) \
-__builtin_rvv_vneg_v_i16m1((vint16m1_t)(op0), (size_t)(op1))
-#define vneg_v_i16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vneg_v_i16m2(op0, op1) \
-__builtin_rvv_vneg_v_i16m2((vint16m2_t)(op0), (size_t)(op1))
-#define vneg_v_i16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vneg_v_i16m4(op0, op1) \
-__builtin_rvv_vneg_v_i16m4((vint16m4_t)(op0), (size_t)(op1))
-#define vneg_v_i16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vneg_v_i16m8(op0, op1) \
-__builtin_rvv_vneg_v_i16m8((vint16m8_t)(op0), (size_t)(op1))
-#define vneg_v_i16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vneg_v_i16mf2(op0, op1) \
-__builtin_rvv_vneg_v_i16mf2((vint16mf2_t)(op0), (size_t)(op1))
-#define vneg_v_i16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vneg_v_i16mf4(op0, op1) \
-__builtin_rvv_vneg_v_i16mf4((vint16mf4_t)(op0), (size_t)(op1))
-#define vneg_v_i16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vneg_v_i32m1(op0, op1) \
-__builtin_rvv_vneg_v_i32m1((vint32m1_t)(op0), (size_t)(op1))
-#define vneg_v_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vneg_v_i32m2(op0, op1) \
-__builtin_rvv_vneg_v_i32m2((vint32m2_t)(op0), (size_t)(op1))
-#define vneg_v_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vneg_v_i32m4(op0, op1) \
-__builtin_rvv_vneg_v_i32m4((vint32m4_t)(op0), (size_t)(op1))
-#define vneg_v_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vneg_v_i32m8(op0, op1) \
-__builtin_rvv_vneg_v_i32m8((vint32m8_t)(op0), (size_t)(op1))
-#define vneg_v_i32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vneg_v_i32mf2(op0, op1) \
-__builtin_rvv_vneg_v_i32mf2((vint32mf2_t)(op0), (size_t)(op1))
-#define vneg_v_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vneg_v_i64m1(op0, op1) \
-__builtin_rvv_vneg_v_i64m1((vint64m1_t)(op0), (size_t)(op1))
-#define vneg_v_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vneg_v_i64m2(op0, op1) \
-__builtin_rvv_vneg_v_i64m2((vint64m2_t)(op0), (size_t)(op1))
-#define vneg_v_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vneg_v_i64m4(op0, op1) \
-__builtin_rvv_vneg_v_i64m4((vint64m4_t)(op0), (size_t)(op1))
-#define vneg_v_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vneg_v_i64m8(op0, op1) \
-__builtin_rvv_vneg_v_i64m8((vint64m8_t)(op0), (size_t)(op1))
-#define vneg_v_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vneg_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vnot_v_i8m1(op0, op1) \
-__builtin_rvv_vnot_v_i8m1((vint8m1_t)(op0), (size_t)(op1))
-#define vnot_v_i8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vnot_v_i8m2(op0, op1) \
-__builtin_rvv_vnot_v_i8m2((vint8m2_t)(op0), (size_t)(op1))
-#define vnot_v_i8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vnot_v_i8m4(op0, op1) \
-__builtin_rvv_vnot_v_i8m4((vint8m4_t)(op0), (size_t)(op1))
-#define vnot_v_i8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vnot_v_i8m8(op0, op1) \
-__builtin_rvv_vnot_v_i8m8((vint8m8_t)(op0), (size_t)(op1))
-#define vnot_v_i8m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (vint8m8_t)(op2), (size_t)(op3))
-#define vnot_v_i8mf2(op0, op1) \
-__builtin_rvv_vnot_v_i8mf2((vint8mf2_t)(op0), (size_t)(op1))
-#define vnot_v_i8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vnot_v_i8mf4(op0, op1) \
-__builtin_rvv_vnot_v_i8mf4((vint8mf4_t)(op0), (size_t)(op1))
-#define vnot_v_i8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vnot_v_i8mf8(op0, op1) \
-__builtin_rvv_vnot_v_i8mf8((vint8mf8_t)(op0), (size_t)(op1))
-#define vnot_v_i8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vnot_v_i16m1(op0, op1) \
-__builtin_rvv_vnot_v_i16m1((vint16m1_t)(op0), (size_t)(op1))
-#define vnot_v_i16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vnot_v_i16m2(op0, op1) \
-__builtin_rvv_vnot_v_i16m2((vint16m2_t)(op0), (size_t)(op1))
-#define vnot_v_i16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vnot_v_i16m4(op0, op1) \
-__builtin_rvv_vnot_v_i16m4((vint16m4_t)(op0), (size_t)(op1))
-#define vnot_v_i16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vnot_v_i16m8(op0, op1) \
-__builtin_rvv_vnot_v_i16m8((vint16m8_t)(op0), (size_t)(op1))
-#define vnot_v_i16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vnot_v_i16mf2(op0, op1) \
-__builtin_rvv_vnot_v_i16mf2((vint16mf2_t)(op0), (size_t)(op1))
-#define vnot_v_i16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vnot_v_i16mf4(op0, op1) \
-__builtin_rvv_vnot_v_i16mf4((vint16mf4_t)(op0), (size_t)(op1))
-#define vnot_v_i16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vnot_v_i32m1(op0, op1) \
-__builtin_rvv_vnot_v_i32m1((vint32m1_t)(op0), (size_t)(op1))
-#define vnot_v_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vnot_v_i32m2(op0, op1) \
-__builtin_rvv_vnot_v_i32m2((vint32m2_t)(op0), (size_t)(op1))
-#define vnot_v_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vnot_v_i32m4(op0, op1) \
-__builtin_rvv_vnot_v_i32m4((vint32m4_t)(op0), (size_t)(op1))
-#define vnot_v_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vnot_v_i32m8(op0, op1) \
-__builtin_rvv_vnot_v_i32m8((vint32m8_t)(op0), (size_t)(op1))
-#define vnot_v_i32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vnot_v_i32mf2(op0, op1) \
-__builtin_rvv_vnot_v_i32mf2((vint32mf2_t)(op0), (size_t)(op1))
-#define vnot_v_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vnot_v_i64m1(op0, op1) \
-__builtin_rvv_vnot_v_i64m1((vint64m1_t)(op0), (size_t)(op1))
-#define vnot_v_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vnot_v_i64m2(op0, op1) \
-__builtin_rvv_vnot_v_i64m2((vint64m2_t)(op0), (size_t)(op1))
-#define vnot_v_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vnot_v_i64m4(op0, op1) \
-__builtin_rvv_vnot_v_i64m4((vint64m4_t)(op0), (size_t)(op1))
-#define vnot_v_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vnot_v_i64m8(op0, op1) \
-__builtin_rvv_vnot_v_i64m8((vint64m8_t)(op0), (size_t)(op1))
-#define vnot_v_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vlse8_v_i8m1(op0, op1, op2) \
-__builtin_rvv_vlse8_v_i8m1((const int8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_i8m2(op0, op1, op2) \
-__builtin_rvv_vlse8_v_i8m2((const int8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_i8m4(op0, op1, op2) \
-__builtin_rvv_vlse8_v_i8m4((const int8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_i8m8(op0, op1, op2) \
-__builtin_rvv_vlse8_v_i8m8((const int8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_i8mf2(op0, op1, op2) \
-__builtin_rvv_vlse8_v_i8mf2((const int8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_i8mf4(op0, op1, op2) \
-__builtin_rvv_vlse8_v_i8mf4((const int8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_i8mf8(op0, op1, op2) \
-__builtin_rvv_vlse8_v_i8mf8((const int8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vnot_v_u8m1(op0, op1) \
-__builtin_rvv_vnot_v_u8m1((vuint8m1_t)(op0), (size_t)(op1))
-#define vnot_v_u8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vnot_v_u8m2(op0, op1) \
-__builtin_rvv_vnot_v_u8m2((vuint8m2_t)(op0), (size_t)(op1))
-#define vnot_v_u8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vnot_v_u8m4(op0, op1) \
-__builtin_rvv_vnot_v_u8m4((vuint8m4_t)(op0), (size_t)(op1))
-#define vnot_v_u8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vnot_v_u8m8(op0, op1) \
-__builtin_rvv_vnot_v_u8m8((vuint8m8_t)(op0), (size_t)(op1))
-#define vnot_v_u8m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (vuint8m8_t)(op2), (size_t)(op3))
-#define vnot_v_u8mf2(op0, op1) \
-__builtin_rvv_vnot_v_u8mf2((vuint8mf2_t)(op0), (size_t)(op1))
-#define vnot_v_u8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vnot_v_u8mf4(op0, op1) \
-__builtin_rvv_vnot_v_u8mf4((vuint8mf4_t)(op0), (size_t)(op1))
-#define vnot_v_u8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vnot_v_u8mf8(op0, op1) \
-__builtin_rvv_vnot_v_u8mf8((vuint8mf8_t)(op0), (size_t)(op1))
-#define vnot_v_u8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vnot_v_u16m1(op0, op1) \
-__builtin_rvv_vnot_v_u16m1((vuint16m1_t)(op0), (size_t)(op1))
-#define vnot_v_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vnot_v_u16m2(op0, op1) \
-__builtin_rvv_vnot_v_u16m2((vuint16m2_t)(op0), (size_t)(op1))
-#define vnot_v_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vnot_v_u16m4(op0, op1) \
-__builtin_rvv_vnot_v_u16m4((vuint16m4_t)(op0), (size_t)(op1))
-#define vnot_v_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vnot_v_u16m8(op0, op1) \
-__builtin_rvv_vnot_v_u16m8((vuint16m8_t)(op0), (size_t)(op1))
-#define vnot_v_u16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vnot_v_u16mf2(op0, op1) \
-__builtin_rvv_vnot_v_u16mf2((vuint16mf2_t)(op0), (size_t)(op1))
-#define vnot_v_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vnot_v_u16mf4(op0, op1) \
-__builtin_rvv_vnot_v_u16mf4((vuint16mf4_t)(op0), (size_t)(op1))
-#define vnot_v_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vnot_v_u32m1(op0, op1) \
-__builtin_rvv_vnot_v_u32m1((vuint32m1_t)(op0), (size_t)(op1))
-#define vnot_v_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vnot_v_u32m2(op0, op1) \
-__builtin_rvv_vnot_v_u32m2((vuint32m2_t)(op0), (size_t)(op1))
-#define vnot_v_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vnot_v_u32m4(op0, op1) \
-__builtin_rvv_vnot_v_u32m4((vuint32m4_t)(op0), (size_t)(op1))
-#define vnot_v_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vnot_v_u32m8(op0, op1) \
-__builtin_rvv_vnot_v_u32m8((vuint32m8_t)(op0), (size_t)(op1))
-#define vnot_v_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vnot_v_u32mf2(op0, op1) \
-__builtin_rvv_vnot_v_u32mf2((vuint32mf2_t)(op0), (size_t)(op1))
-#define vnot_v_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vnot_v_u64m1(op0, op1) \
-__builtin_rvv_vnot_v_u64m1((vuint64m1_t)(op0), (size_t)(op1))
-#define vnot_v_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vnot_v_u64m2(op0, op1) \
-__builtin_rvv_vnot_v_u64m2((vuint64m2_t)(op0), (size_t)(op1))
-#define vnot_v_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vnot_v_u64m4(op0, op1) \
-__builtin_rvv_vnot_v_u64m4((vuint64m4_t)(op0), (size_t)(op1))
-#define vnot_v_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vnot_v_u64m8(op0, op1) \
-__builtin_rvv_vnot_v_u64m8((vuint64m8_t)(op0), (size_t)(op1))
-#define vnot_v_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vnot_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vmmv_m_b8(op0, op1) \
-__builtin_rvv_vmmv_m_b8((vbool8_t)(op0), (size_t)(op1))
-#define vmmv_m_b4(op0, op1) \
-__builtin_rvv_vmmv_m_b4((vbool4_t)(op0), (size_t)(op1))
-#define vmmv_m_b2(op0, op1) \
-__builtin_rvv_vmmv_m_b2((vbool2_t)(op0), (size_t)(op1))
-#define vmmv_m_b1(op0, op1) \
-__builtin_rvv_vmmv_m_b1((vbool1_t)(op0), (size_t)(op1))
-#define vmmv_m_b16(op0, op1) \
-__builtin_rvv_vmmv_m_b16((vbool16_t)(op0), (size_t)(op1))
-#define vmmv_m_b32(op0, op1) \
-__builtin_rvv_vmmv_m_b32((vbool32_t)(op0), (size_t)(op1))
-#define vmmv_m_b64(op0, op1) \
-__builtin_rvv_vmmv_m_b64((vbool64_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u16m2(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u16m2((vuint8m1_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u16m4(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u16m4((vuint8m2_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u16m8(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u16m8((vuint8m4_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u16m1(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u16m1((vuint8mf2_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u16mf2(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u16mf2((vuint8mf4_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u16mf4(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u16mf4((vuint8mf8_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u32m2(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u32m2((vuint16m1_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u32m4(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u32m4((vuint16m2_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u32m8(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u32m8((vuint16m4_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u32m1(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u32m1((vuint16mf2_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u32mf2(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u32mf2((vuint16mf4_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u64m2(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u64m2((vuint32m1_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u64m4(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u64m4((vuint32m2_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u64m8(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u64m8((vuint32m4_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vwcvtu_x_x_v_u64m1(op0, op1) \
-__builtin_rvv_vwcvtu_x_x_v_u64m1((vuint32mf2_t)(op0), (size_t)(op1))
-#define vwcvtu_x_x_v_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vwcvtu_x_x_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i8m1(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i8m1((vint16m2_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i8m2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i8m2((vint16m4_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i8m4(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i8m4((vint16m8_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i8mf2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i8mf2((vint16m1_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i8mf4(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i8mf4((vint16mf2_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i8mf8(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i8mf8((vint16mf4_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i16m1(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i16m1((vint32m2_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i16m2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i16m2((vint32m4_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i16m4(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i16m4((vint32m8_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i16mf2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i16mf2((vint32m1_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i16mf4(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i16mf4((vint32mf2_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i32m1(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i32m1((vint64m2_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i32m2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i32m2((vint64m4_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i32m4(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i32m4((vint64m8_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vncvt_x_x_w_i32mf2(op0, op1) \
-__builtin_rvv_vncvt_x_x_w_i32mf2((vint64m1_t)(op0), (size_t)(op1))
-#define vncvt_x_x_w_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vncvt_x_x_w_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vle16_v_i16m1(op0, op1) \
-__builtin_rvv_vle16_v_i16m1((const int16_t *)(op0), (size_t)(op1))
-#define vle16_v_i16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (const int16_t *)(op2), (size_t)(op3))
-#define vle16_v_i16m2(op0, op1) \
-__builtin_rvv_vle16_v_i16m2((const int16_t *)(op0), (size_t)(op1))
-#define vle16_v_i16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (const int16_t *)(op2), (size_t)(op3))
-#define vle16_v_i16m4(op0, op1) \
-__builtin_rvv_vle16_v_i16m4((const int16_t *)(op0), (size_t)(op1))
-#define vle16_v_i16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (const int16_t *)(op2), (size_t)(op3))
-#define vle16_v_i16m8(op0, op1) \
-__builtin_rvv_vle16_v_i16m8((const int16_t *)(op0), (size_t)(op1))
-#define vle16_v_i16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (const int16_t *)(op2), (size_t)(op3))
-#define vle16_v_i16mf2(op0, op1) \
-__builtin_rvv_vle16_v_i16mf2((const int16_t *)(op0), (size_t)(op1))
-#define vle16_v_i16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (const int16_t *)(op2), (size_t)(op3))
-#define vle16_v_i16mf4(op0, op1) \
-__builtin_rvv_vle16_v_i16mf4((const int16_t *)(op0), (size_t)(op1))
-#define vle16_v_i16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (const int16_t *)(op2), (size_t)(op3))
-#define vle16_v_u16m1(op0, op1) \
-__builtin_rvv_vle16_v_u16m1((const uint16_t *)(op0), (size_t)(op1))
-#define vle16_v_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (const uint16_t *)(op2), (size_t)(op3))
-#define vle16_v_u16m2(op0, op1) \
-__builtin_rvv_vle16_v_u16m2((const uint16_t *)(op0), (size_t)(op1))
-#define vle16_v_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (const uint16_t *)(op2), (size_t)(op3))
-#define vle16_v_u16m4(op0, op1) \
-__builtin_rvv_vle16_v_u16m4((const uint16_t *)(op0), (size_t)(op1))
-#define vle16_v_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (const uint16_t *)(op2), (size_t)(op3))
-#define vle16_v_u16m8(op0, op1) \
-__builtin_rvv_vle16_v_u16m8((const uint16_t *)(op0), (size_t)(op1))
-#define vle16_v_u16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (const uint16_t *)(op2), (size_t)(op3))
-#define vle16_v_u16mf2(op0, op1) \
-__builtin_rvv_vle16_v_u16mf2((const uint16_t *)(op0), (size_t)(op1))
-#define vle16_v_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (const uint16_t *)(op2), (size_t)(op3))
-#define vle16_v_u16mf4(op0, op1) \
-__builtin_rvv_vle16_v_u16mf4((const uint16_t *)(op0), (size_t)(op1))
-#define vle16_v_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (const uint16_t *)(op2), (size_t)(op3))
-#define vle32_v_i32m1(op0, op1) \
-__builtin_rvv_vle32_v_i32m1((const int32_t *)(op0), (size_t)(op1))
-#define vle32_v_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (const int32_t *)(op2), (size_t)(op3))
-#define vle32_v_i32m2(op0, op1) \
-__builtin_rvv_vle32_v_i32m2((const int32_t *)(op0), (size_t)(op1))
-#define vle32_v_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (const int32_t *)(op2), (size_t)(op3))
-#define vle32_v_i32m4(op0, op1) \
-__builtin_rvv_vle32_v_i32m4((const int32_t *)(op0), (size_t)(op1))
-#define vle32_v_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (const int32_t *)(op2), (size_t)(op3))
-#define vle32_v_i32m8(op0, op1) \
-__builtin_rvv_vle32_v_i32m8((const int32_t *)(op0), (size_t)(op1))
-#define vle32_v_i32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (const int32_t *)(op2), (size_t)(op3))
-#define vle32_v_i32mf2(op0, op1) \
-__builtin_rvv_vle32_v_i32mf2((const int32_t *)(op0), (size_t)(op1))
-#define vle32_v_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (const int32_t *)(op2), (size_t)(op3))
-#define vle32_v_u32m1(op0, op1) \
-__builtin_rvv_vle32_v_u32m1((const uint32_t *)(op0), (size_t)(op1))
-#define vle32_v_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (const uint32_t *)(op2), (size_t)(op3))
-#define vle32_v_u32m2(op0, op1) \
-__builtin_rvv_vle32_v_u32m2((const uint32_t *)(op0), (size_t)(op1))
-#define vle32_v_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (const uint32_t *)(op2), (size_t)(op3))
-#define vle32_v_u32m4(op0, op1) \
-__builtin_rvv_vle32_v_u32m4((const uint32_t *)(op0), (size_t)(op1))
-#define vle32_v_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (const uint32_t *)(op2), (size_t)(op3))
-#define vle32_v_u32m8(op0, op1) \
-__builtin_rvv_vle32_v_u32m8((const uint32_t *)(op0), (size_t)(op1))
-#define vle32_v_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (const uint32_t *)(op2), (size_t)(op3))
-#define vle32_v_u32mf2(op0, op1) \
-__builtin_rvv_vle32_v_u32mf2((const uint32_t *)(op0), (size_t)(op1))
-#define vle32_v_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (const uint32_t *)(op2), (size_t)(op3))
-#define vlse8_v_u8m1(op0, op1, op2) \
-__builtin_rvv_vlse8_v_u8m1((const uint8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_u8m2(op0, op1, op2) \
-__builtin_rvv_vlse8_v_u8m2((const uint8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_u8m4(op0, op1, op2) \
-__builtin_rvv_vlse8_v_u8m4((const uint8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_u8m8(op0, op1, op2) \
-__builtin_rvv_vlse8_v_u8m8((const uint8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_u8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_u8m8_m((vbool1_t)(op0), (vuint8m8_t)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_u8mf2(op0, op1, op2) \
-__builtin_rvv_vlse8_v_u8mf2((const uint8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_u8mf4(op0, op1, op2) \
-__builtin_rvv_vlse8_v_u8mf4((const uint8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse8_v_u8mf8(op0, op1, op2) \
-__builtin_rvv_vlse8_v_u8mf8((const uint8_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse8_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse8_v_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vle64_v_i64m1(op0, op1) \
-__builtin_rvv_vle64_v_i64m1((const int64_t *)(op0), (size_t)(op1))
-#define vle64_v_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (const int64_t *)(op2), (size_t)(op3))
-#define vle64_v_i64m2(op0, op1) \
-__builtin_rvv_vle64_v_i64m2((const int64_t *)(op0), (size_t)(op1))
-#define vle64_v_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (const int64_t *)(op2), (size_t)(op3))
-#define vle64_v_i64m4(op0, op1) \
-__builtin_rvv_vle64_v_i64m4((const int64_t *)(op0), (size_t)(op1))
-#define vle64_v_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (const int64_t *)(op2), (size_t)(op3))
-#define vle64_v_i64m8(op0, op1) \
-__builtin_rvv_vle64_v_i64m8((const int64_t *)(op0), (size_t)(op1))
-#define vle64_v_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (const int64_t *)(op2), (size_t)(op3))
-#define vle64_v_u64m1(op0, op1) \
-__builtin_rvv_vle64_v_u64m1((const uint64_t *)(op0), (size_t)(op1))
-#define vle64_v_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (const uint64_t *)(op2), (size_t)(op3))
-#define vle64_v_u64m2(op0, op1) \
-__builtin_rvv_vle64_v_u64m2((const uint64_t *)(op0), (size_t)(op1))
-#define vle64_v_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (const uint64_t *)(op2), (size_t)(op3))
-#define vle64_v_u64m4(op0, op1) \
-__builtin_rvv_vle64_v_u64m4((const uint64_t *)(op0), (size_t)(op1))
-#define vle64_v_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (const uint64_t *)(op2), (size_t)(op3))
-#define vle64_v_u64m8(op0, op1) \
-__builtin_rvv_vle64_v_u64m8((const uint64_t *)(op0), (size_t)(op1))
-#define vle64_v_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (const uint64_t *)(op2), (size_t)(op3))
-#define vse16_v_i16m1(op0, op1, op2) \
-__builtin_rvv_vse16_v_i16m1((int16_t *)(op0), (vint16m1_t)(op1), (size_t)(op2))
-#define vse16_v_i16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vse16_v_i16m2(op0, op1, op2) \
-__builtin_rvv_vse16_v_i16m2((int16_t *)(op0), (vint16m2_t)(op1), (size_t)(op2))
-#define vse16_v_i16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vse16_v_i16m4(op0, op1, op2) \
-__builtin_rvv_vse16_v_i16m4((int16_t *)(op0), (vint16m4_t)(op1), (size_t)(op2))
-#define vse16_v_i16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vse16_v_i16m8(op0, op1, op2) \
-__builtin_rvv_vse16_v_i16m8((int16_t *)(op0), (vint16m8_t)(op1), (size_t)(op2))
-#define vse16_v_i16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_i16m8_m((vbool2_t)(op0), (int16_t *)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vse16_v_i16mf2(op0, op1, op2) \
-__builtin_rvv_vse16_v_i16mf2((int16_t *)(op0), (vint16mf2_t)(op1), (size_t)(op2))
-#define vse16_v_i16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vse16_v_i16mf4(op0, op1, op2) \
-__builtin_rvv_vse16_v_i16mf4((int16_t *)(op0), (vint16mf4_t)(op1), (size_t)(op2))
-#define vse16_v_i16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vse16_v_u16m1(op0, op1, op2) \
-__builtin_rvv_vse16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vse16_v_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vse16_v_u16m2(op0, op1, op2) \
-__builtin_rvv_vse16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vse16_v_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vse16_v_u16m4(op0, op1, op2) \
-__builtin_rvv_vse16_v_u16m4((uint16_t *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vse16_v_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vse16_v_u16m8(op0, op1, op2) \
-__builtin_rvv_vse16_v_u16m8((uint16_t *)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vse16_v_u16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_u16m8_m((vbool2_t)(op0), (uint16_t *)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vse16_v_u16mf2(op0, op1, op2) \
-__builtin_rvv_vse16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vse16_v_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vse16_v_u16mf4(op0, op1, op2) \
-__builtin_rvv_vse16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vse16_v_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vse32_v_i32m1(op0, op1, op2) \
-__builtin_rvv_vse32_v_i32m1((int32_t *)(op0), (vint32m1_t)(op1), (size_t)(op2))
-#define vse32_v_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vse32_v_i32m2(op0, op1, op2) \
-__builtin_rvv_vse32_v_i32m2((int32_t *)(op0), (vint32m2_t)(op1), (size_t)(op2))
-#define vse32_v_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vse32_v_i32m4(op0, op1, op2) \
-__builtin_rvv_vse32_v_i32m4((int32_t *)(op0), (vint32m4_t)(op1), (size_t)(op2))
-#define vse32_v_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vse32_v_i32m8(op0, op1, op2) \
-__builtin_rvv_vse32_v_i32m8((int32_t *)(op0), (vint32m8_t)(op1), (size_t)(op2))
-#define vse32_v_i32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vse32_v_i32mf2(op0, op1, op2) \
-__builtin_rvv_vse32_v_i32mf2((int32_t *)(op0), (vint32mf2_t)(op1), (size_t)(op2))
-#define vse32_v_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vse32_v_u32m1(op0, op1, op2) \
-__builtin_rvv_vse32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vse32_v_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vse32_v_u32m2(op0, op1, op2) \
-__builtin_rvv_vse32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vse32_v_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vse32_v_u32m4(op0, op1, op2) \
-__builtin_rvv_vse32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vse32_v_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vse32_v_u32m8(op0, op1, op2) \
-__builtin_rvv_vse32_v_u32m8((uint32_t *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vse32_v_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vse32_v_u32mf2(op0, op1, op2) \
-__builtin_rvv_vse32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vse32_v_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vluxei8_v_i8m1(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i8m1((const int8_t *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vluxei8_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (const int8_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_i8m2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i8m2((const int8_t *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vluxei8_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (const int8_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxei8_v_i8m4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i8m4((const int8_t *)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vluxei8_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (const int8_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vluxei8_v_i8m8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i8m8((const int8_t *)(op0), (vuint8m8_t)(op1), (size_t)(op2))
-#define vluxei8_v_i8m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i8m8_m((vbool1_t)(op0), (vint8m8_t)(op1), (const int8_t *)(op2), (vuint8m8_t)(op3), (size_t)(op4))
-#define vluxei8_v_i8mf2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i8mf2((const int8_t *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vluxei8_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (const int8_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_i8mf4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i8mf4((const int8_t *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vluxei8_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (const int8_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_i8mf8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_i8mf8((const int8_t *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vluxei8_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (const int8_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vse64_v_i64m1(op0, op1, op2) \
-__builtin_rvv_vse64_v_i64m1((int64_t *)(op0), (vint64m1_t)(op1), (size_t)(op2))
-#define vse64_v_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vse64_v_i64m2(op0, op1, op2) \
-__builtin_rvv_vse64_v_i64m2((int64_t *)(op0), (vint64m2_t)(op1), (size_t)(op2))
-#define vse64_v_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vse64_v_i64m4(op0, op1, op2) \
-__builtin_rvv_vse64_v_i64m4((int64_t *)(op0), (vint64m4_t)(op1), (size_t)(op2))
-#define vse64_v_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vse64_v_i64m8(op0, op1, op2) \
-__builtin_rvv_vse64_v_i64m8((int64_t *)(op0), (vint64m8_t)(op1), (size_t)(op2))
-#define vse64_v_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vse64_v_u64m1(op0, op1, op2) \
-__builtin_rvv_vse64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vse64_v_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vse64_v_u64m2(op0, op1, op2) \
-__builtin_rvv_vse64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vse64_v_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vse64_v_u64m4(op0, op1, op2) \
-__builtin_rvv_vse64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vse64_v_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vse64_v_u64m8(op0, op1, op2) \
-__builtin_rvv_vse64_v_u64m8((uint64_t *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vse64_v_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vlse16_v_i16m1(op0, op1, op2) \
-__builtin_rvv_vlse16_v_i16m1((const int16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (const int16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_i16m2(op0, op1, op2) \
-__builtin_rvv_vlse16_v_i16m2((const int16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (const int16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_i16m4(op0, op1, op2) \
-__builtin_rvv_vlse16_v_i16m4((const int16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (const int16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_i16m8(op0, op1, op2) \
-__builtin_rvv_vlse16_v_i16m8((const int16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_i16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (const int16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_i16mf2(op0, op1, op2) \
-__builtin_rvv_vlse16_v_i16mf2((const int16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (const int16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_i16mf4(op0, op1, op2) \
-__builtin_rvv_vlse16_v_i16mf4((const int16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (const int16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_u16m1(op0, op1, op2) \
-__builtin_rvv_vlse16_v_u16m1((const uint16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (const uint16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_u16m2(op0, op1, op2) \
-__builtin_rvv_vlse16_v_u16m2((const uint16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (const uint16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_u16m4(op0, op1, op2) \
-__builtin_rvv_vlse16_v_u16m4((const uint16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (const uint16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_u16m8(op0, op1, op2) \
-__builtin_rvv_vlse16_v_u16m8((const uint16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_u16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (const uint16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_u16mf2(op0, op1, op2) \
-__builtin_rvv_vlse16_v_u16mf2((const uint16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (const uint16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_u16mf4(op0, op1, op2) \
-__builtin_rvv_vlse16_v_u16mf4((const uint16_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (const uint16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_i32m1(op0, op1, op2) \
-__builtin_rvv_vlse32_v_i32m1((const int32_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (const int32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_i32m2(op0, op1, op2) \
-__builtin_rvv_vlse32_v_i32m2((const int32_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (const int32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_i32m4(op0, op1, op2) \
-__builtin_rvv_vlse32_v_i32m4((const int32_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (const int32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_i32m8(op0, op1, op2) \
-__builtin_rvv_vlse32_v_i32m8((const int32_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (const int32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_i32mf2(op0, op1, op2) \
-__builtin_rvv_vlse32_v_i32mf2((const int32_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (const int32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_u32m1(op0, op1, op2) \
-__builtin_rvv_vlse32_v_u32m1((const uint32_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (const uint32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_u32m2(op0, op1, op2) \
-__builtin_rvv_vlse32_v_u32m2((const uint32_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (const uint32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_u32m4(op0, op1, op2) \
-__builtin_rvv_vlse32_v_u32m4((const uint32_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (const uint32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_u32m8(op0, op1, op2) \
-__builtin_rvv_vlse32_v_u32m8((const uint32_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (const uint32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_u32mf2(op0, op1, op2) \
-__builtin_rvv_vlse32_v_u32mf2((const uint32_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (const uint32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse64_v_i64m1(op0, op1, op2) \
-__builtin_rvv_vlse64_v_i64m1((const int64_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (const int64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse64_v_i64m2(op0, op1, op2) \
-__builtin_rvv_vlse64_v_i64m2((const int64_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (const int64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse64_v_i64m4(op0, op1, op2) \
-__builtin_rvv_vlse64_v_i64m4((const int64_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (const int64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse64_v_i64m8(op0, op1, op2) \
-__builtin_rvv_vlse64_v_i64m8((const int64_t *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (const int64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vfirst_m_b8(op0, op1) \
-__builtin_rvv_vfirst_m_b8((vbool8_t)(op0), (size_t)(op1))
-#define vfirst_m_b8_m(op0, op1, op2) \
-__builtin_rvv_vfirst_m_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (size_t)(op2))
-#define vfirst_m_b4(op0, op1) \
-__builtin_rvv_vfirst_m_b4((vbool4_t)(op0), (size_t)(op1))
-#define vfirst_m_b4_m(op0, op1, op2) \
-__builtin_rvv_vfirst_m_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (size_t)(op2))
-#define vfirst_m_b2(op0, op1) \
-__builtin_rvv_vfirst_m_b2((vbool2_t)(op0), (size_t)(op1))
-#define vfirst_m_b2_m(op0, op1, op2) \
-__builtin_rvv_vfirst_m_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (size_t)(op2))
-#define vfirst_m_b1(op0, op1) \
-__builtin_rvv_vfirst_m_b1((vbool1_t)(op0), (size_t)(op1))
-#define vfirst_m_b1_m(op0, op1, op2) \
-__builtin_rvv_vfirst_m_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (size_t)(op2))
-#define vfirst_m_b16(op0, op1) \
-__builtin_rvv_vfirst_m_b16((vbool16_t)(op0), (size_t)(op1))
-#define vfirst_m_b16_m(op0, op1, op2) \
-__builtin_rvv_vfirst_m_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (size_t)(op2))
-#define vfirst_m_b32(op0, op1) \
-__builtin_rvv_vfirst_m_b32((vbool32_t)(op0), (size_t)(op1))
-#define vfirst_m_b32_m(op0, op1, op2) \
-__builtin_rvv_vfirst_m_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (size_t)(op2))
-#define vfirst_m_b64(op0, op1) \
-__builtin_rvv_vfirst_m_b64((vbool64_t)(op0), (size_t)(op1))
-#define vfirst_m_b64_m(op0, op1, op2) \
-__builtin_rvv_vfirst_m_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (size_t)(op2))
-#define vle1_v_b8(op0, op1) \
-__builtin_rvv_vle1_v_b8((const uint8_t *)(op0), (size_t)(op1))
-#define vle1_v_b4(op0, op1) \
-__builtin_rvv_vle1_v_b4((const uint8_t *)(op0), (size_t)(op1))
-#define vle1_v_b2(op0, op1) \
-__builtin_rvv_vle1_v_b2((const uint8_t *)(op0), (size_t)(op1))
-#define vle1_v_b1(op0, op1) \
-__builtin_rvv_vle1_v_b1((const uint8_t *)(op0), (size_t)(op1))
-#define vle1_v_b16(op0, op1) \
-__builtin_rvv_vle1_v_b16((const uint8_t *)(op0), (size_t)(op1))
-#define vle1_v_b32(op0, op1) \
-__builtin_rvv_vle1_v_b32((const uint8_t *)(op0), (size_t)(op1))
-#define vle1_v_b64(op0, op1) \
-__builtin_rvv_vle1_v_b64((const uint8_t *)(op0), (size_t)(op1))
-#define vlmul_ext_v_i8mf2_i8m1(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf2_i8m1((vint8mf2_t)(op0))
-#define vlmul_ext_v_i8mf4_i8m1(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf4_i8m1((vint8mf4_t)(op0))
-#define vlmul_ext_v_i8mf8_i8m1(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf8_i8m1((vint8mf8_t)(op0))
-#define vlmul_ext_v_i16mf2_i16m1(op0) \
-__builtin_rvv_vlmul_ext_v_i16mf2_i16m1((vint16mf2_t)(op0))
-#define vlmul_ext_v_i16mf4_i16m1(op0) \
-__builtin_rvv_vlmul_ext_v_i16mf4_i16m1((vint16mf4_t)(op0))
-#define vlmul_ext_v_i32mf2_i32m1(op0) \
-__builtin_rvv_vlmul_ext_v_i32mf2_i32m1((vint32mf2_t)(op0))
-#define vlmul_ext_v_i8mf4_i8mf2(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf4_i8mf2((vint8mf4_t)(op0))
-#define vlmul_ext_v_i8mf8_i8mf2(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf8_i8mf2((vint8mf8_t)(op0))
-#define vlmul_ext_v_i16mf4_i16mf2(op0) \
-__builtin_rvv_vlmul_ext_v_i16mf4_i16mf2((vint16mf4_t)(op0))
-#define vlmul_ext_v_i8mf8_i8mf4(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf8_i8mf4((vint8mf8_t)(op0))
-#define vlmul_ext_v_i8m1_i8m2(op0) \
-__builtin_rvv_vlmul_ext_v_i8m1_i8m2((vint8m1_t)(op0))
-#define vlmul_ext_v_i8mf2_i8m2(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf2_i8m2((vint8mf2_t)(op0))
-#define vlmul_ext_v_i8mf4_i8m2(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf4_i8m2((vint8mf4_t)(op0))
-#define vlmul_ext_v_i8mf8_i8m2(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf8_i8m2((vint8mf8_t)(op0))
-#define vlmul_ext_v_i16m1_i16m2(op0) \
-__builtin_rvv_vlmul_ext_v_i16m1_i16m2((vint16m1_t)(op0))
-#define vlmul_ext_v_i16mf2_i16m2(op0) \
-__builtin_rvv_vlmul_ext_v_i16mf2_i16m2((vint16mf2_t)(op0))
-#define vlmul_ext_v_i16mf4_i16m2(op0) \
-__builtin_rvv_vlmul_ext_v_i16mf4_i16m2((vint16mf4_t)(op0))
-#define vlmul_ext_v_i32m1_i32m2(op0) \
-__builtin_rvv_vlmul_ext_v_i32m1_i32m2((vint32m1_t)(op0))
-#define vlmul_ext_v_i32mf2_i32m2(op0) \
-__builtin_rvv_vlmul_ext_v_i32mf2_i32m2((vint32mf2_t)(op0))
-#define vlmul_ext_v_i64m1_i64m2(op0) \
-__builtin_rvv_vlmul_ext_v_i64m1_i64m2((vint64m1_t)(op0))
-#define vlmul_ext_v_i8m1_i8m4(op0) \
-__builtin_rvv_vlmul_ext_v_i8m1_i8m4((vint8m1_t)(op0))
-#define vlmul_ext_v_i8m2_i8m4(op0) \
-__builtin_rvv_vlmul_ext_v_i8m2_i8m4((vint8m2_t)(op0))
-#define vlmul_ext_v_i8mf2_i8m4(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf2_i8m4((vint8mf2_t)(op0))
-#define vlmul_ext_v_i8mf4_i8m4(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf4_i8m4((vint8mf4_t)(op0))
-#define vlmul_ext_v_i8mf8_i8m4(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf8_i8m4((vint8mf8_t)(op0))
-#define vlmul_ext_v_i16m1_i16m4(op0) \
-__builtin_rvv_vlmul_ext_v_i16m1_i16m4((vint16m1_t)(op0))
-#define vlmul_ext_v_i16m2_i16m4(op0) \
-__builtin_rvv_vlmul_ext_v_i16m2_i16m4((vint16m2_t)(op0))
-#define vlmul_ext_v_i16mf2_i16m4(op0) \
-__builtin_rvv_vlmul_ext_v_i16mf2_i16m4((vint16mf2_t)(op0))
-#define vlmul_ext_v_i16mf4_i16m4(op0) \
-__builtin_rvv_vlmul_ext_v_i16mf4_i16m4((vint16mf4_t)(op0))
-#define vlmul_ext_v_i32m1_i32m4(op0) \
-__builtin_rvv_vlmul_ext_v_i32m1_i32m4((vint32m1_t)(op0))
-#define vlmul_ext_v_i32m2_i32m4(op0) \
-__builtin_rvv_vlmul_ext_v_i32m2_i32m4((vint32m2_t)(op0))
-#define vlmul_ext_v_i32mf2_i32m4(op0) \
-__builtin_rvv_vlmul_ext_v_i32mf2_i32m4((vint32mf2_t)(op0))
-#define vlmul_ext_v_i64m1_i64m4(op0) \
-__builtin_rvv_vlmul_ext_v_i64m1_i64m4((vint64m1_t)(op0))
-#define vlmul_ext_v_i64m2_i64m4(op0) \
-__builtin_rvv_vlmul_ext_v_i64m2_i64m4((vint64m2_t)(op0))
-#define vlmul_ext_v_i8m1_i8m8(op0) \
-__builtin_rvv_vlmul_ext_v_i8m1_i8m8((vint8m1_t)(op0))
-#define vlmul_ext_v_i8m2_i8m8(op0) \
-__builtin_rvv_vlmul_ext_v_i8m2_i8m8((vint8m2_t)(op0))
-#define vlmul_ext_v_i8m4_i8m8(op0) \
-__builtin_rvv_vlmul_ext_v_i8m4_i8m8((vint8m4_t)(op0))
-#define vlmul_ext_v_i8mf2_i8m8(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf2_i8m8((vint8mf2_t)(op0))
-#define vlmul_ext_v_i8mf4_i8m8(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf4_i8m8((vint8mf4_t)(op0))
-#define vlmul_ext_v_i8mf8_i8m8(op0) \
-__builtin_rvv_vlmul_ext_v_i8mf8_i8m8((vint8mf8_t)(op0))
-#define vlmul_ext_v_i16m1_i16m8(op0) \
-__builtin_rvv_vlmul_ext_v_i16m1_i16m8((vint16m1_t)(op0))
-#define vlmul_ext_v_i16m2_i16m8(op0) \
-__builtin_rvv_vlmul_ext_v_i16m2_i16m8((vint16m2_t)(op0))
-#define vlmul_ext_v_i16m4_i16m8(op0) \
-__builtin_rvv_vlmul_ext_v_i16m4_i16m8((vint16m4_t)(op0))
-#define vlmul_ext_v_i16mf2_i16m8(op0) \
-__builtin_rvv_vlmul_ext_v_i16mf2_i16m8((vint16mf2_t)(op0))
-#define vlmul_ext_v_i16mf4_i16m8(op0) \
-__builtin_rvv_vlmul_ext_v_i16mf4_i16m8((vint16mf4_t)(op0))
-#define vlmul_ext_v_i32m1_i32m8(op0) \
-__builtin_rvv_vlmul_ext_v_i32m1_i32m8((vint32m1_t)(op0))
-#define vlmul_ext_v_i32m2_i32m8(op0) \
-__builtin_rvv_vlmul_ext_v_i32m2_i32m8((vint32m2_t)(op0))
-#define vlmul_ext_v_i32m4_i32m8(op0) \
-__builtin_rvv_vlmul_ext_v_i32m4_i32m8((vint32m4_t)(op0))
-#define vlmul_ext_v_i32mf2_i32m8(op0) \
-__builtin_rvv_vlmul_ext_v_i32mf2_i32m8((vint32mf2_t)(op0))
-#define vlmul_ext_v_i64m1_i64m8(op0) \
-__builtin_rvv_vlmul_ext_v_i64m1_i64m8((vint64m1_t)(op0))
-#define vlmul_ext_v_i64m2_i64m8(op0) \
-__builtin_rvv_vlmul_ext_v_i64m2_i64m8((vint64m2_t)(op0))
-#define vlmul_ext_v_i64m4_i64m8(op0) \
-__builtin_rvv_vlmul_ext_v_i64m4_i64m8((vint64m4_t)(op0))
-#define vlmul_ext_v_u8mf2_u8m1(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf2_u8m1((vuint8mf2_t)(op0))
-#define vlmul_ext_v_u8mf4_u8m1(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf4_u8m1((vuint8mf4_t)(op0))
-#define vlmul_ext_v_u8mf8_u8m1(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf8_u8m1((vuint8mf8_t)(op0))
-#define vlmul_ext_v_u16mf2_u16m1(op0) \
-__builtin_rvv_vlmul_ext_v_u16mf2_u16m1((vuint16mf2_t)(op0))
-#define vlmul_ext_v_u16mf4_u16m1(op0) \
-__builtin_rvv_vlmul_ext_v_u16mf4_u16m1((vuint16mf4_t)(op0))
-#define vlmul_ext_v_u32mf2_u32m1(op0) \
-__builtin_rvv_vlmul_ext_v_u32mf2_u32m1((vuint32mf2_t)(op0))
-#define vlmul_ext_v_u8mf4_u8mf2(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf4_u8mf2((vuint8mf4_t)(op0))
-#define vlmul_ext_v_u8mf8_u8mf2(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf8_u8mf2((vuint8mf8_t)(op0))
-#define vlmul_ext_v_u16mf4_u16mf2(op0) \
-__builtin_rvv_vlmul_ext_v_u16mf4_u16mf2((vuint16mf4_t)(op0))
-#define vlmul_ext_v_u8mf8_u8mf4(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf8_u8mf4((vuint8mf8_t)(op0))
-#define vlmul_ext_v_u8m1_u8m2(op0) \
-__builtin_rvv_vlmul_ext_v_u8m1_u8m2((vuint8m1_t)(op0))
-#define vlmul_ext_v_u8mf2_u8m2(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf2_u8m2((vuint8mf2_t)(op0))
-#define vlmul_ext_v_u8mf4_u8m2(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf4_u8m2((vuint8mf4_t)(op0))
-#define vlmul_ext_v_u8mf8_u8m2(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf8_u8m2((vuint8mf8_t)(op0))
-#define vlmul_ext_v_u16m1_u16m2(op0) \
-__builtin_rvv_vlmul_ext_v_u16m1_u16m2((vuint16m1_t)(op0))
-#define vlmul_ext_v_u16mf2_u16m2(op0) \
-__builtin_rvv_vlmul_ext_v_u16mf2_u16m2((vuint16mf2_t)(op0))
-#define vlmul_ext_v_u16mf4_u16m2(op0) \
-__builtin_rvv_vlmul_ext_v_u16mf4_u16m2((vuint16mf4_t)(op0))
-#define vlmul_ext_v_u32m1_u32m2(op0) \
-__builtin_rvv_vlmul_ext_v_u32m1_u32m2((vuint32m1_t)(op0))
-#define vlmul_ext_v_u32mf2_u32m2(op0) \
-__builtin_rvv_vlmul_ext_v_u32mf2_u32m2((vuint32mf2_t)(op0))
-#define vlmul_ext_v_u64m1_u64m2(op0) \
-__builtin_rvv_vlmul_ext_v_u64m1_u64m2((vuint64m1_t)(op0))
-#define vlmul_ext_v_u8m1_u8m4(op0) \
-__builtin_rvv_vlmul_ext_v_u8m1_u8m4((vuint8m1_t)(op0))
-#define vlmul_ext_v_u8m2_u8m4(op0) \
-__builtin_rvv_vlmul_ext_v_u8m2_u8m4((vuint8m2_t)(op0))
-#define vlmul_ext_v_u8mf2_u8m4(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf2_u8m4((vuint8mf2_t)(op0))
-#define vlmul_ext_v_u8mf4_u8m4(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf4_u8m4((vuint8mf4_t)(op0))
-#define vlmul_ext_v_u8mf8_u8m4(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf8_u8m4((vuint8mf8_t)(op0))
-#define vlmul_ext_v_u16m1_u16m4(op0) \
-__builtin_rvv_vlmul_ext_v_u16m1_u16m4((vuint16m1_t)(op0))
-#define vlmul_ext_v_u16m2_u16m4(op0) \
-__builtin_rvv_vlmul_ext_v_u16m2_u16m4((vuint16m2_t)(op0))
-#define vlmul_ext_v_u16mf2_u16m4(op0) \
-__builtin_rvv_vlmul_ext_v_u16mf2_u16m4((vuint16mf2_t)(op0))
-#define vlmul_ext_v_u16mf4_u16m4(op0) \
-__builtin_rvv_vlmul_ext_v_u16mf4_u16m4((vuint16mf4_t)(op0))
-#define vlmul_ext_v_u32m1_u32m4(op0) \
-__builtin_rvv_vlmul_ext_v_u32m1_u32m4((vuint32m1_t)(op0))
-#define vlmul_ext_v_u32m2_u32m4(op0) \
-__builtin_rvv_vlmul_ext_v_u32m2_u32m4((vuint32m2_t)(op0))
-#define vlmul_ext_v_u32mf2_u32m4(op0) \
-__builtin_rvv_vlmul_ext_v_u32mf2_u32m4((vuint32mf2_t)(op0))
-#define vlmul_ext_v_u64m1_u64m4(op0) \
-__builtin_rvv_vlmul_ext_v_u64m1_u64m4((vuint64m1_t)(op0))
-#define vlmul_ext_v_u64m2_u64m4(op0) \
-__builtin_rvv_vlmul_ext_v_u64m2_u64m4((vuint64m2_t)(op0))
-#define vlmul_ext_v_u8m1_u8m8(op0) \
-__builtin_rvv_vlmul_ext_v_u8m1_u8m8((vuint8m1_t)(op0))
-#define vlmul_ext_v_u8m2_u8m8(op0) \
-__builtin_rvv_vlmul_ext_v_u8m2_u8m8((vuint8m2_t)(op0))
-#define vlmul_ext_v_u8m4_u8m8(op0) \
-__builtin_rvv_vlmul_ext_v_u8m4_u8m8((vuint8m4_t)(op0))
-#define vlmul_ext_v_u8mf2_u8m8(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf2_u8m8((vuint8mf2_t)(op0))
-#define vlmul_ext_v_u8mf4_u8m8(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf4_u8m8((vuint8mf4_t)(op0))
-#define vlmul_ext_v_u8mf8_u8m8(op0) \
-__builtin_rvv_vlmul_ext_v_u8mf8_u8m8((vuint8mf8_t)(op0))
-#define vlmul_ext_v_u16m1_u16m8(op0) \
-__builtin_rvv_vlmul_ext_v_u16m1_u16m8((vuint16m1_t)(op0))
-#define vlmul_ext_v_u16m2_u16m8(op0) \
-__builtin_rvv_vlmul_ext_v_u16m2_u16m8((vuint16m2_t)(op0))
-#define vlmul_ext_v_u16m4_u16m8(op0) \
-__builtin_rvv_vlmul_ext_v_u16m4_u16m8((vuint16m4_t)(op0))
-#define vlmul_ext_v_u16mf2_u16m8(op0) \
-__builtin_rvv_vlmul_ext_v_u16mf2_u16m8((vuint16mf2_t)(op0))
-#define vlmul_ext_v_u16mf4_u16m8(op0) \
-__builtin_rvv_vlmul_ext_v_u16mf4_u16m8((vuint16mf4_t)(op0))
-#define vlmul_ext_v_u32m1_u32m8(op0) \
-__builtin_rvv_vlmul_ext_v_u32m1_u32m8((vuint32m1_t)(op0))
-#define vlmul_ext_v_u32m2_u32m8(op0) \
-__builtin_rvv_vlmul_ext_v_u32m2_u32m8((vuint32m2_t)(op0))
-#define vlmul_ext_v_u32m4_u32m8(op0) \
-__builtin_rvv_vlmul_ext_v_u32m4_u32m8((vuint32m4_t)(op0))
-#define vlmul_ext_v_u32mf2_u32m8(op0) \
-__builtin_rvv_vlmul_ext_v_u32mf2_u32m8((vuint32mf2_t)(op0))
-#define vlmul_ext_v_u64m1_u64m8(op0) \
-__builtin_rvv_vlmul_ext_v_u64m1_u64m8((vuint64m1_t)(op0))
-#define vlmul_ext_v_u64m2_u64m8(op0) \
-__builtin_rvv_vlmul_ext_v_u64m2_u64m8((vuint64m2_t)(op0))
-#define vlmul_ext_v_u64m4_u64m8(op0) \
-__builtin_rvv_vlmul_ext_v_u64m4_u64m8((vuint64m4_t)(op0))
-#define vlmul_trunc_v_i8m1_i8mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m1_i8mf2((vint8m1_t)(op0))
-#define vlmul_trunc_v_i8m2_i8mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m2_i8mf2((vint8m2_t)(op0))
-#define vlmul_trunc_v_i8m4_i8mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m4_i8mf2((vint8m4_t)(op0))
-#define vlmul_trunc_v_i8m8_i8mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m8_i8mf2((vint8m8_t)(op0))
-#define vlmul_trunc_v_i16m1_i16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m1_i16mf2((vint16m1_t)(op0))
-#define vlmul_trunc_v_i16m2_i16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m2_i16mf2((vint16m2_t)(op0))
-#define vlmul_trunc_v_i16m4_i16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m4_i16mf2((vint16m4_t)(op0))
-#define vlmul_trunc_v_i16m8_i16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m8_i16mf2((vint16m8_t)(op0))
-#define vlmul_trunc_v_i32m1_i32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i32m1_i32mf2((vint32m1_t)(op0))
-#define vlmul_trunc_v_i32m2_i32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i32m2_i32mf2((vint32m2_t)(op0))
-#define vlmul_trunc_v_i32m4_i32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i32m4_i32mf2((vint32m4_t)(op0))
-#define vlmul_trunc_v_i32m8_i32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_i32m8_i32mf2((vint32m8_t)(op0))
-#define vlmul_trunc_v_i8m1_i8mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m1_i8mf4((vint8m1_t)(op0))
-#define vlmul_trunc_v_i8m2_i8mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m2_i8mf4((vint8m2_t)(op0))
-#define vlmul_trunc_v_i8m4_i8mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m4_i8mf4((vint8m4_t)(op0))
-#define vlmul_trunc_v_i8m8_i8mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m8_i8mf4((vint8m8_t)(op0))
-#define vlmul_trunc_v_i8mf2_i8mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_i8mf2_i8mf4((vint8mf2_t)(op0))
-#define vlmul_trunc_v_i16m1_i16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m1_i16mf4((vint16m1_t)(op0))
-#define vlmul_trunc_v_i16m2_i16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m2_i16mf4((vint16m2_t)(op0))
-#define vlmul_trunc_v_i16m4_i16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m4_i16mf4((vint16m4_t)(op0))
-#define vlmul_trunc_v_i16m8_i16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m8_i16mf4((vint16m8_t)(op0))
-#define vlmul_trunc_v_i16mf2_i16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_i16mf2_i16mf4((vint16mf2_t)(op0))
-#define vlmul_trunc_v_i8m1_i8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m1_i8mf8((vint8m1_t)(op0))
-#define vlmul_trunc_v_i8m2_i8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m2_i8mf8((vint8m2_t)(op0))
-#define vlmul_trunc_v_i8m4_i8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m4_i8mf8((vint8m4_t)(op0))
-#define vlmul_trunc_v_i8m8_i8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m8_i8mf8((vint8m8_t)(op0))
-#define vlmul_trunc_v_i8mf2_i8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_i8mf2_i8mf8((vint8mf2_t)(op0))
-#define vlmul_trunc_v_i8mf4_i8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_i8mf4_i8mf8((vint8mf4_t)(op0))
-#define vlmul_trunc_v_i8m2_i8m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m2_i8m1((vint8m2_t)(op0))
-#define vlmul_trunc_v_i8m4_i8m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m4_i8m1((vint8m4_t)(op0))
-#define vlmul_trunc_v_i8m8_i8m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m8_i8m1((vint8m8_t)(op0))
-#define vlmul_trunc_v_i16m2_i16m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m2_i16m1((vint16m2_t)(op0))
-#define vlmul_trunc_v_i16m4_i16m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m4_i16m1((vint16m4_t)(op0))
-#define vlmul_trunc_v_i16m8_i16m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m8_i16m1((vint16m8_t)(op0))
-#define vlmul_trunc_v_i32m2_i32m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i32m2_i32m1((vint32m2_t)(op0))
-#define vlmul_trunc_v_i32m4_i32m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i32m4_i32m1((vint32m4_t)(op0))
-#define vlmul_trunc_v_i32m8_i32m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i32m8_i32m1((vint32m8_t)(op0))
-#define vlmul_trunc_v_i64m2_i64m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i64m2_i64m1((vint64m2_t)(op0))
-#define vlmul_trunc_v_i64m4_i64m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i64m4_i64m1((vint64m4_t)(op0))
-#define vlmul_trunc_v_i64m8_i64m1(op0) \
-__builtin_rvv_vlmul_trunc_v_i64m8_i64m1((vint64m8_t)(op0))
-#define vlmul_trunc_v_i8m4_i8m2(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m4_i8m2((vint8m4_t)(op0))
-#define vlmul_trunc_v_i8m8_i8m2(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m8_i8m2((vint8m8_t)(op0))
-#define vlmul_trunc_v_i16m4_i16m2(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m4_i16m2((vint16m4_t)(op0))
-#define vlmul_trunc_v_i16m8_i16m2(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m8_i16m2((vint16m8_t)(op0))
-#define vlmul_trunc_v_i32m4_i32m2(op0) \
-__builtin_rvv_vlmul_trunc_v_i32m4_i32m2((vint32m4_t)(op0))
-#define vlmul_trunc_v_i32m8_i32m2(op0) \
-__builtin_rvv_vlmul_trunc_v_i32m8_i32m2((vint32m8_t)(op0))
-#define vlmul_trunc_v_i64m4_i64m2(op0) \
-__builtin_rvv_vlmul_trunc_v_i64m4_i64m2((vint64m4_t)(op0))
-#define vlmul_trunc_v_i64m8_i64m2(op0) \
-__builtin_rvv_vlmul_trunc_v_i64m8_i64m2((vint64m8_t)(op0))
-#define vlmul_trunc_v_i8m8_i8m4(op0) \
-__builtin_rvv_vlmul_trunc_v_i8m8_i8m4((vint8m8_t)(op0))
-#define vlmul_trunc_v_i16m8_i16m4(op0) \
-__builtin_rvv_vlmul_trunc_v_i16m8_i16m4((vint16m8_t)(op0))
-#define vlmul_trunc_v_i32m8_i32m4(op0) \
-__builtin_rvv_vlmul_trunc_v_i32m8_i32m4((vint32m8_t)(op0))
-#define vlmul_trunc_v_i64m8_i64m4(op0) \
-__builtin_rvv_vlmul_trunc_v_i64m8_i64m4((vint64m8_t)(op0))
-#define vlmul_trunc_v_u8m1_u8mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m1_u8mf2((vuint8m1_t)(op0))
-#define vlmul_trunc_v_u8m2_u8mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m2_u8mf2((vuint8m2_t)(op0))
-#define vlmul_trunc_v_u8m4_u8mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m4_u8mf2((vuint8m4_t)(op0))
-#define vlmul_trunc_v_u8m8_u8mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m8_u8mf2((vuint8m8_t)(op0))
-#define vlmul_trunc_v_u16m1_u16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m1_u16mf2((vuint16m1_t)(op0))
-#define vlmul_trunc_v_u16m2_u16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m2_u16mf2((vuint16m2_t)(op0))
-#define vlmul_trunc_v_u16m4_u16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m4_u16mf2((vuint16m4_t)(op0))
-#define vlmul_trunc_v_u16m8_u16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m8_u16mf2((vuint16m8_t)(op0))
-#define vlmul_trunc_v_u32m1_u32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u32m1_u32mf2((vuint32m1_t)(op0))
-#define vlmul_trunc_v_u32m2_u32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u32m2_u32mf2((vuint32m2_t)(op0))
-#define vlmul_trunc_v_u32m4_u32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u32m4_u32mf2((vuint32m4_t)(op0))
-#define vlmul_trunc_v_u32m8_u32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_u32m8_u32mf2((vuint32m8_t)(op0))
-#define vlmul_trunc_v_u8m1_u8mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m1_u8mf4((vuint8m1_t)(op0))
-#define vlmul_trunc_v_u8m2_u8mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m2_u8mf4((vuint8m2_t)(op0))
-#define vlmul_trunc_v_u8m4_u8mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m4_u8mf4((vuint8m4_t)(op0))
-#define vlmul_trunc_v_u8m8_u8mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m8_u8mf4((vuint8m8_t)(op0))
-#define vlmul_trunc_v_u8mf2_u8mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_u8mf2_u8mf4((vuint8mf2_t)(op0))
-#define vlmul_trunc_v_u16m1_u16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m1_u16mf4((vuint16m1_t)(op0))
-#define vlmul_trunc_v_u16m2_u16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m2_u16mf4((vuint16m2_t)(op0))
-#define vlmul_trunc_v_u16m4_u16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m4_u16mf4((vuint16m4_t)(op0))
-#define vlmul_trunc_v_u16m8_u16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m8_u16mf4((vuint16m8_t)(op0))
-#define vlmul_trunc_v_u16mf2_u16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_u16mf2_u16mf4((vuint16mf2_t)(op0))
-#define vlmul_trunc_v_u8m1_u8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m1_u8mf8((vuint8m1_t)(op0))
-#define vlmul_trunc_v_u8m2_u8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m2_u8mf8((vuint8m2_t)(op0))
-#define vlmul_trunc_v_u8m4_u8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m4_u8mf8((vuint8m4_t)(op0))
-#define vlmul_trunc_v_u8m8_u8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m8_u8mf8((vuint8m8_t)(op0))
-#define vlmul_trunc_v_u8mf2_u8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_u8mf2_u8mf8((vuint8mf2_t)(op0))
-#define vlmul_trunc_v_u8mf4_u8mf8(op0) \
-__builtin_rvv_vlmul_trunc_v_u8mf4_u8mf8((vuint8mf4_t)(op0))
-#define vlmul_trunc_v_u8m2_u8m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m2_u8m1((vuint8m2_t)(op0))
-#define vlmul_trunc_v_u8m4_u8m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m4_u8m1((vuint8m4_t)(op0))
-#define vlmul_trunc_v_u8m8_u8m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m8_u8m1((vuint8m8_t)(op0))
-#define vlmul_trunc_v_u16m2_u16m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m2_u16m1((vuint16m2_t)(op0))
-#define vlmul_trunc_v_u16m4_u16m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m4_u16m1((vuint16m4_t)(op0))
-#define vlmul_trunc_v_u16m8_u16m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m8_u16m1((vuint16m8_t)(op0))
-#define vlmul_trunc_v_u32m2_u32m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u32m2_u32m1((vuint32m2_t)(op0))
-#define vlmul_trunc_v_u32m4_u32m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u32m4_u32m1((vuint32m4_t)(op0))
-#define vlmul_trunc_v_u32m8_u32m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u32m8_u32m1((vuint32m8_t)(op0))
-#define vlmul_trunc_v_u64m2_u64m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u64m2_u64m1((vuint64m2_t)(op0))
-#define vlmul_trunc_v_u64m4_u64m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u64m4_u64m1((vuint64m4_t)(op0))
-#define vlmul_trunc_v_u64m8_u64m1(op0) \
-__builtin_rvv_vlmul_trunc_v_u64m8_u64m1((vuint64m8_t)(op0))
-#define vlmul_trunc_v_u8m4_u8m2(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m4_u8m2((vuint8m4_t)(op0))
-#define vlmul_trunc_v_u8m8_u8m2(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m8_u8m2((vuint8m8_t)(op0))
-#define vlmul_trunc_v_u16m4_u16m2(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m4_u16m2((vuint16m4_t)(op0))
-#define vlmul_trunc_v_u16m8_u16m2(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m8_u16m2((vuint16m8_t)(op0))
-#define vlmul_trunc_v_u32m4_u32m2(op0) \
-__builtin_rvv_vlmul_trunc_v_u32m4_u32m2((vuint32m4_t)(op0))
-#define vlmul_trunc_v_u32m8_u32m2(op0) \
-__builtin_rvv_vlmul_trunc_v_u32m8_u32m2((vuint32m8_t)(op0))
-#define vlmul_trunc_v_u64m4_u64m2(op0) \
-__builtin_rvv_vlmul_trunc_v_u64m4_u64m2((vuint64m4_t)(op0))
-#define vlmul_trunc_v_u64m8_u64m2(op0) \
-__builtin_rvv_vlmul_trunc_v_u64m8_u64m2((vuint64m8_t)(op0))
-#define vlmul_trunc_v_u8m8_u8m4(op0) \
-__builtin_rvv_vlmul_trunc_v_u8m8_u8m4((vuint8m8_t)(op0))
-#define vlmul_trunc_v_u16m8_u16m4(op0) \
-__builtin_rvv_vlmul_trunc_v_u16m8_u16m4((vuint16m8_t)(op0))
-#define vlmul_trunc_v_u32m8_u32m4(op0) \
-__builtin_rvv_vlmul_trunc_v_u32m8_u32m4((vuint32m8_t)(op0))
-#define vlmul_trunc_v_u64m8_u64m4(op0) \
-__builtin_rvv_vlmul_trunc_v_u64m8_u64m4((vuint64m8_t)(op0))
-#define vmand_mm_b8(op0, op1, op2) \
-__builtin_rvv_vmand_mm_b8((vbool8_t)(op0), (vbool8_t)(op1), (size_t)(op2))
-#define vmand_mm_b4(op0, op1, op2) \
-__builtin_rvv_vmand_mm_b4((vbool4_t)(op0), (vbool4_t)(op1), (size_t)(op2))
-#define vmand_mm_b2(op0, op1, op2) \
-__builtin_rvv_vmand_mm_b2((vbool2_t)(op0), (vbool2_t)(op1), (size_t)(op2))
-#define vmand_mm_b1(op0, op1, op2) \
-__builtin_rvv_vmand_mm_b1((vbool1_t)(op0), (vbool1_t)(op1), (size_t)(op2))
-#define vmand_mm_b16(op0, op1, op2) \
-__builtin_rvv_vmand_mm_b16((vbool16_t)(op0), (vbool16_t)(op1), (size_t)(op2))
-#define vmand_mm_b32(op0, op1, op2) \
-__builtin_rvv_vmand_mm_b32((vbool32_t)(op0), (vbool32_t)(op1), (size_t)(op2))
-#define vmand_mm_b64(op0, op1, op2) \
-__builtin_rvv_vmand_mm_b64((vbool64_t)(op0), (vbool64_t)(op1), (size_t)(op2))
-#define vmandnot_mm_b8(op0, op1, op2) \
-__builtin_rvv_vmandnot_mm_b8((vbool8_t)(op0), (vbool8_t)(op1), (size_t)(op2))
-#define vmandnot_mm_b4(op0, op1, op2) \
-__builtin_rvv_vmandnot_mm_b4((vbool4_t)(op0), (vbool4_t)(op1), (size_t)(op2))
-#define vmandnot_mm_b2(op0, op1, op2) \
-__builtin_rvv_vmandnot_mm_b2((vbool2_t)(op0), (vbool2_t)(op1), (size_t)(op2))
-#define vmandnot_mm_b1(op0, op1, op2) \
-__builtin_rvv_vmandnot_mm_b1((vbool1_t)(op0), (vbool1_t)(op1), (size_t)(op2))
-#define vmandnot_mm_b16(op0, op1, op2) \
-__builtin_rvv_vmandnot_mm_b16((vbool16_t)(op0), (vbool16_t)(op1), (size_t)(op2))
-#define vmandnot_mm_b32(op0, op1, op2) \
-__builtin_rvv_vmandnot_mm_b32((vbool32_t)(op0), (vbool32_t)(op1), (size_t)(op2))
-#define vmandnot_mm_b64(op0, op1, op2) \
-__builtin_rvv_vmandnot_mm_b64((vbool64_t)(op0), (vbool64_t)(op1), (size_t)(op2))
-#define vmclr_m_b8(op0) \
-__builtin_rvv_vmclr_m_b8((size_t)(op0))
-#define vmclr_m_b4(op0) \
-__builtin_rvv_vmclr_m_b4((size_t)(op0))
-#define vmclr_m_b2(op0) \
-__builtin_rvv_vmclr_m_b2((size_t)(op0))
-#define vmclr_m_b1(op0) \
-__builtin_rvv_vmclr_m_b1((size_t)(op0))
-#define vmclr_m_b16(op0) \
-__builtin_rvv_vmclr_m_b16((size_t)(op0))
-#define vmclr_m_b32(op0) \
-__builtin_rvv_vmclr_m_b32((size_t)(op0))
-#define vmclr_m_b64(op0) \
-__builtin_rvv_vmclr_m_b64((size_t)(op0))
-#define vmnand_mm_b8(op0, op1, op2) \
-__builtin_rvv_vmnand_mm_b8((vbool8_t)(op0), (vbool8_t)(op1), (size_t)(op2))
-#define vmnand_mm_b4(op0, op1, op2) \
-__builtin_rvv_vmnand_mm_b4((vbool4_t)(op0), (vbool4_t)(op1), (size_t)(op2))
-#define vmnand_mm_b2(op0, op1, op2) \
-__builtin_rvv_vmnand_mm_b2((vbool2_t)(op0), (vbool2_t)(op1), (size_t)(op2))
-#define vmnand_mm_b1(op0, op1, op2) \
-__builtin_rvv_vmnand_mm_b1((vbool1_t)(op0), (vbool1_t)(op1), (size_t)(op2))
-#define vmnand_mm_b16(op0, op1, op2) \
-__builtin_rvv_vmnand_mm_b16((vbool16_t)(op0), (vbool16_t)(op1), (size_t)(op2))
-#define vmnand_mm_b32(op0, op1, op2) \
-__builtin_rvv_vmnand_mm_b32((vbool32_t)(op0), (vbool32_t)(op1), (size_t)(op2))
-#define vmnand_mm_b64(op0, op1, op2) \
-__builtin_rvv_vmnand_mm_b64((vbool64_t)(op0), (vbool64_t)(op1), (size_t)(op2))
-#define vmnor_mm_b8(op0, op1, op2) \
-__builtin_rvv_vmnor_mm_b8((vbool8_t)(op0), (vbool8_t)(op1), (size_t)(op2))
-#define vmnor_mm_b4(op0, op1, op2) \
-__builtin_rvv_vmnor_mm_b4((vbool4_t)(op0), (vbool4_t)(op1), (size_t)(op2))
-#define vmnor_mm_b2(op0, op1, op2) \
-__builtin_rvv_vmnor_mm_b2((vbool2_t)(op0), (vbool2_t)(op1), (size_t)(op2))
-#define vmnor_mm_b1(op0, op1, op2) \
-__builtin_rvv_vmnor_mm_b1((vbool1_t)(op0), (vbool1_t)(op1), (size_t)(op2))
-#define vmnor_mm_b16(op0, op1, op2) \
-__builtin_rvv_vmnor_mm_b16((vbool16_t)(op0), (vbool16_t)(op1), (size_t)(op2))
-#define vmnor_mm_b32(op0, op1, op2) \
-__builtin_rvv_vmnor_mm_b32((vbool32_t)(op0), (vbool32_t)(op1), (size_t)(op2))
-#define vmnor_mm_b64(op0, op1, op2) \
-__builtin_rvv_vmnor_mm_b64((vbool64_t)(op0), (vbool64_t)(op1), (size_t)(op2))
-#define vmor_mm_b8(op0, op1, op2) \
-__builtin_rvv_vmor_mm_b8((vbool8_t)(op0), (vbool8_t)(op1), (size_t)(op2))
-#define vmor_mm_b4(op0, op1, op2) \
-__builtin_rvv_vmor_mm_b4((vbool4_t)(op0), (vbool4_t)(op1), (size_t)(op2))
-#define vmor_mm_b2(op0, op1, op2) \
-__builtin_rvv_vmor_mm_b2((vbool2_t)(op0), (vbool2_t)(op1), (size_t)(op2))
-#define vmor_mm_b1(op0, op1, op2) \
-__builtin_rvv_vmor_mm_b1((vbool1_t)(op0), (vbool1_t)(op1), (size_t)(op2))
-#define vmor_mm_b16(op0, op1, op2) \
-__builtin_rvv_vmor_mm_b16((vbool16_t)(op0), (vbool16_t)(op1), (size_t)(op2))
-#define vmor_mm_b32(op0, op1, op2) \
-__builtin_rvv_vmor_mm_b32((vbool32_t)(op0), (vbool32_t)(op1), (size_t)(op2))
-#define vmor_mm_b64(op0, op1, op2) \
-__builtin_rvv_vmor_mm_b64((vbool64_t)(op0), (vbool64_t)(op1), (size_t)(op2))
-#define vmornot_mm_b8(op0, op1, op2) \
-__builtin_rvv_vmornot_mm_b8((vbool8_t)(op0), (vbool8_t)(op1), (size_t)(op2))
-#define vmornot_mm_b4(op0, op1, op2) \
-__builtin_rvv_vmornot_mm_b4((vbool4_t)(op0), (vbool4_t)(op1), (size_t)(op2))
-#define vmornot_mm_b2(op0, op1, op2) \
-__builtin_rvv_vmornot_mm_b2((vbool2_t)(op0), (vbool2_t)(op1), (size_t)(op2))
-#define vmornot_mm_b1(op0, op1, op2) \
-__builtin_rvv_vmornot_mm_b1((vbool1_t)(op0), (vbool1_t)(op1), (size_t)(op2))
-#define vmornot_mm_b16(op0, op1, op2) \
-__builtin_rvv_vmornot_mm_b16((vbool16_t)(op0), (vbool16_t)(op1), (size_t)(op2))
-#define vmornot_mm_b32(op0, op1, op2) \
-__builtin_rvv_vmornot_mm_b32((vbool32_t)(op0), (vbool32_t)(op1), (size_t)(op2))
-#define vmornot_mm_b64(op0, op1, op2) \
-__builtin_rvv_vmornot_mm_b64((vbool64_t)(op0), (vbool64_t)(op1), (size_t)(op2))
-#define vmsbf_m_b8(op0, op1) \
-__builtin_rvv_vmsbf_m_b8((vbool8_t)(op0), (size_t)(op1))
-#define vmsbf_m_b8_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsbf_m_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsbf_m_b4(op0, op1) \
-__builtin_rvv_vmsbf_m_b4((vbool4_t)(op0), (size_t)(op1))
-#define vmsbf_m_b4_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsbf_m_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsbf_m_b2(op0, op1) \
-__builtin_rvv_vmsbf_m_b2((vbool2_t)(op0), (size_t)(op1))
-#define vmsbf_m_b2_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsbf_m_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmsbf_m_b1(op0, op1) \
-__builtin_rvv_vmsbf_m_b1((vbool1_t)(op0), (size_t)(op1))
-#define vmsbf_m_b1_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsbf_m_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vmsbf_m_b16(op0, op1) \
-__builtin_rvv_vmsbf_m_b16((vbool16_t)(op0), (size_t)(op1))
-#define vmsbf_m_b16_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsbf_m_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsbf_m_b32(op0, op1) \
-__builtin_rvv_vmsbf_m_b32((vbool32_t)(op0), (size_t)(op1))
-#define vmsbf_m_b32_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsbf_m_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsbf_m_b64(op0, op1) \
-__builtin_rvv_vmsbf_m_b64((vbool64_t)(op0), (size_t)(op1))
-#define vmsbf_m_b64_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsbf_m_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmset_m_b8(op0) \
-__builtin_rvv_vmset_m_b8((size_t)(op0))
-#define vmset_m_b4(op0) \
-__builtin_rvv_vmset_m_b4((size_t)(op0))
-#define vmset_m_b2(op0) \
-__builtin_rvv_vmset_m_b2((size_t)(op0))
-#define vmset_m_b1(op0) \
-__builtin_rvv_vmset_m_b1((size_t)(op0))
-#define vmset_m_b16(op0) \
-__builtin_rvv_vmset_m_b16((size_t)(op0))
-#define vmset_m_b32(op0) \
-__builtin_rvv_vmset_m_b32((size_t)(op0))
-#define vmset_m_b64(op0) \
-__builtin_rvv_vmset_m_b64((size_t)(op0))
-#define vmsif_m_b8(op0, op1) \
-__builtin_rvv_vmsif_m_b8((vbool8_t)(op0), (size_t)(op1))
-#define vmsif_m_b8_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsif_m_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsif_m_b4(op0, op1) \
-__builtin_rvv_vmsif_m_b4((vbool4_t)(op0), (size_t)(op1))
-#define vmsif_m_b4_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsif_m_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsif_m_b2(op0, op1) \
-__builtin_rvv_vmsif_m_b2((vbool2_t)(op0), (size_t)(op1))
-#define vmsif_m_b2_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsif_m_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmsif_m_b1(op0, op1) \
-__builtin_rvv_vmsif_m_b1((vbool1_t)(op0), (size_t)(op1))
-#define vmsif_m_b1_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsif_m_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vmsif_m_b16(op0, op1) \
-__builtin_rvv_vmsif_m_b16((vbool16_t)(op0), (size_t)(op1))
-#define vmsif_m_b16_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsif_m_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsif_m_b32(op0, op1) \
-__builtin_rvv_vmsif_m_b32((vbool32_t)(op0), (size_t)(op1))
-#define vmsif_m_b32_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsif_m_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsif_m_b64(op0, op1) \
-__builtin_rvv_vmsif_m_b64((vbool64_t)(op0), (size_t)(op1))
-#define vmsif_m_b64_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsif_m_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmsof_m_b8(op0, op1) \
-__builtin_rvv_vmsof_m_b8((vbool8_t)(op0), (size_t)(op1))
-#define vmsof_m_b8_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsof_m_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vbool8_t)(op2), (size_t)(op3))
-#define vmsof_m_b4(op0, op1) \
-__builtin_rvv_vmsof_m_b4((vbool4_t)(op0), (size_t)(op1))
-#define vmsof_m_b4_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsof_m_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vbool4_t)(op2), (size_t)(op3))
-#define vmsof_m_b2(op0, op1) \
-__builtin_rvv_vmsof_m_b2((vbool2_t)(op0), (size_t)(op1))
-#define vmsof_m_b2_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsof_m_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vbool2_t)(op2), (size_t)(op3))
-#define vmsof_m_b1(op0, op1) \
-__builtin_rvv_vmsof_m_b1((vbool1_t)(op0), (size_t)(op1))
-#define vmsof_m_b1_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsof_m_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (vbool1_t)(op2), (size_t)(op3))
-#define vmsof_m_b16(op0, op1) \
-__builtin_rvv_vmsof_m_b16((vbool16_t)(op0), (size_t)(op1))
-#define vmsof_m_b16_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsof_m_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vbool16_t)(op2), (size_t)(op3))
-#define vmsof_m_b32(op0, op1) \
-__builtin_rvv_vmsof_m_b32((vbool32_t)(op0), (size_t)(op1))
-#define vmsof_m_b32_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsof_m_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vbool32_t)(op2), (size_t)(op3))
-#define vmsof_m_b64(op0, op1) \
-__builtin_rvv_vmsof_m_b64((vbool64_t)(op0), (size_t)(op1))
-#define vmsof_m_b64_m(op0, op1, op2, op3) \
-__builtin_rvv_vmsof_m_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vbool64_t)(op2), (size_t)(op3))
-#define vmxnor_mm_b8(op0, op1, op2) \
-__builtin_rvv_vmxnor_mm_b8((vbool8_t)(op0), (vbool8_t)(op1), (size_t)(op2))
-#define vmxnor_mm_b4(op0, op1, op2) \
-__builtin_rvv_vmxnor_mm_b4((vbool4_t)(op0), (vbool4_t)(op1), (size_t)(op2))
-#define vmxnor_mm_b2(op0, op1, op2) \
-__builtin_rvv_vmxnor_mm_b2((vbool2_t)(op0), (vbool2_t)(op1), (size_t)(op2))
-#define vmxnor_mm_b1(op0, op1, op2) \
-__builtin_rvv_vmxnor_mm_b1((vbool1_t)(op0), (vbool1_t)(op1), (size_t)(op2))
-#define vmxnor_mm_b16(op0, op1, op2) \
-__builtin_rvv_vmxnor_mm_b16((vbool16_t)(op0), (vbool16_t)(op1), (size_t)(op2))
-#define vmxnor_mm_b32(op0, op1, op2) \
-__builtin_rvv_vmxnor_mm_b32((vbool32_t)(op0), (vbool32_t)(op1), (size_t)(op2))
-#define vmxnor_mm_b64(op0, op1, op2) \
-__builtin_rvv_vmxnor_mm_b64((vbool64_t)(op0), (vbool64_t)(op1), (size_t)(op2))
-#define vmxor_mm_b8(op0, op1, op2) \
-__builtin_rvv_vmxor_mm_b8((vbool8_t)(op0), (vbool8_t)(op1), (size_t)(op2))
-#define vmxor_mm_b4(op0, op1, op2) \
-__builtin_rvv_vmxor_mm_b4((vbool4_t)(op0), (vbool4_t)(op1), (size_t)(op2))
-#define vmxor_mm_b2(op0, op1, op2) \
-__builtin_rvv_vmxor_mm_b2((vbool2_t)(op0), (vbool2_t)(op1), (size_t)(op2))
-#define vmxor_mm_b1(op0, op1, op2) \
-__builtin_rvv_vmxor_mm_b1((vbool1_t)(op0), (vbool1_t)(op1), (size_t)(op2))
-#define vmxor_mm_b16(op0, op1, op2) \
-__builtin_rvv_vmxor_mm_b16((vbool16_t)(op0), (vbool16_t)(op1), (size_t)(op2))
-#define vmxor_mm_b32(op0, op1, op2) \
-__builtin_rvv_vmxor_mm_b32((vbool32_t)(op0), (vbool32_t)(op1), (size_t)(op2))
-#define vmxor_mm_b64(op0, op1, op2) \
-__builtin_rvv_vmxor_mm_b64((vbool64_t)(op0), (vbool64_t)(op1), (size_t)(op2))
-#define vpopc_m_b8(op0, op1) \
-__builtin_rvv_vpopc_m_b8((vbool8_t)(op0), (size_t)(op1))
-#define vpopc_m_b8_m(op0, op1, op2) \
-__builtin_rvv_vpopc_m_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (size_t)(op2))
-#define vpopc_m_b4(op0, op1) \
-__builtin_rvv_vpopc_m_b4((vbool4_t)(op0), (size_t)(op1))
-#define vpopc_m_b4_m(op0, op1, op2) \
-__builtin_rvv_vpopc_m_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (size_t)(op2))
-#define vpopc_m_b2(op0, op1) \
-__builtin_rvv_vpopc_m_b2((vbool2_t)(op0), (size_t)(op1))
-#define vpopc_m_b2_m(op0, op1, op2) \
-__builtin_rvv_vpopc_m_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (size_t)(op2))
-#define vpopc_m_b1(op0, op1) \
-__builtin_rvv_vpopc_m_b1((vbool1_t)(op0), (size_t)(op1))
-#define vpopc_m_b1_m(op0, op1, op2) \
-__builtin_rvv_vpopc_m_b1_m((vbool1_t)(op0), (vbool1_t)(op1), (size_t)(op2))
-#define vpopc_m_b16(op0, op1) \
-__builtin_rvv_vpopc_m_b16((vbool16_t)(op0), (size_t)(op1))
-#define vpopc_m_b16_m(op0, op1, op2) \
-__builtin_rvv_vpopc_m_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (size_t)(op2))
-#define vpopc_m_b32(op0, op1) \
-__builtin_rvv_vpopc_m_b32((vbool32_t)(op0), (size_t)(op1))
-#define vpopc_m_b32_m(op0, op1, op2) \
-__builtin_rvv_vpopc_m_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (size_t)(op2))
-#define vpopc_m_b64(op0, op1) \
-__builtin_rvv_vpopc_m_b64((vbool64_t)(op0), (size_t)(op1))
-#define vpopc_m_b64_m(op0, op1, op2) \
-__builtin_rvv_vpopc_m_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (size_t)(op2))
-#define vreinterpret_v_i8m1_i16m1(op0) \
-__builtin_rvv_vreinterpret_v_i8m1_i16m1((vint8m1_t)(op0))
-#define vreinterpret_v_i8m2_i16m2(op0) \
-__builtin_rvv_vreinterpret_v_i8m2_i16m2((vint8m2_t)(op0))
-#define vreinterpret_v_i8m4_i16m4(op0) \
-__builtin_rvv_vreinterpret_v_i8m4_i16m4((vint8m4_t)(op0))
-#define vreinterpret_v_i8m8_i16m8(op0) \
-__builtin_rvv_vreinterpret_v_i8m8_i16m8((vint8m8_t)(op0))
-#define vreinterpret_v_i8mf2_i16mf2(op0) \
-__builtin_rvv_vreinterpret_v_i8mf2_i16mf2((vint8mf2_t)(op0))
-#define vreinterpret_v_i8mf4_i16mf4(op0) \
-__builtin_rvv_vreinterpret_v_i8mf4_i16mf4((vint8mf4_t)(op0))
-#define vreinterpret_v_i32m1_i16m1(op0) \
-__builtin_rvv_vreinterpret_v_i32m1_i16m1((vint32m1_t)(op0))
-#define vreinterpret_v_i32m2_i16m2(op0) \
-__builtin_rvv_vreinterpret_v_i32m2_i16m2((vint32m2_t)(op0))
-#define vreinterpret_v_i32m4_i16m4(op0) \
-__builtin_rvv_vreinterpret_v_i32m4_i16m4((vint32m4_t)(op0))
-#define vreinterpret_v_i32m8_i16m8(op0) \
-__builtin_rvv_vreinterpret_v_i32m8_i16m8((vint32m8_t)(op0))
-#define vreinterpret_v_i32mf2_i16mf2(op0) \
-__builtin_rvv_vreinterpret_v_i32mf2_i16mf2((vint32mf2_t)(op0))
-#define vreinterpret_v_i64m1_i16m1(op0) \
-__builtin_rvv_vreinterpret_v_i64m1_i16m1((vint64m1_t)(op0))
-#define vreinterpret_v_i64m2_i16m2(op0) \
-__builtin_rvv_vreinterpret_v_i64m2_i16m2((vint64m2_t)(op0))
-#define vreinterpret_v_i64m4_i16m4(op0) \
-__builtin_rvv_vreinterpret_v_i64m4_i16m4((vint64m4_t)(op0))
-#define vreinterpret_v_i64m8_i16m8(op0) \
-__builtin_rvv_vreinterpret_v_i64m8_i16m8((vint64m8_t)(op0))
-#define vreinterpret_v_i8m1_i32m1(op0) \
-__builtin_rvv_vreinterpret_v_i8m1_i32m1((vint8m1_t)(op0))
-#define vreinterpret_v_i8m2_i32m2(op0) \
-__builtin_rvv_vreinterpret_v_i8m2_i32m2((vint8m2_t)(op0))
-#define vreinterpret_v_i8m4_i32m4(op0) \
-__builtin_rvv_vreinterpret_v_i8m4_i32m4((vint8m4_t)(op0))
-#define vreinterpret_v_i8m8_i32m8(op0) \
-__builtin_rvv_vreinterpret_v_i8m8_i32m8((vint8m8_t)(op0))
-#define vreinterpret_v_i8mf2_i32mf2(op0) \
-__builtin_rvv_vreinterpret_v_i8mf2_i32mf2((vint8mf2_t)(op0))
-#define vreinterpret_v_i16m1_i32m1(op0) \
-__builtin_rvv_vreinterpret_v_i16m1_i32m1((vint16m1_t)(op0))
-#define vreinterpret_v_i16m2_i32m2(op0) \
-__builtin_rvv_vreinterpret_v_i16m2_i32m2((vint16m2_t)(op0))
-#define vreinterpret_v_i16m4_i32m4(op0) \
-__builtin_rvv_vreinterpret_v_i16m4_i32m4((vint16m4_t)(op0))
-#define vreinterpret_v_i16m8_i32m8(op0) \
-__builtin_rvv_vreinterpret_v_i16m8_i32m8((vint16m8_t)(op0))
-#define vreinterpret_v_i16mf2_i32mf2(op0) \
-__builtin_rvv_vreinterpret_v_i16mf2_i32mf2((vint16mf2_t)(op0))
-#define vreinterpret_v_i64m1_i32m1(op0) \
-__builtin_rvv_vreinterpret_v_i64m1_i32m1((vint64m1_t)(op0))
-#define vreinterpret_v_i64m2_i32m2(op0) \
-__builtin_rvv_vreinterpret_v_i64m2_i32m2((vint64m2_t)(op0))
-#define vreinterpret_v_i64m4_i32m4(op0) \
-__builtin_rvv_vreinterpret_v_i64m4_i32m4((vint64m4_t)(op0))
-#define vreinterpret_v_i64m8_i32m8(op0) \
-__builtin_rvv_vreinterpret_v_i64m8_i32m8((vint64m8_t)(op0))
-#define vreinterpret_v_i8m1_i64m1(op0) \
-__builtin_rvv_vreinterpret_v_i8m1_i64m1((vint8m1_t)(op0))
-#define vreinterpret_v_i8m2_i64m2(op0) \
-__builtin_rvv_vreinterpret_v_i8m2_i64m2((vint8m2_t)(op0))
-#define vreinterpret_v_i8m4_i64m4(op0) \
-__builtin_rvv_vreinterpret_v_i8m4_i64m4((vint8m4_t)(op0))
-#define vreinterpret_v_i8m8_i64m8(op0) \
-__builtin_rvv_vreinterpret_v_i8m8_i64m8((vint8m8_t)(op0))
-#define vreinterpret_v_i16m1_i64m1(op0) \
-__builtin_rvv_vreinterpret_v_i16m1_i64m1((vint16m1_t)(op0))
-#define vreinterpret_v_i16m2_i64m2(op0) \
-__builtin_rvv_vreinterpret_v_i16m2_i64m2((vint16m2_t)(op0))
-#define vreinterpret_v_i16m4_i64m4(op0) \
-__builtin_rvv_vreinterpret_v_i16m4_i64m4((vint16m4_t)(op0))
-#define vreinterpret_v_i16m8_i64m8(op0) \
-__builtin_rvv_vreinterpret_v_i16m8_i64m8((vint16m8_t)(op0))
-#define vreinterpret_v_i32m1_i64m1(op0) \
-__builtin_rvv_vreinterpret_v_i32m1_i64m1((vint32m1_t)(op0))
-#define vreinterpret_v_i32m2_i64m2(op0) \
-__builtin_rvv_vreinterpret_v_i32m2_i64m2((vint32m2_t)(op0))
-#define vreinterpret_v_i32m4_i64m4(op0) \
-__builtin_rvv_vreinterpret_v_i32m4_i64m4((vint32m4_t)(op0))
-#define vreinterpret_v_i32m8_i64m8(op0) \
-__builtin_rvv_vreinterpret_v_i32m8_i64m8((vint32m8_t)(op0))
-#define vreinterpret_v_i16m1_i8m1(op0) \
-__builtin_rvv_vreinterpret_v_i16m1_i8m1((vint16m1_t)(op0))
-#define vreinterpret_v_i16m2_i8m2(op0) \
-__builtin_rvv_vreinterpret_v_i16m2_i8m2((vint16m2_t)(op0))
-#define vreinterpret_v_i16m4_i8m4(op0) \
-__builtin_rvv_vreinterpret_v_i16m4_i8m4((vint16m4_t)(op0))
-#define vreinterpret_v_i16m8_i8m8(op0) \
-__builtin_rvv_vreinterpret_v_i16m8_i8m8((vint16m8_t)(op0))
-#define vreinterpret_v_i16mf2_i8mf2(op0) \
-__builtin_rvv_vreinterpret_v_i16mf2_i8mf2((vint16mf2_t)(op0))
-#define vreinterpret_v_i16mf4_i8mf4(op0) \
-__builtin_rvv_vreinterpret_v_i16mf4_i8mf4((vint16mf4_t)(op0))
-#define vreinterpret_v_i32m1_i8m1(op0) \
-__builtin_rvv_vreinterpret_v_i32m1_i8m1((vint32m1_t)(op0))
-#define vreinterpret_v_i32m2_i8m2(op0) \
-__builtin_rvv_vreinterpret_v_i32m2_i8m2((vint32m2_t)(op0))
-#define vreinterpret_v_i32m4_i8m4(op0) \
-__builtin_rvv_vreinterpret_v_i32m4_i8m4((vint32m4_t)(op0))
-#define vreinterpret_v_i32m8_i8m8(op0) \
-__builtin_rvv_vreinterpret_v_i32m8_i8m8((vint32m8_t)(op0))
-#define vreinterpret_v_i32mf2_i8mf2(op0) \
-__builtin_rvv_vreinterpret_v_i32mf2_i8mf2((vint32mf2_t)(op0))
-#define vreinterpret_v_i64m1_i8m1(op0) \
-__builtin_rvv_vreinterpret_v_i64m1_i8m1((vint64m1_t)(op0))
-#define vreinterpret_v_i64m2_i8m2(op0) \
-__builtin_rvv_vreinterpret_v_i64m2_i8m2((vint64m2_t)(op0))
-#define vreinterpret_v_i64m4_i8m4(op0) \
-__builtin_rvv_vreinterpret_v_i64m4_i8m4((vint64m4_t)(op0))
-#define vreinterpret_v_i64m8_i8m8(op0) \
-__builtin_rvv_vreinterpret_v_i64m8_i8m8((vint64m8_t)(op0))
-#define vreinterpret_v_u8m1_i8m1(op0) \
-__builtin_rvv_vreinterpret_v_u8m1_i8m1((vuint8m1_t)(op0))
-#define vreinterpret_v_u8m2_i8m2(op0) \
-__builtin_rvv_vreinterpret_v_u8m2_i8m2((vuint8m2_t)(op0))
-#define vreinterpret_v_u8m4_i8m4(op0) \
-__builtin_rvv_vreinterpret_v_u8m4_i8m4((vuint8m4_t)(op0))
-#define vreinterpret_v_u8m8_i8m8(op0) \
-__builtin_rvv_vreinterpret_v_u8m8_i8m8((vuint8m8_t)(op0))
-#define vreinterpret_v_u8mf2_i8mf2(op0) \
-__builtin_rvv_vreinterpret_v_u8mf2_i8mf2((vuint8mf2_t)(op0))
-#define vreinterpret_v_u8mf4_i8mf4(op0) \
-__builtin_rvv_vreinterpret_v_u8mf4_i8mf4((vuint8mf4_t)(op0))
-#define vreinterpret_v_u8mf8_i8mf8(op0) \
-__builtin_rvv_vreinterpret_v_u8mf8_i8mf8((vuint8mf8_t)(op0))
-#define vreinterpret_v_u16m1_i16m1(op0) \
-__builtin_rvv_vreinterpret_v_u16m1_i16m1((vuint16m1_t)(op0))
-#define vreinterpret_v_u16m2_i16m2(op0) \
-__builtin_rvv_vreinterpret_v_u16m2_i16m2((vuint16m2_t)(op0))
-#define vreinterpret_v_u16m4_i16m4(op0) \
-__builtin_rvv_vreinterpret_v_u16m4_i16m4((vuint16m4_t)(op0))
-#define vreinterpret_v_u16m8_i16m8(op0) \
-__builtin_rvv_vreinterpret_v_u16m8_i16m8((vuint16m8_t)(op0))
-#define vreinterpret_v_u16mf2_i16mf2(op0) \
-__builtin_rvv_vreinterpret_v_u16mf2_i16mf2((vuint16mf2_t)(op0))
-#define vreinterpret_v_u16mf4_i16mf4(op0) \
-__builtin_rvv_vreinterpret_v_u16mf4_i16mf4((vuint16mf4_t)(op0))
-#define vreinterpret_v_u32m1_i32m1(op0) \
-__builtin_rvv_vreinterpret_v_u32m1_i32m1((vuint32m1_t)(op0))
-#define vreinterpret_v_u32m2_i32m2(op0) \
-__builtin_rvv_vreinterpret_v_u32m2_i32m2((vuint32m2_t)(op0))
-#define vreinterpret_v_u32m4_i32m4(op0) \
-__builtin_rvv_vreinterpret_v_u32m4_i32m4((vuint32m4_t)(op0))
-#define vreinterpret_v_u32m8_i32m8(op0) \
-__builtin_rvv_vreinterpret_v_u32m8_i32m8((vuint32m8_t)(op0))
-#define vreinterpret_v_u32mf2_i32mf2(op0) \
-__builtin_rvv_vreinterpret_v_u32mf2_i32mf2((vuint32mf2_t)(op0))
-#define vreinterpret_v_u64m1_i64m1(op0) \
-__builtin_rvv_vreinterpret_v_u64m1_i64m1((vuint64m1_t)(op0))
-#define vreinterpret_v_u64m2_i64m2(op0) \
-__builtin_rvv_vreinterpret_v_u64m2_i64m2((vuint64m2_t)(op0))
-#define vreinterpret_v_u64m4_i64m4(op0) \
-__builtin_rvv_vreinterpret_v_u64m4_i64m4((vuint64m4_t)(op0))
-#define vreinterpret_v_u64m8_i64m8(op0) \
-__builtin_rvv_vreinterpret_v_u64m8_i64m8((vuint64m8_t)(op0))
-#define vreinterpret_v_u8m1_u16m1(op0) \
-__builtin_rvv_vreinterpret_v_u8m1_u16m1((vuint8m1_t)(op0))
-#define vreinterpret_v_u8m2_u16m2(op0) \
-__builtin_rvv_vreinterpret_v_u8m2_u16m2((vuint8m2_t)(op0))
-#define vreinterpret_v_u8m4_u16m4(op0) \
-__builtin_rvv_vreinterpret_v_u8m4_u16m4((vuint8m4_t)(op0))
-#define vreinterpret_v_u8m8_u16m8(op0) \
-__builtin_rvv_vreinterpret_v_u8m8_u16m8((vuint8m8_t)(op0))
-#define vreinterpret_v_u8mf2_u16mf2(op0) \
-__builtin_rvv_vreinterpret_v_u8mf2_u16mf2((vuint8mf2_t)(op0))
-#define vreinterpret_v_u8mf4_u16mf4(op0) \
-__builtin_rvv_vreinterpret_v_u8mf4_u16mf4((vuint8mf4_t)(op0))
-#define vreinterpret_v_u32m1_u16m1(op0) \
-__builtin_rvv_vreinterpret_v_u32m1_u16m1((vuint32m1_t)(op0))
-#define vreinterpret_v_u32m2_u16m2(op0) \
-__builtin_rvv_vreinterpret_v_u32m2_u16m2((vuint32m2_t)(op0))
-#define vreinterpret_v_u32m4_u16m4(op0) \
-__builtin_rvv_vreinterpret_v_u32m4_u16m4((vuint32m4_t)(op0))
-#define vreinterpret_v_u32m8_u16m8(op0) \
-__builtin_rvv_vreinterpret_v_u32m8_u16m8((vuint32m8_t)(op0))
-#define vreinterpret_v_u32mf2_u16mf2(op0) \
-__builtin_rvv_vreinterpret_v_u32mf2_u16mf2((vuint32mf2_t)(op0))
-#define vreinterpret_v_u64m1_u16m1(op0) \
-__builtin_rvv_vreinterpret_v_u64m1_u16m1((vuint64m1_t)(op0))
-#define vreinterpret_v_u64m2_u16m2(op0) \
-__builtin_rvv_vreinterpret_v_u64m2_u16m2((vuint64m2_t)(op0))
-#define vreinterpret_v_u64m4_u16m4(op0) \
-__builtin_rvv_vreinterpret_v_u64m4_u16m4((vuint64m4_t)(op0))
-#define vreinterpret_v_u64m8_u16m8(op0) \
-__builtin_rvv_vreinterpret_v_u64m8_u16m8((vuint64m8_t)(op0))
-#define vreinterpret_v_u8m1_u32m1(op0) \
-__builtin_rvv_vreinterpret_v_u8m1_u32m1((vuint8m1_t)(op0))
-#define vreinterpret_v_u8m2_u32m2(op0) \
-__builtin_rvv_vreinterpret_v_u8m2_u32m2((vuint8m2_t)(op0))
-#define vreinterpret_v_u8m4_u32m4(op0) \
-__builtin_rvv_vreinterpret_v_u8m4_u32m4((vuint8m4_t)(op0))
-#define vreinterpret_v_u8m8_u32m8(op0) \
-__builtin_rvv_vreinterpret_v_u8m8_u32m8((vuint8m8_t)(op0))
-#define vreinterpret_v_u8mf2_u32mf2(op0) \
-__builtin_rvv_vreinterpret_v_u8mf2_u32mf2((vuint8mf2_t)(op0))
-#define vreinterpret_v_u16m1_u32m1(op0) \
-__builtin_rvv_vreinterpret_v_u16m1_u32m1((vuint16m1_t)(op0))
-#define vreinterpret_v_u16m2_u32m2(op0) \
-__builtin_rvv_vreinterpret_v_u16m2_u32m2((vuint16m2_t)(op0))
-#define vreinterpret_v_u16m4_u32m4(op0) \
-__builtin_rvv_vreinterpret_v_u16m4_u32m4((vuint16m4_t)(op0))
-#define vreinterpret_v_u16m8_u32m8(op0) \
-__builtin_rvv_vreinterpret_v_u16m8_u32m8((vuint16m8_t)(op0))
-#define vreinterpret_v_u16mf2_u32mf2(op0) \
-__builtin_rvv_vreinterpret_v_u16mf2_u32mf2((vuint16mf2_t)(op0))
-#define vreinterpret_v_u64m1_u32m1(op0) \
-__builtin_rvv_vreinterpret_v_u64m1_u32m1((vuint64m1_t)(op0))
-#define vreinterpret_v_u64m2_u32m2(op0) \
-__builtin_rvv_vreinterpret_v_u64m2_u32m2((vuint64m2_t)(op0))
-#define vreinterpret_v_u64m4_u32m4(op0) \
-__builtin_rvv_vreinterpret_v_u64m4_u32m4((vuint64m4_t)(op0))
-#define vreinterpret_v_u64m8_u32m8(op0) \
-__builtin_rvv_vreinterpret_v_u64m8_u32m8((vuint64m8_t)(op0))
-#define vreinterpret_v_u8m1_u64m1(op0) \
-__builtin_rvv_vreinterpret_v_u8m1_u64m1((vuint8m1_t)(op0))
-#define vreinterpret_v_u8m2_u64m2(op0) \
-__builtin_rvv_vreinterpret_v_u8m2_u64m2((vuint8m2_t)(op0))
-#define vreinterpret_v_u8m4_u64m4(op0) \
-__builtin_rvv_vreinterpret_v_u8m4_u64m4((vuint8m4_t)(op0))
-#define vreinterpret_v_u8m8_u64m8(op0) \
-__builtin_rvv_vreinterpret_v_u8m8_u64m8((vuint8m8_t)(op0))
-#define vreinterpret_v_u16m1_u64m1(op0) \
-__builtin_rvv_vreinterpret_v_u16m1_u64m1((vuint16m1_t)(op0))
-#define vreinterpret_v_u16m2_u64m2(op0) \
-__builtin_rvv_vreinterpret_v_u16m2_u64m2((vuint16m2_t)(op0))
-#define vreinterpret_v_u16m4_u64m4(op0) \
-__builtin_rvv_vreinterpret_v_u16m4_u64m4((vuint16m4_t)(op0))
-#define vreinterpret_v_u16m8_u64m8(op0) \
-__builtin_rvv_vreinterpret_v_u16m8_u64m8((vuint16m8_t)(op0))
-#define vreinterpret_v_u32m1_u64m1(op0) \
-__builtin_rvv_vreinterpret_v_u32m1_u64m1((vuint32m1_t)(op0))
-#define vreinterpret_v_u32m2_u64m2(op0) \
-__builtin_rvv_vreinterpret_v_u32m2_u64m2((vuint32m2_t)(op0))
-#define vreinterpret_v_u32m4_u64m4(op0) \
-__builtin_rvv_vreinterpret_v_u32m4_u64m4((vuint32m4_t)(op0))
-#define vreinterpret_v_u32m8_u64m8(op0) \
-__builtin_rvv_vreinterpret_v_u32m8_u64m8((vuint32m8_t)(op0))
-#define vreinterpret_v_u16m1_u8m1(op0) \
-__builtin_rvv_vreinterpret_v_u16m1_u8m1((vuint16m1_t)(op0))
-#define vreinterpret_v_u16m2_u8m2(op0) \
-__builtin_rvv_vreinterpret_v_u16m2_u8m2((vuint16m2_t)(op0))
-#define vreinterpret_v_u16m4_u8m4(op0) \
-__builtin_rvv_vreinterpret_v_u16m4_u8m4((vuint16m4_t)(op0))
-#define vreinterpret_v_u16m8_u8m8(op0) \
-__builtin_rvv_vreinterpret_v_u16m8_u8m8((vuint16m8_t)(op0))
-#define vreinterpret_v_u16mf2_u8mf2(op0) \
-__builtin_rvv_vreinterpret_v_u16mf2_u8mf2((vuint16mf2_t)(op0))
-#define vreinterpret_v_u16mf4_u8mf4(op0) \
-__builtin_rvv_vreinterpret_v_u16mf4_u8mf4((vuint16mf4_t)(op0))
-#define vreinterpret_v_u32m1_u8m1(op0) \
-__builtin_rvv_vreinterpret_v_u32m1_u8m1((vuint32m1_t)(op0))
-#define vreinterpret_v_u32m2_u8m2(op0) \
-__builtin_rvv_vreinterpret_v_u32m2_u8m2((vuint32m2_t)(op0))
-#define vreinterpret_v_u32m4_u8m4(op0) \
-__builtin_rvv_vreinterpret_v_u32m4_u8m4((vuint32m4_t)(op0))
-#define vreinterpret_v_u32m8_u8m8(op0) \
-__builtin_rvv_vreinterpret_v_u32m8_u8m8((vuint32m8_t)(op0))
-#define vreinterpret_v_u32mf2_u8mf2(op0) \
-__builtin_rvv_vreinterpret_v_u32mf2_u8mf2((vuint32mf2_t)(op0))
-#define vreinterpret_v_u64m1_u8m1(op0) \
-__builtin_rvv_vreinterpret_v_u64m1_u8m1((vuint64m1_t)(op0))
-#define vreinterpret_v_u64m2_u8m2(op0) \
-__builtin_rvv_vreinterpret_v_u64m2_u8m2((vuint64m2_t)(op0))
-#define vreinterpret_v_u64m4_u8m4(op0) \
-__builtin_rvv_vreinterpret_v_u64m4_u8m4((vuint64m4_t)(op0))
-#define vreinterpret_v_u64m8_u8m8(op0) \
-__builtin_rvv_vreinterpret_v_u64m8_u8m8((vuint64m8_t)(op0))
-#define vreinterpret_v_i8m1_u8m1(op0) \
-__builtin_rvv_vreinterpret_v_i8m1_u8m1((vint8m1_t)(op0))
-#define vreinterpret_v_i8m2_u8m2(op0) \
-__builtin_rvv_vreinterpret_v_i8m2_u8m2((vint8m2_t)(op0))
-#define vreinterpret_v_i8m4_u8m4(op0) \
-__builtin_rvv_vreinterpret_v_i8m4_u8m4((vint8m4_t)(op0))
-#define vreinterpret_v_i8m8_u8m8(op0) \
-__builtin_rvv_vreinterpret_v_i8m8_u8m8((vint8m8_t)(op0))
-#define vreinterpret_v_i8mf2_u8mf2(op0) \
-__builtin_rvv_vreinterpret_v_i8mf2_u8mf2((vint8mf2_t)(op0))
-#define vreinterpret_v_i8mf4_u8mf4(op0) \
-__builtin_rvv_vreinterpret_v_i8mf4_u8mf4((vint8mf4_t)(op0))
-#define vreinterpret_v_i8mf8_u8mf8(op0) \
-__builtin_rvv_vreinterpret_v_i8mf8_u8mf8((vint8mf8_t)(op0))
-#define vreinterpret_v_i16m1_u16m1(op0) \
-__builtin_rvv_vreinterpret_v_i16m1_u16m1((vint16m1_t)(op0))
-#define vreinterpret_v_i16m2_u16m2(op0) \
-__builtin_rvv_vreinterpret_v_i16m2_u16m2((vint16m2_t)(op0))
-#define vreinterpret_v_i16m4_u16m4(op0) \
-__builtin_rvv_vreinterpret_v_i16m4_u16m4((vint16m4_t)(op0))
-#define vreinterpret_v_i16m8_u16m8(op0) \
-__builtin_rvv_vreinterpret_v_i16m8_u16m8((vint16m8_t)(op0))
-#define vreinterpret_v_i16mf2_u16mf2(op0) \
-__builtin_rvv_vreinterpret_v_i16mf2_u16mf2((vint16mf2_t)(op0))
-#define vreinterpret_v_i16mf4_u16mf4(op0) \
-__builtin_rvv_vreinterpret_v_i16mf4_u16mf4((vint16mf4_t)(op0))
-#define vreinterpret_v_i32m1_u32m1(op0) \
-__builtin_rvv_vreinterpret_v_i32m1_u32m1((vint32m1_t)(op0))
-#define vreinterpret_v_i32m2_u32m2(op0) \
-__builtin_rvv_vreinterpret_v_i32m2_u32m2((vint32m2_t)(op0))
-#define vreinterpret_v_i32m4_u32m4(op0) \
-__builtin_rvv_vreinterpret_v_i32m4_u32m4((vint32m4_t)(op0))
-#define vreinterpret_v_i32m8_u32m8(op0) \
-__builtin_rvv_vreinterpret_v_i32m8_u32m8((vint32m8_t)(op0))
-#define vreinterpret_v_i32mf2_u32mf2(op0) \
-__builtin_rvv_vreinterpret_v_i32mf2_u32mf2((vint32mf2_t)(op0))
-#define vreinterpret_v_i64m1_u64m1(op0) \
-__builtin_rvv_vreinterpret_v_i64m1_u64m1((vint64m1_t)(op0))
-#define vreinterpret_v_i64m2_u64m2(op0) \
-__builtin_rvv_vreinterpret_v_i64m2_u64m2((vint64m2_t)(op0))
-#define vreinterpret_v_i64m4_u64m4(op0) \
-__builtin_rvv_vreinterpret_v_i64m4_u64m4((vint64m4_t)(op0))
-#define vreinterpret_v_i64m8_u64m8(op0) \
-__builtin_rvv_vreinterpret_v_i64m8_u64m8((vint64m8_t)(op0))
-#define vse1_v_b8(op0, op1, op2) \
-__builtin_rvv_vse1_v_b8((uint8_t *)(op0), (vbool8_t)(op1), (size_t)(op2))
-#define vse1_v_b4(op0, op1, op2) \
-__builtin_rvv_vse1_v_b4((uint8_t *)(op0), (vbool4_t)(op1), (size_t)(op2))
-#define vse1_v_b2(op0, op1, op2) \
-__builtin_rvv_vse1_v_b2((uint8_t *)(op0), (vbool2_t)(op1), (size_t)(op2))
-#define vse1_v_b1(op0, op1, op2) \
-__builtin_rvv_vse1_v_b1((uint8_t *)(op0), (vbool1_t)(op1), (size_t)(op2))
-#define vse1_v_b16(op0, op1, op2) \
-__builtin_rvv_vse1_v_b16((uint8_t *)(op0), (vbool16_t)(op1), (size_t)(op2))
-#define vse1_v_b32(op0, op1, op2) \
-__builtin_rvv_vse1_v_b32((uint8_t *)(op0), (vbool32_t)(op1), (size_t)(op2))
-#define vse1_v_b64(op0, op1, op2) \
-__builtin_rvv_vse1_v_b64((uint8_t *)(op0), (vbool64_t)(op1), (size_t)(op2))
-#define vsext_vf2_i16mf4(op0, op1) \
-__builtin_rvv_vsext_vf2_i16mf4((vint8mf8_t)(op0), (size_t)(op1))
-#define vsext_vf2_i16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsext_vf2_i16mf2(op0, op1) \
-__builtin_rvv_vsext_vf2_i16mf2((vint8mf4_t)(op0), (size_t)(op1))
-#define vsext_vf2_i16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsext_vf2_i16m1(op0, op1) \
-__builtin_rvv_vsext_vf2_i16m1((vint8mf2_t)(op0), (size_t)(op1))
-#define vsext_vf2_i16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsext_vf2_i16m2(op0, op1) \
-__builtin_rvv_vsext_vf2_i16m2((vint8m1_t)(op0), (size_t)(op1))
-#define vsext_vf2_i16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsext_vf2_i16m4(op0, op1) \
-__builtin_rvv_vsext_vf2_i16m4((vint8m2_t)(op0), (size_t)(op1))
-#define vsext_vf2_i16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vsext_vf2_i16m8(op0, op1) \
-__builtin_rvv_vsext_vf2_i16m8((vint8m4_t)(op0), (size_t)(op1))
-#define vsext_vf2_i16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vsext_vf2_i32mf2(op0, op1) \
-__builtin_rvv_vsext_vf2_i32mf2((vint16mf4_t)(op0), (size_t)(op1))
-#define vsext_vf2_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsext_vf2_i32m1(op0, op1) \
-__builtin_rvv_vsext_vf2_i32m1((vint16mf2_t)(op0), (size_t)(op1))
-#define vsext_vf2_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsext_vf2_i32m2(op0, op1) \
-__builtin_rvv_vsext_vf2_i32m2((vint16m1_t)(op0), (size_t)(op1))
-#define vsext_vf2_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsext_vf2_i32m4(op0, op1) \
-__builtin_rvv_vsext_vf2_i32m4((vint16m2_t)(op0), (size_t)(op1))
-#define vsext_vf2_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsext_vf2_i32m8(op0, op1) \
-__builtin_rvv_vsext_vf2_i32m8((vint16m4_t)(op0), (size_t)(op1))
-#define vsext_vf2_i32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vsext_vf2_i64m1(op0, op1) \
-__builtin_rvv_vsext_vf2_i64m1((vint32mf2_t)(op0), (size_t)(op1))
-#define vsext_vf2_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsext_vf2_i64m2(op0, op1) \
-__builtin_rvv_vsext_vf2_i64m2((vint32m1_t)(op0), (size_t)(op1))
-#define vsext_vf2_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vsext_vf2_i64m4(op0, op1) \
-__builtin_rvv_vsext_vf2_i64m4((vint32m2_t)(op0), (size_t)(op1))
-#define vsext_vf2_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vsext_vf2_i64m8(op0, op1) \
-__builtin_rvv_vsext_vf2_i64m8((vint32m4_t)(op0), (size_t)(op1))
-#define vsext_vf2_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf2_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vsext_vf4_i32mf2(op0, op1) \
-__builtin_rvv_vsext_vf4_i32mf2((vint8mf8_t)(op0), (size_t)(op1))
-#define vsext_vf4_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf4_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsext_vf4_i32m1(op0, op1) \
-__builtin_rvv_vsext_vf4_i32m1((vint8mf4_t)(op0), (size_t)(op1))
-#define vsext_vf4_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf4_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsext_vf4_i32m2(op0, op1) \
-__builtin_rvv_vsext_vf4_i32m2((vint8mf2_t)(op0), (size_t)(op1))
-#define vsext_vf4_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf4_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsext_vf4_i32m4(op0, op1) \
-__builtin_rvv_vsext_vf4_i32m4((vint8m1_t)(op0), (size_t)(op1))
-#define vsext_vf4_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf4_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsext_vf4_i32m8(op0, op1) \
-__builtin_rvv_vsext_vf4_i32m8((vint8m2_t)(op0), (size_t)(op1))
-#define vsext_vf4_i32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf4_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vsext_vf4_i64m1(op0, op1) \
-__builtin_rvv_vsext_vf4_i64m1((vint16mf4_t)(op0), (size_t)(op1))
-#define vsext_vf4_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf4_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsext_vf4_i64m2(op0, op1) \
-__builtin_rvv_vsext_vf4_i64m2((vint16mf2_t)(op0), (size_t)(op1))
-#define vsext_vf4_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf4_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsext_vf4_i64m4(op0, op1) \
-__builtin_rvv_vsext_vf4_i64m4((vint16m1_t)(op0), (size_t)(op1))
-#define vsext_vf4_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf4_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsext_vf4_i64m8(op0, op1) \
-__builtin_rvv_vsext_vf4_i64m8((vint16m2_t)(op0), (size_t)(op1))
-#define vsext_vf4_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf4_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsext_vf8_i64m1(op0, op1) \
-__builtin_rvv_vsext_vf8_i64m1((vint8mf8_t)(op0), (size_t)(op1))
-#define vsext_vf8_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf8_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsext_vf8_i64m2(op0, op1) \
-__builtin_rvv_vsext_vf8_i64m2((vint8mf4_t)(op0), (size_t)(op1))
-#define vsext_vf8_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf8_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsext_vf8_i64m4(op0, op1) \
-__builtin_rvv_vsext_vf8_i64m4((vint8mf2_t)(op0), (size_t)(op1))
-#define vsext_vf8_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf8_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsext_vf8_i64m8(op0, op1) \
-__builtin_rvv_vsext_vf8_i64m8((vint8m1_t)(op0), (size_t)(op1))
-#define vsext_vf8_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vsext_vf8_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vundefined_i8m1() \
-__builtin_rvv_vundefined_i8m1()
-#define vundefined_i8m2() \
-__builtin_rvv_vundefined_i8m2()
-#define vundefined_i8m4() \
-__builtin_rvv_vundefined_i8m4()
-#define vundefined_i8m8() \
-__builtin_rvv_vundefined_i8m8()
-#define vundefined_i8mf2() \
-__builtin_rvv_vundefined_i8mf2()
-#define vundefined_i8mf4() \
-__builtin_rvv_vundefined_i8mf4()
-#define vundefined_i8mf8() \
-__builtin_rvv_vundefined_i8mf8()
-#define vundefined_i16m1() \
-__builtin_rvv_vundefined_i16m1()
-#define vundefined_i16m2() \
-__builtin_rvv_vundefined_i16m2()
-#define vundefined_i16m4() \
-__builtin_rvv_vundefined_i16m4()
-#define vundefined_i16m8() \
-__builtin_rvv_vundefined_i16m8()
-#define vundefined_i16mf2() \
-__builtin_rvv_vundefined_i16mf2()
-#define vundefined_i16mf4() \
-__builtin_rvv_vundefined_i16mf4()
-#define vundefined_i32m1() \
-__builtin_rvv_vundefined_i32m1()
-#define vundefined_i32m2() \
-__builtin_rvv_vundefined_i32m2()
-#define vundefined_i32m4() \
-__builtin_rvv_vundefined_i32m4()
-#define vundefined_i32m8() \
-__builtin_rvv_vundefined_i32m8()
-#define vundefined_i32mf2() \
-__builtin_rvv_vundefined_i32mf2()
-#define vundefined_i64m1() \
-__builtin_rvv_vundefined_i64m1()
-#define vundefined_i64m2() \
-__builtin_rvv_vundefined_i64m2()
-#define vundefined_i64m4() \
-__builtin_rvv_vundefined_i64m4()
-#define vundefined_i64m8() \
-__builtin_rvv_vundefined_i64m8()
-#define vundefined_u8m1() \
-__builtin_rvv_vundefined_u8m1()
-#define vundefined_u8m2() \
-__builtin_rvv_vundefined_u8m2()
-#define vundefined_u8m4() \
-__builtin_rvv_vundefined_u8m4()
-#define vundefined_u8m8() \
-__builtin_rvv_vundefined_u8m8()
-#define vundefined_u8mf2() \
-__builtin_rvv_vundefined_u8mf2()
-#define vundefined_u8mf4() \
-__builtin_rvv_vundefined_u8mf4()
-#define vundefined_u8mf8() \
-__builtin_rvv_vundefined_u8mf8()
-#define vundefined_u16m1() \
-__builtin_rvv_vundefined_u16m1()
-#define vundefined_u16m2() \
-__builtin_rvv_vundefined_u16m2()
-#define vundefined_u16m4() \
-__builtin_rvv_vundefined_u16m4()
-#define vundefined_u16m8() \
-__builtin_rvv_vundefined_u16m8()
-#define vundefined_u16mf2() \
-__builtin_rvv_vundefined_u16mf2()
-#define vundefined_u16mf4() \
-__builtin_rvv_vundefined_u16mf4()
-#define vundefined_u32m1() \
-__builtin_rvv_vundefined_u32m1()
-#define vundefined_u32m2() \
-__builtin_rvv_vundefined_u32m2()
-#define vundefined_u32m4() \
-__builtin_rvv_vundefined_u32m4()
-#define vundefined_u32m8() \
-__builtin_rvv_vundefined_u32m8()
-#define vundefined_u32mf2() \
-__builtin_rvv_vundefined_u32mf2()
-#define vundefined_u64m1() \
-__builtin_rvv_vundefined_u64m1()
-#define vundefined_u64m2() \
-__builtin_rvv_vundefined_u64m2()
-#define vundefined_u64m4() \
-__builtin_rvv_vundefined_u64m4()
-#define vundefined_u64m8() \
-__builtin_rvv_vundefined_u64m8()
-#define vzext_vf2_u16mf4(op0, op1) \
-__builtin_rvv_vzext_vf2_u16mf4((vuint8mf8_t)(op0), (size_t)(op1))
-#define vzext_vf2_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vzext_vf2_u16mf2(op0, op1) \
-__builtin_rvv_vzext_vf2_u16mf2((vuint8mf4_t)(op0), (size_t)(op1))
-#define vzext_vf2_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vzext_vf2_u16m1(op0, op1) \
-__builtin_rvv_vzext_vf2_u16m1((vuint8mf2_t)(op0), (size_t)(op1))
-#define vzext_vf2_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vzext_vf2_u16m2(op0, op1) \
-__builtin_rvv_vzext_vf2_u16m2((vuint8m1_t)(op0), (size_t)(op1))
-#define vzext_vf2_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vzext_vf2_u16m4(op0, op1) \
-__builtin_rvv_vzext_vf2_u16m4((vuint8m2_t)(op0), (size_t)(op1))
-#define vzext_vf2_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vzext_vf2_u16m8(op0, op1) \
-__builtin_rvv_vzext_vf2_u16m8((vuint8m4_t)(op0), (size_t)(op1))
-#define vzext_vf2_u16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vzext_vf2_u32mf2(op0, op1) \
-__builtin_rvv_vzext_vf2_u32mf2((vuint16mf4_t)(op0), (size_t)(op1))
-#define vzext_vf2_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vzext_vf2_u32m1(op0, op1) \
-__builtin_rvv_vzext_vf2_u32m1((vuint16mf2_t)(op0), (size_t)(op1))
-#define vzext_vf2_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vzext_vf2_u32m2(op0, op1) \
-__builtin_rvv_vzext_vf2_u32m2((vuint16m1_t)(op0), (size_t)(op1))
-#define vzext_vf2_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vzext_vf2_u32m4(op0, op1) \
-__builtin_rvv_vzext_vf2_u32m4((vuint16m2_t)(op0), (size_t)(op1))
-#define vzext_vf2_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vzext_vf2_u32m8(op0, op1) \
-__builtin_rvv_vzext_vf2_u32m8((vuint16m4_t)(op0), (size_t)(op1))
-#define vzext_vf2_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vzext_vf2_u64m1(op0, op1) \
-__builtin_rvv_vzext_vf2_u64m1((vuint32mf2_t)(op0), (size_t)(op1))
-#define vzext_vf2_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vzext_vf2_u64m2(op0, op1) \
-__builtin_rvv_vzext_vf2_u64m2((vuint32m1_t)(op0), (size_t)(op1))
-#define vzext_vf2_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vzext_vf2_u64m4(op0, op1) \
-__builtin_rvv_vzext_vf2_u64m4((vuint32m2_t)(op0), (size_t)(op1))
-#define vzext_vf2_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vzext_vf2_u64m8(op0, op1) \
-__builtin_rvv_vzext_vf2_u64m8((vuint32m4_t)(op0), (size_t)(op1))
-#define vzext_vf2_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf2_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vzext_vf4_u32mf2(op0, op1) \
-__builtin_rvv_vzext_vf4_u32mf2((vuint8mf8_t)(op0), (size_t)(op1))
-#define vzext_vf4_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf4_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vzext_vf4_u32m1(op0, op1) \
-__builtin_rvv_vzext_vf4_u32m1((vuint8mf4_t)(op0), (size_t)(op1))
-#define vzext_vf4_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf4_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vzext_vf4_u32m2(op0, op1) \
-__builtin_rvv_vzext_vf4_u32m2((vuint8mf2_t)(op0), (size_t)(op1))
-#define vzext_vf4_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf4_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vzext_vf4_u32m4(op0, op1) \
-__builtin_rvv_vzext_vf4_u32m4((vuint8m1_t)(op0), (size_t)(op1))
-#define vzext_vf4_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf4_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vzext_vf4_u32m8(op0, op1) \
-__builtin_rvv_vzext_vf4_u32m8((vuint8m2_t)(op0), (size_t)(op1))
-#define vzext_vf4_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf4_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vzext_vf4_u64m1(op0, op1) \
-__builtin_rvv_vzext_vf4_u64m1((vuint16mf4_t)(op0), (size_t)(op1))
-#define vzext_vf4_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf4_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vzext_vf4_u64m2(op0, op1) \
-__builtin_rvv_vzext_vf4_u64m2((vuint16mf2_t)(op0), (size_t)(op1))
-#define vzext_vf4_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf4_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vzext_vf4_u64m4(op0, op1) \
-__builtin_rvv_vzext_vf4_u64m4((vuint16m1_t)(op0), (size_t)(op1))
-#define vzext_vf4_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf4_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vzext_vf4_u64m8(op0, op1) \
-__builtin_rvv_vzext_vf4_u64m8((vuint16m2_t)(op0), (size_t)(op1))
-#define vzext_vf4_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf4_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vzext_vf8_u64m1(op0, op1) \
-__builtin_rvv_vzext_vf8_u64m1((vuint8mf8_t)(op0), (size_t)(op1))
-#define vzext_vf8_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf8_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vzext_vf8_u64m2(op0, op1) \
-__builtin_rvv_vzext_vf8_u64m2((vuint8mf4_t)(op0), (size_t)(op1))
-#define vzext_vf8_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf8_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vzext_vf8_u64m4(op0, op1) \
-__builtin_rvv_vzext_vf8_u64m4((vuint8mf2_t)(op0), (size_t)(op1))
-#define vzext_vf8_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf8_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vzext_vf8_u64m8(op0, op1) \
-__builtin_rvv_vzext_vf8_u64m8((vuint8m1_t)(op0), (size_t)(op1))
-#define vzext_vf8_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vzext_vf8_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#if defined(__riscv_f)
-#define vsse32_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_f32m1((float *)(op0), (ptrdiff_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vsse32_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsse32_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_f32m2((float *)(op0), (ptrdiff_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vsse32_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsse32_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_f32m4((float *)(op0), (ptrdiff_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vsse32_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsse32_v_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_f32m8((float *)(op0), (ptrdiff_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vsse32_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_f32m8_m((vbool4_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vsse32_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsse32_v_f32mf2((float *)(op0), (ptrdiff_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vsse32_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_f32m1(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f32m1((const float *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vluxei8_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (const float *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_f32m2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f32m2((const float *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vluxei8_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (const float *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_f32m4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f32m4((const float *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vluxei8_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (const float *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_f32m8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f32m8((const float *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vluxei8_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (const float *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxei8_v_f32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f32mf2((const float *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vluxei8_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (const float *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxei16_v_f32m1(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f32m1((const float *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vluxei16_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (const float *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxei16_v_f32m2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f32m2((const float *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vluxei16_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (const float *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_f32m4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f32m4((const float *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vluxei16_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (const float *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxei16_v_f32m8(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f32m8((const float *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vluxei16_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (const float *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxei16_v_f32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f32mf2((const float *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vluxei16_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (const float *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxei32_v_f32m1(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f32m1((const float *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vluxei32_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (const float *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxei32_v_f32m2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f32m2((const float *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vluxei32_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (const float *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_f32m4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f32m4((const float *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vluxei32_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (const float *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei32_v_f32m8(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f32m8((const float *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vluxei32_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (const float *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxei32_v_f32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f32mf2((const float *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vluxei32_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (const float *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxei64_v_f32m1(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f32m1((const float *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vluxei64_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (const float *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxei64_v_f32m2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f32m2((const float *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vluxei64_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (const float *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_f32m4(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f32m4((const float *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vluxei64_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (const float *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxei64_v_f32mf2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f32mf2((const float *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vluxei64_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (const float *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_f32m1(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f32m1((const float *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vloxei8_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (const float *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxei8_v_f32m2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f32m2((const float *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vloxei8_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (const float *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxei8_v_f32m4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f32m4((const float *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vloxei8_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (const float *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_f32m8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f32m8((const float *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vloxei8_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (const float *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxei8_v_f32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f32mf2((const float *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vloxei8_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (const float *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxei16_v_f32m1(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f32m1((const float *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vloxei16_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (const float *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxei16_v_f32m2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f32m2((const float *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vloxei16_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (const float *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_f32m4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f32m4((const float *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vloxei16_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (const float *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxei16_v_f32m8(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f32m8((const float *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vloxei16_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (const float *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxei16_v_f32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f32mf2((const float *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vloxei16_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (const float *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxei32_v_f32m1(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f32m1((const float *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vloxei32_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (const float *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxei32_v_f32m2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f32m2((const float *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vloxei32_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (const float *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_f32m4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f32m4((const float *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vloxei32_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (const float *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxei32_v_f32m8(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f32m8((const float *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vloxei32_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (const float *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxei32_v_f32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f32mf2((const float *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vloxei32_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (const float *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxei64_v_f32m1(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f32m1((const float *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vloxei64_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (const float *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxei64_v_f32m2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f32m2((const float *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vloxei64_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (const float *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_f32m4(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f32m4((const float *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vloxei64_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (const float *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxei64_v_f32mf2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f32mf2((const float *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vloxei64_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (const float *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmv_v_v_f32m1(op0, op1) \
-__builtin_rvv_vmv_v_v_f32m1((vfloat32m1_t)(op0), (size_t)(op1))
-#define vmv_v_v_f32m2(op0, op1) \
-__builtin_rvv_vmv_v_v_f32m2((vfloat32m2_t)(op0), (size_t)(op1))
-#define vmv_v_v_f32m4(op0, op1) \
-__builtin_rvv_vmv_v_v_f32m4((vfloat32m4_t)(op0), (size_t)(op1))
-#define vmv_v_v_f32m8(op0, op1) \
-__builtin_rvv_vmv_v_v_f32m8((vfloat32m8_t)(op0), (size_t)(op1))
-#define vmv_v_v_f32mf2(op0, op1) \
-__builtin_rvv_vmv_v_v_f32mf2((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfadd_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfadd_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfadd_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfadd_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfadd_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfadd_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfadd_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vfadd_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfadd_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfadd_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfadd_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfadd_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfadd_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfadd_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfadd_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfadd_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfadd_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfadd_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfadd_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfadd_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsub_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfsub_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfsub_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfsub_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfsub_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfsub_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfsub_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vfsub_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfsub_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfsub_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfsub_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsub_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsub_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsub_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsub_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsub_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsub_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsub_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsub_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsub_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfrsub_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfrsub_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfrsub_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfrsub_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfrsub_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfrsub_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfrsub_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfrsub_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfrsub_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfrsub_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmul_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfmul_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmul_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfmul_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfmul_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfmul_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfmul_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vfmul_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfmul_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfmul_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfmul_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmul_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmul_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmul_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmul_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmul_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmul_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmul_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmul_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmul_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfdiv_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfdiv_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfdiv_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfdiv_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfdiv_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfdiv_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfdiv_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfdiv_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfdiv_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfdiv_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfdiv_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfrdiv_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfrdiv_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfrdiv_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfrdiv_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfrdiv_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfrdiv_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfrdiv_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfrdiv_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfrdiv_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfrdiv_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmacc_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (float)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (float)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (float)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (float)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (float)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (float)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (float)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (float)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfmin_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfmin_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmin_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfmin_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfmin_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfmin_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfmin_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vfmin_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfmin_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfmin_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfmin_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmin_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmin_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmin_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmin_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmin_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmin_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmin_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmin_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmin_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmax_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfmax_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmax_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfmax_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfmax_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfmax_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfmax_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vfmax_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfmax_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfmax_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfmax_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmax_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmax_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmax_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmax_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmax_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmax_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmax_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfmax_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmax_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnj_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfsgnj_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnj_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnj_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnj_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnj_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnj_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnj_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnj_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnj_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnj_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfabs_v_f32m1(op0, op1) \
-__builtin_rvv_vfabs_v_f32m1((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfabs_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfabs_v_f32m2(op0, op1) \
-__builtin_rvv_vfabs_v_f32m2((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfabs_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfabs_v_f32m4(op0, op1) \
-__builtin_rvv_vfabs_v_f32m4((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfabs_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfabs_v_f32m8(op0, op1) \
-__builtin_rvv_vfabs_v_f32m8((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfabs_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfabs_v_f32mf2(op0, op1) \
-__builtin_rvv_vfabs_v_f32mf2((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfabs_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vmfeq_vv_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f32m1_b32((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f32m2_b16((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f32m4_b8((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f32m8_b4((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f32mf2_b64((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vmfeq_vf_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f32m1_b32((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfeq_vf_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfeq_vf_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f32m2_b16((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfeq_vf_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfeq_vf_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f32m4_b8((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfeq_vf_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfeq_vf_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f32m8_b4((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfeq_vf_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfeq_vf_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f32mf2_b64((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfeq_vf_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfne_vv_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f32m1_b32((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vmfne_vv_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vmfne_vv_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f32m2_b16((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vmfne_vv_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vmfne_vv_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f32m4_b8((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vmfne_vv_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vmfne_vv_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f32m8_b4((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vmfne_vv_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vmfne_vv_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f32mf2_b64((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vmfne_vv_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vmfne_vf_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f32m1_b32((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfne_vf_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfne_vf_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f32m2_b16((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfne_vf_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfne_vf_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f32m4_b8((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfne_vf_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfne_vf_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f32m8_b4((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfne_vf_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfne_vf_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f32mf2_b64((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfne_vf_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmflt_vv_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f32m1_b32((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vmflt_vv_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vmflt_vv_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f32m2_b16((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vmflt_vv_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vmflt_vv_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f32m4_b8((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vmflt_vv_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vmflt_vv_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f32m8_b4((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vmflt_vv_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vmflt_vv_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f32mf2_b64((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vmflt_vv_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vmflt_vf_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f32m1_b32((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vmflt_vf_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vmflt_vf_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f32m2_b16((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmflt_vf_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmflt_vf_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f32m4_b8((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vmflt_vf_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vmflt_vf_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f32m8_b4((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vmflt_vf_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vmflt_vf_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f32mf2_b64((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmflt_vf_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfle_vv_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f32m1_b32((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vmfle_vv_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vmfle_vv_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f32m2_b16((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vmfle_vv_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vmfle_vv_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f32m4_b8((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vmfle_vv_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vmfle_vv_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f32m8_b4((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vmfle_vv_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vmfle_vv_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f32mf2_b64((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vmfle_vv_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vmfle_vf_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f32m1_b32((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfle_vf_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfle_vf_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f32m2_b16((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfle_vf_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfle_vf_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f32m4_b8((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfle_vf_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfle_vf_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f32m8_b4((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfle_vf_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfle_vf_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f32mf2_b64((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfle_vf_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfgt_vv_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f32m1_b32((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f32m2_b16((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f32m4_b8((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f32m8_b4((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f32mf2_b64((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vmfgt_vf_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f32m1_b32((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfgt_vf_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfgt_vf_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f32m2_b16((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfgt_vf_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfgt_vf_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f32m4_b8((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfgt_vf_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfgt_vf_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f32m8_b4((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfgt_vf_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfgt_vf_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f32mf2_b64((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfgt_vf_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfge_vv_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f32m1_b32((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vmfge_vv_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vmfge_vv_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f32m2_b16((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vmfge_vv_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vmfge_vv_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f32m4_b8((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vmfge_vv_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vmfge_vv_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f32m8_b4((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vmfge_vv_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vmfge_vv_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f32mf2_b64((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vmfge_vv_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vmfge_vf_f32m1_b32(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f32m1_b32((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfge_vf_f32m1_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f32m1_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfge_vf_f32m2_b16(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f32m2_b16((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfge_vf_f32m2_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f32m2_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfge_vf_f32m4_b8(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f32m4_b8((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfge_vf_f32m4_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f32m4_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfge_vf_f32m8_b4(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f32m8_b4((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfge_vf_f32m8_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f32m8_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vmfge_vf_f32mf2_b64(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f32mf2_b64((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vmfge_vf_f32mf2_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f32mf2_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vmerge_vvm_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f32m1((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f32m2((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f32m4((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f32m8((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f32mf2((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfmerge_vfm_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f32m1((vbool32_t)(op0), (vfloat32m1_t)(op1), (float)(op2), (size_t)(op3))
-#define vfmerge_vfm_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f32m2((vbool16_t)(op0), (vfloat32m2_t)(op1), (float)(op2), (size_t)(op3))
-#define vfmerge_vfm_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f32m4((vbool8_t)(op0), (vfloat32m4_t)(op1), (float)(op2), (size_t)(op3))
-#define vfmerge_vfm_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f32m8((vbool4_t)(op0), (vfloat32m8_t)(op1), (float)(op2), (size_t)(op3))
-#define vfmerge_vfm_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f32mf2((vbool64_t)(op0), (vfloat32mf2_t)(op1), (float)(op2), (size_t)(op3))
-#define vfmv_v_f_f32m1(op0, op1) \
-__builtin_rvv_vfmv_v_f_f32m1((float)(op0), (size_t)(op1))
-#define vfmv_v_f_f32m2(op0, op1) \
-__builtin_rvv_vfmv_v_f_f32m2((float)(op0), (size_t)(op1))
-#define vfmv_v_f_f32m4(op0, op1) \
-__builtin_rvv_vfmv_v_f_f32m4((float)(op0), (size_t)(op1))
-#define vfmv_v_f_f32m8(op0, op1) \
-__builtin_rvv_vfmv_v_f_f32m8((float)(op0), (size_t)(op1))
-#define vfmv_v_f_f32mf2(op0, op1) \
-__builtin_rvv_vfmv_v_f_f32mf2((float)(op0), (size_t)(op1))
-#define vfredmax_vs_f32m1_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f32m1_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f32m1_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f32m1_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f32m2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f32m2_f32m1((vfloat32m1_t)(op0), (vfloat32m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f32m2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f32m2_f32m1_m((vbool16_t)(op0), (vfloat32m1_t)(op1), (vfloat32m2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f32m4_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f32m4_f32m1((vfloat32m1_t)(op0), (vfloat32m4_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f32m4_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f32m4_f32m1_m((vbool8_t)(op0), (vfloat32m1_t)(op1), (vfloat32m4_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f32m8_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f32m8_f32m1((vfloat32m1_t)(op0), (vfloat32m8_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f32m8_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f32m8_f32m1_m((vbool4_t)(op0), (vfloat32m1_t)(op1), (vfloat32m8_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f32mf2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f32mf2_f32m1((vfloat32m1_t)(op0), (vfloat32mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f32mf2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f32mf2_f32m1_m((vbool64_t)(op0), (vfloat32m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f32m1_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f32m1_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f32m1_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f32m1_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f32m2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f32m2_f32m1((vfloat32m1_t)(op0), (vfloat32m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f32m2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f32m2_f32m1_m((vbool16_t)(op0), (vfloat32m1_t)(op1), (vfloat32m2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f32m4_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f32m4_f32m1((vfloat32m1_t)(op0), (vfloat32m4_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f32m4_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f32m4_f32m1_m((vbool8_t)(op0), (vfloat32m1_t)(op1), (vfloat32m4_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f32m8_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f32m8_f32m1((vfloat32m1_t)(op0), (vfloat32m8_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f32m8_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f32m8_f32m1_m((vbool4_t)(op0), (vfloat32m1_t)(op1), (vfloat32m8_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f32mf2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f32mf2_f32m1((vfloat32m1_t)(op0), (vfloat32mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f32mf2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f32mf2_f32m1_m((vbool64_t)(op0), (vfloat32m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f32m1_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f32m1_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f32m1_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f32m1_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f32m2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f32m2_f32m1((vfloat32m1_t)(op0), (vfloat32m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f32m2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f32m2_f32m1_m((vbool16_t)(op0), (vfloat32m1_t)(op1), (vfloat32m2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f32m4_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f32m4_f32m1((vfloat32m1_t)(op0), (vfloat32m4_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f32m4_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f32m4_f32m1_m((vbool8_t)(op0), (vfloat32m1_t)(op1), (vfloat32m4_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f32m8_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f32m8_f32m1((vfloat32m1_t)(op0), (vfloat32m8_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f32m8_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f32m8_f32m1_m((vbool4_t)(op0), (vfloat32m1_t)(op1), (vfloat32m8_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f32mf2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f32mf2_f32m1((vfloat32m1_t)(op0), (vfloat32mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f32mf2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f32mf2_f32m1_m((vbool64_t)(op0), (vfloat32m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f32m1_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f32m1_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f32m1_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f32m1_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f32m2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f32m2_f32m1((vfloat32m1_t)(op0), (vfloat32m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f32m2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f32m2_f32m1_m((vbool16_t)(op0), (vfloat32m1_t)(op1), (vfloat32m2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f32m4_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f32m4_f32m1((vfloat32m1_t)(op0), (vfloat32m4_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f32m4_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f32m4_f32m1_m((vbool8_t)(op0), (vfloat32m1_t)(op1), (vfloat32m4_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f32m8_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f32m8_f32m1((vfloat32m1_t)(op0), (vfloat32m8_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f32m8_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f32m8_f32m1_m((vbool4_t)(op0), (vfloat32m1_t)(op1), (vfloat32m8_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f32mf2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f32mf2_f32m1((vfloat32m1_t)(op0), (vfloat32mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f32mf2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f32mf2_f32m1_m((vbool64_t)(op0), (vfloat32m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfmv_f_s_f32m1_f32(op0) \
-__builtin_rvv_vfmv_f_s_f32m1_f32((vfloat32m1_t)(op0))
-#define vfmv_f_s_f32m2_f32(op0) \
-__builtin_rvv_vfmv_f_s_f32m2_f32((vfloat32m2_t)(op0))
-#define vfmv_f_s_f32m4_f32(op0) \
-__builtin_rvv_vfmv_f_s_f32m4_f32((vfloat32m4_t)(op0))
-#define vfmv_f_s_f32m8_f32(op0) \
-__builtin_rvv_vfmv_f_s_f32m8_f32((vfloat32m8_t)(op0))
-#define vfmv_f_s_f32mf2_f32(op0) \
-__builtin_rvv_vfmv_f_s_f32mf2_f32((vfloat32mf2_t)(op0))
-#define vfmv_s_f_f32m1(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmv_s_f_f32m2(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmv_s_f_f32m4(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmv_s_f_f32m8(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfmv_s_f_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vslideup_vx_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f32m1((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f32m2((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f32m4((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f32m8((vfloat32m8_t)(op0), (vfloat32m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f32mf2((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vfslide1up_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfslide1up_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfslide1up_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfslide1up_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfslide1up_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfslide1up_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfslide1up_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfslide1up_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfslide1up_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfslide1up_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfslide1down_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f32m1((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfslide1down_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfslide1down_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f32m2((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfslide1down_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfslide1down_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f32m4((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfslide1down_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfslide1down_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f32m8((vfloat32m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfslide1down_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfslide1down_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f32mf2((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfslide1down_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vrgather_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f32m1((vfloat32m1_t)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vrgather_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vrgather_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f32m2((vfloat32m2_t)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vrgather_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f32m4((vfloat32m4_t)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vrgather_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vrgather_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f32m8((vfloat32m8_t)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vrgather_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vrgather_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f32mf2((vfloat32mf2_t)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vrgather_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vrgather_vx_f32m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f32m1((vfloat32m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f32m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f32m2((vfloat32m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f32m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f32m4((vfloat32m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f32m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f32m8((vfloat32m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f32mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f32mf2((vfloat32mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f32m1((vfloat32m1_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f32m2((vfloat32m2_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f32m4((vfloat32m4_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f32m8((vfloat32m8_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f32mf2((vfloat32mf2_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vcompress_vm_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f32m1((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vcompress_vm_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f32m2((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vcompress_vm_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f32m4((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vcompress_vm_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f32m8((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vcompress_vm_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f32mf2((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vget_v_f32m2_f32m1(op0, op1) \
-__builtin_rvv_vget_v_f32m2_f32m1((vfloat32m2_t)(op0), (size_t)(op1))
-#define vget_v_f32m4_f32m1(op0, op1) \
-__builtin_rvv_vget_v_f32m4_f32m1((vfloat32m4_t)(op0), (size_t)(op1))
-#define vget_v_f32m8_f32m1(op0, op1) \
-__builtin_rvv_vget_v_f32m8_f32m1((vfloat32m8_t)(op0), (size_t)(op1))
-#define vget_v_f32m4_f32m2(op0, op1) \
-__builtin_rvv_vget_v_f32m4_f32m2((vfloat32m4_t)(op0), (size_t)(op1))
-#define vget_v_f32m8_f32m2(op0, op1) \
-__builtin_rvv_vget_v_f32m8_f32m2((vfloat32m8_t)(op0), (size_t)(op1))
-#define vget_v_f32m8_f32m4(op0, op1) \
-__builtin_rvv_vget_v_f32m8_f32m4((vfloat32m8_t)(op0), (size_t)(op1))
-#define vset_v_f32m1_f32m2(op0, op1, op2) \
-__builtin_rvv_vset_v_f32m1_f32m2((vfloat32m2_t)(op0), (size_t)(op1), (vfloat32m1_t)(op2))
-#define vset_v_f32m1_f32m4(op0, op1, op2) \
-__builtin_rvv_vset_v_f32m1_f32m4((vfloat32m4_t)(op0), (size_t)(op1), (vfloat32m1_t)(op2))
-#define vset_v_f32m2_f32m4(op0, op1, op2) \
-__builtin_rvv_vset_v_f32m2_f32m4((vfloat32m4_t)(op0), (size_t)(op1), (vfloat32m2_t)(op2))
-#define vsuxei8_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f32m2((float *)(op0), (vuint8mf2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint8mf2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f32m4((float *)(op0), (vuint8m1_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint8m1_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f32m8((float *)(op0), (vuint8m2_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f32m8_m((vbool4_t)(op0), (float *)(op1), (vuint8m2_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vset_v_f32m1_f32m8(op0, op1, op2) \
-__builtin_rvv_vset_v_f32m1_f32m8((vfloat32m8_t)(op0), (size_t)(op1), (vfloat32m1_t)(op2))
-#define vset_v_f32m2_f32m8(op0, op1, op2) \
-__builtin_rvv_vset_v_f32m2_f32m8((vfloat32m8_t)(op0), (size_t)(op1), (vfloat32m2_t)(op2))
-#define vset_v_f32m4_f32m8(op0, op1, op2) \
-__builtin_rvv_vset_v_f32m4_f32m8((vfloat32m8_t)(op0), (size_t)(op1), (vfloat32m4_t)(op2))
-#define vsuxei16_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f32m2((float *)(op0), (vuint16m1_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint16m1_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f32m4((float *)(op0), (vuint16m2_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint16m2_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f32m8((float *)(op0), (vuint16m4_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f32m8_m((vbool4_t)(op0), (float *)(op1), (vuint16m4_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f32m2((float *)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f32m4((float *)(op0), (vuint32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f32m8((float *)(op0), (vuint32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f32m8_m((vbool4_t)(op0), (float *)(op1), (vuint32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f32m2((float *)(op0), (vuint64m4_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint64m4_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f32m4((float *)(op0), (vuint64m8_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint64m8_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsuxei64_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f32m2((float *)(op0), (vuint8mf2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint8mf2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f32m4((float *)(op0), (vuint8m1_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint8m1_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f32m8((float *)(op0), (vuint8m2_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f32m8_m((vbool4_t)(op0), (float *)(op1), (vuint8m2_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f32m2((float *)(op0), (vuint16m1_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint16m1_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f32m4((float *)(op0), (vuint16m2_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint16m2_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f32m8((float *)(op0), (vuint16m4_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f32m8_m((vbool4_t)(op0), (float *)(op1), (vuint16m4_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f32m2((float *)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f32m4((float *)(op0), (vuint32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f32m8((float *)(op0), (vuint32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f32m8_m((vbool4_t)(op0), (float *)(op1), (vuint32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f32m2((float *)(op0), (vuint64m4_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint64m4_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f32m4((float *)(op0), (vuint64m8_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint64m8_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vle32ff_v_f32m1(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_f32m1((const float *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (const float *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_f32m2(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_f32m2((const float *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (const float *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_f32m4(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_f32m4((const float *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (const float *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_f32m8(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_f32m8((const float *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (const float *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle32ff_v_f32mf2(op0, op1, op2) \
-__builtin_rvv_vle32ff_v_f32mf2((const float *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle32ff_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle32ff_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (const float *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vfneg_v_f32m1(op0, op1) \
-__builtin_rvv_vfneg_v_f32m1((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfneg_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfneg_v_f32m2(op0, op1) \
-__builtin_rvv_vfneg_v_f32m2((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfneg_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfneg_v_f32m4(op0, op1) \
-__builtin_rvv_vfneg_v_f32m4((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfneg_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfneg_v_f32m8(op0, op1) \
-__builtin_rvv_vfneg_v_f32m8((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfneg_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfneg_v_f32mf2(op0, op1) \
-__builtin_rvv_vfneg_v_f32mf2((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfneg_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vle32_v_f32m1(op0, op1) \
-__builtin_rvv_vle32_v_f32m1((const float *)(op0), (size_t)(op1))
-#define vle32_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (const float *)(op2), (size_t)(op3))
-#define vle32_v_f32m2(op0, op1) \
-__builtin_rvv_vle32_v_f32m2((const float *)(op0), (size_t)(op1))
-#define vle32_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (const float *)(op2), (size_t)(op3))
-#define vle32_v_f32m4(op0, op1) \
-__builtin_rvv_vle32_v_f32m4((const float *)(op0), (size_t)(op1))
-#define vle32_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (const float *)(op2), (size_t)(op3))
-#define vle32_v_f32m8(op0, op1) \
-__builtin_rvv_vle32_v_f32m8((const float *)(op0), (size_t)(op1))
-#define vle32_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (const float *)(op2), (size_t)(op3))
-#define vle32_v_f32mf2(op0, op1) \
-__builtin_rvv_vle32_v_f32mf2((const float *)(op0), (size_t)(op1))
-#define vle32_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle32_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (const float *)(op2), (size_t)(op3))
-#define vse32_v_f32m1(op0, op1, op2) \
-__builtin_rvv_vse32_v_f32m1((float *)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vse32_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vse32_v_f32m2(op0, op1, op2) \
-__builtin_rvv_vse32_v_f32m2((float *)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vse32_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vse32_v_f32m4(op0, op1, op2) \
-__builtin_rvv_vse32_v_f32m4((float *)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vse32_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vse32_v_f32m8(op0, op1, op2) \
-__builtin_rvv_vse32_v_f32m8((float *)(op0), (vfloat32m8_t)(op1), (size_t)(op2))
-#define vse32_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_f32m8_m((vbool4_t)(op0), (float *)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vse32_v_f32mf2(op0, op1, op2) \
-__builtin_rvv_vse32_v_f32mf2((float *)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vse32_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vlse32_v_f32m1(op0, op1, op2) \
-__builtin_rvv_vlse32_v_f32m1((const float *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (const float *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_f32m2(op0, op1, op2) \
-__builtin_rvv_vlse32_v_f32m2((const float *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (const float *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_f32m4(op0, op1, op2) \
-__builtin_rvv_vlse32_v_f32m4((const float *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (const float *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_f32m8(op0, op1, op2) \
-__builtin_rvv_vlse32_v_f32m8((const float *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (const float *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse32_v_f32mf2(op0, op1, op2) \
-__builtin_rvv_vlse32_v_f32mf2((const float *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse32_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse32_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (const float *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vfclass_v_u32m1(op0, op1) \
-__builtin_rvv_vfclass_v_u32m1((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfclass_v_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfclass_v_u32m2(op0, op1) \
-__builtin_rvv_vfclass_v_u32m2((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfclass_v_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfclass_v_u32m4(op0, op1) \
-__builtin_rvv_vfclass_v_u32m4((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfclass_v_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfclass_v_u32m8(op0, op1) \
-__builtin_rvv_vfclass_v_u32m8((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfclass_v_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfclass_v_u32mf2(op0, op1) \
-__builtin_rvv_vfclass_v_u32mf2((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfclass_v_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f32m1(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f32m1((vint32m1_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f32m2(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f32m2((vint32m2_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f32m4(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f32m4((vint32m4_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f32m8(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f32m8((vint32m8_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f32mf2(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f32mf2((vint32mf2_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f32m1(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f32m1((vuint32m1_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f32m2(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f32m2((vuint32m2_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f32m4(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f32m4((vuint32m4_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f32m8(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f32m8((vuint32m8_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f32mf2(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f32mf2((vuint32mf2_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i32m1(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i32m1((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i32m2(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i32m2((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i32m4(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i32m4((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i32m8(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i32m8((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i32mf2(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i32mf2((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u32m1(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u32m1((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u32m2(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u32m2((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u32m4(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u32m4((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u32m8(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u32m8((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u32mf2(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u32mf2((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i32m1(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i32m1((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i32m2(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i32m2((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i32m4(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i32m4((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i32m8(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i32m8((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i32mf2(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i32mf2((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u32m1(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u32m1((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u32m2(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u32m2((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u32m4(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u32m4((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u32m8(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u32m8((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u32mf2(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u32mf2((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfncvt_f_x_w_f32mf2(op0, op1) \
-__builtin_rvv_vfncvt_f_x_w_f32mf2((vint64m1_t)(op0), (size_t)(op1))
-#define vfncvt_f_x_w_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_x_w_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vfncvt_f_x_w_f32m1(op0, op1) \
-__builtin_rvv_vfncvt_f_x_w_f32m1((vint64m2_t)(op0), (size_t)(op1))
-#define vfncvt_f_x_w_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_x_w_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vfncvt_f_x_w_f32m2(op0, op1) \
-__builtin_rvv_vfncvt_f_x_w_f32m2((vint64m4_t)(op0), (size_t)(op1))
-#define vfncvt_f_x_w_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_x_w_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vfncvt_f_x_w_f32m4(op0, op1) \
-__builtin_rvv_vfncvt_f_x_w_f32m4((vint64m8_t)(op0), (size_t)(op1))
-#define vfncvt_f_x_w_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_x_w_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vfncvt_f_xu_w_f32mf2(op0, op1) \
-__builtin_rvv_vfncvt_f_xu_w_f32mf2((vuint64m1_t)(op0), (size_t)(op1))
-#define vfncvt_f_xu_w_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_xu_w_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vfncvt_f_xu_w_f32m1(op0, op1) \
-__builtin_rvv_vfncvt_f_xu_w_f32m1((vuint64m2_t)(op0), (size_t)(op1))
-#define vfncvt_f_xu_w_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_xu_w_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vfncvt_f_xu_w_f32m2(op0, op1) \
-__builtin_rvv_vfncvt_f_xu_w_f32m2((vuint64m4_t)(op0), (size_t)(op1))
-#define vfncvt_f_xu_w_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_xu_w_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vfncvt_f_xu_w_f32m4(op0, op1) \
-__builtin_rvv_vfncvt_f_xu_w_f32m4((vuint64m8_t)(op0), (size_t)(op1))
-#define vfncvt_f_xu_w_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_xu_w_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i16mf4(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i16mf4((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i16mf2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i16mf2((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i16m1(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i16m1((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i16m2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i16m2((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i16m4(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i16m4((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u16mf4(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u16mf4((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u16mf2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u16mf2((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u16m1(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u16m1((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u16m2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u16m2((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u16m4(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u16m4((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i16mf4(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i16mf4((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i16mf2(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i16mf2((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i16m1(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i16m1((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i16m2(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i16m2((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i16m4(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i16m4((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u16mf4(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u16mf4((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u16mf2(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u16mf2((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u16m1(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u16m1((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u16m2(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u16m2((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u16m4(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u16m4((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfrec7_v_f32m1(op0, op1) \
-__builtin_rvv_vfrec7_v_f32m1((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfrec7_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfrec7_v_f32m2(op0, op1) \
-__builtin_rvv_vfrec7_v_f32m2((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfrec7_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfrec7_v_f32m4(op0, op1) \
-__builtin_rvv_vfrec7_v_f32m4((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfrec7_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfrec7_v_f32m8(op0, op1) \
-__builtin_rvv_vfrec7_v_f32m8((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfrec7_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfrec7_v_f32mf2(op0, op1) \
-__builtin_rvv_vfrec7_v_f32mf2((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfrec7_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f32m1(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f32m1((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f32m2(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f32m2((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f32m4(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f32m4((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f32m8(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f32m8((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f32mf2(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f32mf2((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f32m1(op0, op1) \
-__builtin_rvv_vfsqrt_v_f32m1((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f32m2(op0, op1) \
-__builtin_rvv_vfsqrt_v_f32m2((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f32m4(op0, op1) \
-__builtin_rvv_vfsqrt_v_f32m4((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f32m8(op0, op1) \
-__builtin_rvv_vfsqrt_v_f32m8((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f32mf2(op0, op1) \
-__builtin_rvv_vfsqrt_v_f32mf2((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f32mf2(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f32mf2((vint16mf4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f32m1(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f32m1((vint16mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f32m2(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f32m2((vint16m1_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f32m4(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f32m4((vint16m2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f32m8(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f32m8((vint16m4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f32mf2(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f32mf2((vuint16mf4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f32m1(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f32m1((vuint16mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f32m2(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f32m2((vuint16m1_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f32m4(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f32m4((vuint16m2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f32m8(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f32m8((vuint16m4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_x_f_v_i64m1(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i64m1((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_x_f_v_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_x_f_v_i64m2(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i64m2((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_x_f_v_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_x_f_v_i64m4(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i64m4((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_x_f_v_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_x_f_v_i64m8(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i64m8((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_x_f_v_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_xu_f_v_u64m1(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m1((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_xu_f_v_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_xu_f_v_u64m2(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m2((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_xu_f_v_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_xu_f_v_u64m4(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m4((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_xu_f_v_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_xu_f_v_u64m8(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m8((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_xu_f_v_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfwcvt_x_f_v_i64m1(op0, op1) \
-__builtin_rvv_vfwcvt_x_f_v_i64m1((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_x_f_v_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_x_f_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_x_f_v_i64m2(op0, op1) \
-__builtin_rvv_vfwcvt_x_f_v_i64m2((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfwcvt_x_f_v_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_x_f_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwcvt_x_f_v_i64m4(op0, op1) \
-__builtin_rvv_vfwcvt_x_f_v_i64m4((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfwcvt_x_f_v_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_x_f_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwcvt_x_f_v_i64m8(op0, op1) \
-__builtin_rvv_vfwcvt_x_f_v_i64m8((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfwcvt_x_f_v_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_x_f_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfwcvt_xu_f_v_u64m1(op0, op1) \
-__builtin_rvv_vfwcvt_xu_f_v_u64m1((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_xu_f_v_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_xu_f_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_xu_f_v_u64m2(op0, op1) \
-__builtin_rvv_vfwcvt_xu_f_v_u64m2((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfwcvt_xu_f_v_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_xu_f_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwcvt_xu_f_v_u64m4(op0, op1) \
-__builtin_rvv_vfwcvt_xu_f_v_u64m4((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfwcvt_xu_f_v_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_xu_f_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwcvt_xu_f_v_u64m8(op0, op1) \
-__builtin_rvv_vfwcvt_xu_f_v_u64m8((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfwcvt_xu_f_v_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_xu_f_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vlmul_ext_v_f32mf2_f32m1(op0) \
-__builtin_rvv_vlmul_ext_v_f32mf2_f32m1((vfloat32mf2_t)(op0))
-#define vlmul_ext_v_f32m1_f32m2(op0) \
-__builtin_rvv_vlmul_ext_v_f32m1_f32m2((vfloat32m1_t)(op0))
-#define vlmul_ext_v_f32mf2_f32m2(op0) \
-__builtin_rvv_vlmul_ext_v_f32mf2_f32m2((vfloat32mf2_t)(op0))
-#define vlmul_ext_v_f32m1_f32m4(op0) \
-__builtin_rvv_vlmul_ext_v_f32m1_f32m4((vfloat32m1_t)(op0))
-#define vlmul_ext_v_f32m2_f32m4(op0) \
-__builtin_rvv_vlmul_ext_v_f32m2_f32m4((vfloat32m2_t)(op0))
-#define vlmul_ext_v_f32mf2_f32m4(op0) \
-__builtin_rvv_vlmul_ext_v_f32mf2_f32m4((vfloat32mf2_t)(op0))
-#define vlmul_ext_v_f32m1_f32m8(op0) \
-__builtin_rvv_vlmul_ext_v_f32m1_f32m8((vfloat32m1_t)(op0))
-#define vlmul_ext_v_f32m2_f32m8(op0) \
-__builtin_rvv_vlmul_ext_v_f32m2_f32m8((vfloat32m2_t)(op0))
-#define vlmul_ext_v_f32m4_f32m8(op0) \
-__builtin_rvv_vlmul_ext_v_f32m4_f32m8((vfloat32m4_t)(op0))
-#define vlmul_ext_v_f32mf2_f32m8(op0) \
-__builtin_rvv_vlmul_ext_v_f32mf2_f32m8((vfloat32mf2_t)(op0))
-#define vlmul_trunc_v_f32m1_f32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_f32m1_f32mf2((vfloat32m1_t)(op0))
-#define vlmul_trunc_v_f32m2_f32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_f32m2_f32mf2((vfloat32m2_t)(op0))
-#define vlmul_trunc_v_f32m4_f32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_f32m4_f32mf2((vfloat32m4_t)(op0))
-#define vlmul_trunc_v_f32m8_f32mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_f32m8_f32mf2((vfloat32m8_t)(op0))
-#define vlmul_trunc_v_f32m2_f32m1(op0) \
-__builtin_rvv_vlmul_trunc_v_f32m2_f32m1((vfloat32m2_t)(op0))
-#define vlmul_trunc_v_f32m4_f32m1(op0) \
-__builtin_rvv_vlmul_trunc_v_f32m4_f32m1((vfloat32m4_t)(op0))
-#define vlmul_trunc_v_f32m8_f32m1(op0) \
-__builtin_rvv_vlmul_trunc_v_f32m8_f32m1((vfloat32m8_t)(op0))
-#define vlmul_trunc_v_f32m4_f32m2(op0) \
-__builtin_rvv_vlmul_trunc_v_f32m4_f32m2((vfloat32m4_t)(op0))
-#define vlmul_trunc_v_f32m8_f32m2(op0) \
-__builtin_rvv_vlmul_trunc_v_f32m8_f32m2((vfloat32m8_t)(op0))
-#define vlmul_trunc_v_f32m8_f32m4(op0) \
-__builtin_rvv_vlmul_trunc_v_f32m8_f32m4((vfloat32m8_t)(op0))
-#define vreinterpret_v_i32m1_f32m1(op0) \
-__builtin_rvv_vreinterpret_v_i32m1_f32m1((vint32m1_t)(op0))
-#define vreinterpret_v_i32m2_f32m2(op0) \
-__builtin_rvv_vreinterpret_v_i32m2_f32m2((vint32m2_t)(op0))
-#define vreinterpret_v_i32m4_f32m4(op0) \
-__builtin_rvv_vreinterpret_v_i32m4_f32m4((vint32m4_t)(op0))
-#define vreinterpret_v_i32m8_f32m8(op0) \
-__builtin_rvv_vreinterpret_v_i32m8_f32m8((vint32m8_t)(op0))
-#define vreinterpret_v_i32mf2_f32mf2(op0) \
-__builtin_rvv_vreinterpret_v_i32mf2_f32mf2((vint32mf2_t)(op0))
-#define vreinterpret_v_u32m1_f32m1(op0) \
-__builtin_rvv_vreinterpret_v_u32m1_f32m1((vuint32m1_t)(op0))
-#define vreinterpret_v_u32m2_f32m2(op0) \
-__builtin_rvv_vreinterpret_v_u32m2_f32m2((vuint32m2_t)(op0))
-#define vreinterpret_v_u32m4_f32m4(op0) \
-__builtin_rvv_vreinterpret_v_u32m4_f32m4((vuint32m4_t)(op0))
-#define vreinterpret_v_u32m8_f32m8(op0) \
-__builtin_rvv_vreinterpret_v_u32m8_f32m8((vuint32m8_t)(op0))
-#define vreinterpret_v_u32mf2_f32mf2(op0) \
-__builtin_rvv_vreinterpret_v_u32mf2_f32mf2((vuint32mf2_t)(op0))
-#define vreinterpret_v_f32m1_i32m1(op0) \
-__builtin_rvv_vreinterpret_v_f32m1_i32m1((vfloat32m1_t)(op0))
-#define vreinterpret_v_f32m2_i32m2(op0) \
-__builtin_rvv_vreinterpret_v_f32m2_i32m2((vfloat32m2_t)(op0))
-#define vreinterpret_v_f32m4_i32m4(op0) \
-__builtin_rvv_vreinterpret_v_f32m4_i32m4((vfloat32m4_t)(op0))
-#define vreinterpret_v_f32m8_i32m8(op0) \
-__builtin_rvv_vreinterpret_v_f32m8_i32m8((vfloat32m8_t)(op0))
-#define vreinterpret_v_f32mf2_i32mf2(op0) \
-__builtin_rvv_vreinterpret_v_f32mf2_i32mf2((vfloat32mf2_t)(op0))
-#define vreinterpret_v_f32m1_u32m1(op0) \
-__builtin_rvv_vreinterpret_v_f32m1_u32m1((vfloat32m1_t)(op0))
-#define vreinterpret_v_f32m2_u32m2(op0) \
-__builtin_rvv_vreinterpret_v_f32m2_u32m2((vfloat32m2_t)(op0))
-#define vreinterpret_v_f32m4_u32m4(op0) \
-__builtin_rvv_vreinterpret_v_f32m4_u32m4((vfloat32m4_t)(op0))
-#define vreinterpret_v_f32m8_u32m8(op0) \
-__builtin_rvv_vreinterpret_v_f32m8_u32m8((vfloat32m8_t)(op0))
-#define vreinterpret_v_f32mf2_u32mf2(op0) \
-__builtin_rvv_vreinterpret_v_f32mf2_u32mf2((vfloat32mf2_t)(op0))
-#define vundefined_f32m1() \
-__builtin_rvv_vundefined_f32m1()
-#define vundefined_f32m2() \
-__builtin_rvv_vundefined_f32m2()
-#define vundefined_f32m4() \
-__builtin_rvv_vundefined_f32m4()
-#define vundefined_f32m8() \
-__builtin_rvv_vundefined_f32m8()
-#define vundefined_f32mf2() \
-__builtin_rvv_vundefined_f32mf2()
-#endif
-
-#if defined(__riscv_d)
-#define vlse64_v_f64m1(op0, op1, op2) \
-__builtin_rvv_vlse64_v_f64m1((const double *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (const double *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse64_v_f64m2(op0, op1, op2) \
-__builtin_rvv_vlse64_v_f64m2((const double *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (const double *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse64_v_f64m4(op0, op1, op2) \
-__builtin_rvv_vlse64_v_f64m4((const double *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (const double *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse64_v_f64m8(op0, op1, op2) \
-__builtin_rvv_vlse64_v_f64m8((const double *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse64_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse64_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (const double *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vsse64_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_f64m1((double *)(op0), (ptrdiff_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vsse64_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsse64_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_f64m2((double *)(op0), (ptrdiff_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vsse64_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsse64_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_f64m4((double *)(op0), (ptrdiff_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vsse64_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsse64_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsse64_v_f64m8((double *)(op0), (ptrdiff_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vsse64_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse64_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vluxei8_v_f64m1(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f64m1((const double *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vluxei8_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (const double *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxei8_v_f64m2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f64m2((const double *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vluxei8_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (const double *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_f64m4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f64m4((const double *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vluxei8_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (const double *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_f64m8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f64m8((const double *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vluxei8_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (const double *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_f64m1(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f64m1((const double *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vluxei16_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (const double *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxei16_v_f64m2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f64m2((const double *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vluxei16_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (const double *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxei16_v_f64m4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f64m4((const double *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vluxei16_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (const double *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_f64m8(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f64m8((const double *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vluxei16_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (const double *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_f64m1(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f64m1((const double *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vluxei32_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (const double *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxei32_v_f64m2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f64m2((const double *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vluxei32_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (const double *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxei32_v_f64m4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f64m4((const double *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vluxei32_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (const double *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_f64m8(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f64m8((const double *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vluxei32_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (const double *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_f64m1(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f64m1((const double *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vluxei64_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (const double *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxei64_v_f64m2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f64m2((const double *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vluxei64_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (const double *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxei64_v_f64m4(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f64m4((const double *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vluxei64_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (const double *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_f64m8(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f64m8((const double *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vluxei64_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (const double *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxei8_v_f64m1(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f64m1((const double *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vloxei8_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (const double *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxei8_v_f64m2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f64m2((const double *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vloxei8_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (const double *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxei8_v_f64m4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f64m4((const double *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vloxei8_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (const double *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxei8_v_f64m8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f64m8((const double *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vloxei8_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (const double *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_f64m1(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f64m1((const double *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vloxei16_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (const double *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxei16_v_f64m2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f64m2((const double *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vloxei16_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (const double *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxei16_v_f64m4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f64m4((const double *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vloxei16_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (const double *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_f64m8(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f64m8((const double *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vloxei16_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (const double *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_f64m1(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f64m1((const double *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vloxei32_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (const double *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxei32_v_f64m2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f64m2((const double *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vloxei32_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (const double *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxei32_v_f64m4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f64m4((const double *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vloxei32_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (const double *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_f64m8(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f64m8((const double *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vloxei32_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (const double *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_f64m1(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f64m1((const double *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vloxei64_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (const double *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxei64_v_f64m2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f64m2((const double *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vloxei64_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (const double *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxei64_v_f64m4(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f64m4((const double *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vloxei64_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (const double *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_f64m8(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f64m8((const double *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vloxei64_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (const double *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vmv_v_v_f64m1(op0, op1) \
-__builtin_rvv_vmv_v_v_f64m1((vfloat64m1_t)(op0), (size_t)(op1))
-#define vmv_v_v_f64m2(op0, op1) \
-__builtin_rvv_vmv_v_v_f64m2((vfloat64m2_t)(op0), (size_t)(op1))
-#define vmv_v_v_f64m4(op0, op1) \
-__builtin_rvv_vmv_v_v_f64m4((vfloat64m4_t)(op0), (size_t)(op1))
-#define vmv_v_v_f64m8(op0, op1) \
-__builtin_rvv_vmv_v_v_f64m8((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfadd_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vfadd_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfadd_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vfadd_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfadd_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vfadd_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfadd_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vfadd_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfadd_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfadd_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfadd_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfadd_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfadd_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfadd_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfadd_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfadd_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsub_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vfsub_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfsub_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vfsub_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfsub_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vfsub_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfsub_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vfsub_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfsub_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsub_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsub_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsub_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsub_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsub_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsub_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsub_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfrsub_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfrsub_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfrsub_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfrsub_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfrsub_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfrsub_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfrsub_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfrsub_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmul_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vfmul_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmul_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vfmul_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfmul_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vfmul_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfmul_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vfmul_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfmul_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmul_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmul_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmul_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmul_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmul_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmul_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmul_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfdiv_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfdiv_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfdiv_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfdiv_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfdiv_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfdiv_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfdiv_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfdiv_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfdiv_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfrdiv_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfrdiv_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfrdiv_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfrdiv_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfrdiv_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfrdiv_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfrdiv_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfrdiv_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmacc_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (double)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (double)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (double)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (double)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (double)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (double)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (double)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (double)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (double)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (double)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (double)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (double)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (double)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (double)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (double)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (double)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (double)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (double)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (double)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (double)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (double)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (double)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (double)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (double)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (double)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (double)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (double)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (double)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (double)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (double)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (double)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (double)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfmin_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vfmin_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmin_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vfmin_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfmin_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vfmin_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfmin_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vfmin_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfmin_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmin_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmin_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmin_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmin_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmin_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmin_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmin_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmax_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vfmax_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmax_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vfmax_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfmax_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vfmax_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfmax_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vfmax_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfmax_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmax_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmax_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmax_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmax_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmax_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfmax_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmax_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnj_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfsgnj_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnj_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnj_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnj_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnj_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnj_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnj_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnj_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfabs_v_f64m1(op0, op1) \
-__builtin_rvv_vfabs_v_f64m1((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfabs_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfabs_v_f64m2(op0, op1) \
-__builtin_rvv_vfabs_v_f64m2((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfabs_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfabs_v_f64m4(op0, op1) \
-__builtin_rvv_vfabs_v_f64m4((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfabs_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfabs_v_f64m8(op0, op1) \
-__builtin_rvv_vfabs_v_f64m8((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfabs_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vmfeq_vv_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f64m1_b64((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f64m2_b32((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f64m4_b16((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f64m8_b8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vmfeq_vf_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f64m1_b64((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfeq_vf_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfeq_vf_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f64m2_b32((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfeq_vf_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfeq_vf_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f64m4_b16((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfeq_vf_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfeq_vf_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f64m8_b8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfeq_vf_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfne_vv_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f64m1_b64((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vmfne_vv_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vmfne_vv_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f64m2_b32((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vmfne_vv_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vmfne_vv_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f64m4_b16((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vmfne_vv_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vmfne_vv_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f64m8_b8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vmfne_vv_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vmfne_vf_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f64m1_b64((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfne_vf_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfne_vf_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f64m2_b32((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfne_vf_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfne_vf_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f64m4_b16((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfne_vf_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfne_vf_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f64m8_b8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfne_vf_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vmflt_vv_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f64m1_b64((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vmflt_vv_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vmflt_vv_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f64m2_b32((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vmflt_vv_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vmflt_vv_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f64m4_b16((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vmflt_vv_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vmflt_vv_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f64m8_b8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vmflt_vv_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vmflt_vf_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f64m1_b64((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vmflt_vf_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vmflt_vf_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f64m2_b32((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vmflt_vf_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vmflt_vf_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f64m4_b16((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vmflt_vf_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vmflt_vf_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f64m8_b8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vmflt_vf_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfle_vv_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f64m1_b64((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vmfle_vv_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vmfle_vv_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f64m2_b32((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vmfle_vv_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vmfle_vv_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f64m4_b16((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vmfle_vv_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vmfle_vv_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f64m8_b8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vmfle_vv_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vmfle_vf_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f64m1_b64((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfle_vf_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfle_vf_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f64m2_b32((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfle_vf_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfle_vf_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f64m4_b16((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfle_vf_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfle_vf_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f64m8_b8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfle_vf_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfgt_vv_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f64m1_b64((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f64m2_b32((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f64m4_b16((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f64m8_b8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vmfgt_vf_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f64m1_b64((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfgt_vf_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfgt_vf_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f64m2_b32((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfgt_vf_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfgt_vf_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f64m4_b16((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfgt_vf_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfgt_vf_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f64m8_b8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfgt_vf_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfge_vv_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f64m1_b64((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vmfge_vv_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vmfge_vv_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f64m2_b32((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vmfge_vv_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vmfge_vv_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f64m4_b16((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vmfge_vv_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vmfge_vv_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f64m8_b8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vmfge_vv_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vmfge_vf_f64m1_b64(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f64m1_b64((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfge_vf_f64m1_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f64m1_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfge_vf_f64m2_b32(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f64m2_b32((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfge_vf_f64m2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f64m2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfge_vf_f64m4_b16(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f64m4_b16((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfge_vf_f64m4_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f64m4_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vmfge_vf_f64m8_b8(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f64m8_b8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vmfge_vf_f64m8_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f64m8_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vmerge_vvm_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f64m1((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f64m2((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f64m4((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f64m8((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfmerge_vfm_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f64m1((vbool64_t)(op0), (vfloat64m1_t)(op1), (double)(op2), (size_t)(op3))
-#define vfmerge_vfm_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f64m2((vbool32_t)(op0), (vfloat64m2_t)(op1), (double)(op2), (size_t)(op3))
-#define vfmerge_vfm_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f64m4((vbool16_t)(op0), (vfloat64m4_t)(op1), (double)(op2), (size_t)(op3))
-#define vfmerge_vfm_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f64m8((vbool8_t)(op0), (vfloat64m8_t)(op1), (double)(op2), (size_t)(op3))
-#define vfmv_v_f_f64m1(op0, op1) \
-__builtin_rvv_vfmv_v_f_f64m1((double)(op0), (size_t)(op1))
-#define vfmv_v_f_f64m2(op0, op1) \
-__builtin_rvv_vfmv_v_f_f64m2((double)(op0), (size_t)(op1))
-#define vfmv_v_f_f64m4(op0, op1) \
-__builtin_rvv_vfmv_v_f_f64m4((double)(op0), (size_t)(op1))
-#define vfmv_v_f_f64m8(op0, op1) \
-__builtin_rvv_vfmv_v_f_f64m8((double)(op0), (size_t)(op1))
-#define vfredmax_vs_f64m1_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f64m1_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f64m1_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f64m1_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f64m2_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f64m2_f64m1((vfloat64m1_t)(op0), (vfloat64m2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f64m2_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f64m2_f64m1_m((vbool32_t)(op0), (vfloat64m1_t)(op1), (vfloat64m2_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f64m4_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f64m4_f64m1((vfloat64m1_t)(op0), (vfloat64m4_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f64m4_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f64m4_f64m1_m((vbool16_t)(op0), (vfloat64m1_t)(op1), (vfloat64m4_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f64m8_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f64m8_f64m1((vfloat64m1_t)(op0), (vfloat64m8_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f64m8_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f64m8_f64m1_m((vbool8_t)(op0), (vfloat64m1_t)(op1), (vfloat64m8_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f64m1_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f64m1_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f64m1_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f64m1_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f64m2_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f64m2_f64m1((vfloat64m1_t)(op0), (vfloat64m2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f64m2_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f64m2_f64m1_m((vbool32_t)(op0), (vfloat64m1_t)(op1), (vfloat64m2_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f64m4_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f64m4_f64m1((vfloat64m1_t)(op0), (vfloat64m4_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f64m4_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f64m4_f64m1_m((vbool16_t)(op0), (vfloat64m1_t)(op1), (vfloat64m4_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f64m8_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f64m8_f64m1((vfloat64m1_t)(op0), (vfloat64m8_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f64m8_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f64m8_f64m1_m((vbool8_t)(op0), (vfloat64m1_t)(op1), (vfloat64m8_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f64m1_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f64m1_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f64m1_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f64m1_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f64m2_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f64m2_f64m1((vfloat64m1_t)(op0), (vfloat64m2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f64m2_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f64m2_f64m1_m((vbool32_t)(op0), (vfloat64m1_t)(op1), (vfloat64m2_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f64m4_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f64m4_f64m1((vfloat64m1_t)(op0), (vfloat64m4_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f64m4_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f64m4_f64m1_m((vbool16_t)(op0), (vfloat64m1_t)(op1), (vfloat64m4_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f64m8_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f64m8_f64m1((vfloat64m1_t)(op0), (vfloat64m8_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f64m8_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f64m8_f64m1_m((vbool8_t)(op0), (vfloat64m1_t)(op1), (vfloat64m8_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f64m1_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f64m1_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f64m1_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f64m1_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f64m2_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f64m2_f64m1((vfloat64m1_t)(op0), (vfloat64m2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f64m2_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f64m2_f64m1_m((vbool32_t)(op0), (vfloat64m1_t)(op1), (vfloat64m2_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f64m4_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f64m4_f64m1((vfloat64m1_t)(op0), (vfloat64m4_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f64m4_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f64m4_f64m1_m((vbool16_t)(op0), (vfloat64m1_t)(op1), (vfloat64m4_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f64m8_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f64m8_f64m1((vfloat64m1_t)(op0), (vfloat64m8_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f64m8_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f64m8_f64m1_m((vbool8_t)(op0), (vfloat64m1_t)(op1), (vfloat64m8_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfmv_f_s_f64m1_f64(op0) \
-__builtin_rvv_vfmv_f_s_f64m1_f64((vfloat64m1_t)(op0))
-#define vfmv_f_s_f64m2_f64(op0) \
-__builtin_rvv_vfmv_f_s_f64m2_f64((vfloat64m2_t)(op0))
-#define vfmv_f_s_f64m4_f64(op0) \
-__builtin_rvv_vfmv_f_s_f64m4_f64((vfloat64m4_t)(op0))
-#define vfmv_f_s_f64m8_f64(op0) \
-__builtin_rvv_vfmv_f_s_f64m8_f64((vfloat64m8_t)(op0))
-#define vfmv_s_f_f64m1(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmv_s_f_f64m2(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmv_s_f_f64m4(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfmv_s_f_f64m8(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vslideup_vx_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f64m1((vfloat64m1_t)(op0), (vfloat64m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f64m2((vfloat64m2_t)(op0), (vfloat64m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f64m4((vfloat64m4_t)(op0), (vfloat64m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f64m8((vfloat64m8_t)(op0), (vfloat64m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vfslide1up_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfslide1up_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfslide1up_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfslide1up_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfslide1up_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfslide1up_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfslide1up_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfslide1up_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vfslide1down_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f64m1((vfloat64m1_t)(op0), (double)(op1), (size_t)(op2))
-#define vfslide1down_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (double)(op3), (size_t)(op4))
-#define vfslide1down_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f64m2((vfloat64m2_t)(op0), (double)(op1), (size_t)(op2))
-#define vfslide1down_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (double)(op3), (size_t)(op4))
-#define vfslide1down_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f64m4((vfloat64m4_t)(op0), (double)(op1), (size_t)(op2))
-#define vfslide1down_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (double)(op3), (size_t)(op4))
-#define vfslide1down_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f64m8((vfloat64m8_t)(op0), (double)(op1), (size_t)(op2))
-#define vfslide1down_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (double)(op3), (size_t)(op4))
-#define vrgather_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f64m1((vfloat64m1_t)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vrgather_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vrgather_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f64m2((vfloat64m2_t)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vrgather_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f64m4((vfloat64m4_t)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vrgather_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vrgather_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f64m8((vfloat64m8_t)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vrgather_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vrgather_vx_f64m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f64m1((vfloat64m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f64m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f64m2((vfloat64m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f64m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f64m4((vfloat64m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f64m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f64m8((vfloat64m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f64m1((vfloat64m1_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f64m2((vfloat64m2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f64m4((vfloat64m4_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f64m8((vfloat64m8_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vcompress_vm_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f64m1((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vcompress_vm_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f64m2((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vcompress_vm_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f64m4((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vcompress_vm_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f64m8((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vget_v_f64m2_f64m1(op0, op1) \
-__builtin_rvv_vget_v_f64m2_f64m1((vfloat64m2_t)(op0), (size_t)(op1))
-#define vget_v_f64m4_f64m1(op0, op1) \
-__builtin_rvv_vget_v_f64m4_f64m1((vfloat64m4_t)(op0), (size_t)(op1))
-#define vget_v_f64m8_f64m1(op0, op1) \
-__builtin_rvv_vget_v_f64m8_f64m1((vfloat64m8_t)(op0), (size_t)(op1))
-#define vget_v_f64m4_f64m2(op0, op1) \
-__builtin_rvv_vget_v_f64m4_f64m2((vfloat64m4_t)(op0), (size_t)(op1))
-#define vget_v_f64m8_f64m2(op0, op1) \
-__builtin_rvv_vget_v_f64m8_f64m2((vfloat64m8_t)(op0), (size_t)(op1))
-#define vget_v_f64m8_f64m4(op0, op1) \
-__builtin_rvv_vget_v_f64m8_f64m4((vfloat64m8_t)(op0), (size_t)(op1))
-#define vset_v_f64m1_f64m2(op0, op1, op2) \
-__builtin_rvv_vset_v_f64m1_f64m2((vfloat64m2_t)(op0), (size_t)(op1), (vfloat64m1_t)(op2))
-#define vset_v_f64m1_f64m4(op0, op1, op2) \
-__builtin_rvv_vset_v_f64m1_f64m4((vfloat64m4_t)(op0), (size_t)(op1), (vfloat64m1_t)(op2))
-#define vset_v_f64m2_f64m4(op0, op1, op2) \
-__builtin_rvv_vset_v_f64m2_f64m4((vfloat64m4_t)(op0), (size_t)(op1), (vfloat64m2_t)(op2))
-#define vset_v_f64m1_f64m8(op0, op1, op2) \
-__builtin_rvv_vset_v_f64m1_f64m8((vfloat64m8_t)(op0), (size_t)(op1), (vfloat64m1_t)(op2))
-#define vset_v_f64m2_f64m8(op0, op1, op2) \
-__builtin_rvv_vset_v_f64m2_f64m8((vfloat64m8_t)(op0), (size_t)(op1), (vfloat64m2_t)(op2))
-#define vset_v_f64m4_f64m8(op0, op1, op2) \
-__builtin_rvv_vset_v_f64m4_f64m8((vfloat64m8_t)(op0), (size_t)(op1), (vfloat64m4_t)(op2))
-#define vsuxei8_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f64m2((double *)(op0), (vuint8mf4_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint8mf4_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f64m4((double *)(op0), (vuint8mf2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint8mf2_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f64m8((double *)(op0), (vuint8m1_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint8m1_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f64m2((double *)(op0), (vuint16mf2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint16mf2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f64m4((double *)(op0), (vuint16m1_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint16m1_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f64m8((double *)(op0), (vuint16m2_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint16m2_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f64m2((double *)(op0), (vuint32m1_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint32m1_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f64m4((double *)(op0), (vuint32m2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint32m2_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f64m8((double *)(op0), (vuint32m4_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint32m4_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vsuxei64_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f64m2((double *)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f64m4((double *)(op0), (vuint64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsuxei64_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f64m8((double *)(op0), (vuint64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f64m2((double *)(op0), (vuint8mf4_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint8mf4_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f64m4((double *)(op0), (vuint8mf2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint8mf2_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f64m8((double *)(op0), (vuint8m1_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint8m1_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f64m2((double *)(op0), (vuint16mf2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint16mf2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f64m4((double *)(op0), (vuint16m1_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint16m1_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f64m8((double *)(op0), (vuint16m2_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint16m2_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f64m2((double *)(op0), (vuint32m1_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint32m1_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f64m4((double *)(op0), (vuint32m2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint32m2_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f64m8((double *)(op0), (vuint32m4_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint32m4_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f64m2((double *)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f64m4((double *)(op0), (vuint64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f64m8((double *)(op0), (vuint64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vle64ff_v_f64m1(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_f64m1((const double *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (const double *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle64ff_v_f64m2(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_f64m2((const double *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (const double *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle64ff_v_f64m4(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_f64m4((const double *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (const double *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle64ff_v_f64m8(op0, op1, op2) \
-__builtin_rvv_vle64ff_v_f64m8((const double *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle64ff_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle64ff_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (const double *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vfneg_v_f64m1(op0, op1) \
-__builtin_rvv_vfneg_v_f64m1((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfneg_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfneg_v_f64m2(op0, op1) \
-__builtin_rvv_vfneg_v_f64m2((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfneg_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfneg_v_f64m4(op0, op1) \
-__builtin_rvv_vfneg_v_f64m4((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfneg_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfneg_v_f64m8(op0, op1) \
-__builtin_rvv_vfneg_v_f64m8((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfneg_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vle64_v_f64m1(op0, op1) \
-__builtin_rvv_vle64_v_f64m1((const double *)(op0), (size_t)(op1))
-#define vle64_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (const double *)(op2), (size_t)(op3))
-#define vle64_v_f64m2(op0, op1) \
-__builtin_rvv_vle64_v_f64m2((const double *)(op0), (size_t)(op1))
-#define vle64_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (const double *)(op2), (size_t)(op3))
-#define vle64_v_f64m4(op0, op1) \
-__builtin_rvv_vle64_v_f64m4((const double *)(op0), (size_t)(op1))
-#define vle64_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (const double *)(op2), (size_t)(op3))
-#define vle64_v_f64m8(op0, op1) \
-__builtin_rvv_vle64_v_f64m8((const double *)(op0), (size_t)(op1))
-#define vle64_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle64_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (const double *)(op2), (size_t)(op3))
-#define vse64_v_f64m1(op0, op1, op2) \
-__builtin_rvv_vse64_v_f64m1((double *)(op0), (vfloat64m1_t)(op1), (size_t)(op2))
-#define vse64_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vse64_v_f64m2(op0, op1, op2) \
-__builtin_rvv_vse64_v_f64m2((double *)(op0), (vfloat64m2_t)(op1), (size_t)(op2))
-#define vse64_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vse64_v_f64m4(op0, op1, op2) \
-__builtin_rvv_vse64_v_f64m4((double *)(op0), (vfloat64m4_t)(op1), (size_t)(op2))
-#define vse64_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vse64_v_f64m8(op0, op1, op2) \
-__builtin_rvv_vse64_v_f64m8((double *)(op0), (vfloat64m8_t)(op1), (size_t)(op2))
-#define vse64_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse64_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfclass_v_u64m1(op0, op1) \
-__builtin_rvv_vfclass_v_u64m1((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfclass_v_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfclass_v_u64m2(op0, op1) \
-__builtin_rvv_vfclass_v_u64m2((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfclass_v_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfclass_v_u64m4(op0, op1) \
-__builtin_rvv_vfclass_v_u64m4((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfclass_v_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfclass_v_u64m8(op0, op1) \
-__builtin_rvv_vfclass_v_u64m8((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfclass_v_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f64m1(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f64m1((vint64m1_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f64m2(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f64m2((vint64m2_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f64m4(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f64m4((vint64m4_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f64m8(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f64m8((vint64m8_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f64m1(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f64m1((vuint64m1_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f64m2(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f64m2((vuint64m2_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f64m4(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f64m4((vuint64m4_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f64m8(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f64m8((vuint64m8_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i64m1(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i64m1((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i64m2(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i64m2((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i64m4(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i64m4((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i64m8(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i64m8((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u64m1(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u64m1((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u64m2(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u64m2((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u64m4(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u64m4((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u64m8(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u64m8((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i64m1(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i64m1((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i64m1_m((vbool64_t)(op0), (vint64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i64m2(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i64m2((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i64m2_m((vbool32_t)(op0), (vint64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i64m4(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i64m4((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i64m4_m((vbool16_t)(op0), (vint64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i64m8(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i64m8((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i64m8_m((vbool8_t)(op0), (vint64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u64m1(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u64m1((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u64m1_m((vbool64_t)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u64m2(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u64m2((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u64m2_m((vbool32_t)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u64m4(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u64m4((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u64m4_m((vbool16_t)(op0), (vuint64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u64m8(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u64m8((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u64m8_m((vbool8_t)(op0), (vuint64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i32mf2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i32mf2((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i32m1(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i32m1((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i32m2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i32m2((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i32m4(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i32m4((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u32mf2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u32mf2((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u32m1(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u32m1((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u32m2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u32m2((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u32m4(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u32m4((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i32mf2(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i32mf2((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i32m1(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i32m1((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i32m2(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i32m2((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i32m4(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i32m4((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u32mf2(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u32mf2((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u32m1(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u32m1((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u32m2(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u32m2((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u32m4(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u32m4((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfrec7_v_f64m1(op0, op1) \
-__builtin_rvv_vfrec7_v_f64m1((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfrec7_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfrec7_v_f64m2(op0, op1) \
-__builtin_rvv_vfrec7_v_f64m2((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfrec7_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfrec7_v_f64m4(op0, op1) \
-__builtin_rvv_vfrec7_v_f64m4((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfrec7_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfrec7_v_f64m8(op0, op1) \
-__builtin_rvv_vfrec7_v_f64m8((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfrec7_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f64m1(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f64m1((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f64m2(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f64m2((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f64m4(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f64m4((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f64m8(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f64m8((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f64m1(op0, op1) \
-__builtin_rvv_vfsqrt_v_f64m1((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f64m2(op0, op1) \
-__builtin_rvv_vfsqrt_v_f64m2((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f64m4(op0, op1) \
-__builtin_rvv_vfsqrt_v_f64m4((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f64m8(op0, op1) \
-__builtin_rvv_vfsqrt_v_f64m8((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f64m1(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f64m1((vint32mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f64m2(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f64m2((vint32m1_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f64m4(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f64m4((vint32m2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f64m8(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f64m8((vint32m4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f64m1(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f64m1((vuint32mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f64m2(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f64m2((vuint32m1_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f64m4(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f64m4((vuint32m2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f64m8(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f64m8((vuint32m4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vlmul_ext_v_f64m1_f64m2(op0) \
-__builtin_rvv_vlmul_ext_v_f64m1_f64m2((vfloat64m1_t)(op0))
-#define vlmul_ext_v_f64m1_f64m4(op0) \
-__builtin_rvv_vlmul_ext_v_f64m1_f64m4((vfloat64m1_t)(op0))
-#define vlmul_ext_v_f64m2_f64m4(op0) \
-__builtin_rvv_vlmul_ext_v_f64m2_f64m4((vfloat64m2_t)(op0))
-#define vlmul_ext_v_f64m1_f64m8(op0) \
-__builtin_rvv_vlmul_ext_v_f64m1_f64m8((vfloat64m1_t)(op0))
-#define vlmul_ext_v_f64m2_f64m8(op0) \
-__builtin_rvv_vlmul_ext_v_f64m2_f64m8((vfloat64m2_t)(op0))
-#define vlmul_ext_v_f64m4_f64m8(op0) \
-__builtin_rvv_vlmul_ext_v_f64m4_f64m8((vfloat64m4_t)(op0))
-#define vlmul_trunc_v_f64m2_f64m1(op0) \
-__builtin_rvv_vlmul_trunc_v_f64m2_f64m1((vfloat64m2_t)(op0))
-#define vlmul_trunc_v_f64m4_f64m1(op0) \
-__builtin_rvv_vlmul_trunc_v_f64m4_f64m1((vfloat64m4_t)(op0))
-#define vlmul_trunc_v_f64m8_f64m1(op0) \
-__builtin_rvv_vlmul_trunc_v_f64m8_f64m1((vfloat64m8_t)(op0))
-#define vlmul_trunc_v_f64m4_f64m2(op0) \
-__builtin_rvv_vlmul_trunc_v_f64m4_f64m2((vfloat64m4_t)(op0))
-#define vlmul_trunc_v_f64m8_f64m2(op0) \
-__builtin_rvv_vlmul_trunc_v_f64m8_f64m2((vfloat64m8_t)(op0))
-#define vlmul_trunc_v_f64m8_f64m4(op0) \
-__builtin_rvv_vlmul_trunc_v_f64m8_f64m4((vfloat64m8_t)(op0))
-#define vreinterpret_v_i64m1_f64m1(op0) \
-__builtin_rvv_vreinterpret_v_i64m1_f64m1((vint64m1_t)(op0))
-#define vreinterpret_v_i64m2_f64m2(op0) \
-__builtin_rvv_vreinterpret_v_i64m2_f64m2((vint64m2_t)(op0))
-#define vreinterpret_v_i64m4_f64m4(op0) \
-__builtin_rvv_vreinterpret_v_i64m4_f64m4((vint64m4_t)(op0))
-#define vreinterpret_v_i64m8_f64m8(op0) \
-__builtin_rvv_vreinterpret_v_i64m8_f64m8((vint64m8_t)(op0))
-#define vreinterpret_v_u64m1_f64m1(op0) \
-__builtin_rvv_vreinterpret_v_u64m1_f64m1((vuint64m1_t)(op0))
-#define vreinterpret_v_u64m2_f64m2(op0) \
-__builtin_rvv_vreinterpret_v_u64m2_f64m2((vuint64m2_t)(op0))
-#define vreinterpret_v_u64m4_f64m4(op0) \
-__builtin_rvv_vreinterpret_v_u64m4_f64m4((vuint64m4_t)(op0))
-#define vreinterpret_v_u64m8_f64m8(op0) \
-__builtin_rvv_vreinterpret_v_u64m8_f64m8((vuint64m8_t)(op0))
-#define vreinterpret_v_f64m1_i64m1(op0) \
-__builtin_rvv_vreinterpret_v_f64m1_i64m1((vfloat64m1_t)(op0))
-#define vreinterpret_v_f64m2_i64m2(op0) \
-__builtin_rvv_vreinterpret_v_f64m2_i64m2((vfloat64m2_t)(op0))
-#define vreinterpret_v_f64m4_i64m4(op0) \
-__builtin_rvv_vreinterpret_v_f64m4_i64m4((vfloat64m4_t)(op0))
-#define vreinterpret_v_f64m8_i64m8(op0) \
-__builtin_rvv_vreinterpret_v_f64m8_i64m8((vfloat64m8_t)(op0))
-#define vreinterpret_v_f64m1_u64m1(op0) \
-__builtin_rvv_vreinterpret_v_f64m1_u64m1((vfloat64m1_t)(op0))
-#define vreinterpret_v_f64m2_u64m2(op0) \
-__builtin_rvv_vreinterpret_v_f64m2_u64m2((vfloat64m2_t)(op0))
-#define vreinterpret_v_f64m4_u64m4(op0) \
-__builtin_rvv_vreinterpret_v_f64m4_u64m4((vfloat64m4_t)(op0))
-#define vreinterpret_v_f64m8_u64m8(op0) \
-__builtin_rvv_vreinterpret_v_f64m8_u64m8((vfloat64m8_t)(op0))
-#define vundefined_f64m1() \
-__builtin_rvv_vundefined_f64m1()
-#define vundefined_f64m2() \
-__builtin_rvv_vundefined_f64m2()
-#define vundefined_f64m4() \
-__builtin_rvv_vundefined_f64m4()
-#define vundefined_f64m8() \
-__builtin_rvv_vundefined_f64m8()
-#endif
-
-#if defined(__riscv_f) && defined(__riscv_d)
-#define vfwadd_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfwadd_vv_f64m1((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfwadd_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwadd_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfwadd_vv_f64m2((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfwadd_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwadd_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfwadd_vv_f64m4((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfwadd_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwadd_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfwadd_vv_f64m8((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfwadd_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwadd_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfwadd_vf_f64m1((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwadd_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwadd_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfwadd_vf_f64m2((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwadd_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwadd_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfwadd_vf_f64m4((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwadd_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwadd_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfwadd_vf_f64m8((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwadd_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwsub_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfwsub_vv_f64m1((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfwsub_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwsub_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfwsub_vv_f64m2((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfwsub_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwsub_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfwsub_vv_f64m4((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfwsub_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwsub_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfwsub_vv_f64m8((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfwsub_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwsub_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfwsub_vf_f64m1((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwsub_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwsub_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfwsub_vf_f64m2((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwsub_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwsub_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfwsub_vf_f64m4((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwsub_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwsub_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfwsub_vf_f64m8((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwsub_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwadd_wv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfwadd_wv_f64m1((vfloat64m1_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfwadd_wv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwadd_wv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfwadd_wv_f64m2((vfloat64m2_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfwadd_wv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwadd_wv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfwadd_wv_f64m4((vfloat64m4_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfwadd_wv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwadd_wv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfwadd_wv_f64m8((vfloat64m8_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfwadd_wv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwadd_wf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfwadd_wf_f64m1((vfloat64m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwadd_wf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwadd_wf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfwadd_wf_f64m2((vfloat64m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwadd_wf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwadd_wf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfwadd_wf_f64m4((vfloat64m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwadd_wf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwadd_wf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfwadd_wf_f64m8((vfloat64m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwadd_wf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwsub_wv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfwsub_wv_f64m1((vfloat64m1_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfwsub_wv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwsub_wv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfwsub_wv_f64m2((vfloat64m2_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfwsub_wv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwsub_wv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfwsub_wv_f64m4((vfloat64m4_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfwsub_wv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwsub_wv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfwsub_wv_f64m8((vfloat64m8_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfwsub_wv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwsub_wf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfwsub_wf_f64m1((vfloat64m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwsub_wf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwsub_wf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfwsub_wf_f64m2((vfloat64m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwsub_wf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwsub_wf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfwsub_wf_f64m4((vfloat64m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwsub_wf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwsub_wf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfwsub_wf_f64m8((vfloat64m8_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwsub_wf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat64m8_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwmul_vv_f64m1(op0, op1, op2) \
-__builtin_rvv_vfwmul_vv_f64m1((vfloat32mf2_t)(op0), (vfloat32mf2_t)(op1), (size_t)(op2))
-#define vfwmul_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwmul_vv_f64m2(op0, op1, op2) \
-__builtin_rvv_vfwmul_vv_f64m2((vfloat32m1_t)(op0), (vfloat32m1_t)(op1), (size_t)(op2))
-#define vfwmul_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwmul_vv_f64m4(op0, op1, op2) \
-__builtin_rvv_vfwmul_vv_f64m4((vfloat32m2_t)(op0), (vfloat32m2_t)(op1), (size_t)(op2))
-#define vfwmul_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwmul_vv_f64m8(op0, op1, op2) \
-__builtin_rvv_vfwmul_vv_f64m8((vfloat32m4_t)(op0), (vfloat32m4_t)(op1), (size_t)(op2))
-#define vfwmul_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwmul_vf_f64m1(op0, op1, op2) \
-__builtin_rvv_vfwmul_vf_f64m1((vfloat32mf2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwmul_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwmul_vf_f64m2(op0, op1, op2) \
-__builtin_rvv_vfwmul_vf_f64m2((vfloat32m1_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwmul_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat32m1_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwmul_vf_f64m4(op0, op1, op2) \
-__builtin_rvv_vfwmul_vf_f64m4((vfloat32m2_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwmul_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat32m2_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwmul_vf_f64m8(op0, op1, op2) \
-__builtin_rvv_vfwmul_vf_f64m8((vfloat32m4_t)(op0), (float)(op1), (size_t)(op2))
-#define vfwmul_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat32m4_t)(op2), (float)(op3), (size_t)(op4))
-#define vfwmacc_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vv_f64m1((vfloat64m1_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwmacc_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwmacc_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vv_f64m2((vfloat64m2_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwmacc_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwmacc_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vv_f64m4((vfloat64m4_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwmacc_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwmacc_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vv_f64m8((vfloat64m8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfwmacc_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwmacc_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vf_f64m1((vfloat64m1_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwmacc_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwmacc_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vf_f64m2((vfloat64m2_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwmacc_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwmacc_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vf_f64m4((vfloat64m4_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwmacc_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwmacc_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vf_f64m8((vfloat64m8_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfwmacc_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwnmacc_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vv_f64m1((vfloat64m1_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwnmacc_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwnmacc_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vv_f64m2((vfloat64m2_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwnmacc_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwnmacc_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vv_f64m4((vfloat64m4_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwnmacc_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwnmacc_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vv_f64m8((vfloat64m8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfwnmacc_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwnmacc_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vf_f64m1((vfloat64m1_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwnmacc_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwnmacc_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vf_f64m2((vfloat64m2_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwnmacc_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwnmacc_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vf_f64m4((vfloat64m4_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwnmacc_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwnmacc_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vf_f64m8((vfloat64m8_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfwnmacc_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwmsac_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vv_f64m1((vfloat64m1_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwmsac_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwmsac_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vv_f64m2((vfloat64m2_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwmsac_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwmsac_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vv_f64m4((vfloat64m4_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwmsac_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwmsac_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vv_f64m8((vfloat64m8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfwmsac_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwmsac_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vf_f64m1((vfloat64m1_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwmsac_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwmsac_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vf_f64m2((vfloat64m2_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwmsac_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwmsac_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vf_f64m4((vfloat64m4_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwmsac_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwmsac_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vf_f64m8((vfloat64m8_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfwmsac_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwnmsac_vv_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vv_f64m1((vfloat64m1_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwnmsac_vv_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vv_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwnmsac_vv_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vv_f64m2((vfloat64m2_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwnmsac_vv_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vv_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwnmsac_vv_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vv_f64m4((vfloat64m4_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwnmsac_vv_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vv_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwnmsac_vv_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vv_f64m8((vfloat64m8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfwnmsac_vv_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vv_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwnmsac_vf_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vf_f64m1((vfloat64m1_t)(op0), (float)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwnmsac_vf_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vf_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (float)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vfwnmsac_vf_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vf_f64m2((vfloat64m2_t)(op0), (float)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwnmsac_vf_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vf_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (float)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwnmsac_vf_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vf_f64m4((vfloat64m4_t)(op0), (float)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwnmsac_vf_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vf_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (float)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vfwnmsac_vf_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vf_f64m8((vfloat64m8_t)(op0), (float)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfwnmsac_vf_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vf_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (float)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vfwredsum_vs_f32m1_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredsum_vs_f32m1_f64m1((vfloat64m1_t)(op0), (vfloat32m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfwredsum_vs_f32m1_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredsum_vs_f32m1_f64m1_m((vbool32_t)(op0), (vfloat64m1_t)(op1), (vfloat32m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfwredsum_vs_f32m2_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredsum_vs_f32m2_f64m1((vfloat64m1_t)(op0), (vfloat32m2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfwredsum_vs_f32m2_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredsum_vs_f32m2_f64m1_m((vbool16_t)(op0), (vfloat64m1_t)(op1), (vfloat32m2_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfwredsum_vs_f32m4_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredsum_vs_f32m4_f64m1((vfloat64m1_t)(op0), (vfloat32m4_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfwredsum_vs_f32m4_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredsum_vs_f32m4_f64m1_m((vbool8_t)(op0), (vfloat64m1_t)(op1), (vfloat32m4_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfwredsum_vs_f32m8_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredsum_vs_f32m8_f64m1((vfloat64m1_t)(op0), (vfloat32m8_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfwredsum_vs_f32m8_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredsum_vs_f32m8_f64m1_m((vbool4_t)(op0), (vfloat64m1_t)(op1), (vfloat32m8_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfwredsum_vs_f32mf2_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredsum_vs_f32mf2_f64m1((vfloat64m1_t)(op0), (vfloat32mf2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfwredsum_vs_f32mf2_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredsum_vs_f32mf2_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfwredosum_vs_f32m1_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredosum_vs_f32m1_f64m1((vfloat64m1_t)(op0), (vfloat32m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfwredosum_vs_f32m1_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredosum_vs_f32m1_f64m1_m((vbool32_t)(op0), (vfloat64m1_t)(op1), (vfloat32m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfwredosum_vs_f32m2_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredosum_vs_f32m2_f64m1((vfloat64m1_t)(op0), (vfloat32m2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfwredosum_vs_f32m2_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredosum_vs_f32m2_f64m1_m((vbool16_t)(op0), (vfloat64m1_t)(op1), (vfloat32m2_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfwredosum_vs_f32m4_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredosum_vs_f32m4_f64m1((vfloat64m1_t)(op0), (vfloat32m4_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfwredosum_vs_f32m4_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredosum_vs_f32m4_f64m1_m((vbool8_t)(op0), (vfloat64m1_t)(op1), (vfloat32m4_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfwredosum_vs_f32m8_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredosum_vs_f32m8_f64m1((vfloat64m1_t)(op0), (vfloat32m8_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfwredosum_vs_f32m8_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredosum_vs_f32m8_f64m1_m((vbool4_t)(op0), (vfloat64m1_t)(op1), (vfloat32m8_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfwredosum_vs_f32mf2_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredosum_vs_f32mf2_f64m1((vfloat64m1_t)(op0), (vfloat32mf2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfwredosum_vs_f32mf2_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredosum_vs_f32mf2_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vfncvt_f_f_w_f32mf2(op0, op1) \
-__builtin_rvv_vfncvt_f_f_w_f32mf2((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfncvt_f_f_w_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_f_w_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfncvt_f_f_w_f32m1(op0, op1) \
-__builtin_rvv_vfncvt_f_f_w_f32m1((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfncvt_f_f_w_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_f_w_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfncvt_f_f_w_f32m2(op0, op1) \
-__builtin_rvv_vfncvt_f_f_w_f32m2((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfncvt_f_f_w_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_f_w_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfncvt_f_f_w_f32m4(op0, op1) \
-__builtin_rvv_vfncvt_f_f_w_f32m4((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfncvt_f_f_w_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_f_w_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfncvt_rod_f_f_w_f32mf2(op0, op1) \
-__builtin_rvv_vfncvt_rod_f_f_w_f32mf2((vfloat64m1_t)(op0), (size_t)(op1))
-#define vfncvt_rod_f_f_w_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rod_f_f_w_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vfncvt_rod_f_f_w_f32m1(op0, op1) \
-__builtin_rvv_vfncvt_rod_f_f_w_f32m1((vfloat64m2_t)(op0), (size_t)(op1))
-#define vfncvt_rod_f_f_w_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rod_f_f_w_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vfncvt_rod_f_f_w_f32m2(op0, op1) \
-__builtin_rvv_vfncvt_rod_f_f_w_f32m2((vfloat64m4_t)(op0), (size_t)(op1))
-#define vfncvt_rod_f_f_w_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rod_f_f_w_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vfncvt_rod_f_f_w_f32m4(op0, op1) \
-__builtin_rvv_vfncvt_rod_f_f_w_f32m4((vfloat64m8_t)(op0), (size_t)(op1))
-#define vfncvt_rod_f_f_w_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rod_f_f_w_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vfwcvt_f_f_v_f64m1(op0, op1) \
-__builtin_rvv_vfwcvt_f_f_v_f64m1((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_f_v_f64m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_f_v_f64m1_m((vbool64_t)(op0), (vfloat64m1_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_f_v_f64m2(op0, op1) \
-__builtin_rvv_vfwcvt_f_f_v_f64m2((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfwcvt_f_f_v_f64m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_f_v_f64m2_m((vbool32_t)(op0), (vfloat64m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwcvt_f_f_v_f64m4(op0, op1) \
-__builtin_rvv_vfwcvt_f_f_v_f64m4((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_f_v_f64m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_f_v_f64m4_m((vbool16_t)(op0), (vfloat64m4_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_f_v_f64m8(op0, op1) \
-__builtin_rvv_vfwcvt_f_f_v_f64m8((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_f_v_f64m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_f_v_f64m8_m((vbool8_t)(op0), (vfloat64m8_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#endif
-
-#if defined(__riscv_zfh)
-#define vsse16_v_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_f16m1((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vsse16_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsse16_v_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_f16m2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vsse16_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsse16_v_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_f16m4((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vsse16_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsse16_v_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_f16m8((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vsse16_v_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_f16m8_m((vbool2_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vsse16_v_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_f16mf2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vsse16_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsse16_v_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsse16_v_f16mf4((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vsse16_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsse16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_f16m1(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f16m1((const _Float16 *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vluxei8_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (const _Float16 *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxei8_v_f16m2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f16m2((const _Float16 *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vluxei8_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (const _Float16 *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxei8_v_f16m4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f16m4((const _Float16 *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vluxei8_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (const _Float16 *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxei8_v_f16m8(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f16m8((const _Float16 *)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vluxei8_v_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (const _Float16 *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vluxei8_v_f16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f16mf2((const _Float16 *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vluxei8_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (const _Float16 *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxei8_v_f16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei8_v_f16mf4((const _Float16 *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vluxei8_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei8_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (const _Float16 *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxei16_v_f16m1(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f16m1((const _Float16 *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vluxei16_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (const _Float16 *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxei16_v_f16m2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f16m2((const _Float16 *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vluxei16_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (const _Float16 *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxei16_v_f16m4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f16m4((const _Float16 *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vluxei16_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (const _Float16 *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxei16_v_f16m8(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f16m8((const _Float16 *)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vluxei16_v_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (const _Float16 *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vluxei16_v_f16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f16mf2((const _Float16 *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vluxei16_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (const _Float16 *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxei16_v_f16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei16_v_f16mf4((const _Float16 *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vluxei16_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei16_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (const _Float16 *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxei32_v_f16m1(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f16m1((const _Float16 *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vluxei32_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (const _Float16 *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxei32_v_f16m2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f16m2((const _Float16 *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vluxei32_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (const _Float16 *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxei32_v_f16m4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f16m4((const _Float16 *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vluxei32_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (const _Float16 *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxei32_v_f16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f16mf2((const _Float16 *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vluxei32_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (const _Float16 *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxei32_v_f16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei32_v_f16mf4((const _Float16 *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vluxei32_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei32_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (const _Float16 *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxei64_v_f16m1(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f16m1((const _Float16 *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vluxei64_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (const _Float16 *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxei64_v_f16m2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f16m2((const _Float16 *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vluxei64_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (const _Float16 *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxei64_v_f16mf2(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f16mf2((const _Float16 *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vluxei64_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (const _Float16 *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxei64_v_f16mf4(op0, op1, op2) \
-__builtin_rvv_vluxei64_v_f16mf4((const _Float16 *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vluxei64_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxei64_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (const _Float16 *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_f16m1(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f16m1((const _Float16 *)(op0), (vuint8mf2_t)(op1), (size_t)(op2))
-#define vloxei8_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (const _Float16 *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxei8_v_f16m2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f16m2((const _Float16 *)(op0), (vuint8m1_t)(op1), (size_t)(op2))
-#define vloxei8_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (const _Float16 *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxei8_v_f16m4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f16m4((const _Float16 *)(op0), (vuint8m2_t)(op1), (size_t)(op2))
-#define vloxei8_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (const _Float16 *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxei8_v_f16m8(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f16m8((const _Float16 *)(op0), (vuint8m4_t)(op1), (size_t)(op2))
-#define vloxei8_v_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (const _Float16 *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vloxei8_v_f16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f16mf2((const _Float16 *)(op0), (vuint8mf4_t)(op1), (size_t)(op2))
-#define vloxei8_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (const _Float16 *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxei8_v_f16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei8_v_f16mf4((const _Float16 *)(op0), (vuint8mf8_t)(op1), (size_t)(op2))
-#define vloxei8_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei8_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (const _Float16 *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxei16_v_f16m1(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f16m1((const _Float16 *)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vloxei16_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (const _Float16 *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxei16_v_f16m2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f16m2((const _Float16 *)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vloxei16_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (const _Float16 *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxei16_v_f16m4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f16m4((const _Float16 *)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vloxei16_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (const _Float16 *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxei16_v_f16m8(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f16m8((const _Float16 *)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vloxei16_v_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (const _Float16 *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vloxei16_v_f16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f16mf2((const _Float16 *)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vloxei16_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (const _Float16 *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxei16_v_f16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei16_v_f16mf4((const _Float16 *)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vloxei16_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei16_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (const _Float16 *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxei32_v_f16m1(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f16m1((const _Float16 *)(op0), (vuint32m2_t)(op1), (size_t)(op2))
-#define vloxei32_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (const _Float16 *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxei32_v_f16m2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f16m2((const _Float16 *)(op0), (vuint32m4_t)(op1), (size_t)(op2))
-#define vloxei32_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (const _Float16 *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxei32_v_f16m4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f16m4((const _Float16 *)(op0), (vuint32m8_t)(op1), (size_t)(op2))
-#define vloxei32_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (const _Float16 *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxei32_v_f16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f16mf2((const _Float16 *)(op0), (vuint32m1_t)(op1), (size_t)(op2))
-#define vloxei32_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (const _Float16 *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxei32_v_f16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei32_v_f16mf4((const _Float16 *)(op0), (vuint32mf2_t)(op1), (size_t)(op2))
-#define vloxei32_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei32_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (const _Float16 *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxei64_v_f16m1(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f16m1((const _Float16 *)(op0), (vuint64m4_t)(op1), (size_t)(op2))
-#define vloxei64_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (const _Float16 *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxei64_v_f16m2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f16m2((const _Float16 *)(op0), (vuint64m8_t)(op1), (size_t)(op2))
-#define vloxei64_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (const _Float16 *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxei64_v_f16mf2(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f16mf2((const _Float16 *)(op0), (vuint64m2_t)(op1), (size_t)(op2))
-#define vloxei64_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (const _Float16 *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxei64_v_f16mf4(op0, op1, op2) \
-__builtin_rvv_vloxei64_v_f16mf4((const _Float16 *)(op0), (vuint64m1_t)(op1), (size_t)(op2))
-#define vloxei64_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxei64_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (const _Float16 *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vmv_v_v_f16m1(op0, op1) \
-__builtin_rvv_vmv_v_v_f16m1((vfloat16m1_t)(op0), (size_t)(op1))
-#define vmv_v_v_f16m2(op0, op1) \
-__builtin_rvv_vmv_v_v_f16m2((vfloat16m2_t)(op0), (size_t)(op1))
-#define vmv_v_v_f16m4(op0, op1) \
-__builtin_rvv_vmv_v_v_f16m4((vfloat16m4_t)(op0), (size_t)(op1))
-#define vmv_v_v_f16m8(op0, op1) \
-__builtin_rvv_vmv_v_v_f16m8((vfloat16m8_t)(op0), (size_t)(op1))
-#define vmv_v_v_f16mf2(op0, op1) \
-__builtin_rvv_vmv_v_v_f16mf2((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vmv_v_v_f16mf4(op0, op1) \
-__builtin_rvv_vmv_v_v_f16mf4((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfadd_vv_f16m1(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfadd_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfadd_vv_f16m2(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfadd_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfadd_vv_f16m4(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfadd_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfadd_vv_f16m8(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vfadd_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfadd_vv_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfadd_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfadd_vv_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfadd_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfadd_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfadd_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfadd_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfadd_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfadd_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfadd_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfadd_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfadd_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfadd_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfadd_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfadd_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfadd_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfadd_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfadd_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfadd_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsub_vv_f16m1(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfsub_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfsub_vv_f16m2(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfsub_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfsub_vv_f16m4(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfsub_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfsub_vv_f16m8(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vfsub_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfsub_vv_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfsub_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfsub_vv_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfsub_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfsub_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfsub_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsub_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsub_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsub_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsub_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsub_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsub_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsub_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsub_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsub_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsub_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfsub_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsub_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsub_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrsub_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrsub_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrsub_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrsub_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrsub_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrsub_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrsub_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrsub_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrsub_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrsub_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrsub_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfrsub_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrsub_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrsub_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmul_vv_f16m1(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfmul_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfmul_vv_f16m2(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfmul_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfmul_vv_f16m4(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfmul_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfmul_vv_f16m8(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vfmul_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfmul_vv_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfmul_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfmul_vv_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfmul_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfmul_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmul_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmul_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmul_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmul_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmul_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmul_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmul_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmul_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmul_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmul_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmul_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfmul_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmul_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmul_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfdiv_vv_f16m1(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f16m2(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f16m4(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f16m8(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfdiv_vv_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfdiv_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfdiv_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfdiv_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfdiv_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfdiv_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfdiv_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfdiv_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfdiv_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfdiv_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfdiv_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfdiv_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfdiv_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfdiv_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfdiv_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfdiv_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfdiv_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrdiv_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrdiv_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrdiv_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrdiv_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrdiv_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrdiv_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrdiv_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrdiv_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrdiv_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrdiv_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfrdiv_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfrdiv_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfrdiv_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfrdiv_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmacc_vv_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfmacc_vv_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfmacc_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (_Float16)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfmacc_vf_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfmacc_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfmacc_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmacc_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfnmacc_vv_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfnmacc_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (_Float16)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfnmacc_vf_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmacc_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfnmacc_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmacc_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfmsac_vv_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfmsac_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (_Float16)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfmsac_vf_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsac_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfmsac_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsac_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfnmsac_vv_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfnmsac_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (_Float16)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfnmsac_vf_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsac_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfnmsac_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsac_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfmadd_vv_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfmadd_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (_Float16)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfmadd_vf_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfmadd_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfmadd_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmadd_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfnmadd_vv_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfnmadd_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (_Float16)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfnmadd_vf_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmadd_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfnmadd_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmadd_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfmsub_vv_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfmsub_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (_Float16)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfmsub_vf_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfmsub_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfmsub_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmsub_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfnmsub_vv_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfnmsub_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (_Float16)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfnmsub_vf_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfnmsub_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfnmsub_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfnmsub_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmin_vv_f16m1(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfmin_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfmin_vv_f16m2(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfmin_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfmin_vv_f16m4(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfmin_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfmin_vv_f16m8(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vfmin_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfmin_vv_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfmin_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfmin_vv_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfmin_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfmin_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmin_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmin_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmin_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmin_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmin_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmin_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmin_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmin_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmin_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmin_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmin_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfmin_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmin_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmin_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmax_vv_f16m1(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfmax_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfmax_vv_f16m2(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfmax_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfmax_vv_f16m4(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfmax_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfmax_vv_f16m8(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vfmax_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfmax_vv_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfmax_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfmax_vv_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfmax_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfmax_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmax_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmax_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmax_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmax_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmax_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmax_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmax_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmax_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmax_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmax_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfmax_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfmax_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmax_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfmax_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnj_vv_f16m1(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f16m2(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f16m4(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f16m8(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfsgnj_vv_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfsgnj_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfsgnj_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnj_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnj_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnj_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnj_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnj_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnj_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnj_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnj_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnj_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnj_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfsgnj_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnj_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnj_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f16m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f16m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f16m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f16m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfsgnjn_vv_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfsgnjn_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjn_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfsgnjn_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjn_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjn_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f16m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f16m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f16m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f16m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfsgnjx_vv_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vv_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfsgnjx_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfsgnjx_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfsgnjx_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfsgnjx_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfsgnjx_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfabs_v_f16m1(op0, op1) \
-__builtin_rvv_vfabs_v_f16m1((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfabs_v_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfabs_v_f16m2(op0, op1) \
-__builtin_rvv_vfabs_v_f16m2((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfabs_v_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfabs_v_f16m4(op0, op1) \
-__builtin_rvv_vfabs_v_f16m4((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfabs_v_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfabs_v_f16m8(op0, op1) \
-__builtin_rvv_vfabs_v_f16m8((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfabs_v_f16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfabs_v_f16mf2(op0, op1) \
-__builtin_rvv_vfabs_v_f16mf2((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfabs_v_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfabs_v_f16mf4(op0, op1) \
-__builtin_rvv_vfabs_v_f16mf4((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfabs_v_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfabs_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vmfeq_vv_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f16m1_b16((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f16m2_b8((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f16m4_b4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f16m8_b2((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f16mf2_b32((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vmfeq_vv_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmfeq_vv_f16mf4_b64((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vmfeq_vv_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vv_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vmfeq_vf_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f16m1_b16((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfeq_vf_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfeq_vf_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f16m2_b8((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfeq_vf_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfeq_vf_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f16m4_b4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfeq_vf_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfeq_vf_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f16m8_b2((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfeq_vf_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfeq_vf_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f16mf2_b32((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfeq_vf_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfeq_vf_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmfeq_vf_f16mf4_b64((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfeq_vf_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfeq_vf_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfne_vv_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f16m1_b16((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vmfne_vv_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vmfne_vv_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f16m2_b8((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vmfne_vv_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vmfne_vv_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f16m4_b4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vmfne_vv_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vmfne_vv_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f16m8_b2((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vmfne_vv_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vmfne_vv_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f16mf2_b32((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vmfne_vv_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vmfne_vv_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmfne_vv_f16mf4_b64((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vmfne_vv_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vv_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vmfne_vf_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f16m1_b16((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfne_vf_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfne_vf_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f16m2_b8((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfne_vf_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfne_vf_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f16m4_b4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfne_vf_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfne_vf_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f16m8_b2((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfne_vf_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfne_vf_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f16mf2_b32((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfne_vf_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfne_vf_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmfne_vf_f16mf4_b64((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfne_vf_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfne_vf_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmflt_vv_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f16m1_b16((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vmflt_vv_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vmflt_vv_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f16m2_b8((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vmflt_vv_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vmflt_vv_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f16m4_b4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vmflt_vv_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vmflt_vv_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f16m8_b2((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vmflt_vv_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vmflt_vv_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f16mf2_b32((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vmflt_vv_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vmflt_vv_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmflt_vv_f16mf4_b64((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vmflt_vv_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vv_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vmflt_vf_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f16m1_b16((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmflt_vf_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmflt_vf_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f16m2_b8((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmflt_vf_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmflt_vf_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f16m4_b4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmflt_vf_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmflt_vf_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f16m8_b2((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmflt_vf_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmflt_vf_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f16mf2_b32((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmflt_vf_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmflt_vf_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmflt_vf_f16mf4_b64((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmflt_vf_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmflt_vf_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfle_vv_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f16m1_b16((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vmfle_vv_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vmfle_vv_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f16m2_b8((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vmfle_vv_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vmfle_vv_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f16m4_b4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vmfle_vv_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vmfle_vv_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f16m8_b2((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vmfle_vv_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vmfle_vv_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f16mf2_b32((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vmfle_vv_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vmfle_vv_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmfle_vv_f16mf4_b64((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vmfle_vv_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vv_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vmfle_vf_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f16m1_b16((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfle_vf_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfle_vf_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f16m2_b8((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfle_vf_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfle_vf_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f16m4_b4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfle_vf_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfle_vf_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f16m8_b2((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfle_vf_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfle_vf_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f16mf2_b32((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfle_vf_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfle_vf_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmfle_vf_f16mf4_b64((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfle_vf_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfle_vf_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfgt_vv_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f16m1_b16((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f16m2_b8((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f16m4_b4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f16m8_b2((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f16mf2_b32((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vmfgt_vv_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmfgt_vv_f16mf4_b64((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vmfgt_vv_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vv_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vmfgt_vf_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f16m1_b16((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfgt_vf_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfgt_vf_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f16m2_b8((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfgt_vf_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfgt_vf_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f16m4_b4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfgt_vf_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfgt_vf_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f16m8_b2((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfgt_vf_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfgt_vf_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f16mf2_b32((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfgt_vf_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfgt_vf_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmfgt_vf_f16mf4_b64((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfgt_vf_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfgt_vf_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfge_vv_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f16m1_b16((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vmfge_vv_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vmfge_vv_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f16m2_b8((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vmfge_vv_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vmfge_vv_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f16m4_b4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vmfge_vv_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vmfge_vv_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f16m8_b2((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vmfge_vv_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vmfge_vv_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f16mf2_b32((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vmfge_vv_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vmfge_vv_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmfge_vv_f16mf4_b64((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vmfge_vv_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vv_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vmfge_vf_f16m1_b16(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f16m1_b16((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfge_vf_f16m1_b16_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f16m1_b16_m((vbool16_t)(op0), (vbool16_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfge_vf_f16m2_b8(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f16m2_b8((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfge_vf_f16m2_b8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f16m2_b8_m((vbool8_t)(op0), (vbool8_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfge_vf_f16m4_b4(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f16m4_b4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfge_vf_f16m4_b4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f16m4_b4_m((vbool4_t)(op0), (vbool4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfge_vf_f16m8_b2(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f16m8_b2((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfge_vf_f16m8_b2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f16m8_b2_m((vbool2_t)(op0), (vbool2_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfge_vf_f16mf2_b32(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f16mf2_b32((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfge_vf_f16mf2_b32_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f16mf2_b32_m((vbool32_t)(op0), (vbool32_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmfge_vf_f16mf4_b64(op0, op1, op2) \
-__builtin_rvv_vmfge_vf_f16mf4_b64((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vmfge_vf_f16mf4_b64_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vmfge_vf_f16mf4_b64_m((vbool64_t)(op0), (vbool64_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vmerge_vvm_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f16m1((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f16m2((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f16m4((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f16m8((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f16mf2((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vmerge_vvm_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vmerge_vvm_f16mf4((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfmerge_vfm_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f16m1((vbool16_t)(op0), (vfloat16m1_t)(op1), (_Float16)(op2), (size_t)(op3))
-#define vfmerge_vfm_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f16m2((vbool8_t)(op0), (vfloat16m2_t)(op1), (_Float16)(op2), (size_t)(op3))
-#define vfmerge_vfm_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f16m4((vbool4_t)(op0), (vfloat16m4_t)(op1), (_Float16)(op2), (size_t)(op3))
-#define vfmerge_vfm_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f16m8((vbool2_t)(op0), (vfloat16m8_t)(op1), (_Float16)(op2), (size_t)(op3))
-#define vfmerge_vfm_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f16mf2((vbool32_t)(op0), (vfloat16mf2_t)(op1), (_Float16)(op2), (size_t)(op3))
-#define vfmerge_vfm_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vfmerge_vfm_f16mf4((vbool64_t)(op0), (vfloat16mf4_t)(op1), (_Float16)(op2), (size_t)(op3))
-#define vfmv_v_f_f16m1(op0, op1) \
-__builtin_rvv_vfmv_v_f_f16m1((_Float16)(op0), (size_t)(op1))
-#define vfmv_v_f_f16m2(op0, op1) \
-__builtin_rvv_vfmv_v_f_f16m2((_Float16)(op0), (size_t)(op1))
-#define vfmv_v_f_f16m4(op0, op1) \
-__builtin_rvv_vfmv_v_f_f16m4((_Float16)(op0), (size_t)(op1))
-#define vfmv_v_f_f16m8(op0, op1) \
-__builtin_rvv_vfmv_v_f_f16m8((_Float16)(op0), (size_t)(op1))
-#define vfmv_v_f_f16mf2(op0, op1) \
-__builtin_rvv_vfmv_v_f_f16mf2((_Float16)(op0), (size_t)(op1))
-#define vfmv_v_f_f16mf4(op0, op1) \
-__builtin_rvv_vfmv_v_f_f16mf4((_Float16)(op0), (size_t)(op1))
-#define vfredmax_vs_f16m1_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f16m1_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f16m1_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f16m1_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f16m2_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f16m2_f16m1((vfloat16m1_t)(op0), (vfloat16m2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f16m2_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f16m2_f16m1_m((vbool8_t)(op0), (vfloat16m1_t)(op1), (vfloat16m2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f16m4_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f16m4_f16m1((vfloat16m1_t)(op0), (vfloat16m4_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f16m4_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f16m4_f16m1_m((vbool4_t)(op0), (vfloat16m1_t)(op1), (vfloat16m4_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f16m8_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f16m8_f16m1((vfloat16m1_t)(op0), (vfloat16m8_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f16m8_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f16m8_f16m1_m((vbool2_t)(op0), (vfloat16m1_t)(op1), (vfloat16m8_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f16mf2_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f16mf2_f16m1((vfloat16m1_t)(op0), (vfloat16mf2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f16mf2_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f16mf2_f16m1_m((vbool32_t)(op0), (vfloat16m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredmax_vs_f16mf4_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmax_vs_f16mf4_f16m1((vfloat16m1_t)(op0), (vfloat16mf4_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmax_vs_f16mf4_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmax_vs_f16mf4_f16m1_m((vbool64_t)(op0), (vfloat16m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f16m1_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f16m1_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f16m1_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f16m1_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f16m2_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f16m2_f16m1((vfloat16m1_t)(op0), (vfloat16m2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f16m2_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f16m2_f16m1_m((vbool8_t)(op0), (vfloat16m1_t)(op1), (vfloat16m2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f16m4_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f16m4_f16m1((vfloat16m1_t)(op0), (vfloat16m4_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f16m4_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f16m4_f16m1_m((vbool4_t)(op0), (vfloat16m1_t)(op1), (vfloat16m4_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f16m8_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f16m8_f16m1((vfloat16m1_t)(op0), (vfloat16m8_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f16m8_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f16m8_f16m1_m((vbool2_t)(op0), (vfloat16m1_t)(op1), (vfloat16m8_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f16mf2_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f16mf2_f16m1((vfloat16m1_t)(op0), (vfloat16mf2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f16mf2_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f16mf2_f16m1_m((vbool32_t)(op0), (vfloat16m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredmin_vs_f16mf4_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredmin_vs_f16mf4_f16m1((vfloat16m1_t)(op0), (vfloat16mf4_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredmin_vs_f16mf4_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredmin_vs_f16mf4_f16m1_m((vbool64_t)(op0), (vfloat16m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f16m1_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f16m1_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f16m1_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f16m1_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f16m2_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f16m2_f16m1((vfloat16m1_t)(op0), (vfloat16m2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f16m2_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f16m2_f16m1_m((vbool8_t)(op0), (vfloat16m1_t)(op1), (vfloat16m2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f16m4_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f16m4_f16m1((vfloat16m1_t)(op0), (vfloat16m4_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f16m4_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f16m4_f16m1_m((vbool4_t)(op0), (vfloat16m1_t)(op1), (vfloat16m4_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f16m8_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f16m8_f16m1((vfloat16m1_t)(op0), (vfloat16m8_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f16m8_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f16m8_f16m1_m((vbool2_t)(op0), (vfloat16m1_t)(op1), (vfloat16m8_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f16mf2_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f16mf2_f16m1((vfloat16m1_t)(op0), (vfloat16mf2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f16mf2_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f16mf2_f16m1_m((vbool32_t)(op0), (vfloat16m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredsum_vs_f16mf4_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredsum_vs_f16mf4_f16m1((vfloat16m1_t)(op0), (vfloat16mf4_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredsum_vs_f16mf4_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredsum_vs_f16mf4_f16m1_m((vbool64_t)(op0), (vfloat16m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f16m1_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f16m1_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f16m1_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f16m1_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f16m2_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f16m2_f16m1((vfloat16m1_t)(op0), (vfloat16m2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f16m2_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f16m2_f16m1_m((vbool8_t)(op0), (vfloat16m1_t)(op1), (vfloat16m2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f16m4_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f16m4_f16m1((vfloat16m1_t)(op0), (vfloat16m4_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f16m4_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f16m4_f16m1_m((vbool4_t)(op0), (vfloat16m1_t)(op1), (vfloat16m4_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f16m8_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f16m8_f16m1((vfloat16m1_t)(op0), (vfloat16m8_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f16m8_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f16m8_f16m1_m((vbool2_t)(op0), (vfloat16m1_t)(op1), (vfloat16m8_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f16mf2_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f16mf2_f16m1((vfloat16m1_t)(op0), (vfloat16mf2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f16mf2_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f16mf2_f16m1_m((vbool32_t)(op0), (vfloat16m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfredosum_vs_f16mf4_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vfredosum_vs_f16mf4_f16m1((vfloat16m1_t)(op0), (vfloat16mf4_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfredosum_vs_f16mf4_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfredosum_vs_f16mf4_f16m1_m((vbool64_t)(op0), (vfloat16m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f16m2((_Float16 *)(op0), (vuint8m1_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint8m1_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f16m4((_Float16 *)(op0), (vuint8m2_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint8m2_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f16m8((_Float16 *)(op0), (vuint8m4_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f16m8_m((vbool2_t)(op0), (_Float16 *)(op1), (vuint8m4_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsuxei8_v_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vsuxei8_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f16m2((_Float16 *)(op0), (vuint16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f16m4((_Float16 *)(op0), (vuint16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f16m8((_Float16 *)(op0), (vuint16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f16m8_m((vbool2_t)(op0), (_Float16 *)(op1), (vuint16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsuxei16_v_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vsuxei16_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfmv_f_s_f16m1_f16(op0) \
-__builtin_rvv_vfmv_f_s_f16m1_f16((vfloat16m1_t)(op0))
-#define vfmv_f_s_f16m2_f16(op0) \
-__builtin_rvv_vfmv_f_s_f16m2_f16((vfloat16m2_t)(op0))
-#define vfmv_f_s_f16m4_f16(op0) \
-__builtin_rvv_vfmv_f_s_f16m4_f16((vfloat16m4_t)(op0))
-#define vfmv_f_s_f16m8_f16(op0) \
-__builtin_rvv_vfmv_f_s_f16m8_f16((vfloat16m8_t)(op0))
-#define vfmv_f_s_f16mf2_f16(op0) \
-__builtin_rvv_vfmv_f_s_f16mf2_f16((vfloat16mf2_t)(op0))
-#define vfmv_f_s_f16mf4_f16(op0) \
-__builtin_rvv_vfmv_f_s_f16mf4_f16((vfloat16mf4_t)(op0))
-#define vfmv_s_f_f16m1(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmv_s_f_f16m2(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmv_s_f_f16m4(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmv_s_f_f16m8(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmv_s_f_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfmv_s_f_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfmv_s_f_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vslideup_vx_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslideup_vx_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vslideup_vx_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslideup_vx_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslideup_vx_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f16m1((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f16m2((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f16m4((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f16m8((vfloat16m8_t)(op0), (vfloat16m8_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f16mf2((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vslidedown_vx_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vslidedown_vx_f16mf4((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2), (size_t)(op3))
-#define vslidedown_vx_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vslidedown_vx_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vfslide1up_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1up_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfslide1up_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1up_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfslide1up_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1up_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfslide1up_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1up_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfslide1up_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1up_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfslide1up_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfslide1up_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1up_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1up_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vsuxei32_v_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f16m2((_Float16 *)(op0), (vuint32m4_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint32m4_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f16m4((_Float16 *)(op0), (vuint32m8_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint32m8_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsuxei32_v_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vsuxei32_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfslide1down_vf_f16m1(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f16m1((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1down_vf_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfslide1down_vf_f16m2(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f16m2((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1down_vf_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfslide1down_vf_f16m4(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f16m4((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1down_vf_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfslide1down_vf_f16m8(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f16m8((vfloat16m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1down_vf_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfslide1down_vf_f16mf2(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f16mf2((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1down_vf_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfslide1down_vf_f16mf4(op0, op1, op2) \
-__builtin_rvv_vfslide1down_vf_f16mf4((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfslide1down_vf_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfslide1down_vf_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vrgather_vv_f16m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f16m1((vfloat16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgather_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgather_vv_f16m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f16m2((vfloat16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgather_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgather_vv_f16m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f16m4((vfloat16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vrgather_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vrgather_vv_f16m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f16m8((vfloat16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vrgather_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vrgather_vv_f16mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f16mf2((vfloat16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgather_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgather_vv_f16mf4(op0, op1, op2) \
-__builtin_rvv_vrgather_vv_f16mf4((vfloat16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgather_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vrgather_vx_f16m1(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f16m1((vfloat16m1_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f16m2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f16m2((vfloat16m2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f16m4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f16m4((vfloat16m4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f16m8(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f16m8((vfloat16m8_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f16mf2(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f16mf2((vfloat16mf2_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgather_vx_f16mf4(op0, op1, op2) \
-__builtin_rvv_vrgather_vx_f16mf4((vfloat16mf4_t)(op0), (size_t)(op1), (size_t)(op2))
-#define vrgather_vx_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgather_vx_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f16m1(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f16m1((vfloat16m1_t)(op0), (vuint16m1_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f16m2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f16m2((vfloat16m2_t)(op0), (vuint16m2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f16m4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f16m4((vfloat16m4_t)(op0), (vuint16m4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f16m8(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f16m8((vfloat16m8_t)(op0), (vuint16m8_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f16mf2(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f16mf2((vfloat16mf2_t)(op0), (vuint16mf2_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vrgatherei16_vv_f16mf4(op0, op1, op2) \
-__builtin_rvv_vrgatherei16_vv_f16mf4((vfloat16mf4_t)(op0), (vuint16mf4_t)(op1), (size_t)(op2))
-#define vrgatherei16_vv_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vrgatherei16_vv_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vcompress_vm_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f16m1((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vcompress_vm_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f16m2((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vcompress_vm_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f16m4((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vcompress_vm_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f16m8((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vcompress_vm_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f16mf2((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vcompress_vm_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vcompress_vm_f16mf4((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsuxei64_v_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f16m2((_Float16 *)(op0), (vuint64m8_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint64m8_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsuxei64_v_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsuxei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vsuxei64_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vget_v_f16m2_f16m1(op0, op1) \
-__builtin_rvv_vget_v_f16m2_f16m1((vfloat16m2_t)(op0), (size_t)(op1))
-#define vget_v_f16m4_f16m1(op0, op1) \
-__builtin_rvv_vget_v_f16m4_f16m1((vfloat16m4_t)(op0), (size_t)(op1))
-#define vget_v_f16m8_f16m1(op0, op1) \
-__builtin_rvv_vget_v_f16m8_f16m1((vfloat16m8_t)(op0), (size_t)(op1))
-#define vget_v_f16m4_f16m2(op0, op1) \
-__builtin_rvv_vget_v_f16m4_f16m2((vfloat16m4_t)(op0), (size_t)(op1))
-#define vget_v_f16m8_f16m2(op0, op1) \
-__builtin_rvv_vget_v_f16m8_f16m2((vfloat16m8_t)(op0), (size_t)(op1))
-#define vget_v_f16m8_f16m4(op0, op1) \
-__builtin_rvv_vget_v_f16m8_f16m4((vfloat16m8_t)(op0), (size_t)(op1))
-#define vset_v_f16m1_f16m2(op0, op1, op2) \
-__builtin_rvv_vset_v_f16m1_f16m2((vfloat16m2_t)(op0), (size_t)(op1), (vfloat16m1_t)(op2))
-#define vset_v_f16m1_f16m4(op0, op1, op2) \
-__builtin_rvv_vset_v_f16m1_f16m4((vfloat16m4_t)(op0), (size_t)(op1), (vfloat16m1_t)(op2))
-#define vset_v_f16m2_f16m4(op0, op1, op2) \
-__builtin_rvv_vset_v_f16m2_f16m4((vfloat16m4_t)(op0), (size_t)(op1), (vfloat16m2_t)(op2))
-#define vset_v_f16m1_f16m8(op0, op1, op2) \
-__builtin_rvv_vset_v_f16m1_f16m8((vfloat16m8_t)(op0), (size_t)(op1), (vfloat16m1_t)(op2))
-#define vset_v_f16m2_f16m8(op0, op1, op2) \
-__builtin_rvv_vset_v_f16m2_f16m8((vfloat16m8_t)(op0), (size_t)(op1), (vfloat16m2_t)(op2))
-#define vset_v_f16m4_f16m8(op0, op1, op2) \
-__builtin_rvv_vset_v_f16m4_f16m8((vfloat16m8_t)(op0), (size_t)(op1), (vfloat16m4_t)(op2))
-#define vsoxei8_v_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f16m2((_Float16 *)(op0), (vuint8m1_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint8m1_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f16m4((_Float16 *)(op0), (vuint8m2_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint8m2_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f16m8((_Float16 *)(op0), (vuint8m4_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f16m8_m((vbool2_t)(op0), (_Float16 *)(op1), (vuint8m4_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsoxei8_v_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vsoxei8_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f16m2((_Float16 *)(op0), (vuint16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f16m4((_Float16 *)(op0), (vuint16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f16m8(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f16m8((_Float16 *)(op0), (vuint16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f16m8_m((vbool2_t)(op0), (_Float16 *)(op1), (vuint16m8_t)(op2), (vfloat16m8_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsoxei16_v_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vsoxei16_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f16m2((_Float16 *)(op0), (vuint32m4_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint32m4_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f16m4((_Float16 *)(op0), (vuint32m8_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint32m8_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsoxei32_v_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vsoxei32_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f16m2((_Float16 *)(op0), (vuint64m8_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint64m8_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsoxei64_v_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsoxei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vsoxei64_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vle16ff_v_f16m1(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_f16m1((const _Float16 *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (const _Float16 *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_f16m2(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_f16m2((const _Float16 *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (const _Float16 *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_f16m4(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_f16m4((const _Float16 *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (const _Float16 *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_f16m8(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_f16m8((const _Float16 *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (const _Float16 *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_f16mf2(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_f16mf2((const _Float16 *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (const _Float16 *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vle16ff_v_f16mf4(op0, op1, op2) \
-__builtin_rvv_vle16ff_v_f16mf4((const _Float16 *)(op0), (size_t *)(op1), (size_t)(op2))
-#define vle16ff_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vle16ff_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (const _Float16 *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vfneg_v_f16m1(op0, op1) \
-__builtin_rvv_vfneg_v_f16m1((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfneg_v_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfneg_v_f16m2(op0, op1) \
-__builtin_rvv_vfneg_v_f16m2((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfneg_v_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfneg_v_f16m4(op0, op1) \
-__builtin_rvv_vfneg_v_f16m4((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfneg_v_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfneg_v_f16m8(op0, op1) \
-__builtin_rvv_vfneg_v_f16m8((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfneg_v_f16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfneg_v_f16mf2(op0, op1) \
-__builtin_rvv_vfneg_v_f16mf2((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfneg_v_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfneg_v_f16mf4(op0, op1) \
-__builtin_rvv_vfneg_v_f16mf4((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfneg_v_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfneg_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vle16_v_f16m1(op0, op1) \
-__builtin_rvv_vle16_v_f16m1((const _Float16 *)(op0), (size_t)(op1))
-#define vle16_v_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (const _Float16 *)(op2), (size_t)(op3))
-#define vle16_v_f16m2(op0, op1) \
-__builtin_rvv_vle16_v_f16m2((const _Float16 *)(op0), (size_t)(op1))
-#define vle16_v_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (const _Float16 *)(op2), (size_t)(op3))
-#define vle16_v_f16m4(op0, op1) \
-__builtin_rvv_vle16_v_f16m4((const _Float16 *)(op0), (size_t)(op1))
-#define vle16_v_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (const _Float16 *)(op2), (size_t)(op3))
-#define vle16_v_f16m8(op0, op1) \
-__builtin_rvv_vle16_v_f16m8((const _Float16 *)(op0), (size_t)(op1))
-#define vle16_v_f16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (const _Float16 *)(op2), (size_t)(op3))
-#define vle16_v_f16mf2(op0, op1) \
-__builtin_rvv_vle16_v_f16mf2((const _Float16 *)(op0), (size_t)(op1))
-#define vle16_v_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (const _Float16 *)(op2), (size_t)(op3))
-#define vle16_v_f16mf4(op0, op1) \
-__builtin_rvv_vle16_v_f16mf4((const _Float16 *)(op0), (size_t)(op1))
-#define vle16_v_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vle16_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (const _Float16 *)(op2), (size_t)(op3))
-#define vse16_v_f16m1(op0, op1, op2) \
-__builtin_rvv_vse16_v_f16m1((_Float16 *)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vse16_v_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vse16_v_f16m2(op0, op1, op2) \
-__builtin_rvv_vse16_v_f16m2((_Float16 *)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vse16_v_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vse16_v_f16m4(op0, op1, op2) \
-__builtin_rvv_vse16_v_f16m4((_Float16 *)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vse16_v_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vse16_v_f16m8(op0, op1, op2) \
-__builtin_rvv_vse16_v_f16m8((_Float16 *)(op0), (vfloat16m8_t)(op1), (size_t)(op2))
-#define vse16_v_f16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_f16m8_m((vbool2_t)(op0), (_Float16 *)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vse16_v_f16mf2(op0, op1, op2) \
-__builtin_rvv_vse16_v_f16mf2((_Float16 *)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vse16_v_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vse16_v_f16mf4(op0, op1, op2) \
-__builtin_rvv_vse16_v_f16mf4((_Float16 *)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vse16_v_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vse16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vlse16_v_f16m1(op0, op1, op2) \
-__builtin_rvv_vlse16_v_f16m1((const _Float16 *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (const _Float16 *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_f16m2(op0, op1, op2) \
-__builtin_rvv_vlse16_v_f16m2((const _Float16 *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (const _Float16 *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_f16m4(op0, op1, op2) \
-__builtin_rvv_vlse16_v_f16m4((const _Float16 *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (const _Float16 *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_f16m8(op0, op1, op2) \
-__builtin_rvv_vlse16_v_f16m8((const _Float16 *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_f16m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (const _Float16 *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_f16mf2(op0, op1, op2) \
-__builtin_rvv_vlse16_v_f16mf2((const _Float16 *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (const _Float16 *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlse16_v_f16mf4(op0, op1, op2) \
-__builtin_rvv_vlse16_v_f16mf4((const _Float16 *)(op0), (ptrdiff_t)(op1), (size_t)(op2))
-#define vlse16_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlse16_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (const _Float16 *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vfclass_v_u16m1(op0, op1) \
-__builtin_rvv_vfclass_v_u16m1((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfclass_v_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfclass_v_u16m2(op0, op1) \
-__builtin_rvv_vfclass_v_u16m2((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfclass_v_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfclass_v_u16m4(op0, op1) \
-__builtin_rvv_vfclass_v_u16m4((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfclass_v_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfclass_v_u16m8(op0, op1) \
-__builtin_rvv_vfclass_v_u16m8((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfclass_v_u16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfclass_v_u16mf2(op0, op1) \
-__builtin_rvv_vfclass_v_u16mf2((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfclass_v_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfclass_v_u16mf4(op0, op1) \
-__builtin_rvv_vfclass_v_u16mf4((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfclass_v_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfclass_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f16m1(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f16m1((vint16m1_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f16m2(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f16m2((vint16m2_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f16m4(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f16m4((vint16m4_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f16m8(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f16m8((vint16m8_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vint16m8_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f16mf2(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f16mf2((vint16mf2_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vfcvt_f_x_v_f16mf4(op0, op1) \
-__builtin_rvv_vfcvt_f_x_v_f16mf4((vint16mf4_t)(op0), (size_t)(op1))
-#define vfcvt_f_x_v_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_x_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f16m1(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f16m1((vuint16m1_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f16m2(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f16m2((vuint16m2_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f16m4(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f16m4((vuint16m4_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f16m8(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f16m8((vuint16m8_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vuint16m8_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f16mf2(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f16mf2((vuint16mf2_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vfcvt_f_xu_v_f16mf4(op0, op1) \
-__builtin_rvv_vfcvt_f_xu_v_f16mf4((vuint16mf4_t)(op0), (size_t)(op1))
-#define vfcvt_f_xu_v_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_f_xu_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i16m1(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16m1((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i16m2(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16m2((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i16m4(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16m4((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i16m8(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16m8((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i16mf2(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16mf2((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_x_f_v_i16mf4(op0, op1) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16mf4((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_x_f_v_i16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_x_f_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u16m1(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16m1((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u16m2(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16m2((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u16m4(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16m4((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u16m8(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16m8((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u16mf2(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16mf2((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfcvt_rtz_xu_f_v_u16mf4(op0, op1) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16mf4((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfcvt_rtz_xu_f_v_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_rtz_xu_f_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i16m1(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i16m1((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i16m1_m((vbool16_t)(op0), (vint16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i16m2(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i16m2((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i16m2_m((vbool8_t)(op0), (vint16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i16m4(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i16m4((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i16m4_m((vbool4_t)(op0), (vint16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i16m8(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i16m8((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i16m8_m((vbool2_t)(op0), (vint16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i16mf2(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i16mf2((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i16mf2_m((vbool32_t)(op0), (vint16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfcvt_x_f_v_i16mf4(op0, op1) \
-__builtin_rvv_vfcvt_x_f_v_i16mf4((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfcvt_x_f_v_i16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_x_f_v_i16mf4_m((vbool64_t)(op0), (vint16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u16m1(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u16m1((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u16m1_m((vbool16_t)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u16m2(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u16m2((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u16m2_m((vbool8_t)(op0), (vuint16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u16m4(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u16m4((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u16m4_m((vbool4_t)(op0), (vuint16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u16m8(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u16m8((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u16m8_m((vbool2_t)(op0), (vuint16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u16mf2(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u16mf2((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u16mf2_m((vbool32_t)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfcvt_xu_f_v_u16mf4(op0, op1) \
-__builtin_rvv_vfcvt_xu_f_v_u16mf4((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfcvt_xu_f_v_u16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfcvt_xu_f_v_u16mf4_m((vbool64_t)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfncvt_f_x_w_f16mf4(op0, op1) \
-__builtin_rvv_vfncvt_f_x_w_f16mf4((vint32mf2_t)(op0), (size_t)(op1))
-#define vfncvt_f_x_w_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_x_w_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vfncvt_f_x_w_f16mf2(op0, op1) \
-__builtin_rvv_vfncvt_f_x_w_f16mf2((vint32m1_t)(op0), (size_t)(op1))
-#define vfncvt_f_x_w_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_x_w_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vfncvt_f_x_w_f16m1(op0, op1) \
-__builtin_rvv_vfncvt_f_x_w_f16m1((vint32m2_t)(op0), (size_t)(op1))
-#define vfncvt_f_x_w_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_x_w_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vfncvt_f_x_w_f16m2(op0, op1) \
-__builtin_rvv_vfncvt_f_x_w_f16m2((vint32m4_t)(op0), (size_t)(op1))
-#define vfncvt_f_x_w_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_x_w_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vfncvt_f_x_w_f16m4(op0, op1) \
-__builtin_rvv_vfncvt_f_x_w_f16m4((vint32m8_t)(op0), (size_t)(op1))
-#define vfncvt_f_x_w_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_x_w_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vfncvt_f_xu_w_f16mf4(op0, op1) \
-__builtin_rvv_vfncvt_f_xu_w_f16mf4((vuint32mf2_t)(op0), (size_t)(op1))
-#define vfncvt_f_xu_w_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_xu_w_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vfncvt_f_xu_w_f16mf2(op0, op1) \
-__builtin_rvv_vfncvt_f_xu_w_f16mf2((vuint32m1_t)(op0), (size_t)(op1))
-#define vfncvt_f_xu_w_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_xu_w_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vfncvt_f_xu_w_f16m1(op0, op1) \
-__builtin_rvv_vfncvt_f_xu_w_f16m1((vuint32m2_t)(op0), (size_t)(op1))
-#define vfncvt_f_xu_w_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_xu_w_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vfncvt_f_xu_w_f16m2(op0, op1) \
-__builtin_rvv_vfncvt_f_xu_w_f16m2((vuint32m4_t)(op0), (size_t)(op1))
-#define vfncvt_f_xu_w_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_xu_w_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vfncvt_f_xu_w_f16m4(op0, op1) \
-__builtin_rvv_vfncvt_f_xu_w_f16m4((vuint32m8_t)(op0), (size_t)(op1))
-#define vfncvt_f_xu_w_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_xu_w_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i8mf8(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8mf8((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i8mf4(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8mf4((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i8mf2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8mf2((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i8m1(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8m1((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i8m2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8m2((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_x_f_w_i8m4(op0, op1) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8m4((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_x_f_w_i8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_x_f_w_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u8mf8(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf8((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u8mf4(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf4((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u8mf2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf2((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u8m1(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8m1((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u8m2(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8m2((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfncvt_rtz_xu_f_w_u8m4(op0, op1) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8m4((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfncvt_rtz_xu_f_w_u8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rtz_xu_f_w_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i8mf8(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i8mf8((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i8mf8_m((vbool64_t)(op0), (vint8mf8_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i8mf4(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i8mf4((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i8mf4_m((vbool32_t)(op0), (vint8mf4_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i8mf2(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i8mf2((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i8mf2_m((vbool16_t)(op0), (vint8mf2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i8m1(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i8m1((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i8m1_m((vbool8_t)(op0), (vint8m1_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i8m2(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i8m2((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i8m2_m((vbool4_t)(op0), (vint8m2_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfncvt_x_f_w_i8m4(op0, op1) \
-__builtin_rvv_vfncvt_x_f_w_i8m4((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfncvt_x_f_w_i8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_x_f_w_i8m4_m((vbool2_t)(op0), (vint8m4_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u8mf8(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u8mf8((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u8mf8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u8mf8_m((vbool64_t)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u8mf4(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u8mf4((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u8mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u8mf4_m((vbool32_t)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u8mf2(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u8mf2((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u8mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u8mf2_m((vbool16_t)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u8m1(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u8m1((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u8m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u8m1_m((vbool8_t)(op0), (vuint8m1_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u8m2(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u8m2((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u8m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u8m2_m((vbool4_t)(op0), (vuint8m2_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfncvt_xu_f_w_u8m4(op0, op1) \
-__builtin_rvv_vfncvt_xu_f_w_u8m4((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfncvt_xu_f_w_u8m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_xu_f_w_u8m4_m((vbool2_t)(op0), (vuint8m4_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfrec7_v_f16m1(op0, op1) \
-__builtin_rvv_vfrec7_v_f16m1((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfrec7_v_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfrec7_v_f16m2(op0, op1) \
-__builtin_rvv_vfrec7_v_f16m2((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfrec7_v_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfrec7_v_f16m4(op0, op1) \
-__builtin_rvv_vfrec7_v_f16m4((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfrec7_v_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfrec7_v_f16m8(op0, op1) \
-__builtin_rvv_vfrec7_v_f16m8((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfrec7_v_f16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfrec7_v_f16mf2(op0, op1) \
-__builtin_rvv_vfrec7_v_f16mf2((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfrec7_v_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfrec7_v_f16mf4(op0, op1) \
-__builtin_rvv_vfrec7_v_f16mf4((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfrec7_v_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrec7_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f16m1(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f16m1((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f16m2(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f16m2((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f16m4(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f16m4((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f16m8(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f16m8((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f16mf2(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f16mf2((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfrsqrt7_v_f16mf4(op0, op1) \
-__builtin_rvv_vfrsqrt7_v_f16mf4((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfrsqrt7_v_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfrsqrt7_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f16m1(op0, op1) \
-__builtin_rvv_vfsqrt_v_f16m1((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f16m2(op0, op1) \
-__builtin_rvv_vfsqrt_v_f16m2((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f16m4(op0, op1) \
-__builtin_rvv_vfsqrt_v_f16m4((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f16m8(op0, op1) \
-__builtin_rvv_vfsqrt_v_f16m8((vfloat16m8_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vfloat16m8_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f16mf2(op0, op1) \
-__builtin_rvv_vfsqrt_v_f16mf2((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfsqrt_v_f16mf4(op0, op1) \
-__builtin_rvv_vfsqrt_v_f16mf4((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfsqrt_v_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfsqrt_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f16mf4(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f16mf4((vint8mf8_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f16mf2(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f16mf2((vint8mf4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f16m1(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f16m1((vint8mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f16m2(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f16m2((vint8m1_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f16m4(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f16m4((vint8m2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_x_v_f16m8(op0, op1) \
-__builtin_rvv_vfwcvt_f_x_v_f16m8((vint8m4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_x_v_f16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_x_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f16mf4(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f16mf4((vuint8mf8_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f16mf2(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f16mf2((vuint8mf4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f16m1(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f16m1((vuint8mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f16m2(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f16m2((vuint8m1_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f16m4(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f16m4((vuint8m2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_xu_v_f16m8(op0, op1) \
-__builtin_rvv_vfwcvt_f_xu_v_f16m8((vuint8m4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_xu_v_f16m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_xu_v_f16m8_m((vbool2_t)(op0), (vfloat16m8_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_x_f_v_i32mf2(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i32mf2((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_x_f_v_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_x_f_v_i32m1(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i32m1((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_x_f_v_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_x_f_v_i32m2(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i32m2((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_x_f_v_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_x_f_v_i32m4(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i32m4((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_x_f_v_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_x_f_v_i32m8(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i32m8((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_x_f_v_i32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_x_f_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_xu_f_v_u32mf2(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u32mf2((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_xu_f_v_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_xu_f_v_u32m1(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m1((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_xu_f_v_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_xu_f_v_u32m2(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m2((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_xu_f_v_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_xu_f_v_u32m4(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m4((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_xu_f_v_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwcvt_rtz_xu_f_v_u32m8(op0, op1) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m8((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfwcvt_rtz_xu_f_v_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfwcvt_x_f_v_i32mf2(op0, op1) \
-__builtin_rvv_vfwcvt_x_f_v_i32mf2((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfwcvt_x_f_v_i32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_x_f_v_i32mf2_m((vbool64_t)(op0), (vint32mf2_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwcvt_x_f_v_i32m1(op0, op1) \
-__builtin_rvv_vfwcvt_x_f_v_i32m1((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_x_f_v_i32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_x_f_v_i32m1_m((vbool32_t)(op0), (vint32m1_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_x_f_v_i32m2(op0, op1) \
-__builtin_rvv_vfwcvt_x_f_v_i32m2((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfwcvt_x_f_v_i32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_x_f_v_i32m2_m((vbool16_t)(op0), (vint32m2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwcvt_x_f_v_i32m4(op0, op1) \
-__builtin_rvv_vfwcvt_x_f_v_i32m4((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfwcvt_x_f_v_i32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_x_f_v_i32m4_m((vbool8_t)(op0), (vint32m4_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwcvt_x_f_v_i32m8(op0, op1) \
-__builtin_rvv_vfwcvt_x_f_v_i32m8((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfwcvt_x_f_v_i32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_x_f_v_i32m8_m((vbool4_t)(op0), (vint32m8_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfwcvt_xu_f_v_u32mf2(op0, op1) \
-__builtin_rvv_vfwcvt_xu_f_v_u32mf2((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfwcvt_xu_f_v_u32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_xu_f_v_u32mf2_m((vbool64_t)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwcvt_xu_f_v_u32m1(op0, op1) \
-__builtin_rvv_vfwcvt_xu_f_v_u32m1((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_xu_f_v_u32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_xu_f_v_u32m1_m((vbool32_t)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_xu_f_v_u32m2(op0, op1) \
-__builtin_rvv_vfwcvt_xu_f_v_u32m2((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfwcvt_xu_f_v_u32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_xu_f_v_u32m2_m((vbool16_t)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwcvt_xu_f_v_u32m4(op0, op1) \
-__builtin_rvv_vfwcvt_xu_f_v_u32m4((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfwcvt_xu_f_v_u32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_xu_f_v_u32m4_m((vbool8_t)(op0), (vuint32m4_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwcvt_xu_f_v_u32m8(op0, op1) \
-__builtin_rvv_vfwcvt_xu_f_v_u32m8((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfwcvt_xu_f_v_u32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_xu_f_v_u32m8_m((vbool4_t)(op0), (vuint32m8_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vlmul_ext_v_f16mf2_f16m1(op0) \
-__builtin_rvv_vlmul_ext_v_f16mf2_f16m1((vfloat16mf2_t)(op0))
-#define vlmul_ext_v_f16mf4_f16m1(op0) \
-__builtin_rvv_vlmul_ext_v_f16mf4_f16m1((vfloat16mf4_t)(op0))
-#define vlmul_ext_v_f16mf4_f16mf2(op0) \
-__builtin_rvv_vlmul_ext_v_f16mf4_f16mf2((vfloat16mf4_t)(op0))
-#define vlmul_ext_v_f16m1_f16m2(op0) \
-__builtin_rvv_vlmul_ext_v_f16m1_f16m2((vfloat16m1_t)(op0))
-#define vlmul_ext_v_f16mf2_f16m2(op0) \
-__builtin_rvv_vlmul_ext_v_f16mf2_f16m2((vfloat16mf2_t)(op0))
-#define vlmul_ext_v_f16mf4_f16m2(op0) \
-__builtin_rvv_vlmul_ext_v_f16mf4_f16m2((vfloat16mf4_t)(op0))
-#define vlmul_ext_v_f16m1_f16m4(op0) \
-__builtin_rvv_vlmul_ext_v_f16m1_f16m4((vfloat16m1_t)(op0))
-#define vlmul_ext_v_f16m2_f16m4(op0) \
-__builtin_rvv_vlmul_ext_v_f16m2_f16m4((vfloat16m2_t)(op0))
-#define vlmul_ext_v_f16mf2_f16m4(op0) \
-__builtin_rvv_vlmul_ext_v_f16mf2_f16m4((vfloat16mf2_t)(op0))
-#define vlmul_ext_v_f16mf4_f16m4(op0) \
-__builtin_rvv_vlmul_ext_v_f16mf4_f16m4((vfloat16mf4_t)(op0))
-#define vlmul_ext_v_f16m1_f16m8(op0) \
-__builtin_rvv_vlmul_ext_v_f16m1_f16m8((vfloat16m1_t)(op0))
-#define vlmul_ext_v_f16m2_f16m8(op0) \
-__builtin_rvv_vlmul_ext_v_f16m2_f16m8((vfloat16m2_t)(op0))
-#define vlmul_ext_v_f16m4_f16m8(op0) \
-__builtin_rvv_vlmul_ext_v_f16m4_f16m8((vfloat16m4_t)(op0))
-#define vlmul_ext_v_f16mf2_f16m8(op0) \
-__builtin_rvv_vlmul_ext_v_f16mf2_f16m8((vfloat16mf2_t)(op0))
-#define vlmul_ext_v_f16mf4_f16m8(op0) \
-__builtin_rvv_vlmul_ext_v_f16mf4_f16m8((vfloat16mf4_t)(op0))
-#define vlmul_trunc_v_f16m1_f16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m1_f16mf2((vfloat16m1_t)(op0))
-#define vlmul_trunc_v_f16m2_f16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m2_f16mf2((vfloat16m2_t)(op0))
-#define vlmul_trunc_v_f16m4_f16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m4_f16mf2((vfloat16m4_t)(op0))
-#define vlmul_trunc_v_f16m8_f16mf2(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m8_f16mf2((vfloat16m8_t)(op0))
-#define vlmul_trunc_v_f16m1_f16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m1_f16mf4((vfloat16m1_t)(op0))
-#define vlmul_trunc_v_f16m2_f16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m2_f16mf4((vfloat16m2_t)(op0))
-#define vlmul_trunc_v_f16m4_f16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m4_f16mf4((vfloat16m4_t)(op0))
-#define vlmul_trunc_v_f16m8_f16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m8_f16mf4((vfloat16m8_t)(op0))
-#define vlmul_trunc_v_f16mf2_f16mf4(op0) \
-__builtin_rvv_vlmul_trunc_v_f16mf2_f16mf4((vfloat16mf2_t)(op0))
-#define vlmul_trunc_v_f16m2_f16m1(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m2_f16m1((vfloat16m2_t)(op0))
-#define vlmul_trunc_v_f16m4_f16m1(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m4_f16m1((vfloat16m4_t)(op0))
-#define vlmul_trunc_v_f16m8_f16m1(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m8_f16m1((vfloat16m8_t)(op0))
-#define vlmul_trunc_v_f16m4_f16m2(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m4_f16m2((vfloat16m4_t)(op0))
-#define vlmul_trunc_v_f16m8_f16m2(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m8_f16m2((vfloat16m8_t)(op0))
-#define vlmul_trunc_v_f16m8_f16m4(op0) \
-__builtin_rvv_vlmul_trunc_v_f16m8_f16m4((vfloat16m8_t)(op0))
-#define vreinterpret_v_i16m1_f16m1(op0) \
-__builtin_rvv_vreinterpret_v_i16m1_f16m1((vint16m1_t)(op0))
-#define vreinterpret_v_i16m2_f16m2(op0) \
-__builtin_rvv_vreinterpret_v_i16m2_f16m2((vint16m2_t)(op0))
-#define vreinterpret_v_i16m4_f16m4(op0) \
-__builtin_rvv_vreinterpret_v_i16m4_f16m4((vint16m4_t)(op0))
-#define vreinterpret_v_i16m8_f16m8(op0) \
-__builtin_rvv_vreinterpret_v_i16m8_f16m8((vint16m8_t)(op0))
-#define vreinterpret_v_i16mf2_f16mf2(op0) \
-__builtin_rvv_vreinterpret_v_i16mf2_f16mf2((vint16mf2_t)(op0))
-#define vreinterpret_v_i16mf4_f16mf4(op0) \
-__builtin_rvv_vreinterpret_v_i16mf4_f16mf4((vint16mf4_t)(op0))
-#define vreinterpret_v_u16m1_f16m1(op0) \
-__builtin_rvv_vreinterpret_v_u16m1_f16m1((vuint16m1_t)(op0))
-#define vreinterpret_v_u16m2_f16m2(op0) \
-__builtin_rvv_vreinterpret_v_u16m2_f16m2((vuint16m2_t)(op0))
-#define vreinterpret_v_u16m4_f16m4(op0) \
-__builtin_rvv_vreinterpret_v_u16m4_f16m4((vuint16m4_t)(op0))
-#define vreinterpret_v_u16m8_f16m8(op0) \
-__builtin_rvv_vreinterpret_v_u16m8_f16m8((vuint16m8_t)(op0))
-#define vreinterpret_v_u16mf2_f16mf2(op0) \
-__builtin_rvv_vreinterpret_v_u16mf2_f16mf2((vuint16mf2_t)(op0))
-#define vreinterpret_v_u16mf4_f16mf4(op0) \
-__builtin_rvv_vreinterpret_v_u16mf4_f16mf4((vuint16mf4_t)(op0))
-#define vreinterpret_v_f16m1_i16m1(op0) \
-__builtin_rvv_vreinterpret_v_f16m1_i16m1((vfloat16m1_t)(op0))
-#define vreinterpret_v_f16m2_i16m2(op0) \
-__builtin_rvv_vreinterpret_v_f16m2_i16m2((vfloat16m2_t)(op0))
-#define vreinterpret_v_f16m4_i16m4(op0) \
-__builtin_rvv_vreinterpret_v_f16m4_i16m4((vfloat16m4_t)(op0))
-#define vreinterpret_v_f16m8_i16m8(op0) \
-__builtin_rvv_vreinterpret_v_f16m8_i16m8((vfloat16m8_t)(op0))
-#define vreinterpret_v_f16mf2_i16mf2(op0) \
-__builtin_rvv_vreinterpret_v_f16mf2_i16mf2((vfloat16mf2_t)(op0))
-#define vreinterpret_v_f16mf4_i16mf4(op0) \
-__builtin_rvv_vreinterpret_v_f16mf4_i16mf4((vfloat16mf4_t)(op0))
-#define vreinterpret_v_f16m1_u16m1(op0) \
-__builtin_rvv_vreinterpret_v_f16m1_u16m1((vfloat16m1_t)(op0))
-#define vreinterpret_v_f16m2_u16m2(op0) \
-__builtin_rvv_vreinterpret_v_f16m2_u16m2((vfloat16m2_t)(op0))
-#define vreinterpret_v_f16m4_u16m4(op0) \
-__builtin_rvv_vreinterpret_v_f16m4_u16m4((vfloat16m4_t)(op0))
-#define vreinterpret_v_f16m8_u16m8(op0) \
-__builtin_rvv_vreinterpret_v_f16m8_u16m8((vfloat16m8_t)(op0))
-#define vreinterpret_v_f16mf2_u16mf2(op0) \
-__builtin_rvv_vreinterpret_v_f16mf2_u16mf2((vfloat16mf2_t)(op0))
-#define vreinterpret_v_f16mf4_u16mf4(op0) \
-__builtin_rvv_vreinterpret_v_f16mf4_u16mf4((vfloat16mf4_t)(op0))
-#define vundefined_f16m1() \
-__builtin_rvv_vundefined_f16m1()
-#define vundefined_f16m2() \
-__builtin_rvv_vundefined_f16m2()
-#define vundefined_f16m4() \
-__builtin_rvv_vundefined_f16m4()
-#define vundefined_f16m8() \
-__builtin_rvv_vundefined_f16m8()
-#define vundefined_f16mf2() \
-__builtin_rvv_vundefined_f16mf2()
-#define vundefined_f16mf4() \
-__builtin_rvv_vundefined_f16mf4()
-#endif
-
-#if defined(__riscv_f) && defined(__riscv_zfh)
-#define vfwadd_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfwadd_vv_f32mf2((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfwadd_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwadd_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfwadd_vv_f32m1((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfwadd_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwadd_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfwadd_vv_f32m2((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfwadd_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwadd_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfwadd_vv_f32m4((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfwadd_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwadd_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfwadd_vv_f32m8((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfwadd_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwadd_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfwadd_vf_f32mf2((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwadd_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwadd_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfwadd_vf_f32m1((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwadd_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwadd_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfwadd_vf_f32m2((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwadd_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwadd_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfwadd_vf_f32m4((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwadd_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwadd_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfwadd_vf_f32m8((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwadd_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwsub_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfwsub_vv_f32mf2((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfwsub_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwsub_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfwsub_vv_f32m1((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfwsub_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwsub_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfwsub_vv_f32m2((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfwsub_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwsub_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfwsub_vv_f32m4((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfwsub_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwsub_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfwsub_vv_f32m8((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfwsub_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwsub_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfwsub_vf_f32mf2((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwsub_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwsub_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfwsub_vf_f32m1((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwsub_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwsub_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfwsub_vf_f32m2((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwsub_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwsub_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfwsub_vf_f32m4((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwsub_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwsub_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfwsub_vf_f32m8((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwsub_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwadd_wv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfwadd_wv_f32mf2((vfloat32mf2_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfwadd_wv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwadd_wv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfwadd_wv_f32m1((vfloat32m1_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfwadd_wv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwadd_wv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfwadd_wv_f32m2((vfloat32m2_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfwadd_wv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwadd_wv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfwadd_wv_f32m4((vfloat32m4_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfwadd_wv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwadd_wv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfwadd_wv_f32m8((vfloat32m8_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfwadd_wv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwadd_wf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfwadd_wf_f32mf2((vfloat32mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwadd_wf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwadd_wf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfwadd_wf_f32m1((vfloat32m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwadd_wf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwadd_wf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfwadd_wf_f32m2((vfloat32m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwadd_wf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwadd_wf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfwadd_wf_f32m4((vfloat32m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwadd_wf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwadd_wf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfwadd_wf_f32m8((vfloat32m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwadd_wf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwadd_wf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwsub_wv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfwsub_wv_f32mf2((vfloat32mf2_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfwsub_wv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwsub_wv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfwsub_wv_f32m1((vfloat32m1_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfwsub_wv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwsub_wv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfwsub_wv_f32m2((vfloat32m2_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfwsub_wv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwsub_wv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfwsub_wv_f32m4((vfloat32m4_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfwsub_wv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwsub_wv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfwsub_wv_f32m8((vfloat32m8_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfwsub_wv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwsub_wf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfwsub_wf_f32mf2((vfloat32mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwsub_wf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwsub_wf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfwsub_wf_f32m1((vfloat32m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwsub_wf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwsub_wf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfwsub_wf_f32m2((vfloat32m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwsub_wf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwsub_wf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfwsub_wf_f32m4((vfloat32m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwsub_wf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwsub_wf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfwsub_wf_f32m8((vfloat32m8_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwsub_wf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwsub_wf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat32m8_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwmul_vv_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfwmul_vv_f32mf2((vfloat16mf4_t)(op0), (vfloat16mf4_t)(op1), (size_t)(op2))
-#define vfwmul_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwmul_vv_f32m1(op0, op1, op2) \
-__builtin_rvv_vfwmul_vv_f32m1((vfloat16mf2_t)(op0), (vfloat16mf2_t)(op1), (size_t)(op2))
-#define vfwmul_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwmul_vv_f32m2(op0, op1, op2) \
-__builtin_rvv_vfwmul_vv_f32m2((vfloat16m1_t)(op0), (vfloat16m1_t)(op1), (size_t)(op2))
-#define vfwmul_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwmul_vv_f32m4(op0, op1, op2) \
-__builtin_rvv_vfwmul_vv_f32m4((vfloat16m2_t)(op0), (vfloat16m2_t)(op1), (size_t)(op2))
-#define vfwmul_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwmul_vv_f32m8(op0, op1, op2) \
-__builtin_rvv_vfwmul_vv_f32m8((vfloat16m4_t)(op0), (vfloat16m4_t)(op1), (size_t)(op2))
-#define vfwmul_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwmul_vf_f32mf2(op0, op1, op2) \
-__builtin_rvv_vfwmul_vf_f32mf2((vfloat16mf4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwmul_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat16mf4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwmul_vf_f32m1(op0, op1, op2) \
-__builtin_rvv_vfwmul_vf_f32m1((vfloat16mf2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwmul_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwmul_vf_f32m2(op0, op1, op2) \
-__builtin_rvv_vfwmul_vf_f32m2((vfloat16m1_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwmul_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat16m1_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwmul_vf_f32m4(op0, op1, op2) \
-__builtin_rvv_vfwmul_vf_f32m4((vfloat16m2_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwmul_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat16m2_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwmul_vf_f32m8(op0, op1, op2) \
-__builtin_rvv_vfwmul_vf_f32m8((vfloat16m4_t)(op0), (_Float16)(op1), (size_t)(op2))
-#define vfwmul_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmul_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat16m4_t)(op2), (_Float16)(op3), (size_t)(op4))
-#define vfwmacc_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwmacc_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwmacc_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vv_f32m1((vfloat32m1_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwmacc_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwmacc_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vv_f32m2((vfloat32m2_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwmacc_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwmacc_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vv_f32m4((vfloat32m4_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwmacc_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwmacc_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vv_f32m8((vfloat32m8_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfwmacc_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwmacc_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vf_f32mf2((vfloat32mf2_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwmacc_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwmacc_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vf_f32m1((vfloat32m1_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwmacc_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwmacc_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vf_f32m2((vfloat32m2_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwmacc_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwmacc_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vf_f32m4((vfloat32m4_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwmacc_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwmacc_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwmacc_vf_f32m8((vfloat32m8_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfwmacc_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmacc_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwnmacc_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwnmacc_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwnmacc_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vv_f32m1((vfloat32m1_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwnmacc_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwnmacc_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vv_f32m2((vfloat32m2_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwnmacc_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwnmacc_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vv_f32m4((vfloat32m4_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwnmacc_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwnmacc_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vv_f32m8((vfloat32m8_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfwnmacc_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwnmacc_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vf_f32mf2((vfloat32mf2_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwnmacc_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwnmacc_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vf_f32m1((vfloat32m1_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwnmacc_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwnmacc_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vf_f32m2((vfloat32m2_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwnmacc_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwnmacc_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vf_f32m4((vfloat32m4_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwnmacc_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwnmacc_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmacc_vf_f32m8((vfloat32m8_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfwnmacc_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmacc_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwmsac_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwmsac_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwmsac_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vv_f32m1((vfloat32m1_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwmsac_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwmsac_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vv_f32m2((vfloat32m2_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwmsac_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwmsac_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vv_f32m4((vfloat32m4_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwmsac_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwmsac_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vv_f32m8((vfloat32m8_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfwmsac_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwmsac_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vf_f32mf2((vfloat32mf2_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwmsac_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwmsac_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vf_f32m1((vfloat32m1_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwmsac_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwmsac_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vf_f32m2((vfloat32m2_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwmsac_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwmsac_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vf_f32m4((vfloat32m4_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwmsac_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwmsac_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwmsac_vf_f32m8((vfloat32m8_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfwmsac_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwmsac_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwnmsac_vv_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vv_f32mf2((vfloat32mf2_t)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwnmsac_vv_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vv_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwnmsac_vv_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vv_f32m1((vfloat32m1_t)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwnmsac_vv_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vv_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwnmsac_vv_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vv_f32m2((vfloat32m2_t)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwnmsac_vv_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vv_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwnmsac_vv_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vv_f32m4((vfloat32m4_t)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwnmsac_vv_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vv_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwnmsac_vv_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vv_f32m8((vfloat32m8_t)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfwnmsac_vv_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vv_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwnmsac_vf_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vf_f32mf2((vfloat32mf2_t)(op0), (_Float16)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwnmsac_vf_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vf_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (_Float16)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vfwnmsac_vf_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vf_f32m1((vfloat32m1_t)(op0), (_Float16)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwnmsac_vf_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vf_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (_Float16)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vfwnmsac_vf_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vf_f32m2((vfloat32m2_t)(op0), (_Float16)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwnmsac_vf_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vf_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (_Float16)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vfwnmsac_vf_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vf_f32m4((vfloat32m4_t)(op0), (_Float16)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwnmsac_vf_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vf_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (_Float16)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vfwnmsac_vf_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vfwnmsac_vf_f32m8((vfloat32m8_t)(op0), (_Float16)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vfwnmsac_vf_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwnmsac_vf_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (_Float16)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vfwredsum_vs_f16m1_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredsum_vs_f16m1_f32m1((vfloat32m1_t)(op0), (vfloat16m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredsum_vs_f16m1_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredsum_vs_f16m1_f32m1_m((vbool16_t)(op0), (vfloat32m1_t)(op1), (vfloat16m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwredsum_vs_f16m2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredsum_vs_f16m2_f32m1((vfloat32m1_t)(op0), (vfloat16m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredsum_vs_f16m2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredsum_vs_f16m2_f32m1_m((vbool8_t)(op0), (vfloat32m1_t)(op1), (vfloat16m2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwredsum_vs_f16m4_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredsum_vs_f16m4_f32m1((vfloat32m1_t)(op0), (vfloat16m4_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredsum_vs_f16m4_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredsum_vs_f16m4_f32m1_m((vbool4_t)(op0), (vfloat32m1_t)(op1), (vfloat16m4_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwredsum_vs_f16m8_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredsum_vs_f16m8_f32m1((vfloat32m1_t)(op0), (vfloat16m8_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredsum_vs_f16m8_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredsum_vs_f16m8_f32m1_m((vbool2_t)(op0), (vfloat32m1_t)(op1), (vfloat16m8_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwredsum_vs_f16mf2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredsum_vs_f16mf2_f32m1((vfloat32m1_t)(op0), (vfloat16mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredsum_vs_f16mf2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredsum_vs_f16mf2_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwredsum_vs_f16mf4_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredsum_vs_f16mf4_f32m1((vfloat32m1_t)(op0), (vfloat16mf4_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredsum_vs_f16mf4_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredsum_vs_f16mf4_f32m1_m((vbool64_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwredosum_vs_f16m1_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredosum_vs_f16m1_f32m1((vfloat32m1_t)(op0), (vfloat16m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredosum_vs_f16m1_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredosum_vs_f16m1_f32m1_m((vbool16_t)(op0), (vfloat32m1_t)(op1), (vfloat16m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwredosum_vs_f16m2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredosum_vs_f16m2_f32m1((vfloat32m1_t)(op0), (vfloat16m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredosum_vs_f16m2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredosum_vs_f16m2_f32m1_m((vbool8_t)(op0), (vfloat32m1_t)(op1), (vfloat16m2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwredosum_vs_f16m4_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredosum_vs_f16m4_f32m1((vfloat32m1_t)(op0), (vfloat16m4_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredosum_vs_f16m4_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredosum_vs_f16m4_f32m1_m((vbool4_t)(op0), (vfloat32m1_t)(op1), (vfloat16m4_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwredosum_vs_f16m8_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredosum_vs_f16m8_f32m1((vfloat32m1_t)(op0), (vfloat16m8_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredosum_vs_f16m8_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredosum_vs_f16m8_f32m1_m((vbool2_t)(op0), (vfloat32m1_t)(op1), (vfloat16m8_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwredosum_vs_f16mf2_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredosum_vs_f16mf2_f32m1((vfloat32m1_t)(op0), (vfloat16mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredosum_vs_f16mf2_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredosum_vs_f16mf2_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfwredosum_vs_f16mf4_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vfwredosum_vs_f16mf4_f32m1((vfloat32m1_t)(op0), (vfloat16mf4_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfwredosum_vs_f16mf4_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vfwredosum_vs_f16mf4_f32m1_m((vbool64_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vfncvt_f_f_w_f16mf4(op0, op1) \
-__builtin_rvv_vfncvt_f_f_w_f16mf4((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfncvt_f_f_w_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_f_w_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfncvt_f_f_w_f16mf2(op0, op1) \
-__builtin_rvv_vfncvt_f_f_w_f16mf2((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfncvt_f_f_w_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_f_w_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfncvt_f_f_w_f16m1(op0, op1) \
-__builtin_rvv_vfncvt_f_f_w_f16m1((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfncvt_f_f_w_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_f_w_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfncvt_f_f_w_f16m2(op0, op1) \
-__builtin_rvv_vfncvt_f_f_w_f16m2((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfncvt_f_f_w_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_f_w_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfncvt_f_f_w_f16m4(op0, op1) \
-__builtin_rvv_vfncvt_f_f_w_f16m4((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfncvt_f_f_w_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_f_f_w_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfncvt_rod_f_f_w_f16mf4(op0, op1) \
-__builtin_rvv_vfncvt_rod_f_f_w_f16mf4((vfloat32mf2_t)(op0), (size_t)(op1))
-#define vfncvt_rod_f_f_w_f16mf4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rod_f_f_w_f16mf4_m((vbool64_t)(op0), (vfloat16mf4_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vfncvt_rod_f_f_w_f16mf2(op0, op1) \
-__builtin_rvv_vfncvt_rod_f_f_w_f16mf2((vfloat32m1_t)(op0), (size_t)(op1))
-#define vfncvt_rod_f_f_w_f16mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rod_f_f_w_f16mf2_m((vbool32_t)(op0), (vfloat16mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vfncvt_rod_f_f_w_f16m1(op0, op1) \
-__builtin_rvv_vfncvt_rod_f_f_w_f16m1((vfloat32m2_t)(op0), (size_t)(op1))
-#define vfncvt_rod_f_f_w_f16m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rod_f_f_w_f16m1_m((vbool16_t)(op0), (vfloat16m1_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vfncvt_rod_f_f_w_f16m2(op0, op1) \
-__builtin_rvv_vfncvt_rod_f_f_w_f16m2((vfloat32m4_t)(op0), (size_t)(op1))
-#define vfncvt_rod_f_f_w_f16m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rod_f_f_w_f16m2_m((vbool8_t)(op0), (vfloat16m2_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vfncvt_rod_f_f_w_f16m4(op0, op1) \
-__builtin_rvv_vfncvt_rod_f_f_w_f16m4((vfloat32m8_t)(op0), (size_t)(op1))
-#define vfncvt_rod_f_f_w_f16m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfncvt_rod_f_f_w_f16m4_m((vbool4_t)(op0), (vfloat16m4_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vfwcvt_f_f_v_f32mf2(op0, op1) \
-__builtin_rvv_vfwcvt_f_f_v_f32mf2((vfloat16mf4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_f_v_f32mf2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_f_v_f32mf2_m((vbool64_t)(op0), (vfloat32mf2_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vfwcvt_f_f_v_f32m1(op0, op1) \
-__builtin_rvv_vfwcvt_f_f_v_f32m1((vfloat16mf2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_f_v_f32m1_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_f_v_f32m1_m((vbool32_t)(op0), (vfloat32m1_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_f_v_f32m2(op0, op1) \
-__builtin_rvv_vfwcvt_f_f_v_f32m2((vfloat16m1_t)(op0), (size_t)(op1))
-#define vfwcvt_f_f_v_f32m2_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_f_v_f32m2_m((vbool16_t)(op0), (vfloat32m2_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vfwcvt_f_f_v_f32m4(op0, op1) \
-__builtin_rvv_vfwcvt_f_f_v_f32m4((vfloat16m2_t)(op0), (size_t)(op1))
-#define vfwcvt_f_f_v_f32m4_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_f_v_f32m4_m((vbool8_t)(op0), (vfloat32m4_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vfwcvt_f_f_v_f32m8(op0, op1) \
-__builtin_rvv_vfwcvt_f_f_v_f32m8((vfloat16m4_t)(op0), (size_t)(op1))
-#define vfwcvt_f_f_v_f32m8_m(op0, op1, op2, op3) \
-__builtin_rvv_vfwcvt_f_f_v_f32m8_m((vbool4_t)(op0), (vfloat32m8_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#endif
-
-#if defined(__riscv_zvamo)
-#define vamoswapei16_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_i32m4((int32_t *)(op0), (vuint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint16m2_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_i32m8((int32_t *)(op0), (vuint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint16m4_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_u32m4((uint32_t *)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint16m2_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_u32m8((uint32_t *)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint16m4_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_i32m4((int32_t *)(op0), (vuint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_i32m8((int32_t *)(op0), (vuint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_u32m8((uint32_t *)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_i32m4((int32_t *)(op0), (vuint64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint64m8_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_u32m4((uint32_t *)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_i64m4((int64_t *)(op0), (vuint8mf2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint8mf2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_i64m8((int64_t *)(op0), (vuint8m1_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint8m1_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_u64m4((uint64_t *)(op0), (vuint8mf2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint8mf2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_u64m8((uint64_t *)(op0), (vuint8m1_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint8m1_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_i64m4((int64_t *)(op0), (vuint16m1_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint16m1_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_i64m8((int64_t *)(op0), (vuint16m2_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint16m2_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_u64m4((uint64_t *)(op0), (vuint16m1_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint16m1_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_u64m8((uint64_t *)(op0), (vuint16m2_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint16m2_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_i64m4((int64_t *)(op0), (vuint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint32m2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_i64m8((int64_t *)(op0), (vuint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint32m4_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_u64m4((uint64_t *)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint32m2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_u64m8((uint64_t *)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint32m4_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_i64m4((int64_t *)(op0), (vuint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_i64m8((int64_t *)(op0), (vuint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_u64m8((uint64_t *)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_i32m4((int32_t *)(op0), (vuint8m1_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint8m1_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_i32m8((int32_t *)(op0), (vuint8m2_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint8m2_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_u32m4((uint32_t *)(op0), (vuint8m1_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint8m1_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_u32m8((uint32_t *)(op0), (vuint8m2_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint8m2_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_i32m4((int32_t *)(op0), (vuint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint16m2_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_i32m8((int32_t *)(op0), (vuint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint16m4_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_u32m4((uint32_t *)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint16m2_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_u32m8((uint32_t *)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint16m4_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_i32m4((int32_t *)(op0), (vuint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_i32m8((int32_t *)(op0), (vuint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_u32m8((uint32_t *)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_i32m4((int32_t *)(op0), (vuint64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint64m8_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_u32m4((uint32_t *)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_i64m4((int64_t *)(op0), (vuint8mf2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint8mf2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_i64m8((int64_t *)(op0), (vuint8m1_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint8m1_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_u64m4((uint64_t *)(op0), (vuint8mf2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint8mf2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoaddei8_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei8_v_u64m8((uint64_t *)(op0), (vuint8m1_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoaddei8_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei8_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint8m1_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_i64m4((int64_t *)(op0), (vuint16m1_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint16m1_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_i64m8((int64_t *)(op0), (vuint16m2_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint16m2_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_u64m4((uint64_t *)(op0), (vuint16m1_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint16m1_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoaddei16_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei16_v_u64m8((uint64_t *)(op0), (vuint16m2_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoaddei16_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei16_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint16m2_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_i64m4((int64_t *)(op0), (vuint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint32m2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_i64m8((int64_t *)(op0), (vuint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint32m4_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_u64m4((uint64_t *)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint32m2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoaddei32_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei32_v_u64m8((uint64_t *)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoaddei32_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei32_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint32m4_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_i64m4((int64_t *)(op0), (vuint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_i64m8((int64_t *)(op0), (vuint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoaddei64_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoaddei64_v_u64m8((uint64_t *)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoaddei64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoaddei64_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_i32m4((int32_t *)(op0), (vuint8m1_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint8m1_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_i32m8((int32_t *)(op0), (vuint8m2_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint8m2_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_u32m4((uint32_t *)(op0), (vuint8m1_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint8m1_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_u32m8((uint32_t *)(op0), (vuint8m2_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint8m2_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_i32m4((int32_t *)(op0), (vuint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint16m2_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_i32m8((int32_t *)(op0), (vuint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint16m4_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_u32m4((uint32_t *)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint16m2_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_u32m8((uint32_t *)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint16m4_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_i32m4((int32_t *)(op0), (vuint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_i32m8((int32_t *)(op0), (vuint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_u32m8((uint32_t *)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_i32m4((int32_t *)(op0), (vuint64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint64m8_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_u32m4((uint32_t *)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_i64m4((int64_t *)(op0), (vuint8mf2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint8mf2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_i64m8((int64_t *)(op0), (vuint8m1_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint8m1_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_u64m4((uint64_t *)(op0), (vuint8mf2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint8mf2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoxorei8_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei8_v_u64m8((uint64_t *)(op0), (vuint8m1_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoxorei8_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei8_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint8m1_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_i64m4((int64_t *)(op0), (vuint16m1_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint16m1_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_i64m8((int64_t *)(op0), (vuint16m2_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint16m2_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_u64m4((uint64_t *)(op0), (vuint16m1_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint16m1_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoxorei16_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei16_v_u64m8((uint64_t *)(op0), (vuint16m2_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoxorei16_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei16_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint16m2_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_i64m4((int64_t *)(op0), (vuint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint32m2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_i64m8((int64_t *)(op0), (vuint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint32m4_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_u64m4((uint64_t *)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint32m2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoxorei32_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei32_v_u64m8((uint64_t *)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoxorei32_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei32_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint32m4_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_i64m4((int64_t *)(op0), (vuint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_i64m8((int64_t *)(op0), (vuint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoxorei64_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoxorei64_v_u64m8((uint64_t *)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoxorei64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoxorei64_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoandei8_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoandei8_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoandei8_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoandei8_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoandei8_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_i32m4((int32_t *)(op0), (vuint8m1_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoandei8_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint8m1_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoandei8_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_i32m8((int32_t *)(op0), (vuint8m2_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoandei8_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint8m2_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoandei8_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoandei8_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoandei8_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoandei8_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoandei8_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoandei8_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoandei8_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_u32m4((uint32_t *)(op0), (vuint8m1_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoandei8_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint8m1_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoandei8_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_u32m8((uint32_t *)(op0), (vuint8m2_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoandei8_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint8m2_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoandei8_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoandei8_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoandei16_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoandei16_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoandei16_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoandei16_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoandei16_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_i32m4((int32_t *)(op0), (vuint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoandei16_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint16m2_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoandei16_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_i32m8((int32_t *)(op0), (vuint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoandei16_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint16m4_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoandei16_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoandei16_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoandei16_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoandei16_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoandei16_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoandei16_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoandei16_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_u32m4((uint32_t *)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoandei16_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint16m2_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoandei16_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_u32m8((uint32_t *)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoandei16_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint16m4_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoandei16_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoandei16_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoandei32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoandei32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoandei32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoandei32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoandei32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_i32m4((int32_t *)(op0), (vuint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoandei32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoandei32_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_i32m8((int32_t *)(op0), (vuint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoandei32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoandei32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoandei32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoandei32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoandei32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoandei32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoandei32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoandei32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoandei32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoandei32_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_u32m8((uint32_t *)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoandei32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoandei32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoandei32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoandei64_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoandei64_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoandei64_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoandei64_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoandei64_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_i32m4((int32_t *)(op0), (vuint64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoandei64_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint64m8_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoandei64_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoandei64_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoandei64_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoandei64_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoandei64_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoandei64_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoandei64_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_u32m4((uint32_t *)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoandei64_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoandei64_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoandei64_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoandei8_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoandei8_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoandei8_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoandei8_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoandei8_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_i64m4((int64_t *)(op0), (vuint8mf2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoandei8_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint8mf2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoandei8_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_i64m8((int64_t *)(op0), (vuint8m1_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoandei8_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint8m1_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoandei8_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoandei8_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoandei8_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoandei8_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoandei8_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_u64m4((uint64_t *)(op0), (vuint8mf2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoandei8_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint8mf2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoandei8_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei8_v_u64m8((uint64_t *)(op0), (vuint8m1_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoandei8_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei8_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint8m1_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoandei16_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoandei16_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoandei16_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoandei16_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoandei16_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_i64m4((int64_t *)(op0), (vuint16m1_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoandei16_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint16m1_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoandei16_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_i64m8((int64_t *)(op0), (vuint16m2_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoandei16_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint16m2_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoandei16_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoandei16_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoandei16_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoandei16_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoandei16_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_u64m4((uint64_t *)(op0), (vuint16m1_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoandei16_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint16m1_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoandei16_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei16_v_u64m8((uint64_t *)(op0), (vuint16m2_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoandei16_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei16_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint16m2_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoandei32_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoandei32_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoandei32_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoandei32_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoandei32_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_i64m4((int64_t *)(op0), (vuint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoandei32_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint32m2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoandei32_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_i64m8((int64_t *)(op0), (vuint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoandei32_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint32m4_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoandei32_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoandei32_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoandei32_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoandei32_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoandei32_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_u64m4((uint64_t *)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoandei32_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint32m2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoandei32_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei32_v_u64m8((uint64_t *)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoandei32_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei32_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint32m4_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoandei64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoandei64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoandei64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoandei64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoandei64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_i64m4((int64_t *)(op0), (vuint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoandei64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoandei64_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_i64m8((int64_t *)(op0), (vuint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoandei64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoandei64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoandei64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoandei64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoandei64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoandei64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoandei64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoandei64_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoandei64_v_u64m8((uint64_t *)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoandei64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoandei64_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoorei8_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoorei8_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoorei8_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoorei8_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoorei8_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_i32m4((int32_t *)(op0), (vuint8m1_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoorei8_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint8m1_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoorei8_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_i32m8((int32_t *)(op0), (vuint8m2_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoorei8_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint8m2_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoorei8_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoorei8_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoorei8_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoorei8_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoorei8_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoorei8_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoorei8_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_u32m4((uint32_t *)(op0), (vuint8m1_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoorei8_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint8m1_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoorei8_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_u32m8((uint32_t *)(op0), (vuint8m2_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoorei8_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint8m2_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoorei8_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoorei8_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoorei16_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoorei16_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoorei16_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoorei16_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoorei16_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_i32m4((int32_t *)(op0), (vuint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoorei16_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint16m2_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoorei16_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_i32m8((int32_t *)(op0), (vuint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoorei16_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint16m4_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoorei16_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoorei16_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoorei16_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoorei16_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoorei16_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoorei16_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoorei16_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_u32m4((uint32_t *)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoorei16_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint16m2_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoorei16_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_u32m8((uint32_t *)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoorei16_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint16m4_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoorei16_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoorei16_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoorei32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoorei32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoorei32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoorei32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoorei32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_i32m4((int32_t *)(op0), (vuint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoorei32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoorei32_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_i32m8((int32_t *)(op0), (vuint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoorei32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoorei32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoorei32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoorei32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoorei32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoorei32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoorei32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoorei32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoorei32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoorei32_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_u32m8((uint32_t *)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoorei32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoorei32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoorei32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoorei64_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoorei64_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoorei64_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoorei64_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoorei64_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_i32m4((int32_t *)(op0), (vuint64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoorei64_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint64m8_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoorei64_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoorei64_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoorei64_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoorei64_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoorei64_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoorei64_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoorei64_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_u32m4((uint32_t *)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoorei64_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoorei64_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoorei64_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamoorei8_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoorei8_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoorei8_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoorei8_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoorei8_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_i64m4((int64_t *)(op0), (vuint8mf2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoorei8_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint8mf2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoorei8_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_i64m8((int64_t *)(op0), (vuint8m1_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoorei8_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint8m1_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoorei8_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoorei8_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoorei8_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoorei8_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoorei8_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_u64m4((uint64_t *)(op0), (vuint8mf2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoorei8_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint8mf2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoorei8_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei8_v_u64m8((uint64_t *)(op0), (vuint8m1_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoorei8_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei8_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint8m1_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoorei16_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoorei16_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoorei16_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoorei16_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoorei16_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_i64m4((int64_t *)(op0), (vuint16m1_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoorei16_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint16m1_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoorei16_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_i64m8((int64_t *)(op0), (vuint16m2_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoorei16_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint16m2_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoorei16_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoorei16_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoorei16_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoorei16_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoorei16_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_u64m4((uint64_t *)(op0), (vuint16m1_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoorei16_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint16m1_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoorei16_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei16_v_u64m8((uint64_t *)(op0), (vuint16m2_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoorei16_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei16_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint16m2_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoorei32_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoorei32_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoorei32_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoorei32_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoorei32_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_i64m4((int64_t *)(op0), (vuint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoorei32_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint32m2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoorei32_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_i64m8((int64_t *)(op0), (vuint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoorei32_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint32m4_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoorei32_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoorei32_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoorei32_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoorei32_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoorei32_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_u64m4((uint64_t *)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoorei32_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint32m2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoorei32_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei32_v_u64m8((uint64_t *)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoorei32_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei32_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint32m4_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoorei64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamoorei64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamoorei64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamoorei64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamoorei64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_i64m4((int64_t *)(op0), (vuint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamoorei64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamoorei64_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_i64m8((int64_t *)(op0), (vuint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamoorei64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamoorei64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamoorei64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamoorei64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamoorei64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamoorei64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamoorei64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamoorei64_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoorei64_v_u64m8((uint64_t *)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamoorei64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoorei64_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamominei8_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamominei8_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamominei8_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamominei8_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamominei8_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominei8_v_i32m4((int32_t *)(op0), (vuint8m1_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamominei8_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei8_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint8m1_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamominei8_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominei8_v_i32m8((int32_t *)(op0), (vuint8m2_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamominei8_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei8_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint8m2_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamominei8_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamominei8_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamominei16_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamominei16_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamominei16_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamominei16_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamominei16_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominei16_v_i32m4((int32_t *)(op0), (vuint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamominei16_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei16_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint16m2_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamominei16_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominei16_v_i32m8((int32_t *)(op0), (vuint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamominei16_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei16_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint16m4_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamominei16_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamominei16_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamominei32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamominei32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamominei32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamominei32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamominei32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominei32_v_i32m4((int32_t *)(op0), (vuint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamominei32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamominei32_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominei32_v_i32m8((int32_t *)(op0), (vuint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamominei32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei32_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamominei32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamominei32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamominei64_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamominei64_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamominei64_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamominei64_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamominei64_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominei64_v_i32m4((int32_t *)(op0), (vuint64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamominei64_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei64_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint64m8_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamominei64_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamominei64_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamominei8_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamominei8_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamominei8_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamominei8_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamominei8_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominei8_v_i64m4((int64_t *)(op0), (vuint8mf2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamominei8_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei8_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint8mf2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamominei8_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominei8_v_i64m8((int64_t *)(op0), (vuint8m1_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamominei8_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei8_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint8m1_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamominei16_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamominei16_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamominei16_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamominei16_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamominei16_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominei16_v_i64m4((int64_t *)(op0), (vuint16m1_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamominei16_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei16_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint16m1_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamominei16_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominei16_v_i64m8((int64_t *)(op0), (vuint16m2_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamominei16_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei16_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint16m2_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamominei32_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamominei32_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamominei32_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamominei32_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamominei32_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominei32_v_i64m4((int64_t *)(op0), (vuint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamominei32_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei32_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint32m2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamominei32_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominei32_v_i64m8((int64_t *)(op0), (vuint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamominei32_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei32_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint32m4_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamominei64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamominei64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamominei64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamominei64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamominei64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominei64_v_i64m4((int64_t *)(op0), (vuint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamominei64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamominei64_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominei64_v_i64m8((int64_t *)(op0), (vuint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamominei64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominei64_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamomaxei8_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamomaxei8_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamomaxei8_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamomaxei8_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamomaxei8_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei8_v_i32m4((int32_t *)(op0), (vuint8m1_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamomaxei8_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei8_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint8m1_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamomaxei8_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei8_v_i32m8((int32_t *)(op0), (vuint8m2_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamomaxei8_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei8_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint8m2_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamomaxei8_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamomaxei8_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamomaxei16_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamomaxei16_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamomaxei16_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamomaxei16_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamomaxei16_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei16_v_i32m4((int32_t *)(op0), (vuint16m2_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamomaxei16_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei16_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint16m2_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamomaxei16_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei16_v_i32m8((int32_t *)(op0), (vuint16m4_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamomaxei16_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei16_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint16m4_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamomaxei16_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamomaxei16_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamomaxei32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamomaxei32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamomaxei32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamomaxei32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamomaxei32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei32_v_i32m4((int32_t *)(op0), (vuint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamomaxei32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamomaxei32_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei32_v_i32m8((int32_t *)(op0), (vuint32m8_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamomaxei32_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei32_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint32m8_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamomaxei32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamomaxei32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamomaxei64_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamomaxei64_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamomaxei64_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamomaxei64_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamomaxei64_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei64_v_i32m4((int32_t *)(op0), (vuint64m8_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamomaxei64_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei64_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint64m8_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamomaxei64_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamomaxei64_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamomaxei8_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamomaxei8_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamomaxei8_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamomaxei8_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamomaxei8_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei8_v_i64m4((int64_t *)(op0), (vuint8mf2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamomaxei8_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei8_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint8mf2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamomaxei8_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei8_v_i64m8((int64_t *)(op0), (vuint8m1_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamomaxei8_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei8_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint8m1_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamomaxei16_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamomaxei16_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamomaxei16_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamomaxei16_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamomaxei16_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei16_v_i64m4((int64_t *)(op0), (vuint16m1_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamomaxei16_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei16_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint16m1_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamomaxei16_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei16_v_i64m8((int64_t *)(op0), (vuint16m2_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamomaxei16_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei16_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint16m2_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamomaxei32_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamomaxei32_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamomaxei32_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamomaxei32_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamomaxei32_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei32_v_i64m4((int64_t *)(op0), (vuint32m2_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamomaxei32_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei32_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint32m2_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamomaxei32_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei32_v_i64m8((int64_t *)(op0), (vuint32m4_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamomaxei32_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei32_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint32m4_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamomaxei64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vamomaxei64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vamomaxei64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vamomaxei64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vamomaxei64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei64_v_i64m4((int64_t *)(op0), (vuint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vamomaxei64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vamomaxei64_v_i64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxei64_v_i64m8((int64_t *)(op0), (vuint64m8_t)(op1), (vint64m8_t)(op2), (size_t)(op3))
-#define vamomaxei64_v_i64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxei64_v_i64m8_m((vbool8_t)(op0), (int64_t *)(op1), (vuint64m8_t)(op2), (vint64m8_t)(op3), (size_t)(op4))
-#define vamominuei8_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamominuei8_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamominuei8_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamominuei8_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamominuei8_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei8_v_u32m4((uint32_t *)(op0), (vuint8m1_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamominuei8_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei8_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint8m1_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamominuei8_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei8_v_u32m8((uint32_t *)(op0), (vuint8m2_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamominuei8_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei8_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint8m2_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamominuei8_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamominuei8_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamominuei16_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamominuei16_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamominuei16_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamominuei16_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamominuei16_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei16_v_u32m4((uint32_t *)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamominuei16_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei16_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint16m2_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamominuei16_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei16_v_u32m8((uint32_t *)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamominuei16_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei16_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint16m4_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamominuei16_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamominuei16_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamominuei32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamominuei32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamominuei32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamominuei32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamominuei32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamominuei32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamominuei32_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei32_v_u32m8((uint32_t *)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamominuei32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei32_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamominuei32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamominuei32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamominuei64_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamominuei64_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamominuei64_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamominuei64_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamominuei64_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei64_v_u32m4((uint32_t *)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamominuei64_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei64_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamominuei64_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamominuei64_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamominuei8_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamominuei8_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamominuei8_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamominuei8_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamominuei8_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei8_v_u64m4((uint64_t *)(op0), (vuint8mf2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamominuei8_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei8_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint8mf2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamominuei8_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei8_v_u64m8((uint64_t *)(op0), (vuint8m1_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamominuei8_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei8_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint8m1_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamominuei16_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamominuei16_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamominuei16_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamominuei16_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamominuei16_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei16_v_u64m4((uint64_t *)(op0), (vuint16m1_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamominuei16_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei16_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint16m1_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamominuei16_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei16_v_u64m8((uint64_t *)(op0), (vuint16m2_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamominuei16_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei16_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint16m2_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamominuei32_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamominuei32_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamominuei32_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamominuei32_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamominuei32_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei32_v_u64m4((uint64_t *)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamominuei32_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei32_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint32m2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamominuei32_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei32_v_u64m8((uint64_t *)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamominuei32_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei32_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint32m4_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamominuei64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamominuei64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamominuei64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamominuei64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamominuei64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamominuei64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamominuei64_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamominuei64_v_u64m8((uint64_t *)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamominuei64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamominuei64_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamomaxuei8_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamomaxuei8_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamomaxuei8_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamomaxuei8_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamomaxuei8_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei8_v_u32m4((uint32_t *)(op0), (vuint8m1_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamomaxuei8_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei8_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint8m1_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamomaxuei8_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei8_v_u32m8((uint32_t *)(op0), (vuint8m2_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamomaxuei8_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei8_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint8m2_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamomaxuei8_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamomaxuei8_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamomaxuei16_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamomaxuei16_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamomaxuei16_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamomaxuei16_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamomaxuei16_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei16_v_u32m4((uint32_t *)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamomaxuei16_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei16_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint16m2_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamomaxuei16_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei16_v_u32m8((uint32_t *)(op0), (vuint16m4_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamomaxuei16_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei16_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint16m4_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamomaxuei16_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamomaxuei16_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamomaxuei32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamomaxuei32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamomaxuei32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamomaxuei32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamomaxuei32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamomaxuei32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamomaxuei32_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei32_v_u32m8((uint32_t *)(op0), (vuint32m8_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamomaxuei32_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei32_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint32m8_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamomaxuei32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamomaxuei32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamomaxuei64_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamomaxuei64_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamomaxuei64_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamomaxuei64_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamomaxuei64_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei64_v_u32m4((uint32_t *)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamomaxuei64_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei64_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamomaxuei64_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamomaxuei64_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vamomaxuei8_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamomaxuei8_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamomaxuei8_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamomaxuei8_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamomaxuei8_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei8_v_u64m4((uint64_t *)(op0), (vuint8mf2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamomaxuei8_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei8_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint8mf2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamomaxuei8_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei8_v_u64m8((uint64_t *)(op0), (vuint8m1_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamomaxuei8_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei8_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint8m1_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamomaxuei16_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamomaxuei16_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamomaxuei16_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamomaxuei16_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamomaxuei16_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei16_v_u64m4((uint64_t *)(op0), (vuint16m1_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamomaxuei16_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei16_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint16m1_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamomaxuei16_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei16_v_u64m8((uint64_t *)(op0), (vuint16m2_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamomaxuei16_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei16_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint16m2_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamomaxuei32_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamomaxuei32_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamomaxuei32_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamomaxuei32_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamomaxuei32_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei32_v_u64m4((uint64_t *)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamomaxuei32_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei32_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint32m2_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamomaxuei32_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei32_v_u64m8((uint64_t *)(op0), (vuint32m4_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamomaxuei32_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei32_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint32m4_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamomaxuei64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vamomaxuei64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vamomaxuei64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vamomaxuei64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vamomaxuei64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vamomaxuei64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vamomaxuei64_v_u64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamomaxuei64_v_u64m8((uint64_t *)(op0), (vuint64m8_t)(op1), (vuint64m8_t)(op2), (size_t)(op3))
-#define vamomaxuei64_v_u64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamomaxuei64_v_u64m8_m((vbool8_t)(op0), (uint64_t *)(op1), (vuint64m8_t)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_i32m4((int32_t *)(op0), (vuint8m1_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint8m1_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_i32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_i32m8((int32_t *)(op0), (vuint8m2_t)(op1), (vint32m8_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_i32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_i32m8_m((vbool4_t)(op0), (int32_t *)(op1), (vuint8m2_t)(op2), (vint32m8_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_u32m4((uint32_t *)(op0), (vuint8m1_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint8m1_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_u32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_u32m8((uint32_t *)(op0), (vuint8m2_t)(op1), (vuint32m8_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_u32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_u32m8_m((vbool4_t)(op0), (uint32_t *)(op1), (vuint8m2_t)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#endif
-
-#if defined(__riscv_f) && defined(__riscv_zvamo)
-#define vamoswapei8_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_f32m2((float *)(op0), (vuint8mf2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint8mf2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_f32m4((float *)(op0), (vuint8m1_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint8m1_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_f32m8((float *)(op0), (vuint8m2_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_f32m8_m((vbool4_t)(op0), (float *)(op1), (vuint8m2_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_f32m2((float *)(op0), (vuint16m1_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint16m1_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_f32m4((float *)(op0), (vuint16m2_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint16m2_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_f32m8((float *)(op0), (vuint16m4_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_f32m8_m((vbool4_t)(op0), (float *)(op1), (vuint16m4_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_f32m2((float *)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_f32m4((float *)(op0), (vuint32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_f32m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_f32m8((float *)(op0), (vuint32m8_t)(op1), (vfloat32m8_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_f32m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_f32m8_m((vbool4_t)(op0), (float *)(op1), (vuint32m8_t)(op2), (vfloat32m8_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_f32m2((float *)(op0), (vuint64m4_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint64m4_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_f32m4((float *)(op0), (vuint64m8_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint64m8_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#endif
-
-#if defined(__riscv_d) && defined(__riscv_zvamo)
-#define vamoswapei8_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_f64m2((double *)(op0), (vuint8mf4_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint8mf4_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_f64m4((double *)(op0), (vuint8mf2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint8mf2_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vamoswapei8_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei8_v_f64m8((double *)(op0), (vuint8m1_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vamoswapei8_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei8_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint8m1_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_f64m2((double *)(op0), (vuint16mf2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint16mf2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_f64m4((double *)(op0), (vuint16m1_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint16m1_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vamoswapei16_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei16_v_f64m8((double *)(op0), (vuint16m2_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vamoswapei16_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei16_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint16m2_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_f64m2((double *)(op0), (vuint32m1_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint32m1_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_f64m4((double *)(op0), (vuint32m2_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint32m2_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vamoswapei32_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei32_v_f64m8((double *)(op0), (vuint32m4_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vamoswapei32_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei32_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint32m4_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_f64m2((double *)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_f64m4((double *)(op0), (vuint64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vamoswapei64_v_f64m8(op0, op1, op2, op3) \
-__builtin_rvv_vamoswapei64_v_f64m8((double *)(op0), (vuint64m8_t)(op1), (vfloat64m8_t)(op2), (size_t)(op3))
-#define vamoswapei64_v_f64m8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vamoswapei64_v_f64m8_m((vbool8_t)(op0), (double *)(op1), (vuint64m8_t)(op2), (vfloat64m8_t)(op3), (size_t)(op4))
-#endif
-
-#if defined(__riscv_zvlsseg)
-#define vloxseg2ei8_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (const int64_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vbool64_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (const int64_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (const int64_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vbool32_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (const int64_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i64m4((vint64m4_t *)(op0), (vint64m4_t *)(op1), (const int64_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i64m4_m((vint64m4_t *)(op0), (vint64m4_t *)(op1), (vbool16_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (const int64_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (const uint64_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vbool64_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (const uint64_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (const uint64_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vbool32_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (const uint64_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u64m4((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (const uint64_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u64m4_m((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (vbool16_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (const uint64_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg3ei8_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (const int64_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vbool64_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (const int64_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (const int64_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vbool32_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (const int64_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (const uint64_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vbool64_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (const uint64_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (const uint64_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vbool32_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (const uint64_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg4ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (const int64_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vbool64_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (const int64_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (const int64_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (vbool32_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (vint64m2_t)(op7), (vint64m2_t)(op8), (const int64_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (const uint64_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vbool64_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (const uint64_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (const uint64_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (vbool32_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (vuint64m2_t)(op7), (vuint64m2_t)(op8), (const uint64_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vloxseg5ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (const int64_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vbool64_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (const int64_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (const uint64_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vbool64_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (const uint64_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vloxseg6ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (const int64_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vbool64_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (const int64_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (const uint64_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vbool64_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (const uint64_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vloxseg7ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (const int64_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vbool64_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (const int64_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (const uint64_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vbool64_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (const uint64_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vloxseg8ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (const int64_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (vbool64_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (vint64m1_t)(op15), (vint64m1_t)(op16), (const int64_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (const uint64_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (vbool64_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (vuint64m1_t)(op15), (vuint64m1_t)(op16), (const uint64_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vloxseg2ei16_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (const int64_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vbool64_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (const int64_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (const int64_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vbool32_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (const int64_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i64m4((vint64m4_t *)(op0), (vint64m4_t *)(op1), (const int64_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i64m4_m((vint64m4_t *)(op0), (vint64m4_t *)(op1), (vbool16_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (const int64_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (const uint64_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vbool64_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (const uint64_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (const uint64_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vbool32_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (const uint64_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u64m4((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (const uint64_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u64m4_m((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (vbool16_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (const uint64_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg3ei16_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (const int64_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vbool64_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (const int64_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (const int64_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vbool32_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (const int64_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (const uint64_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vbool64_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (const uint64_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (const uint64_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vbool32_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (const uint64_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg4ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (const int64_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vbool64_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (const int64_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (const int64_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (vbool32_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (vint64m2_t)(op7), (vint64m2_t)(op8), (const int64_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (const uint64_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vbool64_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (const uint64_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (const uint64_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (vbool32_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (vuint64m2_t)(op7), (vuint64m2_t)(op8), (const uint64_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vloxseg5ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (const int64_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vbool64_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (const int64_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (const uint64_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vbool64_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (const uint64_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vloxseg6ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (const int64_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vbool64_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (const int64_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (const uint64_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vbool64_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (const uint64_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vloxseg7ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (const int64_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vbool64_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (const int64_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (const uint64_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vbool64_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (const uint64_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vloxseg8ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (const int64_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (vbool64_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (vint64m1_t)(op15), (vint64m1_t)(op16), (const int64_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (const uint64_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (vbool64_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (vuint64m1_t)(op15), (vuint64m1_t)(op16), (const uint64_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vloxseg2ei32_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (const int64_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vbool64_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (const int64_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (const int64_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vbool32_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (const int64_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i64m4((vint64m4_t *)(op0), (vint64m4_t *)(op1), (const int64_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i64m4_m((vint64m4_t *)(op0), (vint64m4_t *)(op1), (vbool16_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (const int64_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (const uint64_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vbool64_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (const uint64_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (const uint64_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vbool32_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (const uint64_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u64m4((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (const uint64_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u64m4_m((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (vbool16_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (const uint64_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg3ei32_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (const int64_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vbool64_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (const int64_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (const int64_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vbool32_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (const int64_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (const uint64_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vbool64_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (const uint64_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (const uint64_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vbool32_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (const uint64_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg4ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (const int64_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vbool64_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (const int64_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (const int64_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (vbool32_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (vint64m2_t)(op7), (vint64m2_t)(op8), (const int64_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (const uint64_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vbool64_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (const uint64_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (const uint64_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (vbool32_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (vuint64m2_t)(op7), (vuint64m2_t)(op8), (const uint64_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vloxseg5ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (const int64_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vbool64_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (const int64_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (const uint64_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vbool64_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (const uint64_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vloxseg6ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (const int64_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vbool64_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (const int64_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (const uint64_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vbool64_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (const uint64_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vloxseg7ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (const int64_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vbool64_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (const int64_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (const uint64_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vbool64_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (const uint64_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vloxseg8ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (const int64_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (vbool64_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (vint64m1_t)(op15), (vint64m1_t)(op16), (const int64_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (const uint64_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (vbool64_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (vuint64m1_t)(op15), (vuint64m1_t)(op16), (const uint64_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vloxseg2ei64_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (const int64_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vbool64_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (const int64_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (const int64_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vbool32_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (const int64_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i64m4((vint64m4_t *)(op0), (vint64m4_t *)(op1), (const int64_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i64m4_m((vint64m4_t *)(op0), (vint64m4_t *)(op1), (vbool16_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (const int64_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (const uint64_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vbool64_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (const uint64_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (const uint64_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vbool32_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (const uint64_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u64m4((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (const uint64_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u64m4_m((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (vbool16_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (const uint64_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg3ei64_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (const int64_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vbool64_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (const int64_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (const int64_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vbool32_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (const int64_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (const uint64_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vbool64_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (const uint64_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (const uint64_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vbool32_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (const uint64_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg4ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (const int64_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vbool64_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (const int64_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (const int64_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (vbool32_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (vint64m2_t)(op7), (vint64m2_t)(op8), (const int64_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (const uint64_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vbool64_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (const uint64_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (const uint64_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (vbool32_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (vuint64m2_t)(op7), (vuint64m2_t)(op8), (const uint64_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vloxseg5ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (const int64_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vbool64_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (const int64_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (const uint64_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vbool64_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (const uint64_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vloxseg6ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (const int64_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vbool64_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (const int64_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (const uint64_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vbool64_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (const uint64_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vloxseg7ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (const int64_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vbool64_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (const int64_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (const uint64_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vbool64_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (const uint64_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vloxseg8ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (const int64_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (vbool64_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (vint64m1_t)(op15), (vint64m1_t)(op16), (const int64_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (const uint64_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (vbool64_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (vuint64m1_t)(op15), (vuint64m1_t)(op16), (const uint64_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vsseg3e8_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e8_v_i8m1((int8_t *)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsseg3e8_v_i8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsseg3e8_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e8_v_i8m2((int8_t *)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsseg3e8_v_i8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsseg3e8_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e8_v_i8mf2((int8_t *)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsseg3e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsseg3e8_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e8_v_i8mf4((int8_t *)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsseg3e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsseg3e8_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e8_v_i8mf8((int8_t *)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsseg3e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsseg3e8_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsseg3e8_v_u8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsseg3e8_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsseg3e8_v_u8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsseg3e8_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsseg3e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsseg3e8_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsseg3e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsseg3e8_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsseg3e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsseg4e8_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e8_v_i8m1((int8_t *)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsseg4e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsseg4e8_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e8_v_i8m2((int8_t *)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsseg4e8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsseg4e8_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e8_v_i8mf2((int8_t *)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsseg4e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsseg4e8_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e8_v_i8mf4((int8_t *)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsseg4e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsseg4e8_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e8_v_i8mf8((int8_t *)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsseg4e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsseg4e8_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsseg4e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsseg4e8_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsseg4e8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsseg4e8_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsseg4e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsseg4e8_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsseg4e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsseg4e8_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsseg4e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsseg5e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e8_v_i8m1((int8_t *)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsseg5e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsseg5e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e8_v_i8mf2((int8_t *)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsseg5e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsseg5e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e8_v_i8mf4((int8_t *)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsseg5e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsseg5e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e8_v_i8mf8((int8_t *)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsseg5e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsseg5e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsseg5e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsseg5e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsseg5e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsseg5e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsseg5e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsseg5e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsseg5e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsseg6e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e8_v_i8m1((int8_t *)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsseg6e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsseg6e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e8_v_i8mf2((int8_t *)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsseg6e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsseg6e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e8_v_i8mf4((int8_t *)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsseg6e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsseg6e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e8_v_i8mf8((int8_t *)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsseg6e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsseg6e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsseg6e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsseg6e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsseg6e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsseg6e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsseg6e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsseg6e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsseg6e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsseg7e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e8_v_i8m1((int8_t *)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsseg7e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsseg7e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e8_v_i8mf2((int8_t *)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsseg7e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsseg7e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e8_v_i8mf4((int8_t *)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsseg7e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsseg7e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e8_v_i8mf8((int8_t *)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsseg7e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsseg7e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsseg7e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsseg7e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsseg7e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsseg7e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsseg7e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsseg7e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsseg7e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsseg8e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e8_v_i8m1((int8_t *)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsseg8e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsseg8e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e8_v_i8mf2((int8_t *)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsseg8e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsseg8e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e8_v_i8mf4((int8_t *)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsseg8e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsseg8e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e8_v_i8mf8((int8_t *)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsseg8e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsseg8e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsseg8e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsseg8e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsseg8e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsseg8e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsseg8e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsseg8e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsseg8e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsseg2e16_v_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_i16m1((int16_t *)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_i16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_i16m2((int16_t *)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_i16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_i16m4((int16_t *)(op0), (vint16m4_t)(op1), (vint16m4_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_i16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_i16mf2((int16_t *)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_i16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_i16mf4((int16_t *)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_i16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_u16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_u16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_u16m4((uint16_t *)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_u16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_u16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_u16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_i16m1((int16_t *)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_i16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsseg3e16_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_i16m2((int16_t *)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_i16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsseg3e16_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_i16mf2((int16_t *)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsseg3e16_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_i16mf4((int16_t *)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsseg3e16_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_u16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsseg3e16_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_u16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsseg3e16_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsseg3e16_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_i16m1((int16_t *)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsseg4e16_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_i16m2((int16_t *)(op0), (vint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsseg4e16_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_i16mf2((int16_t *)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsseg4e16_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_i16mf4((int16_t *)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsseg4e16_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsseg4e16_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsseg4e16_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsseg4e16_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsseg5e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e16_v_i16m1((int16_t *)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsseg5e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsseg5e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e16_v_i16mf2((int16_t *)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsseg5e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsseg5e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e16_v_i16mf4((int16_t *)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsseg5e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsseg5e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsseg5e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsseg5e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsseg5e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsseg5e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsseg5e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsseg6e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e16_v_i16m1((int16_t *)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsseg6e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsseg6e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e16_v_i16mf2((int16_t *)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsseg6e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsseg6e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e16_v_i16mf4((int16_t *)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsseg6e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsseg6e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsseg6e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsseg6e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsseg6e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsseg6e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsseg6e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsseg7e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e16_v_i16m1((int16_t *)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsseg7e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsseg7e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e16_v_i16mf2((int16_t *)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsseg7e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsseg7e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e16_v_i16mf4((int16_t *)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsseg7e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsseg7e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsseg7e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsseg7e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsseg7e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsseg7e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsseg7e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsseg8e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e16_v_i16m1((int16_t *)(op0), (vint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsseg8e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsseg8e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e16_v_i16mf2((int16_t *)(op0), (vint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsseg8e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsseg8e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e16_v_i16mf4((int16_t *)(op0), (vint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsseg8e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsseg8e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsseg8e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsseg8e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsseg8e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsseg8e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsseg8e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsseg2e32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_i32m1((int32_t *)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_i32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsseg2e32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_i32m2((int32_t *)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_i32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsseg2e32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_i32m4((int32_t *)(op0), (vint32m4_t)(op1), (vint32m4_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_i32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsseg2e32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_i32mf2((int32_t *)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_i32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsseg2e32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_u32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsseg2e32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_u32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsseg2e32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_u32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsseg2e32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_u32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsseg3e32_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e32_v_i32m1((int32_t *)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsseg3e32_v_i32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsseg3e32_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e32_v_i32m2((int32_t *)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsseg3e32_v_i32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsseg3e32_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e32_v_i32mf2((int32_t *)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsseg3e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsseg3e32_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsseg3e32_v_u32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsseg3e32_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsseg3e32_v_u32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsseg3e32_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsseg3e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsseg4e32_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e32_v_i32m1((int32_t *)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsseg4e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsseg4e32_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e32_v_i32m2((int32_t *)(op0), (vint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsseg4e32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsseg4e32_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e32_v_i32mf2((int32_t *)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsseg4e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsseg4e32_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsseg4e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsseg4e32_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsseg4e32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsseg4e32_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsseg4e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsseg5e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e32_v_i32m1((int32_t *)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsseg5e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsseg5e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e32_v_i32mf2((int32_t *)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsseg5e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsseg5e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsseg5e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsseg5e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsseg5e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsseg6e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e32_v_i32m1((int32_t *)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsseg6e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsseg6e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e32_v_i32mf2((int32_t *)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsseg6e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsseg6e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsseg6e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsseg6e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsseg6e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsseg7e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e32_v_i32m1((int32_t *)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsseg7e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsseg7e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e32_v_i32mf2((int32_t *)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsseg7e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsseg7e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsseg7e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsseg7e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsseg7e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsseg8e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e32_v_i32m1((int32_t *)(op0), (vint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsseg8e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsseg8e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e32_v_i32mf2((int32_t *)(op0), (vint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsseg8e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsseg8e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsseg8e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsseg8e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsseg8e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsseg2e64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e64_v_i64m1((int64_t *)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (size_t)(op3))
-#define vsseg2e64_v_i64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsseg2e64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e64_v_i64m2((int64_t *)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (size_t)(op3))
-#define vsseg2e64_v_i64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsseg2e64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e64_v_i64m4((int64_t *)(op0), (vint64m4_t)(op1), (vint64m4_t)(op2), (size_t)(op3))
-#define vsseg2e64_v_i64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsseg2e64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (size_t)(op3))
-#define vsseg2e64_v_u64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsseg2e64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (size_t)(op3))
-#define vsseg2e64_v_u64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsseg2e64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (size_t)(op3))
-#define vsseg2e64_v_u64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsseg3e64_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e64_v_i64m1((int64_t *)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsseg3e64_v_i64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsseg3e64_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e64_v_i64m2((int64_t *)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsseg3e64_v_i64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsseg3e64_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsseg3e64_v_u64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsseg3e64_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsseg3e64_v_u64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsseg4e64_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e64_v_i64m1((int64_t *)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsseg4e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsseg4e64_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e64_v_i64m2((int64_t *)(op0), (vint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsseg4e64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsseg4e64_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsseg4e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsseg4e64_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsseg4e64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsseg5e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e64_v_i64m1((int64_t *)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsseg5e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsseg5e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsseg5e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsseg6e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e64_v_i64m1((int64_t *)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsseg6e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsseg6e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsseg6e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsseg7e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e64_v_i64m1((int64_t *)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsseg7e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsseg7e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsseg7e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsseg8e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e64_v_i64m1((int64_t *)(op0), (vint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsseg8e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsseg8e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsseg8e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vssseg3e8_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e8_v_i8m1((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vssseg3e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vssseg3e8_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e8_v_i8m2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vssseg3e8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vssseg3e8_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e8_v_i8mf2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vssseg3e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vssseg3e8_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e8_v_i8mf4((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vssseg3e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vssseg3e8_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e8_v_i8mf8((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vssseg3e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vssseg3e8_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e8_v_u8m1((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vssseg3e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vssseg3e8_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e8_v_u8m2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vssseg3e8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vssseg3e8_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e8_v_u8mf2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vssseg3e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vssseg3e8_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e8_v_u8mf4((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vssseg3e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vssseg3e8_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e8_v_u8mf8((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vssseg3e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vssseg4e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e8_v_i8m1((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vssseg4e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vssseg4e8_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e8_v_i8m2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vssseg4e8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (size_t)(op7))
-#define vssseg4e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e8_v_i8mf2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vssseg4e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vssseg4e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e8_v_i8mf4((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vssseg4e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vssseg4e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e8_v_i8mf8((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vssseg4e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vssseg4e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e8_v_u8m1((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vssseg4e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vssseg4e8_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e8_v_u8m2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vssseg4e8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vssseg4e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e8_v_u8mf2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vssseg4e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vssseg4e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e8_v_u8mf4((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vssseg4e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vssseg4e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e8_v_u8mf8((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vssseg4e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vssseg5e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e8_v_i8m1((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vssseg5e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vssseg5e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e8_v_i8mf2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vssseg5e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vssseg5e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e8_v_i8mf4((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vssseg5e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vssseg5e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e8_v_i8mf8((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vssseg5e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vssseg5e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e8_v_u8m1((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vssseg5e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vssseg5e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e8_v_u8mf2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vssseg5e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vssseg5e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e8_v_u8mf4((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vssseg5e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vssseg5e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e8_v_u8mf8((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vssseg5e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vssseg6e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e8_v_i8m1((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vssseg6e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vssseg6e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e8_v_i8mf2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vssseg6e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vssseg6e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e8_v_i8mf4((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vssseg6e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vssseg6e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e8_v_i8mf8((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vssseg6e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vssseg6e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e8_v_u8m1((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vssseg6e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vssseg6e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e8_v_u8mf2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vssseg6e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vssseg6e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e8_v_u8mf4((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vssseg6e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vssseg6e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e8_v_u8mf8((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vssseg6e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vssseg7e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e8_v_i8m1((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vssseg7e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vssseg7e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e8_v_i8mf2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vssseg7e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vssseg7e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e8_v_i8mf4((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vssseg7e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vssseg7e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e8_v_i8mf8((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vssseg7e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vssseg7e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e8_v_u8m1((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vssseg7e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vssseg7e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e8_v_u8mf2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vssseg7e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vssseg7e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e8_v_u8mf4((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vssseg7e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vssseg7e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e8_v_u8mf8((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vssseg7e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vssseg8e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e8_v_i8m1((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vssseg8e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (size_t)(op11))
-#define vssseg8e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e8_v_i8mf2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vssseg8e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (size_t)(op11))
-#define vssseg8e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e8_v_i8mf4((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vssseg8e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (size_t)(op11))
-#define vssseg8e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e8_v_i8mf8((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vssseg8e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (size_t)(op11))
-#define vssseg8e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e8_v_u8m1((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vssseg8e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vssseg8e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e8_v_u8mf2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vssseg8e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vssseg8e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e8_v_u8mf4((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vssseg8e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vssseg8e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e8_v_u8mf8((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vssseg8e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vssseg2e16_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_i16m1((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_i16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_i16m2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_i16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_i16m4((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_i16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_i16mf2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_i16mf4((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_u16m1((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_u16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_u16m2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_u16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_u16m4((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_u16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_u16mf2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_u16mf4((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_i16m1((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vssseg3e16_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_i16m2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vssseg3e16_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_i16mf2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vssseg3e16_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_i16mf4((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vssseg3e16_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_u16m1((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vssseg3e16_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_u16m2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vssseg3e16_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_u16mf2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vssseg3e16_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_u16mf4((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_i16m1((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vssseg4e16_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_i16m2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (size_t)(op7))
-#define vssseg4e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_i16mf2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vssseg4e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_i16mf4((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vssseg4e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_u16m1((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vssseg4e16_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_u16m2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vssseg4e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_u16mf2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vssseg4e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_u16mf4((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vssseg5e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e16_v_i16m1((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vssseg5e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vssseg5e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e16_v_i16mf2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vssseg5e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vssseg5e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e16_v_i16mf4((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vssseg5e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vssseg5e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e16_v_u16m1((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vssseg5e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vssseg5e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e16_v_u16mf2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vssseg5e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vssseg5e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e16_v_u16mf4((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vssseg5e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vssseg6e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e16_v_i16m1((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vssseg6e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vssseg6e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e16_v_i16mf2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vssseg6e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vssseg6e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e16_v_i16mf4((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vssseg6e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vssseg6e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e16_v_u16m1((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vssseg6e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vssseg6e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e16_v_u16mf2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vssseg6e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vssseg6e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e16_v_u16mf4((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vssseg6e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vssseg7e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e16_v_i16m1((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vssseg7e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vssseg7e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e16_v_i16mf2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vssseg7e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vssseg7e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e16_v_i16mf4((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vssseg7e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vssseg7e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e16_v_u16m1((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vssseg7e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vssseg7e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e16_v_u16mf2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vssseg7e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vssseg7e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e16_v_u16mf4((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vssseg7e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vssseg8e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e16_v_i16m1((int16_t *)(op0), (ptrdiff_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vssseg8e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (size_t)(op11))
-#define vssseg8e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e16_v_i16mf2((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vssseg8e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (size_t)(op11))
-#define vssseg8e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e16_v_i16mf4((int16_t *)(op0), (ptrdiff_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vssseg8e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (ptrdiff_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (size_t)(op11))
-#define vssseg8e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e16_v_u16m1((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vssseg8e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vssseg8e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e16_v_u16mf2((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vssseg8e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vssseg8e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e16_v_u16mf4((uint16_t *)(op0), (ptrdiff_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vssseg8e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (ptrdiff_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vssseg2e32_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_i32m1((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_i32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vssseg2e32_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_i32m2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_i32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vssseg2e32_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_i32m4((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_i32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (size_t)(op5))
-#define vssseg2e32_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_i32mf2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vssseg2e32_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_u32m1((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_u32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vssseg2e32_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_u32m2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_u32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vssseg2e32_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_u32m4((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_u32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vssseg2e32_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_u32mf2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vssseg3e32_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e32_v_i32m1((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vssseg3e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vssseg3e32_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e32_v_i32m2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vssseg3e32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vssseg3e32_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e32_v_i32mf2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vssseg3e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vssseg3e32_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e32_v_u32m1((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vssseg3e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vssseg3e32_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e32_v_u32m2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vssseg3e32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vssseg3e32_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e32_v_u32mf2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vssseg3e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vssseg4e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e32_v_i32m1((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vssseg4e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vssseg4e32_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e32_v_i32m2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vssseg4e32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (size_t)(op7))
-#define vssseg4e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e32_v_i32mf2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vssseg4e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vssseg4e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e32_v_u32m1((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vssseg4e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vssseg4e32_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e32_v_u32m2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vssseg4e32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vssseg4e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e32_v_u32mf2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vssseg4e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vssseg5e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e32_v_i32m1((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vssseg5e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vssseg5e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e32_v_i32mf2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vssseg5e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vssseg5e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e32_v_u32m1((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vssseg5e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vssseg5e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e32_v_u32mf2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vssseg5e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vssseg6e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e32_v_i32m1((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vssseg6e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vssseg6e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e32_v_i32mf2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vssseg6e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vssseg6e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e32_v_u32m1((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vssseg6e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vssseg6e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e32_v_u32mf2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vssseg6e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vssseg7e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e32_v_i32m1((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vssseg7e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vssseg7e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e32_v_i32mf2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vssseg7e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vssseg7e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e32_v_u32m1((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vssseg7e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vssseg7e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e32_v_u32mf2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vssseg7e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vssseg8e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e32_v_i32m1((int32_t *)(op0), (ptrdiff_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vssseg8e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (size_t)(op11))
-#define vssseg8e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e32_v_i32mf2((int32_t *)(op0), (ptrdiff_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vssseg8e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (ptrdiff_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (size_t)(op11))
-#define vssseg8e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e32_v_u32m1((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vssseg8e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vssseg8e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e32_v_u32mf2((uint32_t *)(op0), (ptrdiff_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vssseg8e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (ptrdiff_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vssseg2e64_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e64_v_i64m1((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vssseg2e64_v_i64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vssseg2e64_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e64_v_i64m2((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vssseg2e64_v_i64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vssseg2e64_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e64_v_i64m4((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vssseg2e64_v_i64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (size_t)(op5))
-#define vssseg2e64_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e64_v_u64m1((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vssseg2e64_v_u64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vssseg2e64_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e64_v_u64m2((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vssseg2e64_v_u64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vssseg2e64_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e64_v_u64m4((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vssseg2e64_v_u64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vssseg3e64_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e64_v_i64m1((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vssseg3e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vssseg3e64_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e64_v_i64m2((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vssseg3e64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vssseg3e64_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e64_v_u64m1((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vssseg3e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vssseg3e64_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e64_v_u64m2((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vssseg3e64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vssseg4e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e64_v_i64m1((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vssseg4e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vssseg4e64_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e64_v_i64m2((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vssseg4e64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (size_t)(op7))
-#define vssseg4e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e64_v_u64m1((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vssseg4e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vssseg4e64_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e64_v_u64m2((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vssseg4e64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vssseg5e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e64_v_i64m1((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vssseg5e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vssseg5e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e64_v_u64m1((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vssseg5e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vssseg6e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e64_v_i64m1((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vssseg6e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vssseg6e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e64_v_u64m1((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vssseg6e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vssseg7e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e64_v_i64m1((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vssseg7e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vssseg7e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e64_v_u64m1((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vssseg7e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vssseg8e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e64_v_i64m1((int64_t *)(op0), (ptrdiff_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vssseg8e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (ptrdiff_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (size_t)(op11))
-#define vssseg8e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e64_v_u64m1((uint64_t *)(op0), (ptrdiff_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vssseg8e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (ptrdiff_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vsuxseg3ei8_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i8m2((int8_t *)(op0), (vuint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i8m2((int8_t *)(op0), (vuint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vsuxseg2ei16_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i8m2((int8_t *)(op0), (vuint16m4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint16m4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i8m4((int8_t *)(op0), (vuint16m8_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i8m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (vuint16m8_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u8m2((uint8_t *)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u8m4((uint8_t *)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u8m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (vuint16m8_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i8m2((int8_t *)(op0), (vuint16m4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint16m4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u8m2((uint8_t *)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i8m2((int8_t *)(op0), (vuint16m4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint16m4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u8m2((uint8_t *)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vsuxseg2ei32_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i8m2((int8_t *)(op0), (vuint32m8_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint32m8_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u8m2((uint8_t *)(op0), (vuint32m8_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint32m8_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i8m2((int8_t *)(op0), (vuint32m8_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint32m8_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u8m2((uint8_t *)(op0), (vuint32m8_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint32m8_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i8m2((int8_t *)(op0), (vuint32m8_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint32m8_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u8m2((uint8_t *)(op0), (vuint32m8_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint32m8_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vsuxseg2ei64_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vsuxseg2ei8_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i16m2((int16_t *)(op0), (vuint8m1_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint8m1_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i16m4((int16_t *)(op0), (vuint8m2_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint8m2_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u16m2((uint16_t *)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint8m1_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u16m4((uint16_t *)(op0), (vuint8m2_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint8m2_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i16m2((int16_t *)(op0), (vuint8m1_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint8m1_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u16m2((uint16_t *)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint8m1_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i16m2((int16_t *)(op0), (vuint8m1_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint8m1_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u16m2((uint16_t *)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint8m1_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg2ei16_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i16m2((int16_t *)(op0), (vuint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i16m4((int16_t *)(op0), (vuint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint16m4_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u16m4((uint16_t *)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i16m2((int16_t *)(op0), (vuint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i16m2((int16_t *)(op0), (vuint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg2ei32_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i16m2((int16_t *)(op0), (vuint32m4_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint32m4_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i16m4((int16_t *)(op0), (vuint32m8_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint32m8_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u16m2((uint16_t *)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u16m4((uint16_t *)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint32m8_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i16m2((int16_t *)(op0), (vuint32m4_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint32m4_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u16m2((uint16_t *)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i16m2((int16_t *)(op0), (vuint32m4_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint32m4_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u16m2((uint16_t *)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg2ei64_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i16m2((int16_t *)(op0), (vuint64m8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint64m8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u16m2((uint16_t *)(op0), (vuint64m8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint64m8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i16m2((int16_t *)(op0), (vuint64m8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint64m8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u16m2((uint16_t *)(op0), (vuint64m8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint64m8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i16m2((int16_t *)(op0), (vuint64m8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint64m8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u16m2((uint16_t *)(op0), (vuint64m8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint64m8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg2ei8_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i32m4((int32_t *)(op0), (vuint8m1_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint8m1_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u32m4((uint32_t *)(op0), (vuint8m1_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint8m1_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg2ei16_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i32m4((int32_t *)(op0), (vuint16m2_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint16m2_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u32m4((uint32_t *)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint16m2_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg2ei32_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i32m4((int32_t *)(op0), (vuint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint32m4_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg2ei64_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i32m4((int32_t *)(op0), (vuint64m8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint64m8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u32m4((uint32_t *)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg2ei8_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i64m4((int64_t *)(op0), (vuint8mf2_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint8mf2_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u64m4((uint64_t *)(op0), (vuint8mf2_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint8mf2_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vsuxseg2ei16_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_i64m4((int64_t *)(op0), (vuint16m1_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_i64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint16m1_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_u64m4((uint64_t *)(op0), (vuint16m1_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_u64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint16m1_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vsuxseg2ei32_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_i64m4((int64_t *)(op0), (vuint32m2_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_i64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint32m2_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_u64m4((uint64_t *)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_u64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint32m2_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vsuxseg2ei64_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_i64m4((int64_t *)(op0), (vuint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_i64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint64m4_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_u64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vsoxseg2ei8_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i8m2((int8_t *)(op0), (vuint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i8m4((int8_t *)(op0), (vuint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i8m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (vuint8m4_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u8m4((uint8_t *)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u8m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i8m2((int8_t *)(op0), (vuint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i8m2((int8_t *)(op0), (vuint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vsoxseg2ei16_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i8m2((int8_t *)(op0), (vuint16m4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint16m4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i8m4((int8_t *)(op0), (vuint16m8_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i8m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (vuint16m8_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u8m2((uint8_t *)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u8m4((uint8_t *)(op0), (vuint16m8_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u8m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (vuint16m8_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i8m2((int8_t *)(op0), (vuint16m4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint16m4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u8m2((uint8_t *)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i8m2((int8_t *)(op0), (vuint16m4_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint16m4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u8m2((uint8_t *)(op0), (vuint16m4_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint16m4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_i8m1((int8_t *)(op0), (vuint16m2_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint16m2_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_i8mf2((int8_t *)(op0), (vuint16m1_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint16m1_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_i8mf4((int8_t *)(op0), (vuint16mf2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint16mf2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_i8mf8((int8_t *)(op0), (vuint16mf4_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint16mf4_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_u8m1((uint8_t *)(op0), (vuint16m2_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint16m2_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_u8mf2((uint8_t *)(op0), (vuint16m1_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint16m1_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_u8mf4((uint8_t *)(op0), (vuint16mf2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint16mf2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_u8mf8((uint8_t *)(op0), (vuint16mf4_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint16mf4_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vsoxseg2ei32_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i8m2((int8_t *)(op0), (vuint32m8_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint32m8_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u8m2((uint8_t *)(op0), (vuint32m8_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint32m8_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i8m2((int8_t *)(op0), (vuint32m8_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint32m8_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u8m2((uint8_t *)(op0), (vuint32m8_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint32m8_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i8m2((int8_t *)(op0), (vuint32m8_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint32m8_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u8m2((uint8_t *)(op0), (vuint32m8_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint32m8_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_i8m1((int8_t *)(op0), (vuint32m4_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint32m4_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_i8mf2((int8_t *)(op0), (vuint32m2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint32m2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_i8mf4((int8_t *)(op0), (vuint32m1_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint32m1_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_i8mf8((int8_t *)(op0), (vuint32mf2_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint32mf2_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_u8m1((uint8_t *)(op0), (vuint32m4_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint32m4_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_u8mf2((uint8_t *)(op0), (vuint32m2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint32m2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_u8mf4((uint8_t *)(op0), (vuint32m1_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint32m1_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_u8mf8((uint8_t *)(op0), (vuint32mf2_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint32mf2_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vsoxseg2ei64_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_i8m1((int8_t *)(op0), (vuint64m8_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint64m8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_i8mf2((int8_t *)(op0), (vuint64m4_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint64m4_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_i8mf4((int8_t *)(op0), (vuint64m2_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint64m2_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_i8mf8((int8_t *)(op0), (vuint64m1_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint64m1_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_u8m1((uint8_t *)(op0), (vuint64m8_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint64m8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_u8mf2((uint8_t *)(op0), (vuint64m4_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint64m4_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_u8mf4((uint8_t *)(op0), (vuint64m2_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint64m2_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_u8mf8((uint8_t *)(op0), (vuint64m1_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint64m1_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vsoxseg2ei8_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i16m2((int16_t *)(op0), (vuint8m1_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint8m1_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i16m4((int16_t *)(op0), (vuint8m2_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint8m2_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u16m2((uint16_t *)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint8m1_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u16m4((uint16_t *)(op0), (vuint8m2_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint8m2_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i16m2((int16_t *)(op0), (vuint8m1_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint8m1_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u16m2((uint16_t *)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint8m1_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i16m2((int16_t *)(op0), (vuint8m1_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint8m1_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u16m2((uint16_t *)(op0), (vuint8m1_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint8m1_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_i16m1((int16_t *)(op0), (vuint8mf2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint8mf2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_i16mf2((int16_t *)(op0), (vuint8mf4_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint8mf4_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_i16mf4((int16_t *)(op0), (vuint8mf8_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint8mf8_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_u16m1((uint16_t *)(op0), (vuint8mf2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint8mf2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_u16mf2((uint16_t *)(op0), (vuint8mf4_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint8mf4_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_u16mf4((uint16_t *)(op0), (vuint8mf8_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint8mf8_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg2ei16_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i16m2((int16_t *)(op0), (vuint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i16m4((int16_t *)(op0), (vuint16m4_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint16m4_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u16m4((uint16_t *)(op0), (vuint16m4_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i16m2((int16_t *)(op0), (vuint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i16m2((int16_t *)(op0), (vuint16m2_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u16m2((uint16_t *)(op0), (vuint16m2_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_i16m1((int16_t *)(op0), (vuint16m1_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_i16mf2((int16_t *)(op0), (vuint16mf2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_i16mf4((int16_t *)(op0), (vuint16mf4_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_u16m1((uint16_t *)(op0), (vuint16m1_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_u16mf2((uint16_t *)(op0), (vuint16mf2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_u16mf4((uint16_t *)(op0), (vuint16mf4_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg2ei32_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i16m2((int16_t *)(op0), (vuint32m4_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint32m4_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i16m4((int16_t *)(op0), (vuint32m8_t)(op1), (vint16m4_t)(op2), (vint16m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i16m4_m((vbool4_t)(op0), (int16_t *)(op1), (vuint32m8_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u16m2((uint16_t *)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u16m4((uint16_t *)(op0), (vuint32m8_t)(op1), (vuint16m4_t)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u16m4_m((vbool4_t)(op0), (uint16_t *)(op1), (vuint32m8_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i16m2((int16_t *)(op0), (vuint32m4_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint32m4_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u16m2((uint16_t *)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i16m2((int16_t *)(op0), (vuint32m4_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint32m4_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u16m2((uint16_t *)(op0), (vuint32m4_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint32m4_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_i16m1((int16_t *)(op0), (vuint32m2_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint32m2_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_i16mf2((int16_t *)(op0), (vuint32m1_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint32m1_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_i16mf4((int16_t *)(op0), (vuint32mf2_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint32mf2_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_u16m1((uint16_t *)(op0), (vuint32m2_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint32m2_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_u16mf2((uint16_t *)(op0), (vuint32m1_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint32m1_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_u16mf4((uint16_t *)(op0), (vuint32mf2_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint32mf2_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg2ei64_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i16m2((int16_t *)(op0), (vuint64m8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint64m8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u16m2((uint16_t *)(op0), (vuint64m8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint64m8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i16m2((int16_t *)(op0), (vuint64m8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint64m8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u16m2((uint16_t *)(op0), (vuint64m8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint64m8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i16m2((int16_t *)(op0), (vuint64m8_t)(op1), (vint16m2_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i16m2_m((vbool8_t)(op0), (int16_t *)(op1), (vuint64m8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u16m2((uint16_t *)(op0), (vuint64m8_t)(op1), (vuint16m2_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u16m2_m((vbool8_t)(op0), (uint16_t *)(op1), (vuint64m8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_i16m1((int16_t *)(op0), (vuint64m4_t)(op1), (vint16m1_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_i16m1_m((vbool16_t)(op0), (int16_t *)(op1), (vuint64m4_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_i16mf2((int16_t *)(op0), (vuint64m2_t)(op1), (vint16mf2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_i16mf2_m((vbool32_t)(op0), (int16_t *)(op1), (vuint64m2_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_i16mf4((int16_t *)(op0), (vuint64m1_t)(op1), (vint16mf4_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_i16mf4_m((vbool64_t)(op0), (int16_t *)(op1), (vuint64m1_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_u16m1((uint16_t *)(op0), (vuint64m4_t)(op1), (vuint16m1_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_u16m1_m((vbool16_t)(op0), (uint16_t *)(op1), (vuint64m4_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_u16mf2((uint16_t *)(op0), (vuint64m2_t)(op1), (vuint16mf2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_u16mf2_m((vbool32_t)(op0), (uint16_t *)(op1), (vuint64m2_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_u16mf4((uint16_t *)(op0), (vuint64m1_t)(op1), (vuint16mf4_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_u16mf4_m((vbool64_t)(op0), (uint16_t *)(op1), (vuint64m1_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg2ei8_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i32m4((int32_t *)(op0), (vuint8m1_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint8m1_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u32m4((uint32_t *)(op0), (vuint8m1_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint8m1_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i32m2((int32_t *)(op0), (vuint8mf2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint8mf2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u32m2((uint32_t *)(op0), (vuint8mf2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint8mf2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_i32m1((int32_t *)(op0), (vuint8mf4_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint8mf4_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_i32mf2((int32_t *)(op0), (vuint8mf8_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint8mf8_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_u32m1((uint32_t *)(op0), (vuint8mf4_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint8mf4_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_u32mf2((uint32_t *)(op0), (vuint8mf8_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint8mf8_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg2ei16_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i32m4((int32_t *)(op0), (vuint16m2_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint16m2_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u32m4((uint32_t *)(op0), (vuint16m2_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint16m2_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i32m2((int32_t *)(op0), (vuint16m1_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint16m1_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u32m2((uint32_t *)(op0), (vuint16m1_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint16m1_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_i32m1((int32_t *)(op0), (vuint16mf2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint16mf2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_i32mf2((int32_t *)(op0), (vuint16mf4_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint16mf4_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_u32m1((uint32_t *)(op0), (vuint16mf2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint16mf2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_u32mf2((uint32_t *)(op0), (vuint16mf4_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint16mf4_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg2ei32_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i32m4((int32_t *)(op0), (vuint32m4_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint32m4_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u32m4((uint32_t *)(op0), (vuint32m4_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i32m2((int32_t *)(op0), (vuint32m2_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u32m2((uint32_t *)(op0), (vuint32m2_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_i32m1((int32_t *)(op0), (vuint32m1_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_i32mf2((int32_t *)(op0), (vuint32mf2_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_u32m1((uint32_t *)(op0), (vuint32m1_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_u32mf2((uint32_t *)(op0), (vuint32mf2_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg2ei64_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i32m4((int32_t *)(op0), (vuint64m8_t)(op1), (vint32m4_t)(op2), (vint32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i32m4_m((vbool8_t)(op0), (int32_t *)(op1), (vuint64m8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u32m4((uint32_t *)(op0), (vuint64m8_t)(op1), (vuint32m4_t)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u32m4_m((vbool8_t)(op0), (uint32_t *)(op1), (vuint64m8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i32m2((int32_t *)(op0), (vuint64m4_t)(op1), (vint32m2_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i32m2_m((vbool16_t)(op0), (int32_t *)(op1), (vuint64m4_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u32m2((uint32_t *)(op0), (vuint64m4_t)(op1), (vuint32m2_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u32m2_m((vbool16_t)(op0), (uint32_t *)(op1), (vuint64m4_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_i32m1((int32_t *)(op0), (vuint64m2_t)(op1), (vint32m1_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_i32m1_m((vbool32_t)(op0), (int32_t *)(op1), (vuint64m2_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_i32mf2((int32_t *)(op0), (vuint64m1_t)(op1), (vint32mf2_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_i32mf2_m((vbool64_t)(op0), (int32_t *)(op1), (vuint64m1_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_u32m1((uint32_t *)(op0), (vuint64m2_t)(op1), (vuint32m1_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_u32m1_m((vbool32_t)(op0), (uint32_t *)(op1), (vuint64m2_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_u32mf2((uint32_t *)(op0), (vuint64m1_t)(op1), (vuint32mf2_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_u32mf2_m((vbool64_t)(op0), (uint32_t *)(op1), (vuint64m1_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg2ei8_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_i64m4((int64_t *)(op0), (vuint8mf2_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_i64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint8mf2_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_u64m4((uint64_t *)(op0), (vuint8mf2_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_u64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint8mf2_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_i64m2((int64_t *)(op0), (vuint8mf4_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint8mf4_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_u64m2((uint64_t *)(op0), (vuint8mf4_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint8mf4_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_i64m1((int64_t *)(op0), (vuint8mf8_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint8mf8_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_u64m1((uint64_t *)(op0), (vuint8mf8_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint8mf8_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vsoxseg2ei16_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_i64m4((int64_t *)(op0), (vuint16m1_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_i64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint16m1_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_u64m4((uint64_t *)(op0), (vuint16m1_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_u64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint16m1_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_i64m2((int64_t *)(op0), (vuint16mf2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint16mf2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_u64m2((uint64_t *)(op0), (vuint16mf2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint16mf2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_i64m1((int64_t *)(op0), (vuint16mf4_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint16mf4_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_u64m1((uint64_t *)(op0), (vuint16mf4_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint16mf4_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vsoxseg2ei32_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_i64m4((int64_t *)(op0), (vuint32m2_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_i64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint32m2_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_u64m4((uint64_t *)(op0), (vuint32m2_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_u64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint32m2_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_i64m2((int64_t *)(op0), (vuint32m1_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint32m1_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_u64m2((uint64_t *)(op0), (vuint32m1_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint32m1_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_i64m1((int64_t *)(op0), (vuint32mf2_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint32mf2_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_u64m1((uint64_t *)(op0), (vuint32mf2_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint32mf2_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vsoxseg2ei64_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_i64m4((int64_t *)(op0), (vuint64m4_t)(op1), (vint64m4_t)(op2), (vint64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_i64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_i64m4_m((vbool16_t)(op0), (int64_t *)(op1), (vuint64m4_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_u64m4((uint64_t *)(op0), (vuint64m4_t)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_u64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_u64m4_m((vbool16_t)(op0), (uint64_t *)(op1), (vuint64m4_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_i64m2((int64_t *)(op0), (vuint64m2_t)(op1), (vint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_i64m2_m((vbool32_t)(op0), (int64_t *)(op1), (vuint64m2_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_u64m2((uint64_t *)(op0), (vuint64m2_t)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_u64m2_m((vbool32_t)(op0), (uint64_t *)(op1), (vuint64m2_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_i64m1((int64_t *)(op0), (vuint64m1_t)(op1), (vint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_i64m1_m((vbool64_t)(op0), (int64_t *)(op1), (vuint64m1_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_u64m1((uint64_t *)(op0), (vuint64m1_t)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_u64m1_m((vbool64_t)(op0), (uint64_t *)(op1), (vuint64m1_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vlseg2e8_v_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vbool8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (const int8_t *)(op5), (size_t)(op6))
-#define vlseg2e8_v_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vbool4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (const int8_t *)(op5), (size_t)(op6))
-#define vlseg2e8_v_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_i8m4((vint8m4_t *)(op0), (vint8m4_t *)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_i8m4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_i8m4_m((vint8m4_t *)(op0), (vint8m4_t *)(op1), (vbool2_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (const int8_t *)(op5), (size_t)(op6))
-#define vlseg2e8_v_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vbool16_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (const int8_t *)(op5), (size_t)(op6))
-#define vlseg2e8_v_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vbool32_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (const int8_t *)(op5), (size_t)(op6))
-#define vlseg2e8_v_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (const int8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vbool64_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (const int8_t *)(op5), (size_t)(op6))
-#define vlseg2e8_v_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vbool8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (const uint8_t *)(op5), (size_t)(op6))
-#define vlseg2e8_v_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vbool4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (const uint8_t *)(op5), (size_t)(op6))
-#define vlseg2e8_v_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_u8m4((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_u8m4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_u8m4_m((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (vbool2_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (const uint8_t *)(op5), (size_t)(op6))
-#define vlseg2e8_v_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vbool16_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (const uint8_t *)(op5), (size_t)(op6))
-#define vlseg2e8_v_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vbool32_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (const uint8_t *)(op5), (size_t)(op6))
-#define vlseg2e8_v_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (const uint8_t *)(op2), (size_t)(op3))
-#define vlseg2e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vbool64_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (const uint8_t *)(op5), (size_t)(op6))
-#define vlseg3e8_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (const int8_t *)(op3), (size_t)(op4))
-#define vlseg3e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vbool8_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (const int8_t *)(op7), (size_t)(op8))
-#define vlseg3e8_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (const int8_t *)(op3), (size_t)(op4))
-#define vlseg3e8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vbool4_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (const int8_t *)(op7), (size_t)(op8))
-#define vlseg3e8_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (const int8_t *)(op3), (size_t)(op4))
-#define vlseg3e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vbool16_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (const int8_t *)(op7), (size_t)(op8))
-#define vlseg3e8_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (const int8_t *)(op3), (size_t)(op4))
-#define vlseg3e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vbool32_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (const int8_t *)(op7), (size_t)(op8))
-#define vlseg3e8_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (const int8_t *)(op3), (size_t)(op4))
-#define vlseg3e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vbool64_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (const int8_t *)(op7), (size_t)(op8))
-#define vlseg3e8_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (const uint8_t *)(op3), (size_t)(op4))
-#define vlseg3e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vbool8_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (const uint8_t *)(op7), (size_t)(op8))
-#define vlseg3e8_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (const uint8_t *)(op3), (size_t)(op4))
-#define vlseg3e8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vbool4_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (const uint8_t *)(op7), (size_t)(op8))
-#define vlseg3e8_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (const uint8_t *)(op3), (size_t)(op4))
-#define vlseg3e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vbool16_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (const uint8_t *)(op7), (size_t)(op8))
-#define vlseg3e8_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (const uint8_t *)(op3), (size_t)(op4))
-#define vlseg3e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vbool32_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (const uint8_t *)(op7), (size_t)(op8))
-#define vlseg3e8_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (const uint8_t *)(op3), (size_t)(op4))
-#define vlseg3e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vbool64_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (const uint8_t *)(op7), (size_t)(op8))
-#define vlseg4e8_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (const int8_t *)(op4), (size_t)(op5))
-#define vlseg4e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vbool8_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (const int8_t *)(op9), (size_t)(op10))
-#define vlseg4e8_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (const int8_t *)(op4), (size_t)(op5))
-#define vlseg4e8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (vbool4_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (vint8m2_t)(op7), (vint8m2_t)(op8), (const int8_t *)(op9), (size_t)(op10))
-#define vlseg4e8_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (const int8_t *)(op4), (size_t)(op5))
-#define vlseg4e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vbool16_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (const int8_t *)(op9), (size_t)(op10))
-#define vlseg4e8_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (const int8_t *)(op4), (size_t)(op5))
-#define vlseg4e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vbool32_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (const int8_t *)(op9), (size_t)(op10))
-#define vlseg4e8_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (const int8_t *)(op4), (size_t)(op5))
-#define vlseg4e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vbool64_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (const int8_t *)(op9), (size_t)(op10))
-#define vlseg4e8_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (const uint8_t *)(op4), (size_t)(op5))
-#define vlseg4e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vbool8_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (const uint8_t *)(op9), (size_t)(op10))
-#define vlseg4e8_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (const uint8_t *)(op4), (size_t)(op5))
-#define vlseg4e8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (vbool4_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (vuint8m2_t)(op7), (vuint8m2_t)(op8), (const uint8_t *)(op9), (size_t)(op10))
-#define vlseg4e8_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (const uint8_t *)(op4), (size_t)(op5))
-#define vlseg4e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vbool16_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (const uint8_t *)(op9), (size_t)(op10))
-#define vlseg4e8_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (const uint8_t *)(op4), (size_t)(op5))
-#define vlseg4e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vbool32_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (const uint8_t *)(op9), (size_t)(op10))
-#define vlseg4e8_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (const uint8_t *)(op4), (size_t)(op5))
-#define vlseg4e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vbool64_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (const uint8_t *)(op9), (size_t)(op10))
-#define vlseg5e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (const int8_t *)(op5), (size_t)(op6))
-#define vlseg5e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vbool8_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (const int8_t *)(op11), (size_t)(op12))
-#define vlseg5e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (const int8_t *)(op5), (size_t)(op6))
-#define vlseg5e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vbool16_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (const int8_t *)(op11), (size_t)(op12))
-#define vlseg5e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (const int8_t *)(op5), (size_t)(op6))
-#define vlseg5e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vbool32_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (const int8_t *)(op11), (size_t)(op12))
-#define vlseg5e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (const int8_t *)(op5), (size_t)(op6))
-#define vlseg5e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vbool64_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (const int8_t *)(op11), (size_t)(op12))
-#define vlseg5e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (const uint8_t *)(op5), (size_t)(op6))
-#define vlseg5e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vbool8_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (const uint8_t *)(op11), (size_t)(op12))
-#define vlseg5e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (const uint8_t *)(op5), (size_t)(op6))
-#define vlseg5e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vbool16_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (const uint8_t *)(op11), (size_t)(op12))
-#define vlseg5e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (const uint8_t *)(op5), (size_t)(op6))
-#define vlseg5e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vbool32_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (const uint8_t *)(op11), (size_t)(op12))
-#define vlseg5e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (const uint8_t *)(op5), (size_t)(op6))
-#define vlseg5e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vbool64_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (const uint8_t *)(op11), (size_t)(op12))
-#define vlseg6e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (const int8_t *)(op6), (size_t)(op7))
-#define vlseg6e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vbool8_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (const int8_t *)(op13), (size_t)(op14))
-#define vlseg6e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (const int8_t *)(op6), (size_t)(op7))
-#define vlseg6e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vbool16_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (const int8_t *)(op13), (size_t)(op14))
-#define vlseg6e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (const int8_t *)(op6), (size_t)(op7))
-#define vlseg6e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vbool32_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (const int8_t *)(op13), (size_t)(op14))
-#define vlseg6e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (const int8_t *)(op6), (size_t)(op7))
-#define vlseg6e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vbool64_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (const int8_t *)(op13), (size_t)(op14))
-#define vlseg6e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (const uint8_t *)(op6), (size_t)(op7))
-#define vlseg6e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vbool8_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (const uint8_t *)(op13), (size_t)(op14))
-#define vlseg6e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (const uint8_t *)(op6), (size_t)(op7))
-#define vlseg6e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vbool16_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (const uint8_t *)(op13), (size_t)(op14))
-#define vlseg6e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (const uint8_t *)(op6), (size_t)(op7))
-#define vlseg6e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vbool32_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (const uint8_t *)(op13), (size_t)(op14))
-#define vlseg6e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (const uint8_t *)(op6), (size_t)(op7))
-#define vlseg6e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vbool64_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (const uint8_t *)(op13), (size_t)(op14))
-#define vlseg7e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (const int8_t *)(op7), (size_t)(op8))
-#define vlseg7e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vbool8_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (const int8_t *)(op15), (size_t)(op16))
-#define vlseg7e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (const int8_t *)(op7), (size_t)(op8))
-#define vlseg7e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vbool16_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (const int8_t *)(op15), (size_t)(op16))
-#define vlseg7e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (const int8_t *)(op7), (size_t)(op8))
-#define vlseg7e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vbool32_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (const int8_t *)(op15), (size_t)(op16))
-#define vlseg7e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (const int8_t *)(op7), (size_t)(op8))
-#define vlseg7e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vbool64_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (const int8_t *)(op15), (size_t)(op16))
-#define vlseg7e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (const uint8_t *)(op7), (size_t)(op8))
-#define vlseg7e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vbool8_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (const uint8_t *)(op15), (size_t)(op16))
-#define vlseg7e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (const uint8_t *)(op7), (size_t)(op8))
-#define vlseg7e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vbool16_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (const uint8_t *)(op15), (size_t)(op16))
-#define vlseg7e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (const uint8_t *)(op7), (size_t)(op8))
-#define vlseg7e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vbool32_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (const uint8_t *)(op15), (size_t)(op16))
-#define vlseg7e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (const uint8_t *)(op7), (size_t)(op8))
-#define vlseg7e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vbool64_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (const uint8_t *)(op15), (size_t)(op16))
-#define vlseg8e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (const int8_t *)(op8), (size_t)(op9))
-#define vlseg8e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (vbool8_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (vint8m1_t)(op15), (vint8m1_t)(op16), (const int8_t *)(op17), (size_t)(op18))
-#define vlseg8e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (const int8_t *)(op8), (size_t)(op9))
-#define vlseg8e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (vbool16_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (vint8mf2_t)(op15), (vint8mf2_t)(op16), (const int8_t *)(op17), (size_t)(op18))
-#define vlseg8e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (const int8_t *)(op8), (size_t)(op9))
-#define vlseg8e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (vbool32_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (vint8mf4_t)(op15), (vint8mf4_t)(op16), (const int8_t *)(op17), (size_t)(op18))
-#define vlseg8e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (const int8_t *)(op8), (size_t)(op9))
-#define vlseg8e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (vbool64_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (vint8mf8_t)(op15), (vint8mf8_t)(op16), (const int8_t *)(op17), (size_t)(op18))
-#define vlseg8e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (const uint8_t *)(op8), (size_t)(op9))
-#define vlseg8e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (vbool8_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (vuint8m1_t)(op15), (vuint8m1_t)(op16), (const uint8_t *)(op17), (size_t)(op18))
-#define vlseg8e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (const uint8_t *)(op8), (size_t)(op9))
-#define vlseg8e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (vbool16_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (vuint8mf2_t)(op15), (vuint8mf2_t)(op16), (const uint8_t *)(op17), (size_t)(op18))
-#define vlseg8e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (const uint8_t *)(op8), (size_t)(op9))
-#define vlseg8e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (vbool32_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (vuint8mf4_t)(op15), (vuint8mf4_t)(op16), (const uint8_t *)(op17), (size_t)(op18))
-#define vlseg8e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (const uint8_t *)(op8), (size_t)(op9))
-#define vlseg8e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (vbool64_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (vuint8mf8_t)(op15), (vuint8mf8_t)(op16), (const uint8_t *)(op17), (size_t)(op18))
-#define vlseg2e16_v_i16m1(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (const int16_t *)(op2), (size_t)(op3))
-#define vlseg2e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vbool16_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (const int16_t *)(op5), (size_t)(op6))
-#define vlseg2e16_v_i16m2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (const int16_t *)(op2), (size_t)(op3))
-#define vlseg2e16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vbool8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (const int16_t *)(op5), (size_t)(op6))
-#define vlseg2e16_v_i16m4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_i16m4((vint16m4_t *)(op0), (vint16m4_t *)(op1), (const int16_t *)(op2), (size_t)(op3))
-#define vlseg2e16_v_i16m4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_i16m4_m((vint16m4_t *)(op0), (vint16m4_t *)(op1), (vbool4_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (const int16_t *)(op5), (size_t)(op6))
-#define vlseg2e16_v_i16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (const int16_t *)(op2), (size_t)(op3))
-#define vlseg2e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vbool32_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (const int16_t *)(op5), (size_t)(op6))
-#define vlseg2e16_v_i16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (const int16_t *)(op2), (size_t)(op3))
-#define vlseg2e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vbool64_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (const int16_t *)(op5), (size_t)(op6))
-#define vlseg2e16_v_u16m1(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (const uint16_t *)(op2), (size_t)(op3))
-#define vlseg2e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vbool16_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (const uint16_t *)(op5), (size_t)(op6))
-#define vlseg2e16_v_u16m2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (const uint16_t *)(op2), (size_t)(op3))
-#define vlseg2e16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vbool8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (const uint16_t *)(op5), (size_t)(op6))
-#define vlseg2e16_v_u16m4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_u16m4((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (const uint16_t *)(op2), (size_t)(op3))
-#define vlseg2e16_v_u16m4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_u16m4_m((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (vbool4_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (const uint16_t *)(op5), (size_t)(op6))
-#define vlseg2e16_v_u16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (const uint16_t *)(op2), (size_t)(op3))
-#define vlseg2e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vbool32_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (const uint16_t *)(op5), (size_t)(op6))
-#define vlseg2e16_v_u16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (const uint16_t *)(op2), (size_t)(op3))
-#define vlseg2e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vbool64_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (const uint16_t *)(op5), (size_t)(op6))
-#define vlseg3e16_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (const int16_t *)(op3), (size_t)(op4))
-#define vlseg3e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vbool16_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (const int16_t *)(op7), (size_t)(op8))
-#define vlseg3e16_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (const int16_t *)(op3), (size_t)(op4))
-#define vlseg3e16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vbool8_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (const int16_t *)(op7), (size_t)(op8))
-#define vlseg3e16_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (const int16_t *)(op3), (size_t)(op4))
-#define vlseg3e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vbool32_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (const int16_t *)(op7), (size_t)(op8))
-#define vlseg3e16_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (const int16_t *)(op3), (size_t)(op4))
-#define vlseg3e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vbool64_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (const int16_t *)(op7), (size_t)(op8))
-#define vlseg3e16_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (const uint16_t *)(op3), (size_t)(op4))
-#define vlseg3e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vbool16_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (const uint16_t *)(op7), (size_t)(op8))
-#define vlseg3e16_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (const uint16_t *)(op3), (size_t)(op4))
-#define vlseg3e16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vbool8_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (const uint16_t *)(op7), (size_t)(op8))
-#define vlseg3e16_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (const uint16_t *)(op3), (size_t)(op4))
-#define vlseg3e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vbool32_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (const uint16_t *)(op7), (size_t)(op8))
-#define vlseg3e16_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (const uint16_t *)(op3), (size_t)(op4))
-#define vlseg3e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vbool64_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (const uint16_t *)(op7), (size_t)(op8))
-#define vlseg4e16_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (const int16_t *)(op4), (size_t)(op5))
-#define vlseg4e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vbool16_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (const int16_t *)(op9), (size_t)(op10))
-#define vlseg4e16_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (const int16_t *)(op4), (size_t)(op5))
-#define vlseg4e16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (vbool8_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (vint16m2_t)(op7), (vint16m2_t)(op8), (const int16_t *)(op9), (size_t)(op10))
-#define vlseg4e16_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (const int16_t *)(op4), (size_t)(op5))
-#define vlseg4e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vbool32_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (const int16_t *)(op9), (size_t)(op10))
-#define vlseg4e16_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (const int16_t *)(op4), (size_t)(op5))
-#define vlseg4e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vbool64_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (const int16_t *)(op9), (size_t)(op10))
-#define vlseg4e16_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (const uint16_t *)(op4), (size_t)(op5))
-#define vlseg4e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vbool16_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (const uint16_t *)(op9), (size_t)(op10))
-#define vlseg4e16_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (const uint16_t *)(op4), (size_t)(op5))
-#define vlseg4e16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (vbool8_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (vuint16m2_t)(op7), (vuint16m2_t)(op8), (const uint16_t *)(op9), (size_t)(op10))
-#define vlseg4e16_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (const uint16_t *)(op4), (size_t)(op5))
-#define vlseg4e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vbool32_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (const uint16_t *)(op9), (size_t)(op10))
-#define vlseg4e16_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (const uint16_t *)(op4), (size_t)(op5))
-#define vlseg4e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vbool64_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (const uint16_t *)(op9), (size_t)(op10))
-#define vlseg5e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (const int16_t *)(op5), (size_t)(op6))
-#define vlseg5e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vbool16_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (const int16_t *)(op11), (size_t)(op12))
-#define vlseg5e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (const int16_t *)(op5), (size_t)(op6))
-#define vlseg5e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vbool32_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (const int16_t *)(op11), (size_t)(op12))
-#define vlseg5e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (const int16_t *)(op5), (size_t)(op6))
-#define vlseg5e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vbool64_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (const int16_t *)(op11), (size_t)(op12))
-#define vlseg5e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (const uint16_t *)(op5), (size_t)(op6))
-#define vlseg5e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vbool16_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (const uint16_t *)(op11), (size_t)(op12))
-#define vlseg5e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (const uint16_t *)(op5), (size_t)(op6))
-#define vlseg5e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vbool32_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (const uint16_t *)(op11), (size_t)(op12))
-#define vlseg5e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (const uint16_t *)(op5), (size_t)(op6))
-#define vlseg5e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vbool64_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (const uint16_t *)(op11), (size_t)(op12))
-#define vlseg6e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (const int16_t *)(op6), (size_t)(op7))
-#define vlseg6e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vbool16_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (const int16_t *)(op13), (size_t)(op14))
-#define vlseg6e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (const int16_t *)(op6), (size_t)(op7))
-#define vlseg6e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vbool32_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (const int16_t *)(op13), (size_t)(op14))
-#define vlseg6e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (const int16_t *)(op6), (size_t)(op7))
-#define vlseg6e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vbool64_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (const int16_t *)(op13), (size_t)(op14))
-#define vlseg6e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (const uint16_t *)(op6), (size_t)(op7))
-#define vlseg6e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vbool16_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (const uint16_t *)(op13), (size_t)(op14))
-#define vlseg6e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (const uint16_t *)(op6), (size_t)(op7))
-#define vlseg6e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vbool32_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (const uint16_t *)(op13), (size_t)(op14))
-#define vlseg6e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (const uint16_t *)(op6), (size_t)(op7))
-#define vlseg6e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vbool64_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (const uint16_t *)(op13), (size_t)(op14))
-#define vlseg7e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (const int16_t *)(op7), (size_t)(op8))
-#define vlseg7e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vbool16_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (const int16_t *)(op15), (size_t)(op16))
-#define vlseg7e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (const int16_t *)(op7), (size_t)(op8))
-#define vlseg7e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vbool32_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (const int16_t *)(op15), (size_t)(op16))
-#define vlseg7e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (const int16_t *)(op7), (size_t)(op8))
-#define vlseg7e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vbool64_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (const int16_t *)(op15), (size_t)(op16))
-#define vlseg7e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (const uint16_t *)(op7), (size_t)(op8))
-#define vlseg7e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vbool16_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (const uint16_t *)(op15), (size_t)(op16))
-#define vlseg7e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (const uint16_t *)(op7), (size_t)(op8))
-#define vlseg7e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vbool32_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (const uint16_t *)(op15), (size_t)(op16))
-#define vlseg7e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (const uint16_t *)(op7), (size_t)(op8))
-#define vlseg7e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vbool64_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (const uint16_t *)(op15), (size_t)(op16))
-#define vlseg8e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (const int16_t *)(op8), (size_t)(op9))
-#define vlseg8e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (vbool16_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (vint16m1_t)(op15), (vint16m1_t)(op16), (const int16_t *)(op17), (size_t)(op18))
-#define vlseg8e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (const int16_t *)(op8), (size_t)(op9))
-#define vlseg8e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (vbool32_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (vint16mf2_t)(op15), (vint16mf2_t)(op16), (const int16_t *)(op17), (size_t)(op18))
-#define vlseg8e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (const int16_t *)(op8), (size_t)(op9))
-#define vlseg8e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (vbool64_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (vint16mf4_t)(op15), (vint16mf4_t)(op16), (const int16_t *)(op17), (size_t)(op18))
-#define vlseg8e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (const uint16_t *)(op8), (size_t)(op9))
-#define vlseg8e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (vbool16_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (vuint16m1_t)(op15), (vuint16m1_t)(op16), (const uint16_t *)(op17), (size_t)(op18))
-#define vlseg8e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (const uint16_t *)(op8), (size_t)(op9))
-#define vlseg8e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (vbool32_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (vuint16mf2_t)(op15), (vuint16mf2_t)(op16), (const uint16_t *)(op17), (size_t)(op18))
-#define vlseg8e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (const uint16_t *)(op8), (size_t)(op9))
-#define vlseg8e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (vbool64_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (vuint16mf4_t)(op15), (vuint16mf4_t)(op16), (const uint16_t *)(op17), (size_t)(op18))
-#define vlseg2e32_v_i32m1(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (const int32_t *)(op2), (size_t)(op3))
-#define vlseg2e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vbool32_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (const int32_t *)(op5), (size_t)(op6))
-#define vlseg2e32_v_i32m2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (const int32_t *)(op2), (size_t)(op3))
-#define vlseg2e32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vbool16_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (const int32_t *)(op5), (size_t)(op6))
-#define vlseg2e32_v_i32m4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_i32m4((vint32m4_t *)(op0), (vint32m4_t *)(op1), (const int32_t *)(op2), (size_t)(op3))
-#define vlseg2e32_v_i32m4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_i32m4_m((vint32m4_t *)(op0), (vint32m4_t *)(op1), (vbool8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (const int32_t *)(op5), (size_t)(op6))
-#define vlseg2e32_v_i32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (const int32_t *)(op2), (size_t)(op3))
-#define vlseg2e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vbool64_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (const int32_t *)(op5), (size_t)(op6))
-#define vlseg2e32_v_u32m1(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (const uint32_t *)(op2), (size_t)(op3))
-#define vlseg2e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vbool32_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (const uint32_t *)(op5), (size_t)(op6))
-#define vlseg2e32_v_u32m2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (const uint32_t *)(op2), (size_t)(op3))
-#define vlseg2e32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vbool16_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (const uint32_t *)(op5), (size_t)(op6))
-#define vlseg2e32_v_u32m4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_u32m4((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (const uint32_t *)(op2), (size_t)(op3))
-#define vlseg2e32_v_u32m4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_u32m4_m((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (vbool8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (const uint32_t *)(op5), (size_t)(op6))
-#define vlseg2e32_v_u32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (const uint32_t *)(op2), (size_t)(op3))
-#define vlseg2e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vbool64_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (const uint32_t *)(op5), (size_t)(op6))
-#define vlseg3e32_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (const int32_t *)(op3), (size_t)(op4))
-#define vlseg3e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vbool32_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (const int32_t *)(op7), (size_t)(op8))
-#define vlseg3e32_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (const int32_t *)(op3), (size_t)(op4))
-#define vlseg3e32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vbool16_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (const int32_t *)(op7), (size_t)(op8))
-#define vlseg3e32_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (const int32_t *)(op3), (size_t)(op4))
-#define vlseg3e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vbool64_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (const int32_t *)(op7), (size_t)(op8))
-#define vlseg3e32_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (const uint32_t *)(op3), (size_t)(op4))
-#define vlseg3e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vbool32_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (const uint32_t *)(op7), (size_t)(op8))
-#define vlseg3e32_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (const uint32_t *)(op3), (size_t)(op4))
-#define vlseg3e32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vbool16_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (const uint32_t *)(op7), (size_t)(op8))
-#define vlseg3e32_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (const uint32_t *)(op3), (size_t)(op4))
-#define vlseg3e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vbool64_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (const uint32_t *)(op7), (size_t)(op8))
-#define vlseg4e32_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (const int32_t *)(op4), (size_t)(op5))
-#define vlseg4e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vbool32_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (const int32_t *)(op9), (size_t)(op10))
-#define vlseg4e32_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (const int32_t *)(op4), (size_t)(op5))
-#define vlseg4e32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (vbool16_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (vint32m2_t)(op7), (vint32m2_t)(op8), (const int32_t *)(op9), (size_t)(op10))
-#define vlseg4e32_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (const int32_t *)(op4), (size_t)(op5))
-#define vlseg4e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vbool64_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (const int32_t *)(op9), (size_t)(op10))
-#define vlseg4e32_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (const uint32_t *)(op4), (size_t)(op5))
-#define vlseg4e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vbool32_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (const uint32_t *)(op9), (size_t)(op10))
-#define vlseg4e32_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (const uint32_t *)(op4), (size_t)(op5))
-#define vlseg4e32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (vbool16_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (vuint32m2_t)(op7), (vuint32m2_t)(op8), (const uint32_t *)(op9), (size_t)(op10))
-#define vlseg4e32_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (const uint32_t *)(op4), (size_t)(op5))
-#define vlseg4e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vbool64_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (const uint32_t *)(op9), (size_t)(op10))
-#define vlseg5e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (const int32_t *)(op5), (size_t)(op6))
-#define vlseg5e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vbool32_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (const int32_t *)(op11), (size_t)(op12))
-#define vlseg5e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (const int32_t *)(op5), (size_t)(op6))
-#define vlseg5e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vbool64_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (const int32_t *)(op11), (size_t)(op12))
-#define vlseg5e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (const uint32_t *)(op5), (size_t)(op6))
-#define vlseg5e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vbool32_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (const uint32_t *)(op11), (size_t)(op12))
-#define vlseg5e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (const uint32_t *)(op5), (size_t)(op6))
-#define vlseg5e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vbool64_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (const uint32_t *)(op11), (size_t)(op12))
-#define vlseg6e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (const int32_t *)(op6), (size_t)(op7))
-#define vlseg6e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vbool32_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (const int32_t *)(op13), (size_t)(op14))
-#define vlseg6e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (const int32_t *)(op6), (size_t)(op7))
-#define vlseg6e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vbool64_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (const int32_t *)(op13), (size_t)(op14))
-#define vlseg6e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (const uint32_t *)(op6), (size_t)(op7))
-#define vlseg6e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vbool32_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (const uint32_t *)(op13), (size_t)(op14))
-#define vlseg6e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (const uint32_t *)(op6), (size_t)(op7))
-#define vlseg6e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vbool64_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (const uint32_t *)(op13), (size_t)(op14))
-#define vlseg7e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (const int32_t *)(op7), (size_t)(op8))
-#define vlseg7e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vbool32_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (const int32_t *)(op15), (size_t)(op16))
-#define vlseg7e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (const int32_t *)(op7), (size_t)(op8))
-#define vlseg7e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vbool64_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (const int32_t *)(op15), (size_t)(op16))
-#define vlseg7e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (const uint32_t *)(op7), (size_t)(op8))
-#define vlseg7e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vbool32_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (const uint32_t *)(op15), (size_t)(op16))
-#define vlseg7e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (const uint32_t *)(op7), (size_t)(op8))
-#define vlseg7e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vbool64_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (const uint32_t *)(op15), (size_t)(op16))
-#define vlseg8e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (const int32_t *)(op8), (size_t)(op9))
-#define vlseg8e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (vbool32_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (vint32m1_t)(op15), (vint32m1_t)(op16), (const int32_t *)(op17), (size_t)(op18))
-#define vlseg8e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (const int32_t *)(op8), (size_t)(op9))
-#define vlseg8e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (vbool64_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (vint32mf2_t)(op15), (vint32mf2_t)(op16), (const int32_t *)(op17), (size_t)(op18))
-#define vlseg8e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (const uint32_t *)(op8), (size_t)(op9))
-#define vlseg8e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (vbool32_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (vuint32m1_t)(op15), (vuint32m1_t)(op16), (const uint32_t *)(op17), (size_t)(op18))
-#define vlseg8e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (const uint32_t *)(op8), (size_t)(op9))
-#define vlseg8e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (vbool64_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (vuint32mf2_t)(op15), (vuint32mf2_t)(op16), (const uint32_t *)(op17), (size_t)(op18))
-#define vlseg2e64_v_i64m1(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (const int64_t *)(op2), (size_t)(op3))
-#define vlseg2e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vbool64_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (const int64_t *)(op5), (size_t)(op6))
-#define vlseg2e64_v_i64m2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (const int64_t *)(op2), (size_t)(op3))
-#define vlseg2e64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vbool32_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (const int64_t *)(op5), (size_t)(op6))
-#define vlseg2e64_v_i64m4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e64_v_i64m4((vint64m4_t *)(op0), (vint64m4_t *)(op1), (const int64_t *)(op2), (size_t)(op3))
-#define vlseg2e64_v_i64m4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e64_v_i64m4_m((vint64m4_t *)(op0), (vint64m4_t *)(op1), (vbool16_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (const int64_t *)(op5), (size_t)(op6))
-#define vlseg2e64_v_u64m1(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (const uint64_t *)(op2), (size_t)(op3))
-#define vlseg2e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vbool64_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (const uint64_t *)(op5), (size_t)(op6))
-#define vlseg2e64_v_u64m2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (const uint64_t *)(op2), (size_t)(op3))
-#define vlseg2e64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vbool32_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (const uint64_t *)(op5), (size_t)(op6))
-#define vlseg2e64_v_u64m4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e64_v_u64m4((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (const uint64_t *)(op2), (size_t)(op3))
-#define vlseg2e64_v_u64m4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e64_v_u64m4_m((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (vbool16_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (const uint64_t *)(op5), (size_t)(op6))
-#define vlseg3e64_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (const int64_t *)(op3), (size_t)(op4))
-#define vlseg3e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vbool64_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (const int64_t *)(op7), (size_t)(op8))
-#define vlseg3e64_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (const int64_t *)(op3), (size_t)(op4))
-#define vlseg3e64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vbool32_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (const int64_t *)(op7), (size_t)(op8))
-#define vlseg3e64_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (const uint64_t *)(op3), (size_t)(op4))
-#define vlseg3e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vbool64_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (const uint64_t *)(op7), (size_t)(op8))
-#define vlseg3e64_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (const uint64_t *)(op3), (size_t)(op4))
-#define vlseg3e64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vbool32_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (const uint64_t *)(op7), (size_t)(op8))
-#define vlseg4e64_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (const int64_t *)(op4), (size_t)(op5))
-#define vlseg4e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vbool64_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (const int64_t *)(op9), (size_t)(op10))
-#define vlseg4e64_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (const int64_t *)(op4), (size_t)(op5))
-#define vlseg4e64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (vbool32_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (vint64m2_t)(op7), (vint64m2_t)(op8), (const int64_t *)(op9), (size_t)(op10))
-#define vlseg4e64_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (const uint64_t *)(op4), (size_t)(op5))
-#define vlseg4e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vbool64_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (const uint64_t *)(op9), (size_t)(op10))
-#define vlseg4e64_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (const uint64_t *)(op4), (size_t)(op5))
-#define vlseg4e64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (vbool32_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (vuint64m2_t)(op7), (vuint64m2_t)(op8), (const uint64_t *)(op9), (size_t)(op10))
-#define vlseg5e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (const int64_t *)(op5), (size_t)(op6))
-#define vlseg5e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vbool64_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (const int64_t *)(op11), (size_t)(op12))
-#define vlseg5e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (const uint64_t *)(op5), (size_t)(op6))
-#define vlseg5e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vbool64_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (const uint64_t *)(op11), (size_t)(op12))
-#define vlseg6e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (const int64_t *)(op6), (size_t)(op7))
-#define vlseg6e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vbool64_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (const int64_t *)(op13), (size_t)(op14))
-#define vlseg6e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (const uint64_t *)(op6), (size_t)(op7))
-#define vlseg6e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vbool64_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (const uint64_t *)(op13), (size_t)(op14))
-#define vlseg7e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (const int64_t *)(op7), (size_t)(op8))
-#define vlseg7e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vbool64_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (const int64_t *)(op15), (size_t)(op16))
-#define vlseg7e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (const uint64_t *)(op7), (size_t)(op8))
-#define vlseg7e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vbool64_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (const uint64_t *)(op15), (size_t)(op16))
-#define vlseg8e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (const int64_t *)(op8), (size_t)(op9))
-#define vlseg8e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (vbool64_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (vint64m1_t)(op15), (vint64m1_t)(op16), (const int64_t *)(op17), (size_t)(op18))
-#define vlseg8e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (const uint64_t *)(op8), (size_t)(op9))
-#define vlseg8e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (vbool64_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (vuint64m1_t)(op15), (vuint64m1_t)(op16), (const uint64_t *)(op17), (size_t)(op18))
-#define vlseg3e8ff_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e8ff_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (const int8_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e8ff_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e8ff_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vbool8_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (const int8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e8ff_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e8ff_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (const int8_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e8ff_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e8ff_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vbool4_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (const int8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e8ff_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e8ff_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (const int8_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e8ff_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e8ff_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vbool16_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (const int8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e8ff_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e8ff_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (const int8_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e8ff_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e8ff_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vbool32_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (const int8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e8ff_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e8ff_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (const int8_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e8ff_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e8ff_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vbool64_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (const int8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e8ff_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e8ff_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (const uint8_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e8ff_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e8ff_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vbool8_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (const uint8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e8ff_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e8ff_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (const uint8_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e8ff_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e8ff_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vbool4_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (const uint8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e8ff_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e8ff_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (const uint8_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e8ff_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e8ff_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vbool16_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (const uint8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e8ff_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e8ff_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (const uint8_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e8ff_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e8ff_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vbool32_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (const uint8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e8ff_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e8ff_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (const uint8_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e8ff_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e8ff_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vbool64_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (const uint8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg4e8ff_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e8ff_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (const int8_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e8ff_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e8ff_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vbool8_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (const int8_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e8ff_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e8ff_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (const int8_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e8ff_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e8ff_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (vbool4_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (vint8m2_t)(op7), (vint8m2_t)(op8), (const int8_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e8ff_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e8ff_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (const int8_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e8ff_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e8ff_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vbool16_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (const int8_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e8ff_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e8ff_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (const int8_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e8ff_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e8ff_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vbool32_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (const int8_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e8ff_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e8ff_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (const int8_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e8ff_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e8ff_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vbool64_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (const int8_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e8ff_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e8ff_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (const uint8_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e8ff_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e8ff_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vbool8_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (const uint8_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e8ff_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e8ff_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (const uint8_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e8ff_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e8ff_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (vbool4_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (vuint8m2_t)(op7), (vuint8m2_t)(op8), (const uint8_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e8ff_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e8ff_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (const uint8_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e8ff_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e8ff_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vbool16_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (const uint8_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e8ff_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e8ff_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (const uint8_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e8ff_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e8ff_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vbool32_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (const uint8_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e8ff_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e8ff_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (const uint8_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e8ff_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e8ff_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vbool64_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (const uint8_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg5e8ff_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e8ff_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (const int8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e8ff_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e8ff_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vbool8_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (const int8_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e8ff_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e8ff_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (const int8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e8ff_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e8ff_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vbool16_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (const int8_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e8ff_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e8ff_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (const int8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e8ff_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e8ff_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vbool32_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (const int8_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e8ff_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e8ff_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (const int8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e8ff_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e8ff_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vbool64_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (const int8_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e8ff_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e8ff_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (const uint8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e8ff_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e8ff_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vbool8_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (const uint8_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e8ff_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e8ff_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (const uint8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e8ff_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e8ff_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vbool16_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (const uint8_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e8ff_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e8ff_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (const uint8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e8ff_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e8ff_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vbool32_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (const uint8_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e8ff_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e8ff_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (const uint8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e8ff_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e8ff_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vbool64_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (const uint8_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg6e8ff_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e8ff_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (const int8_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e8ff_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e8ff_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vbool8_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (const int8_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e8ff_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e8ff_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (const int8_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e8ff_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e8ff_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vbool16_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (const int8_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e8ff_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e8ff_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (const int8_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e8ff_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e8ff_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vbool32_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (const int8_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e8ff_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e8ff_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (const int8_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e8ff_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e8ff_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vbool64_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (const int8_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e8ff_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e8ff_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (const uint8_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e8ff_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e8ff_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vbool8_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (const uint8_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e8ff_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e8ff_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (const uint8_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e8ff_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e8ff_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vbool16_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (const uint8_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e8ff_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e8ff_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (const uint8_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e8ff_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e8ff_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vbool32_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (const uint8_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e8ff_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e8ff_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (const uint8_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e8ff_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e8ff_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vbool64_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (const uint8_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg7e8ff_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e8ff_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (const int8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e8ff_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e8ff_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vbool8_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (const int8_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e8ff_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e8ff_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (const int8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e8ff_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e8ff_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vbool16_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (const int8_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e8ff_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e8ff_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (const int8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e8ff_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e8ff_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vbool32_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (const int8_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e8ff_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e8ff_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (const int8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e8ff_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e8ff_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vbool64_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (const int8_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e8ff_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e8ff_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (const uint8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e8ff_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e8ff_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vbool8_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (const uint8_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e8ff_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e8ff_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (const uint8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e8ff_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e8ff_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vbool16_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (const uint8_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e8ff_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e8ff_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (const uint8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e8ff_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e8ff_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vbool32_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (const uint8_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e8ff_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e8ff_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (const uint8_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e8ff_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e8ff_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vbool64_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (const uint8_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg8e8ff_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e8ff_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (const int8_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e8ff_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e8ff_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (vbool8_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (vint8m1_t)(op15), (vint8m1_t)(op16), (const int8_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e8ff_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e8ff_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (const int8_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e8ff_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e8ff_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (vbool16_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (vint8mf2_t)(op15), (vint8mf2_t)(op16), (const int8_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e8ff_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e8ff_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (const int8_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e8ff_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e8ff_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (vbool32_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (vint8mf4_t)(op15), (vint8mf4_t)(op16), (const int8_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e8ff_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e8ff_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (const int8_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e8ff_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e8ff_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (vbool64_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (vint8mf8_t)(op15), (vint8mf8_t)(op16), (const int8_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e8ff_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e8ff_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (const uint8_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e8ff_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e8ff_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (vbool8_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (vuint8m1_t)(op15), (vuint8m1_t)(op16), (const uint8_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e8ff_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e8ff_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (const uint8_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e8ff_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e8ff_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (vbool16_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (vuint8mf2_t)(op15), (vuint8mf2_t)(op16), (const uint8_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e8ff_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e8ff_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (const uint8_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e8ff_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e8ff_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (vbool32_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (vuint8mf4_t)(op15), (vuint8mf4_t)(op16), (const uint8_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e8ff_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e8ff_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (const uint8_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e8ff_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e8ff_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (vbool64_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (vuint8mf8_t)(op15), (vuint8mf8_t)(op16), (const uint8_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg2e16ff_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (const int16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vbool16_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (const int16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (const int16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vbool8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (const int16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_i16m4((vint16m4_t *)(op0), (vint16m4_t *)(op1), (const int16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_i16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_i16m4_m((vint16m4_t *)(op0), (vint16m4_t *)(op1), (vbool4_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (const int16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (const int16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vbool32_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (const int16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (const int16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vbool64_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (const int16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (const uint16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vbool16_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (const uint16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (const uint16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vbool8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (const uint16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_u16m4((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (const uint16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_u16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_u16m4_m((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (vbool4_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (const uint16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (const uint16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vbool32_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (const uint16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (const uint16_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vbool64_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (const uint16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg3e16ff_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (const int16_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vbool16_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (const int16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e16ff_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (const int16_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vbool8_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (const int16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e16ff_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (const int16_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vbool32_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (const int16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e16ff_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (const int16_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vbool64_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (const int16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e16ff_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (const uint16_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vbool16_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (const uint16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e16ff_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (const uint16_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vbool8_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (const uint16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e16ff_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (const uint16_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vbool32_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (const uint16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e16ff_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (const uint16_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vbool64_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (const uint16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg4e16ff_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (const int16_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vbool16_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (const int16_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e16ff_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (const int16_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (vbool8_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (vint16m2_t)(op7), (vint16m2_t)(op8), (const int16_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e16ff_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (const int16_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vbool32_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (const int16_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e16ff_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (const int16_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vbool64_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (const int16_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e16ff_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (const uint16_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vbool16_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (const uint16_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e16ff_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (const uint16_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (vbool8_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (vuint16m2_t)(op7), (vuint16m2_t)(op8), (const uint16_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e16ff_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (const uint16_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vbool32_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (const uint16_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e16ff_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (const uint16_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vbool64_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (const uint16_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg5e16ff_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e16ff_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (const int16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e16ff_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e16ff_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vbool16_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (const int16_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e16ff_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e16ff_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (const int16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e16ff_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e16ff_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vbool32_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (const int16_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e16ff_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e16ff_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (const int16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e16ff_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e16ff_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vbool64_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (const int16_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e16ff_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e16ff_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (const uint16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e16ff_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e16ff_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vbool16_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (const uint16_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e16ff_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e16ff_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (const uint16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e16ff_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e16ff_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vbool32_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (const uint16_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e16ff_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e16ff_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (const uint16_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e16ff_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e16ff_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vbool64_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (const uint16_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg6e16ff_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e16ff_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (const int16_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e16ff_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e16ff_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vbool16_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (const int16_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e16ff_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e16ff_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (const int16_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e16ff_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e16ff_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vbool32_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (const int16_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e16ff_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e16ff_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (const int16_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e16ff_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e16ff_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vbool64_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (const int16_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e16ff_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e16ff_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (const uint16_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e16ff_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e16ff_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vbool16_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (const uint16_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e16ff_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e16ff_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (const uint16_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e16ff_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e16ff_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vbool32_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (const uint16_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e16ff_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e16ff_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (const uint16_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e16ff_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e16ff_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vbool64_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (const uint16_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg7e16ff_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e16ff_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (const int16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e16ff_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e16ff_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vbool16_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (const int16_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e16ff_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e16ff_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (const int16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e16ff_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e16ff_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vbool32_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (const int16_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e16ff_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e16ff_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (const int16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e16ff_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e16ff_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vbool64_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (const int16_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e16ff_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e16ff_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (const uint16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e16ff_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e16ff_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vbool16_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (const uint16_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e16ff_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e16ff_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (const uint16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e16ff_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e16ff_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vbool32_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (const uint16_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e16ff_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e16ff_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (const uint16_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e16ff_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e16ff_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vbool64_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (const uint16_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg8e16ff_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e16ff_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (const int16_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e16ff_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e16ff_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (vbool16_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (vint16m1_t)(op15), (vint16m1_t)(op16), (const int16_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e16ff_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e16ff_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (const int16_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e16ff_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e16ff_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (vbool32_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (vint16mf2_t)(op15), (vint16mf2_t)(op16), (const int16_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e16ff_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e16ff_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (const int16_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e16ff_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e16ff_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (vbool64_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (vint16mf4_t)(op15), (vint16mf4_t)(op16), (const int16_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e16ff_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e16ff_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (const uint16_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e16ff_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e16ff_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (vbool16_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (vuint16m1_t)(op15), (vuint16m1_t)(op16), (const uint16_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e16ff_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e16ff_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (const uint16_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e16ff_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e16ff_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (vbool32_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (vuint16mf2_t)(op15), (vuint16mf2_t)(op16), (const uint16_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e16ff_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e16ff_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (const uint16_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e16ff_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e16ff_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (vbool64_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (vuint16mf4_t)(op15), (vuint16mf4_t)(op16), (const uint16_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg2e32ff_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (const int32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vbool32_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (const int32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e32ff_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (const int32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vbool16_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (const int32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e32ff_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_i32m4((vint32m4_t *)(op0), (vint32m4_t *)(op1), (const int32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_i32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_i32m4_m((vint32m4_t *)(op0), (vint32m4_t *)(op1), (vbool8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (const int32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e32ff_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (const int32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vbool64_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (const int32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e8ff_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vbool8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (const int8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e8ff_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vbool4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (const int8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e8ff_v_i8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_i8m4((vint8m4_t *)(op0), (vint8m4_t *)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_i8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_i8m4_m((vint8m4_t *)(op0), (vint8m4_t *)(op1), (vbool2_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (const int8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e8ff_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vbool16_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (const int8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e8ff_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vbool32_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (const int8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e8ff_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (const int8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vbool64_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (const int8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e32ff_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (const uint32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vbool32_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (const uint32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e32ff_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (const uint32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vbool16_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (const uint32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e32ff_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_u32m4((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (const uint32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_u32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_u32m4_m((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (vbool8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (const uint32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e32ff_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (const uint32_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vbool64_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (const uint32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg3e32ff_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e32ff_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (const int32_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e32ff_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e32ff_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vbool32_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (const int32_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e32ff_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e32ff_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (const int32_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e32ff_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e32ff_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vbool16_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (const int32_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e32ff_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e32ff_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (const int32_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e32ff_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e32ff_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vbool64_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (const int32_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e32ff_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e32ff_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (const uint32_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e32ff_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e32ff_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vbool32_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (const uint32_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e32ff_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e32ff_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (const uint32_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e32ff_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e32ff_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vbool16_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (const uint32_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e32ff_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e32ff_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (const uint32_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e32ff_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e32ff_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vbool64_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (const uint32_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg4e32ff_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e32ff_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (const int32_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e32ff_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e32ff_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vbool32_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (const int32_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e32ff_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e32ff_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (const int32_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e32ff_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e32ff_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (vbool16_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (vint32m2_t)(op7), (vint32m2_t)(op8), (const int32_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e32ff_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e32ff_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (const int32_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e32ff_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e32ff_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vbool64_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (const int32_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e32ff_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e32ff_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (const uint32_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e32ff_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e32ff_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vbool32_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (const uint32_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e32ff_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e32ff_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (const uint32_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e32ff_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e32ff_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (vbool16_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (vuint32m2_t)(op7), (vuint32m2_t)(op8), (const uint32_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e32ff_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e32ff_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (const uint32_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e32ff_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e32ff_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vbool64_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (const uint32_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg5e32ff_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e32ff_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (const int32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e32ff_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e32ff_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vbool32_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (const int32_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e32ff_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e32ff_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (const int32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e32ff_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e32ff_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vbool64_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (const int32_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e32ff_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e32ff_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (const uint32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e32ff_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e32ff_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vbool32_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (const uint32_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e32ff_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e32ff_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (const uint32_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e32ff_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e32ff_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vbool64_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (const uint32_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg6e32ff_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e32ff_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (const int32_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e32ff_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e32ff_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vbool32_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (const int32_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e32ff_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e32ff_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (const int32_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e32ff_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e32ff_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vbool64_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (const int32_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e32ff_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e32ff_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (const uint32_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e32ff_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e32ff_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vbool32_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (const uint32_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e32ff_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e32ff_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (const uint32_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e32ff_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e32ff_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vbool64_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (const uint32_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg7e32ff_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e32ff_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (const int32_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e32ff_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e32ff_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vbool32_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (const int32_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e32ff_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e32ff_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (const int32_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e32ff_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e32ff_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vbool64_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (const int32_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg2e8ff_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vbool8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (const uint8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e8ff_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vbool4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (const uint8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e8ff_v_u8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_u8m4((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_u8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_u8m4_m((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (vbool2_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (const uint8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e8ff_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vbool16_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (const uint8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e8ff_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vbool32_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (const uint8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e8ff_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e8ff_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (const uint8_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e8ff_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e8ff_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vbool64_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (const uint8_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg7e32ff_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e32ff_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (const uint32_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e32ff_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e32ff_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vbool32_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (const uint32_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e32ff_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e32ff_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (const uint32_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e32ff_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e32ff_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vbool64_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (const uint32_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg8e32ff_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e32ff_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (const int32_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e32ff_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e32ff_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (vbool32_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (vint32m1_t)(op15), (vint32m1_t)(op16), (const int32_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e32ff_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e32ff_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (const int32_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e32ff_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e32ff_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (vbool64_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (vint32mf2_t)(op15), (vint32mf2_t)(op16), (const int32_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e32ff_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e32ff_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (const uint32_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e32ff_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e32ff_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (vbool32_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (vuint32m1_t)(op15), (vuint32m1_t)(op16), (const uint32_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e32ff_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e32ff_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (const uint32_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e32ff_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e32ff_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (vbool64_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (vuint32mf2_t)(op15), (vuint32mf2_t)(op16), (const uint32_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg2e64ff_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e64ff_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (const int64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e64ff_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e64ff_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vbool64_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (const int64_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e64ff_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e64ff_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (const int64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e64ff_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e64ff_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vbool32_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (const int64_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e64ff_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e64ff_v_i64m4((vint64m4_t *)(op0), (vint64m4_t *)(op1), (const int64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e64ff_v_i64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e64ff_v_i64m4_m((vint64m4_t *)(op0), (vint64m4_t *)(op1), (vbool16_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (const int64_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e64ff_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e64ff_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (const uint64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e64ff_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e64ff_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vbool64_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (const uint64_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e64ff_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e64ff_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (const uint64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e64ff_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e64ff_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vbool32_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (const uint64_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e64ff_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e64ff_v_u64m4((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (const uint64_t *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e64ff_v_u64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e64ff_v_u64m4_m((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (vbool16_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (const uint64_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg3e64ff_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e64ff_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (const int64_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e64ff_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e64ff_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vbool64_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (const int64_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e64ff_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e64ff_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (const int64_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e64ff_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e64ff_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vbool32_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (const int64_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e64ff_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e64ff_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (const uint64_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e64ff_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e64ff_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vbool64_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (const uint64_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e64ff_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e64ff_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (const uint64_t *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e64ff_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e64ff_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vbool32_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (const uint64_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg4e64ff_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e64ff_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (const int64_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e64ff_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e64ff_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vbool64_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (const int64_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e64ff_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e64ff_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (const int64_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e64ff_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e64ff_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (vbool32_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (vint64m2_t)(op7), (vint64m2_t)(op8), (const int64_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e64ff_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e64ff_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (const uint64_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e64ff_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e64ff_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vbool64_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (const uint64_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e64ff_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e64ff_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (const uint64_t *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e64ff_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e64ff_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (vbool32_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (vuint64m2_t)(op7), (vuint64m2_t)(op8), (const uint64_t *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg5e64ff_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e64ff_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (const int64_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e64ff_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e64ff_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vbool64_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (const int64_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlsseg2e8_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vbool8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (const int8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e8_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vbool4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (const int8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e8_v_i8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_i8m4((vint8m4_t *)(op0), (vint8m4_t *)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_i8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_i8m4_m((vint8m4_t *)(op0), (vint8m4_t *)(op1), (vbool2_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (const int8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e8_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vbool16_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (const int8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e8_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vbool32_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (const int8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e8_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (const int8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vbool64_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (const int8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlseg5e64ff_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e64ff_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (const uint64_t *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e64ff_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e64ff_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vbool64_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (const uint64_t *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg6e64ff_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e64ff_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (const int64_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e64ff_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e64ff_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vbool64_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (const int64_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e64ff_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e64ff_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (const uint64_t *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e64ff_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e64ff_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vbool64_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (const uint64_t *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg7e64ff_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e64ff_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (const int64_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e64ff_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e64ff_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vbool64_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (const int64_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e64ff_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e64ff_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (const uint64_t *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e64ff_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e64ff_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vbool64_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (const uint64_t *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg8e64ff_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e64ff_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (const int64_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e64ff_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e64ff_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (vbool64_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (vint64m1_t)(op15), (vint64m1_t)(op16), (const int64_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e64ff_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e64ff_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (const uint64_t *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e64ff_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e64ff_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (vbool64_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (vuint64m1_t)(op15), (vuint64m1_t)(op16), (const uint64_t *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlsseg2e8_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vbool8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (const uint8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e8_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vbool4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (const uint8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e8_v_u8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_u8m4((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_u8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_u8m4_m((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (vbool2_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (const uint8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e8_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vbool16_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (const uint8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e8_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vbool32_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (const uint8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e8_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (const uint8_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vbool64_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (const uint8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (const int8_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vbool8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (const int8_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (const int8_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vbool4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (const int8_t *)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i8m4((vint8m4_t *)(op0), (vint8m4_t *)(op1), (const int8_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i8m4_m((vint8m4_t *)(op0), (vint8m4_t *)(op1), (vbool2_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (const int8_t *)(op5), (vuint8m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (const int8_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vbool16_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (const int8_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (const int8_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vbool32_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (const int8_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (const int8_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vbool64_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (const int8_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vlsseg3e8_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (const int8_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vbool8_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (const int8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e8_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (const int8_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vbool4_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (const int8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e8_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (const int8_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vbool16_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (const int8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e8_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (const int8_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vbool32_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (const int8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e8_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (const int8_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vbool64_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (const int8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vluxseg2ei8_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (const uint8_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vbool8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (const uint8_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (const uint8_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vbool4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (const uint8_t *)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u8m4((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (const uint8_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u8m4_m((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (vbool2_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (const uint8_t *)(op5), (vuint8m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (const uint8_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vbool16_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (const uint8_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (const uint8_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vbool32_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (const uint8_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (const uint8_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vbool64_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (const uint8_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vlsseg3e8_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (const uint8_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vbool8_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (const uint8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e8_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (const uint8_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vbool4_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (const uint8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e8_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (const uint8_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vbool16_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (const uint8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e8_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (const uint8_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vbool32_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (const uint8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e8_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (const uint8_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vbool64_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (const uint8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg4e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (const int8_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vbool8_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (const int8_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e8_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (const int8_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (vbool4_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (vint8m2_t)(op7), (vint8m2_t)(op8), (const int8_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (const int8_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vbool16_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (const int8_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (const int8_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vbool32_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (const int8_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (const int8_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vbool64_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (const int8_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (const uint8_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vbool8_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (const uint8_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e8_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (const uint8_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (vbool4_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (vuint8m2_t)(op7), (vuint8m2_t)(op8), (const uint8_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (const uint8_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vbool16_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (const uint8_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (const uint8_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vbool32_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (const uint8_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (const uint8_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vbool64_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (const uint8_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg5e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (const int8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vbool8_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (const int8_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (const int8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vbool16_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (const int8_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (const int8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vbool32_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (const int8_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (const int8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vbool64_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (const int8_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (const uint8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vbool8_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (const uint8_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (const uint8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vbool16_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (const uint8_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (const uint8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vbool32_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (const uint8_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (const uint8_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vbool64_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (const uint8_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg6e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (const int8_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vbool8_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (const int8_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (const int8_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vbool16_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (const int8_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (const int8_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vbool32_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (const int8_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (const int8_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vbool64_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (const int8_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (const uint8_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vbool8_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (const uint8_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (const uint8_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vbool16_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (const uint8_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (const uint8_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vbool32_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (const uint8_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (const uint8_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vbool64_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (const uint8_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg7e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (const int8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vbool8_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (const int8_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (const int8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vbool16_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (const int8_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (const int8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vbool32_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (const int8_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (const int8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vbool64_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (const int8_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (const uint8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vbool8_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (const uint8_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (const uint8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vbool16_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (const uint8_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (const uint8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vbool32_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (const uint8_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (const uint8_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vbool64_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (const uint8_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg8e8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (const int8_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (vbool8_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (vint8m1_t)(op15), (vint8m1_t)(op16), (const int8_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (const int8_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (vbool16_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (vint8mf2_t)(op15), (vint8mf2_t)(op16), (const int8_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (const int8_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (vbool32_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (vint8mf4_t)(op15), (vint8mf4_t)(op16), (const int8_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (const int8_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (vbool64_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (vint8mf8_t)(op15), (vint8mf8_t)(op16), (const int8_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vsseg2e8_v_i8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_i8m1((int8_t *)(op0), (vint8m1_t)(op1), (vint8m1_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_i8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsseg2e8_v_i8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_i8m2((int8_t *)(op0), (vint8m2_t)(op1), (vint8m2_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_i8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsseg2e8_v_i8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_i8m4((int8_t *)(op0), (vint8m4_t)(op1), (vint8m4_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_i8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsseg2e8_v_i8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_i8mf2((int8_t *)(op0), (vint8mf2_t)(op1), (vint8mf2_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_i8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsseg2e8_v_i8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_i8mf4((int8_t *)(op0), (vint8mf4_t)(op1), (vint8mf4_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_i8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsseg2e8_v_i8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_i8mf8((int8_t *)(op0), (vint8mf8_t)(op1), (vint8mf8_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_i8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vlsseg8e8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (const uint8_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (vbool8_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (vuint8m1_t)(op15), (vuint8m1_t)(op16), (const uint8_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (const uint8_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (vbool16_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (vuint8mf2_t)(op15), (vuint8mf2_t)(op16), (const uint8_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (const uint8_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (vbool32_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (vuint8mf4_t)(op15), (vuint8mf4_t)(op16), (const uint8_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (const uint8_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (vbool64_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (vuint8mf8_t)(op15), (vuint8mf8_t)(op16), (const uint8_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg2e16_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (const int16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vbool16_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (const int16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (const int16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vbool8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (const int16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_i16m4((vint16m4_t *)(op0), (vint16m4_t *)(op1), (const int16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_i16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_i16m4_m((vint16m4_t *)(op0), (vint16m4_t *)(op1), (vbool4_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (const int16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (const int16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vbool32_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (const int16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (const int16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vbool64_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (const int16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (const uint16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vbool16_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (const uint16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (const uint16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vbool8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (const uint16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_u16m4((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (const uint16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_u16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_u16m4_m((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (vbool4_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (const uint16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (const uint16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vbool32_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (const uint16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (const uint16_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vbool64_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (const uint16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg3e16_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (const int16_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vbool16_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (const int16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e16_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (const int16_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vbool8_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (const int16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e16_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (const int16_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vbool32_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (const int16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e16_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (const int16_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vbool64_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (const int16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e16_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (const uint16_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vbool16_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (const uint16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e16_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (const uint16_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vbool8_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (const uint16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e16_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (const uint16_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vbool32_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (const uint16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e16_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (const uint16_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vbool64_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (const uint16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg4e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (const int16_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vbool16_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (const int16_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e16_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (const int16_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (vbool8_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (vint16m2_t)(op7), (vint16m2_t)(op8), (const int16_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (const int16_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vbool32_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (const int16_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (const int16_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vbool64_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (const int16_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (const uint16_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vbool16_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (const uint16_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e16_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (const uint16_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (vbool8_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (vuint16m2_t)(op7), (vuint16m2_t)(op8), (const uint16_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (const uint16_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vbool32_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (const uint16_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (const uint16_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vbool64_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (const uint16_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg5e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (const int16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vbool16_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (const int16_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (const int16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vbool32_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (const int16_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (const int16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vbool64_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (const int16_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (const uint16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vbool16_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (const uint16_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (const uint16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vbool32_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (const uint16_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (const uint16_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vbool64_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (const uint16_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg6e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (const int16_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vbool16_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (const int16_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (const int16_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vbool32_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (const int16_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (const int16_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vbool64_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (const int16_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vsseg2e8_v_u8m1(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_u8m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsseg2e8_v_u8m2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_u8m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsseg2e8_v_u8m4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_u8m4((uint8_t *)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_u8m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsseg2e8_v_u8mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_u8mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsseg2e8_v_u8mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_u8mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsseg2e8_v_u8mf8(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (size_t)(op3))
-#define vsseg2e8_v_u8mf8_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vlsseg6e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (const uint16_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vbool16_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (const uint16_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (const uint16_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vbool32_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (const uint16_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (const uint16_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vbool64_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (const uint16_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg7e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (const int16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vbool16_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (const int16_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (const int16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vbool32_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (const int16_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (const int16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vbool64_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (const int16_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (const uint16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vbool16_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (const uint16_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (const uint16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vbool32_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (const uint16_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (const uint16_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vbool64_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (const uint16_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg8e16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (const int16_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (vbool16_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (vint16m1_t)(op15), (vint16m1_t)(op16), (const int16_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (const int16_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (vbool32_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (vint16mf2_t)(op15), (vint16mf2_t)(op16), (const int16_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (const int16_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (vbool64_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (vint16mf4_t)(op15), (vint16mf4_t)(op16), (const int16_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (const uint16_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (vbool16_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (vuint16m1_t)(op15), (vuint16m1_t)(op16), (const uint16_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (const uint16_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (vbool32_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (vuint16mf2_t)(op15), (vuint16mf2_t)(op16), (const uint16_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (const uint16_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (vbool64_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (vuint16mf4_t)(op15), (vuint16mf4_t)(op16), (const uint16_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg2e32_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (const int32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vbool32_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (const int32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e32_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (const int32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vbool16_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (const int32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e32_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_i32m4((vint32m4_t *)(op0), (vint32m4_t *)(op1), (const int32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_i32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_i32m4_m((vint32m4_t *)(op0), (vint32m4_t *)(op1), (vbool8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (const int32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e32_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (const int32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vbool64_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (const int32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e32_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (const uint32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vbool32_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (const uint32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e32_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (const uint32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vbool16_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (const uint32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e32_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_u32m4((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (const uint32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_u32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_u32m4_m((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (vbool8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (const uint32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e32_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (const uint32_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vbool64_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (const uint32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg3e32_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (const int32_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vbool32_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (const int32_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e32_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (const int32_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vbool16_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (const int32_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e32_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (const int32_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vbool64_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (const int32_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e32_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (const uint32_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vbool32_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (const uint32_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e32_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (const uint32_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vbool16_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (const uint32_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e32_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (const uint32_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vbool64_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (const uint32_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg4e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (const int32_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vbool32_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (const int32_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e32_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (const int32_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (vbool16_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (vint32m2_t)(op7), (vint32m2_t)(op8), (const int32_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (const int32_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vbool64_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (const int32_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (const uint32_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vbool32_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (const uint32_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e32_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (const uint32_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (vbool16_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (vuint32m2_t)(op7), (vuint32m2_t)(op8), (const uint32_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (const uint32_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vbool64_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (const uint32_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg5e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (const int32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vbool32_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (const int32_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (const int32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vbool64_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (const int32_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (const uint32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vbool32_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (const uint32_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (const uint32_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vbool64_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (const uint32_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg6e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (const int32_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vbool32_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (const int32_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (const int32_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vbool64_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (const int32_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (const uint32_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vbool32_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (const uint32_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (const uint32_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vbool64_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (const uint32_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg7e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (const int32_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vbool32_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (const int32_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (const int32_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vbool64_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (const int32_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (const uint32_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vbool32_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (const uint32_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (const uint32_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vbool64_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (const uint32_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg8e32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (const int32_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (vbool32_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (vint32m1_t)(op15), (vint32m1_t)(op16), (const int32_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (const int32_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (vbool64_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (vint32mf2_t)(op15), (vint32mf2_t)(op16), (const int32_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (const uint32_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (vbool32_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (vuint32m1_t)(op15), (vuint32m1_t)(op16), (const uint32_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (const uint32_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (vbool64_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (vuint32mf2_t)(op15), (vuint32mf2_t)(op16), (const uint32_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg2e64_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (const int64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vbool64_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (const int64_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e64_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (const int64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vbool32_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (const int64_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e64_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e64_v_i64m4((vint64m4_t *)(op0), (vint64m4_t *)(op1), (const int64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e64_v_i64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e64_v_i64m4_m((vint64m4_t *)(op0), (vint64m4_t *)(op1), (vbool16_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (const int64_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e64_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (const uint64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vbool64_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (const uint64_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e64_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (const uint64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vbool32_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (const uint64_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e64_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e64_v_u64m4((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (const uint64_t *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e64_v_u64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e64_v_u64m4_m((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (vbool16_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (const uint64_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg3e64_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (const int64_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vbool64_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (const int64_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e64_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (const int64_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vbool32_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (const int64_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e64_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (const uint64_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vbool64_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (const uint64_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e64_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (const uint64_t *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vbool32_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (const uint64_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg4e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (const int64_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vbool64_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (const int64_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e64_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (const int64_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (vbool32_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (vint64m2_t)(op7), (vint64m2_t)(op8), (const int64_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (const uint64_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vbool64_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (const uint64_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e64_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (const uint64_t *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (vbool32_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (vuint64m2_t)(op7), (vuint64m2_t)(op8), (const uint64_t *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg5e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (const int64_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vbool64_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (const int64_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (const uint64_t *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vbool64_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (const uint64_t *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg6e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (const int64_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vbool64_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (const int64_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (const uint64_t *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vbool64_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (const uint64_t *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg7e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (const int64_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vbool64_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (const int64_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (const uint64_t *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vbool64_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (const uint64_t *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg8e64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (const int64_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (vbool64_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (vint64m1_t)(op15), (vint64m1_t)(op16), (const int64_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (const uint64_t *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (vbool64_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (vuint64m1_t)(op15), (vuint64m1_t)(op16), (const uint64_t *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vluxseg3ei8_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (const int8_t *)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vbool8_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (const int8_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (const int8_t *)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vbool4_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (const int8_t *)(op7), (vuint8m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (const int8_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vbool16_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (const int8_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (const int8_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vbool32_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (const int8_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (const int8_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vbool64_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (const int8_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (const uint8_t *)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vbool8_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (const uint8_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (const uint8_t *)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vbool4_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (const uint8_t *)(op7), (vuint8m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (const uint8_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vbool16_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (const uint8_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (const uint8_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vbool32_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (const uint8_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (const uint8_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vbool64_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (const uint8_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg4ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (const int8_t *)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vbool8_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (const int8_t *)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (const int8_t *)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (vbool4_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (vint8m2_t)(op7), (vint8m2_t)(op8), (const int8_t *)(op9), (vuint8m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (const int8_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vbool16_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (const int8_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (const int8_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vbool32_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (const int8_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (const int8_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vbool64_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (const int8_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (const uint8_t *)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vbool8_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (const uint8_t *)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (const uint8_t *)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (vbool4_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (vuint8m2_t)(op7), (vuint8m2_t)(op8), (const uint8_t *)(op9), (vuint8m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (const uint8_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vbool16_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (const uint8_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (const uint8_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vbool32_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (const uint8_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (const uint8_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vbool64_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (const uint8_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vluxseg5ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (const int8_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vbool8_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (const int8_t *)(op11), (vuint8m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (const int8_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vbool16_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (const int8_t *)(op11), (vuint8mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (const int8_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vbool32_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (const int8_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (const int8_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vbool64_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (const int8_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (const uint8_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vbool8_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (const uint8_t *)(op11), (vuint8m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (const uint8_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vbool16_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (const uint8_t *)(op11), (vuint8mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (const uint8_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vbool32_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (const uint8_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (const uint8_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vbool64_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (const uint8_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vluxseg6ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (const int8_t *)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vbool8_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (const int8_t *)(op13), (vuint8m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (const int8_t *)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vbool16_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (const int8_t *)(op13), (vuint8mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (const int8_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vbool32_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (const int8_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (const int8_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vbool64_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (const int8_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (const uint8_t *)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vbool8_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (const uint8_t *)(op13), (vuint8m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (const uint8_t *)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vbool16_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (const uint8_t *)(op13), (vuint8mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (const uint8_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vbool32_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (const uint8_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (const uint8_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vbool64_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (const uint8_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vluxseg7ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (const int8_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vbool8_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (const int8_t *)(op15), (vuint8m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (const int8_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vbool16_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (const int8_t *)(op15), (vuint8mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (const int8_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vbool32_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (const int8_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (const int8_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vbool64_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (const int8_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (const uint8_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vbool8_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (const uint8_t *)(op15), (vuint8m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (const uint8_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vbool16_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (const uint8_t *)(op15), (vuint8mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (const uint8_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vbool32_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (const uint8_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (const uint8_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vbool64_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (const uint8_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vluxseg8ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (const int8_t *)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (vbool8_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (vint8m1_t)(op15), (vint8m1_t)(op16), (const int8_t *)(op17), (vuint8m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (const int8_t *)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (vbool16_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (vint8mf2_t)(op15), (vint8mf2_t)(op16), (const int8_t *)(op17), (vuint8mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (const int8_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (vbool32_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (vint8mf4_t)(op15), (vint8mf4_t)(op16), (const int8_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (const int8_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (vbool64_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (vint8mf8_t)(op15), (vint8mf8_t)(op16), (const int8_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (const uint8_t *)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (vbool8_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (vuint8m1_t)(op15), (vuint8m1_t)(op16), (const uint8_t *)(op17), (vuint8m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (const uint8_t *)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (vbool16_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (vuint8mf2_t)(op15), (vuint8mf2_t)(op16), (const uint8_t *)(op17), (vuint8mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (const uint8_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (vbool32_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (vuint8mf4_t)(op15), (vuint8mf4_t)(op16), (const uint8_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (const uint8_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (vbool64_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (vuint8mf8_t)(op15), (vuint8mf8_t)(op16), (const uint8_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vluxseg2ei16_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (const int8_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vbool8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (const int8_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (const int8_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vbool4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (const int8_t *)(op5), (vuint16m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i8m4((vint8m4_t *)(op0), (vint8m4_t *)(op1), (const int8_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i8m4_m((vint8m4_t *)(op0), (vint8m4_t *)(op1), (vbool2_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (const int8_t *)(op5), (vuint16m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (const int8_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vbool16_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (const int8_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (const int8_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vbool32_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (const int8_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (const int8_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vbool64_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (const int8_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (const uint8_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vbool8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (const uint8_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (const uint8_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vbool4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (const uint8_t *)(op5), (vuint16m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u8m4((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (const uint8_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u8m4_m((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (vbool2_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (const uint8_t *)(op5), (vuint16m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (const uint8_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vbool16_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (const uint8_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (const uint8_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vbool32_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (const uint8_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (const uint8_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vbool64_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (const uint8_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg3ei16_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (const int8_t *)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vbool8_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (const int8_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (const int8_t *)(op3), (vuint16m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vbool4_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (const int8_t *)(op7), (vuint16m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (const int8_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vbool16_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (const int8_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (const int8_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vbool32_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (const int8_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (const int8_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vbool64_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (const int8_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (const uint8_t *)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vbool8_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (const uint8_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (const uint8_t *)(op3), (vuint16m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vbool4_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (const uint8_t *)(op7), (vuint16m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (const uint8_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vbool16_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (const uint8_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (const uint8_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vbool32_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (const uint8_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (const uint8_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vbool64_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (const uint8_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg4ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (const int8_t *)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vbool8_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (const int8_t *)(op9), (vuint16m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (const int8_t *)(op4), (vuint16m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (vbool4_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (vint8m2_t)(op7), (vint8m2_t)(op8), (const int8_t *)(op9), (vuint16m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (const int8_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vbool16_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (const int8_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (const int8_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vbool32_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (const int8_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (const int8_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vbool64_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (const int8_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (const uint8_t *)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vbool8_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (const uint8_t *)(op9), (vuint16m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (const uint8_t *)(op4), (vuint16m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (vbool4_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (vuint8m2_t)(op7), (vuint8m2_t)(op8), (const uint8_t *)(op9), (vuint16m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (const uint8_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vbool16_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (const uint8_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (const uint8_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vbool32_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (const uint8_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (const uint8_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vbool64_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (const uint8_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vluxseg5ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (const int8_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vbool8_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (const int8_t *)(op11), (vuint16m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (const int8_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vbool16_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (const int8_t *)(op11), (vuint16m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (const int8_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vbool32_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (const int8_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (const int8_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vbool64_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (const int8_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (const uint8_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vbool8_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (const uint8_t *)(op11), (vuint16m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (const uint8_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vbool16_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (const uint8_t *)(op11), (vuint16m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (const uint8_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vbool32_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (const uint8_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (const uint8_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vbool64_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (const uint8_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vluxseg6ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (const int8_t *)(op6), (vuint16m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vbool8_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (const int8_t *)(op13), (vuint16m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (const int8_t *)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vbool16_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (const int8_t *)(op13), (vuint16m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (const int8_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vbool32_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (const int8_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (const int8_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vbool64_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (const int8_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (const uint8_t *)(op6), (vuint16m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vbool8_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (const uint8_t *)(op13), (vuint16m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (const uint8_t *)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vbool16_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (const uint8_t *)(op13), (vuint16m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (const uint8_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vbool32_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (const uint8_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (const uint8_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vbool64_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (const uint8_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vluxseg7ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (const int8_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vbool8_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (const int8_t *)(op15), (vuint16m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (const int8_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vbool16_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (const int8_t *)(op15), (vuint16m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (const int8_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vbool32_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (const int8_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (const int8_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vbool64_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (const int8_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (const uint8_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vbool8_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (const uint8_t *)(op15), (vuint16m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (const uint8_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vbool16_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (const uint8_t *)(op15), (vuint16m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (const uint8_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vbool32_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (const uint8_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (const uint8_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vbool64_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (const uint8_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vluxseg8ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (const int8_t *)(op8), (vuint16m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (vbool8_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (vint8m1_t)(op15), (vint8m1_t)(op16), (const int8_t *)(op17), (vuint16m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (const int8_t *)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (vbool16_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (vint8mf2_t)(op15), (vint8mf2_t)(op16), (const int8_t *)(op17), (vuint16m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (const int8_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (vbool32_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (vint8mf4_t)(op15), (vint8mf4_t)(op16), (const int8_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (const int8_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (vbool64_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (vint8mf8_t)(op15), (vint8mf8_t)(op16), (const int8_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (const uint8_t *)(op8), (vuint16m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (vbool8_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (vuint8m1_t)(op15), (vuint8m1_t)(op16), (const uint8_t *)(op17), (vuint16m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (const uint8_t *)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (vbool16_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (vuint8mf2_t)(op15), (vuint8mf2_t)(op16), (const uint8_t *)(op17), (vuint16m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (const uint8_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (vbool32_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (vuint8mf4_t)(op15), (vuint8mf4_t)(op16), (const uint8_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (const uint8_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (vbool64_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (vuint8mf8_t)(op15), (vuint8mf8_t)(op16), (const uint8_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vluxseg2ei32_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (const int8_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vbool8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (const int8_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (const int8_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vbool4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (const int8_t *)(op5), (vuint32m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (const int8_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vbool16_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (const int8_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (const int8_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vbool32_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (const int8_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (const int8_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vbool64_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (const int8_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (const uint8_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vbool8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (const uint8_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (const uint8_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vbool4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (const uint8_t *)(op5), (vuint32m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (const uint8_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vbool16_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (const uint8_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (const uint8_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vbool32_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (const uint8_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (const uint8_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vbool64_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (const uint8_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg3ei32_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (const int8_t *)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vbool8_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (const int8_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (const int8_t *)(op3), (vuint32m8_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vbool4_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (const int8_t *)(op7), (vuint32m8_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (const int8_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vbool16_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (const int8_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (const int8_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vbool32_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (const int8_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (const int8_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vbool64_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (const int8_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (const uint8_t *)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vbool8_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (const uint8_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (const uint8_t *)(op3), (vuint32m8_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vbool4_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (const uint8_t *)(op7), (vuint32m8_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (const uint8_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vbool16_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (const uint8_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (const uint8_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vbool32_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (const uint8_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (const uint8_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vbool64_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (const uint8_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg4ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (const int8_t *)(op4), (vuint32m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vbool8_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (const int8_t *)(op9), (vuint32m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (const int8_t *)(op4), (vuint32m8_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (vbool4_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (vint8m2_t)(op7), (vint8m2_t)(op8), (const int8_t *)(op9), (vuint32m8_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (const int8_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vbool16_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (const int8_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (const int8_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vbool32_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (const int8_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (const int8_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vbool64_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (const int8_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (const uint8_t *)(op4), (vuint32m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vbool8_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (const uint8_t *)(op9), (vuint32m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (const uint8_t *)(op4), (vuint32m8_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (vbool4_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (vuint8m2_t)(op7), (vuint8m2_t)(op8), (const uint8_t *)(op9), (vuint32m8_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (const uint8_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vbool16_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (const uint8_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (const uint8_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vbool32_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (const uint8_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (const uint8_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vbool64_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (const uint8_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vluxseg5ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (const int8_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vbool8_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (const int8_t *)(op11), (vuint32m4_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (const int8_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vbool16_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (const int8_t *)(op11), (vuint32m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (const int8_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vbool32_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (const int8_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (const int8_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vbool64_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (const int8_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (const uint8_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vbool8_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (const uint8_t *)(op11), (vuint32m4_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (const uint8_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vbool16_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (const uint8_t *)(op11), (vuint32m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (const uint8_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vbool32_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (const uint8_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (const uint8_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vbool64_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (const uint8_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vluxseg6ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (const int8_t *)(op6), (vuint32m4_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vbool8_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (const int8_t *)(op13), (vuint32m4_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (const int8_t *)(op6), (vuint32m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vbool16_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (const int8_t *)(op13), (vuint32m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (const int8_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vbool32_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (const int8_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (const int8_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vbool64_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (const int8_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (const uint8_t *)(op6), (vuint32m4_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vbool8_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (const uint8_t *)(op13), (vuint32m4_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (const uint8_t *)(op6), (vuint32m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vbool16_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (const uint8_t *)(op13), (vuint32m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (const uint8_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vbool32_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (const uint8_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (const uint8_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vbool64_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (const uint8_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vluxseg7ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (const int8_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vbool8_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (const int8_t *)(op15), (vuint32m4_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (const int8_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vbool16_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (const int8_t *)(op15), (vuint32m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (const int8_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vbool32_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (const int8_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (const int8_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vbool64_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (const int8_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (const uint8_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vbool8_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (const uint8_t *)(op15), (vuint32m4_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (const uint8_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vbool16_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (const uint8_t *)(op15), (vuint32m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (const uint8_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vbool32_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (const uint8_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (const uint8_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vbool64_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (const uint8_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vluxseg8ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (const int8_t *)(op8), (vuint32m4_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (vbool8_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (vint8m1_t)(op15), (vint8m1_t)(op16), (const int8_t *)(op17), (vuint32m4_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (const int8_t *)(op8), (vuint32m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (vbool16_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (vint8mf2_t)(op15), (vint8mf2_t)(op16), (const int8_t *)(op17), (vuint32m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (const int8_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (vbool32_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (vint8mf4_t)(op15), (vint8mf4_t)(op16), (const int8_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (const int8_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (vbool64_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (vint8mf8_t)(op15), (vint8mf8_t)(op16), (const int8_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (const uint8_t *)(op8), (vuint32m4_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (vbool8_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (vuint8m1_t)(op15), (vuint8m1_t)(op16), (const uint8_t *)(op17), (vuint32m4_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (const uint8_t *)(op8), (vuint32m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (vbool16_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (vuint8mf2_t)(op15), (vuint8mf2_t)(op16), (const uint8_t *)(op17), (vuint32m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (const uint8_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (vbool32_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (vuint8mf4_t)(op15), (vuint8mf4_t)(op16), (const uint8_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (const uint8_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (vbool64_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (vuint8mf8_t)(op15), (vuint8mf8_t)(op16), (const uint8_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vluxseg2ei64_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (const int8_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vbool8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (const int8_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (const int8_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vbool16_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (const int8_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (const int8_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vbool32_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (const int8_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (const int8_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vbool64_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (const int8_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (const uint8_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vbool8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (const uint8_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (const uint8_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vbool16_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (const uint8_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (const uint8_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vbool32_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (const uint8_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (const uint8_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vbool64_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (const uint8_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg3ei64_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (const int8_t *)(op3), (vuint64m8_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vbool8_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (const int8_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (const int8_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vbool16_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (const int8_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (const int8_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vbool32_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (const int8_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (const int8_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vbool64_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (const int8_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (const uint8_t *)(op3), (vuint64m8_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vbool8_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (const uint8_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (const uint8_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vbool16_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (const uint8_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (const uint8_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vbool32_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (const uint8_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (const uint8_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vbool64_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (const uint8_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg4ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (const int8_t *)(op4), (vuint64m8_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vbool8_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (const int8_t *)(op9), (vuint64m8_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (const int8_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vbool16_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (const int8_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (const int8_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vbool32_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (const int8_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (const int8_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vbool64_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (const int8_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (const uint8_t *)(op4), (vuint64m8_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vbool8_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (const uint8_t *)(op9), (vuint64m8_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (const uint8_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vbool16_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (const uint8_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (const uint8_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vbool32_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (const uint8_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (const uint8_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vbool64_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (const uint8_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vluxseg5ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (const int8_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vbool8_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (const int8_t *)(op11), (vuint64m8_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (const int8_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vbool16_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (const int8_t *)(op11), (vuint64m4_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (const int8_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vbool32_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (const int8_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (const int8_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vbool64_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (const int8_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (const uint8_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vbool8_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (const uint8_t *)(op11), (vuint64m8_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (const uint8_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vbool16_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (const uint8_t *)(op11), (vuint64m4_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (const uint8_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vbool32_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (const uint8_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (const uint8_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vbool64_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (const uint8_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vluxseg6ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (const int8_t *)(op6), (vuint64m8_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vbool8_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (const int8_t *)(op13), (vuint64m8_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (const int8_t *)(op6), (vuint64m4_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vbool16_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (const int8_t *)(op13), (vuint64m4_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (const int8_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vbool32_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (const int8_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (const int8_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vbool64_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (const int8_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (const uint8_t *)(op6), (vuint64m8_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vbool8_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (const uint8_t *)(op13), (vuint64m8_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (const uint8_t *)(op6), (vuint64m4_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vbool16_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (const uint8_t *)(op13), (vuint64m4_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (const uint8_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vbool32_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (const uint8_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (const uint8_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vbool64_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (const uint8_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vluxseg7ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (const int8_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vbool8_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (const int8_t *)(op15), (vuint64m8_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (const int8_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vbool16_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (const int8_t *)(op15), (vuint64m4_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (const int8_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vbool32_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (const int8_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (const int8_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vbool64_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (const int8_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (const uint8_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vbool8_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (const uint8_t *)(op15), (vuint64m8_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (const uint8_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vbool16_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (const uint8_t *)(op15), (vuint64m4_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (const uint8_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vbool32_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (const uint8_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (const uint8_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vbool64_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (const uint8_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vluxseg8ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (const int8_t *)(op8), (vuint64m8_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (vbool8_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (vint8m1_t)(op15), (vint8m1_t)(op16), (const int8_t *)(op17), (vuint64m8_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (const int8_t *)(op8), (vuint64m4_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (vbool16_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (vint8mf2_t)(op15), (vint8mf2_t)(op16), (const int8_t *)(op17), (vuint64m4_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (const int8_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (vbool32_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (vint8mf4_t)(op15), (vint8mf4_t)(op16), (const int8_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (const int8_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (vbool64_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (vint8mf8_t)(op15), (vint8mf8_t)(op16), (const int8_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (const uint8_t *)(op8), (vuint64m8_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (vbool8_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (vuint8m1_t)(op15), (vuint8m1_t)(op16), (const uint8_t *)(op17), (vuint64m8_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (const uint8_t *)(op8), (vuint64m4_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (vbool16_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (vuint8mf2_t)(op15), (vuint8mf2_t)(op16), (const uint8_t *)(op17), (vuint64m4_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (const uint8_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (vbool32_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (vuint8mf4_t)(op15), (vuint8mf4_t)(op16), (const uint8_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (const uint8_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (vbool64_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (vuint8mf8_t)(op15), (vuint8mf8_t)(op16), (const uint8_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vluxseg2ei8_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (const int16_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vbool16_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (const int16_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (const int16_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vbool8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (const int16_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i16m4((vint16m4_t *)(op0), (vint16m4_t *)(op1), (const int16_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i16m4_m((vint16m4_t *)(op0), (vint16m4_t *)(op1), (vbool4_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (const int16_t *)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (const int16_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vbool32_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (const int16_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (const int16_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vbool64_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (const int16_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (const uint16_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vbool16_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (const uint16_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (const uint16_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vbool8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (const uint16_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u16m4((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (const uint16_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u16m4_m((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (vbool4_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (const uint16_t *)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (const uint16_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vbool32_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (const uint16_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (const uint16_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vbool64_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (const uint16_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg3ei8_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (const int16_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vbool16_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (const int16_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (const int16_t *)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vbool8_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (const int16_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (const int16_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vbool32_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (const int16_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (const int16_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vbool64_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (const int16_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (const uint16_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vbool16_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (const uint16_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (const uint16_t *)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vbool8_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (const uint16_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (const uint16_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vbool32_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (const uint16_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (const uint16_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vbool64_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (const uint16_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg4ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (const int16_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vbool16_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (const int16_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (const int16_t *)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (vbool8_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (vint16m2_t)(op7), (vint16m2_t)(op8), (const int16_t *)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (const int16_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vbool32_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (const int16_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (const int16_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vbool64_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (const int16_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (const uint16_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vbool16_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (const uint16_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (const uint16_t *)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (vbool8_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (vuint16m2_t)(op7), (vuint16m2_t)(op8), (const uint16_t *)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (const uint16_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vbool32_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (const uint16_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (const uint16_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vbool64_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (const uint16_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vluxseg5ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (const int16_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vbool16_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (const int16_t *)(op11), (vuint8mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (const int16_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vbool32_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (const int16_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (const int16_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vbool64_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (const int16_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (const uint16_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vbool16_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (const uint16_t *)(op11), (vuint8mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (const uint16_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vbool32_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (const uint16_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (const uint16_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vbool64_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (const uint16_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vluxseg6ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (const int16_t *)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vbool16_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (const int16_t *)(op13), (vuint8mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (const int16_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vbool32_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (const int16_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (const int16_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vbool64_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (const int16_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (const uint16_t *)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vbool16_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (const uint16_t *)(op13), (vuint8mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (const uint16_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vbool32_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (const uint16_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (const uint16_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vbool64_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (const uint16_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vluxseg7ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (const int16_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vbool16_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (const int16_t *)(op15), (vuint8mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (const int16_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vbool32_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (const int16_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (const int16_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vbool64_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (const int16_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (const uint16_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vbool16_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (const uint16_t *)(op15), (vuint8mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (const uint16_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vbool32_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (const uint16_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (const uint16_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vbool64_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (const uint16_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vluxseg8ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (const int16_t *)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (vbool16_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (vint16m1_t)(op15), (vint16m1_t)(op16), (const int16_t *)(op17), (vuint8mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (const int16_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (vbool32_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (vint16mf2_t)(op15), (vint16mf2_t)(op16), (const int16_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (const int16_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (vbool64_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (vint16mf4_t)(op15), (vint16mf4_t)(op16), (const int16_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (const uint16_t *)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (vbool16_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (vuint16m1_t)(op15), (vuint16m1_t)(op16), (const uint16_t *)(op17), (vuint8mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (const uint16_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (vbool32_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (vuint16mf2_t)(op15), (vuint16mf2_t)(op16), (const uint16_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (const uint16_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (vbool64_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (vuint16mf4_t)(op15), (vuint16mf4_t)(op16), (const uint16_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vluxseg2ei16_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (const int16_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vbool16_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (const int16_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (const int16_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vbool8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (const int16_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i16m4((vint16m4_t *)(op0), (vint16m4_t *)(op1), (const int16_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i16m4_m((vint16m4_t *)(op0), (vint16m4_t *)(op1), (vbool4_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (const int16_t *)(op5), (vuint16m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (const int16_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vbool32_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (const int16_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (const int16_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vbool64_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (const int16_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (const uint16_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vbool16_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (const uint16_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (const uint16_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vbool8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (const uint16_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u16m4((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (const uint16_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u16m4_m((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (vbool4_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (const uint16_t *)(op5), (vuint16m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (const uint16_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vbool32_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (const uint16_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (const uint16_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vbool64_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (const uint16_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg3ei16_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (const int16_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vbool16_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (const int16_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (const int16_t *)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vbool8_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (const int16_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (const int16_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vbool32_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (const int16_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (const int16_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vbool64_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (const int16_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (const uint16_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vbool16_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (const uint16_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (const uint16_t *)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vbool8_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (const uint16_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (const uint16_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vbool32_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (const uint16_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (const uint16_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vbool64_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (const uint16_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg4ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (const int16_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vbool16_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (const int16_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (const int16_t *)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (vbool8_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (vint16m2_t)(op7), (vint16m2_t)(op8), (const int16_t *)(op9), (vuint16m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (const int16_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vbool32_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (const int16_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (const int16_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vbool64_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (const int16_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (const uint16_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vbool16_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (const uint16_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (const uint16_t *)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (vbool8_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (vuint16m2_t)(op7), (vuint16m2_t)(op8), (const uint16_t *)(op9), (vuint16m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (const uint16_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vbool32_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (const uint16_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (const uint16_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vbool64_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (const uint16_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vluxseg5ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (const int16_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vbool16_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (const int16_t *)(op11), (vuint16m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (const int16_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vbool32_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (const int16_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (const int16_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vbool64_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (const int16_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (const uint16_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vbool16_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (const uint16_t *)(op11), (vuint16m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (const uint16_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vbool32_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (const uint16_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (const uint16_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vbool64_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (const uint16_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vluxseg6ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (const int16_t *)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vbool16_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (const int16_t *)(op13), (vuint16m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (const int16_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vbool32_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (const int16_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (const int16_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vbool64_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (const int16_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (const uint16_t *)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vbool16_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (const uint16_t *)(op13), (vuint16m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (const uint16_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vbool32_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (const uint16_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (const uint16_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vbool64_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (const uint16_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vluxseg7ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (const int16_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vbool16_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (const int16_t *)(op15), (vuint16m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (const int16_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vbool32_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (const int16_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (const int16_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vbool64_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (const int16_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (const uint16_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vbool16_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (const uint16_t *)(op15), (vuint16m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (const uint16_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vbool32_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (const uint16_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (const uint16_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vbool64_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (const uint16_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vluxseg8ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (const int16_t *)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (vbool16_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (vint16m1_t)(op15), (vint16m1_t)(op16), (const int16_t *)(op17), (vuint16m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (const int16_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (vbool32_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (vint16mf2_t)(op15), (vint16mf2_t)(op16), (const int16_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (const int16_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (vbool64_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (vint16mf4_t)(op15), (vint16mf4_t)(op16), (const int16_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (const uint16_t *)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (vbool16_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (vuint16m1_t)(op15), (vuint16m1_t)(op16), (const uint16_t *)(op17), (vuint16m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (const uint16_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (vbool32_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (vuint16mf2_t)(op15), (vuint16mf2_t)(op16), (const uint16_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (const uint16_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (vbool64_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (vuint16mf4_t)(op15), (vuint16mf4_t)(op16), (const uint16_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vluxseg2ei32_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (const int16_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vbool16_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (const int16_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (const int16_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vbool8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (const int16_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i16m4((vint16m4_t *)(op0), (vint16m4_t *)(op1), (const int16_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i16m4_m((vint16m4_t *)(op0), (vint16m4_t *)(op1), (vbool4_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (const int16_t *)(op5), (vuint32m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (const int16_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vbool32_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (const int16_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (const int16_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vbool64_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (const int16_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (const uint16_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vbool16_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (const uint16_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (const uint16_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vbool8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (const uint16_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u16m4((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (const uint16_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u16m4_m((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (vbool4_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (const uint16_t *)(op5), (vuint32m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (const uint16_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vbool32_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (const uint16_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (const uint16_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vbool64_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (const uint16_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg3ei32_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (const int16_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vbool16_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (const int16_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (const int16_t *)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vbool8_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (const int16_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (const int16_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vbool32_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (const int16_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (const int16_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vbool64_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (const int16_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (const uint16_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vbool16_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (const uint16_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (const uint16_t *)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vbool8_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (const uint16_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (const uint16_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vbool32_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (const uint16_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (const uint16_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vbool64_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (const uint16_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg4ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (const int16_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vbool16_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (const int16_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (const int16_t *)(op4), (vuint32m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (vbool8_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (vint16m2_t)(op7), (vint16m2_t)(op8), (const int16_t *)(op9), (vuint32m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (const int16_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vbool32_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (const int16_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (const int16_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vbool64_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (const int16_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (const uint16_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vbool16_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (const uint16_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (const uint16_t *)(op4), (vuint32m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (vbool8_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (vuint16m2_t)(op7), (vuint16m2_t)(op8), (const uint16_t *)(op9), (vuint32m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (const uint16_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vbool32_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (const uint16_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (const uint16_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vbool64_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (const uint16_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vluxseg5ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (const int16_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vbool16_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (const int16_t *)(op11), (vuint32m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (const int16_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vbool32_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (const int16_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (const int16_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vbool64_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (const int16_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (const uint16_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vbool16_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (const uint16_t *)(op11), (vuint32m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (const uint16_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vbool32_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (const uint16_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (const uint16_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vbool64_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (const uint16_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vluxseg6ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (const int16_t *)(op6), (vuint32m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vbool16_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (const int16_t *)(op13), (vuint32m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (const int16_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vbool32_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (const int16_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (const int16_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vbool64_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (const int16_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (const uint16_t *)(op6), (vuint32m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vbool16_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (const uint16_t *)(op13), (vuint32m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (const uint16_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vbool32_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (const uint16_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (const uint16_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vbool64_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (const uint16_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vluxseg7ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (const int16_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vbool16_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (const int16_t *)(op15), (vuint32m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (const int16_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vbool32_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (const int16_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (const int16_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vbool64_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (const int16_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (const uint16_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vbool16_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (const uint16_t *)(op15), (vuint32m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (const uint16_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vbool32_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (const uint16_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (const uint16_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vbool64_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (const uint16_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vluxseg8ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (const int16_t *)(op8), (vuint32m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (vbool16_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (vint16m1_t)(op15), (vint16m1_t)(op16), (const int16_t *)(op17), (vuint32m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (const int16_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (vbool32_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (vint16mf2_t)(op15), (vint16mf2_t)(op16), (const int16_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (const int16_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (vbool64_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (vint16mf4_t)(op15), (vint16mf4_t)(op16), (const int16_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vssseg2e8_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_i8m1((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_i8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vssseg2e8_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_i8m2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_i8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vssseg2e8_v_i8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_i8m4((int8_t *)(op0), (ptrdiff_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_i8m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (size_t)(op5))
-#define vssseg2e8_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_i8mf2((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_i8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vssseg2e8_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_i8mf4((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_i8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vssseg2e8_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_i8mf8((int8_t *)(op0), (ptrdiff_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_i8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (ptrdiff_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg8ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (const uint16_t *)(op8), (vuint32m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (vbool16_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (vuint16m1_t)(op15), (vuint16m1_t)(op16), (const uint16_t *)(op17), (vuint32m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (const uint16_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (vbool32_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (vuint16mf2_t)(op15), (vuint16mf2_t)(op16), (const uint16_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (const uint16_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (vbool64_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (vuint16mf4_t)(op15), (vuint16mf4_t)(op16), (const uint16_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vluxseg2ei64_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (const int16_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vbool16_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (const int16_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (const int16_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vbool8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (const int16_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (const int16_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vbool32_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (const int16_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (const int16_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vbool64_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (const int16_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (const uint16_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vbool16_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (const uint16_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (const uint16_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vbool8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (const uint16_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (const uint16_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vbool32_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (const uint16_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (const uint16_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vbool64_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (const uint16_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg3ei64_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (const int16_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vbool16_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (const int16_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (const int16_t *)(op3), (vuint64m8_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vbool8_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (const int16_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (const int16_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vbool32_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (const int16_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (const int16_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vbool64_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (const int16_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (const uint16_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vbool16_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (const uint16_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (const uint16_t *)(op3), (vuint64m8_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vbool8_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (const uint16_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (const uint16_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vbool32_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (const uint16_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (const uint16_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vbool64_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (const uint16_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg4ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (const int16_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vbool16_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (const int16_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (const int16_t *)(op4), (vuint64m8_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (vbool8_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (vint16m2_t)(op7), (vint16m2_t)(op8), (const int16_t *)(op9), (vuint64m8_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (const int16_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vbool32_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (const int16_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (const int16_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vbool64_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (const int16_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (const uint16_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vbool16_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (const uint16_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (const uint16_t *)(op4), (vuint64m8_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (vbool8_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (vuint16m2_t)(op7), (vuint16m2_t)(op8), (const uint16_t *)(op9), (vuint64m8_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (const uint16_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vbool32_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (const uint16_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (const uint16_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vbool64_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (const uint16_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vluxseg5ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (const int16_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vbool16_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (const int16_t *)(op11), (vuint64m4_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (const int16_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vbool32_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (const int16_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (const int16_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vbool64_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (const int16_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (const uint16_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vbool16_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (const uint16_t *)(op11), (vuint64m4_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (const uint16_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vbool32_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (const uint16_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (const uint16_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vbool64_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (const uint16_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vluxseg6ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (const int16_t *)(op6), (vuint64m4_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vbool16_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (const int16_t *)(op13), (vuint64m4_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (const int16_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vbool32_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (const int16_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (const int16_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vbool64_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (const int16_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vssseg2e8_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_u8m1((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_u8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vssseg2e8_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_u8m2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_u8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vssseg2e8_v_u8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_u8m4((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_u8m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (size_t)(op5))
-#define vssseg2e8_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_u8mf2((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_u8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vssseg2e8_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_u8mf4((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_u8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vssseg2e8_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e8_v_u8mf8((uint8_t *)(op0), (ptrdiff_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vssseg2e8_v_u8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (ptrdiff_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg6ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (const uint16_t *)(op6), (vuint64m4_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vbool16_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (const uint16_t *)(op13), (vuint64m4_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (const uint16_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vbool32_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (const uint16_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (const uint16_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vbool64_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (const uint16_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vluxseg7ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (const int16_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vbool16_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (const int16_t *)(op15), (vuint64m4_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (const int16_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vbool32_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (const int16_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (const int16_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vbool64_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (const int16_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (const uint16_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vbool16_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (const uint16_t *)(op15), (vuint64m4_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (const uint16_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vbool32_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (const uint16_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (const uint16_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vbool64_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (const uint16_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vluxseg8ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (const int16_t *)(op8), (vuint64m4_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (vbool16_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (vint16m1_t)(op15), (vint16m1_t)(op16), (const int16_t *)(op17), (vuint64m4_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (const int16_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (vbool32_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (vint16mf2_t)(op15), (vint16mf2_t)(op16), (const int16_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (const int16_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (vbool64_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (vint16mf4_t)(op15), (vint16mf4_t)(op16), (const int16_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (const uint16_t *)(op8), (vuint64m4_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (vbool16_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (vuint16m1_t)(op15), (vuint16m1_t)(op16), (const uint16_t *)(op17), (vuint64m4_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (const uint16_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (vbool32_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (vuint16mf2_t)(op15), (vuint16mf2_t)(op16), (const uint16_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (const uint16_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (vbool64_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (vuint16mf4_t)(op15), (vuint16mf4_t)(op16), (const uint16_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vluxseg2ei8_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (const int32_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vbool32_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (const int32_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (const int32_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vbool16_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (const int32_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i32m4((vint32m4_t *)(op0), (vint32m4_t *)(op1), (const int32_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i32m4_m((vint32m4_t *)(op0), (vint32m4_t *)(op1), (vbool8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (const int32_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (const int32_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vbool64_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (const int32_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (const uint32_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vbool32_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (const uint32_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (const uint32_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vbool16_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (const uint32_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u32m4((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (const uint32_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u32m4_m((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (vbool8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (const uint32_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (const uint32_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vbool64_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (const uint32_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg3ei8_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (const int32_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vbool32_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (const int32_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (const int32_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vbool16_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (const int32_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (const int32_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vbool64_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (const int32_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (const uint32_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vbool32_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (const uint32_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (const uint32_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vbool16_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (const uint32_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (const uint32_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vbool64_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (const uint32_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg4ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (const int32_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vbool32_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (const int32_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (const int32_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (vbool16_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (vint32m2_t)(op7), (vint32m2_t)(op8), (const int32_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (const int32_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vbool64_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (const int32_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vsuxseg2ei8_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i8m1((int8_t *)(op0), (vuint8m1_t)(op1), (vint8m1_t)(op2), (vint8m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i8m1_m((vbool8_t)(op0), (int8_t *)(op1), (vuint8m1_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i8m2((int8_t *)(op0), (vuint8m2_t)(op1), (vint8m2_t)(op2), (vint8m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i8m2_m((vbool4_t)(op0), (int8_t *)(op1), (vuint8m2_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i8m4((int8_t *)(op0), (vuint8m4_t)(op1), (vint8m4_t)(op2), (vint8m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i8m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i8m4_m((vbool2_t)(op0), (int8_t *)(op1), (vuint8m4_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i8mf2((int8_t *)(op0), (vuint8mf2_t)(op1), (vint8mf2_t)(op2), (vint8mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i8mf2_m((vbool16_t)(op0), (int8_t *)(op1), (vuint8mf2_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i8mf4((int8_t *)(op0), (vuint8mf4_t)(op1), (vint8mf4_t)(op2), (vint8mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i8mf4_m((vbool32_t)(op0), (int8_t *)(op1), (vuint8mf4_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_i8mf8((int8_t *)(op0), (vuint8mf8_t)(op1), (vint8mf8_t)(op2), (vint8mf8_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_i8mf8_m((vbool64_t)(op0), (int8_t *)(op1), (vuint8mf8_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg4ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (const uint32_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vbool32_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (const uint32_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (const uint32_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (vbool16_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (vuint32m2_t)(op7), (vuint32m2_t)(op8), (const uint32_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (const uint32_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vbool64_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (const uint32_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vluxseg5ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (const int32_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vbool32_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (const int32_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (const int32_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vbool64_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (const int32_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (const uint32_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vbool32_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (const uint32_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (const uint32_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vbool64_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (const uint32_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vluxseg6ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (const int32_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vbool32_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (const int32_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (const int32_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vbool64_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (const int32_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (const uint32_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vbool32_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (const uint32_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (const uint32_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vbool64_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (const uint32_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vluxseg7ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (const int32_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vbool32_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (const int32_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (const int32_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vbool64_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (const int32_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (const uint32_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vbool32_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (const uint32_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (const uint32_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vbool64_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (const uint32_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vluxseg8ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (const int32_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (vbool32_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (vint32m1_t)(op15), (vint32m1_t)(op16), (const int32_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (const int32_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (vbool64_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (vint32mf2_t)(op15), (vint32mf2_t)(op16), (const int32_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (const uint32_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (vbool32_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (vuint32m1_t)(op15), (vuint32m1_t)(op16), (const uint32_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (const uint32_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (vbool64_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (vuint32mf2_t)(op15), (vuint32mf2_t)(op16), (const uint32_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vluxseg2ei16_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (const int32_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vbool32_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (const int32_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (const int32_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vbool16_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (const int32_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i32m4((vint32m4_t *)(op0), (vint32m4_t *)(op1), (const int32_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i32m4_m((vint32m4_t *)(op0), (vint32m4_t *)(op1), (vbool8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (const int32_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (const int32_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vbool64_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (const int32_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg2ei8_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u8m1((uint8_t *)(op0), (vuint8m1_t)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u8m1_m((vbool8_t)(op0), (uint8_t *)(op1), (vuint8m1_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u8m2((uint8_t *)(op0), (vuint8m2_t)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u8m2_m((vbool4_t)(op0), (uint8_t *)(op1), (vuint8m2_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u8m4((uint8_t *)(op0), (vuint8m4_t)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u8m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u8m4_m((vbool2_t)(op0), (uint8_t *)(op1), (vuint8m4_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u8mf2((uint8_t *)(op0), (vuint8mf2_t)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u8mf2_m((vbool16_t)(op0), (uint8_t *)(op1), (vuint8mf2_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u8mf4((uint8_t *)(op0), (vuint8mf4_t)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u8mf4_m((vbool32_t)(op0), (uint8_t *)(op1), (vuint8mf4_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_u8mf8((uint8_t *)(op0), (vuint8mf8_t)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_u8mf8_m((vbool64_t)(op0), (uint8_t *)(op1), (vuint8mf8_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg2ei16_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (const uint32_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vbool32_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (const uint32_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (const uint32_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vbool16_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (const uint32_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u32m4((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (const uint32_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u32m4_m((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (vbool8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (const uint32_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (const uint32_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vbool64_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (const uint32_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg3ei16_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (const int32_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vbool32_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (const int32_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (const int32_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vbool16_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (const int32_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (const int32_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vbool64_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (const int32_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (const uint32_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vbool32_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (const uint32_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (const uint32_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vbool16_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (const uint32_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (const uint32_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vbool64_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (const uint32_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg4ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (const int32_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vbool32_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (const int32_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (const int32_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (vbool16_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (vint32m2_t)(op7), (vint32m2_t)(op8), (const int32_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (const int32_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vbool64_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (const int32_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (const uint32_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vbool32_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (const uint32_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (const uint32_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (vbool16_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (vuint32m2_t)(op7), (vuint32m2_t)(op8), (const uint32_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (const uint32_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vbool64_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (const uint32_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vluxseg5ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (const int32_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vbool32_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (const int32_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (const int32_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vbool64_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (const int32_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (const uint32_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vbool32_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (const uint32_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (const uint32_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vbool64_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (const uint32_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vluxseg6ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (const int32_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vbool32_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (const int32_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (const int32_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vbool64_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (const int32_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (const uint32_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vbool32_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (const uint32_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (const uint32_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vbool64_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (const uint32_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vluxseg7ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (const int32_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vbool32_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (const int32_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (const int32_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vbool64_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (const int32_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (const uint32_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vbool32_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (const uint32_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (const uint32_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vbool64_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (const uint32_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vluxseg8ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (const int32_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (vbool32_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (vint32m1_t)(op15), (vint32m1_t)(op16), (const int32_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (const int32_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (vbool64_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (vint32mf2_t)(op15), (vint32mf2_t)(op16), (const int32_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (const uint32_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (vbool32_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (vuint32m1_t)(op15), (vuint32m1_t)(op16), (const uint32_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (const uint32_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (vbool64_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (vuint32mf2_t)(op15), (vuint32mf2_t)(op16), (const uint32_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vluxseg2ei32_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (const int32_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vbool32_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (const int32_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (const int32_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vbool16_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (const int32_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i32m4((vint32m4_t *)(op0), (vint32m4_t *)(op1), (const int32_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i32m4_m((vint32m4_t *)(op0), (vint32m4_t *)(op1), (vbool8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (const int32_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (const int32_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vbool64_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (const int32_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (const uint32_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vbool32_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (const uint32_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (const uint32_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vbool16_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (const uint32_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u32m4((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (const uint32_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u32m4_m((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (vbool8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (const uint32_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (const uint32_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vbool64_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (const uint32_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg3ei32_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (const int32_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vbool32_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (const int32_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (const int32_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vbool16_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (const int32_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (const int32_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vbool64_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (const int32_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (const uint32_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vbool32_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (const uint32_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (const uint32_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vbool16_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (const uint32_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (const uint32_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vbool64_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (const uint32_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg4ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (const int32_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vbool32_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (const int32_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (const int32_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (vbool16_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (vint32m2_t)(op7), (vint32m2_t)(op8), (const int32_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (const int32_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vbool64_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (const int32_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (const uint32_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vbool32_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (const uint32_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (const uint32_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (vbool16_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (vuint32m2_t)(op7), (vuint32m2_t)(op8), (const uint32_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (const uint32_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vbool64_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (const uint32_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vluxseg5ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (const int32_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vbool32_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (const int32_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (const int32_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vbool64_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (const int32_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (const uint32_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vbool32_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (const uint32_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (const uint32_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vbool64_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (const uint32_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vluxseg6ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (const int32_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vbool32_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (const int32_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (const int32_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vbool64_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (const int32_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (const uint32_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vbool32_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (const uint32_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (const uint32_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vbool64_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (const uint32_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vluxseg7ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (const int32_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vbool32_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (const int32_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (const int32_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vbool64_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (const int32_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (const uint32_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vbool32_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (const uint32_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (const uint32_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vbool64_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (const uint32_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vluxseg8ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (const int32_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (vbool32_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (vint32m1_t)(op15), (vint32m1_t)(op16), (const int32_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (const int32_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (vbool64_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (vint32mf2_t)(op15), (vint32mf2_t)(op16), (const int32_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (const uint32_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (vbool32_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (vuint32m1_t)(op15), (vuint32m1_t)(op16), (const uint32_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (const uint32_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (vbool64_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (vuint32mf2_t)(op15), (vuint32mf2_t)(op16), (const uint32_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vluxseg2ei64_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (const int32_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vbool32_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (const int32_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (const int32_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vbool16_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (const int32_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i32m4((vint32m4_t *)(op0), (vint32m4_t *)(op1), (const int32_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i32m4_m((vint32m4_t *)(op0), (vint32m4_t *)(op1), (vbool8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (const int32_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (const int32_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vbool64_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (const int32_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (const uint32_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vbool32_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (const uint32_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (const uint32_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vbool16_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (const uint32_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u32m4((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (const uint32_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u32m4_m((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (vbool8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (const uint32_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (const uint32_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vbool64_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (const uint32_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg3ei64_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (const int32_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vbool32_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (const int32_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (const int32_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vbool16_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (const int32_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (const int32_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vbool64_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (const int32_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (const uint32_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vbool32_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (const uint32_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (const uint32_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vbool16_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (const uint32_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (const uint32_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vbool64_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (const uint32_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg4ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (const int32_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vbool32_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (const int32_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (const int32_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (vbool16_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (vint32m2_t)(op7), (vint32m2_t)(op8), (const int32_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (const int32_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vbool64_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (const int32_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (const uint32_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vbool32_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (const uint32_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (const uint32_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (vbool16_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (vuint32m2_t)(op7), (vuint32m2_t)(op8), (const uint32_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (const uint32_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vbool64_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (const uint32_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vluxseg5ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (const int32_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vbool32_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (const int32_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (const int32_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vbool64_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (const int32_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (const uint32_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vbool32_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (const uint32_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (const uint32_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vbool64_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (const uint32_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vluxseg6ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (const int32_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vbool32_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (const int32_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (const int32_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vbool64_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (const int32_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (const uint32_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vbool32_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (const uint32_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (const uint32_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vbool64_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (const uint32_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vluxseg7ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (const int32_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vbool32_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (const int32_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (const int32_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vbool64_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (const int32_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (const uint32_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vbool32_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (const uint32_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (const uint32_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vbool64_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (const uint32_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vluxseg8ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (const int32_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (vbool32_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (vint32m1_t)(op15), (vint32m1_t)(op16), (const int32_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (const int32_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (vbool64_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (vint32mf2_t)(op15), (vint32mf2_t)(op16), (const int32_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (const uint32_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (vbool32_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (vuint32m1_t)(op15), (vuint32m1_t)(op16), (const uint32_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (const uint32_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (vbool64_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (vuint32mf2_t)(op15), (vuint32mf2_t)(op16), (const uint32_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vluxseg2ei8_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (const int64_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vbool64_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (const int64_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (const int64_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vbool32_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (const int64_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_i64m4((vint64m4_t *)(op0), (vint64m4_t *)(op1), (const int64_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_i64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_i64m4_m((vint64m4_t *)(op0), (vint64m4_t *)(op1), (vbool16_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (const int64_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (const uint64_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vbool64_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (const uint64_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (const uint64_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vbool32_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (const uint64_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_u64m4((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (const uint64_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_u64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_u64m4_m((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (vbool16_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (const uint64_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg3ei8_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (const int64_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vbool64_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (const int64_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (const int64_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vbool32_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (const int64_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (const uint64_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vbool64_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (const uint64_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (const uint64_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vbool32_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (const uint64_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg4ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (const int64_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vbool64_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (const int64_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (const int64_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (vbool32_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (vint64m2_t)(op7), (vint64m2_t)(op8), (const int64_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (const uint64_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vbool64_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (const uint64_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (const uint64_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (vbool32_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (vuint64m2_t)(op7), (vuint64m2_t)(op8), (const uint64_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vluxseg5ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (const int64_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vbool64_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (const int64_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (const uint64_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vbool64_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (const uint64_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vluxseg6ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (const int64_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vbool64_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (const int64_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (const uint64_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vbool64_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (const uint64_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vluxseg7ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (const int64_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vbool64_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (const int64_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (const uint64_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vbool64_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (const uint64_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vluxseg8ei8_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (const int64_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (vbool64_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (vint64m1_t)(op15), (vint64m1_t)(op16), (const int64_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (const uint64_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (vbool64_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (vuint64m1_t)(op15), (vuint64m1_t)(op16), (const uint64_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vluxseg2ei16_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (const int64_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vbool64_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (const int64_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (const int64_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vbool32_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (const int64_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_i64m4((vint64m4_t *)(op0), (vint64m4_t *)(op1), (const int64_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_i64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_i64m4_m((vint64m4_t *)(op0), (vint64m4_t *)(op1), (vbool16_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (const int64_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (const uint64_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vbool64_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (const uint64_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (const uint64_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vbool32_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (const uint64_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_u64m4((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (const uint64_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_u64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_u64m4_m((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (vbool16_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (const uint64_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg3ei16_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (const int64_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vbool64_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (const int64_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (const int64_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vbool32_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (const int64_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (const uint64_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vbool64_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (const uint64_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (const uint64_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vbool32_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (const uint64_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg4ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (const int64_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vbool64_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (const int64_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (const int64_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (vbool32_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (vint64m2_t)(op7), (vint64m2_t)(op8), (const int64_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (const uint64_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vbool64_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (const uint64_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (const uint64_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (vbool32_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (vuint64m2_t)(op7), (vuint64m2_t)(op8), (const uint64_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vluxseg5ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (const int64_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vbool64_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (const int64_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (const uint64_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vbool64_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (const uint64_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vluxseg6ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (const int64_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vbool64_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (const int64_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (const uint64_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vbool64_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (const uint64_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vluxseg7ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (const int64_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vbool64_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (const int64_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (const uint64_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vbool64_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (const uint64_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vluxseg8ei16_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (const int64_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (vbool64_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (vint64m1_t)(op15), (vint64m1_t)(op16), (const int64_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (const uint64_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (vbool64_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (vuint64m1_t)(op15), (vuint64m1_t)(op16), (const uint64_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vluxseg2ei32_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (const int64_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vbool64_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (const int64_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (const int64_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vbool32_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (const int64_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_i64m4((vint64m4_t *)(op0), (vint64m4_t *)(op1), (const int64_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_i64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_i64m4_m((vint64m4_t *)(op0), (vint64m4_t *)(op1), (vbool16_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (const int64_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (const uint64_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vbool64_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (const uint64_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (const uint64_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vbool32_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (const uint64_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_u64m4((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (const uint64_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_u64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_u64m4_m((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (vbool16_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (const uint64_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg3ei32_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (const int64_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vbool64_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (const int64_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (const int64_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vbool32_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (const int64_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (const uint64_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vbool64_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (const uint64_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (const uint64_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vbool32_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (const uint64_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg4ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (const int64_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vbool64_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (const int64_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (const int64_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (vbool32_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (vint64m2_t)(op7), (vint64m2_t)(op8), (const int64_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (const uint64_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vbool64_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (const uint64_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (const uint64_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (vbool32_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (vuint64m2_t)(op7), (vuint64m2_t)(op8), (const uint64_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vluxseg5ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (const int64_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vbool64_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (const int64_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (const uint64_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vbool64_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (const uint64_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vluxseg6ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (const int64_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vbool64_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (const int64_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (const uint64_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vbool64_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (const uint64_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vluxseg7ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (const int64_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vbool64_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (const int64_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (const uint64_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vbool64_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (const uint64_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vluxseg8ei32_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (const int64_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (vbool64_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (vint64m1_t)(op15), (vint64m1_t)(op16), (const int64_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (const uint64_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (vbool64_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (vuint64m1_t)(op15), (vuint64m1_t)(op16), (const uint64_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vluxseg2ei64_v_i64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (const int64_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vbool64_t)(op2), (vint64m1_t)(op3), (vint64m1_t)(op4), (const int64_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_i64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (const int64_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vbool32_t)(op2), (vint64m2_t)(op3), (vint64m2_t)(op4), (const int64_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_i64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_i64m4((vint64m4_t *)(op0), (vint64m4_t *)(op1), (const int64_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_i64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_i64m4_m((vint64m4_t *)(op0), (vint64m4_t *)(op1), (vbool16_t)(op2), (vint64m4_t)(op3), (vint64m4_t)(op4), (const int64_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (const uint64_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vbool64_t)(op2), (vuint64m1_t)(op3), (vuint64m1_t)(op4), (const uint64_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (const uint64_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vbool32_t)(op2), (vuint64m2_t)(op3), (vuint64m2_t)(op4), (const uint64_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_u64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_u64m4((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (const uint64_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_u64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_u64m4_m((vuint64m4_t *)(op0), (vuint64m4_t *)(op1), (vbool16_t)(op2), (vuint64m4_t)(op3), (vuint64m4_t)(op4), (const uint64_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg3ei64_v_i64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (const int64_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vbool64_t)(op3), (vint64m1_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (const int64_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_i64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (const int64_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vbool32_t)(op3), (vint64m2_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (const int64_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (const uint64_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vbool64_t)(op3), (vuint64m1_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (const uint64_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_u64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (const uint64_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vbool32_t)(op3), (vuint64m2_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (const uint64_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg4ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (const int64_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vbool64_t)(op4), (vint64m1_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (const int64_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_i64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_i64m2((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (const int64_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_i64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_i64m2_m((vint64m2_t *)(op0), (vint64m2_t *)(op1), (vint64m2_t *)(op2), (vint64m2_t *)(op3), (vbool32_t)(op4), (vint64m2_t)(op5), (vint64m2_t)(op6), (vint64m2_t)(op7), (vint64m2_t)(op8), (const int64_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (const uint64_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vbool64_t)(op4), (vuint64m1_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (const uint64_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_u64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_u64m2((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (const uint64_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_u64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_u64m2_m((vuint64m2_t *)(op0), (vuint64m2_t *)(op1), (vuint64m2_t *)(op2), (vuint64m2_t *)(op3), (vbool32_t)(op4), (vuint64m2_t)(op5), (vuint64m2_t)(op6), (vuint64m2_t)(op7), (vuint64m2_t)(op8), (const uint64_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vluxseg5ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (const int64_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vbool64_t)(op5), (vint64m1_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (const int64_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (const uint64_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vbool64_t)(op5), (vuint64m1_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (const uint64_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vluxseg6ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (const int64_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vbool64_t)(op6), (vint64m1_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (const int64_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (const uint64_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vbool64_t)(op6), (vuint64m1_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (const uint64_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vluxseg7ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (const int64_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vbool64_t)(op7), (vint64m1_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (const int64_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (const uint64_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vbool64_t)(op7), (vuint64m1_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (const uint64_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vluxseg8ei64_v_i64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_i64m1((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (const int64_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_i64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_i64m1_m((vint64m1_t *)(op0), (vint64m1_t *)(op1), (vint64m1_t *)(op2), (vint64m1_t *)(op3), (vint64m1_t *)(op4), (vint64m1_t *)(op5), (vint64m1_t *)(op6), (vint64m1_t *)(op7), (vbool64_t)(op8), (vint64m1_t)(op9), (vint64m1_t)(op10), (vint64m1_t)(op11), (vint64m1_t)(op12), (vint64m1_t)(op13), (vint64m1_t)(op14), (vint64m1_t)(op15), (vint64m1_t)(op16), (const int64_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_u64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_u64m1((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (const uint64_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_u64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_u64m1_m((vuint64m1_t *)(op0), (vuint64m1_t *)(op1), (vuint64m1_t *)(op2), (vuint64m1_t *)(op3), (vuint64m1_t *)(op4), (vuint64m1_t *)(op5), (vuint64m1_t *)(op6), (vuint64m1_t *)(op7), (vbool64_t)(op8), (vuint64m1_t)(op9), (vuint64m1_t)(op10), (vuint64m1_t)(op11), (vuint64m1_t)(op12), (vuint64m1_t)(op13), (vuint64m1_t)(op14), (vuint64m1_t)(op15), (vuint64m1_t)(op16), (const uint64_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vloxseg2ei8_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (const int8_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vbool8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (const int8_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (const int8_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vbool4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (const int8_t *)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i8m4((vint8m4_t *)(op0), (vint8m4_t *)(op1), (const int8_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i8m4_m((vint8m4_t *)(op0), (vint8m4_t *)(op1), (vbool2_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (const int8_t *)(op5), (vuint8m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (const int8_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vbool16_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (const int8_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (const int8_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vbool32_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (const int8_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (const int8_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vbool64_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (const int8_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (const uint8_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vbool8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (const uint8_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (const uint8_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vbool4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (const uint8_t *)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u8m4((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (const uint8_t *)(op2), (vuint8m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u8m4_m((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (vbool2_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (const uint8_t *)(op5), (vuint8m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (const uint8_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vbool16_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (const uint8_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (const uint8_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vbool32_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (const uint8_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (const uint8_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vbool64_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (const uint8_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg3ei8_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (const int8_t *)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vbool8_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (const int8_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (const int8_t *)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vbool4_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (const int8_t *)(op7), (vuint8m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (const int8_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vbool16_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (const int8_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (const int8_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vbool32_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (const int8_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (const int8_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vbool64_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (const int8_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (const uint8_t *)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vbool8_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (const uint8_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (const uint8_t *)(op3), (vuint8m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vbool4_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (const uint8_t *)(op7), (vuint8m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (const uint8_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vbool16_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (const uint8_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (const uint8_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vbool32_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (const uint8_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (const uint8_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vbool64_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (const uint8_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg4ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (const int8_t *)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vbool8_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (const int8_t *)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (const int8_t *)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (vbool4_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (vint8m2_t)(op7), (vint8m2_t)(op8), (const int8_t *)(op9), (vuint8m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (const int8_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vbool16_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (const int8_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (const int8_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vbool32_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (const int8_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (const int8_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vbool64_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (const int8_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (const uint8_t *)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vbool8_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (const uint8_t *)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (const uint8_t *)(op4), (vuint8m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (vbool4_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (vuint8m2_t)(op7), (vuint8m2_t)(op8), (const uint8_t *)(op9), (vuint8m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (const uint8_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vbool16_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (const uint8_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (const uint8_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vbool32_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (const uint8_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (const uint8_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vbool64_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (const uint8_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vloxseg5ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (const int8_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vbool8_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (const int8_t *)(op11), (vuint8m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (const int8_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vbool16_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (const int8_t *)(op11), (vuint8mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (const int8_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vbool32_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (const int8_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (const int8_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vbool64_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (const int8_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (const uint8_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vbool8_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (const uint8_t *)(op11), (vuint8m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (const uint8_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vbool16_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (const uint8_t *)(op11), (vuint8mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (const uint8_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vbool32_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (const uint8_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (const uint8_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vbool64_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (const uint8_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vloxseg6ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (const int8_t *)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vbool8_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (const int8_t *)(op13), (vuint8m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (const int8_t *)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vbool16_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (const int8_t *)(op13), (vuint8mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (const int8_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vbool32_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (const int8_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (const int8_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vbool64_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (const int8_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (const uint8_t *)(op6), (vuint8m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vbool8_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (const uint8_t *)(op13), (vuint8m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (const uint8_t *)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vbool16_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (const uint8_t *)(op13), (vuint8mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (const uint8_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vbool32_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (const uint8_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (const uint8_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vbool64_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (const uint8_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vloxseg7ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (const int8_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vbool8_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (const int8_t *)(op15), (vuint8m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (const int8_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vbool16_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (const int8_t *)(op15), (vuint8mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (const int8_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vbool32_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (const int8_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (const int8_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vbool64_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (const int8_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (const uint8_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vbool8_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (const uint8_t *)(op15), (vuint8m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (const uint8_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vbool16_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (const uint8_t *)(op15), (vuint8mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (const uint8_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vbool32_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (const uint8_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (const uint8_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vbool64_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (const uint8_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vloxseg8ei8_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (const int8_t *)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (vbool8_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (vint8m1_t)(op15), (vint8m1_t)(op16), (const int8_t *)(op17), (vuint8m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (const int8_t *)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (vbool16_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (vint8mf2_t)(op15), (vint8mf2_t)(op16), (const int8_t *)(op17), (vuint8mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (const int8_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (vbool32_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (vint8mf4_t)(op15), (vint8mf4_t)(op16), (const int8_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (const int8_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (vbool64_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (vint8mf8_t)(op15), (vint8mf8_t)(op16), (const int8_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (const uint8_t *)(op8), (vuint8m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (vbool8_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (vuint8m1_t)(op15), (vuint8m1_t)(op16), (const uint8_t *)(op17), (vuint8m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (const uint8_t *)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (vbool16_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (vuint8mf2_t)(op15), (vuint8mf2_t)(op16), (const uint8_t *)(op17), (vuint8mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (const uint8_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (vbool32_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (vuint8mf4_t)(op15), (vuint8mf4_t)(op16), (const uint8_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (const uint8_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (vbool64_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (vuint8mf8_t)(op15), (vuint8mf8_t)(op16), (const uint8_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vloxseg2ei16_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (const int8_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vbool8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (const int8_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (const int8_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vbool4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (const int8_t *)(op5), (vuint16m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i8m4((vint8m4_t *)(op0), (vint8m4_t *)(op1), (const int8_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i8m4_m((vint8m4_t *)(op0), (vint8m4_t *)(op1), (vbool2_t)(op2), (vint8m4_t)(op3), (vint8m4_t)(op4), (const int8_t *)(op5), (vuint16m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (const int8_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vbool16_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (const int8_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (const int8_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vbool32_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (const int8_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (const int8_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vbool64_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (const int8_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (const uint8_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vbool8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (const uint8_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (const uint8_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vbool4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (const uint8_t *)(op5), (vuint16m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u8m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u8m4((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (const uint8_t *)(op2), (vuint16m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u8m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u8m4_m((vuint8m4_t *)(op0), (vuint8m4_t *)(op1), (vbool2_t)(op2), (vuint8m4_t)(op3), (vuint8m4_t)(op4), (const uint8_t *)(op5), (vuint16m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (const uint8_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vbool16_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (const uint8_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (const uint8_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vbool32_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (const uint8_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (const uint8_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vbool64_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (const uint8_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg3ei16_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (const int8_t *)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vbool8_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (const int8_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (const int8_t *)(op3), (vuint16m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vbool4_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (const int8_t *)(op7), (vuint16m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (const int8_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vbool16_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (const int8_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (const int8_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vbool32_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (const int8_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (const int8_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vbool64_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (const int8_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (const uint8_t *)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vbool8_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (const uint8_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (const uint8_t *)(op3), (vuint16m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vbool4_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (const uint8_t *)(op7), (vuint16m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (const uint8_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vbool16_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (const uint8_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (const uint8_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vbool32_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (const uint8_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (const uint8_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vbool64_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (const uint8_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg4ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (const int8_t *)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vbool8_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (const int8_t *)(op9), (vuint16m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (const int8_t *)(op4), (vuint16m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (vbool4_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (vint8m2_t)(op7), (vint8m2_t)(op8), (const int8_t *)(op9), (vuint16m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (const int8_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vbool16_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (const int8_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (const int8_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vbool32_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (const int8_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (const int8_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vbool64_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (const int8_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (const uint8_t *)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vbool8_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (const uint8_t *)(op9), (vuint16m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (const uint8_t *)(op4), (vuint16m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (vbool4_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (vuint8m2_t)(op7), (vuint8m2_t)(op8), (const uint8_t *)(op9), (vuint16m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (const uint8_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vbool16_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (const uint8_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (const uint8_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vbool32_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (const uint8_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (const uint8_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vbool64_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (const uint8_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vloxseg5ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (const int8_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vbool8_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (const int8_t *)(op11), (vuint16m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (const int8_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vbool16_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (const int8_t *)(op11), (vuint16m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (const int8_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vbool32_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (const int8_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (const int8_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vbool64_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (const int8_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (const uint8_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vbool8_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (const uint8_t *)(op11), (vuint16m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (const uint8_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vbool16_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (const uint8_t *)(op11), (vuint16m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (const uint8_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vbool32_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (const uint8_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (const uint8_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vbool64_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (const uint8_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vloxseg6ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (const int8_t *)(op6), (vuint16m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vbool8_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (const int8_t *)(op13), (vuint16m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (const int8_t *)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vbool16_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (const int8_t *)(op13), (vuint16m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (const int8_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vbool32_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (const int8_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (const int8_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vbool64_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (const int8_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (const uint8_t *)(op6), (vuint16m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vbool8_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (const uint8_t *)(op13), (vuint16m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (const uint8_t *)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vbool16_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (const uint8_t *)(op13), (vuint16m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (const uint8_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vbool32_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (const uint8_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (const uint8_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vbool64_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (const uint8_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vloxseg7ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (const int8_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vbool8_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (const int8_t *)(op15), (vuint16m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (const int8_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vbool16_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (const int8_t *)(op15), (vuint16m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (const int8_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vbool32_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (const int8_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (const int8_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vbool64_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (const int8_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (const uint8_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vbool8_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (const uint8_t *)(op15), (vuint16m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (const uint8_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vbool16_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (const uint8_t *)(op15), (vuint16m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (const uint8_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vbool32_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (const uint8_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (const uint8_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vbool64_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (const uint8_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vloxseg8ei16_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (const int8_t *)(op8), (vuint16m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (vbool8_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (vint8m1_t)(op15), (vint8m1_t)(op16), (const int8_t *)(op17), (vuint16m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (const int8_t *)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (vbool16_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (vint8mf2_t)(op15), (vint8mf2_t)(op16), (const int8_t *)(op17), (vuint16m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (const int8_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (vbool32_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (vint8mf4_t)(op15), (vint8mf4_t)(op16), (const int8_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (const int8_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (vbool64_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (vint8mf8_t)(op15), (vint8mf8_t)(op16), (const int8_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (const uint8_t *)(op8), (vuint16m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (vbool8_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (vuint8m1_t)(op15), (vuint8m1_t)(op16), (const uint8_t *)(op17), (vuint16m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (const uint8_t *)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (vbool16_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (vuint8mf2_t)(op15), (vuint8mf2_t)(op16), (const uint8_t *)(op17), (vuint16m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (const uint8_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (vbool32_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (vuint8mf4_t)(op15), (vuint8mf4_t)(op16), (const uint8_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (const uint8_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (vbool64_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (vuint8mf8_t)(op15), (vuint8mf8_t)(op16), (const uint8_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vloxseg2ei32_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (const int8_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vbool8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (const int8_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (const int8_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vbool4_t)(op2), (vint8m2_t)(op3), (vint8m2_t)(op4), (const int8_t *)(op5), (vuint32m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (const int8_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vbool16_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (const int8_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (const int8_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vbool32_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (const int8_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (const int8_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vbool64_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (const int8_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (const uint8_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vbool8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (const uint8_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u8m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (const uint8_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vbool4_t)(op2), (vuint8m2_t)(op3), (vuint8m2_t)(op4), (const uint8_t *)(op5), (vuint32m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (const uint8_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vbool16_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (const uint8_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (const uint8_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vbool32_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (const uint8_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (const uint8_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vbool64_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (const uint8_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg3ei32_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (const int8_t *)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vbool8_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (const int8_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_i8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (const int8_t *)(op3), (vuint32m8_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vbool4_t)(op3), (vint8m2_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (const int8_t *)(op7), (vuint32m8_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (const int8_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vbool16_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (const int8_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (const int8_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vbool32_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (const int8_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (const int8_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vbool64_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (const int8_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (const uint8_t *)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vbool8_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (const uint8_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u8m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (const uint8_t *)(op3), (vuint32m8_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vbool4_t)(op3), (vuint8m2_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (const uint8_t *)(op7), (vuint32m8_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (const uint8_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vbool16_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (const uint8_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (const uint8_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vbool32_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (const uint8_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (const uint8_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vbool64_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (const uint8_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg4ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (const int8_t *)(op4), (vuint32m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vbool8_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (const int8_t *)(op9), (vuint32m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_i8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i8m2((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (const int8_t *)(op4), (vuint32m8_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i8m2_m((vint8m2_t *)(op0), (vint8m2_t *)(op1), (vint8m2_t *)(op2), (vint8m2_t *)(op3), (vbool4_t)(op4), (vint8m2_t)(op5), (vint8m2_t)(op6), (vint8m2_t)(op7), (vint8m2_t)(op8), (const int8_t *)(op9), (vuint32m8_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (const int8_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vbool16_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (const int8_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (const int8_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vbool32_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (const int8_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (const int8_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vbool64_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (const int8_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (const uint8_t *)(op4), (vuint32m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vbool8_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (const uint8_t *)(op9), (vuint32m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u8m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u8m2((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (const uint8_t *)(op4), (vuint32m8_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u8m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u8m2_m((vuint8m2_t *)(op0), (vuint8m2_t *)(op1), (vuint8m2_t *)(op2), (vuint8m2_t *)(op3), (vbool4_t)(op4), (vuint8m2_t)(op5), (vuint8m2_t)(op6), (vuint8m2_t)(op7), (vuint8m2_t)(op8), (const uint8_t *)(op9), (vuint32m8_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (const uint8_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vbool16_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (const uint8_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (const uint8_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vbool32_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (const uint8_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (const uint8_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vbool64_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (const uint8_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vloxseg5ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (const int8_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vbool8_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (const int8_t *)(op11), (vuint32m4_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (const int8_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vbool16_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (const int8_t *)(op11), (vuint32m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (const int8_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vbool32_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (const int8_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (const int8_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vbool64_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (const int8_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (const uint8_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vbool8_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (const uint8_t *)(op11), (vuint32m4_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (const uint8_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vbool16_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (const uint8_t *)(op11), (vuint32m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (const uint8_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vbool32_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (const uint8_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (const uint8_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vbool64_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (const uint8_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vloxseg6ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (const int8_t *)(op6), (vuint32m4_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vbool8_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (const int8_t *)(op13), (vuint32m4_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (const int8_t *)(op6), (vuint32m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vbool16_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (const int8_t *)(op13), (vuint32m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (const int8_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vbool32_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (const int8_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (const int8_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vbool64_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (const int8_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (const uint8_t *)(op6), (vuint32m4_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vbool8_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (const uint8_t *)(op13), (vuint32m4_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (const uint8_t *)(op6), (vuint32m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vbool16_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (const uint8_t *)(op13), (vuint32m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (const uint8_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vbool32_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (const uint8_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (const uint8_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vbool64_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (const uint8_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vloxseg7ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (const int8_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vbool8_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (const int8_t *)(op15), (vuint32m4_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (const int8_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vbool16_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (const int8_t *)(op15), (vuint32m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (const int8_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vbool32_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (const int8_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (const int8_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vbool64_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (const int8_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (const uint8_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vbool8_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (const uint8_t *)(op15), (vuint32m4_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (const uint8_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vbool16_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (const uint8_t *)(op15), (vuint32m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (const uint8_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vbool32_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (const uint8_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (const uint8_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vbool64_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (const uint8_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vloxseg8ei32_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (const int8_t *)(op8), (vuint32m4_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (vbool8_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (vint8m1_t)(op15), (vint8m1_t)(op16), (const int8_t *)(op17), (vuint32m4_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (const int8_t *)(op8), (vuint32m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (vbool16_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (vint8mf2_t)(op15), (vint8mf2_t)(op16), (const int8_t *)(op17), (vuint32m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (const int8_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (vbool32_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (vint8mf4_t)(op15), (vint8mf4_t)(op16), (const int8_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (const int8_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (vbool64_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (vint8mf8_t)(op15), (vint8mf8_t)(op16), (const int8_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (const uint8_t *)(op8), (vuint32m4_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (vbool8_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (vuint8m1_t)(op15), (vuint8m1_t)(op16), (const uint8_t *)(op17), (vuint32m4_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (const uint8_t *)(op8), (vuint32m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (vbool16_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (vuint8mf2_t)(op15), (vuint8mf2_t)(op16), (const uint8_t *)(op17), (vuint32m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (const uint8_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (vbool32_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (vuint8mf4_t)(op15), (vuint8mf4_t)(op16), (const uint8_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (const uint8_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (vbool64_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (vuint8mf8_t)(op15), (vuint8mf8_t)(op16), (const uint8_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vloxseg2ei64_v_i8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (const int8_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vbool8_t)(op2), (vint8m1_t)(op3), (vint8m1_t)(op4), (const int8_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_i8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (const int8_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vbool16_t)(op2), (vint8mf2_t)(op3), (vint8mf2_t)(op4), (const int8_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_i8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (const int8_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vbool32_t)(op2), (vint8mf4_t)(op3), (vint8mf4_t)(op4), (const int8_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_i8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (const int8_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vbool64_t)(op2), (vint8mf8_t)(op3), (vint8mf8_t)(op4), (const int8_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u8m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (const uint8_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vbool8_t)(op2), (vuint8m1_t)(op3), (vuint8m1_t)(op4), (const uint8_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u8mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (const uint8_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vbool16_t)(op2), (vuint8mf2_t)(op3), (vuint8mf2_t)(op4), (const uint8_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u8mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (const uint8_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vbool32_t)(op2), (vuint8mf4_t)(op3), (vuint8mf4_t)(op4), (const uint8_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u8mf8(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (const uint8_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vbool64_t)(op2), (vuint8mf8_t)(op3), (vuint8mf8_t)(op4), (const uint8_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg3ei64_v_i8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (const int8_t *)(op3), (vuint64m8_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vbool8_t)(op3), (vint8m1_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (const int8_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_i8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (const int8_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vbool16_t)(op3), (vint8mf2_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (const int8_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_i8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (const int8_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vbool32_t)(op3), (vint8mf4_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (const int8_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_i8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (const int8_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vbool64_t)(op3), (vint8mf8_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (const int8_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u8m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (const uint8_t *)(op3), (vuint64m8_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vbool8_t)(op3), (vuint8m1_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (const uint8_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u8mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (const uint8_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vbool16_t)(op3), (vuint8mf2_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (const uint8_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u8mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (const uint8_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vbool32_t)(op3), (vuint8mf4_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (const uint8_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u8mf8(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (const uint8_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vbool64_t)(op3), (vuint8mf8_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (const uint8_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg4ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (const int8_t *)(op4), (vuint64m8_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vbool8_t)(op4), (vint8m1_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (const int8_t *)(op9), (vuint64m8_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (const int8_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vbool16_t)(op4), (vint8mf2_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (const int8_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (const int8_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vbool32_t)(op4), (vint8mf4_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (const int8_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (const int8_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vbool64_t)(op4), (vint8mf8_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (const int8_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (const uint8_t *)(op4), (vuint64m8_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vbool8_t)(op4), (vuint8m1_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (const uint8_t *)(op9), (vuint64m8_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (const uint8_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vbool16_t)(op4), (vuint8mf2_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (const uint8_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (const uint8_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vbool32_t)(op4), (vuint8mf4_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (const uint8_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (const uint8_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vbool64_t)(op4), (vuint8mf8_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (const uint8_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vloxseg5ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (const int8_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vbool8_t)(op5), (vint8m1_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (const int8_t *)(op11), (vuint64m8_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (const int8_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vbool16_t)(op5), (vint8mf2_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (const int8_t *)(op11), (vuint64m4_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (const int8_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vbool32_t)(op5), (vint8mf4_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (const int8_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (const int8_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vbool64_t)(op5), (vint8mf8_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (const int8_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (const uint8_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vbool8_t)(op5), (vuint8m1_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (const uint8_t *)(op11), (vuint64m8_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (const uint8_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vbool16_t)(op5), (vuint8mf2_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (const uint8_t *)(op11), (vuint64m4_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (const uint8_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vbool32_t)(op5), (vuint8mf4_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (const uint8_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (const uint8_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vbool64_t)(op5), (vuint8mf8_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (const uint8_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vloxseg6ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (const int8_t *)(op6), (vuint64m8_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vbool8_t)(op6), (vint8m1_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (const int8_t *)(op13), (vuint64m8_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (const int8_t *)(op6), (vuint64m4_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vbool16_t)(op6), (vint8mf2_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (const int8_t *)(op13), (vuint64m4_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (const int8_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vbool32_t)(op6), (vint8mf4_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (const int8_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (const int8_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vbool64_t)(op6), (vint8mf8_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (const int8_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (const uint8_t *)(op6), (vuint64m8_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vbool8_t)(op6), (vuint8m1_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (const uint8_t *)(op13), (vuint64m8_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (const uint8_t *)(op6), (vuint64m4_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vbool16_t)(op6), (vuint8mf2_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (const uint8_t *)(op13), (vuint64m4_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (const uint8_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vbool32_t)(op6), (vuint8mf4_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (const uint8_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (const uint8_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vbool64_t)(op6), (vuint8mf8_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (const uint8_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vloxseg7ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (const int8_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vbool8_t)(op7), (vint8m1_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (const int8_t *)(op15), (vuint64m8_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (const int8_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vbool16_t)(op7), (vint8mf2_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (const int8_t *)(op15), (vuint64m4_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (const int8_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vbool32_t)(op7), (vint8mf4_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (const int8_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (const int8_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vbool64_t)(op7), (vint8mf8_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (const int8_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (const uint8_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vbool8_t)(op7), (vuint8m1_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (const uint8_t *)(op15), (vuint64m8_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (const uint8_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vbool16_t)(op7), (vuint8mf2_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (const uint8_t *)(op15), (vuint64m4_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (const uint8_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vbool32_t)(op7), (vuint8mf4_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (const uint8_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (const uint8_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vbool64_t)(op7), (vuint8mf8_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (const uint8_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vloxseg8ei64_v_i8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_i8m1((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (const int8_t *)(op8), (vuint64m8_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_i8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_i8m1_m((vint8m1_t *)(op0), (vint8m1_t *)(op1), (vint8m1_t *)(op2), (vint8m1_t *)(op3), (vint8m1_t *)(op4), (vint8m1_t *)(op5), (vint8m1_t *)(op6), (vint8m1_t *)(op7), (vbool8_t)(op8), (vint8m1_t)(op9), (vint8m1_t)(op10), (vint8m1_t)(op11), (vint8m1_t)(op12), (vint8m1_t)(op13), (vint8m1_t)(op14), (vint8m1_t)(op15), (vint8m1_t)(op16), (const int8_t *)(op17), (vuint64m8_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_i8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_i8mf2((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (const int8_t *)(op8), (vuint64m4_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_i8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_i8mf2_m((vint8mf2_t *)(op0), (vint8mf2_t *)(op1), (vint8mf2_t *)(op2), (vint8mf2_t *)(op3), (vint8mf2_t *)(op4), (vint8mf2_t *)(op5), (vint8mf2_t *)(op6), (vint8mf2_t *)(op7), (vbool16_t)(op8), (vint8mf2_t)(op9), (vint8mf2_t)(op10), (vint8mf2_t)(op11), (vint8mf2_t)(op12), (vint8mf2_t)(op13), (vint8mf2_t)(op14), (vint8mf2_t)(op15), (vint8mf2_t)(op16), (const int8_t *)(op17), (vuint64m4_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_i8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_i8mf4((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (const int8_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_i8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_i8mf4_m((vint8mf4_t *)(op0), (vint8mf4_t *)(op1), (vint8mf4_t *)(op2), (vint8mf4_t *)(op3), (vint8mf4_t *)(op4), (vint8mf4_t *)(op5), (vint8mf4_t *)(op6), (vint8mf4_t *)(op7), (vbool32_t)(op8), (vint8mf4_t)(op9), (vint8mf4_t)(op10), (vint8mf4_t)(op11), (vint8mf4_t)(op12), (vint8mf4_t)(op13), (vint8mf4_t)(op14), (vint8mf4_t)(op15), (vint8mf4_t)(op16), (const int8_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_i8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_i8mf8((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (const int8_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_i8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_i8mf8_m((vint8mf8_t *)(op0), (vint8mf8_t *)(op1), (vint8mf8_t *)(op2), (vint8mf8_t *)(op3), (vint8mf8_t *)(op4), (vint8mf8_t *)(op5), (vint8mf8_t *)(op6), (vint8mf8_t *)(op7), (vbool64_t)(op8), (vint8mf8_t)(op9), (vint8mf8_t)(op10), (vint8mf8_t)(op11), (vint8mf8_t)(op12), (vint8mf8_t)(op13), (vint8mf8_t)(op14), (vint8mf8_t)(op15), (vint8mf8_t)(op16), (const int8_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_u8m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_u8m1((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (const uint8_t *)(op8), (vuint64m8_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_u8m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_u8m1_m((vuint8m1_t *)(op0), (vuint8m1_t *)(op1), (vuint8m1_t *)(op2), (vuint8m1_t *)(op3), (vuint8m1_t *)(op4), (vuint8m1_t *)(op5), (vuint8m1_t *)(op6), (vuint8m1_t *)(op7), (vbool8_t)(op8), (vuint8m1_t)(op9), (vuint8m1_t)(op10), (vuint8m1_t)(op11), (vuint8m1_t)(op12), (vuint8m1_t)(op13), (vuint8m1_t)(op14), (vuint8m1_t)(op15), (vuint8m1_t)(op16), (const uint8_t *)(op17), (vuint64m8_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_u8mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_u8mf2((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (const uint8_t *)(op8), (vuint64m4_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_u8mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_u8mf2_m((vuint8mf2_t *)(op0), (vuint8mf2_t *)(op1), (vuint8mf2_t *)(op2), (vuint8mf2_t *)(op3), (vuint8mf2_t *)(op4), (vuint8mf2_t *)(op5), (vuint8mf2_t *)(op6), (vuint8mf2_t *)(op7), (vbool16_t)(op8), (vuint8mf2_t)(op9), (vuint8mf2_t)(op10), (vuint8mf2_t)(op11), (vuint8mf2_t)(op12), (vuint8mf2_t)(op13), (vuint8mf2_t)(op14), (vuint8mf2_t)(op15), (vuint8mf2_t)(op16), (const uint8_t *)(op17), (vuint64m4_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_u8mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_u8mf4((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (const uint8_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_u8mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_u8mf4_m((vuint8mf4_t *)(op0), (vuint8mf4_t *)(op1), (vuint8mf4_t *)(op2), (vuint8mf4_t *)(op3), (vuint8mf4_t *)(op4), (vuint8mf4_t *)(op5), (vuint8mf4_t *)(op6), (vuint8mf4_t *)(op7), (vbool32_t)(op8), (vuint8mf4_t)(op9), (vuint8mf4_t)(op10), (vuint8mf4_t)(op11), (vuint8mf4_t)(op12), (vuint8mf4_t)(op13), (vuint8mf4_t)(op14), (vuint8mf4_t)(op15), (vuint8mf4_t)(op16), (const uint8_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_u8mf8(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_u8mf8((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (const uint8_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_u8mf8_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_u8mf8_m((vuint8mf8_t *)(op0), (vuint8mf8_t *)(op1), (vuint8mf8_t *)(op2), (vuint8mf8_t *)(op3), (vuint8mf8_t *)(op4), (vuint8mf8_t *)(op5), (vuint8mf8_t *)(op6), (vuint8mf8_t *)(op7), (vbool64_t)(op8), (vuint8mf8_t)(op9), (vuint8mf8_t)(op10), (vuint8mf8_t)(op11), (vuint8mf8_t)(op12), (vuint8mf8_t)(op13), (vuint8mf8_t)(op14), (vuint8mf8_t)(op15), (vuint8mf8_t)(op16), (const uint8_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vloxseg2ei8_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (const int16_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vbool16_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (const int16_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (const int16_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vbool8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (const int16_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i16m4((vint16m4_t *)(op0), (vint16m4_t *)(op1), (const int16_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i16m4_m((vint16m4_t *)(op0), (vint16m4_t *)(op1), (vbool4_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (const int16_t *)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (const int16_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vbool32_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (const int16_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (const int16_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vbool64_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (const int16_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (const uint16_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vbool16_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (const uint16_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (const uint16_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vbool8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (const uint16_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u16m4((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (const uint16_t *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u16m4_m((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (vbool4_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (const uint16_t *)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (const uint16_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vbool32_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (const uint16_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (const uint16_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vbool64_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (const uint16_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg3ei8_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (const int16_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vbool16_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (const int16_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (const int16_t *)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vbool8_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (const int16_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (const int16_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vbool32_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (const int16_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (const int16_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vbool64_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (const int16_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (const uint16_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vbool16_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (const uint16_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (const uint16_t *)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vbool8_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (const uint16_t *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (const uint16_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vbool32_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (const uint16_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (const uint16_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vbool64_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (const uint16_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg4ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (const int16_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vbool16_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (const int16_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (const int16_t *)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (vbool8_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (vint16m2_t)(op7), (vint16m2_t)(op8), (const int16_t *)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (const int16_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vbool32_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (const int16_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (const int16_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vbool64_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (const int16_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (const uint16_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vbool16_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (const uint16_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (const uint16_t *)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (vbool8_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (vuint16m2_t)(op7), (vuint16m2_t)(op8), (const uint16_t *)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (const uint16_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vbool32_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (const uint16_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (const uint16_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vbool64_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (const uint16_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vloxseg5ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (const int16_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vbool16_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (const int16_t *)(op11), (vuint8mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (const int16_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vbool32_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (const int16_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (const int16_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vbool64_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (const int16_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (const uint16_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vbool16_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (const uint16_t *)(op11), (vuint8mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (const uint16_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vbool32_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (const uint16_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (const uint16_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vbool64_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (const uint16_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vloxseg6ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (const int16_t *)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vbool16_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (const int16_t *)(op13), (vuint8mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (const int16_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vbool32_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (const int16_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (const int16_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vbool64_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (const int16_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (const uint16_t *)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vbool16_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (const uint16_t *)(op13), (vuint8mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (const uint16_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vbool32_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (const uint16_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (const uint16_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vbool64_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (const uint16_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vloxseg7ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (const int16_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vbool16_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (const int16_t *)(op15), (vuint8mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (const int16_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vbool32_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (const int16_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (const int16_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vbool64_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (const int16_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (const uint16_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vbool16_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (const uint16_t *)(op15), (vuint8mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (const uint16_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vbool32_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (const uint16_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (const uint16_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vbool64_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (const uint16_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vloxseg8ei8_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (const int16_t *)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (vbool16_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (vint16m1_t)(op15), (vint16m1_t)(op16), (const int16_t *)(op17), (vuint8mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (const int16_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (vbool32_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (vint16mf2_t)(op15), (vint16mf2_t)(op16), (const int16_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (const int16_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (vbool64_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (vint16mf4_t)(op15), (vint16mf4_t)(op16), (const int16_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (const uint16_t *)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (vbool16_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (vuint16m1_t)(op15), (vuint16m1_t)(op16), (const uint16_t *)(op17), (vuint8mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (const uint16_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (vbool32_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (vuint16mf2_t)(op15), (vuint16mf2_t)(op16), (const uint16_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (const uint16_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (vbool64_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (vuint16mf4_t)(op15), (vuint16mf4_t)(op16), (const uint16_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vloxseg2ei16_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (const int16_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vbool16_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (const int16_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (const int16_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vbool8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (const int16_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i16m4((vint16m4_t *)(op0), (vint16m4_t *)(op1), (const int16_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i16m4_m((vint16m4_t *)(op0), (vint16m4_t *)(op1), (vbool4_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (const int16_t *)(op5), (vuint16m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (const int16_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vbool32_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (const int16_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (const int16_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vbool64_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (const int16_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (const uint16_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vbool16_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (const uint16_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (const uint16_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vbool8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (const uint16_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u16m4((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (const uint16_t *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u16m4_m((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (vbool4_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (const uint16_t *)(op5), (vuint16m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (const uint16_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vbool32_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (const uint16_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (const uint16_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vbool64_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (const uint16_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg3ei16_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (const int16_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vbool16_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (const int16_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (const int16_t *)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vbool8_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (const int16_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (const int16_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vbool32_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (const int16_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (const int16_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vbool64_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (const int16_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (const uint16_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vbool16_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (const uint16_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (const uint16_t *)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vbool8_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (const uint16_t *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (const uint16_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vbool32_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (const uint16_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (const uint16_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vbool64_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (const uint16_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg4ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (const int16_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vbool16_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (const int16_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (const int16_t *)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (vbool8_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (vint16m2_t)(op7), (vint16m2_t)(op8), (const int16_t *)(op9), (vuint16m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (const int16_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vbool32_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (const int16_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (const int16_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vbool64_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (const int16_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (const uint16_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vbool16_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (const uint16_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (const uint16_t *)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (vbool8_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (vuint16m2_t)(op7), (vuint16m2_t)(op8), (const uint16_t *)(op9), (vuint16m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (const uint16_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vbool32_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (const uint16_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (const uint16_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vbool64_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (const uint16_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vloxseg5ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (const int16_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vbool16_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (const int16_t *)(op11), (vuint16m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (const int16_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vbool32_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (const int16_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (const int16_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vbool64_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (const int16_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (const uint16_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vbool16_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (const uint16_t *)(op11), (vuint16m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (const uint16_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vbool32_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (const uint16_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (const uint16_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vbool64_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (const uint16_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vloxseg6ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (const int16_t *)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vbool16_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (const int16_t *)(op13), (vuint16m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (const int16_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vbool32_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (const int16_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (const int16_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vbool64_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (const int16_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (const uint16_t *)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vbool16_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (const uint16_t *)(op13), (vuint16m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (const uint16_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vbool32_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (const uint16_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (const uint16_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vbool64_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (const uint16_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vloxseg7ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (const int16_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vbool16_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (const int16_t *)(op15), (vuint16m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (const int16_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vbool32_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (const int16_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (const int16_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vbool64_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (const int16_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (const uint16_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vbool16_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (const uint16_t *)(op15), (vuint16m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (const uint16_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vbool32_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (const uint16_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (const uint16_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vbool64_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (const uint16_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vloxseg8ei16_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (const int16_t *)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (vbool16_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (vint16m1_t)(op15), (vint16m1_t)(op16), (const int16_t *)(op17), (vuint16m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (const int16_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (vbool32_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (vint16mf2_t)(op15), (vint16mf2_t)(op16), (const int16_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (const int16_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (vbool64_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (vint16mf4_t)(op15), (vint16mf4_t)(op16), (const int16_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (const uint16_t *)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (vbool16_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (vuint16m1_t)(op15), (vuint16m1_t)(op16), (const uint16_t *)(op17), (vuint16m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (const uint16_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (vbool32_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (vuint16mf2_t)(op15), (vuint16mf2_t)(op16), (const uint16_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (const uint16_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (vbool64_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (vuint16mf4_t)(op15), (vuint16mf4_t)(op16), (const uint16_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vloxseg2ei32_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (const int16_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vbool16_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (const int16_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (const int16_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vbool8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (const int16_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i16m4((vint16m4_t *)(op0), (vint16m4_t *)(op1), (const int16_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i16m4_m((vint16m4_t *)(op0), (vint16m4_t *)(op1), (vbool4_t)(op2), (vint16m4_t)(op3), (vint16m4_t)(op4), (const int16_t *)(op5), (vuint32m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (const int16_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vbool32_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (const int16_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (const int16_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vbool64_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (const int16_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (const uint16_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vbool16_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (const uint16_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (const uint16_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vbool8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (const uint16_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u16m4((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (const uint16_t *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u16m4_m((vuint16m4_t *)(op0), (vuint16m4_t *)(op1), (vbool4_t)(op2), (vuint16m4_t)(op3), (vuint16m4_t)(op4), (const uint16_t *)(op5), (vuint32m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (const uint16_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vbool32_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (const uint16_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (const uint16_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vbool64_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (const uint16_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg3ei32_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (const int16_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vbool16_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (const int16_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (const int16_t *)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vbool8_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (const int16_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (const int16_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vbool32_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (const int16_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (const int16_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vbool64_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (const int16_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (const uint16_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vbool16_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (const uint16_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (const uint16_t *)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vbool8_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (const uint16_t *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (const uint16_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vbool32_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (const uint16_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (const uint16_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vbool64_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (const uint16_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg4ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (const int16_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vbool16_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (const int16_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (const int16_t *)(op4), (vuint32m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (vbool8_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (vint16m2_t)(op7), (vint16m2_t)(op8), (const int16_t *)(op9), (vuint32m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (const int16_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vbool32_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (const int16_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (const int16_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vbool64_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (const int16_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (const uint16_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vbool16_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (const uint16_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (const uint16_t *)(op4), (vuint32m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (vbool8_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (vuint16m2_t)(op7), (vuint16m2_t)(op8), (const uint16_t *)(op9), (vuint32m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (const uint16_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vbool32_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (const uint16_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (const uint16_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vbool64_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (const uint16_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vloxseg5ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (const int16_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vbool16_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (const int16_t *)(op11), (vuint32m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (const int16_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vbool32_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (const int16_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (const int16_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vbool64_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (const int16_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (const uint16_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vbool16_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (const uint16_t *)(op11), (vuint32m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (const uint16_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vbool32_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (const uint16_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (const uint16_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vbool64_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (const uint16_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vloxseg6ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (const int16_t *)(op6), (vuint32m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vbool16_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (const int16_t *)(op13), (vuint32m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (const int16_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vbool32_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (const int16_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (const int16_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vbool64_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (const int16_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (const uint16_t *)(op6), (vuint32m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vbool16_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (const uint16_t *)(op13), (vuint32m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (const uint16_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vbool32_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (const uint16_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (const uint16_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vbool64_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (const uint16_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vloxseg7ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (const int16_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vbool16_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (const int16_t *)(op15), (vuint32m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (const int16_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vbool32_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (const int16_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (const int16_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vbool64_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (const int16_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (const uint16_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vbool16_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (const uint16_t *)(op15), (vuint32m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (const uint16_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vbool32_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (const uint16_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (const uint16_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vbool64_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (const uint16_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vloxseg8ei32_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (const int16_t *)(op8), (vuint32m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (vbool16_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (vint16m1_t)(op15), (vint16m1_t)(op16), (const int16_t *)(op17), (vuint32m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (const int16_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (vbool32_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (vint16mf2_t)(op15), (vint16mf2_t)(op16), (const int16_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (const int16_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (vbool64_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (vint16mf4_t)(op15), (vint16mf4_t)(op16), (const int16_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (const uint16_t *)(op8), (vuint32m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (vbool16_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (vuint16m1_t)(op15), (vuint16m1_t)(op16), (const uint16_t *)(op17), (vuint32m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (const uint16_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (vbool32_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (vuint16mf2_t)(op15), (vuint16mf2_t)(op16), (const uint16_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (const uint16_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (vbool64_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (vuint16mf4_t)(op15), (vuint16mf4_t)(op16), (const uint16_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vloxseg2ei64_v_i16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (const int16_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vbool16_t)(op2), (vint16m1_t)(op3), (vint16m1_t)(op4), (const int16_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_i16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (const int16_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vbool8_t)(op2), (vint16m2_t)(op3), (vint16m2_t)(op4), (const int16_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_i16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (const int16_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vbool32_t)(op2), (vint16mf2_t)(op3), (vint16mf2_t)(op4), (const int16_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_i16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (const int16_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vbool64_t)(op2), (vint16mf4_t)(op3), (vint16mf4_t)(op4), (const int16_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (const uint16_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vbool16_t)(op2), (vuint16m1_t)(op3), (vuint16m1_t)(op4), (const uint16_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (const uint16_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vbool8_t)(op2), (vuint16m2_t)(op3), (vuint16m2_t)(op4), (const uint16_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (const uint16_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vbool32_t)(op2), (vuint16mf2_t)(op3), (vuint16mf2_t)(op4), (const uint16_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (const uint16_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vbool64_t)(op2), (vuint16mf4_t)(op3), (vuint16mf4_t)(op4), (const uint16_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg3ei64_v_i16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (const int16_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vbool16_t)(op3), (vint16m1_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (const int16_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_i16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (const int16_t *)(op3), (vuint64m8_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vbool8_t)(op3), (vint16m2_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (const int16_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_i16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (const int16_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vbool32_t)(op3), (vint16mf2_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (const int16_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_i16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (const int16_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vbool64_t)(op3), (vint16mf4_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (const int16_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (const uint16_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vbool16_t)(op3), (vuint16m1_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (const uint16_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (const uint16_t *)(op3), (vuint64m8_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vbool8_t)(op3), (vuint16m2_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (const uint16_t *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (const uint16_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vbool32_t)(op3), (vuint16mf2_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (const uint16_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (const uint16_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vbool64_t)(op3), (vuint16mf4_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (const uint16_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg4ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (const int16_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vbool16_t)(op4), (vint16m1_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (const int16_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_i16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i16m2((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (const int16_t *)(op4), (vuint64m8_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i16m2_m((vint16m2_t *)(op0), (vint16m2_t *)(op1), (vint16m2_t *)(op2), (vint16m2_t *)(op3), (vbool8_t)(op4), (vint16m2_t)(op5), (vint16m2_t)(op6), (vint16m2_t)(op7), (vint16m2_t)(op8), (const int16_t *)(op9), (vuint64m8_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (const int16_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vbool32_t)(op4), (vint16mf2_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (const int16_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (const int16_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vbool64_t)(op4), (vint16mf4_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (const int16_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (const uint16_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vbool16_t)(op4), (vuint16m1_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (const uint16_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u16m2((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (const uint16_t *)(op4), (vuint64m8_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u16m2_m((vuint16m2_t *)(op0), (vuint16m2_t *)(op1), (vuint16m2_t *)(op2), (vuint16m2_t *)(op3), (vbool8_t)(op4), (vuint16m2_t)(op5), (vuint16m2_t)(op6), (vuint16m2_t)(op7), (vuint16m2_t)(op8), (const uint16_t *)(op9), (vuint64m8_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (const uint16_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vbool32_t)(op4), (vuint16mf2_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (const uint16_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (const uint16_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vbool64_t)(op4), (vuint16mf4_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (const uint16_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vloxseg5ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (const int16_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vbool16_t)(op5), (vint16m1_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (const int16_t *)(op11), (vuint64m4_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (const int16_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vbool32_t)(op5), (vint16mf2_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (const int16_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (const int16_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vbool64_t)(op5), (vint16mf4_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (const int16_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (const uint16_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vbool16_t)(op5), (vuint16m1_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (const uint16_t *)(op11), (vuint64m4_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (const uint16_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vbool32_t)(op5), (vuint16mf2_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (const uint16_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (const uint16_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vbool64_t)(op5), (vuint16mf4_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (const uint16_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vloxseg6ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (const int16_t *)(op6), (vuint64m4_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vbool16_t)(op6), (vint16m1_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (const int16_t *)(op13), (vuint64m4_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (const int16_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vbool32_t)(op6), (vint16mf2_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (const int16_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (const int16_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vbool64_t)(op6), (vint16mf4_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (const int16_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (const uint16_t *)(op6), (vuint64m4_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vbool16_t)(op6), (vuint16m1_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (const uint16_t *)(op13), (vuint64m4_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (const uint16_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vbool32_t)(op6), (vuint16mf2_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (const uint16_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (const uint16_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vbool64_t)(op6), (vuint16mf4_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (const uint16_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vloxseg7ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (const int16_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vbool16_t)(op7), (vint16m1_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (const int16_t *)(op15), (vuint64m4_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (const int16_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vbool32_t)(op7), (vint16mf2_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (const int16_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (const int16_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vbool64_t)(op7), (vint16mf4_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (const int16_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (const uint16_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vbool16_t)(op7), (vuint16m1_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (const uint16_t *)(op15), (vuint64m4_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (const uint16_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vbool32_t)(op7), (vuint16mf2_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (const uint16_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (const uint16_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vbool64_t)(op7), (vuint16mf4_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (const uint16_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vloxseg8ei64_v_i16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_i16m1((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (const int16_t *)(op8), (vuint64m4_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_i16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_i16m1_m((vint16m1_t *)(op0), (vint16m1_t *)(op1), (vint16m1_t *)(op2), (vint16m1_t *)(op3), (vint16m1_t *)(op4), (vint16m1_t *)(op5), (vint16m1_t *)(op6), (vint16m1_t *)(op7), (vbool16_t)(op8), (vint16m1_t)(op9), (vint16m1_t)(op10), (vint16m1_t)(op11), (vint16m1_t)(op12), (vint16m1_t)(op13), (vint16m1_t)(op14), (vint16m1_t)(op15), (vint16m1_t)(op16), (const int16_t *)(op17), (vuint64m4_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_i16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_i16mf2((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (const int16_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_i16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_i16mf2_m((vint16mf2_t *)(op0), (vint16mf2_t *)(op1), (vint16mf2_t *)(op2), (vint16mf2_t *)(op3), (vint16mf2_t *)(op4), (vint16mf2_t *)(op5), (vint16mf2_t *)(op6), (vint16mf2_t *)(op7), (vbool32_t)(op8), (vint16mf2_t)(op9), (vint16mf2_t)(op10), (vint16mf2_t)(op11), (vint16mf2_t)(op12), (vint16mf2_t)(op13), (vint16mf2_t)(op14), (vint16mf2_t)(op15), (vint16mf2_t)(op16), (const int16_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_i16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_i16mf4((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (const int16_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_i16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_i16mf4_m((vint16mf4_t *)(op0), (vint16mf4_t *)(op1), (vint16mf4_t *)(op2), (vint16mf4_t *)(op3), (vint16mf4_t *)(op4), (vint16mf4_t *)(op5), (vint16mf4_t *)(op6), (vint16mf4_t *)(op7), (vbool64_t)(op8), (vint16mf4_t)(op9), (vint16mf4_t)(op10), (vint16mf4_t)(op11), (vint16mf4_t)(op12), (vint16mf4_t)(op13), (vint16mf4_t)(op14), (vint16mf4_t)(op15), (vint16mf4_t)(op16), (const int16_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_u16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_u16m1((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (const uint16_t *)(op8), (vuint64m4_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_u16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_u16m1_m((vuint16m1_t *)(op0), (vuint16m1_t *)(op1), (vuint16m1_t *)(op2), (vuint16m1_t *)(op3), (vuint16m1_t *)(op4), (vuint16m1_t *)(op5), (vuint16m1_t *)(op6), (vuint16m1_t *)(op7), (vbool16_t)(op8), (vuint16m1_t)(op9), (vuint16m1_t)(op10), (vuint16m1_t)(op11), (vuint16m1_t)(op12), (vuint16m1_t)(op13), (vuint16m1_t)(op14), (vuint16m1_t)(op15), (vuint16m1_t)(op16), (const uint16_t *)(op17), (vuint64m4_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_u16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_u16mf2((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (const uint16_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_u16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_u16mf2_m((vuint16mf2_t *)(op0), (vuint16mf2_t *)(op1), (vuint16mf2_t *)(op2), (vuint16mf2_t *)(op3), (vuint16mf2_t *)(op4), (vuint16mf2_t *)(op5), (vuint16mf2_t *)(op6), (vuint16mf2_t *)(op7), (vbool32_t)(op8), (vuint16mf2_t)(op9), (vuint16mf2_t)(op10), (vuint16mf2_t)(op11), (vuint16mf2_t)(op12), (vuint16mf2_t)(op13), (vuint16mf2_t)(op14), (vuint16mf2_t)(op15), (vuint16mf2_t)(op16), (const uint16_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_u16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_u16mf4((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (const uint16_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_u16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_u16mf4_m((vuint16mf4_t *)(op0), (vuint16mf4_t *)(op1), (vuint16mf4_t *)(op2), (vuint16mf4_t *)(op3), (vuint16mf4_t *)(op4), (vuint16mf4_t *)(op5), (vuint16mf4_t *)(op6), (vuint16mf4_t *)(op7), (vbool64_t)(op8), (vuint16mf4_t)(op9), (vuint16mf4_t)(op10), (vuint16mf4_t)(op11), (vuint16mf4_t)(op12), (vuint16mf4_t)(op13), (vuint16mf4_t)(op14), (vuint16mf4_t)(op15), (vuint16mf4_t)(op16), (const uint16_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vloxseg2ei8_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (const int32_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vbool32_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (const int32_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (const int32_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vbool16_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (const int32_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i32m4((vint32m4_t *)(op0), (vint32m4_t *)(op1), (const int32_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i32m4_m((vint32m4_t *)(op0), (vint32m4_t *)(op1), (vbool8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (const int32_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (const int32_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vbool64_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (const int32_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (const uint32_t *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vbool32_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (const uint32_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (const uint32_t *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vbool16_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (const uint32_t *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u32m4((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (const uint32_t *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u32m4_m((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (vbool8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (const uint32_t *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (const uint32_t *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vbool64_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (const uint32_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg3ei8_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (const int32_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vbool32_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (const int32_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (const int32_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vbool16_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (const int32_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (const int32_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vbool64_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (const int32_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (const uint32_t *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vbool32_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (const uint32_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (const uint32_t *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vbool16_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (const uint32_t *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (const uint32_t *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vbool64_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (const uint32_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg4ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (const int32_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vbool32_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (const int32_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (const int32_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (vbool16_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (vint32m2_t)(op7), (vint32m2_t)(op8), (const int32_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (const int32_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vbool64_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (const int32_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (const uint32_t *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vbool32_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (const uint32_t *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (const uint32_t *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (vbool16_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (vuint32m2_t)(op7), (vuint32m2_t)(op8), (const uint32_t *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (const uint32_t *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vbool64_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (const uint32_t *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vloxseg5ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (const int32_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vbool32_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (const int32_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (const int32_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vbool64_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (const int32_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (const uint32_t *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vbool32_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (const uint32_t *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (const uint32_t *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vbool64_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (const uint32_t *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vloxseg6ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (const int32_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vbool32_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (const int32_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (const int32_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vbool64_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (const int32_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (const uint32_t *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vbool32_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (const uint32_t *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (const uint32_t *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vbool64_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (const uint32_t *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vloxseg7ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (const int32_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vbool32_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (const int32_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (const int32_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vbool64_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (const int32_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (const uint32_t *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vbool32_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (const uint32_t *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (const uint32_t *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vbool64_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (const uint32_t *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vloxseg8ei8_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (const int32_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (vbool32_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (vint32m1_t)(op15), (vint32m1_t)(op16), (const int32_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (const int32_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (vbool64_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (vint32mf2_t)(op15), (vint32mf2_t)(op16), (const int32_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (const uint32_t *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (vbool32_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (vuint32m1_t)(op15), (vuint32m1_t)(op16), (const uint32_t *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (const uint32_t *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (vbool64_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (vuint32mf2_t)(op15), (vuint32mf2_t)(op16), (const uint32_t *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vloxseg2ei16_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (const int32_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vbool32_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (const int32_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (const int32_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vbool16_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (const int32_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i32m4((vint32m4_t *)(op0), (vint32m4_t *)(op1), (const int32_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i32m4_m((vint32m4_t *)(op0), (vint32m4_t *)(op1), (vbool8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (const int32_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (const int32_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vbool64_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (const int32_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (const uint32_t *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vbool32_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (const uint32_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (const uint32_t *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vbool16_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (const uint32_t *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u32m4((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (const uint32_t *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u32m4_m((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (vbool8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (const uint32_t *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (const uint32_t *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vbool64_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (const uint32_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg3ei16_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (const int32_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vbool32_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (const int32_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (const int32_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vbool16_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (const int32_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (const int32_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vbool64_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (const int32_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (const uint32_t *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vbool32_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (const uint32_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (const uint32_t *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vbool16_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (const uint32_t *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (const uint32_t *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vbool64_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (const uint32_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg4ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (const int32_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vbool32_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (const int32_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (const int32_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (vbool16_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (vint32m2_t)(op7), (vint32m2_t)(op8), (const int32_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (const int32_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vbool64_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (const int32_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (const uint32_t *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vbool32_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (const uint32_t *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (const uint32_t *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (vbool16_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (vuint32m2_t)(op7), (vuint32m2_t)(op8), (const uint32_t *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (const uint32_t *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vbool64_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (const uint32_t *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vloxseg5ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (const int32_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vbool32_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (const int32_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (const int32_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vbool64_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (const int32_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (const uint32_t *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vbool32_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (const uint32_t *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (const uint32_t *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vbool64_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (const uint32_t *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vloxseg6ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (const int32_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vbool32_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (const int32_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (const int32_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vbool64_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (const int32_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (const uint32_t *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vbool32_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (const uint32_t *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (const uint32_t *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vbool64_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (const uint32_t *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vloxseg7ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (const int32_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vbool32_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (const int32_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (const int32_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vbool64_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (const int32_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (const uint32_t *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vbool32_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (const uint32_t *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (const uint32_t *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vbool64_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (const uint32_t *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vloxseg8ei16_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (const int32_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (vbool32_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (vint32m1_t)(op15), (vint32m1_t)(op16), (const int32_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (const int32_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (vbool64_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (vint32mf2_t)(op15), (vint32mf2_t)(op16), (const int32_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (const uint32_t *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (vbool32_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (vuint32m1_t)(op15), (vuint32m1_t)(op16), (const uint32_t *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (const uint32_t *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (vbool64_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (vuint32mf2_t)(op15), (vuint32mf2_t)(op16), (const uint32_t *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vloxseg2ei32_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (const int32_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vbool32_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (const int32_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (const int32_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vbool16_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (const int32_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i32m4((vint32m4_t *)(op0), (vint32m4_t *)(op1), (const int32_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i32m4_m((vint32m4_t *)(op0), (vint32m4_t *)(op1), (vbool8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (const int32_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (const int32_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vbool64_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (const int32_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (const uint32_t *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vbool32_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (const uint32_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (const uint32_t *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vbool16_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (const uint32_t *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u32m4((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (const uint32_t *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u32m4_m((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (vbool8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (const uint32_t *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (const uint32_t *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vbool64_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (const uint32_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg3ei32_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (const int32_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vbool32_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (const int32_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (const int32_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vbool16_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (const int32_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (const int32_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vbool64_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (const int32_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (const uint32_t *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vbool32_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (const uint32_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (const uint32_t *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vbool16_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (const uint32_t *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (const uint32_t *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vbool64_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (const uint32_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg4ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (const int32_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vbool32_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (const int32_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (const int32_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (vbool16_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (vint32m2_t)(op7), (vint32m2_t)(op8), (const int32_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (const int32_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vbool64_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (const int32_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (const uint32_t *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vbool32_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (const uint32_t *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (const uint32_t *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (vbool16_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (vuint32m2_t)(op7), (vuint32m2_t)(op8), (const uint32_t *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (const uint32_t *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vbool64_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (const uint32_t *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vloxseg5ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (const int32_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vbool32_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (const int32_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (const int32_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vbool64_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (const int32_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (const uint32_t *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vbool32_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (const uint32_t *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (const uint32_t *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vbool64_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (const uint32_t *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vloxseg6ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (const int32_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vbool32_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (const int32_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (const int32_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vbool64_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (const int32_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (const uint32_t *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vbool32_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (const uint32_t *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (const uint32_t *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vbool64_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (const uint32_t *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vloxseg7ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (const int32_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vbool32_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (const int32_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (const int32_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vbool64_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (const int32_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (const uint32_t *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vbool32_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (const uint32_t *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (const uint32_t *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vbool64_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (const uint32_t *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vloxseg8ei32_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (const int32_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (vbool32_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (vint32m1_t)(op15), (vint32m1_t)(op16), (const int32_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (const int32_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (vbool64_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (vint32mf2_t)(op15), (vint32mf2_t)(op16), (const int32_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (const uint32_t *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (vbool32_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (vuint32m1_t)(op15), (vuint32m1_t)(op16), (const uint32_t *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (const uint32_t *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (vbool64_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (vuint32mf2_t)(op15), (vuint32mf2_t)(op16), (const uint32_t *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vloxseg2ei64_v_i32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (const int32_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vbool32_t)(op2), (vint32m1_t)(op3), (vint32m1_t)(op4), (const int32_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_i32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (const int32_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vbool16_t)(op2), (vint32m2_t)(op3), (vint32m2_t)(op4), (const int32_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_i32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i32m4((vint32m4_t *)(op0), (vint32m4_t *)(op1), (const int32_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i32m4_m((vint32m4_t *)(op0), (vint32m4_t *)(op1), (vbool8_t)(op2), (vint32m4_t)(op3), (vint32m4_t)(op4), (const int32_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_i32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (const int32_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vbool64_t)(op2), (vint32mf2_t)(op3), (vint32mf2_t)(op4), (const int32_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (const uint32_t *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vbool32_t)(op2), (vuint32m1_t)(op3), (vuint32m1_t)(op4), (const uint32_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (const uint32_t *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vbool16_t)(op2), (vuint32m2_t)(op3), (vuint32m2_t)(op4), (const uint32_t *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u32m4((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (const uint32_t *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u32m4_m((vuint32m4_t *)(op0), (vuint32m4_t *)(op1), (vbool8_t)(op2), (vuint32m4_t)(op3), (vuint32m4_t)(op4), (const uint32_t *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_u32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (const uint32_t *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vbool64_t)(op2), (vuint32mf2_t)(op3), (vuint32mf2_t)(op4), (const uint32_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg3ei64_v_i32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (const int32_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vbool32_t)(op3), (vint32m1_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (const int32_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_i32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (const int32_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vbool16_t)(op3), (vint32m2_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (const int32_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_i32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (const int32_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vbool64_t)(op3), (vint32mf2_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (const int32_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (const uint32_t *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vbool32_t)(op3), (vuint32m1_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (const uint32_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (const uint32_t *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vbool16_t)(op3), (vuint32m2_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (const uint32_t *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_u32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (const uint32_t *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vbool64_t)(op3), (vuint32mf2_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (const uint32_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg4ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (const int32_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vbool32_t)(op4), (vint32m1_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (const int32_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_i32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i32m2((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (const int32_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i32m2_m((vint32m2_t *)(op0), (vint32m2_t *)(op1), (vint32m2_t *)(op2), (vint32m2_t *)(op3), (vbool16_t)(op4), (vint32m2_t)(op5), (vint32m2_t)(op6), (vint32m2_t)(op7), (vint32m2_t)(op8), (const int32_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (const int32_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vbool64_t)(op4), (vint32mf2_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (const int32_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (const uint32_t *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vbool32_t)(op4), (vuint32m1_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (const uint32_t *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u32m2((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (const uint32_t *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u32m2_m((vuint32m2_t *)(op0), (vuint32m2_t *)(op1), (vuint32m2_t *)(op2), (vuint32m2_t *)(op3), (vbool16_t)(op4), (vuint32m2_t)(op5), (vuint32m2_t)(op6), (vuint32m2_t)(op7), (vuint32m2_t)(op8), (const uint32_t *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (const uint32_t *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vbool64_t)(op4), (vuint32mf2_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (const uint32_t *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vloxseg5ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (const int32_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vbool32_t)(op5), (vint32m1_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (const int32_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (const int32_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vbool64_t)(op5), (vint32mf2_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (const int32_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (const uint32_t *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vbool32_t)(op5), (vuint32m1_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (const uint32_t *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (const uint32_t *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vbool64_t)(op5), (vuint32mf2_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (const uint32_t *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vloxseg6ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (const int32_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vbool32_t)(op6), (vint32m1_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (const int32_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (const int32_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vbool64_t)(op6), (vint32mf2_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (const int32_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (const uint32_t *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vbool32_t)(op6), (vuint32m1_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (const uint32_t *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (const uint32_t *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vbool64_t)(op6), (vuint32mf2_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (const uint32_t *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vloxseg7ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (const int32_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vbool32_t)(op7), (vint32m1_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (const int32_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (const int32_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vbool64_t)(op7), (vint32mf2_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (const int32_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (const uint32_t *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vbool32_t)(op7), (vuint32m1_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (const uint32_t *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (const uint32_t *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vbool64_t)(op7), (vuint32mf2_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (const uint32_t *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vloxseg8ei64_v_i32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_i32m1((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (const int32_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_i32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_i32m1_m((vint32m1_t *)(op0), (vint32m1_t *)(op1), (vint32m1_t *)(op2), (vint32m1_t *)(op3), (vint32m1_t *)(op4), (vint32m1_t *)(op5), (vint32m1_t *)(op6), (vint32m1_t *)(op7), (vbool32_t)(op8), (vint32m1_t)(op9), (vint32m1_t)(op10), (vint32m1_t)(op11), (vint32m1_t)(op12), (vint32m1_t)(op13), (vint32m1_t)(op14), (vint32m1_t)(op15), (vint32m1_t)(op16), (const int32_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_i32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_i32mf2((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (const int32_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_i32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_i32mf2_m((vint32mf2_t *)(op0), (vint32mf2_t *)(op1), (vint32mf2_t *)(op2), (vint32mf2_t *)(op3), (vint32mf2_t *)(op4), (vint32mf2_t *)(op5), (vint32mf2_t *)(op6), (vint32mf2_t *)(op7), (vbool64_t)(op8), (vint32mf2_t)(op9), (vint32mf2_t)(op10), (vint32mf2_t)(op11), (vint32mf2_t)(op12), (vint32mf2_t)(op13), (vint32mf2_t)(op14), (vint32mf2_t)(op15), (vint32mf2_t)(op16), (const int32_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_u32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_u32m1((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (const uint32_t *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_u32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_u32m1_m((vuint32m1_t *)(op0), (vuint32m1_t *)(op1), (vuint32m1_t *)(op2), (vuint32m1_t *)(op3), (vuint32m1_t *)(op4), (vuint32m1_t *)(op5), (vuint32m1_t *)(op6), (vuint32m1_t *)(op7), (vbool32_t)(op8), (vuint32m1_t)(op9), (vuint32m1_t)(op10), (vuint32m1_t)(op11), (vuint32m1_t)(op12), (vuint32m1_t)(op13), (vuint32m1_t)(op14), (vuint32m1_t)(op15), (vuint32m1_t)(op16), (const uint32_t *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_u32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_u32mf2((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (const uint32_t *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_u32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_u32mf2_m((vuint32mf2_t *)(op0), (vuint32mf2_t *)(op1), (vuint32mf2_t *)(op2), (vuint32mf2_t *)(op3), (vuint32mf2_t *)(op4), (vuint32mf2_t *)(op5), (vuint32mf2_t *)(op6), (vuint32mf2_t *)(op7), (vbool64_t)(op8), (vuint32mf2_t)(op9), (vuint32mf2_t)(op10), (vuint32mf2_t)(op11), (vuint32mf2_t)(op12), (vuint32mf2_t)(op13), (vuint32mf2_t)(op14), (vuint32mf2_t)(op15), (vuint32mf2_t)(op16), (const uint32_t *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#endif
-
-#if defined(__riscv_f) && defined(__riscv_zvlsseg)
-#define vloxseg2ei8_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (const float *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vbool32_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (const float *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (const float *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vbool16_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (const float *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f32m4((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (const float *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f32m4_m((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (vbool8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (const float *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (const float *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vbool64_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (const float *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg3ei8_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (const float *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vbool32_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (const float *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (const float *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vbool16_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (const float *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (const float *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vbool64_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (const float *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg4ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (const float *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vbool32_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (const float *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (const float *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (vbool16_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (vfloat32m2_t)(op7), (vfloat32m2_t)(op8), (const float *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (const float *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vbool64_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (const float *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vloxseg5ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (const float *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vbool32_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (const float *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (const float *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vbool64_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (const float *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vloxseg6ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (const float *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vbool32_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (const float *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (const float *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vbool64_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (const float *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vloxseg7ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (const float *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vbool32_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (const float *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (const float *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vbool64_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (const float *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vloxseg8ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (const float *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (vbool32_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (vfloat32m1_t)(op15), (vfloat32m1_t)(op16), (const float *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (const float *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (vbool64_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (vfloat32mf2_t)(op15), (vfloat32mf2_t)(op16), (const float *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vloxseg2ei16_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (const float *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vbool32_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (const float *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (const float *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vbool16_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (const float *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f32m4((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (const float *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f32m4_m((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (vbool8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (const float *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (const float *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vbool64_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (const float *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg3ei16_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (const float *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vbool32_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (const float *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (const float *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vbool16_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (const float *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (const float *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vbool64_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (const float *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg4ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (const float *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vbool32_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (const float *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (const float *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (vbool16_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (vfloat32m2_t)(op7), (vfloat32m2_t)(op8), (const float *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (const float *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vbool64_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (const float *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vloxseg5ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (const float *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vbool32_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (const float *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (const float *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vbool64_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (const float *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vloxseg6ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (const float *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vbool32_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (const float *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (const float *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vbool64_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (const float *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vloxseg7ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (const float *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vbool32_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (const float *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (const float *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vbool64_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (const float *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vloxseg8ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (const float *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (vbool32_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (vfloat32m1_t)(op15), (vfloat32m1_t)(op16), (const float *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (const float *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (vbool64_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (vfloat32mf2_t)(op15), (vfloat32mf2_t)(op16), (const float *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vloxseg2ei32_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (const float *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vbool32_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (const float *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (const float *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vbool16_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (const float *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f32m4((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (const float *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f32m4_m((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (vbool8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (const float *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (const float *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vbool64_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (const float *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg3ei32_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (const float *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vbool32_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (const float *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (const float *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vbool16_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (const float *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (const float *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vbool64_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (const float *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg4ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (const float *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vbool32_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (const float *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (const float *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (vbool16_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (vfloat32m2_t)(op7), (vfloat32m2_t)(op8), (const float *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (const float *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vbool64_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (const float *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vloxseg5ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (const float *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vbool32_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (const float *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (const float *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vbool64_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (const float *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vloxseg6ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (const float *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vbool32_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (const float *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (const float *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vbool64_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (const float *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vloxseg7ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (const float *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vbool32_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (const float *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (const float *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vbool64_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (const float *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vloxseg8ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (const float *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (vbool32_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (vfloat32m1_t)(op15), (vfloat32m1_t)(op16), (const float *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (const float *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (vbool64_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (vfloat32mf2_t)(op15), (vfloat32mf2_t)(op16), (const float *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vloxseg2ei64_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (const float *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vbool32_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (const float *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (const float *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vbool16_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (const float *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_f32m4((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (const float *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_f32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_f32m4_m((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (vbool8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (const float *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (const float *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vbool64_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (const float *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg3ei64_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (const float *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vbool32_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (const float *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (const float *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vbool16_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (const float *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (const float *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vbool64_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (const float *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg4ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (const float *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vbool32_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (const float *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (const float *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (vbool16_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (vfloat32m2_t)(op7), (vfloat32m2_t)(op8), (const float *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (const float *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vbool64_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (const float *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vloxseg5ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (const float *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vbool32_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (const float *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (const float *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vbool64_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (const float *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vloxseg6ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (const float *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vbool32_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (const float *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (const float *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vbool64_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (const float *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vloxseg7ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (const float *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vbool32_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (const float *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (const float *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vbool64_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (const float *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vloxseg8ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (const float *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (vbool32_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (vfloat32m1_t)(op15), (vfloat32m1_t)(op16), (const float *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (const float *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (vbool64_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (vfloat32mf2_t)(op15), (vfloat32mf2_t)(op16), (const float *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vsseg2e32_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_f32m1((float *)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_f32m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsseg2e32_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_f32m2((float *)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_f32m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsseg2e32_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_f32m4((float *)(op0), (vfloat32m4_t)(op1), (vfloat32m4_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_f32m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsseg2e32_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e32_v_f32mf2((float *)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (size_t)(op3))
-#define vsseg2e32_v_f32mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsseg3e32_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e32_v_f32m1((float *)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsseg3e32_v_f32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsseg3e32_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e32_v_f32m2((float *)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsseg3e32_v_f32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsseg3e32_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e32_v_f32mf2((float *)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsseg3e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsseg4e32_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e32_v_f32m1((float *)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsseg4e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsseg4e32_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e32_v_f32m2((float *)(op0), (vfloat32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsseg4e32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsseg4e32_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e32_v_f32mf2((float *)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsseg4e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsseg5e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e32_v_f32m1((float *)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsseg5e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsseg5e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e32_v_f32mf2((float *)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsseg5e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsseg6e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e32_v_f32m1((float *)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsseg6e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsseg6e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e32_v_f32mf2((float *)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsseg6e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsseg7e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e32_v_f32m1((float *)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsseg7e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsseg7e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e32_v_f32mf2((float *)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsseg7e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsseg8e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e32_v_f32m1((float *)(op0), (vfloat32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsseg8e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsseg8e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e32_v_f32mf2((float *)(op0), (vfloat32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsseg8e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vssseg2e32_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_f32m1((float *)(op0), (ptrdiff_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_f32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vssseg2e32_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_f32m2((float *)(op0), (ptrdiff_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_f32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vssseg2e32_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_f32m4((float *)(op0), (ptrdiff_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_f32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (size_t)(op5))
-#define vssseg2e32_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e32_v_f32mf2((float *)(op0), (ptrdiff_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vssseg2e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vssseg3e32_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e32_v_f32m1((float *)(op0), (ptrdiff_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vssseg3e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vssseg3e32_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e32_v_f32m2((float *)(op0), (ptrdiff_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vssseg3e32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vssseg3e32_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e32_v_f32mf2((float *)(op0), (ptrdiff_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vssseg3e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vssseg4e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e32_v_f32m1((float *)(op0), (ptrdiff_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vssseg4e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vssseg4e32_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e32_v_f32m2((float *)(op0), (ptrdiff_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vssseg4e32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (size_t)(op7))
-#define vssseg4e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e32_v_f32mf2((float *)(op0), (ptrdiff_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vssseg4e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vssseg5e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e32_v_f32m1((float *)(op0), (ptrdiff_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vssseg5e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vssseg5e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e32_v_f32mf2((float *)(op0), (ptrdiff_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vssseg5e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vssseg6e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e32_v_f32m1((float *)(op0), (ptrdiff_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vssseg6e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vssseg6e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e32_v_f32mf2((float *)(op0), (ptrdiff_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vssseg6e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vssseg7e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e32_v_f32m1((float *)(op0), (ptrdiff_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vssseg7e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vssseg7e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e32_v_f32mf2((float *)(op0), (ptrdiff_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vssseg7e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vssseg8e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e32_v_f32m1((float *)(op0), (ptrdiff_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vssseg8e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (size_t)(op11))
-#define vssseg8e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e32_v_f32mf2((float *)(op0), (ptrdiff_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vssseg8e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (ptrdiff_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg2ei8_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f32m2((float *)(op0), (vuint8mf2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint8mf2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f32m4((float *)(op0), (vuint8m1_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint8m1_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_f32m2((float *)(op0), (vuint8mf2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint8mf2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_f32m2((float *)(op0), (vuint8mf2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint8mf2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg2ei16_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f32m2((float *)(op0), (vuint16m1_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint16m1_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f32m4((float *)(op0), (vuint16m2_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint16m2_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_f32m2((float *)(op0), (vuint16m1_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint16m1_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_f32m2((float *)(op0), (vuint16m1_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint16m1_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg2ei32_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f32m2((float *)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f32m4((float *)(op0), (vuint32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint32m4_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_f32m2((float *)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_f32m2((float *)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (size_t)(op11))
-#define vsuxseg2ei64_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_f32m2((float *)(op0), (vuint64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint64m4_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_f32m4((float *)(op0), (vuint64m8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_f32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint64m8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_f32m2((float *)(op0), (vuint64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint64m4_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_f32m2((float *)(op0), (vuint64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint64m4_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg2ei8_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f32m2((float *)(op0), (vuint8mf2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint8mf2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f32m4((float *)(op0), (vuint8m1_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint8m1_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_f32m2((float *)(op0), (vuint8mf2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint8mf2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_f32m2((float *)(op0), (vuint8mf2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint8mf2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_f32m1((float *)(op0), (vuint8mf4_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint8mf4_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_f32mf2((float *)(op0), (vuint8mf8_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint8mf8_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg2ei16_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f32m2((float *)(op0), (vuint16m1_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint16m1_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f32m4((float *)(op0), (vuint16m2_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint16m2_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_f32m2((float *)(op0), (vuint16m1_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint16m1_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_f32m2((float *)(op0), (vuint16m1_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint16m1_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_f32m1((float *)(op0), (vuint16mf2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint16mf2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_f32mf2((float *)(op0), (vuint16mf4_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint16mf4_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg2ei32_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f32m2((float *)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f32m4((float *)(op0), (vuint32m4_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint32m4_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_f32m2((float *)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_f32m2((float *)(op0), (vuint32m2_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_f32m1((float *)(op0), (vuint32m1_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_f32mf2((float *)(op0), (vuint32mf2_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (size_t)(op11))
-#define vsoxseg2ei64_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_f32m2((float *)(op0), (vuint64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint64m4_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_f32m4((float *)(op0), (vuint64m8_t)(op1), (vfloat32m4_t)(op2), (vfloat32m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_f32m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_f32m4_m((vbool8_t)(op0), (float *)(op1), (vuint64m8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_f32m2((float *)(op0), (vuint64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint64m4_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_f32m2((float *)(op0), (vuint64m4_t)(op1), (vfloat32m2_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_f32m2_m((vbool16_t)(op0), (float *)(op1), (vuint64m4_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_f32m1((float *)(op0), (vuint64m2_t)(op1), (vfloat32m1_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_f32m1_m((vbool32_t)(op0), (float *)(op1), (vuint64m2_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_f32mf2((float *)(op0), (vuint64m1_t)(op1), (vfloat32mf2_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_f32mf2_m((vbool64_t)(op0), (float *)(op1), (vuint64m1_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (size_t)(op11))
-#define vlseg2e32_v_f32m1(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (const float *)(op2), (size_t)(op3))
-#define vlseg2e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vbool32_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (const float *)(op5), (size_t)(op6))
-#define vlseg2e32_v_f32m2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (const float *)(op2), (size_t)(op3))
-#define vlseg2e32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vbool16_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (const float *)(op5), (size_t)(op6))
-#define vlseg2e32_v_f32m4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_f32m4((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (const float *)(op2), (size_t)(op3))
-#define vlseg2e32_v_f32m4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_f32m4_m((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (vbool8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (const float *)(op5), (size_t)(op6))
-#define vlseg2e32_v_f32mf2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (const float *)(op2), (size_t)(op3))
-#define vlseg2e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vbool64_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (const float *)(op5), (size_t)(op6))
-#define vlseg3e32_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (const float *)(op3), (size_t)(op4))
-#define vlseg3e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vbool32_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (const float *)(op7), (size_t)(op8))
-#define vlseg3e32_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (const float *)(op3), (size_t)(op4))
-#define vlseg3e32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vbool16_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (const float *)(op7), (size_t)(op8))
-#define vlseg3e32_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (const float *)(op3), (size_t)(op4))
-#define vlseg3e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vbool64_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (const float *)(op7), (size_t)(op8))
-#define vlseg4e32_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (const float *)(op4), (size_t)(op5))
-#define vlseg4e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vbool32_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (const float *)(op9), (size_t)(op10))
-#define vlseg4e32_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (const float *)(op4), (size_t)(op5))
-#define vlseg4e32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (vbool16_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (vfloat32m2_t)(op7), (vfloat32m2_t)(op8), (const float *)(op9), (size_t)(op10))
-#define vlseg4e32_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (const float *)(op4), (size_t)(op5))
-#define vlseg4e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vbool64_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (const float *)(op9), (size_t)(op10))
-#define vlseg5e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (const float *)(op5), (size_t)(op6))
-#define vlseg5e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vbool32_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (const float *)(op11), (size_t)(op12))
-#define vlseg5e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (const float *)(op5), (size_t)(op6))
-#define vlseg5e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vbool64_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (const float *)(op11), (size_t)(op12))
-#define vlseg6e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (const float *)(op6), (size_t)(op7))
-#define vlseg6e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vbool32_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (const float *)(op13), (size_t)(op14))
-#define vlseg6e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (const float *)(op6), (size_t)(op7))
-#define vlseg6e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vbool64_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (const float *)(op13), (size_t)(op14))
-#define vlseg7e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (const float *)(op7), (size_t)(op8))
-#define vlseg7e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vbool32_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (const float *)(op15), (size_t)(op16))
-#define vlseg7e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (const float *)(op7), (size_t)(op8))
-#define vlseg7e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vbool64_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (const float *)(op15), (size_t)(op16))
-#define vlseg8e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (const float *)(op8), (size_t)(op9))
-#define vlseg8e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (vbool32_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (vfloat32m1_t)(op15), (vfloat32m1_t)(op16), (const float *)(op17), (size_t)(op18))
-#define vlseg8e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (const float *)(op8), (size_t)(op9))
-#define vlseg8e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (vbool64_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (vfloat32mf2_t)(op15), (vfloat32mf2_t)(op16), (const float *)(op17), (size_t)(op18))
-#define vlseg2e32ff_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (const float *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vbool32_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (const float *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e32ff_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (const float *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vbool16_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (const float *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e32ff_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_f32m4((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (const float *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_f32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_f32m4_m((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (vbool8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (const float *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e32ff_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e32ff_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (const float *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e32ff_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e32ff_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vbool64_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (const float *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg3e32ff_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e32ff_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (const float *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e32ff_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e32ff_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vbool32_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (const float *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e32ff_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e32ff_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (const float *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e32ff_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e32ff_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vbool16_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (const float *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e32ff_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e32ff_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (const float *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e32ff_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e32ff_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vbool64_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (const float *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg4e32ff_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e32ff_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (const float *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e32ff_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e32ff_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vbool32_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (const float *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e32ff_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e32ff_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (const float *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e32ff_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e32ff_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (vbool16_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (vfloat32m2_t)(op7), (vfloat32m2_t)(op8), (const float *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e32ff_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e32ff_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (const float *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e32ff_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e32ff_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vbool64_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (const float *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg5e32ff_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e32ff_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (const float *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e32ff_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e32ff_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vbool32_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (const float *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e32ff_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e32ff_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (const float *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e32ff_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e32ff_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vbool64_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (const float *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg6e32ff_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e32ff_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (const float *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e32ff_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e32ff_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vbool32_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (const float *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e32ff_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e32ff_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (const float *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e32ff_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e32ff_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vbool64_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (const float *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg7e32ff_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e32ff_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (const float *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e32ff_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e32ff_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vbool32_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (const float *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e32ff_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e32ff_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (const float *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e32ff_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e32ff_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vbool64_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (const float *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg8e32ff_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e32ff_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (const float *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e32ff_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e32ff_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (vbool32_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (vfloat32m1_t)(op15), (vfloat32m1_t)(op16), (const float *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e32ff_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e32ff_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (const float *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e32ff_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e32ff_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (vbool64_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (vfloat32mf2_t)(op15), (vfloat32mf2_t)(op16), (const float *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlsseg2e32_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (const float *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vbool32_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (const float *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e32_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (const float *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vbool16_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (const float *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e32_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_f32m4((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (const float *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_f32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_f32m4_m((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (vbool8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (const float *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e32_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (const float *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vbool64_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (const float *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg3e32_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (const float *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vbool32_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (const float *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e32_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (const float *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vbool16_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (const float *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e32_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (const float *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vbool64_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (const float *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg4e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (const float *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vbool32_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (const float *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e32_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (const float *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (vbool16_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (vfloat32m2_t)(op7), (vfloat32m2_t)(op8), (const float *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (const float *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vbool64_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (const float *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg5e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (const float *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vbool32_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (const float *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (const float *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vbool64_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (const float *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg6e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (const float *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vbool32_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (const float *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (const float *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vbool64_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (const float *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg7e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (const float *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vbool32_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (const float *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (const float *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vbool64_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (const float *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg8e32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (const float *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (vbool32_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (vfloat32m1_t)(op15), (vfloat32m1_t)(op16), (const float *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (const float *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (vbool64_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (vfloat32mf2_t)(op15), (vfloat32mf2_t)(op16), (const float *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vluxseg2ei8_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (const float *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vbool32_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (const float *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (const float *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vbool16_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (const float *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f32m4((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (const float *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f32m4_m((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (vbool8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (const float *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (const float *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vbool64_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (const float *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg3ei8_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (const float *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vbool32_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (const float *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (const float *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vbool16_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (const float *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (const float *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vbool64_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (const float *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg4ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (const float *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vbool32_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (const float *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (const float *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (vbool16_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (vfloat32m2_t)(op7), (vfloat32m2_t)(op8), (const float *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (const float *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vbool64_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (const float *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vluxseg5ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (const float *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vbool32_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (const float *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (const float *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vbool64_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (const float *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vluxseg6ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (const float *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vbool32_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (const float *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (const float *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vbool64_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (const float *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vluxseg7ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (const float *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vbool32_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (const float *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (const float *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vbool64_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (const float *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vluxseg8ei8_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (const float *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (vbool32_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (vfloat32m1_t)(op15), (vfloat32m1_t)(op16), (const float *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (const float *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (vbool64_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (vfloat32mf2_t)(op15), (vfloat32mf2_t)(op16), (const float *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vluxseg2ei16_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (const float *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vbool32_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (const float *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (const float *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vbool16_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (const float *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f32m4((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (const float *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f32m4_m((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (vbool8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (const float *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (const float *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vbool64_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (const float *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg3ei16_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (const float *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vbool32_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (const float *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (const float *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vbool16_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (const float *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (const float *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vbool64_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (const float *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg4ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (const float *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vbool32_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (const float *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (const float *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (vbool16_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (vfloat32m2_t)(op7), (vfloat32m2_t)(op8), (const float *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (const float *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vbool64_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (const float *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vluxseg5ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (const float *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vbool32_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (const float *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (const float *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vbool64_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (const float *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vluxseg6ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (const float *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vbool32_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (const float *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (const float *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vbool64_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (const float *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vluxseg7ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (const float *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vbool32_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (const float *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (const float *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vbool64_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (const float *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vluxseg8ei16_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (const float *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (vbool32_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (vfloat32m1_t)(op15), (vfloat32m1_t)(op16), (const float *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (const float *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (vbool64_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (vfloat32mf2_t)(op15), (vfloat32mf2_t)(op16), (const float *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vluxseg2ei32_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (const float *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vbool32_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (const float *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (const float *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vbool16_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (const float *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f32m4((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (const float *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f32m4_m((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (vbool8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (const float *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (const float *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vbool64_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (const float *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg3ei32_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (const float *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vbool32_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (const float *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (const float *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vbool16_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (const float *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (const float *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vbool64_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (const float *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg4ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (const float *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vbool32_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (const float *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (const float *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (vbool16_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (vfloat32m2_t)(op7), (vfloat32m2_t)(op8), (const float *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (const float *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vbool64_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (const float *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vluxseg5ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (const float *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vbool32_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (const float *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (const float *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vbool64_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (const float *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vluxseg6ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (const float *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vbool32_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (const float *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (const float *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vbool64_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (const float *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vluxseg7ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (const float *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vbool32_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (const float *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (const float *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vbool64_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (const float *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vluxseg8ei32_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (const float *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (vbool32_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (vfloat32m1_t)(op15), (vfloat32m1_t)(op16), (const float *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (const float *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (vbool64_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (vfloat32mf2_t)(op15), (vfloat32mf2_t)(op16), (const float *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vluxseg2ei64_v_f32m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (const float *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vbool32_t)(op2), (vfloat32m1_t)(op3), (vfloat32m1_t)(op4), (const float *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_f32m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (const float *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vbool16_t)(op2), (vfloat32m2_t)(op3), (vfloat32m2_t)(op4), (const float *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_f32m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_f32m4((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (const float *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_f32m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_f32m4_m((vfloat32m4_t *)(op0), (vfloat32m4_t *)(op1), (vbool8_t)(op2), (vfloat32m4_t)(op3), (vfloat32m4_t)(op4), (const float *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_f32mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (const float *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vbool64_t)(op2), (vfloat32mf2_t)(op3), (vfloat32mf2_t)(op4), (const float *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg3ei64_v_f32m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (const float *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vbool32_t)(op3), (vfloat32m1_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (const float *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_f32m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (const float *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vbool16_t)(op3), (vfloat32m2_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (const float *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_f32mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (const float *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vbool64_t)(op3), (vfloat32mf2_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (const float *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg4ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (const float *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vbool32_t)(op4), (vfloat32m1_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (const float *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_f32m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_f32m2((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (const float *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_f32m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_f32m2_m((vfloat32m2_t *)(op0), (vfloat32m2_t *)(op1), (vfloat32m2_t *)(op2), (vfloat32m2_t *)(op3), (vbool16_t)(op4), (vfloat32m2_t)(op5), (vfloat32m2_t)(op6), (vfloat32m2_t)(op7), (vfloat32m2_t)(op8), (const float *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (const float *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vbool64_t)(op4), (vfloat32mf2_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (const float *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vluxseg5ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (const float *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vbool32_t)(op5), (vfloat32m1_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (const float *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (const float *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vbool64_t)(op5), (vfloat32mf2_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (const float *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vluxseg6ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (const float *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vbool32_t)(op6), (vfloat32m1_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (const float *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (const float *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vbool64_t)(op6), (vfloat32mf2_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (const float *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vluxseg7ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (const float *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vbool32_t)(op7), (vfloat32m1_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (const float *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (const float *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vbool64_t)(op7), (vfloat32mf2_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (const float *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vluxseg8ei64_v_f32m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_f32m1((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (const float *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_f32m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_f32m1_m((vfloat32m1_t *)(op0), (vfloat32m1_t *)(op1), (vfloat32m1_t *)(op2), (vfloat32m1_t *)(op3), (vfloat32m1_t *)(op4), (vfloat32m1_t *)(op5), (vfloat32m1_t *)(op6), (vfloat32m1_t *)(op7), (vbool32_t)(op8), (vfloat32m1_t)(op9), (vfloat32m1_t)(op10), (vfloat32m1_t)(op11), (vfloat32m1_t)(op12), (vfloat32m1_t)(op13), (vfloat32m1_t)(op14), (vfloat32m1_t)(op15), (vfloat32m1_t)(op16), (const float *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_f32mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_f32mf2((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (const float *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_f32mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_f32mf2_m((vfloat32mf2_t *)(op0), (vfloat32mf2_t *)(op1), (vfloat32mf2_t *)(op2), (vfloat32mf2_t *)(op3), (vfloat32mf2_t *)(op4), (vfloat32mf2_t *)(op5), (vfloat32mf2_t *)(op6), (vfloat32mf2_t *)(op7), (vbool64_t)(op8), (vfloat32mf2_t)(op9), (vfloat32mf2_t)(op10), (vfloat32mf2_t)(op11), (vfloat32mf2_t)(op12), (vfloat32mf2_t)(op13), (vfloat32mf2_t)(op14), (vfloat32mf2_t)(op15), (vfloat32mf2_t)(op16), (const float *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#endif
-
-#if defined(__riscv_d) && defined(__riscv_zvlsseg)
-#define vloxseg2ei8_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (const double *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vbool64_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (const double *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (const double *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vbool32_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (const double *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f64m4((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (const double *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f64m4_m((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (vbool16_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (const double *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg3ei8_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (const double *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vbool64_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (const double *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (const double *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vbool32_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (const double *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg4ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (const double *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vbool64_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (const double *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (const double *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (vbool32_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (vfloat64m2_t)(op7), (vfloat64m2_t)(op8), (const double *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vloxseg5ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (const double *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vbool64_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (const double *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vloxseg6ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (const double *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vbool64_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (const double *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vloxseg7ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (const double *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vbool64_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (const double *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vloxseg8ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (const double *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (vbool64_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (vfloat64m1_t)(op15), (vfloat64m1_t)(op16), (const double *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vloxseg2ei16_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (const double *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vbool64_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (const double *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (const double *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vbool32_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (const double *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f64m4((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (const double *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f64m4_m((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (vbool16_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (const double *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg3ei16_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (const double *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vbool64_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (const double *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (const double *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vbool32_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (const double *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg4ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (const double *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vbool64_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (const double *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (const double *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (vbool32_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (vfloat64m2_t)(op7), (vfloat64m2_t)(op8), (const double *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vloxseg5ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (const double *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vbool64_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (const double *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vloxseg6ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (const double *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vbool64_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (const double *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vloxseg7ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (const double *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vbool64_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (const double *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vloxseg8ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (const double *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (vbool64_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (vfloat64m1_t)(op15), (vfloat64m1_t)(op16), (const double *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vloxseg2ei32_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (const double *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vbool64_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (const double *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (const double *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vbool32_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (const double *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f64m4((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (const double *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f64m4_m((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (vbool16_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (const double *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg3ei32_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (const double *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vbool64_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (const double *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (const double *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vbool32_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (const double *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg4ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (const double *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vbool64_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (const double *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (const double *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (vbool32_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (vfloat64m2_t)(op7), (vfloat64m2_t)(op8), (const double *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vloxseg5ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (const double *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vbool64_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (const double *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vloxseg6ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (const double *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vbool64_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (const double *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vloxseg7ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (const double *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vbool64_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (const double *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vloxseg8ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (const double *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (vbool64_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (vfloat64m1_t)(op15), (vfloat64m1_t)(op16), (const double *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vloxseg2ei64_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (const double *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vbool64_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (const double *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (const double *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vbool32_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (const double *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_f64m4((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (const double *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_f64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_f64m4_m((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (vbool16_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (const double *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg3ei64_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (const double *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vbool64_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (const double *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (const double *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vbool32_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (const double *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg4ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (const double *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vbool64_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (const double *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (const double *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (vbool32_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (vfloat64m2_t)(op7), (vfloat64m2_t)(op8), (const double *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vloxseg5ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (const double *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vbool64_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (const double *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vloxseg6ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (const double *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vbool64_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (const double *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vloxseg7ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (const double *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vbool64_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (const double *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vloxseg8ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (const double *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (vbool64_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (vfloat64m1_t)(op15), (vfloat64m1_t)(op16), (const double *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vsseg2e64_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e64_v_f64m1((double *)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (size_t)(op3))
-#define vsseg2e64_v_f64m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsseg2e64_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e64_v_f64m2((double *)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (size_t)(op3))
-#define vsseg2e64_v_f64m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsseg2e64_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e64_v_f64m4((double *)(op0), (vfloat64m4_t)(op1), (vfloat64m4_t)(op2), (size_t)(op3))
-#define vsseg2e64_v_f64m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e64_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsseg3e64_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e64_v_f64m1((double *)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsseg3e64_v_f64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsseg3e64_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e64_v_f64m2((double *)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsseg3e64_v_f64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsseg4e64_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e64_v_f64m1((double *)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsseg4e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsseg4e64_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e64_v_f64m2((double *)(op0), (vfloat64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsseg4e64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsseg5e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e64_v_f64m1((double *)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsseg5e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsseg6e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e64_v_f64m1((double *)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsseg6e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsseg7e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e64_v_f64m1((double *)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsseg7e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsseg8e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e64_v_f64m1((double *)(op0), (vfloat64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsseg8e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vssseg2e64_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e64_v_f64m1((double *)(op0), (ptrdiff_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vssseg2e64_v_f64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vssseg2e64_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e64_v_f64m2((double *)(op0), (ptrdiff_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vssseg2e64_v_f64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vssseg2e64_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e64_v_f64m4((double *)(op0), (ptrdiff_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vssseg2e64_v_f64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e64_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (size_t)(op5))
-#define vssseg3e64_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e64_v_f64m1((double *)(op0), (ptrdiff_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vssseg3e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vssseg3e64_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e64_v_f64m2((double *)(op0), (ptrdiff_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vssseg3e64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vssseg4e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e64_v_f64m1((double *)(op0), (ptrdiff_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vssseg4e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vssseg4e64_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e64_v_f64m2((double *)(op0), (ptrdiff_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vssseg4e64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (size_t)(op7))
-#define vssseg5e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e64_v_f64m1((double *)(op0), (ptrdiff_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vssseg5e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vssseg6e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e64_v_f64m1((double *)(op0), (ptrdiff_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vssseg6e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vssseg7e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e64_v_f64m1((double *)(op0), (ptrdiff_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vssseg7e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vssseg8e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e64_v_f64m1((double *)(op0), (ptrdiff_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vssseg8e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (ptrdiff_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (size_t)(op11))
-#define vsuxseg2ei8_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f64m2((double *)(op0), (vuint8mf4_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint8mf4_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f64m4((double *)(op0), (vuint8mf2_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint8mf2_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_f64m2((double *)(op0), (vuint8mf4_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint8mf4_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_f64m2((double *)(op0), (vuint8mf4_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint8mf4_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (size_t)(op11))
-#define vsuxseg2ei16_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f64m2((double *)(op0), (vuint16mf2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint16mf2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f64m4((double *)(op0), (vuint16m1_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint16m1_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_f64m2((double *)(op0), (vuint16mf2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint16mf2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_f64m2((double *)(op0), (vuint16mf2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint16mf2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (size_t)(op11))
-#define vsuxseg2ei32_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f64m2((double *)(op0), (vuint32m1_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint32m1_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f64m4((double *)(op0), (vuint32m2_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint32m2_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_f64m2((double *)(op0), (vuint32m1_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint32m1_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_f64m2((double *)(op0), (vuint32m1_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint32m1_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (size_t)(op11))
-#define vsuxseg2ei64_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_f64m2((double *)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_f64m4((double *)(op0), (vuint64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_f64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint64m4_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_f64m2((double *)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_f64m2((double *)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (size_t)(op11))
-#define vsoxseg2ei8_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f64m2((double *)(op0), (vuint8mf4_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint8mf4_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f64m4((double *)(op0), (vuint8mf2_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint8mf2_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_f64m2((double *)(op0), (vuint8mf4_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint8mf4_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_f64m2((double *)(op0), (vuint8mf4_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint8mf4_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_f64m1((double *)(op0), (vuint8mf8_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint8mf8_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (size_t)(op11))
-#define vsoxseg2ei16_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f64m2((double *)(op0), (vuint16mf2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint16mf2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f64m4((double *)(op0), (vuint16m1_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint16m1_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_f64m2((double *)(op0), (vuint16mf2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint16mf2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_f64m2((double *)(op0), (vuint16mf2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint16mf2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_f64m1((double *)(op0), (vuint16mf4_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint16mf4_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (size_t)(op11))
-#define vsoxseg2ei32_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f64m2((double *)(op0), (vuint32m1_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint32m1_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f64m4((double *)(op0), (vuint32m2_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint32m2_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_f64m2((double *)(op0), (vuint32m1_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint32m1_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_f64m2((double *)(op0), (vuint32m1_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint32m1_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_f64m1((double *)(op0), (vuint32mf2_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint32mf2_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (size_t)(op11))
-#define vsoxseg2ei64_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_f64m2((double *)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_f64m4((double *)(op0), (vuint64m4_t)(op1), (vfloat64m4_t)(op2), (vfloat64m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_f64m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_f64m4_m((vbool16_t)(op0), (double *)(op1), (vuint64m4_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_f64m2((double *)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_f64m2((double *)(op0), (vuint64m2_t)(op1), (vfloat64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_f64m2_m((vbool32_t)(op0), (double *)(op1), (vuint64m2_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_f64m1((double *)(op0), (vuint64m1_t)(op1), (vfloat64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_f64m1_m((vbool64_t)(op0), (double *)(op1), (vuint64m1_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (size_t)(op11))
-#define vlseg2e64_v_f64m1(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (const double *)(op2), (size_t)(op3))
-#define vlseg2e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vbool64_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (const double *)(op5), (size_t)(op6))
-#define vlseg2e64_v_f64m2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (const double *)(op2), (size_t)(op3))
-#define vlseg2e64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vbool32_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (const double *)(op5), (size_t)(op6))
-#define vlseg2e64_v_f64m4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e64_v_f64m4((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (const double *)(op2), (size_t)(op3))
-#define vlseg2e64_v_f64m4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e64_v_f64m4_m((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (vbool16_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (const double *)(op5), (size_t)(op6))
-#define vlseg3e64_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (const double *)(op3), (size_t)(op4))
-#define vlseg3e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vbool64_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (const double *)(op7), (size_t)(op8))
-#define vlseg3e64_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (const double *)(op3), (size_t)(op4))
-#define vlseg3e64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vbool32_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (const double *)(op7), (size_t)(op8))
-#define vlseg4e64_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (const double *)(op4), (size_t)(op5))
-#define vlseg4e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vbool64_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (const double *)(op9), (size_t)(op10))
-#define vlseg4e64_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (const double *)(op4), (size_t)(op5))
-#define vlseg4e64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (vbool32_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (vfloat64m2_t)(op7), (vfloat64m2_t)(op8), (const double *)(op9), (size_t)(op10))
-#define vlseg5e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (const double *)(op5), (size_t)(op6))
-#define vlseg5e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vbool64_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (const double *)(op11), (size_t)(op12))
-#define vlseg6e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (const double *)(op6), (size_t)(op7))
-#define vlseg6e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vbool64_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (const double *)(op13), (size_t)(op14))
-#define vlseg7e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (const double *)(op7), (size_t)(op8))
-#define vlseg7e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vbool64_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (const double *)(op15), (size_t)(op16))
-#define vlseg8e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (const double *)(op8), (size_t)(op9))
-#define vlseg8e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (vbool64_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (vfloat64m1_t)(op15), (vfloat64m1_t)(op16), (const double *)(op17), (size_t)(op18))
-#define vlseg2e64ff_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e64ff_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (const double *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e64ff_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e64ff_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vbool64_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (const double *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e64ff_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e64ff_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (const double *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e64ff_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e64ff_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vbool32_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (const double *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e64ff_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e64ff_v_f64m4((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (const double *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e64ff_v_f64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e64ff_v_f64m4_m((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (vbool16_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (const double *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg3e64ff_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e64ff_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (const double *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e64ff_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e64ff_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vbool64_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (const double *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e64ff_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e64ff_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (const double *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e64ff_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e64ff_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vbool32_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (const double *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg4e64ff_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e64ff_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (const double *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e64ff_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e64ff_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vbool64_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (const double *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e64ff_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e64ff_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (const double *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e64ff_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e64ff_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (vbool32_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (vfloat64m2_t)(op7), (vfloat64m2_t)(op8), (const double *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg5e64ff_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e64ff_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (const double *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e64ff_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e64ff_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vbool64_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (const double *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg6e64ff_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e64ff_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (const double *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e64ff_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e64ff_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vbool64_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (const double *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg7e64ff_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e64ff_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (const double *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e64ff_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e64ff_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vbool64_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (const double *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg8e64ff_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e64ff_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (const double *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e64ff_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e64ff_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (vbool64_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (vfloat64m1_t)(op15), (vfloat64m1_t)(op16), (const double *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlsseg2e64_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (const double *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vbool64_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (const double *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e64_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (const double *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vbool32_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (const double *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e64_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e64_v_f64m4((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (const double *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e64_v_f64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e64_v_f64m4_m((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (vbool16_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (const double *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg3e64_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (const double *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vbool64_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (const double *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e64_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (const double *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vbool32_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (const double *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg4e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (const double *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vbool64_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (const double *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e64_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (const double *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (vbool32_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (vfloat64m2_t)(op7), (vfloat64m2_t)(op8), (const double *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg5e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (const double *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vbool64_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (const double *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg6e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (const double *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vbool64_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (const double *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg7e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (const double *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vbool64_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (const double *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg8e64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (const double *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (vbool64_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (vfloat64m1_t)(op15), (vfloat64m1_t)(op16), (const double *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vluxseg2ei8_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (const double *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vbool64_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (const double *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (const double *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vbool32_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (const double *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f64m4((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (const double *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f64m4_m((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (vbool16_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (const double *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg3ei8_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (const double *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vbool64_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (const double *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (const double *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vbool32_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (const double *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg4ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (const double *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vbool64_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (const double *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (const double *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (vbool32_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (vfloat64m2_t)(op7), (vfloat64m2_t)(op8), (const double *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vluxseg5ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (const double *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vbool64_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (const double *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vluxseg6ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (const double *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vbool64_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (const double *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vluxseg7ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (const double *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vbool64_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (const double *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vluxseg8ei8_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (const double *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (vbool64_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (vfloat64m1_t)(op15), (vfloat64m1_t)(op16), (const double *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vluxseg2ei16_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (const double *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vbool64_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (const double *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (const double *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vbool32_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (const double *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f64m4((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (const double *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f64m4_m((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (vbool16_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (const double *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg3ei16_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (const double *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vbool64_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (const double *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (const double *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vbool32_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (const double *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg4ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (const double *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vbool64_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (const double *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (const double *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (vbool32_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (vfloat64m2_t)(op7), (vfloat64m2_t)(op8), (const double *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vluxseg5ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (const double *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vbool64_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (const double *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vluxseg6ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (const double *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vbool64_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (const double *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vluxseg7ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (const double *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vbool64_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (const double *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vluxseg8ei16_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (const double *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (vbool64_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (vfloat64m1_t)(op15), (vfloat64m1_t)(op16), (const double *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vluxseg2ei32_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (const double *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vbool64_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (const double *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (const double *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vbool32_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (const double *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f64m4((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (const double *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f64m4_m((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (vbool16_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (const double *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg3ei32_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (const double *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vbool64_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (const double *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (const double *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vbool32_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (const double *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg4ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (const double *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vbool64_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (const double *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (const double *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (vbool32_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (vfloat64m2_t)(op7), (vfloat64m2_t)(op8), (const double *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vluxseg5ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (const double *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vbool64_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (const double *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vluxseg6ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (const double *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vbool64_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (const double *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vluxseg7ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (const double *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vbool64_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (const double *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vluxseg8ei32_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (const double *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (vbool64_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (vfloat64m1_t)(op15), (vfloat64m1_t)(op16), (const double *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vluxseg2ei64_v_f64m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (const double *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vbool64_t)(op2), (vfloat64m1_t)(op3), (vfloat64m1_t)(op4), (const double *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_f64m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (const double *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vbool32_t)(op2), (vfloat64m2_t)(op3), (vfloat64m2_t)(op4), (const double *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_f64m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_f64m4((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (const double *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_f64m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_f64m4_m((vfloat64m4_t *)(op0), (vfloat64m4_t *)(op1), (vbool16_t)(op2), (vfloat64m4_t)(op3), (vfloat64m4_t)(op4), (const double *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg3ei64_v_f64m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (const double *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vbool64_t)(op3), (vfloat64m1_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (const double *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_f64m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (const double *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vbool32_t)(op3), (vfloat64m2_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (const double *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg4ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (const double *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vbool64_t)(op4), (vfloat64m1_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (const double *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_f64m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_f64m2((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (const double *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_f64m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_f64m2_m((vfloat64m2_t *)(op0), (vfloat64m2_t *)(op1), (vfloat64m2_t *)(op2), (vfloat64m2_t *)(op3), (vbool32_t)(op4), (vfloat64m2_t)(op5), (vfloat64m2_t)(op6), (vfloat64m2_t)(op7), (vfloat64m2_t)(op8), (const double *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vluxseg5ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (const double *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vbool64_t)(op5), (vfloat64m1_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (const double *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vluxseg6ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (const double *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vbool64_t)(op6), (vfloat64m1_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (const double *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vluxseg7ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (const double *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vbool64_t)(op7), (vfloat64m1_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (const double *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vluxseg8ei64_v_f64m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_f64m1((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (const double *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_f64m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_f64m1_m((vfloat64m1_t *)(op0), (vfloat64m1_t *)(op1), (vfloat64m1_t *)(op2), (vfloat64m1_t *)(op3), (vfloat64m1_t *)(op4), (vfloat64m1_t *)(op5), (vfloat64m1_t *)(op6), (vfloat64m1_t *)(op7), (vbool64_t)(op8), (vfloat64m1_t)(op9), (vfloat64m1_t)(op10), (vfloat64m1_t)(op11), (vfloat64m1_t)(op12), (vfloat64m1_t)(op13), (vfloat64m1_t)(op14), (vfloat64m1_t)(op15), (vfloat64m1_t)(op16), (const double *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#endif
-
-#if defined(__riscv_zfh) && defined(__riscv_zvlsseg)
-#define vloxseg2ei8_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (const _Float16 *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vbool16_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (const _Float16 *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (const _Float16 *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vbool8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (const _Float16 *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f16m4((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (const _Float16 *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f16m4_m((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (vbool4_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (const _Float16 *)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (const _Float16 *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vbool32_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (const _Float16 *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg2ei8_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (const _Float16 *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vloxseg2ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vbool64_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (const _Float16 *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg3ei8_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (const _Float16 *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vbool16_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (const _Float16 *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (const _Float16 *)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vbool8_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (const _Float16 *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (const _Float16 *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vbool32_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (const _Float16 *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg3ei8_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (const _Float16 *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vloxseg3ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vbool64_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (const _Float16 *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg4ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (const _Float16 *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vbool16_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (const _Float16 *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (const _Float16 *)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (vbool8_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (vfloat16m2_t)(op7), (vfloat16m2_t)(op8), (const _Float16 *)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (const _Float16 *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vbool32_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (const _Float16 *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vloxseg4ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (const _Float16 *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vloxseg4ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vbool64_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (const _Float16 *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vloxseg5ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (const _Float16 *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vbool16_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (const _Float16 *)(op11), (vuint8mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (const _Float16 *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vbool32_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (const _Float16 *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vloxseg5ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (const _Float16 *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vloxseg5ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vbool64_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (const _Float16 *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vloxseg6ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (const _Float16 *)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vbool16_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (const _Float16 *)(op13), (vuint8mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (const _Float16 *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vbool32_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (const _Float16 *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vloxseg6ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (const _Float16 *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vloxseg6ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vbool64_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (const _Float16 *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vloxseg7ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (const _Float16 *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vbool16_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (const _Float16 *)(op15), (vuint8mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (const _Float16 *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vbool32_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (const _Float16 *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vloxseg7ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (const _Float16 *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vloxseg7ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vbool64_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (const _Float16 *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vloxseg8ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (const _Float16 *)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (vbool16_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (vfloat16m1_t)(op15), (vfloat16m1_t)(op16), (const _Float16 *)(op17), (vuint8mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (const _Float16 *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (vbool32_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (vfloat16mf2_t)(op15), (vfloat16mf2_t)(op16), (const _Float16 *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vloxseg8ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (const _Float16 *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vloxseg8ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (vbool64_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (vfloat16mf4_t)(op15), (vfloat16mf4_t)(op16), (const _Float16 *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vloxseg2ei16_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (const _Float16 *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vbool16_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (const _Float16 *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (const _Float16 *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vbool8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (const _Float16 *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f16m4((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (const _Float16 *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f16m4_m((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (vbool4_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (const _Float16 *)(op5), (vuint16m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (const _Float16 *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vbool32_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (const _Float16 *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg2ei16_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (const _Float16 *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vloxseg2ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vbool64_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (const _Float16 *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg3ei16_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (const _Float16 *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vbool16_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (const _Float16 *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (const _Float16 *)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vbool8_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (const _Float16 *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (const _Float16 *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vbool32_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (const _Float16 *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg3ei16_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (const _Float16 *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vloxseg3ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vbool64_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (const _Float16 *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg4ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (const _Float16 *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vbool16_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (const _Float16 *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (const _Float16 *)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (vbool8_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (vfloat16m2_t)(op7), (vfloat16m2_t)(op8), (const _Float16 *)(op9), (vuint16m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (const _Float16 *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vbool32_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (const _Float16 *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vloxseg4ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (const _Float16 *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vloxseg4ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vbool64_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (const _Float16 *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vloxseg5ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (const _Float16 *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vbool16_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (const _Float16 *)(op11), (vuint16m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (const _Float16 *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vbool32_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (const _Float16 *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vloxseg5ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (const _Float16 *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vloxseg5ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vbool64_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (const _Float16 *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vloxseg6ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (const _Float16 *)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vbool16_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (const _Float16 *)(op13), (vuint16m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (const _Float16 *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vbool32_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (const _Float16 *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vloxseg6ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (const _Float16 *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vloxseg6ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vbool64_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (const _Float16 *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vloxseg7ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (const _Float16 *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vbool16_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (const _Float16 *)(op15), (vuint16m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (const _Float16 *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vbool32_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (const _Float16 *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vloxseg7ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (const _Float16 *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vloxseg7ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vbool64_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (const _Float16 *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vloxseg8ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (const _Float16 *)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (vbool16_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (vfloat16m1_t)(op15), (vfloat16m1_t)(op16), (const _Float16 *)(op17), (vuint16m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (const _Float16 *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (vbool32_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (vfloat16mf2_t)(op15), (vfloat16mf2_t)(op16), (const _Float16 *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vloxseg8ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (const _Float16 *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vloxseg8ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (vbool64_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (vfloat16mf4_t)(op15), (vfloat16mf4_t)(op16), (const _Float16 *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vloxseg2ei32_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (const _Float16 *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vbool16_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (const _Float16 *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (const _Float16 *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vbool8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (const _Float16 *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f16m4((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (const _Float16 *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f16m4_m((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (vbool4_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (const _Float16 *)(op5), (vuint32m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (const _Float16 *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vbool32_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (const _Float16 *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg2ei32_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (const _Float16 *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vloxseg2ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vbool64_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (const _Float16 *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg3ei32_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (const _Float16 *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vbool16_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (const _Float16 *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (const _Float16 *)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vbool8_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (const _Float16 *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (const _Float16 *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vbool32_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (const _Float16 *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg3ei32_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (const _Float16 *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vloxseg3ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vbool64_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (const _Float16 *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg4ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (const _Float16 *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vbool16_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (const _Float16 *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (const _Float16 *)(op4), (vuint32m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (vbool8_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (vfloat16m2_t)(op7), (vfloat16m2_t)(op8), (const _Float16 *)(op9), (vuint32m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (const _Float16 *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vbool32_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (const _Float16 *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vloxseg4ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (const _Float16 *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vloxseg4ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vbool64_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (const _Float16 *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vloxseg5ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (const _Float16 *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vbool16_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (const _Float16 *)(op11), (vuint32m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (const _Float16 *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vbool32_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (const _Float16 *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vloxseg5ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (const _Float16 *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vloxseg5ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vbool64_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (const _Float16 *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vloxseg6ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (const _Float16 *)(op6), (vuint32m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vbool16_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (const _Float16 *)(op13), (vuint32m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (const _Float16 *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vbool32_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (const _Float16 *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vloxseg6ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (const _Float16 *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vloxseg6ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vbool64_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (const _Float16 *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vloxseg7ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (const _Float16 *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vbool16_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (const _Float16 *)(op15), (vuint32m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (const _Float16 *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vbool32_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (const _Float16 *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vloxseg7ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (const _Float16 *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vloxseg7ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vbool64_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (const _Float16 *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vloxseg8ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (const _Float16 *)(op8), (vuint32m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (vbool16_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (vfloat16m1_t)(op15), (vfloat16m1_t)(op16), (const _Float16 *)(op17), (vuint32m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (const _Float16 *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (vbool32_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (vfloat16mf2_t)(op15), (vfloat16mf2_t)(op16), (const _Float16 *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vloxseg8ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (const _Float16 *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vloxseg8ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (vbool64_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (vfloat16mf4_t)(op15), (vfloat16mf4_t)(op16), (const _Float16 *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vloxseg2ei64_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (const _Float16 *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vbool16_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (const _Float16 *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (const _Float16 *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vbool8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (const _Float16 *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (const _Float16 *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vbool32_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (const _Float16 *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg2ei64_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vloxseg2ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (const _Float16 *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vloxseg2ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg2ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vbool64_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (const _Float16 *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg3ei64_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (const _Float16 *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vbool16_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (const _Float16 *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (const _Float16 *)(op3), (vuint64m8_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vbool8_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (const _Float16 *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (const _Float16 *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vbool32_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (const _Float16 *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg3ei64_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vloxseg3ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (const _Float16 *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vloxseg3ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg3ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vbool64_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (const _Float16 *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg4ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (const _Float16 *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vbool16_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (const _Float16 *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (const _Float16 *)(op4), (vuint64m8_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (vbool8_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (vfloat16m2_t)(op7), (vfloat16m2_t)(op8), (const _Float16 *)(op9), (vuint64m8_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (const _Float16 *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vbool32_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (const _Float16 *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vloxseg4ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vloxseg4ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (const _Float16 *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vloxseg4ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vloxseg4ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vbool64_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (const _Float16 *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vloxseg5ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (const _Float16 *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vbool16_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (const _Float16 *)(op11), (vuint64m4_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (const _Float16 *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vbool32_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (const _Float16 *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vloxseg5ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vloxseg5ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (const _Float16 *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vloxseg5ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vloxseg5ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vbool64_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (const _Float16 *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vloxseg6ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (const _Float16 *)(op6), (vuint64m4_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vbool16_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (const _Float16 *)(op13), (vuint64m4_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (const _Float16 *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vbool32_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (const _Float16 *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vloxseg6ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vloxseg6ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (const _Float16 *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vloxseg6ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vloxseg6ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vbool64_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (const _Float16 *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vloxseg7ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (const _Float16 *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vbool16_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (const _Float16 *)(op15), (vuint64m4_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (const _Float16 *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vbool32_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (const _Float16 *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vloxseg7ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vloxseg7ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (const _Float16 *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vloxseg7ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vloxseg7ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vbool64_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (const _Float16 *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vloxseg8ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (const _Float16 *)(op8), (vuint64m4_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (vbool16_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (vfloat16m1_t)(op15), (vfloat16m1_t)(op16), (const _Float16 *)(op17), (vuint64m4_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (const _Float16 *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (vbool32_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (vfloat16mf2_t)(op15), (vfloat16mf2_t)(op16), (const _Float16 *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vloxseg8ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vloxseg8ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (const _Float16 *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vloxseg8ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vloxseg8ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (vbool64_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (vfloat16mf4_t)(op15), (vfloat16mf4_t)(op16), (const _Float16 *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#define vsseg2e16_v_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_f16m1((_Float16 *)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_f16m1_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_f16m2((_Float16 *)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_f16m2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_f16m4((_Float16 *)(op0), (vfloat16m4_t)(op1), (vfloat16m4_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_f16m4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_f16mf2((_Float16 *)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_f16mf2_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsseg2e16_v_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vsseg2e16_v_f16mf4((_Float16 *)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (size_t)(op3))
-#define vsseg2e16_v_f16mf4_m(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg2e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_f16m1((_Float16 *)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_f16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsseg3e16_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_f16m2((_Float16 *)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_f16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsseg3e16_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_f16mf2((_Float16 *)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsseg3e16_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsseg3e16_v_f16mf4((_Float16 *)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsseg3e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg3e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_f16m1((_Float16 *)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsseg4e16_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_f16m2((_Float16 *)(op0), (vfloat16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsseg4e16_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_f16mf2((_Float16 *)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsseg4e16_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsseg4e16_v_f16mf4((_Float16 *)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsseg4e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg4e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsseg5e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e16_v_f16m1((_Float16 *)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsseg5e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsseg5e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e16_v_f16mf2((_Float16 *)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsseg5e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsseg5e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsseg5e16_v_f16mf4((_Float16 *)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsseg5e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg5e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsseg6e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e16_v_f16m1((_Float16 *)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsseg6e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsseg6e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e16_v_f16mf2((_Float16 *)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsseg6e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsseg6e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsseg6e16_v_f16mf4((_Float16 *)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsseg6e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg6e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsseg7e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e16_v_f16m1((_Float16 *)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsseg7e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsseg7e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e16_v_f16mf2((_Float16 *)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsseg7e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsseg7e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsseg7e16_v_f16mf4((_Float16 *)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsseg7e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg7e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsseg8e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e16_v_f16m1((_Float16 *)(op0), (vfloat16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsseg8e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsseg8e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e16_v_f16mf2((_Float16 *)(op0), (vfloat16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsseg8e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsseg8e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsseg8e16_v_f16mf4((_Float16 *)(op0), (vfloat16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsseg8e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsseg8e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vssseg2e16_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_f16m1((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_f16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_f16m2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_f16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_f16m4((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_f16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_f16mf2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vssseg2e16_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vssseg2e16_v_f16mf4((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vssseg2e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg2e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_f16m1((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vssseg3e16_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_f16m2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vssseg3e16_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_f16mf2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vssseg3e16_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vssseg3e16_v_f16mf4((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vssseg3e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg3e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_f16m1((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vssseg4e16_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_f16m2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (size_t)(op7))
-#define vssseg4e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_f16mf2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vssseg4e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vssseg4e16_v_f16mf4((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vssseg4e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg4e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vssseg5e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e16_v_f16m1((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vssseg5e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vssseg5e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e16_v_f16mf2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vssseg5e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vssseg5e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vssseg5e16_v_f16mf4((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vssseg5e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg5e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vssseg6e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e16_v_f16m1((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vssseg6e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vssseg6e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e16_v_f16mf2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vssseg6e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vssseg6e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vssseg6e16_v_f16mf4((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vssseg6e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg6e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vssseg7e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e16_v_f16m1((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vssseg7e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vssseg7e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e16_v_f16mf2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vssseg7e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vssseg7e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vssseg7e16_v_f16mf4((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vssseg7e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg7e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vssseg8e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e16_v_f16m1((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vssseg8e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (size_t)(op11))
-#define vssseg8e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e16_v_f16mf2((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vssseg8e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (size_t)(op11))
-#define vssseg8e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vssseg8e16_v_f16mf4((_Float16 *)(op0), (ptrdiff_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vssseg8e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vssseg8e16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (ptrdiff_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg2ei8_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f16m2((_Float16 *)(op0), (vuint8m1_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint8m1_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f16m4((_Float16 *)(op0), (vuint8m2_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint8m2_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei8_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_f16m2((_Float16 *)(op0), (vuint8m1_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint8m1_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei8_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_f16m2((_Float16 *)(op0), (vuint8m1_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint8m1_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg2ei16_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f16m2((_Float16 *)(op0), (vuint16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f16m4((_Float16 *)(op0), (vuint16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint16m4_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei16_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_f16m2((_Float16 *)(op0), (vuint16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei16_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_f16m2((_Float16 *)(op0), (vuint16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg2ei32_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f16m2((_Float16 *)(op0), (vuint32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint32m4_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f16m4((_Float16 *)(op0), (vuint32m8_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint32m8_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei32_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_f16m2((_Float16 *)(op0), (vuint32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint32m4_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei32_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_f16m2((_Float16 *)(op0), (vuint32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint32m4_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (size_t)(op11))
-#define vsuxseg2ei64_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_f16m2((_Float16 *)(op0), (vuint64m8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint64m8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg2ei64_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsuxseg2ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsuxseg2ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg2ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_f16m2((_Float16 *)(op0), (vuint64m8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint64m8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg3ei64_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsuxseg3ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsuxseg3ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg3ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_f16m2((_Float16 *)(op0), (vuint64m8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint64m8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg4ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsuxseg4ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsuxseg4ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg4ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg5ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsuxseg5ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsuxseg5ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg5ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg6ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsuxseg6ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsuxseg6ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg6ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg7ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsuxseg7ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsuxseg7ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg7ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (size_t)(op11))
-#define vsuxseg8ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsuxseg8ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsuxseg8ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsuxseg8ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg2ei8_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f16m2((_Float16 *)(op0), (vuint8m1_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint8m1_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f16m4((_Float16 *)(op0), (vuint8m2_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint8m2_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei8_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_f16m2((_Float16 *)(op0), (vuint8m1_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint8m1_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei8_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_f16m2((_Float16 *)(op0), (vuint8m1_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint8m1_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_f16m1((_Float16 *)(op0), (vuint8mf2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint8mf2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_f16mf2((_Float16 *)(op0), (vuint8mf4_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint8mf4_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei8_v_f16mf4((_Float16 *)(op0), (vuint8mf8_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei8_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint8mf8_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg2ei16_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f16m2((_Float16 *)(op0), (vuint16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f16m4((_Float16 *)(op0), (vuint16m4_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint16m4_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei16_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_f16m2((_Float16 *)(op0), (vuint16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei16_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_f16m2((_Float16 *)(op0), (vuint16m2_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_f16m1((_Float16 *)(op0), (vuint16m1_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_f16mf2((_Float16 *)(op0), (vuint16mf2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei16_v_f16mf4((_Float16 *)(op0), (vuint16mf4_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei16_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg2ei32_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f16m2((_Float16 *)(op0), (vuint32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint32m4_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f16m4((_Float16 *)(op0), (vuint32m8_t)(op1), (vfloat16m4_t)(op2), (vfloat16m4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f16m4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f16m4_m((vbool4_t)(op0), (_Float16 *)(op1), (vuint32m8_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei32_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_f16m2((_Float16 *)(op0), (vuint32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint32m4_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei32_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_f16m2((_Float16 *)(op0), (vuint32m4_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint32m4_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_f16m1((_Float16 *)(op0), (vuint32m2_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint32m2_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_f16mf2((_Float16 *)(op0), (vuint32m1_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint32m1_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei32_v_f16mf4((_Float16 *)(op0), (vuint32mf2_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei32_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint32mf2_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (size_t)(op11))
-#define vsoxseg2ei64_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_f16m2((_Float16 *)(op0), (vuint64m8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint64m8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg2ei64_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vsoxseg2ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (size_t)(op4))
-#define vsoxseg2ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg2ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_f16m2((_Float16 *)(op0), (vuint64m8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint64m8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg3ei64_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vsoxseg3ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (size_t)(op5))
-#define vsoxseg3ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg3ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_f16m2((_Float16 *)(op0), (vuint64m8_t)(op1), (vfloat16m2_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_f16m2_m((vbool8_t)(op0), (_Float16 *)(op1), (vuint64m8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg4ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vsoxseg4ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (size_t)(op6))
-#define vsoxseg4ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg4ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg5ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vsoxseg5ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (size_t)(op7))
-#define vsoxseg5ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg5ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg6ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vsoxseg6ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (size_t)(op8))
-#define vsoxseg6ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg6ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg7ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vsoxseg7ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (size_t)(op9))
-#define vsoxseg7ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg7ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_f16m1((_Float16 *)(op0), (vuint64m4_t)(op1), (vfloat16m1_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_f16m1_m((vbool16_t)(op0), (_Float16 *)(op1), (vuint64m4_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_f16mf2((_Float16 *)(op0), (vuint64m2_t)(op1), (vfloat16mf2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_f16mf2_m((vbool32_t)(op0), (_Float16 *)(op1), (vuint64m2_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (size_t)(op11))
-#define vsoxseg8ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vsoxseg8ei64_v_f16mf4((_Float16 *)(op0), (vuint64m1_t)(op1), (vfloat16mf4_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (size_t)(op10))
-#define vsoxseg8ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vsoxseg8ei64_v_f16mf4_m((vbool64_t)(op0), (_Float16 *)(op1), (vuint64m1_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (size_t)(op11))
-#define vlseg2e16_v_f16m1(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (const _Float16 *)(op2), (size_t)(op3))
-#define vlseg2e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vbool16_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (const _Float16 *)(op5), (size_t)(op6))
-#define vlseg2e16_v_f16m2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (const _Float16 *)(op2), (size_t)(op3))
-#define vlseg2e16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vbool8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (const _Float16 *)(op5), (size_t)(op6))
-#define vlseg2e16_v_f16m4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_f16m4((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (const _Float16 *)(op2), (size_t)(op3))
-#define vlseg2e16_v_f16m4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_f16m4_m((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (vbool4_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (const _Float16 *)(op5), (size_t)(op6))
-#define vlseg2e16_v_f16mf2(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (const _Float16 *)(op2), (size_t)(op3))
-#define vlseg2e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vbool32_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (const _Float16 *)(op5), (size_t)(op6))
-#define vlseg2e16_v_f16mf4(op0, op1, op2, op3) \
-__builtin_rvv_vlseg2e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (const _Float16 *)(op2), (size_t)(op3))
-#define vlseg2e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg2e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vbool64_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (const _Float16 *)(op5), (size_t)(op6))
-#define vlseg3e16_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (const _Float16 *)(op3), (size_t)(op4))
-#define vlseg3e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vbool16_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (const _Float16 *)(op7), (size_t)(op8))
-#define vlseg3e16_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (const _Float16 *)(op3), (size_t)(op4))
-#define vlseg3e16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vbool8_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (const _Float16 *)(op7), (size_t)(op8))
-#define vlseg3e16_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (const _Float16 *)(op3), (size_t)(op4))
-#define vlseg3e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vbool32_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (const _Float16 *)(op7), (size_t)(op8))
-#define vlseg3e16_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg3e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (const _Float16 *)(op3), (size_t)(op4))
-#define vlseg3e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg3e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vbool64_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (const _Float16 *)(op7), (size_t)(op8))
-#define vlseg4e16_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (const _Float16 *)(op4), (size_t)(op5))
-#define vlseg4e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vbool16_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (const _Float16 *)(op9), (size_t)(op10))
-#define vlseg4e16_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (const _Float16 *)(op4), (size_t)(op5))
-#define vlseg4e16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (vbool8_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (vfloat16m2_t)(op7), (vfloat16m2_t)(op8), (const _Float16 *)(op9), (size_t)(op10))
-#define vlseg4e16_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (const _Float16 *)(op4), (size_t)(op5))
-#define vlseg4e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vbool32_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (const _Float16 *)(op9), (size_t)(op10))
-#define vlseg4e16_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg4e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (const _Float16 *)(op4), (size_t)(op5))
-#define vlseg4e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg4e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vbool64_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (const _Float16 *)(op9), (size_t)(op10))
-#define vlseg5e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (const _Float16 *)(op5), (size_t)(op6))
-#define vlseg5e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vbool16_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (const _Float16 *)(op11), (size_t)(op12))
-#define vlseg5e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (const _Float16 *)(op5), (size_t)(op6))
-#define vlseg5e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vbool32_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (const _Float16 *)(op11), (size_t)(op12))
-#define vlseg5e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg5e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (const _Float16 *)(op5), (size_t)(op6))
-#define vlseg5e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12) \
-__builtin_rvv_vlseg5e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vbool64_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (const _Float16 *)(op11), (size_t)(op12))
-#define vlseg6e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (const _Float16 *)(op6), (size_t)(op7))
-#define vlseg6e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vbool16_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (const _Float16 *)(op13), (size_t)(op14))
-#define vlseg6e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (const _Float16 *)(op6), (size_t)(op7))
-#define vlseg6e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vbool32_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (const _Float16 *)(op13), (size_t)(op14))
-#define vlseg6e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg6e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (const _Float16 *)(op6), (size_t)(op7))
-#define vlseg6e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14) \
-__builtin_rvv_vlseg6e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vbool64_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (const _Float16 *)(op13), (size_t)(op14))
-#define vlseg7e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (const _Float16 *)(op7), (size_t)(op8))
-#define vlseg7e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vbool16_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (const _Float16 *)(op15), (size_t)(op16))
-#define vlseg7e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (const _Float16 *)(op7), (size_t)(op8))
-#define vlseg7e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vbool32_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (const _Float16 *)(op15), (size_t)(op16))
-#define vlseg7e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg7e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (const _Float16 *)(op7), (size_t)(op8))
-#define vlseg7e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16) \
-__builtin_rvv_vlseg7e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vbool64_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (const _Float16 *)(op15), (size_t)(op16))
-#define vlseg8e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (const _Float16 *)(op8), (size_t)(op9))
-#define vlseg8e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (vbool16_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (vfloat16m1_t)(op15), (vfloat16m1_t)(op16), (const _Float16 *)(op17), (size_t)(op18))
-#define vlseg8e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (const _Float16 *)(op8), (size_t)(op9))
-#define vlseg8e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (vbool32_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (vfloat16mf2_t)(op15), (vfloat16mf2_t)(op16), (const _Float16 *)(op17), (size_t)(op18))
-#define vlseg8e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg8e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (const _Float16 *)(op8), (size_t)(op9))
-#define vlseg8e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18) \
-__builtin_rvv_vlseg8e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (vbool64_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (vfloat16mf4_t)(op15), (vfloat16mf4_t)(op16), (const _Float16 *)(op17), (size_t)(op18))
-#define vlseg2e16ff_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (const _Float16 *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vbool16_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (const _Float16 *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (const _Float16 *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vbool8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (const _Float16 *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_f16m4((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (const _Float16 *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_f16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_f16m4_m((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (vbool4_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (const _Float16 *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (const _Float16 *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vbool32_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (const _Float16 *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg2e16ff_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlseg2e16ff_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (const _Float16 *)(op2), (size_t *)(op3), (size_t)(op4))
-#define vlseg2e16ff_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg2e16ff_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vbool64_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (const _Float16 *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg3e16ff_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (const _Float16 *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vbool16_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (const _Float16 *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e16ff_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (const _Float16 *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vbool8_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (const _Float16 *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e16ff_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (const _Float16 *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vbool32_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (const _Float16 *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg3e16ff_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlseg3e16ff_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (const _Float16 *)(op3), (size_t *)(op4), (size_t)(op5))
-#define vlseg3e16ff_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg3e16ff_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vbool64_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (const _Float16 *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg4e16ff_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (const _Float16 *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vbool16_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (const _Float16 *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e16ff_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (const _Float16 *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (vbool8_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (vfloat16m2_t)(op7), (vfloat16m2_t)(op8), (const _Float16 *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e16ff_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (const _Float16 *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vbool32_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (const _Float16 *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg4e16ff_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlseg4e16ff_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (const _Float16 *)(op4), (size_t *)(op5), (size_t)(op6))
-#define vlseg4e16ff_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlseg4e16ff_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vbool64_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (const _Float16 *)(op9), (size_t *)(op10), (size_t)(op11))
-#define vlseg5e16ff_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e16ff_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (const _Float16 *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e16ff_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e16ff_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vbool16_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (const _Float16 *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e16ff_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e16ff_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (const _Float16 *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e16ff_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e16ff_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vbool32_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (const _Float16 *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg5e16ff_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlseg5e16ff_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (const _Float16 *)(op5), (size_t *)(op6), (size_t)(op7))
-#define vlseg5e16ff_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlseg5e16ff_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vbool64_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (const _Float16 *)(op11), (size_t *)(op12), (size_t)(op13))
-#define vlseg6e16ff_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e16ff_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (const _Float16 *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e16ff_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e16ff_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vbool16_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (const _Float16 *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e16ff_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e16ff_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (const _Float16 *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e16ff_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e16ff_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vbool32_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (const _Float16 *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg6e16ff_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlseg6e16ff_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (const _Float16 *)(op6), (size_t *)(op7), (size_t)(op8))
-#define vlseg6e16ff_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlseg6e16ff_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vbool64_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (const _Float16 *)(op13), (size_t *)(op14), (size_t)(op15))
-#define vlseg7e16ff_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e16ff_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (const _Float16 *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e16ff_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e16ff_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vbool16_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (const _Float16 *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e16ff_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e16ff_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (const _Float16 *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e16ff_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e16ff_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vbool32_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (const _Float16 *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg7e16ff_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlseg7e16ff_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (const _Float16 *)(op7), (size_t *)(op8), (size_t)(op9))
-#define vlseg7e16ff_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlseg7e16ff_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vbool64_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (const _Float16 *)(op15), (size_t *)(op16), (size_t)(op17))
-#define vlseg8e16ff_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e16ff_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (const _Float16 *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e16ff_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e16ff_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (vbool16_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (vfloat16m1_t)(op15), (vfloat16m1_t)(op16), (const _Float16 *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e16ff_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e16ff_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (const _Float16 *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e16ff_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e16ff_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (vbool32_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (vfloat16mf2_t)(op15), (vfloat16mf2_t)(op16), (const _Float16 *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlseg8e16ff_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlseg8e16ff_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (const _Float16 *)(op8), (size_t *)(op9), (size_t)(op10))
-#define vlseg8e16ff_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlseg8e16ff_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (vbool64_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (vfloat16mf4_t)(op15), (vfloat16mf4_t)(op16), (const _Float16 *)(op17), (size_t *)(op18), (size_t)(op19))
-#define vlsseg2e16_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (const _Float16 *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vbool16_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (const _Float16 *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (const _Float16 *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vbool8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (const _Float16 *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_f16m4((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (const _Float16 *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_f16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_f16m4_m((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (vbool4_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (const _Float16 *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (const _Float16 *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vbool32_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (const _Float16 *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg2e16_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vlsseg2e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (const _Float16 *)(op2), (ptrdiff_t)(op3), (size_t)(op4))
-#define vlsseg2e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg2e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vbool64_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (const _Float16 *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg3e16_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (const _Float16 *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vbool16_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (const _Float16 *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e16_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (const _Float16 *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vbool8_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (const _Float16 *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e16_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (const _Float16 *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vbool32_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (const _Float16 *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg3e16_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vlsseg3e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (const _Float16 *)(op3), (ptrdiff_t)(op4), (size_t)(op5))
-#define vlsseg3e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg3e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vbool64_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (const _Float16 *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg4e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (const _Float16 *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vbool16_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (const _Float16 *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e16_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (const _Float16 *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (vbool8_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (vfloat16m2_t)(op7), (vfloat16m2_t)(op8), (const _Float16 *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (const _Float16 *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vbool32_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (const _Float16 *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg4e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vlsseg4e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (const _Float16 *)(op4), (ptrdiff_t)(op5), (size_t)(op6))
-#define vlsseg4e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vlsseg4e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vbool64_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (const _Float16 *)(op9), (ptrdiff_t)(op10), (size_t)(op11))
-#define vlsseg5e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (const _Float16 *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vbool16_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (const _Float16 *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (const _Float16 *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vbool32_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (const _Float16 *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg5e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vlsseg5e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (const _Float16 *)(op5), (ptrdiff_t)(op6), (size_t)(op7))
-#define vlsseg5e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vlsseg5e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vbool64_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (const _Float16 *)(op11), (ptrdiff_t)(op12), (size_t)(op13))
-#define vlsseg6e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (const _Float16 *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vbool16_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (const _Float16 *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (const _Float16 *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vbool32_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (const _Float16 *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg6e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vlsseg6e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (const _Float16 *)(op6), (ptrdiff_t)(op7), (size_t)(op8))
-#define vlsseg6e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vlsseg6e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vbool64_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (const _Float16 *)(op13), (ptrdiff_t)(op14), (size_t)(op15))
-#define vlsseg7e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (const _Float16 *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vbool16_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (const _Float16 *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (const _Float16 *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vbool32_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (const _Float16 *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg7e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vlsseg7e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (const _Float16 *)(op7), (ptrdiff_t)(op8), (size_t)(op9))
-#define vlsseg7e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vlsseg7e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vbool64_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (const _Float16 *)(op15), (ptrdiff_t)(op16), (size_t)(op17))
-#define vlsseg8e16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (const _Float16 *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (vbool16_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (vfloat16m1_t)(op15), (vfloat16m1_t)(op16), (const _Float16 *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (const _Float16 *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (vbool32_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (vfloat16mf2_t)(op15), (vfloat16mf2_t)(op16), (const _Float16 *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vlsseg8e16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vlsseg8e16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (const _Float16 *)(op8), (ptrdiff_t)(op9), (size_t)(op10))
-#define vlsseg8e16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vlsseg8e16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (vbool64_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (vfloat16mf4_t)(op15), (vfloat16mf4_t)(op16), (const _Float16 *)(op17), (ptrdiff_t)(op18), (size_t)(op19))
-#define vluxseg2ei8_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (const _Float16 *)(op2), (vuint8mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vbool16_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (const _Float16 *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (const _Float16 *)(op2), (vuint8m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vbool8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (const _Float16 *)(op5), (vuint8m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f16m4((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (const _Float16 *)(op2), (vuint8m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f16m4_m((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (vbool4_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (const _Float16 *)(op5), (vuint8m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (const _Float16 *)(op2), (vuint8mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vbool32_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (const _Float16 *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg2ei8_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (const _Float16 *)(op2), (vuint8mf8_t)(op3), (size_t)(op4))
-#define vluxseg2ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vbool64_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (const _Float16 *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg3ei8_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (const _Float16 *)(op3), (vuint8mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vbool16_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (const _Float16 *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (const _Float16 *)(op3), (vuint8m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vbool8_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (const _Float16 *)(op7), (vuint8m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (const _Float16 *)(op3), (vuint8mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vbool32_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (const _Float16 *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg3ei8_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (const _Float16 *)(op3), (vuint8mf8_t)(op4), (size_t)(op5))
-#define vluxseg3ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vbool64_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (const _Float16 *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg4ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (const _Float16 *)(op4), (vuint8mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vbool16_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (const _Float16 *)(op9), (vuint8mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (const _Float16 *)(op4), (vuint8m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (vbool8_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (vfloat16m2_t)(op7), (vfloat16m2_t)(op8), (const _Float16 *)(op9), (vuint8m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (const _Float16 *)(op4), (vuint8mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vbool32_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (const _Float16 *)(op9), (vuint8mf4_t)(op10), (size_t)(op11))
-#define vluxseg4ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (const _Float16 *)(op4), (vuint8mf8_t)(op5), (size_t)(op6))
-#define vluxseg4ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vbool64_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (const _Float16 *)(op9), (vuint8mf8_t)(op10), (size_t)(op11))
-#define vluxseg5ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (const _Float16 *)(op5), (vuint8mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vbool16_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (const _Float16 *)(op11), (vuint8mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (const _Float16 *)(op5), (vuint8mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vbool32_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (const _Float16 *)(op11), (vuint8mf4_t)(op12), (size_t)(op13))
-#define vluxseg5ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (const _Float16 *)(op5), (vuint8mf8_t)(op6), (size_t)(op7))
-#define vluxseg5ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vbool64_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (const _Float16 *)(op11), (vuint8mf8_t)(op12), (size_t)(op13))
-#define vluxseg6ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (const _Float16 *)(op6), (vuint8mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vbool16_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (const _Float16 *)(op13), (vuint8mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (const _Float16 *)(op6), (vuint8mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vbool32_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (const _Float16 *)(op13), (vuint8mf4_t)(op14), (size_t)(op15))
-#define vluxseg6ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (const _Float16 *)(op6), (vuint8mf8_t)(op7), (size_t)(op8))
-#define vluxseg6ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vbool64_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (const _Float16 *)(op13), (vuint8mf8_t)(op14), (size_t)(op15))
-#define vluxseg7ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (const _Float16 *)(op7), (vuint8mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vbool16_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (const _Float16 *)(op15), (vuint8mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (const _Float16 *)(op7), (vuint8mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vbool32_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (const _Float16 *)(op15), (vuint8mf4_t)(op16), (size_t)(op17))
-#define vluxseg7ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (const _Float16 *)(op7), (vuint8mf8_t)(op8), (size_t)(op9))
-#define vluxseg7ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vbool64_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (const _Float16 *)(op15), (vuint8mf8_t)(op16), (size_t)(op17))
-#define vluxseg8ei8_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (const _Float16 *)(op8), (vuint8mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (vbool16_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (vfloat16m1_t)(op15), (vfloat16m1_t)(op16), (const _Float16 *)(op17), (vuint8mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (const _Float16 *)(op8), (vuint8mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (vbool32_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (vfloat16mf2_t)(op15), (vfloat16mf2_t)(op16), (const _Float16 *)(op17), (vuint8mf4_t)(op18), (size_t)(op19))
-#define vluxseg8ei8_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei8_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (const _Float16 *)(op8), (vuint8mf8_t)(op9), (size_t)(op10))
-#define vluxseg8ei8_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei8_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (vbool64_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (vfloat16mf4_t)(op15), (vfloat16mf4_t)(op16), (const _Float16 *)(op17), (vuint8mf8_t)(op18), (size_t)(op19))
-#define vluxseg2ei16_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (const _Float16 *)(op2), (vuint16m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vbool16_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (const _Float16 *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (const _Float16 *)(op2), (vuint16m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vbool8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (const _Float16 *)(op5), (vuint16m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f16m4((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (const _Float16 *)(op2), (vuint16m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f16m4_m((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (vbool4_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (const _Float16 *)(op5), (vuint16m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (const _Float16 *)(op2), (vuint16mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vbool32_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (const _Float16 *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg2ei16_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (const _Float16 *)(op2), (vuint16mf4_t)(op3), (size_t)(op4))
-#define vluxseg2ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vbool64_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (const _Float16 *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg3ei16_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (const _Float16 *)(op3), (vuint16m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vbool16_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (const _Float16 *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (const _Float16 *)(op3), (vuint16m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vbool8_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (const _Float16 *)(op7), (vuint16m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (const _Float16 *)(op3), (vuint16mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vbool32_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (const _Float16 *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg3ei16_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (const _Float16 *)(op3), (vuint16mf4_t)(op4), (size_t)(op5))
-#define vluxseg3ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vbool64_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (const _Float16 *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg4ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (const _Float16 *)(op4), (vuint16m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vbool16_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (const _Float16 *)(op9), (vuint16m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (const _Float16 *)(op4), (vuint16m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (vbool8_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (vfloat16m2_t)(op7), (vfloat16m2_t)(op8), (const _Float16 *)(op9), (vuint16m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (const _Float16 *)(op4), (vuint16mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vbool32_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (const _Float16 *)(op9), (vuint16mf2_t)(op10), (size_t)(op11))
-#define vluxseg4ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (const _Float16 *)(op4), (vuint16mf4_t)(op5), (size_t)(op6))
-#define vluxseg4ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vbool64_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (const _Float16 *)(op9), (vuint16mf4_t)(op10), (size_t)(op11))
-#define vluxseg5ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (const _Float16 *)(op5), (vuint16m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vbool16_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (const _Float16 *)(op11), (vuint16m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (const _Float16 *)(op5), (vuint16mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vbool32_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (const _Float16 *)(op11), (vuint16mf2_t)(op12), (size_t)(op13))
-#define vluxseg5ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (const _Float16 *)(op5), (vuint16mf4_t)(op6), (size_t)(op7))
-#define vluxseg5ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vbool64_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (const _Float16 *)(op11), (vuint16mf4_t)(op12), (size_t)(op13))
-#define vluxseg6ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (const _Float16 *)(op6), (vuint16m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vbool16_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (const _Float16 *)(op13), (vuint16m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (const _Float16 *)(op6), (vuint16mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vbool32_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (const _Float16 *)(op13), (vuint16mf2_t)(op14), (size_t)(op15))
-#define vluxseg6ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (const _Float16 *)(op6), (vuint16mf4_t)(op7), (size_t)(op8))
-#define vluxseg6ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vbool64_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (const _Float16 *)(op13), (vuint16mf4_t)(op14), (size_t)(op15))
-#define vluxseg7ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (const _Float16 *)(op7), (vuint16m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vbool16_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (const _Float16 *)(op15), (vuint16m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (const _Float16 *)(op7), (vuint16mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vbool32_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (const _Float16 *)(op15), (vuint16mf2_t)(op16), (size_t)(op17))
-#define vluxseg7ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (const _Float16 *)(op7), (vuint16mf4_t)(op8), (size_t)(op9))
-#define vluxseg7ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vbool64_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (const _Float16 *)(op15), (vuint16mf4_t)(op16), (size_t)(op17))
-#define vluxseg8ei16_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (const _Float16 *)(op8), (vuint16m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (vbool16_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (vfloat16m1_t)(op15), (vfloat16m1_t)(op16), (const _Float16 *)(op17), (vuint16m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (const _Float16 *)(op8), (vuint16mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (vbool32_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (vfloat16mf2_t)(op15), (vfloat16mf2_t)(op16), (const _Float16 *)(op17), (vuint16mf2_t)(op18), (size_t)(op19))
-#define vluxseg8ei16_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei16_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (const _Float16 *)(op8), (vuint16mf4_t)(op9), (size_t)(op10))
-#define vluxseg8ei16_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei16_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (vbool64_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (vfloat16mf4_t)(op15), (vfloat16mf4_t)(op16), (const _Float16 *)(op17), (vuint16mf4_t)(op18), (size_t)(op19))
-#define vluxseg2ei32_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (const _Float16 *)(op2), (vuint32m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vbool16_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (const _Float16 *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (const _Float16 *)(op2), (vuint32m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vbool8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (const _Float16 *)(op5), (vuint32m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_f16m4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f16m4((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (const _Float16 *)(op2), (vuint32m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f16m4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f16m4_m((vfloat16m4_t *)(op0), (vfloat16m4_t *)(op1), (vbool4_t)(op2), (vfloat16m4_t)(op3), (vfloat16m4_t)(op4), (const _Float16 *)(op5), (vuint32m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (const _Float16 *)(op2), (vuint32m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vbool32_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (const _Float16 *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg2ei32_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (const _Float16 *)(op2), (vuint32mf2_t)(op3), (size_t)(op4))
-#define vluxseg2ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vbool64_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (const _Float16 *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg3ei32_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (const _Float16 *)(op3), (vuint32m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vbool16_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (const _Float16 *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (const _Float16 *)(op3), (vuint32m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vbool8_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (const _Float16 *)(op7), (vuint32m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (const _Float16 *)(op3), (vuint32m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vbool32_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (const _Float16 *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg3ei32_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (const _Float16 *)(op3), (vuint32mf2_t)(op4), (size_t)(op5))
-#define vluxseg3ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vbool64_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (const _Float16 *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg4ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (const _Float16 *)(op4), (vuint32m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vbool16_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (const _Float16 *)(op9), (vuint32m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (const _Float16 *)(op4), (vuint32m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (vbool8_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (vfloat16m2_t)(op7), (vfloat16m2_t)(op8), (const _Float16 *)(op9), (vuint32m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (const _Float16 *)(op4), (vuint32m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vbool32_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (const _Float16 *)(op9), (vuint32m1_t)(op10), (size_t)(op11))
-#define vluxseg4ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (const _Float16 *)(op4), (vuint32mf2_t)(op5), (size_t)(op6))
-#define vluxseg4ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vbool64_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (const _Float16 *)(op9), (vuint32mf2_t)(op10), (size_t)(op11))
-#define vluxseg5ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (const _Float16 *)(op5), (vuint32m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vbool16_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (const _Float16 *)(op11), (vuint32m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (const _Float16 *)(op5), (vuint32m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vbool32_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (const _Float16 *)(op11), (vuint32m1_t)(op12), (size_t)(op13))
-#define vluxseg5ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (const _Float16 *)(op5), (vuint32mf2_t)(op6), (size_t)(op7))
-#define vluxseg5ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vbool64_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (const _Float16 *)(op11), (vuint32mf2_t)(op12), (size_t)(op13))
-#define vluxseg6ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (const _Float16 *)(op6), (vuint32m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vbool16_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (const _Float16 *)(op13), (vuint32m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (const _Float16 *)(op6), (vuint32m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vbool32_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (const _Float16 *)(op13), (vuint32m1_t)(op14), (size_t)(op15))
-#define vluxseg6ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (const _Float16 *)(op6), (vuint32mf2_t)(op7), (size_t)(op8))
-#define vluxseg6ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vbool64_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (const _Float16 *)(op13), (vuint32mf2_t)(op14), (size_t)(op15))
-#define vluxseg7ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (const _Float16 *)(op7), (vuint32m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vbool16_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (const _Float16 *)(op15), (vuint32m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (const _Float16 *)(op7), (vuint32m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vbool32_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (const _Float16 *)(op15), (vuint32m1_t)(op16), (size_t)(op17))
-#define vluxseg7ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (const _Float16 *)(op7), (vuint32mf2_t)(op8), (size_t)(op9))
-#define vluxseg7ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vbool64_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (const _Float16 *)(op15), (vuint32mf2_t)(op16), (size_t)(op17))
-#define vluxseg8ei32_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (const _Float16 *)(op8), (vuint32m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (vbool16_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (vfloat16m1_t)(op15), (vfloat16m1_t)(op16), (const _Float16 *)(op17), (vuint32m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (const _Float16 *)(op8), (vuint32m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (vbool32_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (vfloat16mf2_t)(op15), (vfloat16mf2_t)(op16), (const _Float16 *)(op17), (vuint32m1_t)(op18), (size_t)(op19))
-#define vluxseg8ei32_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei32_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (const _Float16 *)(op8), (vuint32mf2_t)(op9), (size_t)(op10))
-#define vluxseg8ei32_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei32_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (vbool64_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (vfloat16mf4_t)(op15), (vfloat16mf4_t)(op16), (const _Float16 *)(op17), (vuint32mf2_t)(op18), (size_t)(op19))
-#define vluxseg2ei64_v_f16m1(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (const _Float16 *)(op2), (vuint64m4_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vbool16_t)(op2), (vfloat16m1_t)(op3), (vfloat16m1_t)(op4), (const _Float16 *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_f16m2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (const _Float16 *)(op2), (vuint64m8_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vbool8_t)(op2), (vfloat16m2_t)(op3), (vfloat16m2_t)(op4), (const _Float16 *)(op5), (vuint64m8_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_f16mf2(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (const _Float16 *)(op2), (vuint64m2_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vbool32_t)(op2), (vfloat16mf2_t)(op3), (vfloat16mf2_t)(op4), (const _Float16 *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg2ei64_v_f16mf4(op0, op1, op2, op3, op4) \
-__builtin_rvv_vluxseg2ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (const _Float16 *)(op2), (vuint64m1_t)(op3), (size_t)(op4))
-#define vluxseg2ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg2ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vbool64_t)(op2), (vfloat16mf4_t)(op3), (vfloat16mf4_t)(op4), (const _Float16 *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg3ei64_v_f16m1(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (const _Float16 *)(op3), (vuint64m4_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vbool16_t)(op3), (vfloat16m1_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (const _Float16 *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_f16m2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (const _Float16 *)(op3), (vuint64m8_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vbool8_t)(op3), (vfloat16m2_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (const _Float16 *)(op7), (vuint64m8_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_f16mf2(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (const _Float16 *)(op3), (vuint64m2_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vbool32_t)(op3), (vfloat16mf2_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (const _Float16 *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg3ei64_v_f16mf4(op0, op1, op2, op3, op4, op5) \
-__builtin_rvv_vluxseg3ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (const _Float16 *)(op3), (vuint64m1_t)(op4), (size_t)(op5))
-#define vluxseg3ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg3ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vbool64_t)(op3), (vfloat16mf4_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (const _Float16 *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg4ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (const _Float16 *)(op4), (vuint64m4_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vbool16_t)(op4), (vfloat16m1_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (const _Float16 *)(op9), (vuint64m4_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_f16m2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_f16m2((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (const _Float16 *)(op4), (vuint64m8_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_f16m2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_f16m2_m((vfloat16m2_t *)(op0), (vfloat16m2_t *)(op1), (vfloat16m2_t *)(op2), (vfloat16m2_t *)(op3), (vbool8_t)(op4), (vfloat16m2_t)(op5), (vfloat16m2_t)(op6), (vfloat16m2_t)(op7), (vfloat16m2_t)(op8), (const _Float16 *)(op9), (vuint64m8_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (const _Float16 *)(op4), (vuint64m2_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vbool32_t)(op4), (vfloat16mf2_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (const _Float16 *)(op9), (vuint64m2_t)(op10), (size_t)(op11))
-#define vluxseg4ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6) \
-__builtin_rvv_vluxseg4ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (const _Float16 *)(op4), (vuint64m1_t)(op5), (size_t)(op6))
-#define vluxseg4ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11) \
-__builtin_rvv_vluxseg4ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vbool64_t)(op4), (vfloat16mf4_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (const _Float16 *)(op9), (vuint64m1_t)(op10), (size_t)(op11))
-#define vluxseg5ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (const _Float16 *)(op5), (vuint64m4_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vbool16_t)(op5), (vfloat16m1_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (const _Float16 *)(op11), (vuint64m4_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (const _Float16 *)(op5), (vuint64m2_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vbool32_t)(op5), (vfloat16mf2_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (const _Float16 *)(op11), (vuint64m2_t)(op12), (size_t)(op13))
-#define vluxseg5ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7) \
-__builtin_rvv_vluxseg5ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (const _Float16 *)(op5), (vuint64m1_t)(op6), (size_t)(op7))
-#define vluxseg5ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13) \
-__builtin_rvv_vluxseg5ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vbool64_t)(op5), (vfloat16mf4_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (const _Float16 *)(op11), (vuint64m1_t)(op12), (size_t)(op13))
-#define vluxseg6ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (const _Float16 *)(op6), (vuint64m4_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vbool16_t)(op6), (vfloat16m1_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (const _Float16 *)(op13), (vuint64m4_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (const _Float16 *)(op6), (vuint64m2_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vbool32_t)(op6), (vfloat16mf2_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (const _Float16 *)(op13), (vuint64m2_t)(op14), (size_t)(op15))
-#define vluxseg6ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8) \
-__builtin_rvv_vluxseg6ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (const _Float16 *)(op6), (vuint64m1_t)(op7), (size_t)(op8))
-#define vluxseg6ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15) \
-__builtin_rvv_vluxseg6ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vbool64_t)(op6), (vfloat16mf4_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (const _Float16 *)(op13), (vuint64m1_t)(op14), (size_t)(op15))
-#define vluxseg7ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (const _Float16 *)(op7), (vuint64m4_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vbool16_t)(op7), (vfloat16m1_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (const _Float16 *)(op15), (vuint64m4_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (const _Float16 *)(op7), (vuint64m2_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vbool32_t)(op7), (vfloat16mf2_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (const _Float16 *)(op15), (vuint64m2_t)(op16), (size_t)(op17))
-#define vluxseg7ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9) \
-__builtin_rvv_vluxseg7ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (const _Float16 *)(op7), (vuint64m1_t)(op8), (size_t)(op9))
-#define vluxseg7ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17) \
-__builtin_rvv_vluxseg7ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vbool64_t)(op7), (vfloat16mf4_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (const _Float16 *)(op15), (vuint64m1_t)(op16), (size_t)(op17))
-#define vluxseg8ei64_v_f16m1(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_f16m1((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (const _Float16 *)(op8), (vuint64m4_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_f16m1_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_f16m1_m((vfloat16m1_t *)(op0), (vfloat16m1_t *)(op1), (vfloat16m1_t *)(op2), (vfloat16m1_t *)(op3), (vfloat16m1_t *)(op4), (vfloat16m1_t *)(op5), (vfloat16m1_t *)(op6), (vfloat16m1_t *)(op7), (vbool16_t)(op8), (vfloat16m1_t)(op9), (vfloat16m1_t)(op10), (vfloat16m1_t)(op11), (vfloat16m1_t)(op12), (vfloat16m1_t)(op13), (vfloat16m1_t)(op14), (vfloat16m1_t)(op15), (vfloat16m1_t)(op16), (const _Float16 *)(op17), (vuint64m4_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_f16mf2(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_f16mf2((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (const _Float16 *)(op8), (vuint64m2_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_f16mf2_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_f16mf2_m((vfloat16mf2_t *)(op0), (vfloat16mf2_t *)(op1), (vfloat16mf2_t *)(op2), (vfloat16mf2_t *)(op3), (vfloat16mf2_t *)(op4), (vfloat16mf2_t *)(op5), (vfloat16mf2_t *)(op6), (vfloat16mf2_t *)(op7), (vbool32_t)(op8), (vfloat16mf2_t)(op9), (vfloat16mf2_t)(op10), (vfloat16mf2_t)(op11), (vfloat16mf2_t)(op12), (vfloat16mf2_t)(op13), (vfloat16mf2_t)(op14), (vfloat16mf2_t)(op15), (vfloat16mf2_t)(op16), (const _Float16 *)(op17), (vuint64m2_t)(op18), (size_t)(op19))
-#define vluxseg8ei64_v_f16mf4(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10) \
-__builtin_rvv_vluxseg8ei64_v_f16mf4((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (const _Float16 *)(op8), (vuint64m1_t)(op9), (size_t)(op10))
-#define vluxseg8ei64_v_f16mf4_m(op0, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) \
-__builtin_rvv_vluxseg8ei64_v_f16mf4_m((vfloat16mf4_t *)(op0), (vfloat16mf4_t *)(op1), (vfloat16mf4_t *)(op2), (vfloat16mf4_t *)(op3), (vfloat16mf4_t *)(op4), (vfloat16mf4_t *)(op5), (vfloat16mf4_t *)(op6), (vfloat16mf4_t *)(op7), (vbool64_t)(op8), (vfloat16mf4_t)(op9), (vfloat16mf4_t)(op10), (vfloat16mf4_t)(op11), (vfloat16mf4_t)(op12), (vfloat16mf4_t)(op13), (vfloat16mf4_t)(op14), (vfloat16mf4_t)(op15), (vfloat16mf4_t)(op16), (const _Float16 *)(op17), (vuint64m1_t)(op18), (size_t)(op19))
-#endif
-
-#define __riscv_v_intrinsic_overloading 1
-#define __rvv_overloaded static inline __attribute__((__always_inline__, __nodebug__, __overloadable__))
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8m1)))
-vint8m1_t vadd(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8m1_m)))
-vint8m1_t vadd(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8m2)))
-vint8m2_t vadd(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8m2_m)))
-vint8m2_t vadd(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8m4)))
-vint8m4_t vadd(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8m4_m)))
-vint8m4_t vadd(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8m8)))
-vint8m8_t vadd(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8m8_m)))
-vint8m8_t vadd(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8mf2)))
-vint8mf2_t vadd(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8mf2_m)))
-vint8mf2_t vadd(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8mf4)))
-vint8mf4_t vadd(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8mf4_m)))
-vint8mf4_t vadd(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8mf8)))
-vint8mf8_t vadd(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i8mf8_m)))
-vint8mf8_t vadd(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16m1)))
-vint16m1_t vadd(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16m1_m)))
-vint16m1_t vadd(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16m2)))
-vint16m2_t vadd(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16m2_m)))
-vint16m2_t vadd(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16m4)))
-vint16m4_t vadd(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16m4_m)))
-vint16m4_t vadd(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16m8)))
-vint16m8_t vadd(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16m8_m)))
-vint16m8_t vadd(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16mf2)))
-vint16mf2_t vadd(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16mf2_m)))
-vint16mf2_t vadd(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16mf4)))
-vint16mf4_t vadd(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i16mf4_m)))
-vint16mf4_t vadd(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i32m1)))
-vint32m1_t vadd(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i32m1_m)))
-vint32m1_t vadd(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i32m2)))
-vint32m2_t vadd(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i32m2_m)))
-vint32m2_t vadd(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i32m4)))
-vint32m4_t vadd(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i32m4_m)))
-vint32m4_t vadd(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i32m8)))
-vint32m8_t vadd(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i32m8_m)))
-vint32m8_t vadd(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i32mf2)))
-vint32mf2_t vadd(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i32mf2_m)))
-vint32mf2_t vadd(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i64m1)))
-vint64m1_t vadd(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i64m1_m)))
-vint64m1_t vadd(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i64m2)))
-vint64m2_t vadd(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i64m2_m)))
-vint64m2_t vadd(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i64m4)))
-vint64m4_t vadd(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i64m4_m)))
-vint64m4_t vadd(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i64m8)))
-vint64m8_t vadd(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_i64m8_m)))
-vint64m8_t vadd(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16mf4)))
-vuint16mf4_t vwaddu_vv(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16mf4_m)))
-vuint16mf4_t vwaddu_vv(vbool64_t op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16mf2)))
-vuint16mf2_t vwaddu_vv(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16mf2_m)))
-vuint16mf2_t vwaddu_vv(vbool32_t op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16m1)))
-vuint16m1_t vwaddu_vv(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16m1_m)))
-vuint16m1_t vwaddu_vv(vbool16_t op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16m2)))
-vuint16m2_t vwaddu_vv(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16m2_m)))
-vuint16m2_t vwaddu_vv(vbool8_t op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16m4)))
-vuint16m4_t vwaddu_vv(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16m4_m)))
-vuint16m4_t vwaddu_vv(vbool4_t op0, vuint16m4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16m8)))
-vuint16m8_t vwaddu_vv(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u16m8_m)))
-vuint16m8_t vwaddu_vv(vbool2_t op0, vuint16m8_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u32mf2)))
-vuint32mf2_t vwaddu_vv(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u32mf2_m)))
-vuint32mf2_t vwaddu_vv(vbool64_t op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u32m1)))
-vuint32m1_t vwaddu_vv(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u32m1_m)))
-vuint32m1_t vwaddu_vv(vbool32_t op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u32m2)))
-vuint32m2_t vwaddu_vv(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u32m2_m)))
-vuint32m2_t vwaddu_vv(vbool16_t op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u32m4)))
-vuint32m4_t vwaddu_vv(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u32m4_m)))
-vuint32m4_t vwaddu_vv(vbool8_t op0, vuint32m4_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u32m8)))
-vuint32m8_t vwaddu_vv(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u32m8_m)))
-vuint32m8_t vwaddu_vv(vbool4_t op0, vuint32m8_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u64m1)))
-vuint64m1_t vwaddu_vv(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u64m1_m)))
-vuint64m1_t vwaddu_vv(vbool64_t op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u64m2)))
-vuint64m2_t vwaddu_vv(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u64m2_m)))
-vuint64m2_t vwaddu_vv(vbool32_t op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u64m4)))
-vuint64m4_t vwaddu_vv(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u64m4_m)))
-vuint64m4_t vwaddu_vv(vbool16_t op0, vuint64m4_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u64m8)))
-vuint64m8_t vwaddu_vv(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vv_u64m8_m)))
-vuint64m8_t vwaddu_vv(vbool8_t op0, vuint64m8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8m1)))
-vuint8m1_t vluxei8(const uint8_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8m1_m)))
-vuint8m1_t vluxei8(vbool8_t op0, vuint8m1_t op1, const uint8_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8m2)))
-vuint8m2_t vluxei8(const uint8_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8m2_m)))
-vuint8m2_t vluxei8(vbool4_t op0, vuint8m2_t op1, const uint8_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8m4)))
-vuint8m4_t vluxei8(const uint8_t * op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8m4_m)))
-vuint8m4_t vluxei8(vbool2_t op0, vuint8m4_t op1, const uint8_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8m8)))
-vuint8m8_t vluxei8(const uint8_t * op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8m8_m)))
-vuint8m8_t vluxei8(vbool1_t op0, vuint8m8_t op1, const uint8_t * op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8mf2)))
-vuint8mf2_t vluxei8(const uint8_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8mf2_m)))
-vuint8mf2_t vluxei8(vbool16_t op0, vuint8mf2_t op1, const uint8_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8mf4)))
-vuint8mf4_t vluxei8(const uint8_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8mf4_m)))
-vuint8mf4_t vluxei8(vbool32_t op0, vuint8mf4_t op1, const uint8_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8mf8)))
-vuint8mf8_t vluxei8(const uint8_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u8mf8_m)))
-vuint8mf8_t vluxei8(vbool64_t op0, vuint8mf8_t op1, const uint8_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_u64m1_m)))
-vuint64m1_t vlse64(vbool64_t op0, vuint64m1_t op1, const uint64_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_u64m2_m)))
-vuint64m2_t vlse64(vbool32_t op0, vuint64m2_t op1, const uint64_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_u64m4_m)))
-vuint64m4_t vlse64(vbool16_t op0, vuint64m4_t op1, const uint64_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_u64m8_m)))
-vuint64m8_t vlse64(vbool8_t op0, vuint64m8_t op1, const uint64_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16m1)))
-void vsse16(int16_t * op0, ptrdiff_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16m1_m)))
-void vsse16(vbool16_t op0, int16_t * op1, ptrdiff_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16m2)))
-void vsse16(int16_t * op0, ptrdiff_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16m2_m)))
-void vsse16(vbool8_t op0, int16_t * op1, ptrdiff_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16m4)))
-void vsse16(int16_t * op0, ptrdiff_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16m4_m)))
-void vsse16(vbool4_t op0, int16_t * op1, ptrdiff_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16m8)))
-void vsse16(int16_t * op0, ptrdiff_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16m8_m)))
-void vsse16(vbool2_t op0, int16_t * op1, ptrdiff_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16mf2)))
-void vsse16(int16_t * op0, ptrdiff_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16mf2_m)))
-void vsse16(vbool32_t op0, int16_t * op1, ptrdiff_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16mf4)))
-void vsse16(int16_t * op0, ptrdiff_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_i16mf4_m)))
-void vsse16(vbool64_t op0, int16_t * op1, ptrdiff_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16m1)))
-void vsse16(uint16_t * op0, ptrdiff_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16m1_m)))
-void vsse16(vbool16_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16m2)))
-void vsse16(uint16_t * op0, ptrdiff_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16m2_m)))
-void vsse16(vbool8_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16m4)))
-void vsse16(uint16_t * op0, ptrdiff_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16m4_m)))
-void vsse16(vbool4_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16m8)))
-void vsse16(uint16_t * op0, ptrdiff_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16m8_m)))
-void vsse16(vbool2_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16mf2)))
-void vsse16(uint16_t * op0, ptrdiff_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16mf2_m)))
-void vsse16(vbool32_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16mf4)))
-void vsse16(uint16_t * op0, ptrdiff_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_u16mf4_m)))
-void vsse16(vbool64_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_i32m1)))
-void vsse32(int32_t * op0, ptrdiff_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_i32m1_m)))
-void vsse32(vbool32_t op0, int32_t * op1, ptrdiff_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_i32m2)))
-void vsse32(int32_t * op0, ptrdiff_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_i32m2_m)))
-void vsse32(vbool16_t op0, int32_t * op1, ptrdiff_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_i32m4)))
-void vsse32(int32_t * op0, ptrdiff_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_i32m4_m)))
-void vsse32(vbool8_t op0, int32_t * op1, ptrdiff_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_i32m8)))
-void vsse32(int32_t * op0, ptrdiff_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_i32m8_m)))
-void vsse32(vbool4_t op0, int32_t * op1, ptrdiff_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_i32mf2)))
-void vsse32(int32_t * op0, ptrdiff_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_i32mf2_m)))
-void vsse32(vbool64_t op0, int32_t * op1, ptrdiff_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_u32m1)))
-void vsse32(uint32_t * op0, ptrdiff_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_u32m1_m)))
-void vsse32(vbool32_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_u32m2)))
-void vsse32(uint32_t * op0, ptrdiff_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_u32m2_m)))
-void vsse32(vbool16_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_u32m4)))
-void vsse32(uint32_t * op0, ptrdiff_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_u32m4_m)))
-void vsse32(vbool8_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_u32m8)))
-void vsse32(uint32_t * op0, ptrdiff_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_u32m8_m)))
-void vsse32(vbool4_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_u32mf2)))
-void vsse32(uint32_t * op0, ptrdiff_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_u32mf2_m)))
-void vsse32(vbool64_t op0, uint32_t * op1, ptrdiff_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_i64m1)))
-void vsse64(int64_t * op0, ptrdiff_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_i64m1_m)))
-void vsse64(vbool64_t op0, int64_t * op1, ptrdiff_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_i64m2)))
-void vsse64(int64_t * op0, ptrdiff_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_i64m2_m)))
-void vsse64(vbool32_t op0, int64_t * op1, ptrdiff_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_i64m4)))
-void vsse64(int64_t * op0, ptrdiff_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_i64m4_m)))
-void vsse64(vbool16_t op0, int64_t * op1, ptrdiff_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_i64m8)))
-void vsse64(int64_t * op0, ptrdiff_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_i64m8_m)))
-void vsse64(vbool8_t op0, int64_t * op1, ptrdiff_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_u64m1)))
-void vsse64(uint64_t * op0, ptrdiff_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_u64m1_m)))
-void vsse64(vbool64_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_u64m2)))
-void vsse64(uint64_t * op0, ptrdiff_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_u64m2_m)))
-void vsse64(vbool32_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_u64m4)))
-void vsse64(uint64_t * op0, ptrdiff_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_u64m4_m)))
-void vsse64(vbool16_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_u64m8)))
-void vsse64(uint64_t * op0, ptrdiff_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_u64m8_m)))
-void vsse64(vbool8_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8m1)))
-vint8m1_t vluxei16(const int8_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8m1_m)))
-vint8m1_t vluxei16(vbool8_t op0, vint8m1_t op1, const int8_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8m2)))
-vint8m2_t vluxei16(const int8_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8m2_m)))
-vint8m2_t vluxei16(vbool4_t op0, vint8m2_t op1, const int8_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8m4)))
-vint8m4_t vluxei16(const int8_t * op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8m4_m)))
-vint8m4_t vluxei16(vbool2_t op0, vint8m4_t op1, const int8_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8mf2)))
-vint8mf2_t vluxei16(const int8_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8mf2_m)))
-vint8mf2_t vluxei16(vbool16_t op0, vint8mf2_t op1, const int8_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8mf4)))
-vint8mf4_t vluxei16(const int8_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8mf4_m)))
-vint8mf4_t vluxei16(vbool32_t op0, vint8mf4_t op1, const int8_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8mf8)))
-vint8mf8_t vluxei16(const int8_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i8mf8_m)))
-vint8mf8_t vluxei16(vbool64_t op0, vint8mf8_t op1, const int8_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8m1)))
-vuint8m1_t vluxei16(const uint8_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8m1_m)))
-vuint8m1_t vluxei16(vbool8_t op0, vuint8m1_t op1, const uint8_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8m2)))
-vuint8m2_t vluxei16(const uint8_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8m2_m)))
-vuint8m2_t vluxei16(vbool4_t op0, vuint8m2_t op1, const uint8_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8m4)))
-vuint8m4_t vluxei16(const uint8_t * op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8m4_m)))
-vuint8m4_t vluxei16(vbool2_t op0, vuint8m4_t op1, const uint8_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8mf2)))
-vuint8mf2_t vluxei16(const uint8_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8mf2_m)))
-vuint8mf2_t vluxei16(vbool16_t op0, vuint8mf2_t op1, const uint8_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8mf4)))
-vuint8mf4_t vluxei16(const uint8_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8mf4_m)))
-vuint8mf4_t vluxei16(vbool32_t op0, vuint8mf4_t op1, const uint8_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8mf8)))
-vuint8mf8_t vluxei16(const uint8_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u8mf8_m)))
-vuint8mf8_t vluxei16(vbool64_t op0, vuint8mf8_t op1, const uint8_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i8m1)))
-vint8m1_t vluxei32(const int8_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i8m1_m)))
-vint8m1_t vluxei32(vbool8_t op0, vint8m1_t op1, const int8_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i8m2)))
-vint8m2_t vluxei32(const int8_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i8m2_m)))
-vint8m2_t vluxei32(vbool4_t op0, vint8m2_t op1, const int8_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i8mf2)))
-vint8mf2_t vluxei32(const int8_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i8mf2_m)))
-vint8mf2_t vluxei32(vbool16_t op0, vint8mf2_t op1, const int8_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i8mf4)))
-vint8mf4_t vluxei32(const int8_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i8mf4_m)))
-vint8mf4_t vluxei32(vbool32_t op0, vint8mf4_t op1, const int8_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i8mf8)))
-vint8mf8_t vluxei32(const int8_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i8mf8_m)))
-vint8mf8_t vluxei32(vbool64_t op0, vint8mf8_t op1, const int8_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u8m1)))
-vuint8m1_t vluxei32(const uint8_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u8m1_m)))
-vuint8m1_t vluxei32(vbool8_t op0, vuint8m1_t op1, const uint8_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u8m2)))
-vuint8m2_t vluxei32(const uint8_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u8m2_m)))
-vuint8m2_t vluxei32(vbool4_t op0, vuint8m2_t op1, const uint8_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u8mf2)))
-vuint8mf2_t vluxei32(const uint8_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u8mf2_m)))
-vuint8mf2_t vluxei32(vbool16_t op0, vuint8mf2_t op1, const uint8_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u8mf4)))
-vuint8mf4_t vluxei32(const uint8_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u8mf4_m)))
-vuint8mf4_t vluxei32(vbool32_t op0, vuint8mf4_t op1, const uint8_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u8mf8)))
-vuint8mf8_t vluxei32(const uint8_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u8mf8_m)))
-vuint8mf8_t vluxei32(vbool64_t op0, vuint8mf8_t op1, const uint8_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i8m1)))
-vint8m1_t vluxei64(const int8_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i8m1_m)))
-vint8m1_t vluxei64(vbool8_t op0, vint8m1_t op1, const int8_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i8mf2)))
-vint8mf2_t vluxei64(const int8_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i8mf2_m)))
-vint8mf2_t vluxei64(vbool16_t op0, vint8mf2_t op1, const int8_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i8mf4)))
-vint8mf4_t vluxei64(const int8_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i8mf4_m)))
-vint8mf4_t vluxei64(vbool32_t op0, vint8mf4_t op1, const int8_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i8mf8)))
-vint8mf8_t vluxei64(const int8_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i8mf8_m)))
-vint8mf8_t vluxei64(vbool64_t op0, vint8mf8_t op1, const int8_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u8m1)))
-vuint8m1_t vluxei64(const uint8_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u8m1_m)))
-vuint8m1_t vluxei64(vbool8_t op0, vuint8m1_t op1, const uint8_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u8mf2)))
-vuint8mf2_t vluxei64(const uint8_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u8mf2_m)))
-vuint8mf2_t vluxei64(vbool16_t op0, vuint8mf2_t op1, const uint8_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u8mf4)))
-vuint8mf4_t vluxei64(const uint8_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u8mf4_m)))
-vuint8mf4_t vluxei64(vbool32_t op0, vuint8mf4_t op1, const uint8_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u8mf8)))
-vuint8mf8_t vluxei64(const uint8_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u8mf8_m)))
-vuint8mf8_t vluxei64(vbool64_t op0, vuint8mf8_t op1, const uint8_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16m1)))
-vint16m1_t vluxei8(const int16_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16m1_m)))
-vint16m1_t vluxei8(vbool16_t op0, vint16m1_t op1, const int16_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16m2)))
-vint16m2_t vluxei8(const int16_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16m2_m)))
-vint16m2_t vluxei8(vbool8_t op0, vint16m2_t op1, const int16_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16m4)))
-vint16m4_t vluxei8(const int16_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16m4_m)))
-vint16m4_t vluxei8(vbool4_t op0, vint16m4_t op1, const int16_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16m8)))
-vint16m8_t vluxei8(const int16_t * op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16m8_m)))
-vint16m8_t vluxei8(vbool2_t op0, vint16m8_t op1, const int16_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16mf2)))
-vint16mf2_t vluxei8(const int16_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16mf2_m)))
-vint16mf2_t vluxei8(vbool32_t op0, vint16mf2_t op1, const int16_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16mf4)))
-vint16mf4_t vluxei8(const int16_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i16mf4_m)))
-vint16mf4_t vluxei8(vbool64_t op0, vint16mf4_t op1, const int16_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16m1)))
-vuint16m1_t vluxei8(const uint16_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16m1_m)))
-vuint16m1_t vluxei8(vbool16_t op0, vuint16m1_t op1, const uint16_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16m2)))
-vuint16m2_t vluxei8(const uint16_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16m2_m)))
-vuint16m2_t vluxei8(vbool8_t op0, vuint16m2_t op1, const uint16_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16m4)))
-vuint16m4_t vluxei8(const uint16_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16m4_m)))
-vuint16m4_t vluxei8(vbool4_t op0, vuint16m4_t op1, const uint16_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16m8)))
-vuint16m8_t vluxei8(const uint16_t * op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16m8_m)))
-vuint16m8_t vluxei8(vbool2_t op0, vuint16m8_t op1, const uint16_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16mf2)))
-vuint16mf2_t vluxei8(const uint16_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16mf2_m)))
-vuint16mf2_t vluxei8(vbool32_t op0, vuint16mf2_t op1, const uint16_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16mf4)))
-vuint16mf4_t vluxei8(const uint16_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u16mf4_m)))
-vuint16mf4_t vluxei8(vbool64_t op0, vuint16mf4_t op1, const uint16_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16m1)))
-vint16m1_t vluxei16(const int16_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16m1_m)))
-vint16m1_t vluxei16(vbool16_t op0, vint16m1_t op1, const int16_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16m2)))
-vint16m2_t vluxei16(const int16_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16m2_m)))
-vint16m2_t vluxei16(vbool8_t op0, vint16m2_t op1, const int16_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16m4)))
-vint16m4_t vluxei16(const int16_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16m4_m)))
-vint16m4_t vluxei16(vbool4_t op0, vint16m4_t op1, const int16_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16m8)))
-vint16m8_t vluxei16(const int16_t * op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16m8_m)))
-vint16m8_t vluxei16(vbool2_t op0, vint16m8_t op1, const int16_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16mf2)))
-vint16mf2_t vluxei16(const int16_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16mf2_m)))
-vint16mf2_t vluxei16(vbool32_t op0, vint16mf2_t op1, const int16_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16mf4)))
-vint16mf4_t vluxei16(const int16_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i16mf4_m)))
-vint16mf4_t vluxei16(vbool64_t op0, vint16mf4_t op1, const int16_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16m1)))
-vuint16m1_t vluxei16(const uint16_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16m1_m)))
-vuint16m1_t vluxei16(vbool16_t op0, vuint16m1_t op1, const uint16_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16m2)))
-vuint16m2_t vluxei16(const uint16_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16m2_m)))
-vuint16m2_t vluxei16(vbool8_t op0, vuint16m2_t op1, const uint16_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16m4)))
-vuint16m4_t vluxei16(const uint16_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16m4_m)))
-vuint16m4_t vluxei16(vbool4_t op0, vuint16m4_t op1, const uint16_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16m8)))
-vuint16m8_t vluxei16(const uint16_t * op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16m8_m)))
-vuint16m8_t vluxei16(vbool2_t op0, vuint16m8_t op1, const uint16_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16mf2)))
-vuint16mf2_t vluxei16(const uint16_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16mf2_m)))
-vuint16mf2_t vluxei16(vbool32_t op0, vuint16mf2_t op1, const uint16_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16mf4)))
-vuint16mf4_t vluxei16(const uint16_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u16mf4_m)))
-vuint16mf4_t vluxei16(vbool64_t op0, vuint16mf4_t op1, const uint16_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i16m1)))
-vint16m1_t vluxei32(const int16_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i16m1_m)))
-vint16m1_t vluxei32(vbool16_t op0, vint16m1_t op1, const int16_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i16m2)))
-vint16m2_t vluxei32(const int16_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i16m2_m)))
-vint16m2_t vluxei32(vbool8_t op0, vint16m2_t op1, const int16_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i16m4)))
-vint16m4_t vluxei32(const int16_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i16m4_m)))
-vint16m4_t vluxei32(vbool4_t op0, vint16m4_t op1, const int16_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i16mf2)))
-vint16mf2_t vluxei32(const int16_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i16mf2_m)))
-vint16mf2_t vluxei32(vbool32_t op0, vint16mf2_t op1, const int16_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i16mf4)))
-vint16mf4_t vluxei32(const int16_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i16mf4_m)))
-vint16mf4_t vluxei32(vbool64_t op0, vint16mf4_t op1, const int16_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u16m1)))
-vuint16m1_t vluxei32(const uint16_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u16m1_m)))
-vuint16m1_t vluxei32(vbool16_t op0, vuint16m1_t op1, const uint16_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u16m2)))
-vuint16m2_t vluxei32(const uint16_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u16m2_m)))
-vuint16m2_t vluxei32(vbool8_t op0, vuint16m2_t op1, const uint16_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u16m4)))
-vuint16m4_t vluxei32(const uint16_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u16m4_m)))
-vuint16m4_t vluxei32(vbool4_t op0, vuint16m4_t op1, const uint16_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u16mf2)))
-vuint16mf2_t vluxei32(const uint16_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u16mf2_m)))
-vuint16mf2_t vluxei32(vbool32_t op0, vuint16mf2_t op1, const uint16_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u16mf4)))
-vuint16mf4_t vluxei32(const uint16_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u16mf4_m)))
-vuint16mf4_t vluxei32(vbool64_t op0, vuint16mf4_t op1, const uint16_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i16m1)))
-vint16m1_t vluxei64(const int16_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i16m1_m)))
-vint16m1_t vluxei64(vbool16_t op0, vint16m1_t op1, const int16_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i16m2)))
-vint16m2_t vluxei64(const int16_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i16m2_m)))
-vint16m2_t vluxei64(vbool8_t op0, vint16m2_t op1, const int16_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i16mf2)))
-vint16mf2_t vluxei64(const int16_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i16mf2_m)))
-vint16mf2_t vluxei64(vbool32_t op0, vint16mf2_t op1, const int16_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i16mf4)))
-vint16mf4_t vluxei64(const int16_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i16mf4_m)))
-vint16mf4_t vluxei64(vbool64_t op0, vint16mf4_t op1, const int16_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u16m1)))
-vuint16m1_t vluxei64(const uint16_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u16m1_m)))
-vuint16m1_t vluxei64(vbool16_t op0, vuint16m1_t op1, const uint16_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u16m2)))
-vuint16m2_t vluxei64(const uint16_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u16m2_m)))
-vuint16m2_t vluxei64(vbool8_t op0, vuint16m2_t op1, const uint16_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u16mf2)))
-vuint16mf2_t vluxei64(const uint16_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u16mf2_m)))
-vuint16mf2_t vluxei64(vbool32_t op0, vuint16mf2_t op1, const uint16_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u16mf4)))
-vuint16mf4_t vluxei64(const uint16_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u16mf4_m)))
-vuint16mf4_t vluxei64(vbool64_t op0, vuint16mf4_t op1, const uint16_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i32m1)))
-vint32m1_t vluxei8(const int32_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i32m1_m)))
-vint32m1_t vluxei8(vbool32_t op0, vint32m1_t op1, const int32_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i32m2)))
-vint32m2_t vluxei8(const int32_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i32m2_m)))
-vint32m2_t vluxei8(vbool16_t op0, vint32m2_t op1, const int32_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i32m4)))
-vint32m4_t vluxei8(const int32_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i32m4_m)))
-vint32m4_t vluxei8(vbool8_t op0, vint32m4_t op1, const int32_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i32m8)))
-vint32m8_t vluxei8(const int32_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i32m8_m)))
-vint32m8_t vluxei8(vbool4_t op0, vint32m8_t op1, const int32_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i32mf2)))
-vint32mf2_t vluxei8(const int32_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i32mf2_m)))
-vint32mf2_t vluxei8(vbool64_t op0, vint32mf2_t op1, const int32_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u32m1)))
-vuint32m1_t vluxei8(const uint32_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u32m1_m)))
-vuint32m1_t vluxei8(vbool32_t op0, vuint32m1_t op1, const uint32_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u32m2)))
-vuint32m2_t vluxei8(const uint32_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u32m2_m)))
-vuint32m2_t vluxei8(vbool16_t op0, vuint32m2_t op1, const uint32_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u32m4)))
-vuint32m4_t vluxei8(const uint32_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u32m4_m)))
-vuint32m4_t vluxei8(vbool8_t op0, vuint32m4_t op1, const uint32_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u32m8)))
-vuint32m8_t vluxei8(const uint32_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u32m8_m)))
-vuint32m8_t vluxei8(vbool4_t op0, vuint32m8_t op1, const uint32_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u32mf2)))
-vuint32mf2_t vluxei8(const uint32_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u32mf2_m)))
-vuint32mf2_t vluxei8(vbool64_t op0, vuint32mf2_t op1, const uint32_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i32m1)))
-vint32m1_t vluxei16(const int32_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i32m1_m)))
-vint32m1_t vluxei16(vbool32_t op0, vint32m1_t op1, const int32_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i32m2)))
-vint32m2_t vluxei16(const int32_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i32m2_m)))
-vint32m2_t vluxei16(vbool16_t op0, vint32m2_t op1, const int32_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i32m4)))
-vint32m4_t vluxei16(const int32_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i32m4_m)))
-vint32m4_t vluxei16(vbool8_t op0, vint32m4_t op1, const int32_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i32m8)))
-vint32m8_t vluxei16(const int32_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i32m8_m)))
-vint32m8_t vluxei16(vbool4_t op0, vint32m8_t op1, const int32_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i32mf2)))
-vint32mf2_t vluxei16(const int32_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i32mf2_m)))
-vint32mf2_t vluxei16(vbool64_t op0, vint32mf2_t op1, const int32_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u32m1)))
-vuint32m1_t vluxei16(const uint32_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u32m1_m)))
-vuint32m1_t vluxei16(vbool32_t op0, vuint32m1_t op1, const uint32_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u32m2)))
-vuint32m2_t vluxei16(const uint32_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u32m2_m)))
-vuint32m2_t vluxei16(vbool16_t op0, vuint32m2_t op1, const uint32_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u32m4)))
-vuint32m4_t vluxei16(const uint32_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u32m4_m)))
-vuint32m4_t vluxei16(vbool8_t op0, vuint32m4_t op1, const uint32_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u32m8)))
-vuint32m8_t vluxei16(const uint32_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u32m8_m)))
-vuint32m8_t vluxei16(vbool4_t op0, vuint32m8_t op1, const uint32_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u32mf2)))
-vuint32mf2_t vluxei16(const uint32_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u32mf2_m)))
-vuint32mf2_t vluxei16(vbool64_t op0, vuint32mf2_t op1, const uint32_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i32m1)))
-vint32m1_t vluxei32(const int32_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i32m1_m)))
-vint32m1_t vluxei32(vbool32_t op0, vint32m1_t op1, const int32_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i32m2)))
-vint32m2_t vluxei32(const int32_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i32m2_m)))
-vint32m2_t vluxei32(vbool16_t op0, vint32m2_t op1, const int32_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i32m4)))
-vint32m4_t vluxei32(const int32_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i32m4_m)))
-vint32m4_t vluxei32(vbool8_t op0, vint32m4_t op1, const int32_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i32m8)))
-vint32m8_t vluxei32(const int32_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i32m8_m)))
-vint32m8_t vluxei32(vbool4_t op0, vint32m8_t op1, const int32_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i32mf2)))
-vint32mf2_t vluxei32(const int32_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i32mf2_m)))
-vint32mf2_t vluxei32(vbool64_t op0, vint32mf2_t op1, const int32_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u32m1)))
-vuint32m1_t vluxei32(const uint32_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u32m1_m)))
-vuint32m1_t vluxei32(vbool32_t op0, vuint32m1_t op1, const uint32_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u32m2)))
-vuint32m2_t vluxei32(const uint32_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u32m2_m)))
-vuint32m2_t vluxei32(vbool16_t op0, vuint32m2_t op1, const uint32_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u32m4)))
-vuint32m4_t vluxei32(const uint32_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u32m4_m)))
-vuint32m4_t vluxei32(vbool8_t op0, vuint32m4_t op1, const uint32_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u32m8)))
-vuint32m8_t vluxei32(const uint32_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u32m8_m)))
-vuint32m8_t vluxei32(vbool4_t op0, vuint32m8_t op1, const uint32_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u32mf2)))
-vuint32mf2_t vluxei32(const uint32_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u32mf2_m)))
-vuint32mf2_t vluxei32(vbool64_t op0, vuint32mf2_t op1, const uint32_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i32m1)))
-vint32m1_t vluxei64(const int32_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i32m1_m)))
-vint32m1_t vluxei64(vbool32_t op0, vint32m1_t op1, const int32_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i32m2)))
-vint32m2_t vluxei64(const int32_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i32m2_m)))
-vint32m2_t vluxei64(vbool16_t op0, vint32m2_t op1, const int32_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i32m4)))
-vint32m4_t vluxei64(const int32_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i32m4_m)))
-vint32m4_t vluxei64(vbool8_t op0, vint32m4_t op1, const int32_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i32mf2)))
-vint32mf2_t vluxei64(const int32_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i32mf2_m)))
-vint32mf2_t vluxei64(vbool64_t op0, vint32mf2_t op1, const int32_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u32m1)))
-vuint32m1_t vluxei64(const uint32_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u32m1_m)))
-vuint32m1_t vluxei64(vbool32_t op0, vuint32m1_t op1, const uint32_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u32m2)))
-vuint32m2_t vluxei64(const uint32_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u32m2_m)))
-vuint32m2_t vluxei64(vbool16_t op0, vuint32m2_t op1, const uint32_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u32m4)))
-vuint32m4_t vluxei64(const uint32_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u32m4_m)))
-vuint32m4_t vluxei64(vbool8_t op0, vuint32m4_t op1, const uint32_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u32mf2)))
-vuint32mf2_t vluxei64(const uint32_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u32mf2_m)))
-vuint32mf2_t vluxei64(vbool64_t op0, vuint32mf2_t op1, const uint32_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i64m1)))
-vint64m1_t vluxei8(const int64_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i64m1_m)))
-vint64m1_t vluxei8(vbool64_t op0, vint64m1_t op1, const int64_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i64m2)))
-vint64m2_t vluxei8(const int64_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i64m2_m)))
-vint64m2_t vluxei8(vbool32_t op0, vint64m2_t op1, const int64_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i64m4)))
-vint64m4_t vluxei8(const int64_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i64m4_m)))
-vint64m4_t vluxei8(vbool16_t op0, vint64m4_t op1, const int64_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i64m8)))
-vint64m8_t vluxei8(const int64_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i64m8_m)))
-vint64m8_t vluxei8(vbool8_t op0, vint64m8_t op1, const int64_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u64m1)))
-vuint64m1_t vluxei8(const uint64_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u64m1_m)))
-vuint64m1_t vluxei8(vbool64_t op0, vuint64m1_t op1, const uint64_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u64m2)))
-vuint64m2_t vluxei8(const uint64_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u64m2_m)))
-vuint64m2_t vluxei8(vbool32_t op0, vuint64m2_t op1, const uint64_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u64m4)))
-vuint64m4_t vluxei8(const uint64_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u64m4_m)))
-vuint64m4_t vluxei8(vbool16_t op0, vuint64m4_t op1, const uint64_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u64m8)))
-vuint64m8_t vluxei8(const uint64_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_u64m8_m)))
-vuint64m8_t vluxei8(vbool8_t op0, vuint64m8_t op1, const uint64_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i64m1)))
-vint64m1_t vluxei16(const int64_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i64m1_m)))
-vint64m1_t vluxei16(vbool64_t op0, vint64m1_t op1, const int64_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i64m2)))
-vint64m2_t vluxei16(const int64_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i64m2_m)))
-vint64m2_t vluxei16(vbool32_t op0, vint64m2_t op1, const int64_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i64m4)))
-vint64m4_t vluxei16(const int64_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i64m4_m)))
-vint64m4_t vluxei16(vbool16_t op0, vint64m4_t op1, const int64_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i64m8)))
-vint64m8_t vluxei16(const int64_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_i64m8_m)))
-vint64m8_t vluxei16(vbool8_t op0, vint64m8_t op1, const int64_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u64m1)))
-vuint64m1_t vluxei16(const uint64_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u64m1_m)))
-vuint64m1_t vluxei16(vbool64_t op0, vuint64m1_t op1, const uint64_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u64m2)))
-vuint64m2_t vluxei16(const uint64_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u64m2_m)))
-vuint64m2_t vluxei16(vbool32_t op0, vuint64m2_t op1, const uint64_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u64m4)))
-vuint64m4_t vluxei16(const uint64_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u64m4_m)))
-vuint64m4_t vluxei16(vbool16_t op0, vuint64m4_t op1, const uint64_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u64m8)))
-vuint64m8_t vluxei16(const uint64_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_u64m8_m)))
-vuint64m8_t vluxei16(vbool8_t op0, vuint64m8_t op1, const uint64_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i64m1)))
-vint64m1_t vluxei32(const int64_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i64m1_m)))
-vint64m1_t vluxei32(vbool64_t op0, vint64m1_t op1, const int64_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i64m2)))
-vint64m2_t vluxei32(const int64_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i64m2_m)))
-vint64m2_t vluxei32(vbool32_t op0, vint64m2_t op1, const int64_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i64m4)))
-vint64m4_t vluxei32(const int64_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i64m4_m)))
-vint64m4_t vluxei32(vbool16_t op0, vint64m4_t op1, const int64_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i64m8)))
-vint64m8_t vluxei32(const int64_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_i64m8_m)))
-vint64m8_t vluxei32(vbool8_t op0, vint64m8_t op1, const int64_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u64m1)))
-vuint64m1_t vluxei32(const uint64_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u64m1_m)))
-vuint64m1_t vluxei32(vbool64_t op0, vuint64m1_t op1, const uint64_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u64m2)))
-vuint64m2_t vluxei32(const uint64_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u64m2_m)))
-vuint64m2_t vluxei32(vbool32_t op0, vuint64m2_t op1, const uint64_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u64m4)))
-vuint64m4_t vluxei32(const uint64_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u64m4_m)))
-vuint64m4_t vluxei32(vbool16_t op0, vuint64m4_t op1, const uint64_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u64m8)))
-vuint64m8_t vluxei32(const uint64_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_u64m8_m)))
-vuint64m8_t vluxei32(vbool8_t op0, vuint64m8_t op1, const uint64_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i64m1)))
-vint64m1_t vluxei64(const int64_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i64m1_m)))
-vint64m1_t vluxei64(vbool64_t op0, vint64m1_t op1, const int64_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i64m2)))
-vint64m2_t vluxei64(const int64_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i64m2_m)))
-vint64m2_t vluxei64(vbool32_t op0, vint64m2_t op1, const int64_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i64m4)))
-vint64m4_t vluxei64(const int64_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i64m4_m)))
-vint64m4_t vluxei64(vbool16_t op0, vint64m4_t op1, const int64_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i64m8)))
-vint64m8_t vluxei64(const int64_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_i64m8_m)))
-vint64m8_t vluxei64(vbool8_t op0, vint64m8_t op1, const int64_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u64m1)))
-vuint64m1_t vluxei64(const uint64_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u64m1_m)))
-vuint64m1_t vluxei64(vbool64_t op0, vuint64m1_t op1, const uint64_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u64m2)))
-vuint64m2_t vluxei64(const uint64_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u64m2_m)))
-vuint64m2_t vluxei64(vbool32_t op0, vuint64m2_t op1, const uint64_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u64m4)))
-vuint64m4_t vluxei64(const uint64_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u64m4_m)))
-vuint64m4_t vluxei64(vbool16_t op0, vuint64m4_t op1, const uint64_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u64m8)))
-vuint64m8_t vluxei64(const uint64_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_u64m8_m)))
-vuint64m8_t vluxei64(vbool8_t op0, vuint64m8_t op1, const uint64_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8m1)))
-vint8m1_t vloxei8(const int8_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8m1_m)))
-vint8m1_t vloxei8(vbool8_t op0, vint8m1_t op1, const int8_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8m2)))
-vint8m2_t vloxei8(const int8_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8m2_m)))
-vint8m2_t vloxei8(vbool4_t op0, vint8m2_t op1, const int8_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8m4)))
-vint8m4_t vloxei8(const int8_t * op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8m4_m)))
-vint8m4_t vloxei8(vbool2_t op0, vint8m4_t op1, const int8_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8m8)))
-vint8m8_t vloxei8(const int8_t * op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8m8_m)))
-vint8m8_t vloxei8(vbool1_t op0, vint8m8_t op1, const int8_t * op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8mf2)))
-vint8mf2_t vloxei8(const int8_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8mf2_m)))
-vint8mf2_t vloxei8(vbool16_t op0, vint8mf2_t op1, const int8_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8mf4)))
-vint8mf4_t vloxei8(const int8_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8mf4_m)))
-vint8mf4_t vloxei8(vbool32_t op0, vint8mf4_t op1, const int8_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8mf8)))
-vint8mf8_t vloxei8(const int8_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i8mf8_m)))
-vint8mf8_t vloxei8(vbool64_t op0, vint8mf8_t op1, const int8_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8m1)))
-vuint8m1_t vloxei8(const uint8_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8m1_m)))
-vuint8m1_t vloxei8(vbool8_t op0, vuint8m1_t op1, const uint8_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8m2)))
-vuint8m2_t vloxei8(const uint8_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8m2_m)))
-vuint8m2_t vloxei8(vbool4_t op0, vuint8m2_t op1, const uint8_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8m4)))
-vuint8m4_t vloxei8(const uint8_t * op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8m4_m)))
-vuint8m4_t vloxei8(vbool2_t op0, vuint8m4_t op1, const uint8_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8m8)))
-vuint8m8_t vloxei8(const uint8_t * op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8m8_m)))
-vuint8m8_t vloxei8(vbool1_t op0, vuint8m8_t op1, const uint8_t * op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8mf2)))
-vuint8mf2_t vloxei8(const uint8_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8mf2_m)))
-vuint8mf2_t vloxei8(vbool16_t op0, vuint8mf2_t op1, const uint8_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8mf4)))
-vuint8mf4_t vloxei8(const uint8_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8mf4_m)))
-vuint8mf4_t vloxei8(vbool32_t op0, vuint8mf4_t op1, const uint8_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8mf8)))
-vuint8mf8_t vloxei8(const uint8_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u8mf8_m)))
-vuint8mf8_t vloxei8(vbool64_t op0, vuint8mf8_t op1, const uint8_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8m1)))
-vint8m1_t vloxei16(const int8_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8m1_m)))
-vint8m1_t vloxei16(vbool8_t op0, vint8m1_t op1, const int8_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8m2)))
-vint8m2_t vloxei16(const int8_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8m2_m)))
-vint8m2_t vloxei16(vbool4_t op0, vint8m2_t op1, const int8_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8m4)))
-vint8m4_t vloxei16(const int8_t * op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8m4_m)))
-vint8m4_t vloxei16(vbool2_t op0, vint8m4_t op1, const int8_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8mf2)))
-vint8mf2_t vloxei16(const int8_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8mf2_m)))
-vint8mf2_t vloxei16(vbool16_t op0, vint8mf2_t op1, const int8_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8mf4)))
-vint8mf4_t vloxei16(const int8_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8mf4_m)))
-vint8mf4_t vloxei16(vbool32_t op0, vint8mf4_t op1, const int8_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8mf8)))
-vint8mf8_t vloxei16(const int8_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i8mf8_m)))
-vint8mf8_t vloxei16(vbool64_t op0, vint8mf8_t op1, const int8_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8m1)))
-vuint8m1_t vloxei16(const uint8_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8m1_m)))
-vuint8m1_t vloxei16(vbool8_t op0, vuint8m1_t op1, const uint8_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8m2)))
-vuint8m2_t vloxei16(const uint8_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8m2_m)))
-vuint8m2_t vloxei16(vbool4_t op0, vuint8m2_t op1, const uint8_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8m4)))
-vuint8m4_t vloxei16(const uint8_t * op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8m4_m)))
-vuint8m4_t vloxei16(vbool2_t op0, vuint8m4_t op1, const uint8_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8mf2)))
-vuint8mf2_t vloxei16(const uint8_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8mf2_m)))
-vuint8mf2_t vloxei16(vbool16_t op0, vuint8mf2_t op1, const uint8_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8mf4)))
-vuint8mf4_t vloxei16(const uint8_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8mf4_m)))
-vuint8mf4_t vloxei16(vbool32_t op0, vuint8mf4_t op1, const uint8_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8mf8)))
-vuint8mf8_t vloxei16(const uint8_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u8mf8_m)))
-vuint8mf8_t vloxei16(vbool64_t op0, vuint8mf8_t op1, const uint8_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i8m1)))
-vint8m1_t vloxei32(const int8_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i8m1_m)))
-vint8m1_t vloxei32(vbool8_t op0, vint8m1_t op1, const int8_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i8m2)))
-vint8m2_t vloxei32(const int8_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i8m2_m)))
-vint8m2_t vloxei32(vbool4_t op0, vint8m2_t op1, const int8_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i8mf2)))
-vint8mf2_t vloxei32(const int8_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i8mf2_m)))
-vint8mf2_t vloxei32(vbool16_t op0, vint8mf2_t op1, const int8_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i8mf4)))
-vint8mf4_t vloxei32(const int8_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i8mf4_m)))
-vint8mf4_t vloxei32(vbool32_t op0, vint8mf4_t op1, const int8_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i8mf8)))
-vint8mf8_t vloxei32(const int8_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i8mf8_m)))
-vint8mf8_t vloxei32(vbool64_t op0, vint8mf8_t op1, const int8_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u8m1)))
-vuint8m1_t vloxei32(const uint8_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u8m1_m)))
-vuint8m1_t vloxei32(vbool8_t op0, vuint8m1_t op1, const uint8_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u8m2)))
-vuint8m2_t vloxei32(const uint8_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u8m2_m)))
-vuint8m2_t vloxei32(vbool4_t op0, vuint8m2_t op1, const uint8_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u8mf2)))
-vuint8mf2_t vloxei32(const uint8_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u8mf2_m)))
-vuint8mf2_t vloxei32(vbool16_t op0, vuint8mf2_t op1, const uint8_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u8mf4)))
-vuint8mf4_t vloxei32(const uint8_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u8mf4_m)))
-vuint8mf4_t vloxei32(vbool32_t op0, vuint8mf4_t op1, const uint8_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u8mf8)))
-vuint8mf8_t vloxei32(const uint8_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u8mf8_m)))
-vuint8mf8_t vloxei32(vbool64_t op0, vuint8mf8_t op1, const uint8_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i8m1)))
-vint8m1_t vloxei64(const int8_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i8m1_m)))
-vint8m1_t vloxei64(vbool8_t op0, vint8m1_t op1, const int8_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i8mf2)))
-vint8mf2_t vloxei64(const int8_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i8mf2_m)))
-vint8mf2_t vloxei64(vbool16_t op0, vint8mf2_t op1, const int8_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i8mf4)))
-vint8mf4_t vloxei64(const int8_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i8mf4_m)))
-vint8mf4_t vloxei64(vbool32_t op0, vint8mf4_t op1, const int8_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i8mf8)))
-vint8mf8_t vloxei64(const int8_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i8mf8_m)))
-vint8mf8_t vloxei64(vbool64_t op0, vint8mf8_t op1, const int8_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u8m1)))
-vuint8m1_t vloxei64(const uint8_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u8m1_m)))
-vuint8m1_t vloxei64(vbool8_t op0, vuint8m1_t op1, const uint8_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u8mf2)))
-vuint8mf2_t vloxei64(const uint8_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u8mf2_m)))
-vuint8mf2_t vloxei64(vbool16_t op0, vuint8mf2_t op1, const uint8_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u8mf4)))
-vuint8mf4_t vloxei64(const uint8_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u8mf4_m)))
-vuint8mf4_t vloxei64(vbool32_t op0, vuint8mf4_t op1, const uint8_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u8mf8)))
-vuint8mf8_t vloxei64(const uint8_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u8mf8_m)))
-vuint8mf8_t vloxei64(vbool64_t op0, vuint8mf8_t op1, const uint8_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16m1)))
-vint16m1_t vloxei8(const int16_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16m1_m)))
-vint16m1_t vloxei8(vbool16_t op0, vint16m1_t op1, const int16_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16m2)))
-vint16m2_t vloxei8(const int16_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16m2_m)))
-vint16m2_t vloxei8(vbool8_t op0, vint16m2_t op1, const int16_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16m4)))
-vint16m4_t vloxei8(const int16_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16m4_m)))
-vint16m4_t vloxei8(vbool4_t op0, vint16m4_t op1, const int16_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16m8)))
-vint16m8_t vloxei8(const int16_t * op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16m8_m)))
-vint16m8_t vloxei8(vbool2_t op0, vint16m8_t op1, const int16_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16mf2)))
-vint16mf2_t vloxei8(const int16_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16mf2_m)))
-vint16mf2_t vloxei8(vbool32_t op0, vint16mf2_t op1, const int16_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16mf4)))
-vint16mf4_t vloxei8(const int16_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i16mf4_m)))
-vint16mf4_t vloxei8(vbool64_t op0, vint16mf4_t op1, const int16_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16m1)))
-vuint16m1_t vloxei8(const uint16_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16m1_m)))
-vuint16m1_t vloxei8(vbool16_t op0, vuint16m1_t op1, const uint16_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16m2)))
-vuint16m2_t vloxei8(const uint16_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16m2_m)))
-vuint16m2_t vloxei8(vbool8_t op0, vuint16m2_t op1, const uint16_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16m4)))
-vuint16m4_t vloxei8(const uint16_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16m4_m)))
-vuint16m4_t vloxei8(vbool4_t op0, vuint16m4_t op1, const uint16_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16m8)))
-vuint16m8_t vloxei8(const uint16_t * op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16m8_m)))
-vuint16m8_t vloxei8(vbool2_t op0, vuint16m8_t op1, const uint16_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16mf2)))
-vuint16mf2_t vloxei8(const uint16_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16mf2_m)))
-vuint16mf2_t vloxei8(vbool32_t op0, vuint16mf2_t op1, const uint16_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16mf4)))
-vuint16mf4_t vloxei8(const uint16_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u16mf4_m)))
-vuint16mf4_t vloxei8(vbool64_t op0, vuint16mf4_t op1, const uint16_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16m1)))
-vint16m1_t vloxei16(const int16_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16m1_m)))
-vint16m1_t vloxei16(vbool16_t op0, vint16m1_t op1, const int16_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16m2)))
-vint16m2_t vloxei16(const int16_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16m2_m)))
-vint16m2_t vloxei16(vbool8_t op0, vint16m2_t op1, const int16_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16m4)))
-vint16m4_t vloxei16(const int16_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16m4_m)))
-vint16m4_t vloxei16(vbool4_t op0, vint16m4_t op1, const int16_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16m8)))
-vint16m8_t vloxei16(const int16_t * op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16m8_m)))
-vint16m8_t vloxei16(vbool2_t op0, vint16m8_t op1, const int16_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16mf2)))
-vint16mf2_t vloxei16(const int16_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16mf2_m)))
-vint16mf2_t vloxei16(vbool32_t op0, vint16mf2_t op1, const int16_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16mf4)))
-vint16mf4_t vloxei16(const int16_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i16mf4_m)))
-vint16mf4_t vloxei16(vbool64_t op0, vint16mf4_t op1, const int16_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16m1)))
-vuint16m1_t vloxei16(const uint16_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16m1_m)))
-vuint16m1_t vloxei16(vbool16_t op0, vuint16m1_t op1, const uint16_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16m2)))
-vuint16m2_t vloxei16(const uint16_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16m2_m)))
-vuint16m2_t vloxei16(vbool8_t op0, vuint16m2_t op1, const uint16_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16m4)))
-vuint16m4_t vloxei16(const uint16_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16m4_m)))
-vuint16m4_t vloxei16(vbool4_t op0, vuint16m4_t op1, const uint16_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16m8)))
-vuint16m8_t vloxei16(const uint16_t * op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16m8_m)))
-vuint16m8_t vloxei16(vbool2_t op0, vuint16m8_t op1, const uint16_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16mf2)))
-vuint16mf2_t vloxei16(const uint16_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16mf2_m)))
-vuint16mf2_t vloxei16(vbool32_t op0, vuint16mf2_t op1, const uint16_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16mf4)))
-vuint16mf4_t vloxei16(const uint16_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u16mf4_m)))
-vuint16mf4_t vloxei16(vbool64_t op0, vuint16mf4_t op1, const uint16_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i16m1)))
-vint16m1_t vloxei32(const int16_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i16m1_m)))
-vint16m1_t vloxei32(vbool16_t op0, vint16m1_t op1, const int16_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i16m2)))
-vint16m2_t vloxei32(const int16_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i16m2_m)))
-vint16m2_t vloxei32(vbool8_t op0, vint16m2_t op1, const int16_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i16m4)))
-vint16m4_t vloxei32(const int16_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i16m4_m)))
-vint16m4_t vloxei32(vbool4_t op0, vint16m4_t op1, const int16_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i16mf2)))
-vint16mf2_t vloxei32(const int16_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i16mf2_m)))
-vint16mf2_t vloxei32(vbool32_t op0, vint16mf2_t op1, const int16_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i16mf4)))
-vint16mf4_t vloxei32(const int16_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i16mf4_m)))
-vint16mf4_t vloxei32(vbool64_t op0, vint16mf4_t op1, const int16_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u16m1)))
-vuint16m1_t vloxei32(const uint16_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u16m1_m)))
-vuint16m1_t vloxei32(vbool16_t op0, vuint16m1_t op1, const uint16_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u16m2)))
-vuint16m2_t vloxei32(const uint16_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u16m2_m)))
-vuint16m2_t vloxei32(vbool8_t op0, vuint16m2_t op1, const uint16_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u16m4)))
-vuint16m4_t vloxei32(const uint16_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u16m4_m)))
-vuint16m4_t vloxei32(vbool4_t op0, vuint16m4_t op1, const uint16_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u16mf2)))
-vuint16mf2_t vloxei32(const uint16_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u16mf2_m)))
-vuint16mf2_t vloxei32(vbool32_t op0, vuint16mf2_t op1, const uint16_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u16mf4)))
-vuint16mf4_t vloxei32(const uint16_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u16mf4_m)))
-vuint16mf4_t vloxei32(vbool64_t op0, vuint16mf4_t op1, const uint16_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i16m1)))
-vint16m1_t vloxei64(const int16_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i16m1_m)))
-vint16m1_t vloxei64(vbool16_t op0, vint16m1_t op1, const int16_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i16m2)))
-vint16m2_t vloxei64(const int16_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i16m2_m)))
-vint16m2_t vloxei64(vbool8_t op0, vint16m2_t op1, const int16_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i16mf2)))
-vint16mf2_t vloxei64(const int16_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i16mf2_m)))
-vint16mf2_t vloxei64(vbool32_t op0, vint16mf2_t op1, const int16_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i16mf4)))
-vint16mf4_t vloxei64(const int16_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i16mf4_m)))
-vint16mf4_t vloxei64(vbool64_t op0, vint16mf4_t op1, const int16_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u16m1)))
-vuint16m1_t vloxei64(const uint16_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u16m1_m)))
-vuint16m1_t vloxei64(vbool16_t op0, vuint16m1_t op1, const uint16_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u16m2)))
-vuint16m2_t vloxei64(const uint16_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u16m2_m)))
-vuint16m2_t vloxei64(vbool8_t op0, vuint16m2_t op1, const uint16_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u16mf2)))
-vuint16mf2_t vloxei64(const uint16_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u16mf2_m)))
-vuint16mf2_t vloxei64(vbool32_t op0, vuint16mf2_t op1, const uint16_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u16mf4)))
-vuint16mf4_t vloxei64(const uint16_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u16mf4_m)))
-vuint16mf4_t vloxei64(vbool64_t op0, vuint16mf4_t op1, const uint16_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i32m1)))
-vint32m1_t vloxei8(const int32_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i32m1_m)))
-vint32m1_t vloxei8(vbool32_t op0, vint32m1_t op1, const int32_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i32m2)))
-vint32m2_t vloxei8(const int32_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i32m2_m)))
-vint32m2_t vloxei8(vbool16_t op0, vint32m2_t op1, const int32_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i32m4)))
-vint32m4_t vloxei8(const int32_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i32m4_m)))
-vint32m4_t vloxei8(vbool8_t op0, vint32m4_t op1, const int32_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i32m8)))
-vint32m8_t vloxei8(const int32_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i32m8_m)))
-vint32m8_t vloxei8(vbool4_t op0, vint32m8_t op1, const int32_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i32mf2)))
-vint32mf2_t vloxei8(const int32_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i32mf2_m)))
-vint32mf2_t vloxei8(vbool64_t op0, vint32mf2_t op1, const int32_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u32m1)))
-vuint32m1_t vloxei8(const uint32_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u32m1_m)))
-vuint32m1_t vloxei8(vbool32_t op0, vuint32m1_t op1, const uint32_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u32m2)))
-vuint32m2_t vloxei8(const uint32_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u32m2_m)))
-vuint32m2_t vloxei8(vbool16_t op0, vuint32m2_t op1, const uint32_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u32m4)))
-vuint32m4_t vloxei8(const uint32_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u32m4_m)))
-vuint32m4_t vloxei8(vbool8_t op0, vuint32m4_t op1, const uint32_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u32m8)))
-vuint32m8_t vloxei8(const uint32_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u32m8_m)))
-vuint32m8_t vloxei8(vbool4_t op0, vuint32m8_t op1, const uint32_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u32mf2)))
-vuint32mf2_t vloxei8(const uint32_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u32mf2_m)))
-vuint32mf2_t vloxei8(vbool64_t op0, vuint32mf2_t op1, const uint32_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i32m1)))
-vint32m1_t vloxei16(const int32_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i32m1_m)))
-vint32m1_t vloxei16(vbool32_t op0, vint32m1_t op1, const int32_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i32m2)))
-vint32m2_t vloxei16(const int32_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i32m2_m)))
-vint32m2_t vloxei16(vbool16_t op0, vint32m2_t op1, const int32_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i32m4)))
-vint32m4_t vloxei16(const int32_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i32m4_m)))
-vint32m4_t vloxei16(vbool8_t op0, vint32m4_t op1, const int32_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i32m8)))
-vint32m8_t vloxei16(const int32_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i32m8_m)))
-vint32m8_t vloxei16(vbool4_t op0, vint32m8_t op1, const int32_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i32mf2)))
-vint32mf2_t vloxei16(const int32_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i32mf2_m)))
-vint32mf2_t vloxei16(vbool64_t op0, vint32mf2_t op1, const int32_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u32m1)))
-vuint32m1_t vloxei16(const uint32_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u32m1_m)))
-vuint32m1_t vloxei16(vbool32_t op0, vuint32m1_t op1, const uint32_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u32m2)))
-vuint32m2_t vloxei16(const uint32_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u32m2_m)))
-vuint32m2_t vloxei16(vbool16_t op0, vuint32m2_t op1, const uint32_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u32m4)))
-vuint32m4_t vloxei16(const uint32_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u32m4_m)))
-vuint32m4_t vloxei16(vbool8_t op0, vuint32m4_t op1, const uint32_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u32m8)))
-vuint32m8_t vloxei16(const uint32_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u32m8_m)))
-vuint32m8_t vloxei16(vbool4_t op0, vuint32m8_t op1, const uint32_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u32mf2)))
-vuint32mf2_t vloxei16(const uint32_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u32mf2_m)))
-vuint32mf2_t vloxei16(vbool64_t op0, vuint32mf2_t op1, const uint32_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i32m1)))
-vint32m1_t vloxei32(const int32_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i32m1_m)))
-vint32m1_t vloxei32(vbool32_t op0, vint32m1_t op1, const int32_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i32m2)))
-vint32m2_t vloxei32(const int32_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i32m2_m)))
-vint32m2_t vloxei32(vbool16_t op0, vint32m2_t op1, const int32_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i32m4)))
-vint32m4_t vloxei32(const int32_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i32m4_m)))
-vint32m4_t vloxei32(vbool8_t op0, vint32m4_t op1, const int32_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i32m8)))
-vint32m8_t vloxei32(const int32_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i32m8_m)))
-vint32m8_t vloxei32(vbool4_t op0, vint32m8_t op1, const int32_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i32mf2)))
-vint32mf2_t vloxei32(const int32_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i32mf2_m)))
-vint32mf2_t vloxei32(vbool64_t op0, vint32mf2_t op1, const int32_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u32m1)))
-vuint32m1_t vloxei32(const uint32_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u32m1_m)))
-vuint32m1_t vloxei32(vbool32_t op0, vuint32m1_t op1, const uint32_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u32m2)))
-vuint32m2_t vloxei32(const uint32_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u32m2_m)))
-vuint32m2_t vloxei32(vbool16_t op0, vuint32m2_t op1, const uint32_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u32m4)))
-vuint32m4_t vloxei32(const uint32_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u32m4_m)))
-vuint32m4_t vloxei32(vbool8_t op0, vuint32m4_t op1, const uint32_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u32m8)))
-vuint32m8_t vloxei32(const uint32_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u32m8_m)))
-vuint32m8_t vloxei32(vbool4_t op0, vuint32m8_t op1, const uint32_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u32mf2)))
-vuint32mf2_t vloxei32(const uint32_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u32mf2_m)))
-vuint32mf2_t vloxei32(vbool64_t op0, vuint32mf2_t op1, const uint32_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i32m1)))
-vint32m1_t vloxei64(const int32_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i32m1_m)))
-vint32m1_t vloxei64(vbool32_t op0, vint32m1_t op1, const int32_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i32m2)))
-vint32m2_t vloxei64(const int32_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i32m2_m)))
-vint32m2_t vloxei64(vbool16_t op0, vint32m2_t op1, const int32_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i32m4)))
-vint32m4_t vloxei64(const int32_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i32m4_m)))
-vint32m4_t vloxei64(vbool8_t op0, vint32m4_t op1, const int32_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i32mf2)))
-vint32mf2_t vloxei64(const int32_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i32mf2_m)))
-vint32mf2_t vloxei64(vbool64_t op0, vint32mf2_t op1, const int32_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u32m1)))
-vuint32m1_t vloxei64(const uint32_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u32m1_m)))
-vuint32m1_t vloxei64(vbool32_t op0, vuint32m1_t op1, const uint32_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u32m2)))
-vuint32m2_t vloxei64(const uint32_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u32m2_m)))
-vuint32m2_t vloxei64(vbool16_t op0, vuint32m2_t op1, const uint32_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u32m4)))
-vuint32m4_t vloxei64(const uint32_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u32m4_m)))
-vuint32m4_t vloxei64(vbool8_t op0, vuint32m4_t op1, const uint32_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u32mf2)))
-vuint32mf2_t vloxei64(const uint32_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u32mf2_m)))
-vuint32mf2_t vloxei64(vbool64_t op0, vuint32mf2_t op1, const uint32_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i64m1)))
-vint64m1_t vloxei8(const int64_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i64m1_m)))
-vint64m1_t vloxei8(vbool64_t op0, vint64m1_t op1, const int64_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i64m2)))
-vint64m2_t vloxei8(const int64_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i64m2_m)))
-vint64m2_t vloxei8(vbool32_t op0, vint64m2_t op1, const int64_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i64m4)))
-vint64m4_t vloxei8(const int64_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i64m4_m)))
-vint64m4_t vloxei8(vbool16_t op0, vint64m4_t op1, const int64_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i64m8)))
-vint64m8_t vloxei8(const int64_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_i64m8_m)))
-vint64m8_t vloxei8(vbool8_t op0, vint64m8_t op1, const int64_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8m1)))
-void vse8(int8_t * op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8m1_m)))
-void vse8(vbool8_t op0, int8_t * op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8m2)))
-void vse8(int8_t * op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8m2_m)))
-void vse8(vbool4_t op0, int8_t * op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8m4)))
-void vse8(int8_t * op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8m4_m)))
-void vse8(vbool2_t op0, int8_t * op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8m8)))
-void vse8(int8_t * op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8m8_m)))
-void vse8(vbool1_t op0, int8_t * op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8mf2)))
-void vse8(int8_t * op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8mf2_m)))
-void vse8(vbool16_t op0, int8_t * op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8mf4)))
-void vse8(int8_t * op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8mf4_m)))
-void vse8(vbool32_t op0, int8_t * op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8mf8)))
-void vse8(int8_t * op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_i8mf8_m)))
-void vse8(vbool64_t op0, int8_t * op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u64m1)))
-vuint64m1_t vloxei8(const uint64_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u64m1_m)))
-vuint64m1_t vloxei8(vbool64_t op0, vuint64m1_t op1, const uint64_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u64m2)))
-vuint64m2_t vloxei8(const uint64_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u64m2_m)))
-vuint64m2_t vloxei8(vbool32_t op0, vuint64m2_t op1, const uint64_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u64m4)))
-vuint64m4_t vloxei8(const uint64_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u64m4_m)))
-vuint64m4_t vloxei8(vbool16_t op0, vuint64m4_t op1, const uint64_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u64m8)))
-vuint64m8_t vloxei8(const uint64_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_u64m8_m)))
-vuint64m8_t vloxei8(vbool8_t op0, vuint64m8_t op1, const uint64_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i64m1)))
-vint64m1_t vloxei16(const int64_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i64m1_m)))
-vint64m1_t vloxei16(vbool64_t op0, vint64m1_t op1, const int64_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i64m2)))
-vint64m2_t vloxei16(const int64_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i64m2_m)))
-vint64m2_t vloxei16(vbool32_t op0, vint64m2_t op1, const int64_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i64m4)))
-vint64m4_t vloxei16(const int64_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i64m4_m)))
-vint64m4_t vloxei16(vbool16_t op0, vint64m4_t op1, const int64_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i64m8)))
-vint64m8_t vloxei16(const int64_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_i64m8_m)))
-vint64m8_t vloxei16(vbool8_t op0, vint64m8_t op1, const int64_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u64m1)))
-vuint64m1_t vloxei16(const uint64_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u64m1_m)))
-vuint64m1_t vloxei16(vbool64_t op0, vuint64m1_t op1, const uint64_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u64m2)))
-vuint64m2_t vloxei16(const uint64_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u64m2_m)))
-vuint64m2_t vloxei16(vbool32_t op0, vuint64m2_t op1, const uint64_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u64m4)))
-vuint64m4_t vloxei16(const uint64_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u64m4_m)))
-vuint64m4_t vloxei16(vbool16_t op0, vuint64m4_t op1, const uint64_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u64m8)))
-vuint64m8_t vloxei16(const uint64_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_u64m8_m)))
-vuint64m8_t vloxei16(vbool8_t op0, vuint64m8_t op1, const uint64_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i64m1)))
-vint64m1_t vloxei32(const int64_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i64m1_m)))
-vint64m1_t vloxei32(vbool64_t op0, vint64m1_t op1, const int64_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i64m2)))
-vint64m2_t vloxei32(const int64_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i64m2_m)))
-vint64m2_t vloxei32(vbool32_t op0, vint64m2_t op1, const int64_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i64m4)))
-vint64m4_t vloxei32(const int64_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i64m4_m)))
-vint64m4_t vloxei32(vbool16_t op0, vint64m4_t op1, const int64_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i64m8)))
-vint64m8_t vloxei32(const int64_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_i64m8_m)))
-vint64m8_t vloxei32(vbool8_t op0, vint64m8_t op1, const int64_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u64m1)))
-vuint64m1_t vloxei32(const uint64_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u64m1_m)))
-vuint64m1_t vloxei32(vbool64_t op0, vuint64m1_t op1, const uint64_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u64m2)))
-vuint64m2_t vloxei32(const uint64_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u64m2_m)))
-vuint64m2_t vloxei32(vbool32_t op0, vuint64m2_t op1, const uint64_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u64m4)))
-vuint64m4_t vloxei32(const uint64_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u64m4_m)))
-vuint64m4_t vloxei32(vbool16_t op0, vuint64m4_t op1, const uint64_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u64m8)))
-vuint64m8_t vloxei32(const uint64_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_u64m8_m)))
-vuint64m8_t vloxei32(vbool8_t op0, vuint64m8_t op1, const uint64_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i64m1)))
-vint64m1_t vloxei64(const int64_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i64m1_m)))
-vint64m1_t vloxei64(vbool64_t op0, vint64m1_t op1, const int64_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i64m2)))
-vint64m2_t vloxei64(const int64_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i64m2_m)))
-vint64m2_t vloxei64(vbool32_t op0, vint64m2_t op1, const int64_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i64m4)))
-vint64m4_t vloxei64(const int64_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i64m4_m)))
-vint64m4_t vloxei64(vbool16_t op0, vint64m4_t op1, const int64_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i64m8)))
-vint64m8_t vloxei64(const int64_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_i64m8_m)))
-vint64m8_t vloxei64(vbool8_t op0, vint64m8_t op1, const int64_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u64m1)))
-vuint64m1_t vloxei64(const uint64_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u64m1_m)))
-vuint64m1_t vloxei64(vbool64_t op0, vuint64m1_t op1, const uint64_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u64m2)))
-vuint64m2_t vloxei64(const uint64_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u64m2_m)))
-vuint64m2_t vloxei64(vbool32_t op0, vuint64m2_t op1, const uint64_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u64m4)))
-vuint64m4_t vloxei64(const uint64_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u64m4_m)))
-vuint64m4_t vloxei64(vbool16_t op0, vuint64m4_t op1, const uint64_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u64m8)))
-vuint64m8_t vloxei64(const uint64_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_u64m8_m)))
-vuint64m8_t vloxei64(vbool8_t op0, vuint64m8_t op1, const uint64_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8m1)))
-void vse8(uint8_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8m1_m)))
-void vse8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8m2)))
-void vse8(uint8_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8m2_m)))
-void vse8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8m4)))
-void vse8(uint8_t * op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8m4_m)))
-void vse8(vbool2_t op0, uint8_t * op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8m8)))
-void vse8(uint8_t * op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8m8_m)))
-void vse8(vbool1_t op0, uint8_t * op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8mf2)))
-void vse8(uint8_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8mf2_m)))
-void vse8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8mf4)))
-void vse8(uint8_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8mf4_m)))
-void vse8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8mf8)))
-void vse8(uint8_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse8_v_u8mf8_m)))
-void vse8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16mf4)))
-vuint16mf4_t vwaddu_wv(vuint16mf4_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16mf4_m)))
-vuint16mf4_t vwaddu_wv(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16mf2)))
-vuint16mf2_t vwaddu_wv(vuint16mf2_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16mf2_m)))
-vuint16mf2_t vwaddu_wv(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16m1)))
-vuint16m1_t vwaddu_wv(vuint16m1_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16m1_m)))
-vuint16m1_t vwaddu_wv(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16m2)))
-vuint16m2_t vwaddu_wv(vuint16m2_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16m2_m)))
-vuint16m2_t vwaddu_wv(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16m4)))
-vuint16m4_t vwaddu_wv(vuint16m4_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16m4_m)))
-vuint16m4_t vwaddu_wv(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16m8)))
-vuint16m8_t vwaddu_wv(vuint16m8_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u16m8_m)))
-vuint16m8_t vwaddu_wv(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u32mf2)))
-vuint32mf2_t vwaddu_wv(vuint32mf2_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u32mf2_m)))
-vuint32mf2_t vwaddu_wv(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u32m1)))
-vuint32m1_t vwaddu_wv(vuint32m1_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u32m1_m)))
-vuint32m1_t vwaddu_wv(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u32m2)))
-vuint32m2_t vwaddu_wv(vuint32m2_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u32m2_m)))
-vuint32m2_t vwaddu_wv(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u32m4)))
-vuint32m4_t vwaddu_wv(vuint32m4_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u32m4_m)))
-vuint32m4_t vwaddu_wv(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u32m8)))
-vuint32m8_t vwaddu_wv(vuint32m8_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u32m8_m)))
-vuint32m8_t vwaddu_wv(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u64m1)))
-vuint64m1_t vwaddu_wv(vuint64m1_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u64m1_m)))
-vuint64m1_t vwaddu_wv(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u64m2)))
-vuint64m2_t vwaddu_wv(vuint64m2_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u64m2_m)))
-vuint64m2_t vwaddu_wv(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u64m4)))
-vuint64m4_t vwaddu_wv(vuint64m4_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u64m4_m)))
-vuint64m4_t vwaddu_wv(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u64m8)))
-vuint64m8_t vwaddu_wv(vuint64m8_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wv_u64m8_m)))
-vuint64m8_t vwaddu_wv(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8m1)))
-void vsse8(int8_t * op0, ptrdiff_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8m1_m)))
-void vsse8(vbool8_t op0, int8_t * op1, ptrdiff_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8m2)))
-void vsse8(int8_t * op0, ptrdiff_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8m2_m)))
-void vsse8(vbool4_t op0, int8_t * op1, ptrdiff_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8m4)))
-void vsse8(int8_t * op0, ptrdiff_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8m4_m)))
-void vsse8(vbool2_t op0, int8_t * op1, ptrdiff_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8m8)))
-void vsse8(int8_t * op0, ptrdiff_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8m8_m)))
-void vsse8(vbool1_t op0, int8_t * op1, ptrdiff_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8mf2)))
-void vsse8(int8_t * op0, ptrdiff_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8mf2_m)))
-void vsse8(vbool16_t op0, int8_t * op1, ptrdiff_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8mf4)))
-void vsse8(int8_t * op0, ptrdiff_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8mf4_m)))
-void vsse8(vbool32_t op0, int8_t * op1, ptrdiff_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8mf8)))
-void vsse8(int8_t * op0, ptrdiff_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_i8mf8_m)))
-void vsse8(vbool64_t op0, int8_t * op1, ptrdiff_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8m1)))
-void vsuxei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8m1_m)))
-void vsuxei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8m2)))
-void vsuxei16(int8_t * op0, vuint16m4_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8m2_m)))
-void vsuxei16(vbool4_t op0, int8_t * op1, vuint16m4_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8m4)))
-void vsuxei16(int8_t * op0, vuint16m8_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8m4_m)))
-void vsuxei16(vbool2_t op0, int8_t * op1, vuint16m8_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8mf2)))
-void vsuxei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8mf2_m)))
-void vsuxei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8mf4)))
-void vsuxei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8mf4_m)))
-void vsuxei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8mf8)))
-void vsuxei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i8mf8_m)))
-void vsuxei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8m1)))
-void vsuxei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8m1_m)))
-void vsuxei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8m2)))
-void vsuxei16(uint8_t * op0, vuint16m4_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8m2_m)))
-void vsuxei16(vbool4_t op0, uint8_t * op1, vuint16m4_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8m4)))
-void vsuxei16(uint8_t * op0, vuint16m8_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8m4_m)))
-void vsuxei16(vbool2_t op0, uint8_t * op1, vuint16m8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8mf2)))
-void vsuxei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8mf2_m)))
-void vsuxei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8mf4)))
-void vsuxei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8mf4_m)))
-void vsuxei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8mf8)))
-void vsuxei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u8mf8_m)))
-void vsuxei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i8m1)))
-void vsuxei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i8m1_m)))
-void vsuxei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i8m2)))
-void vsuxei32(int8_t * op0, vuint32m8_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i8m2_m)))
-void vsuxei32(vbool4_t op0, int8_t * op1, vuint32m8_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i8mf2)))
-void vsuxei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i8mf2_m)))
-void vsuxei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i8mf4)))
-void vsuxei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i8mf4_m)))
-void vsuxei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i8mf8)))
-void vsuxei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i8mf8_m)))
-void vsuxei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8m1)))
-vint8m1_t vadd(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8m1_m)))
-vint8m1_t vadd(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8m2)))
-vint8m2_t vadd(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8m2_m)))
-vint8m2_t vadd(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8m4)))
-vint8m4_t vadd(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8m4_m)))
-vint8m4_t vadd(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8m8)))
-vint8m8_t vadd(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8m8_m)))
-vint8m8_t vadd(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8mf2)))
-vint8mf2_t vadd(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8mf2_m)))
-vint8mf2_t vadd(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8mf4)))
-vint8mf4_t vadd(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8mf4_m)))
-vint8mf4_t vadd(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8mf8)))
-vint8mf8_t vadd(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i8mf8_m)))
-vint8mf8_t vadd(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16m1)))
-vint16m1_t vadd(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16m1_m)))
-vint16m1_t vadd(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16m2)))
-vint16m2_t vadd(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16m2_m)))
-vint16m2_t vadd(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16m4)))
-vint16m4_t vadd(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16m4_m)))
-vint16m4_t vadd(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16m8)))
-vint16m8_t vadd(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16m8_m)))
-vint16m8_t vadd(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16mf2)))
-vint16mf2_t vadd(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16mf2_m)))
-vint16mf2_t vadd(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16mf4)))
-vint16mf4_t vadd(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i16mf4_m)))
-vint16mf4_t vadd(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i32m1)))
-vint32m1_t vadd(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i32m1_m)))
-vint32m1_t vadd(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i32m2)))
-vint32m2_t vadd(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i32m2_m)))
-vint32m2_t vadd(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i32m4)))
-vint32m4_t vadd(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i32m4_m)))
-vint32m4_t vadd(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i32m8)))
-vint32m8_t vadd(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i32m8_m)))
-vint32m8_t vadd(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i32mf2)))
-vint32mf2_t vadd(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i32mf2_m)))
-vint32mf2_t vadd(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i64m1)))
-vint64m1_t vadd(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i64m1_m)))
-vint64m1_t vadd(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i64m2)))
-vint64m2_t vadd(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i64m2_m)))
-vint64m2_t vadd(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i64m4)))
-vint64m4_t vadd(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i64m4_m)))
-vint64m4_t vadd(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i64m8)))
-vint64m8_t vadd(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_i64m8_m)))
-vint64m8_t vadd(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8m1)))
-vuint8m1_t vadd(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8m1_m)))
-vuint8m1_t vadd(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8m2)))
-vuint8m2_t vadd(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8m2_m)))
-vuint8m2_t vadd(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8m4)))
-vuint8m4_t vadd(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8m4_m)))
-vuint8m4_t vadd(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8m8)))
-vuint8m8_t vadd(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8m8_m)))
-vuint8m8_t vadd(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8mf2)))
-vuint8mf2_t vadd(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8mf2_m)))
-vuint8mf2_t vadd(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8mf4)))
-vuint8mf4_t vadd(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8mf4_m)))
-vuint8mf4_t vadd(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8mf8)))
-vuint8mf8_t vadd(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u8mf8_m)))
-vuint8mf8_t vadd(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16m1)))
-vuint16m1_t vadd(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16m1_m)))
-vuint16m1_t vadd(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16m2)))
-vuint16m2_t vadd(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16m2_m)))
-vuint16m2_t vadd(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16m4)))
-vuint16m4_t vadd(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16m4_m)))
-vuint16m4_t vadd(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16m8)))
-vuint16m8_t vadd(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16m8_m)))
-vuint16m8_t vadd(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16mf2)))
-vuint16mf2_t vadd(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16mf2_m)))
-vuint16mf2_t vadd(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16mf4)))
-vuint16mf4_t vadd(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u16mf4_m)))
-vuint16mf4_t vadd(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u32m1)))
-vuint32m1_t vadd(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u32m1_m)))
-vuint32m1_t vadd(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u32m2)))
-vuint32m2_t vadd(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u32m2_m)))
-vuint32m2_t vadd(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u32m4)))
-vuint32m4_t vadd(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u32m4_m)))
-vuint32m4_t vadd(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u32m8)))
-vuint32m8_t vadd(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u32m8_m)))
-vuint32m8_t vadd(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u32mf2)))
-vuint32mf2_t vadd(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u32mf2_m)))
-vuint32mf2_t vadd(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u64m1)))
-vuint64m1_t vadd(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u64m1_m)))
-vuint64m1_t vadd(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u64m2)))
-vuint64m2_t vadd(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u64m2_m)))
-vuint64m2_t vadd(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u64m4)))
-vuint64m4_t vadd(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u64m4_m)))
-vuint64m4_t vadd(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u64m8)))
-vuint64m8_t vadd(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vv_u64m8_m)))
-vuint64m8_t vadd(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8m1)))
-vuint8m1_t vadd(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8m1_m)))
-vuint8m1_t vadd(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8m2)))
-vuint8m2_t vadd(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8m2_m)))
-vuint8m2_t vadd(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8m4)))
-vuint8m4_t vadd(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8m4_m)))
-vuint8m4_t vadd(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8m8)))
-vuint8m8_t vadd(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8m8_m)))
-vuint8m8_t vadd(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8mf2)))
-vuint8mf2_t vadd(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8mf2_m)))
-vuint8mf2_t vadd(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8mf4)))
-vuint8mf4_t vadd(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8mf4_m)))
-vuint8mf4_t vadd(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8mf8)))
-vuint8mf8_t vadd(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u8mf8_m)))
-vuint8mf8_t vadd(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16m1)))
-vuint16m1_t vadd(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16m1_m)))
-vuint16m1_t vadd(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16m2)))
-vuint16m2_t vadd(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16m2_m)))
-vuint16m2_t vadd(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16m4)))
-vuint16m4_t vadd(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16m4_m)))
-vuint16m4_t vadd(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16m8)))
-vuint16m8_t vadd(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16m8_m)))
-vuint16m8_t vadd(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16mf2)))
-vuint16mf2_t vadd(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16mf2_m)))
-vuint16mf2_t vadd(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16mf4)))
-vuint16mf4_t vadd(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u16mf4_m)))
-vuint16mf4_t vadd(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u32m1)))
-vuint32m1_t vadd(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u32m1_m)))
-vuint32m1_t vadd(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u32m2)))
-vuint32m2_t vadd(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u32m2_m)))
-vuint32m2_t vadd(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u32m4)))
-vuint32m4_t vadd(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u32m4_m)))
-vuint32m4_t vadd(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u32m8)))
-vuint32m8_t vadd(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u32m8_m)))
-vuint32m8_t vadd(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u32mf2)))
-vuint32mf2_t vadd(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u32mf2_m)))
-vuint32mf2_t vadd(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u64m1)))
-vuint64m1_t vadd(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u64m1_m)))
-vuint64m1_t vadd(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u64m2)))
-vuint64m2_t vadd(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u64m2_m)))
-vuint64m2_t vadd(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u64m4)))
-vuint64m4_t vadd(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u64m4_m)))
-vuint64m4_t vadd(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u64m8)))
-vuint64m8_t vadd(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadd_vx_u64m8_m)))
-vuint64m8_t vadd(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8m1)))
-vint8m1_t vsub(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8m1_m)))
-vint8m1_t vsub(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8m2)))
-vint8m2_t vsub(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8m2_m)))
-vint8m2_t vsub(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8m4)))
-vint8m4_t vsub(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8m4_m)))
-vint8m4_t vsub(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8m8)))
-vint8m8_t vsub(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8m8_m)))
-vint8m8_t vsub(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8mf2)))
-vint8mf2_t vsub(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8mf2_m)))
-vint8mf2_t vsub(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8mf4)))
-vint8mf4_t vsub(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8mf4_m)))
-vint8mf4_t vsub(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8mf8)))
-vint8mf8_t vsub(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i8mf8_m)))
-vint8mf8_t vsub(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16m1)))
-vint16m1_t vsub(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16m1_m)))
-vint16m1_t vsub(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16m2)))
-vint16m2_t vsub(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16m2_m)))
-vint16m2_t vsub(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16m4)))
-vint16m4_t vsub(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16m4_m)))
-vint16m4_t vsub(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16m8)))
-vint16m8_t vsub(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16m8_m)))
-vint16m8_t vsub(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16mf2)))
-vint16mf2_t vsub(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16mf2_m)))
-vint16mf2_t vsub(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16mf4)))
-vint16mf4_t vsub(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i16mf4_m)))
-vint16mf4_t vsub(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i32m1)))
-vint32m1_t vsub(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i32m1_m)))
-vint32m1_t vsub(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i32m2)))
-vint32m2_t vsub(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i32m2_m)))
-vint32m2_t vsub(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i32m4)))
-vint32m4_t vsub(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i32m4_m)))
-vint32m4_t vsub(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i32m8)))
-vint32m8_t vsub(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i32m8_m)))
-vint32m8_t vsub(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i32mf2)))
-vint32mf2_t vsub(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i32mf2_m)))
-vint32mf2_t vsub(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i64m1)))
-vint64m1_t vsub(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i64m1_m)))
-vint64m1_t vsub(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i64m2)))
-vint64m2_t vsub(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i64m2_m)))
-vint64m2_t vsub(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i64m4)))
-vint64m4_t vsub(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i64m4_m)))
-vint64m4_t vsub(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i64m8)))
-vint64m8_t vsub(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_i64m8_m)))
-vint64m8_t vsub(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u8m1)))
-void vsuxei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u8m1_m)))
-void vsuxei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u8m2)))
-void vsuxei32(uint8_t * op0, vuint32m8_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u8m2_m)))
-void vsuxei32(vbool4_t op0, uint8_t * op1, vuint32m8_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u8mf2)))
-void vsuxei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u8mf2_m)))
-void vsuxei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u8mf4)))
-void vsuxei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u8mf4_m)))
-void vsuxei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u8mf8)))
-void vsuxei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u8mf8_m)))
-void vsuxei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8m1)))
-vint8m1_t vsub(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8m1_m)))
-vint8m1_t vsub(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8m2)))
-vint8m2_t vsub(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8m2_m)))
-vint8m2_t vsub(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8m4)))
-vint8m4_t vsub(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8m4_m)))
-vint8m4_t vsub(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8m8)))
-vint8m8_t vsub(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8m8_m)))
-vint8m8_t vsub(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8mf2)))
-vint8mf2_t vsub(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8mf2_m)))
-vint8mf2_t vsub(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8mf4)))
-vint8mf4_t vsub(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8mf4_m)))
-vint8mf4_t vsub(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8mf8)))
-vint8mf8_t vsub(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i8mf8_m)))
-vint8mf8_t vsub(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16m1)))
-vint16m1_t vsub(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16m1_m)))
-vint16m1_t vsub(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16m2)))
-vint16m2_t vsub(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16m2_m)))
-vint16m2_t vsub(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16m4)))
-vint16m4_t vsub(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16m4_m)))
-vint16m4_t vsub(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16m8)))
-vint16m8_t vsub(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16m8_m)))
-vint16m8_t vsub(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16mf2)))
-vint16mf2_t vsub(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16mf2_m)))
-vint16mf2_t vsub(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16mf4)))
-vint16mf4_t vsub(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i16mf4_m)))
-vint16mf4_t vsub(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i32m1)))
-vint32m1_t vsub(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i32m1_m)))
-vint32m1_t vsub(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i32m2)))
-vint32m2_t vsub(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i32m2_m)))
-vint32m2_t vsub(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i32m4)))
-vint32m4_t vsub(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i32m4_m)))
-vint32m4_t vsub(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i32m8)))
-vint32m8_t vsub(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i32m8_m)))
-vint32m8_t vsub(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i32mf2)))
-vint32mf2_t vsub(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i32mf2_m)))
-vint32mf2_t vsub(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i64m1)))
-vint64m1_t vsub(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i64m1_m)))
-vint64m1_t vsub(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i64m2)))
-vint64m2_t vsub(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i64m2_m)))
-vint64m2_t vsub(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i64m4)))
-vint64m4_t vsub(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i64m4_m)))
-vint64m4_t vsub(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i64m8)))
-vint64m8_t vsub(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_i64m8_m)))
-vint64m8_t vsub(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8m1)))
-vuint8m1_t vsub(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8m1_m)))
-vuint8m1_t vsub(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8m2)))
-vuint8m2_t vsub(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8m2_m)))
-vuint8m2_t vsub(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8m4)))
-vuint8m4_t vsub(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8m4_m)))
-vuint8m4_t vsub(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8m8)))
-vuint8m8_t vsub(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8m8_m)))
-vuint8m8_t vsub(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8mf2)))
-vuint8mf2_t vsub(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8mf2_m)))
-vuint8mf2_t vsub(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8mf4)))
-vuint8mf4_t vsub(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8mf4_m)))
-vuint8mf4_t vsub(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8mf8)))
-vuint8mf8_t vsub(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u8mf8_m)))
-vuint8mf8_t vsub(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16m1)))
-vuint16m1_t vsub(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16m1_m)))
-vuint16m1_t vsub(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16m2)))
-vuint16m2_t vsub(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16m2_m)))
-vuint16m2_t vsub(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16m4)))
-vuint16m4_t vsub(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16m4_m)))
-vuint16m4_t vsub(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16m8)))
-vuint16m8_t vsub(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16m8_m)))
-vuint16m8_t vsub(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16mf2)))
-vuint16mf2_t vsub(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16mf2_m)))
-vuint16mf2_t vsub(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16mf4)))
-vuint16mf4_t vsub(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u16mf4_m)))
-vuint16mf4_t vsub(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u32m1)))
-vuint32m1_t vsub(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u32m1_m)))
-vuint32m1_t vsub(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u32m2)))
-vuint32m2_t vsub(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u32m2_m)))
-vuint32m2_t vsub(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u32m4)))
-vuint32m4_t vsub(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u32m4_m)))
-vuint32m4_t vsub(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u32m8)))
-vuint32m8_t vsub(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u32m8_m)))
-vuint32m8_t vsub(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u32mf2)))
-vuint32mf2_t vsub(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u32mf2_m)))
-vuint32mf2_t vsub(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u64m1)))
-vuint64m1_t vsub(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u64m1_m)))
-vuint64m1_t vsub(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u64m2)))
-vuint64m2_t vsub(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u64m2_m)))
-vuint64m2_t vsub(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u64m4)))
-vuint64m4_t vsub(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u64m4_m)))
-vuint64m4_t vsub(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u64m8)))
-vuint64m8_t vsub(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vv_u64m8_m)))
-vuint64m8_t vsub(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8m1)))
-vuint8m1_t vsub(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8m1_m)))
-vuint8m1_t vsub(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8m2)))
-vuint8m2_t vsub(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8m2_m)))
-vuint8m2_t vsub(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8m4)))
-vuint8m4_t vsub(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8m4_m)))
-vuint8m4_t vsub(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8m8)))
-vuint8m8_t vsub(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8m8_m)))
-vuint8m8_t vsub(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8mf2)))
-vuint8mf2_t vsub(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8mf2_m)))
-vuint8mf2_t vsub(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8mf4)))
-vuint8mf4_t vsub(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8mf4_m)))
-vuint8mf4_t vsub(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8mf8)))
-vuint8mf8_t vsub(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u8mf8_m)))
-vuint8mf8_t vsub(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16m1)))
-vuint16m1_t vsub(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16m1_m)))
-vuint16m1_t vsub(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16m2)))
-vuint16m2_t vsub(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16m2_m)))
-vuint16m2_t vsub(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16m4)))
-vuint16m4_t vsub(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16m4_m)))
-vuint16m4_t vsub(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16m8)))
-vuint16m8_t vsub(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16m8_m)))
-vuint16m8_t vsub(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16mf2)))
-vuint16mf2_t vsub(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16mf2_m)))
-vuint16mf2_t vsub(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16mf4)))
-vuint16mf4_t vsub(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u16mf4_m)))
-vuint16mf4_t vsub(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u32m1)))
-vuint32m1_t vsub(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u32m1_m)))
-vuint32m1_t vsub(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u32m2)))
-vuint32m2_t vsub(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u32m2_m)))
-vuint32m2_t vsub(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u32m4)))
-vuint32m4_t vsub(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u32m4_m)))
-vuint32m4_t vsub(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u32m8)))
-vuint32m8_t vsub(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u32m8_m)))
-vuint32m8_t vsub(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u32mf2)))
-vuint32mf2_t vsub(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u32mf2_m)))
-vuint32mf2_t vsub(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u64m1)))
-vuint64m1_t vsub(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u64m1_m)))
-vuint64m1_t vsub(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u64m2)))
-vuint64m2_t vsub(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u64m2_m)))
-vuint64m2_t vsub(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u64m4)))
-vuint64m4_t vsub(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u64m4_m)))
-vuint64m4_t vsub(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u64m8)))
-vuint64m8_t vsub(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsub_vx_u64m8_m)))
-vuint64m8_t vsub(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8m1)))
-vint8m1_t vrsub(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8m1_m)))
-vint8m1_t vrsub(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8m2)))
-vint8m2_t vrsub(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8m2_m)))
-vint8m2_t vrsub(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8m4)))
-vint8m4_t vrsub(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8m4_m)))
-vint8m4_t vrsub(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8m8)))
-vint8m8_t vrsub(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8m8_m)))
-vint8m8_t vrsub(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8mf2)))
-vint8mf2_t vrsub(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8mf2_m)))
-vint8mf2_t vrsub(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8mf4)))
-vint8mf4_t vrsub(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8mf4_m)))
-vint8mf4_t vrsub(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8mf8)))
-vint8mf8_t vrsub(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i8mf8_m)))
-vint8mf8_t vrsub(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16m1)))
-vint16m1_t vrsub(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16m1_m)))
-vint16m1_t vrsub(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16m2)))
-vint16m2_t vrsub(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16m2_m)))
-vint16m2_t vrsub(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16m4)))
-vint16m4_t vrsub(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16m4_m)))
-vint16m4_t vrsub(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16m8)))
-vint16m8_t vrsub(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16m8_m)))
-vint16m8_t vrsub(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16mf2)))
-vint16mf2_t vrsub(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16mf2_m)))
-vint16mf2_t vrsub(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16mf4)))
-vint16mf4_t vrsub(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i16mf4_m)))
-vint16mf4_t vrsub(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i32m1)))
-vint32m1_t vrsub(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i32m1_m)))
-vint32m1_t vrsub(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i32m2)))
-vint32m2_t vrsub(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i32m2_m)))
-vint32m2_t vrsub(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i32m4)))
-vint32m4_t vrsub(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i32m4_m)))
-vint32m4_t vrsub(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i32m8)))
-vint32m8_t vrsub(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i32m8_m)))
-vint32m8_t vrsub(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i32mf2)))
-vint32mf2_t vrsub(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i32mf2_m)))
-vint32mf2_t vrsub(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i64m1)))
-vint64m1_t vrsub(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i64m1_m)))
-vint64m1_t vrsub(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i64m2)))
-vint64m2_t vrsub(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i64m2_m)))
-vint64m2_t vrsub(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i64m4)))
-vint64m4_t vrsub(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i64m4_m)))
-vint64m4_t vrsub(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i64m8)))
-vint64m8_t vrsub(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_i64m8_m)))
-vint64m8_t vrsub(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8m1)))
-vuint8m1_t vrsub(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8m1_m)))
-vuint8m1_t vrsub(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8m2)))
-vuint8m2_t vrsub(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8m2_m)))
-vuint8m2_t vrsub(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8m4)))
-vuint8m4_t vrsub(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8m4_m)))
-vuint8m4_t vrsub(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8m8)))
-vuint8m8_t vrsub(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8m8_m)))
-vuint8m8_t vrsub(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8mf2)))
-vuint8mf2_t vrsub(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8mf2_m)))
-vuint8mf2_t vrsub(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8mf4)))
-vuint8mf4_t vrsub(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8mf4_m)))
-vuint8mf4_t vrsub(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8mf8)))
-vuint8mf8_t vrsub(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u8mf8_m)))
-vuint8mf8_t vrsub(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16m1)))
-vuint16m1_t vrsub(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16m1_m)))
-vuint16m1_t vrsub(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16m2)))
-vuint16m2_t vrsub(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16m2_m)))
-vuint16m2_t vrsub(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16m4)))
-vuint16m4_t vrsub(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16m4_m)))
-vuint16m4_t vrsub(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16m8)))
-vuint16m8_t vrsub(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16m8_m)))
-vuint16m8_t vrsub(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16mf2)))
-vuint16mf2_t vrsub(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16mf2_m)))
-vuint16mf2_t vrsub(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16mf4)))
-vuint16mf4_t vrsub(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u16mf4_m)))
-vuint16mf4_t vrsub(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u32m1)))
-vuint32m1_t vrsub(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u32m1_m)))
-vuint32m1_t vrsub(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u32m2)))
-vuint32m2_t vrsub(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u32m2_m)))
-vuint32m2_t vrsub(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u32m4)))
-vuint32m4_t vrsub(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u32m4_m)))
-vuint32m4_t vrsub(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u32m8)))
-vuint32m8_t vrsub(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u32m8_m)))
-vuint32m8_t vrsub(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u32mf2)))
-vuint32mf2_t vrsub(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u32mf2_m)))
-vuint32mf2_t vrsub(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u64m1)))
-vuint64m1_t vrsub(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u64m1_m)))
-vuint64m1_t vrsub(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u64m2)))
-vuint64m2_t vrsub(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u64m2_m)))
-vuint64m2_t vrsub(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u64m4)))
-vuint64m4_t vrsub(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u64m4_m)))
-vuint64m4_t vrsub(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u64m8)))
-vuint64m8_t vrsub(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrsub_vx_u64m8_m)))
-vuint64m8_t vrsub(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16mf4)))
-vuint16mf4_t vwaddu_vx(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16mf4_m)))
-vuint16mf4_t vwaddu_vx(vbool64_t op0, vuint16mf4_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16mf2)))
-vuint16mf2_t vwaddu_vx(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16mf2_m)))
-vuint16mf2_t vwaddu_vx(vbool32_t op0, vuint16mf2_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16m1)))
-vuint16m1_t vwaddu_vx(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16m1_m)))
-vuint16m1_t vwaddu_vx(vbool16_t op0, vuint16m1_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16m2)))
-vuint16m2_t vwaddu_vx(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16m2_m)))
-vuint16m2_t vwaddu_vx(vbool8_t op0, vuint16m2_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16m4)))
-vuint16m4_t vwaddu_vx(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16m4_m)))
-vuint16m4_t vwaddu_vx(vbool4_t op0, vuint16m4_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16m8)))
-vuint16m8_t vwaddu_vx(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u16m8_m)))
-vuint16m8_t vwaddu_vx(vbool2_t op0, vuint16m8_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u32mf2)))
-vuint32mf2_t vwaddu_vx(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u32mf2_m)))
-vuint32mf2_t vwaddu_vx(vbool64_t op0, vuint32mf2_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u32m1)))
-vuint32m1_t vwaddu_vx(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u32m1_m)))
-vuint32m1_t vwaddu_vx(vbool32_t op0, vuint32m1_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u32m2)))
-vuint32m2_t vwaddu_vx(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u32m2_m)))
-vuint32m2_t vwaddu_vx(vbool16_t op0, vuint32m2_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u32m4)))
-vuint32m4_t vwaddu_vx(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u32m4_m)))
-vuint32m4_t vwaddu_vx(vbool8_t op0, vuint32m4_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u32m8)))
-vuint32m8_t vwaddu_vx(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u32m8_m)))
-vuint32m8_t vwaddu_vx(vbool4_t op0, vuint32m8_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u64m1)))
-vuint64m1_t vwaddu_vx(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u64m1_m)))
-vuint64m1_t vwaddu_vx(vbool64_t op0, vuint64m1_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u64m2)))
-vuint64m2_t vwaddu_vx(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u64m2_m)))
-vuint64m2_t vwaddu_vx(vbool32_t op0, vuint64m2_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u64m4)))
-vuint64m4_t vwaddu_vx(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u64m4_m)))
-vuint64m4_t vwaddu_vx(vbool16_t op0, vuint64m4_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u64m8)))
-vuint64m8_t vwaddu_vx(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_vx_u64m8_m)))
-vuint64m8_t vwaddu_vx(vbool8_t op0, vuint64m8_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16mf4)))
-vuint16mf4_t vwsubu_vv(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16mf4_m)))
-vuint16mf4_t vwsubu_vv(vbool64_t op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16mf2)))
-vuint16mf2_t vwsubu_vv(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16mf2_m)))
-vuint16mf2_t vwsubu_vv(vbool32_t op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16m1)))
-vuint16m1_t vwsubu_vv(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16m1_m)))
-vuint16m1_t vwsubu_vv(vbool16_t op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16m2)))
-vuint16m2_t vwsubu_vv(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16m2_m)))
-vuint16m2_t vwsubu_vv(vbool8_t op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16m4)))
-vuint16m4_t vwsubu_vv(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16m4_m)))
-vuint16m4_t vwsubu_vv(vbool4_t op0, vuint16m4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16m8)))
-vuint16m8_t vwsubu_vv(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u16m8_m)))
-vuint16m8_t vwsubu_vv(vbool2_t op0, vuint16m8_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u32mf2)))
-vuint32mf2_t vwsubu_vv(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u32mf2_m)))
-vuint32mf2_t vwsubu_vv(vbool64_t op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u32m1)))
-vuint32m1_t vwsubu_vv(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u32m1_m)))
-vuint32m1_t vwsubu_vv(vbool32_t op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u32m2)))
-vuint32m2_t vwsubu_vv(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u32m2_m)))
-vuint32m2_t vwsubu_vv(vbool16_t op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u32m4)))
-vuint32m4_t vwsubu_vv(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u32m4_m)))
-vuint32m4_t vwsubu_vv(vbool8_t op0, vuint32m4_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u32m8)))
-vuint32m8_t vwsubu_vv(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u32m8_m)))
-vuint32m8_t vwsubu_vv(vbool4_t op0, vuint32m8_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u64m1)))
-vuint64m1_t vwsubu_vv(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u64m1_m)))
-vuint64m1_t vwsubu_vv(vbool64_t op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u64m2)))
-vuint64m2_t vwsubu_vv(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u64m2_m)))
-vuint64m2_t vwsubu_vv(vbool32_t op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u64m4)))
-vuint64m4_t vwsubu_vv(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u64m4_m)))
-vuint64m4_t vwsubu_vv(vbool16_t op0, vuint64m4_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u64m8)))
-vuint64m8_t vwsubu_vv(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vv_u64m8_m)))
-vuint64m8_t vwsubu_vv(vbool8_t op0, vuint64m8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16mf4)))
-vuint16mf4_t vwsubu_vx(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16mf4_m)))
-vuint16mf4_t vwsubu_vx(vbool64_t op0, vuint16mf4_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16mf2)))
-vuint16mf2_t vwsubu_vx(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16mf2_m)))
-vuint16mf2_t vwsubu_vx(vbool32_t op0, vuint16mf2_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16m1)))
-vuint16m1_t vwsubu_vx(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16m1_m)))
-vuint16m1_t vwsubu_vx(vbool16_t op0, vuint16m1_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16m2)))
-vuint16m2_t vwsubu_vx(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16m2_m)))
-vuint16m2_t vwsubu_vx(vbool8_t op0, vuint16m2_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16m4)))
-vuint16m4_t vwsubu_vx(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16m4_m)))
-vuint16m4_t vwsubu_vx(vbool4_t op0, vuint16m4_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16m8)))
-vuint16m8_t vwsubu_vx(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u16m8_m)))
-vuint16m8_t vwsubu_vx(vbool2_t op0, vuint16m8_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u32mf2)))
-vuint32mf2_t vwsubu_vx(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u32mf2_m)))
-vuint32mf2_t vwsubu_vx(vbool64_t op0, vuint32mf2_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u32m1)))
-vuint32m1_t vwsubu_vx(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u32m1_m)))
-vuint32m1_t vwsubu_vx(vbool32_t op0, vuint32m1_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u32m2)))
-vuint32m2_t vwsubu_vx(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u32m2_m)))
-vuint32m2_t vwsubu_vx(vbool16_t op0, vuint32m2_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u32m4)))
-vuint32m4_t vwsubu_vx(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u32m4_m)))
-vuint32m4_t vwsubu_vx(vbool8_t op0, vuint32m4_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u32m8)))
-vuint32m8_t vwsubu_vx(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u32m8_m)))
-vuint32m8_t vwsubu_vx(vbool4_t op0, vuint32m8_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u64m1)))
-vuint64m1_t vwsubu_vx(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u64m1_m)))
-vuint64m1_t vwsubu_vx(vbool64_t op0, vuint64m1_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u64m2)))
-vuint64m2_t vwsubu_vx(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u64m2_m)))
-vuint64m2_t vwsubu_vx(vbool32_t op0, vuint64m2_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u64m4)))
-vuint64m4_t vwsubu_vx(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u64m4_m)))
-vuint64m4_t vwsubu_vx(vbool16_t op0, vuint64m4_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u64m8)))
-vuint64m8_t vwsubu_vx(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_vx_u64m8_m)))
-vuint64m8_t vwsubu_vx(vbool8_t op0, vuint64m8_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16mf4)))
-vint16mf4_t vwadd_vv(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16mf4_m)))
-vint16mf4_t vwadd_vv(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16mf2)))
-vint16mf2_t vwadd_vv(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16mf2_m)))
-vint16mf2_t vwadd_vv(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16m1)))
-vint16m1_t vwadd_vv(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16m1_m)))
-vint16m1_t vwadd_vv(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16m2)))
-vint16m2_t vwadd_vv(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16m2_m)))
-vint16m2_t vwadd_vv(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16m4)))
-vint16m4_t vwadd_vv(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16m4_m)))
-vint16m4_t vwadd_vv(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16m8)))
-vint16m8_t vwadd_vv(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i16m8_m)))
-vint16m8_t vwadd_vv(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i32mf2)))
-vint32mf2_t vwadd_vv(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i32mf2_m)))
-vint32mf2_t vwadd_vv(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i32m1)))
-vint32m1_t vwadd_vv(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i32m1_m)))
-vint32m1_t vwadd_vv(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i32m2)))
-vint32m2_t vwadd_vv(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i32m2_m)))
-vint32m2_t vwadd_vv(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i32m4)))
-vint32m4_t vwadd_vv(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i32m4_m)))
-vint32m4_t vwadd_vv(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i32m8)))
-vint32m8_t vwadd_vv(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i32m8_m)))
-vint32m8_t vwadd_vv(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i64m1)))
-vint64m1_t vwadd_vv(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i64m1_m)))
-vint64m1_t vwadd_vv(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i64m2)))
-vint64m2_t vwadd_vv(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i64m2_m)))
-vint64m2_t vwadd_vv(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i64m4)))
-vint64m4_t vwadd_vv(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i64m4_m)))
-vint64m4_t vwadd_vv(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i64m8)))
-vint64m8_t vwadd_vv(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vv_i64m8_m)))
-vint64m8_t vwadd_vv(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16mf4)))
-vint16mf4_t vwadd_vx(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16mf4_m)))
-vint16mf4_t vwadd_vx(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16mf2)))
-vint16mf2_t vwadd_vx(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16mf2_m)))
-vint16mf2_t vwadd_vx(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16m1)))
-vint16m1_t vwadd_vx(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16m1_m)))
-vint16m1_t vwadd_vx(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16m2)))
-vint16m2_t vwadd_vx(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16m2_m)))
-vint16m2_t vwadd_vx(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16m4)))
-vint16m4_t vwadd_vx(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16m4_m)))
-vint16m4_t vwadd_vx(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16m8)))
-vint16m8_t vwadd_vx(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i16m8_m)))
-vint16m8_t vwadd_vx(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i32mf2)))
-vint32mf2_t vwadd_vx(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i32mf2_m)))
-vint32mf2_t vwadd_vx(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i32m1)))
-vint32m1_t vwadd_vx(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i32m1_m)))
-vint32m1_t vwadd_vx(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i32m2)))
-vint32m2_t vwadd_vx(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i32m2_m)))
-vint32m2_t vwadd_vx(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i32m4)))
-vint32m4_t vwadd_vx(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i32m4_m)))
-vint32m4_t vwadd_vx(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i32m8)))
-vint32m8_t vwadd_vx(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i32m8_m)))
-vint32m8_t vwadd_vx(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i64m1)))
-vint64m1_t vwadd_vx(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i64m1_m)))
-vint64m1_t vwadd_vx(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i64m2)))
-vint64m2_t vwadd_vx(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i64m2_m)))
-vint64m2_t vwadd_vx(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i64m4)))
-vint64m4_t vwadd_vx(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i64m4_m)))
-vint64m4_t vwadd_vx(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i64m8)))
-vint64m8_t vwadd_vx(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_vx_i64m8_m)))
-vint64m8_t vwadd_vx(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i8m1)))
-void vsuxei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i8m1_m)))
-void vsuxei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i8mf2)))
-void vsuxei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i8mf2_m)))
-void vsuxei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i8mf4)))
-void vsuxei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i8mf4_m)))
-void vsuxei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i8mf8)))
-void vsuxei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i8mf8_m)))
-void vsuxei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16mf4)))
-vint16mf4_t vwsub_vv(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16mf4_m)))
-vint16mf4_t vwsub_vv(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16mf2)))
-vint16mf2_t vwsub_vv(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16mf2_m)))
-vint16mf2_t vwsub_vv(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16m1)))
-vint16m1_t vwsub_vv(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16m1_m)))
-vint16m1_t vwsub_vv(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16m2)))
-vint16m2_t vwsub_vv(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16m2_m)))
-vint16m2_t vwsub_vv(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16m4)))
-vint16m4_t vwsub_vv(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16m4_m)))
-vint16m4_t vwsub_vv(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16m8)))
-vint16m8_t vwsub_vv(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i16m8_m)))
-vint16m8_t vwsub_vv(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i32mf2)))
-vint32mf2_t vwsub_vv(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i32mf2_m)))
-vint32mf2_t vwsub_vv(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i32m1)))
-vint32m1_t vwsub_vv(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i32m1_m)))
-vint32m1_t vwsub_vv(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i32m2)))
-vint32m2_t vwsub_vv(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i32m2_m)))
-vint32m2_t vwsub_vv(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i32m4)))
-vint32m4_t vwsub_vv(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i32m4_m)))
-vint32m4_t vwsub_vv(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i32m8)))
-vint32m8_t vwsub_vv(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i32m8_m)))
-vint32m8_t vwsub_vv(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i64m1)))
-vint64m1_t vwsub_vv(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i64m1_m)))
-vint64m1_t vwsub_vv(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i64m2)))
-vint64m2_t vwsub_vv(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i64m2_m)))
-vint64m2_t vwsub_vv(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i64m4)))
-vint64m4_t vwsub_vv(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i64m4_m)))
-vint64m4_t vwsub_vv(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i64m8)))
-vint64m8_t vwsub_vv(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vv_i64m8_m)))
-vint64m8_t vwsub_vv(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16mf4)))
-vint16mf4_t vwsub_vx(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16mf4_m)))
-vint16mf4_t vwsub_vx(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16mf2)))
-vint16mf2_t vwsub_vx(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16mf2_m)))
-vint16mf2_t vwsub_vx(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16m1)))
-vint16m1_t vwsub_vx(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16m1_m)))
-vint16m1_t vwsub_vx(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16m2)))
-vint16m2_t vwsub_vx(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16m2_m)))
-vint16m2_t vwsub_vx(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16m4)))
-vint16m4_t vwsub_vx(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16m4_m)))
-vint16m4_t vwsub_vx(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16m8)))
-vint16m8_t vwsub_vx(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i16m8_m)))
-vint16m8_t vwsub_vx(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i32mf2)))
-vint32mf2_t vwsub_vx(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i32mf2_m)))
-vint32mf2_t vwsub_vx(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i32m1)))
-vint32m1_t vwsub_vx(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i32m1_m)))
-vint32m1_t vwsub_vx(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i32m2)))
-vint32m2_t vwsub_vx(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i32m2_m)))
-vint32m2_t vwsub_vx(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i32m4)))
-vint32m4_t vwsub_vx(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i32m4_m)))
-vint32m4_t vwsub_vx(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i32m8)))
-vint32m8_t vwsub_vx(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i32m8_m)))
-vint32m8_t vwsub_vx(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i64m1)))
-vint64m1_t vwsub_vx(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i64m1_m)))
-vint64m1_t vwsub_vx(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i64m2)))
-vint64m2_t vwsub_vx(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i64m2_m)))
-vint64m2_t vwsub_vx(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i64m4)))
-vint64m4_t vwsub_vx(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i64m4_m)))
-vint64m4_t vwsub_vx(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i64m8)))
-vint64m8_t vwsub_vx(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_vx_i64m8_m)))
-vint64m8_t vwsub_vx(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16mf4)))
-vuint16mf4_t vwaddu_wx(vuint16mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16mf4_m)))
-vuint16mf4_t vwaddu_wx(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16mf2)))
-vuint16mf2_t vwaddu_wx(vuint16mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16mf2_m)))
-vuint16mf2_t vwaddu_wx(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16m1)))
-vuint16m1_t vwaddu_wx(vuint16m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16m1_m)))
-vuint16m1_t vwaddu_wx(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16m2)))
-vuint16m2_t vwaddu_wx(vuint16m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16m2_m)))
-vuint16m2_t vwaddu_wx(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16m4)))
-vuint16m4_t vwaddu_wx(vuint16m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16m4_m)))
-vuint16m4_t vwaddu_wx(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16m8)))
-vuint16m8_t vwaddu_wx(vuint16m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u16m8_m)))
-vuint16m8_t vwaddu_wx(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u32mf2)))
-vuint32mf2_t vwaddu_wx(vuint32mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u32mf2_m)))
-vuint32mf2_t vwaddu_wx(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u32m1)))
-vuint32m1_t vwaddu_wx(vuint32m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u32m1_m)))
-vuint32m1_t vwaddu_wx(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u32m2)))
-vuint32m2_t vwaddu_wx(vuint32m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u32m2_m)))
-vuint32m2_t vwaddu_wx(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u32m4)))
-vuint32m4_t vwaddu_wx(vuint32m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u32m4_m)))
-vuint32m4_t vwaddu_wx(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u32m8)))
-vuint32m8_t vwaddu_wx(vuint32m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u32m8_m)))
-vuint32m8_t vwaddu_wx(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u64m1)))
-vuint64m1_t vwaddu_wx(vuint64m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u64m1_m)))
-vuint64m1_t vwaddu_wx(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u64m2)))
-vuint64m2_t vwaddu_wx(vuint64m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u64m2_m)))
-vuint64m2_t vwaddu_wx(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u64m4)))
-vuint64m4_t vwaddu_wx(vuint64m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u64m4_m)))
-vuint64m4_t vwaddu_wx(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u64m8)))
-vuint64m8_t vwaddu_wx(vuint64m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwaddu_wx_u64m8_m)))
-vuint64m8_t vwaddu_wx(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16mf4)))
-vuint16mf4_t vwsubu_wv(vuint16mf4_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16mf4_m)))
-vuint16mf4_t vwsubu_wv(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16mf2)))
-vuint16mf2_t vwsubu_wv(vuint16mf2_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16mf2_m)))
-vuint16mf2_t vwsubu_wv(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16m1)))
-vuint16m1_t vwsubu_wv(vuint16m1_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16m1_m)))
-vuint16m1_t vwsubu_wv(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16m2)))
-vuint16m2_t vwsubu_wv(vuint16m2_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16m2_m)))
-vuint16m2_t vwsubu_wv(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16m4)))
-vuint16m4_t vwsubu_wv(vuint16m4_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16m4_m)))
-vuint16m4_t vwsubu_wv(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16m8)))
-vuint16m8_t vwsubu_wv(vuint16m8_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u16m8_m)))
-vuint16m8_t vwsubu_wv(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u32mf2)))
-vuint32mf2_t vwsubu_wv(vuint32mf2_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u32mf2_m)))
-vuint32mf2_t vwsubu_wv(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u32m1)))
-vuint32m1_t vwsubu_wv(vuint32m1_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u32m1_m)))
-vuint32m1_t vwsubu_wv(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u32m2)))
-vuint32m2_t vwsubu_wv(vuint32m2_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u32m2_m)))
-vuint32m2_t vwsubu_wv(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u32m4)))
-vuint32m4_t vwsubu_wv(vuint32m4_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u32m4_m)))
-vuint32m4_t vwsubu_wv(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u32m8)))
-vuint32m8_t vwsubu_wv(vuint32m8_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u32m8_m)))
-vuint32m8_t vwsubu_wv(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u64m1)))
-vuint64m1_t vwsubu_wv(vuint64m1_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u64m1_m)))
-vuint64m1_t vwsubu_wv(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u64m2)))
-vuint64m2_t vwsubu_wv(vuint64m2_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u64m2_m)))
-vuint64m2_t vwsubu_wv(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u64m4)))
-vuint64m4_t vwsubu_wv(vuint64m4_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u64m4_m)))
-vuint64m4_t vwsubu_wv(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u64m8)))
-vuint64m8_t vwsubu_wv(vuint64m8_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wv_u64m8_m)))
-vuint64m8_t vwsubu_wv(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16mf4)))
-vuint16mf4_t vwsubu_wx(vuint16mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16mf4_m)))
-vuint16mf4_t vwsubu_wx(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16mf2)))
-vuint16mf2_t vwsubu_wx(vuint16mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16mf2_m)))
-vuint16mf2_t vwsubu_wx(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16m1)))
-vuint16m1_t vwsubu_wx(vuint16m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16m1_m)))
-vuint16m1_t vwsubu_wx(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16m2)))
-vuint16m2_t vwsubu_wx(vuint16m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16m2_m)))
-vuint16m2_t vwsubu_wx(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16m4)))
-vuint16m4_t vwsubu_wx(vuint16m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16m4_m)))
-vuint16m4_t vwsubu_wx(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16m8)))
-vuint16m8_t vwsubu_wx(vuint16m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u16m8_m)))
-vuint16m8_t vwsubu_wx(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u32mf2)))
-vuint32mf2_t vwsubu_wx(vuint32mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u32mf2_m)))
-vuint32mf2_t vwsubu_wx(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u32m1)))
-vuint32m1_t vwsubu_wx(vuint32m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u32m1_m)))
-vuint32m1_t vwsubu_wx(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u32m2)))
-vuint32m2_t vwsubu_wx(vuint32m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u32m2_m)))
-vuint32m2_t vwsubu_wx(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u32m4)))
-vuint32m4_t vwsubu_wx(vuint32m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u32m4_m)))
-vuint32m4_t vwsubu_wx(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u32m8)))
-vuint32m8_t vwsubu_wx(vuint32m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u32m8_m)))
-vuint32m8_t vwsubu_wx(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u64m1)))
-vuint64m1_t vwsubu_wx(vuint64m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u64m1_m)))
-vuint64m1_t vwsubu_wx(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u64m2)))
-vuint64m2_t vwsubu_wx(vuint64m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u64m2_m)))
-vuint64m2_t vwsubu_wx(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u64m4)))
-vuint64m4_t vwsubu_wx(vuint64m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u64m4_m)))
-vuint64m4_t vwsubu_wx(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u64m8)))
-vuint64m8_t vwsubu_wx(vuint64m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsubu_wx_u64m8_m)))
-vuint64m8_t vwsubu_wx(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16mf4)))
-vint16mf4_t vwadd_wv(vint16mf4_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16mf4_m)))
-vint16mf4_t vwadd_wv(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16mf2)))
-vint16mf2_t vwadd_wv(vint16mf2_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16mf2_m)))
-vint16mf2_t vwadd_wv(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16m1)))
-vint16m1_t vwadd_wv(vint16m1_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16m1_m)))
-vint16m1_t vwadd_wv(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16m2)))
-vint16m2_t vwadd_wv(vint16m2_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16m2_m)))
-vint16m2_t vwadd_wv(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16m4)))
-vint16m4_t vwadd_wv(vint16m4_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16m4_m)))
-vint16m4_t vwadd_wv(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16m8)))
-vint16m8_t vwadd_wv(vint16m8_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i16m8_m)))
-vint16m8_t vwadd_wv(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i32mf2)))
-vint32mf2_t vwadd_wv(vint32mf2_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i32mf2_m)))
-vint32mf2_t vwadd_wv(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i32m1)))
-vint32m1_t vwadd_wv(vint32m1_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i32m1_m)))
-vint32m1_t vwadd_wv(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i32m2)))
-vint32m2_t vwadd_wv(vint32m2_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i32m2_m)))
-vint32m2_t vwadd_wv(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i32m4)))
-vint32m4_t vwadd_wv(vint32m4_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i32m4_m)))
-vint32m4_t vwadd_wv(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i32m8)))
-vint32m8_t vwadd_wv(vint32m8_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i32m8_m)))
-vint32m8_t vwadd_wv(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i64m1)))
-vint64m1_t vwadd_wv(vint64m1_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i64m1_m)))
-vint64m1_t vwadd_wv(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i64m2)))
-vint64m2_t vwadd_wv(vint64m2_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i64m2_m)))
-vint64m2_t vwadd_wv(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i64m4)))
-vint64m4_t vwadd_wv(vint64m4_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i64m4_m)))
-vint64m4_t vwadd_wv(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i64m8)))
-vint64m8_t vwadd_wv(vint64m8_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wv_i64m8_m)))
-vint64m8_t vwadd_wv(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16mf4)))
-vint16mf4_t vwadd_wx(vint16mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16mf4_m)))
-vint16mf4_t vwadd_wx(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16mf2)))
-vint16mf2_t vwadd_wx(vint16mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16mf2_m)))
-vint16mf2_t vwadd_wx(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16m1)))
-vint16m1_t vwadd_wx(vint16m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16m1_m)))
-vint16m1_t vwadd_wx(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16m2)))
-vint16m2_t vwadd_wx(vint16m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16m2_m)))
-vint16m2_t vwadd_wx(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16m4)))
-vint16m4_t vwadd_wx(vint16m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16m4_m)))
-vint16m4_t vwadd_wx(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16m8)))
-vint16m8_t vwadd_wx(vint16m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i16m8_m)))
-vint16m8_t vwadd_wx(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i32mf2)))
-vint32mf2_t vwadd_wx(vint32mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i32mf2_m)))
-vint32mf2_t vwadd_wx(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i32m1)))
-vint32m1_t vwadd_wx(vint32m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i32m1_m)))
-vint32m1_t vwadd_wx(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i32m2)))
-vint32m2_t vwadd_wx(vint32m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i32m2_m)))
-vint32m2_t vwadd_wx(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i32m4)))
-vint32m4_t vwadd_wx(vint32m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i32m4_m)))
-vint32m4_t vwadd_wx(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i32m8)))
-vint32m8_t vwadd_wx(vint32m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i32m8_m)))
-vint32m8_t vwadd_wx(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i64m1)))
-vint64m1_t vwadd_wx(vint64m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i64m1_m)))
-vint64m1_t vwadd_wx(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i64m2)))
-vint64m2_t vwadd_wx(vint64m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i64m2_m)))
-vint64m2_t vwadd_wx(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i64m4)))
-vint64m4_t vwadd_wx(vint64m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i64m4_m)))
-vint64m4_t vwadd_wx(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i64m8)))
-vint64m8_t vwadd_wx(vint64m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwadd_wx_i64m8_m)))
-vint64m8_t vwadd_wx(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16mf4)))
-vint16mf4_t vwsub_wv(vint16mf4_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16mf4_m)))
-vint16mf4_t vwsub_wv(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16mf2)))
-vint16mf2_t vwsub_wv(vint16mf2_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16mf2_m)))
-vint16mf2_t vwsub_wv(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16m1)))
-vint16m1_t vwsub_wv(vint16m1_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16m1_m)))
-vint16m1_t vwsub_wv(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16m2)))
-vint16m2_t vwsub_wv(vint16m2_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16m2_m)))
-vint16m2_t vwsub_wv(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16m4)))
-vint16m4_t vwsub_wv(vint16m4_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16m4_m)))
-vint16m4_t vwsub_wv(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16m8)))
-vint16m8_t vwsub_wv(vint16m8_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i16m8_m)))
-vint16m8_t vwsub_wv(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i32mf2)))
-vint32mf2_t vwsub_wv(vint32mf2_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i32mf2_m)))
-vint32mf2_t vwsub_wv(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i32m1)))
-vint32m1_t vwsub_wv(vint32m1_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i32m1_m)))
-vint32m1_t vwsub_wv(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i32m2)))
-vint32m2_t vwsub_wv(vint32m2_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i32m2_m)))
-vint32m2_t vwsub_wv(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i32m4)))
-vint32m4_t vwsub_wv(vint32m4_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i32m4_m)))
-vint32m4_t vwsub_wv(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i32m8)))
-vint32m8_t vwsub_wv(vint32m8_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i32m8_m)))
-vint32m8_t vwsub_wv(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i64m1)))
-vint64m1_t vwsub_wv(vint64m1_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i64m1_m)))
-vint64m1_t vwsub_wv(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i64m2)))
-vint64m2_t vwsub_wv(vint64m2_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i64m2_m)))
-vint64m2_t vwsub_wv(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i64m4)))
-vint64m4_t vwsub_wv(vint64m4_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i64m4_m)))
-vint64m4_t vwsub_wv(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i64m8)))
-vint64m8_t vwsub_wv(vint64m8_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wv_i64m8_m)))
-vint64m8_t vwsub_wv(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16mf4)))
-vint16mf4_t vwsub_wx(vint16mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16mf4_m)))
-vint16mf4_t vwsub_wx(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16mf2)))
-vint16mf2_t vwsub_wx(vint16mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16mf2_m)))
-vint16mf2_t vwsub_wx(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16m1)))
-vint16m1_t vwsub_wx(vint16m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16m1_m)))
-vint16m1_t vwsub_wx(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16m2)))
-vint16m2_t vwsub_wx(vint16m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16m2_m)))
-vint16m2_t vwsub_wx(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16m4)))
-vint16m4_t vwsub_wx(vint16m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16m4_m)))
-vint16m4_t vwsub_wx(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16m8)))
-vint16m8_t vwsub_wx(vint16m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i16m8_m)))
-vint16m8_t vwsub_wx(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i32mf2)))
-vint32mf2_t vwsub_wx(vint32mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i32mf2_m)))
-vint32mf2_t vwsub_wx(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i32m1)))
-vint32m1_t vwsub_wx(vint32m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i32m1_m)))
-vint32m1_t vwsub_wx(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i32m2)))
-vint32m2_t vwsub_wx(vint32m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i32m2_m)))
-vint32m2_t vwsub_wx(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i32m4)))
-vint32m4_t vwsub_wx(vint32m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i32m4_m)))
-vint32m4_t vwsub_wx(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i32m8)))
-vint32m8_t vwsub_wx(vint32m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i32m8_m)))
-vint32m8_t vwsub_wx(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i64m1)))
-vint64m1_t vwsub_wx(vint64m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i64m1_m)))
-vint64m1_t vwsub_wx(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i64m2)))
-vint64m2_t vwsub_wx(vint64m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i64m2_m)))
-vint64m2_t vwsub_wx(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i64m4)))
-vint64m4_t vwsub_wx(vint64m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i64m4_m)))
-vint64m4_t vwsub_wx(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i64m8)))
-vint64m8_t vwsub_wx(vint64m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwsub_wx_i64m8_m)))
-vint64m8_t vwsub_wx(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16m2)))
-vint16m2_t vwcvt_x(vint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16m2_m)))
-vint16m2_t vwcvt_x(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16m4)))
-vint16m4_t vwcvt_x(vint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16m4_m)))
-vint16m4_t vwcvt_x(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16m8)))
-vint16m8_t vwcvt_x(vint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16m8_m)))
-vint16m8_t vwcvt_x(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16m1)))
-vint16m1_t vwcvt_x(vint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16m1_m)))
-vint16m1_t vwcvt_x(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16mf2)))
-vint16mf2_t vwcvt_x(vint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16mf2_m)))
-vint16mf2_t vwcvt_x(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16mf4)))
-vint16mf4_t vwcvt_x(vint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i16mf4_m)))
-vint16mf4_t vwcvt_x(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i32m2)))
-vint32m2_t vwcvt_x(vint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i32m2_m)))
-vint32m2_t vwcvt_x(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i32m4)))
-vint32m4_t vwcvt_x(vint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i32m4_m)))
-vint32m4_t vwcvt_x(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i32m8)))
-vint32m8_t vwcvt_x(vint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i32m8_m)))
-vint32m8_t vwcvt_x(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i32m1)))
-vint32m1_t vwcvt_x(vint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i32m1_m)))
-vint32m1_t vwcvt_x(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i32mf2)))
-vint32mf2_t vwcvt_x(vint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i32mf2_m)))
-vint32mf2_t vwcvt_x(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i64m2)))
-vint64m2_t vwcvt_x(vint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i64m2_m)))
-vint64m2_t vwcvt_x(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i64m4)))
-vint64m4_t vwcvt_x(vint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i64m4_m)))
-vint64m4_t vwcvt_x(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i64m8)))
-vint64m8_t vwcvt_x(vint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i64m8_m)))
-vint64m8_t vwcvt_x(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i64m1)))
-vint64m1_t vwcvt_x(vint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvt_x_x_v_i64m1_m)))
-vint64m1_t vwcvt_x(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u8m1)))
-void vsuxei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u8m1_m)))
-void vsuxei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u8mf2)))
-void vsuxei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u8mf2_m)))
-void vsuxei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u8mf4)))
-void vsuxei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u8mf4_m)))
-void vsuxei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u8mf8)))
-void vsuxei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u8mf8_m)))
-void vsuxei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i8m1)))
-vint8m1_t vadc(vint8m1_t op0, vint8m1_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i8m2)))
-vint8m2_t vadc(vint8m2_t op0, vint8m2_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i8m4)))
-vint8m4_t vadc(vint8m4_t op0, vint8m4_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i8m8)))
-vint8m8_t vadc(vint8m8_t op0, vint8m8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i8mf2)))
-vint8mf2_t vadc(vint8mf2_t op0, vint8mf2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i8mf4)))
-vint8mf4_t vadc(vint8mf4_t op0, vint8mf4_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i8mf8)))
-vint8mf8_t vadc(vint8mf8_t op0, vint8mf8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i16m1)))
-vint16m1_t vadc(vint16m1_t op0, vint16m1_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i16m2)))
-vint16m2_t vadc(vint16m2_t op0, vint16m2_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i16m4)))
-vint16m4_t vadc(vint16m4_t op0, vint16m4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i16m8)))
-vint16m8_t vadc(vint16m8_t op0, vint16m8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i16mf2)))
-vint16mf2_t vadc(vint16mf2_t op0, vint16mf2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i16mf4)))
-vint16mf4_t vadc(vint16mf4_t op0, vint16mf4_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i32m1)))
-vint32m1_t vadc(vint32m1_t op0, vint32m1_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i32m2)))
-vint32m2_t vadc(vint32m2_t op0, vint32m2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i32m4)))
-vint32m4_t vadc(vint32m4_t op0, vint32m4_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i32m8)))
-vint32m8_t vadc(vint32m8_t op0, vint32m8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i32mf2)))
-vint32mf2_t vadc(vint32mf2_t op0, vint32mf2_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i64m1)))
-vint64m1_t vadc(vint64m1_t op0, vint64m1_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i64m2)))
-vint64m2_t vadc(vint64m2_t op0, vint64m2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i64m4)))
-vint64m4_t vadc(vint64m4_t op0, vint64m4_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_i64m8)))
-vint64m8_t vadc(vint64m8_t op0, vint64m8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i8m1)))
-vint8m1_t vadc(vint8m1_t op0, int8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i8m2)))
-vint8m2_t vadc(vint8m2_t op0, int8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i8m4)))
-vint8m4_t vadc(vint8m4_t op0, int8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i8m8)))
-vint8m8_t vadc(vint8m8_t op0, int8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i8mf2)))
-vint8mf2_t vadc(vint8mf2_t op0, int8_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i8mf4)))
-vint8mf4_t vadc(vint8mf4_t op0, int8_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i8mf8)))
-vint8mf8_t vadc(vint8mf8_t op0, int8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i16m1)))
-vint16m1_t vadc(vint16m1_t op0, int16_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i16m2)))
-vint16m2_t vadc(vint16m2_t op0, int16_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i16m4)))
-vint16m4_t vadc(vint16m4_t op0, int16_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i16m8)))
-vint16m8_t vadc(vint16m8_t op0, int16_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i16mf2)))
-vint16mf2_t vadc(vint16mf2_t op0, int16_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i16mf4)))
-vint16mf4_t vadc(vint16mf4_t op0, int16_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i32m1)))
-vint32m1_t vadc(vint32m1_t op0, int32_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i32m2)))
-vint32m2_t vadc(vint32m2_t op0, int32_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i32m4)))
-vint32m4_t vadc(vint32m4_t op0, int32_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i32m8)))
-vint32m8_t vadc(vint32m8_t op0, int32_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i32mf2)))
-vint32mf2_t vadc(vint32mf2_t op0, int32_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i64m1)))
-vint64m1_t vadc(vint64m1_t op0, int64_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i64m2)))
-vint64m2_t vadc(vint64m2_t op0, int64_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i64m4)))
-vint64m4_t vadc(vint64m4_t op0, int64_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_i64m8)))
-vint64m8_t vadc(vint64m8_t op0, int64_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u8m1)))
-vuint8m1_t vadc(vuint8m1_t op0, vuint8m1_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u8m2)))
-vuint8m2_t vadc(vuint8m2_t op0, vuint8m2_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u8m4)))
-vuint8m4_t vadc(vuint8m4_t op0, vuint8m4_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u8m8)))
-vuint8m8_t vadc(vuint8m8_t op0, vuint8m8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u8mf2)))
-vuint8mf2_t vadc(vuint8mf2_t op0, vuint8mf2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u8mf4)))
-vuint8mf4_t vadc(vuint8mf4_t op0, vuint8mf4_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u8mf8)))
-vuint8mf8_t vadc(vuint8mf8_t op0, vuint8mf8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u16m1)))
-vuint16m1_t vadc(vuint16m1_t op0, vuint16m1_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u16m2)))
-vuint16m2_t vadc(vuint16m2_t op0, vuint16m2_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u16m4)))
-vuint16m4_t vadc(vuint16m4_t op0, vuint16m4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u16m8)))
-vuint16m8_t vadc(vuint16m8_t op0, vuint16m8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u16mf2)))
-vuint16mf2_t vadc(vuint16mf2_t op0, vuint16mf2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u16mf4)))
-vuint16mf4_t vadc(vuint16mf4_t op0, vuint16mf4_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u32m1)))
-vuint32m1_t vadc(vuint32m1_t op0, vuint32m1_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u32m2)))
-vuint32m2_t vadc(vuint32m2_t op0, vuint32m2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u32m4)))
-vuint32m4_t vadc(vuint32m4_t op0, vuint32m4_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u32m8)))
-vuint32m8_t vadc(vuint32m8_t op0, vuint32m8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u32mf2)))
-vuint32mf2_t vadc(vuint32mf2_t op0, vuint32mf2_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u64m1)))
-vuint64m1_t vadc(vuint64m1_t op0, vuint64m1_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u64m2)))
-vuint64m2_t vadc(vuint64m2_t op0, vuint64m2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u64m4)))
-vuint64m4_t vadc(vuint64m4_t op0, vuint64m4_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vvm_u64m8)))
-vuint64m8_t vadc(vuint64m8_t op0, vuint64m8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u8m1)))
-vuint8m1_t vadc(vuint8m1_t op0, uint8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u8m2)))
-vuint8m2_t vadc(vuint8m2_t op0, uint8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u8m4)))
-vuint8m4_t vadc(vuint8m4_t op0, uint8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u8m8)))
-vuint8m8_t vadc(vuint8m8_t op0, uint8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u8mf2)))
-vuint8mf2_t vadc(vuint8mf2_t op0, uint8_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u8mf4)))
-vuint8mf4_t vadc(vuint8mf4_t op0, uint8_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u8mf8)))
-vuint8mf8_t vadc(vuint8mf8_t op0, uint8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u16m1)))
-vuint16m1_t vadc(vuint16m1_t op0, uint16_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u16m2)))
-vuint16m2_t vadc(vuint16m2_t op0, uint16_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u16m4)))
-vuint16m4_t vadc(vuint16m4_t op0, uint16_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u16m8)))
-vuint16m8_t vadc(vuint16m8_t op0, uint16_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u16mf2)))
-vuint16mf2_t vadc(vuint16mf2_t op0, uint16_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u16mf4)))
-vuint16mf4_t vadc(vuint16mf4_t op0, uint16_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u32m1)))
-vuint32m1_t vadc(vuint32m1_t op0, uint32_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u32m2)))
-vuint32m2_t vadc(vuint32m2_t op0, uint32_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u32m4)))
-vuint32m4_t vadc(vuint32m4_t op0, uint32_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u32m8)))
-vuint32m8_t vadc(vuint32m8_t op0, uint32_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u32mf2)))
-vuint32mf2_t vadc(vuint32mf2_t op0, uint32_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u64m1)))
-vuint64m1_t vadc(vuint64m1_t op0, uint64_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u64m2)))
-vuint64m2_t vadc(vuint64m2_t op0, uint64_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u64m4)))
-vuint64m4_t vadc(vuint64m4_t op0, uint64_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vadc_vxm_u64m8)))
-vuint64m8_t vadc(vuint64m8_t op0, uint64_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i8m1_b8)))
-vbool8_t vmadc(vint8m1_t op0, vint8m1_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i8m2_b4)))
-vbool4_t vmadc(vint8m2_t op0, vint8m2_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i8m4_b2)))
-vbool2_t vmadc(vint8m4_t op0, vint8m4_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i8m8_b1)))
-vbool1_t vmadc(vint8m8_t op0, vint8m8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i8mf2_b16)))
-vbool16_t vmadc(vint8mf2_t op0, vint8mf2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i8mf4_b32)))
-vbool32_t vmadc(vint8mf4_t op0, vint8mf4_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i8mf8_b64)))
-vbool64_t vmadc(vint8mf8_t op0, vint8mf8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i16m1_b16)))
-vbool16_t vmadc(vint16m1_t op0, vint16m1_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i16m2_b8)))
-vbool8_t vmadc(vint16m2_t op0, vint16m2_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i16m4_b4)))
-vbool4_t vmadc(vint16m4_t op0, vint16m4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i16m8_b2)))
-vbool2_t vmadc(vint16m8_t op0, vint16m8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i16mf2_b32)))
-vbool32_t vmadc(vint16mf2_t op0, vint16mf2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i16mf4_b64)))
-vbool64_t vmadc(vint16mf4_t op0, vint16mf4_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i32m1_b32)))
-vbool32_t vmadc(vint32m1_t op0, vint32m1_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i32m2_b16)))
-vbool16_t vmadc(vint32m2_t op0, vint32m2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i32m4_b8)))
-vbool8_t vmadc(vint32m4_t op0, vint32m4_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i32m8_b4)))
-vbool4_t vmadc(vint32m8_t op0, vint32m8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i32mf2_b64)))
-vbool64_t vmadc(vint32mf2_t op0, vint32mf2_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i64m1_b64)))
-vbool64_t vmadc(vint64m1_t op0, vint64m1_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i64m2_b32)))
-vbool32_t vmadc(vint64m2_t op0, vint64m2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i64m4_b16)))
-vbool16_t vmadc(vint64m4_t op0, vint64m4_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_i64m8_b8)))
-vbool8_t vmadc(vint64m8_t op0, vint64m8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i8m1_b8)))
-vbool8_t vmadc(vint8m1_t op0, int8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i8m2_b4)))
-vbool4_t vmadc(vint8m2_t op0, int8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i8m4_b2)))
-vbool2_t vmadc(vint8m4_t op0, int8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i8m8_b1)))
-vbool1_t vmadc(vint8m8_t op0, int8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i8mf2_b16)))
-vbool16_t vmadc(vint8mf2_t op0, int8_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i8mf4_b32)))
-vbool32_t vmadc(vint8mf4_t op0, int8_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i8mf8_b64)))
-vbool64_t vmadc(vint8mf8_t op0, int8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i16m1_b16)))
-vbool16_t vmadc(vint16m1_t op0, int16_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i16m2_b8)))
-vbool8_t vmadc(vint16m2_t op0, int16_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i16m4_b4)))
-vbool4_t vmadc(vint16m4_t op0, int16_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i16m8_b2)))
-vbool2_t vmadc(vint16m8_t op0, int16_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i16mf2_b32)))
-vbool32_t vmadc(vint16mf2_t op0, int16_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i16mf4_b64)))
-vbool64_t vmadc(vint16mf4_t op0, int16_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i32m1_b32)))
-vbool32_t vmadc(vint32m1_t op0, int32_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i32m2_b16)))
-vbool16_t vmadc(vint32m2_t op0, int32_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i32m4_b8)))
-vbool8_t vmadc(vint32m4_t op0, int32_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i32m8_b4)))
-vbool4_t vmadc(vint32m8_t op0, int32_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i32mf2_b64)))
-vbool64_t vmadc(vint32mf2_t op0, int32_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i64m1_b64)))
-vbool64_t vmadc(vint64m1_t op0, int64_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i64m2_b32)))
-vbool32_t vmadc(vint64m2_t op0, int64_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i64m4_b16)))
-vbool16_t vmadc(vint64m4_t op0, int64_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_i64m8_b8)))
-vbool8_t vmadc(vint64m8_t op0, int64_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u8m1_b8)))
-vbool8_t vmadc(vuint8m1_t op0, vuint8m1_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u8m2_b4)))
-vbool4_t vmadc(vuint8m2_t op0, vuint8m2_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u8m4_b2)))
-vbool2_t vmadc(vuint8m4_t op0, vuint8m4_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u8m8_b1)))
-vbool1_t vmadc(vuint8m8_t op0, vuint8m8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u8mf2_b16)))
-vbool16_t vmadc(vuint8mf2_t op0, vuint8mf2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u8mf4_b32)))
-vbool32_t vmadc(vuint8mf4_t op0, vuint8mf4_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u8mf8_b64)))
-vbool64_t vmadc(vuint8mf8_t op0, vuint8mf8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u16m1_b16)))
-vbool16_t vmadc(vuint16m1_t op0, vuint16m1_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u16m2_b8)))
-vbool8_t vmadc(vuint16m2_t op0, vuint16m2_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u16m4_b4)))
-vbool4_t vmadc(vuint16m4_t op0, vuint16m4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u16m8_b2)))
-vbool2_t vmadc(vuint16m8_t op0, vuint16m8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u16mf2_b32)))
-vbool32_t vmadc(vuint16mf2_t op0, vuint16mf2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u16mf4_b64)))
-vbool64_t vmadc(vuint16mf4_t op0, vuint16mf4_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u32m1_b32)))
-vbool32_t vmadc(vuint32m1_t op0, vuint32m1_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u32m2_b16)))
-vbool16_t vmadc(vuint32m2_t op0, vuint32m2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u32m4_b8)))
-vbool8_t vmadc(vuint32m4_t op0, vuint32m4_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u32m8_b4)))
-vbool4_t vmadc(vuint32m8_t op0, vuint32m8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u32mf2_b64)))
-vbool64_t vmadc(vuint32mf2_t op0, vuint32mf2_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u64m1_b64)))
-vbool64_t vmadc(vuint64m1_t op0, vuint64m1_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u64m2_b32)))
-vbool32_t vmadc(vuint64m2_t op0, vuint64m2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u64m4_b16)))
-vbool16_t vmadc(vuint64m4_t op0, vuint64m4_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vvm_u64m8_b8)))
-vbool8_t vmadc(vuint64m8_t op0, vuint64m8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u8m1_b8)))
-vbool8_t vmadc(vuint8m1_t op0, uint8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u8m2_b4)))
-vbool4_t vmadc(vuint8m2_t op0, uint8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u8m4_b2)))
-vbool2_t vmadc(vuint8m4_t op0, uint8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u8m8_b1)))
-vbool1_t vmadc(vuint8m8_t op0, uint8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u8mf2_b16)))
-vbool16_t vmadc(vuint8mf2_t op0, uint8_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u8mf4_b32)))
-vbool32_t vmadc(vuint8mf4_t op0, uint8_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u8mf8_b64)))
-vbool64_t vmadc(vuint8mf8_t op0, uint8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u16m1_b16)))
-vbool16_t vmadc(vuint16m1_t op0, uint16_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u16m2_b8)))
-vbool8_t vmadc(vuint16m2_t op0, uint16_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u16m4_b4)))
-vbool4_t vmadc(vuint16m4_t op0, uint16_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u16m8_b2)))
-vbool2_t vmadc(vuint16m8_t op0, uint16_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u16mf2_b32)))
-vbool32_t vmadc(vuint16mf2_t op0, uint16_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u16mf4_b64)))
-vbool64_t vmadc(vuint16mf4_t op0, uint16_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u32m1_b32)))
-vbool32_t vmadc(vuint32m1_t op0, uint32_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u32m2_b16)))
-vbool16_t vmadc(vuint32m2_t op0, uint32_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u32m4_b8)))
-vbool8_t vmadc(vuint32m4_t op0, uint32_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u32m8_b4)))
-vbool4_t vmadc(vuint32m8_t op0, uint32_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u32mf2_b64)))
-vbool64_t vmadc(vuint32mf2_t op0, uint32_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u64m1_b64)))
-vbool64_t vmadc(vuint64m1_t op0, uint64_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u64m2_b32)))
-vbool32_t vmadc(vuint64m2_t op0, uint64_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u64m4_b16)))
-vbool16_t vmadc(vuint64m4_t op0, uint64_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vxm_u64m8_b8)))
-vbool8_t vmadc(vuint64m8_t op0, uint64_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i8m1_b8)))
-vbool8_t vmadc(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i8m2_b4)))
-vbool4_t vmadc(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i8m4_b2)))
-vbool2_t vmadc(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i8m8_b1)))
-vbool1_t vmadc(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i8mf2_b16)))
-vbool16_t vmadc(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i8mf4_b32)))
-vbool32_t vmadc(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i8mf8_b64)))
-vbool64_t vmadc(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i16m1_b16)))
-vbool16_t vmadc(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i16m2_b8)))
-vbool8_t vmadc(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i16m4_b4)))
-vbool4_t vmadc(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i16m8_b2)))
-vbool2_t vmadc(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i16mf2_b32)))
-vbool32_t vmadc(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i16mf4_b64)))
-vbool64_t vmadc(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i32m1_b32)))
-vbool32_t vmadc(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i32m2_b16)))
-vbool16_t vmadc(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i32m4_b8)))
-vbool8_t vmadc(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i32m8_b4)))
-vbool4_t vmadc(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i32mf2_b64)))
-vbool64_t vmadc(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i64m1_b64)))
-vbool64_t vmadc(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i64m2_b32)))
-vbool32_t vmadc(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i64m4_b16)))
-vbool16_t vmadc(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_i64m8_b8)))
-vbool8_t vmadc(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i8m1_b8)))
-vbool8_t vmadc(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i8m2_b4)))
-vbool4_t vmadc(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i8m4_b2)))
-vbool2_t vmadc(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i8m8_b1)))
-vbool1_t vmadc(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i8mf2_b16)))
-vbool16_t vmadc(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i8mf4_b32)))
-vbool32_t vmadc(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i8mf8_b64)))
-vbool64_t vmadc(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i16m1_b16)))
-vbool16_t vmadc(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i16m2_b8)))
-vbool8_t vmadc(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i16m4_b4)))
-vbool4_t vmadc(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i16m8_b2)))
-vbool2_t vmadc(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i16mf2_b32)))
-vbool32_t vmadc(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i16mf4_b64)))
-vbool64_t vmadc(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i32m1_b32)))
-vbool32_t vmadc(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i32m2_b16)))
-vbool16_t vmadc(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i32m4_b8)))
-vbool8_t vmadc(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i32m8_b4)))
-vbool4_t vmadc(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i32mf2_b64)))
-vbool64_t vmadc(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i64m1_b64)))
-vbool64_t vmadc(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i64m2_b32)))
-vbool32_t vmadc(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i64m4_b16)))
-vbool16_t vmadc(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_i64m8_b8)))
-vbool8_t vmadc(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16m1)))
-void vsuxei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16m1_m)))
-void vsuxei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16m2)))
-void vsuxei8(int16_t * op0, vuint8m1_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16m2_m)))
-void vsuxei8(vbool8_t op0, int16_t * op1, vuint8m1_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16m4)))
-void vsuxei8(int16_t * op0, vuint8m2_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16m4_m)))
-void vsuxei8(vbool4_t op0, int16_t * op1, vuint8m2_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16m8)))
-void vsuxei8(int16_t * op0, vuint8m4_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16m8_m)))
-void vsuxei8(vbool2_t op0, int16_t * op1, vuint8m4_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16mf2)))
-void vsuxei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16mf2_m)))
-void vsuxei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16mf4)))
-void vsuxei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i16mf4_m)))
-void vsuxei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u8m1_b8)))
-vbool8_t vmadc(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u8m2_b4)))
-vbool4_t vmadc(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u8m4_b2)))
-vbool2_t vmadc(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u8m8_b1)))
-vbool1_t vmadc(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u8mf2_b16)))
-vbool16_t vmadc(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u8mf4_b32)))
-vbool32_t vmadc(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u8mf8_b64)))
-vbool64_t vmadc(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u16m1_b16)))
-vbool16_t vmadc(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u16m2_b8)))
-vbool8_t vmadc(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u16m4_b4)))
-vbool4_t vmadc(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u16m8_b2)))
-vbool2_t vmadc(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u16mf2_b32)))
-vbool32_t vmadc(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u16mf4_b64)))
-vbool64_t vmadc(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u32m1_b32)))
-vbool32_t vmadc(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u32m2_b16)))
-vbool16_t vmadc(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u32m4_b8)))
-vbool8_t vmadc(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u32m8_b4)))
-vbool4_t vmadc(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u32mf2_b64)))
-vbool64_t vmadc(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u64m1_b64)))
-vbool64_t vmadc(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u64m2_b32)))
-vbool32_t vmadc(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u64m4_b16)))
-vbool16_t vmadc(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vv_u64m8_b8)))
-vbool8_t vmadc(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u8m1_b8)))
-vbool8_t vmadc(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u8m2_b4)))
-vbool4_t vmadc(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u8m4_b2)))
-vbool2_t vmadc(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u8m8_b1)))
-vbool1_t vmadc(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u8mf2_b16)))
-vbool16_t vmadc(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u8mf4_b32)))
-vbool32_t vmadc(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u8mf8_b64)))
-vbool64_t vmadc(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u16m1_b16)))
-vbool16_t vmadc(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u16m2_b8)))
-vbool8_t vmadc(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u16m4_b4)))
-vbool4_t vmadc(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u16m8_b2)))
-vbool2_t vmadc(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u16mf2_b32)))
-vbool32_t vmadc(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u16mf4_b64)))
-vbool64_t vmadc(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u32m1_b32)))
-vbool32_t vmadc(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u32m2_b16)))
-vbool16_t vmadc(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u32m4_b8)))
-vbool8_t vmadc(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u32m8_b4)))
-vbool4_t vmadc(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u32mf2_b64)))
-vbool64_t vmadc(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u64m1_b64)))
-vbool64_t vmadc(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u64m2_b32)))
-vbool32_t vmadc(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u64m4_b16)))
-vbool16_t vmadc(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadc_vx_u64m8_b8)))
-vbool8_t vmadc(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i8m1)))
-vint8m1_t vsbc(vint8m1_t op0, vint8m1_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i8m2)))
-vint8m2_t vsbc(vint8m2_t op0, vint8m2_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i8m4)))
-vint8m4_t vsbc(vint8m4_t op0, vint8m4_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i8m8)))
-vint8m8_t vsbc(vint8m8_t op0, vint8m8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i8mf2)))
-vint8mf2_t vsbc(vint8mf2_t op0, vint8mf2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i8mf4)))
-vint8mf4_t vsbc(vint8mf4_t op0, vint8mf4_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i8mf8)))
-vint8mf8_t vsbc(vint8mf8_t op0, vint8mf8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i16m1)))
-vint16m1_t vsbc(vint16m1_t op0, vint16m1_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i16m2)))
-vint16m2_t vsbc(vint16m2_t op0, vint16m2_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i16m4)))
-vint16m4_t vsbc(vint16m4_t op0, vint16m4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i16m8)))
-vint16m8_t vsbc(vint16m8_t op0, vint16m8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i16mf2)))
-vint16mf2_t vsbc(vint16mf2_t op0, vint16mf2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i16mf4)))
-vint16mf4_t vsbc(vint16mf4_t op0, vint16mf4_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i32m1)))
-vint32m1_t vsbc(vint32m1_t op0, vint32m1_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i32m2)))
-vint32m2_t vsbc(vint32m2_t op0, vint32m2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i32m4)))
-vint32m4_t vsbc(vint32m4_t op0, vint32m4_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i32m8)))
-vint32m8_t vsbc(vint32m8_t op0, vint32m8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i32mf2)))
-vint32mf2_t vsbc(vint32mf2_t op0, vint32mf2_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i64m1)))
-vint64m1_t vsbc(vint64m1_t op0, vint64m1_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i64m2)))
-vint64m2_t vsbc(vint64m2_t op0, vint64m2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i64m4)))
-vint64m4_t vsbc(vint64m4_t op0, vint64m4_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_i64m8)))
-vint64m8_t vsbc(vint64m8_t op0, vint64m8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i8m1)))
-vint8m1_t vsbc(vint8m1_t op0, int8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i8m2)))
-vint8m2_t vsbc(vint8m2_t op0, int8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i8m4)))
-vint8m4_t vsbc(vint8m4_t op0, int8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i8m8)))
-vint8m8_t vsbc(vint8m8_t op0, int8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i8mf2)))
-vint8mf2_t vsbc(vint8mf2_t op0, int8_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i8mf4)))
-vint8mf4_t vsbc(vint8mf4_t op0, int8_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i8mf8)))
-vint8mf8_t vsbc(vint8mf8_t op0, int8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i16m1)))
-vint16m1_t vsbc(vint16m1_t op0, int16_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i16m2)))
-vint16m2_t vsbc(vint16m2_t op0, int16_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i16m4)))
-vint16m4_t vsbc(vint16m4_t op0, int16_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i16m8)))
-vint16m8_t vsbc(vint16m8_t op0, int16_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i16mf2)))
-vint16mf2_t vsbc(vint16mf2_t op0, int16_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i16mf4)))
-vint16mf4_t vsbc(vint16mf4_t op0, int16_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i32m1)))
-vint32m1_t vsbc(vint32m1_t op0, int32_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i32m2)))
-vint32m2_t vsbc(vint32m2_t op0, int32_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i32m4)))
-vint32m4_t vsbc(vint32m4_t op0, int32_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i32m8)))
-vint32m8_t vsbc(vint32m8_t op0, int32_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i32mf2)))
-vint32mf2_t vsbc(vint32mf2_t op0, int32_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i64m1)))
-vint64m1_t vsbc(vint64m1_t op0, int64_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i64m2)))
-vint64m2_t vsbc(vint64m2_t op0, int64_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i64m4)))
-vint64m4_t vsbc(vint64m4_t op0, int64_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_i64m8)))
-vint64m8_t vsbc(vint64m8_t op0, int64_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u8m1)))
-vuint8m1_t vsbc(vuint8m1_t op0, vuint8m1_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u8m2)))
-vuint8m2_t vsbc(vuint8m2_t op0, vuint8m2_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u8m4)))
-vuint8m4_t vsbc(vuint8m4_t op0, vuint8m4_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u8m8)))
-vuint8m8_t vsbc(vuint8m8_t op0, vuint8m8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u8mf2)))
-vuint8mf2_t vsbc(vuint8mf2_t op0, vuint8mf2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u8mf4)))
-vuint8mf4_t vsbc(vuint8mf4_t op0, vuint8mf4_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u8mf8)))
-vuint8mf8_t vsbc(vuint8mf8_t op0, vuint8mf8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u16m1)))
-vuint16m1_t vsbc(vuint16m1_t op0, vuint16m1_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u16m2)))
-vuint16m2_t vsbc(vuint16m2_t op0, vuint16m2_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u16m4)))
-vuint16m4_t vsbc(vuint16m4_t op0, vuint16m4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u16m8)))
-vuint16m8_t vsbc(vuint16m8_t op0, vuint16m8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u16mf2)))
-vuint16mf2_t vsbc(vuint16mf2_t op0, vuint16mf2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u16mf4)))
-vuint16mf4_t vsbc(vuint16mf4_t op0, vuint16mf4_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u32m1)))
-vuint32m1_t vsbc(vuint32m1_t op0, vuint32m1_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u32m2)))
-vuint32m2_t vsbc(vuint32m2_t op0, vuint32m2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u32m4)))
-vuint32m4_t vsbc(vuint32m4_t op0, vuint32m4_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u32m8)))
-vuint32m8_t vsbc(vuint32m8_t op0, vuint32m8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u32mf2)))
-vuint32mf2_t vsbc(vuint32mf2_t op0, vuint32mf2_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u64m1)))
-vuint64m1_t vsbc(vuint64m1_t op0, vuint64m1_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u64m2)))
-vuint64m2_t vsbc(vuint64m2_t op0, vuint64m2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u64m4)))
-vuint64m4_t vsbc(vuint64m4_t op0, vuint64m4_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vvm_u64m8)))
-vuint64m8_t vsbc(vuint64m8_t op0, vuint64m8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u8m1)))
-vuint8m1_t vsbc(vuint8m1_t op0, uint8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u8m2)))
-vuint8m2_t vsbc(vuint8m2_t op0, uint8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u8m4)))
-vuint8m4_t vsbc(vuint8m4_t op0, uint8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u8m8)))
-vuint8m8_t vsbc(vuint8m8_t op0, uint8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u8mf2)))
-vuint8mf2_t vsbc(vuint8mf2_t op0, uint8_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u8mf4)))
-vuint8mf4_t vsbc(vuint8mf4_t op0, uint8_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u8mf8)))
-vuint8mf8_t vsbc(vuint8mf8_t op0, uint8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u16m1)))
-vuint16m1_t vsbc(vuint16m1_t op0, uint16_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u16m2)))
-vuint16m2_t vsbc(vuint16m2_t op0, uint16_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u16m4)))
-vuint16m4_t vsbc(vuint16m4_t op0, uint16_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u16m8)))
-vuint16m8_t vsbc(vuint16m8_t op0, uint16_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u16mf2)))
-vuint16mf2_t vsbc(vuint16mf2_t op0, uint16_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u16mf4)))
-vuint16mf4_t vsbc(vuint16mf4_t op0, uint16_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u32m1)))
-vuint32m1_t vsbc(vuint32m1_t op0, uint32_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u32m2)))
-vuint32m2_t vsbc(vuint32m2_t op0, uint32_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u32m4)))
-vuint32m4_t vsbc(vuint32m4_t op0, uint32_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u32m8)))
-vuint32m8_t vsbc(vuint32m8_t op0, uint32_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u32mf2)))
-vuint32mf2_t vsbc(vuint32mf2_t op0, uint32_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u64m1)))
-vuint64m1_t vsbc(vuint64m1_t op0, uint64_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u64m2)))
-vuint64m2_t vsbc(vuint64m2_t op0, uint64_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u64m4)))
-vuint64m4_t vsbc(vuint64m4_t op0, uint64_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsbc_vxm_u64m8)))
-vuint64m8_t vsbc(vuint64m8_t op0, uint64_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i8m1_b8)))
-vbool8_t vmsbc(vint8m1_t op0, vint8m1_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i8m2_b4)))
-vbool4_t vmsbc(vint8m2_t op0, vint8m2_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i8m4_b2)))
-vbool2_t vmsbc(vint8m4_t op0, vint8m4_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i8m8_b1)))
-vbool1_t vmsbc(vint8m8_t op0, vint8m8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i8mf2_b16)))
-vbool16_t vmsbc(vint8mf2_t op0, vint8mf2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i8mf4_b32)))
-vbool32_t vmsbc(vint8mf4_t op0, vint8mf4_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i8mf8_b64)))
-vbool64_t vmsbc(vint8mf8_t op0, vint8mf8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i16m1_b16)))
-vbool16_t vmsbc(vint16m1_t op0, vint16m1_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i16m2_b8)))
-vbool8_t vmsbc(vint16m2_t op0, vint16m2_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i16m4_b4)))
-vbool4_t vmsbc(vint16m4_t op0, vint16m4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i16m8_b2)))
-vbool2_t vmsbc(vint16m8_t op0, vint16m8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i16mf2_b32)))
-vbool32_t vmsbc(vint16mf2_t op0, vint16mf2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i16mf4_b64)))
-vbool64_t vmsbc(vint16mf4_t op0, vint16mf4_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i32m1_b32)))
-vbool32_t vmsbc(vint32m1_t op0, vint32m1_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i32m2_b16)))
-vbool16_t vmsbc(vint32m2_t op0, vint32m2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i32m4_b8)))
-vbool8_t vmsbc(vint32m4_t op0, vint32m4_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i32m8_b4)))
-vbool4_t vmsbc(vint32m8_t op0, vint32m8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i32mf2_b64)))
-vbool64_t vmsbc(vint32mf2_t op0, vint32mf2_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i64m1_b64)))
-vbool64_t vmsbc(vint64m1_t op0, vint64m1_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i64m2_b32)))
-vbool32_t vmsbc(vint64m2_t op0, vint64m2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i64m4_b16)))
-vbool16_t vmsbc(vint64m4_t op0, vint64m4_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_i64m8_b8)))
-vbool8_t vmsbc(vint64m8_t op0, vint64m8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i8m1_b8)))
-vbool8_t vmsbc(vint8m1_t op0, int8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i8m2_b4)))
-vbool4_t vmsbc(vint8m2_t op0, int8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i8m4_b2)))
-vbool2_t vmsbc(vint8m4_t op0, int8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i8m8_b1)))
-vbool1_t vmsbc(vint8m8_t op0, int8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i8mf2_b16)))
-vbool16_t vmsbc(vint8mf2_t op0, int8_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i8mf4_b32)))
-vbool32_t vmsbc(vint8mf4_t op0, int8_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i8mf8_b64)))
-vbool64_t vmsbc(vint8mf8_t op0, int8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i16m1_b16)))
-vbool16_t vmsbc(vint16m1_t op0, int16_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i16m2_b8)))
-vbool8_t vmsbc(vint16m2_t op0, int16_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i16m4_b4)))
-vbool4_t vmsbc(vint16m4_t op0, int16_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i16m8_b2)))
-vbool2_t vmsbc(vint16m8_t op0, int16_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i16mf2_b32)))
-vbool32_t vmsbc(vint16mf2_t op0, int16_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i16mf4_b64)))
-vbool64_t vmsbc(vint16mf4_t op0, int16_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i32m1_b32)))
-vbool32_t vmsbc(vint32m1_t op0, int32_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i32m2_b16)))
-vbool16_t vmsbc(vint32m2_t op0, int32_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i32m4_b8)))
-vbool8_t vmsbc(vint32m4_t op0, int32_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i32m8_b4)))
-vbool4_t vmsbc(vint32m8_t op0, int32_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i32mf2_b64)))
-vbool64_t vmsbc(vint32mf2_t op0, int32_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i64m1_b64)))
-vbool64_t vmsbc(vint64m1_t op0, int64_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i64m2_b32)))
-vbool32_t vmsbc(vint64m2_t op0, int64_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i64m4_b16)))
-vbool16_t vmsbc(vint64m4_t op0, int64_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_i64m8_b8)))
-vbool8_t vmsbc(vint64m8_t op0, int64_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u8m1_b8)))
-vbool8_t vmsbc(vuint8m1_t op0, vuint8m1_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u8m2_b4)))
-vbool4_t vmsbc(vuint8m2_t op0, vuint8m2_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u8m4_b2)))
-vbool2_t vmsbc(vuint8m4_t op0, vuint8m4_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u8m8_b1)))
-vbool1_t vmsbc(vuint8m8_t op0, vuint8m8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u8mf2_b16)))
-vbool16_t vmsbc(vuint8mf2_t op0, vuint8mf2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u8mf4_b32)))
-vbool32_t vmsbc(vuint8mf4_t op0, vuint8mf4_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u8mf8_b64)))
-vbool64_t vmsbc(vuint8mf8_t op0, vuint8mf8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u16m1_b16)))
-vbool16_t vmsbc(vuint16m1_t op0, vuint16m1_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u16m2_b8)))
-vbool8_t vmsbc(vuint16m2_t op0, vuint16m2_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u16m4_b4)))
-vbool4_t vmsbc(vuint16m4_t op0, vuint16m4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u16m8_b2)))
-vbool2_t vmsbc(vuint16m8_t op0, vuint16m8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u16mf2_b32)))
-vbool32_t vmsbc(vuint16mf2_t op0, vuint16mf2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u16mf4_b64)))
-vbool64_t vmsbc(vuint16mf4_t op0, vuint16mf4_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u32m1_b32)))
-vbool32_t vmsbc(vuint32m1_t op0, vuint32m1_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u32m2_b16)))
-vbool16_t vmsbc(vuint32m2_t op0, vuint32m2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u32m4_b8)))
-vbool8_t vmsbc(vuint32m4_t op0, vuint32m4_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u32m8_b4)))
-vbool4_t vmsbc(vuint32m8_t op0, vuint32m8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u32mf2_b64)))
-vbool64_t vmsbc(vuint32mf2_t op0, vuint32mf2_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u64m1_b64)))
-vbool64_t vmsbc(vuint64m1_t op0, vuint64m1_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u64m2_b32)))
-vbool32_t vmsbc(vuint64m2_t op0, vuint64m2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u64m4_b16)))
-vbool16_t vmsbc(vuint64m4_t op0, vuint64m4_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vvm_u64m8_b8)))
-vbool8_t vmsbc(vuint64m8_t op0, vuint64m8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u8m1_b8)))
-vbool8_t vmsbc(vuint8m1_t op0, uint8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u8m2_b4)))
-vbool4_t vmsbc(vuint8m2_t op0, uint8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u8m4_b2)))
-vbool2_t vmsbc(vuint8m4_t op0, uint8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u8m8_b1)))
-vbool1_t vmsbc(vuint8m8_t op0, uint8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u8mf2_b16)))
-vbool16_t vmsbc(vuint8mf2_t op0, uint8_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u8mf4_b32)))
-vbool32_t vmsbc(vuint8mf4_t op0, uint8_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u8mf8_b64)))
-vbool64_t vmsbc(vuint8mf8_t op0, uint8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u16m1_b16)))
-vbool16_t vmsbc(vuint16m1_t op0, uint16_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u16m2_b8)))
-vbool8_t vmsbc(vuint16m2_t op0, uint16_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u16m4_b4)))
-vbool4_t vmsbc(vuint16m4_t op0, uint16_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u16m8_b2)))
-vbool2_t vmsbc(vuint16m8_t op0, uint16_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u16mf2_b32)))
-vbool32_t vmsbc(vuint16mf2_t op0, uint16_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u16mf4_b64)))
-vbool64_t vmsbc(vuint16mf4_t op0, uint16_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u32m1_b32)))
-vbool32_t vmsbc(vuint32m1_t op0, uint32_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u32m2_b16)))
-vbool16_t vmsbc(vuint32m2_t op0, uint32_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u32m4_b8)))
-vbool8_t vmsbc(vuint32m4_t op0, uint32_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u32m8_b4)))
-vbool4_t vmsbc(vuint32m8_t op0, uint32_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u32mf2_b64)))
-vbool64_t vmsbc(vuint32mf2_t op0, uint32_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u64m1_b64)))
-vbool64_t vmsbc(vuint64m1_t op0, uint64_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u64m2_b32)))
-vbool32_t vmsbc(vuint64m2_t op0, uint64_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u64m4_b16)))
-vbool16_t vmsbc(vuint64m4_t op0, uint64_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vxm_u64m8_b8)))
-vbool8_t vmsbc(vuint64m8_t op0, uint64_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16m1)))
-void vsuxei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16m1_m)))
-void vsuxei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16m2)))
-void vsuxei8(uint16_t * op0, vuint8m1_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16m2_m)))
-void vsuxei8(vbool8_t op0, uint16_t * op1, vuint8m1_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16m4)))
-void vsuxei8(uint16_t * op0, vuint8m2_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16m4_m)))
-void vsuxei8(vbool4_t op0, uint16_t * op1, vuint8m2_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16m8)))
-void vsuxei8(uint16_t * op0, vuint8m4_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16m8_m)))
-void vsuxei8(vbool2_t op0, uint16_t * op1, vuint8m4_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16mf2)))
-void vsuxei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16mf2_m)))
-void vsuxei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16mf4)))
-void vsuxei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u16mf4_m)))
-void vsuxei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i8m1_b8)))
-vbool8_t vmsbc(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i8m2_b4)))
-vbool4_t vmsbc(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i8m4_b2)))
-vbool2_t vmsbc(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i8m8_b1)))
-vbool1_t vmsbc(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i8mf2_b16)))
-vbool16_t vmsbc(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i8mf4_b32)))
-vbool32_t vmsbc(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i8mf8_b64)))
-vbool64_t vmsbc(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i16m1_b16)))
-vbool16_t vmsbc(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i16m2_b8)))
-vbool8_t vmsbc(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i16m4_b4)))
-vbool4_t vmsbc(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i16m8_b2)))
-vbool2_t vmsbc(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i16mf2_b32)))
-vbool32_t vmsbc(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i16mf4_b64)))
-vbool64_t vmsbc(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i32m1_b32)))
-vbool32_t vmsbc(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i32m2_b16)))
-vbool16_t vmsbc(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i32m4_b8)))
-vbool8_t vmsbc(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i32m8_b4)))
-vbool4_t vmsbc(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i32mf2_b64)))
-vbool64_t vmsbc(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i64m1_b64)))
-vbool64_t vmsbc(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i64m2_b32)))
-vbool32_t vmsbc(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i64m4_b16)))
-vbool16_t vmsbc(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_i64m8_b8)))
-vbool8_t vmsbc(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i8m1_b8)))
-vbool8_t vmsbc(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i8m2_b4)))
-vbool4_t vmsbc(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i8m4_b2)))
-vbool2_t vmsbc(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i8m8_b1)))
-vbool1_t vmsbc(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i8mf2_b16)))
-vbool16_t vmsbc(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i8mf4_b32)))
-vbool32_t vmsbc(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i8mf8_b64)))
-vbool64_t vmsbc(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i16m1_b16)))
-vbool16_t vmsbc(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i16m2_b8)))
-vbool8_t vmsbc(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i16m4_b4)))
-vbool4_t vmsbc(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i16m8_b2)))
-vbool2_t vmsbc(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i16mf2_b32)))
-vbool32_t vmsbc(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i16mf4_b64)))
-vbool64_t vmsbc(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i32m1_b32)))
-vbool32_t vmsbc(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i32m2_b16)))
-vbool16_t vmsbc(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i32m4_b8)))
-vbool8_t vmsbc(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i32m8_b4)))
-vbool4_t vmsbc(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i32mf2_b64)))
-vbool64_t vmsbc(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i64m1_b64)))
-vbool64_t vmsbc(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i64m2_b32)))
-vbool32_t vmsbc(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i64m4_b16)))
-vbool16_t vmsbc(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_i64m8_b8)))
-vbool8_t vmsbc(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u8m1_b8)))
-vbool8_t vmsbc(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u8m2_b4)))
-vbool4_t vmsbc(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u8m4_b2)))
-vbool2_t vmsbc(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u8m8_b1)))
-vbool1_t vmsbc(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u8mf2_b16)))
-vbool16_t vmsbc(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u8mf4_b32)))
-vbool32_t vmsbc(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u8mf8_b64)))
-vbool64_t vmsbc(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u16m1_b16)))
-vbool16_t vmsbc(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u16m2_b8)))
-vbool8_t vmsbc(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u16m4_b4)))
-vbool4_t vmsbc(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u16m8_b2)))
-vbool2_t vmsbc(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u16mf2_b32)))
-vbool32_t vmsbc(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u16mf4_b64)))
-vbool64_t vmsbc(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u32m1_b32)))
-vbool32_t vmsbc(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u32m2_b16)))
-vbool16_t vmsbc(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u32m4_b8)))
-vbool8_t vmsbc(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u32m8_b4)))
-vbool4_t vmsbc(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u32mf2_b64)))
-vbool64_t vmsbc(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u64m1_b64)))
-vbool64_t vmsbc(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u64m2_b32)))
-vbool32_t vmsbc(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u64m4_b16)))
-vbool16_t vmsbc(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vv_u64m8_b8)))
-vbool8_t vmsbc(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u8m1_b8)))
-vbool8_t vmsbc(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u8m2_b4)))
-vbool4_t vmsbc(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u8m4_b2)))
-vbool2_t vmsbc(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u8m8_b1)))
-vbool1_t vmsbc(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u8mf2_b16)))
-vbool16_t vmsbc(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u8mf4_b32)))
-vbool32_t vmsbc(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u8mf8_b64)))
-vbool64_t vmsbc(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u16m1_b16)))
-vbool16_t vmsbc(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u16m2_b8)))
-vbool8_t vmsbc(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u16m4_b4)))
-vbool4_t vmsbc(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u16m8_b2)))
-vbool2_t vmsbc(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u16mf2_b32)))
-vbool32_t vmsbc(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u16mf4_b64)))
-vbool64_t vmsbc(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u32m1_b32)))
-vbool32_t vmsbc(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u32m2_b16)))
-vbool16_t vmsbc(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u32m4_b8)))
-vbool8_t vmsbc(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u32m8_b4)))
-vbool4_t vmsbc(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u32mf2_b64)))
-vbool64_t vmsbc(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u64m1_b64)))
-vbool64_t vmsbc(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u64m2_b32)))
-vbool32_t vmsbc(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u64m4_b16)))
-vbool16_t vmsbc(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbc_vx_u64m8_b8)))
-vbool8_t vmsbc(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8m1)))
-vint8m1_t vand(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8m1_m)))
-vint8m1_t vand(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8m2)))
-vint8m2_t vand(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8m2_m)))
-vint8m2_t vand(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8m4)))
-vint8m4_t vand(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8m4_m)))
-vint8m4_t vand(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8m8)))
-vint8m8_t vand(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8m8_m)))
-vint8m8_t vand(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8mf2)))
-vint8mf2_t vand(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8mf2_m)))
-vint8mf2_t vand(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8mf4)))
-vint8mf4_t vand(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8mf4_m)))
-vint8mf4_t vand(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8mf8)))
-vint8mf8_t vand(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i8mf8_m)))
-vint8mf8_t vand(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16m1)))
-vint16m1_t vand(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16m1_m)))
-vint16m1_t vand(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16m2)))
-vint16m2_t vand(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16m2_m)))
-vint16m2_t vand(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16m4)))
-vint16m4_t vand(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16m4_m)))
-vint16m4_t vand(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16m8)))
-vint16m8_t vand(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16m8_m)))
-vint16m8_t vand(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16mf2)))
-vint16mf2_t vand(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16mf2_m)))
-vint16mf2_t vand(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16mf4)))
-vint16mf4_t vand(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i16mf4_m)))
-vint16mf4_t vand(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i32m1)))
-vint32m1_t vand(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i32m1_m)))
-vint32m1_t vand(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i32m2)))
-vint32m2_t vand(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i32m2_m)))
-vint32m2_t vand(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i32m4)))
-vint32m4_t vand(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i32m4_m)))
-vint32m4_t vand(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i32m8)))
-vint32m8_t vand(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i32m8_m)))
-vint32m8_t vand(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i32mf2)))
-vint32mf2_t vand(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i32mf2_m)))
-vint32mf2_t vand(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i64m1)))
-vint64m1_t vand(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i64m1_m)))
-vint64m1_t vand(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i64m2)))
-vint64m2_t vand(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i64m2_m)))
-vint64m2_t vand(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i64m4)))
-vint64m4_t vand(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i64m4_m)))
-vint64m4_t vand(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i64m8)))
-vint64m8_t vand(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_i64m8_m)))
-vint64m8_t vand(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8m1)))
-vint8m1_t vand(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8m1_m)))
-vint8m1_t vand(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8m2)))
-vint8m2_t vand(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8m2_m)))
-vint8m2_t vand(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8m4)))
-vint8m4_t vand(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8m4_m)))
-vint8m4_t vand(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8m8)))
-vint8m8_t vand(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8m8_m)))
-vint8m8_t vand(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8mf2)))
-vint8mf2_t vand(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8mf2_m)))
-vint8mf2_t vand(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8mf4)))
-vint8mf4_t vand(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8mf4_m)))
-vint8mf4_t vand(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8mf8)))
-vint8mf8_t vand(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i8mf8_m)))
-vint8mf8_t vand(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16m1)))
-vint16m1_t vand(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16m1_m)))
-vint16m1_t vand(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16m2)))
-vint16m2_t vand(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16m2_m)))
-vint16m2_t vand(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16m4)))
-vint16m4_t vand(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16m4_m)))
-vint16m4_t vand(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16m8)))
-vint16m8_t vand(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16m8_m)))
-vint16m8_t vand(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16mf2)))
-vint16mf2_t vand(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16mf2_m)))
-vint16mf2_t vand(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16mf4)))
-vint16mf4_t vand(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i16mf4_m)))
-vint16mf4_t vand(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i32m1)))
-vint32m1_t vand(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i32m1_m)))
-vint32m1_t vand(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i32m2)))
-vint32m2_t vand(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i32m2_m)))
-vint32m2_t vand(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i32m4)))
-vint32m4_t vand(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i32m4_m)))
-vint32m4_t vand(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i32m8)))
-vint32m8_t vand(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i32m8_m)))
-vint32m8_t vand(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i32mf2)))
-vint32mf2_t vand(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i32mf2_m)))
-vint32mf2_t vand(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i64m1)))
-vint64m1_t vand(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i64m1_m)))
-vint64m1_t vand(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i64m2)))
-vint64m2_t vand(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i64m2_m)))
-vint64m2_t vand(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i64m4)))
-vint64m4_t vand(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i64m4_m)))
-vint64m4_t vand(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i64m8)))
-vint64m8_t vand(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_i64m8_m)))
-vint64m8_t vand(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8m1)))
-vuint8m1_t vand(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8m1_m)))
-vuint8m1_t vand(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8m2)))
-vuint8m2_t vand(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8m2_m)))
-vuint8m2_t vand(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8m4)))
-vuint8m4_t vand(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8m4_m)))
-vuint8m4_t vand(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8m8)))
-vuint8m8_t vand(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8m8_m)))
-vuint8m8_t vand(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8mf2)))
-vuint8mf2_t vand(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8mf2_m)))
-vuint8mf2_t vand(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8mf4)))
-vuint8mf4_t vand(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8mf4_m)))
-vuint8mf4_t vand(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8mf8)))
-vuint8mf8_t vand(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u8mf8_m)))
-vuint8mf8_t vand(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16m1)))
-vuint16m1_t vand(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16m1_m)))
-vuint16m1_t vand(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16m2)))
-vuint16m2_t vand(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16m2_m)))
-vuint16m2_t vand(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16m4)))
-vuint16m4_t vand(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16m4_m)))
-vuint16m4_t vand(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16m8)))
-vuint16m8_t vand(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16m8_m)))
-vuint16m8_t vand(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16mf2)))
-vuint16mf2_t vand(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16mf2_m)))
-vuint16mf2_t vand(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16mf4)))
-vuint16mf4_t vand(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u16mf4_m)))
-vuint16mf4_t vand(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u32m1)))
-vuint32m1_t vand(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u32m1_m)))
-vuint32m1_t vand(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u32m2)))
-vuint32m2_t vand(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u32m2_m)))
-vuint32m2_t vand(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u32m4)))
-vuint32m4_t vand(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u32m4_m)))
-vuint32m4_t vand(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u32m8)))
-vuint32m8_t vand(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u32m8_m)))
-vuint32m8_t vand(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u32mf2)))
-vuint32mf2_t vand(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u32mf2_m)))
-vuint32mf2_t vand(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u64m1)))
-vuint64m1_t vand(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u64m1_m)))
-vuint64m1_t vand(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u64m2)))
-vuint64m2_t vand(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u64m2_m)))
-vuint64m2_t vand(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u64m4)))
-vuint64m4_t vand(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u64m4_m)))
-vuint64m4_t vand(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u64m8)))
-vuint64m8_t vand(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vv_u64m8_m)))
-vuint64m8_t vand(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8m1)))
-vuint8m1_t vand(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8m1_m)))
-vuint8m1_t vand(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8m2)))
-vuint8m2_t vand(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8m2_m)))
-vuint8m2_t vand(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8m4)))
-vuint8m4_t vand(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8m4_m)))
-vuint8m4_t vand(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8m8)))
-vuint8m8_t vand(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8m8_m)))
-vuint8m8_t vand(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8mf2)))
-vuint8mf2_t vand(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8mf2_m)))
-vuint8mf2_t vand(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8mf4)))
-vuint8mf4_t vand(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8mf4_m)))
-vuint8mf4_t vand(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8mf8)))
-vuint8mf8_t vand(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u8mf8_m)))
-vuint8mf8_t vand(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16m1)))
-vuint16m1_t vand(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16m1_m)))
-vuint16m1_t vand(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16m2)))
-vuint16m2_t vand(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16m2_m)))
-vuint16m2_t vand(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16m4)))
-vuint16m4_t vand(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16m4_m)))
-vuint16m4_t vand(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16m8)))
-vuint16m8_t vand(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16m8_m)))
-vuint16m8_t vand(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16mf2)))
-vuint16mf2_t vand(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16mf2_m)))
-vuint16mf2_t vand(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16mf4)))
-vuint16mf4_t vand(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u16mf4_m)))
-vuint16mf4_t vand(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u32m1)))
-vuint32m1_t vand(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u32m1_m)))
-vuint32m1_t vand(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u32m2)))
-vuint32m2_t vand(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u32m2_m)))
-vuint32m2_t vand(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u32m4)))
-vuint32m4_t vand(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u32m4_m)))
-vuint32m4_t vand(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u32m8)))
-vuint32m8_t vand(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u32m8_m)))
-vuint32m8_t vand(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u32mf2)))
-vuint32mf2_t vand(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u32mf2_m)))
-vuint32mf2_t vand(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u64m1)))
-vuint64m1_t vand(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u64m1_m)))
-vuint64m1_t vand(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u64m2)))
-vuint64m2_t vand(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u64m2_m)))
-vuint64m2_t vand(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u64m4)))
-vuint64m4_t vand(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u64m4_m)))
-vuint64m4_t vand(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u64m8)))
-vuint64m8_t vand(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vand_vx_u64m8_m)))
-vuint64m8_t vand(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8m1)))
-vint8m1_t vxor(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8m1_m)))
-vint8m1_t vxor(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8m2)))
-vint8m2_t vxor(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8m2_m)))
-vint8m2_t vxor(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8m4)))
-vint8m4_t vxor(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8m4_m)))
-vint8m4_t vxor(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8m8)))
-vint8m8_t vxor(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8m8_m)))
-vint8m8_t vxor(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8mf2)))
-vint8mf2_t vxor(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8mf2_m)))
-vint8mf2_t vxor(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8mf4)))
-vint8mf4_t vxor(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8mf4_m)))
-vint8mf4_t vxor(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8mf8)))
-vint8mf8_t vxor(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i8mf8_m)))
-vint8mf8_t vxor(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16m1)))
-vint16m1_t vxor(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16m1_m)))
-vint16m1_t vxor(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16m2)))
-vint16m2_t vxor(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16m2_m)))
-vint16m2_t vxor(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16m4)))
-vint16m4_t vxor(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16m4_m)))
-vint16m4_t vxor(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16m8)))
-vint16m8_t vxor(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16m8_m)))
-vint16m8_t vxor(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16mf2)))
-vint16mf2_t vxor(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16mf2_m)))
-vint16mf2_t vxor(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16mf4)))
-vint16mf4_t vxor(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i16mf4_m)))
-vint16mf4_t vxor(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i32m1)))
-vint32m1_t vxor(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i32m1_m)))
-vint32m1_t vxor(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i32m2)))
-vint32m2_t vxor(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i32m2_m)))
-vint32m2_t vxor(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i32m4)))
-vint32m4_t vxor(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i32m4_m)))
-vint32m4_t vxor(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i32m8)))
-vint32m8_t vxor(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i32m8_m)))
-vint32m8_t vxor(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i32mf2)))
-vint32mf2_t vxor(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i32mf2_m)))
-vint32mf2_t vxor(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i64m1)))
-vint64m1_t vxor(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i64m1_m)))
-vint64m1_t vxor(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i64m2)))
-vint64m2_t vxor(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i64m2_m)))
-vint64m2_t vxor(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i64m4)))
-vint64m4_t vxor(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i64m4_m)))
-vint64m4_t vxor(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i64m8)))
-vint64m8_t vxor(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_i64m8_m)))
-vint64m8_t vxor(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8m1)))
-vint8m1_t vxor(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8m1_m)))
-vint8m1_t vxor(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8m2)))
-vint8m2_t vxor(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8m2_m)))
-vint8m2_t vxor(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8m4)))
-vint8m4_t vxor(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8m4_m)))
-vint8m4_t vxor(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8m8)))
-vint8m8_t vxor(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8m8_m)))
-vint8m8_t vxor(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8mf2)))
-vint8mf2_t vxor(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8mf2_m)))
-vint8mf2_t vxor(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8mf4)))
-vint8mf4_t vxor(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8mf4_m)))
-vint8mf4_t vxor(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8mf8)))
-vint8mf8_t vxor(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i8mf8_m)))
-vint8mf8_t vxor(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16m1)))
-vint16m1_t vxor(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16m1_m)))
-vint16m1_t vxor(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16m2)))
-vint16m2_t vxor(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16m2_m)))
-vint16m2_t vxor(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16m4)))
-vint16m4_t vxor(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16m4_m)))
-vint16m4_t vxor(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16m8)))
-vint16m8_t vxor(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16m8_m)))
-vint16m8_t vxor(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16mf2)))
-vint16mf2_t vxor(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16mf2_m)))
-vint16mf2_t vxor(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16mf4)))
-vint16mf4_t vxor(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i16mf4_m)))
-vint16mf4_t vxor(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i32m1)))
-vint32m1_t vxor(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i32m1_m)))
-vint32m1_t vxor(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i32m2)))
-vint32m2_t vxor(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i32m2_m)))
-vint32m2_t vxor(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i32m4)))
-vint32m4_t vxor(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i32m4_m)))
-vint32m4_t vxor(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i32m8)))
-vint32m8_t vxor(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i32m8_m)))
-vint32m8_t vxor(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i32mf2)))
-vint32mf2_t vxor(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i32mf2_m)))
-vint32mf2_t vxor(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i64m1)))
-vint64m1_t vxor(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i64m1_m)))
-vint64m1_t vxor(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i64m2)))
-vint64m2_t vxor(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i64m2_m)))
-vint64m2_t vxor(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i64m4)))
-vint64m4_t vxor(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i64m4_m)))
-vint64m4_t vxor(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i64m8)))
-vint64m8_t vxor(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_i64m8_m)))
-vint64m8_t vxor(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16m1)))
-void vsuxei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16m1_m)))
-void vsuxei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16m2)))
-void vsuxei16(int16_t * op0, vuint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16m2_m)))
-void vsuxei16(vbool8_t op0, int16_t * op1, vuint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16m4)))
-void vsuxei16(int16_t * op0, vuint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16m4_m)))
-void vsuxei16(vbool4_t op0, int16_t * op1, vuint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16m8)))
-void vsuxei16(int16_t * op0, vuint16m8_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16m8_m)))
-void vsuxei16(vbool2_t op0, int16_t * op1, vuint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16mf2)))
-void vsuxei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16mf2_m)))
-void vsuxei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16mf4)))
-void vsuxei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i16mf4_m)))
-void vsuxei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8m1)))
-vuint8m1_t vxor(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8m1_m)))
-vuint8m1_t vxor(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8m2)))
-vuint8m2_t vxor(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8m2_m)))
-vuint8m2_t vxor(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8m4)))
-vuint8m4_t vxor(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8m4_m)))
-vuint8m4_t vxor(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8m8)))
-vuint8m8_t vxor(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8m8_m)))
-vuint8m8_t vxor(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8mf2)))
-vuint8mf2_t vxor(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8mf2_m)))
-vuint8mf2_t vxor(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8mf4)))
-vuint8mf4_t vxor(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8mf4_m)))
-vuint8mf4_t vxor(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8mf8)))
-vuint8mf8_t vxor(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u8mf8_m)))
-vuint8mf8_t vxor(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16m1)))
-vuint16m1_t vxor(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16m1_m)))
-vuint16m1_t vxor(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16m2)))
-vuint16m2_t vxor(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16m2_m)))
-vuint16m2_t vxor(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16m4)))
-vuint16m4_t vxor(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16m4_m)))
-vuint16m4_t vxor(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16m8)))
-vuint16m8_t vxor(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16m8_m)))
-vuint16m8_t vxor(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16mf2)))
-vuint16mf2_t vxor(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16mf2_m)))
-vuint16mf2_t vxor(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16mf4)))
-vuint16mf4_t vxor(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u16mf4_m)))
-vuint16mf4_t vxor(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u32m1)))
-vuint32m1_t vxor(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u32m1_m)))
-vuint32m1_t vxor(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u32m2)))
-vuint32m2_t vxor(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u32m2_m)))
-vuint32m2_t vxor(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u32m4)))
-vuint32m4_t vxor(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u32m4_m)))
-vuint32m4_t vxor(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u32m8)))
-vuint32m8_t vxor(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u32m8_m)))
-vuint32m8_t vxor(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u32mf2)))
-vuint32mf2_t vxor(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u32mf2_m)))
-vuint32mf2_t vxor(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u64m1)))
-vuint64m1_t vxor(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u64m1_m)))
-vuint64m1_t vxor(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u64m2)))
-vuint64m2_t vxor(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u64m2_m)))
-vuint64m2_t vxor(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u64m4)))
-vuint64m4_t vxor(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u64m4_m)))
-vuint64m4_t vxor(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u64m8)))
-vuint64m8_t vxor(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vv_u64m8_m)))
-vuint64m8_t vxor(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8m1)))
-vuint8m1_t vxor(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8m1_m)))
-vuint8m1_t vxor(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8m2)))
-vuint8m2_t vxor(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8m2_m)))
-vuint8m2_t vxor(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8m4)))
-vuint8m4_t vxor(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8m4_m)))
-vuint8m4_t vxor(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8m8)))
-vuint8m8_t vxor(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8m8_m)))
-vuint8m8_t vxor(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8mf2)))
-vuint8mf2_t vxor(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8mf2_m)))
-vuint8mf2_t vxor(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8mf4)))
-vuint8mf4_t vxor(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8mf4_m)))
-vuint8mf4_t vxor(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8mf8)))
-vuint8mf8_t vxor(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u8mf8_m)))
-vuint8mf8_t vxor(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16m1)))
-vuint16m1_t vxor(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16m1_m)))
-vuint16m1_t vxor(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16m2)))
-vuint16m2_t vxor(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16m2_m)))
-vuint16m2_t vxor(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16m4)))
-vuint16m4_t vxor(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16m4_m)))
-vuint16m4_t vxor(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16m8)))
-vuint16m8_t vxor(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16m8_m)))
-vuint16m8_t vxor(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16mf2)))
-vuint16mf2_t vxor(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16mf2_m)))
-vuint16mf2_t vxor(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16mf4)))
-vuint16mf4_t vxor(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u16mf4_m)))
-vuint16mf4_t vxor(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u32m1)))
-vuint32m1_t vxor(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u32m1_m)))
-vuint32m1_t vxor(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u32m2)))
-vuint32m2_t vxor(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u32m2_m)))
-vuint32m2_t vxor(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u32m4)))
-vuint32m4_t vxor(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u32m4_m)))
-vuint32m4_t vxor(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u32m8)))
-vuint32m8_t vxor(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u32m8_m)))
-vuint32m8_t vxor(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u32mf2)))
-vuint32mf2_t vxor(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u32mf2_m)))
-vuint32mf2_t vxor(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u64m1)))
-vuint64m1_t vxor(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u64m1_m)))
-vuint64m1_t vxor(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u64m2)))
-vuint64m2_t vxor(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u64m2_m)))
-vuint64m2_t vxor(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u64m4)))
-vuint64m4_t vxor(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u64m4_m)))
-vuint64m4_t vxor(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u64m8)))
-vuint64m8_t vxor(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vxor_vx_u64m8_m)))
-vuint64m8_t vxor(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8m1)))
-vint8m1_t vor(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8m1_m)))
-vint8m1_t vor(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8m2)))
-vint8m2_t vor(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8m2_m)))
-vint8m2_t vor(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8m4)))
-vint8m4_t vor(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8m4_m)))
-vint8m4_t vor(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8m8)))
-vint8m8_t vor(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8m8_m)))
-vint8m8_t vor(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8mf2)))
-vint8mf2_t vor(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8mf2_m)))
-vint8mf2_t vor(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8mf4)))
-vint8mf4_t vor(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8mf4_m)))
-vint8mf4_t vor(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8mf8)))
-vint8mf8_t vor(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i8mf8_m)))
-vint8mf8_t vor(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16m1)))
-vint16m1_t vor(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16m1_m)))
-vint16m1_t vor(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16m2)))
-vint16m2_t vor(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16m2_m)))
-vint16m2_t vor(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16m4)))
-vint16m4_t vor(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16m4_m)))
-vint16m4_t vor(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16m8)))
-vint16m8_t vor(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16m8_m)))
-vint16m8_t vor(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16mf2)))
-vint16mf2_t vor(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16mf2_m)))
-vint16mf2_t vor(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16mf4)))
-vint16mf4_t vor(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i16mf4_m)))
-vint16mf4_t vor(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i32m1)))
-vint32m1_t vor(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i32m1_m)))
-vint32m1_t vor(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i32m2)))
-vint32m2_t vor(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i32m2_m)))
-vint32m2_t vor(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i32m4)))
-vint32m4_t vor(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i32m4_m)))
-vint32m4_t vor(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i32m8)))
-vint32m8_t vor(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i32m8_m)))
-vint32m8_t vor(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i32mf2)))
-vint32mf2_t vor(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i32mf2_m)))
-vint32mf2_t vor(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i64m1)))
-vint64m1_t vor(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i64m1_m)))
-vint64m1_t vor(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i64m2)))
-vint64m2_t vor(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i64m2_m)))
-vint64m2_t vor(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i64m4)))
-vint64m4_t vor(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i64m4_m)))
-vint64m4_t vor(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i64m8)))
-vint64m8_t vor(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_i64m8_m)))
-vint64m8_t vor(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8m1)))
-vint8m1_t vor(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8m1_m)))
-vint8m1_t vor(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8m2)))
-vint8m2_t vor(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8m2_m)))
-vint8m2_t vor(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8m4)))
-vint8m4_t vor(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8m4_m)))
-vint8m4_t vor(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8m8)))
-vint8m8_t vor(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8m8_m)))
-vint8m8_t vor(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8mf2)))
-vint8mf2_t vor(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8mf2_m)))
-vint8mf2_t vor(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8mf4)))
-vint8mf4_t vor(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8mf4_m)))
-vint8mf4_t vor(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8mf8)))
-vint8mf8_t vor(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i8mf8_m)))
-vint8mf8_t vor(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16m1)))
-vint16m1_t vor(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16m1_m)))
-vint16m1_t vor(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16m2)))
-vint16m2_t vor(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16m2_m)))
-vint16m2_t vor(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16m4)))
-vint16m4_t vor(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16m4_m)))
-vint16m4_t vor(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16m8)))
-vint16m8_t vor(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16m8_m)))
-vint16m8_t vor(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16mf2)))
-vint16mf2_t vor(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16mf2_m)))
-vint16mf2_t vor(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16mf4)))
-vint16mf4_t vor(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i16mf4_m)))
-vint16mf4_t vor(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i32m1)))
-vint32m1_t vor(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i32m1_m)))
-vint32m1_t vor(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i32m2)))
-vint32m2_t vor(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i32m2_m)))
-vint32m2_t vor(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i32m4)))
-vint32m4_t vor(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i32m4_m)))
-vint32m4_t vor(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i32m8)))
-vint32m8_t vor(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i32m8_m)))
-vint32m8_t vor(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i32mf2)))
-vint32mf2_t vor(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i32mf2_m)))
-vint32mf2_t vor(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i64m1)))
-vint64m1_t vor(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i64m1_m)))
-vint64m1_t vor(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i64m2)))
-vint64m2_t vor(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i64m2_m)))
-vint64m2_t vor(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i64m4)))
-vint64m4_t vor(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i64m4_m)))
-vint64m4_t vor(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i64m8)))
-vint64m8_t vor(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_i64m8_m)))
-vint64m8_t vor(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8m1)))
-vuint8m1_t vor(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8m1_m)))
-vuint8m1_t vor(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8m2)))
-vuint8m2_t vor(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8m2_m)))
-vuint8m2_t vor(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8m4)))
-vuint8m4_t vor(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8m4_m)))
-vuint8m4_t vor(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8m8)))
-vuint8m8_t vor(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8m8_m)))
-vuint8m8_t vor(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8mf2)))
-vuint8mf2_t vor(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8mf2_m)))
-vuint8mf2_t vor(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8mf4)))
-vuint8mf4_t vor(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8mf4_m)))
-vuint8mf4_t vor(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8mf8)))
-vuint8mf8_t vor(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u8mf8_m)))
-vuint8mf8_t vor(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16m1)))
-vuint16m1_t vor(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16m1_m)))
-vuint16m1_t vor(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16m2)))
-vuint16m2_t vor(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16m2_m)))
-vuint16m2_t vor(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16m4)))
-vuint16m4_t vor(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16m4_m)))
-vuint16m4_t vor(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16m8)))
-vuint16m8_t vor(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16m8_m)))
-vuint16m8_t vor(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16mf2)))
-vuint16mf2_t vor(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16mf2_m)))
-vuint16mf2_t vor(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16mf4)))
-vuint16mf4_t vor(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u16mf4_m)))
-vuint16mf4_t vor(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u32m1)))
-vuint32m1_t vor(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u32m1_m)))
-vuint32m1_t vor(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u32m2)))
-vuint32m2_t vor(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u32m2_m)))
-vuint32m2_t vor(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u32m4)))
-vuint32m4_t vor(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u32m4_m)))
-vuint32m4_t vor(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u32m8)))
-vuint32m8_t vor(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u32m8_m)))
-vuint32m8_t vor(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u32mf2)))
-vuint32mf2_t vor(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u32mf2_m)))
-vuint32mf2_t vor(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u64m1)))
-vuint64m1_t vor(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u64m1_m)))
-vuint64m1_t vor(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u64m2)))
-vuint64m2_t vor(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u64m2_m)))
-vuint64m2_t vor(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u64m4)))
-vuint64m4_t vor(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u64m4_m)))
-vuint64m4_t vor(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u64m8)))
-vuint64m8_t vor(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vv_u64m8_m)))
-vuint64m8_t vor(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8m1)))
-vuint8m1_t vor(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8m1_m)))
-vuint8m1_t vor(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8m2)))
-vuint8m2_t vor(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8m2_m)))
-vuint8m2_t vor(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8m4)))
-vuint8m4_t vor(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8m4_m)))
-vuint8m4_t vor(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8m8)))
-vuint8m8_t vor(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8m8_m)))
-vuint8m8_t vor(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8mf2)))
-vuint8mf2_t vor(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8mf2_m)))
-vuint8mf2_t vor(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8mf4)))
-vuint8mf4_t vor(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8mf4_m)))
-vuint8mf4_t vor(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8mf8)))
-vuint8mf8_t vor(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u8mf8_m)))
-vuint8mf8_t vor(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16m1)))
-vuint16m1_t vor(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16m1_m)))
-vuint16m1_t vor(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16m2)))
-vuint16m2_t vor(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16m2_m)))
-vuint16m2_t vor(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16m4)))
-vuint16m4_t vor(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16m4_m)))
-vuint16m4_t vor(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16m8)))
-vuint16m8_t vor(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16m8_m)))
-vuint16m8_t vor(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16mf2)))
-vuint16mf2_t vor(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16mf2_m)))
-vuint16mf2_t vor(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16mf4)))
-vuint16mf4_t vor(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u16mf4_m)))
-vuint16mf4_t vor(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u32m1)))
-vuint32m1_t vor(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u32m1_m)))
-vuint32m1_t vor(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u32m2)))
-vuint32m2_t vor(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u32m2_m)))
-vuint32m2_t vor(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u32m4)))
-vuint32m4_t vor(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u32m4_m)))
-vuint32m4_t vor(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u32m8)))
-vuint32m8_t vor(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u32m8_m)))
-vuint32m8_t vor(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u32mf2)))
-vuint32mf2_t vor(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u32mf2_m)))
-vuint32mf2_t vor(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u64m1)))
-vuint64m1_t vor(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u64m1_m)))
-vuint64m1_t vor(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u64m2)))
-vuint64m2_t vor(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u64m2_m)))
-vuint64m2_t vor(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u64m4)))
-vuint64m4_t vor(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u64m4_m)))
-vuint64m4_t vor(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u64m8)))
-vuint64m8_t vor(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vor_vx_u64m8_m)))
-vuint64m8_t vor(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8m1)))
-vint8m1_t vsll(vint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8m1_m)))
-vint8m1_t vsll(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8m2)))
-vint8m2_t vsll(vint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8m2_m)))
-vint8m2_t vsll(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8m4)))
-vint8m4_t vsll(vint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8m4_m)))
-vint8m4_t vsll(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8m8)))
-vint8m8_t vsll(vint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8m8_m)))
-vint8m8_t vsll(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8mf2)))
-vint8mf2_t vsll(vint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8mf2_m)))
-vint8mf2_t vsll(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8mf4)))
-vint8mf4_t vsll(vint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8mf4_m)))
-vint8mf4_t vsll(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8mf8)))
-vint8mf8_t vsll(vint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i8mf8_m)))
-vint8mf8_t vsll(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16m1)))
-vint16m1_t vsll(vint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16m1_m)))
-vint16m1_t vsll(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16m2)))
-vint16m2_t vsll(vint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16m2_m)))
-vint16m2_t vsll(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16m4)))
-vint16m4_t vsll(vint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16m4_m)))
-vint16m4_t vsll(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16m8)))
-vint16m8_t vsll(vint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16m8_m)))
-vint16m8_t vsll(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16mf2)))
-vint16mf2_t vsll(vint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16mf2_m)))
-vint16mf2_t vsll(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16mf4)))
-vint16mf4_t vsll(vint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i16mf4_m)))
-vint16mf4_t vsll(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i32m1)))
-vint32m1_t vsll(vint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i32m1_m)))
-vint32m1_t vsll(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i32m2)))
-vint32m2_t vsll(vint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i32m2_m)))
-vint32m2_t vsll(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i32m4)))
-vint32m4_t vsll(vint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i32m4_m)))
-vint32m4_t vsll(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i32m8)))
-vint32m8_t vsll(vint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i32m8_m)))
-vint32m8_t vsll(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i32mf2)))
-vint32mf2_t vsll(vint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i32mf2_m)))
-vint32mf2_t vsll(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i64m1)))
-vint64m1_t vsll(vint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i64m1_m)))
-vint64m1_t vsll(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i64m2)))
-vint64m2_t vsll(vint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i64m2_m)))
-vint64m2_t vsll(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i64m4)))
-vint64m4_t vsll(vint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i64m4_m)))
-vint64m4_t vsll(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i64m8)))
-vint64m8_t vsll(vint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_i64m8_m)))
-vint64m8_t vsll(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8m1)))
-vint8m1_t vsll(vint8m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8m1_m)))
-vint8m1_t vsll(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8m2)))
-vint8m2_t vsll(vint8m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8m2_m)))
-vint8m2_t vsll(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8m4)))
-vint8m4_t vsll(vint8m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8m4_m)))
-vint8m4_t vsll(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8m8)))
-vint8m8_t vsll(vint8m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8m8_m)))
-vint8m8_t vsll(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8mf2)))
-vint8mf2_t vsll(vint8mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8mf2_m)))
-vint8mf2_t vsll(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8mf4)))
-vint8mf4_t vsll(vint8mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8mf4_m)))
-vint8mf4_t vsll(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8mf8)))
-vint8mf8_t vsll(vint8mf8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i8mf8_m)))
-vint8mf8_t vsll(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16m1)))
-vint16m1_t vsll(vint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16m1_m)))
-vint16m1_t vsll(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16m2)))
-vint16m2_t vsll(vint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16m2_m)))
-vint16m2_t vsll(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16m4)))
-vint16m4_t vsll(vint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16m4_m)))
-vint16m4_t vsll(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16m8)))
-vint16m8_t vsll(vint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16m8_m)))
-vint16m8_t vsll(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16mf2)))
-vint16mf2_t vsll(vint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16mf2_m)))
-vint16mf2_t vsll(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16mf4)))
-vint16mf4_t vsll(vint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i16mf4_m)))
-vint16mf4_t vsll(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i32m1)))
-vint32m1_t vsll(vint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i32m1_m)))
-vint32m1_t vsll(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i32m2)))
-vint32m2_t vsll(vint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i32m2_m)))
-vint32m2_t vsll(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i32m4)))
-vint32m4_t vsll(vint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i32m4_m)))
-vint32m4_t vsll(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i32m8)))
-vint32m8_t vsll(vint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i32m8_m)))
-vint32m8_t vsll(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i32mf2)))
-vint32mf2_t vsll(vint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i32mf2_m)))
-vint32mf2_t vsll(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i64m1)))
-vint64m1_t vsll(vint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i64m1_m)))
-vint64m1_t vsll(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i64m2)))
-vint64m2_t vsll(vint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i64m2_m)))
-vint64m2_t vsll(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i64m4)))
-vint64m4_t vsll(vint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i64m4_m)))
-vint64m4_t vsll(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i64m8)))
-vint64m8_t vsll(vint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_i64m8_m)))
-vint64m8_t vsll(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8m1)))
-vuint8m1_t vsll(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8m1_m)))
-vuint8m1_t vsll(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8m2)))
-vuint8m2_t vsll(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8m2_m)))
-vuint8m2_t vsll(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8m4)))
-vuint8m4_t vsll(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8m4_m)))
-vuint8m4_t vsll(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8m8)))
-vuint8m8_t vsll(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8m8_m)))
-vuint8m8_t vsll(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8mf2)))
-vuint8mf2_t vsll(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8mf2_m)))
-vuint8mf2_t vsll(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8mf4)))
-vuint8mf4_t vsll(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8mf4_m)))
-vuint8mf4_t vsll(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8mf8)))
-vuint8mf8_t vsll(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u8mf8_m)))
-vuint8mf8_t vsll(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16m1)))
-vuint16m1_t vsll(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16m1_m)))
-vuint16m1_t vsll(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16m2)))
-vuint16m2_t vsll(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16m2_m)))
-vuint16m2_t vsll(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16m4)))
-vuint16m4_t vsll(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16m4_m)))
-vuint16m4_t vsll(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16m8)))
-vuint16m8_t vsll(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16m8_m)))
-vuint16m8_t vsll(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16mf2)))
-vuint16mf2_t vsll(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16mf2_m)))
-vuint16mf2_t vsll(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16mf4)))
-vuint16mf4_t vsll(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u16mf4_m)))
-vuint16mf4_t vsll(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u32m1)))
-vuint32m1_t vsll(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u32m1_m)))
-vuint32m1_t vsll(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u32m2)))
-vuint32m2_t vsll(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u32m2_m)))
-vuint32m2_t vsll(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u32m4)))
-vuint32m4_t vsll(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u32m4_m)))
-vuint32m4_t vsll(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u32m8)))
-vuint32m8_t vsll(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u32m8_m)))
-vuint32m8_t vsll(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u32mf2)))
-vuint32mf2_t vsll(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u32mf2_m)))
-vuint32mf2_t vsll(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u64m1)))
-vuint64m1_t vsll(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u64m1_m)))
-vuint64m1_t vsll(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u64m2)))
-vuint64m2_t vsll(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u64m2_m)))
-vuint64m2_t vsll(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u64m4)))
-vuint64m4_t vsll(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u64m4_m)))
-vuint64m4_t vsll(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u64m8)))
-vuint64m8_t vsll(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vv_u64m8_m)))
-vuint64m8_t vsll(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8m1)))
-vuint8m1_t vsll(vuint8m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8m1_m)))
-vuint8m1_t vsll(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8m2)))
-vuint8m2_t vsll(vuint8m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8m2_m)))
-vuint8m2_t vsll(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8m4)))
-vuint8m4_t vsll(vuint8m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8m4_m)))
-vuint8m4_t vsll(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8m8)))
-vuint8m8_t vsll(vuint8m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8m8_m)))
-vuint8m8_t vsll(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8mf2)))
-vuint8mf2_t vsll(vuint8mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8mf2_m)))
-vuint8mf2_t vsll(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8mf4)))
-vuint8mf4_t vsll(vuint8mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8mf4_m)))
-vuint8mf4_t vsll(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8mf8)))
-vuint8mf8_t vsll(vuint8mf8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u8mf8_m)))
-vuint8mf8_t vsll(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16m1)))
-vuint16m1_t vsll(vuint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16m1_m)))
-vuint16m1_t vsll(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16m2)))
-vuint16m2_t vsll(vuint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16m2_m)))
-vuint16m2_t vsll(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16m4)))
-vuint16m4_t vsll(vuint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16m4_m)))
-vuint16m4_t vsll(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16m8)))
-vuint16m8_t vsll(vuint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16m8_m)))
-vuint16m8_t vsll(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16mf2)))
-vuint16mf2_t vsll(vuint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16mf2_m)))
-vuint16mf2_t vsll(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16mf4)))
-vuint16mf4_t vsll(vuint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u16mf4_m)))
-vuint16mf4_t vsll(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u32m1)))
-vuint32m1_t vsll(vuint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u32m1_m)))
-vuint32m1_t vsll(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u32m2)))
-vuint32m2_t vsll(vuint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u32m2_m)))
-vuint32m2_t vsll(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u32m4)))
-vuint32m4_t vsll(vuint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u32m4_m)))
-vuint32m4_t vsll(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u32m8)))
-vuint32m8_t vsll(vuint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u32m8_m)))
-vuint32m8_t vsll(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u32mf2)))
-vuint32mf2_t vsll(vuint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u32mf2_m)))
-vuint32mf2_t vsll(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u64m1)))
-vuint64m1_t vsll(vuint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u64m1_m)))
-vuint64m1_t vsll(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u64m2)))
-vuint64m2_t vsll(vuint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u64m2_m)))
-vuint64m2_t vsll(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u64m4)))
-vuint64m4_t vsll(vuint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u64m4_m)))
-vuint64m4_t vsll(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u64m8)))
-vuint64m8_t vsll(vuint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsll_vx_u64m8_m)))
-vuint64m8_t vsll(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16m1)))
-void vsuxei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16m1_m)))
-void vsuxei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16m2)))
-void vsuxei16(uint16_t * op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16m2_m)))
-void vsuxei16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16m4)))
-void vsuxei16(uint16_t * op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16m4_m)))
-void vsuxei16(vbool4_t op0, uint16_t * op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16m8)))
-void vsuxei16(uint16_t * op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16m8_m)))
-void vsuxei16(vbool2_t op0, uint16_t * op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16mf2)))
-void vsuxei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16mf2_m)))
-void vsuxei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16mf4)))
-void vsuxei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u16mf4_m)))
-void vsuxei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8m1)))
-vuint8m1_t vsrl(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8m1_m)))
-vuint8m1_t vsrl(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8m2)))
-vuint8m2_t vsrl(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8m2_m)))
-vuint8m2_t vsrl(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8m4)))
-vuint8m4_t vsrl(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8m4_m)))
-vuint8m4_t vsrl(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8m8)))
-vuint8m8_t vsrl(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8m8_m)))
-vuint8m8_t vsrl(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8mf2)))
-vuint8mf2_t vsrl(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8mf2_m)))
-vuint8mf2_t vsrl(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8mf4)))
-vuint8mf4_t vsrl(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8mf4_m)))
-vuint8mf4_t vsrl(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8mf8)))
-vuint8mf8_t vsrl(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u8mf8_m)))
-vuint8mf8_t vsrl(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16m1)))
-vuint16m1_t vsrl(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16m1_m)))
-vuint16m1_t vsrl(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16m2)))
-vuint16m2_t vsrl(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16m2_m)))
-vuint16m2_t vsrl(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16m4)))
-vuint16m4_t vsrl(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16m4_m)))
-vuint16m4_t vsrl(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16m8)))
-vuint16m8_t vsrl(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16m8_m)))
-vuint16m8_t vsrl(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16mf2)))
-vuint16mf2_t vsrl(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16mf2_m)))
-vuint16mf2_t vsrl(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16mf4)))
-vuint16mf4_t vsrl(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u16mf4_m)))
-vuint16mf4_t vsrl(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u32m1)))
-vuint32m1_t vsrl(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u32m1_m)))
-vuint32m1_t vsrl(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u32m2)))
-vuint32m2_t vsrl(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u32m2_m)))
-vuint32m2_t vsrl(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u32m4)))
-vuint32m4_t vsrl(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u32m4_m)))
-vuint32m4_t vsrl(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u32m8)))
-vuint32m8_t vsrl(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u32m8_m)))
-vuint32m8_t vsrl(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u32mf2)))
-vuint32mf2_t vsrl(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u32mf2_m)))
-vuint32mf2_t vsrl(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u64m1)))
-vuint64m1_t vsrl(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u64m1_m)))
-vuint64m1_t vsrl(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u64m2)))
-vuint64m2_t vsrl(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u64m2_m)))
-vuint64m2_t vsrl(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u64m4)))
-vuint64m4_t vsrl(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u64m4_m)))
-vuint64m4_t vsrl(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u64m8)))
-vuint64m8_t vsrl(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vv_u64m8_m)))
-vuint64m8_t vsrl(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8m1)))
-vuint8m1_t vsrl(vuint8m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8m1_m)))
-vuint8m1_t vsrl(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8m2)))
-vuint8m2_t vsrl(vuint8m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8m2_m)))
-vuint8m2_t vsrl(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8m4)))
-vuint8m4_t vsrl(vuint8m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8m4_m)))
-vuint8m4_t vsrl(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8m8)))
-vuint8m8_t vsrl(vuint8m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8m8_m)))
-vuint8m8_t vsrl(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8mf2)))
-vuint8mf2_t vsrl(vuint8mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8mf2_m)))
-vuint8mf2_t vsrl(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8mf4)))
-vuint8mf4_t vsrl(vuint8mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8mf4_m)))
-vuint8mf4_t vsrl(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8mf8)))
-vuint8mf8_t vsrl(vuint8mf8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u8mf8_m)))
-vuint8mf8_t vsrl(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16m1)))
-vuint16m1_t vsrl(vuint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16m1_m)))
-vuint16m1_t vsrl(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16m2)))
-vuint16m2_t vsrl(vuint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16m2_m)))
-vuint16m2_t vsrl(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16m4)))
-vuint16m4_t vsrl(vuint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16m4_m)))
-vuint16m4_t vsrl(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16m8)))
-vuint16m8_t vsrl(vuint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16m8_m)))
-vuint16m8_t vsrl(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16mf2)))
-vuint16mf2_t vsrl(vuint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16mf2_m)))
-vuint16mf2_t vsrl(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16mf4)))
-vuint16mf4_t vsrl(vuint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u16mf4_m)))
-vuint16mf4_t vsrl(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u32m1)))
-vuint32m1_t vsrl(vuint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u32m1_m)))
-vuint32m1_t vsrl(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u32m2)))
-vuint32m2_t vsrl(vuint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u32m2_m)))
-vuint32m2_t vsrl(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u32m4)))
-vuint32m4_t vsrl(vuint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u32m4_m)))
-vuint32m4_t vsrl(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u32m8)))
-vuint32m8_t vsrl(vuint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u32m8_m)))
-vuint32m8_t vsrl(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u32mf2)))
-vuint32mf2_t vsrl(vuint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u32mf2_m)))
-vuint32mf2_t vsrl(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u64m1)))
-vuint64m1_t vsrl(vuint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u64m1_m)))
-vuint64m1_t vsrl(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u64m2)))
-vuint64m2_t vsrl(vuint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u64m2_m)))
-vuint64m2_t vsrl(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u64m4)))
-vuint64m4_t vsrl(vuint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u64m4_m)))
-vuint64m4_t vsrl(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u64m8)))
-vuint64m8_t vsrl(vuint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsrl_vx_u64m8_m)))
-vuint64m8_t vsrl(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8m1)))
-vint8m1_t vsra(vint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8m1_m)))
-vint8m1_t vsra(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8m2)))
-vint8m2_t vsra(vint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8m2_m)))
-vint8m2_t vsra(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8m4)))
-vint8m4_t vsra(vint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8m4_m)))
-vint8m4_t vsra(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8m8)))
-vint8m8_t vsra(vint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8m8_m)))
-vint8m8_t vsra(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8mf2)))
-vint8mf2_t vsra(vint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8mf2_m)))
-vint8mf2_t vsra(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8mf4)))
-vint8mf4_t vsra(vint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8mf4_m)))
-vint8mf4_t vsra(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8mf8)))
-vint8mf8_t vsra(vint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i8mf8_m)))
-vint8mf8_t vsra(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16m1)))
-vint16m1_t vsra(vint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16m1_m)))
-vint16m1_t vsra(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16m2)))
-vint16m2_t vsra(vint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16m2_m)))
-vint16m2_t vsra(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16m4)))
-vint16m4_t vsra(vint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16m4_m)))
-vint16m4_t vsra(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16m8)))
-vint16m8_t vsra(vint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16m8_m)))
-vint16m8_t vsra(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16mf2)))
-vint16mf2_t vsra(vint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16mf2_m)))
-vint16mf2_t vsra(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16mf4)))
-vint16mf4_t vsra(vint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i16mf4_m)))
-vint16mf4_t vsra(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i32m1)))
-vint32m1_t vsra(vint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i32m1_m)))
-vint32m1_t vsra(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i32m2)))
-vint32m2_t vsra(vint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i32m2_m)))
-vint32m2_t vsra(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i32m4)))
-vint32m4_t vsra(vint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i32m4_m)))
-vint32m4_t vsra(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i32m8)))
-vint32m8_t vsra(vint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i32m8_m)))
-vint32m8_t vsra(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i32mf2)))
-vint32mf2_t vsra(vint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i32mf2_m)))
-vint32mf2_t vsra(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i64m1)))
-vint64m1_t vsra(vint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i64m1_m)))
-vint64m1_t vsra(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i64m2)))
-vint64m2_t vsra(vint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i64m2_m)))
-vint64m2_t vsra(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i64m4)))
-vint64m4_t vsra(vint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i64m4_m)))
-vint64m4_t vsra(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i64m8)))
-vint64m8_t vsra(vint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vv_i64m8_m)))
-vint64m8_t vsra(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8m1)))
-vint8m1_t vsra(vint8m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8m1_m)))
-vint8m1_t vsra(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8m2)))
-vint8m2_t vsra(vint8m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8m2_m)))
-vint8m2_t vsra(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8m4)))
-vint8m4_t vsra(vint8m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8m4_m)))
-vint8m4_t vsra(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8m8)))
-vint8m8_t vsra(vint8m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8m8_m)))
-vint8m8_t vsra(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8mf2)))
-vint8mf2_t vsra(vint8mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8mf2_m)))
-vint8mf2_t vsra(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8mf4)))
-vint8mf4_t vsra(vint8mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8mf4_m)))
-vint8mf4_t vsra(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8mf8)))
-vint8mf8_t vsra(vint8mf8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i8mf8_m)))
-vint8mf8_t vsra(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16m1)))
-vint16m1_t vsra(vint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16m1_m)))
-vint16m1_t vsra(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16m2)))
-vint16m2_t vsra(vint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16m2_m)))
-vint16m2_t vsra(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16m4)))
-vint16m4_t vsra(vint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16m4_m)))
-vint16m4_t vsra(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16m8)))
-vint16m8_t vsra(vint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16m8_m)))
-vint16m8_t vsra(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16mf2)))
-vint16mf2_t vsra(vint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16mf2_m)))
-vint16mf2_t vsra(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16mf4)))
-vint16mf4_t vsra(vint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i16mf4_m)))
-vint16mf4_t vsra(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i32m1)))
-vint32m1_t vsra(vint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i32m1_m)))
-vint32m1_t vsra(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i32m2)))
-vint32m2_t vsra(vint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i32m2_m)))
-vint32m2_t vsra(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i32m4)))
-vint32m4_t vsra(vint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i32m4_m)))
-vint32m4_t vsra(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i32m8)))
-vint32m8_t vsra(vint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i32m8_m)))
-vint32m8_t vsra(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i32mf2)))
-vint32mf2_t vsra(vint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i32mf2_m)))
-vint32mf2_t vsra(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i64m1)))
-vint64m1_t vsra(vint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i64m1_m)))
-vint64m1_t vsra(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i64m2)))
-vint64m2_t vsra(vint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i64m2_m)))
-vint64m2_t vsra(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i64m4)))
-vint64m4_t vsra(vint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i64m4_m)))
-vint64m4_t vsra(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i64m8)))
-vint64m8_t vsra(vint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsra_vx_i64m8_m)))
-vint64m8_t vsra(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8m1)))
-vuint8m1_t vnsrl(vuint16m2_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8m1_m)))
-vuint8m1_t vnsrl(vbool8_t op0, vuint8m1_t op1, vuint16m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8m2)))
-vuint8m2_t vnsrl(vuint16m4_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8m2_m)))
-vuint8m2_t vnsrl(vbool4_t op0, vuint8m2_t op1, vuint16m4_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8m4)))
-vuint8m4_t vnsrl(vuint16m8_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8m4_m)))
-vuint8m4_t vnsrl(vbool2_t op0, vuint8m4_t op1, vuint16m8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8mf2)))
-vuint8mf2_t vnsrl(vuint16m1_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8mf2_m)))
-vuint8mf2_t vnsrl(vbool16_t op0, vuint8mf2_t op1, vuint16m1_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8mf4)))
-vuint8mf4_t vnsrl(vuint16mf2_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8mf4_m)))
-vuint8mf4_t vnsrl(vbool32_t op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8mf8)))
-vuint8mf8_t vnsrl(vuint16mf4_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u8mf8_m)))
-vuint8mf8_t vnsrl(vbool64_t op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u16m1)))
-vuint16m1_t vnsrl(vuint32m2_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u16m1_m)))
-vuint16m1_t vnsrl(vbool16_t op0, vuint16m1_t op1, vuint32m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u16m2)))
-vuint16m2_t vnsrl(vuint32m4_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u16m2_m)))
-vuint16m2_t vnsrl(vbool8_t op0, vuint16m2_t op1, vuint32m4_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u16m4)))
-vuint16m4_t vnsrl(vuint32m8_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u16m4_m)))
-vuint16m4_t vnsrl(vbool4_t op0, vuint16m4_t op1, vuint32m8_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u16mf2)))
-vuint16mf2_t vnsrl(vuint32m1_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u16mf2_m)))
-vuint16mf2_t vnsrl(vbool32_t op0, vuint16mf2_t op1, vuint32m1_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u16mf4)))
-vuint16mf4_t vnsrl(vuint32mf2_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u16mf4_m)))
-vuint16mf4_t vnsrl(vbool64_t op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u32m1)))
-vuint32m1_t vnsrl(vuint64m2_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u32m1_m)))
-vuint32m1_t vnsrl(vbool32_t op0, vuint32m1_t op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u32m2)))
-vuint32m2_t vnsrl(vuint64m4_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u32m2_m)))
-vuint32m2_t vnsrl(vbool16_t op0, vuint32m2_t op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u32m4)))
-vuint32m4_t vnsrl(vuint64m8_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u32m4_m)))
-vuint32m4_t vnsrl(vbool8_t op0, vuint32m4_t op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u32mf2)))
-vuint32mf2_t vnsrl(vuint64m1_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wv_u32mf2_m)))
-vuint32mf2_t vnsrl(vbool64_t op0, vuint32mf2_t op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8m1)))
-vuint8m1_t vnsrl(vuint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8m1_m)))
-vuint8m1_t vnsrl(vbool8_t op0, vuint8m1_t op1, vuint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8m2)))
-vuint8m2_t vnsrl(vuint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8m2_m)))
-vuint8m2_t vnsrl(vbool4_t op0, vuint8m2_t op1, vuint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8m4)))
-vuint8m4_t vnsrl(vuint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8m4_m)))
-vuint8m4_t vnsrl(vbool2_t op0, vuint8m4_t op1, vuint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8mf2)))
-vuint8mf2_t vnsrl(vuint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8mf2_m)))
-vuint8mf2_t vnsrl(vbool16_t op0, vuint8mf2_t op1, vuint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8mf4)))
-vuint8mf4_t vnsrl(vuint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8mf4_m)))
-vuint8mf4_t vnsrl(vbool32_t op0, vuint8mf4_t op1, vuint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8mf8)))
-vuint8mf8_t vnsrl(vuint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u8mf8_m)))
-vuint8mf8_t vnsrl(vbool64_t op0, vuint8mf8_t op1, vuint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u16m1)))
-vuint16m1_t vnsrl(vuint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u16m1_m)))
-vuint16m1_t vnsrl(vbool16_t op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u16m2)))
-vuint16m2_t vnsrl(vuint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u16m2_m)))
-vuint16m2_t vnsrl(vbool8_t op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u16m4)))
-vuint16m4_t vnsrl(vuint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u16m4_m)))
-vuint16m4_t vnsrl(vbool4_t op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u16mf2)))
-vuint16mf2_t vnsrl(vuint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u16mf2_m)))
-vuint16mf2_t vnsrl(vbool32_t op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u16mf4)))
-vuint16mf4_t vnsrl(vuint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u16mf4_m)))
-vuint16mf4_t vnsrl(vbool64_t op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u32m1)))
-vuint32m1_t vnsrl(vuint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u32m1_m)))
-vuint32m1_t vnsrl(vbool32_t op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u32m2)))
-vuint32m2_t vnsrl(vuint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u32m2_m)))
-vuint32m2_t vnsrl(vbool16_t op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u32m4)))
-vuint32m4_t vnsrl(vuint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u32m4_m)))
-vuint32m4_t vnsrl(vbool8_t op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u32mf2)))
-vuint32mf2_t vnsrl(vuint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsrl_wx_u32mf2_m)))
-vuint32mf2_t vnsrl(vbool64_t op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8m1)))
-vint8m1_t vnsra(vint16m2_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8m1_m)))
-vint8m1_t vnsra(vbool8_t op0, vint8m1_t op1, vint16m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8m2)))
-vint8m2_t vnsra(vint16m4_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8m2_m)))
-vint8m2_t vnsra(vbool4_t op0, vint8m2_t op1, vint16m4_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8m4)))
-vint8m4_t vnsra(vint16m8_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8m4_m)))
-vint8m4_t vnsra(vbool2_t op0, vint8m4_t op1, vint16m8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8mf2)))
-vint8mf2_t vnsra(vint16m1_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8mf2_m)))
-vint8mf2_t vnsra(vbool16_t op0, vint8mf2_t op1, vint16m1_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8mf4)))
-vint8mf4_t vnsra(vint16mf2_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8mf4_m)))
-vint8mf4_t vnsra(vbool32_t op0, vint8mf4_t op1, vint16mf2_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8mf8)))
-vint8mf8_t vnsra(vint16mf4_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i8mf8_m)))
-vint8mf8_t vnsra(vbool64_t op0, vint8mf8_t op1, vint16mf4_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i16m1)))
-vint16m1_t vnsra(vint32m2_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i16m1_m)))
-vint16m1_t vnsra(vbool16_t op0, vint16m1_t op1, vint32m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i16m2)))
-vint16m2_t vnsra(vint32m4_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i16m2_m)))
-vint16m2_t vnsra(vbool8_t op0, vint16m2_t op1, vint32m4_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i16m4)))
-vint16m4_t vnsra(vint32m8_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i16m4_m)))
-vint16m4_t vnsra(vbool4_t op0, vint16m4_t op1, vint32m8_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i16mf2)))
-vint16mf2_t vnsra(vint32m1_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i16mf2_m)))
-vint16mf2_t vnsra(vbool32_t op0, vint16mf2_t op1, vint32m1_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i16mf4)))
-vint16mf4_t vnsra(vint32mf2_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i16mf4_m)))
-vint16mf4_t vnsra(vbool64_t op0, vint16mf4_t op1, vint32mf2_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i32m1)))
-vint32m1_t vnsra(vint64m2_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i32m1_m)))
-vint32m1_t vnsra(vbool32_t op0, vint32m1_t op1, vint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i32m2)))
-vint32m2_t vnsra(vint64m4_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i32m2_m)))
-vint32m2_t vnsra(vbool16_t op0, vint32m2_t op1, vint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i32m4)))
-vint32m4_t vnsra(vint64m8_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i32m4_m)))
-vint32m4_t vnsra(vbool8_t op0, vint32m4_t op1, vint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i32mf2)))
-vint32mf2_t vnsra(vint64m1_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wv_i32mf2_m)))
-vint32mf2_t vnsra(vbool64_t op0, vint32mf2_t op1, vint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8m1)))
-vint8m1_t vnsra(vint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8m1_m)))
-vint8m1_t vnsra(vbool8_t op0, vint8m1_t op1, vint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8m2)))
-vint8m2_t vnsra(vint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8m2_m)))
-vint8m2_t vnsra(vbool4_t op0, vint8m2_t op1, vint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8m4)))
-vint8m4_t vnsra(vint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8m4_m)))
-vint8m4_t vnsra(vbool2_t op0, vint8m4_t op1, vint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8mf2)))
-vint8mf2_t vnsra(vint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8mf2_m)))
-vint8mf2_t vnsra(vbool16_t op0, vint8mf2_t op1, vint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8mf4)))
-vint8mf4_t vnsra(vint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8mf4_m)))
-vint8mf4_t vnsra(vbool32_t op0, vint8mf4_t op1, vint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8mf8)))
-vint8mf8_t vnsra(vint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i8mf8_m)))
-vint8mf8_t vnsra(vbool64_t op0, vint8mf8_t op1, vint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i16m1)))
-vint16m1_t vnsra(vint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i16m1_m)))
-vint16m1_t vnsra(vbool16_t op0, vint16m1_t op1, vint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i16m2)))
-vint16m2_t vnsra(vint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i16m2_m)))
-vint16m2_t vnsra(vbool8_t op0, vint16m2_t op1, vint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i16m4)))
-vint16m4_t vnsra(vint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i16m4_m)))
-vint16m4_t vnsra(vbool4_t op0, vint16m4_t op1, vint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i16mf2)))
-vint16mf2_t vnsra(vint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i16mf2_m)))
-vint16mf2_t vnsra(vbool32_t op0, vint16mf2_t op1, vint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i16mf4)))
-vint16mf4_t vnsra(vint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i16mf4_m)))
-vint16mf4_t vnsra(vbool64_t op0, vint16mf4_t op1, vint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i32m1)))
-vint32m1_t vnsra(vint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i32m1_m)))
-vint32m1_t vnsra(vbool32_t op0, vint32m1_t op1, vint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i32m2)))
-vint32m2_t vnsra(vint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i32m2_m)))
-vint32m2_t vnsra(vbool16_t op0, vint32m2_t op1, vint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i32m4)))
-vint32m4_t vnsra(vint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i32m4_m)))
-vint32m4_t vnsra(vbool8_t op0, vint32m4_t op1, vint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i32mf2)))
-vint32mf2_t vnsra(vint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnsra_wx_i32mf2_m)))
-vint32mf2_t vnsra(vbool64_t op0, vint32mf2_t op1, vint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8m1)))
-vuint8m1_t vncvt_x(vuint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8m1_m)))
-vuint8m1_t vncvt_x(vbool8_t op0, vuint8m1_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8m2)))
-vuint8m2_t vncvt_x(vuint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8m2_m)))
-vuint8m2_t vncvt_x(vbool4_t op0, vuint8m2_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8m4)))
-vuint8m4_t vncvt_x(vuint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8m4_m)))
-vuint8m4_t vncvt_x(vbool2_t op0, vuint8m4_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8mf2)))
-vuint8mf2_t vncvt_x(vuint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8mf2_m)))
-vuint8mf2_t vncvt_x(vbool16_t op0, vuint8mf2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8mf4)))
-vuint8mf4_t vncvt_x(vuint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8mf4_m)))
-vuint8mf4_t vncvt_x(vbool32_t op0, vuint8mf4_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8mf8)))
-vuint8mf8_t vncvt_x(vuint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u8mf8_m)))
-vuint8mf8_t vncvt_x(vbool64_t op0, vuint8mf8_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u16m1)))
-vuint16m1_t vncvt_x(vuint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u16m1_m)))
-vuint16m1_t vncvt_x(vbool16_t op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u16m2)))
-vuint16m2_t vncvt_x(vuint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u16m2_m)))
-vuint16m2_t vncvt_x(vbool8_t op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u16m4)))
-vuint16m4_t vncvt_x(vuint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u16m4_m)))
-vuint16m4_t vncvt_x(vbool4_t op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u16mf2)))
-vuint16mf2_t vncvt_x(vuint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u16mf2_m)))
-vuint16mf2_t vncvt_x(vbool32_t op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u16mf4)))
-vuint16mf4_t vncvt_x(vuint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u16mf4_m)))
-vuint16mf4_t vncvt_x(vbool64_t op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u32m1)))
-vuint32m1_t vncvt_x(vuint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u32m1_m)))
-vuint32m1_t vncvt_x(vbool32_t op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u32m2)))
-vuint32m2_t vncvt_x(vuint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u32m2_m)))
-vuint32m2_t vncvt_x(vbool16_t op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u32m4)))
-vuint32m4_t vncvt_x(vuint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u32m4_m)))
-vuint32m4_t vncvt_x(vbool8_t op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u32mf2)))
-vuint32mf2_t vncvt_x(vuint64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_u32mf2_m)))
-vuint32mf2_t vncvt_x(vbool64_t op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8m1_b8)))
-vbool8_t vmseq(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8m1_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8m2_b4)))
-vbool4_t vmseq(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8m2_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8m4_b2)))
-vbool2_t vmseq(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8m4_b2_m)))
-vbool2_t vmseq(vbool2_t op0, vbool2_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8m8_b1)))
-vbool1_t vmseq(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8m8_b1_m)))
-vbool1_t vmseq(vbool1_t op0, vbool1_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8mf2_b16)))
-vbool16_t vmseq(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8mf2_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8mf4_b32)))
-vbool32_t vmseq(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8mf4_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8mf8_b64)))
-vbool64_t vmseq(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i8mf8_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16m1_b16)))
-vbool16_t vmseq(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16m1_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16m2_b8)))
-vbool8_t vmseq(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16m2_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16m4_b4)))
-vbool4_t vmseq(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16m4_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16m8_b2)))
-vbool2_t vmseq(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16m8_b2_m)))
-vbool2_t vmseq(vbool2_t op0, vbool2_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16mf2_b32)))
-vbool32_t vmseq(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16mf2_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16mf4_b64)))
-vbool64_t vmseq(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i16mf4_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i32m1_b32)))
-vbool32_t vmseq(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i32m1_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i32m2_b16)))
-vbool16_t vmseq(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i32m2_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i32m4_b8)))
-vbool8_t vmseq(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i32m4_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i32m8_b4)))
-vbool4_t vmseq(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i32m8_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i32mf2_b64)))
-vbool64_t vmseq(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i32mf2_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i64m1_b64)))
-vbool64_t vmseq(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i64m1_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i64m2_b32)))
-vbool32_t vmseq(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i64m2_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i64m4_b16)))
-vbool16_t vmseq(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i64m4_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i64m8_b8)))
-vbool8_t vmseq(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_i64m8_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8m1)))
-void vsse8(uint8_t * op0, ptrdiff_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8m1_m)))
-void vsse8(vbool8_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8m2)))
-void vsse8(uint8_t * op0, ptrdiff_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8m2_m)))
-void vsse8(vbool4_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8m4)))
-void vsse8(uint8_t * op0, ptrdiff_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8m4_m)))
-void vsse8(vbool2_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8m8)))
-void vsse8(uint8_t * op0, ptrdiff_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8m8_m)))
-void vsse8(vbool1_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8mf2)))
-void vsse8(uint8_t * op0, ptrdiff_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8mf2_m)))
-void vsse8(vbool16_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8mf4)))
-void vsse8(uint8_t * op0, ptrdiff_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8mf4_m)))
-void vsse8(vbool32_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8mf8)))
-void vsse8(uint8_t * op0, ptrdiff_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse8_v_u8mf8_m)))
-void vsse8(vbool64_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i16m1)))
-void vsuxei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i16m1_m)))
-void vsuxei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i16m2)))
-void vsuxei32(int16_t * op0, vuint32m4_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i16m2_m)))
-void vsuxei32(vbool8_t op0, int16_t * op1, vuint32m4_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i16m4)))
-void vsuxei32(int16_t * op0, vuint32m8_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i16m4_m)))
-void vsuxei32(vbool4_t op0, int16_t * op1, vuint32m8_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i16mf2)))
-void vsuxei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i16mf2_m)))
-void vsuxei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i16mf4)))
-void vsuxei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i16mf4_m)))
-void vsuxei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8m1_b8)))
-vbool8_t vmseq(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8m1_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8m2_b4)))
-vbool4_t vmseq(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8m2_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8m4_b2)))
-vbool2_t vmseq(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8m4_b2_m)))
-vbool2_t vmseq(vbool2_t op0, vbool2_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8m8_b1)))
-vbool1_t vmseq(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8m8_b1_m)))
-vbool1_t vmseq(vbool1_t op0, vbool1_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8mf2_b16)))
-vbool16_t vmseq(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8mf2_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8mf4_b32)))
-vbool32_t vmseq(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8mf4_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8mf8_b64)))
-vbool64_t vmseq(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i8mf8_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16m1_b16)))
-vbool16_t vmseq(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16m1_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16m2_b8)))
-vbool8_t vmseq(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16m2_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16m4_b4)))
-vbool4_t vmseq(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16m4_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16m8_b2)))
-vbool2_t vmseq(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16m8_b2_m)))
-vbool2_t vmseq(vbool2_t op0, vbool2_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16mf2_b32)))
-vbool32_t vmseq(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16mf2_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16mf4_b64)))
-vbool64_t vmseq(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i16mf4_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i32m1_b32)))
-vbool32_t vmseq(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i32m1_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i32m2_b16)))
-vbool16_t vmseq(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i32m2_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i32m4_b8)))
-vbool8_t vmseq(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i32m4_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i32m8_b4)))
-vbool4_t vmseq(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i32m8_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i32mf2_b64)))
-vbool64_t vmseq(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i32mf2_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i64m1_b64)))
-vbool64_t vmseq(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i64m1_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i64m2_b32)))
-vbool32_t vmseq(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i64m2_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i64m4_b16)))
-vbool16_t vmseq(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i64m4_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i64m8_b8)))
-vbool8_t vmseq(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_i64m8_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8m1_b8)))
-vbool8_t vmseq(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8m1_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8m2_b4)))
-vbool4_t vmseq(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8m2_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8m4_b2)))
-vbool2_t vmseq(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8m4_b2_m)))
-vbool2_t vmseq(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8m8_b1)))
-vbool1_t vmseq(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8m8_b1_m)))
-vbool1_t vmseq(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8mf2_b16)))
-vbool16_t vmseq(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8mf2_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8mf4_b32)))
-vbool32_t vmseq(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8mf4_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8mf8_b64)))
-vbool64_t vmseq(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u8mf8_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16m1_b16)))
-vbool16_t vmseq(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16m1_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16m2_b8)))
-vbool8_t vmseq(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16m2_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16m4_b4)))
-vbool4_t vmseq(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16m4_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16m8_b2)))
-vbool2_t vmseq(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16m8_b2_m)))
-vbool2_t vmseq(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16mf2_b32)))
-vbool32_t vmseq(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16mf2_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16mf4_b64)))
-vbool64_t vmseq(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u16mf4_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u32m1_b32)))
-vbool32_t vmseq(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u32m1_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u32m2_b16)))
-vbool16_t vmseq(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u32m2_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u32m4_b8)))
-vbool8_t vmseq(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u32m4_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u32m8_b4)))
-vbool4_t vmseq(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u32m8_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u32mf2_b64)))
-vbool64_t vmseq(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u32mf2_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u64m1_b64)))
-vbool64_t vmseq(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u64m1_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u64m2_b32)))
-vbool32_t vmseq(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u64m2_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u64m4_b16)))
-vbool16_t vmseq(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u64m4_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u64m8_b8)))
-vbool8_t vmseq(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vv_u64m8_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8m1_b8)))
-vbool8_t vmseq(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8m1_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8m2_b4)))
-vbool4_t vmseq(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8m2_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8m4_b2)))
-vbool2_t vmseq(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8m4_b2_m)))
-vbool2_t vmseq(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8m8_b1)))
-vbool1_t vmseq(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8m8_b1_m)))
-vbool1_t vmseq(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8mf2_b16)))
-vbool16_t vmseq(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8mf2_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8mf4_b32)))
-vbool32_t vmseq(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8mf4_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8mf8_b64)))
-vbool64_t vmseq(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u8mf8_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16m1_b16)))
-vbool16_t vmseq(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16m1_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16m2_b8)))
-vbool8_t vmseq(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16m2_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16m4_b4)))
-vbool4_t vmseq(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16m4_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16m8_b2)))
-vbool2_t vmseq(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16m8_b2_m)))
-vbool2_t vmseq(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16mf2_b32)))
-vbool32_t vmseq(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16mf2_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16mf4_b64)))
-vbool64_t vmseq(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u16mf4_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u32m1_b32)))
-vbool32_t vmseq(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u32m1_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u32m2_b16)))
-vbool16_t vmseq(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u32m2_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u32m4_b8)))
-vbool8_t vmseq(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u32m4_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u32m8_b4)))
-vbool4_t vmseq(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u32m8_b4_m)))
-vbool4_t vmseq(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u32mf2_b64)))
-vbool64_t vmseq(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u32mf2_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u64m1_b64)))
-vbool64_t vmseq(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u64m1_b64_m)))
-vbool64_t vmseq(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u64m2_b32)))
-vbool32_t vmseq(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u64m2_b32_m)))
-vbool32_t vmseq(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u64m4_b16)))
-vbool16_t vmseq(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u64m4_b16_m)))
-vbool16_t vmseq(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u64m8_b8)))
-vbool8_t vmseq(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmseq_vx_u64m8_b8_m)))
-vbool8_t vmseq(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8m1_b8)))
-vbool8_t vmsne(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8m1_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8m2_b4)))
-vbool4_t vmsne(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8m2_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8m4_b2)))
-vbool2_t vmsne(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8m4_b2_m)))
-vbool2_t vmsne(vbool2_t op0, vbool2_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8m8_b1)))
-vbool1_t vmsne(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8m8_b1_m)))
-vbool1_t vmsne(vbool1_t op0, vbool1_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8mf2_b16)))
-vbool16_t vmsne(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8mf2_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8mf4_b32)))
-vbool32_t vmsne(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8mf4_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8mf8_b64)))
-vbool64_t vmsne(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i8mf8_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16m1_b16)))
-vbool16_t vmsne(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16m1_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16m2_b8)))
-vbool8_t vmsne(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16m2_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16m4_b4)))
-vbool4_t vmsne(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16m4_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16m8_b2)))
-vbool2_t vmsne(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16m8_b2_m)))
-vbool2_t vmsne(vbool2_t op0, vbool2_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16mf2_b32)))
-vbool32_t vmsne(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16mf2_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16mf4_b64)))
-vbool64_t vmsne(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i16mf4_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i32m1_b32)))
-vbool32_t vmsne(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i32m1_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i32m2_b16)))
-vbool16_t vmsne(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i32m2_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i32m4_b8)))
-vbool8_t vmsne(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i32m4_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i32m8_b4)))
-vbool4_t vmsne(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i32m8_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i32mf2_b64)))
-vbool64_t vmsne(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i32mf2_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i64m1_b64)))
-vbool64_t vmsne(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i64m1_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i64m2_b32)))
-vbool32_t vmsne(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i64m2_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i64m4_b16)))
-vbool16_t vmsne(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i64m4_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i64m8_b8)))
-vbool8_t vmsne(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_i64m8_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8m1_b8)))
-vbool8_t vmsne(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8m1_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8m2_b4)))
-vbool4_t vmsne(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8m2_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8m4_b2)))
-vbool2_t vmsne(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8m4_b2_m)))
-vbool2_t vmsne(vbool2_t op0, vbool2_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8m8_b1)))
-vbool1_t vmsne(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8m8_b1_m)))
-vbool1_t vmsne(vbool1_t op0, vbool1_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8mf2_b16)))
-vbool16_t vmsne(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8mf2_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8mf4_b32)))
-vbool32_t vmsne(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8mf4_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8mf8_b64)))
-vbool64_t vmsne(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i8mf8_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16m1_b16)))
-vbool16_t vmsne(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16m1_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16m2_b8)))
-vbool8_t vmsne(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16m2_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16m4_b4)))
-vbool4_t vmsne(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16m4_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16m8_b2)))
-vbool2_t vmsne(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16m8_b2_m)))
-vbool2_t vmsne(vbool2_t op0, vbool2_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16mf2_b32)))
-vbool32_t vmsne(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16mf2_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16mf4_b64)))
-vbool64_t vmsne(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i16mf4_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i32m1_b32)))
-vbool32_t vmsne(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i32m1_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i32m2_b16)))
-vbool16_t vmsne(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i32m2_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i32m4_b8)))
-vbool8_t vmsne(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i32m4_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i32m8_b4)))
-vbool4_t vmsne(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i32m8_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i32mf2_b64)))
-vbool64_t vmsne(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i32mf2_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i64m1_b64)))
-vbool64_t vmsne(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i64m1_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i64m2_b32)))
-vbool32_t vmsne(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i64m2_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i64m4_b16)))
-vbool16_t vmsne(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i64m4_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i64m8_b8)))
-vbool8_t vmsne(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_i64m8_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8m1_b8)))
-vbool8_t vmsne(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8m1_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8m2_b4)))
-vbool4_t vmsne(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8m2_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8m4_b2)))
-vbool2_t vmsne(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8m4_b2_m)))
-vbool2_t vmsne(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8m8_b1)))
-vbool1_t vmsne(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8m8_b1_m)))
-vbool1_t vmsne(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8mf2_b16)))
-vbool16_t vmsne(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8mf2_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8mf4_b32)))
-vbool32_t vmsne(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8mf4_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8mf8_b64)))
-vbool64_t vmsne(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u8mf8_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16m1_b16)))
-vbool16_t vmsne(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16m1_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16m2_b8)))
-vbool8_t vmsne(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16m2_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16m4_b4)))
-vbool4_t vmsne(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16m4_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16m8_b2)))
-vbool2_t vmsne(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16m8_b2_m)))
-vbool2_t vmsne(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16mf2_b32)))
-vbool32_t vmsne(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16mf2_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16mf4_b64)))
-vbool64_t vmsne(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u16mf4_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u32m1_b32)))
-vbool32_t vmsne(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u32m1_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u32m2_b16)))
-vbool16_t vmsne(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u32m2_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u32m4_b8)))
-vbool8_t vmsne(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u32m4_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u32m8_b4)))
-vbool4_t vmsne(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u32m8_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u32mf2_b64)))
-vbool64_t vmsne(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u32mf2_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u64m1_b64)))
-vbool64_t vmsne(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u64m1_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u64m2_b32)))
-vbool32_t vmsne(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u64m2_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u64m4_b16)))
-vbool16_t vmsne(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u64m4_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u64m8_b8)))
-vbool8_t vmsne(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vv_u64m8_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8m1_b8)))
-vbool8_t vmsne(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8m1_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8m2_b4)))
-vbool4_t vmsne(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8m2_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8m4_b2)))
-vbool2_t vmsne(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8m4_b2_m)))
-vbool2_t vmsne(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8m8_b1)))
-vbool1_t vmsne(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8m8_b1_m)))
-vbool1_t vmsne(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8mf2_b16)))
-vbool16_t vmsne(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8mf2_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8mf4_b32)))
-vbool32_t vmsne(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8mf4_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8mf8_b64)))
-vbool64_t vmsne(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u8mf8_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16m1_b16)))
-vbool16_t vmsne(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16m1_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16m2_b8)))
-vbool8_t vmsne(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16m2_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16m4_b4)))
-vbool4_t vmsne(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16m4_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16m8_b2)))
-vbool2_t vmsne(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16m8_b2_m)))
-vbool2_t vmsne(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16mf2_b32)))
-vbool32_t vmsne(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16mf2_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16mf4_b64)))
-vbool64_t vmsne(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u16mf4_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u32m1_b32)))
-vbool32_t vmsne(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u32m1_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u32m2_b16)))
-vbool16_t vmsne(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u32m2_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u32m4_b8)))
-vbool8_t vmsne(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u32m4_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u32m8_b4)))
-vbool4_t vmsne(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u32m8_b4_m)))
-vbool4_t vmsne(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u32mf2_b64)))
-vbool64_t vmsne(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u32mf2_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u64m1_b64)))
-vbool64_t vmsne(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u64m1_b64_m)))
-vbool64_t vmsne(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u64m2_b32)))
-vbool32_t vmsne(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u64m2_b32_m)))
-vbool32_t vmsne(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u64m4_b16)))
-vbool16_t vmsne(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u64m4_b16_m)))
-vbool16_t vmsne(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u64m8_b8)))
-vbool8_t vmsne(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsne_vx_u64m8_b8_m)))
-vbool8_t vmsne(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8m1_b8)))
-vbool8_t vmsltu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8m1_b8_m)))
-vbool8_t vmsltu(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8m2_b4)))
-vbool4_t vmsltu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8m2_b4_m)))
-vbool4_t vmsltu(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8m4_b2)))
-vbool2_t vmsltu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8m4_b2_m)))
-vbool2_t vmsltu(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8m8_b1)))
-vbool1_t vmsltu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8m8_b1_m)))
-vbool1_t vmsltu(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8mf2_b16)))
-vbool16_t vmsltu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8mf2_b16_m)))
-vbool16_t vmsltu(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8mf4_b32)))
-vbool32_t vmsltu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8mf4_b32_m)))
-vbool32_t vmsltu(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8mf8_b64)))
-vbool64_t vmsltu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u8mf8_b64_m)))
-vbool64_t vmsltu(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16m1_b16)))
-vbool16_t vmsltu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16m1_b16_m)))
-vbool16_t vmsltu(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16m2_b8)))
-vbool8_t vmsltu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16m2_b8_m)))
-vbool8_t vmsltu(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16m4_b4)))
-vbool4_t vmsltu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16m4_b4_m)))
-vbool4_t vmsltu(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16m8_b2)))
-vbool2_t vmsltu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16m8_b2_m)))
-vbool2_t vmsltu(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16mf2_b32)))
-vbool32_t vmsltu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16mf2_b32_m)))
-vbool32_t vmsltu(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16mf4_b64)))
-vbool64_t vmsltu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u16mf4_b64_m)))
-vbool64_t vmsltu(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u32m1_b32)))
-vbool32_t vmsltu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u32m1_b32_m)))
-vbool32_t vmsltu(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u32m2_b16)))
-vbool16_t vmsltu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u32m2_b16_m)))
-vbool16_t vmsltu(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u32m4_b8)))
-vbool8_t vmsltu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u32m4_b8_m)))
-vbool8_t vmsltu(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u32m8_b4)))
-vbool4_t vmsltu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u32m8_b4_m)))
-vbool4_t vmsltu(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u32mf2_b64)))
-vbool64_t vmsltu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u32mf2_b64_m)))
-vbool64_t vmsltu(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u64m1_b64)))
-vbool64_t vmsltu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u64m1_b64_m)))
-vbool64_t vmsltu(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u64m2_b32)))
-vbool32_t vmsltu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u64m2_b32_m)))
-vbool32_t vmsltu(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u64m4_b16)))
-vbool16_t vmsltu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u64m4_b16_m)))
-vbool16_t vmsltu(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u64m8_b8)))
-vbool8_t vmsltu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vv_u64m8_b8_m)))
-vbool8_t vmsltu(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8m1_b8)))
-vbool8_t vmsltu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8m1_b8_m)))
-vbool8_t vmsltu(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8m2_b4)))
-vbool4_t vmsltu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8m2_b4_m)))
-vbool4_t vmsltu(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8m4_b2)))
-vbool2_t vmsltu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8m4_b2_m)))
-vbool2_t vmsltu(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8m8_b1)))
-vbool1_t vmsltu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8m8_b1_m)))
-vbool1_t vmsltu(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8mf2_b16)))
-vbool16_t vmsltu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8mf2_b16_m)))
-vbool16_t vmsltu(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8mf4_b32)))
-vbool32_t vmsltu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8mf4_b32_m)))
-vbool32_t vmsltu(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8mf8_b64)))
-vbool64_t vmsltu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u8mf8_b64_m)))
-vbool64_t vmsltu(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16m1_b16)))
-vbool16_t vmsltu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16m1_b16_m)))
-vbool16_t vmsltu(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16m2_b8)))
-vbool8_t vmsltu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16m2_b8_m)))
-vbool8_t vmsltu(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16m4_b4)))
-vbool4_t vmsltu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16m4_b4_m)))
-vbool4_t vmsltu(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16m8_b2)))
-vbool2_t vmsltu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16m8_b2_m)))
-vbool2_t vmsltu(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16mf2_b32)))
-vbool32_t vmsltu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16mf2_b32_m)))
-vbool32_t vmsltu(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16mf4_b64)))
-vbool64_t vmsltu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u16mf4_b64_m)))
-vbool64_t vmsltu(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u32m1_b32)))
-vbool32_t vmsltu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u32m1_b32_m)))
-vbool32_t vmsltu(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u32m2_b16)))
-vbool16_t vmsltu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u32m2_b16_m)))
-vbool16_t vmsltu(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u32m4_b8)))
-vbool8_t vmsltu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u32m4_b8_m)))
-vbool8_t vmsltu(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u32m8_b4)))
-vbool4_t vmsltu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u32m8_b4_m)))
-vbool4_t vmsltu(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u32mf2_b64)))
-vbool64_t vmsltu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u32mf2_b64_m)))
-vbool64_t vmsltu(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u64m1_b64)))
-vbool64_t vmsltu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u64m1_b64_m)))
-vbool64_t vmsltu(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u64m2_b32)))
-vbool32_t vmsltu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u64m2_b32_m)))
-vbool32_t vmsltu(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u64m4_b16)))
-vbool16_t vmsltu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u64m4_b16_m)))
-vbool16_t vmsltu(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u64m8_b8)))
-vbool8_t vmsltu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsltu_vx_u64m8_b8_m)))
-vbool8_t vmsltu(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8m1_b8)))
-vbool8_t vmslt(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8m1_b8_m)))
-vbool8_t vmslt(vbool8_t op0, vbool8_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8m2_b4)))
-vbool4_t vmslt(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8m2_b4_m)))
-vbool4_t vmslt(vbool4_t op0, vbool4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8m4_b2)))
-vbool2_t vmslt(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8m4_b2_m)))
-vbool2_t vmslt(vbool2_t op0, vbool2_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8m8_b1)))
-vbool1_t vmslt(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8m8_b1_m)))
-vbool1_t vmslt(vbool1_t op0, vbool1_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8mf2_b16)))
-vbool16_t vmslt(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8mf2_b16_m)))
-vbool16_t vmslt(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8mf4_b32)))
-vbool32_t vmslt(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8mf4_b32_m)))
-vbool32_t vmslt(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8mf8_b64)))
-vbool64_t vmslt(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i8mf8_b64_m)))
-vbool64_t vmslt(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16m1_b16)))
-vbool16_t vmslt(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16m1_b16_m)))
-vbool16_t vmslt(vbool16_t op0, vbool16_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16m2_b8)))
-vbool8_t vmslt(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16m2_b8_m)))
-vbool8_t vmslt(vbool8_t op0, vbool8_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16m4_b4)))
-vbool4_t vmslt(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16m4_b4_m)))
-vbool4_t vmslt(vbool4_t op0, vbool4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16m8_b2)))
-vbool2_t vmslt(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16m8_b2_m)))
-vbool2_t vmslt(vbool2_t op0, vbool2_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16mf2_b32)))
-vbool32_t vmslt(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16mf2_b32_m)))
-vbool32_t vmslt(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16mf4_b64)))
-vbool64_t vmslt(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i16mf4_b64_m)))
-vbool64_t vmslt(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i32m1_b32)))
-vbool32_t vmslt(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i32m1_b32_m)))
-vbool32_t vmslt(vbool32_t op0, vbool32_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i32m2_b16)))
-vbool16_t vmslt(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i32m2_b16_m)))
-vbool16_t vmslt(vbool16_t op0, vbool16_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i32m4_b8)))
-vbool8_t vmslt(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i32m4_b8_m)))
-vbool8_t vmslt(vbool8_t op0, vbool8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i32m8_b4)))
-vbool4_t vmslt(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i32m8_b4_m)))
-vbool4_t vmslt(vbool4_t op0, vbool4_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i32mf2_b64)))
-vbool64_t vmslt(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i32mf2_b64_m)))
-vbool64_t vmslt(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i64m1_b64)))
-vbool64_t vmslt(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i64m1_b64_m)))
-vbool64_t vmslt(vbool64_t op0, vbool64_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i64m2_b32)))
-vbool32_t vmslt(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i64m2_b32_m)))
-vbool32_t vmslt(vbool32_t op0, vbool32_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i64m4_b16)))
-vbool16_t vmslt(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i64m4_b16_m)))
-vbool16_t vmslt(vbool16_t op0, vbool16_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i64m8_b8)))
-vbool8_t vmslt(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vv_i64m8_b8_m)))
-vbool8_t vmslt(vbool8_t op0, vbool8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u16m1)))
-void vsuxei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u16m1_m)))
-void vsuxei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u16m2)))
-void vsuxei32(uint16_t * op0, vuint32m4_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u16m2_m)))
-void vsuxei32(vbool8_t op0, uint16_t * op1, vuint32m4_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u16m4)))
-void vsuxei32(uint16_t * op0, vuint32m8_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u16m4_m)))
-void vsuxei32(vbool4_t op0, uint16_t * op1, vuint32m8_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u16mf2)))
-void vsuxei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u16mf2_m)))
-void vsuxei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u16mf4)))
-void vsuxei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u16mf4_m)))
-void vsuxei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8m1_b8)))
-vbool8_t vmslt(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8m1_b8_m)))
-vbool8_t vmslt(vbool8_t op0, vbool8_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8m2_b4)))
-vbool4_t vmslt(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8m2_b4_m)))
-vbool4_t vmslt(vbool4_t op0, vbool4_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8m4_b2)))
-vbool2_t vmslt(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8m4_b2_m)))
-vbool2_t vmslt(vbool2_t op0, vbool2_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8m8_b1)))
-vbool1_t vmslt(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8m8_b1_m)))
-vbool1_t vmslt(vbool1_t op0, vbool1_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8mf2_b16)))
-vbool16_t vmslt(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8mf2_b16_m)))
-vbool16_t vmslt(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8mf4_b32)))
-vbool32_t vmslt(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8mf4_b32_m)))
-vbool32_t vmslt(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8mf8_b64)))
-vbool64_t vmslt(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i8mf8_b64_m)))
-vbool64_t vmslt(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16m1_b16)))
-vbool16_t vmslt(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16m1_b16_m)))
-vbool16_t vmslt(vbool16_t op0, vbool16_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16m2_b8)))
-vbool8_t vmslt(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16m2_b8_m)))
-vbool8_t vmslt(vbool8_t op0, vbool8_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16m4_b4)))
-vbool4_t vmslt(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16m4_b4_m)))
-vbool4_t vmslt(vbool4_t op0, vbool4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16m8_b2)))
-vbool2_t vmslt(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16m8_b2_m)))
-vbool2_t vmslt(vbool2_t op0, vbool2_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16mf2_b32)))
-vbool32_t vmslt(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16mf2_b32_m)))
-vbool32_t vmslt(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16mf4_b64)))
-vbool64_t vmslt(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i16mf4_b64_m)))
-vbool64_t vmslt(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i32m1_b32)))
-vbool32_t vmslt(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i32m1_b32_m)))
-vbool32_t vmslt(vbool32_t op0, vbool32_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i32m2_b16)))
-vbool16_t vmslt(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i32m2_b16_m)))
-vbool16_t vmslt(vbool16_t op0, vbool16_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i32m4_b8)))
-vbool8_t vmslt(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i32m4_b8_m)))
-vbool8_t vmslt(vbool8_t op0, vbool8_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i32m8_b4)))
-vbool4_t vmslt(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i32m8_b4_m)))
-vbool4_t vmslt(vbool4_t op0, vbool4_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i32mf2_b64)))
-vbool64_t vmslt(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i32mf2_b64_m)))
-vbool64_t vmslt(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i64m1_b64)))
-vbool64_t vmslt(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i64m1_b64_m)))
-vbool64_t vmslt(vbool64_t op0, vbool64_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i64m2_b32)))
-vbool32_t vmslt(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i64m2_b32_m)))
-vbool32_t vmslt(vbool32_t op0, vbool32_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i64m4_b16)))
-vbool16_t vmslt(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i64m4_b16_m)))
-vbool16_t vmslt(vbool16_t op0, vbool16_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i64m8_b8)))
-vbool8_t vmslt(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmslt_vx_i64m8_b8_m)))
-vbool8_t vmslt(vbool8_t op0, vbool8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8m1_b8)))
-vbool8_t vmsleu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8m1_b8_m)))
-vbool8_t vmsleu(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8m2_b4)))
-vbool4_t vmsleu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8m2_b4_m)))
-vbool4_t vmsleu(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8m4_b2)))
-vbool2_t vmsleu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8m4_b2_m)))
-vbool2_t vmsleu(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8m8_b1)))
-vbool1_t vmsleu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8m8_b1_m)))
-vbool1_t vmsleu(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8mf2_b16)))
-vbool16_t vmsleu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8mf2_b16_m)))
-vbool16_t vmsleu(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8mf4_b32)))
-vbool32_t vmsleu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8mf4_b32_m)))
-vbool32_t vmsleu(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8mf8_b64)))
-vbool64_t vmsleu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u8mf8_b64_m)))
-vbool64_t vmsleu(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16m1_b16)))
-vbool16_t vmsleu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16m1_b16_m)))
-vbool16_t vmsleu(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16m2_b8)))
-vbool8_t vmsleu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16m2_b8_m)))
-vbool8_t vmsleu(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16m4_b4)))
-vbool4_t vmsleu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16m4_b4_m)))
-vbool4_t vmsleu(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16m8_b2)))
-vbool2_t vmsleu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16m8_b2_m)))
-vbool2_t vmsleu(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16mf2_b32)))
-vbool32_t vmsleu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16mf2_b32_m)))
-vbool32_t vmsleu(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16mf4_b64)))
-vbool64_t vmsleu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u16mf4_b64_m)))
-vbool64_t vmsleu(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u32m1_b32)))
-vbool32_t vmsleu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u32m1_b32_m)))
-vbool32_t vmsleu(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u32m2_b16)))
-vbool16_t vmsleu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u32m2_b16_m)))
-vbool16_t vmsleu(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u32m4_b8)))
-vbool8_t vmsleu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u32m4_b8_m)))
-vbool8_t vmsleu(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u32m8_b4)))
-vbool4_t vmsleu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u32m8_b4_m)))
-vbool4_t vmsleu(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u32mf2_b64)))
-vbool64_t vmsleu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u32mf2_b64_m)))
-vbool64_t vmsleu(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u64m1_b64)))
-vbool64_t vmsleu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u64m1_b64_m)))
-vbool64_t vmsleu(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u64m2_b32)))
-vbool32_t vmsleu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u64m2_b32_m)))
-vbool32_t vmsleu(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u64m4_b16)))
-vbool16_t vmsleu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u64m4_b16_m)))
-vbool16_t vmsleu(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u64m8_b8)))
-vbool8_t vmsleu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vv_u64m8_b8_m)))
-vbool8_t vmsleu(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8m1_b8)))
-vbool8_t vmsleu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8m1_b8_m)))
-vbool8_t vmsleu(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8m2_b4)))
-vbool4_t vmsleu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8m2_b4_m)))
-vbool4_t vmsleu(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8m4_b2)))
-vbool2_t vmsleu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8m4_b2_m)))
-vbool2_t vmsleu(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8m8_b1)))
-vbool1_t vmsleu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8m8_b1_m)))
-vbool1_t vmsleu(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8mf2_b16)))
-vbool16_t vmsleu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8mf2_b16_m)))
-vbool16_t vmsleu(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8mf4_b32)))
-vbool32_t vmsleu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8mf4_b32_m)))
-vbool32_t vmsleu(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8mf8_b64)))
-vbool64_t vmsleu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u8mf8_b64_m)))
-vbool64_t vmsleu(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16m1_b16)))
-vbool16_t vmsleu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16m1_b16_m)))
-vbool16_t vmsleu(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16m2_b8)))
-vbool8_t vmsleu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16m2_b8_m)))
-vbool8_t vmsleu(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16m4_b4)))
-vbool4_t vmsleu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16m4_b4_m)))
-vbool4_t vmsleu(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16m8_b2)))
-vbool2_t vmsleu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16m8_b2_m)))
-vbool2_t vmsleu(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16mf2_b32)))
-vbool32_t vmsleu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16mf2_b32_m)))
-vbool32_t vmsleu(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16mf4_b64)))
-vbool64_t vmsleu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u16mf4_b64_m)))
-vbool64_t vmsleu(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u32m1_b32)))
-vbool32_t vmsleu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u32m1_b32_m)))
-vbool32_t vmsleu(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u32m2_b16)))
-vbool16_t vmsleu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u32m2_b16_m)))
-vbool16_t vmsleu(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u32m4_b8)))
-vbool8_t vmsleu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u32m4_b8_m)))
-vbool8_t vmsleu(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u32m8_b4)))
-vbool4_t vmsleu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u32m8_b4_m)))
-vbool4_t vmsleu(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u32mf2_b64)))
-vbool64_t vmsleu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u32mf2_b64_m)))
-vbool64_t vmsleu(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u64m1_b64)))
-vbool64_t vmsleu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u64m1_b64_m)))
-vbool64_t vmsleu(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u64m2_b32)))
-vbool32_t vmsleu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u64m2_b32_m)))
-vbool32_t vmsleu(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u64m4_b16)))
-vbool16_t vmsleu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u64m4_b16_m)))
-vbool16_t vmsleu(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u64m8_b8)))
-vbool8_t vmsleu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsleu_vx_u64m8_b8_m)))
-vbool8_t vmsleu(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8m1_b8)))
-vbool8_t vmsle(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8m1_b8_m)))
-vbool8_t vmsle(vbool8_t op0, vbool8_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8m2_b4)))
-vbool4_t vmsle(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8m2_b4_m)))
-vbool4_t vmsle(vbool4_t op0, vbool4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8m4_b2)))
-vbool2_t vmsle(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8m4_b2_m)))
-vbool2_t vmsle(vbool2_t op0, vbool2_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8m8_b1)))
-vbool1_t vmsle(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8m8_b1_m)))
-vbool1_t vmsle(vbool1_t op0, vbool1_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8mf2_b16)))
-vbool16_t vmsle(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8mf2_b16_m)))
-vbool16_t vmsle(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8mf4_b32)))
-vbool32_t vmsle(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8mf4_b32_m)))
-vbool32_t vmsle(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8mf8_b64)))
-vbool64_t vmsle(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i8mf8_b64_m)))
-vbool64_t vmsle(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16m1_b16)))
-vbool16_t vmsle(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16m1_b16_m)))
-vbool16_t vmsle(vbool16_t op0, vbool16_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16m2_b8)))
-vbool8_t vmsle(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16m2_b8_m)))
-vbool8_t vmsle(vbool8_t op0, vbool8_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16m4_b4)))
-vbool4_t vmsle(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16m4_b4_m)))
-vbool4_t vmsle(vbool4_t op0, vbool4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16m8_b2)))
-vbool2_t vmsle(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16m8_b2_m)))
-vbool2_t vmsle(vbool2_t op0, vbool2_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16mf2_b32)))
-vbool32_t vmsle(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16mf2_b32_m)))
-vbool32_t vmsle(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16mf4_b64)))
-vbool64_t vmsle(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i16mf4_b64_m)))
-vbool64_t vmsle(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i32m1_b32)))
-vbool32_t vmsle(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i32m1_b32_m)))
-vbool32_t vmsle(vbool32_t op0, vbool32_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i32m2_b16)))
-vbool16_t vmsle(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i32m2_b16_m)))
-vbool16_t vmsle(vbool16_t op0, vbool16_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i32m4_b8)))
-vbool8_t vmsle(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i32m4_b8_m)))
-vbool8_t vmsle(vbool8_t op0, vbool8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i32m8_b4)))
-vbool4_t vmsle(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i32m8_b4_m)))
-vbool4_t vmsle(vbool4_t op0, vbool4_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i32mf2_b64)))
-vbool64_t vmsle(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i32mf2_b64_m)))
-vbool64_t vmsle(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i64m1_b64)))
-vbool64_t vmsle(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i64m1_b64_m)))
-vbool64_t vmsle(vbool64_t op0, vbool64_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i64m2_b32)))
-vbool32_t vmsle(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i64m2_b32_m)))
-vbool32_t vmsle(vbool32_t op0, vbool32_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i64m4_b16)))
-vbool16_t vmsle(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i64m4_b16_m)))
-vbool16_t vmsle(vbool16_t op0, vbool16_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i64m8_b8)))
-vbool8_t vmsle(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vv_i64m8_b8_m)))
-vbool8_t vmsle(vbool8_t op0, vbool8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8m1_b8)))
-vbool8_t vmsle(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8m1_b8_m)))
-vbool8_t vmsle(vbool8_t op0, vbool8_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8m2_b4)))
-vbool4_t vmsle(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8m2_b4_m)))
-vbool4_t vmsle(vbool4_t op0, vbool4_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8m4_b2)))
-vbool2_t vmsle(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8m4_b2_m)))
-vbool2_t vmsle(vbool2_t op0, vbool2_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8m8_b1)))
-vbool1_t vmsle(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8m8_b1_m)))
-vbool1_t vmsle(vbool1_t op0, vbool1_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8mf2_b16)))
-vbool16_t vmsle(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8mf2_b16_m)))
-vbool16_t vmsle(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8mf4_b32)))
-vbool32_t vmsle(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8mf4_b32_m)))
-vbool32_t vmsle(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8mf8_b64)))
-vbool64_t vmsle(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i8mf8_b64_m)))
-vbool64_t vmsle(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16m1_b16)))
-vbool16_t vmsle(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16m1_b16_m)))
-vbool16_t vmsle(vbool16_t op0, vbool16_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16m2_b8)))
-vbool8_t vmsle(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16m2_b8_m)))
-vbool8_t vmsle(vbool8_t op0, vbool8_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16m4_b4)))
-vbool4_t vmsle(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16m4_b4_m)))
-vbool4_t vmsle(vbool4_t op0, vbool4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16m8_b2)))
-vbool2_t vmsle(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16m8_b2_m)))
-vbool2_t vmsle(vbool2_t op0, vbool2_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16mf2_b32)))
-vbool32_t vmsle(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16mf2_b32_m)))
-vbool32_t vmsle(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16mf4_b64)))
-vbool64_t vmsle(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i16mf4_b64_m)))
-vbool64_t vmsle(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i32m1_b32)))
-vbool32_t vmsle(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i32m1_b32_m)))
-vbool32_t vmsle(vbool32_t op0, vbool32_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i32m2_b16)))
-vbool16_t vmsle(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i32m2_b16_m)))
-vbool16_t vmsle(vbool16_t op0, vbool16_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i32m4_b8)))
-vbool8_t vmsle(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i32m4_b8_m)))
-vbool8_t vmsle(vbool8_t op0, vbool8_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i32m8_b4)))
-vbool4_t vmsle(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i32m8_b4_m)))
-vbool4_t vmsle(vbool4_t op0, vbool4_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i32mf2_b64)))
-vbool64_t vmsle(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i32mf2_b64_m)))
-vbool64_t vmsle(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i64m1_b64)))
-vbool64_t vmsle(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i64m1_b64_m)))
-vbool64_t vmsle(vbool64_t op0, vbool64_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i64m2_b32)))
-vbool32_t vmsle(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i64m2_b32_m)))
-vbool32_t vmsle(vbool32_t op0, vbool32_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i64m4_b16)))
-vbool16_t vmsle(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i64m4_b16_m)))
-vbool16_t vmsle(vbool16_t op0, vbool16_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i64m8_b8)))
-vbool8_t vmsle(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsle_vx_i64m8_b8_m)))
-vbool8_t vmsle(vbool8_t op0, vbool8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8m1_b8)))
-vbool8_t vmsgtu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8m1_b8_m)))
-vbool8_t vmsgtu(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8m2_b4)))
-vbool4_t vmsgtu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8m2_b4_m)))
-vbool4_t vmsgtu(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8m4_b2)))
-vbool2_t vmsgtu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8m4_b2_m)))
-vbool2_t vmsgtu(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8m8_b1)))
-vbool1_t vmsgtu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8m8_b1_m)))
-vbool1_t vmsgtu(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8mf2_b16)))
-vbool16_t vmsgtu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8mf2_b16_m)))
-vbool16_t vmsgtu(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8mf4_b32)))
-vbool32_t vmsgtu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8mf4_b32_m)))
-vbool32_t vmsgtu(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8mf8_b64)))
-vbool64_t vmsgtu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u8mf8_b64_m)))
-vbool64_t vmsgtu(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16m1_b16)))
-vbool16_t vmsgtu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16m1_b16_m)))
-vbool16_t vmsgtu(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16m2_b8)))
-vbool8_t vmsgtu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16m2_b8_m)))
-vbool8_t vmsgtu(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16m4_b4)))
-vbool4_t vmsgtu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16m4_b4_m)))
-vbool4_t vmsgtu(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16m8_b2)))
-vbool2_t vmsgtu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16m8_b2_m)))
-vbool2_t vmsgtu(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16mf2_b32)))
-vbool32_t vmsgtu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16mf2_b32_m)))
-vbool32_t vmsgtu(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16mf4_b64)))
-vbool64_t vmsgtu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u16mf4_b64_m)))
-vbool64_t vmsgtu(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u32m1_b32)))
-vbool32_t vmsgtu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u32m1_b32_m)))
-vbool32_t vmsgtu(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u32m2_b16)))
-vbool16_t vmsgtu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u32m2_b16_m)))
-vbool16_t vmsgtu(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u32m4_b8)))
-vbool8_t vmsgtu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u32m4_b8_m)))
-vbool8_t vmsgtu(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u32m8_b4)))
-vbool4_t vmsgtu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u32m8_b4_m)))
-vbool4_t vmsgtu(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u32mf2_b64)))
-vbool64_t vmsgtu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u32mf2_b64_m)))
-vbool64_t vmsgtu(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u64m1_b64)))
-vbool64_t vmsgtu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u64m1_b64_m)))
-vbool64_t vmsgtu(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u64m2_b32)))
-vbool32_t vmsgtu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u64m2_b32_m)))
-vbool32_t vmsgtu(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u64m4_b16)))
-vbool16_t vmsgtu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u64m4_b16_m)))
-vbool16_t vmsgtu(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u64m8_b8)))
-vbool8_t vmsgtu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vv_u64m8_b8_m)))
-vbool8_t vmsgtu(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8m1_b8)))
-vbool8_t vmsgtu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8m1_b8_m)))
-vbool8_t vmsgtu(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8m2_b4)))
-vbool4_t vmsgtu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8m2_b4_m)))
-vbool4_t vmsgtu(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8m4_b2)))
-vbool2_t vmsgtu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8m4_b2_m)))
-vbool2_t vmsgtu(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8m8_b1)))
-vbool1_t vmsgtu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8m8_b1_m)))
-vbool1_t vmsgtu(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8mf2_b16)))
-vbool16_t vmsgtu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8mf2_b16_m)))
-vbool16_t vmsgtu(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8mf4_b32)))
-vbool32_t vmsgtu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8mf4_b32_m)))
-vbool32_t vmsgtu(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8mf8_b64)))
-vbool64_t vmsgtu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u8mf8_b64_m)))
-vbool64_t vmsgtu(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16m1_b16)))
-vbool16_t vmsgtu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16m1_b16_m)))
-vbool16_t vmsgtu(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16m2_b8)))
-vbool8_t vmsgtu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16m2_b8_m)))
-vbool8_t vmsgtu(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16m4_b4)))
-vbool4_t vmsgtu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16m4_b4_m)))
-vbool4_t vmsgtu(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16m8_b2)))
-vbool2_t vmsgtu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16m8_b2_m)))
-vbool2_t vmsgtu(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16mf2_b32)))
-vbool32_t vmsgtu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16mf2_b32_m)))
-vbool32_t vmsgtu(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16mf4_b64)))
-vbool64_t vmsgtu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u16mf4_b64_m)))
-vbool64_t vmsgtu(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u32m1_b32)))
-vbool32_t vmsgtu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u32m1_b32_m)))
-vbool32_t vmsgtu(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u32m2_b16)))
-vbool16_t vmsgtu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u32m2_b16_m)))
-vbool16_t vmsgtu(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u32m4_b8)))
-vbool8_t vmsgtu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u32m4_b8_m)))
-vbool8_t vmsgtu(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u32m8_b4)))
-vbool4_t vmsgtu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u32m8_b4_m)))
-vbool4_t vmsgtu(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u32mf2_b64)))
-vbool64_t vmsgtu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u32mf2_b64_m)))
-vbool64_t vmsgtu(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u64m1_b64)))
-vbool64_t vmsgtu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u64m1_b64_m)))
-vbool64_t vmsgtu(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u64m2_b32)))
-vbool32_t vmsgtu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u64m2_b32_m)))
-vbool32_t vmsgtu(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u64m4_b16)))
-vbool16_t vmsgtu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u64m4_b16_m)))
-vbool16_t vmsgtu(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u64m8_b8)))
-vbool8_t vmsgtu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgtu_vx_u64m8_b8_m)))
-vbool8_t vmsgtu(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8m1_b8)))
-vbool8_t vmsgt(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8m1_b8_m)))
-vbool8_t vmsgt(vbool8_t op0, vbool8_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8m2_b4)))
-vbool4_t vmsgt(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8m2_b4_m)))
-vbool4_t vmsgt(vbool4_t op0, vbool4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8m4_b2)))
-vbool2_t vmsgt(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8m4_b2_m)))
-vbool2_t vmsgt(vbool2_t op0, vbool2_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8m8_b1)))
-vbool1_t vmsgt(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8m8_b1_m)))
-vbool1_t vmsgt(vbool1_t op0, vbool1_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8mf2_b16)))
-vbool16_t vmsgt(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8mf2_b16_m)))
-vbool16_t vmsgt(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8mf4_b32)))
-vbool32_t vmsgt(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8mf4_b32_m)))
-vbool32_t vmsgt(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8mf8_b64)))
-vbool64_t vmsgt(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i8mf8_b64_m)))
-vbool64_t vmsgt(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16m1_b16)))
-vbool16_t vmsgt(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16m1_b16_m)))
-vbool16_t vmsgt(vbool16_t op0, vbool16_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16m2_b8)))
-vbool8_t vmsgt(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16m2_b8_m)))
-vbool8_t vmsgt(vbool8_t op0, vbool8_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16m4_b4)))
-vbool4_t vmsgt(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16m4_b4_m)))
-vbool4_t vmsgt(vbool4_t op0, vbool4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16m8_b2)))
-vbool2_t vmsgt(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16m8_b2_m)))
-vbool2_t vmsgt(vbool2_t op0, vbool2_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16mf2_b32)))
-vbool32_t vmsgt(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16mf2_b32_m)))
-vbool32_t vmsgt(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16mf4_b64)))
-vbool64_t vmsgt(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i16mf4_b64_m)))
-vbool64_t vmsgt(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i32m1_b32)))
-vbool32_t vmsgt(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i32m1_b32_m)))
-vbool32_t vmsgt(vbool32_t op0, vbool32_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i32m2_b16)))
-vbool16_t vmsgt(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i32m2_b16_m)))
-vbool16_t vmsgt(vbool16_t op0, vbool16_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i32m4_b8)))
-vbool8_t vmsgt(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i32m4_b8_m)))
-vbool8_t vmsgt(vbool8_t op0, vbool8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i32m8_b4)))
-vbool4_t vmsgt(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i32m8_b4_m)))
-vbool4_t vmsgt(vbool4_t op0, vbool4_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i32mf2_b64)))
-vbool64_t vmsgt(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i32mf2_b64_m)))
-vbool64_t vmsgt(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i64m1_b64)))
-vbool64_t vmsgt(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i64m1_b64_m)))
-vbool64_t vmsgt(vbool64_t op0, vbool64_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i64m2_b32)))
-vbool32_t vmsgt(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i64m2_b32_m)))
-vbool32_t vmsgt(vbool32_t op0, vbool32_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i64m4_b16)))
-vbool16_t vmsgt(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i64m4_b16_m)))
-vbool16_t vmsgt(vbool16_t op0, vbool16_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i64m8_b8)))
-vbool8_t vmsgt(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vv_i64m8_b8_m)))
-vbool8_t vmsgt(vbool8_t op0, vbool8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8m1_b8)))
-vbool8_t vmsgt(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8m1_b8_m)))
-vbool8_t vmsgt(vbool8_t op0, vbool8_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8m2_b4)))
-vbool4_t vmsgt(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8m2_b4_m)))
-vbool4_t vmsgt(vbool4_t op0, vbool4_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8m4_b2)))
-vbool2_t vmsgt(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8m4_b2_m)))
-vbool2_t vmsgt(vbool2_t op0, vbool2_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8m8_b1)))
-vbool1_t vmsgt(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8m8_b1_m)))
-vbool1_t vmsgt(vbool1_t op0, vbool1_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8mf2_b16)))
-vbool16_t vmsgt(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8mf2_b16_m)))
-vbool16_t vmsgt(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8mf4_b32)))
-vbool32_t vmsgt(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8mf4_b32_m)))
-vbool32_t vmsgt(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8mf8_b64)))
-vbool64_t vmsgt(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i8mf8_b64_m)))
-vbool64_t vmsgt(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16m1_b16)))
-vbool16_t vmsgt(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16m1_b16_m)))
-vbool16_t vmsgt(vbool16_t op0, vbool16_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16m2_b8)))
-vbool8_t vmsgt(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16m2_b8_m)))
-vbool8_t vmsgt(vbool8_t op0, vbool8_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16m4_b4)))
-vbool4_t vmsgt(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16m4_b4_m)))
-vbool4_t vmsgt(vbool4_t op0, vbool4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16m8_b2)))
-vbool2_t vmsgt(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16m8_b2_m)))
-vbool2_t vmsgt(vbool2_t op0, vbool2_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16mf2_b32)))
-vbool32_t vmsgt(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16mf2_b32_m)))
-vbool32_t vmsgt(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16mf4_b64)))
-vbool64_t vmsgt(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i16mf4_b64_m)))
-vbool64_t vmsgt(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i32m1_b32)))
-vbool32_t vmsgt(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i32m1_b32_m)))
-vbool32_t vmsgt(vbool32_t op0, vbool32_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i32m2_b16)))
-vbool16_t vmsgt(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i32m2_b16_m)))
-vbool16_t vmsgt(vbool16_t op0, vbool16_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i32m4_b8)))
-vbool8_t vmsgt(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i32m4_b8_m)))
-vbool8_t vmsgt(vbool8_t op0, vbool8_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i32m8_b4)))
-vbool4_t vmsgt(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i32m8_b4_m)))
-vbool4_t vmsgt(vbool4_t op0, vbool4_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i32mf2_b64)))
-vbool64_t vmsgt(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i32mf2_b64_m)))
-vbool64_t vmsgt(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i64m1_b64)))
-vbool64_t vmsgt(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i64m1_b64_m)))
-vbool64_t vmsgt(vbool64_t op0, vbool64_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i64m2_b32)))
-vbool32_t vmsgt(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i64m2_b32_m)))
-vbool32_t vmsgt(vbool32_t op0, vbool32_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i64m4_b16)))
-vbool16_t vmsgt(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i64m4_b16_m)))
-vbool16_t vmsgt(vbool16_t op0, vbool16_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i64m8_b8)))
-vbool8_t vmsgt(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgt_vx_i64m8_b8_m)))
-vbool8_t vmsgt(vbool8_t op0, vbool8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8m1_b8)))
-vbool8_t vmsgeu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8m1_b8_m)))
-vbool8_t vmsgeu(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8m2_b4)))
-vbool4_t vmsgeu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8m2_b4_m)))
-vbool4_t vmsgeu(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8m4_b2)))
-vbool2_t vmsgeu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8m4_b2_m)))
-vbool2_t vmsgeu(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8m8_b1)))
-vbool1_t vmsgeu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8m8_b1_m)))
-vbool1_t vmsgeu(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8mf2_b16)))
-vbool16_t vmsgeu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8mf2_b16_m)))
-vbool16_t vmsgeu(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8mf4_b32)))
-vbool32_t vmsgeu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8mf4_b32_m)))
-vbool32_t vmsgeu(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8mf8_b64)))
-vbool64_t vmsgeu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u8mf8_b64_m)))
-vbool64_t vmsgeu(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16m1_b16)))
-vbool16_t vmsgeu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16m1_b16_m)))
-vbool16_t vmsgeu(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16m2_b8)))
-vbool8_t vmsgeu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16m2_b8_m)))
-vbool8_t vmsgeu(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16m4_b4)))
-vbool4_t vmsgeu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16m4_b4_m)))
-vbool4_t vmsgeu(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16m8_b2)))
-vbool2_t vmsgeu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16m8_b2_m)))
-vbool2_t vmsgeu(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16mf2_b32)))
-vbool32_t vmsgeu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16mf2_b32_m)))
-vbool32_t vmsgeu(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16mf4_b64)))
-vbool64_t vmsgeu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u16mf4_b64_m)))
-vbool64_t vmsgeu(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u32m1_b32)))
-vbool32_t vmsgeu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u32m1_b32_m)))
-vbool32_t vmsgeu(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u32m2_b16)))
-vbool16_t vmsgeu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u32m2_b16_m)))
-vbool16_t vmsgeu(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u32m4_b8)))
-vbool8_t vmsgeu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u32m4_b8_m)))
-vbool8_t vmsgeu(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u32m8_b4)))
-vbool4_t vmsgeu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u32m8_b4_m)))
-vbool4_t vmsgeu(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u32mf2_b64)))
-vbool64_t vmsgeu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u32mf2_b64_m)))
-vbool64_t vmsgeu(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u64m1_b64)))
-vbool64_t vmsgeu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u64m1_b64_m)))
-vbool64_t vmsgeu(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u64m2_b32)))
-vbool32_t vmsgeu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u64m2_b32_m)))
-vbool32_t vmsgeu(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u64m4_b16)))
-vbool16_t vmsgeu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u64m4_b16_m)))
-vbool16_t vmsgeu(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u64m8_b8)))
-vbool8_t vmsgeu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vv_u64m8_b8_m)))
-vbool8_t vmsgeu(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i16m1)))
-void vsuxei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i16m1_m)))
-void vsuxei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i16m2)))
-void vsuxei64(int16_t * op0, vuint64m8_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i16m2_m)))
-void vsuxei64(vbool8_t op0, int16_t * op1, vuint64m8_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i16mf2)))
-void vsuxei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i16mf2_m)))
-void vsuxei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i16mf4)))
-void vsuxei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i16mf4_m)))
-void vsuxei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8m1_b8)))
-vbool8_t vmsgeu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8m1_b8_m)))
-vbool8_t vmsgeu(vbool8_t op0, vbool8_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8m2_b4)))
-vbool4_t vmsgeu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8m2_b4_m)))
-vbool4_t vmsgeu(vbool4_t op0, vbool4_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8m4_b2)))
-vbool2_t vmsgeu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8m4_b2_m)))
-vbool2_t vmsgeu(vbool2_t op0, vbool2_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8m8_b1)))
-vbool1_t vmsgeu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8m8_b1_m)))
-vbool1_t vmsgeu(vbool1_t op0, vbool1_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8mf2_b16)))
-vbool16_t vmsgeu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8mf2_b16_m)))
-vbool16_t vmsgeu(vbool16_t op0, vbool16_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8mf4_b32)))
-vbool32_t vmsgeu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8mf4_b32_m)))
-vbool32_t vmsgeu(vbool32_t op0, vbool32_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8mf8_b64)))
-vbool64_t vmsgeu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u8mf8_b64_m)))
-vbool64_t vmsgeu(vbool64_t op0, vbool64_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16m1_b16)))
-vbool16_t vmsgeu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16m1_b16_m)))
-vbool16_t vmsgeu(vbool16_t op0, vbool16_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16m2_b8)))
-vbool8_t vmsgeu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16m2_b8_m)))
-vbool8_t vmsgeu(vbool8_t op0, vbool8_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16m4_b4)))
-vbool4_t vmsgeu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16m4_b4_m)))
-vbool4_t vmsgeu(vbool4_t op0, vbool4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16m8_b2)))
-vbool2_t vmsgeu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16m8_b2_m)))
-vbool2_t vmsgeu(vbool2_t op0, vbool2_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16mf2_b32)))
-vbool32_t vmsgeu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16mf2_b32_m)))
-vbool32_t vmsgeu(vbool32_t op0, vbool32_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16mf4_b64)))
-vbool64_t vmsgeu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u16mf4_b64_m)))
-vbool64_t vmsgeu(vbool64_t op0, vbool64_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u32m1_b32)))
-vbool32_t vmsgeu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u32m1_b32_m)))
-vbool32_t vmsgeu(vbool32_t op0, vbool32_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u32m2_b16)))
-vbool16_t vmsgeu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u32m2_b16_m)))
-vbool16_t vmsgeu(vbool16_t op0, vbool16_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u32m4_b8)))
-vbool8_t vmsgeu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u32m4_b8_m)))
-vbool8_t vmsgeu(vbool8_t op0, vbool8_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u32m8_b4)))
-vbool4_t vmsgeu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u32m8_b4_m)))
-vbool4_t vmsgeu(vbool4_t op0, vbool4_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u32mf2_b64)))
-vbool64_t vmsgeu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u32mf2_b64_m)))
-vbool64_t vmsgeu(vbool64_t op0, vbool64_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u64m1_b64)))
-vbool64_t vmsgeu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u64m1_b64_m)))
-vbool64_t vmsgeu(vbool64_t op0, vbool64_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u64m2_b32)))
-vbool32_t vmsgeu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u64m2_b32_m)))
-vbool32_t vmsgeu(vbool32_t op0, vbool32_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u64m4_b16)))
-vbool16_t vmsgeu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u64m4_b16_m)))
-vbool16_t vmsgeu(vbool16_t op0, vbool16_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u64m8_b8)))
-vbool8_t vmsgeu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsgeu_vx_u64m8_b8_m)))
-vbool8_t vmsgeu(vbool8_t op0, vbool8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8m1_b8)))
-vbool8_t vmsge(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8m1_b8_m)))
-vbool8_t vmsge(vbool8_t op0, vbool8_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8m2_b4)))
-vbool4_t vmsge(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8m2_b4_m)))
-vbool4_t vmsge(vbool4_t op0, vbool4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8m4_b2)))
-vbool2_t vmsge(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8m4_b2_m)))
-vbool2_t vmsge(vbool2_t op0, vbool2_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8m8_b1)))
-vbool1_t vmsge(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8m8_b1_m)))
-vbool1_t vmsge(vbool1_t op0, vbool1_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8mf2_b16)))
-vbool16_t vmsge(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8mf2_b16_m)))
-vbool16_t vmsge(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8mf4_b32)))
-vbool32_t vmsge(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8mf4_b32_m)))
-vbool32_t vmsge(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8mf8_b64)))
-vbool64_t vmsge(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i8mf8_b64_m)))
-vbool64_t vmsge(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16m1_b16)))
-vbool16_t vmsge(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16m1_b16_m)))
-vbool16_t vmsge(vbool16_t op0, vbool16_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16m2_b8)))
-vbool8_t vmsge(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16m2_b8_m)))
-vbool8_t vmsge(vbool8_t op0, vbool8_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16m4_b4)))
-vbool4_t vmsge(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16m4_b4_m)))
-vbool4_t vmsge(vbool4_t op0, vbool4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16m8_b2)))
-vbool2_t vmsge(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16m8_b2_m)))
-vbool2_t vmsge(vbool2_t op0, vbool2_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16mf2_b32)))
-vbool32_t vmsge(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16mf2_b32_m)))
-vbool32_t vmsge(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16mf4_b64)))
-vbool64_t vmsge(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i16mf4_b64_m)))
-vbool64_t vmsge(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i32m1_b32)))
-vbool32_t vmsge(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i32m1_b32_m)))
-vbool32_t vmsge(vbool32_t op0, vbool32_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i32m2_b16)))
-vbool16_t vmsge(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i32m2_b16_m)))
-vbool16_t vmsge(vbool16_t op0, vbool16_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i32m4_b8)))
-vbool8_t vmsge(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i32m4_b8_m)))
-vbool8_t vmsge(vbool8_t op0, vbool8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i32m8_b4)))
-vbool4_t vmsge(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i32m8_b4_m)))
-vbool4_t vmsge(vbool4_t op0, vbool4_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i32mf2_b64)))
-vbool64_t vmsge(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i32mf2_b64_m)))
-vbool64_t vmsge(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i64m1_b64)))
-vbool64_t vmsge(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i64m1_b64_m)))
-vbool64_t vmsge(vbool64_t op0, vbool64_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i64m2_b32)))
-vbool32_t vmsge(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i64m2_b32_m)))
-vbool32_t vmsge(vbool32_t op0, vbool32_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i64m4_b16)))
-vbool16_t vmsge(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i64m4_b16_m)))
-vbool16_t vmsge(vbool16_t op0, vbool16_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i64m8_b8)))
-vbool8_t vmsge(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vv_i64m8_b8_m)))
-vbool8_t vmsge(vbool8_t op0, vbool8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8m1_b8)))
-vbool8_t vmsge(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8m1_b8_m)))
-vbool8_t vmsge(vbool8_t op0, vbool8_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8m2_b4)))
-vbool4_t vmsge(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8m2_b4_m)))
-vbool4_t vmsge(vbool4_t op0, vbool4_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8m4_b2)))
-vbool2_t vmsge(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8m4_b2_m)))
-vbool2_t vmsge(vbool2_t op0, vbool2_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8m8_b1)))
-vbool1_t vmsge(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8m8_b1_m)))
-vbool1_t vmsge(vbool1_t op0, vbool1_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8mf2_b16)))
-vbool16_t vmsge(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8mf2_b16_m)))
-vbool16_t vmsge(vbool16_t op0, vbool16_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8mf4_b32)))
-vbool32_t vmsge(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8mf4_b32_m)))
-vbool32_t vmsge(vbool32_t op0, vbool32_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8mf8_b64)))
-vbool64_t vmsge(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i8mf8_b64_m)))
-vbool64_t vmsge(vbool64_t op0, vbool64_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16m1_b16)))
-vbool16_t vmsge(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16m1_b16_m)))
-vbool16_t vmsge(vbool16_t op0, vbool16_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16m2_b8)))
-vbool8_t vmsge(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16m2_b8_m)))
-vbool8_t vmsge(vbool8_t op0, vbool8_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16m4_b4)))
-vbool4_t vmsge(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16m4_b4_m)))
-vbool4_t vmsge(vbool4_t op0, vbool4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16m8_b2)))
-vbool2_t vmsge(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16m8_b2_m)))
-vbool2_t vmsge(vbool2_t op0, vbool2_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16mf2_b32)))
-vbool32_t vmsge(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16mf2_b32_m)))
-vbool32_t vmsge(vbool32_t op0, vbool32_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16mf4_b64)))
-vbool64_t vmsge(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i16mf4_b64_m)))
-vbool64_t vmsge(vbool64_t op0, vbool64_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i32m1_b32)))
-vbool32_t vmsge(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i32m1_b32_m)))
-vbool32_t vmsge(vbool32_t op0, vbool32_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i32m2_b16)))
-vbool16_t vmsge(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i32m2_b16_m)))
-vbool16_t vmsge(vbool16_t op0, vbool16_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i32m4_b8)))
-vbool8_t vmsge(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i32m4_b8_m)))
-vbool8_t vmsge(vbool8_t op0, vbool8_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i32m8_b4)))
-vbool4_t vmsge(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i32m8_b4_m)))
-vbool4_t vmsge(vbool4_t op0, vbool4_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i32mf2_b64)))
-vbool64_t vmsge(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i32mf2_b64_m)))
-vbool64_t vmsge(vbool64_t op0, vbool64_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i64m1_b64)))
-vbool64_t vmsge(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i64m1_b64_m)))
-vbool64_t vmsge(vbool64_t op0, vbool64_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i64m2_b32)))
-vbool32_t vmsge(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i64m2_b32_m)))
-vbool32_t vmsge(vbool32_t op0, vbool32_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i64m4_b16)))
-vbool16_t vmsge(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i64m4_b16_m)))
-vbool16_t vmsge(vbool16_t op0, vbool16_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i64m8_b8)))
-vbool8_t vmsge(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsge_vx_i64m8_b8_m)))
-vbool8_t vmsge(vbool8_t op0, vbool8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8m1)))
-vuint8m1_t vminu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8m1_m)))
-vuint8m1_t vminu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8m2)))
-vuint8m2_t vminu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8m2_m)))
-vuint8m2_t vminu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8m4)))
-vuint8m4_t vminu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8m4_m)))
-vuint8m4_t vminu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8m8)))
-vuint8m8_t vminu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8m8_m)))
-vuint8m8_t vminu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8mf2)))
-vuint8mf2_t vminu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8mf2_m)))
-vuint8mf2_t vminu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8mf4)))
-vuint8mf4_t vminu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8mf4_m)))
-vuint8mf4_t vminu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8mf8)))
-vuint8mf8_t vminu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u8mf8_m)))
-vuint8mf8_t vminu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16m1)))
-vuint16m1_t vminu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16m1_m)))
-vuint16m1_t vminu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16m2)))
-vuint16m2_t vminu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16m2_m)))
-vuint16m2_t vminu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16m4)))
-vuint16m4_t vminu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16m4_m)))
-vuint16m4_t vminu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16m8)))
-vuint16m8_t vminu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16m8_m)))
-vuint16m8_t vminu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16mf2)))
-vuint16mf2_t vminu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16mf2_m)))
-vuint16mf2_t vminu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16mf4)))
-vuint16mf4_t vminu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u16mf4_m)))
-vuint16mf4_t vminu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u32m1)))
-vuint32m1_t vminu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u32m1_m)))
-vuint32m1_t vminu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u32m2)))
-vuint32m2_t vminu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u32m2_m)))
-vuint32m2_t vminu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u32m4)))
-vuint32m4_t vminu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u32m4_m)))
-vuint32m4_t vminu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u32m8)))
-vuint32m8_t vminu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u32m8_m)))
-vuint32m8_t vminu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u32mf2)))
-vuint32mf2_t vminu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u32mf2_m)))
-vuint32mf2_t vminu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u64m1)))
-vuint64m1_t vminu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u64m1_m)))
-vuint64m1_t vminu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u64m2)))
-vuint64m2_t vminu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u64m2_m)))
-vuint64m2_t vminu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u64m4)))
-vuint64m4_t vminu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u64m4_m)))
-vuint64m4_t vminu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u64m8)))
-vuint64m8_t vminu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vv_u64m8_m)))
-vuint64m8_t vminu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8m1)))
-vuint8m1_t vminu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8m1_m)))
-vuint8m1_t vminu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8m2)))
-vuint8m2_t vminu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8m2_m)))
-vuint8m2_t vminu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8m4)))
-vuint8m4_t vminu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8m4_m)))
-vuint8m4_t vminu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8m8)))
-vuint8m8_t vminu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8m8_m)))
-vuint8m8_t vminu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8mf2)))
-vuint8mf2_t vminu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8mf2_m)))
-vuint8mf2_t vminu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8mf4)))
-vuint8mf4_t vminu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8mf4_m)))
-vuint8mf4_t vminu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8mf8)))
-vuint8mf8_t vminu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u8mf8_m)))
-vuint8mf8_t vminu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16m1)))
-vuint16m1_t vminu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16m1_m)))
-vuint16m1_t vminu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16m2)))
-vuint16m2_t vminu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16m2_m)))
-vuint16m2_t vminu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16m4)))
-vuint16m4_t vminu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16m4_m)))
-vuint16m4_t vminu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16m8)))
-vuint16m8_t vminu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16m8_m)))
-vuint16m8_t vminu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16mf2)))
-vuint16mf2_t vminu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16mf2_m)))
-vuint16mf2_t vminu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16mf4)))
-vuint16mf4_t vminu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u16mf4_m)))
-vuint16mf4_t vminu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u32m1)))
-vuint32m1_t vminu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u32m1_m)))
-vuint32m1_t vminu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u32m2)))
-vuint32m2_t vminu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u32m2_m)))
-vuint32m2_t vminu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u32m4)))
-vuint32m4_t vminu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u32m4_m)))
-vuint32m4_t vminu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u32m8)))
-vuint32m8_t vminu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u32m8_m)))
-vuint32m8_t vminu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u32mf2)))
-vuint32mf2_t vminu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u32mf2_m)))
-vuint32mf2_t vminu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u64m1)))
-vuint64m1_t vminu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u64m1_m)))
-vuint64m1_t vminu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u64m2)))
-vuint64m2_t vminu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u64m2_m)))
-vuint64m2_t vminu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u64m4)))
-vuint64m4_t vminu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u64m4_m)))
-vuint64m4_t vminu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u64m8)))
-vuint64m8_t vminu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vminu_vx_u64m8_m)))
-vuint64m8_t vminu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8m1)))
-vint8m1_t vmin(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8m1_m)))
-vint8m1_t vmin(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8m2)))
-vint8m2_t vmin(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8m2_m)))
-vint8m2_t vmin(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8m4)))
-vint8m4_t vmin(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8m4_m)))
-vint8m4_t vmin(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8m8)))
-vint8m8_t vmin(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8m8_m)))
-vint8m8_t vmin(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8mf2)))
-vint8mf2_t vmin(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8mf2_m)))
-vint8mf2_t vmin(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8mf4)))
-vint8mf4_t vmin(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8mf4_m)))
-vint8mf4_t vmin(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8mf8)))
-vint8mf8_t vmin(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i8mf8_m)))
-vint8mf8_t vmin(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16m1)))
-vint16m1_t vmin(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16m1_m)))
-vint16m1_t vmin(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16m2)))
-vint16m2_t vmin(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16m2_m)))
-vint16m2_t vmin(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16m4)))
-vint16m4_t vmin(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16m4_m)))
-vint16m4_t vmin(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16m8)))
-vint16m8_t vmin(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16m8_m)))
-vint16m8_t vmin(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16mf2)))
-vint16mf2_t vmin(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16mf2_m)))
-vint16mf2_t vmin(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16mf4)))
-vint16mf4_t vmin(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i16mf4_m)))
-vint16mf4_t vmin(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i32m1)))
-vint32m1_t vmin(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i32m1_m)))
-vint32m1_t vmin(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i32m2)))
-vint32m2_t vmin(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i32m2_m)))
-vint32m2_t vmin(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i32m4)))
-vint32m4_t vmin(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i32m4_m)))
-vint32m4_t vmin(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i32m8)))
-vint32m8_t vmin(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i32m8_m)))
-vint32m8_t vmin(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i32mf2)))
-vint32mf2_t vmin(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i32mf2_m)))
-vint32mf2_t vmin(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i64m1)))
-vint64m1_t vmin(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i64m1_m)))
-vint64m1_t vmin(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i64m2)))
-vint64m2_t vmin(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i64m2_m)))
-vint64m2_t vmin(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i64m4)))
-vint64m4_t vmin(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i64m4_m)))
-vint64m4_t vmin(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i64m8)))
-vint64m8_t vmin(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vv_i64m8_m)))
-vint64m8_t vmin(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8m1)))
-vint8m1_t vmin(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8m1_m)))
-vint8m1_t vmin(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8m2)))
-vint8m2_t vmin(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8m2_m)))
-vint8m2_t vmin(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8m4)))
-vint8m4_t vmin(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8m4_m)))
-vint8m4_t vmin(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8m8)))
-vint8m8_t vmin(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8m8_m)))
-vint8m8_t vmin(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8mf2)))
-vint8mf2_t vmin(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8mf2_m)))
-vint8mf2_t vmin(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8mf4)))
-vint8mf4_t vmin(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8mf4_m)))
-vint8mf4_t vmin(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8mf8)))
-vint8mf8_t vmin(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i8mf8_m)))
-vint8mf8_t vmin(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16m1)))
-vint16m1_t vmin(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16m1_m)))
-vint16m1_t vmin(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16m2)))
-vint16m2_t vmin(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16m2_m)))
-vint16m2_t vmin(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16m4)))
-vint16m4_t vmin(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16m4_m)))
-vint16m4_t vmin(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16m8)))
-vint16m8_t vmin(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16m8_m)))
-vint16m8_t vmin(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16mf2)))
-vint16mf2_t vmin(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16mf2_m)))
-vint16mf2_t vmin(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16mf4)))
-vint16mf4_t vmin(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i16mf4_m)))
-vint16mf4_t vmin(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i32m1)))
-vint32m1_t vmin(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i32m1_m)))
-vint32m1_t vmin(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i32m2)))
-vint32m2_t vmin(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i32m2_m)))
-vint32m2_t vmin(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i32m4)))
-vint32m4_t vmin(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i32m4_m)))
-vint32m4_t vmin(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i32m8)))
-vint32m8_t vmin(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i32m8_m)))
-vint32m8_t vmin(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i32mf2)))
-vint32mf2_t vmin(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i32mf2_m)))
-vint32mf2_t vmin(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i64m1)))
-vint64m1_t vmin(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i64m1_m)))
-vint64m1_t vmin(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i64m2)))
-vint64m2_t vmin(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i64m2_m)))
-vint64m2_t vmin(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i64m4)))
-vint64m4_t vmin(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i64m4_m)))
-vint64m4_t vmin(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i64m8)))
-vint64m8_t vmin(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmin_vx_i64m8_m)))
-vint64m8_t vmin(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8m1)))
-vuint8m1_t vmaxu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8m1_m)))
-vuint8m1_t vmaxu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8m2)))
-vuint8m2_t vmaxu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8m2_m)))
-vuint8m2_t vmaxu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8m4)))
-vuint8m4_t vmaxu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8m4_m)))
-vuint8m4_t vmaxu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8m8)))
-vuint8m8_t vmaxu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8m8_m)))
-vuint8m8_t vmaxu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8mf2)))
-vuint8mf2_t vmaxu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8mf2_m)))
-vuint8mf2_t vmaxu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8mf4)))
-vuint8mf4_t vmaxu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8mf4_m)))
-vuint8mf4_t vmaxu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8mf8)))
-vuint8mf8_t vmaxu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u8mf8_m)))
-vuint8mf8_t vmaxu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16m1)))
-vuint16m1_t vmaxu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16m1_m)))
-vuint16m1_t vmaxu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16m2)))
-vuint16m2_t vmaxu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16m2_m)))
-vuint16m2_t vmaxu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16m4)))
-vuint16m4_t vmaxu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16m4_m)))
-vuint16m4_t vmaxu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16m8)))
-vuint16m8_t vmaxu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16m8_m)))
-vuint16m8_t vmaxu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16mf2)))
-vuint16mf2_t vmaxu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16mf2_m)))
-vuint16mf2_t vmaxu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16mf4)))
-vuint16mf4_t vmaxu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u16mf4_m)))
-vuint16mf4_t vmaxu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u32m1)))
-vuint32m1_t vmaxu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u32m1_m)))
-vuint32m1_t vmaxu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u32m2)))
-vuint32m2_t vmaxu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u32m2_m)))
-vuint32m2_t vmaxu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u32m4)))
-vuint32m4_t vmaxu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u32m4_m)))
-vuint32m4_t vmaxu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u32m8)))
-vuint32m8_t vmaxu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u32m8_m)))
-vuint32m8_t vmaxu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u32mf2)))
-vuint32mf2_t vmaxu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u32mf2_m)))
-vuint32mf2_t vmaxu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u64m1)))
-vuint64m1_t vmaxu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u64m1_m)))
-vuint64m1_t vmaxu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u64m2)))
-vuint64m2_t vmaxu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u64m2_m)))
-vuint64m2_t vmaxu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u64m4)))
-vuint64m4_t vmaxu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u64m4_m)))
-vuint64m4_t vmaxu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u64m8)))
-vuint64m8_t vmaxu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vv_u64m8_m)))
-vuint64m8_t vmaxu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8m1)))
-vuint8m1_t vmaxu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8m1_m)))
-vuint8m1_t vmaxu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8m2)))
-vuint8m2_t vmaxu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8m2_m)))
-vuint8m2_t vmaxu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8m4)))
-vuint8m4_t vmaxu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8m4_m)))
-vuint8m4_t vmaxu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8m8)))
-vuint8m8_t vmaxu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8m8_m)))
-vuint8m8_t vmaxu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8mf2)))
-vuint8mf2_t vmaxu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8mf2_m)))
-vuint8mf2_t vmaxu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8mf4)))
-vuint8mf4_t vmaxu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8mf4_m)))
-vuint8mf4_t vmaxu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8mf8)))
-vuint8mf8_t vmaxu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u8mf8_m)))
-vuint8mf8_t vmaxu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16m1)))
-vuint16m1_t vmaxu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16m1_m)))
-vuint16m1_t vmaxu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16m2)))
-vuint16m2_t vmaxu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16m2_m)))
-vuint16m2_t vmaxu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16m4)))
-vuint16m4_t vmaxu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16m4_m)))
-vuint16m4_t vmaxu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16m8)))
-vuint16m8_t vmaxu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16m8_m)))
-vuint16m8_t vmaxu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16mf2)))
-vuint16mf2_t vmaxu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16mf2_m)))
-vuint16mf2_t vmaxu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16mf4)))
-vuint16mf4_t vmaxu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u16mf4_m)))
-vuint16mf4_t vmaxu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u32m1)))
-vuint32m1_t vmaxu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u32m1_m)))
-vuint32m1_t vmaxu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u32m2)))
-vuint32m2_t vmaxu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u32m2_m)))
-vuint32m2_t vmaxu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u32m4)))
-vuint32m4_t vmaxu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u32m4_m)))
-vuint32m4_t vmaxu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u32m8)))
-vuint32m8_t vmaxu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u32m8_m)))
-vuint32m8_t vmaxu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u32mf2)))
-vuint32mf2_t vmaxu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u32mf2_m)))
-vuint32mf2_t vmaxu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u64m1)))
-vuint64m1_t vmaxu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u64m1_m)))
-vuint64m1_t vmaxu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u64m2)))
-vuint64m2_t vmaxu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u64m2_m)))
-vuint64m2_t vmaxu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u64m4)))
-vuint64m4_t vmaxu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u64m4_m)))
-vuint64m4_t vmaxu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u64m8)))
-vuint64m8_t vmaxu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmaxu_vx_u64m8_m)))
-vuint64m8_t vmaxu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8m1)))
-vint8m1_t vmax(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8m1_m)))
-vint8m1_t vmax(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8m2)))
-vint8m2_t vmax(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8m2_m)))
-vint8m2_t vmax(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8m4)))
-vint8m4_t vmax(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8m4_m)))
-vint8m4_t vmax(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8m8)))
-vint8m8_t vmax(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8m8_m)))
-vint8m8_t vmax(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8mf2)))
-vint8mf2_t vmax(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8mf2_m)))
-vint8mf2_t vmax(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8mf4)))
-vint8mf4_t vmax(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8mf4_m)))
-vint8mf4_t vmax(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8mf8)))
-vint8mf8_t vmax(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i8mf8_m)))
-vint8mf8_t vmax(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16m1)))
-vint16m1_t vmax(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16m1_m)))
-vint16m1_t vmax(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16m2)))
-vint16m2_t vmax(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16m2_m)))
-vint16m2_t vmax(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16m4)))
-vint16m4_t vmax(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16m4_m)))
-vint16m4_t vmax(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16m8)))
-vint16m8_t vmax(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16m8_m)))
-vint16m8_t vmax(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16mf2)))
-vint16mf2_t vmax(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16mf2_m)))
-vint16mf2_t vmax(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16mf4)))
-vint16mf4_t vmax(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i16mf4_m)))
-vint16mf4_t vmax(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i32m1)))
-vint32m1_t vmax(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i32m1_m)))
-vint32m1_t vmax(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i32m2)))
-vint32m2_t vmax(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i32m2_m)))
-vint32m2_t vmax(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i32m4)))
-vint32m4_t vmax(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i32m4_m)))
-vint32m4_t vmax(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i32m8)))
-vint32m8_t vmax(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i32m8_m)))
-vint32m8_t vmax(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i32mf2)))
-vint32mf2_t vmax(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i32mf2_m)))
-vint32mf2_t vmax(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i64m1)))
-vint64m1_t vmax(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i64m1_m)))
-vint64m1_t vmax(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i64m2)))
-vint64m2_t vmax(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i64m2_m)))
-vint64m2_t vmax(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i64m4)))
-vint64m4_t vmax(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i64m4_m)))
-vint64m4_t vmax(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i64m8)))
-vint64m8_t vmax(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vv_i64m8_m)))
-vint64m8_t vmax(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u16m1)))
-void vsuxei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u16m1_m)))
-void vsuxei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u16m2)))
-void vsuxei64(uint16_t * op0, vuint64m8_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u16m2_m)))
-void vsuxei64(vbool8_t op0, uint16_t * op1, vuint64m8_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u16mf2)))
-void vsuxei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u16mf2_m)))
-void vsuxei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u16mf4)))
-void vsuxei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u16mf4_m)))
-void vsuxei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8m1)))
-vint8m1_t vmax(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8m1_m)))
-vint8m1_t vmax(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8m2)))
-vint8m2_t vmax(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8m2_m)))
-vint8m2_t vmax(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8m4)))
-vint8m4_t vmax(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8m4_m)))
-vint8m4_t vmax(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8m8)))
-vint8m8_t vmax(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8m8_m)))
-vint8m8_t vmax(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8mf2)))
-vint8mf2_t vmax(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8mf2_m)))
-vint8mf2_t vmax(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8mf4)))
-vint8mf4_t vmax(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8mf4_m)))
-vint8mf4_t vmax(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8mf8)))
-vint8mf8_t vmax(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i8mf8_m)))
-vint8mf8_t vmax(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16m1)))
-vint16m1_t vmax(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16m1_m)))
-vint16m1_t vmax(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16m2)))
-vint16m2_t vmax(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16m2_m)))
-vint16m2_t vmax(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16m4)))
-vint16m4_t vmax(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16m4_m)))
-vint16m4_t vmax(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16m8)))
-vint16m8_t vmax(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16m8_m)))
-vint16m8_t vmax(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16mf2)))
-vint16mf2_t vmax(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16mf2_m)))
-vint16mf2_t vmax(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16mf4)))
-vint16mf4_t vmax(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i16mf4_m)))
-vint16mf4_t vmax(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i32m1)))
-vint32m1_t vmax(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i32m1_m)))
-vint32m1_t vmax(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i32m2)))
-vint32m2_t vmax(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i32m2_m)))
-vint32m2_t vmax(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i32m4)))
-vint32m4_t vmax(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i32m4_m)))
-vint32m4_t vmax(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i32m8)))
-vint32m8_t vmax(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i32m8_m)))
-vint32m8_t vmax(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i32mf2)))
-vint32mf2_t vmax(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i32mf2_m)))
-vint32mf2_t vmax(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i64m1)))
-vint64m1_t vmax(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i64m1_m)))
-vint64m1_t vmax(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i64m2)))
-vint64m2_t vmax(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i64m2_m)))
-vint64m2_t vmax(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i64m4)))
-vint64m4_t vmax(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i64m4_m)))
-vint64m4_t vmax(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i64m8)))
-vint64m8_t vmax(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmax_vx_i64m8_m)))
-vint64m8_t vmax(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8m1)))
-vint8m1_t vmul(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8m1_m)))
-vint8m1_t vmul(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8m2)))
-vint8m2_t vmul(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8m2_m)))
-vint8m2_t vmul(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8m4)))
-vint8m4_t vmul(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8m4_m)))
-vint8m4_t vmul(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8m8)))
-vint8m8_t vmul(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8m8_m)))
-vint8m8_t vmul(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8mf2)))
-vint8mf2_t vmul(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8mf2_m)))
-vint8mf2_t vmul(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8mf4)))
-vint8mf4_t vmul(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8mf4_m)))
-vint8mf4_t vmul(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8mf8)))
-vint8mf8_t vmul(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i8mf8_m)))
-vint8mf8_t vmul(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16m1)))
-vint16m1_t vmul(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16m1_m)))
-vint16m1_t vmul(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16m2)))
-vint16m2_t vmul(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16m2_m)))
-vint16m2_t vmul(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16m4)))
-vint16m4_t vmul(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16m4_m)))
-vint16m4_t vmul(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16m8)))
-vint16m8_t vmul(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16m8_m)))
-vint16m8_t vmul(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16mf2)))
-vint16mf2_t vmul(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16mf2_m)))
-vint16mf2_t vmul(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16mf4)))
-vint16mf4_t vmul(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i16mf4_m)))
-vint16mf4_t vmul(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i32m1)))
-vint32m1_t vmul(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i32m1_m)))
-vint32m1_t vmul(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i32m2)))
-vint32m2_t vmul(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i32m2_m)))
-vint32m2_t vmul(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i32m4)))
-vint32m4_t vmul(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i32m4_m)))
-vint32m4_t vmul(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i32m8)))
-vint32m8_t vmul(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i32m8_m)))
-vint32m8_t vmul(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i32mf2)))
-vint32mf2_t vmul(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i32mf2_m)))
-vint32mf2_t vmul(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i64m1)))
-vint64m1_t vmul(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i64m1_m)))
-vint64m1_t vmul(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i64m2)))
-vint64m2_t vmul(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i64m2_m)))
-vint64m2_t vmul(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i64m4)))
-vint64m4_t vmul(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i64m4_m)))
-vint64m4_t vmul(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i64m8)))
-vint64m8_t vmul(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_i64m8_m)))
-vint64m8_t vmul(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8m1)))
-vint8m1_t vmul(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8m1_m)))
-vint8m1_t vmul(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8m2)))
-vint8m2_t vmul(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8m2_m)))
-vint8m2_t vmul(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8m4)))
-vint8m4_t vmul(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8m4_m)))
-vint8m4_t vmul(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8m8)))
-vint8m8_t vmul(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8m8_m)))
-vint8m8_t vmul(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8mf2)))
-vint8mf2_t vmul(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8mf2_m)))
-vint8mf2_t vmul(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8mf4)))
-vint8mf4_t vmul(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8mf4_m)))
-vint8mf4_t vmul(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8mf8)))
-vint8mf8_t vmul(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i8mf8_m)))
-vint8mf8_t vmul(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16m1)))
-vint16m1_t vmul(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16m1_m)))
-vint16m1_t vmul(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16m2)))
-vint16m2_t vmul(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16m2_m)))
-vint16m2_t vmul(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16m4)))
-vint16m4_t vmul(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16m4_m)))
-vint16m4_t vmul(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16m8)))
-vint16m8_t vmul(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16m8_m)))
-vint16m8_t vmul(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16mf2)))
-vint16mf2_t vmul(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16mf2_m)))
-vint16mf2_t vmul(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16mf4)))
-vint16mf4_t vmul(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i16mf4_m)))
-vint16mf4_t vmul(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i32m1)))
-vint32m1_t vmul(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i32m1_m)))
-vint32m1_t vmul(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i32m2)))
-vint32m2_t vmul(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i32m2_m)))
-vint32m2_t vmul(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i32m4)))
-vint32m4_t vmul(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i32m4_m)))
-vint32m4_t vmul(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i32m8)))
-vint32m8_t vmul(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i32m8_m)))
-vint32m8_t vmul(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i32mf2)))
-vint32mf2_t vmul(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i32mf2_m)))
-vint32mf2_t vmul(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i64m1)))
-vint64m1_t vmul(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i64m1_m)))
-vint64m1_t vmul(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i64m2)))
-vint64m2_t vmul(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i64m2_m)))
-vint64m2_t vmul(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i64m4)))
-vint64m4_t vmul(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i64m4_m)))
-vint64m4_t vmul(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i64m8)))
-vint64m8_t vmul(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_i64m8_m)))
-vint64m8_t vmul(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8m1)))
-vuint8m1_t vmul(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8m1_m)))
-vuint8m1_t vmul(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8m2)))
-vuint8m2_t vmul(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8m2_m)))
-vuint8m2_t vmul(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8m4)))
-vuint8m4_t vmul(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8m4_m)))
-vuint8m4_t vmul(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8m8)))
-vuint8m8_t vmul(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8m8_m)))
-vuint8m8_t vmul(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8mf2)))
-vuint8mf2_t vmul(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8mf2_m)))
-vuint8mf2_t vmul(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8mf4)))
-vuint8mf4_t vmul(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8mf4_m)))
-vuint8mf4_t vmul(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8mf8)))
-vuint8mf8_t vmul(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u8mf8_m)))
-vuint8mf8_t vmul(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16m1)))
-vuint16m1_t vmul(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16m1_m)))
-vuint16m1_t vmul(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16m2)))
-vuint16m2_t vmul(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16m2_m)))
-vuint16m2_t vmul(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16m4)))
-vuint16m4_t vmul(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16m4_m)))
-vuint16m4_t vmul(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16m8)))
-vuint16m8_t vmul(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16m8_m)))
-vuint16m8_t vmul(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16mf2)))
-vuint16mf2_t vmul(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16mf2_m)))
-vuint16mf2_t vmul(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16mf4)))
-vuint16mf4_t vmul(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u16mf4_m)))
-vuint16mf4_t vmul(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u32m1)))
-vuint32m1_t vmul(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u32m1_m)))
-vuint32m1_t vmul(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u32m2)))
-vuint32m2_t vmul(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u32m2_m)))
-vuint32m2_t vmul(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u32m4)))
-vuint32m4_t vmul(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u32m4_m)))
-vuint32m4_t vmul(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u32m8)))
-vuint32m8_t vmul(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u32m8_m)))
-vuint32m8_t vmul(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u32mf2)))
-vuint32mf2_t vmul(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u32mf2_m)))
-vuint32mf2_t vmul(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u64m1)))
-vuint64m1_t vmul(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u64m1_m)))
-vuint64m1_t vmul(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u64m2)))
-vuint64m2_t vmul(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u64m2_m)))
-vuint64m2_t vmul(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u64m4)))
-vuint64m4_t vmul(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u64m4_m)))
-vuint64m4_t vmul(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u64m8)))
-vuint64m8_t vmul(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vv_u64m8_m)))
-vuint64m8_t vmul(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8m1)))
-vuint8m1_t vmul(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8m1_m)))
-vuint8m1_t vmul(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8m2)))
-vuint8m2_t vmul(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8m2_m)))
-vuint8m2_t vmul(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8m4)))
-vuint8m4_t vmul(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8m4_m)))
-vuint8m4_t vmul(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8m8)))
-vuint8m8_t vmul(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8m8_m)))
-vuint8m8_t vmul(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8mf2)))
-vuint8mf2_t vmul(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8mf2_m)))
-vuint8mf2_t vmul(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8mf4)))
-vuint8mf4_t vmul(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8mf4_m)))
-vuint8mf4_t vmul(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8mf8)))
-vuint8mf8_t vmul(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u8mf8_m)))
-vuint8mf8_t vmul(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16m1)))
-vuint16m1_t vmul(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16m1_m)))
-vuint16m1_t vmul(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16m2)))
-vuint16m2_t vmul(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16m2_m)))
-vuint16m2_t vmul(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16m4)))
-vuint16m4_t vmul(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16m4_m)))
-vuint16m4_t vmul(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16m8)))
-vuint16m8_t vmul(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16m8_m)))
-vuint16m8_t vmul(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16mf2)))
-vuint16mf2_t vmul(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16mf2_m)))
-vuint16mf2_t vmul(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16mf4)))
-vuint16mf4_t vmul(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u16mf4_m)))
-vuint16mf4_t vmul(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u32m1)))
-vuint32m1_t vmul(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u32m1_m)))
-vuint32m1_t vmul(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u32m2)))
-vuint32m2_t vmul(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u32m2_m)))
-vuint32m2_t vmul(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u32m4)))
-vuint32m4_t vmul(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u32m4_m)))
-vuint32m4_t vmul(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u32m8)))
-vuint32m8_t vmul(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u32m8_m)))
-vuint32m8_t vmul(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u32mf2)))
-vuint32mf2_t vmul(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u32mf2_m)))
-vuint32mf2_t vmul(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u64m1)))
-vuint64m1_t vmul(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u64m1_m)))
-vuint64m1_t vmul(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u64m2)))
-vuint64m2_t vmul(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u64m2_m)))
-vuint64m2_t vmul(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u64m4)))
-vuint64m4_t vmul(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u64m4_m)))
-vuint64m4_t vmul(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u64m8)))
-vuint64m8_t vmul(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmul_vx_u64m8_m)))
-vuint64m8_t vmul(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8m1)))
-vint8m1_t vmulh(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8m1_m)))
-vint8m1_t vmulh(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8m2)))
-vint8m2_t vmulh(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8m2_m)))
-vint8m2_t vmulh(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8m4)))
-vint8m4_t vmulh(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8m4_m)))
-vint8m4_t vmulh(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8m8)))
-vint8m8_t vmulh(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8m8_m)))
-vint8m8_t vmulh(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8mf2)))
-vint8mf2_t vmulh(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8mf2_m)))
-vint8mf2_t vmulh(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8mf4)))
-vint8mf4_t vmulh(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8mf4_m)))
-vint8mf4_t vmulh(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8mf8)))
-vint8mf8_t vmulh(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i8mf8_m)))
-vint8mf8_t vmulh(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16m1)))
-vint16m1_t vmulh(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16m1_m)))
-vint16m1_t vmulh(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16m2)))
-vint16m2_t vmulh(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16m2_m)))
-vint16m2_t vmulh(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16m4)))
-vint16m4_t vmulh(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16m4_m)))
-vint16m4_t vmulh(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16m8)))
-vint16m8_t vmulh(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16m8_m)))
-vint16m8_t vmulh(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16mf2)))
-vint16mf2_t vmulh(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16mf2_m)))
-vint16mf2_t vmulh(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16mf4)))
-vint16mf4_t vmulh(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i16mf4_m)))
-vint16mf4_t vmulh(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i32m1)))
-vint32m1_t vmulh(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i32m1_m)))
-vint32m1_t vmulh(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i32m2)))
-vint32m2_t vmulh(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i32m2_m)))
-vint32m2_t vmulh(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i32m4)))
-vint32m4_t vmulh(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i32m4_m)))
-vint32m4_t vmulh(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i32m8)))
-vint32m8_t vmulh(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i32m8_m)))
-vint32m8_t vmulh(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i32mf2)))
-vint32mf2_t vmulh(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i32mf2_m)))
-vint32mf2_t vmulh(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i64m1)))
-vint64m1_t vmulh(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i64m1_m)))
-vint64m1_t vmulh(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i64m2)))
-vint64m2_t vmulh(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i64m2_m)))
-vint64m2_t vmulh(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i64m4)))
-vint64m4_t vmulh(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i64m4_m)))
-vint64m4_t vmulh(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i64m8)))
-vint64m8_t vmulh(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vv_i64m8_m)))
-vint64m8_t vmulh(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8m1)))
-vint8m1_t vmulh(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8m1_m)))
-vint8m1_t vmulh(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8m2)))
-vint8m2_t vmulh(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8m2_m)))
-vint8m2_t vmulh(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8m4)))
-vint8m4_t vmulh(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8m4_m)))
-vint8m4_t vmulh(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8m8)))
-vint8m8_t vmulh(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8m8_m)))
-vint8m8_t vmulh(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8mf2)))
-vint8mf2_t vmulh(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8mf2_m)))
-vint8mf2_t vmulh(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8mf4)))
-vint8mf4_t vmulh(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8mf4_m)))
-vint8mf4_t vmulh(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8mf8)))
-vint8mf8_t vmulh(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i8mf8_m)))
-vint8mf8_t vmulh(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16m1)))
-vint16m1_t vmulh(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16m1_m)))
-vint16m1_t vmulh(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16m2)))
-vint16m2_t vmulh(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16m2_m)))
-vint16m2_t vmulh(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16m4)))
-vint16m4_t vmulh(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16m4_m)))
-vint16m4_t vmulh(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16m8)))
-vint16m8_t vmulh(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16m8_m)))
-vint16m8_t vmulh(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16mf2)))
-vint16mf2_t vmulh(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16mf2_m)))
-vint16mf2_t vmulh(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16mf4)))
-vint16mf4_t vmulh(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i16mf4_m)))
-vint16mf4_t vmulh(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i32m1)))
-vint32m1_t vmulh(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i32m1_m)))
-vint32m1_t vmulh(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i32m2)))
-vint32m2_t vmulh(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i32m2_m)))
-vint32m2_t vmulh(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i32m4)))
-vint32m4_t vmulh(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i32m4_m)))
-vint32m4_t vmulh(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i32m8)))
-vint32m8_t vmulh(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i32m8_m)))
-vint32m8_t vmulh(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i32mf2)))
-vint32mf2_t vmulh(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i32mf2_m)))
-vint32mf2_t vmulh(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i64m1)))
-vint64m1_t vmulh(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i64m1_m)))
-vint64m1_t vmulh(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i64m2)))
-vint64m2_t vmulh(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i64m2_m)))
-vint64m2_t vmulh(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i64m4)))
-vint64m4_t vmulh(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i64m4_m)))
-vint64m4_t vmulh(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i64m8)))
-vint64m8_t vmulh(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulh_vx_i64m8_m)))
-vint64m8_t vmulh(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8m1)))
-vuint8m1_t vmulhu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8m1_m)))
-vuint8m1_t vmulhu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8m2)))
-vuint8m2_t vmulhu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8m2_m)))
-vuint8m2_t vmulhu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8m4)))
-vuint8m4_t vmulhu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8m4_m)))
-vuint8m4_t vmulhu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8m8)))
-vuint8m8_t vmulhu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8m8_m)))
-vuint8m8_t vmulhu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8mf2)))
-vuint8mf2_t vmulhu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8mf2_m)))
-vuint8mf2_t vmulhu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8mf4)))
-vuint8mf4_t vmulhu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8mf4_m)))
-vuint8mf4_t vmulhu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8mf8)))
-vuint8mf8_t vmulhu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u8mf8_m)))
-vuint8mf8_t vmulhu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16m1)))
-vuint16m1_t vmulhu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16m1_m)))
-vuint16m1_t vmulhu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16m2)))
-vuint16m2_t vmulhu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16m2_m)))
-vuint16m2_t vmulhu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16m4)))
-vuint16m4_t vmulhu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16m4_m)))
-vuint16m4_t vmulhu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16m8)))
-vuint16m8_t vmulhu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16m8_m)))
-vuint16m8_t vmulhu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16mf2)))
-vuint16mf2_t vmulhu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16mf2_m)))
-vuint16mf2_t vmulhu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16mf4)))
-vuint16mf4_t vmulhu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u16mf4_m)))
-vuint16mf4_t vmulhu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u32m1)))
-vuint32m1_t vmulhu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u32m1_m)))
-vuint32m1_t vmulhu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u32m2)))
-vuint32m2_t vmulhu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u32m2_m)))
-vuint32m2_t vmulhu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u32m4)))
-vuint32m4_t vmulhu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u32m4_m)))
-vuint32m4_t vmulhu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u32m8)))
-vuint32m8_t vmulhu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u32m8_m)))
-vuint32m8_t vmulhu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u32mf2)))
-vuint32mf2_t vmulhu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u32mf2_m)))
-vuint32mf2_t vmulhu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u64m1)))
-vuint64m1_t vmulhu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u64m1_m)))
-vuint64m1_t vmulhu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u64m2)))
-vuint64m2_t vmulhu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u64m2_m)))
-vuint64m2_t vmulhu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u64m4)))
-vuint64m4_t vmulhu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u64m4_m)))
-vuint64m4_t vmulhu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u64m8)))
-vuint64m8_t vmulhu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vv_u64m8_m)))
-vuint64m8_t vmulhu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8m1)))
-vuint8m1_t vmulhu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8m1_m)))
-vuint8m1_t vmulhu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8m2)))
-vuint8m2_t vmulhu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8m2_m)))
-vuint8m2_t vmulhu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8m4)))
-vuint8m4_t vmulhu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8m4_m)))
-vuint8m4_t vmulhu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8m8)))
-vuint8m8_t vmulhu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8m8_m)))
-vuint8m8_t vmulhu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8mf2)))
-vuint8mf2_t vmulhu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8mf2_m)))
-vuint8mf2_t vmulhu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8mf4)))
-vuint8mf4_t vmulhu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8mf4_m)))
-vuint8mf4_t vmulhu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8mf8)))
-vuint8mf8_t vmulhu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u8mf8_m)))
-vuint8mf8_t vmulhu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16m1)))
-vuint16m1_t vmulhu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16m1_m)))
-vuint16m1_t vmulhu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16m2)))
-vuint16m2_t vmulhu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16m2_m)))
-vuint16m2_t vmulhu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16m4)))
-vuint16m4_t vmulhu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16m4_m)))
-vuint16m4_t vmulhu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16m8)))
-vuint16m8_t vmulhu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16m8_m)))
-vuint16m8_t vmulhu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16mf2)))
-vuint16mf2_t vmulhu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16mf2_m)))
-vuint16mf2_t vmulhu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16mf4)))
-vuint16mf4_t vmulhu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u16mf4_m)))
-vuint16mf4_t vmulhu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u32m1)))
-vuint32m1_t vmulhu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u32m1_m)))
-vuint32m1_t vmulhu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u32m2)))
-vuint32m2_t vmulhu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u32m2_m)))
-vuint32m2_t vmulhu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u32m4)))
-vuint32m4_t vmulhu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u32m4_m)))
-vuint32m4_t vmulhu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u32m8)))
-vuint32m8_t vmulhu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u32m8_m)))
-vuint32m8_t vmulhu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u32mf2)))
-vuint32mf2_t vmulhu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u32mf2_m)))
-vuint32mf2_t vmulhu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u64m1)))
-vuint64m1_t vmulhu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u64m1_m)))
-vuint64m1_t vmulhu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u64m2)))
-vuint64m2_t vmulhu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u64m2_m)))
-vuint64m2_t vmulhu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u64m4)))
-vuint64m4_t vmulhu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u64m4_m)))
-vuint64m4_t vmulhu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u64m8)))
-vuint64m8_t vmulhu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhu_vx_u64m8_m)))
-vuint64m8_t vmulhu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8m1)))
-vint8m1_t vmulhsu(vint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8m1_m)))
-vint8m1_t vmulhsu(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8m2)))
-vint8m2_t vmulhsu(vint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8m2_m)))
-vint8m2_t vmulhsu(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8m4)))
-vint8m4_t vmulhsu(vint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8m4_m)))
-vint8m4_t vmulhsu(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8m8)))
-vint8m8_t vmulhsu(vint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8m8_m)))
-vint8m8_t vmulhsu(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8mf2)))
-vint8mf2_t vmulhsu(vint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8mf2_m)))
-vint8mf2_t vmulhsu(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8mf4)))
-vint8mf4_t vmulhsu(vint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8mf4_m)))
-vint8mf4_t vmulhsu(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8mf8)))
-vint8mf8_t vmulhsu(vint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i8mf8_m)))
-vint8mf8_t vmulhsu(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16m1)))
-vint16m1_t vmulhsu(vint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16m1_m)))
-vint16m1_t vmulhsu(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16m2)))
-vint16m2_t vmulhsu(vint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16m2_m)))
-vint16m2_t vmulhsu(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16m4)))
-vint16m4_t vmulhsu(vint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16m4_m)))
-vint16m4_t vmulhsu(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16m8)))
-vint16m8_t vmulhsu(vint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16m8_m)))
-vint16m8_t vmulhsu(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16mf2)))
-vint16mf2_t vmulhsu(vint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16mf2_m)))
-vint16mf2_t vmulhsu(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16mf4)))
-vint16mf4_t vmulhsu(vint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i16mf4_m)))
-vint16mf4_t vmulhsu(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i32m1)))
-vint32m1_t vmulhsu(vint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i32m1_m)))
-vint32m1_t vmulhsu(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i32m2)))
-vint32m2_t vmulhsu(vint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i32m2_m)))
-vint32m2_t vmulhsu(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i32m4)))
-vint32m4_t vmulhsu(vint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i32m4_m)))
-vint32m4_t vmulhsu(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i32m8)))
-vint32m8_t vmulhsu(vint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i32m8_m)))
-vint32m8_t vmulhsu(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i32mf2)))
-vint32mf2_t vmulhsu(vint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i32mf2_m)))
-vint32mf2_t vmulhsu(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i64m1)))
-vint64m1_t vmulhsu(vint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i64m1_m)))
-vint64m1_t vmulhsu(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i64m2)))
-vint64m2_t vmulhsu(vint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i64m2_m)))
-vint64m2_t vmulhsu(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i64m4)))
-vint64m4_t vmulhsu(vint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i64m4_m)))
-vint64m4_t vmulhsu(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i64m8)))
-vint64m8_t vmulhsu(vint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vv_i64m8_m)))
-vint64m8_t vmulhsu(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i32m1)))
-void vsuxei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i32m1_m)))
-void vsuxei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i32m2)))
-void vsuxei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i32m2_m)))
-void vsuxei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i32m4)))
-void vsuxei8(int32_t * op0, vuint8m1_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i32m4_m)))
-void vsuxei8(vbool8_t op0, int32_t * op1, vuint8m1_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i32m8)))
-void vsuxei8(int32_t * op0, vuint8m2_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i32m8_m)))
-void vsuxei8(vbool4_t op0, int32_t * op1, vuint8m2_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i32mf2)))
-void vsuxei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i32mf2_m)))
-void vsuxei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8m1)))
-vint8m1_t vmulhsu(vint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8m1_m)))
-vint8m1_t vmulhsu(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8m2)))
-vint8m2_t vmulhsu(vint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8m2_m)))
-vint8m2_t vmulhsu(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8m4)))
-vint8m4_t vmulhsu(vint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8m4_m)))
-vint8m4_t vmulhsu(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8m8)))
-vint8m8_t vmulhsu(vint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8m8_m)))
-vint8m8_t vmulhsu(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8mf2)))
-vint8mf2_t vmulhsu(vint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8mf2_m)))
-vint8mf2_t vmulhsu(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8mf4)))
-vint8mf4_t vmulhsu(vint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8mf4_m)))
-vint8mf4_t vmulhsu(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8mf8)))
-vint8mf8_t vmulhsu(vint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i8mf8_m)))
-vint8mf8_t vmulhsu(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16m1)))
-vint16m1_t vmulhsu(vint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16m1_m)))
-vint16m1_t vmulhsu(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16m2)))
-vint16m2_t vmulhsu(vint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16m2_m)))
-vint16m2_t vmulhsu(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16m4)))
-vint16m4_t vmulhsu(vint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16m4_m)))
-vint16m4_t vmulhsu(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16m8)))
-vint16m8_t vmulhsu(vint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16m8_m)))
-vint16m8_t vmulhsu(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16mf2)))
-vint16mf2_t vmulhsu(vint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16mf2_m)))
-vint16mf2_t vmulhsu(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16mf4)))
-vint16mf4_t vmulhsu(vint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i16mf4_m)))
-vint16mf4_t vmulhsu(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i32m1)))
-vint32m1_t vmulhsu(vint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i32m1_m)))
-vint32m1_t vmulhsu(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i32m2)))
-vint32m2_t vmulhsu(vint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i32m2_m)))
-vint32m2_t vmulhsu(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i32m4)))
-vint32m4_t vmulhsu(vint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i32m4_m)))
-vint32m4_t vmulhsu(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i32m8)))
-vint32m8_t vmulhsu(vint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i32m8_m)))
-vint32m8_t vmulhsu(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i32mf2)))
-vint32mf2_t vmulhsu(vint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i32mf2_m)))
-vint32mf2_t vmulhsu(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i64m1)))
-vint64m1_t vmulhsu(vint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i64m1_m)))
-vint64m1_t vmulhsu(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i64m2)))
-vint64m2_t vmulhsu(vint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i64m2_m)))
-vint64m2_t vmulhsu(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i64m4)))
-vint64m4_t vmulhsu(vint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i64m4_m)))
-vint64m4_t vmulhsu(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i64m8)))
-vint64m8_t vmulhsu(vint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmulhsu_vx_i64m8_m)))
-vint64m8_t vmulhsu(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8m1)))
-vuint8m1_t vdivu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8m1_m)))
-vuint8m1_t vdivu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8m2)))
-vuint8m2_t vdivu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8m2_m)))
-vuint8m2_t vdivu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8m4)))
-vuint8m4_t vdivu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8m4_m)))
-vuint8m4_t vdivu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8m8)))
-vuint8m8_t vdivu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8m8_m)))
-vuint8m8_t vdivu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8mf2)))
-vuint8mf2_t vdivu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8mf2_m)))
-vuint8mf2_t vdivu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8mf4)))
-vuint8mf4_t vdivu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8mf4_m)))
-vuint8mf4_t vdivu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8mf8)))
-vuint8mf8_t vdivu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u8mf8_m)))
-vuint8mf8_t vdivu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16m1)))
-vuint16m1_t vdivu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16m1_m)))
-vuint16m1_t vdivu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16m2)))
-vuint16m2_t vdivu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16m2_m)))
-vuint16m2_t vdivu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16m4)))
-vuint16m4_t vdivu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16m4_m)))
-vuint16m4_t vdivu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16m8)))
-vuint16m8_t vdivu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16m8_m)))
-vuint16m8_t vdivu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16mf2)))
-vuint16mf2_t vdivu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16mf2_m)))
-vuint16mf2_t vdivu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16mf4)))
-vuint16mf4_t vdivu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u16mf4_m)))
-vuint16mf4_t vdivu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u32m1)))
-vuint32m1_t vdivu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u32m1_m)))
-vuint32m1_t vdivu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u32m2)))
-vuint32m2_t vdivu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u32m2_m)))
-vuint32m2_t vdivu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u32m4)))
-vuint32m4_t vdivu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u32m4_m)))
-vuint32m4_t vdivu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u32m8)))
-vuint32m8_t vdivu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u32m8_m)))
-vuint32m8_t vdivu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u32mf2)))
-vuint32mf2_t vdivu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u32mf2_m)))
-vuint32mf2_t vdivu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u64m1)))
-vuint64m1_t vdivu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u64m1_m)))
-vuint64m1_t vdivu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u64m2)))
-vuint64m2_t vdivu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u64m2_m)))
-vuint64m2_t vdivu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u64m4)))
-vuint64m4_t vdivu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u64m4_m)))
-vuint64m4_t vdivu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u64m8)))
-vuint64m8_t vdivu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vv_u64m8_m)))
-vuint64m8_t vdivu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8m1)))
-vuint8m1_t vdivu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8m1_m)))
-vuint8m1_t vdivu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8m2)))
-vuint8m2_t vdivu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8m2_m)))
-vuint8m2_t vdivu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8m4)))
-vuint8m4_t vdivu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8m4_m)))
-vuint8m4_t vdivu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8m8)))
-vuint8m8_t vdivu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8m8_m)))
-vuint8m8_t vdivu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8mf2)))
-vuint8mf2_t vdivu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8mf2_m)))
-vuint8mf2_t vdivu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8mf4)))
-vuint8mf4_t vdivu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8mf4_m)))
-vuint8mf4_t vdivu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8mf8)))
-vuint8mf8_t vdivu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u8mf8_m)))
-vuint8mf8_t vdivu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16m1)))
-vuint16m1_t vdivu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16m1_m)))
-vuint16m1_t vdivu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16m2)))
-vuint16m2_t vdivu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16m2_m)))
-vuint16m2_t vdivu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16m4)))
-vuint16m4_t vdivu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16m4_m)))
-vuint16m4_t vdivu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16m8)))
-vuint16m8_t vdivu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16m8_m)))
-vuint16m8_t vdivu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16mf2)))
-vuint16mf2_t vdivu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16mf2_m)))
-vuint16mf2_t vdivu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16mf4)))
-vuint16mf4_t vdivu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u16mf4_m)))
-vuint16mf4_t vdivu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u32m1)))
-vuint32m1_t vdivu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u32m1_m)))
-vuint32m1_t vdivu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u32m2)))
-vuint32m2_t vdivu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u32m2_m)))
-vuint32m2_t vdivu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u32m4)))
-vuint32m4_t vdivu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u32m4_m)))
-vuint32m4_t vdivu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u32m8)))
-vuint32m8_t vdivu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u32m8_m)))
-vuint32m8_t vdivu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u32mf2)))
-vuint32mf2_t vdivu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u32mf2_m)))
-vuint32mf2_t vdivu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u64m1)))
-vuint64m1_t vdivu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u64m1_m)))
-vuint64m1_t vdivu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u64m2)))
-vuint64m2_t vdivu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u64m2_m)))
-vuint64m2_t vdivu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u64m4)))
-vuint64m4_t vdivu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u64m4_m)))
-vuint64m4_t vdivu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u64m8)))
-vuint64m8_t vdivu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdivu_vx_u64m8_m)))
-vuint64m8_t vdivu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8m1)))
-vint8m1_t vdiv(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8m1_m)))
-vint8m1_t vdiv(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8m2)))
-vint8m2_t vdiv(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8m2_m)))
-vint8m2_t vdiv(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8m4)))
-vint8m4_t vdiv(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8m4_m)))
-vint8m4_t vdiv(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8m8)))
-vint8m8_t vdiv(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8m8_m)))
-vint8m8_t vdiv(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8mf2)))
-vint8mf2_t vdiv(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8mf2_m)))
-vint8mf2_t vdiv(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8mf4)))
-vint8mf4_t vdiv(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8mf4_m)))
-vint8mf4_t vdiv(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8mf8)))
-vint8mf8_t vdiv(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i8mf8_m)))
-vint8mf8_t vdiv(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16m1)))
-vint16m1_t vdiv(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16m1_m)))
-vint16m1_t vdiv(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16m2)))
-vint16m2_t vdiv(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16m2_m)))
-vint16m2_t vdiv(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16m4)))
-vint16m4_t vdiv(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16m4_m)))
-vint16m4_t vdiv(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16m8)))
-vint16m8_t vdiv(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16m8_m)))
-vint16m8_t vdiv(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16mf2)))
-vint16mf2_t vdiv(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16mf2_m)))
-vint16mf2_t vdiv(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16mf4)))
-vint16mf4_t vdiv(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i16mf4_m)))
-vint16mf4_t vdiv(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i32m1)))
-vint32m1_t vdiv(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i32m1_m)))
-vint32m1_t vdiv(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i32m2)))
-vint32m2_t vdiv(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i32m2_m)))
-vint32m2_t vdiv(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i32m4)))
-vint32m4_t vdiv(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i32m4_m)))
-vint32m4_t vdiv(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i32m8)))
-vint32m8_t vdiv(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i32m8_m)))
-vint32m8_t vdiv(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i32mf2)))
-vint32mf2_t vdiv(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i32mf2_m)))
-vint32mf2_t vdiv(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i64m1)))
-vint64m1_t vdiv(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i64m1_m)))
-vint64m1_t vdiv(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i64m2)))
-vint64m2_t vdiv(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i64m2_m)))
-vint64m2_t vdiv(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i64m4)))
-vint64m4_t vdiv(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i64m4_m)))
-vint64m4_t vdiv(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i64m8)))
-vint64m8_t vdiv(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vv_i64m8_m)))
-vint64m8_t vdiv(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8m1)))
-vint8m1_t vdiv(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8m1_m)))
-vint8m1_t vdiv(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8m2)))
-vint8m2_t vdiv(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8m2_m)))
-vint8m2_t vdiv(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8m4)))
-vint8m4_t vdiv(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8m4_m)))
-vint8m4_t vdiv(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8m8)))
-vint8m8_t vdiv(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8m8_m)))
-vint8m8_t vdiv(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8mf2)))
-vint8mf2_t vdiv(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8mf2_m)))
-vint8mf2_t vdiv(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8mf4)))
-vint8mf4_t vdiv(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8mf4_m)))
-vint8mf4_t vdiv(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8mf8)))
-vint8mf8_t vdiv(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i8mf8_m)))
-vint8mf8_t vdiv(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16m1)))
-vint16m1_t vdiv(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16m1_m)))
-vint16m1_t vdiv(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16m2)))
-vint16m2_t vdiv(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16m2_m)))
-vint16m2_t vdiv(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16m4)))
-vint16m4_t vdiv(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16m4_m)))
-vint16m4_t vdiv(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16m8)))
-vint16m8_t vdiv(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16m8_m)))
-vint16m8_t vdiv(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16mf2)))
-vint16mf2_t vdiv(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16mf2_m)))
-vint16mf2_t vdiv(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16mf4)))
-vint16mf4_t vdiv(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i16mf4_m)))
-vint16mf4_t vdiv(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i32m1)))
-vint32m1_t vdiv(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i32m1_m)))
-vint32m1_t vdiv(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i32m2)))
-vint32m2_t vdiv(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i32m2_m)))
-vint32m2_t vdiv(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i32m4)))
-vint32m4_t vdiv(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i32m4_m)))
-vint32m4_t vdiv(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i32m8)))
-vint32m8_t vdiv(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i32m8_m)))
-vint32m8_t vdiv(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i32mf2)))
-vint32mf2_t vdiv(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i32mf2_m)))
-vint32mf2_t vdiv(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i64m1)))
-vint64m1_t vdiv(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i64m1_m)))
-vint64m1_t vdiv(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i64m2)))
-vint64m2_t vdiv(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i64m2_m)))
-vint64m2_t vdiv(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i64m4)))
-vint64m4_t vdiv(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i64m4_m)))
-vint64m4_t vdiv(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i64m8)))
-vint64m8_t vdiv(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vdiv_vx_i64m8_m)))
-vint64m8_t vdiv(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8m1)))
-vuint8m1_t vremu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8m1_m)))
-vuint8m1_t vremu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8m2)))
-vuint8m2_t vremu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8m2_m)))
-vuint8m2_t vremu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8m4)))
-vuint8m4_t vremu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8m4_m)))
-vuint8m4_t vremu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8m8)))
-vuint8m8_t vremu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8m8_m)))
-vuint8m8_t vremu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8mf2)))
-vuint8mf2_t vremu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8mf2_m)))
-vuint8mf2_t vremu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8mf4)))
-vuint8mf4_t vremu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8mf4_m)))
-vuint8mf4_t vremu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8mf8)))
-vuint8mf8_t vremu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u8mf8_m)))
-vuint8mf8_t vremu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16m1)))
-vuint16m1_t vremu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16m1_m)))
-vuint16m1_t vremu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16m2)))
-vuint16m2_t vremu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16m2_m)))
-vuint16m2_t vremu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16m4)))
-vuint16m4_t vremu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16m4_m)))
-vuint16m4_t vremu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16m8)))
-vuint16m8_t vremu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16m8_m)))
-vuint16m8_t vremu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16mf2)))
-vuint16mf2_t vremu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16mf2_m)))
-vuint16mf2_t vremu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16mf4)))
-vuint16mf4_t vremu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u16mf4_m)))
-vuint16mf4_t vremu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u32m1)))
-vuint32m1_t vremu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u32m1_m)))
-vuint32m1_t vremu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u32m2)))
-vuint32m2_t vremu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u32m2_m)))
-vuint32m2_t vremu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u32m4)))
-vuint32m4_t vremu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u32m4_m)))
-vuint32m4_t vremu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u32m8)))
-vuint32m8_t vremu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u32m8_m)))
-vuint32m8_t vremu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u32mf2)))
-vuint32mf2_t vremu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u32mf2_m)))
-vuint32mf2_t vremu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u64m1)))
-vuint64m1_t vremu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u64m1_m)))
-vuint64m1_t vremu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u64m2)))
-vuint64m2_t vremu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u64m2_m)))
-vuint64m2_t vremu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u64m4)))
-vuint64m4_t vremu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u64m4_m)))
-vuint64m4_t vremu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u64m8)))
-vuint64m8_t vremu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vv_u64m8_m)))
-vuint64m8_t vremu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8m1)))
-vuint8m1_t vremu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8m1_m)))
-vuint8m1_t vremu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8m2)))
-vuint8m2_t vremu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8m2_m)))
-vuint8m2_t vremu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8m4)))
-vuint8m4_t vremu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8m4_m)))
-vuint8m4_t vremu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8m8)))
-vuint8m8_t vremu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8m8_m)))
-vuint8m8_t vremu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8mf2)))
-vuint8mf2_t vremu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8mf2_m)))
-vuint8mf2_t vremu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8mf4)))
-vuint8mf4_t vremu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8mf4_m)))
-vuint8mf4_t vremu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8mf8)))
-vuint8mf8_t vremu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u8mf8_m)))
-vuint8mf8_t vremu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16m1)))
-vuint16m1_t vremu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16m1_m)))
-vuint16m1_t vremu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16m2)))
-vuint16m2_t vremu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16m2_m)))
-vuint16m2_t vremu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16m4)))
-vuint16m4_t vremu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16m4_m)))
-vuint16m4_t vremu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16m8)))
-vuint16m8_t vremu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16m8_m)))
-vuint16m8_t vremu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16mf2)))
-vuint16mf2_t vremu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16mf2_m)))
-vuint16mf2_t vremu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16mf4)))
-vuint16mf4_t vremu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u16mf4_m)))
-vuint16mf4_t vremu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u32m1)))
-vuint32m1_t vremu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u32m1_m)))
-vuint32m1_t vremu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u32m2)))
-vuint32m2_t vremu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u32m2_m)))
-vuint32m2_t vremu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u32m4)))
-vuint32m4_t vremu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u32m4_m)))
-vuint32m4_t vremu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u32m8)))
-vuint32m8_t vremu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u32m8_m)))
-vuint32m8_t vremu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u32mf2)))
-vuint32mf2_t vremu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u32mf2_m)))
-vuint32mf2_t vremu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u64m1)))
-vuint64m1_t vremu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u64m1_m)))
-vuint64m1_t vremu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u64m2)))
-vuint64m2_t vremu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u64m2_m)))
-vuint64m2_t vremu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u64m4)))
-vuint64m4_t vremu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u64m4_m)))
-vuint64m4_t vremu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u64m8)))
-vuint64m8_t vremu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vremu_vx_u64m8_m)))
-vuint64m8_t vremu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8m1)))
-vint8m1_t vrem(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8m1_m)))
-vint8m1_t vrem(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8m2)))
-vint8m2_t vrem(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8m2_m)))
-vint8m2_t vrem(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8m4)))
-vint8m4_t vrem(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8m4_m)))
-vint8m4_t vrem(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8m8)))
-vint8m8_t vrem(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8m8_m)))
-vint8m8_t vrem(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8mf2)))
-vint8mf2_t vrem(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8mf2_m)))
-vint8mf2_t vrem(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8mf4)))
-vint8mf4_t vrem(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8mf4_m)))
-vint8mf4_t vrem(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8mf8)))
-vint8mf8_t vrem(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i8mf8_m)))
-vint8mf8_t vrem(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16m1)))
-vint16m1_t vrem(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16m1_m)))
-vint16m1_t vrem(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16m2)))
-vint16m2_t vrem(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16m2_m)))
-vint16m2_t vrem(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16m4)))
-vint16m4_t vrem(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16m4_m)))
-vint16m4_t vrem(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16m8)))
-vint16m8_t vrem(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16m8_m)))
-vint16m8_t vrem(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16mf2)))
-vint16mf2_t vrem(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16mf2_m)))
-vint16mf2_t vrem(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16mf4)))
-vint16mf4_t vrem(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i16mf4_m)))
-vint16mf4_t vrem(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i32m1)))
-vint32m1_t vrem(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i32m1_m)))
-vint32m1_t vrem(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i32m2)))
-vint32m2_t vrem(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i32m2_m)))
-vint32m2_t vrem(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i32m4)))
-vint32m4_t vrem(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i32m4_m)))
-vint32m4_t vrem(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i32m8)))
-vint32m8_t vrem(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i32m8_m)))
-vint32m8_t vrem(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i32mf2)))
-vint32mf2_t vrem(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i32mf2_m)))
-vint32mf2_t vrem(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i64m1)))
-vint64m1_t vrem(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i64m1_m)))
-vint64m1_t vrem(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i64m2)))
-vint64m2_t vrem(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i64m2_m)))
-vint64m2_t vrem(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i64m4)))
-vint64m4_t vrem(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i64m4_m)))
-vint64m4_t vrem(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i64m8)))
-vint64m8_t vrem(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vv_i64m8_m)))
-vint64m8_t vrem(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8m1)))
-vint8m1_t vrem(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8m1_m)))
-vint8m1_t vrem(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8m2)))
-vint8m2_t vrem(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8m2_m)))
-vint8m2_t vrem(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8m4)))
-vint8m4_t vrem(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8m4_m)))
-vint8m4_t vrem(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8m8)))
-vint8m8_t vrem(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8m8_m)))
-vint8m8_t vrem(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8mf2)))
-vint8mf2_t vrem(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8mf2_m)))
-vint8mf2_t vrem(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8mf4)))
-vint8mf4_t vrem(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8mf4_m)))
-vint8mf4_t vrem(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8mf8)))
-vint8mf8_t vrem(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i8mf8_m)))
-vint8mf8_t vrem(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16m1)))
-vint16m1_t vrem(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16m1_m)))
-vint16m1_t vrem(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16m2)))
-vint16m2_t vrem(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16m2_m)))
-vint16m2_t vrem(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16m4)))
-vint16m4_t vrem(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16m4_m)))
-vint16m4_t vrem(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16m8)))
-vint16m8_t vrem(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16m8_m)))
-vint16m8_t vrem(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16mf2)))
-vint16mf2_t vrem(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16mf2_m)))
-vint16mf2_t vrem(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16mf4)))
-vint16mf4_t vrem(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i16mf4_m)))
-vint16mf4_t vrem(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i32m1)))
-vint32m1_t vrem(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i32m1_m)))
-vint32m1_t vrem(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i32m2)))
-vint32m2_t vrem(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i32m2_m)))
-vint32m2_t vrem(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i32m4)))
-vint32m4_t vrem(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i32m4_m)))
-vint32m4_t vrem(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i32m8)))
-vint32m8_t vrem(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i32m8_m)))
-vint32m8_t vrem(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i32mf2)))
-vint32mf2_t vrem(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i32mf2_m)))
-vint32mf2_t vrem(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i64m1)))
-vint64m1_t vrem(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i64m1_m)))
-vint64m1_t vrem(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i64m2)))
-vint64m2_t vrem(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i64m2_m)))
-vint64m2_t vrem(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i64m4)))
-vint64m4_t vrem(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i64m4_m)))
-vint64m4_t vrem(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i64m8)))
-vint64m8_t vrem(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrem_vx_i64m8_m)))
-vint64m8_t vrem(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16mf4)))
-vint16mf4_t vwmul(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16mf4_m)))
-vint16mf4_t vwmul(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16mf2)))
-vint16mf2_t vwmul(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16mf2_m)))
-vint16mf2_t vwmul(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16m1)))
-vint16m1_t vwmul(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16m1_m)))
-vint16m1_t vwmul(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16m2)))
-vint16m2_t vwmul(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16m2_m)))
-vint16m2_t vwmul(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16m4)))
-vint16m4_t vwmul(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16m4_m)))
-vint16m4_t vwmul(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16m8)))
-vint16m8_t vwmul(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i16m8_m)))
-vint16m8_t vwmul(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i32mf2)))
-vint32mf2_t vwmul(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i32mf2_m)))
-vint32mf2_t vwmul(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i32m1)))
-vint32m1_t vwmul(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i32m1_m)))
-vint32m1_t vwmul(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i32m2)))
-vint32m2_t vwmul(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i32m2_m)))
-vint32m2_t vwmul(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i32m4)))
-vint32m4_t vwmul(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i32m4_m)))
-vint32m4_t vwmul(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i32m8)))
-vint32m8_t vwmul(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i32m8_m)))
-vint32m8_t vwmul(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i64m1)))
-vint64m1_t vwmul(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i64m1_m)))
-vint64m1_t vwmul(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i64m2)))
-vint64m2_t vwmul(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i64m2_m)))
-vint64m2_t vwmul(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i64m4)))
-vint64m4_t vwmul(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i64m4_m)))
-vint64m4_t vwmul(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i64m8)))
-vint64m8_t vwmul(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vv_i64m8_m)))
-vint64m8_t vwmul(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u32m1)))
-void vsuxei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u32m1_m)))
-void vsuxei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u32m2)))
-void vsuxei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u32m2_m)))
-void vsuxei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u32m4)))
-void vsuxei8(uint32_t * op0, vuint8m1_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u32m4_m)))
-void vsuxei8(vbool8_t op0, uint32_t * op1, vuint8m1_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u32m8)))
-void vsuxei8(uint32_t * op0, vuint8m2_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u32m8_m)))
-void vsuxei8(vbool4_t op0, uint32_t * op1, vuint8m2_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u32mf2)))
-void vsuxei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u32mf2_m)))
-void vsuxei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16mf4)))
-vint16mf4_t vwmul(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16mf4_m)))
-vint16mf4_t vwmul(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16mf2)))
-vint16mf2_t vwmul(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16mf2_m)))
-vint16mf2_t vwmul(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16m1)))
-vint16m1_t vwmul(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16m1_m)))
-vint16m1_t vwmul(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16m2)))
-vint16m2_t vwmul(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16m2_m)))
-vint16m2_t vwmul(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16m4)))
-vint16m4_t vwmul(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16m4_m)))
-vint16m4_t vwmul(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16m8)))
-vint16m8_t vwmul(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i16m8_m)))
-vint16m8_t vwmul(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i32mf2)))
-vint32mf2_t vwmul(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i32mf2_m)))
-vint32mf2_t vwmul(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i32m1)))
-vint32m1_t vwmul(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i32m1_m)))
-vint32m1_t vwmul(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i32m2)))
-vint32m2_t vwmul(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i32m2_m)))
-vint32m2_t vwmul(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i32m4)))
-vint32m4_t vwmul(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i32m4_m)))
-vint32m4_t vwmul(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i32m8)))
-vint32m8_t vwmul(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i32m8_m)))
-vint32m8_t vwmul(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i64m1)))
-vint64m1_t vwmul(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i64m1_m)))
-vint64m1_t vwmul(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i64m2)))
-vint64m2_t vwmul(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i64m2_m)))
-vint64m2_t vwmul(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i64m4)))
-vint64m4_t vwmul(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i64m4_m)))
-vint64m4_t vwmul(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i64m8)))
-vint64m8_t vwmul(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmul_vx_i64m8_m)))
-vint64m8_t vwmul(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16mf4)))
-vuint16mf4_t vwmulu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16mf4_m)))
-vuint16mf4_t vwmulu(vbool64_t op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16mf2)))
-vuint16mf2_t vwmulu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16mf2_m)))
-vuint16mf2_t vwmulu(vbool32_t op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16m1)))
-vuint16m1_t vwmulu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16m1_m)))
-vuint16m1_t vwmulu(vbool16_t op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16m2)))
-vuint16m2_t vwmulu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16m2_m)))
-vuint16m2_t vwmulu(vbool8_t op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16m4)))
-vuint16m4_t vwmulu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16m4_m)))
-vuint16m4_t vwmulu(vbool4_t op0, vuint16m4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16m8)))
-vuint16m8_t vwmulu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u16m8_m)))
-vuint16m8_t vwmulu(vbool2_t op0, vuint16m8_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u32mf2)))
-vuint32mf2_t vwmulu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u32mf2_m)))
-vuint32mf2_t vwmulu(vbool64_t op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u32m1)))
-vuint32m1_t vwmulu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u32m1_m)))
-vuint32m1_t vwmulu(vbool32_t op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u32m2)))
-vuint32m2_t vwmulu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u32m2_m)))
-vuint32m2_t vwmulu(vbool16_t op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u32m4)))
-vuint32m4_t vwmulu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u32m4_m)))
-vuint32m4_t vwmulu(vbool8_t op0, vuint32m4_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u32m8)))
-vuint32m8_t vwmulu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u32m8_m)))
-vuint32m8_t vwmulu(vbool4_t op0, vuint32m8_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u64m1)))
-vuint64m1_t vwmulu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u64m1_m)))
-vuint64m1_t vwmulu(vbool64_t op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u64m2)))
-vuint64m2_t vwmulu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u64m2_m)))
-vuint64m2_t vwmulu(vbool32_t op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u64m4)))
-vuint64m4_t vwmulu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u64m4_m)))
-vuint64m4_t vwmulu(vbool16_t op0, vuint64m4_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u64m8)))
-vuint64m8_t vwmulu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vv_u64m8_m)))
-vuint64m8_t vwmulu(vbool8_t op0, vuint64m8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16mf4)))
-vuint16mf4_t vwmulu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16mf4_m)))
-vuint16mf4_t vwmulu(vbool64_t op0, vuint16mf4_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16mf2)))
-vuint16mf2_t vwmulu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16mf2_m)))
-vuint16mf2_t vwmulu(vbool32_t op0, vuint16mf2_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16m1)))
-vuint16m1_t vwmulu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16m1_m)))
-vuint16m1_t vwmulu(vbool16_t op0, vuint16m1_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16m2)))
-vuint16m2_t vwmulu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16m2_m)))
-vuint16m2_t vwmulu(vbool8_t op0, vuint16m2_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16m4)))
-vuint16m4_t vwmulu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16m4_m)))
-vuint16m4_t vwmulu(vbool4_t op0, vuint16m4_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16m8)))
-vuint16m8_t vwmulu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u16m8_m)))
-vuint16m8_t vwmulu(vbool2_t op0, vuint16m8_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u32mf2)))
-vuint32mf2_t vwmulu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u32mf2_m)))
-vuint32mf2_t vwmulu(vbool64_t op0, vuint32mf2_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u32m1)))
-vuint32m1_t vwmulu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u32m1_m)))
-vuint32m1_t vwmulu(vbool32_t op0, vuint32m1_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u32m2)))
-vuint32m2_t vwmulu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u32m2_m)))
-vuint32m2_t vwmulu(vbool16_t op0, vuint32m2_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u32m4)))
-vuint32m4_t vwmulu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u32m4_m)))
-vuint32m4_t vwmulu(vbool8_t op0, vuint32m4_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u32m8)))
-vuint32m8_t vwmulu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u32m8_m)))
-vuint32m8_t vwmulu(vbool4_t op0, vuint32m8_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u64m1)))
-vuint64m1_t vwmulu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u64m1_m)))
-vuint64m1_t vwmulu(vbool64_t op0, vuint64m1_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u64m2)))
-vuint64m2_t vwmulu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u64m2_m)))
-vuint64m2_t vwmulu(vbool32_t op0, vuint64m2_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u64m4)))
-vuint64m4_t vwmulu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u64m4_m)))
-vuint64m4_t vwmulu(vbool16_t op0, vuint64m4_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u64m8)))
-vuint64m8_t vwmulu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulu_vx_u64m8_m)))
-vuint64m8_t vwmulu(vbool8_t op0, vuint64m8_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16mf4)))
-vint16mf4_t vwmulsu(vint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16mf4_m)))
-vint16mf4_t vwmulsu(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16mf2)))
-vint16mf2_t vwmulsu(vint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16mf2_m)))
-vint16mf2_t vwmulsu(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16m1)))
-vint16m1_t vwmulsu(vint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16m1_m)))
-vint16m1_t vwmulsu(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16m2)))
-vint16m2_t vwmulsu(vint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16m2_m)))
-vint16m2_t vwmulsu(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16m4)))
-vint16m4_t vwmulsu(vint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16m4_m)))
-vint16m4_t vwmulsu(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16m8)))
-vint16m8_t vwmulsu(vint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i16m8_m)))
-vint16m8_t vwmulsu(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i32mf2)))
-vint32mf2_t vwmulsu(vint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i32mf2_m)))
-vint32mf2_t vwmulsu(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i32m1)))
-vint32m1_t vwmulsu(vint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i32m1_m)))
-vint32m1_t vwmulsu(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i32m2)))
-vint32m2_t vwmulsu(vint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i32m2_m)))
-vint32m2_t vwmulsu(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i32m4)))
-vint32m4_t vwmulsu(vint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i32m4_m)))
-vint32m4_t vwmulsu(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i32m8)))
-vint32m8_t vwmulsu(vint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i32m8_m)))
-vint32m8_t vwmulsu(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i64m1)))
-vint64m1_t vwmulsu(vint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i64m1_m)))
-vint64m1_t vwmulsu(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i64m2)))
-vint64m2_t vwmulsu(vint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i64m2_m)))
-vint64m2_t vwmulsu(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i64m4)))
-vint64m4_t vwmulsu(vint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i64m4_m)))
-vint64m4_t vwmulsu(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i64m8)))
-vint64m8_t vwmulsu(vint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vv_i64m8_m)))
-vint64m8_t vwmulsu(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16mf4)))
-vint16mf4_t vwmulsu(vint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16mf4_m)))
-vint16mf4_t vwmulsu(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16mf2)))
-vint16mf2_t vwmulsu(vint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16mf2_m)))
-vint16mf2_t vwmulsu(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16m1)))
-vint16m1_t vwmulsu(vint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16m1_m)))
-vint16m1_t vwmulsu(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16m2)))
-vint16m2_t vwmulsu(vint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16m2_m)))
-vint16m2_t vwmulsu(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16m4)))
-vint16m4_t vwmulsu(vint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16m4_m)))
-vint16m4_t vwmulsu(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16m8)))
-vint16m8_t vwmulsu(vint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i16m8_m)))
-vint16m8_t vwmulsu(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i32mf2)))
-vint32mf2_t vwmulsu(vint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i32mf2_m)))
-vint32mf2_t vwmulsu(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i32m1)))
-vint32m1_t vwmulsu(vint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i32m1_m)))
-vint32m1_t vwmulsu(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i32m2)))
-vint32m2_t vwmulsu(vint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i32m2_m)))
-vint32m2_t vwmulsu(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i32m4)))
-vint32m4_t vwmulsu(vint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i32m4_m)))
-vint32m4_t vwmulsu(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i32m8)))
-vint32m8_t vwmulsu(vint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i32m8_m)))
-vint32m8_t vwmulsu(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i64m1)))
-vint64m1_t vwmulsu(vint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i64m1_m)))
-vint64m1_t vwmulsu(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i64m2)))
-vint64m2_t vwmulsu(vint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i64m2_m)))
-vint64m2_t vwmulsu(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i64m4)))
-vint64m4_t vwmulsu(vint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i64m4_m)))
-vint64m4_t vwmulsu(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i64m8)))
-vint64m8_t vwmulsu(vint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmulsu_vx_i64m8_m)))
-vint64m8_t vwmulsu(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8m1)))
-vint8m1_t vmacc(vint8m1_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8m1_m)))
-vint8m1_t vmacc(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8m2)))
-vint8m2_t vmacc(vint8m2_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8m2_m)))
-vint8m2_t vmacc(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8m4)))
-vint8m4_t vmacc(vint8m4_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8m4_m)))
-vint8m4_t vmacc(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8m8)))
-vint8m8_t vmacc(vint8m8_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8m8_m)))
-vint8m8_t vmacc(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8mf2)))
-vint8mf2_t vmacc(vint8mf2_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8mf2_m)))
-vint8mf2_t vmacc(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8mf4)))
-vint8mf4_t vmacc(vint8mf4_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8mf4_m)))
-vint8mf4_t vmacc(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8mf8)))
-vint8mf8_t vmacc(vint8mf8_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i8mf8_m)))
-vint8mf8_t vmacc(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16m1)))
-vint16m1_t vmacc(vint16m1_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16m1_m)))
-vint16m1_t vmacc(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16m2)))
-vint16m2_t vmacc(vint16m2_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16m2_m)))
-vint16m2_t vmacc(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16m4)))
-vint16m4_t vmacc(vint16m4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16m4_m)))
-vint16m4_t vmacc(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16m8)))
-vint16m8_t vmacc(vint16m8_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16m8_m)))
-vint16m8_t vmacc(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16mf2)))
-vint16mf2_t vmacc(vint16mf2_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16mf2_m)))
-vint16mf2_t vmacc(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16mf4)))
-vint16mf4_t vmacc(vint16mf4_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i16mf4_m)))
-vint16mf4_t vmacc(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i32m1)))
-vint32m1_t vmacc(vint32m1_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i32m1_m)))
-vint32m1_t vmacc(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i32m2)))
-vint32m2_t vmacc(vint32m2_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i32m2_m)))
-vint32m2_t vmacc(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i32m4)))
-vint32m4_t vmacc(vint32m4_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i32m4_m)))
-vint32m4_t vmacc(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i32m8)))
-vint32m8_t vmacc(vint32m8_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i32m8_m)))
-vint32m8_t vmacc(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i32mf2)))
-vint32mf2_t vmacc(vint32mf2_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i32mf2_m)))
-vint32mf2_t vmacc(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i64m1)))
-vint64m1_t vmacc(vint64m1_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i64m1_m)))
-vint64m1_t vmacc(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i64m2)))
-vint64m2_t vmacc(vint64m2_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i64m2_m)))
-vint64m2_t vmacc(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i64m4)))
-vint64m4_t vmacc(vint64m4_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i64m4_m)))
-vint64m4_t vmacc(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i64m8)))
-vint64m8_t vmacc(vint64m8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_i64m8_m)))
-vint64m8_t vmacc(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8m1)))
-vint8m1_t vmacc(vint8m1_t op0, int8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8m1_m)))
-vint8m1_t vmacc(vbool8_t op0, vint8m1_t op1, int8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8m2)))
-vint8m2_t vmacc(vint8m2_t op0, int8_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8m2_m)))
-vint8m2_t vmacc(vbool4_t op0, vint8m2_t op1, int8_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8m4)))
-vint8m4_t vmacc(vint8m4_t op0, int8_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8m4_m)))
-vint8m4_t vmacc(vbool2_t op0, vint8m4_t op1, int8_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8m8)))
-vint8m8_t vmacc(vint8m8_t op0, int8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8m8_m)))
-vint8m8_t vmacc(vbool1_t op0, vint8m8_t op1, int8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8mf2)))
-vint8mf2_t vmacc(vint8mf2_t op0, int8_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8mf2_m)))
-vint8mf2_t vmacc(vbool16_t op0, vint8mf2_t op1, int8_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8mf4)))
-vint8mf4_t vmacc(vint8mf4_t op0, int8_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8mf4_m)))
-vint8mf4_t vmacc(vbool32_t op0, vint8mf4_t op1, int8_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8mf8)))
-vint8mf8_t vmacc(vint8mf8_t op0, int8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i8mf8_m)))
-vint8mf8_t vmacc(vbool64_t op0, vint8mf8_t op1, int8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16m1)))
-vint16m1_t vmacc(vint16m1_t op0, int16_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16m1_m)))
-vint16m1_t vmacc(vbool16_t op0, vint16m1_t op1, int16_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16m2)))
-vint16m2_t vmacc(vint16m2_t op0, int16_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16m2_m)))
-vint16m2_t vmacc(vbool8_t op0, vint16m2_t op1, int16_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16m4)))
-vint16m4_t vmacc(vint16m4_t op0, int16_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16m4_m)))
-vint16m4_t vmacc(vbool4_t op0, vint16m4_t op1, int16_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16m8)))
-vint16m8_t vmacc(vint16m8_t op0, int16_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16m8_m)))
-vint16m8_t vmacc(vbool2_t op0, vint16m8_t op1, int16_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16mf2)))
-vint16mf2_t vmacc(vint16mf2_t op0, int16_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16mf2_m)))
-vint16mf2_t vmacc(vbool32_t op0, vint16mf2_t op1, int16_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16mf4)))
-vint16mf4_t vmacc(vint16mf4_t op0, int16_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i16mf4_m)))
-vint16mf4_t vmacc(vbool64_t op0, vint16mf4_t op1, int16_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i32m1)))
-vint32m1_t vmacc(vint32m1_t op0, int32_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i32m1_m)))
-vint32m1_t vmacc(vbool32_t op0, vint32m1_t op1, int32_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i32m2)))
-vint32m2_t vmacc(vint32m2_t op0, int32_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i32m2_m)))
-vint32m2_t vmacc(vbool16_t op0, vint32m2_t op1, int32_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i32m4)))
-vint32m4_t vmacc(vint32m4_t op0, int32_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i32m4_m)))
-vint32m4_t vmacc(vbool8_t op0, vint32m4_t op1, int32_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i32m8)))
-vint32m8_t vmacc(vint32m8_t op0, int32_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i32m8_m)))
-vint32m8_t vmacc(vbool4_t op0, vint32m8_t op1, int32_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i32mf2)))
-vint32mf2_t vmacc(vint32mf2_t op0, int32_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i32mf2_m)))
-vint32mf2_t vmacc(vbool64_t op0, vint32mf2_t op1, int32_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i64m1)))
-vint64m1_t vmacc(vint64m1_t op0, int64_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i64m1_m)))
-vint64m1_t vmacc(vbool64_t op0, vint64m1_t op1, int64_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i64m2)))
-vint64m2_t vmacc(vint64m2_t op0, int64_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i64m2_m)))
-vint64m2_t vmacc(vbool32_t op0, vint64m2_t op1, int64_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i64m4)))
-vint64m4_t vmacc(vint64m4_t op0, int64_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i64m4_m)))
-vint64m4_t vmacc(vbool16_t op0, vint64m4_t op1, int64_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i64m8)))
-vint64m8_t vmacc(vint64m8_t op0, int64_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_i64m8_m)))
-vint64m8_t vmacc(vbool8_t op0, vint64m8_t op1, int64_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8m1)))
-vuint8m1_t vmacc(vuint8m1_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8m1_m)))
-vuint8m1_t vmacc(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8m2)))
-vuint8m2_t vmacc(vuint8m2_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8m2_m)))
-vuint8m2_t vmacc(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8m4)))
-vuint8m4_t vmacc(vuint8m4_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8m4_m)))
-vuint8m4_t vmacc(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8m8)))
-vuint8m8_t vmacc(vuint8m8_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8m8_m)))
-vuint8m8_t vmacc(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8mf2)))
-vuint8mf2_t vmacc(vuint8mf2_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8mf2_m)))
-vuint8mf2_t vmacc(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8mf4)))
-vuint8mf4_t vmacc(vuint8mf4_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8mf4_m)))
-vuint8mf4_t vmacc(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8mf8)))
-vuint8mf8_t vmacc(vuint8mf8_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u8mf8_m)))
-vuint8mf8_t vmacc(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16m1)))
-vuint16m1_t vmacc(vuint16m1_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16m1_m)))
-vuint16m1_t vmacc(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16m2)))
-vuint16m2_t vmacc(vuint16m2_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16m2_m)))
-vuint16m2_t vmacc(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16m4)))
-vuint16m4_t vmacc(vuint16m4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16m4_m)))
-vuint16m4_t vmacc(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16m8)))
-vuint16m8_t vmacc(vuint16m8_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16m8_m)))
-vuint16m8_t vmacc(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16mf2)))
-vuint16mf2_t vmacc(vuint16mf2_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16mf2_m)))
-vuint16mf2_t vmacc(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16mf4)))
-vuint16mf4_t vmacc(vuint16mf4_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u16mf4_m)))
-vuint16mf4_t vmacc(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u32m1)))
-vuint32m1_t vmacc(vuint32m1_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u32m1_m)))
-vuint32m1_t vmacc(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u32m2)))
-vuint32m2_t vmacc(vuint32m2_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u32m2_m)))
-vuint32m2_t vmacc(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u32m4)))
-vuint32m4_t vmacc(vuint32m4_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u32m4_m)))
-vuint32m4_t vmacc(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u32m8)))
-vuint32m8_t vmacc(vuint32m8_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u32m8_m)))
-vuint32m8_t vmacc(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u32mf2)))
-vuint32mf2_t vmacc(vuint32mf2_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u32mf2_m)))
-vuint32mf2_t vmacc(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u64m1)))
-vuint64m1_t vmacc(vuint64m1_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u64m1_m)))
-vuint64m1_t vmacc(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u64m2)))
-vuint64m2_t vmacc(vuint64m2_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u64m2_m)))
-vuint64m2_t vmacc(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u64m4)))
-vuint64m4_t vmacc(vuint64m4_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u64m4_m)))
-vuint64m4_t vmacc(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u64m8)))
-vuint64m8_t vmacc(vuint64m8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vv_u64m8_m)))
-vuint64m8_t vmacc(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8m1)))
-vuint8m1_t vmacc(vuint8m1_t op0, uint8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8m1_m)))
-vuint8m1_t vmacc(vbool8_t op0, vuint8m1_t op1, uint8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8m2)))
-vuint8m2_t vmacc(vuint8m2_t op0, uint8_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8m2_m)))
-vuint8m2_t vmacc(vbool4_t op0, vuint8m2_t op1, uint8_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8m4)))
-vuint8m4_t vmacc(vuint8m4_t op0, uint8_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8m4_m)))
-vuint8m4_t vmacc(vbool2_t op0, vuint8m4_t op1, uint8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8m8)))
-vuint8m8_t vmacc(vuint8m8_t op0, uint8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8m8_m)))
-vuint8m8_t vmacc(vbool1_t op0, vuint8m8_t op1, uint8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8mf2)))
-vuint8mf2_t vmacc(vuint8mf2_t op0, uint8_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8mf2_m)))
-vuint8mf2_t vmacc(vbool16_t op0, vuint8mf2_t op1, uint8_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8mf4)))
-vuint8mf4_t vmacc(vuint8mf4_t op0, uint8_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8mf4_m)))
-vuint8mf4_t vmacc(vbool32_t op0, vuint8mf4_t op1, uint8_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8mf8)))
-vuint8mf8_t vmacc(vuint8mf8_t op0, uint8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u8mf8_m)))
-vuint8mf8_t vmacc(vbool64_t op0, vuint8mf8_t op1, uint8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16m1)))
-vuint16m1_t vmacc(vuint16m1_t op0, uint16_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16m1_m)))
-vuint16m1_t vmacc(vbool16_t op0, vuint16m1_t op1, uint16_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16m2)))
-vuint16m2_t vmacc(vuint16m2_t op0, uint16_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16m2_m)))
-vuint16m2_t vmacc(vbool8_t op0, vuint16m2_t op1, uint16_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16m4)))
-vuint16m4_t vmacc(vuint16m4_t op0, uint16_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16m4_m)))
-vuint16m4_t vmacc(vbool4_t op0, vuint16m4_t op1, uint16_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16m8)))
-vuint16m8_t vmacc(vuint16m8_t op0, uint16_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16m8_m)))
-vuint16m8_t vmacc(vbool2_t op0, vuint16m8_t op1, uint16_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16mf2)))
-vuint16mf2_t vmacc(vuint16mf2_t op0, uint16_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16mf2_m)))
-vuint16mf2_t vmacc(vbool32_t op0, vuint16mf2_t op1, uint16_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16mf4)))
-vuint16mf4_t vmacc(vuint16mf4_t op0, uint16_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u16mf4_m)))
-vuint16mf4_t vmacc(vbool64_t op0, vuint16mf4_t op1, uint16_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u32m1)))
-vuint32m1_t vmacc(vuint32m1_t op0, uint32_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u32m1_m)))
-vuint32m1_t vmacc(vbool32_t op0, vuint32m1_t op1, uint32_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u32m2)))
-vuint32m2_t vmacc(vuint32m2_t op0, uint32_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u32m2_m)))
-vuint32m2_t vmacc(vbool16_t op0, vuint32m2_t op1, uint32_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u32m4)))
-vuint32m4_t vmacc(vuint32m4_t op0, uint32_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u32m4_m)))
-vuint32m4_t vmacc(vbool8_t op0, vuint32m4_t op1, uint32_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u32m8)))
-vuint32m8_t vmacc(vuint32m8_t op0, uint32_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u32m8_m)))
-vuint32m8_t vmacc(vbool4_t op0, vuint32m8_t op1, uint32_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u32mf2)))
-vuint32mf2_t vmacc(vuint32mf2_t op0, uint32_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u32mf2_m)))
-vuint32mf2_t vmacc(vbool64_t op0, vuint32mf2_t op1, uint32_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u64m1)))
-vuint64m1_t vmacc(vuint64m1_t op0, uint64_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u64m1_m)))
-vuint64m1_t vmacc(vbool64_t op0, vuint64m1_t op1, uint64_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u64m2)))
-vuint64m2_t vmacc(vuint64m2_t op0, uint64_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u64m2_m)))
-vuint64m2_t vmacc(vbool32_t op0, vuint64m2_t op1, uint64_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u64m4)))
-vuint64m4_t vmacc(vuint64m4_t op0, uint64_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u64m4_m)))
-vuint64m4_t vmacc(vbool16_t op0, vuint64m4_t op1, uint64_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u64m8)))
-vuint64m8_t vmacc(vuint64m8_t op0, uint64_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmacc_vx_u64m8_m)))
-vuint64m8_t vmacc(vbool8_t op0, vuint64m8_t op1, uint64_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8m1)))
-vint8m1_t vnmsac(vint8m1_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8m1_m)))
-vint8m1_t vnmsac(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8m2)))
-vint8m2_t vnmsac(vint8m2_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8m2_m)))
-vint8m2_t vnmsac(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8m4)))
-vint8m4_t vnmsac(vint8m4_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8m4_m)))
-vint8m4_t vnmsac(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8m8)))
-vint8m8_t vnmsac(vint8m8_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8m8_m)))
-vint8m8_t vnmsac(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8mf2)))
-vint8mf2_t vnmsac(vint8mf2_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8mf2_m)))
-vint8mf2_t vnmsac(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8mf4)))
-vint8mf4_t vnmsac(vint8mf4_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8mf4_m)))
-vint8mf4_t vnmsac(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8mf8)))
-vint8mf8_t vnmsac(vint8mf8_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i8mf8_m)))
-vint8mf8_t vnmsac(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16m1)))
-vint16m1_t vnmsac(vint16m1_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16m1_m)))
-vint16m1_t vnmsac(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16m2)))
-vint16m2_t vnmsac(vint16m2_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16m2_m)))
-vint16m2_t vnmsac(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16m4)))
-vint16m4_t vnmsac(vint16m4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16m4_m)))
-vint16m4_t vnmsac(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16m8)))
-vint16m8_t vnmsac(vint16m8_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16m8_m)))
-vint16m8_t vnmsac(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16mf2)))
-vint16mf2_t vnmsac(vint16mf2_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16mf2_m)))
-vint16mf2_t vnmsac(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16mf4)))
-vint16mf4_t vnmsac(vint16mf4_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i16mf4_m)))
-vint16mf4_t vnmsac(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i32m1)))
-vint32m1_t vnmsac(vint32m1_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i32m1_m)))
-vint32m1_t vnmsac(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i32m2)))
-vint32m2_t vnmsac(vint32m2_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i32m2_m)))
-vint32m2_t vnmsac(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i32m4)))
-vint32m4_t vnmsac(vint32m4_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i32m4_m)))
-vint32m4_t vnmsac(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i32m8)))
-vint32m8_t vnmsac(vint32m8_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i32m8_m)))
-vint32m8_t vnmsac(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i32mf2)))
-vint32mf2_t vnmsac(vint32mf2_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i32mf2_m)))
-vint32mf2_t vnmsac(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i64m1)))
-vint64m1_t vnmsac(vint64m1_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i64m1_m)))
-vint64m1_t vnmsac(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i64m2)))
-vint64m2_t vnmsac(vint64m2_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i64m2_m)))
-vint64m2_t vnmsac(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i64m4)))
-vint64m4_t vnmsac(vint64m4_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i64m4_m)))
-vint64m4_t vnmsac(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i64m8)))
-vint64m8_t vnmsac(vint64m8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_i64m8_m)))
-vint64m8_t vnmsac(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i32m1)))
-void vsuxei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i32m1_m)))
-void vsuxei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i32m2)))
-void vsuxei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i32m2_m)))
-void vsuxei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i32m4)))
-void vsuxei16(int32_t * op0, vuint16m2_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i32m4_m)))
-void vsuxei16(vbool8_t op0, int32_t * op1, vuint16m2_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i32m8)))
-void vsuxei16(int32_t * op0, vuint16m4_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i32m8_m)))
-void vsuxei16(vbool4_t op0, int32_t * op1, vuint16m4_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i32mf2)))
-void vsuxei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i32mf2_m)))
-void vsuxei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8m1)))
-vint8m1_t vnmsac(vint8m1_t op0, int8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8m1_m)))
-vint8m1_t vnmsac(vbool8_t op0, vint8m1_t op1, int8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8m2)))
-vint8m2_t vnmsac(vint8m2_t op0, int8_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8m2_m)))
-vint8m2_t vnmsac(vbool4_t op0, vint8m2_t op1, int8_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8m4)))
-vint8m4_t vnmsac(vint8m4_t op0, int8_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8m4_m)))
-vint8m4_t vnmsac(vbool2_t op0, vint8m4_t op1, int8_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8m8)))
-vint8m8_t vnmsac(vint8m8_t op0, int8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8m8_m)))
-vint8m8_t vnmsac(vbool1_t op0, vint8m8_t op1, int8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8mf2)))
-vint8mf2_t vnmsac(vint8mf2_t op0, int8_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8mf2_m)))
-vint8mf2_t vnmsac(vbool16_t op0, vint8mf2_t op1, int8_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8mf4)))
-vint8mf4_t vnmsac(vint8mf4_t op0, int8_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8mf4_m)))
-vint8mf4_t vnmsac(vbool32_t op0, vint8mf4_t op1, int8_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8mf8)))
-vint8mf8_t vnmsac(vint8mf8_t op0, int8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i8mf8_m)))
-vint8mf8_t vnmsac(vbool64_t op0, vint8mf8_t op1, int8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16m1)))
-vint16m1_t vnmsac(vint16m1_t op0, int16_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16m1_m)))
-vint16m1_t vnmsac(vbool16_t op0, vint16m1_t op1, int16_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16m2)))
-vint16m2_t vnmsac(vint16m2_t op0, int16_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16m2_m)))
-vint16m2_t vnmsac(vbool8_t op0, vint16m2_t op1, int16_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16m4)))
-vint16m4_t vnmsac(vint16m4_t op0, int16_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16m4_m)))
-vint16m4_t vnmsac(vbool4_t op0, vint16m4_t op1, int16_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16m8)))
-vint16m8_t vnmsac(vint16m8_t op0, int16_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16m8_m)))
-vint16m8_t vnmsac(vbool2_t op0, vint16m8_t op1, int16_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16mf2)))
-vint16mf2_t vnmsac(vint16mf2_t op0, int16_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16mf2_m)))
-vint16mf2_t vnmsac(vbool32_t op0, vint16mf2_t op1, int16_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16mf4)))
-vint16mf4_t vnmsac(vint16mf4_t op0, int16_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i16mf4_m)))
-vint16mf4_t vnmsac(vbool64_t op0, vint16mf4_t op1, int16_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i32m1)))
-vint32m1_t vnmsac(vint32m1_t op0, int32_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i32m1_m)))
-vint32m1_t vnmsac(vbool32_t op0, vint32m1_t op1, int32_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i32m2)))
-vint32m2_t vnmsac(vint32m2_t op0, int32_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i32m2_m)))
-vint32m2_t vnmsac(vbool16_t op0, vint32m2_t op1, int32_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i32m4)))
-vint32m4_t vnmsac(vint32m4_t op0, int32_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i32m4_m)))
-vint32m4_t vnmsac(vbool8_t op0, vint32m4_t op1, int32_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i32m8)))
-vint32m8_t vnmsac(vint32m8_t op0, int32_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i32m8_m)))
-vint32m8_t vnmsac(vbool4_t op0, vint32m8_t op1, int32_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i32mf2)))
-vint32mf2_t vnmsac(vint32mf2_t op0, int32_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i32mf2_m)))
-vint32mf2_t vnmsac(vbool64_t op0, vint32mf2_t op1, int32_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i64m1)))
-vint64m1_t vnmsac(vint64m1_t op0, int64_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i64m1_m)))
-vint64m1_t vnmsac(vbool64_t op0, vint64m1_t op1, int64_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i64m2)))
-vint64m2_t vnmsac(vint64m2_t op0, int64_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i64m2_m)))
-vint64m2_t vnmsac(vbool32_t op0, vint64m2_t op1, int64_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i64m4)))
-vint64m4_t vnmsac(vint64m4_t op0, int64_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i64m4_m)))
-vint64m4_t vnmsac(vbool16_t op0, vint64m4_t op1, int64_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i64m8)))
-vint64m8_t vnmsac(vint64m8_t op0, int64_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_i64m8_m)))
-vint64m8_t vnmsac(vbool8_t op0, vint64m8_t op1, int64_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8m1)))
-vuint8m1_t vnmsac(vuint8m1_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8m1_m)))
-vuint8m1_t vnmsac(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8m2)))
-vuint8m2_t vnmsac(vuint8m2_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8m2_m)))
-vuint8m2_t vnmsac(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8m4)))
-vuint8m4_t vnmsac(vuint8m4_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8m4_m)))
-vuint8m4_t vnmsac(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8m8)))
-vuint8m8_t vnmsac(vuint8m8_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8m8_m)))
-vuint8m8_t vnmsac(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8mf2)))
-vuint8mf2_t vnmsac(vuint8mf2_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8mf2_m)))
-vuint8mf2_t vnmsac(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8mf4)))
-vuint8mf4_t vnmsac(vuint8mf4_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8mf4_m)))
-vuint8mf4_t vnmsac(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8mf8)))
-vuint8mf8_t vnmsac(vuint8mf8_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u8mf8_m)))
-vuint8mf8_t vnmsac(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16m1)))
-vuint16m1_t vnmsac(vuint16m1_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16m1_m)))
-vuint16m1_t vnmsac(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16m2)))
-vuint16m2_t vnmsac(vuint16m2_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16m2_m)))
-vuint16m2_t vnmsac(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16m4)))
-vuint16m4_t vnmsac(vuint16m4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16m4_m)))
-vuint16m4_t vnmsac(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16m8)))
-vuint16m8_t vnmsac(vuint16m8_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16m8_m)))
-vuint16m8_t vnmsac(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16mf2)))
-vuint16mf2_t vnmsac(vuint16mf2_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16mf2_m)))
-vuint16mf2_t vnmsac(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16mf4)))
-vuint16mf4_t vnmsac(vuint16mf4_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u16mf4_m)))
-vuint16mf4_t vnmsac(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u32m1)))
-vuint32m1_t vnmsac(vuint32m1_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u32m1_m)))
-vuint32m1_t vnmsac(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u32m2)))
-vuint32m2_t vnmsac(vuint32m2_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u32m2_m)))
-vuint32m2_t vnmsac(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u32m4)))
-vuint32m4_t vnmsac(vuint32m4_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u32m4_m)))
-vuint32m4_t vnmsac(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u32m8)))
-vuint32m8_t vnmsac(vuint32m8_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u32m8_m)))
-vuint32m8_t vnmsac(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u32mf2)))
-vuint32mf2_t vnmsac(vuint32mf2_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u32mf2_m)))
-vuint32mf2_t vnmsac(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u64m1)))
-vuint64m1_t vnmsac(vuint64m1_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u64m1_m)))
-vuint64m1_t vnmsac(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u64m2)))
-vuint64m2_t vnmsac(vuint64m2_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u64m2_m)))
-vuint64m2_t vnmsac(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u64m4)))
-vuint64m4_t vnmsac(vuint64m4_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u64m4_m)))
-vuint64m4_t vnmsac(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u64m8)))
-vuint64m8_t vnmsac(vuint64m8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vv_u64m8_m)))
-vuint64m8_t vnmsac(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8m1)))
-vuint8m1_t vnmsac(vuint8m1_t op0, uint8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8m1_m)))
-vuint8m1_t vnmsac(vbool8_t op0, vuint8m1_t op1, uint8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8m2)))
-vuint8m2_t vnmsac(vuint8m2_t op0, uint8_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8m2_m)))
-vuint8m2_t vnmsac(vbool4_t op0, vuint8m2_t op1, uint8_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8m4)))
-vuint8m4_t vnmsac(vuint8m4_t op0, uint8_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8m4_m)))
-vuint8m4_t vnmsac(vbool2_t op0, vuint8m4_t op1, uint8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8m8)))
-vuint8m8_t vnmsac(vuint8m8_t op0, uint8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8m8_m)))
-vuint8m8_t vnmsac(vbool1_t op0, vuint8m8_t op1, uint8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8mf2)))
-vuint8mf2_t vnmsac(vuint8mf2_t op0, uint8_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8mf2_m)))
-vuint8mf2_t vnmsac(vbool16_t op0, vuint8mf2_t op1, uint8_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8mf4)))
-vuint8mf4_t vnmsac(vuint8mf4_t op0, uint8_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8mf4_m)))
-vuint8mf4_t vnmsac(vbool32_t op0, vuint8mf4_t op1, uint8_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8mf8)))
-vuint8mf8_t vnmsac(vuint8mf8_t op0, uint8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u8mf8_m)))
-vuint8mf8_t vnmsac(vbool64_t op0, vuint8mf8_t op1, uint8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16m1)))
-vuint16m1_t vnmsac(vuint16m1_t op0, uint16_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16m1_m)))
-vuint16m1_t vnmsac(vbool16_t op0, vuint16m1_t op1, uint16_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16m2)))
-vuint16m2_t vnmsac(vuint16m2_t op0, uint16_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16m2_m)))
-vuint16m2_t vnmsac(vbool8_t op0, vuint16m2_t op1, uint16_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16m4)))
-vuint16m4_t vnmsac(vuint16m4_t op0, uint16_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16m4_m)))
-vuint16m4_t vnmsac(vbool4_t op0, vuint16m4_t op1, uint16_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16m8)))
-vuint16m8_t vnmsac(vuint16m8_t op0, uint16_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16m8_m)))
-vuint16m8_t vnmsac(vbool2_t op0, vuint16m8_t op1, uint16_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16mf2)))
-vuint16mf2_t vnmsac(vuint16mf2_t op0, uint16_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16mf2_m)))
-vuint16mf2_t vnmsac(vbool32_t op0, vuint16mf2_t op1, uint16_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16mf4)))
-vuint16mf4_t vnmsac(vuint16mf4_t op0, uint16_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u16mf4_m)))
-vuint16mf4_t vnmsac(vbool64_t op0, vuint16mf4_t op1, uint16_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u32m1)))
-vuint32m1_t vnmsac(vuint32m1_t op0, uint32_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u32m1_m)))
-vuint32m1_t vnmsac(vbool32_t op0, vuint32m1_t op1, uint32_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u32m2)))
-vuint32m2_t vnmsac(vuint32m2_t op0, uint32_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u32m2_m)))
-vuint32m2_t vnmsac(vbool16_t op0, vuint32m2_t op1, uint32_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u32m4)))
-vuint32m4_t vnmsac(vuint32m4_t op0, uint32_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u32m4_m)))
-vuint32m4_t vnmsac(vbool8_t op0, vuint32m4_t op1, uint32_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u32m8)))
-vuint32m8_t vnmsac(vuint32m8_t op0, uint32_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u32m8_m)))
-vuint32m8_t vnmsac(vbool4_t op0, vuint32m8_t op1, uint32_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u32mf2)))
-vuint32mf2_t vnmsac(vuint32mf2_t op0, uint32_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u32mf2_m)))
-vuint32mf2_t vnmsac(vbool64_t op0, vuint32mf2_t op1, uint32_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u64m1)))
-vuint64m1_t vnmsac(vuint64m1_t op0, uint64_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u64m1_m)))
-vuint64m1_t vnmsac(vbool64_t op0, vuint64m1_t op1, uint64_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u64m2)))
-vuint64m2_t vnmsac(vuint64m2_t op0, uint64_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u64m2_m)))
-vuint64m2_t vnmsac(vbool32_t op0, vuint64m2_t op1, uint64_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u64m4)))
-vuint64m4_t vnmsac(vuint64m4_t op0, uint64_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u64m4_m)))
-vuint64m4_t vnmsac(vbool16_t op0, vuint64m4_t op1, uint64_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u64m8)))
-vuint64m8_t vnmsac(vuint64m8_t op0, uint64_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsac_vx_u64m8_m)))
-vuint64m8_t vnmsac(vbool8_t op0, vuint64m8_t op1, uint64_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8m1)))
-vint8m1_t vmadd(vint8m1_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8m1_m)))
-vint8m1_t vmadd(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8m2)))
-vint8m2_t vmadd(vint8m2_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8m2_m)))
-vint8m2_t vmadd(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8m4)))
-vint8m4_t vmadd(vint8m4_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8m4_m)))
-vint8m4_t vmadd(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8m8)))
-vint8m8_t vmadd(vint8m8_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8m8_m)))
-vint8m8_t vmadd(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8mf2)))
-vint8mf2_t vmadd(vint8mf2_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8mf2_m)))
-vint8mf2_t vmadd(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8mf4)))
-vint8mf4_t vmadd(vint8mf4_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8mf4_m)))
-vint8mf4_t vmadd(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8mf8)))
-vint8mf8_t vmadd(vint8mf8_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i8mf8_m)))
-vint8mf8_t vmadd(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16m1)))
-vint16m1_t vmadd(vint16m1_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16m1_m)))
-vint16m1_t vmadd(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16m2)))
-vint16m2_t vmadd(vint16m2_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16m2_m)))
-vint16m2_t vmadd(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16m4)))
-vint16m4_t vmadd(vint16m4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16m4_m)))
-vint16m4_t vmadd(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16m8)))
-vint16m8_t vmadd(vint16m8_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16m8_m)))
-vint16m8_t vmadd(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16mf2)))
-vint16mf2_t vmadd(vint16mf2_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16mf2_m)))
-vint16mf2_t vmadd(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16mf4)))
-vint16mf4_t vmadd(vint16mf4_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i16mf4_m)))
-vint16mf4_t vmadd(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i32m1)))
-vint32m1_t vmadd(vint32m1_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i32m1_m)))
-vint32m1_t vmadd(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i32m2)))
-vint32m2_t vmadd(vint32m2_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i32m2_m)))
-vint32m2_t vmadd(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i32m4)))
-vint32m4_t vmadd(vint32m4_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i32m4_m)))
-vint32m4_t vmadd(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i32m8)))
-vint32m8_t vmadd(vint32m8_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i32m8_m)))
-vint32m8_t vmadd(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i32mf2)))
-vint32mf2_t vmadd(vint32mf2_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i32mf2_m)))
-vint32mf2_t vmadd(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i64m1)))
-vint64m1_t vmadd(vint64m1_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i64m1_m)))
-vint64m1_t vmadd(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i64m2)))
-vint64m2_t vmadd(vint64m2_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i64m2_m)))
-vint64m2_t vmadd(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i64m4)))
-vint64m4_t vmadd(vint64m4_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i64m4_m)))
-vint64m4_t vmadd(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i64m8)))
-vint64m8_t vmadd(vint64m8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_i64m8_m)))
-vint64m8_t vmadd(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8m1)))
-vint8m1_t vmadd(vint8m1_t op0, int8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8m1_m)))
-vint8m1_t vmadd(vbool8_t op0, vint8m1_t op1, int8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8m2)))
-vint8m2_t vmadd(vint8m2_t op0, int8_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8m2_m)))
-vint8m2_t vmadd(vbool4_t op0, vint8m2_t op1, int8_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8m4)))
-vint8m4_t vmadd(vint8m4_t op0, int8_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8m4_m)))
-vint8m4_t vmadd(vbool2_t op0, vint8m4_t op1, int8_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8m8)))
-vint8m8_t vmadd(vint8m8_t op0, int8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8m8_m)))
-vint8m8_t vmadd(vbool1_t op0, vint8m8_t op1, int8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8mf2)))
-vint8mf2_t vmadd(vint8mf2_t op0, int8_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8mf2_m)))
-vint8mf2_t vmadd(vbool16_t op0, vint8mf2_t op1, int8_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8mf4)))
-vint8mf4_t vmadd(vint8mf4_t op0, int8_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8mf4_m)))
-vint8mf4_t vmadd(vbool32_t op0, vint8mf4_t op1, int8_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8mf8)))
-vint8mf8_t vmadd(vint8mf8_t op0, int8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i8mf8_m)))
-vint8mf8_t vmadd(vbool64_t op0, vint8mf8_t op1, int8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16m1)))
-vint16m1_t vmadd(vint16m1_t op0, int16_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16m1_m)))
-vint16m1_t vmadd(vbool16_t op0, vint16m1_t op1, int16_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16m2)))
-vint16m2_t vmadd(vint16m2_t op0, int16_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16m2_m)))
-vint16m2_t vmadd(vbool8_t op0, vint16m2_t op1, int16_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16m4)))
-vint16m4_t vmadd(vint16m4_t op0, int16_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16m4_m)))
-vint16m4_t vmadd(vbool4_t op0, vint16m4_t op1, int16_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16m8)))
-vint16m8_t vmadd(vint16m8_t op0, int16_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16m8_m)))
-vint16m8_t vmadd(vbool2_t op0, vint16m8_t op1, int16_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16mf2)))
-vint16mf2_t vmadd(vint16mf2_t op0, int16_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16mf2_m)))
-vint16mf2_t vmadd(vbool32_t op0, vint16mf2_t op1, int16_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16mf4)))
-vint16mf4_t vmadd(vint16mf4_t op0, int16_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i16mf4_m)))
-vint16mf4_t vmadd(vbool64_t op0, vint16mf4_t op1, int16_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i32m1)))
-vint32m1_t vmadd(vint32m1_t op0, int32_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i32m1_m)))
-vint32m1_t vmadd(vbool32_t op0, vint32m1_t op1, int32_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i32m2)))
-vint32m2_t vmadd(vint32m2_t op0, int32_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i32m2_m)))
-vint32m2_t vmadd(vbool16_t op0, vint32m2_t op1, int32_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i32m4)))
-vint32m4_t vmadd(vint32m4_t op0, int32_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i32m4_m)))
-vint32m4_t vmadd(vbool8_t op0, vint32m4_t op1, int32_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i32m8)))
-vint32m8_t vmadd(vint32m8_t op0, int32_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i32m8_m)))
-vint32m8_t vmadd(vbool4_t op0, vint32m8_t op1, int32_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i32mf2)))
-vint32mf2_t vmadd(vint32mf2_t op0, int32_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i32mf2_m)))
-vint32mf2_t vmadd(vbool64_t op0, vint32mf2_t op1, int32_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i64m1)))
-vint64m1_t vmadd(vint64m1_t op0, int64_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i64m1_m)))
-vint64m1_t vmadd(vbool64_t op0, vint64m1_t op1, int64_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i64m2)))
-vint64m2_t vmadd(vint64m2_t op0, int64_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i64m2_m)))
-vint64m2_t vmadd(vbool32_t op0, vint64m2_t op1, int64_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i64m4)))
-vint64m4_t vmadd(vint64m4_t op0, int64_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i64m4_m)))
-vint64m4_t vmadd(vbool16_t op0, vint64m4_t op1, int64_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i64m8)))
-vint64m8_t vmadd(vint64m8_t op0, int64_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_i64m8_m)))
-vint64m8_t vmadd(vbool8_t op0, vint64m8_t op1, int64_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8m1)))
-vuint8m1_t vmadd(vuint8m1_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8m1_m)))
-vuint8m1_t vmadd(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8m2)))
-vuint8m2_t vmadd(vuint8m2_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8m2_m)))
-vuint8m2_t vmadd(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8m4)))
-vuint8m4_t vmadd(vuint8m4_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8m4_m)))
-vuint8m4_t vmadd(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8m8)))
-vuint8m8_t vmadd(vuint8m8_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8m8_m)))
-vuint8m8_t vmadd(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8mf2)))
-vuint8mf2_t vmadd(vuint8mf2_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8mf2_m)))
-vuint8mf2_t vmadd(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8mf4)))
-vuint8mf4_t vmadd(vuint8mf4_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8mf4_m)))
-vuint8mf4_t vmadd(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8mf8)))
-vuint8mf8_t vmadd(vuint8mf8_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u8mf8_m)))
-vuint8mf8_t vmadd(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16m1)))
-vuint16m1_t vmadd(vuint16m1_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16m1_m)))
-vuint16m1_t vmadd(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16m2)))
-vuint16m2_t vmadd(vuint16m2_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16m2_m)))
-vuint16m2_t vmadd(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16m4)))
-vuint16m4_t vmadd(vuint16m4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16m4_m)))
-vuint16m4_t vmadd(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16m8)))
-vuint16m8_t vmadd(vuint16m8_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16m8_m)))
-vuint16m8_t vmadd(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16mf2)))
-vuint16mf2_t vmadd(vuint16mf2_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16mf2_m)))
-vuint16mf2_t vmadd(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16mf4)))
-vuint16mf4_t vmadd(vuint16mf4_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u16mf4_m)))
-vuint16mf4_t vmadd(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u32m1)))
-vuint32m1_t vmadd(vuint32m1_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u32m1_m)))
-vuint32m1_t vmadd(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u32m2)))
-vuint32m2_t vmadd(vuint32m2_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u32m2_m)))
-vuint32m2_t vmadd(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u32m4)))
-vuint32m4_t vmadd(vuint32m4_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u32m4_m)))
-vuint32m4_t vmadd(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u32m8)))
-vuint32m8_t vmadd(vuint32m8_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u32m8_m)))
-vuint32m8_t vmadd(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u32mf2)))
-vuint32mf2_t vmadd(vuint32mf2_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u32mf2_m)))
-vuint32mf2_t vmadd(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u64m1)))
-vuint64m1_t vmadd(vuint64m1_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u64m1_m)))
-vuint64m1_t vmadd(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u64m2)))
-vuint64m2_t vmadd(vuint64m2_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u64m2_m)))
-vuint64m2_t vmadd(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u64m4)))
-vuint64m4_t vmadd(vuint64m4_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u64m4_m)))
-vuint64m4_t vmadd(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u64m8)))
-vuint64m8_t vmadd(vuint64m8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vv_u64m8_m)))
-vuint64m8_t vmadd(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8m1)))
-vuint8m1_t vmadd(vuint8m1_t op0, uint8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8m1_m)))
-vuint8m1_t vmadd(vbool8_t op0, vuint8m1_t op1, uint8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8m2)))
-vuint8m2_t vmadd(vuint8m2_t op0, uint8_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8m2_m)))
-vuint8m2_t vmadd(vbool4_t op0, vuint8m2_t op1, uint8_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8m4)))
-vuint8m4_t vmadd(vuint8m4_t op0, uint8_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8m4_m)))
-vuint8m4_t vmadd(vbool2_t op0, vuint8m4_t op1, uint8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8m8)))
-vuint8m8_t vmadd(vuint8m8_t op0, uint8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8m8_m)))
-vuint8m8_t vmadd(vbool1_t op0, vuint8m8_t op1, uint8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8mf2)))
-vuint8mf2_t vmadd(vuint8mf2_t op0, uint8_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8mf2_m)))
-vuint8mf2_t vmadd(vbool16_t op0, vuint8mf2_t op1, uint8_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8mf4)))
-vuint8mf4_t vmadd(vuint8mf4_t op0, uint8_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8mf4_m)))
-vuint8mf4_t vmadd(vbool32_t op0, vuint8mf4_t op1, uint8_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8mf8)))
-vuint8mf8_t vmadd(vuint8mf8_t op0, uint8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u8mf8_m)))
-vuint8mf8_t vmadd(vbool64_t op0, vuint8mf8_t op1, uint8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16m1)))
-vuint16m1_t vmadd(vuint16m1_t op0, uint16_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16m1_m)))
-vuint16m1_t vmadd(vbool16_t op0, vuint16m1_t op1, uint16_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16m2)))
-vuint16m2_t vmadd(vuint16m2_t op0, uint16_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16m2_m)))
-vuint16m2_t vmadd(vbool8_t op0, vuint16m2_t op1, uint16_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16m4)))
-vuint16m4_t vmadd(vuint16m4_t op0, uint16_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16m4_m)))
-vuint16m4_t vmadd(vbool4_t op0, vuint16m4_t op1, uint16_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16m8)))
-vuint16m8_t vmadd(vuint16m8_t op0, uint16_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16m8_m)))
-vuint16m8_t vmadd(vbool2_t op0, vuint16m8_t op1, uint16_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16mf2)))
-vuint16mf2_t vmadd(vuint16mf2_t op0, uint16_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16mf2_m)))
-vuint16mf2_t vmadd(vbool32_t op0, vuint16mf2_t op1, uint16_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16mf4)))
-vuint16mf4_t vmadd(vuint16mf4_t op0, uint16_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u16mf4_m)))
-vuint16mf4_t vmadd(vbool64_t op0, vuint16mf4_t op1, uint16_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u32m1)))
-vuint32m1_t vmadd(vuint32m1_t op0, uint32_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u32m1_m)))
-vuint32m1_t vmadd(vbool32_t op0, vuint32m1_t op1, uint32_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u32m2)))
-vuint32m2_t vmadd(vuint32m2_t op0, uint32_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u32m2_m)))
-vuint32m2_t vmadd(vbool16_t op0, vuint32m2_t op1, uint32_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u32m4)))
-vuint32m4_t vmadd(vuint32m4_t op0, uint32_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u32m4_m)))
-vuint32m4_t vmadd(vbool8_t op0, vuint32m4_t op1, uint32_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u32m8)))
-vuint32m8_t vmadd(vuint32m8_t op0, uint32_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u32m8_m)))
-vuint32m8_t vmadd(vbool4_t op0, vuint32m8_t op1, uint32_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u32mf2)))
-vuint32mf2_t vmadd(vuint32mf2_t op0, uint32_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u32mf2_m)))
-vuint32mf2_t vmadd(vbool64_t op0, vuint32mf2_t op1, uint32_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u64m1)))
-vuint64m1_t vmadd(vuint64m1_t op0, uint64_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u64m1_m)))
-vuint64m1_t vmadd(vbool64_t op0, vuint64m1_t op1, uint64_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u64m2)))
-vuint64m2_t vmadd(vuint64m2_t op0, uint64_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u64m2_m)))
-vuint64m2_t vmadd(vbool32_t op0, vuint64m2_t op1, uint64_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u64m4)))
-vuint64m4_t vmadd(vuint64m4_t op0, uint64_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u64m4_m)))
-vuint64m4_t vmadd(vbool16_t op0, vuint64m4_t op1, uint64_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u64m8)))
-vuint64m8_t vmadd(vuint64m8_t op0, uint64_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmadd_vx_u64m8_m)))
-vuint64m8_t vmadd(vbool8_t op0, vuint64m8_t op1, uint64_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8m1)))
-vint8m1_t vnmsub(vint8m1_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8m1_m)))
-vint8m1_t vnmsub(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8m2)))
-vint8m2_t vnmsub(vint8m2_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8m2_m)))
-vint8m2_t vnmsub(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8m4)))
-vint8m4_t vnmsub(vint8m4_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8m4_m)))
-vint8m4_t vnmsub(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8m8)))
-vint8m8_t vnmsub(vint8m8_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8m8_m)))
-vint8m8_t vnmsub(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8mf2)))
-vint8mf2_t vnmsub(vint8mf2_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8mf2_m)))
-vint8mf2_t vnmsub(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8mf4)))
-vint8mf4_t vnmsub(vint8mf4_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8mf4_m)))
-vint8mf4_t vnmsub(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8mf8)))
-vint8mf8_t vnmsub(vint8mf8_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i8mf8_m)))
-vint8mf8_t vnmsub(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16m1)))
-vint16m1_t vnmsub(vint16m1_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16m1_m)))
-vint16m1_t vnmsub(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16m2)))
-vint16m2_t vnmsub(vint16m2_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16m2_m)))
-vint16m2_t vnmsub(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16m4)))
-vint16m4_t vnmsub(vint16m4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16m4_m)))
-vint16m4_t vnmsub(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16m8)))
-vint16m8_t vnmsub(vint16m8_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16m8_m)))
-vint16m8_t vnmsub(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16mf2)))
-vint16mf2_t vnmsub(vint16mf2_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16mf2_m)))
-vint16mf2_t vnmsub(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16mf4)))
-vint16mf4_t vnmsub(vint16mf4_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i16mf4_m)))
-vint16mf4_t vnmsub(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i32m1)))
-vint32m1_t vnmsub(vint32m1_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i32m1_m)))
-vint32m1_t vnmsub(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i32m2)))
-vint32m2_t vnmsub(vint32m2_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i32m2_m)))
-vint32m2_t vnmsub(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i32m4)))
-vint32m4_t vnmsub(vint32m4_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i32m4_m)))
-vint32m4_t vnmsub(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i32m8)))
-vint32m8_t vnmsub(vint32m8_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i32m8_m)))
-vint32m8_t vnmsub(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i32mf2)))
-vint32mf2_t vnmsub(vint32mf2_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i32mf2_m)))
-vint32mf2_t vnmsub(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i64m1)))
-vint64m1_t vnmsub(vint64m1_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i64m1_m)))
-vint64m1_t vnmsub(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i64m2)))
-vint64m2_t vnmsub(vint64m2_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i64m2_m)))
-vint64m2_t vnmsub(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i64m4)))
-vint64m4_t vnmsub(vint64m4_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i64m4_m)))
-vint64m4_t vnmsub(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i64m8)))
-vint64m8_t vnmsub(vint64m8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_i64m8_m)))
-vint64m8_t vnmsub(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8m1)))
-vint8m1_t vnmsub(vint8m1_t op0, int8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8m1_m)))
-vint8m1_t vnmsub(vbool8_t op0, vint8m1_t op1, int8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8m2)))
-vint8m2_t vnmsub(vint8m2_t op0, int8_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8m2_m)))
-vint8m2_t vnmsub(vbool4_t op0, vint8m2_t op1, int8_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8m4)))
-vint8m4_t vnmsub(vint8m4_t op0, int8_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8m4_m)))
-vint8m4_t vnmsub(vbool2_t op0, vint8m4_t op1, int8_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8m8)))
-vint8m8_t vnmsub(vint8m8_t op0, int8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8m8_m)))
-vint8m8_t vnmsub(vbool1_t op0, vint8m8_t op1, int8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8mf2)))
-vint8mf2_t vnmsub(vint8mf2_t op0, int8_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8mf2_m)))
-vint8mf2_t vnmsub(vbool16_t op0, vint8mf2_t op1, int8_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8mf4)))
-vint8mf4_t vnmsub(vint8mf4_t op0, int8_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8mf4_m)))
-vint8mf4_t vnmsub(vbool32_t op0, vint8mf4_t op1, int8_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8mf8)))
-vint8mf8_t vnmsub(vint8mf8_t op0, int8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i8mf8_m)))
-vint8mf8_t vnmsub(vbool64_t op0, vint8mf8_t op1, int8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16m1)))
-vint16m1_t vnmsub(vint16m1_t op0, int16_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16m1_m)))
-vint16m1_t vnmsub(vbool16_t op0, vint16m1_t op1, int16_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16m2)))
-vint16m2_t vnmsub(vint16m2_t op0, int16_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16m2_m)))
-vint16m2_t vnmsub(vbool8_t op0, vint16m2_t op1, int16_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16m4)))
-vint16m4_t vnmsub(vint16m4_t op0, int16_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16m4_m)))
-vint16m4_t vnmsub(vbool4_t op0, vint16m4_t op1, int16_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16m8)))
-vint16m8_t vnmsub(vint16m8_t op0, int16_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16m8_m)))
-vint16m8_t vnmsub(vbool2_t op0, vint16m8_t op1, int16_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16mf2)))
-vint16mf2_t vnmsub(vint16mf2_t op0, int16_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16mf2_m)))
-vint16mf2_t vnmsub(vbool32_t op0, vint16mf2_t op1, int16_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16mf4)))
-vint16mf4_t vnmsub(vint16mf4_t op0, int16_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i16mf4_m)))
-vint16mf4_t vnmsub(vbool64_t op0, vint16mf4_t op1, int16_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i32m1)))
-vint32m1_t vnmsub(vint32m1_t op0, int32_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i32m1_m)))
-vint32m1_t vnmsub(vbool32_t op0, vint32m1_t op1, int32_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i32m2)))
-vint32m2_t vnmsub(vint32m2_t op0, int32_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i32m2_m)))
-vint32m2_t vnmsub(vbool16_t op0, vint32m2_t op1, int32_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i32m4)))
-vint32m4_t vnmsub(vint32m4_t op0, int32_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i32m4_m)))
-vint32m4_t vnmsub(vbool8_t op0, vint32m4_t op1, int32_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i32m8)))
-vint32m8_t vnmsub(vint32m8_t op0, int32_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i32m8_m)))
-vint32m8_t vnmsub(vbool4_t op0, vint32m8_t op1, int32_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i32mf2)))
-vint32mf2_t vnmsub(vint32mf2_t op0, int32_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i32mf2_m)))
-vint32mf2_t vnmsub(vbool64_t op0, vint32mf2_t op1, int32_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i64m1)))
-vint64m1_t vnmsub(vint64m1_t op0, int64_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i64m1_m)))
-vint64m1_t vnmsub(vbool64_t op0, vint64m1_t op1, int64_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i64m2)))
-vint64m2_t vnmsub(vint64m2_t op0, int64_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i64m2_m)))
-vint64m2_t vnmsub(vbool32_t op0, vint64m2_t op1, int64_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i64m4)))
-vint64m4_t vnmsub(vint64m4_t op0, int64_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i64m4_m)))
-vint64m4_t vnmsub(vbool16_t op0, vint64m4_t op1, int64_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i64m8)))
-vint64m8_t vnmsub(vint64m8_t op0, int64_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_i64m8_m)))
-vint64m8_t vnmsub(vbool8_t op0, vint64m8_t op1, int64_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8m1)))
-vuint8m1_t vnmsub(vuint8m1_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8m1_m)))
-vuint8m1_t vnmsub(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8m2)))
-vuint8m2_t vnmsub(vuint8m2_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8m2_m)))
-vuint8m2_t vnmsub(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8m4)))
-vuint8m4_t vnmsub(vuint8m4_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8m4_m)))
-vuint8m4_t vnmsub(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8m8)))
-vuint8m8_t vnmsub(vuint8m8_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8m8_m)))
-vuint8m8_t vnmsub(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8mf2)))
-vuint8mf2_t vnmsub(vuint8mf2_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8mf2_m)))
-vuint8mf2_t vnmsub(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8mf4)))
-vuint8mf4_t vnmsub(vuint8mf4_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8mf4_m)))
-vuint8mf4_t vnmsub(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8mf8)))
-vuint8mf8_t vnmsub(vuint8mf8_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u8mf8_m)))
-vuint8mf8_t vnmsub(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16m1)))
-vuint16m1_t vnmsub(vuint16m1_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16m1_m)))
-vuint16m1_t vnmsub(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16m2)))
-vuint16m2_t vnmsub(vuint16m2_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16m2_m)))
-vuint16m2_t vnmsub(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16m4)))
-vuint16m4_t vnmsub(vuint16m4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16m4_m)))
-vuint16m4_t vnmsub(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16m8)))
-vuint16m8_t vnmsub(vuint16m8_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16m8_m)))
-vuint16m8_t vnmsub(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16mf2)))
-vuint16mf2_t vnmsub(vuint16mf2_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16mf2_m)))
-vuint16mf2_t vnmsub(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16mf4)))
-vuint16mf4_t vnmsub(vuint16mf4_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u16mf4_m)))
-vuint16mf4_t vnmsub(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u32m1)))
-vuint32m1_t vnmsub(vuint32m1_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u32m1_m)))
-vuint32m1_t vnmsub(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u32m2)))
-vuint32m2_t vnmsub(vuint32m2_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u32m2_m)))
-vuint32m2_t vnmsub(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u32m4)))
-vuint32m4_t vnmsub(vuint32m4_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u32m4_m)))
-vuint32m4_t vnmsub(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u32m8)))
-vuint32m8_t vnmsub(vuint32m8_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u32m8_m)))
-vuint32m8_t vnmsub(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u32mf2)))
-vuint32mf2_t vnmsub(vuint32mf2_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u32mf2_m)))
-vuint32mf2_t vnmsub(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u64m1)))
-vuint64m1_t vnmsub(vuint64m1_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u64m1_m)))
-vuint64m1_t vnmsub(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u64m2)))
-vuint64m2_t vnmsub(vuint64m2_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u64m2_m)))
-vuint64m2_t vnmsub(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u64m4)))
-vuint64m4_t vnmsub(vuint64m4_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u64m4_m)))
-vuint64m4_t vnmsub(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u64m8)))
-vuint64m8_t vnmsub(vuint64m8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vv_u64m8_m)))
-vuint64m8_t vnmsub(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u32m1)))
-void vsuxei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u32m1_m)))
-void vsuxei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u32m2)))
-void vsuxei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u32m2_m)))
-void vsuxei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u32m4)))
-void vsuxei16(uint32_t * op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u32m4_m)))
-void vsuxei16(vbool8_t op0, uint32_t * op1, vuint16m2_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u32m8)))
-void vsuxei16(uint32_t * op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u32m8_m)))
-void vsuxei16(vbool4_t op0, uint32_t * op1, vuint16m4_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u32mf2)))
-void vsuxei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u32mf2_m)))
-void vsuxei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8m1)))
-vuint8m1_t vnmsub(vuint8m1_t op0, uint8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8m1_m)))
-vuint8m1_t vnmsub(vbool8_t op0, vuint8m1_t op1, uint8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8m2)))
-vuint8m2_t vnmsub(vuint8m2_t op0, uint8_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8m2_m)))
-vuint8m2_t vnmsub(vbool4_t op0, vuint8m2_t op1, uint8_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8m4)))
-vuint8m4_t vnmsub(vuint8m4_t op0, uint8_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8m4_m)))
-vuint8m4_t vnmsub(vbool2_t op0, vuint8m4_t op1, uint8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8m8)))
-vuint8m8_t vnmsub(vuint8m8_t op0, uint8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8m8_m)))
-vuint8m8_t vnmsub(vbool1_t op0, vuint8m8_t op1, uint8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8mf2)))
-vuint8mf2_t vnmsub(vuint8mf2_t op0, uint8_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8mf2_m)))
-vuint8mf2_t vnmsub(vbool16_t op0, vuint8mf2_t op1, uint8_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8mf4)))
-vuint8mf4_t vnmsub(vuint8mf4_t op0, uint8_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8mf4_m)))
-vuint8mf4_t vnmsub(vbool32_t op0, vuint8mf4_t op1, uint8_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8mf8)))
-vuint8mf8_t vnmsub(vuint8mf8_t op0, uint8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u8mf8_m)))
-vuint8mf8_t vnmsub(vbool64_t op0, vuint8mf8_t op1, uint8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16m1)))
-vuint16m1_t vnmsub(vuint16m1_t op0, uint16_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16m1_m)))
-vuint16m1_t vnmsub(vbool16_t op0, vuint16m1_t op1, uint16_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16m2)))
-vuint16m2_t vnmsub(vuint16m2_t op0, uint16_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16m2_m)))
-vuint16m2_t vnmsub(vbool8_t op0, vuint16m2_t op1, uint16_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16m4)))
-vuint16m4_t vnmsub(vuint16m4_t op0, uint16_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16m4_m)))
-vuint16m4_t vnmsub(vbool4_t op0, vuint16m4_t op1, uint16_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16m8)))
-vuint16m8_t vnmsub(vuint16m8_t op0, uint16_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16m8_m)))
-vuint16m8_t vnmsub(vbool2_t op0, vuint16m8_t op1, uint16_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16mf2)))
-vuint16mf2_t vnmsub(vuint16mf2_t op0, uint16_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16mf2_m)))
-vuint16mf2_t vnmsub(vbool32_t op0, vuint16mf2_t op1, uint16_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16mf4)))
-vuint16mf4_t vnmsub(vuint16mf4_t op0, uint16_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u16mf4_m)))
-vuint16mf4_t vnmsub(vbool64_t op0, vuint16mf4_t op1, uint16_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u32m1)))
-vuint32m1_t vnmsub(vuint32m1_t op0, uint32_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u32m1_m)))
-vuint32m1_t vnmsub(vbool32_t op0, vuint32m1_t op1, uint32_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u32m2)))
-vuint32m2_t vnmsub(vuint32m2_t op0, uint32_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u32m2_m)))
-vuint32m2_t vnmsub(vbool16_t op0, vuint32m2_t op1, uint32_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u32m4)))
-vuint32m4_t vnmsub(vuint32m4_t op0, uint32_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u32m4_m)))
-vuint32m4_t vnmsub(vbool8_t op0, vuint32m4_t op1, uint32_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u32m8)))
-vuint32m8_t vnmsub(vuint32m8_t op0, uint32_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u32m8_m)))
-vuint32m8_t vnmsub(vbool4_t op0, vuint32m8_t op1, uint32_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u32mf2)))
-vuint32mf2_t vnmsub(vuint32mf2_t op0, uint32_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u32mf2_m)))
-vuint32mf2_t vnmsub(vbool64_t op0, vuint32mf2_t op1, uint32_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u64m1)))
-vuint64m1_t vnmsub(vuint64m1_t op0, uint64_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u64m1_m)))
-vuint64m1_t vnmsub(vbool64_t op0, vuint64m1_t op1, uint64_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u64m2)))
-vuint64m2_t vnmsub(vuint64m2_t op0, uint64_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u64m2_m)))
-vuint64m2_t vnmsub(vbool32_t op0, vuint64m2_t op1, uint64_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u64m4)))
-vuint64m4_t vnmsub(vuint64m4_t op0, uint64_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u64m4_m)))
-vuint64m4_t vnmsub(vbool16_t op0, vuint64m4_t op1, uint64_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u64m8)))
-vuint64m8_t vnmsub(vuint64m8_t op0, uint64_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnmsub_vx_u64m8_m)))
-vuint64m8_t vnmsub(vbool8_t op0, vuint64m8_t op1, uint64_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16mf4)))
-vuint16mf4_t vwmaccu(vuint16mf4_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16mf4_m)))
-vuint16mf4_t vwmaccu(vbool64_t op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16mf2)))
-vuint16mf2_t vwmaccu(vuint16mf2_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16mf2_m)))
-vuint16mf2_t vwmaccu(vbool32_t op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16m1)))
-vuint16m1_t vwmaccu(vuint16m1_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16m1_m)))
-vuint16m1_t vwmaccu(vbool16_t op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16m2)))
-vuint16m2_t vwmaccu(vuint16m2_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16m2_m)))
-vuint16m2_t vwmaccu(vbool8_t op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16m4)))
-vuint16m4_t vwmaccu(vuint16m4_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16m4_m)))
-vuint16m4_t vwmaccu(vbool4_t op0, vuint16m4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16m8)))
-vuint16m8_t vwmaccu(vuint16m8_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u16m8_m)))
-vuint16m8_t vwmaccu(vbool2_t op0, vuint16m8_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u32mf2)))
-vuint32mf2_t vwmaccu(vuint32mf2_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u32mf2_m)))
-vuint32mf2_t vwmaccu(vbool64_t op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u32m1)))
-vuint32m1_t vwmaccu(vuint32m1_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u32m1_m)))
-vuint32m1_t vwmaccu(vbool32_t op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u32m2)))
-vuint32m2_t vwmaccu(vuint32m2_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u32m2_m)))
-vuint32m2_t vwmaccu(vbool16_t op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u32m4)))
-vuint32m4_t vwmaccu(vuint32m4_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u32m4_m)))
-vuint32m4_t vwmaccu(vbool8_t op0, vuint32m4_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u32m8)))
-vuint32m8_t vwmaccu(vuint32m8_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u32m8_m)))
-vuint32m8_t vwmaccu(vbool4_t op0, vuint32m8_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u64m1)))
-vuint64m1_t vwmaccu(vuint64m1_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u64m1_m)))
-vuint64m1_t vwmaccu(vbool64_t op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u64m2)))
-vuint64m2_t vwmaccu(vuint64m2_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u64m2_m)))
-vuint64m2_t vwmaccu(vbool32_t op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u64m4)))
-vuint64m4_t vwmaccu(vuint64m4_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u64m4_m)))
-vuint64m4_t vwmaccu(vbool16_t op0, vuint64m4_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u64m8)))
-vuint64m8_t vwmaccu(vuint64m8_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vv_u64m8_m)))
-vuint64m8_t vwmaccu(vbool8_t op0, vuint64m8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16mf4)))
-vuint16mf4_t vwmaccu(vuint16mf4_t op0, uint8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16mf4_m)))
-vuint16mf4_t vwmaccu(vbool64_t op0, vuint16mf4_t op1, uint8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16mf2)))
-vuint16mf2_t vwmaccu(vuint16mf2_t op0, uint8_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16mf2_m)))
-vuint16mf2_t vwmaccu(vbool32_t op0, vuint16mf2_t op1, uint8_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16m1)))
-vuint16m1_t vwmaccu(vuint16m1_t op0, uint8_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16m1_m)))
-vuint16m1_t vwmaccu(vbool16_t op0, vuint16m1_t op1, uint8_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16m2)))
-vuint16m2_t vwmaccu(vuint16m2_t op0, uint8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16m2_m)))
-vuint16m2_t vwmaccu(vbool8_t op0, vuint16m2_t op1, uint8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16m4)))
-vuint16m4_t vwmaccu(vuint16m4_t op0, uint8_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16m4_m)))
-vuint16m4_t vwmaccu(vbool4_t op0, vuint16m4_t op1, uint8_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16m8)))
-vuint16m8_t vwmaccu(vuint16m8_t op0, uint8_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u16m8_m)))
-vuint16m8_t vwmaccu(vbool2_t op0, vuint16m8_t op1, uint8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u32mf2)))
-vuint32mf2_t vwmaccu(vuint32mf2_t op0, uint16_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u32mf2_m)))
-vuint32mf2_t vwmaccu(vbool64_t op0, vuint32mf2_t op1, uint16_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u32m1)))
-vuint32m1_t vwmaccu(vuint32m1_t op0, uint16_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u32m1_m)))
-vuint32m1_t vwmaccu(vbool32_t op0, vuint32m1_t op1, uint16_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u32m2)))
-vuint32m2_t vwmaccu(vuint32m2_t op0, uint16_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u32m2_m)))
-vuint32m2_t vwmaccu(vbool16_t op0, vuint32m2_t op1, uint16_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u32m4)))
-vuint32m4_t vwmaccu(vuint32m4_t op0, uint16_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u32m4_m)))
-vuint32m4_t vwmaccu(vbool8_t op0, vuint32m4_t op1, uint16_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u32m8)))
-vuint32m8_t vwmaccu(vuint32m8_t op0, uint16_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u32m8_m)))
-vuint32m8_t vwmaccu(vbool4_t op0, vuint32m8_t op1, uint16_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u64m1)))
-vuint64m1_t vwmaccu(vuint64m1_t op0, uint32_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u64m1_m)))
-vuint64m1_t vwmaccu(vbool64_t op0, vuint64m1_t op1, uint32_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u64m2)))
-vuint64m2_t vwmaccu(vuint64m2_t op0, uint32_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u64m2_m)))
-vuint64m2_t vwmaccu(vbool32_t op0, vuint64m2_t op1, uint32_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u64m4)))
-vuint64m4_t vwmaccu(vuint64m4_t op0, uint32_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u64m4_m)))
-vuint64m4_t vwmaccu(vbool16_t op0, vuint64m4_t op1, uint32_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u64m8)))
-vuint64m8_t vwmaccu(vuint64m8_t op0, uint32_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccu_vx_u64m8_m)))
-vuint64m8_t vwmaccu(vbool8_t op0, vuint64m8_t op1, uint32_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16mf4)))
-vint16mf4_t vwmacc(vint16mf4_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16mf4_m)))
-vint16mf4_t vwmacc(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16mf2)))
-vint16mf2_t vwmacc(vint16mf2_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16mf2_m)))
-vint16mf2_t vwmacc(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16m1)))
-vint16m1_t vwmacc(vint16m1_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16m1_m)))
-vint16m1_t vwmacc(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16m2)))
-vint16m2_t vwmacc(vint16m2_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16m2_m)))
-vint16m2_t vwmacc(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16m4)))
-vint16m4_t vwmacc(vint16m4_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16m4_m)))
-vint16m4_t vwmacc(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16m8)))
-vint16m8_t vwmacc(vint16m8_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i16m8_m)))
-vint16m8_t vwmacc(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i32mf2)))
-vint32mf2_t vwmacc(vint32mf2_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i32mf2_m)))
-vint32mf2_t vwmacc(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i32m1)))
-vint32m1_t vwmacc(vint32m1_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i32m1_m)))
-vint32m1_t vwmacc(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i32m2)))
-vint32m2_t vwmacc(vint32m2_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i32m2_m)))
-vint32m2_t vwmacc(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i32m4)))
-vint32m4_t vwmacc(vint32m4_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i32m4_m)))
-vint32m4_t vwmacc(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i32m8)))
-vint32m8_t vwmacc(vint32m8_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i32m8_m)))
-vint32m8_t vwmacc(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i64m1)))
-vint64m1_t vwmacc(vint64m1_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i64m1_m)))
-vint64m1_t vwmacc(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i64m2)))
-vint64m2_t vwmacc(vint64m2_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i64m2_m)))
-vint64m2_t vwmacc(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i64m4)))
-vint64m4_t vwmacc(vint64m4_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i64m4_m)))
-vint64m4_t vwmacc(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i64m8)))
-vint64m8_t vwmacc(vint64m8_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vv_i64m8_m)))
-vint64m8_t vwmacc(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16mf4)))
-vint16mf4_t vwmacc(vint16mf4_t op0, int8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16mf4_m)))
-vint16mf4_t vwmacc(vbool64_t op0, vint16mf4_t op1, int8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16mf2)))
-vint16mf2_t vwmacc(vint16mf2_t op0, int8_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16mf2_m)))
-vint16mf2_t vwmacc(vbool32_t op0, vint16mf2_t op1, int8_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16m1)))
-vint16m1_t vwmacc(vint16m1_t op0, int8_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16m1_m)))
-vint16m1_t vwmacc(vbool16_t op0, vint16m1_t op1, int8_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16m2)))
-vint16m2_t vwmacc(vint16m2_t op0, int8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16m2_m)))
-vint16m2_t vwmacc(vbool8_t op0, vint16m2_t op1, int8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16m4)))
-vint16m4_t vwmacc(vint16m4_t op0, int8_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16m4_m)))
-vint16m4_t vwmacc(vbool4_t op0, vint16m4_t op1, int8_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16m8)))
-vint16m8_t vwmacc(vint16m8_t op0, int8_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i16m8_m)))
-vint16m8_t vwmacc(vbool2_t op0, vint16m8_t op1, int8_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i32mf2)))
-vint32mf2_t vwmacc(vint32mf2_t op0, int16_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i32mf2_m)))
-vint32mf2_t vwmacc(vbool64_t op0, vint32mf2_t op1, int16_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i32m1)))
-vint32m1_t vwmacc(vint32m1_t op0, int16_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i32m1_m)))
-vint32m1_t vwmacc(vbool32_t op0, vint32m1_t op1, int16_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i32m2)))
-vint32m2_t vwmacc(vint32m2_t op0, int16_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i32m2_m)))
-vint32m2_t vwmacc(vbool16_t op0, vint32m2_t op1, int16_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i32m4)))
-vint32m4_t vwmacc(vint32m4_t op0, int16_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i32m4_m)))
-vint32m4_t vwmacc(vbool8_t op0, vint32m4_t op1, int16_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i32m8)))
-vint32m8_t vwmacc(vint32m8_t op0, int16_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i32m8_m)))
-vint32m8_t vwmacc(vbool4_t op0, vint32m8_t op1, int16_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i64m1)))
-vint64m1_t vwmacc(vint64m1_t op0, int32_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i64m1_m)))
-vint64m1_t vwmacc(vbool64_t op0, vint64m1_t op1, int32_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i64m2)))
-vint64m2_t vwmacc(vint64m2_t op0, int32_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i64m2_m)))
-vint64m2_t vwmacc(vbool32_t op0, vint64m2_t op1, int32_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i64m4)))
-vint64m4_t vwmacc(vint64m4_t op0, int32_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i64m4_m)))
-vint64m4_t vwmacc(vbool16_t op0, vint64m4_t op1, int32_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i64m8)))
-vint64m8_t vwmacc(vint64m8_t op0, int32_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmacc_vx_i64m8_m)))
-vint64m8_t vwmacc(vbool8_t op0, vint64m8_t op1, int32_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16mf4)))
-vint16mf4_t vwmaccsu(vint16mf4_t op0, vint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16mf4_m)))
-vint16mf4_t vwmaccsu(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16mf2)))
-vint16mf2_t vwmaccsu(vint16mf2_t op0, vint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16mf2_m)))
-vint16mf2_t vwmaccsu(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16m1)))
-vint16m1_t vwmaccsu(vint16m1_t op0, vint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16m1_m)))
-vint16m1_t vwmaccsu(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16m2)))
-vint16m2_t vwmaccsu(vint16m2_t op0, vint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16m2_m)))
-vint16m2_t vwmaccsu(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16m4)))
-vint16m4_t vwmaccsu(vint16m4_t op0, vint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16m4_m)))
-vint16m4_t vwmaccsu(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16m8)))
-vint16m8_t vwmaccsu(vint16m8_t op0, vint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i16m8_m)))
-vint16m8_t vwmaccsu(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i32mf2)))
-vint32mf2_t vwmaccsu(vint32mf2_t op0, vint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i32mf2_m)))
-vint32mf2_t vwmaccsu(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i32m1)))
-vint32m1_t vwmaccsu(vint32m1_t op0, vint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i32m1_m)))
-vint32m1_t vwmaccsu(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i32m2)))
-vint32m2_t vwmaccsu(vint32m2_t op0, vint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i32m2_m)))
-vint32m2_t vwmaccsu(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i32m4)))
-vint32m4_t vwmaccsu(vint32m4_t op0, vint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i32m4_m)))
-vint32m4_t vwmaccsu(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i32m8)))
-vint32m8_t vwmaccsu(vint32m8_t op0, vint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i32m8_m)))
-vint32m8_t vwmaccsu(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i64m1)))
-vint64m1_t vwmaccsu(vint64m1_t op0, vint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i64m1_m)))
-vint64m1_t vwmaccsu(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i64m2)))
-vint64m2_t vwmaccsu(vint64m2_t op0, vint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i64m2_m)))
-vint64m2_t vwmaccsu(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i64m4)))
-vint64m4_t vwmaccsu(vint64m4_t op0, vint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i64m4_m)))
-vint64m4_t vwmaccsu(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i64m8)))
-vint64m8_t vwmaccsu(vint64m8_t op0, vint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vv_i64m8_m)))
-vint64m8_t vwmaccsu(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16mf4)))
-vint16mf4_t vwmaccsu(vint16mf4_t op0, int8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16mf4_m)))
-vint16mf4_t vwmaccsu(vbool64_t op0, vint16mf4_t op1, int8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16mf2)))
-vint16mf2_t vwmaccsu(vint16mf2_t op0, int8_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16mf2_m)))
-vint16mf2_t vwmaccsu(vbool32_t op0, vint16mf2_t op1, int8_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16m1)))
-vint16m1_t vwmaccsu(vint16m1_t op0, int8_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16m1_m)))
-vint16m1_t vwmaccsu(vbool16_t op0, vint16m1_t op1, int8_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16m2)))
-vint16m2_t vwmaccsu(vint16m2_t op0, int8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16m2_m)))
-vint16m2_t vwmaccsu(vbool8_t op0, vint16m2_t op1, int8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16m4)))
-vint16m4_t vwmaccsu(vint16m4_t op0, int8_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16m4_m)))
-vint16m4_t vwmaccsu(vbool4_t op0, vint16m4_t op1, int8_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16m8)))
-vint16m8_t vwmaccsu(vint16m8_t op0, int8_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i16m8_m)))
-vint16m8_t vwmaccsu(vbool2_t op0, vint16m8_t op1, int8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i32mf2)))
-vint32mf2_t vwmaccsu(vint32mf2_t op0, int16_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i32mf2_m)))
-vint32mf2_t vwmaccsu(vbool64_t op0, vint32mf2_t op1, int16_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i32m1)))
-vint32m1_t vwmaccsu(vint32m1_t op0, int16_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i32m1_m)))
-vint32m1_t vwmaccsu(vbool32_t op0, vint32m1_t op1, int16_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i32m2)))
-vint32m2_t vwmaccsu(vint32m2_t op0, int16_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i32m2_m)))
-vint32m2_t vwmaccsu(vbool16_t op0, vint32m2_t op1, int16_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i32m4)))
-vint32m4_t vwmaccsu(vint32m4_t op0, int16_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i32m4_m)))
-vint32m4_t vwmaccsu(vbool8_t op0, vint32m4_t op1, int16_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i32m8)))
-vint32m8_t vwmaccsu(vint32m8_t op0, int16_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i32m8_m)))
-vint32m8_t vwmaccsu(vbool4_t op0, vint32m8_t op1, int16_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i64m1)))
-vint64m1_t vwmaccsu(vint64m1_t op0, int32_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i64m1_m)))
-vint64m1_t vwmaccsu(vbool64_t op0, vint64m1_t op1, int32_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i64m2)))
-vint64m2_t vwmaccsu(vint64m2_t op0, int32_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i64m2_m)))
-vint64m2_t vwmaccsu(vbool32_t op0, vint64m2_t op1, int32_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i64m4)))
-vint64m4_t vwmaccsu(vint64m4_t op0, int32_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i64m4_m)))
-vint64m4_t vwmaccsu(vbool16_t op0, vint64m4_t op1, int32_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i64m8)))
-vint64m8_t vwmaccsu(vint64m8_t op0, int32_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccsu_vx_i64m8_m)))
-vint64m8_t vwmaccsu(vbool8_t op0, vint64m8_t op1, int32_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16mf4)))
-vint16mf4_t vwmaccus(vint16mf4_t op0, uint8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16mf4_m)))
-vint16mf4_t vwmaccus(vbool64_t op0, vint16mf4_t op1, uint8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16mf2)))
-vint16mf2_t vwmaccus(vint16mf2_t op0, uint8_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16mf2_m)))
-vint16mf2_t vwmaccus(vbool32_t op0, vint16mf2_t op1, uint8_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16m1)))
-vint16m1_t vwmaccus(vint16m1_t op0, uint8_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16m1_m)))
-vint16m1_t vwmaccus(vbool16_t op0, vint16m1_t op1, uint8_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16m2)))
-vint16m2_t vwmaccus(vint16m2_t op0, uint8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16m2_m)))
-vint16m2_t vwmaccus(vbool8_t op0, vint16m2_t op1, uint8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16m4)))
-vint16m4_t vwmaccus(vint16m4_t op0, uint8_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16m4_m)))
-vint16m4_t vwmaccus(vbool4_t op0, vint16m4_t op1, uint8_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16m8)))
-vint16m8_t vwmaccus(vint16m8_t op0, uint8_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i16m8_m)))
-vint16m8_t vwmaccus(vbool2_t op0, vint16m8_t op1, uint8_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i32mf2)))
-vint32mf2_t vwmaccus(vint32mf2_t op0, uint16_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i32mf2_m)))
-vint32mf2_t vwmaccus(vbool64_t op0, vint32mf2_t op1, uint16_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i32m1)))
-vint32m1_t vwmaccus(vint32m1_t op0, uint16_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i32m1_m)))
-vint32m1_t vwmaccus(vbool32_t op0, vint32m1_t op1, uint16_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i32m2)))
-vint32m2_t vwmaccus(vint32m2_t op0, uint16_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i32m2_m)))
-vint32m2_t vwmaccus(vbool16_t op0, vint32m2_t op1, uint16_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i32m4)))
-vint32m4_t vwmaccus(vint32m4_t op0, uint16_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i32m4_m)))
-vint32m4_t vwmaccus(vbool8_t op0, vint32m4_t op1, uint16_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i32m8)))
-vint32m8_t vwmaccus(vint32m8_t op0, uint16_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i32m8_m)))
-vint32m8_t vwmaccus(vbool4_t op0, vint32m8_t op1, uint16_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i64m1)))
-vint64m1_t vwmaccus(vint64m1_t op0, uint32_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i64m1_m)))
-vint64m1_t vwmaccus(vbool64_t op0, vint64m1_t op1, uint32_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i64m2)))
-vint64m2_t vwmaccus(vint64m2_t op0, uint32_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i64m2_m)))
-vint64m2_t vwmaccus(vbool32_t op0, vint64m2_t op1, uint32_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i64m4)))
-vint64m4_t vwmaccus(vint64m4_t op0, uint32_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i64m4_m)))
-vint64m4_t vwmaccus(vbool16_t op0, vint64m4_t op1, uint32_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i64m8)))
-vint64m8_t vwmaccus(vint64m8_t op0, uint32_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwmaccus_vx_i64m8_m)))
-vint64m8_t vwmaccus(vbool8_t op0, vint64m8_t op1, uint32_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i8m1)))
-vint8m1_t vmerge(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i8m2)))
-vint8m2_t vmerge(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i8m4)))
-vint8m4_t vmerge(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i8m8)))
-vint8m8_t vmerge(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i8mf2)))
-vint8mf2_t vmerge(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i8mf4)))
-vint8mf4_t vmerge(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i8mf8)))
-vint8mf8_t vmerge(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i16m1)))
-vint16m1_t vmerge(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i16m2)))
-vint16m2_t vmerge(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i16m4)))
-vint16m4_t vmerge(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i16m8)))
-vint16m8_t vmerge(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i16mf2)))
-vint16mf2_t vmerge(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i16mf4)))
-vint16mf4_t vmerge(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i32m1)))
-vint32m1_t vmerge(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i32m2)))
-vint32m2_t vmerge(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i32m4)))
-vint32m4_t vmerge(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i32m8)))
-vint32m8_t vmerge(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i32mf2)))
-vint32mf2_t vmerge(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i64m1)))
-vint64m1_t vmerge(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i64m2)))
-vint64m2_t vmerge(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i64m4)))
-vint64m4_t vmerge(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_i64m8)))
-vint64m8_t vmerge(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i8m1)))
-vint8m1_t vmerge(vbool8_t op0, vint8m1_t op1, int8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i8m2)))
-vint8m2_t vmerge(vbool4_t op0, vint8m2_t op1, int8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i8m4)))
-vint8m4_t vmerge(vbool2_t op0, vint8m4_t op1, int8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i8m8)))
-vint8m8_t vmerge(vbool1_t op0, vint8m8_t op1, int8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i8mf2)))
-vint8mf2_t vmerge(vbool16_t op0, vint8mf2_t op1, int8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i8mf4)))
-vint8mf4_t vmerge(vbool32_t op0, vint8mf4_t op1, int8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i8mf8)))
-vint8mf8_t vmerge(vbool64_t op0, vint8mf8_t op1, int8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i16m1)))
-vint16m1_t vmerge(vbool16_t op0, vint16m1_t op1, int16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i16m2)))
-vint16m2_t vmerge(vbool8_t op0, vint16m2_t op1, int16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i16m4)))
-vint16m4_t vmerge(vbool4_t op0, vint16m4_t op1, int16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i16m8)))
-vint16m8_t vmerge(vbool2_t op0, vint16m8_t op1, int16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i16mf2)))
-vint16mf2_t vmerge(vbool32_t op0, vint16mf2_t op1, int16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i16mf4)))
-vint16mf4_t vmerge(vbool64_t op0, vint16mf4_t op1, int16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i32m1)))
-vint32m1_t vmerge(vbool32_t op0, vint32m1_t op1, int32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i32m2)))
-vint32m2_t vmerge(vbool16_t op0, vint32m2_t op1, int32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i32m4)))
-vint32m4_t vmerge(vbool8_t op0, vint32m4_t op1, int32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i32m8)))
-vint32m8_t vmerge(vbool4_t op0, vint32m8_t op1, int32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i32mf2)))
-vint32mf2_t vmerge(vbool64_t op0, vint32mf2_t op1, int32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i64m1)))
-vint64m1_t vmerge(vbool64_t op0, vint64m1_t op1, int64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i64m2)))
-vint64m2_t vmerge(vbool32_t op0, vint64m2_t op1, int64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i64m4)))
-vint64m4_t vmerge(vbool16_t op0, vint64m4_t op1, int64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_i64m8)))
-vint64m8_t vmerge(vbool8_t op0, vint64m8_t op1, int64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i32m1)))
-void vsuxei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i32m1_m)))
-void vsuxei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i32m2)))
-void vsuxei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i32m2_m)))
-void vsuxei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i32m4)))
-void vsuxei32(int32_t * op0, vuint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i32m4_m)))
-void vsuxei32(vbool8_t op0, int32_t * op1, vuint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i32m8)))
-void vsuxei32(int32_t * op0, vuint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i32m8_m)))
-void vsuxei32(vbool4_t op0, int32_t * op1, vuint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i32mf2)))
-void vsuxei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i32mf2_m)))
-void vsuxei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u8m1)))
-vuint8m1_t vmerge(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u8m2)))
-vuint8m2_t vmerge(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u8m4)))
-vuint8m4_t vmerge(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u8m8)))
-vuint8m8_t vmerge(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u8mf2)))
-vuint8mf2_t vmerge(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u8mf4)))
-vuint8mf4_t vmerge(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u8mf8)))
-vuint8mf8_t vmerge(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u16m1)))
-vuint16m1_t vmerge(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u16m2)))
-vuint16m2_t vmerge(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u16m4)))
-vuint16m4_t vmerge(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u16m8)))
-vuint16m8_t vmerge(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u16mf2)))
-vuint16mf2_t vmerge(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u16mf4)))
-vuint16mf4_t vmerge(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u32m1)))
-vuint32m1_t vmerge(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u32m2)))
-vuint32m2_t vmerge(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u32m4)))
-vuint32m4_t vmerge(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u32m8)))
-vuint32m8_t vmerge(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u32mf2)))
-vuint32mf2_t vmerge(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u64m1)))
-vuint64m1_t vmerge(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u64m2)))
-vuint64m2_t vmerge(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u64m4)))
-vuint64m4_t vmerge(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_u64m8)))
-vuint64m8_t vmerge(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u8m1)))
-vuint8m1_t vmerge(vbool8_t op0, vuint8m1_t op1, uint8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u8m2)))
-vuint8m2_t vmerge(vbool4_t op0, vuint8m2_t op1, uint8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u8m4)))
-vuint8m4_t vmerge(vbool2_t op0, vuint8m4_t op1, uint8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u8m8)))
-vuint8m8_t vmerge(vbool1_t op0, vuint8m8_t op1, uint8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u8mf2)))
-vuint8mf2_t vmerge(vbool16_t op0, vuint8mf2_t op1, uint8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u8mf4)))
-vuint8mf4_t vmerge(vbool32_t op0, vuint8mf4_t op1, uint8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u8mf8)))
-vuint8mf8_t vmerge(vbool64_t op0, vuint8mf8_t op1, uint8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u16m1)))
-vuint16m1_t vmerge(vbool16_t op0, vuint16m1_t op1, uint16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u16m2)))
-vuint16m2_t vmerge(vbool8_t op0, vuint16m2_t op1, uint16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u16m4)))
-vuint16m4_t vmerge(vbool4_t op0, vuint16m4_t op1, uint16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u16m8)))
-vuint16m8_t vmerge(vbool2_t op0, vuint16m8_t op1, uint16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u16mf2)))
-vuint16mf2_t vmerge(vbool32_t op0, vuint16mf2_t op1, uint16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u16mf4)))
-vuint16mf4_t vmerge(vbool64_t op0, vuint16mf4_t op1, uint16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u32m1)))
-vuint32m1_t vmerge(vbool32_t op0, vuint32m1_t op1, uint32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u32m2)))
-vuint32m2_t vmerge(vbool16_t op0, vuint32m2_t op1, uint32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u32m4)))
-vuint32m4_t vmerge(vbool8_t op0, vuint32m4_t op1, uint32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u32m8)))
-vuint32m8_t vmerge(vbool4_t op0, vuint32m8_t op1, uint32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u32mf2)))
-vuint32mf2_t vmerge(vbool64_t op0, vuint32mf2_t op1, uint32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u64m1)))
-vuint64m1_t vmerge(vbool64_t op0, vuint64m1_t op1, uint64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u64m2)))
-vuint64m2_t vmerge(vbool32_t op0, vuint64m2_t op1, uint64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u64m4)))
-vuint64m4_t vmerge(vbool16_t op0, vuint64m4_t op1, uint64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vxm_u64m8)))
-vuint64m8_t vmerge(vbool8_t op0, vuint64m8_t op1, uint64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u8m1)))
-vuint8m1_t vmv_v(vuint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u8m2)))
-vuint8m2_t vmv_v(vuint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u8m4)))
-vuint8m4_t vmv_v(vuint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u8m8)))
-vuint8m8_t vmv_v(vuint8m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u8mf2)))
-vuint8mf2_t vmv_v(vuint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u8mf4)))
-vuint8mf4_t vmv_v(vuint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u8mf8)))
-vuint8mf8_t vmv_v(vuint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u16m1)))
-vuint16m1_t vmv_v(vuint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u16m2)))
-vuint16m2_t vmv_v(vuint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u16m4)))
-vuint16m4_t vmv_v(vuint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u16m8)))
-vuint16m8_t vmv_v(vuint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u16mf2)))
-vuint16mf2_t vmv_v(vuint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u16mf4)))
-vuint16mf4_t vmv_v(vuint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u32m1)))
-vuint32m1_t vmv_v(vuint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u32m2)))
-vuint32m2_t vmv_v(vuint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u32m4)))
-vuint32m4_t vmv_v(vuint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u32m8)))
-vuint32m8_t vmv_v(vuint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u32mf2)))
-vuint32mf2_t vmv_v(vuint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u64m1)))
-vuint64m1_t vmv_v(vuint64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u64m2)))
-vuint64m2_t vmv_v(vuint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u64m4)))
-vuint64m4_t vmv_v(vuint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_u64m8)))
-vuint64m8_t vmv_v(vuint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i8m1)))
-vint8m1_t vmv_v(vint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i8m2)))
-vint8m2_t vmv_v(vint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i8m4)))
-vint8m4_t vmv_v(vint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i8m8)))
-vint8m8_t vmv_v(vint8m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i8mf2)))
-vint8mf2_t vmv_v(vint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i8mf4)))
-vint8mf4_t vmv_v(vint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i8mf8)))
-vint8mf8_t vmv_v(vint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i16m1)))
-vint16m1_t vmv_v(vint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i16m2)))
-vint16m2_t vmv_v(vint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i16m4)))
-vint16m4_t vmv_v(vint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i16m8)))
-vint16m8_t vmv_v(vint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i16mf2)))
-vint16mf2_t vmv_v(vint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i16mf4)))
-vint16mf4_t vmv_v(vint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i32m1)))
-vint32m1_t vmv_v(vint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i32m2)))
-vint32m2_t vmv_v(vint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i32m4)))
-vint32m4_t vmv_v(vint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i32m8)))
-vint32m8_t vmv_v(vint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i32mf2)))
-vint32mf2_t vmv_v(vint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i64m1)))
-vint64m1_t vmv_v(vint64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i64m2)))
-vint64m2_t vmv_v(vint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i64m4)))
-vint64m4_t vmv_v(vint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_i64m8)))
-vint64m8_t vmv_v(vint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8m1)))
-vuint8m1_t vsaddu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8m1_m)))
-vuint8m1_t vsaddu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8m2)))
-vuint8m2_t vsaddu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8m2_m)))
-vuint8m2_t vsaddu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8m4)))
-vuint8m4_t vsaddu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8m4_m)))
-vuint8m4_t vsaddu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8m8)))
-vuint8m8_t vsaddu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8m8_m)))
-vuint8m8_t vsaddu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8mf2)))
-vuint8mf2_t vsaddu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8mf2_m)))
-vuint8mf2_t vsaddu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8mf4)))
-vuint8mf4_t vsaddu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8mf4_m)))
-vuint8mf4_t vsaddu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8mf8)))
-vuint8mf8_t vsaddu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u8mf8_m)))
-vuint8mf8_t vsaddu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16m1)))
-vuint16m1_t vsaddu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16m1_m)))
-vuint16m1_t vsaddu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16m2)))
-vuint16m2_t vsaddu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16m2_m)))
-vuint16m2_t vsaddu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16m4)))
-vuint16m4_t vsaddu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16m4_m)))
-vuint16m4_t vsaddu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16m8)))
-vuint16m8_t vsaddu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16m8_m)))
-vuint16m8_t vsaddu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16mf2)))
-vuint16mf2_t vsaddu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16mf2_m)))
-vuint16mf2_t vsaddu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16mf4)))
-vuint16mf4_t vsaddu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u16mf4_m)))
-vuint16mf4_t vsaddu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u32m1)))
-vuint32m1_t vsaddu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u32m1_m)))
-vuint32m1_t vsaddu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u32m2)))
-vuint32m2_t vsaddu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u32m2_m)))
-vuint32m2_t vsaddu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u32m4)))
-vuint32m4_t vsaddu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u32m4_m)))
-vuint32m4_t vsaddu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u32m8)))
-vuint32m8_t vsaddu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u32m8_m)))
-vuint32m8_t vsaddu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u32mf2)))
-vuint32mf2_t vsaddu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u32mf2_m)))
-vuint32mf2_t vsaddu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u64m1)))
-vuint64m1_t vsaddu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u64m1_m)))
-vuint64m1_t vsaddu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u64m2)))
-vuint64m2_t vsaddu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u64m2_m)))
-vuint64m2_t vsaddu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u64m4)))
-vuint64m4_t vsaddu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u64m4_m)))
-vuint64m4_t vsaddu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u64m8)))
-vuint64m8_t vsaddu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vv_u64m8_m)))
-vuint64m8_t vsaddu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8m1)))
-vuint8m1_t vsaddu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8m1_m)))
-vuint8m1_t vsaddu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8m2)))
-vuint8m2_t vsaddu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8m2_m)))
-vuint8m2_t vsaddu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8m4)))
-vuint8m4_t vsaddu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8m4_m)))
-vuint8m4_t vsaddu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8m8)))
-vuint8m8_t vsaddu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8m8_m)))
-vuint8m8_t vsaddu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8mf2)))
-vuint8mf2_t vsaddu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8mf2_m)))
-vuint8mf2_t vsaddu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8mf4)))
-vuint8mf4_t vsaddu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8mf4_m)))
-vuint8mf4_t vsaddu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8mf8)))
-vuint8mf8_t vsaddu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u8mf8_m)))
-vuint8mf8_t vsaddu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16m1)))
-vuint16m1_t vsaddu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16m1_m)))
-vuint16m1_t vsaddu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16m2)))
-vuint16m2_t vsaddu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16m2_m)))
-vuint16m2_t vsaddu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16m4)))
-vuint16m4_t vsaddu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16m4_m)))
-vuint16m4_t vsaddu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16m8)))
-vuint16m8_t vsaddu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16m8_m)))
-vuint16m8_t vsaddu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16mf2)))
-vuint16mf2_t vsaddu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16mf2_m)))
-vuint16mf2_t vsaddu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16mf4)))
-vuint16mf4_t vsaddu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u16mf4_m)))
-vuint16mf4_t vsaddu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u32m1)))
-vuint32m1_t vsaddu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u32m1_m)))
-vuint32m1_t vsaddu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u32m2)))
-vuint32m2_t vsaddu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u32m2_m)))
-vuint32m2_t vsaddu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u32m4)))
-vuint32m4_t vsaddu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u32m4_m)))
-vuint32m4_t vsaddu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u32m8)))
-vuint32m8_t vsaddu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u32m8_m)))
-vuint32m8_t vsaddu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u32mf2)))
-vuint32mf2_t vsaddu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u32mf2_m)))
-vuint32mf2_t vsaddu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u64m1)))
-vuint64m1_t vsaddu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u64m1_m)))
-vuint64m1_t vsaddu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u64m2)))
-vuint64m2_t vsaddu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u64m2_m)))
-vuint64m2_t vsaddu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u64m4)))
-vuint64m4_t vsaddu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u64m4_m)))
-vuint64m4_t vsaddu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u64m8)))
-vuint64m8_t vsaddu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsaddu_vx_u64m8_m)))
-vuint64m8_t vsaddu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8m1)))
-vint8m1_t vsadd(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8m1_m)))
-vint8m1_t vsadd(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8m2)))
-vint8m2_t vsadd(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8m2_m)))
-vint8m2_t vsadd(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8m4)))
-vint8m4_t vsadd(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8m4_m)))
-vint8m4_t vsadd(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8m8)))
-vint8m8_t vsadd(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8m8_m)))
-vint8m8_t vsadd(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8mf2)))
-vint8mf2_t vsadd(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8mf2_m)))
-vint8mf2_t vsadd(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8mf4)))
-vint8mf4_t vsadd(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8mf4_m)))
-vint8mf4_t vsadd(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8mf8)))
-vint8mf8_t vsadd(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i8mf8_m)))
-vint8mf8_t vsadd(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16m1)))
-vint16m1_t vsadd(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16m1_m)))
-vint16m1_t vsadd(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16m2)))
-vint16m2_t vsadd(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16m2_m)))
-vint16m2_t vsadd(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16m4)))
-vint16m4_t vsadd(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16m4_m)))
-vint16m4_t vsadd(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16m8)))
-vint16m8_t vsadd(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16m8_m)))
-vint16m8_t vsadd(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16mf2)))
-vint16mf2_t vsadd(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16mf2_m)))
-vint16mf2_t vsadd(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16mf4)))
-vint16mf4_t vsadd(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i16mf4_m)))
-vint16mf4_t vsadd(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i32m1)))
-vint32m1_t vsadd(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i32m1_m)))
-vint32m1_t vsadd(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i32m2)))
-vint32m2_t vsadd(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i32m2_m)))
-vint32m2_t vsadd(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i32m4)))
-vint32m4_t vsadd(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i32m4_m)))
-vint32m4_t vsadd(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i32m8)))
-vint32m8_t vsadd(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i32m8_m)))
-vint32m8_t vsadd(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i32mf2)))
-vint32mf2_t vsadd(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i32mf2_m)))
-vint32mf2_t vsadd(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i64m1)))
-vint64m1_t vsadd(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i64m1_m)))
-vint64m1_t vsadd(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i64m2)))
-vint64m2_t vsadd(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i64m2_m)))
-vint64m2_t vsadd(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i64m4)))
-vint64m4_t vsadd(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i64m4_m)))
-vint64m4_t vsadd(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i64m8)))
-vint64m8_t vsadd(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vv_i64m8_m)))
-vint64m8_t vsadd(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8m1)))
-vint8m1_t vsadd(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8m1_m)))
-vint8m1_t vsadd(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8m2)))
-vint8m2_t vsadd(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8m2_m)))
-vint8m2_t vsadd(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8m4)))
-vint8m4_t vsadd(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8m4_m)))
-vint8m4_t vsadd(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8m8)))
-vint8m8_t vsadd(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8m8_m)))
-vint8m8_t vsadd(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8mf2)))
-vint8mf2_t vsadd(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8mf2_m)))
-vint8mf2_t vsadd(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8mf4)))
-vint8mf4_t vsadd(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8mf4_m)))
-vint8mf4_t vsadd(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8mf8)))
-vint8mf8_t vsadd(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i8mf8_m)))
-vint8mf8_t vsadd(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16m1)))
-vint16m1_t vsadd(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16m1_m)))
-vint16m1_t vsadd(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16m2)))
-vint16m2_t vsadd(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16m2_m)))
-vint16m2_t vsadd(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16m4)))
-vint16m4_t vsadd(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16m4_m)))
-vint16m4_t vsadd(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16m8)))
-vint16m8_t vsadd(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16m8_m)))
-vint16m8_t vsadd(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16mf2)))
-vint16mf2_t vsadd(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16mf2_m)))
-vint16mf2_t vsadd(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16mf4)))
-vint16mf4_t vsadd(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i16mf4_m)))
-vint16mf4_t vsadd(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i32m1)))
-vint32m1_t vsadd(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i32m1_m)))
-vint32m1_t vsadd(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i32m2)))
-vint32m2_t vsadd(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i32m2_m)))
-vint32m2_t vsadd(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i32m4)))
-vint32m4_t vsadd(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i32m4_m)))
-vint32m4_t vsadd(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i32m8)))
-vint32m8_t vsadd(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i32m8_m)))
-vint32m8_t vsadd(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i32mf2)))
-vint32mf2_t vsadd(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i32mf2_m)))
-vint32mf2_t vsadd(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i64m1)))
-vint64m1_t vsadd(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i64m1_m)))
-vint64m1_t vsadd(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i64m2)))
-vint64m2_t vsadd(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i64m2_m)))
-vint64m2_t vsadd(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i64m4)))
-vint64m4_t vsadd(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i64m4_m)))
-vint64m4_t vsadd(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i64m8)))
-vint64m8_t vsadd(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsadd_vx_i64m8_m)))
-vint64m8_t vsadd(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u32m1)))
-void vsuxei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u32m1_m)))
-void vsuxei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u32m2)))
-void vsuxei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u32m2_m)))
-void vsuxei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u32m4)))
-void vsuxei32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u32m4_m)))
-void vsuxei32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u32m8)))
-void vsuxei32(uint32_t * op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u32m8_m)))
-void vsuxei32(vbool4_t op0, uint32_t * op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u32mf2)))
-void vsuxei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u32mf2_m)))
-void vsuxei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8m1)))
-vuint8m1_t vssubu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8m1_m)))
-vuint8m1_t vssubu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8m2)))
-vuint8m2_t vssubu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8m2_m)))
-vuint8m2_t vssubu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8m4)))
-vuint8m4_t vssubu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8m4_m)))
-vuint8m4_t vssubu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8m8)))
-vuint8m8_t vssubu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8m8_m)))
-vuint8m8_t vssubu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8mf2)))
-vuint8mf2_t vssubu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8mf2_m)))
-vuint8mf2_t vssubu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8mf4)))
-vuint8mf4_t vssubu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8mf4_m)))
-vuint8mf4_t vssubu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8mf8)))
-vuint8mf8_t vssubu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u8mf8_m)))
-vuint8mf8_t vssubu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16m1)))
-vuint16m1_t vssubu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16m1_m)))
-vuint16m1_t vssubu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16m2)))
-vuint16m2_t vssubu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16m2_m)))
-vuint16m2_t vssubu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16m4)))
-vuint16m4_t vssubu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16m4_m)))
-vuint16m4_t vssubu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16m8)))
-vuint16m8_t vssubu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16m8_m)))
-vuint16m8_t vssubu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16mf2)))
-vuint16mf2_t vssubu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16mf2_m)))
-vuint16mf2_t vssubu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16mf4)))
-vuint16mf4_t vssubu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u16mf4_m)))
-vuint16mf4_t vssubu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u32m1)))
-vuint32m1_t vssubu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u32m1_m)))
-vuint32m1_t vssubu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u32m2)))
-vuint32m2_t vssubu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u32m2_m)))
-vuint32m2_t vssubu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u32m4)))
-vuint32m4_t vssubu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u32m4_m)))
-vuint32m4_t vssubu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u32m8)))
-vuint32m8_t vssubu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u32m8_m)))
-vuint32m8_t vssubu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u32mf2)))
-vuint32mf2_t vssubu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u32mf2_m)))
-vuint32mf2_t vssubu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u64m1)))
-vuint64m1_t vssubu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u64m1_m)))
-vuint64m1_t vssubu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u64m2)))
-vuint64m2_t vssubu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u64m2_m)))
-vuint64m2_t vssubu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u64m4)))
-vuint64m4_t vssubu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u64m4_m)))
-vuint64m4_t vssubu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u64m8)))
-vuint64m8_t vssubu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vv_u64m8_m)))
-vuint64m8_t vssubu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8m1)))
-vuint8m1_t vssubu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8m1_m)))
-vuint8m1_t vssubu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8m2)))
-vuint8m2_t vssubu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8m2_m)))
-vuint8m2_t vssubu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8m4)))
-vuint8m4_t vssubu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8m4_m)))
-vuint8m4_t vssubu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8m8)))
-vuint8m8_t vssubu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8m8_m)))
-vuint8m8_t vssubu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8mf2)))
-vuint8mf2_t vssubu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8mf2_m)))
-vuint8mf2_t vssubu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8mf4)))
-vuint8mf4_t vssubu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8mf4_m)))
-vuint8mf4_t vssubu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8mf8)))
-vuint8mf8_t vssubu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u8mf8_m)))
-vuint8mf8_t vssubu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16m1)))
-vuint16m1_t vssubu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16m1_m)))
-vuint16m1_t vssubu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16m2)))
-vuint16m2_t vssubu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16m2_m)))
-vuint16m2_t vssubu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16m4)))
-vuint16m4_t vssubu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16m4_m)))
-vuint16m4_t vssubu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16m8)))
-vuint16m8_t vssubu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16m8_m)))
-vuint16m8_t vssubu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16mf2)))
-vuint16mf2_t vssubu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16mf2_m)))
-vuint16mf2_t vssubu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16mf4)))
-vuint16mf4_t vssubu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u16mf4_m)))
-vuint16mf4_t vssubu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u32m1)))
-vuint32m1_t vssubu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u32m1_m)))
-vuint32m1_t vssubu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u32m2)))
-vuint32m2_t vssubu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u32m2_m)))
-vuint32m2_t vssubu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u32m4)))
-vuint32m4_t vssubu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u32m4_m)))
-vuint32m4_t vssubu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u32m8)))
-vuint32m8_t vssubu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u32m8_m)))
-vuint32m8_t vssubu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u32mf2)))
-vuint32mf2_t vssubu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u32mf2_m)))
-vuint32mf2_t vssubu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u64m1)))
-vuint64m1_t vssubu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u64m1_m)))
-vuint64m1_t vssubu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u64m2)))
-vuint64m2_t vssubu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u64m2_m)))
-vuint64m2_t vssubu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u64m4)))
-vuint64m4_t vssubu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u64m4_m)))
-vuint64m4_t vssubu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u64m8)))
-vuint64m8_t vssubu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssubu_vx_u64m8_m)))
-vuint64m8_t vssubu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8m1)))
-vint8m1_t vssub(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8m1_m)))
-vint8m1_t vssub(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8m2)))
-vint8m2_t vssub(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8m2_m)))
-vint8m2_t vssub(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8m4)))
-vint8m4_t vssub(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8m4_m)))
-vint8m4_t vssub(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8m8)))
-vint8m8_t vssub(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8m8_m)))
-vint8m8_t vssub(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8mf2)))
-vint8mf2_t vssub(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8mf2_m)))
-vint8mf2_t vssub(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8mf4)))
-vint8mf4_t vssub(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8mf4_m)))
-vint8mf4_t vssub(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8mf8)))
-vint8mf8_t vssub(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i8mf8_m)))
-vint8mf8_t vssub(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16m1)))
-vint16m1_t vssub(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16m1_m)))
-vint16m1_t vssub(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16m2)))
-vint16m2_t vssub(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16m2_m)))
-vint16m2_t vssub(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16m4)))
-vint16m4_t vssub(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16m4_m)))
-vint16m4_t vssub(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16m8)))
-vint16m8_t vssub(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16m8_m)))
-vint16m8_t vssub(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16mf2)))
-vint16mf2_t vssub(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16mf2_m)))
-vint16mf2_t vssub(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16mf4)))
-vint16mf4_t vssub(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i16mf4_m)))
-vint16mf4_t vssub(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i32m1)))
-vint32m1_t vssub(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i32m1_m)))
-vint32m1_t vssub(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i32m2)))
-vint32m2_t vssub(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i32m2_m)))
-vint32m2_t vssub(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i32m4)))
-vint32m4_t vssub(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i32m4_m)))
-vint32m4_t vssub(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i32m8)))
-vint32m8_t vssub(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i32m8_m)))
-vint32m8_t vssub(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i32mf2)))
-vint32mf2_t vssub(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i32mf2_m)))
-vint32mf2_t vssub(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i64m1)))
-vint64m1_t vssub(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i64m1_m)))
-vint64m1_t vssub(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i64m2)))
-vint64m2_t vssub(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i64m2_m)))
-vint64m2_t vssub(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i64m4)))
-vint64m4_t vssub(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i64m4_m)))
-vint64m4_t vssub(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i64m8)))
-vint64m8_t vssub(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vv_i64m8_m)))
-vint64m8_t vssub(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8m1)))
-vint8m1_t vssub(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8m1_m)))
-vint8m1_t vssub(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8m2)))
-vint8m2_t vssub(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8m2_m)))
-vint8m2_t vssub(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8m4)))
-vint8m4_t vssub(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8m4_m)))
-vint8m4_t vssub(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8m8)))
-vint8m8_t vssub(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8m8_m)))
-vint8m8_t vssub(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8mf2)))
-vint8mf2_t vssub(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8mf2_m)))
-vint8mf2_t vssub(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8mf4)))
-vint8mf4_t vssub(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8mf4_m)))
-vint8mf4_t vssub(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8mf8)))
-vint8mf8_t vssub(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i8mf8_m)))
-vint8mf8_t vssub(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16m1)))
-vint16m1_t vssub(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16m1_m)))
-vint16m1_t vssub(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16m2)))
-vint16m2_t vssub(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16m2_m)))
-vint16m2_t vssub(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16m4)))
-vint16m4_t vssub(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16m4_m)))
-vint16m4_t vssub(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16m8)))
-vint16m8_t vssub(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16m8_m)))
-vint16m8_t vssub(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16mf2)))
-vint16mf2_t vssub(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16mf2_m)))
-vint16mf2_t vssub(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16mf4)))
-vint16mf4_t vssub(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i16mf4_m)))
-vint16mf4_t vssub(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i32m1)))
-vint32m1_t vssub(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i32m1_m)))
-vint32m1_t vssub(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i32m2)))
-vint32m2_t vssub(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i32m2_m)))
-vint32m2_t vssub(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i32m4)))
-vint32m4_t vssub(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i32m4_m)))
-vint32m4_t vssub(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i32m8)))
-vint32m8_t vssub(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i32m8_m)))
-vint32m8_t vssub(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i32mf2)))
-vint32mf2_t vssub(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i32mf2_m)))
-vint32mf2_t vssub(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i64m1)))
-vint64m1_t vssub(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i64m1_m)))
-vint64m1_t vssub(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i64m2)))
-vint64m2_t vssub(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i64m2_m)))
-vint64m2_t vssub(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i64m4)))
-vint64m4_t vssub(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i64m4_m)))
-vint64m4_t vssub(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i64m8)))
-vint64m8_t vssub(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssub_vx_i64m8_m)))
-vint64m8_t vssub(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8m1)))
-vuint8m1_t vaaddu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8m1_m)))
-vuint8m1_t vaaddu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8m2)))
-vuint8m2_t vaaddu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8m2_m)))
-vuint8m2_t vaaddu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8m4)))
-vuint8m4_t vaaddu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8m4_m)))
-vuint8m4_t vaaddu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8m8)))
-vuint8m8_t vaaddu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8m8_m)))
-vuint8m8_t vaaddu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8mf2)))
-vuint8mf2_t vaaddu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8mf2_m)))
-vuint8mf2_t vaaddu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8mf4)))
-vuint8mf4_t vaaddu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8mf4_m)))
-vuint8mf4_t vaaddu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8mf8)))
-vuint8mf8_t vaaddu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u8mf8_m)))
-vuint8mf8_t vaaddu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16m1)))
-vuint16m1_t vaaddu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16m1_m)))
-vuint16m1_t vaaddu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16m2)))
-vuint16m2_t vaaddu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16m2_m)))
-vuint16m2_t vaaddu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16m4)))
-vuint16m4_t vaaddu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16m4_m)))
-vuint16m4_t vaaddu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16m8)))
-vuint16m8_t vaaddu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16m8_m)))
-vuint16m8_t vaaddu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16mf2)))
-vuint16mf2_t vaaddu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16mf2_m)))
-vuint16mf2_t vaaddu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16mf4)))
-vuint16mf4_t vaaddu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u16mf4_m)))
-vuint16mf4_t vaaddu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u32m1)))
-vuint32m1_t vaaddu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u32m1_m)))
-vuint32m1_t vaaddu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u32m2)))
-vuint32m2_t vaaddu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u32m2_m)))
-vuint32m2_t vaaddu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u32m4)))
-vuint32m4_t vaaddu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u32m4_m)))
-vuint32m4_t vaaddu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u32m8)))
-vuint32m8_t vaaddu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u32m8_m)))
-vuint32m8_t vaaddu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u32mf2)))
-vuint32mf2_t vaaddu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u32mf2_m)))
-vuint32mf2_t vaaddu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u64m1)))
-vuint64m1_t vaaddu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u64m1_m)))
-vuint64m1_t vaaddu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u64m2)))
-vuint64m2_t vaaddu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u64m2_m)))
-vuint64m2_t vaaddu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u64m4)))
-vuint64m4_t vaaddu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u64m4_m)))
-vuint64m4_t vaaddu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u64m8)))
-vuint64m8_t vaaddu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vv_u64m8_m)))
-vuint64m8_t vaaddu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8m1)))
-vuint8m1_t vaaddu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8m1_m)))
-vuint8m1_t vaaddu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8m2)))
-vuint8m2_t vaaddu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8m2_m)))
-vuint8m2_t vaaddu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8m4)))
-vuint8m4_t vaaddu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8m4_m)))
-vuint8m4_t vaaddu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8m8)))
-vuint8m8_t vaaddu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8m8_m)))
-vuint8m8_t vaaddu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8mf2)))
-vuint8mf2_t vaaddu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8mf2_m)))
-vuint8mf2_t vaaddu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8mf4)))
-vuint8mf4_t vaaddu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8mf4_m)))
-vuint8mf4_t vaaddu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8mf8)))
-vuint8mf8_t vaaddu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u8mf8_m)))
-vuint8mf8_t vaaddu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16m1)))
-vuint16m1_t vaaddu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16m1_m)))
-vuint16m1_t vaaddu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16m2)))
-vuint16m2_t vaaddu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16m2_m)))
-vuint16m2_t vaaddu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16m4)))
-vuint16m4_t vaaddu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16m4_m)))
-vuint16m4_t vaaddu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16m8)))
-vuint16m8_t vaaddu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16m8_m)))
-vuint16m8_t vaaddu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16mf2)))
-vuint16mf2_t vaaddu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16mf2_m)))
-vuint16mf2_t vaaddu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16mf4)))
-vuint16mf4_t vaaddu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u16mf4_m)))
-vuint16mf4_t vaaddu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u32m1)))
-vuint32m1_t vaaddu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u32m1_m)))
-vuint32m1_t vaaddu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u32m2)))
-vuint32m2_t vaaddu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u32m2_m)))
-vuint32m2_t vaaddu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u32m4)))
-vuint32m4_t vaaddu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u32m4_m)))
-vuint32m4_t vaaddu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u32m8)))
-vuint32m8_t vaaddu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u32m8_m)))
-vuint32m8_t vaaddu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u32mf2)))
-vuint32mf2_t vaaddu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u32mf2_m)))
-vuint32mf2_t vaaddu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u64m1)))
-vuint64m1_t vaaddu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u64m1_m)))
-vuint64m1_t vaaddu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u64m2)))
-vuint64m2_t vaaddu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u64m2_m)))
-vuint64m2_t vaaddu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u64m4)))
-vuint64m4_t vaaddu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u64m4_m)))
-vuint64m4_t vaaddu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u64m8)))
-vuint64m8_t vaaddu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaaddu_vx_u64m8_m)))
-vuint64m8_t vaaddu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8m1)))
-vint8m1_t vaadd(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8m1_m)))
-vint8m1_t vaadd(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8m2)))
-vint8m2_t vaadd(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8m2_m)))
-vint8m2_t vaadd(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8m4)))
-vint8m4_t vaadd(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8m4_m)))
-vint8m4_t vaadd(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8m8)))
-vint8m8_t vaadd(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8m8_m)))
-vint8m8_t vaadd(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8mf2)))
-vint8mf2_t vaadd(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8mf2_m)))
-vint8mf2_t vaadd(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8mf4)))
-vint8mf4_t vaadd(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8mf4_m)))
-vint8mf4_t vaadd(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8mf8)))
-vint8mf8_t vaadd(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i8mf8_m)))
-vint8mf8_t vaadd(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16m1)))
-vint16m1_t vaadd(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16m1_m)))
-vint16m1_t vaadd(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16m2)))
-vint16m2_t vaadd(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16m2_m)))
-vint16m2_t vaadd(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16m4)))
-vint16m4_t vaadd(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16m4_m)))
-vint16m4_t vaadd(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16m8)))
-vint16m8_t vaadd(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16m8_m)))
-vint16m8_t vaadd(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16mf2)))
-vint16mf2_t vaadd(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16mf2_m)))
-vint16mf2_t vaadd(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16mf4)))
-vint16mf4_t vaadd(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i16mf4_m)))
-vint16mf4_t vaadd(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i32m1)))
-vint32m1_t vaadd(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i32m1_m)))
-vint32m1_t vaadd(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i32m2)))
-vint32m2_t vaadd(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i32m2_m)))
-vint32m2_t vaadd(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i32m4)))
-vint32m4_t vaadd(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i32m4_m)))
-vint32m4_t vaadd(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i32m8)))
-vint32m8_t vaadd(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i32m8_m)))
-vint32m8_t vaadd(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i32mf2)))
-vint32mf2_t vaadd(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i32mf2_m)))
-vint32mf2_t vaadd(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i64m1)))
-vint64m1_t vaadd(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i64m1_m)))
-vint64m1_t vaadd(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i64m2)))
-vint64m2_t vaadd(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i64m2_m)))
-vint64m2_t vaadd(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i64m4)))
-vint64m4_t vaadd(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i64m4_m)))
-vint64m4_t vaadd(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i64m8)))
-vint64m8_t vaadd(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vv_i64m8_m)))
-vint64m8_t vaadd(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8m1)))
-vint8m1_t vaadd(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8m1_m)))
-vint8m1_t vaadd(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8m2)))
-vint8m2_t vaadd(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8m2_m)))
-vint8m2_t vaadd(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8m4)))
-vint8m4_t vaadd(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8m4_m)))
-vint8m4_t vaadd(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8m8)))
-vint8m8_t vaadd(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8m8_m)))
-vint8m8_t vaadd(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8mf2)))
-vint8mf2_t vaadd(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8mf2_m)))
-vint8mf2_t vaadd(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8mf4)))
-vint8mf4_t vaadd(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8mf4_m)))
-vint8mf4_t vaadd(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8mf8)))
-vint8mf8_t vaadd(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i8mf8_m)))
-vint8mf8_t vaadd(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16m1)))
-vint16m1_t vaadd(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16m1_m)))
-vint16m1_t vaadd(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16m2)))
-vint16m2_t vaadd(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16m2_m)))
-vint16m2_t vaadd(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16m4)))
-vint16m4_t vaadd(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16m4_m)))
-vint16m4_t vaadd(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16m8)))
-vint16m8_t vaadd(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16m8_m)))
-vint16m8_t vaadd(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16mf2)))
-vint16mf2_t vaadd(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16mf2_m)))
-vint16mf2_t vaadd(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16mf4)))
-vint16mf4_t vaadd(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i16mf4_m)))
-vint16mf4_t vaadd(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i32m1)))
-vint32m1_t vaadd(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i32m1_m)))
-vint32m1_t vaadd(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i32m2)))
-vint32m2_t vaadd(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i32m2_m)))
-vint32m2_t vaadd(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i32m4)))
-vint32m4_t vaadd(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i32m4_m)))
-vint32m4_t vaadd(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i32m8)))
-vint32m8_t vaadd(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i32m8_m)))
-vint32m8_t vaadd(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i32mf2)))
-vint32mf2_t vaadd(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i32mf2_m)))
-vint32mf2_t vaadd(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i64m1)))
-vint64m1_t vaadd(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i64m1_m)))
-vint64m1_t vaadd(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i64m2)))
-vint64m2_t vaadd(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i64m2_m)))
-vint64m2_t vaadd(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i64m4)))
-vint64m4_t vaadd(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i64m4_m)))
-vint64m4_t vaadd(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i64m8)))
-vint64m8_t vaadd(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vaadd_vx_i64m8_m)))
-vint64m8_t vaadd(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8m1)))
-vuint8m1_t vasubu(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8m1_m)))
-vuint8m1_t vasubu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8m2)))
-vuint8m2_t vasubu(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8m2_m)))
-vuint8m2_t vasubu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8m4)))
-vuint8m4_t vasubu(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8m4_m)))
-vuint8m4_t vasubu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8m8)))
-vuint8m8_t vasubu(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8m8_m)))
-vuint8m8_t vasubu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8mf2)))
-vuint8mf2_t vasubu(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8mf2_m)))
-vuint8mf2_t vasubu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8mf4)))
-vuint8mf4_t vasubu(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8mf4_m)))
-vuint8mf4_t vasubu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8mf8)))
-vuint8mf8_t vasubu(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u8mf8_m)))
-vuint8mf8_t vasubu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16m1)))
-vuint16m1_t vasubu(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16m1_m)))
-vuint16m1_t vasubu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16m2)))
-vuint16m2_t vasubu(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16m2_m)))
-vuint16m2_t vasubu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16m4)))
-vuint16m4_t vasubu(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16m4_m)))
-vuint16m4_t vasubu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16m8)))
-vuint16m8_t vasubu(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16m8_m)))
-vuint16m8_t vasubu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16mf2)))
-vuint16mf2_t vasubu(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16mf2_m)))
-vuint16mf2_t vasubu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16mf4)))
-vuint16mf4_t vasubu(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u16mf4_m)))
-vuint16mf4_t vasubu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u32m1)))
-vuint32m1_t vasubu(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u32m1_m)))
-vuint32m1_t vasubu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u32m2)))
-vuint32m2_t vasubu(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u32m2_m)))
-vuint32m2_t vasubu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u32m4)))
-vuint32m4_t vasubu(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u32m4_m)))
-vuint32m4_t vasubu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u32m8)))
-vuint32m8_t vasubu(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u32m8_m)))
-vuint32m8_t vasubu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u32mf2)))
-vuint32mf2_t vasubu(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u32mf2_m)))
-vuint32mf2_t vasubu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u64m1)))
-vuint64m1_t vasubu(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u64m1_m)))
-vuint64m1_t vasubu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u64m2)))
-vuint64m2_t vasubu(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u64m2_m)))
-vuint64m2_t vasubu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u64m4)))
-vuint64m4_t vasubu(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u64m4_m)))
-vuint64m4_t vasubu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u64m8)))
-vuint64m8_t vasubu(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vv_u64m8_m)))
-vuint64m8_t vasubu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8m1)))
-vuint8m1_t vasubu(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8m1_m)))
-vuint8m1_t vasubu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8m2)))
-vuint8m2_t vasubu(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8m2_m)))
-vuint8m2_t vasubu(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8m4)))
-vuint8m4_t vasubu(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8m4_m)))
-vuint8m4_t vasubu(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8m8)))
-vuint8m8_t vasubu(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8m8_m)))
-vuint8m8_t vasubu(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8mf2)))
-vuint8mf2_t vasubu(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8mf2_m)))
-vuint8mf2_t vasubu(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8mf4)))
-vuint8mf4_t vasubu(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8mf4_m)))
-vuint8mf4_t vasubu(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8mf8)))
-vuint8mf8_t vasubu(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u8mf8_m)))
-vuint8mf8_t vasubu(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, uint8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16m1)))
-vuint16m1_t vasubu(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16m1_m)))
-vuint16m1_t vasubu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16m2)))
-vuint16m2_t vasubu(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16m2_m)))
-vuint16m2_t vasubu(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16m4)))
-vuint16m4_t vasubu(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16m4_m)))
-vuint16m4_t vasubu(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16m8)))
-vuint16m8_t vasubu(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16m8_m)))
-vuint16m8_t vasubu(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16mf2)))
-vuint16mf2_t vasubu(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16mf2_m)))
-vuint16mf2_t vasubu(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16mf4)))
-vuint16mf4_t vasubu(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u16mf4_m)))
-vuint16mf4_t vasubu(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, uint16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u32m1)))
-vuint32m1_t vasubu(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u32m1_m)))
-vuint32m1_t vasubu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u32m2)))
-vuint32m2_t vasubu(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u32m2_m)))
-vuint32m2_t vasubu(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u32m4)))
-vuint32m4_t vasubu(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u32m4_m)))
-vuint32m4_t vasubu(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u32m8)))
-vuint32m8_t vasubu(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u32m8_m)))
-vuint32m8_t vasubu(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u32mf2)))
-vuint32mf2_t vasubu(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u32mf2_m)))
-vuint32mf2_t vasubu(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, uint32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u64m1)))
-vuint64m1_t vasubu(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u64m1_m)))
-vuint64m1_t vasubu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u64m2)))
-vuint64m2_t vasubu(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u64m2_m)))
-vuint64m2_t vasubu(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u64m4)))
-vuint64m4_t vasubu(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u64m4_m)))
-vuint64m4_t vasubu(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u64m8)))
-vuint64m8_t vasubu(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasubu_vx_u64m8_m)))
-vuint64m8_t vasubu(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, uint64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8m1)))
-void vsuxei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8m1_m)))
-void vsuxei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8m2)))
-void vsuxei8(int8_t * op0, vuint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8m2_m)))
-void vsuxei8(vbool4_t op0, int8_t * op1, vuint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8m4)))
-void vsuxei8(int8_t * op0, vuint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8m4_m)))
-void vsuxei8(vbool2_t op0, int8_t * op1, vuint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8m8)))
-void vsuxei8(int8_t * op0, vuint8m8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8m8_m)))
-void vsuxei8(vbool1_t op0, int8_t * op1, vuint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8mf2)))
-void vsuxei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8mf2_m)))
-void vsuxei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8mf4)))
-void vsuxei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8mf4_m)))
-void vsuxei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8mf8)))
-void vsuxei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i8mf8_m)))
-void vsuxei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i32m1)))
-void vsuxei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i32m1_m)))
-void vsuxei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i32m2)))
-void vsuxei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i32m2_m)))
-void vsuxei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i32m4)))
-void vsuxei64(int32_t * op0, vuint64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i32m4_m)))
-void vsuxei64(vbool8_t op0, int32_t * op1, vuint64m8_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i32mf2)))
-void vsuxei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i32mf2_m)))
-void vsuxei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8m1)))
-vint8m1_t vasub(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8m1_m)))
-vint8m1_t vasub(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8m2)))
-vint8m2_t vasub(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8m2_m)))
-vint8m2_t vasub(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8m4)))
-vint8m4_t vasub(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8m4_m)))
-vint8m4_t vasub(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8m8)))
-vint8m8_t vasub(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8m8_m)))
-vint8m8_t vasub(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8mf2)))
-vint8mf2_t vasub(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8mf2_m)))
-vint8mf2_t vasub(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8mf4)))
-vint8mf4_t vasub(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8mf4_m)))
-vint8mf4_t vasub(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8mf8)))
-vint8mf8_t vasub(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i8mf8_m)))
-vint8mf8_t vasub(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16m1)))
-vint16m1_t vasub(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16m1_m)))
-vint16m1_t vasub(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16m2)))
-vint16m2_t vasub(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16m2_m)))
-vint16m2_t vasub(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16m4)))
-vint16m4_t vasub(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16m4_m)))
-vint16m4_t vasub(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16m8)))
-vint16m8_t vasub(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16m8_m)))
-vint16m8_t vasub(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16mf2)))
-vint16mf2_t vasub(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16mf2_m)))
-vint16mf2_t vasub(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16mf4)))
-vint16mf4_t vasub(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i16mf4_m)))
-vint16mf4_t vasub(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i32m1)))
-vint32m1_t vasub(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i32m1_m)))
-vint32m1_t vasub(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i32m2)))
-vint32m2_t vasub(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i32m2_m)))
-vint32m2_t vasub(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i32m4)))
-vint32m4_t vasub(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i32m4_m)))
-vint32m4_t vasub(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i32m8)))
-vint32m8_t vasub(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i32m8_m)))
-vint32m8_t vasub(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i32mf2)))
-vint32mf2_t vasub(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i32mf2_m)))
-vint32mf2_t vasub(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i64m1)))
-vint64m1_t vasub(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i64m1_m)))
-vint64m1_t vasub(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i64m2)))
-vint64m2_t vasub(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i64m2_m)))
-vint64m2_t vasub(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i64m4)))
-vint64m4_t vasub(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i64m4_m)))
-vint64m4_t vasub(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i64m8)))
-vint64m8_t vasub(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vv_i64m8_m)))
-vint64m8_t vasub(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8m1)))
-vint8m1_t vasub(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8m1_m)))
-vint8m1_t vasub(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8m2)))
-vint8m2_t vasub(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8m2_m)))
-vint8m2_t vasub(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8m4)))
-vint8m4_t vasub(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8m4_m)))
-vint8m4_t vasub(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8m8)))
-vint8m8_t vasub(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8m8_m)))
-vint8m8_t vasub(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8mf2)))
-vint8mf2_t vasub(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8mf2_m)))
-vint8mf2_t vasub(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8mf4)))
-vint8mf4_t vasub(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8mf4_m)))
-vint8mf4_t vasub(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8mf8)))
-vint8mf8_t vasub(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i8mf8_m)))
-vint8mf8_t vasub(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16m1)))
-vint16m1_t vasub(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16m1_m)))
-vint16m1_t vasub(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16m2)))
-vint16m2_t vasub(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16m2_m)))
-vint16m2_t vasub(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16m4)))
-vint16m4_t vasub(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16m4_m)))
-vint16m4_t vasub(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16m8)))
-vint16m8_t vasub(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16m8_m)))
-vint16m8_t vasub(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16mf2)))
-vint16mf2_t vasub(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16mf2_m)))
-vint16mf2_t vasub(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16mf4)))
-vint16mf4_t vasub(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i16mf4_m)))
-vint16mf4_t vasub(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i32m1)))
-vint32m1_t vasub(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i32m1_m)))
-vint32m1_t vasub(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i32m2)))
-vint32m2_t vasub(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i32m2_m)))
-vint32m2_t vasub(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i32m4)))
-vint32m4_t vasub(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i32m4_m)))
-vint32m4_t vasub(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i32m8)))
-vint32m8_t vasub(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i32m8_m)))
-vint32m8_t vasub(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i32mf2)))
-vint32mf2_t vasub(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i32mf2_m)))
-vint32mf2_t vasub(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i64m1)))
-vint64m1_t vasub(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i64m1_m)))
-vint64m1_t vasub(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i64m2)))
-vint64m2_t vasub(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i64m2_m)))
-vint64m2_t vasub(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i64m4)))
-vint64m4_t vasub(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i64m4_m)))
-vint64m4_t vasub(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i64m8)))
-vint64m8_t vasub(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vasub_vx_i64m8_m)))
-vint64m8_t vasub(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8m1)))
-vint8m1_t vsmul(vint8m1_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8m1_m)))
-vint8m1_t vsmul(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8m2)))
-vint8m2_t vsmul(vint8m2_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8m2_m)))
-vint8m2_t vsmul(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8m4)))
-vint8m4_t vsmul(vint8m4_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8m4_m)))
-vint8m4_t vsmul(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8m8)))
-vint8m8_t vsmul(vint8m8_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8m8_m)))
-vint8m8_t vsmul(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8mf2)))
-vint8mf2_t vsmul(vint8mf2_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8mf2_m)))
-vint8mf2_t vsmul(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8mf4)))
-vint8mf4_t vsmul(vint8mf4_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8mf4_m)))
-vint8mf4_t vsmul(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8mf8)))
-vint8mf8_t vsmul(vint8mf8_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i8mf8_m)))
-vint8mf8_t vsmul(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16m1)))
-vint16m1_t vsmul(vint16m1_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16m1_m)))
-vint16m1_t vsmul(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16m2)))
-vint16m2_t vsmul(vint16m2_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16m2_m)))
-vint16m2_t vsmul(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16m4)))
-vint16m4_t vsmul(vint16m4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16m4_m)))
-vint16m4_t vsmul(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16m8)))
-vint16m8_t vsmul(vint16m8_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16m8_m)))
-vint16m8_t vsmul(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16mf2)))
-vint16mf2_t vsmul(vint16mf2_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16mf2_m)))
-vint16mf2_t vsmul(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16mf4)))
-vint16mf4_t vsmul(vint16mf4_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i16mf4_m)))
-vint16mf4_t vsmul(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i32m1)))
-vint32m1_t vsmul(vint32m1_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i32m1_m)))
-vint32m1_t vsmul(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i32m2)))
-vint32m2_t vsmul(vint32m2_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i32m2_m)))
-vint32m2_t vsmul(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i32m4)))
-vint32m4_t vsmul(vint32m4_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i32m4_m)))
-vint32m4_t vsmul(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i32m8)))
-vint32m8_t vsmul(vint32m8_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i32m8_m)))
-vint32m8_t vsmul(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i32mf2)))
-vint32mf2_t vsmul(vint32mf2_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i32mf2_m)))
-vint32mf2_t vsmul(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i64m1)))
-vint64m1_t vsmul(vint64m1_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i64m1_m)))
-vint64m1_t vsmul(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i64m2)))
-vint64m2_t vsmul(vint64m2_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i64m2_m)))
-vint64m2_t vsmul(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i64m4)))
-vint64m4_t vsmul(vint64m4_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i64m4_m)))
-vint64m4_t vsmul(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i64m8)))
-vint64m8_t vsmul(vint64m8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vv_i64m8_m)))
-vint64m8_t vsmul(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8m1)))
-vint8m1_t vsmul(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8m1_m)))
-vint8m1_t vsmul(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8m2)))
-vint8m2_t vsmul(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8m2_m)))
-vint8m2_t vsmul(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8m4)))
-vint8m4_t vsmul(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8m4_m)))
-vint8m4_t vsmul(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8m8)))
-vint8m8_t vsmul(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8m8_m)))
-vint8m8_t vsmul(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8mf2)))
-vint8mf2_t vsmul(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8mf2_m)))
-vint8mf2_t vsmul(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8mf4)))
-vint8mf4_t vsmul(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8mf4_m)))
-vint8mf4_t vsmul(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8mf8)))
-vint8mf8_t vsmul(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i8mf8_m)))
-vint8mf8_t vsmul(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16m1)))
-vint16m1_t vsmul(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16m1_m)))
-vint16m1_t vsmul(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16m2)))
-vint16m2_t vsmul(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16m2_m)))
-vint16m2_t vsmul(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16m4)))
-vint16m4_t vsmul(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16m4_m)))
-vint16m4_t vsmul(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16m8)))
-vint16m8_t vsmul(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16m8_m)))
-vint16m8_t vsmul(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16mf2)))
-vint16mf2_t vsmul(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16mf2_m)))
-vint16mf2_t vsmul(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16mf4)))
-vint16mf4_t vsmul(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i16mf4_m)))
-vint16mf4_t vsmul(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i32m1)))
-vint32m1_t vsmul(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i32m1_m)))
-vint32m1_t vsmul(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i32m2)))
-vint32m2_t vsmul(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i32m2_m)))
-vint32m2_t vsmul(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i32m4)))
-vint32m4_t vsmul(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i32m4_m)))
-vint32m4_t vsmul(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i32m8)))
-vint32m8_t vsmul(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i32m8_m)))
-vint32m8_t vsmul(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i32mf2)))
-vint32mf2_t vsmul(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i32mf2_m)))
-vint32mf2_t vsmul(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i64m1)))
-vint64m1_t vsmul(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i64m1_m)))
-vint64m1_t vsmul(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i64m2)))
-vint64m2_t vsmul(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i64m2_m)))
-vint64m2_t vsmul(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i64m4)))
-vint64m4_t vsmul(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i64m4_m)))
-vint64m4_t vsmul(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i64m8)))
-vint64m8_t vsmul(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsmul_vx_i64m8_m)))
-vint64m8_t vsmul(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8m1)))
-vuint8m1_t vssrl(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8m1_m)))
-vuint8m1_t vssrl(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8m2)))
-vuint8m2_t vssrl(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8m2_m)))
-vuint8m2_t vssrl(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8m4)))
-vuint8m4_t vssrl(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8m4_m)))
-vuint8m4_t vssrl(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8m8)))
-vuint8m8_t vssrl(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8m8_m)))
-vuint8m8_t vssrl(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8mf2)))
-vuint8mf2_t vssrl(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8mf2_m)))
-vuint8mf2_t vssrl(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8mf4)))
-vuint8mf4_t vssrl(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8mf4_m)))
-vuint8mf4_t vssrl(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8mf8)))
-vuint8mf8_t vssrl(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u8mf8_m)))
-vuint8mf8_t vssrl(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16m1)))
-vuint16m1_t vssrl(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16m1_m)))
-vuint16m1_t vssrl(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16m2)))
-vuint16m2_t vssrl(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16m2_m)))
-vuint16m2_t vssrl(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16m4)))
-vuint16m4_t vssrl(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16m4_m)))
-vuint16m4_t vssrl(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16m8)))
-vuint16m8_t vssrl(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16m8_m)))
-vuint16m8_t vssrl(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16mf2)))
-vuint16mf2_t vssrl(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16mf2_m)))
-vuint16mf2_t vssrl(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16mf4)))
-vuint16mf4_t vssrl(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u16mf4_m)))
-vuint16mf4_t vssrl(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u32m1)))
-vuint32m1_t vssrl(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u32m1_m)))
-vuint32m1_t vssrl(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u32m2)))
-vuint32m2_t vssrl(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u32m2_m)))
-vuint32m2_t vssrl(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u32m4)))
-vuint32m4_t vssrl(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u32m4_m)))
-vuint32m4_t vssrl(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u32m8)))
-vuint32m8_t vssrl(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u32m8_m)))
-vuint32m8_t vssrl(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u32mf2)))
-vuint32mf2_t vssrl(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u32mf2_m)))
-vuint32mf2_t vssrl(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u64m1)))
-vuint64m1_t vssrl(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u64m1_m)))
-vuint64m1_t vssrl(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u64m2)))
-vuint64m2_t vssrl(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u64m2_m)))
-vuint64m2_t vssrl(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u64m4)))
-vuint64m4_t vssrl(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u64m4_m)))
-vuint64m4_t vssrl(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u64m8)))
-vuint64m8_t vssrl(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vv_u64m8_m)))
-vuint64m8_t vssrl(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8m1)))
-vuint8m1_t vssrl(vuint8m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8m1_m)))
-vuint8m1_t vssrl(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8m2)))
-vuint8m2_t vssrl(vuint8m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8m2_m)))
-vuint8m2_t vssrl(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8m4)))
-vuint8m4_t vssrl(vuint8m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8m4_m)))
-vuint8m4_t vssrl(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8m8)))
-vuint8m8_t vssrl(vuint8m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8m8_m)))
-vuint8m8_t vssrl(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8mf2)))
-vuint8mf2_t vssrl(vuint8mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8mf2_m)))
-vuint8mf2_t vssrl(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8mf4)))
-vuint8mf4_t vssrl(vuint8mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8mf4_m)))
-vuint8mf4_t vssrl(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8mf8)))
-vuint8mf8_t vssrl(vuint8mf8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u8mf8_m)))
-vuint8mf8_t vssrl(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16m1)))
-vuint16m1_t vssrl(vuint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16m1_m)))
-vuint16m1_t vssrl(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16m2)))
-vuint16m2_t vssrl(vuint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16m2_m)))
-vuint16m2_t vssrl(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16m4)))
-vuint16m4_t vssrl(vuint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16m4_m)))
-vuint16m4_t vssrl(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16m8)))
-vuint16m8_t vssrl(vuint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16m8_m)))
-vuint16m8_t vssrl(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16mf2)))
-vuint16mf2_t vssrl(vuint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16mf2_m)))
-vuint16mf2_t vssrl(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16mf4)))
-vuint16mf4_t vssrl(vuint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u16mf4_m)))
-vuint16mf4_t vssrl(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u32m1)))
-vuint32m1_t vssrl(vuint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u32m1_m)))
-vuint32m1_t vssrl(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u32m2)))
-vuint32m2_t vssrl(vuint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u32m2_m)))
-vuint32m2_t vssrl(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u32m4)))
-vuint32m4_t vssrl(vuint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u32m4_m)))
-vuint32m4_t vssrl(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u32m8)))
-vuint32m8_t vssrl(vuint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u32m8_m)))
-vuint32m8_t vssrl(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u32mf2)))
-vuint32mf2_t vssrl(vuint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u32mf2_m)))
-vuint32mf2_t vssrl(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u64m1)))
-vuint64m1_t vssrl(vuint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u64m1_m)))
-vuint64m1_t vssrl(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u64m2)))
-vuint64m2_t vssrl(vuint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u64m2_m)))
-vuint64m2_t vssrl(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u64m4)))
-vuint64m4_t vssrl(vuint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u64m4_m)))
-vuint64m4_t vssrl(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u64m8)))
-vuint64m8_t vssrl(vuint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssrl_vx_u64m8_m)))
-vuint64m8_t vssrl(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8m1)))
-vint8m1_t vssra(vint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8m1_m)))
-vint8m1_t vssra(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8m2)))
-vint8m2_t vssra(vint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8m2_m)))
-vint8m2_t vssra(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8m4)))
-vint8m4_t vssra(vint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8m4_m)))
-vint8m4_t vssra(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8m8)))
-vint8m8_t vssra(vint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8m8_m)))
-vint8m8_t vssra(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8mf2)))
-vint8mf2_t vssra(vint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8mf2_m)))
-vint8mf2_t vssra(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8mf4)))
-vint8mf4_t vssra(vint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8mf4_m)))
-vint8mf4_t vssra(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8mf8)))
-vint8mf8_t vssra(vint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i8mf8_m)))
-vint8mf8_t vssra(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16m1)))
-vint16m1_t vssra(vint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16m1_m)))
-vint16m1_t vssra(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16m2)))
-vint16m2_t vssra(vint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16m2_m)))
-vint16m2_t vssra(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16m4)))
-vint16m4_t vssra(vint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16m4_m)))
-vint16m4_t vssra(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16m8)))
-vint16m8_t vssra(vint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16m8_m)))
-vint16m8_t vssra(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16mf2)))
-vint16mf2_t vssra(vint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16mf2_m)))
-vint16mf2_t vssra(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16mf4)))
-vint16mf4_t vssra(vint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i16mf4_m)))
-vint16mf4_t vssra(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i32m1)))
-vint32m1_t vssra(vint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i32m1_m)))
-vint32m1_t vssra(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i32m2)))
-vint32m2_t vssra(vint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i32m2_m)))
-vint32m2_t vssra(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i32m4)))
-vint32m4_t vssra(vint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i32m4_m)))
-vint32m4_t vssra(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i32m8)))
-vint32m8_t vssra(vint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i32m8_m)))
-vint32m8_t vssra(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i32mf2)))
-vint32mf2_t vssra(vint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i32mf2_m)))
-vint32mf2_t vssra(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i64m1)))
-vint64m1_t vssra(vint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i64m1_m)))
-vint64m1_t vssra(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i64m2)))
-vint64m2_t vssra(vint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i64m2_m)))
-vint64m2_t vssra(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i64m4)))
-vint64m4_t vssra(vint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i64m4_m)))
-vint64m4_t vssra(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i64m8)))
-vint64m8_t vssra(vint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vv_i64m8_m)))
-vint64m8_t vssra(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8m1)))
-vint8m1_t vssra(vint8m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8m1_m)))
-vint8m1_t vssra(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8m2)))
-vint8m2_t vssra(vint8m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8m2_m)))
-vint8m2_t vssra(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8m4)))
-vint8m4_t vssra(vint8m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8m4_m)))
-vint8m4_t vssra(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8m8)))
-vint8m8_t vssra(vint8m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8m8_m)))
-vint8m8_t vssra(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8mf2)))
-vint8mf2_t vssra(vint8mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8mf2_m)))
-vint8mf2_t vssra(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8mf4)))
-vint8mf4_t vssra(vint8mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8mf4_m)))
-vint8mf4_t vssra(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8mf8)))
-vint8mf8_t vssra(vint8mf8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i8mf8_m)))
-vint8mf8_t vssra(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16m1)))
-vint16m1_t vssra(vint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16m1_m)))
-vint16m1_t vssra(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16m2)))
-vint16m2_t vssra(vint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16m2_m)))
-vint16m2_t vssra(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16m4)))
-vint16m4_t vssra(vint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16m4_m)))
-vint16m4_t vssra(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16m8)))
-vint16m8_t vssra(vint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16m8_m)))
-vint16m8_t vssra(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16mf2)))
-vint16mf2_t vssra(vint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16mf2_m)))
-vint16mf2_t vssra(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16mf4)))
-vint16mf4_t vssra(vint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i16mf4_m)))
-vint16mf4_t vssra(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i32m1)))
-vint32m1_t vssra(vint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i32m1_m)))
-vint32m1_t vssra(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i32m2)))
-vint32m2_t vssra(vint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i32m2_m)))
-vint32m2_t vssra(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i32m4)))
-vint32m4_t vssra(vint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i32m4_m)))
-vint32m4_t vssra(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i32m8)))
-vint32m8_t vssra(vint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i32m8_m)))
-vint32m8_t vssra(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i32mf2)))
-vint32mf2_t vssra(vint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i32mf2_m)))
-vint32mf2_t vssra(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i64m1)))
-vint64m1_t vssra(vint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i64m1_m)))
-vint64m1_t vssra(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i64m2)))
-vint64m2_t vssra(vint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i64m2_m)))
-vint64m2_t vssra(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i64m4)))
-vint64m4_t vssra(vint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i64m4_m)))
-vint64m4_t vssra(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i64m8)))
-vint64m8_t vssra(vint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssra_vx_i64m8_m)))
-vint64m8_t vssra(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8m1)))
-vuint8m1_t vnclipu(vuint16m2_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8m1_m)))
-vuint8m1_t vnclipu(vbool8_t op0, vuint8m1_t op1, vuint16m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8m2)))
-vuint8m2_t vnclipu(vuint16m4_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8m2_m)))
-vuint8m2_t vnclipu(vbool4_t op0, vuint8m2_t op1, vuint16m4_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8m4)))
-vuint8m4_t vnclipu(vuint16m8_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8m4_m)))
-vuint8m4_t vnclipu(vbool2_t op0, vuint8m4_t op1, vuint16m8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8mf2)))
-vuint8mf2_t vnclipu(vuint16m1_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8mf2_m)))
-vuint8mf2_t vnclipu(vbool16_t op0, vuint8mf2_t op1, vuint16m1_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8mf4)))
-vuint8mf4_t vnclipu(vuint16mf2_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8mf4_m)))
-vuint8mf4_t vnclipu(vbool32_t op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8mf8)))
-vuint8mf8_t vnclipu(vuint16mf4_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u8mf8_m)))
-vuint8mf8_t vnclipu(vbool64_t op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u16m1)))
-vuint16m1_t vnclipu(vuint32m2_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u16m1_m)))
-vuint16m1_t vnclipu(vbool16_t op0, vuint16m1_t op1, vuint32m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u16m2)))
-vuint16m2_t vnclipu(vuint32m4_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u16m2_m)))
-vuint16m2_t vnclipu(vbool8_t op0, vuint16m2_t op1, vuint32m4_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u16m4)))
-vuint16m4_t vnclipu(vuint32m8_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u16m4_m)))
-vuint16m4_t vnclipu(vbool4_t op0, vuint16m4_t op1, vuint32m8_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u16mf2)))
-vuint16mf2_t vnclipu(vuint32m1_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u16mf2_m)))
-vuint16mf2_t vnclipu(vbool32_t op0, vuint16mf2_t op1, vuint32m1_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u16mf4)))
-vuint16mf4_t vnclipu(vuint32mf2_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u16mf4_m)))
-vuint16mf4_t vnclipu(vbool64_t op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u32m1)))
-vuint32m1_t vnclipu(vuint64m2_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u32m1_m)))
-vuint32m1_t vnclipu(vbool32_t op0, vuint32m1_t op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u32m2)))
-vuint32m2_t vnclipu(vuint64m4_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u32m2_m)))
-vuint32m2_t vnclipu(vbool16_t op0, vuint32m2_t op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u32m4)))
-vuint32m4_t vnclipu(vuint64m8_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u32m4_m)))
-vuint32m4_t vnclipu(vbool8_t op0, vuint32m4_t op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u32mf2)))
-vuint32mf2_t vnclipu(vuint64m1_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wv_u32mf2_m)))
-vuint32mf2_t vnclipu(vbool64_t op0, vuint32mf2_t op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8m1)))
-vuint8m1_t vnclipu(vuint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8m1_m)))
-vuint8m1_t vnclipu(vbool8_t op0, vuint8m1_t op1, vuint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8m2)))
-vuint8m2_t vnclipu(vuint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8m2_m)))
-vuint8m2_t vnclipu(vbool4_t op0, vuint8m2_t op1, vuint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8m4)))
-vuint8m4_t vnclipu(vuint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8m4_m)))
-vuint8m4_t vnclipu(vbool2_t op0, vuint8m4_t op1, vuint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8mf2)))
-vuint8mf2_t vnclipu(vuint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8mf2_m)))
-vuint8mf2_t vnclipu(vbool16_t op0, vuint8mf2_t op1, vuint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8mf4)))
-vuint8mf4_t vnclipu(vuint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8mf4_m)))
-vuint8mf4_t vnclipu(vbool32_t op0, vuint8mf4_t op1, vuint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8mf8)))
-vuint8mf8_t vnclipu(vuint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u8mf8_m)))
-vuint8mf8_t vnclipu(vbool64_t op0, vuint8mf8_t op1, vuint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u16m1)))
-vuint16m1_t vnclipu(vuint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u16m1_m)))
-vuint16m1_t vnclipu(vbool16_t op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u16m2)))
-vuint16m2_t vnclipu(vuint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u16m2_m)))
-vuint16m2_t vnclipu(vbool8_t op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u16m4)))
-vuint16m4_t vnclipu(vuint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u16m4_m)))
-vuint16m4_t vnclipu(vbool4_t op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u16mf2)))
-vuint16mf2_t vnclipu(vuint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u16mf2_m)))
-vuint16mf2_t vnclipu(vbool32_t op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u16mf4)))
-vuint16mf4_t vnclipu(vuint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u16mf4_m)))
-vuint16mf4_t vnclipu(vbool64_t op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u32m1)))
-vuint32m1_t vnclipu(vuint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u32m1_m)))
-vuint32m1_t vnclipu(vbool32_t op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u32m2)))
-vuint32m2_t vnclipu(vuint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u32m2_m)))
-vuint32m2_t vnclipu(vbool16_t op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u32m4)))
-vuint32m4_t vnclipu(vuint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u32m4_m)))
-vuint32m4_t vnclipu(vbool8_t op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u32mf2)))
-vuint32mf2_t vnclipu(vuint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclipu_wx_u32mf2_m)))
-vuint32mf2_t vnclipu(vbool64_t op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u32m1)))
-void vsuxei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u32m1_m)))
-void vsuxei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u32m2)))
-void vsuxei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u32m2_m)))
-void vsuxei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u32m4)))
-void vsuxei64(uint32_t * op0, vuint64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u32m4_m)))
-void vsuxei64(vbool8_t op0, uint32_t * op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u32mf2)))
-void vsuxei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u32mf2_m)))
-void vsuxei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8m1)))
-vint8m1_t vnclip(vint16m2_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8m1_m)))
-vint8m1_t vnclip(vbool8_t op0, vint8m1_t op1, vint16m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8m2)))
-vint8m2_t vnclip(vint16m4_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8m2_m)))
-vint8m2_t vnclip(vbool4_t op0, vint8m2_t op1, vint16m4_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8m4)))
-vint8m4_t vnclip(vint16m8_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8m4_m)))
-vint8m4_t vnclip(vbool2_t op0, vint8m4_t op1, vint16m8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8mf2)))
-vint8mf2_t vnclip(vint16m1_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8mf2_m)))
-vint8mf2_t vnclip(vbool16_t op0, vint8mf2_t op1, vint16m1_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8mf4)))
-vint8mf4_t vnclip(vint16mf2_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8mf4_m)))
-vint8mf4_t vnclip(vbool32_t op0, vint8mf4_t op1, vint16mf2_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8mf8)))
-vint8mf8_t vnclip(vint16mf4_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i8mf8_m)))
-vint8mf8_t vnclip(vbool64_t op0, vint8mf8_t op1, vint16mf4_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i16m1)))
-vint16m1_t vnclip(vint32m2_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i16m1_m)))
-vint16m1_t vnclip(vbool16_t op0, vint16m1_t op1, vint32m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i16m2)))
-vint16m2_t vnclip(vint32m4_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i16m2_m)))
-vint16m2_t vnclip(vbool8_t op0, vint16m2_t op1, vint32m4_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i16m4)))
-vint16m4_t vnclip(vint32m8_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i16m4_m)))
-vint16m4_t vnclip(vbool4_t op0, vint16m4_t op1, vint32m8_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i16mf2)))
-vint16mf2_t vnclip(vint32m1_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i16mf2_m)))
-vint16mf2_t vnclip(vbool32_t op0, vint16mf2_t op1, vint32m1_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i16mf4)))
-vint16mf4_t vnclip(vint32mf2_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i16mf4_m)))
-vint16mf4_t vnclip(vbool64_t op0, vint16mf4_t op1, vint32mf2_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i32m1)))
-vint32m1_t vnclip(vint64m2_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i32m1_m)))
-vint32m1_t vnclip(vbool32_t op0, vint32m1_t op1, vint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i32m2)))
-vint32m2_t vnclip(vint64m4_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i32m2_m)))
-vint32m2_t vnclip(vbool16_t op0, vint32m2_t op1, vint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i32m4)))
-vint32m4_t vnclip(vint64m8_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i32m4_m)))
-vint32m4_t vnclip(vbool8_t op0, vint32m4_t op1, vint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i32mf2)))
-vint32mf2_t vnclip(vint64m1_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wv_i32mf2_m)))
-vint32mf2_t vnclip(vbool64_t op0, vint32mf2_t op1, vint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8m1)))
-vint8m1_t vnclip(vint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8m1_m)))
-vint8m1_t vnclip(vbool8_t op0, vint8m1_t op1, vint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8m2)))
-vint8m2_t vnclip(vint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8m2_m)))
-vint8m2_t vnclip(vbool4_t op0, vint8m2_t op1, vint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8m4)))
-vint8m4_t vnclip(vint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8m4_m)))
-vint8m4_t vnclip(vbool2_t op0, vint8m4_t op1, vint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8mf2)))
-vint8mf2_t vnclip(vint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8mf2_m)))
-vint8mf2_t vnclip(vbool16_t op0, vint8mf2_t op1, vint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8mf4)))
-vint8mf4_t vnclip(vint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8mf4_m)))
-vint8mf4_t vnclip(vbool32_t op0, vint8mf4_t op1, vint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8mf8)))
-vint8mf8_t vnclip(vint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i8mf8_m)))
-vint8mf8_t vnclip(vbool64_t op0, vint8mf8_t op1, vint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i16m1)))
-vint16m1_t vnclip(vint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i16m1_m)))
-vint16m1_t vnclip(vbool16_t op0, vint16m1_t op1, vint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i16m2)))
-vint16m2_t vnclip(vint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i16m2_m)))
-vint16m2_t vnclip(vbool8_t op0, vint16m2_t op1, vint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i16m4)))
-vint16m4_t vnclip(vint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i16m4_m)))
-vint16m4_t vnclip(vbool4_t op0, vint16m4_t op1, vint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i16mf2)))
-vint16mf2_t vnclip(vint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i16mf2_m)))
-vint16mf2_t vnclip(vbool32_t op0, vint16mf2_t op1, vint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i16mf4)))
-vint16mf4_t vnclip(vint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i16mf4_m)))
-vint16mf4_t vnclip(vbool64_t op0, vint16mf4_t op1, vint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i32m1)))
-vint32m1_t vnclip(vint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i32m1_m)))
-vint32m1_t vnclip(vbool32_t op0, vint32m1_t op1, vint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i32m2)))
-vint32m2_t vnclip(vint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i32m2_m)))
-vint32m2_t vnclip(vbool16_t op0, vint32m2_t op1, vint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i32m4)))
-vint32m4_t vnclip(vint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i32m4_m)))
-vint32m4_t vnclip(vbool8_t op0, vint32m4_t op1, vint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i32mf2)))
-vint32mf2_t vnclip(vint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnclip_wx_i32mf2_m)))
-vint32mf2_t vnclip(vbool64_t op0, vint32mf2_t op1, vint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i64m1)))
-void vsuxei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i64m1_m)))
-void vsuxei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i64m2)))
-void vsuxei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i64m2_m)))
-void vsuxei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i64m4)))
-void vsuxei8(int64_t * op0, vuint8mf2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i64m4_m)))
-void vsuxei8(vbool16_t op0, int64_t * op1, vuint8mf2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i64m8)))
-void vsuxei8(int64_t * op0, vuint8m1_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_i64m8_m)))
-void vsuxei8(vbool8_t op0, int64_t * op1, vuint8m1_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u64m1)))
-void vsuxei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u64m1_m)))
-void vsuxei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u64m2)))
-void vsuxei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u64m2_m)))
-void vsuxei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u64m4)))
-void vsuxei8(uint64_t * op0, vuint8mf2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u64m4_m)))
-void vsuxei8(vbool16_t op0, uint64_t * op1, vuint8mf2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u64m8)))
-void vsuxei8(uint64_t * op0, vuint8m1_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u64m8_m)))
-void vsuxei8(vbool8_t op0, uint64_t * op1, vuint8m1_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i64m1)))
-void vsuxei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i64m1_m)))
-void vsuxei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i64m2)))
-void vsuxei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i64m2_m)))
-void vsuxei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i64m4)))
-void vsuxei16(int64_t * op0, vuint16m1_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i64m4_m)))
-void vsuxei16(vbool16_t op0, int64_t * op1, vuint16m1_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i64m8)))
-void vsuxei16(int64_t * op0, vuint16m2_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_i64m8_m)))
-void vsuxei16(vbool8_t op0, int64_t * op1, vuint16m2_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u64m1)))
-void vsuxei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u64m1_m)))
-void vsuxei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u64m2)))
-void vsuxei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u64m2_m)))
-void vsuxei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u64m4)))
-void vsuxei16(uint64_t * op0, vuint16m1_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u64m4_m)))
-void vsuxei16(vbool16_t op0, uint64_t * op1, vuint16m1_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u64m8)))
-void vsuxei16(uint64_t * op0, vuint16m2_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_u64m8_m)))
-void vsuxei16(vbool8_t op0, uint64_t * op1, vuint16m2_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i64m1)))
-void vsuxei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i64m1_m)))
-void vsuxei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i64m2)))
-void vsuxei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i64m2_m)))
-void vsuxei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i64m4)))
-void vsuxei32(int64_t * op0, vuint32m2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i64m4_m)))
-void vsuxei32(vbool16_t op0, int64_t * op1, vuint32m2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i64m8)))
-void vsuxei32(int64_t * op0, vuint32m4_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_i64m8_m)))
-void vsuxei32(vbool8_t op0, int64_t * op1, vuint32m4_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u64m1)))
-void vsuxei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u64m1_m)))
-void vsuxei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u64m2)))
-void vsuxei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u64m2_m)))
-void vsuxei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u64m4)))
-void vsuxei32(uint64_t * op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u64m4_m)))
-void vsuxei32(vbool16_t op0, uint64_t * op1, vuint32m2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u64m8)))
-void vsuxei32(uint64_t * op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_u64m8_m)))
-void vsuxei32(vbool8_t op0, uint64_t * op1, vuint32m4_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i64m1)))
-void vsuxei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i64m1_m)))
-void vsuxei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i64m2)))
-void vsuxei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i64m2_m)))
-void vsuxei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i64m4)))
-void vsuxei64(int64_t * op0, vuint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i64m4_m)))
-void vsuxei64(vbool16_t op0, int64_t * op1, vuint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i64m8)))
-void vsuxei64(int64_t * op0, vuint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_i64m8_m)))
-void vsuxei64(vbool8_t op0, int64_t * op1, vuint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8m1_i8m1)))
-vint8m1_t vredsum(vint8m1_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8m1_i8m1_m)))
-vint8m1_t vredsum(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8m2_i8m1)))
-vint8m1_t vredsum(vint8m1_t op0, vint8m2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8m2_i8m1_m)))
-vint8m1_t vredsum(vbool4_t op0, vint8m1_t op1, vint8m2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8m4_i8m1)))
-vint8m1_t vredsum(vint8m1_t op0, vint8m4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8m4_i8m1_m)))
-vint8m1_t vredsum(vbool2_t op0, vint8m1_t op1, vint8m4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8m8_i8m1)))
-vint8m1_t vredsum(vint8m1_t op0, vint8m8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8m8_i8m1_m)))
-vint8m1_t vredsum(vbool1_t op0, vint8m1_t op1, vint8m8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8mf2_i8m1)))
-vint8m1_t vredsum(vint8m1_t op0, vint8mf2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8mf2_i8m1_m)))
-vint8m1_t vredsum(vbool16_t op0, vint8m1_t op1, vint8mf2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8mf4_i8m1)))
-vint8m1_t vredsum(vint8m1_t op0, vint8mf4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8mf4_i8m1_m)))
-vint8m1_t vredsum(vbool32_t op0, vint8m1_t op1, vint8mf4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8mf8_i8m1)))
-vint8m1_t vredsum(vint8m1_t op0, vint8mf8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i8mf8_i8m1_m)))
-vint8m1_t vredsum(vbool64_t op0, vint8m1_t op1, vint8mf8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16m1_i16m1)))
-vint16m1_t vredsum(vint16m1_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16m1_i16m1_m)))
-vint16m1_t vredsum(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16m2_i16m1)))
-vint16m1_t vredsum(vint16m1_t op0, vint16m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16m2_i16m1_m)))
-vint16m1_t vredsum(vbool8_t op0, vint16m1_t op1, vint16m2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16m4_i16m1)))
-vint16m1_t vredsum(vint16m1_t op0, vint16m4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16m4_i16m1_m)))
-vint16m1_t vredsum(vbool4_t op0, vint16m1_t op1, vint16m4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16m8_i16m1)))
-vint16m1_t vredsum(vint16m1_t op0, vint16m8_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16m8_i16m1_m)))
-vint16m1_t vredsum(vbool2_t op0, vint16m1_t op1, vint16m8_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16mf2_i16m1)))
-vint16m1_t vredsum(vint16m1_t op0, vint16mf2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16mf2_i16m1_m)))
-vint16m1_t vredsum(vbool32_t op0, vint16m1_t op1, vint16mf2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16mf4_i16m1)))
-vint16m1_t vredsum(vint16m1_t op0, vint16mf4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i16mf4_i16m1_m)))
-vint16m1_t vredsum(vbool64_t op0, vint16m1_t op1, vint16mf4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i32m1_i32m1)))
-vint32m1_t vredsum(vint32m1_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i32m1_i32m1_m)))
-vint32m1_t vredsum(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i32m2_i32m1)))
-vint32m1_t vredsum(vint32m1_t op0, vint32m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i32m2_i32m1_m)))
-vint32m1_t vredsum(vbool16_t op0, vint32m1_t op1, vint32m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i32m4_i32m1)))
-vint32m1_t vredsum(vint32m1_t op0, vint32m4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i32m4_i32m1_m)))
-vint32m1_t vredsum(vbool8_t op0, vint32m1_t op1, vint32m4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i32m8_i32m1)))
-vint32m1_t vredsum(vint32m1_t op0, vint32m8_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i32m8_i32m1_m)))
-vint32m1_t vredsum(vbool4_t op0, vint32m1_t op1, vint32m8_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i32mf2_i32m1)))
-vint32m1_t vredsum(vint32m1_t op0, vint32mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i32mf2_i32m1_m)))
-vint32m1_t vredsum(vbool64_t op0, vint32m1_t op1, vint32mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i64m1_i64m1)))
-vint64m1_t vredsum(vint64m1_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i64m1_i64m1_m)))
-vint64m1_t vredsum(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i64m2_i64m1)))
-vint64m1_t vredsum(vint64m1_t op0, vint64m2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i64m2_i64m1_m)))
-vint64m1_t vredsum(vbool32_t op0, vint64m1_t op1, vint64m2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i64m4_i64m1)))
-vint64m1_t vredsum(vint64m1_t op0, vint64m4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i64m4_i64m1_m)))
-vint64m1_t vredsum(vbool16_t op0, vint64m1_t op1, vint64m4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i64m8_i64m1)))
-vint64m1_t vredsum(vint64m1_t op0, vint64m8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_i64m8_i64m1_m)))
-vint64m1_t vredsum(vbool8_t op0, vint64m1_t op1, vint64m8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8m1_u8m1)))
-vuint8m1_t vredsum(vuint8m1_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8m1_u8m1_m)))
-vuint8m1_t vredsum(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8m2_u8m1)))
-vuint8m1_t vredsum(vuint8m1_t op0, vuint8m2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8m2_u8m1_m)))
-vuint8m1_t vredsum(vbool4_t op0, vuint8m1_t op1, vuint8m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8m4_u8m1)))
-vuint8m1_t vredsum(vuint8m1_t op0, vuint8m4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8m4_u8m1_m)))
-vuint8m1_t vredsum(vbool2_t op0, vuint8m1_t op1, vuint8m4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8m8_u8m1)))
-vuint8m1_t vredsum(vuint8m1_t op0, vuint8m8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8m8_u8m1_m)))
-vuint8m1_t vredsum(vbool1_t op0, vuint8m1_t op1, vuint8m8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8mf2_u8m1)))
-vuint8m1_t vredsum(vuint8m1_t op0, vuint8mf2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8mf2_u8m1_m)))
-vuint8m1_t vredsum(vbool16_t op0, vuint8m1_t op1, vuint8mf2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8mf4_u8m1)))
-vuint8m1_t vredsum(vuint8m1_t op0, vuint8mf4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8mf4_u8m1_m)))
-vuint8m1_t vredsum(vbool32_t op0, vuint8m1_t op1, vuint8mf4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8mf8_u8m1)))
-vuint8m1_t vredsum(vuint8m1_t op0, vuint8mf8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u8mf8_u8m1_m)))
-vuint8m1_t vredsum(vbool64_t op0, vuint8m1_t op1, vuint8mf8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16m1_u16m1)))
-vuint16m1_t vredsum(vuint16m1_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16m1_u16m1_m)))
-vuint16m1_t vredsum(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16m2_u16m1)))
-vuint16m1_t vredsum(vuint16m1_t op0, vuint16m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16m2_u16m1_m)))
-vuint16m1_t vredsum(vbool8_t op0, vuint16m1_t op1, vuint16m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16m4_u16m1)))
-vuint16m1_t vredsum(vuint16m1_t op0, vuint16m4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16m4_u16m1_m)))
-vuint16m1_t vredsum(vbool4_t op0, vuint16m1_t op1, vuint16m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16m8_u16m1)))
-vuint16m1_t vredsum(vuint16m1_t op0, vuint16m8_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16m8_u16m1_m)))
-vuint16m1_t vredsum(vbool2_t op0, vuint16m1_t op1, vuint16m8_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16mf2_u16m1)))
-vuint16m1_t vredsum(vuint16m1_t op0, vuint16mf2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16mf2_u16m1_m)))
-vuint16m1_t vredsum(vbool32_t op0, vuint16m1_t op1, vuint16mf2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16mf4_u16m1)))
-vuint16m1_t vredsum(vuint16m1_t op0, vuint16mf4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u16mf4_u16m1_m)))
-vuint16m1_t vredsum(vbool64_t op0, vuint16m1_t op1, vuint16mf4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u32m1_u32m1)))
-vuint32m1_t vredsum(vuint32m1_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u32m1_u32m1_m)))
-vuint32m1_t vredsum(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u32m2_u32m1)))
-vuint32m1_t vredsum(vuint32m1_t op0, vuint32m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u32m2_u32m1_m)))
-vuint32m1_t vredsum(vbool16_t op0, vuint32m1_t op1, vuint32m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u32m4_u32m1)))
-vuint32m1_t vredsum(vuint32m1_t op0, vuint32m4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u32m4_u32m1_m)))
-vuint32m1_t vredsum(vbool8_t op0, vuint32m1_t op1, vuint32m4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u32m8_u32m1)))
-vuint32m1_t vredsum(vuint32m1_t op0, vuint32m8_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u32m8_u32m1_m)))
-vuint32m1_t vredsum(vbool4_t op0, vuint32m1_t op1, vuint32m8_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u32mf2_u32m1)))
-vuint32m1_t vredsum(vuint32m1_t op0, vuint32mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u32mf2_u32m1_m)))
-vuint32m1_t vredsum(vbool64_t op0, vuint32m1_t op1, vuint32mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u64m1_u64m1)))
-vuint64m1_t vredsum(vuint64m1_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u64m1_u64m1_m)))
-vuint64m1_t vredsum(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u64m2_u64m1)))
-vuint64m1_t vredsum(vuint64m1_t op0, vuint64m2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u64m2_u64m1_m)))
-vuint64m1_t vredsum(vbool32_t op0, vuint64m1_t op1, vuint64m2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u64m4_u64m1)))
-vuint64m1_t vredsum(vuint64m1_t op0, vuint64m4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u64m4_u64m1_m)))
-vuint64m1_t vredsum(vbool16_t op0, vuint64m1_t op1, vuint64m4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u64m8_u64m1)))
-vuint64m1_t vredsum(vuint64m1_t op0, vuint64m8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredsum_vs_u64m8_u64m1_m)))
-vuint64m1_t vredsum(vbool8_t op0, vuint64m1_t op1, vuint64m8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8m1_u8m1)))
-vuint8m1_t vredmaxu(vuint8m1_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8m1_u8m1_m)))
-vuint8m1_t vredmaxu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8m2_u8m1)))
-vuint8m1_t vredmaxu(vuint8m1_t op0, vuint8m2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8m2_u8m1_m)))
-vuint8m1_t vredmaxu(vbool4_t op0, vuint8m1_t op1, vuint8m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8m4_u8m1)))
-vuint8m1_t vredmaxu(vuint8m1_t op0, vuint8m4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8m4_u8m1_m)))
-vuint8m1_t vredmaxu(vbool2_t op0, vuint8m1_t op1, vuint8m4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8m8_u8m1)))
-vuint8m1_t vredmaxu(vuint8m1_t op0, vuint8m8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8m8_u8m1_m)))
-vuint8m1_t vredmaxu(vbool1_t op0, vuint8m1_t op1, vuint8m8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8mf2_u8m1)))
-vuint8m1_t vredmaxu(vuint8m1_t op0, vuint8mf2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8mf2_u8m1_m)))
-vuint8m1_t vredmaxu(vbool16_t op0, vuint8m1_t op1, vuint8mf2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8mf4_u8m1)))
-vuint8m1_t vredmaxu(vuint8m1_t op0, vuint8mf4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8mf4_u8m1_m)))
-vuint8m1_t vredmaxu(vbool32_t op0, vuint8m1_t op1, vuint8mf4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8mf8_u8m1)))
-vuint8m1_t vredmaxu(vuint8m1_t op0, vuint8mf8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u8mf8_u8m1_m)))
-vuint8m1_t vredmaxu(vbool64_t op0, vuint8m1_t op1, vuint8mf8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16m1_u16m1)))
-vuint16m1_t vredmaxu(vuint16m1_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16m1_u16m1_m)))
-vuint16m1_t vredmaxu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16m2_u16m1)))
-vuint16m1_t vredmaxu(vuint16m1_t op0, vuint16m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16m2_u16m1_m)))
-vuint16m1_t vredmaxu(vbool8_t op0, vuint16m1_t op1, vuint16m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16m4_u16m1)))
-vuint16m1_t vredmaxu(vuint16m1_t op0, vuint16m4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16m4_u16m1_m)))
-vuint16m1_t vredmaxu(vbool4_t op0, vuint16m1_t op1, vuint16m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16m8_u16m1)))
-vuint16m1_t vredmaxu(vuint16m1_t op0, vuint16m8_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16m8_u16m1_m)))
-vuint16m1_t vredmaxu(vbool2_t op0, vuint16m1_t op1, vuint16m8_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16mf2_u16m1)))
-vuint16m1_t vredmaxu(vuint16m1_t op0, vuint16mf2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16mf2_u16m1_m)))
-vuint16m1_t vredmaxu(vbool32_t op0, vuint16m1_t op1, vuint16mf2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16mf4_u16m1)))
-vuint16m1_t vredmaxu(vuint16m1_t op0, vuint16mf4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u16mf4_u16m1_m)))
-vuint16m1_t vredmaxu(vbool64_t op0, vuint16m1_t op1, vuint16mf4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u32m1_u32m1)))
-vuint32m1_t vredmaxu(vuint32m1_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u32m1_u32m1_m)))
-vuint32m1_t vredmaxu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u32m2_u32m1)))
-vuint32m1_t vredmaxu(vuint32m1_t op0, vuint32m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u32m2_u32m1_m)))
-vuint32m1_t vredmaxu(vbool16_t op0, vuint32m1_t op1, vuint32m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u32m4_u32m1)))
-vuint32m1_t vredmaxu(vuint32m1_t op0, vuint32m4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u32m4_u32m1_m)))
-vuint32m1_t vredmaxu(vbool8_t op0, vuint32m1_t op1, vuint32m4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u32m8_u32m1)))
-vuint32m1_t vredmaxu(vuint32m1_t op0, vuint32m8_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u32m8_u32m1_m)))
-vuint32m1_t vredmaxu(vbool4_t op0, vuint32m1_t op1, vuint32m8_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u32mf2_u32m1)))
-vuint32m1_t vredmaxu(vuint32m1_t op0, vuint32mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u32mf2_u32m1_m)))
-vuint32m1_t vredmaxu(vbool64_t op0, vuint32m1_t op1, vuint32mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u64m1_u64m1)))
-vuint64m1_t vredmaxu(vuint64m1_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u64m1_u64m1_m)))
-vuint64m1_t vredmaxu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u64m2_u64m1)))
-vuint64m1_t vredmaxu(vuint64m1_t op0, vuint64m2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u64m2_u64m1_m)))
-vuint64m1_t vredmaxu(vbool32_t op0, vuint64m1_t op1, vuint64m2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u64m4_u64m1)))
-vuint64m1_t vredmaxu(vuint64m1_t op0, vuint64m4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u64m4_u64m1_m)))
-vuint64m1_t vredmaxu(vbool16_t op0, vuint64m1_t op1, vuint64m4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u64m8_u64m1)))
-vuint64m1_t vredmaxu(vuint64m1_t op0, vuint64m8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmaxu_vs_u64m8_u64m1_m)))
-vuint64m1_t vredmaxu(vbool8_t op0, vuint64m1_t op1, vuint64m8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8m1_i8m1)))
-vint8m1_t vredmax(vint8m1_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8m1_i8m1_m)))
-vint8m1_t vredmax(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8m2_i8m1)))
-vint8m1_t vredmax(vint8m1_t op0, vint8m2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8m2_i8m1_m)))
-vint8m1_t vredmax(vbool4_t op0, vint8m1_t op1, vint8m2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8m4_i8m1)))
-vint8m1_t vredmax(vint8m1_t op0, vint8m4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8m4_i8m1_m)))
-vint8m1_t vredmax(vbool2_t op0, vint8m1_t op1, vint8m4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8m8_i8m1)))
-vint8m1_t vredmax(vint8m1_t op0, vint8m8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8m8_i8m1_m)))
-vint8m1_t vredmax(vbool1_t op0, vint8m1_t op1, vint8m8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8mf2_i8m1)))
-vint8m1_t vredmax(vint8m1_t op0, vint8mf2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8mf2_i8m1_m)))
-vint8m1_t vredmax(vbool16_t op0, vint8m1_t op1, vint8mf2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8mf4_i8m1)))
-vint8m1_t vredmax(vint8m1_t op0, vint8mf4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8mf4_i8m1_m)))
-vint8m1_t vredmax(vbool32_t op0, vint8m1_t op1, vint8mf4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8mf8_i8m1)))
-vint8m1_t vredmax(vint8m1_t op0, vint8mf8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i8mf8_i8m1_m)))
-vint8m1_t vredmax(vbool64_t op0, vint8m1_t op1, vint8mf8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16m1_i16m1)))
-vint16m1_t vredmax(vint16m1_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16m1_i16m1_m)))
-vint16m1_t vredmax(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16m2_i16m1)))
-vint16m1_t vredmax(vint16m1_t op0, vint16m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16m2_i16m1_m)))
-vint16m1_t vredmax(vbool8_t op0, vint16m1_t op1, vint16m2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16m4_i16m1)))
-vint16m1_t vredmax(vint16m1_t op0, vint16m4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16m4_i16m1_m)))
-vint16m1_t vredmax(vbool4_t op0, vint16m1_t op1, vint16m4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16m8_i16m1)))
-vint16m1_t vredmax(vint16m1_t op0, vint16m8_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16m8_i16m1_m)))
-vint16m1_t vredmax(vbool2_t op0, vint16m1_t op1, vint16m8_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16mf2_i16m1)))
-vint16m1_t vredmax(vint16m1_t op0, vint16mf2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16mf2_i16m1_m)))
-vint16m1_t vredmax(vbool32_t op0, vint16m1_t op1, vint16mf2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16mf4_i16m1)))
-vint16m1_t vredmax(vint16m1_t op0, vint16mf4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i16mf4_i16m1_m)))
-vint16m1_t vredmax(vbool64_t op0, vint16m1_t op1, vint16mf4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i32m1_i32m1)))
-vint32m1_t vredmax(vint32m1_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i32m1_i32m1_m)))
-vint32m1_t vredmax(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i32m2_i32m1)))
-vint32m1_t vredmax(vint32m1_t op0, vint32m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i32m2_i32m1_m)))
-vint32m1_t vredmax(vbool16_t op0, vint32m1_t op1, vint32m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i32m4_i32m1)))
-vint32m1_t vredmax(vint32m1_t op0, vint32m4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i32m4_i32m1_m)))
-vint32m1_t vredmax(vbool8_t op0, vint32m1_t op1, vint32m4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i32m8_i32m1)))
-vint32m1_t vredmax(vint32m1_t op0, vint32m8_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i32m8_i32m1_m)))
-vint32m1_t vredmax(vbool4_t op0, vint32m1_t op1, vint32m8_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i32mf2_i32m1)))
-vint32m1_t vredmax(vint32m1_t op0, vint32mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i32mf2_i32m1_m)))
-vint32m1_t vredmax(vbool64_t op0, vint32m1_t op1, vint32mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i64m1_i64m1)))
-vint64m1_t vredmax(vint64m1_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i64m1_i64m1_m)))
-vint64m1_t vredmax(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i64m2_i64m1)))
-vint64m1_t vredmax(vint64m1_t op0, vint64m2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i64m2_i64m1_m)))
-vint64m1_t vredmax(vbool32_t op0, vint64m1_t op1, vint64m2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i64m4_i64m1)))
-vint64m1_t vredmax(vint64m1_t op0, vint64m4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i64m4_i64m1_m)))
-vint64m1_t vredmax(vbool16_t op0, vint64m1_t op1, vint64m4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i64m8_i64m1)))
-vint64m1_t vredmax(vint64m1_t op0, vint64m8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmax_vs_i64m8_i64m1_m)))
-vint64m1_t vredmax(vbool8_t op0, vint64m1_t op1, vint64m8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8m1_u8m1)))
-vuint8m1_t vredminu(vuint8m1_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8m1_u8m1_m)))
-vuint8m1_t vredminu(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8m2_u8m1)))
-vuint8m1_t vredminu(vuint8m1_t op0, vuint8m2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8m2_u8m1_m)))
-vuint8m1_t vredminu(vbool4_t op0, vuint8m1_t op1, vuint8m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8m4_u8m1)))
-vuint8m1_t vredminu(vuint8m1_t op0, vuint8m4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8m4_u8m1_m)))
-vuint8m1_t vredminu(vbool2_t op0, vuint8m1_t op1, vuint8m4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8m8_u8m1)))
-vuint8m1_t vredminu(vuint8m1_t op0, vuint8m8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8m8_u8m1_m)))
-vuint8m1_t vredminu(vbool1_t op0, vuint8m1_t op1, vuint8m8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8mf2_u8m1)))
-vuint8m1_t vredminu(vuint8m1_t op0, vuint8mf2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8mf2_u8m1_m)))
-vuint8m1_t vredminu(vbool16_t op0, vuint8m1_t op1, vuint8mf2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8mf4_u8m1)))
-vuint8m1_t vredminu(vuint8m1_t op0, vuint8mf4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8mf4_u8m1_m)))
-vuint8m1_t vredminu(vbool32_t op0, vuint8m1_t op1, vuint8mf4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8mf8_u8m1)))
-vuint8m1_t vredminu(vuint8m1_t op0, vuint8mf8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u8mf8_u8m1_m)))
-vuint8m1_t vredminu(vbool64_t op0, vuint8m1_t op1, vuint8mf8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16m1_u16m1)))
-vuint16m1_t vredminu(vuint16m1_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16m1_u16m1_m)))
-vuint16m1_t vredminu(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16m2_u16m1)))
-vuint16m1_t vredminu(vuint16m1_t op0, vuint16m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16m2_u16m1_m)))
-vuint16m1_t vredminu(vbool8_t op0, vuint16m1_t op1, vuint16m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16m4_u16m1)))
-vuint16m1_t vredminu(vuint16m1_t op0, vuint16m4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16m4_u16m1_m)))
-vuint16m1_t vredminu(vbool4_t op0, vuint16m1_t op1, vuint16m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16m8_u16m1)))
-vuint16m1_t vredminu(vuint16m1_t op0, vuint16m8_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16m8_u16m1_m)))
-vuint16m1_t vredminu(vbool2_t op0, vuint16m1_t op1, vuint16m8_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16mf2_u16m1)))
-vuint16m1_t vredminu(vuint16m1_t op0, vuint16mf2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16mf2_u16m1_m)))
-vuint16m1_t vredminu(vbool32_t op0, vuint16m1_t op1, vuint16mf2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16mf4_u16m1)))
-vuint16m1_t vredminu(vuint16m1_t op0, vuint16mf4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u16mf4_u16m1_m)))
-vuint16m1_t vredminu(vbool64_t op0, vuint16m1_t op1, vuint16mf4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u32m1_u32m1)))
-vuint32m1_t vredminu(vuint32m1_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u32m1_u32m1_m)))
-vuint32m1_t vredminu(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u32m2_u32m1)))
-vuint32m1_t vredminu(vuint32m1_t op0, vuint32m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u32m2_u32m1_m)))
-vuint32m1_t vredminu(vbool16_t op0, vuint32m1_t op1, vuint32m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u32m4_u32m1)))
-vuint32m1_t vredminu(vuint32m1_t op0, vuint32m4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u32m4_u32m1_m)))
-vuint32m1_t vredminu(vbool8_t op0, vuint32m1_t op1, vuint32m4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u32m8_u32m1)))
-vuint32m1_t vredminu(vuint32m1_t op0, vuint32m8_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u32m8_u32m1_m)))
-vuint32m1_t vredminu(vbool4_t op0, vuint32m1_t op1, vuint32m8_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u32mf2_u32m1)))
-vuint32m1_t vredminu(vuint32m1_t op0, vuint32mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u32mf2_u32m1_m)))
-vuint32m1_t vredminu(vbool64_t op0, vuint32m1_t op1, vuint32mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u64m1_u64m1)))
-vuint64m1_t vredminu(vuint64m1_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u64m1_u64m1_m)))
-vuint64m1_t vredminu(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u64m2_u64m1)))
-vuint64m1_t vredminu(vuint64m1_t op0, vuint64m2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u64m2_u64m1_m)))
-vuint64m1_t vredminu(vbool32_t op0, vuint64m1_t op1, vuint64m2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u64m4_u64m1)))
-vuint64m1_t vredminu(vuint64m1_t op0, vuint64m4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u64m4_u64m1_m)))
-vuint64m1_t vredminu(vbool16_t op0, vuint64m1_t op1, vuint64m4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u64m8_u64m1)))
-vuint64m1_t vredminu(vuint64m1_t op0, vuint64m8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredminu_vs_u64m8_u64m1_m)))
-vuint64m1_t vredminu(vbool8_t op0, vuint64m1_t op1, vuint64m8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8m1_i8m1)))
-vint8m1_t vredmin(vint8m1_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8m1_i8m1_m)))
-vint8m1_t vredmin(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8m2_i8m1)))
-vint8m1_t vredmin(vint8m1_t op0, vint8m2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8m2_i8m1_m)))
-vint8m1_t vredmin(vbool4_t op0, vint8m1_t op1, vint8m2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8m4_i8m1)))
-vint8m1_t vredmin(vint8m1_t op0, vint8m4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8m4_i8m1_m)))
-vint8m1_t vredmin(vbool2_t op0, vint8m1_t op1, vint8m4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8m8_i8m1)))
-vint8m1_t vredmin(vint8m1_t op0, vint8m8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8m8_i8m1_m)))
-vint8m1_t vredmin(vbool1_t op0, vint8m1_t op1, vint8m8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8mf2_i8m1)))
-vint8m1_t vredmin(vint8m1_t op0, vint8mf2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8mf2_i8m1_m)))
-vint8m1_t vredmin(vbool16_t op0, vint8m1_t op1, vint8mf2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8mf4_i8m1)))
-vint8m1_t vredmin(vint8m1_t op0, vint8mf4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8mf4_i8m1_m)))
-vint8m1_t vredmin(vbool32_t op0, vint8m1_t op1, vint8mf4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8mf8_i8m1)))
-vint8m1_t vredmin(vint8m1_t op0, vint8mf8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i8mf8_i8m1_m)))
-vint8m1_t vredmin(vbool64_t op0, vint8m1_t op1, vint8mf8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16m1_i16m1)))
-vint16m1_t vredmin(vint16m1_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16m1_i16m1_m)))
-vint16m1_t vredmin(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16m2_i16m1)))
-vint16m1_t vredmin(vint16m1_t op0, vint16m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16m2_i16m1_m)))
-vint16m1_t vredmin(vbool8_t op0, vint16m1_t op1, vint16m2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16m4_i16m1)))
-vint16m1_t vredmin(vint16m1_t op0, vint16m4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16m4_i16m1_m)))
-vint16m1_t vredmin(vbool4_t op0, vint16m1_t op1, vint16m4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16m8_i16m1)))
-vint16m1_t vredmin(vint16m1_t op0, vint16m8_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16m8_i16m1_m)))
-vint16m1_t vredmin(vbool2_t op0, vint16m1_t op1, vint16m8_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16mf2_i16m1)))
-vint16m1_t vredmin(vint16m1_t op0, vint16mf2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16mf2_i16m1_m)))
-vint16m1_t vredmin(vbool32_t op0, vint16m1_t op1, vint16mf2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16mf4_i16m1)))
-vint16m1_t vredmin(vint16m1_t op0, vint16mf4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i16mf4_i16m1_m)))
-vint16m1_t vredmin(vbool64_t op0, vint16m1_t op1, vint16mf4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i32m1_i32m1)))
-vint32m1_t vredmin(vint32m1_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i32m1_i32m1_m)))
-vint32m1_t vredmin(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i32m2_i32m1)))
-vint32m1_t vredmin(vint32m1_t op0, vint32m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i32m2_i32m1_m)))
-vint32m1_t vredmin(vbool16_t op0, vint32m1_t op1, vint32m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i32m4_i32m1)))
-vint32m1_t vredmin(vint32m1_t op0, vint32m4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i32m4_i32m1_m)))
-vint32m1_t vredmin(vbool8_t op0, vint32m1_t op1, vint32m4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i32m8_i32m1)))
-vint32m1_t vredmin(vint32m1_t op0, vint32m8_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i32m8_i32m1_m)))
-vint32m1_t vredmin(vbool4_t op0, vint32m1_t op1, vint32m8_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i32mf2_i32m1)))
-vint32m1_t vredmin(vint32m1_t op0, vint32mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i32mf2_i32m1_m)))
-vint32m1_t vredmin(vbool64_t op0, vint32m1_t op1, vint32mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i64m1_i64m1)))
-vint64m1_t vredmin(vint64m1_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i64m1_i64m1_m)))
-vint64m1_t vredmin(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i64m2_i64m1)))
-vint64m1_t vredmin(vint64m1_t op0, vint64m2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i64m2_i64m1_m)))
-vint64m1_t vredmin(vbool32_t op0, vint64m1_t op1, vint64m2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i64m4_i64m1)))
-vint64m1_t vredmin(vint64m1_t op0, vint64m4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i64m4_i64m1_m)))
-vint64m1_t vredmin(vbool16_t op0, vint64m1_t op1, vint64m4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i64m8_i64m1)))
-vint64m1_t vredmin(vint64m1_t op0, vint64m8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredmin_vs_i64m8_i64m1_m)))
-vint64m1_t vredmin(vbool8_t op0, vint64m1_t op1, vint64m8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8m1_i8m1)))
-vint8m1_t vredand(vint8m1_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8m1_i8m1_m)))
-vint8m1_t vredand(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8m2_i8m1)))
-vint8m1_t vredand(vint8m1_t op0, vint8m2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8m2_i8m1_m)))
-vint8m1_t vredand(vbool4_t op0, vint8m1_t op1, vint8m2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8m4_i8m1)))
-vint8m1_t vredand(vint8m1_t op0, vint8m4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8m4_i8m1_m)))
-vint8m1_t vredand(vbool2_t op0, vint8m1_t op1, vint8m4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8m8_i8m1)))
-vint8m1_t vredand(vint8m1_t op0, vint8m8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8m8_i8m1_m)))
-vint8m1_t vredand(vbool1_t op0, vint8m1_t op1, vint8m8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8mf2_i8m1)))
-vint8m1_t vredand(vint8m1_t op0, vint8mf2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8mf2_i8m1_m)))
-vint8m1_t vredand(vbool16_t op0, vint8m1_t op1, vint8mf2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8mf4_i8m1)))
-vint8m1_t vredand(vint8m1_t op0, vint8mf4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8mf4_i8m1_m)))
-vint8m1_t vredand(vbool32_t op0, vint8m1_t op1, vint8mf4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8mf8_i8m1)))
-vint8m1_t vredand(vint8m1_t op0, vint8mf8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i8mf8_i8m1_m)))
-vint8m1_t vredand(vbool64_t op0, vint8m1_t op1, vint8mf8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16m1_i16m1)))
-vint16m1_t vredand(vint16m1_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16m1_i16m1_m)))
-vint16m1_t vredand(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16m2_i16m1)))
-vint16m1_t vredand(vint16m1_t op0, vint16m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16m2_i16m1_m)))
-vint16m1_t vredand(vbool8_t op0, vint16m1_t op1, vint16m2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16m4_i16m1)))
-vint16m1_t vredand(vint16m1_t op0, vint16m4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16m4_i16m1_m)))
-vint16m1_t vredand(vbool4_t op0, vint16m1_t op1, vint16m4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16m8_i16m1)))
-vint16m1_t vredand(vint16m1_t op0, vint16m8_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16m8_i16m1_m)))
-vint16m1_t vredand(vbool2_t op0, vint16m1_t op1, vint16m8_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16mf2_i16m1)))
-vint16m1_t vredand(vint16m1_t op0, vint16mf2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16mf2_i16m1_m)))
-vint16m1_t vredand(vbool32_t op0, vint16m1_t op1, vint16mf2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16mf4_i16m1)))
-vint16m1_t vredand(vint16m1_t op0, vint16mf4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i16mf4_i16m1_m)))
-vint16m1_t vredand(vbool64_t op0, vint16m1_t op1, vint16mf4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i32m1_i32m1)))
-vint32m1_t vredand(vint32m1_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i32m1_i32m1_m)))
-vint32m1_t vredand(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i32m2_i32m1)))
-vint32m1_t vredand(vint32m1_t op0, vint32m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i32m2_i32m1_m)))
-vint32m1_t vredand(vbool16_t op0, vint32m1_t op1, vint32m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i32m4_i32m1)))
-vint32m1_t vredand(vint32m1_t op0, vint32m4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i32m4_i32m1_m)))
-vint32m1_t vredand(vbool8_t op0, vint32m1_t op1, vint32m4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i32m8_i32m1)))
-vint32m1_t vredand(vint32m1_t op0, vint32m8_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i32m8_i32m1_m)))
-vint32m1_t vredand(vbool4_t op0, vint32m1_t op1, vint32m8_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i32mf2_i32m1)))
-vint32m1_t vredand(vint32m1_t op0, vint32mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i32mf2_i32m1_m)))
-vint32m1_t vredand(vbool64_t op0, vint32m1_t op1, vint32mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i64m1_i64m1)))
-vint64m1_t vredand(vint64m1_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i64m1_i64m1_m)))
-vint64m1_t vredand(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i64m2_i64m1)))
-vint64m1_t vredand(vint64m1_t op0, vint64m2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i64m2_i64m1_m)))
-vint64m1_t vredand(vbool32_t op0, vint64m1_t op1, vint64m2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i64m4_i64m1)))
-vint64m1_t vredand(vint64m1_t op0, vint64m4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i64m4_i64m1_m)))
-vint64m1_t vredand(vbool16_t op0, vint64m1_t op1, vint64m4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i64m8_i64m1)))
-vint64m1_t vredand(vint64m1_t op0, vint64m8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_i64m8_i64m1_m)))
-vint64m1_t vredand(vbool8_t op0, vint64m1_t op1, vint64m8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8m1_u8m1)))
-vuint8m1_t vredand(vuint8m1_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8m1_u8m1_m)))
-vuint8m1_t vredand(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8m2_u8m1)))
-vuint8m1_t vredand(vuint8m1_t op0, vuint8m2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8m2_u8m1_m)))
-vuint8m1_t vredand(vbool4_t op0, vuint8m1_t op1, vuint8m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8m4_u8m1)))
-vuint8m1_t vredand(vuint8m1_t op0, vuint8m4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8m4_u8m1_m)))
-vuint8m1_t vredand(vbool2_t op0, vuint8m1_t op1, vuint8m4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8m8_u8m1)))
-vuint8m1_t vredand(vuint8m1_t op0, vuint8m8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8m8_u8m1_m)))
-vuint8m1_t vredand(vbool1_t op0, vuint8m1_t op1, vuint8m8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8mf2_u8m1)))
-vuint8m1_t vredand(vuint8m1_t op0, vuint8mf2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8mf2_u8m1_m)))
-vuint8m1_t vredand(vbool16_t op0, vuint8m1_t op1, vuint8mf2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8mf4_u8m1)))
-vuint8m1_t vredand(vuint8m1_t op0, vuint8mf4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8mf4_u8m1_m)))
-vuint8m1_t vredand(vbool32_t op0, vuint8m1_t op1, vuint8mf4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8mf8_u8m1)))
-vuint8m1_t vredand(vuint8m1_t op0, vuint8mf8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u8mf8_u8m1_m)))
-vuint8m1_t vredand(vbool64_t op0, vuint8m1_t op1, vuint8mf8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16m1_u16m1)))
-vuint16m1_t vredand(vuint16m1_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16m1_u16m1_m)))
-vuint16m1_t vredand(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16m2_u16m1)))
-vuint16m1_t vredand(vuint16m1_t op0, vuint16m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16m2_u16m1_m)))
-vuint16m1_t vredand(vbool8_t op0, vuint16m1_t op1, vuint16m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16m4_u16m1)))
-vuint16m1_t vredand(vuint16m1_t op0, vuint16m4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16m4_u16m1_m)))
-vuint16m1_t vredand(vbool4_t op0, vuint16m1_t op1, vuint16m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16m8_u16m1)))
-vuint16m1_t vredand(vuint16m1_t op0, vuint16m8_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16m8_u16m1_m)))
-vuint16m1_t vredand(vbool2_t op0, vuint16m1_t op1, vuint16m8_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16mf2_u16m1)))
-vuint16m1_t vredand(vuint16m1_t op0, vuint16mf2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16mf2_u16m1_m)))
-vuint16m1_t vredand(vbool32_t op0, vuint16m1_t op1, vuint16mf2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16mf4_u16m1)))
-vuint16m1_t vredand(vuint16m1_t op0, vuint16mf4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u16mf4_u16m1_m)))
-vuint16m1_t vredand(vbool64_t op0, vuint16m1_t op1, vuint16mf4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u32m1_u32m1)))
-vuint32m1_t vredand(vuint32m1_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u32m1_u32m1_m)))
-vuint32m1_t vredand(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u32m2_u32m1)))
-vuint32m1_t vredand(vuint32m1_t op0, vuint32m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u32m2_u32m1_m)))
-vuint32m1_t vredand(vbool16_t op0, vuint32m1_t op1, vuint32m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u32m4_u32m1)))
-vuint32m1_t vredand(vuint32m1_t op0, vuint32m4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u32m4_u32m1_m)))
-vuint32m1_t vredand(vbool8_t op0, vuint32m1_t op1, vuint32m4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u32m8_u32m1)))
-vuint32m1_t vredand(vuint32m1_t op0, vuint32m8_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u32m8_u32m1_m)))
-vuint32m1_t vredand(vbool4_t op0, vuint32m1_t op1, vuint32m8_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u32mf2_u32m1)))
-vuint32m1_t vredand(vuint32m1_t op0, vuint32mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u32mf2_u32m1_m)))
-vuint32m1_t vredand(vbool64_t op0, vuint32m1_t op1, vuint32mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u64m1_u64m1)))
-vuint64m1_t vredand(vuint64m1_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u64m1_u64m1_m)))
-vuint64m1_t vredand(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u64m2_u64m1)))
-vuint64m1_t vredand(vuint64m1_t op0, vuint64m2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u64m2_u64m1_m)))
-vuint64m1_t vredand(vbool32_t op0, vuint64m1_t op1, vuint64m2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u64m4_u64m1)))
-vuint64m1_t vredand(vuint64m1_t op0, vuint64m4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u64m4_u64m1_m)))
-vuint64m1_t vredand(vbool16_t op0, vuint64m1_t op1, vuint64m4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u64m8_u64m1)))
-vuint64m1_t vredand(vuint64m1_t op0, vuint64m8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredand_vs_u64m8_u64m1_m)))
-vuint64m1_t vredand(vbool8_t op0, vuint64m1_t op1, vuint64m8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u64m1)))
-void vsuxei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u64m1_m)))
-void vsuxei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u64m2)))
-void vsuxei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u64m2_m)))
-void vsuxei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u64m4)))
-void vsuxei64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u64m4_m)))
-void vsuxei64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u64m8)))
-void vsuxei64(uint64_t * op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_u64m8_m)))
-void vsuxei64(vbool8_t op0, uint64_t * op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8m1_i8m1)))
-vint8m1_t vredor(vint8m1_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8m1_i8m1_m)))
-vint8m1_t vredor(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8m2_i8m1)))
-vint8m1_t vredor(vint8m1_t op0, vint8m2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8m2_i8m1_m)))
-vint8m1_t vredor(vbool4_t op0, vint8m1_t op1, vint8m2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8m4_i8m1)))
-vint8m1_t vredor(vint8m1_t op0, vint8m4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8m4_i8m1_m)))
-vint8m1_t vredor(vbool2_t op0, vint8m1_t op1, vint8m4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8m8_i8m1)))
-vint8m1_t vredor(vint8m1_t op0, vint8m8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8m8_i8m1_m)))
-vint8m1_t vredor(vbool1_t op0, vint8m1_t op1, vint8m8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8mf2_i8m1)))
-vint8m1_t vredor(vint8m1_t op0, vint8mf2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8mf2_i8m1_m)))
-vint8m1_t vredor(vbool16_t op0, vint8m1_t op1, vint8mf2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8mf4_i8m1)))
-vint8m1_t vredor(vint8m1_t op0, vint8mf4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8mf4_i8m1_m)))
-vint8m1_t vredor(vbool32_t op0, vint8m1_t op1, vint8mf4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8mf8_i8m1)))
-vint8m1_t vredor(vint8m1_t op0, vint8mf8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i8mf8_i8m1_m)))
-vint8m1_t vredor(vbool64_t op0, vint8m1_t op1, vint8mf8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16m1_i16m1)))
-vint16m1_t vredor(vint16m1_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16m1_i16m1_m)))
-vint16m1_t vredor(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16m2_i16m1)))
-vint16m1_t vredor(vint16m1_t op0, vint16m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16m2_i16m1_m)))
-vint16m1_t vredor(vbool8_t op0, vint16m1_t op1, vint16m2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16m4_i16m1)))
-vint16m1_t vredor(vint16m1_t op0, vint16m4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16m4_i16m1_m)))
-vint16m1_t vredor(vbool4_t op0, vint16m1_t op1, vint16m4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16m8_i16m1)))
-vint16m1_t vredor(vint16m1_t op0, vint16m8_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16m8_i16m1_m)))
-vint16m1_t vredor(vbool2_t op0, vint16m1_t op1, vint16m8_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16mf2_i16m1)))
-vint16m1_t vredor(vint16m1_t op0, vint16mf2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16mf2_i16m1_m)))
-vint16m1_t vredor(vbool32_t op0, vint16m1_t op1, vint16mf2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16mf4_i16m1)))
-vint16m1_t vredor(vint16m1_t op0, vint16mf4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i16mf4_i16m1_m)))
-vint16m1_t vredor(vbool64_t op0, vint16m1_t op1, vint16mf4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i32m1_i32m1)))
-vint32m1_t vredor(vint32m1_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i32m1_i32m1_m)))
-vint32m1_t vredor(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i32m2_i32m1)))
-vint32m1_t vredor(vint32m1_t op0, vint32m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i32m2_i32m1_m)))
-vint32m1_t vredor(vbool16_t op0, vint32m1_t op1, vint32m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i32m4_i32m1)))
-vint32m1_t vredor(vint32m1_t op0, vint32m4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i32m4_i32m1_m)))
-vint32m1_t vredor(vbool8_t op0, vint32m1_t op1, vint32m4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i32m8_i32m1)))
-vint32m1_t vredor(vint32m1_t op0, vint32m8_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i32m8_i32m1_m)))
-vint32m1_t vredor(vbool4_t op0, vint32m1_t op1, vint32m8_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i32mf2_i32m1)))
-vint32m1_t vredor(vint32m1_t op0, vint32mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i32mf2_i32m1_m)))
-vint32m1_t vredor(vbool64_t op0, vint32m1_t op1, vint32mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i64m1_i64m1)))
-vint64m1_t vredor(vint64m1_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i64m1_i64m1_m)))
-vint64m1_t vredor(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i64m2_i64m1)))
-vint64m1_t vredor(vint64m1_t op0, vint64m2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i64m2_i64m1_m)))
-vint64m1_t vredor(vbool32_t op0, vint64m1_t op1, vint64m2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i64m4_i64m1)))
-vint64m1_t vredor(vint64m1_t op0, vint64m4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i64m4_i64m1_m)))
-vint64m1_t vredor(vbool16_t op0, vint64m1_t op1, vint64m4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i64m8_i64m1)))
-vint64m1_t vredor(vint64m1_t op0, vint64m8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_i64m8_i64m1_m)))
-vint64m1_t vredor(vbool8_t op0, vint64m1_t op1, vint64m8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8m1_u8m1)))
-vuint8m1_t vredor(vuint8m1_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8m1_u8m1_m)))
-vuint8m1_t vredor(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8m2_u8m1)))
-vuint8m1_t vredor(vuint8m1_t op0, vuint8m2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8m2_u8m1_m)))
-vuint8m1_t vredor(vbool4_t op0, vuint8m1_t op1, vuint8m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8m4_u8m1)))
-vuint8m1_t vredor(vuint8m1_t op0, vuint8m4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8m4_u8m1_m)))
-vuint8m1_t vredor(vbool2_t op0, vuint8m1_t op1, vuint8m4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8m8_u8m1)))
-vuint8m1_t vredor(vuint8m1_t op0, vuint8m8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8m8_u8m1_m)))
-vuint8m1_t vredor(vbool1_t op0, vuint8m1_t op1, vuint8m8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8mf2_u8m1)))
-vuint8m1_t vredor(vuint8m1_t op0, vuint8mf2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8mf2_u8m1_m)))
-vuint8m1_t vredor(vbool16_t op0, vuint8m1_t op1, vuint8mf2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8mf4_u8m1)))
-vuint8m1_t vredor(vuint8m1_t op0, vuint8mf4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8mf4_u8m1_m)))
-vuint8m1_t vredor(vbool32_t op0, vuint8m1_t op1, vuint8mf4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8mf8_u8m1)))
-vuint8m1_t vredor(vuint8m1_t op0, vuint8mf8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u8mf8_u8m1_m)))
-vuint8m1_t vredor(vbool64_t op0, vuint8m1_t op1, vuint8mf8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16m1_u16m1)))
-vuint16m1_t vredor(vuint16m1_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16m1_u16m1_m)))
-vuint16m1_t vredor(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16m2_u16m1)))
-vuint16m1_t vredor(vuint16m1_t op0, vuint16m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16m2_u16m1_m)))
-vuint16m1_t vredor(vbool8_t op0, vuint16m1_t op1, vuint16m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16m4_u16m1)))
-vuint16m1_t vredor(vuint16m1_t op0, vuint16m4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16m4_u16m1_m)))
-vuint16m1_t vredor(vbool4_t op0, vuint16m1_t op1, vuint16m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16m8_u16m1)))
-vuint16m1_t vredor(vuint16m1_t op0, vuint16m8_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16m8_u16m1_m)))
-vuint16m1_t vredor(vbool2_t op0, vuint16m1_t op1, vuint16m8_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16mf2_u16m1)))
-vuint16m1_t vredor(vuint16m1_t op0, vuint16mf2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16mf2_u16m1_m)))
-vuint16m1_t vredor(vbool32_t op0, vuint16m1_t op1, vuint16mf2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16mf4_u16m1)))
-vuint16m1_t vredor(vuint16m1_t op0, vuint16mf4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u16mf4_u16m1_m)))
-vuint16m1_t vredor(vbool64_t op0, vuint16m1_t op1, vuint16mf4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u32m1_u32m1)))
-vuint32m1_t vredor(vuint32m1_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u32m1_u32m1_m)))
-vuint32m1_t vredor(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u32m2_u32m1)))
-vuint32m1_t vredor(vuint32m1_t op0, vuint32m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u32m2_u32m1_m)))
-vuint32m1_t vredor(vbool16_t op0, vuint32m1_t op1, vuint32m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u32m4_u32m1)))
-vuint32m1_t vredor(vuint32m1_t op0, vuint32m4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u32m4_u32m1_m)))
-vuint32m1_t vredor(vbool8_t op0, vuint32m1_t op1, vuint32m4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u32m8_u32m1)))
-vuint32m1_t vredor(vuint32m1_t op0, vuint32m8_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u32m8_u32m1_m)))
-vuint32m1_t vredor(vbool4_t op0, vuint32m1_t op1, vuint32m8_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u32mf2_u32m1)))
-vuint32m1_t vredor(vuint32m1_t op0, vuint32mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u32mf2_u32m1_m)))
-vuint32m1_t vredor(vbool64_t op0, vuint32m1_t op1, vuint32mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u64m1_u64m1)))
-vuint64m1_t vredor(vuint64m1_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u64m1_u64m1_m)))
-vuint64m1_t vredor(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u64m2_u64m1)))
-vuint64m1_t vredor(vuint64m1_t op0, vuint64m2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u64m2_u64m1_m)))
-vuint64m1_t vredor(vbool32_t op0, vuint64m1_t op1, vuint64m2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u64m4_u64m1)))
-vuint64m1_t vredor(vuint64m1_t op0, vuint64m4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u64m4_u64m1_m)))
-vuint64m1_t vredor(vbool16_t op0, vuint64m1_t op1, vuint64m4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u64m8_u64m1)))
-vuint64m1_t vredor(vuint64m1_t op0, vuint64m8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredor_vs_u64m8_u64m1_m)))
-vuint64m1_t vredor(vbool8_t op0, vuint64m1_t op1, vuint64m8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8m1_i8m1)))
-vint8m1_t vredxor(vint8m1_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8m1_i8m1_m)))
-vint8m1_t vredxor(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8m2_i8m1)))
-vint8m1_t vredxor(vint8m1_t op0, vint8m2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8m2_i8m1_m)))
-vint8m1_t vredxor(vbool4_t op0, vint8m1_t op1, vint8m2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8m4_i8m1)))
-vint8m1_t vredxor(vint8m1_t op0, vint8m4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8m4_i8m1_m)))
-vint8m1_t vredxor(vbool2_t op0, vint8m1_t op1, vint8m4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8m8_i8m1)))
-vint8m1_t vredxor(vint8m1_t op0, vint8m8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8m8_i8m1_m)))
-vint8m1_t vredxor(vbool1_t op0, vint8m1_t op1, vint8m8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8mf2_i8m1)))
-vint8m1_t vredxor(vint8m1_t op0, vint8mf2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8mf2_i8m1_m)))
-vint8m1_t vredxor(vbool16_t op0, vint8m1_t op1, vint8mf2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8mf4_i8m1)))
-vint8m1_t vredxor(vint8m1_t op0, vint8mf4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8mf4_i8m1_m)))
-vint8m1_t vredxor(vbool32_t op0, vint8m1_t op1, vint8mf4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8mf8_i8m1)))
-vint8m1_t vredxor(vint8m1_t op0, vint8mf8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i8mf8_i8m1_m)))
-vint8m1_t vredxor(vbool64_t op0, vint8m1_t op1, vint8mf8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16m1_i16m1)))
-vint16m1_t vredxor(vint16m1_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16m1_i16m1_m)))
-vint16m1_t vredxor(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16m2_i16m1)))
-vint16m1_t vredxor(vint16m1_t op0, vint16m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16m2_i16m1_m)))
-vint16m1_t vredxor(vbool8_t op0, vint16m1_t op1, vint16m2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16m4_i16m1)))
-vint16m1_t vredxor(vint16m1_t op0, vint16m4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16m4_i16m1_m)))
-vint16m1_t vredxor(vbool4_t op0, vint16m1_t op1, vint16m4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16m8_i16m1)))
-vint16m1_t vredxor(vint16m1_t op0, vint16m8_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16m8_i16m1_m)))
-vint16m1_t vredxor(vbool2_t op0, vint16m1_t op1, vint16m8_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16mf2_i16m1)))
-vint16m1_t vredxor(vint16m1_t op0, vint16mf2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16mf2_i16m1_m)))
-vint16m1_t vredxor(vbool32_t op0, vint16m1_t op1, vint16mf2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16mf4_i16m1)))
-vint16m1_t vredxor(vint16m1_t op0, vint16mf4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i16mf4_i16m1_m)))
-vint16m1_t vredxor(vbool64_t op0, vint16m1_t op1, vint16mf4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i32m1_i32m1)))
-vint32m1_t vredxor(vint32m1_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i32m1_i32m1_m)))
-vint32m1_t vredxor(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i32m2_i32m1)))
-vint32m1_t vredxor(vint32m1_t op0, vint32m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i32m2_i32m1_m)))
-vint32m1_t vredxor(vbool16_t op0, vint32m1_t op1, vint32m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i32m4_i32m1)))
-vint32m1_t vredxor(vint32m1_t op0, vint32m4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i32m4_i32m1_m)))
-vint32m1_t vredxor(vbool8_t op0, vint32m1_t op1, vint32m4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i32m8_i32m1)))
-vint32m1_t vredxor(vint32m1_t op0, vint32m8_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i32m8_i32m1_m)))
-vint32m1_t vredxor(vbool4_t op0, vint32m1_t op1, vint32m8_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i32mf2_i32m1)))
-vint32m1_t vredxor(vint32m1_t op0, vint32mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i32mf2_i32m1_m)))
-vint32m1_t vredxor(vbool64_t op0, vint32m1_t op1, vint32mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i64m1_i64m1)))
-vint64m1_t vredxor(vint64m1_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i64m1_i64m1_m)))
-vint64m1_t vredxor(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i64m2_i64m1)))
-vint64m1_t vredxor(vint64m1_t op0, vint64m2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i64m2_i64m1_m)))
-vint64m1_t vredxor(vbool32_t op0, vint64m1_t op1, vint64m2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i64m4_i64m1)))
-vint64m1_t vredxor(vint64m1_t op0, vint64m4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i64m4_i64m1_m)))
-vint64m1_t vredxor(vbool16_t op0, vint64m1_t op1, vint64m4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i64m8_i64m1)))
-vint64m1_t vredxor(vint64m1_t op0, vint64m8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_i64m8_i64m1_m)))
-vint64m1_t vredxor(vbool8_t op0, vint64m1_t op1, vint64m8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8m1_u8m1)))
-vuint8m1_t vredxor(vuint8m1_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8m1_u8m1_m)))
-vuint8m1_t vredxor(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8m2_u8m1)))
-vuint8m1_t vredxor(vuint8m1_t op0, vuint8m2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8m2_u8m1_m)))
-vuint8m1_t vredxor(vbool4_t op0, vuint8m1_t op1, vuint8m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8m4_u8m1)))
-vuint8m1_t vredxor(vuint8m1_t op0, vuint8m4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8m4_u8m1_m)))
-vuint8m1_t vredxor(vbool2_t op0, vuint8m1_t op1, vuint8m4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8m8_u8m1)))
-vuint8m1_t vredxor(vuint8m1_t op0, vuint8m8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8m8_u8m1_m)))
-vuint8m1_t vredxor(vbool1_t op0, vuint8m1_t op1, vuint8m8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8mf2_u8m1)))
-vuint8m1_t vredxor(vuint8m1_t op0, vuint8mf2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8mf2_u8m1_m)))
-vuint8m1_t vredxor(vbool16_t op0, vuint8m1_t op1, vuint8mf2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8mf4_u8m1)))
-vuint8m1_t vredxor(vuint8m1_t op0, vuint8mf4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8mf4_u8m1_m)))
-vuint8m1_t vredxor(vbool32_t op0, vuint8m1_t op1, vuint8mf4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8mf8_u8m1)))
-vuint8m1_t vredxor(vuint8m1_t op0, vuint8mf8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u8mf8_u8m1_m)))
-vuint8m1_t vredxor(vbool64_t op0, vuint8m1_t op1, vuint8mf8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16m1_u16m1)))
-vuint16m1_t vredxor(vuint16m1_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16m1_u16m1_m)))
-vuint16m1_t vredxor(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16m2_u16m1)))
-vuint16m1_t vredxor(vuint16m1_t op0, vuint16m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16m2_u16m1_m)))
-vuint16m1_t vredxor(vbool8_t op0, vuint16m1_t op1, vuint16m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16m4_u16m1)))
-vuint16m1_t vredxor(vuint16m1_t op0, vuint16m4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16m4_u16m1_m)))
-vuint16m1_t vredxor(vbool4_t op0, vuint16m1_t op1, vuint16m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16m8_u16m1)))
-vuint16m1_t vredxor(vuint16m1_t op0, vuint16m8_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16m8_u16m1_m)))
-vuint16m1_t vredxor(vbool2_t op0, vuint16m1_t op1, vuint16m8_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16mf2_u16m1)))
-vuint16m1_t vredxor(vuint16m1_t op0, vuint16mf2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16mf2_u16m1_m)))
-vuint16m1_t vredxor(vbool32_t op0, vuint16m1_t op1, vuint16mf2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16mf4_u16m1)))
-vuint16m1_t vredxor(vuint16m1_t op0, vuint16mf4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u16mf4_u16m1_m)))
-vuint16m1_t vredxor(vbool64_t op0, vuint16m1_t op1, vuint16mf4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u32m1_u32m1)))
-vuint32m1_t vredxor(vuint32m1_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u32m1_u32m1_m)))
-vuint32m1_t vredxor(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u32m2_u32m1)))
-vuint32m1_t vredxor(vuint32m1_t op0, vuint32m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u32m2_u32m1_m)))
-vuint32m1_t vredxor(vbool16_t op0, vuint32m1_t op1, vuint32m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u32m4_u32m1)))
-vuint32m1_t vredxor(vuint32m1_t op0, vuint32m4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u32m4_u32m1_m)))
-vuint32m1_t vredxor(vbool8_t op0, vuint32m1_t op1, vuint32m4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u32m8_u32m1)))
-vuint32m1_t vredxor(vuint32m1_t op0, vuint32m8_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u32m8_u32m1_m)))
-vuint32m1_t vredxor(vbool4_t op0, vuint32m1_t op1, vuint32m8_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u32mf2_u32m1)))
-vuint32m1_t vredxor(vuint32m1_t op0, vuint32mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u32mf2_u32m1_m)))
-vuint32m1_t vredxor(vbool64_t op0, vuint32m1_t op1, vuint32mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u64m1_u64m1)))
-vuint64m1_t vredxor(vuint64m1_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u64m1_u64m1_m)))
-vuint64m1_t vredxor(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u64m2_u64m1)))
-vuint64m1_t vredxor(vuint64m1_t op0, vuint64m2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u64m2_u64m1_m)))
-vuint64m1_t vredxor(vbool32_t op0, vuint64m1_t op1, vuint64m2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u64m4_u64m1)))
-vuint64m1_t vredxor(vuint64m1_t op0, vuint64m4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u64m4_u64m1_m)))
-vuint64m1_t vredxor(vbool16_t op0, vuint64m1_t op1, vuint64m4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u64m8_u64m1)))
-vuint64m1_t vredxor(vuint64m1_t op0, vuint64m8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vredxor_vs_u64m8_u64m1_m)))
-vuint64m1_t vredxor(vbool8_t op0, vuint64m1_t op1, vuint64m8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8m1_i16m1)))
-vint16m1_t vwredsum(vint16m1_t op0, vint8m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8m1_i16m1_m)))
-vint16m1_t vwredsum(vbool8_t op0, vint16m1_t op1, vint8m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8m2_i16m1)))
-vint16m1_t vwredsum(vint16m1_t op0, vint8m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8m2_i16m1_m)))
-vint16m1_t vwredsum(vbool4_t op0, vint16m1_t op1, vint8m2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8m4_i16m1)))
-vint16m1_t vwredsum(vint16m1_t op0, vint8m4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8m4_i16m1_m)))
-vint16m1_t vwredsum(vbool2_t op0, vint16m1_t op1, vint8m4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8m8_i16m1)))
-vint16m1_t vwredsum(vint16m1_t op0, vint8m8_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8m8_i16m1_m)))
-vint16m1_t vwredsum(vbool1_t op0, vint16m1_t op1, vint8m8_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8mf2_i16m1)))
-vint16m1_t vwredsum(vint16m1_t op0, vint8mf2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8mf2_i16m1_m)))
-vint16m1_t vwredsum(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8mf4_i16m1)))
-vint16m1_t vwredsum(vint16m1_t op0, vint8mf4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8mf4_i16m1_m)))
-vint16m1_t vwredsum(vbool32_t op0, vint16m1_t op1, vint8mf4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8mf8_i16m1)))
-vint16m1_t vwredsum(vint16m1_t op0, vint8mf8_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i8mf8_i16m1_m)))
-vint16m1_t vwredsum(vbool64_t op0, vint16m1_t op1, vint8mf8_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16m1_i32m1)))
-vint32m1_t vwredsum(vint32m1_t op0, vint16m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16m1_i32m1_m)))
-vint32m1_t vwredsum(vbool16_t op0, vint32m1_t op1, vint16m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16m2_i32m1)))
-vint32m1_t vwredsum(vint32m1_t op0, vint16m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16m2_i32m1_m)))
-vint32m1_t vwredsum(vbool8_t op0, vint32m1_t op1, vint16m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16m4_i32m1)))
-vint32m1_t vwredsum(vint32m1_t op0, vint16m4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16m4_i32m1_m)))
-vint32m1_t vwredsum(vbool4_t op0, vint32m1_t op1, vint16m4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16m8_i32m1)))
-vint32m1_t vwredsum(vint32m1_t op0, vint16m8_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16m8_i32m1_m)))
-vint32m1_t vwredsum(vbool2_t op0, vint32m1_t op1, vint16m8_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16mf2_i32m1)))
-vint32m1_t vwredsum(vint32m1_t op0, vint16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16mf2_i32m1_m)))
-vint32m1_t vwredsum(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16mf4_i32m1)))
-vint32m1_t vwredsum(vint32m1_t op0, vint16mf4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i16mf4_i32m1_m)))
-vint32m1_t vwredsum(vbool64_t op0, vint32m1_t op1, vint16mf4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i32m1_i64m1)))
-vint64m1_t vwredsum(vint64m1_t op0, vint32m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i32m1_i64m1_m)))
-vint64m1_t vwredsum(vbool32_t op0, vint64m1_t op1, vint32m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i32m2_i64m1)))
-vint64m1_t vwredsum(vint64m1_t op0, vint32m2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i32m2_i64m1_m)))
-vint64m1_t vwredsum(vbool16_t op0, vint64m1_t op1, vint32m2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i32m4_i64m1)))
-vint64m1_t vwredsum(vint64m1_t op0, vint32m4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i32m4_i64m1_m)))
-vint64m1_t vwredsum(vbool8_t op0, vint64m1_t op1, vint32m4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i32m8_i64m1)))
-vint64m1_t vwredsum(vint64m1_t op0, vint32m8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i32m8_i64m1_m)))
-vint64m1_t vwredsum(vbool4_t op0, vint64m1_t op1, vint32m8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i32mf2_i64m1)))
-vint64m1_t vwredsum(vint64m1_t op0, vint32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsum_vs_i32mf2_i64m1_m)))
-vint64m1_t vwredsum(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8m1_u16m1)))
-vuint16m1_t vwredsumu(vuint16m1_t op0, vuint8m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8m1_u16m1_m)))
-vuint16m1_t vwredsumu(vbool8_t op0, vuint16m1_t op1, vuint8m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8m2_u16m1)))
-vuint16m1_t vwredsumu(vuint16m1_t op0, vuint8m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8m2_u16m1_m)))
-vuint16m1_t vwredsumu(vbool4_t op0, vuint16m1_t op1, vuint8m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8m4_u16m1)))
-vuint16m1_t vwredsumu(vuint16m1_t op0, vuint8m4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8m4_u16m1_m)))
-vuint16m1_t vwredsumu(vbool2_t op0, vuint16m1_t op1, vuint8m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8m8_u16m1)))
-vuint16m1_t vwredsumu(vuint16m1_t op0, vuint8m8_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8m8_u16m1_m)))
-vuint16m1_t vwredsumu(vbool1_t op0, vuint16m1_t op1, vuint8m8_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8mf2_u16m1)))
-vuint16m1_t vwredsumu(vuint16m1_t op0, vuint8mf2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8mf2_u16m1_m)))
-vuint16m1_t vwredsumu(vbool16_t op0, vuint16m1_t op1, vuint8mf2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8mf4_u16m1)))
-vuint16m1_t vwredsumu(vuint16m1_t op0, vuint8mf4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8mf4_u16m1_m)))
-vuint16m1_t vwredsumu(vbool32_t op0, vuint16m1_t op1, vuint8mf4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8mf8_u16m1)))
-vuint16m1_t vwredsumu(vuint16m1_t op0, vuint8mf8_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u8mf8_u16m1_m)))
-vuint16m1_t vwredsumu(vbool64_t op0, vuint16m1_t op1, vuint8mf8_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16m1_u32m1)))
-vuint32m1_t vwredsumu(vuint32m1_t op0, vuint16m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16m1_u32m1_m)))
-vuint32m1_t vwredsumu(vbool16_t op0, vuint32m1_t op1, vuint16m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16m2_u32m1)))
-vuint32m1_t vwredsumu(vuint32m1_t op0, vuint16m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16m2_u32m1_m)))
-vuint32m1_t vwredsumu(vbool8_t op0, vuint32m1_t op1, vuint16m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16m4_u32m1)))
-vuint32m1_t vwredsumu(vuint32m1_t op0, vuint16m4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16m4_u32m1_m)))
-vuint32m1_t vwredsumu(vbool4_t op0, vuint32m1_t op1, vuint16m4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16m8_u32m1)))
-vuint32m1_t vwredsumu(vuint32m1_t op0, vuint16m8_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16m8_u32m1_m)))
-vuint32m1_t vwredsumu(vbool2_t op0, vuint32m1_t op1, vuint16m8_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16mf2_u32m1)))
-vuint32m1_t vwredsumu(vuint32m1_t op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16mf2_u32m1_m)))
-vuint32m1_t vwredsumu(vbool32_t op0, vuint32m1_t op1, vuint16mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16mf4_u32m1)))
-vuint32m1_t vwredsumu(vuint32m1_t op0, vuint16mf4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u16mf4_u32m1_m)))
-vuint32m1_t vwredsumu(vbool64_t op0, vuint32m1_t op1, vuint16mf4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u32m1_u64m1)))
-vuint64m1_t vwredsumu(vuint64m1_t op0, vuint32m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u32m1_u64m1_m)))
-vuint64m1_t vwredsumu(vbool32_t op0, vuint64m1_t op1, vuint32m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u32m2_u64m1)))
-vuint64m1_t vwredsumu(vuint64m1_t op0, vuint32m2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u32m2_u64m1_m)))
-vuint64m1_t vwredsumu(vbool16_t op0, vuint64m1_t op1, vuint32m2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u32m4_u64m1)))
-vuint64m1_t vwredsumu(vuint64m1_t op0, vuint32m4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u32m4_u64m1_m)))
-vuint64m1_t vwredsumu(vbool8_t op0, vuint64m1_t op1, vuint32m4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u32m8_u64m1)))
-vuint64m1_t vwredsumu(vuint64m1_t op0, vuint32m8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u32m8_u64m1_m)))
-vuint64m1_t vwredsumu(vbool4_t op0, vuint64m1_t op1, vuint32m8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u32mf2_u64m1)))
-vuint64m1_t vwredsumu(vuint64m1_t op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwredsumu_vs_u32mf2_u64m1_m)))
-vuint64m1_t vwredsumu(vbool64_t op0, vuint64m1_t op1, vuint32mf2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8m1)))
-void vsuxei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8m1_m)))
-void vsuxei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8m2)))
-void vsuxei8(uint8_t * op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8m2_m)))
-void vsuxei8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8m4)))
-void vsuxei8(uint8_t * op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8m4_m)))
-void vsuxei8(vbool2_t op0, uint8_t * op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8m8)))
-void vsuxei8(uint8_t * op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8m8_m)))
-void vsuxei8(vbool1_t op0, uint8_t * op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8mf2)))
-void vsuxei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8mf2_m)))
-void vsuxei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8mf4)))
-void vsuxei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8mf4_m)))
-void vsuxei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8mf8)))
-void vsuxei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_u8mf8_m)))
-void vsuxei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnot_m_b8)))
-vbool8_t vmnot(vbool8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnot_m_b4)))
-vbool4_t vmnot(vbool4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnot_m_b2)))
-vbool2_t vmnot(vbool2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnot_m_b1)))
-vbool1_t vmnot(vbool1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnot_m_b16)))
-vbool16_t vmnot(vbool16_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnot_m_b32)))
-vbool32_t vmnot(vbool32_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnot_m_b64)))
-vbool64_t vmnot(vbool64_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u8m1_m)))
-vuint8m1_t viota(vbool8_t op0, vuint8m1_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u8m2_m)))
-vuint8m2_t viota(vbool4_t op0, vuint8m2_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u8m4_m)))
-vuint8m4_t viota(vbool2_t op0, vuint8m4_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u8m8_m)))
-vuint8m8_t viota(vbool1_t op0, vuint8m8_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u8mf2_m)))
-vuint8mf2_t viota(vbool16_t op0, vuint8mf2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u8mf4_m)))
-vuint8mf4_t viota(vbool32_t op0, vuint8mf4_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u8mf8_m)))
-vuint8mf8_t viota(vbool64_t op0, vuint8mf8_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u16m1_m)))
-vuint16m1_t viota(vbool16_t op0, vuint16m1_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u16m2_m)))
-vuint16m2_t viota(vbool8_t op0, vuint16m2_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u16m4_m)))
-vuint16m4_t viota(vbool4_t op0, vuint16m4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u16m8_m)))
-vuint16m8_t viota(vbool2_t op0, vuint16m8_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u16mf2_m)))
-vuint16mf2_t viota(vbool32_t op0, vuint16mf2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u16mf4_m)))
-vuint16mf4_t viota(vbool64_t op0, vuint16mf4_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u32m1_m)))
-vuint32m1_t viota(vbool32_t op0, vuint32m1_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u32m2_m)))
-vuint32m2_t viota(vbool16_t op0, vuint32m2_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u32m4_m)))
-vuint32m4_t viota(vbool8_t op0, vuint32m4_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u32m8_m)))
-vuint32m8_t viota(vbool4_t op0, vuint32m8_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u32mf2_m)))
-vuint32mf2_t viota(vbool64_t op0, vuint32mf2_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u64m1_m)))
-vuint64m1_t viota(vbool64_t op0, vuint64m1_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u64m2_m)))
-vuint64m2_t viota(vbool32_t op0, vuint64m2_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u64m4_m)))
-vuint64m4_t viota(vbool16_t op0, vuint64m4_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_viota_m_u64m8_m)))
-vuint64m8_t viota(vbool8_t op0, vuint64m8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i8m1_m)))
-vint8m1_t vid(vbool8_t op0, vint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i8m2_m)))
-vint8m2_t vid(vbool4_t op0, vint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i8m4_m)))
-vint8m4_t vid(vbool2_t op0, vint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i8m8_m)))
-vint8m8_t vid(vbool1_t op0, vint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i8mf2_m)))
-vint8mf2_t vid(vbool16_t op0, vint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i8mf4_m)))
-vint8mf4_t vid(vbool32_t op0, vint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i8mf8_m)))
-vint8mf8_t vid(vbool64_t op0, vint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i16m1_m)))
-vint16m1_t vid(vbool16_t op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i16m2_m)))
-vint16m2_t vid(vbool8_t op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i16m4_m)))
-vint16m4_t vid(vbool4_t op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i16m8_m)))
-vint16m8_t vid(vbool2_t op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i16mf2_m)))
-vint16mf2_t vid(vbool32_t op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i16mf4_m)))
-vint16mf4_t vid(vbool64_t op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i32m1_m)))
-vint32m1_t vid(vbool32_t op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i32m2_m)))
-vint32m2_t vid(vbool16_t op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i32m4_m)))
-vint32m4_t vid(vbool8_t op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i32m8_m)))
-vint32m8_t vid(vbool4_t op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i32mf2_m)))
-vint32mf2_t vid(vbool64_t op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i64m1_m)))
-vint64m1_t vid(vbool64_t op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i64m2_m)))
-vint64m2_t vid(vbool32_t op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i64m4_m)))
-vint64m4_t vid(vbool16_t op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_i64m8_m)))
-vint64m8_t vid(vbool8_t op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u8m1_m)))
-vuint8m1_t vid(vbool8_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u8m2_m)))
-vuint8m2_t vid(vbool4_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u8m4_m)))
-vuint8m4_t vid(vbool2_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u8m8_m)))
-vuint8m8_t vid(vbool1_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u8mf2_m)))
-vuint8mf2_t vid(vbool16_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u8mf4_m)))
-vuint8mf4_t vid(vbool32_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u8mf8_m)))
-vuint8mf8_t vid(vbool64_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u16m1_m)))
-vuint16m1_t vid(vbool16_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u16m2_m)))
-vuint16m2_t vid(vbool8_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u16m4_m)))
-vuint16m4_t vid(vbool4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u16m8_m)))
-vuint16m8_t vid(vbool2_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u16mf2_m)))
-vuint16mf2_t vid(vbool32_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u16mf4_m)))
-vuint16mf4_t vid(vbool64_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u32m1_m)))
-vuint32m1_t vid(vbool32_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u32m2_m)))
-vuint32m2_t vid(vbool16_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u32m4_m)))
-vuint32m4_t vid(vbool8_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u32m8_m)))
-vuint32m8_t vid(vbool4_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u32mf2_m)))
-vuint32mf2_t vid(vbool64_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u64m1_m)))
-vuint64m1_t vid(vbool64_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u64m2_m)))
-vuint64m2_t vid(vbool32_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u64m4_m)))
-vuint64m4_t vid(vbool16_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vid_v_u64m8_m)))
-vuint64m8_t vid(vbool8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i8m1_i8)))
-int8_t vmv_x(vint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i8m2_i8)))
-int8_t vmv_x(vint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i8m4_i8)))
-int8_t vmv_x(vint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i8m8_i8)))
-int8_t vmv_x(vint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i8mf2_i8)))
-int8_t vmv_x(vint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i8mf4_i8)))
-int8_t vmv_x(vint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i8mf8_i8)))
-int8_t vmv_x(vint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i16m1_i16)))
-int16_t vmv_x(vint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i16m2_i16)))
-int16_t vmv_x(vint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i16m4_i16)))
-int16_t vmv_x(vint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i16m8_i16)))
-int16_t vmv_x(vint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i16mf2_i16)))
-int16_t vmv_x(vint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i16mf4_i16)))
-int16_t vmv_x(vint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i32m1_i32)))
-int32_t vmv_x(vint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i32m2_i32)))
-int32_t vmv_x(vint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i32m4_i32)))
-int32_t vmv_x(vint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i32m8_i32)))
-int32_t vmv_x(vint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i32mf2_i32)))
-int32_t vmv_x(vint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i64m1_i64)))
-int64_t vmv_x(vint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i64m2_i64)))
-int64_t vmv_x(vint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i64m4_i64)))
-int64_t vmv_x(vint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_i64m8_i64)))
-int64_t vmv_x(vint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u8m1_u8)))
-uint8_t vmv_x(vuint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u8m2_u8)))
-uint8_t vmv_x(vuint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u8m4_u8)))
-uint8_t vmv_x(vuint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u8m8_u8)))
-uint8_t vmv_x(vuint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u8mf2_u8)))
-uint8_t vmv_x(vuint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u8mf4_u8)))
-uint8_t vmv_x(vuint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u8mf8_u8)))
-uint8_t vmv_x(vuint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u16m1_u16)))
-uint16_t vmv_x(vuint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u16m2_u16)))
-uint16_t vmv_x(vuint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u16m4_u16)))
-uint16_t vmv_x(vuint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u16m8_u16)))
-uint16_t vmv_x(vuint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u16mf2_u16)))
-uint16_t vmv_x(vuint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u16mf4_u16)))
-uint16_t vmv_x(vuint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u32m1_u32)))
-uint32_t vmv_x(vuint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u32m2_u32)))
-uint32_t vmv_x(vuint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u32m4_u32)))
-uint32_t vmv_x(vuint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u32m8_u32)))
-uint32_t vmv_x(vuint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u32mf2_u32)))
-uint32_t vmv_x(vuint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u64m1_u64)))
-uint64_t vmv_x(vuint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u64m2_u64)))
-uint64_t vmv_x(vuint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u64m4_u64)))
-uint64_t vmv_x(vuint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_x_s_u64m8_u64)))
-uint64_t vmv_x(vuint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i8m1)))
-vint8m1_t vmv_s(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i8m2)))
-vint8m2_t vmv_s(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i8m4)))
-vint8m4_t vmv_s(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i8m8)))
-vint8m8_t vmv_s(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i8mf2)))
-vint8mf2_t vmv_s(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i8mf4)))
-vint8mf4_t vmv_s(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i8mf8)))
-vint8mf8_t vmv_s(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i16m1)))
-vint16m1_t vmv_s(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i16m2)))
-vint16m2_t vmv_s(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i16m4)))
-vint16m4_t vmv_s(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i16m8)))
-vint16m8_t vmv_s(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i16mf2)))
-vint16mf2_t vmv_s(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i16mf4)))
-vint16mf4_t vmv_s(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i32m1)))
-vint32m1_t vmv_s(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i32m2)))
-vint32m2_t vmv_s(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i32m4)))
-vint32m4_t vmv_s(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i32m8)))
-vint32m8_t vmv_s(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i32mf2)))
-vint32mf2_t vmv_s(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i64m1)))
-vint64m1_t vmv_s(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i64m2)))
-vint64m2_t vmv_s(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i64m4)))
-vint64m4_t vmv_s(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_i64m8)))
-vint64m8_t vmv_s(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u8m1)))
-vuint8m1_t vmv_s(vuint8m1_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u8m2)))
-vuint8m2_t vmv_s(vuint8m2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u8m4)))
-vuint8m4_t vmv_s(vuint8m4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u8m8)))
-vuint8m8_t vmv_s(vuint8m8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u8mf2)))
-vuint8mf2_t vmv_s(vuint8mf2_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u8mf4)))
-vuint8mf4_t vmv_s(vuint8mf4_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u8mf8)))
-vuint8mf8_t vmv_s(vuint8mf8_t op0, uint8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u16m1)))
-vuint16m1_t vmv_s(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u16m2)))
-vuint16m2_t vmv_s(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u16m4)))
-vuint16m4_t vmv_s(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u16m8)))
-vuint16m8_t vmv_s(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u16mf2)))
-vuint16mf2_t vmv_s(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u16mf4)))
-vuint16mf4_t vmv_s(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u32m1)))
-vuint32m1_t vmv_s(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u32m2)))
-vuint32m2_t vmv_s(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u32m4)))
-vuint32m4_t vmv_s(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u32m8)))
-vuint32m8_t vmv_s(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u32mf2)))
-vuint32mf2_t vmv_s(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u64m1)))
-vuint64m1_t vmv_s(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u64m2)))
-vuint64m2_t vmv_s(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u64m4)))
-vuint64m4_t vmv_s(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_s_x_u64m8)))
-vuint64m8_t vmv_s(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u16m1)))
-vuint16m1_t vfmv_s(vuint16m1_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u16m2)))
-vuint16m2_t vfmv_s(vuint16m2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u16m4)))
-vuint16m4_t vfmv_s(vuint16m4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u16m8)))
-vuint16m8_t vfmv_s(vuint16m8_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u16mf2)))
-vuint16mf2_t vfmv_s(vuint16mf2_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u16mf4)))
-vuint16mf4_t vfmv_s(vuint16mf4_t op0, uint16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u32m1)))
-vuint32m1_t vfmv_s(vuint32m1_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u32m2)))
-vuint32m2_t vfmv_s(vuint32m2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u32m4)))
-vuint32m4_t vfmv_s(vuint32m4_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u32m8)))
-vuint32m8_t vfmv_s(vuint32m8_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u32mf2)))
-vuint32mf2_t vfmv_s(vuint32mf2_t op0, uint32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u64m1)))
-vuint64m1_t vfmv_s(vuint64m1_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u64m2)))
-vuint64m2_t vfmv_s(vuint64m2_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u64m4)))
-vuint64m4_t vfmv_s(vuint64m4_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_x_u64m8)))
-vuint64m8_t vfmv_s(vuint64m8_t op0, uint64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8m1)))
-vint8m1_t vslideup(vint8m1_t op0, vint8m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8m1_m)))
-vint8m1_t vslideup(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8m2)))
-vint8m2_t vslideup(vint8m2_t op0, vint8m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8m2_m)))
-vint8m2_t vslideup(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8m4)))
-vint8m4_t vslideup(vint8m4_t op0, vint8m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8m4_m)))
-vint8m4_t vslideup(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8m8)))
-vint8m8_t vslideup(vint8m8_t op0, vint8m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8m8_m)))
-vint8m8_t vslideup(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8mf2)))
-vint8mf2_t vslideup(vint8mf2_t op0, vint8mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8mf2_m)))
-vint8mf2_t vslideup(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8mf4)))
-vint8mf4_t vslideup(vint8mf4_t op0, vint8mf4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8mf4_m)))
-vint8mf4_t vslideup(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8mf8)))
-vint8mf8_t vslideup(vint8mf8_t op0, vint8mf8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i8mf8_m)))
-vint8mf8_t vslideup(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16m1)))
-vint16m1_t vslideup(vint16m1_t op0, vint16m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16m1_m)))
-vint16m1_t vslideup(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16m2)))
-vint16m2_t vslideup(vint16m2_t op0, vint16m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16m2_m)))
-vint16m2_t vslideup(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16m4)))
-vint16m4_t vslideup(vint16m4_t op0, vint16m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16m4_m)))
-vint16m4_t vslideup(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16m8)))
-vint16m8_t vslideup(vint16m8_t op0, vint16m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16m8_m)))
-vint16m8_t vslideup(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16mf2)))
-vint16mf2_t vslideup(vint16mf2_t op0, vint16mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16mf2_m)))
-vint16mf2_t vslideup(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16mf4)))
-vint16mf4_t vslideup(vint16mf4_t op0, vint16mf4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i16mf4_m)))
-vint16mf4_t vslideup(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i32m1)))
-vint32m1_t vslideup(vint32m1_t op0, vint32m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i32m1_m)))
-vint32m1_t vslideup(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i32m2)))
-vint32m2_t vslideup(vint32m2_t op0, vint32m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i32m2_m)))
-vint32m2_t vslideup(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i32m4)))
-vint32m4_t vslideup(vint32m4_t op0, vint32m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i32m4_m)))
-vint32m4_t vslideup(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i32m8)))
-vint32m8_t vslideup(vint32m8_t op0, vint32m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i32m8_m)))
-vint32m8_t vslideup(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i32mf2)))
-vint32mf2_t vslideup(vint32mf2_t op0, vint32mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i32mf2_m)))
-vint32mf2_t vslideup(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i64m1)))
-vint64m1_t vslideup(vint64m1_t op0, vint64m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i64m1_m)))
-vint64m1_t vslideup(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i64m2)))
-vint64m2_t vslideup(vint64m2_t op0, vint64m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i64m2_m)))
-vint64m2_t vslideup(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i64m4)))
-vint64m4_t vslideup(vint64m4_t op0, vint64m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i64m4_m)))
-vint64m4_t vslideup(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i64m8)))
-vint64m8_t vslideup(vint64m8_t op0, vint64m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_i64m8_m)))
-vint64m8_t vslideup(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8m1)))
-vuint8m1_t vslideup(vuint8m1_t op0, vuint8m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8m1_m)))
-vuint8m1_t vslideup(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8m2)))
-vuint8m2_t vslideup(vuint8m2_t op0, vuint8m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8m2_m)))
-vuint8m2_t vslideup(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8m4)))
-vuint8m4_t vslideup(vuint8m4_t op0, vuint8m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8m4_m)))
-vuint8m4_t vslideup(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8m8)))
-vuint8m8_t vslideup(vuint8m8_t op0, vuint8m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8m8_m)))
-vuint8m8_t vslideup(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8mf2)))
-vuint8mf2_t vslideup(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8mf2_m)))
-vuint8mf2_t vslideup(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8mf4)))
-vuint8mf4_t vslideup(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8mf4_m)))
-vuint8mf4_t vslideup(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8mf8)))
-vuint8mf8_t vslideup(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u8mf8_m)))
-vuint8mf8_t vslideup(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16m1)))
-vuint16m1_t vslideup(vuint16m1_t op0, vuint16m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16m1_m)))
-vuint16m1_t vslideup(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16m2)))
-vuint16m2_t vslideup(vuint16m2_t op0, vuint16m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16m2_m)))
-vuint16m2_t vslideup(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16m4)))
-vuint16m4_t vslideup(vuint16m4_t op0, vuint16m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16m4_m)))
-vuint16m4_t vslideup(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16m8)))
-vuint16m8_t vslideup(vuint16m8_t op0, vuint16m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16m8_m)))
-vuint16m8_t vslideup(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16mf2)))
-vuint16mf2_t vslideup(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16mf2_m)))
-vuint16mf2_t vslideup(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16mf4)))
-vuint16mf4_t vslideup(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u16mf4_m)))
-vuint16mf4_t vslideup(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u32m1)))
-vuint32m1_t vslideup(vuint32m1_t op0, vuint32m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u32m1_m)))
-vuint32m1_t vslideup(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u32m2)))
-vuint32m2_t vslideup(vuint32m2_t op0, vuint32m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u32m2_m)))
-vuint32m2_t vslideup(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u32m4)))
-vuint32m4_t vslideup(vuint32m4_t op0, vuint32m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u32m4_m)))
-vuint32m4_t vslideup(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u32m8)))
-vuint32m8_t vslideup(vuint32m8_t op0, vuint32m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u32m8_m)))
-vuint32m8_t vslideup(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u32mf2)))
-vuint32mf2_t vslideup(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u32mf2_m)))
-vuint32mf2_t vslideup(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u64m1)))
-vuint64m1_t vslideup(vuint64m1_t op0, vuint64m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u64m1_m)))
-vuint64m1_t vslideup(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u64m2)))
-vuint64m2_t vslideup(vuint64m2_t op0, vuint64m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u64m2_m)))
-vuint64m2_t vslideup(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u64m4)))
-vuint64m4_t vslideup(vuint64m4_t op0, vuint64m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u64m4_m)))
-vuint64m4_t vslideup(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u64m8)))
-vuint64m8_t vslideup(vuint64m8_t op0, vuint64m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_u64m8_m)))
-vuint64m8_t vslideup(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8m1)))
-vint8m1_t vslidedown(vint8m1_t op0, vint8m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8m1_m)))
-vint8m1_t vslidedown(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8m2)))
-vint8m2_t vslidedown(vint8m2_t op0, vint8m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8m2_m)))
-vint8m2_t vslidedown(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8m4)))
-vint8m4_t vslidedown(vint8m4_t op0, vint8m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8m4_m)))
-vint8m4_t vslidedown(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8m8)))
-vint8m8_t vslidedown(vint8m8_t op0, vint8m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8m8_m)))
-vint8m8_t vslidedown(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8mf2)))
-vint8mf2_t vslidedown(vint8mf2_t op0, vint8mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8mf2_m)))
-vint8mf2_t vslidedown(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8mf4)))
-vint8mf4_t vslidedown(vint8mf4_t op0, vint8mf4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8mf4_m)))
-vint8mf4_t vslidedown(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8mf8)))
-vint8mf8_t vslidedown(vint8mf8_t op0, vint8mf8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i8mf8_m)))
-vint8mf8_t vslidedown(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16m1)))
-vint16m1_t vslidedown(vint16m1_t op0, vint16m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16m1_m)))
-vint16m1_t vslidedown(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16m2)))
-vint16m2_t vslidedown(vint16m2_t op0, vint16m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16m2_m)))
-vint16m2_t vslidedown(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16m4)))
-vint16m4_t vslidedown(vint16m4_t op0, vint16m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16m4_m)))
-vint16m4_t vslidedown(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16m8)))
-vint16m8_t vslidedown(vint16m8_t op0, vint16m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16m8_m)))
-vint16m8_t vslidedown(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16mf2)))
-vint16mf2_t vslidedown(vint16mf2_t op0, vint16mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16mf2_m)))
-vint16mf2_t vslidedown(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16mf4)))
-vint16mf4_t vslidedown(vint16mf4_t op0, vint16mf4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i16mf4_m)))
-vint16mf4_t vslidedown(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i32m1)))
-vint32m1_t vslidedown(vint32m1_t op0, vint32m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i32m1_m)))
-vint32m1_t vslidedown(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i32m2)))
-vint32m2_t vslidedown(vint32m2_t op0, vint32m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i32m2_m)))
-vint32m2_t vslidedown(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i32m4)))
-vint32m4_t vslidedown(vint32m4_t op0, vint32m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i32m4_m)))
-vint32m4_t vslidedown(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i32m8)))
-vint32m8_t vslidedown(vint32m8_t op0, vint32m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i32m8_m)))
-vint32m8_t vslidedown(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i32mf2)))
-vint32mf2_t vslidedown(vint32mf2_t op0, vint32mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i32mf2_m)))
-vint32mf2_t vslidedown(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i64m1)))
-vint64m1_t vslidedown(vint64m1_t op0, vint64m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i64m1_m)))
-vint64m1_t vslidedown(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i64m2)))
-vint64m2_t vslidedown(vint64m2_t op0, vint64m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i64m2_m)))
-vint64m2_t vslidedown(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i64m4)))
-vint64m4_t vslidedown(vint64m4_t op0, vint64m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i64m4_m)))
-vint64m4_t vslidedown(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i64m8)))
-vint64m8_t vslidedown(vint64m8_t op0, vint64m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_i64m8_m)))
-vint64m8_t vslidedown(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8m1)))
-vuint8m1_t vslidedown(vuint8m1_t op0, vuint8m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8m1_m)))
-vuint8m1_t vslidedown(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8m2)))
-vuint8m2_t vslidedown(vuint8m2_t op0, vuint8m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8m2_m)))
-vuint8m2_t vslidedown(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8m4)))
-vuint8m4_t vslidedown(vuint8m4_t op0, vuint8m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8m4_m)))
-vuint8m4_t vslidedown(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8m8)))
-vuint8m8_t vslidedown(vuint8m8_t op0, vuint8m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8m8_m)))
-vuint8m8_t vslidedown(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8mf2)))
-vuint8mf2_t vslidedown(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8mf2_m)))
-vuint8mf2_t vslidedown(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8mf4)))
-vuint8mf4_t vslidedown(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8mf4_m)))
-vuint8mf4_t vslidedown(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8mf8)))
-vuint8mf8_t vslidedown(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u8mf8_m)))
-vuint8mf8_t vslidedown(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16m1)))
-vuint16m1_t vslidedown(vuint16m1_t op0, vuint16m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16m1_m)))
-vuint16m1_t vslidedown(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16m2)))
-vuint16m2_t vslidedown(vuint16m2_t op0, vuint16m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16m2_m)))
-vuint16m2_t vslidedown(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16m4)))
-vuint16m4_t vslidedown(vuint16m4_t op0, vuint16m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16m4_m)))
-vuint16m4_t vslidedown(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16m8)))
-vuint16m8_t vslidedown(vuint16m8_t op0, vuint16m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16m8_m)))
-vuint16m8_t vslidedown(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16mf2)))
-vuint16mf2_t vslidedown(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16mf2_m)))
-vuint16mf2_t vslidedown(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16mf4)))
-vuint16mf4_t vslidedown(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u16mf4_m)))
-vuint16mf4_t vslidedown(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u32m1)))
-vuint32m1_t vslidedown(vuint32m1_t op0, vuint32m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u32m1_m)))
-vuint32m1_t vslidedown(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u32m2)))
-vuint32m2_t vslidedown(vuint32m2_t op0, vuint32m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u32m2_m)))
-vuint32m2_t vslidedown(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u32m4)))
-vuint32m4_t vslidedown(vuint32m4_t op0, vuint32m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u32m4_m)))
-vuint32m4_t vslidedown(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u32m8)))
-vuint32m8_t vslidedown(vuint32m8_t op0, vuint32m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u32m8_m)))
-vuint32m8_t vslidedown(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u32mf2)))
-vuint32mf2_t vslidedown(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u32mf2_m)))
-vuint32mf2_t vslidedown(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u64m1)))
-vuint64m1_t vslidedown(vuint64m1_t op0, vuint64m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u64m1_m)))
-vuint64m1_t vslidedown(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u64m2)))
-vuint64m2_t vslidedown(vuint64m2_t op0, vuint64m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u64m2_m)))
-vuint64m2_t vslidedown(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u64m4)))
-vuint64m4_t vslidedown(vuint64m4_t op0, vuint64m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u64m4_m)))
-vuint64m4_t vslidedown(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u64m8)))
-vuint64m8_t vslidedown(vuint64m8_t op0, vuint64m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_u64m8_m)))
-vuint64m8_t vslidedown(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8m1)))
-vint8m1_t vslide1up(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8m1_m)))
-vint8m1_t vslide1up(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8m2)))
-vint8m2_t vslide1up(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8m2_m)))
-vint8m2_t vslide1up(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8m4)))
-vint8m4_t vslide1up(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8m4_m)))
-vint8m4_t vslide1up(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8m8)))
-vint8m8_t vslide1up(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8m8_m)))
-vint8m8_t vslide1up(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8mf2)))
-vint8mf2_t vslide1up(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8mf2_m)))
-vint8mf2_t vslide1up(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8mf4)))
-vint8mf4_t vslide1up(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8mf4_m)))
-vint8mf4_t vslide1up(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8mf8)))
-vint8mf8_t vslide1up(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i8mf8_m)))
-vint8mf8_t vslide1up(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16m1)))
-vint16m1_t vslide1up(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16m1_m)))
-vint16m1_t vslide1up(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16m2)))
-vint16m2_t vslide1up(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16m2_m)))
-vint16m2_t vslide1up(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16m4)))
-vint16m4_t vslide1up(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16m4_m)))
-vint16m4_t vslide1up(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16m8)))
-vint16m8_t vslide1up(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16m8_m)))
-vint16m8_t vslide1up(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16mf2)))
-vint16mf2_t vslide1up(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16mf2_m)))
-vint16mf2_t vslide1up(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16mf4)))
-vint16mf4_t vslide1up(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i16mf4_m)))
-vint16mf4_t vslide1up(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i32m1)))
-vint32m1_t vslide1up(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i32m1_m)))
-vint32m1_t vslide1up(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i32m2)))
-vint32m2_t vslide1up(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i32m2_m)))
-vint32m2_t vslide1up(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i32m4)))
-vint32m4_t vslide1up(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i32m4_m)))
-vint32m4_t vslide1up(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i32m8)))
-vint32m8_t vslide1up(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i32m8_m)))
-vint32m8_t vslide1up(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i32mf2)))
-vint32mf2_t vslide1up(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i32mf2_m)))
-vint32mf2_t vslide1up(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i64m1)))
-vint64m1_t vslide1up(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i64m1_m)))
-vint64m1_t vslide1up(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i64m2)))
-vint64m2_t vslide1up(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i64m2_m)))
-vint64m2_t vslide1up(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i64m4)))
-vint64m4_t vslide1up(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i64m4_m)))
-vint64m4_t vslide1up(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i64m8)))
-vint64m8_t vslide1up(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_i64m8_m)))
-vint64m8_t vslide1up(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8m1)))
-vuint8m1_t vslide1up(vuint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8m1_m)))
-vuint8m1_t vslide1up(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8m2)))
-vuint8m2_t vslide1up(vuint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8m2_m)))
-vuint8m2_t vslide1up(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8m4)))
-vuint8m4_t vslide1up(vuint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8m4_m)))
-vuint8m4_t vslide1up(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8m8)))
-vuint8m8_t vslide1up(vuint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8m8_m)))
-vuint8m8_t vslide1up(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8mf2)))
-vuint8mf2_t vslide1up(vuint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8mf2_m)))
-vuint8mf2_t vslide1up(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8mf4)))
-vuint8mf4_t vslide1up(vuint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8mf4_m)))
-vuint8mf4_t vslide1up(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8mf8)))
-vuint8mf8_t vslide1up(vuint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u8mf8_m)))
-vuint8mf8_t vslide1up(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16m1)))
-vuint16m1_t vslide1up(vuint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16m1_m)))
-vuint16m1_t vslide1up(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16m2)))
-vuint16m2_t vslide1up(vuint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16m2_m)))
-vuint16m2_t vslide1up(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16m4)))
-vuint16m4_t vslide1up(vuint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16m4_m)))
-vuint16m4_t vslide1up(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16m8)))
-vuint16m8_t vslide1up(vuint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16m8_m)))
-vuint16m8_t vslide1up(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16mf2)))
-vuint16mf2_t vslide1up(vuint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16mf2_m)))
-vuint16mf2_t vslide1up(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16mf4)))
-vuint16mf4_t vslide1up(vuint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u16mf4_m)))
-vuint16mf4_t vslide1up(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u32m1)))
-vuint32m1_t vslide1up(vuint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u32m1_m)))
-vuint32m1_t vslide1up(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u32m2)))
-vuint32m2_t vslide1up(vuint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u32m2_m)))
-vuint32m2_t vslide1up(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u32m4)))
-vuint32m4_t vslide1up(vuint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u32m4_m)))
-vuint32m4_t vslide1up(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u32m8)))
-vuint32m8_t vslide1up(vuint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u32m8_m)))
-vuint32m8_t vslide1up(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u32mf2)))
-vuint32mf2_t vslide1up(vuint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u32mf2_m)))
-vuint32mf2_t vslide1up(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u64m1)))
-vuint64m1_t vslide1up(vuint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u64m1_m)))
-vuint64m1_t vslide1up(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u64m2)))
-vuint64m2_t vslide1up(vuint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u64m2_m)))
-vuint64m2_t vslide1up(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u64m4)))
-vuint64m4_t vslide1up(vuint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u64m4_m)))
-vuint64m4_t vslide1up(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u64m8)))
-vuint64m8_t vslide1up(vuint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1up_vx_u64m8_m)))
-vuint64m8_t vslide1up(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8m1)))
-vint8m1_t vslide1down(vint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8m1_m)))
-vint8m1_t vslide1down(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8m2)))
-vint8m2_t vslide1down(vint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8m2_m)))
-vint8m2_t vslide1down(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8m4)))
-vint8m4_t vslide1down(vint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8m4_m)))
-vint8m4_t vslide1down(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8m8)))
-vint8m8_t vslide1down(vint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8m8_m)))
-vint8m8_t vslide1down(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8mf2)))
-vint8mf2_t vslide1down(vint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8mf2_m)))
-vint8mf2_t vslide1down(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8mf4)))
-vint8mf4_t vslide1down(vint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8mf4_m)))
-vint8mf4_t vslide1down(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8mf8)))
-vint8mf8_t vslide1down(vint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i8mf8_m)))
-vint8mf8_t vslide1down(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16m1)))
-vint16m1_t vslide1down(vint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16m1_m)))
-vint16m1_t vslide1down(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16m2)))
-vint16m2_t vslide1down(vint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16m2_m)))
-vint16m2_t vslide1down(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16m4)))
-vint16m4_t vslide1down(vint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16m4_m)))
-vint16m4_t vslide1down(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16m8)))
-vint16m8_t vslide1down(vint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16m8_m)))
-vint16m8_t vslide1down(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16mf2)))
-vint16mf2_t vslide1down(vint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16mf2_m)))
-vint16mf2_t vslide1down(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16mf4)))
-vint16mf4_t vslide1down(vint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i16mf4_m)))
-vint16mf4_t vslide1down(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i32m1)))
-vint32m1_t vslide1down(vint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i32m1_m)))
-vint32m1_t vslide1down(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i32m2)))
-vint32m2_t vslide1down(vint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i32m2_m)))
-vint32m2_t vslide1down(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i32m4)))
-vint32m4_t vslide1down(vint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i32m4_m)))
-vint32m4_t vslide1down(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i32m8)))
-vint32m8_t vslide1down(vint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i32m8_m)))
-vint32m8_t vslide1down(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i32mf2)))
-vint32mf2_t vslide1down(vint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i32mf2_m)))
-vint32mf2_t vslide1down(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i64m1)))
-vint64m1_t vslide1down(vint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i64m1_m)))
-vint64m1_t vslide1down(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i64m2)))
-vint64m2_t vslide1down(vint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i64m2_m)))
-vint64m2_t vslide1down(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i64m4)))
-vint64m4_t vslide1down(vint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i64m4_m)))
-vint64m4_t vslide1down(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i64m8)))
-vint64m8_t vslide1down(vint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_i64m8_m)))
-vint64m8_t vslide1down(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8m1)))
-vuint8m1_t vslide1down(vuint8m1_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8m1_m)))
-vuint8m1_t vslide1down(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8m2)))
-vuint8m2_t vslide1down(vuint8m2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8m2_m)))
-vuint8m2_t vslide1down(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8m4)))
-vuint8m4_t vslide1down(vuint8m4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8m4_m)))
-vuint8m4_t vslide1down(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8m8)))
-vuint8m8_t vslide1down(vuint8m8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8m8_m)))
-vuint8m8_t vslide1down(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8mf2)))
-vuint8mf2_t vslide1down(vuint8mf2_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8mf2_m)))
-vuint8mf2_t vslide1down(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8mf4)))
-vuint8mf4_t vslide1down(vuint8mf4_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8mf4_m)))
-vuint8mf4_t vslide1down(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8mf8)))
-vuint8mf8_t vslide1down(vuint8mf8_t op0, int8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u8mf8_m)))
-vuint8mf8_t vslide1down(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, int8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16m1)))
-vuint16m1_t vslide1down(vuint16m1_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16m1_m)))
-vuint16m1_t vslide1down(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16m2)))
-vuint16m2_t vslide1down(vuint16m2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16m2_m)))
-vuint16m2_t vslide1down(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16m4)))
-vuint16m4_t vslide1down(vuint16m4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16m4_m)))
-vuint16m4_t vslide1down(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16m8)))
-vuint16m8_t vslide1down(vuint16m8_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16m8_m)))
-vuint16m8_t vslide1down(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16mf2)))
-vuint16mf2_t vslide1down(vuint16mf2_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16mf2_m)))
-vuint16mf2_t vslide1down(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16mf4)))
-vuint16mf4_t vslide1down(vuint16mf4_t op0, int16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u16mf4_m)))
-vuint16mf4_t vslide1down(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, int16_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u32m1)))
-vuint32m1_t vslide1down(vuint32m1_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u32m1_m)))
-vuint32m1_t vslide1down(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u32m2)))
-vuint32m2_t vslide1down(vuint32m2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u32m2_m)))
-vuint32m2_t vslide1down(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u32m4)))
-vuint32m4_t vslide1down(vuint32m4_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u32m4_m)))
-vuint32m4_t vslide1down(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u32m8)))
-vuint32m8_t vslide1down(vuint32m8_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u32m8_m)))
-vuint32m8_t vslide1down(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u32mf2)))
-vuint32mf2_t vslide1down(vuint32mf2_t op0, int32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u32mf2_m)))
-vuint32mf2_t vslide1down(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, int32_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u64m1)))
-vuint64m1_t vslide1down(vuint64m1_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u64m1_m)))
-vuint64m1_t vslide1down(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u64m2)))
-vuint64m2_t vslide1down(vuint64m2_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u64m2_m)))
-vuint64m2_t vslide1down(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u64m4)))
-vuint64m4_t vslide1down(vuint64m4_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u64m4_m)))
-vuint64m4_t vslide1down(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u64m8)))
-vuint64m8_t vslide1down(vuint64m8_t op0, int64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslide1down_vx_u64m8_m)))
-vuint64m8_t vslide1down(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, int64_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8m1)))
-vint8m1_t vrgather(vint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8m1_m)))
-vint8m1_t vrgather(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8m2)))
-vint8m2_t vrgather(vint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8m2_m)))
-vint8m2_t vrgather(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8m4)))
-vint8m4_t vrgather(vint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8m4_m)))
-vint8m4_t vrgather(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8m8)))
-vint8m8_t vrgather(vint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8m8_m)))
-vint8m8_t vrgather(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8mf2)))
-vint8mf2_t vrgather(vint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8mf2_m)))
-vint8mf2_t vrgather(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8mf4)))
-vint8mf4_t vrgather(vint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8mf4_m)))
-vint8mf4_t vrgather(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8mf8)))
-vint8mf8_t vrgather(vint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i8mf8_m)))
-vint8mf8_t vrgather(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16m1)))
-vint16m1_t vrgather(vint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16m1_m)))
-vint16m1_t vrgather(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16m2)))
-vint16m2_t vrgather(vint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16m2_m)))
-vint16m2_t vrgather(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16m4)))
-vint16m4_t vrgather(vint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16m4_m)))
-vint16m4_t vrgather(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16m8)))
-vint16m8_t vrgather(vint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16m8_m)))
-vint16m8_t vrgather(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16mf2)))
-vint16mf2_t vrgather(vint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16mf2_m)))
-vint16mf2_t vrgather(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16mf4)))
-vint16mf4_t vrgather(vint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i16mf4_m)))
-vint16mf4_t vrgather(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i32m1)))
-vint32m1_t vrgather(vint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i32m1_m)))
-vint32m1_t vrgather(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i32m2)))
-vint32m2_t vrgather(vint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i32m2_m)))
-vint32m2_t vrgather(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i32m4)))
-vint32m4_t vrgather(vint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i32m4_m)))
-vint32m4_t vrgather(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i32m8)))
-vint32m8_t vrgather(vint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i32m8_m)))
-vint32m8_t vrgather(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i32mf2)))
-vint32mf2_t vrgather(vint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i32mf2_m)))
-vint32mf2_t vrgather(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i64m1)))
-vint64m1_t vrgather(vint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i64m1_m)))
-vint64m1_t vrgather(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i64m2)))
-vint64m2_t vrgather(vint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i64m2_m)))
-vint64m2_t vrgather(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i64m4)))
-vint64m4_t vrgather(vint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i64m4_m)))
-vint64m4_t vrgather(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i64m8)))
-vint64m8_t vrgather(vint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_i64m8_m)))
-vint64m8_t vrgather(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8m1)))
-vint8m1_t vrgather(vint8m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8m1_m)))
-vint8m1_t vrgather(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8m2)))
-vint8m2_t vrgather(vint8m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8m2_m)))
-vint8m2_t vrgather(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8m4)))
-vint8m4_t vrgather(vint8m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8m4_m)))
-vint8m4_t vrgather(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8m8)))
-vint8m8_t vrgather(vint8m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8m8_m)))
-vint8m8_t vrgather(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8mf2)))
-vint8mf2_t vrgather(vint8mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8mf2_m)))
-vint8mf2_t vrgather(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8mf4)))
-vint8mf4_t vrgather(vint8mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8mf4_m)))
-vint8mf4_t vrgather(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8mf8)))
-vint8mf8_t vrgather(vint8mf8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i8mf8_m)))
-vint8mf8_t vrgather(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16m1)))
-vint16m1_t vrgather(vint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16m1_m)))
-vint16m1_t vrgather(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16m2)))
-vint16m2_t vrgather(vint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16m2_m)))
-vint16m2_t vrgather(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16m4)))
-vint16m4_t vrgather(vint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16m4_m)))
-vint16m4_t vrgather(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16m8)))
-vint16m8_t vrgather(vint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16m8_m)))
-vint16m8_t vrgather(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16mf2)))
-vint16mf2_t vrgather(vint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16mf2_m)))
-vint16mf2_t vrgather(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16mf4)))
-vint16mf4_t vrgather(vint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i16mf4_m)))
-vint16mf4_t vrgather(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i32m1)))
-vint32m1_t vrgather(vint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i32m1_m)))
-vint32m1_t vrgather(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i32m2)))
-vint32m2_t vrgather(vint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i32m2_m)))
-vint32m2_t vrgather(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i32m4)))
-vint32m4_t vrgather(vint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i32m4_m)))
-vint32m4_t vrgather(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i32m8)))
-vint32m8_t vrgather(vint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i32m8_m)))
-vint32m8_t vrgather(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i32mf2)))
-vint32mf2_t vrgather(vint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i32mf2_m)))
-vint32mf2_t vrgather(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i64m1)))
-vint64m1_t vrgather(vint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i64m1_m)))
-vint64m1_t vrgather(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i64m2)))
-vint64m2_t vrgather(vint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i64m2_m)))
-vint64m2_t vrgather(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i64m4)))
-vint64m4_t vrgather(vint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i64m4_m)))
-vint64m4_t vrgather(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i64m8)))
-vint64m8_t vrgather(vint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_i64m8_m)))
-vint64m8_t vrgather(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8m1)))
-vint8m1_t vrgatherei16(vint8m1_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8m1_m)))
-vint8m1_t vrgatherei16(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8m2)))
-vint8m2_t vrgatherei16(vint8m2_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8m2_m)))
-vint8m2_t vrgatherei16(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8m4)))
-vint8m4_t vrgatherei16(vint8m4_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8m4_m)))
-vint8m4_t vrgatherei16(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8mf2)))
-vint8mf2_t vrgatherei16(vint8mf2_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8mf2_m)))
-vint8mf2_t vrgatherei16(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8mf4)))
-vint8mf4_t vrgatherei16(vint8mf4_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8mf4_m)))
-vint8mf4_t vrgatherei16(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8mf8)))
-vint8mf8_t vrgatherei16(vint8mf8_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i8mf8_m)))
-vint8mf8_t vrgatherei16(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16m1)))
-vint16m1_t vrgatherei16(vint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16m1_m)))
-vint16m1_t vrgatherei16(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16m2)))
-vint16m2_t vrgatherei16(vint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16m2_m)))
-vint16m2_t vrgatherei16(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16m4)))
-vint16m4_t vrgatherei16(vint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16m4_m)))
-vint16m4_t vrgatherei16(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16m8)))
-vint16m8_t vrgatherei16(vint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16m8_m)))
-vint16m8_t vrgatherei16(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16mf2)))
-vint16mf2_t vrgatherei16(vint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16mf2_m)))
-vint16mf2_t vrgatherei16(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16mf4)))
-vint16mf4_t vrgatherei16(vint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i16mf4_m)))
-vint16mf4_t vrgatherei16(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i32m1)))
-vint32m1_t vrgatherei16(vint32m1_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i32m1_m)))
-vint32m1_t vrgatherei16(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i32m2)))
-vint32m2_t vrgatherei16(vint32m2_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i32m2_m)))
-vint32m2_t vrgatherei16(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i32m4)))
-vint32m4_t vrgatherei16(vint32m4_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i32m4_m)))
-vint32m4_t vrgatherei16(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i32m8)))
-vint32m8_t vrgatherei16(vint32m8_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i32m8_m)))
-vint32m8_t vrgatherei16(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i32mf2)))
-vint32mf2_t vrgatherei16(vint32mf2_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i32mf2_m)))
-vint32mf2_t vrgatherei16(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i64m1)))
-vint64m1_t vrgatherei16(vint64m1_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i64m1_m)))
-vint64m1_t vrgatherei16(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i64m2)))
-vint64m2_t vrgatherei16(vint64m2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i64m2_m)))
-vint64m2_t vrgatherei16(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i64m4)))
-vint64m4_t vrgatherei16(vint64m4_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i64m4_m)))
-vint64m4_t vrgatherei16(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i64m8)))
-vint64m8_t vrgatherei16(vint64m8_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_i64m8_m)))
-vint64m8_t vrgatherei16(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8m1)))
-vuint8m1_t vrgather(vuint8m1_t op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8m1_m)))
-vuint8m1_t vrgather(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8m2)))
-vuint8m2_t vrgather(vuint8m2_t op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8m2_m)))
-vuint8m2_t vrgather(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8m4)))
-vuint8m4_t vrgather(vuint8m4_t op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8m4_m)))
-vuint8m4_t vrgather(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8m8)))
-vuint8m8_t vrgather(vuint8m8_t op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8m8_m)))
-vuint8m8_t vrgather(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8mf2)))
-vuint8mf2_t vrgather(vuint8mf2_t op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8mf2_m)))
-vuint8mf2_t vrgather(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8mf4)))
-vuint8mf4_t vrgather(vuint8mf4_t op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8mf4_m)))
-vuint8mf4_t vrgather(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8mf8)))
-vuint8mf8_t vrgather(vuint8mf8_t op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u8mf8_m)))
-vuint8mf8_t vrgather(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16m1)))
-vuint16m1_t vrgather(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16m1_m)))
-vuint16m1_t vrgather(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16m2)))
-vuint16m2_t vrgather(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16m2_m)))
-vuint16m2_t vrgather(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16m4)))
-vuint16m4_t vrgather(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16m4_m)))
-vuint16m4_t vrgather(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16m8)))
-vuint16m8_t vrgather(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16m8_m)))
-vuint16m8_t vrgather(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16mf2)))
-vuint16mf2_t vrgather(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16mf2_m)))
-vuint16mf2_t vrgather(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16mf4)))
-vuint16mf4_t vrgather(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u16mf4_m)))
-vuint16mf4_t vrgather(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u32m1)))
-vuint32m1_t vrgather(vuint32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u32m1_m)))
-vuint32m1_t vrgather(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u32m2)))
-vuint32m2_t vrgather(vuint32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u32m2_m)))
-vuint32m2_t vrgather(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u32m4)))
-vuint32m4_t vrgather(vuint32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u32m4_m)))
-vuint32m4_t vrgather(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u32m8)))
-vuint32m8_t vrgather(vuint32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u32m8_m)))
-vuint32m8_t vrgather(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u32mf2)))
-vuint32mf2_t vrgather(vuint32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u32mf2_m)))
-vuint32mf2_t vrgather(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u64m1)))
-vuint64m1_t vrgather(vuint64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u64m1_m)))
-vuint64m1_t vrgather(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u64m2)))
-vuint64m2_t vrgather(vuint64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u64m2_m)))
-vuint64m2_t vrgather(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u64m4)))
-vuint64m4_t vrgather(vuint64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u64m4_m)))
-vuint64m4_t vrgather(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u64m8)))
-vuint64m8_t vrgather(vuint64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_u64m8_m)))
-vuint64m8_t vrgather(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8m1)))
-vuint8m1_t vrgather(vuint8m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8m1_m)))
-vuint8m1_t vrgather(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8m2)))
-vuint8m2_t vrgather(vuint8m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8m2_m)))
-vuint8m2_t vrgather(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8m4)))
-vuint8m4_t vrgather(vuint8m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8m4_m)))
-vuint8m4_t vrgather(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8m8)))
-vuint8m8_t vrgather(vuint8m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8m8_m)))
-vuint8m8_t vrgather(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8mf2)))
-vuint8mf2_t vrgather(vuint8mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8mf2_m)))
-vuint8mf2_t vrgather(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8mf4)))
-vuint8mf4_t vrgather(vuint8mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8mf4_m)))
-vuint8mf4_t vrgather(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8mf8)))
-vuint8mf8_t vrgather(vuint8mf8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u8mf8_m)))
-vuint8mf8_t vrgather(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16m1)))
-vuint16m1_t vrgather(vuint16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16m1_m)))
-vuint16m1_t vrgather(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16m2)))
-vuint16m2_t vrgather(vuint16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16m2_m)))
-vuint16m2_t vrgather(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16m4)))
-vuint16m4_t vrgather(vuint16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16m4_m)))
-vuint16m4_t vrgather(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16m8)))
-vuint16m8_t vrgather(vuint16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16m8_m)))
-vuint16m8_t vrgather(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16mf2)))
-vuint16mf2_t vrgather(vuint16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16mf2_m)))
-vuint16mf2_t vrgather(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16mf4)))
-vuint16mf4_t vrgather(vuint16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u16mf4_m)))
-vuint16mf4_t vrgather(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u32m1)))
-vuint32m1_t vrgather(vuint32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u32m1_m)))
-vuint32m1_t vrgather(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u32m2)))
-vuint32m2_t vrgather(vuint32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u32m2_m)))
-vuint32m2_t vrgather(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u32m4)))
-vuint32m4_t vrgather(vuint32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u32m4_m)))
-vuint32m4_t vrgather(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u32m8)))
-vuint32m8_t vrgather(vuint32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u32m8_m)))
-vuint32m8_t vrgather(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u32mf2)))
-vuint32mf2_t vrgather(vuint32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u32mf2_m)))
-vuint32mf2_t vrgather(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u64m1)))
-vuint64m1_t vrgather(vuint64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u64m1_m)))
-vuint64m1_t vrgather(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u64m2)))
-vuint64m2_t vrgather(vuint64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u64m2_m)))
-vuint64m2_t vrgather(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u64m4)))
-vuint64m4_t vrgather(vuint64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u64m4_m)))
-vuint64m4_t vrgather(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u64m8)))
-vuint64m8_t vrgather(vuint64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_u64m8_m)))
-vuint64m8_t vrgather(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8m1)))
-vuint8m1_t vrgatherei16(vuint8m1_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8m1_m)))
-vuint8m1_t vrgatherei16(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8m2)))
-vuint8m2_t vrgatherei16(vuint8m2_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8m2_m)))
-vuint8m2_t vrgatherei16(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8m4)))
-vuint8m4_t vrgatherei16(vuint8m4_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8m4_m)))
-vuint8m4_t vrgatherei16(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8mf2)))
-vuint8mf2_t vrgatherei16(vuint8mf2_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8mf2_m)))
-vuint8mf2_t vrgatherei16(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8mf4)))
-vuint8mf4_t vrgatherei16(vuint8mf4_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8mf4_m)))
-vuint8mf4_t vrgatherei16(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8mf8)))
-vuint8mf8_t vrgatherei16(vuint8mf8_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u8mf8_m)))
-vuint8mf8_t vrgatherei16(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16m1)))
-vuint16m1_t vrgatherei16(vuint16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16m1_m)))
-vuint16m1_t vrgatherei16(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16m2)))
-vuint16m2_t vrgatherei16(vuint16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16m2_m)))
-vuint16m2_t vrgatherei16(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16m4)))
-vuint16m4_t vrgatherei16(vuint16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16m4_m)))
-vuint16m4_t vrgatherei16(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16m8)))
-vuint16m8_t vrgatherei16(vuint16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16m8_m)))
-vuint16m8_t vrgatherei16(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16mf2)))
-vuint16mf2_t vrgatherei16(vuint16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16mf2_m)))
-vuint16mf2_t vrgatherei16(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16mf4)))
-vuint16mf4_t vrgatherei16(vuint16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u16mf4_m)))
-vuint16mf4_t vrgatherei16(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u32m1)))
-vuint32m1_t vrgatherei16(vuint32m1_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u32m1_m)))
-vuint32m1_t vrgatherei16(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u32m2)))
-vuint32m2_t vrgatherei16(vuint32m2_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u32m2_m)))
-vuint32m2_t vrgatherei16(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u32m4)))
-vuint32m4_t vrgatherei16(vuint32m4_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u32m4_m)))
-vuint32m4_t vrgatherei16(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u32m8)))
-vuint32m8_t vrgatherei16(vuint32m8_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u32m8_m)))
-vuint32m8_t vrgatherei16(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u32mf2)))
-vuint32mf2_t vrgatherei16(vuint32mf2_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u32mf2_m)))
-vuint32mf2_t vrgatherei16(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u64m1)))
-vuint64m1_t vrgatherei16(vuint64m1_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u64m1_m)))
-vuint64m1_t vrgatherei16(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u64m2)))
-vuint64m2_t vrgatherei16(vuint64m2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u64m2_m)))
-vuint64m2_t vrgatherei16(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u64m4)))
-vuint64m4_t vrgatherei16(vuint64m4_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u64m4_m)))
-vuint64m4_t vrgatherei16(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u64m8)))
-vuint64m8_t vrgatherei16(vuint64m8_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_u64m8_m)))
-vuint64m8_t vrgatherei16(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i8m1)))
-vint8m1_t vcompress(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i8m2)))
-vint8m2_t vcompress(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i8m4)))
-vint8m4_t vcompress(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i8m8)))
-vint8m8_t vcompress(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i8mf2)))
-vint8mf2_t vcompress(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i8mf4)))
-vint8mf4_t vcompress(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i8mf8)))
-vint8mf8_t vcompress(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i16m1)))
-vint16m1_t vcompress(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i16m2)))
-vint16m2_t vcompress(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i16m4)))
-vint16m4_t vcompress(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i16m8)))
-vint16m8_t vcompress(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i16mf2)))
-vint16mf2_t vcompress(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i16mf4)))
-vint16mf4_t vcompress(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i32m1)))
-vint32m1_t vcompress(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i32m2)))
-vint32m2_t vcompress(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i32m4)))
-vint32m4_t vcompress(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i32m8)))
-vint32m8_t vcompress(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i32mf2)))
-vint32mf2_t vcompress(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i64m1)))
-vint64m1_t vcompress(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i64m2)))
-vint64m2_t vcompress(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i64m4)))
-vint64m4_t vcompress(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_i64m8)))
-vint64m8_t vcompress(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u8m1)))
-vuint8m1_t vcompress(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u8m2)))
-vuint8m2_t vcompress(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u8m4)))
-vuint8m4_t vcompress(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u8m8)))
-vuint8m8_t vcompress(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u8mf2)))
-vuint8mf2_t vcompress(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u8mf4)))
-vuint8mf4_t vcompress(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u8mf8)))
-vuint8mf8_t vcompress(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u16m1)))
-vuint16m1_t vcompress(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u16m2)))
-vuint16m2_t vcompress(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u16m4)))
-vuint16m4_t vcompress(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u16m8)))
-vuint16m8_t vcompress(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u16mf2)))
-vuint16mf2_t vcompress(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u16mf4)))
-vuint16mf4_t vcompress(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u32m1)))
-vuint32m1_t vcompress(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u32m2)))
-vuint32m2_t vcompress(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u32m4)))
-vuint32m4_t vcompress(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u32m8)))
-vuint32m8_t vcompress(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u32mf2)))
-vuint32mf2_t vcompress(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u64m1)))
-vuint64m1_t vcompress(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u64m2)))
-vuint64m2_t vcompress(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u64m4)))
-vuint64m4_t vcompress(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_u64m8)))
-vuint64m8_t vcompress(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i8m2_i8m1)))
-vint8m1_t vget_i8m1(vint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i8m4_i8m1)))
-vint8m1_t vget_i8m1(vint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i8m8_i8m1)))
-vint8m1_t vget_i8m1(vint8m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i16m2_i16m1)))
-vint16m1_t vget_i16m1(vint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i16m4_i16m1)))
-vint16m1_t vget_i16m1(vint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i16m8_i16m1)))
-vint16m1_t vget_i16m1(vint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i32m2_i32m1)))
-vint32m1_t vget_i32m1(vint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i32m4_i32m1)))
-vint32m1_t vget_i32m1(vint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i32m8_i32m1)))
-vint32m1_t vget_i32m1(vint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i64m2_i64m1)))
-vint64m1_t vget_i64m1(vint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i64m4_i64m1)))
-vint64m1_t vget_i64m1(vint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i64m8_i64m1)))
-vint64m1_t vget_i64m1(vint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u8m2_u8m1)))
-vuint8m1_t vget_u8m1(vuint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u8m4_u8m1)))
-vuint8m1_t vget_u8m1(vuint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u8m8_u8m1)))
-vuint8m1_t vget_u8m1(vuint8m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u16m2_u16m1)))
-vuint16m1_t vget_u16m1(vuint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u16m4_u16m1)))
-vuint16m1_t vget_u16m1(vuint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u16m8_u16m1)))
-vuint16m1_t vget_u16m1(vuint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u32m2_u32m1)))
-vuint32m1_t vget_u32m1(vuint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u32m4_u32m1)))
-vuint32m1_t vget_u32m1(vuint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u32m8_u32m1)))
-vuint32m1_t vget_u32m1(vuint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u64m2_u64m1)))
-vuint64m1_t vget_u64m1(vuint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u64m4_u64m1)))
-vuint64m1_t vget_u64m1(vuint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u64m8_u64m1)))
-vuint64m1_t vget_u64m1(vuint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i8m4_i8m2)))
-vint8m2_t vget_i8m2(vint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i8m8_i8m2)))
-vint8m2_t vget_i8m2(vint8m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i16m4_i16m2)))
-vint16m2_t vget_i16m2(vint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i16m8_i16m2)))
-vint16m2_t vget_i16m2(vint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i32m4_i32m2)))
-vint32m2_t vget_i32m2(vint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i32m8_i32m2)))
-vint32m2_t vget_i32m2(vint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i64m4_i64m2)))
-vint64m2_t vget_i64m2(vint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i64m8_i64m2)))
-vint64m2_t vget_i64m2(vint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u8m4_u8m2)))
-vuint8m2_t vget_u8m2(vuint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u8m8_u8m2)))
-vuint8m2_t vget_u8m2(vuint8m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u16m4_u16m2)))
-vuint16m2_t vget_u16m2(vuint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u16m8_u16m2)))
-vuint16m2_t vget_u16m2(vuint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u32m4_u32m2)))
-vuint32m2_t vget_u32m2(vuint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u32m8_u32m2)))
-vuint32m2_t vget_u32m2(vuint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u64m4_u64m2)))
-vuint64m2_t vget_u64m2(vuint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u64m8_u64m2)))
-vuint64m2_t vget_u64m2(vuint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i8m8_i8m4)))
-vint8m4_t vget_i8m4(vint8m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i16m8_i16m4)))
-vint16m4_t vget_i16m4(vint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i32m8_i32m4)))
-vint32m4_t vget_i32m4(vint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_i64m8_i64m4)))
-vint64m4_t vget_i64m4(vint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u8m8_u8m4)))
-vuint8m4_t vget_u8m4(vuint8m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u16m8_u16m4)))
-vuint16m4_t vget_u16m4(vuint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u32m8_u32m4)))
-vuint32m4_t vget_u32m4(vuint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_u64m8_u64m4)))
-vuint64m4_t vget_u64m4(vuint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i8m1_i8m2)))
-vint8m2_t vset(vint8m2_t op0, size_t op1, vint8m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i16m1_i16m2)))
-vint16m2_t vset(vint16m2_t op0, size_t op1, vint16m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i32m1_i32m2)))
-vint32m2_t vset(vint32m2_t op0, size_t op1, vint32m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i64m1_i64m2)))
-vint64m2_t vset(vint64m2_t op0, size_t op1, vint64m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u8m1_u8m2)))
-vuint8m2_t vset(vuint8m2_t op0, size_t op1, vuint8m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u16m1_u16m2)))
-vuint16m2_t vset(vuint16m2_t op0, size_t op1, vuint16m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u32m1_u32m2)))
-vuint32m2_t vset(vuint32m2_t op0, size_t op1, vuint32m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u64m1_u64m2)))
-vuint64m2_t vset(vuint64m2_t op0, size_t op1, vuint64m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i8m1_i8m4)))
-vint8m4_t vset(vint8m4_t op0, size_t op1, vint8m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i8m2_i8m4)))
-vint8m4_t vset(vint8m4_t op0, size_t op1, vint8m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i16m1_i16m4)))
-vint16m4_t vset(vint16m4_t op0, size_t op1, vint16m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i16m2_i16m4)))
-vint16m4_t vset(vint16m4_t op0, size_t op1, vint16m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i32m1_i32m4)))
-vint32m4_t vset(vint32m4_t op0, size_t op1, vint32m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i32m2_i32m4)))
-vint32m4_t vset(vint32m4_t op0, size_t op1, vint32m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i64m1_i64m4)))
-vint64m4_t vset(vint64m4_t op0, size_t op1, vint64m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i64m2_i64m4)))
-vint64m4_t vset(vint64m4_t op0, size_t op1, vint64m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u8m1_u8m4)))
-vuint8m4_t vset(vuint8m4_t op0, size_t op1, vuint8m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u8m2_u8m4)))
-vuint8m4_t vset(vuint8m4_t op0, size_t op1, vuint8m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u16m1_u16m4)))
-vuint16m4_t vset(vuint16m4_t op0, size_t op1, vuint16m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u16m2_u16m4)))
-vuint16m4_t vset(vuint16m4_t op0, size_t op1, vuint16m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u32m1_u32m4)))
-vuint32m4_t vset(vuint32m4_t op0, size_t op1, vuint32m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u32m2_u32m4)))
-vuint32m4_t vset(vuint32m4_t op0, size_t op1, vuint32m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u64m1_u64m4)))
-vuint64m4_t vset(vuint64m4_t op0, size_t op1, vuint64m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u64m2_u64m4)))
-vuint64m4_t vset(vuint64m4_t op0, size_t op1, vuint64m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i8m1_i8m8)))
-vint8m8_t vset(vint8m8_t op0, size_t op1, vint8m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i8m2_i8m8)))
-vint8m8_t vset(vint8m8_t op0, size_t op1, vint8m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i8m4_i8m8)))
-vint8m8_t vset(vint8m8_t op0, size_t op1, vint8m4_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i16m1_i16m8)))
-vint16m8_t vset(vint16m8_t op0, size_t op1, vint16m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i16m2_i16m8)))
-vint16m8_t vset(vint16m8_t op0, size_t op1, vint16m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i16m4_i16m8)))
-vint16m8_t vset(vint16m8_t op0, size_t op1, vint16m4_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i32m1_i32m8)))
-vint32m8_t vset(vint32m8_t op0, size_t op1, vint32m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i32m2_i32m8)))
-vint32m8_t vset(vint32m8_t op0, size_t op1, vint32m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i32m4_i32m8)))
-vint32m8_t vset(vint32m8_t op0, size_t op1, vint32m4_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i64m1_i64m8)))
-vint64m8_t vset(vint64m8_t op0, size_t op1, vint64m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i64m2_i64m8)))
-vint64m8_t vset(vint64m8_t op0, size_t op1, vint64m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_i64m4_i64m8)))
-vint64m8_t vset(vint64m8_t op0, size_t op1, vint64m4_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u8m1_u8m8)))
-vuint8m8_t vset(vuint8m8_t op0, size_t op1, vuint8m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u8m2_u8m8)))
-vuint8m8_t vset(vuint8m8_t op0, size_t op1, vuint8m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u8m4_u8m8)))
-vuint8m8_t vset(vuint8m8_t op0, size_t op1, vuint8m4_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u16m1_u16m8)))
-vuint16m8_t vset(vuint16m8_t op0, size_t op1, vuint16m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u16m2_u16m8)))
-vuint16m8_t vset(vuint16m8_t op0, size_t op1, vuint16m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u16m4_u16m8)))
-vuint16m8_t vset(vuint16m8_t op0, size_t op1, vuint16m4_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u32m1_u32m8)))
-vuint32m8_t vset(vuint32m8_t op0, size_t op1, vuint32m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u32m2_u32m8)))
-vuint32m8_t vset(vuint32m8_t op0, size_t op1, vuint32m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u32m4_u32m8)))
-vuint32m8_t vset(vuint32m8_t op0, size_t op1, vuint32m4_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u64m1_u64m8)))
-vuint64m8_t vset(vuint64m8_t op0, size_t op1, vuint64m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u64m2_u64m8)))
-vuint64m8_t vset(vuint64m8_t op0, size_t op1, vuint64m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_u64m4_u64m8)))
-vuint64m8_t vset(vuint64m8_t op0, size_t op1, vuint64m4_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8m1)))
-void vsoxei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8m1_m)))
-void vsoxei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8m2)))
-void vsoxei8(int8_t * op0, vuint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8m2_m)))
-void vsoxei8(vbool4_t op0, int8_t * op1, vuint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8m4)))
-void vsoxei8(int8_t * op0, vuint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8m4_m)))
-void vsoxei8(vbool2_t op0, int8_t * op1, vuint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8m8)))
-void vsoxei8(int8_t * op0, vuint8m8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8m8_m)))
-void vsoxei8(vbool1_t op0, int8_t * op1, vuint8m8_t op2, vint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8mf2)))
-void vsoxei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8mf2_m)))
-void vsoxei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8mf4)))
-void vsoxei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8mf4_m)))
-void vsoxei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8mf8)))
-void vsoxei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i8mf8_m)))
-void vsoxei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8m1)))
-void vsoxei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8m1_m)))
-void vsoxei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8m2)))
-void vsoxei8(uint8_t * op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8m2_m)))
-void vsoxei8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8m4)))
-void vsoxei8(uint8_t * op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8m4_m)))
-void vsoxei8(vbool2_t op0, uint8_t * op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8m8)))
-void vsoxei8(uint8_t * op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8m8_m)))
-void vsoxei8(vbool1_t op0, uint8_t * op1, vuint8m8_t op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8mf2)))
-void vsoxei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8mf2_m)))
-void vsoxei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8mf4)))
-void vsoxei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8mf4_m)))
-void vsoxei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8mf8)))
-void vsoxei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u8mf8_m)))
-void vsoxei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8m1)))
-void vsoxei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8m1_m)))
-void vsoxei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8m2)))
-void vsoxei16(int8_t * op0, vuint16m4_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8m2_m)))
-void vsoxei16(vbool4_t op0, int8_t * op1, vuint16m4_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8m4)))
-void vsoxei16(int8_t * op0, vuint16m8_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8m4_m)))
-void vsoxei16(vbool2_t op0, int8_t * op1, vuint16m8_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8mf2)))
-void vsoxei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8mf2_m)))
-void vsoxei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8mf4)))
-void vsoxei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8mf4_m)))
-void vsoxei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8mf8)))
-void vsoxei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i8mf8_m)))
-void vsoxei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8m1)))
-void vsoxei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8m1_m)))
-void vsoxei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8m2)))
-void vsoxei16(uint8_t * op0, vuint16m4_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8m2_m)))
-void vsoxei16(vbool4_t op0, uint8_t * op1, vuint16m4_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8m4)))
-void vsoxei16(uint8_t * op0, vuint16m8_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8m4_m)))
-void vsoxei16(vbool2_t op0, uint8_t * op1, vuint16m8_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8mf2)))
-void vsoxei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8mf2_m)))
-void vsoxei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8mf4)))
-void vsoxei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8mf4_m)))
-void vsoxei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8mf8)))
-void vsoxei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u8mf8_m)))
-void vsoxei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i8m1)))
-void vsoxei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i8m1_m)))
-void vsoxei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i8m2)))
-void vsoxei32(int8_t * op0, vuint32m8_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i8m2_m)))
-void vsoxei32(vbool4_t op0, int8_t * op1, vuint32m8_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i8mf2)))
-void vsoxei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i8mf2_m)))
-void vsoxei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i8mf4)))
-void vsoxei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i8mf4_m)))
-void vsoxei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i8mf8)))
-void vsoxei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i8mf8_m)))
-void vsoxei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u8m1)))
-void vsoxei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u8m1_m)))
-void vsoxei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u8m2)))
-void vsoxei32(uint8_t * op0, vuint32m8_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u8m2_m)))
-void vsoxei32(vbool4_t op0, uint8_t * op1, vuint32m8_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u8mf2)))
-void vsoxei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u8mf2_m)))
-void vsoxei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u8mf4)))
-void vsoxei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u8mf4_m)))
-void vsoxei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u8mf8)))
-void vsoxei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u8mf8_m)))
-void vsoxei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i8m1)))
-void vsoxei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i8m1_m)))
-void vsoxei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i8mf2)))
-void vsoxei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i8mf2_m)))
-void vsoxei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i8mf4)))
-void vsoxei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i8mf4_m)))
-void vsoxei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i8mf8)))
-void vsoxei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i8mf8_m)))
-void vsoxei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u8m1)))
-void vsoxei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u8m1_m)))
-void vsoxei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u8mf2)))
-void vsoxei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u8mf2_m)))
-void vsoxei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u8mf4)))
-void vsoxei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u8mf4_m)))
-void vsoxei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u8mf8)))
-void vsoxei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u8mf8_m)))
-void vsoxei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16m1)))
-void vsoxei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16m1_m)))
-void vsoxei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16m2)))
-void vsoxei8(int16_t * op0, vuint8m1_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16m2_m)))
-void vsoxei8(vbool8_t op0, int16_t * op1, vuint8m1_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16m4)))
-void vsoxei8(int16_t * op0, vuint8m2_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16m4_m)))
-void vsoxei8(vbool4_t op0, int16_t * op1, vuint8m2_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16m8)))
-void vsoxei8(int16_t * op0, vuint8m4_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16m8_m)))
-void vsoxei8(vbool2_t op0, int16_t * op1, vuint8m4_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16mf2)))
-void vsoxei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16mf2_m)))
-void vsoxei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16mf4)))
-void vsoxei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i16mf4_m)))
-void vsoxei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16m1)))
-void vsoxei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16m1_m)))
-void vsoxei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16m2)))
-void vsoxei8(uint16_t * op0, vuint8m1_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16m2_m)))
-void vsoxei8(vbool8_t op0, uint16_t * op1, vuint8m1_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16m4)))
-void vsoxei8(uint16_t * op0, vuint8m2_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16m4_m)))
-void vsoxei8(vbool4_t op0, uint16_t * op1, vuint8m2_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16m8)))
-void vsoxei8(uint16_t * op0, vuint8m4_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16m8_m)))
-void vsoxei8(vbool2_t op0, uint16_t * op1, vuint8m4_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16mf2)))
-void vsoxei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16mf2_m)))
-void vsoxei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16mf4)))
-void vsoxei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u16mf4_m)))
-void vsoxei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16m1)))
-void vsoxei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16m1_m)))
-void vsoxei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16m2)))
-void vsoxei16(int16_t * op0, vuint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16m2_m)))
-void vsoxei16(vbool8_t op0, int16_t * op1, vuint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16m4)))
-void vsoxei16(int16_t * op0, vuint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16m4_m)))
-void vsoxei16(vbool4_t op0, int16_t * op1, vuint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16m8)))
-void vsoxei16(int16_t * op0, vuint16m8_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16m8_m)))
-void vsoxei16(vbool2_t op0, int16_t * op1, vuint16m8_t op2, vint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16mf2)))
-void vsoxei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16mf2_m)))
-void vsoxei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16mf4)))
-void vsoxei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i16mf4_m)))
-void vsoxei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16m1)))
-void vsoxei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16m1_m)))
-void vsoxei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16m2)))
-void vsoxei16(uint16_t * op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16m2_m)))
-void vsoxei16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16m4)))
-void vsoxei16(uint16_t * op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16m4_m)))
-void vsoxei16(vbool4_t op0, uint16_t * op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16m8)))
-void vsoxei16(uint16_t * op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16m8_m)))
-void vsoxei16(vbool2_t op0, uint16_t * op1, vuint16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16mf2)))
-void vsoxei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16mf2_m)))
-void vsoxei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16mf4)))
-void vsoxei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u16mf4_m)))
-void vsoxei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i16m1)))
-void vsoxei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i16m1_m)))
-void vsoxei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i16m2)))
-void vsoxei32(int16_t * op0, vuint32m4_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i16m2_m)))
-void vsoxei32(vbool8_t op0, int16_t * op1, vuint32m4_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i16m4)))
-void vsoxei32(int16_t * op0, vuint32m8_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i16m4_m)))
-void vsoxei32(vbool4_t op0, int16_t * op1, vuint32m8_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i16mf2)))
-void vsoxei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i16mf2_m)))
-void vsoxei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i16mf4)))
-void vsoxei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i16mf4_m)))
-void vsoxei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u16m1)))
-void vsoxei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u16m1_m)))
-void vsoxei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u16m2)))
-void vsoxei32(uint16_t * op0, vuint32m4_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u16m2_m)))
-void vsoxei32(vbool8_t op0, uint16_t * op1, vuint32m4_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u16m4)))
-void vsoxei32(uint16_t * op0, vuint32m8_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u16m4_m)))
-void vsoxei32(vbool4_t op0, uint16_t * op1, vuint32m8_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u16mf2)))
-void vsoxei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u16mf2_m)))
-void vsoxei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u16mf4)))
-void vsoxei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u16mf4_m)))
-void vsoxei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i16m1)))
-void vsoxei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i16m1_m)))
-void vsoxei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i16m2)))
-void vsoxei64(int16_t * op0, vuint64m8_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i16m2_m)))
-void vsoxei64(vbool8_t op0, int16_t * op1, vuint64m8_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i16mf2)))
-void vsoxei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i16mf2_m)))
-void vsoxei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i16mf4)))
-void vsoxei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i16mf4_m)))
-void vsoxei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u16m1)))
-void vsoxei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u16m1_m)))
-void vsoxei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u16m2)))
-void vsoxei64(uint16_t * op0, vuint64m8_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u16m2_m)))
-void vsoxei64(vbool8_t op0, uint16_t * op1, vuint64m8_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u16mf2)))
-void vsoxei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u16mf2_m)))
-void vsoxei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u16mf4)))
-void vsoxei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u16mf4_m)))
-void vsoxei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i32m1)))
-void vsoxei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i32m1_m)))
-void vsoxei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i32m2)))
-void vsoxei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i32m2_m)))
-void vsoxei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i32m4)))
-void vsoxei8(int32_t * op0, vuint8m1_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i32m4_m)))
-void vsoxei8(vbool8_t op0, int32_t * op1, vuint8m1_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i32m8)))
-void vsoxei8(int32_t * op0, vuint8m2_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i32m8_m)))
-void vsoxei8(vbool4_t op0, int32_t * op1, vuint8m2_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i32mf2)))
-void vsoxei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i32mf2_m)))
-void vsoxei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u32m1)))
-void vsoxei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u32m1_m)))
-void vsoxei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u32m2)))
-void vsoxei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u32m2_m)))
-void vsoxei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u32m4)))
-void vsoxei8(uint32_t * op0, vuint8m1_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u32m4_m)))
-void vsoxei8(vbool8_t op0, uint32_t * op1, vuint8m1_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u32m8)))
-void vsoxei8(uint32_t * op0, vuint8m2_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u32m8_m)))
-void vsoxei8(vbool4_t op0, uint32_t * op1, vuint8m2_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u32mf2)))
-void vsoxei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u32mf2_m)))
-void vsoxei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i32m1)))
-void vsoxei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i32m1_m)))
-void vsoxei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i32m2)))
-void vsoxei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i32m2_m)))
-void vsoxei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i32m4)))
-void vsoxei16(int32_t * op0, vuint16m2_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i32m4_m)))
-void vsoxei16(vbool8_t op0, int32_t * op1, vuint16m2_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i32m8)))
-void vsoxei16(int32_t * op0, vuint16m4_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i32m8_m)))
-void vsoxei16(vbool4_t op0, int32_t * op1, vuint16m4_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i32mf2)))
-void vsoxei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i32mf2_m)))
-void vsoxei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u32m1)))
-void vsoxei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u32m1_m)))
-void vsoxei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u32m2)))
-void vsoxei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u32m2_m)))
-void vsoxei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u32m4)))
-void vsoxei16(uint32_t * op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u32m4_m)))
-void vsoxei16(vbool8_t op0, uint32_t * op1, vuint16m2_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u32m8)))
-void vsoxei16(uint32_t * op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u32m8_m)))
-void vsoxei16(vbool4_t op0, uint32_t * op1, vuint16m4_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u32mf2)))
-void vsoxei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u32mf2_m)))
-void vsoxei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i32m1)))
-void vsoxei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i32m1_m)))
-void vsoxei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i32m2)))
-void vsoxei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i32m2_m)))
-void vsoxei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i32m4)))
-void vsoxei32(int32_t * op0, vuint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i32m4_m)))
-void vsoxei32(vbool8_t op0, int32_t * op1, vuint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i32m8)))
-void vsoxei32(int32_t * op0, vuint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i32m8_m)))
-void vsoxei32(vbool4_t op0, int32_t * op1, vuint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i32mf2)))
-void vsoxei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i32mf2_m)))
-void vsoxei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u32m1)))
-void vsoxei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u32m1_m)))
-void vsoxei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u32m2)))
-void vsoxei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u32m2_m)))
-void vsoxei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u32m4)))
-void vsoxei32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u32m4_m)))
-void vsoxei32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u32m8)))
-void vsoxei32(uint32_t * op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u32m8_m)))
-void vsoxei32(vbool4_t op0, uint32_t * op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u32mf2)))
-void vsoxei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u32mf2_m)))
-void vsoxei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i32m1)))
-void vsoxei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i32m1_m)))
-void vsoxei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i32m2)))
-void vsoxei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i32m2_m)))
-void vsoxei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i32m4)))
-void vsoxei64(int32_t * op0, vuint64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i32m4_m)))
-void vsoxei64(vbool8_t op0, int32_t * op1, vuint64m8_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i32mf2)))
-void vsoxei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i32mf2_m)))
-void vsoxei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u32m1)))
-void vsoxei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u32m1_m)))
-void vsoxei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u32m2)))
-void vsoxei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u32m2_m)))
-void vsoxei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u32m4)))
-void vsoxei64(uint32_t * op0, vuint64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u32m4_m)))
-void vsoxei64(vbool8_t op0, uint32_t * op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u32mf2)))
-void vsoxei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u32mf2_m)))
-void vsoxei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i64m1)))
-void vsoxei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i64m1_m)))
-void vsoxei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i64m2)))
-void vsoxei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i64m2_m)))
-void vsoxei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i64m4)))
-void vsoxei8(int64_t * op0, vuint8mf2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i64m4_m)))
-void vsoxei8(vbool16_t op0, int64_t * op1, vuint8mf2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i64m8)))
-void vsoxei8(int64_t * op0, vuint8m1_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_i64m8_m)))
-void vsoxei8(vbool8_t op0, int64_t * op1, vuint8m1_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u64m1)))
-void vsoxei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u64m1_m)))
-void vsoxei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u64m2)))
-void vsoxei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u64m2_m)))
-void vsoxei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u64m4)))
-void vsoxei8(uint64_t * op0, vuint8mf2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u64m4_m)))
-void vsoxei8(vbool16_t op0, uint64_t * op1, vuint8mf2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u64m8)))
-void vsoxei8(uint64_t * op0, vuint8m1_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_u64m8_m)))
-void vsoxei8(vbool8_t op0, uint64_t * op1, vuint8m1_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i64m1)))
-void vsoxei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i64m1_m)))
-void vsoxei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i64m2)))
-void vsoxei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i64m2_m)))
-void vsoxei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i64m4)))
-void vsoxei16(int64_t * op0, vuint16m1_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i64m4_m)))
-void vsoxei16(vbool16_t op0, int64_t * op1, vuint16m1_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i64m8)))
-void vsoxei16(int64_t * op0, vuint16m2_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_i64m8_m)))
-void vsoxei16(vbool8_t op0, int64_t * op1, vuint16m2_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u64m1)))
-void vsoxei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u64m1_m)))
-void vsoxei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u64m2)))
-void vsoxei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u64m2_m)))
-void vsoxei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u64m4)))
-void vsoxei16(uint64_t * op0, vuint16m1_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u64m4_m)))
-void vsoxei16(vbool16_t op0, uint64_t * op1, vuint16m1_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u64m8)))
-void vsoxei16(uint64_t * op0, vuint16m2_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_u64m8_m)))
-void vsoxei16(vbool8_t op0, uint64_t * op1, vuint16m2_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i64m1)))
-void vsoxei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i64m1_m)))
-void vsoxei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i64m2)))
-void vsoxei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i64m2_m)))
-void vsoxei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i64m4)))
-void vsoxei32(int64_t * op0, vuint32m2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i64m4_m)))
-void vsoxei32(vbool16_t op0, int64_t * op1, vuint32m2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i64m8)))
-void vsoxei32(int64_t * op0, vuint32m4_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_i64m8_m)))
-void vsoxei32(vbool8_t op0, int64_t * op1, vuint32m4_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u64m1)))
-void vsoxei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u64m1_m)))
-void vsoxei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u64m2)))
-void vsoxei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u64m2_m)))
-void vsoxei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u64m4)))
-void vsoxei32(uint64_t * op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u64m4_m)))
-void vsoxei32(vbool16_t op0, uint64_t * op1, vuint32m2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u64m8)))
-void vsoxei32(uint64_t * op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_u64m8_m)))
-void vsoxei32(vbool8_t op0, uint64_t * op1, vuint32m4_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i64m1)))
-void vsoxei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i64m1_m)))
-void vsoxei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i64m2)))
-void vsoxei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i64m2_m)))
-void vsoxei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i64m4)))
-void vsoxei64(int64_t * op0, vuint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i64m4_m)))
-void vsoxei64(vbool16_t op0, int64_t * op1, vuint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i64m8)))
-void vsoxei64(int64_t * op0, vuint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_i64m8_m)))
-void vsoxei64(vbool8_t op0, int64_t * op1, vuint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u64m1)))
-void vsoxei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u64m1_m)))
-void vsoxei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u64m2)))
-void vsoxei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u64m2_m)))
-void vsoxei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u64m4)))
-void vsoxei64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u64m4_m)))
-void vsoxei64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u64m8)))
-void vsoxei64(uint64_t * op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_u64m8_m)))
-void vsoxei64(vbool8_t op0, uint64_t * op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_i16m1_m)))
-vint16m1_t vle16ff(vbool16_t op0, vint16m1_t op1, const int16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_i16m2_m)))
-vint16m2_t vle16ff(vbool8_t op0, vint16m2_t op1, const int16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_i16m4_m)))
-vint16m4_t vle16ff(vbool4_t op0, vint16m4_t op1, const int16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_i16m8_m)))
-vint16m8_t vle16ff(vbool2_t op0, vint16m8_t op1, const int16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_i16mf2_m)))
-vint16mf2_t vle16ff(vbool32_t op0, vint16mf2_t op1, const int16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_i16mf4_m)))
-vint16mf4_t vle16ff(vbool64_t op0, vint16mf4_t op1, const int16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_u16m1_m)))
-vuint16m1_t vle16ff(vbool16_t op0, vuint16m1_t op1, const uint16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_u16m2_m)))
-vuint16m2_t vle16ff(vbool8_t op0, vuint16m2_t op1, const uint16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_u16m4_m)))
-vuint16m4_t vle16ff(vbool4_t op0, vuint16m4_t op1, const uint16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_u16m8_m)))
-vuint16m8_t vle16ff(vbool2_t op0, vuint16m8_t op1, const uint16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_u16mf2_m)))
-vuint16mf2_t vle16ff(vbool32_t op0, vuint16mf2_t op1, const uint16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_u16mf4_m)))
-vuint16mf4_t vle16ff(vbool64_t op0, vuint16mf4_t op1, const uint16_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_i32m1_m)))
-vint32m1_t vle32ff(vbool32_t op0, vint32m1_t op1, const int32_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_i32m2_m)))
-vint32m2_t vle32ff(vbool16_t op0, vint32m2_t op1, const int32_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_i32m4_m)))
-vint32m4_t vle32ff(vbool8_t op0, vint32m4_t op1, const int32_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_i32m8_m)))
-vint32m8_t vle32ff(vbool4_t op0, vint32m8_t op1, const int32_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_i32mf2_m)))
-vint32mf2_t vle32ff(vbool64_t op0, vint32mf2_t op1, const int32_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_u32m1_m)))
-vuint32m1_t vle32ff(vbool32_t op0, vuint32m1_t op1, const uint32_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_u32m2_m)))
-vuint32m2_t vle32ff(vbool16_t op0, vuint32m2_t op1, const uint32_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_u32m4_m)))
-vuint32m4_t vle32ff(vbool8_t op0, vuint32m4_t op1, const uint32_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_u32m8_m)))
-vuint32m8_t vle32ff(vbool4_t op0, vuint32m8_t op1, const uint32_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_u32mf2_m)))
-vuint32mf2_t vle32ff(vbool64_t op0, vuint32mf2_t op1, const uint32_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_i64m1_m)))
-vint64m1_t vle64ff(vbool64_t op0, vint64m1_t op1, const int64_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_i64m2_m)))
-vint64m2_t vle64ff(vbool32_t op0, vint64m2_t op1, const int64_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_i64m4_m)))
-vint64m4_t vle64ff(vbool16_t op0, vint64m4_t op1, const int64_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_i64m8_m)))
-vint64m8_t vle64ff(vbool8_t op0, vint64m8_t op1, const int64_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_u64m1_m)))
-vuint64m1_t vle64ff(vbool64_t op0, vuint64m1_t op1, const uint64_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_u64m2_m)))
-vuint64m2_t vle64ff(vbool32_t op0, vuint64m2_t op1, const uint64_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_u64m4_m)))
-vuint64m4_t vle64ff(vbool16_t op0, vuint64m4_t op1, const uint64_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_u64m8_m)))
-vuint64m8_t vle64ff(vbool8_t op0, vuint64m8_t op1, const uint64_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_i8m1_m)))
-vint8m1_t vle8(vbool8_t op0, vint8m1_t op1, const int8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_i8m2_m)))
-vint8m2_t vle8(vbool4_t op0, vint8m2_t op1, const int8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_i8m4_m)))
-vint8m4_t vle8(vbool2_t op0, vint8m4_t op1, const int8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_i8m8_m)))
-vint8m8_t vle8(vbool1_t op0, vint8m8_t op1, const int8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_i8mf2_m)))
-vint8mf2_t vle8(vbool16_t op0, vint8mf2_t op1, const int8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_i8mf4_m)))
-vint8mf4_t vle8(vbool32_t op0, vint8mf4_t op1, const int8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_i8mf8_m)))
-vint8mf8_t vle8(vbool64_t op0, vint8mf8_t op1, const int8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_u8m1_m)))
-vuint8m1_t vle8(vbool8_t op0, vuint8m1_t op1, const uint8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_u8m2_m)))
-vuint8m2_t vle8(vbool4_t op0, vuint8m2_t op1, const uint8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_u8m4_m)))
-vuint8m4_t vle8(vbool2_t op0, vuint8m4_t op1, const uint8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_u8m8_m)))
-vuint8m8_t vle8(vbool1_t op0, vuint8m8_t op1, const uint8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_u8mf2_m)))
-vuint8mf2_t vle8(vbool16_t op0, vuint8mf2_t op1, const uint8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_u8mf4_m)))
-vuint8mf4_t vle8(vbool32_t op0, vuint8mf4_t op1, const uint8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8_v_u8mf8_m)))
-vuint8mf8_t vle8(vbool64_t op0, vuint8mf8_t op1, const uint8_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_i8m1_m)))
-vint8m1_t vle8ff(vbool8_t op0, vint8m1_t op1, const int8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_i8m2_m)))
-vint8m2_t vle8ff(vbool4_t op0, vint8m2_t op1, const int8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_i8m4_m)))
-vint8m4_t vle8ff(vbool2_t op0, vint8m4_t op1, const int8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_i8m8_m)))
-vint8m8_t vle8ff(vbool1_t op0, vint8m8_t op1, const int8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_i8mf2_m)))
-vint8mf2_t vle8ff(vbool16_t op0, vint8mf2_t op1, const int8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_i8mf4_m)))
-vint8mf4_t vle8ff(vbool32_t op0, vint8mf4_t op1, const int8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_i8mf8_m)))
-vint8mf8_t vle8ff(vbool64_t op0, vint8mf8_t op1, const int8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_u8m1_m)))
-vuint8m1_t vle8ff(vbool8_t op0, vuint8m1_t op1, const uint8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_u8m2_m)))
-vuint8m2_t vle8ff(vbool4_t op0, vuint8m2_t op1, const uint8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_u8m4_m)))
-vuint8m4_t vle8ff(vbool2_t op0, vuint8m4_t op1, const uint8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_u8m8_m)))
-vuint8m8_t vle8ff(vbool1_t op0, vuint8m8_t op1, const uint8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_u8mf2_m)))
-vuint8mf2_t vle8ff(vbool16_t op0, vuint8mf2_t op1, const uint8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_u8mf4_m)))
-vuint8mf4_t vle8ff(vbool32_t op0, vuint8mf4_t op1, const uint8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle8ff_v_u8mf8_m)))
-vuint8mf8_t vle8ff(vbool64_t op0, vuint8mf8_t op1, const uint8_t * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8m1)))
-vint8m1_t vneg(vint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8m1_m)))
-vint8m1_t vneg(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8m2)))
-vint8m2_t vneg(vint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8m2_m)))
-vint8m2_t vneg(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8m4)))
-vint8m4_t vneg(vint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8m4_m)))
-vint8m4_t vneg(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8m8)))
-vint8m8_t vneg(vint8m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8m8_m)))
-vint8m8_t vneg(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8mf2)))
-vint8mf2_t vneg(vint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8mf2_m)))
-vint8mf2_t vneg(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8mf4)))
-vint8mf4_t vneg(vint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8mf4_m)))
-vint8mf4_t vneg(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8mf8)))
-vint8mf8_t vneg(vint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i8mf8_m)))
-vint8mf8_t vneg(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16m1)))
-vint16m1_t vneg(vint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16m1_m)))
-vint16m1_t vneg(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16m2)))
-vint16m2_t vneg(vint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16m2_m)))
-vint16m2_t vneg(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16m4)))
-vint16m4_t vneg(vint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16m4_m)))
-vint16m4_t vneg(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16m8)))
-vint16m8_t vneg(vint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16m8_m)))
-vint16m8_t vneg(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16mf2)))
-vint16mf2_t vneg(vint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16mf2_m)))
-vint16mf2_t vneg(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16mf4)))
-vint16mf4_t vneg(vint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i16mf4_m)))
-vint16mf4_t vneg(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i32m1)))
-vint32m1_t vneg(vint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i32m1_m)))
-vint32m1_t vneg(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i32m2)))
-vint32m2_t vneg(vint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i32m2_m)))
-vint32m2_t vneg(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i32m4)))
-vint32m4_t vneg(vint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i32m4_m)))
-vint32m4_t vneg(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i32m8)))
-vint32m8_t vneg(vint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i32m8_m)))
-vint32m8_t vneg(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i32mf2)))
-vint32mf2_t vneg(vint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i32mf2_m)))
-vint32mf2_t vneg(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i64m1)))
-vint64m1_t vneg(vint64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i64m1_m)))
-vint64m1_t vneg(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i64m2)))
-vint64m2_t vneg(vint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i64m2_m)))
-vint64m2_t vneg(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i64m4)))
-vint64m4_t vneg(vint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i64m4_m)))
-vint64m4_t vneg(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i64m8)))
-vint64m8_t vneg(vint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vneg_v_i64m8_m)))
-vint64m8_t vneg(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8m1)))
-vint8m1_t vnot(vint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8m1_m)))
-vint8m1_t vnot(vbool8_t op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8m2)))
-vint8m2_t vnot(vint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8m2_m)))
-vint8m2_t vnot(vbool4_t op0, vint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8m4)))
-vint8m4_t vnot(vint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8m4_m)))
-vint8m4_t vnot(vbool2_t op0, vint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8m8)))
-vint8m8_t vnot(vint8m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8m8_m)))
-vint8m8_t vnot(vbool1_t op0, vint8m8_t op1, vint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8mf2)))
-vint8mf2_t vnot(vint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8mf2_m)))
-vint8mf2_t vnot(vbool16_t op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8mf4)))
-vint8mf4_t vnot(vint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8mf4_m)))
-vint8mf4_t vnot(vbool32_t op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8mf8)))
-vint8mf8_t vnot(vint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i8mf8_m)))
-vint8mf8_t vnot(vbool64_t op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16m1)))
-vint16m1_t vnot(vint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16m1_m)))
-vint16m1_t vnot(vbool16_t op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16m2)))
-vint16m2_t vnot(vint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16m2_m)))
-vint16m2_t vnot(vbool8_t op0, vint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16m4)))
-vint16m4_t vnot(vint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16m4_m)))
-vint16m4_t vnot(vbool4_t op0, vint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16m8)))
-vint16m8_t vnot(vint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16m8_m)))
-vint16m8_t vnot(vbool2_t op0, vint16m8_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16mf2)))
-vint16mf2_t vnot(vint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16mf2_m)))
-vint16mf2_t vnot(vbool32_t op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16mf4)))
-vint16mf4_t vnot(vint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i16mf4_m)))
-vint16mf4_t vnot(vbool64_t op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i32m1)))
-vint32m1_t vnot(vint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i32m1_m)))
-vint32m1_t vnot(vbool32_t op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i32m2)))
-vint32m2_t vnot(vint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i32m2_m)))
-vint32m2_t vnot(vbool16_t op0, vint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i32m4)))
-vint32m4_t vnot(vint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i32m4_m)))
-vint32m4_t vnot(vbool8_t op0, vint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i32m8)))
-vint32m8_t vnot(vint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i32m8_m)))
-vint32m8_t vnot(vbool4_t op0, vint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i32mf2)))
-vint32mf2_t vnot(vint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i32mf2_m)))
-vint32mf2_t vnot(vbool64_t op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i64m1)))
-vint64m1_t vnot(vint64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i64m1_m)))
-vint64m1_t vnot(vbool64_t op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i64m2)))
-vint64m2_t vnot(vint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i64m2_m)))
-vint64m2_t vnot(vbool32_t op0, vint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i64m4)))
-vint64m4_t vnot(vint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i64m4_m)))
-vint64m4_t vnot(vbool16_t op0, vint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i64m8)))
-vint64m8_t vnot(vint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_i64m8_m)))
-vint64m8_t vnot(vbool8_t op0, vint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_i8m1_m)))
-vint8m1_t vlse8(vbool8_t op0, vint8m1_t op1, const int8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_i8m2_m)))
-vint8m2_t vlse8(vbool4_t op0, vint8m2_t op1, const int8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_i8m4_m)))
-vint8m4_t vlse8(vbool2_t op0, vint8m4_t op1, const int8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_i8m8_m)))
-vint8m8_t vlse8(vbool1_t op0, vint8m8_t op1, const int8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_i8mf2_m)))
-vint8mf2_t vlse8(vbool16_t op0, vint8mf2_t op1, const int8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_i8mf4_m)))
-vint8mf4_t vlse8(vbool32_t op0, vint8mf4_t op1, const int8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_i8mf8_m)))
-vint8mf8_t vlse8(vbool64_t op0, vint8mf8_t op1, const int8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8m1)))
-vuint8m1_t vnot(vuint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8m1_m)))
-vuint8m1_t vnot(vbool8_t op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8m2)))
-vuint8m2_t vnot(vuint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8m2_m)))
-vuint8m2_t vnot(vbool4_t op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8m4)))
-vuint8m4_t vnot(vuint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8m4_m)))
-vuint8m4_t vnot(vbool2_t op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8m8)))
-vuint8m8_t vnot(vuint8m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8m8_m)))
-vuint8m8_t vnot(vbool1_t op0, vuint8m8_t op1, vuint8m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8mf2)))
-vuint8mf2_t vnot(vuint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8mf2_m)))
-vuint8mf2_t vnot(vbool16_t op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8mf4)))
-vuint8mf4_t vnot(vuint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8mf4_m)))
-vuint8mf4_t vnot(vbool32_t op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8mf8)))
-vuint8mf8_t vnot(vuint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u8mf8_m)))
-vuint8mf8_t vnot(vbool64_t op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16m1)))
-vuint16m1_t vnot(vuint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16m1_m)))
-vuint16m1_t vnot(vbool16_t op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16m2)))
-vuint16m2_t vnot(vuint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16m2_m)))
-vuint16m2_t vnot(vbool8_t op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16m4)))
-vuint16m4_t vnot(vuint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16m4_m)))
-vuint16m4_t vnot(vbool4_t op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16m8)))
-vuint16m8_t vnot(vuint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16m8_m)))
-vuint16m8_t vnot(vbool2_t op0, vuint16m8_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16mf2)))
-vuint16mf2_t vnot(vuint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16mf2_m)))
-vuint16mf2_t vnot(vbool32_t op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16mf4)))
-vuint16mf4_t vnot(vuint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u16mf4_m)))
-vuint16mf4_t vnot(vbool64_t op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u32m1)))
-vuint32m1_t vnot(vuint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u32m1_m)))
-vuint32m1_t vnot(vbool32_t op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u32m2)))
-vuint32m2_t vnot(vuint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u32m2_m)))
-vuint32m2_t vnot(vbool16_t op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u32m4)))
-vuint32m4_t vnot(vuint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u32m4_m)))
-vuint32m4_t vnot(vbool8_t op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u32m8)))
-vuint32m8_t vnot(vuint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u32m8_m)))
-vuint32m8_t vnot(vbool4_t op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u32mf2)))
-vuint32mf2_t vnot(vuint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u32mf2_m)))
-vuint32mf2_t vnot(vbool64_t op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u64m1)))
-vuint64m1_t vnot(vuint64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u64m1_m)))
-vuint64m1_t vnot(vbool64_t op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u64m2)))
-vuint64m2_t vnot(vuint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u64m2_m)))
-vuint64m2_t vnot(vbool32_t op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u64m4)))
-vuint64m4_t vnot(vuint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u64m4_m)))
-vuint64m4_t vnot(vbool16_t op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u64m8)))
-vuint64m8_t vnot(vuint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vnot_v_u64m8_m)))
-vuint64m8_t vnot(vbool8_t op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmmv_m_b8)))
-vbool8_t vmmv(vbool8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmmv_m_b4)))
-vbool4_t vmmv(vbool4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmmv_m_b2)))
-vbool2_t vmmv(vbool2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmmv_m_b1)))
-vbool1_t vmmv(vbool1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmmv_m_b16)))
-vbool16_t vmmv(vbool16_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmmv_m_b32)))
-vbool32_t vmmv(vbool32_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmmv_m_b64)))
-vbool64_t vmmv(vbool64_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16m2)))
-vuint16m2_t vwcvtu_x(vuint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16m2_m)))
-vuint16m2_t vwcvtu_x(vbool8_t op0, vuint16m2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16m4)))
-vuint16m4_t vwcvtu_x(vuint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16m4_m)))
-vuint16m4_t vwcvtu_x(vbool4_t op0, vuint16m4_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16m8)))
-vuint16m8_t vwcvtu_x(vuint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16m8_m)))
-vuint16m8_t vwcvtu_x(vbool2_t op0, vuint16m8_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16m1)))
-vuint16m1_t vwcvtu_x(vuint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16m1_m)))
-vuint16m1_t vwcvtu_x(vbool16_t op0, vuint16m1_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16mf2)))
-vuint16mf2_t vwcvtu_x(vuint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16mf2_m)))
-vuint16mf2_t vwcvtu_x(vbool32_t op0, vuint16mf2_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16mf4)))
-vuint16mf4_t vwcvtu_x(vuint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u16mf4_m)))
-vuint16mf4_t vwcvtu_x(vbool64_t op0, vuint16mf4_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u32m2)))
-vuint32m2_t vwcvtu_x(vuint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u32m2_m)))
-vuint32m2_t vwcvtu_x(vbool16_t op0, vuint32m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u32m4)))
-vuint32m4_t vwcvtu_x(vuint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u32m4_m)))
-vuint32m4_t vwcvtu_x(vbool8_t op0, vuint32m4_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u32m8)))
-vuint32m8_t vwcvtu_x(vuint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u32m8_m)))
-vuint32m8_t vwcvtu_x(vbool4_t op0, vuint32m8_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u32m1)))
-vuint32m1_t vwcvtu_x(vuint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u32m1_m)))
-vuint32m1_t vwcvtu_x(vbool32_t op0, vuint32m1_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u32mf2)))
-vuint32mf2_t vwcvtu_x(vuint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u32mf2_m)))
-vuint32mf2_t vwcvtu_x(vbool64_t op0, vuint32mf2_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u64m2)))
-vuint64m2_t vwcvtu_x(vuint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u64m2_m)))
-vuint64m2_t vwcvtu_x(vbool32_t op0, vuint64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u64m4)))
-vuint64m4_t vwcvtu_x(vuint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u64m4_m)))
-vuint64m4_t vwcvtu_x(vbool16_t op0, vuint64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u64m8)))
-vuint64m8_t vwcvtu_x(vuint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u64m8_m)))
-vuint64m8_t vwcvtu_x(vbool8_t op0, vuint64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u64m1)))
-vuint64m1_t vwcvtu_x(vuint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vwcvtu_x_x_v_u64m1_m)))
-vuint64m1_t vwcvtu_x(vbool64_t op0, vuint64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8m1)))
-vint8m1_t vncvt_x(vint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8m1_m)))
-vint8m1_t vncvt_x(vbool8_t op0, vint8m1_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8m2)))
-vint8m2_t vncvt_x(vint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8m2_m)))
-vint8m2_t vncvt_x(vbool4_t op0, vint8m2_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8m4)))
-vint8m4_t vncvt_x(vint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8m4_m)))
-vint8m4_t vncvt_x(vbool2_t op0, vint8m4_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8mf2)))
-vint8mf2_t vncvt_x(vint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8mf2_m)))
-vint8mf2_t vncvt_x(vbool16_t op0, vint8mf2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8mf4)))
-vint8mf4_t vncvt_x(vint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8mf4_m)))
-vint8mf4_t vncvt_x(vbool32_t op0, vint8mf4_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8mf8)))
-vint8mf8_t vncvt_x(vint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i8mf8_m)))
-vint8mf8_t vncvt_x(vbool64_t op0, vint8mf8_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i16m1)))
-vint16m1_t vncvt_x(vint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i16m1_m)))
-vint16m1_t vncvt_x(vbool16_t op0, vint16m1_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i16m2)))
-vint16m2_t vncvt_x(vint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i16m2_m)))
-vint16m2_t vncvt_x(vbool8_t op0, vint16m2_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i16m4)))
-vint16m4_t vncvt_x(vint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i16m4_m)))
-vint16m4_t vncvt_x(vbool4_t op0, vint16m4_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i16mf2)))
-vint16mf2_t vncvt_x(vint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i16mf2_m)))
-vint16mf2_t vncvt_x(vbool32_t op0, vint16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i16mf4)))
-vint16mf4_t vncvt_x(vint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i16mf4_m)))
-vint16mf4_t vncvt_x(vbool64_t op0, vint16mf4_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i32m1)))
-vint32m1_t vncvt_x(vint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i32m1_m)))
-vint32m1_t vncvt_x(vbool32_t op0, vint32m1_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i32m2)))
-vint32m2_t vncvt_x(vint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i32m2_m)))
-vint32m2_t vncvt_x(vbool16_t op0, vint32m2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i32m4)))
-vint32m4_t vncvt_x(vint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i32m4_m)))
-vint32m4_t vncvt_x(vbool8_t op0, vint32m4_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i32mf2)))
-vint32mf2_t vncvt_x(vint64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vncvt_x_x_w_i32mf2_m)))
-vint32mf2_t vncvt_x(vbool64_t op0, vint32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_i16m1_m)))
-vint16m1_t vle16(vbool16_t op0, vint16m1_t op1, const int16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_i16m2_m)))
-vint16m2_t vle16(vbool8_t op0, vint16m2_t op1, const int16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_i16m4_m)))
-vint16m4_t vle16(vbool4_t op0, vint16m4_t op1, const int16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_i16m8_m)))
-vint16m8_t vle16(vbool2_t op0, vint16m8_t op1, const int16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_i16mf2_m)))
-vint16mf2_t vle16(vbool32_t op0, vint16mf2_t op1, const int16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_i16mf4_m)))
-vint16mf4_t vle16(vbool64_t op0, vint16mf4_t op1, const int16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_u16m1_m)))
-vuint16m1_t vle16(vbool16_t op0, vuint16m1_t op1, const uint16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_u16m2_m)))
-vuint16m2_t vle16(vbool8_t op0, vuint16m2_t op1, const uint16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_u16m4_m)))
-vuint16m4_t vle16(vbool4_t op0, vuint16m4_t op1, const uint16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_u16m8_m)))
-vuint16m8_t vle16(vbool2_t op0, vuint16m8_t op1, const uint16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_u16mf2_m)))
-vuint16mf2_t vle16(vbool32_t op0, vuint16mf2_t op1, const uint16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_u16mf4_m)))
-vuint16mf4_t vle16(vbool64_t op0, vuint16mf4_t op1, const uint16_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_i32m1_m)))
-vint32m1_t vle32(vbool32_t op0, vint32m1_t op1, const int32_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_i32m2_m)))
-vint32m2_t vle32(vbool16_t op0, vint32m2_t op1, const int32_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_i32m4_m)))
-vint32m4_t vle32(vbool8_t op0, vint32m4_t op1, const int32_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_i32m8_m)))
-vint32m8_t vle32(vbool4_t op0, vint32m8_t op1, const int32_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_i32mf2_m)))
-vint32mf2_t vle32(vbool64_t op0, vint32mf2_t op1, const int32_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_u32m1_m)))
-vuint32m1_t vle32(vbool32_t op0, vuint32m1_t op1, const uint32_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_u32m2_m)))
-vuint32m2_t vle32(vbool16_t op0, vuint32m2_t op1, const uint32_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_u32m4_m)))
-vuint32m4_t vle32(vbool8_t op0, vuint32m4_t op1, const uint32_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_u32m8_m)))
-vuint32m8_t vle32(vbool4_t op0, vuint32m8_t op1, const uint32_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_u32mf2_m)))
-vuint32mf2_t vle32(vbool64_t op0, vuint32mf2_t op1, const uint32_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_u8m1_m)))
-vuint8m1_t vlse8(vbool8_t op0, vuint8m1_t op1, const uint8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_u8m2_m)))
-vuint8m2_t vlse8(vbool4_t op0, vuint8m2_t op1, const uint8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_u8m4_m)))
-vuint8m4_t vlse8(vbool2_t op0, vuint8m4_t op1, const uint8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_u8m8_m)))
-vuint8m8_t vlse8(vbool1_t op0, vuint8m8_t op1, const uint8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_u8mf2_m)))
-vuint8mf2_t vlse8(vbool16_t op0, vuint8mf2_t op1, const uint8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_u8mf4_m)))
-vuint8mf4_t vlse8(vbool32_t op0, vuint8mf4_t op1, const uint8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse8_v_u8mf8_m)))
-vuint8mf8_t vlse8(vbool64_t op0, vuint8mf8_t op1, const uint8_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_i64m1_m)))
-vint64m1_t vle64(vbool64_t op0, vint64m1_t op1, const int64_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_i64m2_m)))
-vint64m2_t vle64(vbool32_t op0, vint64m2_t op1, const int64_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_i64m4_m)))
-vint64m4_t vle64(vbool16_t op0, vint64m4_t op1, const int64_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_i64m8_m)))
-vint64m8_t vle64(vbool8_t op0, vint64m8_t op1, const int64_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_u64m1_m)))
-vuint64m1_t vle64(vbool64_t op0, vuint64m1_t op1, const uint64_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_u64m2_m)))
-vuint64m2_t vle64(vbool32_t op0, vuint64m2_t op1, const uint64_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_u64m4_m)))
-vuint64m4_t vle64(vbool16_t op0, vuint64m4_t op1, const uint64_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_u64m8_m)))
-vuint64m8_t vle64(vbool8_t op0, vuint64m8_t op1, const uint64_t * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16m1)))
-void vse16(int16_t * op0, vint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16m1_m)))
-void vse16(vbool16_t op0, int16_t * op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16m2)))
-void vse16(int16_t * op0, vint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16m2_m)))
-void vse16(vbool8_t op0, int16_t * op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16m4)))
-void vse16(int16_t * op0, vint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16m4_m)))
-void vse16(vbool4_t op0, int16_t * op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16m8)))
-void vse16(int16_t * op0, vint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16m8_m)))
-void vse16(vbool2_t op0, int16_t * op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16mf2)))
-void vse16(int16_t * op0, vint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16mf2_m)))
-void vse16(vbool32_t op0, int16_t * op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16mf4)))
-void vse16(int16_t * op0, vint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_i16mf4_m)))
-void vse16(vbool64_t op0, int16_t * op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16m1)))
-void vse16(uint16_t * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16m1_m)))
-void vse16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16m2)))
-void vse16(uint16_t * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16m2_m)))
-void vse16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16m4)))
-void vse16(uint16_t * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16m4_m)))
-void vse16(vbool4_t op0, uint16_t * op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16m8)))
-void vse16(uint16_t * op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16m8_m)))
-void vse16(vbool2_t op0, uint16_t * op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16mf2)))
-void vse16(uint16_t * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16mf2_m)))
-void vse16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16mf4)))
-void vse16(uint16_t * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_u16mf4_m)))
-void vse16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_i32m1)))
-void vse32(int32_t * op0, vint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_i32m1_m)))
-void vse32(vbool32_t op0, int32_t * op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_i32m2)))
-void vse32(int32_t * op0, vint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_i32m2_m)))
-void vse32(vbool16_t op0, int32_t * op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_i32m4)))
-void vse32(int32_t * op0, vint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_i32m4_m)))
-void vse32(vbool8_t op0, int32_t * op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_i32m8)))
-void vse32(int32_t * op0, vint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_i32m8_m)))
-void vse32(vbool4_t op0, int32_t * op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_i32mf2)))
-void vse32(int32_t * op0, vint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_i32mf2_m)))
-void vse32(vbool64_t op0, int32_t * op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_u32m1)))
-void vse32(uint32_t * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_u32m1_m)))
-void vse32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_u32m2)))
-void vse32(uint32_t * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_u32m2_m)))
-void vse32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_u32m4)))
-void vse32(uint32_t * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_u32m4_m)))
-void vse32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_u32m8)))
-void vse32(uint32_t * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_u32m8_m)))
-void vse32(vbool4_t op0, uint32_t * op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_u32mf2)))
-void vse32(uint32_t * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_u32mf2_m)))
-void vse32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8m1)))
-vint8m1_t vluxei8(const int8_t * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8m1_m)))
-vint8m1_t vluxei8(vbool8_t op0, vint8m1_t op1, const int8_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8m2)))
-vint8m2_t vluxei8(const int8_t * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8m2_m)))
-vint8m2_t vluxei8(vbool4_t op0, vint8m2_t op1, const int8_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8m4)))
-vint8m4_t vluxei8(const int8_t * op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8m4_m)))
-vint8m4_t vluxei8(vbool2_t op0, vint8m4_t op1, const int8_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8m8)))
-vint8m8_t vluxei8(const int8_t * op0, vuint8m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8m8_m)))
-vint8m8_t vluxei8(vbool1_t op0, vint8m8_t op1, const int8_t * op2, vuint8m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8mf2)))
-vint8mf2_t vluxei8(const int8_t * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8mf2_m)))
-vint8mf2_t vluxei8(vbool16_t op0, vint8mf2_t op1, const int8_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8mf4)))
-vint8mf4_t vluxei8(const int8_t * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8mf4_m)))
-vint8mf4_t vluxei8(vbool32_t op0, vint8mf4_t op1, const int8_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8mf8)))
-vint8mf8_t vluxei8(const int8_t * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_i8mf8_m)))
-vint8mf8_t vluxei8(vbool64_t op0, vint8mf8_t op1, const int8_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_i64m1)))
-void vse64(int64_t * op0, vint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_i64m1_m)))
-void vse64(vbool64_t op0, int64_t * op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_i64m2)))
-void vse64(int64_t * op0, vint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_i64m2_m)))
-void vse64(vbool32_t op0, int64_t * op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_i64m4)))
-void vse64(int64_t * op0, vint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_i64m4_m)))
-void vse64(vbool16_t op0, int64_t * op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_i64m8)))
-void vse64(int64_t * op0, vint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_i64m8_m)))
-void vse64(vbool8_t op0, int64_t * op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_u64m1)))
-void vse64(uint64_t * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_u64m1_m)))
-void vse64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_u64m2)))
-void vse64(uint64_t * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_u64m2_m)))
-void vse64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_u64m4)))
-void vse64(uint64_t * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_u64m4_m)))
-void vse64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_u64m8)))
-void vse64(uint64_t * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_u64m8_m)))
-void vse64(vbool8_t op0, uint64_t * op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_i16m1_m)))
-vint16m1_t vlse16(vbool16_t op0, vint16m1_t op1, const int16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_i16m2_m)))
-vint16m2_t vlse16(vbool8_t op0, vint16m2_t op1, const int16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_i16m4_m)))
-vint16m4_t vlse16(vbool4_t op0, vint16m4_t op1, const int16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_i16m8_m)))
-vint16m8_t vlse16(vbool2_t op0, vint16m8_t op1, const int16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_i16mf2_m)))
-vint16mf2_t vlse16(vbool32_t op0, vint16mf2_t op1, const int16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_i16mf4_m)))
-vint16mf4_t vlse16(vbool64_t op0, vint16mf4_t op1, const int16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_u16m1_m)))
-vuint16m1_t vlse16(vbool16_t op0, vuint16m1_t op1, const uint16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_u16m2_m)))
-vuint16m2_t vlse16(vbool8_t op0, vuint16m2_t op1, const uint16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_u16m4_m)))
-vuint16m4_t vlse16(vbool4_t op0, vuint16m4_t op1, const uint16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_u16m8_m)))
-vuint16m8_t vlse16(vbool2_t op0, vuint16m8_t op1, const uint16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_u16mf2_m)))
-vuint16mf2_t vlse16(vbool32_t op0, vuint16mf2_t op1, const uint16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_u16mf4_m)))
-vuint16mf4_t vlse16(vbool64_t op0, vuint16mf4_t op1, const uint16_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_i32m1_m)))
-vint32m1_t vlse32(vbool32_t op0, vint32m1_t op1, const int32_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_i32m2_m)))
-vint32m2_t vlse32(vbool16_t op0, vint32m2_t op1, const int32_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_i32m4_m)))
-vint32m4_t vlse32(vbool8_t op0, vint32m4_t op1, const int32_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_i32m8_m)))
-vint32m8_t vlse32(vbool4_t op0, vint32m8_t op1, const int32_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_i32mf2_m)))
-vint32mf2_t vlse32(vbool64_t op0, vint32mf2_t op1, const int32_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_u32m1_m)))
-vuint32m1_t vlse32(vbool32_t op0, vuint32m1_t op1, const uint32_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_u32m2_m)))
-vuint32m2_t vlse32(vbool16_t op0, vuint32m2_t op1, const uint32_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_u32m4_m)))
-vuint32m4_t vlse32(vbool8_t op0, vuint32m4_t op1, const uint32_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_u32m8_m)))
-vuint32m8_t vlse32(vbool4_t op0, vuint32m8_t op1, const uint32_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_u32mf2_m)))
-vuint32mf2_t vlse32(vbool64_t op0, vuint32mf2_t op1, const uint32_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_i64m1_m)))
-vint64m1_t vlse64(vbool64_t op0, vint64m1_t op1, const int64_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_i64m2_m)))
-vint64m2_t vlse64(vbool32_t op0, vint64m2_t op1, const int64_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_i64m4_m)))
-vint64m4_t vlse64(vbool16_t op0, vint64m4_t op1, const int64_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_i64m8_m)))
-vint64m8_t vlse64(vbool8_t op0, vint64m8_t op1, const int64_t * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b8)))
-long vfirst(vbool8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b8_m)))
-long vfirst(vbool8_t op0, vbool8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b4)))
-long vfirst(vbool4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b4_m)))
-long vfirst(vbool4_t op0, vbool4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b2)))
-long vfirst(vbool2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b2_m)))
-long vfirst(vbool2_t op0, vbool2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b1)))
-long vfirst(vbool1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b1_m)))
-long vfirst(vbool1_t op0, vbool1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b16)))
-long vfirst(vbool16_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b16_m)))
-long vfirst(vbool16_t op0, vbool16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b32)))
-long vfirst(vbool32_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b32_m)))
-long vfirst(vbool32_t op0, vbool32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b64)))
-long vfirst(vbool64_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfirst_m_b64_m)))
-long vfirst(vbool64_t op0, vbool64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf2_i8m1)))
-vint8m1_t vlmul_ext_i8m1(vint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf4_i8m1)))
-vint8m1_t vlmul_ext_i8m1(vint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf8_i8m1)))
-vint8m1_t vlmul_ext_i8m1(vint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16mf2_i16m1)))
-vint16m1_t vlmul_ext_i16m1(vint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16mf4_i16m1)))
-vint16m1_t vlmul_ext_i16m1(vint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i32mf2_i32m1)))
-vint32m1_t vlmul_ext_i32m1(vint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf4_i8mf2)))
-vint8mf2_t vlmul_ext_i8mf2(vint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf8_i8mf2)))
-vint8mf2_t vlmul_ext_i8mf2(vint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16mf4_i16mf2)))
-vint16mf2_t vlmul_ext_i16mf2(vint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf8_i8mf4)))
-vint8mf4_t vlmul_ext_i8mf4(vint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8m1_i8m2)))
-vint8m2_t vlmul_ext_i8m2(vint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf2_i8m2)))
-vint8m2_t vlmul_ext_i8m2(vint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf4_i8m2)))
-vint8m2_t vlmul_ext_i8m2(vint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf8_i8m2)))
-vint8m2_t vlmul_ext_i8m2(vint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16m1_i16m2)))
-vint16m2_t vlmul_ext_i16m2(vint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16mf2_i16m2)))
-vint16m2_t vlmul_ext_i16m2(vint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16mf4_i16m2)))
-vint16m2_t vlmul_ext_i16m2(vint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i32m1_i32m2)))
-vint32m2_t vlmul_ext_i32m2(vint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i32mf2_i32m2)))
-vint32m2_t vlmul_ext_i32m2(vint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i64m1_i64m2)))
-vint64m2_t vlmul_ext_i64m2(vint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8m1_i8m4)))
-vint8m4_t vlmul_ext_i8m4(vint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8m2_i8m4)))
-vint8m4_t vlmul_ext_i8m4(vint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf2_i8m4)))
-vint8m4_t vlmul_ext_i8m4(vint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf4_i8m4)))
-vint8m4_t vlmul_ext_i8m4(vint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf8_i8m4)))
-vint8m4_t vlmul_ext_i8m4(vint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16m1_i16m4)))
-vint16m4_t vlmul_ext_i16m4(vint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16m2_i16m4)))
-vint16m4_t vlmul_ext_i16m4(vint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16mf2_i16m4)))
-vint16m4_t vlmul_ext_i16m4(vint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16mf4_i16m4)))
-vint16m4_t vlmul_ext_i16m4(vint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i32m1_i32m4)))
-vint32m4_t vlmul_ext_i32m4(vint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i32m2_i32m4)))
-vint32m4_t vlmul_ext_i32m4(vint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i32mf2_i32m4)))
-vint32m4_t vlmul_ext_i32m4(vint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i64m1_i64m4)))
-vint64m4_t vlmul_ext_i64m4(vint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i64m2_i64m4)))
-vint64m4_t vlmul_ext_i64m4(vint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8m1_i8m8)))
-vint8m8_t vlmul_ext_i8m8(vint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8m2_i8m8)))
-vint8m8_t vlmul_ext_i8m8(vint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8m4_i8m8)))
-vint8m8_t vlmul_ext_i8m8(vint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf2_i8m8)))
-vint8m8_t vlmul_ext_i8m8(vint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf4_i8m8)))
-vint8m8_t vlmul_ext_i8m8(vint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i8mf8_i8m8)))
-vint8m8_t vlmul_ext_i8m8(vint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16m1_i16m8)))
-vint16m8_t vlmul_ext_i16m8(vint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16m2_i16m8)))
-vint16m8_t vlmul_ext_i16m8(vint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16m4_i16m8)))
-vint16m8_t vlmul_ext_i16m8(vint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16mf2_i16m8)))
-vint16m8_t vlmul_ext_i16m8(vint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i16mf4_i16m8)))
-vint16m8_t vlmul_ext_i16m8(vint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i32m1_i32m8)))
-vint32m8_t vlmul_ext_i32m8(vint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i32m2_i32m8)))
-vint32m8_t vlmul_ext_i32m8(vint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i32m4_i32m8)))
-vint32m8_t vlmul_ext_i32m8(vint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i32mf2_i32m8)))
-vint32m8_t vlmul_ext_i32m8(vint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i64m1_i64m8)))
-vint64m8_t vlmul_ext_i64m8(vint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i64m2_i64m8)))
-vint64m8_t vlmul_ext_i64m8(vint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_i64m4_i64m8)))
-vint64m8_t vlmul_ext_i64m8(vint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf2_u8m1)))
-vuint8m1_t vlmul_ext_u8m1(vuint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf4_u8m1)))
-vuint8m1_t vlmul_ext_u8m1(vuint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf8_u8m1)))
-vuint8m1_t vlmul_ext_u8m1(vuint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16mf2_u16m1)))
-vuint16m1_t vlmul_ext_u16m1(vuint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16mf4_u16m1)))
-vuint16m1_t vlmul_ext_u16m1(vuint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u32mf2_u32m1)))
-vuint32m1_t vlmul_ext_u32m1(vuint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf4_u8mf2)))
-vuint8mf2_t vlmul_ext_u8mf2(vuint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf8_u8mf2)))
-vuint8mf2_t vlmul_ext_u8mf2(vuint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16mf4_u16mf2)))
-vuint16mf2_t vlmul_ext_u16mf2(vuint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf8_u8mf4)))
-vuint8mf4_t vlmul_ext_u8mf4(vuint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8m1_u8m2)))
-vuint8m2_t vlmul_ext_u8m2(vuint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf2_u8m2)))
-vuint8m2_t vlmul_ext_u8m2(vuint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf4_u8m2)))
-vuint8m2_t vlmul_ext_u8m2(vuint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf8_u8m2)))
-vuint8m2_t vlmul_ext_u8m2(vuint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16m1_u16m2)))
-vuint16m2_t vlmul_ext_u16m2(vuint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16mf2_u16m2)))
-vuint16m2_t vlmul_ext_u16m2(vuint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16mf4_u16m2)))
-vuint16m2_t vlmul_ext_u16m2(vuint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u32m1_u32m2)))
-vuint32m2_t vlmul_ext_u32m2(vuint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u32mf2_u32m2)))
-vuint32m2_t vlmul_ext_u32m2(vuint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u64m1_u64m2)))
-vuint64m2_t vlmul_ext_u64m2(vuint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8m1_u8m4)))
-vuint8m4_t vlmul_ext_u8m4(vuint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8m2_u8m4)))
-vuint8m4_t vlmul_ext_u8m4(vuint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf2_u8m4)))
-vuint8m4_t vlmul_ext_u8m4(vuint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf4_u8m4)))
-vuint8m4_t vlmul_ext_u8m4(vuint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf8_u8m4)))
-vuint8m4_t vlmul_ext_u8m4(vuint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16m1_u16m4)))
-vuint16m4_t vlmul_ext_u16m4(vuint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16m2_u16m4)))
-vuint16m4_t vlmul_ext_u16m4(vuint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16mf2_u16m4)))
-vuint16m4_t vlmul_ext_u16m4(vuint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16mf4_u16m4)))
-vuint16m4_t vlmul_ext_u16m4(vuint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u32m1_u32m4)))
-vuint32m4_t vlmul_ext_u32m4(vuint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u32m2_u32m4)))
-vuint32m4_t vlmul_ext_u32m4(vuint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u32mf2_u32m4)))
-vuint32m4_t vlmul_ext_u32m4(vuint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u64m1_u64m4)))
-vuint64m4_t vlmul_ext_u64m4(vuint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u64m2_u64m4)))
-vuint64m4_t vlmul_ext_u64m4(vuint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8m1_u8m8)))
-vuint8m8_t vlmul_ext_u8m8(vuint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8m2_u8m8)))
-vuint8m8_t vlmul_ext_u8m8(vuint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8m4_u8m8)))
-vuint8m8_t vlmul_ext_u8m8(vuint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf2_u8m8)))
-vuint8m8_t vlmul_ext_u8m8(vuint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf4_u8m8)))
-vuint8m8_t vlmul_ext_u8m8(vuint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u8mf8_u8m8)))
-vuint8m8_t vlmul_ext_u8m8(vuint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16m1_u16m8)))
-vuint16m8_t vlmul_ext_u16m8(vuint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16m2_u16m8)))
-vuint16m8_t vlmul_ext_u16m8(vuint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16m4_u16m8)))
-vuint16m8_t vlmul_ext_u16m8(vuint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16mf2_u16m8)))
-vuint16m8_t vlmul_ext_u16m8(vuint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u16mf4_u16m8)))
-vuint16m8_t vlmul_ext_u16m8(vuint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u32m1_u32m8)))
-vuint32m8_t vlmul_ext_u32m8(vuint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u32m2_u32m8)))
-vuint32m8_t vlmul_ext_u32m8(vuint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u32m4_u32m8)))
-vuint32m8_t vlmul_ext_u32m8(vuint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u32mf2_u32m8)))
-vuint32m8_t vlmul_ext_u32m8(vuint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u64m1_u64m8)))
-vuint64m8_t vlmul_ext_u64m8(vuint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u64m2_u64m8)))
-vuint64m8_t vlmul_ext_u64m8(vuint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_u64m4_u64m8)))
-vuint64m8_t vlmul_ext_u64m8(vuint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m1_i8mf2)))
-vint8mf2_t vlmul_trunc_i8mf2(vint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m2_i8mf2)))
-vint8mf2_t vlmul_trunc_i8mf2(vint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m4_i8mf2)))
-vint8mf2_t vlmul_trunc_i8mf2(vint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m8_i8mf2)))
-vint8mf2_t vlmul_trunc_i8mf2(vint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m1_i16mf2)))
-vint16mf2_t vlmul_trunc_i16mf2(vint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m2_i16mf2)))
-vint16mf2_t vlmul_trunc_i16mf2(vint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m4_i16mf2)))
-vint16mf2_t vlmul_trunc_i16mf2(vint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m8_i16mf2)))
-vint16mf2_t vlmul_trunc_i16mf2(vint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i32m1_i32mf2)))
-vint32mf2_t vlmul_trunc_i32mf2(vint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i32m2_i32mf2)))
-vint32mf2_t vlmul_trunc_i32mf2(vint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i32m4_i32mf2)))
-vint32mf2_t vlmul_trunc_i32mf2(vint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i32m8_i32mf2)))
-vint32mf2_t vlmul_trunc_i32mf2(vint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m1_i8mf4)))
-vint8mf4_t vlmul_trunc_i8mf4(vint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m2_i8mf4)))
-vint8mf4_t vlmul_trunc_i8mf4(vint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m4_i8mf4)))
-vint8mf4_t vlmul_trunc_i8mf4(vint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m8_i8mf4)))
-vint8mf4_t vlmul_trunc_i8mf4(vint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8mf2_i8mf4)))
-vint8mf4_t vlmul_trunc_i8mf4(vint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m1_i16mf4)))
-vint16mf4_t vlmul_trunc_i16mf4(vint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m2_i16mf4)))
-vint16mf4_t vlmul_trunc_i16mf4(vint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m4_i16mf4)))
-vint16mf4_t vlmul_trunc_i16mf4(vint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m8_i16mf4)))
-vint16mf4_t vlmul_trunc_i16mf4(vint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16mf2_i16mf4)))
-vint16mf4_t vlmul_trunc_i16mf4(vint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m1_i8mf8)))
-vint8mf8_t vlmul_trunc_i8mf8(vint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m2_i8mf8)))
-vint8mf8_t vlmul_trunc_i8mf8(vint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m4_i8mf8)))
-vint8mf8_t vlmul_trunc_i8mf8(vint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m8_i8mf8)))
-vint8mf8_t vlmul_trunc_i8mf8(vint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8mf2_i8mf8)))
-vint8mf8_t vlmul_trunc_i8mf8(vint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8mf4_i8mf8)))
-vint8mf8_t vlmul_trunc_i8mf8(vint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m2_i8m1)))
-vint8m1_t vlmul_trunc_i8m1(vint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m4_i8m1)))
-vint8m1_t vlmul_trunc_i8m1(vint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m8_i8m1)))
-vint8m1_t vlmul_trunc_i8m1(vint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m2_i16m1)))
-vint16m1_t vlmul_trunc_i16m1(vint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m4_i16m1)))
-vint16m1_t vlmul_trunc_i16m1(vint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m8_i16m1)))
-vint16m1_t vlmul_trunc_i16m1(vint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i32m2_i32m1)))
-vint32m1_t vlmul_trunc_i32m1(vint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i32m4_i32m1)))
-vint32m1_t vlmul_trunc_i32m1(vint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i32m8_i32m1)))
-vint32m1_t vlmul_trunc_i32m1(vint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i64m2_i64m1)))
-vint64m1_t vlmul_trunc_i64m1(vint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i64m4_i64m1)))
-vint64m1_t vlmul_trunc_i64m1(vint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i64m8_i64m1)))
-vint64m1_t vlmul_trunc_i64m1(vint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m4_i8m2)))
-vint8m2_t vlmul_trunc_i8m2(vint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m8_i8m2)))
-vint8m2_t vlmul_trunc_i8m2(vint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m4_i16m2)))
-vint16m2_t vlmul_trunc_i16m2(vint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m8_i16m2)))
-vint16m2_t vlmul_trunc_i16m2(vint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i32m4_i32m2)))
-vint32m2_t vlmul_trunc_i32m2(vint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i32m8_i32m2)))
-vint32m2_t vlmul_trunc_i32m2(vint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i64m4_i64m2)))
-vint64m2_t vlmul_trunc_i64m2(vint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i64m8_i64m2)))
-vint64m2_t vlmul_trunc_i64m2(vint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i8m8_i8m4)))
-vint8m4_t vlmul_trunc_i8m4(vint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i16m8_i16m4)))
-vint16m4_t vlmul_trunc_i16m4(vint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i32m8_i32m4)))
-vint32m4_t vlmul_trunc_i32m4(vint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_i64m8_i64m4)))
-vint64m4_t vlmul_trunc_i64m4(vint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m1_u8mf2)))
-vuint8mf2_t vlmul_trunc_u8mf2(vuint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m2_u8mf2)))
-vuint8mf2_t vlmul_trunc_u8mf2(vuint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m4_u8mf2)))
-vuint8mf2_t vlmul_trunc_u8mf2(vuint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m8_u8mf2)))
-vuint8mf2_t vlmul_trunc_u8mf2(vuint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m1_u16mf2)))
-vuint16mf2_t vlmul_trunc_u16mf2(vuint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m2_u16mf2)))
-vuint16mf2_t vlmul_trunc_u16mf2(vuint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m4_u16mf2)))
-vuint16mf2_t vlmul_trunc_u16mf2(vuint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m8_u16mf2)))
-vuint16mf2_t vlmul_trunc_u16mf2(vuint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u32m1_u32mf2)))
-vuint32mf2_t vlmul_trunc_u32mf2(vuint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u32m2_u32mf2)))
-vuint32mf2_t vlmul_trunc_u32mf2(vuint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u32m4_u32mf2)))
-vuint32mf2_t vlmul_trunc_u32mf2(vuint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u32m8_u32mf2)))
-vuint32mf2_t vlmul_trunc_u32mf2(vuint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m1_u8mf4)))
-vuint8mf4_t vlmul_trunc_u8mf4(vuint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m2_u8mf4)))
-vuint8mf4_t vlmul_trunc_u8mf4(vuint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m4_u8mf4)))
-vuint8mf4_t vlmul_trunc_u8mf4(vuint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m8_u8mf4)))
-vuint8mf4_t vlmul_trunc_u8mf4(vuint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8mf2_u8mf4)))
-vuint8mf4_t vlmul_trunc_u8mf4(vuint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m1_u16mf4)))
-vuint16mf4_t vlmul_trunc_u16mf4(vuint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m2_u16mf4)))
-vuint16mf4_t vlmul_trunc_u16mf4(vuint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m4_u16mf4)))
-vuint16mf4_t vlmul_trunc_u16mf4(vuint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m8_u16mf4)))
-vuint16mf4_t vlmul_trunc_u16mf4(vuint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16mf2_u16mf4)))
-vuint16mf4_t vlmul_trunc_u16mf4(vuint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m1_u8mf8)))
-vuint8mf8_t vlmul_trunc_u8mf8(vuint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m2_u8mf8)))
-vuint8mf8_t vlmul_trunc_u8mf8(vuint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m4_u8mf8)))
-vuint8mf8_t vlmul_trunc_u8mf8(vuint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m8_u8mf8)))
-vuint8mf8_t vlmul_trunc_u8mf8(vuint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8mf2_u8mf8)))
-vuint8mf8_t vlmul_trunc_u8mf8(vuint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8mf4_u8mf8)))
-vuint8mf8_t vlmul_trunc_u8mf8(vuint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m2_u8m1)))
-vuint8m1_t vlmul_trunc_u8m1(vuint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m4_u8m1)))
-vuint8m1_t vlmul_trunc_u8m1(vuint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m8_u8m1)))
-vuint8m1_t vlmul_trunc_u8m1(vuint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m2_u16m1)))
-vuint16m1_t vlmul_trunc_u16m1(vuint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m4_u16m1)))
-vuint16m1_t vlmul_trunc_u16m1(vuint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m8_u16m1)))
-vuint16m1_t vlmul_trunc_u16m1(vuint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u32m2_u32m1)))
-vuint32m1_t vlmul_trunc_u32m1(vuint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u32m4_u32m1)))
-vuint32m1_t vlmul_trunc_u32m1(vuint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u32m8_u32m1)))
-vuint32m1_t vlmul_trunc_u32m1(vuint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u64m2_u64m1)))
-vuint64m1_t vlmul_trunc_u64m1(vuint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u64m4_u64m1)))
-vuint64m1_t vlmul_trunc_u64m1(vuint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u64m8_u64m1)))
-vuint64m1_t vlmul_trunc_u64m1(vuint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m4_u8m2)))
-vuint8m2_t vlmul_trunc_u8m2(vuint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m8_u8m2)))
-vuint8m2_t vlmul_trunc_u8m2(vuint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m4_u16m2)))
-vuint16m2_t vlmul_trunc_u16m2(vuint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m8_u16m2)))
-vuint16m2_t vlmul_trunc_u16m2(vuint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u32m4_u32m2)))
-vuint32m2_t vlmul_trunc_u32m2(vuint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u32m8_u32m2)))
-vuint32m2_t vlmul_trunc_u32m2(vuint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u64m4_u64m2)))
-vuint64m2_t vlmul_trunc_u64m2(vuint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u64m8_u64m2)))
-vuint64m2_t vlmul_trunc_u64m2(vuint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u8m8_u8m4)))
-vuint8m4_t vlmul_trunc_u8m4(vuint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u16m8_u16m4)))
-vuint16m4_t vlmul_trunc_u16m4(vuint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u32m8_u32m4)))
-vuint32m4_t vlmul_trunc_u32m4(vuint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_u64m8_u64m4)))
-vuint64m4_t vlmul_trunc_u64m4(vuint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmand_mm_b8)))
-vbool8_t vmand(vbool8_t op0, vbool8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmand_mm_b4)))
-vbool4_t vmand(vbool4_t op0, vbool4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmand_mm_b2)))
-vbool2_t vmand(vbool2_t op0, vbool2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmand_mm_b1)))
-vbool1_t vmand(vbool1_t op0, vbool1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmand_mm_b16)))
-vbool16_t vmand(vbool16_t op0, vbool16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmand_mm_b32)))
-vbool32_t vmand(vbool32_t op0, vbool32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmand_mm_b64)))
-vbool64_t vmand(vbool64_t op0, vbool64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmandnot_mm_b8)))
-vbool8_t vmandnot(vbool8_t op0, vbool8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmandnot_mm_b4)))
-vbool4_t vmandnot(vbool4_t op0, vbool4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmandnot_mm_b2)))
-vbool2_t vmandnot(vbool2_t op0, vbool2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmandnot_mm_b1)))
-vbool1_t vmandnot(vbool1_t op0, vbool1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmandnot_mm_b16)))
-vbool16_t vmandnot(vbool16_t op0, vbool16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmandnot_mm_b32)))
-vbool32_t vmandnot(vbool32_t op0, vbool32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmandnot_mm_b64)))
-vbool64_t vmandnot(vbool64_t op0, vbool64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnand_mm_b8)))
-vbool8_t vmnand(vbool8_t op0, vbool8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnand_mm_b4)))
-vbool4_t vmnand(vbool4_t op0, vbool4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnand_mm_b2)))
-vbool2_t vmnand(vbool2_t op0, vbool2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnand_mm_b1)))
-vbool1_t vmnand(vbool1_t op0, vbool1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnand_mm_b16)))
-vbool16_t vmnand(vbool16_t op0, vbool16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnand_mm_b32)))
-vbool32_t vmnand(vbool32_t op0, vbool32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnand_mm_b64)))
-vbool64_t vmnand(vbool64_t op0, vbool64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnor_mm_b8)))
-vbool8_t vmnor(vbool8_t op0, vbool8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnor_mm_b4)))
-vbool4_t vmnor(vbool4_t op0, vbool4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnor_mm_b2)))
-vbool2_t vmnor(vbool2_t op0, vbool2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnor_mm_b1)))
-vbool1_t vmnor(vbool1_t op0, vbool1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnor_mm_b16)))
-vbool16_t vmnor(vbool16_t op0, vbool16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnor_mm_b32)))
-vbool32_t vmnor(vbool32_t op0, vbool32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmnor_mm_b64)))
-vbool64_t vmnor(vbool64_t op0, vbool64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmor_mm_b8)))
-vbool8_t vmor(vbool8_t op0, vbool8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmor_mm_b4)))
-vbool4_t vmor(vbool4_t op0, vbool4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmor_mm_b2)))
-vbool2_t vmor(vbool2_t op0, vbool2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmor_mm_b1)))
-vbool1_t vmor(vbool1_t op0, vbool1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmor_mm_b16)))
-vbool16_t vmor(vbool16_t op0, vbool16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmor_mm_b32)))
-vbool32_t vmor(vbool32_t op0, vbool32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmor_mm_b64)))
-vbool64_t vmor(vbool64_t op0, vbool64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmornot_mm_b8)))
-vbool8_t vmornot(vbool8_t op0, vbool8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmornot_mm_b4)))
-vbool4_t vmornot(vbool4_t op0, vbool4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmornot_mm_b2)))
-vbool2_t vmornot(vbool2_t op0, vbool2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmornot_mm_b1)))
-vbool1_t vmornot(vbool1_t op0, vbool1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmornot_mm_b16)))
-vbool16_t vmornot(vbool16_t op0, vbool16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmornot_mm_b32)))
-vbool32_t vmornot(vbool32_t op0, vbool32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmornot_mm_b64)))
-vbool64_t vmornot(vbool64_t op0, vbool64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b8)))
-vbool8_t vmsbf(vbool8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b8_m)))
-vbool8_t vmsbf(vbool8_t op0, vbool8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b4)))
-vbool4_t vmsbf(vbool4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b4_m)))
-vbool4_t vmsbf(vbool4_t op0, vbool4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b2)))
-vbool2_t vmsbf(vbool2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b2_m)))
-vbool2_t vmsbf(vbool2_t op0, vbool2_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b1)))
-vbool1_t vmsbf(vbool1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b1_m)))
-vbool1_t vmsbf(vbool1_t op0, vbool1_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b16)))
-vbool16_t vmsbf(vbool16_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b16_m)))
-vbool16_t vmsbf(vbool16_t op0, vbool16_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b32)))
-vbool32_t vmsbf(vbool32_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b32_m)))
-vbool32_t vmsbf(vbool32_t op0, vbool32_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b64)))
-vbool64_t vmsbf(vbool64_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsbf_m_b64_m)))
-vbool64_t vmsbf(vbool64_t op0, vbool64_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b8)))
-vbool8_t vmsif(vbool8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b8_m)))
-vbool8_t vmsif(vbool8_t op0, vbool8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b4)))
-vbool4_t vmsif(vbool4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b4_m)))
-vbool4_t vmsif(vbool4_t op0, vbool4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b2)))
-vbool2_t vmsif(vbool2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b2_m)))
-vbool2_t vmsif(vbool2_t op0, vbool2_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b1)))
-vbool1_t vmsif(vbool1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b1_m)))
-vbool1_t vmsif(vbool1_t op0, vbool1_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b16)))
-vbool16_t vmsif(vbool16_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b16_m)))
-vbool16_t vmsif(vbool16_t op0, vbool16_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b32)))
-vbool32_t vmsif(vbool32_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b32_m)))
-vbool32_t vmsif(vbool32_t op0, vbool32_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b64)))
-vbool64_t vmsif(vbool64_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsif_m_b64_m)))
-vbool64_t vmsif(vbool64_t op0, vbool64_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b8)))
-vbool8_t vmsof(vbool8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b8_m)))
-vbool8_t vmsof(vbool8_t op0, vbool8_t op1, vbool8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b4)))
-vbool4_t vmsof(vbool4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b4_m)))
-vbool4_t vmsof(vbool4_t op0, vbool4_t op1, vbool4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b2)))
-vbool2_t vmsof(vbool2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b2_m)))
-vbool2_t vmsof(vbool2_t op0, vbool2_t op1, vbool2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b1)))
-vbool1_t vmsof(vbool1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b1_m)))
-vbool1_t vmsof(vbool1_t op0, vbool1_t op1, vbool1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b16)))
-vbool16_t vmsof(vbool16_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b16_m)))
-vbool16_t vmsof(vbool16_t op0, vbool16_t op1, vbool16_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b32)))
-vbool32_t vmsof(vbool32_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b32_m)))
-vbool32_t vmsof(vbool32_t op0, vbool32_t op1, vbool32_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b64)))
-vbool64_t vmsof(vbool64_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmsof_m_b64_m)))
-vbool64_t vmsof(vbool64_t op0, vbool64_t op1, vbool64_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxnor_mm_b8)))
-vbool8_t vmxnor(vbool8_t op0, vbool8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxnor_mm_b4)))
-vbool4_t vmxnor(vbool4_t op0, vbool4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxnor_mm_b2)))
-vbool2_t vmxnor(vbool2_t op0, vbool2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxnor_mm_b1)))
-vbool1_t vmxnor(vbool1_t op0, vbool1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxnor_mm_b16)))
-vbool16_t vmxnor(vbool16_t op0, vbool16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxnor_mm_b32)))
-vbool32_t vmxnor(vbool32_t op0, vbool32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxnor_mm_b64)))
-vbool64_t vmxnor(vbool64_t op0, vbool64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxor_mm_b8)))
-vbool8_t vmxor(vbool8_t op0, vbool8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxor_mm_b4)))
-vbool4_t vmxor(vbool4_t op0, vbool4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxor_mm_b2)))
-vbool2_t vmxor(vbool2_t op0, vbool2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxor_mm_b1)))
-vbool1_t vmxor(vbool1_t op0, vbool1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxor_mm_b16)))
-vbool16_t vmxor(vbool16_t op0, vbool16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxor_mm_b32)))
-vbool32_t vmxor(vbool32_t op0, vbool32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmxor_mm_b64)))
-vbool64_t vmxor(vbool64_t op0, vbool64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b8)))
-unsigned long vpopc(vbool8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b8_m)))
-unsigned long vpopc(vbool8_t op0, vbool8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b4)))
-unsigned long vpopc(vbool4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b4_m)))
-unsigned long vpopc(vbool4_t op0, vbool4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b2)))
-unsigned long vpopc(vbool2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b2_m)))
-unsigned long vpopc(vbool2_t op0, vbool2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b1)))
-unsigned long vpopc(vbool1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b1_m)))
-unsigned long vpopc(vbool1_t op0, vbool1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b16)))
-unsigned long vpopc(vbool16_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b16_m)))
-unsigned long vpopc(vbool16_t op0, vbool16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b32)))
-unsigned long vpopc(vbool32_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b32_m)))
-unsigned long vpopc(vbool32_t op0, vbool32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b64)))
-unsigned long vpopc(vbool64_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vpopc_m_b64_m)))
-unsigned long vpopc(vbool64_t op0, vbool64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m1_i16m1)))
-vint16m1_t vreinterpret_i16m1(vint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m2_i16m2)))
-vint16m2_t vreinterpret_i16m2(vint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m4_i16m4)))
-vint16m4_t vreinterpret_i16m4(vint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m8_i16m8)))
-vint16m8_t vreinterpret_i16m8(vint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8mf2_i16mf2)))
-vint16mf2_t vreinterpret_i16mf2(vint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8mf4_i16mf4)))
-vint16mf4_t vreinterpret_i16mf4(vint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m1_i16m1)))
-vint16m1_t vreinterpret_i16m1(vint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m2_i16m2)))
-vint16m2_t vreinterpret_i16m2(vint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m4_i16m4)))
-vint16m4_t vreinterpret_i16m4(vint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m8_i16m8)))
-vint16m8_t vreinterpret_i16m8(vint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32mf2_i16mf2)))
-vint16mf2_t vreinterpret_i16mf2(vint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m1_i16m1)))
-vint16m1_t vreinterpret_i16m1(vint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m2_i16m2)))
-vint16m2_t vreinterpret_i16m2(vint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m4_i16m4)))
-vint16m4_t vreinterpret_i16m4(vint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m8_i16m8)))
-vint16m8_t vreinterpret_i16m8(vint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m1_i32m1)))
-vint32m1_t vreinterpret_i32m1(vint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m2_i32m2)))
-vint32m2_t vreinterpret_i32m2(vint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m4_i32m4)))
-vint32m4_t vreinterpret_i32m4(vint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m8_i32m8)))
-vint32m8_t vreinterpret_i32m8(vint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8mf2_i32mf2)))
-vint32mf2_t vreinterpret_i32mf2(vint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m1_i32m1)))
-vint32m1_t vreinterpret_i32m1(vint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m2_i32m2)))
-vint32m2_t vreinterpret_i32m2(vint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m4_i32m4)))
-vint32m4_t vreinterpret_i32m4(vint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m8_i32m8)))
-vint32m8_t vreinterpret_i32m8(vint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16mf2_i32mf2)))
-vint32mf2_t vreinterpret_i32mf2(vint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m1_i32m1)))
-vint32m1_t vreinterpret_i32m1(vint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m2_i32m2)))
-vint32m2_t vreinterpret_i32m2(vint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m4_i32m4)))
-vint32m4_t vreinterpret_i32m4(vint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m8_i32m8)))
-vint32m8_t vreinterpret_i32m8(vint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m1_i64m1)))
-vint64m1_t vreinterpret_i64m1(vint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m2_i64m2)))
-vint64m2_t vreinterpret_i64m2(vint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m4_i64m4)))
-vint64m4_t vreinterpret_i64m4(vint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m8_i64m8)))
-vint64m8_t vreinterpret_i64m8(vint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m1_i64m1)))
-vint64m1_t vreinterpret_i64m1(vint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m2_i64m2)))
-vint64m2_t vreinterpret_i64m2(vint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m4_i64m4)))
-vint64m4_t vreinterpret_i64m4(vint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m8_i64m8)))
-vint64m8_t vreinterpret_i64m8(vint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m1_i64m1)))
-vint64m1_t vreinterpret_i64m1(vint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m2_i64m2)))
-vint64m2_t vreinterpret_i64m2(vint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m4_i64m4)))
-vint64m4_t vreinterpret_i64m4(vint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m8_i64m8)))
-vint64m8_t vreinterpret_i64m8(vint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m1_i8m1)))
-vint8m1_t vreinterpret_i8m1(vint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m2_i8m2)))
-vint8m2_t vreinterpret_i8m2(vint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m4_i8m4)))
-vint8m4_t vreinterpret_i8m4(vint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m8_i8m8)))
-vint8m8_t vreinterpret_i8m8(vint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16mf2_i8mf2)))
-vint8mf2_t vreinterpret_i8mf2(vint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16mf4_i8mf4)))
-vint8mf4_t vreinterpret_i8mf4(vint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m1_i8m1)))
-vint8m1_t vreinterpret_i8m1(vint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m2_i8m2)))
-vint8m2_t vreinterpret_i8m2(vint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m4_i8m4)))
-vint8m4_t vreinterpret_i8m4(vint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m8_i8m8)))
-vint8m8_t vreinterpret_i8m8(vint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32mf2_i8mf2)))
-vint8mf2_t vreinterpret_i8mf2(vint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m1_i8m1)))
-vint8m1_t vreinterpret_i8m1(vint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m2_i8m2)))
-vint8m2_t vreinterpret_i8m2(vint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m4_i8m4)))
-vint8m4_t vreinterpret_i8m4(vint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m8_i8m8)))
-vint8m8_t vreinterpret_i8m8(vint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m1_i8m1)))
-vint8m1_t vreinterpret_i8m1(vuint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m2_i8m2)))
-vint8m2_t vreinterpret_i8m2(vuint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m4_i8m4)))
-vint8m4_t vreinterpret_i8m4(vuint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m8_i8m8)))
-vint8m8_t vreinterpret_i8m8(vuint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8mf2_i8mf2)))
-vint8mf2_t vreinterpret_i8mf2(vuint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8mf4_i8mf4)))
-vint8mf4_t vreinterpret_i8mf4(vuint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8mf8_i8mf8)))
-vint8mf8_t vreinterpret_i8mf8(vuint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m1_i16m1)))
-vint16m1_t vreinterpret_i16m1(vuint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m2_i16m2)))
-vint16m2_t vreinterpret_i16m2(vuint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m4_i16m4)))
-vint16m4_t vreinterpret_i16m4(vuint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m8_i16m8)))
-vint16m8_t vreinterpret_i16m8(vuint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16mf2_i16mf2)))
-vint16mf2_t vreinterpret_i16mf2(vuint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16mf4_i16mf4)))
-vint16mf4_t vreinterpret_i16mf4(vuint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m1_i32m1)))
-vint32m1_t vreinterpret_i32m1(vuint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m2_i32m2)))
-vint32m2_t vreinterpret_i32m2(vuint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m4_i32m4)))
-vint32m4_t vreinterpret_i32m4(vuint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m8_i32m8)))
-vint32m8_t vreinterpret_i32m8(vuint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32mf2_i32mf2)))
-vint32mf2_t vreinterpret_i32mf2(vuint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m1_i64m1)))
-vint64m1_t vreinterpret_i64m1(vuint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m2_i64m2)))
-vint64m2_t vreinterpret_i64m2(vuint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m4_i64m4)))
-vint64m4_t vreinterpret_i64m4(vuint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m8_i64m8)))
-vint64m8_t vreinterpret_i64m8(vuint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m1_u16m1)))
-vuint16m1_t vreinterpret_u16m1(vuint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m2_u16m2)))
-vuint16m2_t vreinterpret_u16m2(vuint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m4_u16m4)))
-vuint16m4_t vreinterpret_u16m4(vuint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m8_u16m8)))
-vuint16m8_t vreinterpret_u16m8(vuint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8mf2_u16mf2)))
-vuint16mf2_t vreinterpret_u16mf2(vuint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8mf4_u16mf4)))
-vuint16mf4_t vreinterpret_u16mf4(vuint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m1_u16m1)))
-vuint16m1_t vreinterpret_u16m1(vuint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m2_u16m2)))
-vuint16m2_t vreinterpret_u16m2(vuint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m4_u16m4)))
-vuint16m4_t vreinterpret_u16m4(vuint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m8_u16m8)))
-vuint16m8_t vreinterpret_u16m8(vuint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32mf2_u16mf2)))
-vuint16mf2_t vreinterpret_u16mf2(vuint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m1_u16m1)))
-vuint16m1_t vreinterpret_u16m1(vuint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m2_u16m2)))
-vuint16m2_t vreinterpret_u16m2(vuint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m4_u16m4)))
-vuint16m4_t vreinterpret_u16m4(vuint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m8_u16m8)))
-vuint16m8_t vreinterpret_u16m8(vuint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m1_u32m1)))
-vuint32m1_t vreinterpret_u32m1(vuint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m2_u32m2)))
-vuint32m2_t vreinterpret_u32m2(vuint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m4_u32m4)))
-vuint32m4_t vreinterpret_u32m4(vuint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m8_u32m8)))
-vuint32m8_t vreinterpret_u32m8(vuint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8mf2_u32mf2)))
-vuint32mf2_t vreinterpret_u32mf2(vuint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m1_u32m1)))
-vuint32m1_t vreinterpret_u32m1(vuint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m2_u32m2)))
-vuint32m2_t vreinterpret_u32m2(vuint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m4_u32m4)))
-vuint32m4_t vreinterpret_u32m4(vuint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m8_u32m8)))
-vuint32m8_t vreinterpret_u32m8(vuint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16mf2_u32mf2)))
-vuint32mf2_t vreinterpret_u32mf2(vuint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m1_u32m1)))
-vuint32m1_t vreinterpret_u32m1(vuint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m2_u32m2)))
-vuint32m2_t vreinterpret_u32m2(vuint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m4_u32m4)))
-vuint32m4_t vreinterpret_u32m4(vuint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m8_u32m8)))
-vuint32m8_t vreinterpret_u32m8(vuint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m1_u64m1)))
-vuint64m1_t vreinterpret_u64m1(vuint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m2_u64m2)))
-vuint64m2_t vreinterpret_u64m2(vuint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m4_u64m4)))
-vuint64m4_t vreinterpret_u64m4(vuint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u8m8_u64m8)))
-vuint64m8_t vreinterpret_u64m8(vuint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m1_u64m1)))
-vuint64m1_t vreinterpret_u64m1(vuint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m2_u64m2)))
-vuint64m2_t vreinterpret_u64m2(vuint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m4_u64m4)))
-vuint64m4_t vreinterpret_u64m4(vuint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m8_u64m8)))
-vuint64m8_t vreinterpret_u64m8(vuint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m1_u64m1)))
-vuint64m1_t vreinterpret_u64m1(vuint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m2_u64m2)))
-vuint64m2_t vreinterpret_u64m2(vuint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m4_u64m4)))
-vuint64m4_t vreinterpret_u64m4(vuint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m8_u64m8)))
-vuint64m8_t vreinterpret_u64m8(vuint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m1_u8m1)))
-vuint8m1_t vreinterpret_u8m1(vuint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m2_u8m2)))
-vuint8m2_t vreinterpret_u8m2(vuint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m4_u8m4)))
-vuint8m4_t vreinterpret_u8m4(vuint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m8_u8m8)))
-vuint8m8_t vreinterpret_u8m8(vuint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16mf2_u8mf2)))
-vuint8mf2_t vreinterpret_u8mf2(vuint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16mf4_u8mf4)))
-vuint8mf4_t vreinterpret_u8mf4(vuint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m1_u8m1)))
-vuint8m1_t vreinterpret_u8m1(vuint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m2_u8m2)))
-vuint8m2_t vreinterpret_u8m2(vuint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m4_u8m4)))
-vuint8m4_t vreinterpret_u8m4(vuint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m8_u8m8)))
-vuint8m8_t vreinterpret_u8m8(vuint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32mf2_u8mf2)))
-vuint8mf2_t vreinterpret_u8mf2(vuint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m1_u8m1)))
-vuint8m1_t vreinterpret_u8m1(vuint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m2_u8m2)))
-vuint8m2_t vreinterpret_u8m2(vuint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m4_u8m4)))
-vuint8m4_t vreinterpret_u8m4(vuint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m8_u8m8)))
-vuint8m8_t vreinterpret_u8m8(vuint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m1_u8m1)))
-vuint8m1_t vreinterpret_u8m1(vint8m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m2_u8m2)))
-vuint8m2_t vreinterpret_u8m2(vint8m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m4_u8m4)))
-vuint8m4_t vreinterpret_u8m4(vint8m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8m8_u8m8)))
-vuint8m8_t vreinterpret_u8m8(vint8m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8mf2_u8mf2)))
-vuint8mf2_t vreinterpret_u8mf2(vint8mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8mf4_u8mf4)))
-vuint8mf4_t vreinterpret_u8mf4(vint8mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i8mf8_u8mf8)))
-vuint8mf8_t vreinterpret_u8mf8(vint8mf8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m1_u16m1)))
-vuint16m1_t vreinterpret_u16m1(vint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m2_u16m2)))
-vuint16m2_t vreinterpret_u16m2(vint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m4_u16m4)))
-vuint16m4_t vreinterpret_u16m4(vint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m8_u16m8)))
-vuint16m8_t vreinterpret_u16m8(vint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16mf2_u16mf2)))
-vuint16mf2_t vreinterpret_u16mf2(vint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16mf4_u16mf4)))
-vuint16mf4_t vreinterpret_u16mf4(vint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m1_u32m1)))
-vuint32m1_t vreinterpret_u32m1(vint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m2_u32m2)))
-vuint32m2_t vreinterpret_u32m2(vint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m4_u32m4)))
-vuint32m4_t vreinterpret_u32m4(vint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m8_u32m8)))
-vuint32m8_t vreinterpret_u32m8(vint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32mf2_u32mf2)))
-vuint32mf2_t vreinterpret_u32mf2(vint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m1_u64m1)))
-vuint64m1_t vreinterpret_u64m1(vint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m2_u64m2)))
-vuint64m2_t vreinterpret_u64m2(vint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m4_u64m4)))
-vuint64m4_t vreinterpret_u64m4(vint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m8_u64m8)))
-vuint64m8_t vreinterpret_u64m8(vint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse1_v_b8)))
-void vse1(uint8_t * op0, vbool8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse1_v_b4)))
-void vse1(uint8_t * op0, vbool4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse1_v_b2)))
-void vse1(uint8_t * op0, vbool2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse1_v_b1)))
-void vse1(uint8_t * op0, vbool1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse1_v_b16)))
-void vse1(uint8_t * op0, vbool16_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse1_v_b32)))
-void vse1(uint8_t * op0, vbool32_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse1_v_b64)))
-void vse1(uint8_t * op0, vbool64_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16mf4)))
-vint16mf4_t vsext_vf2(vint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16mf4_m)))
-vint16mf4_t vsext_vf2(vbool64_t op0, vint16mf4_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16mf2)))
-vint16mf2_t vsext_vf2(vint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16mf2_m)))
-vint16mf2_t vsext_vf2(vbool32_t op0, vint16mf2_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16m1)))
-vint16m1_t vsext_vf2(vint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16m1_m)))
-vint16m1_t vsext_vf2(vbool16_t op0, vint16m1_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16m2)))
-vint16m2_t vsext_vf2(vint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16m2_m)))
-vint16m2_t vsext_vf2(vbool8_t op0, vint16m2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16m4)))
-vint16m4_t vsext_vf2(vint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16m4_m)))
-vint16m4_t vsext_vf2(vbool4_t op0, vint16m4_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16m8)))
-vint16m8_t vsext_vf2(vint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i16m8_m)))
-vint16m8_t vsext_vf2(vbool2_t op0, vint16m8_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i32mf2)))
-vint32mf2_t vsext_vf2(vint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i32mf2_m)))
-vint32mf2_t vsext_vf2(vbool64_t op0, vint32mf2_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i32m1)))
-vint32m1_t vsext_vf2(vint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i32m1_m)))
-vint32m1_t vsext_vf2(vbool32_t op0, vint32m1_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i32m2)))
-vint32m2_t vsext_vf2(vint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i32m2_m)))
-vint32m2_t vsext_vf2(vbool16_t op0, vint32m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i32m4)))
-vint32m4_t vsext_vf2(vint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i32m4_m)))
-vint32m4_t vsext_vf2(vbool8_t op0, vint32m4_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i32m8)))
-vint32m8_t vsext_vf2(vint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i32m8_m)))
-vint32m8_t vsext_vf2(vbool4_t op0, vint32m8_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i64m1)))
-vint64m1_t vsext_vf2(vint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i64m1_m)))
-vint64m1_t vsext_vf2(vbool64_t op0, vint64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i64m2)))
-vint64m2_t vsext_vf2(vint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i64m2_m)))
-vint64m2_t vsext_vf2(vbool32_t op0, vint64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i64m4)))
-vint64m4_t vsext_vf2(vint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i64m4_m)))
-vint64m4_t vsext_vf2(vbool16_t op0, vint64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i64m8)))
-vint64m8_t vsext_vf2(vint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf2_i64m8_m)))
-vint64m8_t vsext_vf2(vbool8_t op0, vint64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i32mf2)))
-vint32mf2_t vsext_vf4(vint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i32mf2_m)))
-vint32mf2_t vsext_vf4(vbool64_t op0, vint32mf2_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i32m1)))
-vint32m1_t vsext_vf4(vint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i32m1_m)))
-vint32m1_t vsext_vf4(vbool32_t op0, vint32m1_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i32m2)))
-vint32m2_t vsext_vf4(vint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i32m2_m)))
-vint32m2_t vsext_vf4(vbool16_t op0, vint32m2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i32m4)))
-vint32m4_t vsext_vf4(vint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i32m4_m)))
-vint32m4_t vsext_vf4(vbool8_t op0, vint32m4_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i32m8)))
-vint32m8_t vsext_vf4(vint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i32m8_m)))
-vint32m8_t vsext_vf4(vbool4_t op0, vint32m8_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i64m1)))
-vint64m1_t vsext_vf4(vint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i64m1_m)))
-vint64m1_t vsext_vf4(vbool64_t op0, vint64m1_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i64m2)))
-vint64m2_t vsext_vf4(vint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i64m2_m)))
-vint64m2_t vsext_vf4(vbool32_t op0, vint64m2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i64m4)))
-vint64m4_t vsext_vf4(vint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i64m4_m)))
-vint64m4_t vsext_vf4(vbool16_t op0, vint64m4_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i64m8)))
-vint64m8_t vsext_vf4(vint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf4_i64m8_m)))
-vint64m8_t vsext_vf4(vbool8_t op0, vint64m8_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf8_i64m1)))
-vint64m1_t vsext_vf8(vint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf8_i64m1_m)))
-vint64m1_t vsext_vf8(vbool64_t op0, vint64m1_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf8_i64m2)))
-vint64m2_t vsext_vf8(vint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf8_i64m2_m)))
-vint64m2_t vsext_vf8(vbool32_t op0, vint64m2_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf8_i64m4)))
-vint64m4_t vsext_vf8(vint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf8_i64m4_m)))
-vint64m4_t vsext_vf8(vbool16_t op0, vint64m4_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf8_i64m8)))
-vint64m8_t vsext_vf8(vint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsext_vf8_i64m8_m)))
-vint64m8_t vsext_vf8(vbool8_t op0, vint64m8_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16mf4)))
-vuint16mf4_t vzext_vf2(vuint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16mf4_m)))
-vuint16mf4_t vzext_vf2(vbool64_t op0, vuint16mf4_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16mf2)))
-vuint16mf2_t vzext_vf2(vuint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16mf2_m)))
-vuint16mf2_t vzext_vf2(vbool32_t op0, vuint16mf2_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16m1)))
-vuint16m1_t vzext_vf2(vuint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16m1_m)))
-vuint16m1_t vzext_vf2(vbool16_t op0, vuint16m1_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16m2)))
-vuint16m2_t vzext_vf2(vuint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16m2_m)))
-vuint16m2_t vzext_vf2(vbool8_t op0, vuint16m2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16m4)))
-vuint16m4_t vzext_vf2(vuint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16m4_m)))
-vuint16m4_t vzext_vf2(vbool4_t op0, vuint16m4_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16m8)))
-vuint16m8_t vzext_vf2(vuint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u16m8_m)))
-vuint16m8_t vzext_vf2(vbool2_t op0, vuint16m8_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u32mf2)))
-vuint32mf2_t vzext_vf2(vuint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u32mf2_m)))
-vuint32mf2_t vzext_vf2(vbool64_t op0, vuint32mf2_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u32m1)))
-vuint32m1_t vzext_vf2(vuint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u32m1_m)))
-vuint32m1_t vzext_vf2(vbool32_t op0, vuint32m1_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u32m2)))
-vuint32m2_t vzext_vf2(vuint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u32m2_m)))
-vuint32m2_t vzext_vf2(vbool16_t op0, vuint32m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u32m4)))
-vuint32m4_t vzext_vf2(vuint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u32m4_m)))
-vuint32m4_t vzext_vf2(vbool8_t op0, vuint32m4_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u32m8)))
-vuint32m8_t vzext_vf2(vuint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u32m8_m)))
-vuint32m8_t vzext_vf2(vbool4_t op0, vuint32m8_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u64m1)))
-vuint64m1_t vzext_vf2(vuint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u64m1_m)))
-vuint64m1_t vzext_vf2(vbool64_t op0, vuint64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u64m2)))
-vuint64m2_t vzext_vf2(vuint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u64m2_m)))
-vuint64m2_t vzext_vf2(vbool32_t op0, vuint64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u64m4)))
-vuint64m4_t vzext_vf2(vuint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u64m4_m)))
-vuint64m4_t vzext_vf2(vbool16_t op0, vuint64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u64m8)))
-vuint64m8_t vzext_vf2(vuint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf2_u64m8_m)))
-vuint64m8_t vzext_vf2(vbool8_t op0, vuint64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u32mf2)))
-vuint32mf2_t vzext_vf4(vuint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u32mf2_m)))
-vuint32mf2_t vzext_vf4(vbool64_t op0, vuint32mf2_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u32m1)))
-vuint32m1_t vzext_vf4(vuint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u32m1_m)))
-vuint32m1_t vzext_vf4(vbool32_t op0, vuint32m1_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u32m2)))
-vuint32m2_t vzext_vf4(vuint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u32m2_m)))
-vuint32m2_t vzext_vf4(vbool16_t op0, vuint32m2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u32m4)))
-vuint32m4_t vzext_vf4(vuint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u32m4_m)))
-vuint32m4_t vzext_vf4(vbool8_t op0, vuint32m4_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u32m8)))
-vuint32m8_t vzext_vf4(vuint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u32m8_m)))
-vuint32m8_t vzext_vf4(vbool4_t op0, vuint32m8_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u64m1)))
-vuint64m1_t vzext_vf4(vuint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u64m1_m)))
-vuint64m1_t vzext_vf4(vbool64_t op0, vuint64m1_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u64m2)))
-vuint64m2_t vzext_vf4(vuint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u64m2_m)))
-vuint64m2_t vzext_vf4(vbool32_t op0, vuint64m2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u64m4)))
-vuint64m4_t vzext_vf4(vuint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u64m4_m)))
-vuint64m4_t vzext_vf4(vbool16_t op0, vuint64m4_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u64m8)))
-vuint64m8_t vzext_vf4(vuint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf4_u64m8_m)))
-vuint64m8_t vzext_vf4(vbool8_t op0, vuint64m8_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf8_u64m1)))
-vuint64m1_t vzext_vf8(vuint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf8_u64m1_m)))
-vuint64m1_t vzext_vf8(vbool64_t op0, vuint64m1_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf8_u64m2)))
-vuint64m2_t vzext_vf8(vuint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf8_u64m2_m)))
-vuint64m2_t vzext_vf8(vbool32_t op0, vuint64m2_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf8_u64m4)))
-vuint64m4_t vzext_vf8(vuint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf8_u64m4_m)))
-vuint64m4_t vzext_vf8(vbool16_t op0, vuint64m4_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf8_u64m8)))
-vuint64m8_t vzext_vf8(vuint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vzext_vf8_u64m8_m)))
-vuint64m8_t vzext_vf8(vbool8_t op0, vuint64m8_t op1, vuint8m1_t op2, size_t op3);
-
-#if defined(__riscv_f)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_f32m1)))
-void vsse32(float * op0, ptrdiff_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_f32m1_m)))
-void vsse32(vbool32_t op0, float * op1, ptrdiff_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_f32m2)))
-void vsse32(float * op0, ptrdiff_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_f32m2_m)))
-void vsse32(vbool16_t op0, float * op1, ptrdiff_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_f32m4)))
-void vsse32(float * op0, ptrdiff_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_f32m4_m)))
-void vsse32(vbool8_t op0, float * op1, ptrdiff_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_f32m8)))
-void vsse32(float * op0, ptrdiff_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_f32m8_m)))
-void vsse32(vbool4_t op0, float * op1, ptrdiff_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_f32mf2)))
-void vsse32(float * op0, ptrdiff_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse32_v_f32mf2_m)))
-void vsse32(vbool64_t op0, float * op1, ptrdiff_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f32m1)))
-vfloat32m1_t vluxei8(const float * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f32m1_m)))
-vfloat32m1_t vluxei8(vbool32_t op0, vfloat32m1_t op1, const float * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f32m2)))
-vfloat32m2_t vluxei8(const float * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f32m2_m)))
-vfloat32m2_t vluxei8(vbool16_t op0, vfloat32m2_t op1, const float * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f32m4)))
-vfloat32m4_t vluxei8(const float * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f32m4_m)))
-vfloat32m4_t vluxei8(vbool8_t op0, vfloat32m4_t op1, const float * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f32m8)))
-vfloat32m8_t vluxei8(const float * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f32m8_m)))
-vfloat32m8_t vluxei8(vbool4_t op0, vfloat32m8_t op1, const float * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f32mf2)))
-vfloat32mf2_t vluxei8(const float * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f32mf2_m)))
-vfloat32mf2_t vluxei8(vbool64_t op0, vfloat32mf2_t op1, const float * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f32m1)))
-vfloat32m1_t vluxei16(const float * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f32m1_m)))
-vfloat32m1_t vluxei16(vbool32_t op0, vfloat32m1_t op1, const float * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f32m2)))
-vfloat32m2_t vluxei16(const float * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f32m2_m)))
-vfloat32m2_t vluxei16(vbool16_t op0, vfloat32m2_t op1, const float * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f32m4)))
-vfloat32m4_t vluxei16(const float * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f32m4_m)))
-vfloat32m4_t vluxei16(vbool8_t op0, vfloat32m4_t op1, const float * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f32m8)))
-vfloat32m8_t vluxei16(const float * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f32m8_m)))
-vfloat32m8_t vluxei16(vbool4_t op0, vfloat32m8_t op1, const float * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f32mf2)))
-vfloat32mf2_t vluxei16(const float * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f32mf2_m)))
-vfloat32mf2_t vluxei16(vbool64_t op0, vfloat32mf2_t op1, const float * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f32m1)))
-vfloat32m1_t vluxei32(const float * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f32m1_m)))
-vfloat32m1_t vluxei32(vbool32_t op0, vfloat32m1_t op1, const float * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f32m2)))
-vfloat32m2_t vluxei32(const float * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f32m2_m)))
-vfloat32m2_t vluxei32(vbool16_t op0, vfloat32m2_t op1, const float * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f32m4)))
-vfloat32m4_t vluxei32(const float * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f32m4_m)))
-vfloat32m4_t vluxei32(vbool8_t op0, vfloat32m4_t op1, const float * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f32m8)))
-vfloat32m8_t vluxei32(const float * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f32m8_m)))
-vfloat32m8_t vluxei32(vbool4_t op0, vfloat32m8_t op1, const float * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f32mf2)))
-vfloat32mf2_t vluxei32(const float * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f32mf2_m)))
-vfloat32mf2_t vluxei32(vbool64_t op0, vfloat32mf2_t op1, const float * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f32m1)))
-vfloat32m1_t vluxei64(const float * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f32m1_m)))
-vfloat32m1_t vluxei64(vbool32_t op0, vfloat32m1_t op1, const float * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f32m2)))
-vfloat32m2_t vluxei64(const float * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f32m2_m)))
-vfloat32m2_t vluxei64(vbool16_t op0, vfloat32m2_t op1, const float * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f32m4)))
-vfloat32m4_t vluxei64(const float * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f32m4_m)))
-vfloat32m4_t vluxei64(vbool8_t op0, vfloat32m4_t op1, const float * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f32mf2)))
-vfloat32mf2_t vluxei64(const float * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f32mf2_m)))
-vfloat32mf2_t vluxei64(vbool64_t op0, vfloat32mf2_t op1, const float * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f32m1)))
-vfloat32m1_t vloxei8(const float * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f32m1_m)))
-vfloat32m1_t vloxei8(vbool32_t op0, vfloat32m1_t op1, const float * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f32m2)))
-vfloat32m2_t vloxei8(const float * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f32m2_m)))
-vfloat32m2_t vloxei8(vbool16_t op0, vfloat32m2_t op1, const float * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f32m4)))
-vfloat32m4_t vloxei8(const float * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f32m4_m)))
-vfloat32m4_t vloxei8(vbool8_t op0, vfloat32m4_t op1, const float * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f32m8)))
-vfloat32m8_t vloxei8(const float * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f32m8_m)))
-vfloat32m8_t vloxei8(vbool4_t op0, vfloat32m8_t op1, const float * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f32mf2)))
-vfloat32mf2_t vloxei8(const float * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f32mf2_m)))
-vfloat32mf2_t vloxei8(vbool64_t op0, vfloat32mf2_t op1, const float * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f32m1)))
-vfloat32m1_t vloxei16(const float * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f32m1_m)))
-vfloat32m1_t vloxei16(vbool32_t op0, vfloat32m1_t op1, const float * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f32m2)))
-vfloat32m2_t vloxei16(const float * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f32m2_m)))
-vfloat32m2_t vloxei16(vbool16_t op0, vfloat32m2_t op1, const float * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f32m4)))
-vfloat32m4_t vloxei16(const float * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f32m4_m)))
-vfloat32m4_t vloxei16(vbool8_t op0, vfloat32m4_t op1, const float * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f32m8)))
-vfloat32m8_t vloxei16(const float * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f32m8_m)))
-vfloat32m8_t vloxei16(vbool4_t op0, vfloat32m8_t op1, const float * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f32mf2)))
-vfloat32mf2_t vloxei16(const float * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f32mf2_m)))
-vfloat32mf2_t vloxei16(vbool64_t op0, vfloat32mf2_t op1, const float * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f32m1)))
-vfloat32m1_t vloxei32(const float * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f32m1_m)))
-vfloat32m1_t vloxei32(vbool32_t op0, vfloat32m1_t op1, const float * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f32m2)))
-vfloat32m2_t vloxei32(const float * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f32m2_m)))
-vfloat32m2_t vloxei32(vbool16_t op0, vfloat32m2_t op1, const float * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f32m4)))
-vfloat32m4_t vloxei32(const float * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f32m4_m)))
-vfloat32m4_t vloxei32(vbool8_t op0, vfloat32m4_t op1, const float * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f32m8)))
-vfloat32m8_t vloxei32(const float * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f32m8_m)))
-vfloat32m8_t vloxei32(vbool4_t op0, vfloat32m8_t op1, const float * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f32mf2)))
-vfloat32mf2_t vloxei32(const float * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f32mf2_m)))
-vfloat32mf2_t vloxei32(vbool64_t op0, vfloat32mf2_t op1, const float * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f32m1)))
-vfloat32m1_t vloxei64(const float * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f32m1_m)))
-vfloat32m1_t vloxei64(vbool32_t op0, vfloat32m1_t op1, const float * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f32m2)))
-vfloat32m2_t vloxei64(const float * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f32m2_m)))
-vfloat32m2_t vloxei64(vbool16_t op0, vfloat32m2_t op1, const float * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f32m4)))
-vfloat32m4_t vloxei64(const float * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f32m4_m)))
-vfloat32m4_t vloxei64(vbool8_t op0, vfloat32m4_t op1, const float * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f32mf2)))
-vfloat32mf2_t vloxei64(const float * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f32mf2_m)))
-vfloat32mf2_t vloxei64(vbool64_t op0, vfloat32mf2_t op1, const float * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f32m1)))
-vfloat32m1_t vmv_v(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f32m2)))
-vfloat32m2_t vmv_v(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f32m4)))
-vfloat32m4_t vmv_v(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f32m8)))
-vfloat32m8_t vmv_v(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f32mf2)))
-vfloat32mf2_t vmv_v(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f32m1)))
-vfloat32m1_t vfadd(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f32m1_m)))
-vfloat32m1_t vfadd(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f32m2)))
-vfloat32m2_t vfadd(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f32m2_m)))
-vfloat32m2_t vfadd(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f32m4)))
-vfloat32m4_t vfadd(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f32m4_m)))
-vfloat32m4_t vfadd(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f32m8)))
-vfloat32m8_t vfadd(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f32m8_m)))
-vfloat32m8_t vfadd(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f32mf2)))
-vfloat32mf2_t vfadd(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f32mf2_m)))
-vfloat32mf2_t vfadd(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f32m1)))
-vfloat32m1_t vfadd(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f32m1_m)))
-vfloat32m1_t vfadd(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f32m2)))
-vfloat32m2_t vfadd(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f32m2_m)))
-vfloat32m2_t vfadd(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f32m4)))
-vfloat32m4_t vfadd(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f32m4_m)))
-vfloat32m4_t vfadd(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f32m8)))
-vfloat32m8_t vfadd(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f32m8_m)))
-vfloat32m8_t vfadd(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f32mf2)))
-vfloat32mf2_t vfadd(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f32mf2_m)))
-vfloat32mf2_t vfadd(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f32m1)))
-vfloat32m1_t vfsub(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f32m1_m)))
-vfloat32m1_t vfsub(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f32m2)))
-vfloat32m2_t vfsub(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f32m2_m)))
-vfloat32m2_t vfsub(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f32m4)))
-vfloat32m4_t vfsub(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f32m4_m)))
-vfloat32m4_t vfsub(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f32m8)))
-vfloat32m8_t vfsub(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f32m8_m)))
-vfloat32m8_t vfsub(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f32mf2)))
-vfloat32mf2_t vfsub(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f32mf2_m)))
-vfloat32mf2_t vfsub(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f32m1)))
-vfloat32m1_t vfsub(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f32m1_m)))
-vfloat32m1_t vfsub(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f32m2)))
-vfloat32m2_t vfsub(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f32m2_m)))
-vfloat32m2_t vfsub(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f32m4)))
-vfloat32m4_t vfsub(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f32m4_m)))
-vfloat32m4_t vfsub(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f32m8)))
-vfloat32m8_t vfsub(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f32m8_m)))
-vfloat32m8_t vfsub(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f32mf2)))
-vfloat32mf2_t vfsub(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f32mf2_m)))
-vfloat32mf2_t vfsub(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f32m1)))
-vfloat32m1_t vfrsub(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f32m1_m)))
-vfloat32m1_t vfrsub(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f32m2)))
-vfloat32m2_t vfrsub(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f32m2_m)))
-vfloat32m2_t vfrsub(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f32m4)))
-vfloat32m4_t vfrsub(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f32m4_m)))
-vfloat32m4_t vfrsub(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f32m8)))
-vfloat32m8_t vfrsub(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f32m8_m)))
-vfloat32m8_t vfrsub(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f32mf2)))
-vfloat32mf2_t vfrsub(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f32mf2_m)))
-vfloat32mf2_t vfrsub(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f32m1)))
-vfloat32m1_t vfmul(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f32m1_m)))
-vfloat32m1_t vfmul(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f32m2)))
-vfloat32m2_t vfmul(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f32m2_m)))
-vfloat32m2_t vfmul(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f32m4)))
-vfloat32m4_t vfmul(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f32m4_m)))
-vfloat32m4_t vfmul(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f32m8)))
-vfloat32m8_t vfmul(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f32m8_m)))
-vfloat32m8_t vfmul(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f32mf2)))
-vfloat32mf2_t vfmul(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f32mf2_m)))
-vfloat32mf2_t vfmul(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f32m1)))
-vfloat32m1_t vfmul(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f32m1_m)))
-vfloat32m1_t vfmul(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f32m2)))
-vfloat32m2_t vfmul(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f32m2_m)))
-vfloat32m2_t vfmul(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f32m4)))
-vfloat32m4_t vfmul(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f32m4_m)))
-vfloat32m4_t vfmul(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f32m8)))
-vfloat32m8_t vfmul(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f32m8_m)))
-vfloat32m8_t vfmul(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f32mf2)))
-vfloat32mf2_t vfmul(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f32mf2_m)))
-vfloat32mf2_t vfmul(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f32m1)))
-vfloat32m1_t vfdiv(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f32m1_m)))
-vfloat32m1_t vfdiv(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f32m2)))
-vfloat32m2_t vfdiv(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f32m2_m)))
-vfloat32m2_t vfdiv(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f32m4)))
-vfloat32m4_t vfdiv(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f32m4_m)))
-vfloat32m4_t vfdiv(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f32m8)))
-vfloat32m8_t vfdiv(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f32m8_m)))
-vfloat32m8_t vfdiv(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f32mf2)))
-vfloat32mf2_t vfdiv(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f32mf2_m)))
-vfloat32mf2_t vfdiv(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f32m1)))
-vfloat32m1_t vfdiv(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f32m1_m)))
-vfloat32m1_t vfdiv(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f32m2)))
-vfloat32m2_t vfdiv(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f32m2_m)))
-vfloat32m2_t vfdiv(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f32m4)))
-vfloat32m4_t vfdiv(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f32m4_m)))
-vfloat32m4_t vfdiv(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f32m8)))
-vfloat32m8_t vfdiv(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f32m8_m)))
-vfloat32m8_t vfdiv(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f32mf2)))
-vfloat32mf2_t vfdiv(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f32mf2_m)))
-vfloat32mf2_t vfdiv(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f32m1)))
-vfloat32m1_t vfrdiv(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f32m1_m)))
-vfloat32m1_t vfrdiv(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f32m2)))
-vfloat32m2_t vfrdiv(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f32m2_m)))
-vfloat32m2_t vfrdiv(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f32m4)))
-vfloat32m4_t vfrdiv(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f32m4_m)))
-vfloat32m4_t vfrdiv(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f32m8)))
-vfloat32m8_t vfrdiv(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f32m8_m)))
-vfloat32m8_t vfrdiv(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f32mf2)))
-vfloat32mf2_t vfrdiv(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f32mf2_m)))
-vfloat32mf2_t vfrdiv(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f32m1)))
-vfloat32m1_t vfmacc(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f32m1_m)))
-vfloat32m1_t vfmacc(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f32m2)))
-vfloat32m2_t vfmacc(vfloat32m2_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f32m2_m)))
-vfloat32m2_t vfmacc(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f32m4)))
-vfloat32m4_t vfmacc(vfloat32m4_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f32m4_m)))
-vfloat32m4_t vfmacc(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f32m8)))
-vfloat32m8_t vfmacc(vfloat32m8_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f32m8_m)))
-vfloat32m8_t vfmacc(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f32mf2)))
-vfloat32mf2_t vfmacc(vfloat32mf2_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f32mf2_m)))
-vfloat32mf2_t vfmacc(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f32m1)))
-vfloat32m1_t vfmacc(vfloat32m1_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f32m1_m)))
-vfloat32m1_t vfmacc(vbool32_t op0, vfloat32m1_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f32m2)))
-vfloat32m2_t vfmacc(vfloat32m2_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f32m2_m)))
-vfloat32m2_t vfmacc(vbool16_t op0, vfloat32m2_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f32m4)))
-vfloat32m4_t vfmacc(vfloat32m4_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f32m4_m)))
-vfloat32m4_t vfmacc(vbool8_t op0, vfloat32m4_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f32m8)))
-vfloat32m8_t vfmacc(vfloat32m8_t op0, float op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f32m8_m)))
-vfloat32m8_t vfmacc(vbool4_t op0, vfloat32m8_t op1, float op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f32mf2)))
-vfloat32mf2_t vfmacc(vfloat32mf2_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f32mf2_m)))
-vfloat32mf2_t vfmacc(vbool64_t op0, vfloat32mf2_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f32m1)))
-vfloat32m1_t vfnmacc(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f32m1_m)))
-vfloat32m1_t vfnmacc(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f32m2)))
-vfloat32m2_t vfnmacc(vfloat32m2_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f32m2_m)))
-vfloat32m2_t vfnmacc(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f32m4)))
-vfloat32m4_t vfnmacc(vfloat32m4_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f32m4_m)))
-vfloat32m4_t vfnmacc(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f32m8)))
-vfloat32m8_t vfnmacc(vfloat32m8_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f32m8_m)))
-vfloat32m8_t vfnmacc(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f32mf2)))
-vfloat32mf2_t vfnmacc(vfloat32mf2_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f32mf2_m)))
-vfloat32mf2_t vfnmacc(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f32m1)))
-vfloat32m1_t vfnmacc(vfloat32m1_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f32m1_m)))
-vfloat32m1_t vfnmacc(vbool32_t op0, vfloat32m1_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f32m2)))
-vfloat32m2_t vfnmacc(vfloat32m2_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f32m2_m)))
-vfloat32m2_t vfnmacc(vbool16_t op0, vfloat32m2_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f32m4)))
-vfloat32m4_t vfnmacc(vfloat32m4_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f32m4_m)))
-vfloat32m4_t vfnmacc(vbool8_t op0, vfloat32m4_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f32m8)))
-vfloat32m8_t vfnmacc(vfloat32m8_t op0, float op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f32m8_m)))
-vfloat32m8_t vfnmacc(vbool4_t op0, vfloat32m8_t op1, float op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f32mf2)))
-vfloat32mf2_t vfnmacc(vfloat32mf2_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f32mf2_m)))
-vfloat32mf2_t vfnmacc(vbool64_t op0, vfloat32mf2_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f32m1)))
-vfloat32m1_t vfmsac(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f32m1_m)))
-vfloat32m1_t vfmsac(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f32m2)))
-vfloat32m2_t vfmsac(vfloat32m2_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f32m2_m)))
-vfloat32m2_t vfmsac(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f32m4)))
-vfloat32m4_t vfmsac(vfloat32m4_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f32m4_m)))
-vfloat32m4_t vfmsac(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f32m8)))
-vfloat32m8_t vfmsac(vfloat32m8_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f32m8_m)))
-vfloat32m8_t vfmsac(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f32mf2)))
-vfloat32mf2_t vfmsac(vfloat32mf2_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f32mf2_m)))
-vfloat32mf2_t vfmsac(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f32m1)))
-vfloat32m1_t vfmsac(vfloat32m1_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f32m1_m)))
-vfloat32m1_t vfmsac(vbool32_t op0, vfloat32m1_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f32m2)))
-vfloat32m2_t vfmsac(vfloat32m2_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f32m2_m)))
-vfloat32m2_t vfmsac(vbool16_t op0, vfloat32m2_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f32m4)))
-vfloat32m4_t vfmsac(vfloat32m4_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f32m4_m)))
-vfloat32m4_t vfmsac(vbool8_t op0, vfloat32m4_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f32m8)))
-vfloat32m8_t vfmsac(vfloat32m8_t op0, float op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f32m8_m)))
-vfloat32m8_t vfmsac(vbool4_t op0, vfloat32m8_t op1, float op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f32mf2)))
-vfloat32mf2_t vfmsac(vfloat32mf2_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f32mf2_m)))
-vfloat32mf2_t vfmsac(vbool64_t op0, vfloat32mf2_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f32m1)))
-vfloat32m1_t vfnmsac(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f32m1_m)))
-vfloat32m1_t vfnmsac(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f32m2)))
-vfloat32m2_t vfnmsac(vfloat32m2_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f32m2_m)))
-vfloat32m2_t vfnmsac(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f32m4)))
-vfloat32m4_t vfnmsac(vfloat32m4_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f32m4_m)))
-vfloat32m4_t vfnmsac(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f32m8)))
-vfloat32m8_t vfnmsac(vfloat32m8_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f32m8_m)))
-vfloat32m8_t vfnmsac(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f32mf2)))
-vfloat32mf2_t vfnmsac(vfloat32mf2_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f32mf2_m)))
-vfloat32mf2_t vfnmsac(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f32m1)))
-vfloat32m1_t vfnmsac(vfloat32m1_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f32m1_m)))
-vfloat32m1_t vfnmsac(vbool32_t op0, vfloat32m1_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f32m2)))
-vfloat32m2_t vfnmsac(vfloat32m2_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f32m2_m)))
-vfloat32m2_t vfnmsac(vbool16_t op0, vfloat32m2_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f32m4)))
-vfloat32m4_t vfnmsac(vfloat32m4_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f32m4_m)))
-vfloat32m4_t vfnmsac(vbool8_t op0, vfloat32m4_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f32m8)))
-vfloat32m8_t vfnmsac(vfloat32m8_t op0, float op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f32m8_m)))
-vfloat32m8_t vfnmsac(vbool4_t op0, vfloat32m8_t op1, float op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f32mf2)))
-vfloat32mf2_t vfnmsac(vfloat32mf2_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f32mf2_m)))
-vfloat32mf2_t vfnmsac(vbool64_t op0, vfloat32mf2_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f32m1)))
-vfloat32m1_t vfmadd(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f32m1_m)))
-vfloat32m1_t vfmadd(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f32m2)))
-vfloat32m2_t vfmadd(vfloat32m2_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f32m2_m)))
-vfloat32m2_t vfmadd(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f32m4)))
-vfloat32m4_t vfmadd(vfloat32m4_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f32m4_m)))
-vfloat32m4_t vfmadd(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f32m8)))
-vfloat32m8_t vfmadd(vfloat32m8_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f32m8_m)))
-vfloat32m8_t vfmadd(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f32mf2)))
-vfloat32mf2_t vfmadd(vfloat32mf2_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f32mf2_m)))
-vfloat32mf2_t vfmadd(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f32m1)))
-vfloat32m1_t vfmadd(vfloat32m1_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f32m1_m)))
-vfloat32m1_t vfmadd(vbool32_t op0, vfloat32m1_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f32m2)))
-vfloat32m2_t vfmadd(vfloat32m2_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f32m2_m)))
-vfloat32m2_t vfmadd(vbool16_t op0, vfloat32m2_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f32m4)))
-vfloat32m4_t vfmadd(vfloat32m4_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f32m4_m)))
-vfloat32m4_t vfmadd(vbool8_t op0, vfloat32m4_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f32m8)))
-vfloat32m8_t vfmadd(vfloat32m8_t op0, float op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f32m8_m)))
-vfloat32m8_t vfmadd(vbool4_t op0, vfloat32m8_t op1, float op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f32mf2)))
-vfloat32mf2_t vfmadd(vfloat32mf2_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f32mf2_m)))
-vfloat32mf2_t vfmadd(vbool64_t op0, vfloat32mf2_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f32m1)))
-vfloat32m1_t vfnmadd(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f32m1_m)))
-vfloat32m1_t vfnmadd(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f32m2)))
-vfloat32m2_t vfnmadd(vfloat32m2_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f32m2_m)))
-vfloat32m2_t vfnmadd(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f32m4)))
-vfloat32m4_t vfnmadd(vfloat32m4_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f32m4_m)))
-vfloat32m4_t vfnmadd(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f32m8)))
-vfloat32m8_t vfnmadd(vfloat32m8_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f32m8_m)))
-vfloat32m8_t vfnmadd(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f32mf2)))
-vfloat32mf2_t vfnmadd(vfloat32mf2_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f32mf2_m)))
-vfloat32mf2_t vfnmadd(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f32m1)))
-vfloat32m1_t vfnmadd(vfloat32m1_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f32m1_m)))
-vfloat32m1_t vfnmadd(vbool32_t op0, vfloat32m1_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f32m2)))
-vfloat32m2_t vfnmadd(vfloat32m2_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f32m2_m)))
-vfloat32m2_t vfnmadd(vbool16_t op0, vfloat32m2_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f32m4)))
-vfloat32m4_t vfnmadd(vfloat32m4_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f32m4_m)))
-vfloat32m4_t vfnmadd(vbool8_t op0, vfloat32m4_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f32m8)))
-vfloat32m8_t vfnmadd(vfloat32m8_t op0, float op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f32m8_m)))
-vfloat32m8_t vfnmadd(vbool4_t op0, vfloat32m8_t op1, float op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f32mf2)))
-vfloat32mf2_t vfnmadd(vfloat32mf2_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f32mf2_m)))
-vfloat32mf2_t vfnmadd(vbool64_t op0, vfloat32mf2_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f32m1)))
-vfloat32m1_t vfmsub(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f32m1_m)))
-vfloat32m1_t vfmsub(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f32m2)))
-vfloat32m2_t vfmsub(vfloat32m2_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f32m2_m)))
-vfloat32m2_t vfmsub(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f32m4)))
-vfloat32m4_t vfmsub(vfloat32m4_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f32m4_m)))
-vfloat32m4_t vfmsub(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f32m8)))
-vfloat32m8_t vfmsub(vfloat32m8_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f32m8_m)))
-vfloat32m8_t vfmsub(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f32mf2)))
-vfloat32mf2_t vfmsub(vfloat32mf2_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f32mf2_m)))
-vfloat32mf2_t vfmsub(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f32m1)))
-vfloat32m1_t vfmsub(vfloat32m1_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f32m1_m)))
-vfloat32m1_t vfmsub(vbool32_t op0, vfloat32m1_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f32m2)))
-vfloat32m2_t vfmsub(vfloat32m2_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f32m2_m)))
-vfloat32m2_t vfmsub(vbool16_t op0, vfloat32m2_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f32m4)))
-vfloat32m4_t vfmsub(vfloat32m4_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f32m4_m)))
-vfloat32m4_t vfmsub(vbool8_t op0, vfloat32m4_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f32m8)))
-vfloat32m8_t vfmsub(vfloat32m8_t op0, float op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f32m8_m)))
-vfloat32m8_t vfmsub(vbool4_t op0, vfloat32m8_t op1, float op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f32mf2)))
-vfloat32mf2_t vfmsub(vfloat32mf2_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f32mf2_m)))
-vfloat32mf2_t vfmsub(vbool64_t op0, vfloat32mf2_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f32m1)))
-vfloat32m1_t vfnmsub(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f32m1_m)))
-vfloat32m1_t vfnmsub(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f32m2)))
-vfloat32m2_t vfnmsub(vfloat32m2_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f32m2_m)))
-vfloat32m2_t vfnmsub(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f32m4)))
-vfloat32m4_t vfnmsub(vfloat32m4_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f32m4_m)))
-vfloat32m4_t vfnmsub(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f32m8)))
-vfloat32m8_t vfnmsub(vfloat32m8_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f32m8_m)))
-vfloat32m8_t vfnmsub(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f32mf2)))
-vfloat32mf2_t vfnmsub(vfloat32mf2_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f32mf2_m)))
-vfloat32mf2_t vfnmsub(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f32m1)))
-vfloat32m1_t vfnmsub(vfloat32m1_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f32m1_m)))
-vfloat32m1_t vfnmsub(vbool32_t op0, vfloat32m1_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f32m2)))
-vfloat32m2_t vfnmsub(vfloat32m2_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f32m2_m)))
-vfloat32m2_t vfnmsub(vbool16_t op0, vfloat32m2_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f32m4)))
-vfloat32m4_t vfnmsub(vfloat32m4_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f32m4_m)))
-vfloat32m4_t vfnmsub(vbool8_t op0, vfloat32m4_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f32m8)))
-vfloat32m8_t vfnmsub(vfloat32m8_t op0, float op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f32m8_m)))
-vfloat32m8_t vfnmsub(vbool4_t op0, vfloat32m8_t op1, float op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f32mf2)))
-vfloat32mf2_t vfnmsub(vfloat32mf2_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f32mf2_m)))
-vfloat32mf2_t vfnmsub(vbool64_t op0, vfloat32mf2_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f32m1)))
-vfloat32m1_t vfmin(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f32m1_m)))
-vfloat32m1_t vfmin(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f32m2)))
-vfloat32m2_t vfmin(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f32m2_m)))
-vfloat32m2_t vfmin(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f32m4)))
-vfloat32m4_t vfmin(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f32m4_m)))
-vfloat32m4_t vfmin(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f32m8)))
-vfloat32m8_t vfmin(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f32m8_m)))
-vfloat32m8_t vfmin(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f32mf2)))
-vfloat32mf2_t vfmin(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f32mf2_m)))
-vfloat32mf2_t vfmin(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f32m1)))
-vfloat32m1_t vfmin(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f32m1_m)))
-vfloat32m1_t vfmin(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f32m2)))
-vfloat32m2_t vfmin(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f32m2_m)))
-vfloat32m2_t vfmin(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f32m4)))
-vfloat32m4_t vfmin(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f32m4_m)))
-vfloat32m4_t vfmin(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f32m8)))
-vfloat32m8_t vfmin(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f32m8_m)))
-vfloat32m8_t vfmin(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f32mf2)))
-vfloat32mf2_t vfmin(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f32mf2_m)))
-vfloat32mf2_t vfmin(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f32m1)))
-vfloat32m1_t vfmax(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f32m1_m)))
-vfloat32m1_t vfmax(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f32m2)))
-vfloat32m2_t vfmax(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f32m2_m)))
-vfloat32m2_t vfmax(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f32m4)))
-vfloat32m4_t vfmax(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f32m4_m)))
-vfloat32m4_t vfmax(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f32m8)))
-vfloat32m8_t vfmax(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f32m8_m)))
-vfloat32m8_t vfmax(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f32mf2)))
-vfloat32mf2_t vfmax(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f32mf2_m)))
-vfloat32mf2_t vfmax(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f32m1)))
-vfloat32m1_t vfmax(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f32m1_m)))
-vfloat32m1_t vfmax(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f32m2)))
-vfloat32m2_t vfmax(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f32m2_m)))
-vfloat32m2_t vfmax(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f32m4)))
-vfloat32m4_t vfmax(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f32m4_m)))
-vfloat32m4_t vfmax(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f32m8)))
-vfloat32m8_t vfmax(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f32m8_m)))
-vfloat32m8_t vfmax(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f32mf2)))
-vfloat32mf2_t vfmax(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f32mf2_m)))
-vfloat32mf2_t vfmax(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f32m1)))
-vfloat32m1_t vfsgnj(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f32m1_m)))
-vfloat32m1_t vfsgnj(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f32m2)))
-vfloat32m2_t vfsgnj(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f32m2_m)))
-vfloat32m2_t vfsgnj(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f32m4)))
-vfloat32m4_t vfsgnj(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f32m4_m)))
-vfloat32m4_t vfsgnj(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f32m8)))
-vfloat32m8_t vfsgnj(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f32m8_m)))
-vfloat32m8_t vfsgnj(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f32mf2)))
-vfloat32mf2_t vfsgnj(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f32mf2_m)))
-vfloat32mf2_t vfsgnj(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f32m1)))
-vfloat32m1_t vfsgnj(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f32m1_m)))
-vfloat32m1_t vfsgnj(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f32m2)))
-vfloat32m2_t vfsgnj(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f32m2_m)))
-vfloat32m2_t vfsgnj(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f32m4)))
-vfloat32m4_t vfsgnj(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f32m4_m)))
-vfloat32m4_t vfsgnj(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f32m8)))
-vfloat32m8_t vfsgnj(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f32m8_m)))
-vfloat32m8_t vfsgnj(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f32mf2)))
-vfloat32mf2_t vfsgnj(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f32mf2_m)))
-vfloat32mf2_t vfsgnj(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f32m1)))
-vfloat32m1_t vfsgnjn(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f32m1_m)))
-vfloat32m1_t vfsgnjn(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f32m2)))
-vfloat32m2_t vfsgnjn(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f32m2_m)))
-vfloat32m2_t vfsgnjn(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f32m4)))
-vfloat32m4_t vfsgnjn(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f32m4_m)))
-vfloat32m4_t vfsgnjn(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f32m8)))
-vfloat32m8_t vfsgnjn(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f32m8_m)))
-vfloat32m8_t vfsgnjn(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f32mf2)))
-vfloat32mf2_t vfsgnjn(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f32mf2_m)))
-vfloat32mf2_t vfsgnjn(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f32m1)))
-vfloat32m1_t vfsgnjn(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f32m1_m)))
-vfloat32m1_t vfsgnjn(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f32m2)))
-vfloat32m2_t vfsgnjn(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f32m2_m)))
-vfloat32m2_t vfsgnjn(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f32m4)))
-vfloat32m4_t vfsgnjn(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f32m4_m)))
-vfloat32m4_t vfsgnjn(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f32m8)))
-vfloat32m8_t vfsgnjn(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f32m8_m)))
-vfloat32m8_t vfsgnjn(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f32mf2)))
-vfloat32mf2_t vfsgnjn(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f32mf2_m)))
-vfloat32mf2_t vfsgnjn(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f32m1)))
-vfloat32m1_t vfsgnjx(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f32m1_m)))
-vfloat32m1_t vfsgnjx(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f32m2)))
-vfloat32m2_t vfsgnjx(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f32m2_m)))
-vfloat32m2_t vfsgnjx(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f32m4)))
-vfloat32m4_t vfsgnjx(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f32m4_m)))
-vfloat32m4_t vfsgnjx(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f32m8)))
-vfloat32m8_t vfsgnjx(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f32m8_m)))
-vfloat32m8_t vfsgnjx(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f32mf2)))
-vfloat32mf2_t vfsgnjx(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f32mf2_m)))
-vfloat32mf2_t vfsgnjx(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f32m1)))
-vfloat32m1_t vfsgnjx(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f32m1_m)))
-vfloat32m1_t vfsgnjx(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f32m2)))
-vfloat32m2_t vfsgnjx(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f32m2_m)))
-vfloat32m2_t vfsgnjx(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f32m4)))
-vfloat32m4_t vfsgnjx(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f32m4_m)))
-vfloat32m4_t vfsgnjx(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f32m8)))
-vfloat32m8_t vfsgnjx(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f32m8_m)))
-vfloat32m8_t vfsgnjx(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f32mf2)))
-vfloat32mf2_t vfsgnjx(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f32mf2_m)))
-vfloat32mf2_t vfsgnjx(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f32m1)))
-vfloat32m1_t vfabs(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f32m1_m)))
-vfloat32m1_t vfabs(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f32m2)))
-vfloat32m2_t vfabs(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f32m2_m)))
-vfloat32m2_t vfabs(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f32m4)))
-vfloat32m4_t vfabs(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f32m4_m)))
-vfloat32m4_t vfabs(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f32m8)))
-vfloat32m8_t vfabs(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f32m8_m)))
-vfloat32m8_t vfabs(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f32mf2)))
-vfloat32mf2_t vfabs(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f32mf2_m)))
-vfloat32mf2_t vfabs(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f32m1_b32)))
-vbool32_t vmfeq(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f32m1_b32_m)))
-vbool32_t vmfeq(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f32m2_b16)))
-vbool16_t vmfeq(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f32m2_b16_m)))
-vbool16_t vmfeq(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f32m4_b8)))
-vbool8_t vmfeq(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f32m4_b8_m)))
-vbool8_t vmfeq(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f32m8_b4)))
-vbool4_t vmfeq(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f32m8_b4_m)))
-vbool4_t vmfeq(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f32mf2_b64)))
-vbool64_t vmfeq(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f32mf2_b64_m)))
-vbool64_t vmfeq(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f32m1_b32)))
-vbool32_t vmfeq(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f32m1_b32_m)))
-vbool32_t vmfeq(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f32m2_b16)))
-vbool16_t vmfeq(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f32m2_b16_m)))
-vbool16_t vmfeq(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f32m4_b8)))
-vbool8_t vmfeq(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f32m4_b8_m)))
-vbool8_t vmfeq(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f32m8_b4)))
-vbool4_t vmfeq(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f32m8_b4_m)))
-vbool4_t vmfeq(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f32mf2_b64)))
-vbool64_t vmfeq(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f32mf2_b64_m)))
-vbool64_t vmfeq(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f32m1_b32)))
-vbool32_t vmfne(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f32m1_b32_m)))
-vbool32_t vmfne(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f32m2_b16)))
-vbool16_t vmfne(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f32m2_b16_m)))
-vbool16_t vmfne(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f32m4_b8)))
-vbool8_t vmfne(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f32m4_b8_m)))
-vbool8_t vmfne(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f32m8_b4)))
-vbool4_t vmfne(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f32m8_b4_m)))
-vbool4_t vmfne(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f32mf2_b64)))
-vbool64_t vmfne(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f32mf2_b64_m)))
-vbool64_t vmfne(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f32m1_b32)))
-vbool32_t vmfne(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f32m1_b32_m)))
-vbool32_t vmfne(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f32m2_b16)))
-vbool16_t vmfne(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f32m2_b16_m)))
-vbool16_t vmfne(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f32m4_b8)))
-vbool8_t vmfne(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f32m4_b8_m)))
-vbool8_t vmfne(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f32m8_b4)))
-vbool4_t vmfne(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f32m8_b4_m)))
-vbool4_t vmfne(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f32mf2_b64)))
-vbool64_t vmfne(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f32mf2_b64_m)))
-vbool64_t vmfne(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f32m1_b32)))
-vbool32_t vmflt(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f32m1_b32_m)))
-vbool32_t vmflt(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f32m2_b16)))
-vbool16_t vmflt(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f32m2_b16_m)))
-vbool16_t vmflt(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f32m4_b8)))
-vbool8_t vmflt(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f32m4_b8_m)))
-vbool8_t vmflt(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f32m8_b4)))
-vbool4_t vmflt(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f32m8_b4_m)))
-vbool4_t vmflt(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f32mf2_b64)))
-vbool64_t vmflt(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f32mf2_b64_m)))
-vbool64_t vmflt(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f32m1_b32)))
-vbool32_t vmflt(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f32m1_b32_m)))
-vbool32_t vmflt(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f32m2_b16)))
-vbool16_t vmflt(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f32m2_b16_m)))
-vbool16_t vmflt(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f32m4_b8)))
-vbool8_t vmflt(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f32m4_b8_m)))
-vbool8_t vmflt(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f32m8_b4)))
-vbool4_t vmflt(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f32m8_b4_m)))
-vbool4_t vmflt(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f32mf2_b64)))
-vbool64_t vmflt(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f32mf2_b64_m)))
-vbool64_t vmflt(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f32m1_b32)))
-vbool32_t vmfle(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f32m1_b32_m)))
-vbool32_t vmfle(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f32m2_b16)))
-vbool16_t vmfle(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f32m2_b16_m)))
-vbool16_t vmfle(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f32m4_b8)))
-vbool8_t vmfle(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f32m4_b8_m)))
-vbool8_t vmfle(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f32m8_b4)))
-vbool4_t vmfle(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f32m8_b4_m)))
-vbool4_t vmfle(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f32mf2_b64)))
-vbool64_t vmfle(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f32mf2_b64_m)))
-vbool64_t vmfle(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f32m1_b32)))
-vbool32_t vmfle(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f32m1_b32_m)))
-vbool32_t vmfle(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f32m2_b16)))
-vbool16_t vmfle(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f32m2_b16_m)))
-vbool16_t vmfle(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f32m4_b8)))
-vbool8_t vmfle(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f32m4_b8_m)))
-vbool8_t vmfle(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f32m8_b4)))
-vbool4_t vmfle(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f32m8_b4_m)))
-vbool4_t vmfle(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f32mf2_b64)))
-vbool64_t vmfle(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f32mf2_b64_m)))
-vbool64_t vmfle(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f32m1_b32)))
-vbool32_t vmfgt(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f32m1_b32_m)))
-vbool32_t vmfgt(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f32m2_b16)))
-vbool16_t vmfgt(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f32m2_b16_m)))
-vbool16_t vmfgt(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f32m4_b8)))
-vbool8_t vmfgt(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f32m4_b8_m)))
-vbool8_t vmfgt(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f32m8_b4)))
-vbool4_t vmfgt(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f32m8_b4_m)))
-vbool4_t vmfgt(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f32mf2_b64)))
-vbool64_t vmfgt(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f32mf2_b64_m)))
-vbool64_t vmfgt(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f32m1_b32)))
-vbool32_t vmfgt(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f32m1_b32_m)))
-vbool32_t vmfgt(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f32m2_b16)))
-vbool16_t vmfgt(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f32m2_b16_m)))
-vbool16_t vmfgt(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f32m4_b8)))
-vbool8_t vmfgt(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f32m4_b8_m)))
-vbool8_t vmfgt(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f32m8_b4)))
-vbool4_t vmfgt(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f32m8_b4_m)))
-vbool4_t vmfgt(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f32mf2_b64)))
-vbool64_t vmfgt(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f32mf2_b64_m)))
-vbool64_t vmfgt(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f32m1_b32)))
-vbool32_t vmfge(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f32m1_b32_m)))
-vbool32_t vmfge(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f32m2_b16)))
-vbool16_t vmfge(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f32m2_b16_m)))
-vbool16_t vmfge(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f32m4_b8)))
-vbool8_t vmfge(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f32m4_b8_m)))
-vbool8_t vmfge(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f32m8_b4)))
-vbool4_t vmfge(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f32m8_b4_m)))
-vbool4_t vmfge(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f32mf2_b64)))
-vbool64_t vmfge(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f32mf2_b64_m)))
-vbool64_t vmfge(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f32m1_b32)))
-vbool32_t vmfge(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f32m1_b32_m)))
-vbool32_t vmfge(vbool32_t op0, vbool32_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f32m2_b16)))
-vbool16_t vmfge(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f32m2_b16_m)))
-vbool16_t vmfge(vbool16_t op0, vbool16_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f32m4_b8)))
-vbool8_t vmfge(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f32m4_b8_m)))
-vbool8_t vmfge(vbool8_t op0, vbool8_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f32m8_b4)))
-vbool4_t vmfge(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f32m8_b4_m)))
-vbool4_t vmfge(vbool4_t op0, vbool4_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f32mf2_b64)))
-vbool64_t vmfge(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f32mf2_b64_m)))
-vbool64_t vmfge(vbool64_t op0, vbool64_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f32m1)))
-vfloat32m1_t vmerge(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f32m2)))
-vfloat32m2_t vmerge(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f32m4)))
-vfloat32m4_t vmerge(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f32m8)))
-vfloat32m8_t vmerge(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f32mf2)))
-vfloat32mf2_t vmerge(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f32m1)))
-vfloat32m1_t vfmerge(vbool32_t op0, vfloat32m1_t op1, float op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f32m2)))
-vfloat32m2_t vfmerge(vbool16_t op0, vfloat32m2_t op1, float op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f32m4)))
-vfloat32m4_t vfmerge(vbool8_t op0, vfloat32m4_t op1, float op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f32m8)))
-vfloat32m8_t vfmerge(vbool4_t op0, vfloat32m8_t op1, float op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f32mf2)))
-vfloat32mf2_t vfmerge(vbool64_t op0, vfloat32mf2_t op1, float op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f32m1_f32m1)))
-vfloat32m1_t vfredmax(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f32m1_f32m1_m)))
-vfloat32m1_t vfredmax(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f32m2_f32m1)))
-vfloat32m1_t vfredmax(vfloat32m1_t op0, vfloat32m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f32m2_f32m1_m)))
-vfloat32m1_t vfredmax(vbool16_t op0, vfloat32m1_t op1, vfloat32m2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f32m4_f32m1)))
-vfloat32m1_t vfredmax(vfloat32m1_t op0, vfloat32m4_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f32m4_f32m1_m)))
-vfloat32m1_t vfredmax(vbool8_t op0, vfloat32m1_t op1, vfloat32m4_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f32m8_f32m1)))
-vfloat32m1_t vfredmax(vfloat32m1_t op0, vfloat32m8_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f32m8_f32m1_m)))
-vfloat32m1_t vfredmax(vbool4_t op0, vfloat32m1_t op1, vfloat32m8_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f32mf2_f32m1)))
-vfloat32m1_t vfredmax(vfloat32m1_t op0, vfloat32mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f32mf2_f32m1_m)))
-vfloat32m1_t vfredmax(vbool64_t op0, vfloat32m1_t op1, vfloat32mf2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f32m1_f32m1)))
-vfloat32m1_t vfredmin(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f32m1_f32m1_m)))
-vfloat32m1_t vfredmin(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f32m2_f32m1)))
-vfloat32m1_t vfredmin(vfloat32m1_t op0, vfloat32m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f32m2_f32m1_m)))
-vfloat32m1_t vfredmin(vbool16_t op0, vfloat32m1_t op1, vfloat32m2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f32m4_f32m1)))
-vfloat32m1_t vfredmin(vfloat32m1_t op0, vfloat32m4_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f32m4_f32m1_m)))
-vfloat32m1_t vfredmin(vbool8_t op0, vfloat32m1_t op1, vfloat32m4_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f32m8_f32m1)))
-vfloat32m1_t vfredmin(vfloat32m1_t op0, vfloat32m8_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f32m8_f32m1_m)))
-vfloat32m1_t vfredmin(vbool4_t op0, vfloat32m1_t op1, vfloat32m8_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f32mf2_f32m1)))
-vfloat32m1_t vfredmin(vfloat32m1_t op0, vfloat32mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f32mf2_f32m1_m)))
-vfloat32m1_t vfredmin(vbool64_t op0, vfloat32m1_t op1, vfloat32mf2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f32m1_f32m1)))
-vfloat32m1_t vfredsum(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f32m1_f32m1_m)))
-vfloat32m1_t vfredsum(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f32m2_f32m1)))
-vfloat32m1_t vfredsum(vfloat32m1_t op0, vfloat32m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f32m2_f32m1_m)))
-vfloat32m1_t vfredsum(vbool16_t op0, vfloat32m1_t op1, vfloat32m2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f32m4_f32m1)))
-vfloat32m1_t vfredsum(vfloat32m1_t op0, vfloat32m4_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f32m4_f32m1_m)))
-vfloat32m1_t vfredsum(vbool8_t op0, vfloat32m1_t op1, vfloat32m4_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f32m8_f32m1)))
-vfloat32m1_t vfredsum(vfloat32m1_t op0, vfloat32m8_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f32m8_f32m1_m)))
-vfloat32m1_t vfredsum(vbool4_t op0, vfloat32m1_t op1, vfloat32m8_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f32mf2_f32m1)))
-vfloat32m1_t vfredsum(vfloat32m1_t op0, vfloat32mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f32mf2_f32m1_m)))
-vfloat32m1_t vfredsum(vbool64_t op0, vfloat32m1_t op1, vfloat32mf2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f32m1_f32m1)))
-vfloat32m1_t vfredosum(vfloat32m1_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f32m1_f32m1_m)))
-vfloat32m1_t vfredosum(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f32m2_f32m1)))
-vfloat32m1_t vfredosum(vfloat32m1_t op0, vfloat32m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f32m2_f32m1_m)))
-vfloat32m1_t vfredosum(vbool16_t op0, vfloat32m1_t op1, vfloat32m2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f32m4_f32m1)))
-vfloat32m1_t vfredosum(vfloat32m1_t op0, vfloat32m4_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f32m4_f32m1_m)))
-vfloat32m1_t vfredosum(vbool8_t op0, vfloat32m1_t op1, vfloat32m4_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f32m8_f32m1)))
-vfloat32m1_t vfredosum(vfloat32m1_t op0, vfloat32m8_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f32m8_f32m1_m)))
-vfloat32m1_t vfredosum(vbool4_t op0, vfloat32m1_t op1, vfloat32m8_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f32mf2_f32m1)))
-vfloat32m1_t vfredosum(vfloat32m1_t op0, vfloat32mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f32mf2_f32m1_m)))
-vfloat32m1_t vfredosum(vbool64_t op0, vfloat32m1_t op1, vfloat32mf2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f32m1_f32)))
-float vfmv_f(vfloat32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f32m2_f32)))
-float vfmv_f(vfloat32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f32m4_f32)))
-float vfmv_f(vfloat32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f32m8_f32)))
-float vfmv_f(vfloat32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f32mf2_f32)))
-float vfmv_f(vfloat32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f32m1)))
-vfloat32m1_t vfmv_s(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f32m2)))
-vfloat32m2_t vfmv_s(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f32m4)))
-vfloat32m4_t vfmv_s(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f32m8)))
-vfloat32m8_t vfmv_s(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f32mf2)))
-vfloat32mf2_t vfmv_s(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f32m1)))
-vfloat32m1_t vslideup(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f32m1_m)))
-vfloat32m1_t vslideup(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f32m2)))
-vfloat32m2_t vslideup(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f32m2_m)))
-vfloat32m2_t vslideup(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f32m4)))
-vfloat32m4_t vslideup(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f32m4_m)))
-vfloat32m4_t vslideup(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f32m8)))
-vfloat32m8_t vslideup(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f32m8_m)))
-vfloat32m8_t vslideup(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f32mf2)))
-vfloat32mf2_t vslideup(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f32mf2_m)))
-vfloat32mf2_t vslideup(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f32m1)))
-vfloat32m1_t vslidedown(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f32m1_m)))
-vfloat32m1_t vslidedown(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f32m2)))
-vfloat32m2_t vslidedown(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f32m2_m)))
-vfloat32m2_t vslidedown(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f32m4)))
-vfloat32m4_t vslidedown(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f32m4_m)))
-vfloat32m4_t vslidedown(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f32m8)))
-vfloat32m8_t vslidedown(vfloat32m8_t op0, vfloat32m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f32m8_m)))
-vfloat32m8_t vslidedown(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f32mf2)))
-vfloat32mf2_t vslidedown(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f32mf2_m)))
-vfloat32mf2_t vslidedown(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f32m1)))
-vfloat32m1_t vfslide1up(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f32m1_m)))
-vfloat32m1_t vfslide1up(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f32m2)))
-vfloat32m2_t vfslide1up(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f32m2_m)))
-vfloat32m2_t vfslide1up(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f32m4)))
-vfloat32m4_t vfslide1up(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f32m4_m)))
-vfloat32m4_t vfslide1up(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f32m8)))
-vfloat32m8_t vfslide1up(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f32m8_m)))
-vfloat32m8_t vfslide1up(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f32mf2)))
-vfloat32mf2_t vfslide1up(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f32mf2_m)))
-vfloat32mf2_t vfslide1up(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f32m1)))
-vfloat32m1_t vfslide1down(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f32m1_m)))
-vfloat32m1_t vfslide1down(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f32m2)))
-vfloat32m2_t vfslide1down(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f32m2_m)))
-vfloat32m2_t vfslide1down(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f32m4)))
-vfloat32m4_t vfslide1down(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f32m4_m)))
-vfloat32m4_t vfslide1down(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f32m8)))
-vfloat32m8_t vfslide1down(vfloat32m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f32m8_m)))
-vfloat32m8_t vfslide1down(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f32mf2)))
-vfloat32mf2_t vfslide1down(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f32mf2_m)))
-vfloat32mf2_t vfslide1down(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f32m1)))
-vfloat32m1_t vrgather(vfloat32m1_t op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f32m1_m)))
-vfloat32m1_t vrgather(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f32m2)))
-vfloat32m2_t vrgather(vfloat32m2_t op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f32m2_m)))
-vfloat32m2_t vrgather(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f32m4)))
-vfloat32m4_t vrgather(vfloat32m4_t op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f32m4_m)))
-vfloat32m4_t vrgather(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f32m8)))
-vfloat32m8_t vrgather(vfloat32m8_t op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f32m8_m)))
-vfloat32m8_t vrgather(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f32mf2)))
-vfloat32mf2_t vrgather(vfloat32mf2_t op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f32mf2_m)))
-vfloat32mf2_t vrgather(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f32m1)))
-vfloat32m1_t vrgather(vfloat32m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f32m1_m)))
-vfloat32m1_t vrgather(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f32m2)))
-vfloat32m2_t vrgather(vfloat32m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f32m2_m)))
-vfloat32m2_t vrgather(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f32m4)))
-vfloat32m4_t vrgather(vfloat32m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f32m4_m)))
-vfloat32m4_t vrgather(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f32m8)))
-vfloat32m8_t vrgather(vfloat32m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f32m8_m)))
-vfloat32m8_t vrgather(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f32mf2)))
-vfloat32mf2_t vrgather(vfloat32mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f32mf2_m)))
-vfloat32mf2_t vrgather(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f32m1)))
-vfloat32m1_t vrgatherei16(vfloat32m1_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f32m1_m)))
-vfloat32m1_t vrgatherei16(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f32m2)))
-vfloat32m2_t vrgatherei16(vfloat32m2_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f32m2_m)))
-vfloat32m2_t vrgatherei16(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f32m4)))
-vfloat32m4_t vrgatherei16(vfloat32m4_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f32m4_m)))
-vfloat32m4_t vrgatherei16(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f32m8)))
-vfloat32m8_t vrgatherei16(vfloat32m8_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f32m8_m)))
-vfloat32m8_t vrgatherei16(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f32mf2)))
-vfloat32mf2_t vrgatherei16(vfloat32mf2_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f32mf2_m)))
-vfloat32mf2_t vrgatherei16(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f32m1)))
-vfloat32m1_t vcompress(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f32m2)))
-vfloat32m2_t vcompress(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f32m4)))
-vfloat32m4_t vcompress(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f32m8)))
-vfloat32m8_t vcompress(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f32mf2)))
-vfloat32mf2_t vcompress(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f32m2_f32m1)))
-vfloat32m1_t vget_f32m1(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f32m4_f32m1)))
-vfloat32m1_t vget_f32m1(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f32m8_f32m1)))
-vfloat32m1_t vget_f32m1(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f32m4_f32m2)))
-vfloat32m2_t vget_f32m2(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f32m8_f32m2)))
-vfloat32m2_t vget_f32m2(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f32m8_f32m4)))
-vfloat32m4_t vget_f32m4(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f32m1_f32m2)))
-vfloat32m2_t vset(vfloat32m2_t op0, size_t op1, vfloat32m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f32m1_f32m4)))
-vfloat32m4_t vset(vfloat32m4_t op0, size_t op1, vfloat32m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f32m2_f32m4)))
-vfloat32m4_t vset(vfloat32m4_t op0, size_t op1, vfloat32m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f32m1)))
-void vsuxei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f32m1_m)))
-void vsuxei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f32m2)))
-void vsuxei8(float * op0, vuint8mf2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f32m2_m)))
-void vsuxei8(vbool16_t op0, float * op1, vuint8mf2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f32m4)))
-void vsuxei8(float * op0, vuint8m1_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f32m4_m)))
-void vsuxei8(vbool8_t op0, float * op1, vuint8m1_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f32m8)))
-void vsuxei8(float * op0, vuint8m2_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f32m8_m)))
-void vsuxei8(vbool4_t op0, float * op1, vuint8m2_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f32mf2)))
-void vsuxei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f32mf2_m)))
-void vsuxei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f32m1_f32m8)))
-vfloat32m8_t vset(vfloat32m8_t op0, size_t op1, vfloat32m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f32m2_f32m8)))
-vfloat32m8_t vset(vfloat32m8_t op0, size_t op1, vfloat32m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f32m4_f32m8)))
-vfloat32m8_t vset(vfloat32m8_t op0, size_t op1, vfloat32m4_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f32m1)))
-void vsuxei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f32m1_m)))
-void vsuxei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f32m2)))
-void vsuxei16(float * op0, vuint16m1_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f32m2_m)))
-void vsuxei16(vbool16_t op0, float * op1, vuint16m1_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f32m4)))
-void vsuxei16(float * op0, vuint16m2_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f32m4_m)))
-void vsuxei16(vbool8_t op0, float * op1, vuint16m2_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f32m8)))
-void vsuxei16(float * op0, vuint16m4_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f32m8_m)))
-void vsuxei16(vbool4_t op0, float * op1, vuint16m4_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f32mf2)))
-void vsuxei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f32mf2_m)))
-void vsuxei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f32m1)))
-void vsuxei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f32m1_m)))
-void vsuxei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f32m2)))
-void vsuxei32(float * op0, vuint32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f32m2_m)))
-void vsuxei32(vbool16_t op0, float * op1, vuint32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f32m4)))
-void vsuxei32(float * op0, vuint32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f32m4_m)))
-void vsuxei32(vbool8_t op0, float * op1, vuint32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f32m8)))
-void vsuxei32(float * op0, vuint32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f32m8_m)))
-void vsuxei32(vbool4_t op0, float * op1, vuint32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f32mf2)))
-void vsuxei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f32mf2_m)))
-void vsuxei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f32m1)))
-void vsuxei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f32m1_m)))
-void vsuxei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f32m2)))
-void vsuxei64(float * op0, vuint64m4_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f32m2_m)))
-void vsuxei64(vbool16_t op0, float * op1, vuint64m4_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f32m4)))
-void vsuxei64(float * op0, vuint64m8_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f32m4_m)))
-void vsuxei64(vbool8_t op0, float * op1, vuint64m8_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f32mf2)))
-void vsuxei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f32mf2_m)))
-void vsuxei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f32m1)))
-void vsoxei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f32m1_m)))
-void vsoxei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f32m2)))
-void vsoxei8(float * op0, vuint8mf2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f32m2_m)))
-void vsoxei8(vbool16_t op0, float * op1, vuint8mf2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f32m4)))
-void vsoxei8(float * op0, vuint8m1_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f32m4_m)))
-void vsoxei8(vbool8_t op0, float * op1, vuint8m1_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f32m8)))
-void vsoxei8(float * op0, vuint8m2_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f32m8_m)))
-void vsoxei8(vbool4_t op0, float * op1, vuint8m2_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f32mf2)))
-void vsoxei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f32mf2_m)))
-void vsoxei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f32m1)))
-void vsoxei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f32m1_m)))
-void vsoxei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f32m2)))
-void vsoxei16(float * op0, vuint16m1_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f32m2_m)))
-void vsoxei16(vbool16_t op0, float * op1, vuint16m1_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f32m4)))
-void vsoxei16(float * op0, vuint16m2_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f32m4_m)))
-void vsoxei16(vbool8_t op0, float * op1, vuint16m2_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f32m8)))
-void vsoxei16(float * op0, vuint16m4_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f32m8_m)))
-void vsoxei16(vbool4_t op0, float * op1, vuint16m4_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f32mf2)))
-void vsoxei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f32mf2_m)))
-void vsoxei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f32m1)))
-void vsoxei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f32m1_m)))
-void vsoxei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f32m2)))
-void vsoxei32(float * op0, vuint32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f32m2_m)))
-void vsoxei32(vbool16_t op0, float * op1, vuint32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f32m4)))
-void vsoxei32(float * op0, vuint32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f32m4_m)))
-void vsoxei32(vbool8_t op0, float * op1, vuint32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f32m8)))
-void vsoxei32(float * op0, vuint32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f32m8_m)))
-void vsoxei32(vbool4_t op0, float * op1, vuint32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f32mf2)))
-void vsoxei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f32mf2_m)))
-void vsoxei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f32m1)))
-void vsoxei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f32m1_m)))
-void vsoxei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f32m2)))
-void vsoxei64(float * op0, vuint64m4_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f32m2_m)))
-void vsoxei64(vbool16_t op0, float * op1, vuint64m4_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f32m4)))
-void vsoxei64(float * op0, vuint64m8_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f32m4_m)))
-void vsoxei64(vbool8_t op0, float * op1, vuint64m8_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f32mf2)))
-void vsoxei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f32mf2_m)))
-void vsoxei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_f32m1_m)))
-vfloat32m1_t vle32ff(vbool32_t op0, vfloat32m1_t op1, const float * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_f32m2_m)))
-vfloat32m2_t vle32ff(vbool16_t op0, vfloat32m2_t op1, const float * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_f32m4_m)))
-vfloat32m4_t vle32ff(vbool8_t op0, vfloat32m4_t op1, const float * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_f32m8_m)))
-vfloat32m8_t vle32ff(vbool4_t op0, vfloat32m8_t op1, const float * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32ff_v_f32mf2_m)))
-vfloat32mf2_t vle32ff(vbool64_t op0, vfloat32mf2_t op1, const float * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f32m1)))
-vfloat32m1_t vfneg(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f32m1_m)))
-vfloat32m1_t vfneg(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f32m2)))
-vfloat32m2_t vfneg(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f32m2_m)))
-vfloat32m2_t vfneg(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f32m4)))
-vfloat32m4_t vfneg(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f32m4_m)))
-vfloat32m4_t vfneg(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f32m8)))
-vfloat32m8_t vfneg(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f32m8_m)))
-vfloat32m8_t vfneg(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f32mf2)))
-vfloat32mf2_t vfneg(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f32mf2_m)))
-vfloat32mf2_t vfneg(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_f32m1_m)))
-vfloat32m1_t vle32(vbool32_t op0, vfloat32m1_t op1, const float * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_f32m2_m)))
-vfloat32m2_t vle32(vbool16_t op0, vfloat32m2_t op1, const float * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_f32m4_m)))
-vfloat32m4_t vle32(vbool8_t op0, vfloat32m4_t op1, const float * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_f32m8_m)))
-vfloat32m8_t vle32(vbool4_t op0, vfloat32m8_t op1, const float * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle32_v_f32mf2_m)))
-vfloat32mf2_t vle32(vbool64_t op0, vfloat32mf2_t op1, const float * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_f32m1)))
-void vse32(float * op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_f32m1_m)))
-void vse32(vbool32_t op0, float * op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_f32m2)))
-void vse32(float * op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_f32m2_m)))
-void vse32(vbool16_t op0, float * op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_f32m4)))
-void vse32(float * op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_f32m4_m)))
-void vse32(vbool8_t op0, float * op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_f32m8)))
-void vse32(float * op0, vfloat32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_f32m8_m)))
-void vse32(vbool4_t op0, float * op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_f32mf2)))
-void vse32(float * op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse32_v_f32mf2_m)))
-void vse32(vbool64_t op0, float * op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_f32m1_m)))
-vfloat32m1_t vlse32(vbool32_t op0, vfloat32m1_t op1, const float * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_f32m2_m)))
-vfloat32m2_t vlse32(vbool16_t op0, vfloat32m2_t op1, const float * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_f32m4_m)))
-vfloat32m4_t vlse32(vbool8_t op0, vfloat32m4_t op1, const float * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_f32m8_m)))
-vfloat32m8_t vlse32(vbool4_t op0, vfloat32m8_t op1, const float * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse32_v_f32mf2_m)))
-vfloat32mf2_t vlse32(vbool64_t op0, vfloat32mf2_t op1, const float * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u32m1)))
-vuint32m1_t vfclass(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u32m1_m)))
-vuint32m1_t vfclass(vbool32_t op0, vuint32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u32m2)))
-vuint32m2_t vfclass(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u32m2_m)))
-vuint32m2_t vfclass(vbool16_t op0, vuint32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u32m4)))
-vuint32m4_t vfclass(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u32m4_m)))
-vuint32m4_t vfclass(vbool8_t op0, vuint32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u32m8)))
-vuint32m8_t vfclass(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u32m8_m)))
-vuint32m8_t vfclass(vbool4_t op0, vuint32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u32mf2)))
-vuint32mf2_t vfclass(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u32mf2_m)))
-vuint32mf2_t vfclass(vbool64_t op0, vuint32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f32m1)))
-vfloat32m1_t vfcvt_f(vint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f32m1_m)))
-vfloat32m1_t vfcvt_f(vbool32_t op0, vfloat32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f32m2)))
-vfloat32m2_t vfcvt_f(vint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f32m2_m)))
-vfloat32m2_t vfcvt_f(vbool16_t op0, vfloat32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f32m4)))
-vfloat32m4_t vfcvt_f(vint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f32m4_m)))
-vfloat32m4_t vfcvt_f(vbool8_t op0, vfloat32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f32m8)))
-vfloat32m8_t vfcvt_f(vint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f32m8_m)))
-vfloat32m8_t vfcvt_f(vbool4_t op0, vfloat32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f32mf2)))
-vfloat32mf2_t vfcvt_f(vint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f32mf2_m)))
-vfloat32mf2_t vfcvt_f(vbool64_t op0, vfloat32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f32m1)))
-vfloat32m1_t vfcvt_f(vuint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f32m1_m)))
-vfloat32m1_t vfcvt_f(vbool32_t op0, vfloat32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f32m2)))
-vfloat32m2_t vfcvt_f(vuint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f32m2_m)))
-vfloat32m2_t vfcvt_f(vbool16_t op0, vfloat32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f32m4)))
-vfloat32m4_t vfcvt_f(vuint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f32m4_m)))
-vfloat32m4_t vfcvt_f(vbool8_t op0, vfloat32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f32m8)))
-vfloat32m8_t vfcvt_f(vuint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f32m8_m)))
-vfloat32m8_t vfcvt_f(vbool4_t op0, vfloat32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f32mf2)))
-vfloat32mf2_t vfcvt_f(vuint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f32mf2_m)))
-vfloat32mf2_t vfcvt_f(vbool64_t op0, vfloat32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i32m1)))
-vint32m1_t vfcvt_rtz_x(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i32m1_m)))
-vint32m1_t vfcvt_rtz_x(vbool32_t op0, vint32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i32m2)))
-vint32m2_t vfcvt_rtz_x(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i32m2_m)))
-vint32m2_t vfcvt_rtz_x(vbool16_t op0, vint32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i32m4)))
-vint32m4_t vfcvt_rtz_x(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i32m4_m)))
-vint32m4_t vfcvt_rtz_x(vbool8_t op0, vint32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i32m8)))
-vint32m8_t vfcvt_rtz_x(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i32m8_m)))
-vint32m8_t vfcvt_rtz_x(vbool4_t op0, vint32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i32mf2)))
-vint32mf2_t vfcvt_rtz_x(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i32mf2_m)))
-vint32mf2_t vfcvt_rtz_x(vbool64_t op0, vint32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u32m1)))
-vuint32m1_t vfcvt_rtz_xu(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u32m1_m)))
-vuint32m1_t vfcvt_rtz_xu(vbool32_t op0, vuint32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u32m2)))
-vuint32m2_t vfcvt_rtz_xu(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u32m2_m)))
-vuint32m2_t vfcvt_rtz_xu(vbool16_t op0, vuint32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u32m4)))
-vuint32m4_t vfcvt_rtz_xu(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u32m4_m)))
-vuint32m4_t vfcvt_rtz_xu(vbool8_t op0, vuint32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u32m8)))
-vuint32m8_t vfcvt_rtz_xu(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u32m8_m)))
-vuint32m8_t vfcvt_rtz_xu(vbool4_t op0, vuint32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u32mf2)))
-vuint32mf2_t vfcvt_rtz_xu(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u32mf2_m)))
-vuint32mf2_t vfcvt_rtz_xu(vbool64_t op0, vuint32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i32m1)))
-vint32m1_t vfcvt_x(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i32m1_m)))
-vint32m1_t vfcvt_x(vbool32_t op0, vint32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i32m2)))
-vint32m2_t vfcvt_x(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i32m2_m)))
-vint32m2_t vfcvt_x(vbool16_t op0, vint32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i32m4)))
-vint32m4_t vfcvt_x(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i32m4_m)))
-vint32m4_t vfcvt_x(vbool8_t op0, vint32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i32m8)))
-vint32m8_t vfcvt_x(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i32m8_m)))
-vint32m8_t vfcvt_x(vbool4_t op0, vint32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i32mf2)))
-vint32mf2_t vfcvt_x(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i32mf2_m)))
-vint32mf2_t vfcvt_x(vbool64_t op0, vint32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u32m1)))
-vuint32m1_t vfcvt_xu(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u32m1_m)))
-vuint32m1_t vfcvt_xu(vbool32_t op0, vuint32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u32m2)))
-vuint32m2_t vfcvt_xu(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u32m2_m)))
-vuint32m2_t vfcvt_xu(vbool16_t op0, vuint32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u32m4)))
-vuint32m4_t vfcvt_xu(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u32m4_m)))
-vuint32m4_t vfcvt_xu(vbool8_t op0, vuint32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u32m8)))
-vuint32m8_t vfcvt_xu(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u32m8_m)))
-vuint32m8_t vfcvt_xu(vbool4_t op0, vuint32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u32mf2)))
-vuint32mf2_t vfcvt_xu(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u32mf2_m)))
-vuint32mf2_t vfcvt_xu(vbool64_t op0, vuint32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f32mf2)))
-vfloat32mf2_t vfncvt_f(vint64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f32mf2_m)))
-vfloat32mf2_t vfncvt_f(vbool64_t op0, vfloat32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f32m1)))
-vfloat32m1_t vfncvt_f(vint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f32m1_m)))
-vfloat32m1_t vfncvt_f(vbool32_t op0, vfloat32m1_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f32m2)))
-vfloat32m2_t vfncvt_f(vint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f32m2_m)))
-vfloat32m2_t vfncvt_f(vbool16_t op0, vfloat32m2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f32m4)))
-vfloat32m4_t vfncvt_f(vint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f32m4_m)))
-vfloat32m4_t vfncvt_f(vbool8_t op0, vfloat32m4_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f32mf2)))
-vfloat32mf2_t vfncvt_f(vuint64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f32mf2_m)))
-vfloat32mf2_t vfncvt_f(vbool64_t op0, vfloat32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f32m1)))
-vfloat32m1_t vfncvt_f(vuint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f32m1_m)))
-vfloat32m1_t vfncvt_f(vbool32_t op0, vfloat32m1_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f32m2)))
-vfloat32m2_t vfncvt_f(vuint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f32m2_m)))
-vfloat32m2_t vfncvt_f(vbool16_t op0, vfloat32m2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f32m4)))
-vfloat32m4_t vfncvt_f(vuint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f32m4_m)))
-vfloat32m4_t vfncvt_f(vbool8_t op0, vfloat32m4_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i16mf4)))
-vint16mf4_t vfncvt_rtz_x(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i16mf4_m)))
-vint16mf4_t vfncvt_rtz_x(vbool64_t op0, vint16mf4_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i16mf2)))
-vint16mf2_t vfncvt_rtz_x(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i16mf2_m)))
-vint16mf2_t vfncvt_rtz_x(vbool32_t op0, vint16mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i16m1)))
-vint16m1_t vfncvt_rtz_x(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i16m1_m)))
-vint16m1_t vfncvt_rtz_x(vbool16_t op0, vint16m1_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i16m2)))
-vint16m2_t vfncvt_rtz_x(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i16m2_m)))
-vint16m2_t vfncvt_rtz_x(vbool8_t op0, vint16m2_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i16m4)))
-vint16m4_t vfncvt_rtz_x(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i16m4_m)))
-vint16m4_t vfncvt_rtz_x(vbool4_t op0, vint16m4_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u16mf4)))
-vuint16mf4_t vfncvt_rtz_xu(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u16mf4_m)))
-vuint16mf4_t vfncvt_rtz_xu(vbool64_t op0, vuint16mf4_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u16mf2)))
-vuint16mf2_t vfncvt_rtz_xu(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u16mf2_m)))
-vuint16mf2_t vfncvt_rtz_xu(vbool32_t op0, vuint16mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u16m1)))
-vuint16m1_t vfncvt_rtz_xu(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u16m1_m)))
-vuint16m1_t vfncvt_rtz_xu(vbool16_t op0, vuint16m1_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u16m2)))
-vuint16m2_t vfncvt_rtz_xu(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u16m2_m)))
-vuint16m2_t vfncvt_rtz_xu(vbool8_t op0, vuint16m2_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u16m4)))
-vuint16m4_t vfncvt_rtz_xu(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u16m4_m)))
-vuint16m4_t vfncvt_rtz_xu(vbool4_t op0, vuint16m4_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i16mf4)))
-vint16mf4_t vfncvt_x(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i16mf4_m)))
-vint16mf4_t vfncvt_x(vbool64_t op0, vint16mf4_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i16mf2)))
-vint16mf2_t vfncvt_x(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i16mf2_m)))
-vint16mf2_t vfncvt_x(vbool32_t op0, vint16mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i16m1)))
-vint16m1_t vfncvt_x(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i16m1_m)))
-vint16m1_t vfncvt_x(vbool16_t op0, vint16m1_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i16m2)))
-vint16m2_t vfncvt_x(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i16m2_m)))
-vint16m2_t vfncvt_x(vbool8_t op0, vint16m2_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i16m4)))
-vint16m4_t vfncvt_x(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i16m4_m)))
-vint16m4_t vfncvt_x(vbool4_t op0, vint16m4_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u16mf4)))
-vuint16mf4_t vfncvt_xu(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u16mf4_m)))
-vuint16mf4_t vfncvt_xu(vbool64_t op0, vuint16mf4_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u16mf2)))
-vuint16mf2_t vfncvt_xu(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u16mf2_m)))
-vuint16mf2_t vfncvt_xu(vbool32_t op0, vuint16mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u16m1)))
-vuint16m1_t vfncvt_xu(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u16m1_m)))
-vuint16m1_t vfncvt_xu(vbool16_t op0, vuint16m1_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u16m2)))
-vuint16m2_t vfncvt_xu(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u16m2_m)))
-vuint16m2_t vfncvt_xu(vbool8_t op0, vuint16m2_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u16m4)))
-vuint16m4_t vfncvt_xu(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u16m4_m)))
-vuint16m4_t vfncvt_xu(vbool4_t op0, vuint16m4_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f32m1)))
-vfloat32m1_t vfrec7(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f32m1_m)))
-vfloat32m1_t vfrec7(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f32m2)))
-vfloat32m2_t vfrec7(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f32m2_m)))
-vfloat32m2_t vfrec7(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f32m4)))
-vfloat32m4_t vfrec7(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f32m4_m)))
-vfloat32m4_t vfrec7(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f32m8)))
-vfloat32m8_t vfrec7(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f32m8_m)))
-vfloat32m8_t vfrec7(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f32mf2)))
-vfloat32mf2_t vfrec7(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f32mf2_m)))
-vfloat32mf2_t vfrec7(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f32m1)))
-vfloat32m1_t vfrsqrt7(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f32m1_m)))
-vfloat32m1_t vfrsqrt7(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f32m2)))
-vfloat32m2_t vfrsqrt7(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f32m2_m)))
-vfloat32m2_t vfrsqrt7(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f32m4)))
-vfloat32m4_t vfrsqrt7(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f32m4_m)))
-vfloat32m4_t vfrsqrt7(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f32m8)))
-vfloat32m8_t vfrsqrt7(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f32m8_m)))
-vfloat32m8_t vfrsqrt7(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f32mf2)))
-vfloat32mf2_t vfrsqrt7(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f32mf2_m)))
-vfloat32mf2_t vfrsqrt7(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f32m1)))
-vfloat32m1_t vfsqrt(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f32m1_m)))
-vfloat32m1_t vfsqrt(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f32m2)))
-vfloat32m2_t vfsqrt(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f32m2_m)))
-vfloat32m2_t vfsqrt(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f32m4)))
-vfloat32m4_t vfsqrt(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f32m4_m)))
-vfloat32m4_t vfsqrt(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f32m8)))
-vfloat32m8_t vfsqrt(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f32m8_m)))
-vfloat32m8_t vfsqrt(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f32mf2)))
-vfloat32mf2_t vfsqrt(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f32mf2_m)))
-vfloat32mf2_t vfsqrt(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f32mf2)))
-vfloat32mf2_t vfwcvt_f(vint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f32mf2_m)))
-vfloat32mf2_t vfwcvt_f(vbool64_t op0, vfloat32mf2_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f32m1)))
-vfloat32m1_t vfwcvt_f(vint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f32m1_m)))
-vfloat32m1_t vfwcvt_f(vbool32_t op0, vfloat32m1_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f32m2)))
-vfloat32m2_t vfwcvt_f(vint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f32m2_m)))
-vfloat32m2_t vfwcvt_f(vbool16_t op0, vfloat32m2_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f32m4)))
-vfloat32m4_t vfwcvt_f(vint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f32m4_m)))
-vfloat32m4_t vfwcvt_f(vbool8_t op0, vfloat32m4_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f32m8)))
-vfloat32m8_t vfwcvt_f(vint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f32m8_m)))
-vfloat32m8_t vfwcvt_f(vbool4_t op0, vfloat32m8_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f32mf2)))
-vfloat32mf2_t vfwcvt_f(vuint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f32mf2_m)))
-vfloat32mf2_t vfwcvt_f(vbool64_t op0, vfloat32mf2_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f32m1)))
-vfloat32m1_t vfwcvt_f(vuint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f32m1_m)))
-vfloat32m1_t vfwcvt_f(vbool32_t op0, vfloat32m1_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f32m2)))
-vfloat32m2_t vfwcvt_f(vuint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f32m2_m)))
-vfloat32m2_t vfwcvt_f(vbool16_t op0, vfloat32m2_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f32m4)))
-vfloat32m4_t vfwcvt_f(vuint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f32m4_m)))
-vfloat32m4_t vfwcvt_f(vbool8_t op0, vfloat32m4_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f32m8)))
-vfloat32m8_t vfwcvt_f(vuint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f32m8_m)))
-vfloat32m8_t vfwcvt_f(vbool4_t op0, vfloat32m8_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i64m1)))
-vint64m1_t vfwcvt_rtz_x(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i64m1_m)))
-vint64m1_t vfwcvt_rtz_x(vbool64_t op0, vint64m1_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i64m2)))
-vint64m2_t vfwcvt_rtz_x(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i64m2_m)))
-vint64m2_t vfwcvt_rtz_x(vbool32_t op0, vint64m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i64m4)))
-vint64m4_t vfwcvt_rtz_x(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i64m4_m)))
-vint64m4_t vfwcvt_rtz_x(vbool16_t op0, vint64m4_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i64m8)))
-vint64m8_t vfwcvt_rtz_x(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i64m8_m)))
-vint64m8_t vfwcvt_rtz_x(vbool8_t op0, vint64m8_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m1)))
-vuint64m1_t vfwcvt_rtz_xu(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m1_m)))
-vuint64m1_t vfwcvt_rtz_xu(vbool64_t op0, vuint64m1_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m2)))
-vuint64m2_t vfwcvt_rtz_xu(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m2_m)))
-vuint64m2_t vfwcvt_rtz_xu(vbool32_t op0, vuint64m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m4)))
-vuint64m4_t vfwcvt_rtz_xu(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m4_m)))
-vuint64m4_t vfwcvt_rtz_xu(vbool16_t op0, vuint64m4_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m8)))
-vuint64m8_t vfwcvt_rtz_xu(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u64m8_m)))
-vuint64m8_t vfwcvt_rtz_xu(vbool8_t op0, vuint64m8_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i64m1)))
-vint64m1_t vfwcvt_x(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i64m1_m)))
-vint64m1_t vfwcvt_x(vbool64_t op0, vint64m1_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i64m2)))
-vint64m2_t vfwcvt_x(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i64m2_m)))
-vint64m2_t vfwcvt_x(vbool32_t op0, vint64m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i64m4)))
-vint64m4_t vfwcvt_x(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i64m4_m)))
-vint64m4_t vfwcvt_x(vbool16_t op0, vint64m4_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i64m8)))
-vint64m8_t vfwcvt_x(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i64m8_m)))
-vint64m8_t vfwcvt_x(vbool8_t op0, vint64m8_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u64m1)))
-vuint64m1_t vfwcvt_xu(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u64m1_m)))
-vuint64m1_t vfwcvt_xu(vbool64_t op0, vuint64m1_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u64m2)))
-vuint64m2_t vfwcvt_xu(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u64m2_m)))
-vuint64m2_t vfwcvt_xu(vbool32_t op0, vuint64m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u64m4)))
-vuint64m4_t vfwcvt_xu(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u64m4_m)))
-vuint64m4_t vfwcvt_xu(vbool16_t op0, vuint64m4_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u64m8)))
-vuint64m8_t vfwcvt_xu(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u64m8_m)))
-vuint64m8_t vfwcvt_xu(vbool8_t op0, vuint64m8_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f32mf2_f32m1)))
-vfloat32m1_t vlmul_ext_f32m1(vfloat32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f32m1_f32m2)))
-vfloat32m2_t vlmul_ext_f32m2(vfloat32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f32mf2_f32m2)))
-vfloat32m2_t vlmul_ext_f32m2(vfloat32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f32m1_f32m4)))
-vfloat32m4_t vlmul_ext_f32m4(vfloat32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f32m2_f32m4)))
-vfloat32m4_t vlmul_ext_f32m4(vfloat32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f32mf2_f32m4)))
-vfloat32m4_t vlmul_ext_f32m4(vfloat32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f32m1_f32m8)))
-vfloat32m8_t vlmul_ext_f32m8(vfloat32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f32m2_f32m8)))
-vfloat32m8_t vlmul_ext_f32m8(vfloat32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f32m4_f32m8)))
-vfloat32m8_t vlmul_ext_f32m8(vfloat32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f32mf2_f32m8)))
-vfloat32m8_t vlmul_ext_f32m8(vfloat32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f32m1_f32mf2)))
-vfloat32mf2_t vlmul_trunc_f32mf2(vfloat32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f32m2_f32mf2)))
-vfloat32mf2_t vlmul_trunc_f32mf2(vfloat32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f32m4_f32mf2)))
-vfloat32mf2_t vlmul_trunc_f32mf2(vfloat32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f32m8_f32mf2)))
-vfloat32mf2_t vlmul_trunc_f32mf2(vfloat32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f32m2_f32m1)))
-vfloat32m1_t vlmul_trunc_f32m1(vfloat32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f32m4_f32m1)))
-vfloat32m1_t vlmul_trunc_f32m1(vfloat32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f32m8_f32m1)))
-vfloat32m1_t vlmul_trunc_f32m1(vfloat32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f32m4_f32m2)))
-vfloat32m2_t vlmul_trunc_f32m2(vfloat32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f32m8_f32m2)))
-vfloat32m2_t vlmul_trunc_f32m2(vfloat32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f32m8_f32m4)))
-vfloat32m4_t vlmul_trunc_f32m4(vfloat32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m1_f32m1)))
-vfloat32m1_t vreinterpret_f32m1(vint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m2_f32m2)))
-vfloat32m2_t vreinterpret_f32m2(vint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m4_f32m4)))
-vfloat32m4_t vreinterpret_f32m4(vint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32m8_f32m8)))
-vfloat32m8_t vreinterpret_f32m8(vint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i32mf2_f32mf2)))
-vfloat32mf2_t vreinterpret_f32mf2(vint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m1_f32m1)))
-vfloat32m1_t vreinterpret_f32m1(vuint32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m2_f32m2)))
-vfloat32m2_t vreinterpret_f32m2(vuint32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m4_f32m4)))
-vfloat32m4_t vreinterpret_f32m4(vuint32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32m8_f32m8)))
-vfloat32m8_t vreinterpret_f32m8(vuint32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u32mf2_f32mf2)))
-vfloat32mf2_t vreinterpret_f32mf2(vuint32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f32m1_i32m1)))
-vint32m1_t vreinterpret_i32m1(vfloat32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f32m2_i32m2)))
-vint32m2_t vreinterpret_i32m2(vfloat32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f32m4_i32m4)))
-vint32m4_t vreinterpret_i32m4(vfloat32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f32m8_i32m8)))
-vint32m8_t vreinterpret_i32m8(vfloat32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f32mf2_i32mf2)))
-vint32mf2_t vreinterpret_i32mf2(vfloat32mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f32m1_u32m1)))
-vuint32m1_t vreinterpret_u32m1(vfloat32m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f32m2_u32m2)))
-vuint32m2_t vreinterpret_u32m2(vfloat32m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f32m4_u32m4)))
-vuint32m4_t vreinterpret_u32m4(vfloat32m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f32m8_u32m8)))
-vuint32m8_t vreinterpret_u32m8(vfloat32m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f32mf2_u32mf2)))
-vuint32mf2_t vreinterpret_u32mf2(vfloat32mf2_t op0);
-
-#endif
-
-#if defined(__riscv_d)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_f64m1_m)))
-vfloat64m1_t vlse64(vbool64_t op0, vfloat64m1_t op1, const double * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_f64m2_m)))
-vfloat64m2_t vlse64(vbool32_t op0, vfloat64m2_t op1, const double * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_f64m4_m)))
-vfloat64m4_t vlse64(vbool16_t op0, vfloat64m4_t op1, const double * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse64_v_f64m8_m)))
-vfloat64m8_t vlse64(vbool8_t op0, vfloat64m8_t op1, const double * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_f64m1)))
-void vsse64(double * op0, ptrdiff_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_f64m1_m)))
-void vsse64(vbool64_t op0, double * op1, ptrdiff_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_f64m2)))
-void vsse64(double * op0, ptrdiff_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_f64m2_m)))
-void vsse64(vbool32_t op0, double * op1, ptrdiff_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_f64m4)))
-void vsse64(double * op0, ptrdiff_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_f64m4_m)))
-void vsse64(vbool16_t op0, double * op1, ptrdiff_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_f64m8)))
-void vsse64(double * op0, ptrdiff_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse64_v_f64m8_m)))
-void vsse64(vbool8_t op0, double * op1, ptrdiff_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f64m1)))
-vfloat64m1_t vluxei8(const double * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f64m1_m)))
-vfloat64m1_t vluxei8(vbool64_t op0, vfloat64m1_t op1, const double * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f64m2)))
-vfloat64m2_t vluxei8(const double * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f64m2_m)))
-vfloat64m2_t vluxei8(vbool32_t op0, vfloat64m2_t op1, const double * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f64m4)))
-vfloat64m4_t vluxei8(const double * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f64m4_m)))
-vfloat64m4_t vluxei8(vbool16_t op0, vfloat64m4_t op1, const double * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f64m8)))
-vfloat64m8_t vluxei8(const double * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f64m8_m)))
-vfloat64m8_t vluxei8(vbool8_t op0, vfloat64m8_t op1, const double * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f64m1)))
-vfloat64m1_t vluxei16(const double * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f64m1_m)))
-vfloat64m1_t vluxei16(vbool64_t op0, vfloat64m1_t op1, const double * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f64m2)))
-vfloat64m2_t vluxei16(const double * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f64m2_m)))
-vfloat64m2_t vluxei16(vbool32_t op0, vfloat64m2_t op1, const double * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f64m4)))
-vfloat64m4_t vluxei16(const double * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f64m4_m)))
-vfloat64m4_t vluxei16(vbool16_t op0, vfloat64m4_t op1, const double * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f64m8)))
-vfloat64m8_t vluxei16(const double * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f64m8_m)))
-vfloat64m8_t vluxei16(vbool8_t op0, vfloat64m8_t op1, const double * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f64m1)))
-vfloat64m1_t vluxei32(const double * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f64m1_m)))
-vfloat64m1_t vluxei32(vbool64_t op0, vfloat64m1_t op1, const double * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f64m2)))
-vfloat64m2_t vluxei32(const double * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f64m2_m)))
-vfloat64m2_t vluxei32(vbool32_t op0, vfloat64m2_t op1, const double * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f64m4)))
-vfloat64m4_t vluxei32(const double * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f64m4_m)))
-vfloat64m4_t vluxei32(vbool16_t op0, vfloat64m4_t op1, const double * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f64m8)))
-vfloat64m8_t vluxei32(const double * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f64m8_m)))
-vfloat64m8_t vluxei32(vbool8_t op0, vfloat64m8_t op1, const double * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f64m1)))
-vfloat64m1_t vluxei64(const double * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f64m1_m)))
-vfloat64m1_t vluxei64(vbool64_t op0, vfloat64m1_t op1, const double * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f64m2)))
-vfloat64m2_t vluxei64(const double * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f64m2_m)))
-vfloat64m2_t vluxei64(vbool32_t op0, vfloat64m2_t op1, const double * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f64m4)))
-vfloat64m4_t vluxei64(const double * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f64m4_m)))
-vfloat64m4_t vluxei64(vbool16_t op0, vfloat64m4_t op1, const double * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f64m8)))
-vfloat64m8_t vluxei64(const double * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f64m8_m)))
-vfloat64m8_t vluxei64(vbool8_t op0, vfloat64m8_t op1, const double * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f64m1)))
-vfloat64m1_t vloxei8(const double * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f64m1_m)))
-vfloat64m1_t vloxei8(vbool64_t op0, vfloat64m1_t op1, const double * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f64m2)))
-vfloat64m2_t vloxei8(const double * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f64m2_m)))
-vfloat64m2_t vloxei8(vbool32_t op0, vfloat64m2_t op1, const double * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f64m4)))
-vfloat64m4_t vloxei8(const double * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f64m4_m)))
-vfloat64m4_t vloxei8(vbool16_t op0, vfloat64m4_t op1, const double * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f64m8)))
-vfloat64m8_t vloxei8(const double * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f64m8_m)))
-vfloat64m8_t vloxei8(vbool8_t op0, vfloat64m8_t op1, const double * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f64m1)))
-vfloat64m1_t vloxei16(const double * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f64m1_m)))
-vfloat64m1_t vloxei16(vbool64_t op0, vfloat64m1_t op1, const double * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f64m2)))
-vfloat64m2_t vloxei16(const double * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f64m2_m)))
-vfloat64m2_t vloxei16(vbool32_t op0, vfloat64m2_t op1, const double * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f64m4)))
-vfloat64m4_t vloxei16(const double * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f64m4_m)))
-vfloat64m4_t vloxei16(vbool16_t op0, vfloat64m4_t op1, const double * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f64m8)))
-vfloat64m8_t vloxei16(const double * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f64m8_m)))
-vfloat64m8_t vloxei16(vbool8_t op0, vfloat64m8_t op1, const double * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f64m1)))
-vfloat64m1_t vloxei32(const double * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f64m1_m)))
-vfloat64m1_t vloxei32(vbool64_t op0, vfloat64m1_t op1, const double * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f64m2)))
-vfloat64m2_t vloxei32(const double * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f64m2_m)))
-vfloat64m2_t vloxei32(vbool32_t op0, vfloat64m2_t op1, const double * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f64m4)))
-vfloat64m4_t vloxei32(const double * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f64m4_m)))
-vfloat64m4_t vloxei32(vbool16_t op0, vfloat64m4_t op1, const double * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f64m8)))
-vfloat64m8_t vloxei32(const double * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f64m8_m)))
-vfloat64m8_t vloxei32(vbool8_t op0, vfloat64m8_t op1, const double * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f64m1)))
-vfloat64m1_t vloxei64(const double * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f64m1_m)))
-vfloat64m1_t vloxei64(vbool64_t op0, vfloat64m1_t op1, const double * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f64m2)))
-vfloat64m2_t vloxei64(const double * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f64m2_m)))
-vfloat64m2_t vloxei64(vbool32_t op0, vfloat64m2_t op1, const double * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f64m4)))
-vfloat64m4_t vloxei64(const double * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f64m4_m)))
-vfloat64m4_t vloxei64(vbool16_t op0, vfloat64m4_t op1, const double * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f64m8)))
-vfloat64m8_t vloxei64(const double * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f64m8_m)))
-vfloat64m8_t vloxei64(vbool8_t op0, vfloat64m8_t op1, const double * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f64m1)))
-vfloat64m1_t vmv_v(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f64m2)))
-vfloat64m2_t vmv_v(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f64m4)))
-vfloat64m4_t vmv_v(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f64m8)))
-vfloat64m8_t vmv_v(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f64m1)))
-vfloat64m1_t vfadd(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f64m1_m)))
-vfloat64m1_t vfadd(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f64m2)))
-vfloat64m2_t vfadd(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f64m2_m)))
-vfloat64m2_t vfadd(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f64m4)))
-vfloat64m4_t vfadd(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f64m4_m)))
-vfloat64m4_t vfadd(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f64m8)))
-vfloat64m8_t vfadd(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f64m8_m)))
-vfloat64m8_t vfadd(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f64m1)))
-vfloat64m1_t vfadd(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f64m1_m)))
-vfloat64m1_t vfadd(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f64m2)))
-vfloat64m2_t vfadd(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f64m2_m)))
-vfloat64m2_t vfadd(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f64m4)))
-vfloat64m4_t vfadd(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f64m4_m)))
-vfloat64m4_t vfadd(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f64m8)))
-vfloat64m8_t vfadd(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f64m8_m)))
-vfloat64m8_t vfadd(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f64m1)))
-vfloat64m1_t vfsub(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f64m1_m)))
-vfloat64m1_t vfsub(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f64m2)))
-vfloat64m2_t vfsub(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f64m2_m)))
-vfloat64m2_t vfsub(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f64m4)))
-vfloat64m4_t vfsub(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f64m4_m)))
-vfloat64m4_t vfsub(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f64m8)))
-vfloat64m8_t vfsub(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f64m8_m)))
-vfloat64m8_t vfsub(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f64m1)))
-vfloat64m1_t vfsub(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f64m1_m)))
-vfloat64m1_t vfsub(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f64m2)))
-vfloat64m2_t vfsub(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f64m2_m)))
-vfloat64m2_t vfsub(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f64m4)))
-vfloat64m4_t vfsub(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f64m4_m)))
-vfloat64m4_t vfsub(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f64m8)))
-vfloat64m8_t vfsub(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f64m8_m)))
-vfloat64m8_t vfsub(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f64m1)))
-vfloat64m1_t vfrsub(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f64m1_m)))
-vfloat64m1_t vfrsub(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f64m2)))
-vfloat64m2_t vfrsub(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f64m2_m)))
-vfloat64m2_t vfrsub(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f64m4)))
-vfloat64m4_t vfrsub(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f64m4_m)))
-vfloat64m4_t vfrsub(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f64m8)))
-vfloat64m8_t vfrsub(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f64m8_m)))
-vfloat64m8_t vfrsub(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f64m1)))
-vfloat64m1_t vfmul(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f64m1_m)))
-vfloat64m1_t vfmul(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f64m2)))
-vfloat64m2_t vfmul(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f64m2_m)))
-vfloat64m2_t vfmul(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f64m4)))
-vfloat64m4_t vfmul(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f64m4_m)))
-vfloat64m4_t vfmul(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f64m8)))
-vfloat64m8_t vfmul(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f64m8_m)))
-vfloat64m8_t vfmul(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f64m1)))
-vfloat64m1_t vfmul(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f64m1_m)))
-vfloat64m1_t vfmul(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f64m2)))
-vfloat64m2_t vfmul(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f64m2_m)))
-vfloat64m2_t vfmul(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f64m4)))
-vfloat64m4_t vfmul(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f64m4_m)))
-vfloat64m4_t vfmul(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f64m8)))
-vfloat64m8_t vfmul(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f64m8_m)))
-vfloat64m8_t vfmul(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f64m1)))
-vfloat64m1_t vfdiv(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f64m1_m)))
-vfloat64m1_t vfdiv(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f64m2)))
-vfloat64m2_t vfdiv(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f64m2_m)))
-vfloat64m2_t vfdiv(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f64m4)))
-vfloat64m4_t vfdiv(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f64m4_m)))
-vfloat64m4_t vfdiv(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f64m8)))
-vfloat64m8_t vfdiv(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f64m8_m)))
-vfloat64m8_t vfdiv(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f64m1)))
-vfloat64m1_t vfdiv(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f64m1_m)))
-vfloat64m1_t vfdiv(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f64m2)))
-vfloat64m2_t vfdiv(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f64m2_m)))
-vfloat64m2_t vfdiv(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f64m4)))
-vfloat64m4_t vfdiv(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f64m4_m)))
-vfloat64m4_t vfdiv(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f64m8)))
-vfloat64m8_t vfdiv(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f64m8_m)))
-vfloat64m8_t vfdiv(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f64m1)))
-vfloat64m1_t vfrdiv(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f64m1_m)))
-vfloat64m1_t vfrdiv(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f64m2)))
-vfloat64m2_t vfrdiv(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f64m2_m)))
-vfloat64m2_t vfrdiv(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f64m4)))
-vfloat64m4_t vfrdiv(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f64m4_m)))
-vfloat64m4_t vfrdiv(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f64m8)))
-vfloat64m8_t vfrdiv(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f64m8_m)))
-vfloat64m8_t vfrdiv(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f64m1)))
-vfloat64m1_t vfmacc(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f64m1_m)))
-vfloat64m1_t vfmacc(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f64m2)))
-vfloat64m2_t vfmacc(vfloat64m2_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f64m2_m)))
-vfloat64m2_t vfmacc(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f64m4)))
-vfloat64m4_t vfmacc(vfloat64m4_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f64m4_m)))
-vfloat64m4_t vfmacc(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f64m8)))
-vfloat64m8_t vfmacc(vfloat64m8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f64m8_m)))
-vfloat64m8_t vfmacc(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f64m1)))
-vfloat64m1_t vfmacc(vfloat64m1_t op0, double op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f64m1_m)))
-vfloat64m1_t vfmacc(vbool64_t op0, vfloat64m1_t op1, double op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f64m2)))
-vfloat64m2_t vfmacc(vfloat64m2_t op0, double op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f64m2_m)))
-vfloat64m2_t vfmacc(vbool32_t op0, vfloat64m2_t op1, double op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f64m4)))
-vfloat64m4_t vfmacc(vfloat64m4_t op0, double op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f64m4_m)))
-vfloat64m4_t vfmacc(vbool16_t op0, vfloat64m4_t op1, double op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f64m8)))
-vfloat64m8_t vfmacc(vfloat64m8_t op0, double op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f64m8_m)))
-vfloat64m8_t vfmacc(vbool8_t op0, vfloat64m8_t op1, double op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f64m1)))
-vfloat64m1_t vfnmacc(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f64m1_m)))
-vfloat64m1_t vfnmacc(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f64m2)))
-vfloat64m2_t vfnmacc(vfloat64m2_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f64m2_m)))
-vfloat64m2_t vfnmacc(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f64m4)))
-vfloat64m4_t vfnmacc(vfloat64m4_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f64m4_m)))
-vfloat64m4_t vfnmacc(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f64m8)))
-vfloat64m8_t vfnmacc(vfloat64m8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f64m8_m)))
-vfloat64m8_t vfnmacc(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f64m1)))
-vfloat64m1_t vfnmacc(vfloat64m1_t op0, double op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f64m1_m)))
-vfloat64m1_t vfnmacc(vbool64_t op0, vfloat64m1_t op1, double op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f64m2)))
-vfloat64m2_t vfnmacc(vfloat64m2_t op0, double op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f64m2_m)))
-vfloat64m2_t vfnmacc(vbool32_t op0, vfloat64m2_t op1, double op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f64m4)))
-vfloat64m4_t vfnmacc(vfloat64m4_t op0, double op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f64m4_m)))
-vfloat64m4_t vfnmacc(vbool16_t op0, vfloat64m4_t op1, double op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f64m8)))
-vfloat64m8_t vfnmacc(vfloat64m8_t op0, double op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f64m8_m)))
-vfloat64m8_t vfnmacc(vbool8_t op0, vfloat64m8_t op1, double op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f64m1)))
-vfloat64m1_t vfmsac(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f64m1_m)))
-vfloat64m1_t vfmsac(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f64m2)))
-vfloat64m2_t vfmsac(vfloat64m2_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f64m2_m)))
-vfloat64m2_t vfmsac(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f64m4)))
-vfloat64m4_t vfmsac(vfloat64m4_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f64m4_m)))
-vfloat64m4_t vfmsac(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f64m8)))
-vfloat64m8_t vfmsac(vfloat64m8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f64m8_m)))
-vfloat64m8_t vfmsac(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f64m1)))
-vfloat64m1_t vfmsac(vfloat64m1_t op0, double op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f64m1_m)))
-vfloat64m1_t vfmsac(vbool64_t op0, vfloat64m1_t op1, double op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f64m2)))
-vfloat64m2_t vfmsac(vfloat64m2_t op0, double op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f64m2_m)))
-vfloat64m2_t vfmsac(vbool32_t op0, vfloat64m2_t op1, double op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f64m4)))
-vfloat64m4_t vfmsac(vfloat64m4_t op0, double op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f64m4_m)))
-vfloat64m4_t vfmsac(vbool16_t op0, vfloat64m4_t op1, double op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f64m8)))
-vfloat64m8_t vfmsac(vfloat64m8_t op0, double op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f64m8_m)))
-vfloat64m8_t vfmsac(vbool8_t op0, vfloat64m8_t op1, double op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f64m1)))
-vfloat64m1_t vfnmsac(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f64m1_m)))
-vfloat64m1_t vfnmsac(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f64m2)))
-vfloat64m2_t vfnmsac(vfloat64m2_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f64m2_m)))
-vfloat64m2_t vfnmsac(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f64m4)))
-vfloat64m4_t vfnmsac(vfloat64m4_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f64m4_m)))
-vfloat64m4_t vfnmsac(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f64m8)))
-vfloat64m8_t vfnmsac(vfloat64m8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f64m8_m)))
-vfloat64m8_t vfnmsac(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f64m1)))
-vfloat64m1_t vfnmsac(vfloat64m1_t op0, double op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f64m1_m)))
-vfloat64m1_t vfnmsac(vbool64_t op0, vfloat64m1_t op1, double op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f64m2)))
-vfloat64m2_t vfnmsac(vfloat64m2_t op0, double op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f64m2_m)))
-vfloat64m2_t vfnmsac(vbool32_t op0, vfloat64m2_t op1, double op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f64m4)))
-vfloat64m4_t vfnmsac(vfloat64m4_t op0, double op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f64m4_m)))
-vfloat64m4_t vfnmsac(vbool16_t op0, vfloat64m4_t op1, double op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f64m8)))
-vfloat64m8_t vfnmsac(vfloat64m8_t op0, double op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f64m8_m)))
-vfloat64m8_t vfnmsac(vbool8_t op0, vfloat64m8_t op1, double op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f64m1)))
-vfloat64m1_t vfmadd(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f64m1_m)))
-vfloat64m1_t vfmadd(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f64m2)))
-vfloat64m2_t vfmadd(vfloat64m2_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f64m2_m)))
-vfloat64m2_t vfmadd(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f64m4)))
-vfloat64m4_t vfmadd(vfloat64m4_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f64m4_m)))
-vfloat64m4_t vfmadd(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f64m8)))
-vfloat64m8_t vfmadd(vfloat64m8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f64m8_m)))
-vfloat64m8_t vfmadd(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f64m1)))
-vfloat64m1_t vfmadd(vfloat64m1_t op0, double op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f64m1_m)))
-vfloat64m1_t vfmadd(vbool64_t op0, vfloat64m1_t op1, double op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f64m2)))
-vfloat64m2_t vfmadd(vfloat64m2_t op0, double op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f64m2_m)))
-vfloat64m2_t vfmadd(vbool32_t op0, vfloat64m2_t op1, double op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f64m4)))
-vfloat64m4_t vfmadd(vfloat64m4_t op0, double op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f64m4_m)))
-vfloat64m4_t vfmadd(vbool16_t op0, vfloat64m4_t op1, double op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f64m8)))
-vfloat64m8_t vfmadd(vfloat64m8_t op0, double op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f64m8_m)))
-vfloat64m8_t vfmadd(vbool8_t op0, vfloat64m8_t op1, double op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f64m1)))
-vfloat64m1_t vfnmadd(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f64m1_m)))
-vfloat64m1_t vfnmadd(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f64m2)))
-vfloat64m2_t vfnmadd(vfloat64m2_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f64m2_m)))
-vfloat64m2_t vfnmadd(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f64m4)))
-vfloat64m4_t vfnmadd(vfloat64m4_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f64m4_m)))
-vfloat64m4_t vfnmadd(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f64m8)))
-vfloat64m8_t vfnmadd(vfloat64m8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f64m8_m)))
-vfloat64m8_t vfnmadd(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f64m1)))
-vfloat64m1_t vfnmadd(vfloat64m1_t op0, double op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f64m1_m)))
-vfloat64m1_t vfnmadd(vbool64_t op0, vfloat64m1_t op1, double op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f64m2)))
-vfloat64m2_t vfnmadd(vfloat64m2_t op0, double op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f64m2_m)))
-vfloat64m2_t vfnmadd(vbool32_t op0, vfloat64m2_t op1, double op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f64m4)))
-vfloat64m4_t vfnmadd(vfloat64m4_t op0, double op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f64m4_m)))
-vfloat64m4_t vfnmadd(vbool16_t op0, vfloat64m4_t op1, double op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f64m8)))
-vfloat64m8_t vfnmadd(vfloat64m8_t op0, double op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f64m8_m)))
-vfloat64m8_t vfnmadd(vbool8_t op0, vfloat64m8_t op1, double op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f64m1)))
-vfloat64m1_t vfmsub(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f64m1_m)))
-vfloat64m1_t vfmsub(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f64m2)))
-vfloat64m2_t vfmsub(vfloat64m2_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f64m2_m)))
-vfloat64m2_t vfmsub(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f64m4)))
-vfloat64m4_t vfmsub(vfloat64m4_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f64m4_m)))
-vfloat64m4_t vfmsub(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f64m8)))
-vfloat64m8_t vfmsub(vfloat64m8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f64m8_m)))
-vfloat64m8_t vfmsub(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f64m1)))
-vfloat64m1_t vfmsub(vfloat64m1_t op0, double op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f64m1_m)))
-vfloat64m1_t vfmsub(vbool64_t op0, vfloat64m1_t op1, double op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f64m2)))
-vfloat64m2_t vfmsub(vfloat64m2_t op0, double op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f64m2_m)))
-vfloat64m2_t vfmsub(vbool32_t op0, vfloat64m2_t op1, double op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f64m4)))
-vfloat64m4_t vfmsub(vfloat64m4_t op0, double op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f64m4_m)))
-vfloat64m4_t vfmsub(vbool16_t op0, vfloat64m4_t op1, double op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f64m8)))
-vfloat64m8_t vfmsub(vfloat64m8_t op0, double op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f64m8_m)))
-vfloat64m8_t vfmsub(vbool8_t op0, vfloat64m8_t op1, double op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f64m1)))
-vfloat64m1_t vfnmsub(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f64m1_m)))
-vfloat64m1_t vfnmsub(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f64m2)))
-vfloat64m2_t vfnmsub(vfloat64m2_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f64m2_m)))
-vfloat64m2_t vfnmsub(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f64m4)))
-vfloat64m4_t vfnmsub(vfloat64m4_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f64m4_m)))
-vfloat64m4_t vfnmsub(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f64m8)))
-vfloat64m8_t vfnmsub(vfloat64m8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f64m8_m)))
-vfloat64m8_t vfnmsub(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f64m1)))
-vfloat64m1_t vfnmsub(vfloat64m1_t op0, double op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f64m1_m)))
-vfloat64m1_t vfnmsub(vbool64_t op0, vfloat64m1_t op1, double op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f64m2)))
-vfloat64m2_t vfnmsub(vfloat64m2_t op0, double op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f64m2_m)))
-vfloat64m2_t vfnmsub(vbool32_t op0, vfloat64m2_t op1, double op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f64m4)))
-vfloat64m4_t vfnmsub(vfloat64m4_t op0, double op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f64m4_m)))
-vfloat64m4_t vfnmsub(vbool16_t op0, vfloat64m4_t op1, double op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f64m8)))
-vfloat64m8_t vfnmsub(vfloat64m8_t op0, double op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f64m8_m)))
-vfloat64m8_t vfnmsub(vbool8_t op0, vfloat64m8_t op1, double op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f64m1)))
-vfloat64m1_t vfmin(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f64m1_m)))
-vfloat64m1_t vfmin(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f64m2)))
-vfloat64m2_t vfmin(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f64m2_m)))
-vfloat64m2_t vfmin(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f64m4)))
-vfloat64m4_t vfmin(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f64m4_m)))
-vfloat64m4_t vfmin(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f64m8)))
-vfloat64m8_t vfmin(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f64m8_m)))
-vfloat64m8_t vfmin(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f64m1)))
-vfloat64m1_t vfmin(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f64m1_m)))
-vfloat64m1_t vfmin(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f64m2)))
-vfloat64m2_t vfmin(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f64m2_m)))
-vfloat64m2_t vfmin(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f64m4)))
-vfloat64m4_t vfmin(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f64m4_m)))
-vfloat64m4_t vfmin(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f64m8)))
-vfloat64m8_t vfmin(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f64m8_m)))
-vfloat64m8_t vfmin(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f64m1)))
-vfloat64m1_t vfmax(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f64m1_m)))
-vfloat64m1_t vfmax(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f64m2)))
-vfloat64m2_t vfmax(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f64m2_m)))
-vfloat64m2_t vfmax(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f64m4)))
-vfloat64m4_t vfmax(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f64m4_m)))
-vfloat64m4_t vfmax(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f64m8)))
-vfloat64m8_t vfmax(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f64m8_m)))
-vfloat64m8_t vfmax(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f64m1)))
-vfloat64m1_t vfmax(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f64m1_m)))
-vfloat64m1_t vfmax(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f64m2)))
-vfloat64m2_t vfmax(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f64m2_m)))
-vfloat64m2_t vfmax(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f64m4)))
-vfloat64m4_t vfmax(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f64m4_m)))
-vfloat64m4_t vfmax(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f64m8)))
-vfloat64m8_t vfmax(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f64m8_m)))
-vfloat64m8_t vfmax(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f64m1)))
-vfloat64m1_t vfsgnj(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f64m1_m)))
-vfloat64m1_t vfsgnj(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f64m2)))
-vfloat64m2_t vfsgnj(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f64m2_m)))
-vfloat64m2_t vfsgnj(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f64m4)))
-vfloat64m4_t vfsgnj(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f64m4_m)))
-vfloat64m4_t vfsgnj(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f64m8)))
-vfloat64m8_t vfsgnj(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f64m8_m)))
-vfloat64m8_t vfsgnj(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f64m1)))
-vfloat64m1_t vfsgnj(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f64m1_m)))
-vfloat64m1_t vfsgnj(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f64m2)))
-vfloat64m2_t vfsgnj(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f64m2_m)))
-vfloat64m2_t vfsgnj(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f64m4)))
-vfloat64m4_t vfsgnj(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f64m4_m)))
-vfloat64m4_t vfsgnj(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f64m8)))
-vfloat64m8_t vfsgnj(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f64m8_m)))
-vfloat64m8_t vfsgnj(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f64m1)))
-vfloat64m1_t vfsgnjn(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f64m1_m)))
-vfloat64m1_t vfsgnjn(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f64m2)))
-vfloat64m2_t vfsgnjn(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f64m2_m)))
-vfloat64m2_t vfsgnjn(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f64m4)))
-vfloat64m4_t vfsgnjn(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f64m4_m)))
-vfloat64m4_t vfsgnjn(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f64m8)))
-vfloat64m8_t vfsgnjn(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f64m8_m)))
-vfloat64m8_t vfsgnjn(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f64m1)))
-vfloat64m1_t vfsgnjn(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f64m1_m)))
-vfloat64m1_t vfsgnjn(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f64m2)))
-vfloat64m2_t vfsgnjn(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f64m2_m)))
-vfloat64m2_t vfsgnjn(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f64m4)))
-vfloat64m4_t vfsgnjn(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f64m4_m)))
-vfloat64m4_t vfsgnjn(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f64m8)))
-vfloat64m8_t vfsgnjn(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f64m8_m)))
-vfloat64m8_t vfsgnjn(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f64m1)))
-vfloat64m1_t vfsgnjx(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f64m1_m)))
-vfloat64m1_t vfsgnjx(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f64m2)))
-vfloat64m2_t vfsgnjx(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f64m2_m)))
-vfloat64m2_t vfsgnjx(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f64m4)))
-vfloat64m4_t vfsgnjx(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f64m4_m)))
-vfloat64m4_t vfsgnjx(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f64m8)))
-vfloat64m8_t vfsgnjx(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f64m8_m)))
-vfloat64m8_t vfsgnjx(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f64m1)))
-vfloat64m1_t vfsgnjx(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f64m1_m)))
-vfloat64m1_t vfsgnjx(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f64m2)))
-vfloat64m2_t vfsgnjx(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f64m2_m)))
-vfloat64m2_t vfsgnjx(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f64m4)))
-vfloat64m4_t vfsgnjx(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f64m4_m)))
-vfloat64m4_t vfsgnjx(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f64m8)))
-vfloat64m8_t vfsgnjx(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f64m8_m)))
-vfloat64m8_t vfsgnjx(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f64m1)))
-vfloat64m1_t vfabs(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f64m1_m)))
-vfloat64m1_t vfabs(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f64m2)))
-vfloat64m2_t vfabs(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f64m2_m)))
-vfloat64m2_t vfabs(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f64m4)))
-vfloat64m4_t vfabs(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f64m4_m)))
-vfloat64m4_t vfabs(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f64m8)))
-vfloat64m8_t vfabs(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f64m8_m)))
-vfloat64m8_t vfabs(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f64m1_b64)))
-vbool64_t vmfeq(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f64m1_b64_m)))
-vbool64_t vmfeq(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f64m2_b32)))
-vbool32_t vmfeq(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f64m2_b32_m)))
-vbool32_t vmfeq(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f64m4_b16)))
-vbool16_t vmfeq(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f64m4_b16_m)))
-vbool16_t vmfeq(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f64m8_b8)))
-vbool8_t vmfeq(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f64m8_b8_m)))
-vbool8_t vmfeq(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f64m1_b64)))
-vbool64_t vmfeq(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f64m1_b64_m)))
-vbool64_t vmfeq(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f64m2_b32)))
-vbool32_t vmfeq(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f64m2_b32_m)))
-vbool32_t vmfeq(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f64m4_b16)))
-vbool16_t vmfeq(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f64m4_b16_m)))
-vbool16_t vmfeq(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f64m8_b8)))
-vbool8_t vmfeq(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f64m8_b8_m)))
-vbool8_t vmfeq(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f64m1_b64)))
-vbool64_t vmfne(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f64m1_b64_m)))
-vbool64_t vmfne(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f64m2_b32)))
-vbool32_t vmfne(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f64m2_b32_m)))
-vbool32_t vmfne(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f64m4_b16)))
-vbool16_t vmfne(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f64m4_b16_m)))
-vbool16_t vmfne(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f64m8_b8)))
-vbool8_t vmfne(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f64m8_b8_m)))
-vbool8_t vmfne(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f64m1_b64)))
-vbool64_t vmfne(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f64m1_b64_m)))
-vbool64_t vmfne(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f64m2_b32)))
-vbool32_t vmfne(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f64m2_b32_m)))
-vbool32_t vmfne(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f64m4_b16)))
-vbool16_t vmfne(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f64m4_b16_m)))
-vbool16_t vmfne(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f64m8_b8)))
-vbool8_t vmfne(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f64m8_b8_m)))
-vbool8_t vmfne(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f64m1_b64)))
-vbool64_t vmflt(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f64m1_b64_m)))
-vbool64_t vmflt(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f64m2_b32)))
-vbool32_t vmflt(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f64m2_b32_m)))
-vbool32_t vmflt(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f64m4_b16)))
-vbool16_t vmflt(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f64m4_b16_m)))
-vbool16_t vmflt(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f64m8_b8)))
-vbool8_t vmflt(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f64m8_b8_m)))
-vbool8_t vmflt(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f64m1_b64)))
-vbool64_t vmflt(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f64m1_b64_m)))
-vbool64_t vmflt(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f64m2_b32)))
-vbool32_t vmflt(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f64m2_b32_m)))
-vbool32_t vmflt(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f64m4_b16)))
-vbool16_t vmflt(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f64m4_b16_m)))
-vbool16_t vmflt(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f64m8_b8)))
-vbool8_t vmflt(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f64m8_b8_m)))
-vbool8_t vmflt(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f64m1_b64)))
-vbool64_t vmfle(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f64m1_b64_m)))
-vbool64_t vmfle(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f64m2_b32)))
-vbool32_t vmfle(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f64m2_b32_m)))
-vbool32_t vmfle(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f64m4_b16)))
-vbool16_t vmfle(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f64m4_b16_m)))
-vbool16_t vmfle(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f64m8_b8)))
-vbool8_t vmfle(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f64m8_b8_m)))
-vbool8_t vmfle(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f64m1_b64)))
-vbool64_t vmfle(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f64m1_b64_m)))
-vbool64_t vmfle(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f64m2_b32)))
-vbool32_t vmfle(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f64m2_b32_m)))
-vbool32_t vmfle(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f64m4_b16)))
-vbool16_t vmfle(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f64m4_b16_m)))
-vbool16_t vmfle(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f64m8_b8)))
-vbool8_t vmfle(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f64m8_b8_m)))
-vbool8_t vmfle(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f64m1_b64)))
-vbool64_t vmfgt(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f64m1_b64_m)))
-vbool64_t vmfgt(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f64m2_b32)))
-vbool32_t vmfgt(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f64m2_b32_m)))
-vbool32_t vmfgt(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f64m4_b16)))
-vbool16_t vmfgt(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f64m4_b16_m)))
-vbool16_t vmfgt(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f64m8_b8)))
-vbool8_t vmfgt(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f64m8_b8_m)))
-vbool8_t vmfgt(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f64m1_b64)))
-vbool64_t vmfgt(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f64m1_b64_m)))
-vbool64_t vmfgt(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f64m2_b32)))
-vbool32_t vmfgt(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f64m2_b32_m)))
-vbool32_t vmfgt(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f64m4_b16)))
-vbool16_t vmfgt(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f64m4_b16_m)))
-vbool16_t vmfgt(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f64m8_b8)))
-vbool8_t vmfgt(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f64m8_b8_m)))
-vbool8_t vmfgt(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f64m1_b64)))
-vbool64_t vmfge(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f64m1_b64_m)))
-vbool64_t vmfge(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f64m2_b32)))
-vbool32_t vmfge(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f64m2_b32_m)))
-vbool32_t vmfge(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f64m4_b16)))
-vbool16_t vmfge(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f64m4_b16_m)))
-vbool16_t vmfge(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f64m8_b8)))
-vbool8_t vmfge(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f64m8_b8_m)))
-vbool8_t vmfge(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f64m1_b64)))
-vbool64_t vmfge(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f64m1_b64_m)))
-vbool64_t vmfge(vbool64_t op0, vbool64_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f64m2_b32)))
-vbool32_t vmfge(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f64m2_b32_m)))
-vbool32_t vmfge(vbool32_t op0, vbool32_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f64m4_b16)))
-vbool16_t vmfge(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f64m4_b16_m)))
-vbool16_t vmfge(vbool16_t op0, vbool16_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f64m8_b8)))
-vbool8_t vmfge(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f64m8_b8_m)))
-vbool8_t vmfge(vbool8_t op0, vbool8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f64m1)))
-vfloat64m1_t vmerge(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f64m2)))
-vfloat64m2_t vmerge(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f64m4)))
-vfloat64m4_t vmerge(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f64m8)))
-vfloat64m8_t vmerge(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f64m1)))
-vfloat64m1_t vfmerge(vbool64_t op0, vfloat64m1_t op1, double op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f64m2)))
-vfloat64m2_t vfmerge(vbool32_t op0, vfloat64m2_t op1, double op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f64m4)))
-vfloat64m4_t vfmerge(vbool16_t op0, vfloat64m4_t op1, double op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f64m8)))
-vfloat64m8_t vfmerge(vbool8_t op0, vfloat64m8_t op1, double op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f64m1_f64m1)))
-vfloat64m1_t vfredmax(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f64m1_f64m1_m)))
-vfloat64m1_t vfredmax(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f64m2_f64m1)))
-vfloat64m1_t vfredmax(vfloat64m1_t op0, vfloat64m2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f64m2_f64m1_m)))
-vfloat64m1_t vfredmax(vbool32_t op0, vfloat64m1_t op1, vfloat64m2_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f64m4_f64m1)))
-vfloat64m1_t vfredmax(vfloat64m1_t op0, vfloat64m4_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f64m4_f64m1_m)))
-vfloat64m1_t vfredmax(vbool16_t op0, vfloat64m1_t op1, vfloat64m4_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f64m8_f64m1)))
-vfloat64m1_t vfredmax(vfloat64m1_t op0, vfloat64m8_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f64m8_f64m1_m)))
-vfloat64m1_t vfredmax(vbool8_t op0, vfloat64m1_t op1, vfloat64m8_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f64m1_f64m1)))
-vfloat64m1_t vfredmin(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f64m1_f64m1_m)))
-vfloat64m1_t vfredmin(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f64m2_f64m1)))
-vfloat64m1_t vfredmin(vfloat64m1_t op0, vfloat64m2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f64m2_f64m1_m)))
-vfloat64m1_t vfredmin(vbool32_t op0, vfloat64m1_t op1, vfloat64m2_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f64m4_f64m1)))
-vfloat64m1_t vfredmin(vfloat64m1_t op0, vfloat64m4_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f64m4_f64m1_m)))
-vfloat64m1_t vfredmin(vbool16_t op0, vfloat64m1_t op1, vfloat64m4_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f64m8_f64m1)))
-vfloat64m1_t vfredmin(vfloat64m1_t op0, vfloat64m8_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f64m8_f64m1_m)))
-vfloat64m1_t vfredmin(vbool8_t op0, vfloat64m1_t op1, vfloat64m8_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f64m1_f64m1)))
-vfloat64m1_t vfredsum(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f64m1_f64m1_m)))
-vfloat64m1_t vfredsum(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f64m2_f64m1)))
-vfloat64m1_t vfredsum(vfloat64m1_t op0, vfloat64m2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f64m2_f64m1_m)))
-vfloat64m1_t vfredsum(vbool32_t op0, vfloat64m1_t op1, vfloat64m2_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f64m4_f64m1)))
-vfloat64m1_t vfredsum(vfloat64m1_t op0, vfloat64m4_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f64m4_f64m1_m)))
-vfloat64m1_t vfredsum(vbool16_t op0, vfloat64m1_t op1, vfloat64m4_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f64m8_f64m1)))
-vfloat64m1_t vfredsum(vfloat64m1_t op0, vfloat64m8_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f64m8_f64m1_m)))
-vfloat64m1_t vfredsum(vbool8_t op0, vfloat64m1_t op1, vfloat64m8_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f64m1_f64m1)))
-vfloat64m1_t vfredosum(vfloat64m1_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f64m1_f64m1_m)))
-vfloat64m1_t vfredosum(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f64m2_f64m1)))
-vfloat64m1_t vfredosum(vfloat64m1_t op0, vfloat64m2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f64m2_f64m1_m)))
-vfloat64m1_t vfredosum(vbool32_t op0, vfloat64m1_t op1, vfloat64m2_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f64m4_f64m1)))
-vfloat64m1_t vfredosum(vfloat64m1_t op0, vfloat64m4_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f64m4_f64m1_m)))
-vfloat64m1_t vfredosum(vbool16_t op0, vfloat64m1_t op1, vfloat64m4_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f64m8_f64m1)))
-vfloat64m1_t vfredosum(vfloat64m1_t op0, vfloat64m8_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f64m8_f64m1_m)))
-vfloat64m1_t vfredosum(vbool8_t op0, vfloat64m1_t op1, vfloat64m8_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f64m1_f64)))
-double vfmv_f(vfloat64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f64m2_f64)))
-double vfmv_f(vfloat64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f64m4_f64)))
-double vfmv_f(vfloat64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f64m8_f64)))
-double vfmv_f(vfloat64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f64m1)))
-vfloat64m1_t vfmv_s(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f64m2)))
-vfloat64m2_t vfmv_s(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f64m4)))
-vfloat64m4_t vfmv_s(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f64m8)))
-vfloat64m8_t vfmv_s(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f64m1)))
-vfloat64m1_t vslideup(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f64m1_m)))
-vfloat64m1_t vslideup(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f64m2)))
-vfloat64m2_t vslideup(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f64m2_m)))
-vfloat64m2_t vslideup(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f64m4)))
-vfloat64m4_t vslideup(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f64m4_m)))
-vfloat64m4_t vslideup(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f64m8)))
-vfloat64m8_t vslideup(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f64m8_m)))
-vfloat64m8_t vslideup(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f64m1)))
-vfloat64m1_t vslidedown(vfloat64m1_t op0, vfloat64m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f64m1_m)))
-vfloat64m1_t vslidedown(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f64m2)))
-vfloat64m2_t vslidedown(vfloat64m2_t op0, vfloat64m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f64m2_m)))
-vfloat64m2_t vslidedown(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f64m4)))
-vfloat64m4_t vslidedown(vfloat64m4_t op0, vfloat64m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f64m4_m)))
-vfloat64m4_t vslidedown(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f64m8)))
-vfloat64m8_t vslidedown(vfloat64m8_t op0, vfloat64m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f64m8_m)))
-vfloat64m8_t vslidedown(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f64m1)))
-vfloat64m1_t vfslide1up(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f64m1_m)))
-vfloat64m1_t vfslide1up(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f64m2)))
-vfloat64m2_t vfslide1up(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f64m2_m)))
-vfloat64m2_t vfslide1up(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f64m4)))
-vfloat64m4_t vfslide1up(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f64m4_m)))
-vfloat64m4_t vfslide1up(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f64m8)))
-vfloat64m8_t vfslide1up(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f64m8_m)))
-vfloat64m8_t vfslide1up(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f64m1)))
-vfloat64m1_t vfslide1down(vfloat64m1_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f64m1_m)))
-vfloat64m1_t vfslide1down(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f64m2)))
-vfloat64m2_t vfslide1down(vfloat64m2_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f64m2_m)))
-vfloat64m2_t vfslide1down(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f64m4)))
-vfloat64m4_t vfslide1down(vfloat64m4_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f64m4_m)))
-vfloat64m4_t vfslide1down(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f64m8)))
-vfloat64m8_t vfslide1down(vfloat64m8_t op0, double op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f64m8_m)))
-vfloat64m8_t vfslide1down(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, double op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f64m1)))
-vfloat64m1_t vrgather(vfloat64m1_t op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f64m1_m)))
-vfloat64m1_t vrgather(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f64m2)))
-vfloat64m2_t vrgather(vfloat64m2_t op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f64m2_m)))
-vfloat64m2_t vrgather(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f64m4)))
-vfloat64m4_t vrgather(vfloat64m4_t op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f64m4_m)))
-vfloat64m4_t vrgather(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f64m8)))
-vfloat64m8_t vrgather(vfloat64m8_t op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f64m8_m)))
-vfloat64m8_t vrgather(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f64m1)))
-vfloat64m1_t vrgather(vfloat64m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f64m1_m)))
-vfloat64m1_t vrgather(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f64m2)))
-vfloat64m2_t vrgather(vfloat64m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f64m2_m)))
-vfloat64m2_t vrgather(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f64m4)))
-vfloat64m4_t vrgather(vfloat64m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f64m4_m)))
-vfloat64m4_t vrgather(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f64m8)))
-vfloat64m8_t vrgather(vfloat64m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f64m8_m)))
-vfloat64m8_t vrgather(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f64m1)))
-vfloat64m1_t vrgatherei16(vfloat64m1_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f64m1_m)))
-vfloat64m1_t vrgatherei16(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f64m2)))
-vfloat64m2_t vrgatherei16(vfloat64m2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f64m2_m)))
-vfloat64m2_t vrgatherei16(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f64m4)))
-vfloat64m4_t vrgatherei16(vfloat64m4_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f64m4_m)))
-vfloat64m4_t vrgatherei16(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f64m8)))
-vfloat64m8_t vrgatherei16(vfloat64m8_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f64m8_m)))
-vfloat64m8_t vrgatherei16(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f64m1)))
-vfloat64m1_t vcompress(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f64m2)))
-vfloat64m2_t vcompress(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f64m4)))
-vfloat64m4_t vcompress(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f64m8)))
-vfloat64m8_t vcompress(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f64m2_f64m1)))
-vfloat64m1_t vget_f64m1(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f64m4_f64m1)))
-vfloat64m1_t vget_f64m1(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f64m8_f64m1)))
-vfloat64m1_t vget_f64m1(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f64m4_f64m2)))
-vfloat64m2_t vget_f64m2(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f64m8_f64m2)))
-vfloat64m2_t vget_f64m2(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f64m8_f64m4)))
-vfloat64m4_t vget_f64m4(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f64m1_f64m2)))
-vfloat64m2_t vset(vfloat64m2_t op0, size_t op1, vfloat64m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f64m1_f64m4)))
-vfloat64m4_t vset(vfloat64m4_t op0, size_t op1, vfloat64m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f64m2_f64m4)))
-vfloat64m4_t vset(vfloat64m4_t op0, size_t op1, vfloat64m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f64m1_f64m8)))
-vfloat64m8_t vset(vfloat64m8_t op0, size_t op1, vfloat64m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f64m2_f64m8)))
-vfloat64m8_t vset(vfloat64m8_t op0, size_t op1, vfloat64m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f64m4_f64m8)))
-vfloat64m8_t vset(vfloat64m8_t op0, size_t op1, vfloat64m4_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f64m1)))
-void vsuxei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f64m1_m)))
-void vsuxei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f64m2)))
-void vsuxei8(double * op0, vuint8mf4_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f64m2_m)))
-void vsuxei8(vbool32_t op0, double * op1, vuint8mf4_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f64m4)))
-void vsuxei8(double * op0, vuint8mf2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f64m4_m)))
-void vsuxei8(vbool16_t op0, double * op1, vuint8mf2_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f64m8)))
-void vsuxei8(double * op0, vuint8m1_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f64m8_m)))
-void vsuxei8(vbool8_t op0, double * op1, vuint8m1_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f64m1)))
-void vsuxei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f64m1_m)))
-void vsuxei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f64m2)))
-void vsuxei16(double * op0, vuint16mf2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f64m2_m)))
-void vsuxei16(vbool32_t op0, double * op1, vuint16mf2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f64m4)))
-void vsuxei16(double * op0, vuint16m1_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f64m4_m)))
-void vsuxei16(vbool16_t op0, double * op1, vuint16m1_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f64m8)))
-void vsuxei16(double * op0, vuint16m2_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f64m8_m)))
-void vsuxei16(vbool8_t op0, double * op1, vuint16m2_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f64m1)))
-void vsuxei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f64m1_m)))
-void vsuxei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f64m2)))
-void vsuxei32(double * op0, vuint32m1_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f64m2_m)))
-void vsuxei32(vbool32_t op0, double * op1, vuint32m1_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f64m4)))
-void vsuxei32(double * op0, vuint32m2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f64m4_m)))
-void vsuxei32(vbool16_t op0, double * op1, vuint32m2_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f64m8)))
-void vsuxei32(double * op0, vuint32m4_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f64m8_m)))
-void vsuxei32(vbool8_t op0, double * op1, vuint32m4_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f64m1)))
-void vsuxei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f64m1_m)))
-void vsuxei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f64m2)))
-void vsuxei64(double * op0, vuint64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f64m2_m)))
-void vsuxei64(vbool32_t op0, double * op1, vuint64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f64m4)))
-void vsuxei64(double * op0, vuint64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f64m4_m)))
-void vsuxei64(vbool16_t op0, double * op1, vuint64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f64m8)))
-void vsuxei64(double * op0, vuint64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f64m8_m)))
-void vsuxei64(vbool8_t op0, double * op1, vuint64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f64m1)))
-void vsoxei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f64m1_m)))
-void vsoxei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f64m2)))
-void vsoxei8(double * op0, vuint8mf4_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f64m2_m)))
-void vsoxei8(vbool32_t op0, double * op1, vuint8mf4_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f64m4)))
-void vsoxei8(double * op0, vuint8mf2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f64m4_m)))
-void vsoxei8(vbool16_t op0, double * op1, vuint8mf2_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f64m8)))
-void vsoxei8(double * op0, vuint8m1_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f64m8_m)))
-void vsoxei8(vbool8_t op0, double * op1, vuint8m1_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f64m1)))
-void vsoxei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f64m1_m)))
-void vsoxei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f64m2)))
-void vsoxei16(double * op0, vuint16mf2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f64m2_m)))
-void vsoxei16(vbool32_t op0, double * op1, vuint16mf2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f64m4)))
-void vsoxei16(double * op0, vuint16m1_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f64m4_m)))
-void vsoxei16(vbool16_t op0, double * op1, vuint16m1_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f64m8)))
-void vsoxei16(double * op0, vuint16m2_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f64m8_m)))
-void vsoxei16(vbool8_t op0, double * op1, vuint16m2_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f64m1)))
-void vsoxei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f64m1_m)))
-void vsoxei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f64m2)))
-void vsoxei32(double * op0, vuint32m1_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f64m2_m)))
-void vsoxei32(vbool32_t op0, double * op1, vuint32m1_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f64m4)))
-void vsoxei32(double * op0, vuint32m2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f64m4_m)))
-void vsoxei32(vbool16_t op0, double * op1, vuint32m2_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f64m8)))
-void vsoxei32(double * op0, vuint32m4_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f64m8_m)))
-void vsoxei32(vbool8_t op0, double * op1, vuint32m4_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f64m1)))
-void vsoxei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f64m1_m)))
-void vsoxei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f64m2)))
-void vsoxei64(double * op0, vuint64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f64m2_m)))
-void vsoxei64(vbool32_t op0, double * op1, vuint64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f64m4)))
-void vsoxei64(double * op0, vuint64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f64m4_m)))
-void vsoxei64(vbool16_t op0, double * op1, vuint64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f64m8)))
-void vsoxei64(double * op0, vuint64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f64m8_m)))
-void vsoxei64(vbool8_t op0, double * op1, vuint64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_f64m1_m)))
-vfloat64m1_t vle64ff(vbool64_t op0, vfloat64m1_t op1, const double * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_f64m2_m)))
-vfloat64m2_t vle64ff(vbool32_t op0, vfloat64m2_t op1, const double * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_f64m4_m)))
-vfloat64m4_t vle64ff(vbool16_t op0, vfloat64m4_t op1, const double * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64ff_v_f64m8_m)))
-vfloat64m8_t vle64ff(vbool8_t op0, vfloat64m8_t op1, const double * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f64m1)))
-vfloat64m1_t vfneg(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f64m1_m)))
-vfloat64m1_t vfneg(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f64m2)))
-vfloat64m2_t vfneg(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f64m2_m)))
-vfloat64m2_t vfneg(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f64m4)))
-vfloat64m4_t vfneg(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f64m4_m)))
-vfloat64m4_t vfneg(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f64m8)))
-vfloat64m8_t vfneg(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f64m8_m)))
-vfloat64m8_t vfneg(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_f64m1_m)))
-vfloat64m1_t vle64(vbool64_t op0, vfloat64m1_t op1, const double * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_f64m2_m)))
-vfloat64m2_t vle64(vbool32_t op0, vfloat64m2_t op1, const double * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_f64m4_m)))
-vfloat64m4_t vle64(vbool16_t op0, vfloat64m4_t op1, const double * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle64_v_f64m8_m)))
-vfloat64m8_t vle64(vbool8_t op0, vfloat64m8_t op1, const double * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_f64m1)))
-void vse64(double * op0, vfloat64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_f64m1_m)))
-void vse64(vbool64_t op0, double * op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_f64m2)))
-void vse64(double * op0, vfloat64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_f64m2_m)))
-void vse64(vbool32_t op0, double * op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_f64m4)))
-void vse64(double * op0, vfloat64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_f64m4_m)))
-void vse64(vbool16_t op0, double * op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_f64m8)))
-void vse64(double * op0, vfloat64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse64_v_f64m8_m)))
-void vse64(vbool8_t op0, double * op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u64m1)))
-vuint64m1_t vfclass(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u64m1_m)))
-vuint64m1_t vfclass(vbool64_t op0, vuint64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u64m2)))
-vuint64m2_t vfclass(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u64m2_m)))
-vuint64m2_t vfclass(vbool32_t op0, vuint64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u64m4)))
-vuint64m4_t vfclass(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u64m4_m)))
-vuint64m4_t vfclass(vbool16_t op0, vuint64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u64m8)))
-vuint64m8_t vfclass(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u64m8_m)))
-vuint64m8_t vfclass(vbool8_t op0, vuint64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f64m1)))
-vfloat64m1_t vfcvt_f(vint64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f64m1_m)))
-vfloat64m1_t vfcvt_f(vbool64_t op0, vfloat64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f64m2)))
-vfloat64m2_t vfcvt_f(vint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f64m2_m)))
-vfloat64m2_t vfcvt_f(vbool32_t op0, vfloat64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f64m4)))
-vfloat64m4_t vfcvt_f(vint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f64m4_m)))
-vfloat64m4_t vfcvt_f(vbool16_t op0, vfloat64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f64m8)))
-vfloat64m8_t vfcvt_f(vint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f64m8_m)))
-vfloat64m8_t vfcvt_f(vbool8_t op0, vfloat64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f64m1)))
-vfloat64m1_t vfcvt_f(vuint64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f64m1_m)))
-vfloat64m1_t vfcvt_f(vbool64_t op0, vfloat64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f64m2)))
-vfloat64m2_t vfcvt_f(vuint64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f64m2_m)))
-vfloat64m2_t vfcvt_f(vbool32_t op0, vfloat64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f64m4)))
-vfloat64m4_t vfcvt_f(vuint64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f64m4_m)))
-vfloat64m4_t vfcvt_f(vbool16_t op0, vfloat64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f64m8)))
-vfloat64m8_t vfcvt_f(vuint64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f64m8_m)))
-vfloat64m8_t vfcvt_f(vbool8_t op0, vfloat64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i64m1)))
-vint64m1_t vfcvt_rtz_x(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i64m1_m)))
-vint64m1_t vfcvt_rtz_x(vbool64_t op0, vint64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i64m2)))
-vint64m2_t vfcvt_rtz_x(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i64m2_m)))
-vint64m2_t vfcvt_rtz_x(vbool32_t op0, vint64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i64m4)))
-vint64m4_t vfcvt_rtz_x(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i64m4_m)))
-vint64m4_t vfcvt_rtz_x(vbool16_t op0, vint64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i64m8)))
-vint64m8_t vfcvt_rtz_x(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i64m8_m)))
-vint64m8_t vfcvt_rtz_x(vbool8_t op0, vint64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u64m1)))
-vuint64m1_t vfcvt_rtz_xu(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u64m1_m)))
-vuint64m1_t vfcvt_rtz_xu(vbool64_t op0, vuint64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u64m2)))
-vuint64m2_t vfcvt_rtz_xu(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u64m2_m)))
-vuint64m2_t vfcvt_rtz_xu(vbool32_t op0, vuint64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u64m4)))
-vuint64m4_t vfcvt_rtz_xu(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u64m4_m)))
-vuint64m4_t vfcvt_rtz_xu(vbool16_t op0, vuint64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u64m8)))
-vuint64m8_t vfcvt_rtz_xu(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u64m8_m)))
-vuint64m8_t vfcvt_rtz_xu(vbool8_t op0, vuint64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i64m1)))
-vint64m1_t vfcvt_x(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i64m1_m)))
-vint64m1_t vfcvt_x(vbool64_t op0, vint64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i64m2)))
-vint64m2_t vfcvt_x(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i64m2_m)))
-vint64m2_t vfcvt_x(vbool32_t op0, vint64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i64m4)))
-vint64m4_t vfcvt_x(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i64m4_m)))
-vint64m4_t vfcvt_x(vbool16_t op0, vint64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i64m8)))
-vint64m8_t vfcvt_x(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i64m8_m)))
-vint64m8_t vfcvt_x(vbool8_t op0, vint64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u64m1)))
-vuint64m1_t vfcvt_xu(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u64m1_m)))
-vuint64m1_t vfcvt_xu(vbool64_t op0, vuint64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u64m2)))
-vuint64m2_t vfcvt_xu(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u64m2_m)))
-vuint64m2_t vfcvt_xu(vbool32_t op0, vuint64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u64m4)))
-vuint64m4_t vfcvt_xu(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u64m4_m)))
-vuint64m4_t vfcvt_xu(vbool16_t op0, vuint64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u64m8)))
-vuint64m8_t vfcvt_xu(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u64m8_m)))
-vuint64m8_t vfcvt_xu(vbool8_t op0, vuint64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i32mf2)))
-vint32mf2_t vfncvt_rtz_x(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i32mf2_m)))
-vint32mf2_t vfncvt_rtz_x(vbool64_t op0, vint32mf2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i32m1)))
-vint32m1_t vfncvt_rtz_x(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i32m1_m)))
-vint32m1_t vfncvt_rtz_x(vbool32_t op0, vint32m1_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i32m2)))
-vint32m2_t vfncvt_rtz_x(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i32m2_m)))
-vint32m2_t vfncvt_rtz_x(vbool16_t op0, vint32m2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i32m4)))
-vint32m4_t vfncvt_rtz_x(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i32m4_m)))
-vint32m4_t vfncvt_rtz_x(vbool8_t op0, vint32m4_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u32mf2)))
-vuint32mf2_t vfncvt_rtz_xu(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u32mf2_m)))
-vuint32mf2_t vfncvt_rtz_xu(vbool64_t op0, vuint32mf2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u32m1)))
-vuint32m1_t vfncvt_rtz_xu(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u32m1_m)))
-vuint32m1_t vfncvt_rtz_xu(vbool32_t op0, vuint32m1_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u32m2)))
-vuint32m2_t vfncvt_rtz_xu(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u32m2_m)))
-vuint32m2_t vfncvt_rtz_xu(vbool16_t op0, vuint32m2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u32m4)))
-vuint32m4_t vfncvt_rtz_xu(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u32m4_m)))
-vuint32m4_t vfncvt_rtz_xu(vbool8_t op0, vuint32m4_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i32mf2)))
-vint32mf2_t vfncvt_x(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i32mf2_m)))
-vint32mf2_t vfncvt_x(vbool64_t op0, vint32mf2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i32m1)))
-vint32m1_t vfncvt_x(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i32m1_m)))
-vint32m1_t vfncvt_x(vbool32_t op0, vint32m1_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i32m2)))
-vint32m2_t vfncvt_x(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i32m2_m)))
-vint32m2_t vfncvt_x(vbool16_t op0, vint32m2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i32m4)))
-vint32m4_t vfncvt_x(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i32m4_m)))
-vint32m4_t vfncvt_x(vbool8_t op0, vint32m4_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u32mf2)))
-vuint32mf2_t vfncvt_xu(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u32mf2_m)))
-vuint32mf2_t vfncvt_xu(vbool64_t op0, vuint32mf2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u32m1)))
-vuint32m1_t vfncvt_xu(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u32m1_m)))
-vuint32m1_t vfncvt_xu(vbool32_t op0, vuint32m1_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u32m2)))
-vuint32m2_t vfncvt_xu(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u32m2_m)))
-vuint32m2_t vfncvt_xu(vbool16_t op0, vuint32m2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u32m4)))
-vuint32m4_t vfncvt_xu(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u32m4_m)))
-vuint32m4_t vfncvt_xu(vbool8_t op0, vuint32m4_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f64m1)))
-vfloat64m1_t vfrec7(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f64m1_m)))
-vfloat64m1_t vfrec7(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f64m2)))
-vfloat64m2_t vfrec7(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f64m2_m)))
-vfloat64m2_t vfrec7(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f64m4)))
-vfloat64m4_t vfrec7(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f64m4_m)))
-vfloat64m4_t vfrec7(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f64m8)))
-vfloat64m8_t vfrec7(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f64m8_m)))
-vfloat64m8_t vfrec7(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f64m1)))
-vfloat64m1_t vfrsqrt7(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f64m1_m)))
-vfloat64m1_t vfrsqrt7(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f64m2)))
-vfloat64m2_t vfrsqrt7(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f64m2_m)))
-vfloat64m2_t vfrsqrt7(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f64m4)))
-vfloat64m4_t vfrsqrt7(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f64m4_m)))
-vfloat64m4_t vfrsqrt7(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f64m8)))
-vfloat64m8_t vfrsqrt7(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f64m8_m)))
-vfloat64m8_t vfrsqrt7(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f64m1)))
-vfloat64m1_t vfsqrt(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f64m1_m)))
-vfloat64m1_t vfsqrt(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f64m2)))
-vfloat64m2_t vfsqrt(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f64m2_m)))
-vfloat64m2_t vfsqrt(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f64m4)))
-vfloat64m4_t vfsqrt(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f64m4_m)))
-vfloat64m4_t vfsqrt(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f64m8)))
-vfloat64m8_t vfsqrt(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f64m8_m)))
-vfloat64m8_t vfsqrt(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f64m1)))
-vfloat64m1_t vfwcvt_f(vint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f64m1_m)))
-vfloat64m1_t vfwcvt_f(vbool64_t op0, vfloat64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f64m2)))
-vfloat64m2_t vfwcvt_f(vint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f64m2_m)))
-vfloat64m2_t vfwcvt_f(vbool32_t op0, vfloat64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f64m4)))
-vfloat64m4_t vfwcvt_f(vint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f64m4_m)))
-vfloat64m4_t vfwcvt_f(vbool16_t op0, vfloat64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f64m8)))
-vfloat64m8_t vfwcvt_f(vint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f64m8_m)))
-vfloat64m8_t vfwcvt_f(vbool8_t op0, vfloat64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f64m1)))
-vfloat64m1_t vfwcvt_f(vuint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f64m1_m)))
-vfloat64m1_t vfwcvt_f(vbool64_t op0, vfloat64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f64m2)))
-vfloat64m2_t vfwcvt_f(vuint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f64m2_m)))
-vfloat64m2_t vfwcvt_f(vbool32_t op0, vfloat64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f64m4)))
-vfloat64m4_t vfwcvt_f(vuint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f64m4_m)))
-vfloat64m4_t vfwcvt_f(vbool16_t op0, vfloat64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f64m8)))
-vfloat64m8_t vfwcvt_f(vuint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f64m8_m)))
-vfloat64m8_t vfwcvt_f(vbool8_t op0, vfloat64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f64m1_f64m2)))
-vfloat64m2_t vlmul_ext_f64m2(vfloat64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f64m1_f64m4)))
-vfloat64m4_t vlmul_ext_f64m4(vfloat64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f64m2_f64m4)))
-vfloat64m4_t vlmul_ext_f64m4(vfloat64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f64m1_f64m8)))
-vfloat64m8_t vlmul_ext_f64m8(vfloat64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f64m2_f64m8)))
-vfloat64m8_t vlmul_ext_f64m8(vfloat64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f64m4_f64m8)))
-vfloat64m8_t vlmul_ext_f64m8(vfloat64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f64m2_f64m1)))
-vfloat64m1_t vlmul_trunc_f64m1(vfloat64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f64m4_f64m1)))
-vfloat64m1_t vlmul_trunc_f64m1(vfloat64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f64m8_f64m1)))
-vfloat64m1_t vlmul_trunc_f64m1(vfloat64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f64m4_f64m2)))
-vfloat64m2_t vlmul_trunc_f64m2(vfloat64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f64m8_f64m2)))
-vfloat64m2_t vlmul_trunc_f64m2(vfloat64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f64m8_f64m4)))
-vfloat64m4_t vlmul_trunc_f64m4(vfloat64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m1_f64m1)))
-vfloat64m1_t vreinterpret_f64m1(vint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m2_f64m2)))
-vfloat64m2_t vreinterpret_f64m2(vint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m4_f64m4)))
-vfloat64m4_t vreinterpret_f64m4(vint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i64m8_f64m8)))
-vfloat64m8_t vreinterpret_f64m8(vint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m1_f64m1)))
-vfloat64m1_t vreinterpret_f64m1(vuint64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m2_f64m2)))
-vfloat64m2_t vreinterpret_f64m2(vuint64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m4_f64m4)))
-vfloat64m4_t vreinterpret_f64m4(vuint64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u64m8_f64m8)))
-vfloat64m8_t vreinterpret_f64m8(vuint64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f64m1_i64m1)))
-vint64m1_t vreinterpret_i64m1(vfloat64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f64m2_i64m2)))
-vint64m2_t vreinterpret_i64m2(vfloat64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f64m4_i64m4)))
-vint64m4_t vreinterpret_i64m4(vfloat64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f64m8_i64m8)))
-vint64m8_t vreinterpret_i64m8(vfloat64m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f64m1_u64m1)))
-vuint64m1_t vreinterpret_u64m1(vfloat64m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f64m2_u64m2)))
-vuint64m2_t vreinterpret_u64m2(vfloat64m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f64m4_u64m4)))
-vuint64m4_t vreinterpret_u64m4(vfloat64m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f64m8_u64m8)))
-vuint64m8_t vreinterpret_u64m8(vfloat64m8_t op0);
-
-#endif
-
-#if defined(__riscv_f) && defined(__riscv_d)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f64m1)))
-vfloat64m1_t vfwadd_vv(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f64m1_m)))
-vfloat64m1_t vfwadd_vv(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f64m2)))
-vfloat64m2_t vfwadd_vv(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f64m2_m)))
-vfloat64m2_t vfwadd_vv(vbool32_t op0, vfloat64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f64m4)))
-vfloat64m4_t vfwadd_vv(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f64m4_m)))
-vfloat64m4_t vfwadd_vv(vbool16_t op0, vfloat64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f64m8)))
-vfloat64m8_t vfwadd_vv(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f64m8_m)))
-vfloat64m8_t vfwadd_vv(vbool8_t op0, vfloat64m8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f64m1)))
-vfloat64m1_t vfwadd_vf(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f64m1_m)))
-vfloat64m1_t vfwadd_vf(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f64m2)))
-vfloat64m2_t vfwadd_vf(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f64m2_m)))
-vfloat64m2_t vfwadd_vf(vbool32_t op0, vfloat64m2_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f64m4)))
-vfloat64m4_t vfwadd_vf(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f64m4_m)))
-vfloat64m4_t vfwadd_vf(vbool16_t op0, vfloat64m4_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f64m8)))
-vfloat64m8_t vfwadd_vf(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f64m8_m)))
-vfloat64m8_t vfwadd_vf(vbool8_t op0, vfloat64m8_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f64m1)))
-vfloat64m1_t vfwsub_vv(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f64m1_m)))
-vfloat64m1_t vfwsub_vv(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f64m2)))
-vfloat64m2_t vfwsub_vv(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f64m2_m)))
-vfloat64m2_t vfwsub_vv(vbool32_t op0, vfloat64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f64m4)))
-vfloat64m4_t vfwsub_vv(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f64m4_m)))
-vfloat64m4_t vfwsub_vv(vbool16_t op0, vfloat64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f64m8)))
-vfloat64m8_t vfwsub_vv(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f64m8_m)))
-vfloat64m8_t vfwsub_vv(vbool8_t op0, vfloat64m8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f64m1)))
-vfloat64m1_t vfwsub_vf(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f64m1_m)))
-vfloat64m1_t vfwsub_vf(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f64m2)))
-vfloat64m2_t vfwsub_vf(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f64m2_m)))
-vfloat64m2_t vfwsub_vf(vbool32_t op0, vfloat64m2_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f64m4)))
-vfloat64m4_t vfwsub_vf(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f64m4_m)))
-vfloat64m4_t vfwsub_vf(vbool16_t op0, vfloat64m4_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f64m8)))
-vfloat64m8_t vfwsub_vf(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f64m8_m)))
-vfloat64m8_t vfwsub_vf(vbool8_t op0, vfloat64m8_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f64m1)))
-vfloat64m1_t vfwadd_wv(vfloat64m1_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f64m1_m)))
-vfloat64m1_t vfwadd_wv(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f64m2)))
-vfloat64m2_t vfwadd_wv(vfloat64m2_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f64m2_m)))
-vfloat64m2_t vfwadd_wv(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f64m4)))
-vfloat64m4_t vfwadd_wv(vfloat64m4_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f64m4_m)))
-vfloat64m4_t vfwadd_wv(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f64m8)))
-vfloat64m8_t vfwadd_wv(vfloat64m8_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f64m8_m)))
-vfloat64m8_t vfwadd_wv(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f64m1)))
-vfloat64m1_t vfwadd_wf(vfloat64m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f64m1_m)))
-vfloat64m1_t vfwadd_wf(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f64m2)))
-vfloat64m2_t vfwadd_wf(vfloat64m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f64m2_m)))
-vfloat64m2_t vfwadd_wf(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f64m4)))
-vfloat64m4_t vfwadd_wf(vfloat64m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f64m4_m)))
-vfloat64m4_t vfwadd_wf(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f64m8)))
-vfloat64m8_t vfwadd_wf(vfloat64m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f64m8_m)))
-vfloat64m8_t vfwadd_wf(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f64m1)))
-vfloat64m1_t vfwsub_wv(vfloat64m1_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f64m1_m)))
-vfloat64m1_t vfwsub_wv(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f64m2)))
-vfloat64m2_t vfwsub_wv(vfloat64m2_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f64m2_m)))
-vfloat64m2_t vfwsub_wv(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f64m4)))
-vfloat64m4_t vfwsub_wv(vfloat64m4_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f64m4_m)))
-vfloat64m4_t vfwsub_wv(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f64m8)))
-vfloat64m8_t vfwsub_wv(vfloat64m8_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f64m8_m)))
-vfloat64m8_t vfwsub_wv(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f64m1)))
-vfloat64m1_t vfwsub_wf(vfloat64m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f64m1_m)))
-vfloat64m1_t vfwsub_wf(vbool64_t op0, vfloat64m1_t op1, vfloat64m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f64m2)))
-vfloat64m2_t vfwsub_wf(vfloat64m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f64m2_m)))
-vfloat64m2_t vfwsub_wf(vbool32_t op0, vfloat64m2_t op1, vfloat64m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f64m4)))
-vfloat64m4_t vfwsub_wf(vfloat64m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f64m4_m)))
-vfloat64m4_t vfwsub_wf(vbool16_t op0, vfloat64m4_t op1, vfloat64m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f64m8)))
-vfloat64m8_t vfwsub_wf(vfloat64m8_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f64m8_m)))
-vfloat64m8_t vfwsub_wf(vbool8_t op0, vfloat64m8_t op1, vfloat64m8_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f64m1)))
-vfloat64m1_t vfwmul(vfloat32mf2_t op0, vfloat32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f64m1_m)))
-vfloat64m1_t vfwmul(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f64m2)))
-vfloat64m2_t vfwmul(vfloat32m1_t op0, vfloat32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f64m2_m)))
-vfloat64m2_t vfwmul(vbool32_t op0, vfloat64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f64m4)))
-vfloat64m4_t vfwmul(vfloat32m2_t op0, vfloat32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f64m4_m)))
-vfloat64m4_t vfwmul(vbool16_t op0, vfloat64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f64m8)))
-vfloat64m8_t vfwmul(vfloat32m4_t op0, vfloat32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f64m8_m)))
-vfloat64m8_t vfwmul(vbool8_t op0, vfloat64m8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f64m1)))
-vfloat64m1_t vfwmul(vfloat32mf2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f64m1_m)))
-vfloat64m1_t vfwmul(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f64m2)))
-vfloat64m2_t vfwmul(vfloat32m1_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f64m2_m)))
-vfloat64m2_t vfwmul(vbool32_t op0, vfloat64m2_t op1, vfloat32m1_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f64m4)))
-vfloat64m4_t vfwmul(vfloat32m2_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f64m4_m)))
-vfloat64m4_t vfwmul(vbool16_t op0, vfloat64m4_t op1, vfloat32m2_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f64m8)))
-vfloat64m8_t vfwmul(vfloat32m4_t op0, float op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f64m8_m)))
-vfloat64m8_t vfwmul(vbool8_t op0, vfloat64m8_t op1, vfloat32m4_t op2, float op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f64m1)))
-vfloat64m1_t vfwmacc(vfloat64m1_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f64m1_m)))
-vfloat64m1_t vfwmacc(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f64m2)))
-vfloat64m2_t vfwmacc(vfloat64m2_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f64m2_m)))
-vfloat64m2_t vfwmacc(vbool32_t op0, vfloat64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f64m4)))
-vfloat64m4_t vfwmacc(vfloat64m4_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f64m4_m)))
-vfloat64m4_t vfwmacc(vbool16_t op0, vfloat64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f64m8)))
-vfloat64m8_t vfwmacc(vfloat64m8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f64m8_m)))
-vfloat64m8_t vfwmacc(vbool8_t op0, vfloat64m8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f64m1)))
-vfloat64m1_t vfwmacc(vfloat64m1_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f64m1_m)))
-vfloat64m1_t vfwmacc(vbool64_t op0, vfloat64m1_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f64m2)))
-vfloat64m2_t vfwmacc(vfloat64m2_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f64m2_m)))
-vfloat64m2_t vfwmacc(vbool32_t op0, vfloat64m2_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f64m4)))
-vfloat64m4_t vfwmacc(vfloat64m4_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f64m4_m)))
-vfloat64m4_t vfwmacc(vbool16_t op0, vfloat64m4_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f64m8)))
-vfloat64m8_t vfwmacc(vfloat64m8_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f64m8_m)))
-vfloat64m8_t vfwmacc(vbool8_t op0, vfloat64m8_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f64m1)))
-vfloat64m1_t vfwnmacc(vfloat64m1_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f64m1_m)))
-vfloat64m1_t vfwnmacc(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f64m2)))
-vfloat64m2_t vfwnmacc(vfloat64m2_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f64m2_m)))
-vfloat64m2_t vfwnmacc(vbool32_t op0, vfloat64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f64m4)))
-vfloat64m4_t vfwnmacc(vfloat64m4_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f64m4_m)))
-vfloat64m4_t vfwnmacc(vbool16_t op0, vfloat64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f64m8)))
-vfloat64m8_t vfwnmacc(vfloat64m8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f64m8_m)))
-vfloat64m8_t vfwnmacc(vbool8_t op0, vfloat64m8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f64m1)))
-vfloat64m1_t vfwnmacc(vfloat64m1_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f64m1_m)))
-vfloat64m1_t vfwnmacc(vbool64_t op0, vfloat64m1_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f64m2)))
-vfloat64m2_t vfwnmacc(vfloat64m2_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f64m2_m)))
-vfloat64m2_t vfwnmacc(vbool32_t op0, vfloat64m2_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f64m4)))
-vfloat64m4_t vfwnmacc(vfloat64m4_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f64m4_m)))
-vfloat64m4_t vfwnmacc(vbool16_t op0, vfloat64m4_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f64m8)))
-vfloat64m8_t vfwnmacc(vfloat64m8_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f64m8_m)))
-vfloat64m8_t vfwnmacc(vbool8_t op0, vfloat64m8_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f64m1)))
-vfloat64m1_t vfwmsac(vfloat64m1_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f64m1_m)))
-vfloat64m1_t vfwmsac(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f64m2)))
-vfloat64m2_t vfwmsac(vfloat64m2_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f64m2_m)))
-vfloat64m2_t vfwmsac(vbool32_t op0, vfloat64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f64m4)))
-vfloat64m4_t vfwmsac(vfloat64m4_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f64m4_m)))
-vfloat64m4_t vfwmsac(vbool16_t op0, vfloat64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f64m8)))
-vfloat64m8_t vfwmsac(vfloat64m8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f64m8_m)))
-vfloat64m8_t vfwmsac(vbool8_t op0, vfloat64m8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f64m1)))
-vfloat64m1_t vfwmsac(vfloat64m1_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f64m1_m)))
-vfloat64m1_t vfwmsac(vbool64_t op0, vfloat64m1_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f64m2)))
-vfloat64m2_t vfwmsac(vfloat64m2_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f64m2_m)))
-vfloat64m2_t vfwmsac(vbool32_t op0, vfloat64m2_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f64m4)))
-vfloat64m4_t vfwmsac(vfloat64m4_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f64m4_m)))
-vfloat64m4_t vfwmsac(vbool16_t op0, vfloat64m4_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f64m8)))
-vfloat64m8_t vfwmsac(vfloat64m8_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f64m8_m)))
-vfloat64m8_t vfwmsac(vbool8_t op0, vfloat64m8_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f64m1)))
-vfloat64m1_t vfwnmsac(vfloat64m1_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f64m1_m)))
-vfloat64m1_t vfwnmsac(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f64m2)))
-vfloat64m2_t vfwnmsac(vfloat64m2_t op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f64m2_m)))
-vfloat64m2_t vfwnmsac(vbool32_t op0, vfloat64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f64m4)))
-vfloat64m4_t vfwnmsac(vfloat64m4_t op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f64m4_m)))
-vfloat64m4_t vfwnmsac(vbool16_t op0, vfloat64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f64m8)))
-vfloat64m8_t vfwnmsac(vfloat64m8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f64m8_m)))
-vfloat64m8_t vfwnmsac(vbool8_t op0, vfloat64m8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f64m1)))
-vfloat64m1_t vfwnmsac(vfloat64m1_t op0, float op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f64m1_m)))
-vfloat64m1_t vfwnmsac(vbool64_t op0, vfloat64m1_t op1, float op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f64m2)))
-vfloat64m2_t vfwnmsac(vfloat64m2_t op0, float op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f64m2_m)))
-vfloat64m2_t vfwnmsac(vbool32_t op0, vfloat64m2_t op1, float op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f64m4)))
-vfloat64m4_t vfwnmsac(vfloat64m4_t op0, float op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f64m4_m)))
-vfloat64m4_t vfwnmsac(vbool16_t op0, vfloat64m4_t op1, float op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f64m8)))
-vfloat64m8_t vfwnmsac(vfloat64m8_t op0, float op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f64m8_m)))
-vfloat64m8_t vfwnmsac(vbool8_t op0, vfloat64m8_t op1, float op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f32m1_f64m1)))
-vfloat64m1_t vfwredsum(vfloat64m1_t op0, vfloat32m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f32m1_f64m1_m)))
-vfloat64m1_t vfwredsum(vbool32_t op0, vfloat64m1_t op1, vfloat32m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f32m2_f64m1)))
-vfloat64m1_t vfwredsum(vfloat64m1_t op0, vfloat32m2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f32m2_f64m1_m)))
-vfloat64m1_t vfwredsum(vbool16_t op0, vfloat64m1_t op1, vfloat32m2_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f32m4_f64m1)))
-vfloat64m1_t vfwredsum(vfloat64m1_t op0, vfloat32m4_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f32m4_f64m1_m)))
-vfloat64m1_t vfwredsum(vbool8_t op0, vfloat64m1_t op1, vfloat32m4_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f32m8_f64m1)))
-vfloat64m1_t vfwredsum(vfloat64m1_t op0, vfloat32m8_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f32m8_f64m1_m)))
-vfloat64m1_t vfwredsum(vbool4_t op0, vfloat64m1_t op1, vfloat32m8_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f32mf2_f64m1)))
-vfloat64m1_t vfwredsum(vfloat64m1_t op0, vfloat32mf2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f32mf2_f64m1_m)))
-vfloat64m1_t vfwredsum(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f32m1_f64m1)))
-vfloat64m1_t vfwredosum(vfloat64m1_t op0, vfloat32m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f32m1_f64m1_m)))
-vfloat64m1_t vfwredosum(vbool32_t op0, vfloat64m1_t op1, vfloat32m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f32m2_f64m1)))
-vfloat64m1_t vfwredosum(vfloat64m1_t op0, vfloat32m2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f32m2_f64m1_m)))
-vfloat64m1_t vfwredosum(vbool16_t op0, vfloat64m1_t op1, vfloat32m2_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f32m4_f64m1)))
-vfloat64m1_t vfwredosum(vfloat64m1_t op0, vfloat32m4_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f32m4_f64m1_m)))
-vfloat64m1_t vfwredosum(vbool8_t op0, vfloat64m1_t op1, vfloat32m4_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f32m8_f64m1)))
-vfloat64m1_t vfwredosum(vfloat64m1_t op0, vfloat32m8_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f32m8_f64m1_m)))
-vfloat64m1_t vfwredosum(vbool4_t op0, vfloat64m1_t op1, vfloat32m8_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f32mf2_f64m1)))
-vfloat64m1_t vfwredosum(vfloat64m1_t op0, vfloat32mf2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f32mf2_f64m1_m)))
-vfloat64m1_t vfwredosum(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f32mf2)))
-vfloat32mf2_t vfncvt_f(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f32mf2_m)))
-vfloat32mf2_t vfncvt_f(vbool64_t op0, vfloat32mf2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f32m1)))
-vfloat32m1_t vfncvt_f(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f32m1_m)))
-vfloat32m1_t vfncvt_f(vbool32_t op0, vfloat32m1_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f32m2)))
-vfloat32m2_t vfncvt_f(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f32m2_m)))
-vfloat32m2_t vfncvt_f(vbool16_t op0, vfloat32m2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f32m4)))
-vfloat32m4_t vfncvt_f(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f32m4_m)))
-vfloat32m4_t vfncvt_f(vbool8_t op0, vfloat32m4_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f32mf2)))
-vfloat32mf2_t vfncvt_rod_f(vfloat64m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f32mf2_m)))
-vfloat32mf2_t vfncvt_rod_f(vbool64_t op0, vfloat32mf2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f32m1)))
-vfloat32m1_t vfncvt_rod_f(vfloat64m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f32m1_m)))
-vfloat32m1_t vfncvt_rod_f(vbool32_t op0, vfloat32m1_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f32m2)))
-vfloat32m2_t vfncvt_rod_f(vfloat64m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f32m2_m)))
-vfloat32m2_t vfncvt_rod_f(vbool16_t op0, vfloat32m2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f32m4)))
-vfloat32m4_t vfncvt_rod_f(vfloat64m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f32m4_m)))
-vfloat32m4_t vfncvt_rod_f(vbool8_t op0, vfloat32m4_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f64m1)))
-vfloat64m1_t vfwcvt_f(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f64m1_m)))
-vfloat64m1_t vfwcvt_f(vbool64_t op0, vfloat64m1_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f64m2)))
-vfloat64m2_t vfwcvt_f(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f64m2_m)))
-vfloat64m2_t vfwcvt_f(vbool32_t op0, vfloat64m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f64m4)))
-vfloat64m4_t vfwcvt_f(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f64m4_m)))
-vfloat64m4_t vfwcvt_f(vbool16_t op0, vfloat64m4_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f64m8)))
-vfloat64m8_t vfwcvt_f(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f64m8_m)))
-vfloat64m8_t vfwcvt_f(vbool8_t op0, vfloat64m8_t op1, vfloat32m4_t op2, size_t op3);
-
-#endif
-
-#if defined(__riscv_zfh)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16m1)))
-void vsse16(_Float16 * op0, ptrdiff_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16m1_m)))
-void vsse16(vbool16_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16m2)))
-void vsse16(_Float16 * op0, ptrdiff_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16m2_m)))
-void vsse16(vbool8_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16m4)))
-void vsse16(_Float16 * op0, ptrdiff_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16m4_m)))
-void vsse16(vbool4_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16m8)))
-void vsse16(_Float16 * op0, ptrdiff_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16m8_m)))
-void vsse16(vbool2_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16mf2)))
-void vsse16(_Float16 * op0, ptrdiff_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16mf2_m)))
-void vsse16(vbool32_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16mf4)))
-void vsse16(_Float16 * op0, ptrdiff_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsse16_v_f16mf4_m)))
-void vsse16(vbool64_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16m1)))
-vfloat16m1_t vluxei8(const _Float16 * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16m1_m)))
-vfloat16m1_t vluxei8(vbool16_t op0, vfloat16m1_t op1, const _Float16 * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16m2)))
-vfloat16m2_t vluxei8(const _Float16 * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16m2_m)))
-vfloat16m2_t vluxei8(vbool8_t op0, vfloat16m2_t op1, const _Float16 * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16m4)))
-vfloat16m4_t vluxei8(const _Float16 * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16m4_m)))
-vfloat16m4_t vluxei8(vbool4_t op0, vfloat16m4_t op1, const _Float16 * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16m8)))
-vfloat16m8_t vluxei8(const _Float16 * op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16m8_m)))
-vfloat16m8_t vluxei8(vbool2_t op0, vfloat16m8_t op1, const _Float16 * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16mf2)))
-vfloat16mf2_t vluxei8(const _Float16 * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16mf2_m)))
-vfloat16mf2_t vluxei8(vbool32_t op0, vfloat16mf2_t op1, const _Float16 * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16mf4)))
-vfloat16mf4_t vluxei8(const _Float16 * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei8_v_f16mf4_m)))
-vfloat16mf4_t vluxei8(vbool64_t op0, vfloat16mf4_t op1, const _Float16 * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16m1)))
-vfloat16m1_t vluxei16(const _Float16 * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16m1_m)))
-vfloat16m1_t vluxei16(vbool16_t op0, vfloat16m1_t op1, const _Float16 * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16m2)))
-vfloat16m2_t vluxei16(const _Float16 * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16m2_m)))
-vfloat16m2_t vluxei16(vbool8_t op0, vfloat16m2_t op1, const _Float16 * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16m4)))
-vfloat16m4_t vluxei16(const _Float16 * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16m4_m)))
-vfloat16m4_t vluxei16(vbool4_t op0, vfloat16m4_t op1, const _Float16 * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16m8)))
-vfloat16m8_t vluxei16(const _Float16 * op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16m8_m)))
-vfloat16m8_t vluxei16(vbool2_t op0, vfloat16m8_t op1, const _Float16 * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16mf2)))
-vfloat16mf2_t vluxei16(const _Float16 * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16mf2_m)))
-vfloat16mf2_t vluxei16(vbool32_t op0, vfloat16mf2_t op1, const _Float16 * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16mf4)))
-vfloat16mf4_t vluxei16(const _Float16 * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei16_v_f16mf4_m)))
-vfloat16mf4_t vluxei16(vbool64_t op0, vfloat16mf4_t op1, const _Float16 * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f16m1)))
-vfloat16m1_t vluxei32(const _Float16 * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f16m1_m)))
-vfloat16m1_t vluxei32(vbool16_t op0, vfloat16m1_t op1, const _Float16 * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f16m2)))
-vfloat16m2_t vluxei32(const _Float16 * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f16m2_m)))
-vfloat16m2_t vluxei32(vbool8_t op0, vfloat16m2_t op1, const _Float16 * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f16m4)))
-vfloat16m4_t vluxei32(const _Float16 * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f16m4_m)))
-vfloat16m4_t vluxei32(vbool4_t op0, vfloat16m4_t op1, const _Float16 * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f16mf2)))
-vfloat16mf2_t vluxei32(const _Float16 * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f16mf2_m)))
-vfloat16mf2_t vluxei32(vbool32_t op0, vfloat16mf2_t op1, const _Float16 * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f16mf4)))
-vfloat16mf4_t vluxei32(const _Float16 * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei32_v_f16mf4_m)))
-vfloat16mf4_t vluxei32(vbool64_t op0, vfloat16mf4_t op1, const _Float16 * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f16m1)))
-vfloat16m1_t vluxei64(const _Float16 * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f16m1_m)))
-vfloat16m1_t vluxei64(vbool16_t op0, vfloat16m1_t op1, const _Float16 * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f16m2)))
-vfloat16m2_t vluxei64(const _Float16 * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f16m2_m)))
-vfloat16m2_t vluxei64(vbool8_t op0, vfloat16m2_t op1, const _Float16 * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f16mf2)))
-vfloat16mf2_t vluxei64(const _Float16 * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f16mf2_m)))
-vfloat16mf2_t vluxei64(vbool32_t op0, vfloat16mf2_t op1, const _Float16 * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f16mf4)))
-vfloat16mf4_t vluxei64(const _Float16 * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxei64_v_f16mf4_m)))
-vfloat16mf4_t vluxei64(vbool64_t op0, vfloat16mf4_t op1, const _Float16 * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16m1)))
-vfloat16m1_t vloxei8(const _Float16 * op0, vuint8mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16m1_m)))
-vfloat16m1_t vloxei8(vbool16_t op0, vfloat16m1_t op1, const _Float16 * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16m2)))
-vfloat16m2_t vloxei8(const _Float16 * op0, vuint8m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16m2_m)))
-vfloat16m2_t vloxei8(vbool8_t op0, vfloat16m2_t op1, const _Float16 * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16m4)))
-vfloat16m4_t vloxei8(const _Float16 * op0, vuint8m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16m4_m)))
-vfloat16m4_t vloxei8(vbool4_t op0, vfloat16m4_t op1, const _Float16 * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16m8)))
-vfloat16m8_t vloxei8(const _Float16 * op0, vuint8m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16m8_m)))
-vfloat16m8_t vloxei8(vbool2_t op0, vfloat16m8_t op1, const _Float16 * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16mf2)))
-vfloat16mf2_t vloxei8(const _Float16 * op0, vuint8mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16mf2_m)))
-vfloat16mf2_t vloxei8(vbool32_t op0, vfloat16mf2_t op1, const _Float16 * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16mf4)))
-vfloat16mf4_t vloxei8(const _Float16 * op0, vuint8mf8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei8_v_f16mf4_m)))
-vfloat16mf4_t vloxei8(vbool64_t op0, vfloat16mf4_t op1, const _Float16 * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16m1)))
-vfloat16m1_t vloxei16(const _Float16 * op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16m1_m)))
-vfloat16m1_t vloxei16(vbool16_t op0, vfloat16m1_t op1, const _Float16 * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16m2)))
-vfloat16m2_t vloxei16(const _Float16 * op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16m2_m)))
-vfloat16m2_t vloxei16(vbool8_t op0, vfloat16m2_t op1, const _Float16 * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16m4)))
-vfloat16m4_t vloxei16(const _Float16 * op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16m4_m)))
-vfloat16m4_t vloxei16(vbool4_t op0, vfloat16m4_t op1, const _Float16 * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16m8)))
-vfloat16m8_t vloxei16(const _Float16 * op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16m8_m)))
-vfloat16m8_t vloxei16(vbool2_t op0, vfloat16m8_t op1, const _Float16 * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16mf2)))
-vfloat16mf2_t vloxei16(const _Float16 * op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16mf2_m)))
-vfloat16mf2_t vloxei16(vbool32_t op0, vfloat16mf2_t op1, const _Float16 * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16mf4)))
-vfloat16mf4_t vloxei16(const _Float16 * op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei16_v_f16mf4_m)))
-vfloat16mf4_t vloxei16(vbool64_t op0, vfloat16mf4_t op1, const _Float16 * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f16m1)))
-vfloat16m1_t vloxei32(const _Float16 * op0, vuint32m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f16m1_m)))
-vfloat16m1_t vloxei32(vbool16_t op0, vfloat16m1_t op1, const _Float16 * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f16m2)))
-vfloat16m2_t vloxei32(const _Float16 * op0, vuint32m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f16m2_m)))
-vfloat16m2_t vloxei32(vbool8_t op0, vfloat16m2_t op1, const _Float16 * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f16m4)))
-vfloat16m4_t vloxei32(const _Float16 * op0, vuint32m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f16m4_m)))
-vfloat16m4_t vloxei32(vbool4_t op0, vfloat16m4_t op1, const _Float16 * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f16mf2)))
-vfloat16mf2_t vloxei32(const _Float16 * op0, vuint32m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f16mf2_m)))
-vfloat16mf2_t vloxei32(vbool32_t op0, vfloat16mf2_t op1, const _Float16 * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f16mf4)))
-vfloat16mf4_t vloxei32(const _Float16 * op0, vuint32mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei32_v_f16mf4_m)))
-vfloat16mf4_t vloxei32(vbool64_t op0, vfloat16mf4_t op1, const _Float16 * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f16m1)))
-vfloat16m1_t vloxei64(const _Float16 * op0, vuint64m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f16m1_m)))
-vfloat16m1_t vloxei64(vbool16_t op0, vfloat16m1_t op1, const _Float16 * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f16m2)))
-vfloat16m2_t vloxei64(const _Float16 * op0, vuint64m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f16m2_m)))
-vfloat16m2_t vloxei64(vbool8_t op0, vfloat16m2_t op1, const _Float16 * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f16mf2)))
-vfloat16mf2_t vloxei64(const _Float16 * op0, vuint64m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f16mf2_m)))
-vfloat16mf2_t vloxei64(vbool32_t op0, vfloat16mf2_t op1, const _Float16 * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f16mf4)))
-vfloat16mf4_t vloxei64(const _Float16 * op0, vuint64m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxei64_v_f16mf4_m)))
-vfloat16mf4_t vloxei64(vbool64_t op0, vfloat16mf4_t op1, const _Float16 * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f16m1)))
-vfloat16m1_t vmv_v(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f16m2)))
-vfloat16m2_t vmv_v(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f16m4)))
-vfloat16m4_t vmv_v(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f16m8)))
-vfloat16m8_t vmv_v(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f16mf2)))
-vfloat16mf2_t vmv_v(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmv_v_v_f16mf4)))
-vfloat16mf4_t vmv_v(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16m1)))
-vfloat16m1_t vfadd(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16m1_m)))
-vfloat16m1_t vfadd(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16m2)))
-vfloat16m2_t vfadd(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16m2_m)))
-vfloat16m2_t vfadd(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16m4)))
-vfloat16m4_t vfadd(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16m4_m)))
-vfloat16m4_t vfadd(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16m8)))
-vfloat16m8_t vfadd(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16m8_m)))
-vfloat16m8_t vfadd(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16mf2)))
-vfloat16mf2_t vfadd(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16mf2_m)))
-vfloat16mf2_t vfadd(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16mf4)))
-vfloat16mf4_t vfadd(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vv_f16mf4_m)))
-vfloat16mf4_t vfadd(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16m1)))
-vfloat16m1_t vfadd(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16m1_m)))
-vfloat16m1_t vfadd(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16m2)))
-vfloat16m2_t vfadd(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16m2_m)))
-vfloat16m2_t vfadd(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16m4)))
-vfloat16m4_t vfadd(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16m4_m)))
-vfloat16m4_t vfadd(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16m8)))
-vfloat16m8_t vfadd(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16m8_m)))
-vfloat16m8_t vfadd(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16mf2)))
-vfloat16mf2_t vfadd(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16mf2_m)))
-vfloat16mf2_t vfadd(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16mf4)))
-vfloat16mf4_t vfadd(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfadd_vf_f16mf4_m)))
-vfloat16mf4_t vfadd(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16m1)))
-vfloat16m1_t vfsub(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16m1_m)))
-vfloat16m1_t vfsub(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16m2)))
-vfloat16m2_t vfsub(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16m2_m)))
-vfloat16m2_t vfsub(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16m4)))
-vfloat16m4_t vfsub(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16m4_m)))
-vfloat16m4_t vfsub(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16m8)))
-vfloat16m8_t vfsub(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16m8_m)))
-vfloat16m8_t vfsub(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16mf2)))
-vfloat16mf2_t vfsub(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16mf2_m)))
-vfloat16mf2_t vfsub(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16mf4)))
-vfloat16mf4_t vfsub(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vv_f16mf4_m)))
-vfloat16mf4_t vfsub(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16m1)))
-vfloat16m1_t vfsub(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16m1_m)))
-vfloat16m1_t vfsub(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16m2)))
-vfloat16m2_t vfsub(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16m2_m)))
-vfloat16m2_t vfsub(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16m4)))
-vfloat16m4_t vfsub(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16m4_m)))
-vfloat16m4_t vfsub(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16m8)))
-vfloat16m8_t vfsub(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16m8_m)))
-vfloat16m8_t vfsub(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16mf2)))
-vfloat16mf2_t vfsub(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16mf2_m)))
-vfloat16mf2_t vfsub(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16mf4)))
-vfloat16mf4_t vfsub(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsub_vf_f16mf4_m)))
-vfloat16mf4_t vfsub(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16m1)))
-vfloat16m1_t vfrsub(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16m1_m)))
-vfloat16m1_t vfrsub(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16m2)))
-vfloat16m2_t vfrsub(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16m2_m)))
-vfloat16m2_t vfrsub(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16m4)))
-vfloat16m4_t vfrsub(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16m4_m)))
-vfloat16m4_t vfrsub(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16m8)))
-vfloat16m8_t vfrsub(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16m8_m)))
-vfloat16m8_t vfrsub(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16mf2)))
-vfloat16mf2_t vfrsub(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16mf2_m)))
-vfloat16mf2_t vfrsub(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16mf4)))
-vfloat16mf4_t vfrsub(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsub_vf_f16mf4_m)))
-vfloat16mf4_t vfrsub(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16m1)))
-vfloat16m1_t vfmul(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16m1_m)))
-vfloat16m1_t vfmul(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16m2)))
-vfloat16m2_t vfmul(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16m2_m)))
-vfloat16m2_t vfmul(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16m4)))
-vfloat16m4_t vfmul(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16m4_m)))
-vfloat16m4_t vfmul(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16m8)))
-vfloat16m8_t vfmul(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16m8_m)))
-vfloat16m8_t vfmul(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16mf2)))
-vfloat16mf2_t vfmul(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16mf2_m)))
-vfloat16mf2_t vfmul(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16mf4)))
-vfloat16mf4_t vfmul(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vv_f16mf4_m)))
-vfloat16mf4_t vfmul(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16m1)))
-vfloat16m1_t vfmul(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16m1_m)))
-vfloat16m1_t vfmul(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16m2)))
-vfloat16m2_t vfmul(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16m2_m)))
-vfloat16m2_t vfmul(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16m4)))
-vfloat16m4_t vfmul(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16m4_m)))
-vfloat16m4_t vfmul(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16m8)))
-vfloat16m8_t vfmul(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16m8_m)))
-vfloat16m8_t vfmul(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16mf2)))
-vfloat16mf2_t vfmul(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16mf2_m)))
-vfloat16mf2_t vfmul(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16mf4)))
-vfloat16mf4_t vfmul(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmul_vf_f16mf4_m)))
-vfloat16mf4_t vfmul(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16m1)))
-vfloat16m1_t vfdiv(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16m1_m)))
-vfloat16m1_t vfdiv(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16m2)))
-vfloat16m2_t vfdiv(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16m2_m)))
-vfloat16m2_t vfdiv(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16m4)))
-vfloat16m4_t vfdiv(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16m4_m)))
-vfloat16m4_t vfdiv(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16m8)))
-vfloat16m8_t vfdiv(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16m8_m)))
-vfloat16m8_t vfdiv(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16mf2)))
-vfloat16mf2_t vfdiv(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16mf2_m)))
-vfloat16mf2_t vfdiv(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16mf4)))
-vfloat16mf4_t vfdiv(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vv_f16mf4_m)))
-vfloat16mf4_t vfdiv(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16m1)))
-vfloat16m1_t vfdiv(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16m1_m)))
-vfloat16m1_t vfdiv(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16m2)))
-vfloat16m2_t vfdiv(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16m2_m)))
-vfloat16m2_t vfdiv(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16m4)))
-vfloat16m4_t vfdiv(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16m4_m)))
-vfloat16m4_t vfdiv(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16m8)))
-vfloat16m8_t vfdiv(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16m8_m)))
-vfloat16m8_t vfdiv(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16mf2)))
-vfloat16mf2_t vfdiv(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16mf2_m)))
-vfloat16mf2_t vfdiv(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16mf4)))
-vfloat16mf4_t vfdiv(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfdiv_vf_f16mf4_m)))
-vfloat16mf4_t vfdiv(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16m1)))
-vfloat16m1_t vfrdiv(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16m1_m)))
-vfloat16m1_t vfrdiv(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16m2)))
-vfloat16m2_t vfrdiv(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16m2_m)))
-vfloat16m2_t vfrdiv(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16m4)))
-vfloat16m4_t vfrdiv(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16m4_m)))
-vfloat16m4_t vfrdiv(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16m8)))
-vfloat16m8_t vfrdiv(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16m8_m)))
-vfloat16m8_t vfrdiv(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16mf2)))
-vfloat16mf2_t vfrdiv(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16mf2_m)))
-vfloat16mf2_t vfrdiv(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16mf4)))
-vfloat16mf4_t vfrdiv(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrdiv_vf_f16mf4_m)))
-vfloat16mf4_t vfrdiv(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16m1)))
-vfloat16m1_t vfmacc(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16m1_m)))
-vfloat16m1_t vfmacc(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16m2)))
-vfloat16m2_t vfmacc(vfloat16m2_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16m2_m)))
-vfloat16m2_t vfmacc(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16m4)))
-vfloat16m4_t vfmacc(vfloat16m4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16m4_m)))
-vfloat16m4_t vfmacc(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16m8)))
-vfloat16m8_t vfmacc(vfloat16m8_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16m8_m)))
-vfloat16m8_t vfmacc(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16mf2)))
-vfloat16mf2_t vfmacc(vfloat16mf2_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16mf2_m)))
-vfloat16mf2_t vfmacc(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16mf4)))
-vfloat16mf4_t vfmacc(vfloat16mf4_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vv_f16mf4_m)))
-vfloat16mf4_t vfmacc(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16m1)))
-vfloat16m1_t vfmacc(vfloat16m1_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16m1_m)))
-vfloat16m1_t vfmacc(vbool16_t op0, vfloat16m1_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16m2)))
-vfloat16m2_t vfmacc(vfloat16m2_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16m2_m)))
-vfloat16m2_t vfmacc(vbool8_t op0, vfloat16m2_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16m4)))
-vfloat16m4_t vfmacc(vfloat16m4_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16m4_m)))
-vfloat16m4_t vfmacc(vbool4_t op0, vfloat16m4_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16m8)))
-vfloat16m8_t vfmacc(vfloat16m8_t op0, _Float16 op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16m8_m)))
-vfloat16m8_t vfmacc(vbool2_t op0, vfloat16m8_t op1, _Float16 op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16mf2)))
-vfloat16mf2_t vfmacc(vfloat16mf2_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16mf2_m)))
-vfloat16mf2_t vfmacc(vbool32_t op0, vfloat16mf2_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16mf4)))
-vfloat16mf4_t vfmacc(vfloat16mf4_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmacc_vf_f16mf4_m)))
-vfloat16mf4_t vfmacc(vbool64_t op0, vfloat16mf4_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16m1)))
-vfloat16m1_t vfnmacc(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16m1_m)))
-vfloat16m1_t vfnmacc(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16m2)))
-vfloat16m2_t vfnmacc(vfloat16m2_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16m2_m)))
-vfloat16m2_t vfnmacc(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16m4)))
-vfloat16m4_t vfnmacc(vfloat16m4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16m4_m)))
-vfloat16m4_t vfnmacc(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16m8)))
-vfloat16m8_t vfnmacc(vfloat16m8_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16m8_m)))
-vfloat16m8_t vfnmacc(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16mf2)))
-vfloat16mf2_t vfnmacc(vfloat16mf2_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16mf2_m)))
-vfloat16mf2_t vfnmacc(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16mf4)))
-vfloat16mf4_t vfnmacc(vfloat16mf4_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vv_f16mf4_m)))
-vfloat16mf4_t vfnmacc(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16m1)))
-vfloat16m1_t vfnmacc(vfloat16m1_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16m1_m)))
-vfloat16m1_t vfnmacc(vbool16_t op0, vfloat16m1_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16m2)))
-vfloat16m2_t vfnmacc(vfloat16m2_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16m2_m)))
-vfloat16m2_t vfnmacc(vbool8_t op0, vfloat16m2_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16m4)))
-vfloat16m4_t vfnmacc(vfloat16m4_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16m4_m)))
-vfloat16m4_t vfnmacc(vbool4_t op0, vfloat16m4_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16m8)))
-vfloat16m8_t vfnmacc(vfloat16m8_t op0, _Float16 op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16m8_m)))
-vfloat16m8_t vfnmacc(vbool2_t op0, vfloat16m8_t op1, _Float16 op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16mf2)))
-vfloat16mf2_t vfnmacc(vfloat16mf2_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16mf2_m)))
-vfloat16mf2_t vfnmacc(vbool32_t op0, vfloat16mf2_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16mf4)))
-vfloat16mf4_t vfnmacc(vfloat16mf4_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmacc_vf_f16mf4_m)))
-vfloat16mf4_t vfnmacc(vbool64_t op0, vfloat16mf4_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16m1)))
-vfloat16m1_t vfmsac(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16m1_m)))
-vfloat16m1_t vfmsac(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16m2)))
-vfloat16m2_t vfmsac(vfloat16m2_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16m2_m)))
-vfloat16m2_t vfmsac(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16m4)))
-vfloat16m4_t vfmsac(vfloat16m4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16m4_m)))
-vfloat16m4_t vfmsac(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16m8)))
-vfloat16m8_t vfmsac(vfloat16m8_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16m8_m)))
-vfloat16m8_t vfmsac(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16mf2)))
-vfloat16mf2_t vfmsac(vfloat16mf2_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16mf2_m)))
-vfloat16mf2_t vfmsac(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16mf4)))
-vfloat16mf4_t vfmsac(vfloat16mf4_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vv_f16mf4_m)))
-vfloat16mf4_t vfmsac(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16m1)))
-vfloat16m1_t vfmsac(vfloat16m1_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16m1_m)))
-vfloat16m1_t vfmsac(vbool16_t op0, vfloat16m1_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16m2)))
-vfloat16m2_t vfmsac(vfloat16m2_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16m2_m)))
-vfloat16m2_t vfmsac(vbool8_t op0, vfloat16m2_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16m4)))
-vfloat16m4_t vfmsac(vfloat16m4_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16m4_m)))
-vfloat16m4_t vfmsac(vbool4_t op0, vfloat16m4_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16m8)))
-vfloat16m8_t vfmsac(vfloat16m8_t op0, _Float16 op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16m8_m)))
-vfloat16m8_t vfmsac(vbool2_t op0, vfloat16m8_t op1, _Float16 op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16mf2)))
-vfloat16mf2_t vfmsac(vfloat16mf2_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16mf2_m)))
-vfloat16mf2_t vfmsac(vbool32_t op0, vfloat16mf2_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16mf4)))
-vfloat16mf4_t vfmsac(vfloat16mf4_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsac_vf_f16mf4_m)))
-vfloat16mf4_t vfmsac(vbool64_t op0, vfloat16mf4_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16m1)))
-vfloat16m1_t vfnmsac(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16m1_m)))
-vfloat16m1_t vfnmsac(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16m2)))
-vfloat16m2_t vfnmsac(vfloat16m2_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16m2_m)))
-vfloat16m2_t vfnmsac(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16m4)))
-vfloat16m4_t vfnmsac(vfloat16m4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16m4_m)))
-vfloat16m4_t vfnmsac(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16m8)))
-vfloat16m8_t vfnmsac(vfloat16m8_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16m8_m)))
-vfloat16m8_t vfnmsac(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16mf2)))
-vfloat16mf2_t vfnmsac(vfloat16mf2_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16mf2_m)))
-vfloat16mf2_t vfnmsac(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16mf4)))
-vfloat16mf4_t vfnmsac(vfloat16mf4_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vv_f16mf4_m)))
-vfloat16mf4_t vfnmsac(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16m1)))
-vfloat16m1_t vfnmsac(vfloat16m1_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16m1_m)))
-vfloat16m1_t vfnmsac(vbool16_t op0, vfloat16m1_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16m2)))
-vfloat16m2_t vfnmsac(vfloat16m2_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16m2_m)))
-vfloat16m2_t vfnmsac(vbool8_t op0, vfloat16m2_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16m4)))
-vfloat16m4_t vfnmsac(vfloat16m4_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16m4_m)))
-vfloat16m4_t vfnmsac(vbool4_t op0, vfloat16m4_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16m8)))
-vfloat16m8_t vfnmsac(vfloat16m8_t op0, _Float16 op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16m8_m)))
-vfloat16m8_t vfnmsac(vbool2_t op0, vfloat16m8_t op1, _Float16 op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16mf2)))
-vfloat16mf2_t vfnmsac(vfloat16mf2_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16mf2_m)))
-vfloat16mf2_t vfnmsac(vbool32_t op0, vfloat16mf2_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16mf4)))
-vfloat16mf4_t vfnmsac(vfloat16mf4_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsac_vf_f16mf4_m)))
-vfloat16mf4_t vfnmsac(vbool64_t op0, vfloat16mf4_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16m1)))
-vfloat16m1_t vfmadd(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16m1_m)))
-vfloat16m1_t vfmadd(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16m2)))
-vfloat16m2_t vfmadd(vfloat16m2_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16m2_m)))
-vfloat16m2_t vfmadd(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16m4)))
-vfloat16m4_t vfmadd(vfloat16m4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16m4_m)))
-vfloat16m4_t vfmadd(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16m8)))
-vfloat16m8_t vfmadd(vfloat16m8_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16m8_m)))
-vfloat16m8_t vfmadd(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16mf2)))
-vfloat16mf2_t vfmadd(vfloat16mf2_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16mf2_m)))
-vfloat16mf2_t vfmadd(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16mf4)))
-vfloat16mf4_t vfmadd(vfloat16mf4_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vv_f16mf4_m)))
-vfloat16mf4_t vfmadd(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16m1)))
-vfloat16m1_t vfmadd(vfloat16m1_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16m1_m)))
-vfloat16m1_t vfmadd(vbool16_t op0, vfloat16m1_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16m2)))
-vfloat16m2_t vfmadd(vfloat16m2_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16m2_m)))
-vfloat16m2_t vfmadd(vbool8_t op0, vfloat16m2_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16m4)))
-vfloat16m4_t vfmadd(vfloat16m4_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16m4_m)))
-vfloat16m4_t vfmadd(vbool4_t op0, vfloat16m4_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16m8)))
-vfloat16m8_t vfmadd(vfloat16m8_t op0, _Float16 op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16m8_m)))
-vfloat16m8_t vfmadd(vbool2_t op0, vfloat16m8_t op1, _Float16 op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16mf2)))
-vfloat16mf2_t vfmadd(vfloat16mf2_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16mf2_m)))
-vfloat16mf2_t vfmadd(vbool32_t op0, vfloat16mf2_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16mf4)))
-vfloat16mf4_t vfmadd(vfloat16mf4_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmadd_vf_f16mf4_m)))
-vfloat16mf4_t vfmadd(vbool64_t op0, vfloat16mf4_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16m1)))
-vfloat16m1_t vfnmadd(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16m1_m)))
-vfloat16m1_t vfnmadd(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16m2)))
-vfloat16m2_t vfnmadd(vfloat16m2_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16m2_m)))
-vfloat16m2_t vfnmadd(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16m4)))
-vfloat16m4_t vfnmadd(vfloat16m4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16m4_m)))
-vfloat16m4_t vfnmadd(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16m8)))
-vfloat16m8_t vfnmadd(vfloat16m8_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16m8_m)))
-vfloat16m8_t vfnmadd(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16mf2)))
-vfloat16mf2_t vfnmadd(vfloat16mf2_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16mf2_m)))
-vfloat16mf2_t vfnmadd(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16mf4)))
-vfloat16mf4_t vfnmadd(vfloat16mf4_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vv_f16mf4_m)))
-vfloat16mf4_t vfnmadd(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16m1)))
-vfloat16m1_t vfnmadd(vfloat16m1_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16m1_m)))
-vfloat16m1_t vfnmadd(vbool16_t op0, vfloat16m1_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16m2)))
-vfloat16m2_t vfnmadd(vfloat16m2_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16m2_m)))
-vfloat16m2_t vfnmadd(vbool8_t op0, vfloat16m2_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16m4)))
-vfloat16m4_t vfnmadd(vfloat16m4_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16m4_m)))
-vfloat16m4_t vfnmadd(vbool4_t op0, vfloat16m4_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16m8)))
-vfloat16m8_t vfnmadd(vfloat16m8_t op0, _Float16 op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16m8_m)))
-vfloat16m8_t vfnmadd(vbool2_t op0, vfloat16m8_t op1, _Float16 op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16mf2)))
-vfloat16mf2_t vfnmadd(vfloat16mf2_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16mf2_m)))
-vfloat16mf2_t vfnmadd(vbool32_t op0, vfloat16mf2_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16mf4)))
-vfloat16mf4_t vfnmadd(vfloat16mf4_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmadd_vf_f16mf4_m)))
-vfloat16mf4_t vfnmadd(vbool64_t op0, vfloat16mf4_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16m1)))
-vfloat16m1_t vfmsub(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16m1_m)))
-vfloat16m1_t vfmsub(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16m2)))
-vfloat16m2_t vfmsub(vfloat16m2_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16m2_m)))
-vfloat16m2_t vfmsub(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16m4)))
-vfloat16m4_t vfmsub(vfloat16m4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16m4_m)))
-vfloat16m4_t vfmsub(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16m8)))
-vfloat16m8_t vfmsub(vfloat16m8_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16m8_m)))
-vfloat16m8_t vfmsub(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16mf2)))
-vfloat16mf2_t vfmsub(vfloat16mf2_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16mf2_m)))
-vfloat16mf2_t vfmsub(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16mf4)))
-vfloat16mf4_t vfmsub(vfloat16mf4_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vv_f16mf4_m)))
-vfloat16mf4_t vfmsub(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16m1)))
-vfloat16m1_t vfmsub(vfloat16m1_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16m1_m)))
-vfloat16m1_t vfmsub(vbool16_t op0, vfloat16m1_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16m2)))
-vfloat16m2_t vfmsub(vfloat16m2_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16m2_m)))
-vfloat16m2_t vfmsub(vbool8_t op0, vfloat16m2_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16m4)))
-vfloat16m4_t vfmsub(vfloat16m4_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16m4_m)))
-vfloat16m4_t vfmsub(vbool4_t op0, vfloat16m4_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16m8)))
-vfloat16m8_t vfmsub(vfloat16m8_t op0, _Float16 op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16m8_m)))
-vfloat16m8_t vfmsub(vbool2_t op0, vfloat16m8_t op1, _Float16 op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16mf2)))
-vfloat16mf2_t vfmsub(vfloat16mf2_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16mf2_m)))
-vfloat16mf2_t vfmsub(vbool32_t op0, vfloat16mf2_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16mf4)))
-vfloat16mf4_t vfmsub(vfloat16mf4_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmsub_vf_f16mf4_m)))
-vfloat16mf4_t vfmsub(vbool64_t op0, vfloat16mf4_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16m1)))
-vfloat16m1_t vfnmsub(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16m1_m)))
-vfloat16m1_t vfnmsub(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16m2)))
-vfloat16m2_t vfnmsub(vfloat16m2_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16m2_m)))
-vfloat16m2_t vfnmsub(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16m4)))
-vfloat16m4_t vfnmsub(vfloat16m4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16m4_m)))
-vfloat16m4_t vfnmsub(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16m8)))
-vfloat16m8_t vfnmsub(vfloat16m8_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16m8_m)))
-vfloat16m8_t vfnmsub(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16mf2)))
-vfloat16mf2_t vfnmsub(vfloat16mf2_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16mf2_m)))
-vfloat16mf2_t vfnmsub(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16mf4)))
-vfloat16mf4_t vfnmsub(vfloat16mf4_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vv_f16mf4_m)))
-vfloat16mf4_t vfnmsub(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16m1)))
-vfloat16m1_t vfnmsub(vfloat16m1_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16m1_m)))
-vfloat16m1_t vfnmsub(vbool16_t op0, vfloat16m1_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16m2)))
-vfloat16m2_t vfnmsub(vfloat16m2_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16m2_m)))
-vfloat16m2_t vfnmsub(vbool8_t op0, vfloat16m2_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16m4)))
-vfloat16m4_t vfnmsub(vfloat16m4_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16m4_m)))
-vfloat16m4_t vfnmsub(vbool4_t op0, vfloat16m4_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16m8)))
-vfloat16m8_t vfnmsub(vfloat16m8_t op0, _Float16 op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16m8_m)))
-vfloat16m8_t vfnmsub(vbool2_t op0, vfloat16m8_t op1, _Float16 op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16mf2)))
-vfloat16mf2_t vfnmsub(vfloat16mf2_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16mf2_m)))
-vfloat16mf2_t vfnmsub(vbool32_t op0, vfloat16mf2_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16mf4)))
-vfloat16mf4_t vfnmsub(vfloat16mf4_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfnmsub_vf_f16mf4_m)))
-vfloat16mf4_t vfnmsub(vbool64_t op0, vfloat16mf4_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16m1)))
-vfloat16m1_t vfmin(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16m1_m)))
-vfloat16m1_t vfmin(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16m2)))
-vfloat16m2_t vfmin(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16m2_m)))
-vfloat16m2_t vfmin(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16m4)))
-vfloat16m4_t vfmin(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16m4_m)))
-vfloat16m4_t vfmin(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16m8)))
-vfloat16m8_t vfmin(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16m8_m)))
-vfloat16m8_t vfmin(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16mf2)))
-vfloat16mf2_t vfmin(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16mf2_m)))
-vfloat16mf2_t vfmin(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16mf4)))
-vfloat16mf4_t vfmin(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vv_f16mf4_m)))
-vfloat16mf4_t vfmin(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16m1)))
-vfloat16m1_t vfmin(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16m1_m)))
-vfloat16m1_t vfmin(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16m2)))
-vfloat16m2_t vfmin(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16m2_m)))
-vfloat16m2_t vfmin(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16m4)))
-vfloat16m4_t vfmin(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16m4_m)))
-vfloat16m4_t vfmin(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16m8)))
-vfloat16m8_t vfmin(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16m8_m)))
-vfloat16m8_t vfmin(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16mf2)))
-vfloat16mf2_t vfmin(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16mf2_m)))
-vfloat16mf2_t vfmin(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16mf4)))
-vfloat16mf4_t vfmin(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmin_vf_f16mf4_m)))
-vfloat16mf4_t vfmin(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16m1)))
-vfloat16m1_t vfmax(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16m1_m)))
-vfloat16m1_t vfmax(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16m2)))
-vfloat16m2_t vfmax(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16m2_m)))
-vfloat16m2_t vfmax(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16m4)))
-vfloat16m4_t vfmax(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16m4_m)))
-vfloat16m4_t vfmax(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16m8)))
-vfloat16m8_t vfmax(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16m8_m)))
-vfloat16m8_t vfmax(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16mf2)))
-vfloat16mf2_t vfmax(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16mf2_m)))
-vfloat16mf2_t vfmax(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16mf4)))
-vfloat16mf4_t vfmax(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vv_f16mf4_m)))
-vfloat16mf4_t vfmax(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16m1)))
-vfloat16m1_t vfmax(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16m1_m)))
-vfloat16m1_t vfmax(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16m2)))
-vfloat16m2_t vfmax(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16m2_m)))
-vfloat16m2_t vfmax(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16m4)))
-vfloat16m4_t vfmax(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16m4_m)))
-vfloat16m4_t vfmax(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16m8)))
-vfloat16m8_t vfmax(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16m8_m)))
-vfloat16m8_t vfmax(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16mf2)))
-vfloat16mf2_t vfmax(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16mf2_m)))
-vfloat16mf2_t vfmax(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16mf4)))
-vfloat16mf4_t vfmax(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmax_vf_f16mf4_m)))
-vfloat16mf4_t vfmax(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16m1)))
-vfloat16m1_t vfsgnj(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16m1_m)))
-vfloat16m1_t vfsgnj(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16m2)))
-vfloat16m2_t vfsgnj(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16m2_m)))
-vfloat16m2_t vfsgnj(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16m4)))
-vfloat16m4_t vfsgnj(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16m4_m)))
-vfloat16m4_t vfsgnj(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16m8)))
-vfloat16m8_t vfsgnj(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16m8_m)))
-vfloat16m8_t vfsgnj(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16mf2)))
-vfloat16mf2_t vfsgnj(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16mf2_m)))
-vfloat16mf2_t vfsgnj(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16mf4)))
-vfloat16mf4_t vfsgnj(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vv_f16mf4_m)))
-vfloat16mf4_t vfsgnj(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16m1)))
-vfloat16m1_t vfsgnj(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16m1_m)))
-vfloat16m1_t vfsgnj(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16m2)))
-vfloat16m2_t vfsgnj(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16m2_m)))
-vfloat16m2_t vfsgnj(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16m4)))
-vfloat16m4_t vfsgnj(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16m4_m)))
-vfloat16m4_t vfsgnj(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16m8)))
-vfloat16m8_t vfsgnj(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16m8_m)))
-vfloat16m8_t vfsgnj(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16mf2)))
-vfloat16mf2_t vfsgnj(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16mf2_m)))
-vfloat16mf2_t vfsgnj(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16mf4)))
-vfloat16mf4_t vfsgnj(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnj_vf_f16mf4_m)))
-vfloat16mf4_t vfsgnj(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16m1)))
-vfloat16m1_t vfsgnjn(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16m1_m)))
-vfloat16m1_t vfsgnjn(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16m2)))
-vfloat16m2_t vfsgnjn(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16m2_m)))
-vfloat16m2_t vfsgnjn(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16m4)))
-vfloat16m4_t vfsgnjn(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16m4_m)))
-vfloat16m4_t vfsgnjn(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16m8)))
-vfloat16m8_t vfsgnjn(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16m8_m)))
-vfloat16m8_t vfsgnjn(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16mf2)))
-vfloat16mf2_t vfsgnjn(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16mf2_m)))
-vfloat16mf2_t vfsgnjn(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16mf4)))
-vfloat16mf4_t vfsgnjn(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vv_f16mf4_m)))
-vfloat16mf4_t vfsgnjn(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16m1)))
-vfloat16m1_t vfsgnjn(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16m1_m)))
-vfloat16m1_t vfsgnjn(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16m2)))
-vfloat16m2_t vfsgnjn(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16m2_m)))
-vfloat16m2_t vfsgnjn(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16m4)))
-vfloat16m4_t vfsgnjn(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16m4_m)))
-vfloat16m4_t vfsgnjn(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16m8)))
-vfloat16m8_t vfsgnjn(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16m8_m)))
-vfloat16m8_t vfsgnjn(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16mf2)))
-vfloat16mf2_t vfsgnjn(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16mf2_m)))
-vfloat16mf2_t vfsgnjn(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16mf4)))
-vfloat16mf4_t vfsgnjn(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjn_vf_f16mf4_m)))
-vfloat16mf4_t vfsgnjn(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16m1)))
-vfloat16m1_t vfsgnjx(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16m1_m)))
-vfloat16m1_t vfsgnjx(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16m2)))
-vfloat16m2_t vfsgnjx(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16m2_m)))
-vfloat16m2_t vfsgnjx(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16m4)))
-vfloat16m4_t vfsgnjx(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16m4_m)))
-vfloat16m4_t vfsgnjx(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16m8)))
-vfloat16m8_t vfsgnjx(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16m8_m)))
-vfloat16m8_t vfsgnjx(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16mf2)))
-vfloat16mf2_t vfsgnjx(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16mf2_m)))
-vfloat16mf2_t vfsgnjx(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16mf4)))
-vfloat16mf4_t vfsgnjx(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vv_f16mf4_m)))
-vfloat16mf4_t vfsgnjx(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16m1)))
-vfloat16m1_t vfsgnjx(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16m1_m)))
-vfloat16m1_t vfsgnjx(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16m2)))
-vfloat16m2_t vfsgnjx(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16m2_m)))
-vfloat16m2_t vfsgnjx(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16m4)))
-vfloat16m4_t vfsgnjx(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16m4_m)))
-vfloat16m4_t vfsgnjx(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16m8)))
-vfloat16m8_t vfsgnjx(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16m8_m)))
-vfloat16m8_t vfsgnjx(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16mf2)))
-vfloat16mf2_t vfsgnjx(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16mf2_m)))
-vfloat16mf2_t vfsgnjx(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16mf4)))
-vfloat16mf4_t vfsgnjx(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsgnjx_vf_f16mf4_m)))
-vfloat16mf4_t vfsgnjx(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16m1)))
-vfloat16m1_t vfabs(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16m1_m)))
-vfloat16m1_t vfabs(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16m2)))
-vfloat16m2_t vfabs(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16m2_m)))
-vfloat16m2_t vfabs(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16m4)))
-vfloat16m4_t vfabs(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16m4_m)))
-vfloat16m4_t vfabs(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16m8)))
-vfloat16m8_t vfabs(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16m8_m)))
-vfloat16m8_t vfabs(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16mf2)))
-vfloat16mf2_t vfabs(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16mf2_m)))
-vfloat16mf2_t vfabs(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16mf4)))
-vfloat16mf4_t vfabs(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfabs_v_f16mf4_m)))
-vfloat16mf4_t vfabs(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16m1_b16)))
-vbool16_t vmfeq(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16m1_b16_m)))
-vbool16_t vmfeq(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16m2_b8)))
-vbool8_t vmfeq(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16m2_b8_m)))
-vbool8_t vmfeq(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16m4_b4)))
-vbool4_t vmfeq(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16m4_b4_m)))
-vbool4_t vmfeq(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16m8_b2)))
-vbool2_t vmfeq(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16m8_b2_m)))
-vbool2_t vmfeq(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16mf2_b32)))
-vbool32_t vmfeq(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16mf2_b32_m)))
-vbool32_t vmfeq(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16mf4_b64)))
-vbool64_t vmfeq(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vv_f16mf4_b64_m)))
-vbool64_t vmfeq(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16m1_b16)))
-vbool16_t vmfeq(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16m1_b16_m)))
-vbool16_t vmfeq(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16m2_b8)))
-vbool8_t vmfeq(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16m2_b8_m)))
-vbool8_t vmfeq(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16m4_b4)))
-vbool4_t vmfeq(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16m4_b4_m)))
-vbool4_t vmfeq(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16m8_b2)))
-vbool2_t vmfeq(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16m8_b2_m)))
-vbool2_t vmfeq(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16mf2_b32)))
-vbool32_t vmfeq(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16mf2_b32_m)))
-vbool32_t vmfeq(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16mf4_b64)))
-vbool64_t vmfeq(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfeq_vf_f16mf4_b64_m)))
-vbool64_t vmfeq(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16m1_b16)))
-vbool16_t vmfne(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16m1_b16_m)))
-vbool16_t vmfne(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16m2_b8)))
-vbool8_t vmfne(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16m2_b8_m)))
-vbool8_t vmfne(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16m4_b4)))
-vbool4_t vmfne(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16m4_b4_m)))
-vbool4_t vmfne(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16m8_b2)))
-vbool2_t vmfne(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16m8_b2_m)))
-vbool2_t vmfne(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16mf2_b32)))
-vbool32_t vmfne(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16mf2_b32_m)))
-vbool32_t vmfne(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16mf4_b64)))
-vbool64_t vmfne(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vv_f16mf4_b64_m)))
-vbool64_t vmfne(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16m1_b16)))
-vbool16_t vmfne(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16m1_b16_m)))
-vbool16_t vmfne(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16m2_b8)))
-vbool8_t vmfne(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16m2_b8_m)))
-vbool8_t vmfne(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16m4_b4)))
-vbool4_t vmfne(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16m4_b4_m)))
-vbool4_t vmfne(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16m8_b2)))
-vbool2_t vmfne(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16m8_b2_m)))
-vbool2_t vmfne(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16mf2_b32)))
-vbool32_t vmfne(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16mf2_b32_m)))
-vbool32_t vmfne(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16mf4_b64)))
-vbool64_t vmfne(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfne_vf_f16mf4_b64_m)))
-vbool64_t vmfne(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16m1_b16)))
-vbool16_t vmflt(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16m1_b16_m)))
-vbool16_t vmflt(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16m2_b8)))
-vbool8_t vmflt(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16m2_b8_m)))
-vbool8_t vmflt(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16m4_b4)))
-vbool4_t vmflt(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16m4_b4_m)))
-vbool4_t vmflt(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16m8_b2)))
-vbool2_t vmflt(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16m8_b2_m)))
-vbool2_t vmflt(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16mf2_b32)))
-vbool32_t vmflt(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16mf2_b32_m)))
-vbool32_t vmflt(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16mf4_b64)))
-vbool64_t vmflt(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vv_f16mf4_b64_m)))
-vbool64_t vmflt(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16m1_b16)))
-vbool16_t vmflt(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16m1_b16_m)))
-vbool16_t vmflt(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16m2_b8)))
-vbool8_t vmflt(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16m2_b8_m)))
-vbool8_t vmflt(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16m4_b4)))
-vbool4_t vmflt(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16m4_b4_m)))
-vbool4_t vmflt(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16m8_b2)))
-vbool2_t vmflt(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16m8_b2_m)))
-vbool2_t vmflt(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16mf2_b32)))
-vbool32_t vmflt(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16mf2_b32_m)))
-vbool32_t vmflt(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16mf4_b64)))
-vbool64_t vmflt(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmflt_vf_f16mf4_b64_m)))
-vbool64_t vmflt(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16m1_b16)))
-vbool16_t vmfle(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16m1_b16_m)))
-vbool16_t vmfle(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16m2_b8)))
-vbool8_t vmfle(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16m2_b8_m)))
-vbool8_t vmfle(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16m4_b4)))
-vbool4_t vmfle(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16m4_b4_m)))
-vbool4_t vmfle(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16m8_b2)))
-vbool2_t vmfle(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16m8_b2_m)))
-vbool2_t vmfle(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16mf2_b32)))
-vbool32_t vmfle(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16mf2_b32_m)))
-vbool32_t vmfle(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16mf4_b64)))
-vbool64_t vmfle(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vv_f16mf4_b64_m)))
-vbool64_t vmfle(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16m1_b16)))
-vbool16_t vmfle(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16m1_b16_m)))
-vbool16_t vmfle(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16m2_b8)))
-vbool8_t vmfle(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16m2_b8_m)))
-vbool8_t vmfle(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16m4_b4)))
-vbool4_t vmfle(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16m4_b4_m)))
-vbool4_t vmfle(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16m8_b2)))
-vbool2_t vmfle(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16m8_b2_m)))
-vbool2_t vmfle(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16mf2_b32)))
-vbool32_t vmfle(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16mf2_b32_m)))
-vbool32_t vmfle(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16mf4_b64)))
-vbool64_t vmfle(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfle_vf_f16mf4_b64_m)))
-vbool64_t vmfle(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16m1_b16)))
-vbool16_t vmfgt(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16m1_b16_m)))
-vbool16_t vmfgt(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16m2_b8)))
-vbool8_t vmfgt(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16m2_b8_m)))
-vbool8_t vmfgt(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16m4_b4)))
-vbool4_t vmfgt(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16m4_b4_m)))
-vbool4_t vmfgt(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16m8_b2)))
-vbool2_t vmfgt(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16m8_b2_m)))
-vbool2_t vmfgt(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16mf2_b32)))
-vbool32_t vmfgt(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16mf2_b32_m)))
-vbool32_t vmfgt(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16mf4_b64)))
-vbool64_t vmfgt(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vv_f16mf4_b64_m)))
-vbool64_t vmfgt(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16m1_b16)))
-vbool16_t vmfgt(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16m1_b16_m)))
-vbool16_t vmfgt(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16m2_b8)))
-vbool8_t vmfgt(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16m2_b8_m)))
-vbool8_t vmfgt(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16m4_b4)))
-vbool4_t vmfgt(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16m4_b4_m)))
-vbool4_t vmfgt(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16m8_b2)))
-vbool2_t vmfgt(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16m8_b2_m)))
-vbool2_t vmfgt(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16mf2_b32)))
-vbool32_t vmfgt(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16mf2_b32_m)))
-vbool32_t vmfgt(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16mf4_b64)))
-vbool64_t vmfgt(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfgt_vf_f16mf4_b64_m)))
-vbool64_t vmfgt(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16m1_b16)))
-vbool16_t vmfge(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16m1_b16_m)))
-vbool16_t vmfge(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16m2_b8)))
-vbool8_t vmfge(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16m2_b8_m)))
-vbool8_t vmfge(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16m4_b4)))
-vbool4_t vmfge(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16m4_b4_m)))
-vbool4_t vmfge(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16m8_b2)))
-vbool2_t vmfge(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16m8_b2_m)))
-vbool2_t vmfge(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16mf2_b32)))
-vbool32_t vmfge(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16mf2_b32_m)))
-vbool32_t vmfge(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16mf4_b64)))
-vbool64_t vmfge(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vv_f16mf4_b64_m)))
-vbool64_t vmfge(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16m1_b16)))
-vbool16_t vmfge(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16m1_b16_m)))
-vbool16_t vmfge(vbool16_t op0, vbool16_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16m2_b8)))
-vbool8_t vmfge(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16m2_b8_m)))
-vbool8_t vmfge(vbool8_t op0, vbool8_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16m4_b4)))
-vbool4_t vmfge(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16m4_b4_m)))
-vbool4_t vmfge(vbool4_t op0, vbool4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16m8_b2)))
-vbool2_t vmfge(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16m8_b2_m)))
-vbool2_t vmfge(vbool2_t op0, vbool2_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16mf2_b32)))
-vbool32_t vmfge(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16mf2_b32_m)))
-vbool32_t vmfge(vbool32_t op0, vbool32_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16mf4_b64)))
-vbool64_t vmfge(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmfge_vf_f16mf4_b64_m)))
-vbool64_t vmfge(vbool64_t op0, vbool64_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f16m1)))
-vfloat16m1_t vmerge(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f16m2)))
-vfloat16m2_t vmerge(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f16m4)))
-vfloat16m4_t vmerge(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f16m8)))
-vfloat16m8_t vmerge(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f16mf2)))
-vfloat16mf2_t vmerge(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vmerge_vvm_f16mf4)))
-vfloat16mf4_t vmerge(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f16m1)))
-vfloat16m1_t vfmerge(vbool16_t op0, vfloat16m1_t op1, _Float16 op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f16m2)))
-vfloat16m2_t vfmerge(vbool8_t op0, vfloat16m2_t op1, _Float16 op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f16m4)))
-vfloat16m4_t vfmerge(vbool4_t op0, vfloat16m4_t op1, _Float16 op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f16m8)))
-vfloat16m8_t vfmerge(vbool2_t op0, vfloat16m8_t op1, _Float16 op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f16mf2)))
-vfloat16mf2_t vfmerge(vbool32_t op0, vfloat16mf2_t op1, _Float16 op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmerge_vfm_f16mf4)))
-vfloat16mf4_t vfmerge(vbool64_t op0, vfloat16mf4_t op1, _Float16 op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16m1_f16m1)))
-vfloat16m1_t vfredmax(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16m1_f16m1_m)))
-vfloat16m1_t vfredmax(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16m2_f16m1)))
-vfloat16m1_t vfredmax(vfloat16m1_t op0, vfloat16m2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16m2_f16m1_m)))
-vfloat16m1_t vfredmax(vbool8_t op0, vfloat16m1_t op1, vfloat16m2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16m4_f16m1)))
-vfloat16m1_t vfredmax(vfloat16m1_t op0, vfloat16m4_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16m4_f16m1_m)))
-vfloat16m1_t vfredmax(vbool4_t op0, vfloat16m1_t op1, vfloat16m4_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16m8_f16m1)))
-vfloat16m1_t vfredmax(vfloat16m1_t op0, vfloat16m8_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16m8_f16m1_m)))
-vfloat16m1_t vfredmax(vbool2_t op0, vfloat16m1_t op1, vfloat16m8_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16mf2_f16m1)))
-vfloat16m1_t vfredmax(vfloat16m1_t op0, vfloat16mf2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16mf2_f16m1_m)))
-vfloat16m1_t vfredmax(vbool32_t op0, vfloat16m1_t op1, vfloat16mf2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16mf4_f16m1)))
-vfloat16m1_t vfredmax(vfloat16m1_t op0, vfloat16mf4_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmax_vs_f16mf4_f16m1_m)))
-vfloat16m1_t vfredmax(vbool64_t op0, vfloat16m1_t op1, vfloat16mf4_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16m1_f16m1)))
-vfloat16m1_t vfredmin(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16m1_f16m1_m)))
-vfloat16m1_t vfredmin(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16m2_f16m1)))
-vfloat16m1_t vfredmin(vfloat16m1_t op0, vfloat16m2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16m2_f16m1_m)))
-vfloat16m1_t vfredmin(vbool8_t op0, vfloat16m1_t op1, vfloat16m2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16m4_f16m1)))
-vfloat16m1_t vfredmin(vfloat16m1_t op0, vfloat16m4_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16m4_f16m1_m)))
-vfloat16m1_t vfredmin(vbool4_t op0, vfloat16m1_t op1, vfloat16m4_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16m8_f16m1)))
-vfloat16m1_t vfredmin(vfloat16m1_t op0, vfloat16m8_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16m8_f16m1_m)))
-vfloat16m1_t vfredmin(vbool2_t op0, vfloat16m1_t op1, vfloat16m8_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16mf2_f16m1)))
-vfloat16m1_t vfredmin(vfloat16m1_t op0, vfloat16mf2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16mf2_f16m1_m)))
-vfloat16m1_t vfredmin(vbool32_t op0, vfloat16m1_t op1, vfloat16mf2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16mf4_f16m1)))
-vfloat16m1_t vfredmin(vfloat16m1_t op0, vfloat16mf4_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredmin_vs_f16mf4_f16m1_m)))
-vfloat16m1_t vfredmin(vbool64_t op0, vfloat16m1_t op1, vfloat16mf4_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16m1_f16m1)))
-vfloat16m1_t vfredsum(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16m1_f16m1_m)))
-vfloat16m1_t vfredsum(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16m2_f16m1)))
-vfloat16m1_t vfredsum(vfloat16m1_t op0, vfloat16m2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16m2_f16m1_m)))
-vfloat16m1_t vfredsum(vbool8_t op0, vfloat16m1_t op1, vfloat16m2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16m4_f16m1)))
-vfloat16m1_t vfredsum(vfloat16m1_t op0, vfloat16m4_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16m4_f16m1_m)))
-vfloat16m1_t vfredsum(vbool4_t op0, vfloat16m1_t op1, vfloat16m4_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16m8_f16m1)))
-vfloat16m1_t vfredsum(vfloat16m1_t op0, vfloat16m8_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16m8_f16m1_m)))
-vfloat16m1_t vfredsum(vbool2_t op0, vfloat16m1_t op1, vfloat16m8_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16mf2_f16m1)))
-vfloat16m1_t vfredsum(vfloat16m1_t op0, vfloat16mf2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16mf2_f16m1_m)))
-vfloat16m1_t vfredsum(vbool32_t op0, vfloat16m1_t op1, vfloat16mf2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16mf4_f16m1)))
-vfloat16m1_t vfredsum(vfloat16m1_t op0, vfloat16mf4_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredsum_vs_f16mf4_f16m1_m)))
-vfloat16m1_t vfredsum(vbool64_t op0, vfloat16m1_t op1, vfloat16mf4_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16m1_f16m1)))
-vfloat16m1_t vfredosum(vfloat16m1_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16m1_f16m1_m)))
-vfloat16m1_t vfredosum(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16m2_f16m1)))
-vfloat16m1_t vfredosum(vfloat16m1_t op0, vfloat16m2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16m2_f16m1_m)))
-vfloat16m1_t vfredosum(vbool8_t op0, vfloat16m1_t op1, vfloat16m2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16m4_f16m1)))
-vfloat16m1_t vfredosum(vfloat16m1_t op0, vfloat16m4_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16m4_f16m1_m)))
-vfloat16m1_t vfredosum(vbool4_t op0, vfloat16m1_t op1, vfloat16m4_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16m8_f16m1)))
-vfloat16m1_t vfredosum(vfloat16m1_t op0, vfloat16m8_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16m8_f16m1_m)))
-vfloat16m1_t vfredosum(vbool2_t op0, vfloat16m1_t op1, vfloat16m8_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16mf2_f16m1)))
-vfloat16m1_t vfredosum(vfloat16m1_t op0, vfloat16mf2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16mf2_f16m1_m)))
-vfloat16m1_t vfredosum(vbool32_t op0, vfloat16m1_t op1, vfloat16mf2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16mf4_f16m1)))
-vfloat16m1_t vfredosum(vfloat16m1_t op0, vfloat16mf4_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfredosum_vs_f16mf4_f16m1_m)))
-vfloat16m1_t vfredosum(vbool64_t op0, vfloat16m1_t op1, vfloat16mf4_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16m1)))
-void vsuxei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16m1_m)))
-void vsuxei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16m2)))
-void vsuxei8(_Float16 * op0, vuint8m1_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16m2_m)))
-void vsuxei8(vbool8_t op0, _Float16 * op1, vuint8m1_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16m4)))
-void vsuxei8(_Float16 * op0, vuint8m2_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16m4_m)))
-void vsuxei8(vbool4_t op0, _Float16 * op1, vuint8m2_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16m8)))
-void vsuxei8(_Float16 * op0, vuint8m4_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16m8_m)))
-void vsuxei8(vbool2_t op0, _Float16 * op1, vuint8m4_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16mf2)))
-void vsuxei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16mf2_m)))
-void vsuxei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16mf4)))
-void vsuxei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei8_v_f16mf4_m)))
-void vsuxei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16m1)))
-void vsuxei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16m1_m)))
-void vsuxei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16m2)))
-void vsuxei16(_Float16 * op0, vuint16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16m2_m)))
-void vsuxei16(vbool8_t op0, _Float16 * op1, vuint16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16m4)))
-void vsuxei16(_Float16 * op0, vuint16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16m4_m)))
-void vsuxei16(vbool4_t op0, _Float16 * op1, vuint16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16m8)))
-void vsuxei16(_Float16 * op0, vuint16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16m8_m)))
-void vsuxei16(vbool2_t op0, _Float16 * op1, vuint16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16mf2)))
-void vsuxei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16mf2_m)))
-void vsuxei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16mf4)))
-void vsuxei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei16_v_f16mf4_m)))
-void vsuxei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f16m1_f16)))
-_Float16 vfmv_f(vfloat16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f16m2_f16)))
-_Float16 vfmv_f(vfloat16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f16m4_f16)))
-_Float16 vfmv_f(vfloat16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f16m8_f16)))
-_Float16 vfmv_f(vfloat16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f16mf2_f16)))
-_Float16 vfmv_f(vfloat16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_f_s_f16mf4_f16)))
-_Float16 vfmv_f(vfloat16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f16m1)))
-vfloat16m1_t vfmv_s(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f16m2)))
-vfloat16m2_t vfmv_s(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f16m4)))
-vfloat16m4_t vfmv_s(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f16m8)))
-vfloat16m8_t vfmv_s(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f16mf2)))
-vfloat16mf2_t vfmv_s(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfmv_s_f_f16mf4)))
-vfloat16mf4_t vfmv_s(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16m1)))
-vfloat16m1_t vslideup(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16m1_m)))
-vfloat16m1_t vslideup(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16m2)))
-vfloat16m2_t vslideup(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16m2_m)))
-vfloat16m2_t vslideup(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16m4)))
-vfloat16m4_t vslideup(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16m4_m)))
-vfloat16m4_t vslideup(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16m8)))
-vfloat16m8_t vslideup(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16m8_m)))
-vfloat16m8_t vslideup(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16mf2)))
-vfloat16mf2_t vslideup(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16mf2_m)))
-vfloat16mf2_t vslideup(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16mf4)))
-vfloat16mf4_t vslideup(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslideup_vx_f16mf4_m)))
-vfloat16mf4_t vslideup(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16m1)))
-vfloat16m1_t vslidedown(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16m1_m)))
-vfloat16m1_t vslidedown(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16m2)))
-vfloat16m2_t vslidedown(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16m2_m)))
-vfloat16m2_t vslidedown(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16m4)))
-vfloat16m4_t vslidedown(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16m4_m)))
-vfloat16m4_t vslidedown(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16m8)))
-vfloat16m8_t vslidedown(vfloat16m8_t op0, vfloat16m8_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16m8_m)))
-vfloat16m8_t vslidedown(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16mf2)))
-vfloat16mf2_t vslidedown(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16mf2_m)))
-vfloat16mf2_t vslidedown(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16mf4)))
-vfloat16mf4_t vslidedown(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vslidedown_vx_f16mf4_m)))
-vfloat16mf4_t vslidedown(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16m1)))
-vfloat16m1_t vfslide1up(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16m1_m)))
-vfloat16m1_t vfslide1up(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16m2)))
-vfloat16m2_t vfslide1up(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16m2_m)))
-vfloat16m2_t vfslide1up(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16m4)))
-vfloat16m4_t vfslide1up(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16m4_m)))
-vfloat16m4_t vfslide1up(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16m8)))
-vfloat16m8_t vfslide1up(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16m8_m)))
-vfloat16m8_t vfslide1up(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16mf2)))
-vfloat16mf2_t vfslide1up(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16mf2_m)))
-vfloat16mf2_t vfslide1up(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16mf4)))
-vfloat16mf4_t vfslide1up(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1up_vf_f16mf4_m)))
-vfloat16mf4_t vfslide1up(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f16m1)))
-void vsuxei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f16m1_m)))
-void vsuxei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f16m2)))
-void vsuxei32(_Float16 * op0, vuint32m4_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f16m2_m)))
-void vsuxei32(vbool8_t op0, _Float16 * op1, vuint32m4_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f16m4)))
-void vsuxei32(_Float16 * op0, vuint32m8_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f16m4_m)))
-void vsuxei32(vbool4_t op0, _Float16 * op1, vuint32m8_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f16mf2)))
-void vsuxei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f16mf2_m)))
-void vsuxei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f16mf4)))
-void vsuxei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei32_v_f16mf4_m)))
-void vsuxei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16m1)))
-vfloat16m1_t vfslide1down(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16m1_m)))
-vfloat16m1_t vfslide1down(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16m2)))
-vfloat16m2_t vfslide1down(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16m2_m)))
-vfloat16m2_t vfslide1down(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16m4)))
-vfloat16m4_t vfslide1down(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16m4_m)))
-vfloat16m4_t vfslide1down(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16m8)))
-vfloat16m8_t vfslide1down(vfloat16m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16m8_m)))
-vfloat16m8_t vfslide1down(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16mf2)))
-vfloat16mf2_t vfslide1down(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16mf2_m)))
-vfloat16mf2_t vfslide1down(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16mf4)))
-vfloat16mf4_t vfslide1down(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfslide1down_vf_f16mf4_m)))
-vfloat16mf4_t vfslide1down(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16m1)))
-vfloat16m1_t vrgather(vfloat16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16m1_m)))
-vfloat16m1_t vrgather(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16m2)))
-vfloat16m2_t vrgather(vfloat16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16m2_m)))
-vfloat16m2_t vrgather(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16m4)))
-vfloat16m4_t vrgather(vfloat16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16m4_m)))
-vfloat16m4_t vrgather(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16m8)))
-vfloat16m8_t vrgather(vfloat16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16m8_m)))
-vfloat16m8_t vrgather(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16mf2)))
-vfloat16mf2_t vrgather(vfloat16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16mf2_m)))
-vfloat16mf2_t vrgather(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16mf4)))
-vfloat16mf4_t vrgather(vfloat16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vv_f16mf4_m)))
-vfloat16mf4_t vrgather(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16m1)))
-vfloat16m1_t vrgather(vfloat16m1_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16m1_m)))
-vfloat16m1_t vrgather(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16m2)))
-vfloat16m2_t vrgather(vfloat16m2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16m2_m)))
-vfloat16m2_t vrgather(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16m4)))
-vfloat16m4_t vrgather(vfloat16m4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16m4_m)))
-vfloat16m4_t vrgather(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16m8)))
-vfloat16m8_t vrgather(vfloat16m8_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16m8_m)))
-vfloat16m8_t vrgather(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16mf2)))
-vfloat16mf2_t vrgather(vfloat16mf2_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16mf2_m)))
-vfloat16mf2_t vrgather(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16mf4)))
-vfloat16mf4_t vrgather(vfloat16mf4_t op0, size_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgather_vx_f16mf4_m)))
-vfloat16mf4_t vrgather(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16m1)))
-vfloat16m1_t vrgatherei16(vfloat16m1_t op0, vuint16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16m1_m)))
-vfloat16m1_t vrgatherei16(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16m2)))
-vfloat16m2_t vrgatherei16(vfloat16m2_t op0, vuint16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16m2_m)))
-vfloat16m2_t vrgatherei16(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16m4)))
-vfloat16m4_t vrgatherei16(vfloat16m4_t op0, vuint16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16m4_m)))
-vfloat16m4_t vrgatherei16(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16m8)))
-vfloat16m8_t vrgatherei16(vfloat16m8_t op0, vuint16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16m8_m)))
-vfloat16m8_t vrgatherei16(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16mf2)))
-vfloat16mf2_t vrgatherei16(vfloat16mf2_t op0, vuint16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16mf2_m)))
-vfloat16mf2_t vrgatherei16(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16mf4)))
-vfloat16mf4_t vrgatherei16(vfloat16mf4_t op0, vuint16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vrgatherei16_vv_f16mf4_m)))
-vfloat16mf4_t vrgatherei16(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f16m1)))
-vfloat16m1_t vcompress(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f16m2)))
-vfloat16m2_t vcompress(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f16m4)))
-vfloat16m4_t vcompress(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f16m8)))
-vfloat16m8_t vcompress(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f16mf2)))
-vfloat16mf2_t vcompress(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vcompress_vm_f16mf4)))
-vfloat16mf4_t vcompress(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f16m1)))
-void vsuxei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f16m1_m)))
-void vsuxei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f16m2)))
-void vsuxei64(_Float16 * op0, vuint64m8_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f16m2_m)))
-void vsuxei64(vbool8_t op0, _Float16 * op1, vuint64m8_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f16mf2)))
-void vsuxei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f16mf2_m)))
-void vsuxei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f16mf4)))
-void vsuxei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxei64_v_f16mf4_m)))
-void vsuxei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f16m2_f16m1)))
-vfloat16m1_t vget_f16m1(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f16m4_f16m1)))
-vfloat16m1_t vget_f16m1(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f16m8_f16m1)))
-vfloat16m1_t vget_f16m1(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f16m4_f16m2)))
-vfloat16m2_t vget_f16m2(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f16m8_f16m2)))
-vfloat16m2_t vget_f16m2(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vget_v_f16m8_f16m4)))
-vfloat16m4_t vget_f16m4(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f16m1_f16m2)))
-vfloat16m2_t vset(vfloat16m2_t op0, size_t op1, vfloat16m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f16m1_f16m4)))
-vfloat16m4_t vset(vfloat16m4_t op0, size_t op1, vfloat16m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f16m2_f16m4)))
-vfloat16m4_t vset(vfloat16m4_t op0, size_t op1, vfloat16m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f16m1_f16m8)))
-vfloat16m8_t vset(vfloat16m8_t op0, size_t op1, vfloat16m1_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f16m2_f16m8)))
-vfloat16m8_t vset(vfloat16m8_t op0, size_t op1, vfloat16m2_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vset_v_f16m4_f16m8)))
-vfloat16m8_t vset(vfloat16m8_t op0, size_t op1, vfloat16m4_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16m1)))
-void vsoxei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16m1_m)))
-void vsoxei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16m2)))
-void vsoxei8(_Float16 * op0, vuint8m1_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16m2_m)))
-void vsoxei8(vbool8_t op0, _Float16 * op1, vuint8m1_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16m4)))
-void vsoxei8(_Float16 * op0, vuint8m2_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16m4_m)))
-void vsoxei8(vbool4_t op0, _Float16 * op1, vuint8m2_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16m8)))
-void vsoxei8(_Float16 * op0, vuint8m4_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16m8_m)))
-void vsoxei8(vbool2_t op0, _Float16 * op1, vuint8m4_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16mf2)))
-void vsoxei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16mf2_m)))
-void vsoxei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16mf4)))
-void vsoxei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei8_v_f16mf4_m)))
-void vsoxei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16m1)))
-void vsoxei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16m1_m)))
-void vsoxei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16m2)))
-void vsoxei16(_Float16 * op0, vuint16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16m2_m)))
-void vsoxei16(vbool8_t op0, _Float16 * op1, vuint16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16m4)))
-void vsoxei16(_Float16 * op0, vuint16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16m4_m)))
-void vsoxei16(vbool4_t op0, _Float16 * op1, vuint16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16m8)))
-void vsoxei16(_Float16 * op0, vuint16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16m8_m)))
-void vsoxei16(vbool2_t op0, _Float16 * op1, vuint16m8_t op2, vfloat16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16mf2)))
-void vsoxei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16mf2_m)))
-void vsoxei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16mf4)))
-void vsoxei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei16_v_f16mf4_m)))
-void vsoxei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f16m1)))
-void vsoxei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f16m1_m)))
-void vsoxei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f16m2)))
-void vsoxei32(_Float16 * op0, vuint32m4_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f16m2_m)))
-void vsoxei32(vbool8_t op0, _Float16 * op1, vuint32m4_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f16m4)))
-void vsoxei32(_Float16 * op0, vuint32m8_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f16m4_m)))
-void vsoxei32(vbool4_t op0, _Float16 * op1, vuint32m8_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f16mf2)))
-void vsoxei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f16mf2_m)))
-void vsoxei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f16mf4)))
-void vsoxei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei32_v_f16mf4_m)))
-void vsoxei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f16m1)))
-void vsoxei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f16m1_m)))
-void vsoxei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f16m2)))
-void vsoxei64(_Float16 * op0, vuint64m8_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f16m2_m)))
-void vsoxei64(vbool8_t op0, _Float16 * op1, vuint64m8_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f16mf2)))
-void vsoxei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f16mf2_m)))
-void vsoxei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f16mf4)))
-void vsoxei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxei64_v_f16mf4_m)))
-void vsoxei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_f16m1_m)))
-vfloat16m1_t vle16ff(vbool16_t op0, vfloat16m1_t op1, const _Float16 * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_f16m2_m)))
-vfloat16m2_t vle16ff(vbool8_t op0, vfloat16m2_t op1, const _Float16 * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_f16m4_m)))
-vfloat16m4_t vle16ff(vbool4_t op0, vfloat16m4_t op1, const _Float16 * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_f16m8_m)))
-vfloat16m8_t vle16ff(vbool2_t op0, vfloat16m8_t op1, const _Float16 * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_f16mf2_m)))
-vfloat16mf2_t vle16ff(vbool32_t op0, vfloat16mf2_t op1, const _Float16 * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16ff_v_f16mf4_m)))
-vfloat16mf4_t vle16ff(vbool64_t op0, vfloat16mf4_t op1, const _Float16 * op2, size_t * op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16m1)))
-vfloat16m1_t vfneg(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16m1_m)))
-vfloat16m1_t vfneg(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16m2)))
-vfloat16m2_t vfneg(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16m2_m)))
-vfloat16m2_t vfneg(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16m4)))
-vfloat16m4_t vfneg(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16m4_m)))
-vfloat16m4_t vfneg(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16m8)))
-vfloat16m8_t vfneg(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16m8_m)))
-vfloat16m8_t vfneg(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16mf2)))
-vfloat16mf2_t vfneg(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16mf2_m)))
-vfloat16mf2_t vfneg(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16mf4)))
-vfloat16mf4_t vfneg(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfneg_v_f16mf4_m)))
-vfloat16mf4_t vfneg(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_f16m1_m)))
-vfloat16m1_t vle16(vbool16_t op0, vfloat16m1_t op1, const _Float16 * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_f16m2_m)))
-vfloat16m2_t vle16(vbool8_t op0, vfloat16m2_t op1, const _Float16 * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_f16m4_m)))
-vfloat16m4_t vle16(vbool4_t op0, vfloat16m4_t op1, const _Float16 * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_f16m8_m)))
-vfloat16m8_t vle16(vbool2_t op0, vfloat16m8_t op1, const _Float16 * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_f16mf2_m)))
-vfloat16mf2_t vle16(vbool32_t op0, vfloat16mf2_t op1, const _Float16 * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vle16_v_f16mf4_m)))
-vfloat16mf4_t vle16(vbool64_t op0, vfloat16mf4_t op1, const _Float16 * op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16m1)))
-void vse16(_Float16 * op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16m1_m)))
-void vse16(vbool16_t op0, _Float16 * op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16m2)))
-void vse16(_Float16 * op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16m2_m)))
-void vse16(vbool8_t op0, _Float16 * op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16m4)))
-void vse16(_Float16 * op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16m4_m)))
-void vse16(vbool4_t op0, _Float16 * op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16m8)))
-void vse16(_Float16 * op0, vfloat16m8_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16m8_m)))
-void vse16(vbool2_t op0, _Float16 * op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16mf2)))
-void vse16(_Float16 * op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16mf2_m)))
-void vse16(vbool32_t op0, _Float16 * op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16mf4)))
-void vse16(_Float16 * op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vse16_v_f16mf4_m)))
-void vse16(vbool64_t op0, _Float16 * op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_f16m1_m)))
-vfloat16m1_t vlse16(vbool16_t op0, vfloat16m1_t op1, const _Float16 * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_f16m2_m)))
-vfloat16m2_t vlse16(vbool8_t op0, vfloat16m2_t op1, const _Float16 * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_f16m4_m)))
-vfloat16m4_t vlse16(vbool4_t op0, vfloat16m4_t op1, const _Float16 * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_f16m8_m)))
-vfloat16m8_t vlse16(vbool2_t op0, vfloat16m8_t op1, const _Float16 * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_f16mf2_m)))
-vfloat16mf2_t vlse16(vbool32_t op0, vfloat16mf2_t op1, const _Float16 * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlse16_v_f16mf4_m)))
-vfloat16mf4_t vlse16(vbool64_t op0, vfloat16mf4_t op1, const _Float16 * op2, ptrdiff_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16m1)))
-vuint16m1_t vfclass(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16m1_m)))
-vuint16m1_t vfclass(vbool16_t op0, vuint16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16m2)))
-vuint16m2_t vfclass(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16m2_m)))
-vuint16m2_t vfclass(vbool8_t op0, vuint16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16m4)))
-vuint16m4_t vfclass(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16m4_m)))
-vuint16m4_t vfclass(vbool4_t op0, vuint16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16m8)))
-vuint16m8_t vfclass(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16m8_m)))
-vuint16m8_t vfclass(vbool2_t op0, vuint16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16mf2)))
-vuint16mf2_t vfclass(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16mf2_m)))
-vuint16mf2_t vfclass(vbool32_t op0, vuint16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16mf4)))
-vuint16mf4_t vfclass(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfclass_v_u16mf4_m)))
-vuint16mf4_t vfclass(vbool64_t op0, vuint16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16m1)))
-vfloat16m1_t vfcvt_f(vint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16m1_m)))
-vfloat16m1_t vfcvt_f(vbool16_t op0, vfloat16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16m2)))
-vfloat16m2_t vfcvt_f(vint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16m2_m)))
-vfloat16m2_t vfcvt_f(vbool8_t op0, vfloat16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16m4)))
-vfloat16m4_t vfcvt_f(vint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16m4_m)))
-vfloat16m4_t vfcvt_f(vbool4_t op0, vfloat16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16m8)))
-vfloat16m8_t vfcvt_f(vint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16m8_m)))
-vfloat16m8_t vfcvt_f(vbool2_t op0, vfloat16m8_t op1, vint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16mf2)))
-vfloat16mf2_t vfcvt_f(vint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16mf2_m)))
-vfloat16mf2_t vfcvt_f(vbool32_t op0, vfloat16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16mf4)))
-vfloat16mf4_t vfcvt_f(vint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_x_v_f16mf4_m)))
-vfloat16mf4_t vfcvt_f(vbool64_t op0, vfloat16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16m1)))
-vfloat16m1_t vfcvt_f(vuint16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16m1_m)))
-vfloat16m1_t vfcvt_f(vbool16_t op0, vfloat16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16m2)))
-vfloat16m2_t vfcvt_f(vuint16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16m2_m)))
-vfloat16m2_t vfcvt_f(vbool8_t op0, vfloat16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16m4)))
-vfloat16m4_t vfcvt_f(vuint16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16m4_m)))
-vfloat16m4_t vfcvt_f(vbool4_t op0, vfloat16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16m8)))
-vfloat16m8_t vfcvt_f(vuint16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16m8_m)))
-vfloat16m8_t vfcvt_f(vbool2_t op0, vfloat16m8_t op1, vuint16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16mf2)))
-vfloat16mf2_t vfcvt_f(vuint16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16mf2_m)))
-vfloat16mf2_t vfcvt_f(vbool32_t op0, vfloat16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16mf4)))
-vfloat16mf4_t vfcvt_f(vuint16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_f_xu_v_f16mf4_m)))
-vfloat16mf4_t vfcvt_f(vbool64_t op0, vfloat16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16m1)))
-vint16m1_t vfcvt_rtz_x(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16m1_m)))
-vint16m1_t vfcvt_rtz_x(vbool16_t op0, vint16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16m2)))
-vint16m2_t vfcvt_rtz_x(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16m2_m)))
-vint16m2_t vfcvt_rtz_x(vbool8_t op0, vint16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16m4)))
-vint16m4_t vfcvt_rtz_x(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16m4_m)))
-vint16m4_t vfcvt_rtz_x(vbool4_t op0, vint16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16m8)))
-vint16m8_t vfcvt_rtz_x(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16m8_m)))
-vint16m8_t vfcvt_rtz_x(vbool2_t op0, vint16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16mf2)))
-vint16mf2_t vfcvt_rtz_x(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16mf2_m)))
-vint16mf2_t vfcvt_rtz_x(vbool32_t op0, vint16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16mf4)))
-vint16mf4_t vfcvt_rtz_x(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_x_f_v_i16mf4_m)))
-vint16mf4_t vfcvt_rtz_x(vbool64_t op0, vint16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16m1)))
-vuint16m1_t vfcvt_rtz_xu(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16m1_m)))
-vuint16m1_t vfcvt_rtz_xu(vbool16_t op0, vuint16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16m2)))
-vuint16m2_t vfcvt_rtz_xu(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16m2_m)))
-vuint16m2_t vfcvt_rtz_xu(vbool8_t op0, vuint16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16m4)))
-vuint16m4_t vfcvt_rtz_xu(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16m4_m)))
-vuint16m4_t vfcvt_rtz_xu(vbool4_t op0, vuint16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16m8)))
-vuint16m8_t vfcvt_rtz_xu(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16m8_m)))
-vuint16m8_t vfcvt_rtz_xu(vbool2_t op0, vuint16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16mf2)))
-vuint16mf2_t vfcvt_rtz_xu(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16mf2_m)))
-vuint16mf2_t vfcvt_rtz_xu(vbool32_t op0, vuint16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16mf4)))
-vuint16mf4_t vfcvt_rtz_xu(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_rtz_xu_f_v_u16mf4_m)))
-vuint16mf4_t vfcvt_rtz_xu(vbool64_t op0, vuint16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16m1)))
-vint16m1_t vfcvt_x(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16m1_m)))
-vint16m1_t vfcvt_x(vbool16_t op0, vint16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16m2)))
-vint16m2_t vfcvt_x(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16m2_m)))
-vint16m2_t vfcvt_x(vbool8_t op0, vint16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16m4)))
-vint16m4_t vfcvt_x(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16m4_m)))
-vint16m4_t vfcvt_x(vbool4_t op0, vint16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16m8)))
-vint16m8_t vfcvt_x(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16m8_m)))
-vint16m8_t vfcvt_x(vbool2_t op0, vint16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16mf2)))
-vint16mf2_t vfcvt_x(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16mf2_m)))
-vint16mf2_t vfcvt_x(vbool32_t op0, vint16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16mf4)))
-vint16mf4_t vfcvt_x(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_x_f_v_i16mf4_m)))
-vint16mf4_t vfcvt_x(vbool64_t op0, vint16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16m1)))
-vuint16m1_t vfcvt_xu(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16m1_m)))
-vuint16m1_t vfcvt_xu(vbool16_t op0, vuint16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16m2)))
-vuint16m2_t vfcvt_xu(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16m2_m)))
-vuint16m2_t vfcvt_xu(vbool8_t op0, vuint16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16m4)))
-vuint16m4_t vfcvt_xu(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16m4_m)))
-vuint16m4_t vfcvt_xu(vbool4_t op0, vuint16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16m8)))
-vuint16m8_t vfcvt_xu(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16m8_m)))
-vuint16m8_t vfcvt_xu(vbool2_t op0, vuint16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16mf2)))
-vuint16mf2_t vfcvt_xu(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16mf2_m)))
-vuint16mf2_t vfcvt_xu(vbool32_t op0, vuint16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16mf4)))
-vuint16mf4_t vfcvt_xu(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfcvt_xu_f_v_u16mf4_m)))
-vuint16mf4_t vfcvt_xu(vbool64_t op0, vuint16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f16mf4)))
-vfloat16mf4_t vfncvt_f(vint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f16mf4_m)))
-vfloat16mf4_t vfncvt_f(vbool64_t op0, vfloat16mf4_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f16mf2)))
-vfloat16mf2_t vfncvt_f(vint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f16mf2_m)))
-vfloat16mf2_t vfncvt_f(vbool32_t op0, vfloat16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f16m1)))
-vfloat16m1_t vfncvt_f(vint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f16m1_m)))
-vfloat16m1_t vfncvt_f(vbool16_t op0, vfloat16m1_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f16m2)))
-vfloat16m2_t vfncvt_f(vint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f16m2_m)))
-vfloat16m2_t vfncvt_f(vbool8_t op0, vfloat16m2_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f16m4)))
-vfloat16m4_t vfncvt_f(vint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_x_w_f16m4_m)))
-vfloat16m4_t vfncvt_f(vbool4_t op0, vfloat16m4_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f16mf4)))
-vfloat16mf4_t vfncvt_f(vuint32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f16mf4_m)))
-vfloat16mf4_t vfncvt_f(vbool64_t op0, vfloat16mf4_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f16mf2)))
-vfloat16mf2_t vfncvt_f(vuint32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f16mf2_m)))
-vfloat16mf2_t vfncvt_f(vbool32_t op0, vfloat16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f16m1)))
-vfloat16m1_t vfncvt_f(vuint32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f16m1_m)))
-vfloat16m1_t vfncvt_f(vbool16_t op0, vfloat16m1_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f16m2)))
-vfloat16m2_t vfncvt_f(vuint32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f16m2_m)))
-vfloat16m2_t vfncvt_f(vbool8_t op0, vfloat16m2_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f16m4)))
-vfloat16m4_t vfncvt_f(vuint32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_xu_w_f16m4_m)))
-vfloat16m4_t vfncvt_f(vbool4_t op0, vfloat16m4_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8mf8)))
-vint8mf8_t vfncvt_rtz_x(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8mf8_m)))
-vint8mf8_t vfncvt_rtz_x(vbool64_t op0, vint8mf8_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8mf4)))
-vint8mf4_t vfncvt_rtz_x(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8mf4_m)))
-vint8mf4_t vfncvt_rtz_x(vbool32_t op0, vint8mf4_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8mf2)))
-vint8mf2_t vfncvt_rtz_x(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8mf2_m)))
-vint8mf2_t vfncvt_rtz_x(vbool16_t op0, vint8mf2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8m1)))
-vint8m1_t vfncvt_rtz_x(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8m1_m)))
-vint8m1_t vfncvt_rtz_x(vbool8_t op0, vint8m1_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8m2)))
-vint8m2_t vfncvt_rtz_x(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8m2_m)))
-vint8m2_t vfncvt_rtz_x(vbool4_t op0, vint8m2_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8m4)))
-vint8m4_t vfncvt_rtz_x(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_x_f_w_i8m4_m)))
-vint8m4_t vfncvt_rtz_x(vbool2_t op0, vint8m4_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf8)))
-vuint8mf8_t vfncvt_rtz_xu(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf8_m)))
-vuint8mf8_t vfncvt_rtz_xu(vbool64_t op0, vuint8mf8_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf4)))
-vuint8mf4_t vfncvt_rtz_xu(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf4_m)))
-vuint8mf4_t vfncvt_rtz_xu(vbool32_t op0, vuint8mf4_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf2)))
-vuint8mf2_t vfncvt_rtz_xu(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8mf2_m)))
-vuint8mf2_t vfncvt_rtz_xu(vbool16_t op0, vuint8mf2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8m1)))
-vuint8m1_t vfncvt_rtz_xu(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8m1_m)))
-vuint8m1_t vfncvt_rtz_xu(vbool8_t op0, vuint8m1_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8m2)))
-vuint8m2_t vfncvt_rtz_xu(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8m2_m)))
-vuint8m2_t vfncvt_rtz_xu(vbool4_t op0, vuint8m2_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8m4)))
-vuint8m4_t vfncvt_rtz_xu(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rtz_xu_f_w_u8m4_m)))
-vuint8m4_t vfncvt_rtz_xu(vbool2_t op0, vuint8m4_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8mf8)))
-vint8mf8_t vfncvt_x(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8mf8_m)))
-vint8mf8_t vfncvt_x(vbool64_t op0, vint8mf8_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8mf4)))
-vint8mf4_t vfncvt_x(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8mf4_m)))
-vint8mf4_t vfncvt_x(vbool32_t op0, vint8mf4_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8mf2)))
-vint8mf2_t vfncvt_x(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8mf2_m)))
-vint8mf2_t vfncvt_x(vbool16_t op0, vint8mf2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8m1)))
-vint8m1_t vfncvt_x(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8m1_m)))
-vint8m1_t vfncvt_x(vbool8_t op0, vint8m1_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8m2)))
-vint8m2_t vfncvt_x(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8m2_m)))
-vint8m2_t vfncvt_x(vbool4_t op0, vint8m2_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8m4)))
-vint8m4_t vfncvt_x(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_x_f_w_i8m4_m)))
-vint8m4_t vfncvt_x(vbool2_t op0, vint8m4_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8mf8)))
-vuint8mf8_t vfncvt_xu(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8mf8_m)))
-vuint8mf8_t vfncvt_xu(vbool64_t op0, vuint8mf8_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8mf4)))
-vuint8mf4_t vfncvt_xu(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8mf4_m)))
-vuint8mf4_t vfncvt_xu(vbool32_t op0, vuint8mf4_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8mf2)))
-vuint8mf2_t vfncvt_xu(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8mf2_m)))
-vuint8mf2_t vfncvt_xu(vbool16_t op0, vuint8mf2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8m1)))
-vuint8m1_t vfncvt_xu(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8m1_m)))
-vuint8m1_t vfncvt_xu(vbool8_t op0, vuint8m1_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8m2)))
-vuint8m2_t vfncvt_xu(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8m2_m)))
-vuint8m2_t vfncvt_xu(vbool4_t op0, vuint8m2_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8m4)))
-vuint8m4_t vfncvt_xu(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_xu_f_w_u8m4_m)))
-vuint8m4_t vfncvt_xu(vbool2_t op0, vuint8m4_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16m1)))
-vfloat16m1_t vfrec7(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16m1_m)))
-vfloat16m1_t vfrec7(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16m2)))
-vfloat16m2_t vfrec7(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16m2_m)))
-vfloat16m2_t vfrec7(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16m4)))
-vfloat16m4_t vfrec7(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16m4_m)))
-vfloat16m4_t vfrec7(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16m8)))
-vfloat16m8_t vfrec7(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16m8_m)))
-vfloat16m8_t vfrec7(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16mf2)))
-vfloat16mf2_t vfrec7(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16mf2_m)))
-vfloat16mf2_t vfrec7(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16mf4)))
-vfloat16mf4_t vfrec7(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrec7_v_f16mf4_m)))
-vfloat16mf4_t vfrec7(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16m1)))
-vfloat16m1_t vfrsqrt7(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16m1_m)))
-vfloat16m1_t vfrsqrt7(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16m2)))
-vfloat16m2_t vfrsqrt7(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16m2_m)))
-vfloat16m2_t vfrsqrt7(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16m4)))
-vfloat16m4_t vfrsqrt7(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16m4_m)))
-vfloat16m4_t vfrsqrt7(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16m8)))
-vfloat16m8_t vfrsqrt7(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16m8_m)))
-vfloat16m8_t vfrsqrt7(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16mf2)))
-vfloat16mf2_t vfrsqrt7(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16mf2_m)))
-vfloat16mf2_t vfrsqrt7(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16mf4)))
-vfloat16mf4_t vfrsqrt7(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfrsqrt7_v_f16mf4_m)))
-vfloat16mf4_t vfrsqrt7(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16m1)))
-vfloat16m1_t vfsqrt(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16m1_m)))
-vfloat16m1_t vfsqrt(vbool16_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16m2)))
-vfloat16m2_t vfsqrt(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16m2_m)))
-vfloat16m2_t vfsqrt(vbool8_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16m4)))
-vfloat16m4_t vfsqrt(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16m4_m)))
-vfloat16m4_t vfsqrt(vbool4_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16m8)))
-vfloat16m8_t vfsqrt(vfloat16m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16m8_m)))
-vfloat16m8_t vfsqrt(vbool2_t op0, vfloat16m8_t op1, vfloat16m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16mf2)))
-vfloat16mf2_t vfsqrt(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16mf2_m)))
-vfloat16mf2_t vfsqrt(vbool32_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16mf4)))
-vfloat16mf4_t vfsqrt(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfsqrt_v_f16mf4_m)))
-vfloat16mf4_t vfsqrt(vbool64_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16mf4)))
-vfloat16mf4_t vfwcvt_f(vint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16mf4_m)))
-vfloat16mf4_t vfwcvt_f(vbool64_t op0, vfloat16mf4_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16mf2)))
-vfloat16mf2_t vfwcvt_f(vint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16mf2_m)))
-vfloat16mf2_t vfwcvt_f(vbool32_t op0, vfloat16mf2_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16m1)))
-vfloat16m1_t vfwcvt_f(vint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16m1_m)))
-vfloat16m1_t vfwcvt_f(vbool16_t op0, vfloat16m1_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16m2)))
-vfloat16m2_t vfwcvt_f(vint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16m2_m)))
-vfloat16m2_t vfwcvt_f(vbool8_t op0, vfloat16m2_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16m4)))
-vfloat16m4_t vfwcvt_f(vint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16m4_m)))
-vfloat16m4_t vfwcvt_f(vbool4_t op0, vfloat16m4_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16m8)))
-vfloat16m8_t vfwcvt_f(vint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_x_v_f16m8_m)))
-vfloat16m8_t vfwcvt_f(vbool2_t op0, vfloat16m8_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16mf4)))
-vfloat16mf4_t vfwcvt_f(vuint8mf8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16mf4_m)))
-vfloat16mf4_t vfwcvt_f(vbool64_t op0, vfloat16mf4_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16mf2)))
-vfloat16mf2_t vfwcvt_f(vuint8mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16mf2_m)))
-vfloat16mf2_t vfwcvt_f(vbool32_t op0, vfloat16mf2_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16m1)))
-vfloat16m1_t vfwcvt_f(vuint8mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16m1_m)))
-vfloat16m1_t vfwcvt_f(vbool16_t op0, vfloat16m1_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16m2)))
-vfloat16m2_t vfwcvt_f(vuint8m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16m2_m)))
-vfloat16m2_t vfwcvt_f(vbool8_t op0, vfloat16m2_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16m4)))
-vfloat16m4_t vfwcvt_f(vuint8m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16m4_m)))
-vfloat16m4_t vfwcvt_f(vbool4_t op0, vfloat16m4_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16m8)))
-vfloat16m8_t vfwcvt_f(vuint8m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_xu_v_f16m8_m)))
-vfloat16m8_t vfwcvt_f(vbool2_t op0, vfloat16m8_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i32mf2)))
-vint32mf2_t vfwcvt_rtz_x(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i32mf2_m)))
-vint32mf2_t vfwcvt_rtz_x(vbool64_t op0, vint32mf2_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i32m1)))
-vint32m1_t vfwcvt_rtz_x(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i32m1_m)))
-vint32m1_t vfwcvt_rtz_x(vbool32_t op0, vint32m1_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i32m2)))
-vint32m2_t vfwcvt_rtz_x(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i32m2_m)))
-vint32m2_t vfwcvt_rtz_x(vbool16_t op0, vint32m2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i32m4)))
-vint32m4_t vfwcvt_rtz_x(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i32m4_m)))
-vint32m4_t vfwcvt_rtz_x(vbool8_t op0, vint32m4_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i32m8)))
-vint32m8_t vfwcvt_rtz_x(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_x_f_v_i32m8_m)))
-vint32m8_t vfwcvt_rtz_x(vbool4_t op0, vint32m8_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u32mf2)))
-vuint32mf2_t vfwcvt_rtz_xu(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u32mf2_m)))
-vuint32mf2_t vfwcvt_rtz_xu(vbool64_t op0, vuint32mf2_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m1)))
-vuint32m1_t vfwcvt_rtz_xu(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m1_m)))
-vuint32m1_t vfwcvt_rtz_xu(vbool32_t op0, vuint32m1_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m2)))
-vuint32m2_t vfwcvt_rtz_xu(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m2_m)))
-vuint32m2_t vfwcvt_rtz_xu(vbool16_t op0, vuint32m2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m4)))
-vuint32m4_t vfwcvt_rtz_xu(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m4_m)))
-vuint32m4_t vfwcvt_rtz_xu(vbool8_t op0, vuint32m4_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m8)))
-vuint32m8_t vfwcvt_rtz_xu(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_rtz_xu_f_v_u32m8_m)))
-vuint32m8_t vfwcvt_rtz_xu(vbool4_t op0, vuint32m8_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i32mf2)))
-vint32mf2_t vfwcvt_x(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i32mf2_m)))
-vint32mf2_t vfwcvt_x(vbool64_t op0, vint32mf2_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i32m1)))
-vint32m1_t vfwcvt_x(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i32m1_m)))
-vint32m1_t vfwcvt_x(vbool32_t op0, vint32m1_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i32m2)))
-vint32m2_t vfwcvt_x(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i32m2_m)))
-vint32m2_t vfwcvt_x(vbool16_t op0, vint32m2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i32m4)))
-vint32m4_t vfwcvt_x(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i32m4_m)))
-vint32m4_t vfwcvt_x(vbool8_t op0, vint32m4_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i32m8)))
-vint32m8_t vfwcvt_x(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_x_f_v_i32m8_m)))
-vint32m8_t vfwcvt_x(vbool4_t op0, vint32m8_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u32mf2)))
-vuint32mf2_t vfwcvt_xu(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u32mf2_m)))
-vuint32mf2_t vfwcvt_xu(vbool64_t op0, vuint32mf2_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u32m1)))
-vuint32m1_t vfwcvt_xu(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u32m1_m)))
-vuint32m1_t vfwcvt_xu(vbool32_t op0, vuint32m1_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u32m2)))
-vuint32m2_t vfwcvt_xu(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u32m2_m)))
-vuint32m2_t vfwcvt_xu(vbool16_t op0, vuint32m2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u32m4)))
-vuint32m4_t vfwcvt_xu(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u32m4_m)))
-vuint32m4_t vfwcvt_xu(vbool8_t op0, vuint32m4_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u32m8)))
-vuint32m8_t vfwcvt_xu(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_xu_f_v_u32m8_m)))
-vuint32m8_t vfwcvt_xu(vbool4_t op0, vuint32m8_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16mf2_f16m1)))
-vfloat16m1_t vlmul_ext_f16m1(vfloat16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16mf4_f16m1)))
-vfloat16m1_t vlmul_ext_f16m1(vfloat16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16mf4_f16mf2)))
-vfloat16mf2_t vlmul_ext_f16mf2(vfloat16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16m1_f16m2)))
-vfloat16m2_t vlmul_ext_f16m2(vfloat16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16mf2_f16m2)))
-vfloat16m2_t vlmul_ext_f16m2(vfloat16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16mf4_f16m2)))
-vfloat16m2_t vlmul_ext_f16m2(vfloat16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16m1_f16m4)))
-vfloat16m4_t vlmul_ext_f16m4(vfloat16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16m2_f16m4)))
-vfloat16m4_t vlmul_ext_f16m4(vfloat16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16mf2_f16m4)))
-vfloat16m4_t vlmul_ext_f16m4(vfloat16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16mf4_f16m4)))
-vfloat16m4_t vlmul_ext_f16m4(vfloat16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16m1_f16m8)))
-vfloat16m8_t vlmul_ext_f16m8(vfloat16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16m2_f16m8)))
-vfloat16m8_t vlmul_ext_f16m8(vfloat16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16m4_f16m8)))
-vfloat16m8_t vlmul_ext_f16m8(vfloat16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16mf2_f16m8)))
-vfloat16m8_t vlmul_ext_f16m8(vfloat16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_ext_v_f16mf4_f16m8)))
-vfloat16m8_t vlmul_ext_f16m8(vfloat16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m1_f16mf2)))
-vfloat16mf2_t vlmul_trunc_f16mf2(vfloat16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m2_f16mf2)))
-vfloat16mf2_t vlmul_trunc_f16mf2(vfloat16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m4_f16mf2)))
-vfloat16mf2_t vlmul_trunc_f16mf2(vfloat16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m8_f16mf2)))
-vfloat16mf2_t vlmul_trunc_f16mf2(vfloat16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m1_f16mf4)))
-vfloat16mf4_t vlmul_trunc_f16mf4(vfloat16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m2_f16mf4)))
-vfloat16mf4_t vlmul_trunc_f16mf4(vfloat16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m4_f16mf4)))
-vfloat16mf4_t vlmul_trunc_f16mf4(vfloat16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m8_f16mf4)))
-vfloat16mf4_t vlmul_trunc_f16mf4(vfloat16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16mf2_f16mf4)))
-vfloat16mf4_t vlmul_trunc_f16mf4(vfloat16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m2_f16m1)))
-vfloat16m1_t vlmul_trunc_f16m1(vfloat16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m4_f16m1)))
-vfloat16m1_t vlmul_trunc_f16m1(vfloat16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m8_f16m1)))
-vfloat16m1_t vlmul_trunc_f16m1(vfloat16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m4_f16m2)))
-vfloat16m2_t vlmul_trunc_f16m2(vfloat16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m8_f16m2)))
-vfloat16m2_t vlmul_trunc_f16m2(vfloat16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlmul_trunc_v_f16m8_f16m4)))
-vfloat16m4_t vlmul_trunc_f16m4(vfloat16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m1_f16m1)))
-vfloat16m1_t vreinterpret_f16m1(vint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m2_f16m2)))
-vfloat16m2_t vreinterpret_f16m2(vint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m4_f16m4)))
-vfloat16m4_t vreinterpret_f16m4(vint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16m8_f16m8)))
-vfloat16m8_t vreinterpret_f16m8(vint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16mf2_f16mf2)))
-vfloat16mf2_t vreinterpret_f16mf2(vint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_i16mf4_f16mf4)))
-vfloat16mf4_t vreinterpret_f16mf4(vint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m1_f16m1)))
-vfloat16m1_t vreinterpret_f16m1(vuint16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m2_f16m2)))
-vfloat16m2_t vreinterpret_f16m2(vuint16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m4_f16m4)))
-vfloat16m4_t vreinterpret_f16m4(vuint16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16m8_f16m8)))
-vfloat16m8_t vreinterpret_f16m8(vuint16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16mf2_f16mf2)))
-vfloat16mf2_t vreinterpret_f16mf2(vuint16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_u16mf4_f16mf4)))
-vfloat16mf4_t vreinterpret_f16mf4(vuint16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16m1_i16m1)))
-vint16m1_t vreinterpret_i16m1(vfloat16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16m2_i16m2)))
-vint16m2_t vreinterpret_i16m2(vfloat16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16m4_i16m4)))
-vint16m4_t vreinterpret_i16m4(vfloat16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16m8_i16m8)))
-vint16m8_t vreinterpret_i16m8(vfloat16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16mf2_i16mf2)))
-vint16mf2_t vreinterpret_i16mf2(vfloat16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16mf4_i16mf4)))
-vint16mf4_t vreinterpret_i16mf4(vfloat16mf4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16m1_u16m1)))
-vuint16m1_t vreinterpret_u16m1(vfloat16m1_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16m2_u16m2)))
-vuint16m2_t vreinterpret_u16m2(vfloat16m2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16m4_u16m4)))
-vuint16m4_t vreinterpret_u16m4(vfloat16m4_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16m8_u16m8)))
-vuint16m8_t vreinterpret_u16m8(vfloat16m8_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16mf2_u16mf2)))
-vuint16mf2_t vreinterpret_u16mf2(vfloat16mf2_t op0);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vreinterpret_v_f16mf4_u16mf4)))
-vuint16mf4_t vreinterpret_u16mf4(vfloat16mf4_t op0);
-
-#endif
-
-#if defined(__riscv_f) && defined(__riscv_zfh)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f32mf2)))
-vfloat32mf2_t vfwadd_vv(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f32mf2_m)))
-vfloat32mf2_t vfwadd_vv(vbool64_t op0, vfloat32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f32m1)))
-vfloat32m1_t vfwadd_vv(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f32m1_m)))
-vfloat32m1_t vfwadd_vv(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f32m2)))
-vfloat32m2_t vfwadd_vv(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f32m2_m)))
-vfloat32m2_t vfwadd_vv(vbool16_t op0, vfloat32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f32m4)))
-vfloat32m4_t vfwadd_vv(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f32m4_m)))
-vfloat32m4_t vfwadd_vv(vbool8_t op0, vfloat32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f32m8)))
-vfloat32m8_t vfwadd_vv(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vv_f32m8_m)))
-vfloat32m8_t vfwadd_vv(vbool4_t op0, vfloat32m8_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f32mf2)))
-vfloat32mf2_t vfwadd_vf(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f32mf2_m)))
-vfloat32mf2_t vfwadd_vf(vbool64_t op0, vfloat32mf2_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f32m1)))
-vfloat32m1_t vfwadd_vf(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f32m1_m)))
-vfloat32m1_t vfwadd_vf(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f32m2)))
-vfloat32m2_t vfwadd_vf(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f32m2_m)))
-vfloat32m2_t vfwadd_vf(vbool16_t op0, vfloat32m2_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f32m4)))
-vfloat32m4_t vfwadd_vf(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f32m4_m)))
-vfloat32m4_t vfwadd_vf(vbool8_t op0, vfloat32m4_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f32m8)))
-vfloat32m8_t vfwadd_vf(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_vf_f32m8_m)))
-vfloat32m8_t vfwadd_vf(vbool4_t op0, vfloat32m8_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f32mf2)))
-vfloat32mf2_t vfwsub_vv(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f32mf2_m)))
-vfloat32mf2_t vfwsub_vv(vbool64_t op0, vfloat32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f32m1)))
-vfloat32m1_t vfwsub_vv(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f32m1_m)))
-vfloat32m1_t vfwsub_vv(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f32m2)))
-vfloat32m2_t vfwsub_vv(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f32m2_m)))
-vfloat32m2_t vfwsub_vv(vbool16_t op0, vfloat32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f32m4)))
-vfloat32m4_t vfwsub_vv(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f32m4_m)))
-vfloat32m4_t vfwsub_vv(vbool8_t op0, vfloat32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f32m8)))
-vfloat32m8_t vfwsub_vv(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vv_f32m8_m)))
-vfloat32m8_t vfwsub_vv(vbool4_t op0, vfloat32m8_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f32mf2)))
-vfloat32mf2_t vfwsub_vf(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f32mf2_m)))
-vfloat32mf2_t vfwsub_vf(vbool64_t op0, vfloat32mf2_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f32m1)))
-vfloat32m1_t vfwsub_vf(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f32m1_m)))
-vfloat32m1_t vfwsub_vf(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f32m2)))
-vfloat32m2_t vfwsub_vf(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f32m2_m)))
-vfloat32m2_t vfwsub_vf(vbool16_t op0, vfloat32m2_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f32m4)))
-vfloat32m4_t vfwsub_vf(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f32m4_m)))
-vfloat32m4_t vfwsub_vf(vbool8_t op0, vfloat32m4_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f32m8)))
-vfloat32m8_t vfwsub_vf(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_vf_f32m8_m)))
-vfloat32m8_t vfwsub_vf(vbool4_t op0, vfloat32m8_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f32mf2)))
-vfloat32mf2_t vfwadd_wv(vfloat32mf2_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f32mf2_m)))
-vfloat32mf2_t vfwadd_wv(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f32m1)))
-vfloat32m1_t vfwadd_wv(vfloat32m1_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f32m1_m)))
-vfloat32m1_t vfwadd_wv(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f32m2)))
-vfloat32m2_t vfwadd_wv(vfloat32m2_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f32m2_m)))
-vfloat32m2_t vfwadd_wv(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f32m4)))
-vfloat32m4_t vfwadd_wv(vfloat32m4_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f32m4_m)))
-vfloat32m4_t vfwadd_wv(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f32m8)))
-vfloat32m8_t vfwadd_wv(vfloat32m8_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wv_f32m8_m)))
-vfloat32m8_t vfwadd_wv(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f32mf2)))
-vfloat32mf2_t vfwadd_wf(vfloat32mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f32mf2_m)))
-vfloat32mf2_t vfwadd_wf(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f32m1)))
-vfloat32m1_t vfwadd_wf(vfloat32m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f32m1_m)))
-vfloat32m1_t vfwadd_wf(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f32m2)))
-vfloat32m2_t vfwadd_wf(vfloat32m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f32m2_m)))
-vfloat32m2_t vfwadd_wf(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f32m4)))
-vfloat32m4_t vfwadd_wf(vfloat32m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f32m4_m)))
-vfloat32m4_t vfwadd_wf(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f32m8)))
-vfloat32m8_t vfwadd_wf(vfloat32m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwadd_wf_f32m8_m)))
-vfloat32m8_t vfwadd_wf(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f32mf2)))
-vfloat32mf2_t vfwsub_wv(vfloat32mf2_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f32mf2_m)))
-vfloat32mf2_t vfwsub_wv(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f32m1)))
-vfloat32m1_t vfwsub_wv(vfloat32m1_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f32m1_m)))
-vfloat32m1_t vfwsub_wv(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f32m2)))
-vfloat32m2_t vfwsub_wv(vfloat32m2_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f32m2_m)))
-vfloat32m2_t vfwsub_wv(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f32m4)))
-vfloat32m4_t vfwsub_wv(vfloat32m4_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f32m4_m)))
-vfloat32m4_t vfwsub_wv(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f32m8)))
-vfloat32m8_t vfwsub_wv(vfloat32m8_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wv_f32m8_m)))
-vfloat32m8_t vfwsub_wv(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f32mf2)))
-vfloat32mf2_t vfwsub_wf(vfloat32mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f32mf2_m)))
-vfloat32mf2_t vfwsub_wf(vbool64_t op0, vfloat32mf2_t op1, vfloat32mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f32m1)))
-vfloat32m1_t vfwsub_wf(vfloat32m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f32m1_m)))
-vfloat32m1_t vfwsub_wf(vbool32_t op0, vfloat32m1_t op1, vfloat32m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f32m2)))
-vfloat32m2_t vfwsub_wf(vfloat32m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f32m2_m)))
-vfloat32m2_t vfwsub_wf(vbool16_t op0, vfloat32m2_t op1, vfloat32m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f32m4)))
-vfloat32m4_t vfwsub_wf(vfloat32m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f32m4_m)))
-vfloat32m4_t vfwsub_wf(vbool8_t op0, vfloat32m4_t op1, vfloat32m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f32m8)))
-vfloat32m8_t vfwsub_wf(vfloat32m8_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwsub_wf_f32m8_m)))
-vfloat32m8_t vfwsub_wf(vbool4_t op0, vfloat32m8_t op1, vfloat32m8_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f32mf2)))
-vfloat32mf2_t vfwmul(vfloat16mf4_t op0, vfloat16mf4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f32mf2_m)))
-vfloat32mf2_t vfwmul(vbool64_t op0, vfloat32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f32m1)))
-vfloat32m1_t vfwmul(vfloat16mf2_t op0, vfloat16mf2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f32m1_m)))
-vfloat32m1_t vfwmul(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f32m2)))
-vfloat32m2_t vfwmul(vfloat16m1_t op0, vfloat16m1_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f32m2_m)))
-vfloat32m2_t vfwmul(vbool16_t op0, vfloat32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f32m4)))
-vfloat32m4_t vfwmul(vfloat16m2_t op0, vfloat16m2_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f32m4_m)))
-vfloat32m4_t vfwmul(vbool8_t op0, vfloat32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f32m8)))
-vfloat32m8_t vfwmul(vfloat16m4_t op0, vfloat16m4_t op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vv_f32m8_m)))
-vfloat32m8_t vfwmul(vbool4_t op0, vfloat32m8_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f32mf2)))
-vfloat32mf2_t vfwmul(vfloat16mf4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f32mf2_m)))
-vfloat32mf2_t vfwmul(vbool64_t op0, vfloat32mf2_t op1, vfloat16mf4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f32m1)))
-vfloat32m1_t vfwmul(vfloat16mf2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f32m1_m)))
-vfloat32m1_t vfwmul(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f32m2)))
-vfloat32m2_t vfwmul(vfloat16m1_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f32m2_m)))
-vfloat32m2_t vfwmul(vbool16_t op0, vfloat32m2_t op1, vfloat16m1_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f32m4)))
-vfloat32m4_t vfwmul(vfloat16m2_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f32m4_m)))
-vfloat32m4_t vfwmul(vbool8_t op0, vfloat32m4_t op1, vfloat16m2_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f32m8)))
-vfloat32m8_t vfwmul(vfloat16m4_t op0, _Float16 op1, size_t op2);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmul_vf_f32m8_m)))
-vfloat32m8_t vfwmul(vbool4_t op0, vfloat32m8_t op1, vfloat16m4_t op2, _Float16 op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f32mf2)))
-vfloat32mf2_t vfwmacc(vfloat32mf2_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f32mf2_m)))
-vfloat32mf2_t vfwmacc(vbool64_t op0, vfloat32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f32m1)))
-vfloat32m1_t vfwmacc(vfloat32m1_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f32m1_m)))
-vfloat32m1_t vfwmacc(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f32m2)))
-vfloat32m2_t vfwmacc(vfloat32m2_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f32m2_m)))
-vfloat32m2_t vfwmacc(vbool16_t op0, vfloat32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f32m4)))
-vfloat32m4_t vfwmacc(vfloat32m4_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f32m4_m)))
-vfloat32m4_t vfwmacc(vbool8_t op0, vfloat32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f32m8)))
-vfloat32m8_t vfwmacc(vfloat32m8_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vv_f32m8_m)))
-vfloat32m8_t vfwmacc(vbool4_t op0, vfloat32m8_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f32mf2)))
-vfloat32mf2_t vfwmacc(vfloat32mf2_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f32mf2_m)))
-vfloat32mf2_t vfwmacc(vbool64_t op0, vfloat32mf2_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f32m1)))
-vfloat32m1_t vfwmacc(vfloat32m1_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f32m1_m)))
-vfloat32m1_t vfwmacc(vbool32_t op0, vfloat32m1_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f32m2)))
-vfloat32m2_t vfwmacc(vfloat32m2_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f32m2_m)))
-vfloat32m2_t vfwmacc(vbool16_t op0, vfloat32m2_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f32m4)))
-vfloat32m4_t vfwmacc(vfloat32m4_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f32m4_m)))
-vfloat32m4_t vfwmacc(vbool8_t op0, vfloat32m4_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f32m8)))
-vfloat32m8_t vfwmacc(vfloat32m8_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmacc_vf_f32m8_m)))
-vfloat32m8_t vfwmacc(vbool4_t op0, vfloat32m8_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f32mf2)))
-vfloat32mf2_t vfwnmacc(vfloat32mf2_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f32mf2_m)))
-vfloat32mf2_t vfwnmacc(vbool64_t op0, vfloat32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f32m1)))
-vfloat32m1_t vfwnmacc(vfloat32m1_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f32m1_m)))
-vfloat32m1_t vfwnmacc(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f32m2)))
-vfloat32m2_t vfwnmacc(vfloat32m2_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f32m2_m)))
-vfloat32m2_t vfwnmacc(vbool16_t op0, vfloat32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f32m4)))
-vfloat32m4_t vfwnmacc(vfloat32m4_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f32m4_m)))
-vfloat32m4_t vfwnmacc(vbool8_t op0, vfloat32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f32m8)))
-vfloat32m8_t vfwnmacc(vfloat32m8_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vv_f32m8_m)))
-vfloat32m8_t vfwnmacc(vbool4_t op0, vfloat32m8_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f32mf2)))
-vfloat32mf2_t vfwnmacc(vfloat32mf2_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f32mf2_m)))
-vfloat32mf2_t vfwnmacc(vbool64_t op0, vfloat32mf2_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f32m1)))
-vfloat32m1_t vfwnmacc(vfloat32m1_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f32m1_m)))
-vfloat32m1_t vfwnmacc(vbool32_t op0, vfloat32m1_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f32m2)))
-vfloat32m2_t vfwnmacc(vfloat32m2_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f32m2_m)))
-vfloat32m2_t vfwnmacc(vbool16_t op0, vfloat32m2_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f32m4)))
-vfloat32m4_t vfwnmacc(vfloat32m4_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f32m4_m)))
-vfloat32m4_t vfwnmacc(vbool8_t op0, vfloat32m4_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f32m8)))
-vfloat32m8_t vfwnmacc(vfloat32m8_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmacc_vf_f32m8_m)))
-vfloat32m8_t vfwnmacc(vbool4_t op0, vfloat32m8_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f32mf2)))
-vfloat32mf2_t vfwmsac(vfloat32mf2_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f32mf2_m)))
-vfloat32mf2_t vfwmsac(vbool64_t op0, vfloat32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f32m1)))
-vfloat32m1_t vfwmsac(vfloat32m1_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f32m1_m)))
-vfloat32m1_t vfwmsac(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f32m2)))
-vfloat32m2_t vfwmsac(vfloat32m2_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f32m2_m)))
-vfloat32m2_t vfwmsac(vbool16_t op0, vfloat32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f32m4)))
-vfloat32m4_t vfwmsac(vfloat32m4_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f32m4_m)))
-vfloat32m4_t vfwmsac(vbool8_t op0, vfloat32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f32m8)))
-vfloat32m8_t vfwmsac(vfloat32m8_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vv_f32m8_m)))
-vfloat32m8_t vfwmsac(vbool4_t op0, vfloat32m8_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f32mf2)))
-vfloat32mf2_t vfwmsac(vfloat32mf2_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f32mf2_m)))
-vfloat32mf2_t vfwmsac(vbool64_t op0, vfloat32mf2_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f32m1)))
-vfloat32m1_t vfwmsac(vfloat32m1_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f32m1_m)))
-vfloat32m1_t vfwmsac(vbool32_t op0, vfloat32m1_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f32m2)))
-vfloat32m2_t vfwmsac(vfloat32m2_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f32m2_m)))
-vfloat32m2_t vfwmsac(vbool16_t op0, vfloat32m2_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f32m4)))
-vfloat32m4_t vfwmsac(vfloat32m4_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f32m4_m)))
-vfloat32m4_t vfwmsac(vbool8_t op0, vfloat32m4_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f32m8)))
-vfloat32m8_t vfwmsac(vfloat32m8_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwmsac_vf_f32m8_m)))
-vfloat32m8_t vfwmsac(vbool4_t op0, vfloat32m8_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f32mf2)))
-vfloat32mf2_t vfwnmsac(vfloat32mf2_t op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f32mf2_m)))
-vfloat32mf2_t vfwnmsac(vbool64_t op0, vfloat32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f32m1)))
-vfloat32m1_t vfwnmsac(vfloat32m1_t op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f32m1_m)))
-vfloat32m1_t vfwnmsac(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f32m2)))
-vfloat32m2_t vfwnmsac(vfloat32m2_t op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f32m2_m)))
-vfloat32m2_t vfwnmsac(vbool16_t op0, vfloat32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f32m4)))
-vfloat32m4_t vfwnmsac(vfloat32m4_t op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f32m4_m)))
-vfloat32m4_t vfwnmsac(vbool8_t op0, vfloat32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f32m8)))
-vfloat32m8_t vfwnmsac(vfloat32m8_t op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vv_f32m8_m)))
-vfloat32m8_t vfwnmsac(vbool4_t op0, vfloat32m8_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f32mf2)))
-vfloat32mf2_t vfwnmsac(vfloat32mf2_t op0, _Float16 op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f32mf2_m)))
-vfloat32mf2_t vfwnmsac(vbool64_t op0, vfloat32mf2_t op1, _Float16 op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f32m1)))
-vfloat32m1_t vfwnmsac(vfloat32m1_t op0, _Float16 op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f32m1_m)))
-vfloat32m1_t vfwnmsac(vbool32_t op0, vfloat32m1_t op1, _Float16 op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f32m2)))
-vfloat32m2_t vfwnmsac(vfloat32m2_t op0, _Float16 op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f32m2_m)))
-vfloat32m2_t vfwnmsac(vbool16_t op0, vfloat32m2_t op1, _Float16 op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f32m4)))
-vfloat32m4_t vfwnmsac(vfloat32m4_t op0, _Float16 op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f32m4_m)))
-vfloat32m4_t vfwnmsac(vbool8_t op0, vfloat32m4_t op1, _Float16 op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f32m8)))
-vfloat32m8_t vfwnmsac(vfloat32m8_t op0, _Float16 op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwnmsac_vf_f32m8_m)))
-vfloat32m8_t vfwnmsac(vbool4_t op0, vfloat32m8_t op1, _Float16 op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16m1_f32m1)))
-vfloat32m1_t vfwredsum(vfloat32m1_t op0, vfloat16m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16m1_f32m1_m)))
-vfloat32m1_t vfwredsum(vbool16_t op0, vfloat32m1_t op1, vfloat16m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16m2_f32m1)))
-vfloat32m1_t vfwredsum(vfloat32m1_t op0, vfloat16m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16m2_f32m1_m)))
-vfloat32m1_t vfwredsum(vbool8_t op0, vfloat32m1_t op1, vfloat16m2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16m4_f32m1)))
-vfloat32m1_t vfwredsum(vfloat32m1_t op0, vfloat16m4_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16m4_f32m1_m)))
-vfloat32m1_t vfwredsum(vbool4_t op0, vfloat32m1_t op1, vfloat16m4_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16m8_f32m1)))
-vfloat32m1_t vfwredsum(vfloat32m1_t op0, vfloat16m8_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16m8_f32m1_m)))
-vfloat32m1_t vfwredsum(vbool2_t op0, vfloat32m1_t op1, vfloat16m8_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16mf2_f32m1)))
-vfloat32m1_t vfwredsum(vfloat32m1_t op0, vfloat16mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16mf2_f32m1_m)))
-vfloat32m1_t vfwredsum(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16mf4_f32m1)))
-vfloat32m1_t vfwredsum(vfloat32m1_t op0, vfloat16mf4_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredsum_vs_f16mf4_f32m1_m)))
-vfloat32m1_t vfwredsum(vbool64_t op0, vfloat32m1_t op1, vfloat16mf4_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16m1_f32m1)))
-vfloat32m1_t vfwredosum(vfloat32m1_t op0, vfloat16m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16m1_f32m1_m)))
-vfloat32m1_t vfwredosum(vbool16_t op0, vfloat32m1_t op1, vfloat16m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16m2_f32m1)))
-vfloat32m1_t vfwredosum(vfloat32m1_t op0, vfloat16m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16m2_f32m1_m)))
-vfloat32m1_t vfwredosum(vbool8_t op0, vfloat32m1_t op1, vfloat16m2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16m4_f32m1)))
-vfloat32m1_t vfwredosum(vfloat32m1_t op0, vfloat16m4_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16m4_f32m1_m)))
-vfloat32m1_t vfwredosum(vbool4_t op0, vfloat32m1_t op1, vfloat16m4_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16m8_f32m1)))
-vfloat32m1_t vfwredosum(vfloat32m1_t op0, vfloat16m8_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16m8_f32m1_m)))
-vfloat32m1_t vfwredosum(vbool2_t op0, vfloat32m1_t op1, vfloat16m8_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16mf2_f32m1)))
-vfloat32m1_t vfwredosum(vfloat32m1_t op0, vfloat16mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16mf2_f32m1_m)))
-vfloat32m1_t vfwredosum(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16mf4_f32m1)))
-vfloat32m1_t vfwredosum(vfloat32m1_t op0, vfloat16mf4_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwredosum_vs_f16mf4_f32m1_m)))
-vfloat32m1_t vfwredosum(vbool64_t op0, vfloat32m1_t op1, vfloat16mf4_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f16mf4)))
-vfloat16mf4_t vfncvt_f(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f16mf4_m)))
-vfloat16mf4_t vfncvt_f(vbool64_t op0, vfloat16mf4_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f16mf2)))
-vfloat16mf2_t vfncvt_f(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f16mf2_m)))
-vfloat16mf2_t vfncvt_f(vbool32_t op0, vfloat16mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f16m1)))
-vfloat16m1_t vfncvt_f(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f16m1_m)))
-vfloat16m1_t vfncvt_f(vbool16_t op0, vfloat16m1_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f16m2)))
-vfloat16m2_t vfncvt_f(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f16m2_m)))
-vfloat16m2_t vfncvt_f(vbool8_t op0, vfloat16m2_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f16m4)))
-vfloat16m4_t vfncvt_f(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_f_f_w_f16m4_m)))
-vfloat16m4_t vfncvt_f(vbool4_t op0, vfloat16m4_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f16mf4)))
-vfloat16mf4_t vfncvt_rod_f(vfloat32mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f16mf4_m)))
-vfloat16mf4_t vfncvt_rod_f(vbool64_t op0, vfloat16mf4_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f16mf2)))
-vfloat16mf2_t vfncvt_rod_f(vfloat32m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f16mf2_m)))
-vfloat16mf2_t vfncvt_rod_f(vbool32_t op0, vfloat16mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f16m1)))
-vfloat16m1_t vfncvt_rod_f(vfloat32m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f16m1_m)))
-vfloat16m1_t vfncvt_rod_f(vbool16_t op0, vfloat16m1_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f16m2)))
-vfloat16m2_t vfncvt_rod_f(vfloat32m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f16m2_m)))
-vfloat16m2_t vfncvt_rod_f(vbool8_t op0, vfloat16m2_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f16m4)))
-vfloat16m4_t vfncvt_rod_f(vfloat32m8_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfncvt_rod_f_f_w_f16m4_m)))
-vfloat16m4_t vfncvt_rod_f(vbool4_t op0, vfloat16m4_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f32mf2)))
-vfloat32mf2_t vfwcvt_f(vfloat16mf4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f32mf2_m)))
-vfloat32mf2_t vfwcvt_f(vbool64_t op0, vfloat32mf2_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f32m1)))
-vfloat32m1_t vfwcvt_f(vfloat16mf2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f32m1_m)))
-vfloat32m1_t vfwcvt_f(vbool32_t op0, vfloat32m1_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f32m2)))
-vfloat32m2_t vfwcvt_f(vfloat16m1_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f32m2_m)))
-vfloat32m2_t vfwcvt_f(vbool16_t op0, vfloat32m2_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f32m4)))
-vfloat32m4_t vfwcvt_f(vfloat16m2_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f32m4_m)))
-vfloat32m4_t vfwcvt_f(vbool8_t op0, vfloat32m4_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f32m8)))
-vfloat32m8_t vfwcvt_f(vfloat16m4_t op0, size_t op1);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vfwcvt_f_f_v_f32m8_m)))
-vfloat32m8_t vfwcvt_f(vbool4_t op0, vfloat32m8_t op1, vfloat16m4_t op2, size_t op3);
-
-#endif
-
-#if defined(__riscv_zvamo)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i32m1)))
-vint32m1_t vamoswapei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i32m1_m)))
-vint32m1_t vamoswapei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i32m2)))
-vint32m2_t vamoswapei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i32m2_m)))
-vint32m2_t vamoswapei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i32m4)))
-vint32m4_t vamoswapei16(int32_t * op0, vuint16m2_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i32m4_m)))
-vint32m4_t vamoswapei16(vbool8_t op0, int32_t * op1, vuint16m2_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i32m8)))
-vint32m8_t vamoswapei16(int32_t * op0, vuint16m4_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i32m8_m)))
-vint32m8_t vamoswapei16(vbool4_t op0, int32_t * op1, vuint16m4_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i32mf2)))
-vint32mf2_t vamoswapei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i32mf2_m)))
-vint32mf2_t vamoswapei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u32m1)))
-vuint32m1_t vamoswapei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u32m1_m)))
-vuint32m1_t vamoswapei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u32m2)))
-vuint32m2_t vamoswapei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u32m2_m)))
-vuint32m2_t vamoswapei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u32m4)))
-vuint32m4_t vamoswapei16(uint32_t * op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u32m4_m)))
-vuint32m4_t vamoswapei16(vbool8_t op0, uint32_t * op1, vuint16m2_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u32m8)))
-vuint32m8_t vamoswapei16(uint32_t * op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u32m8_m)))
-vuint32m8_t vamoswapei16(vbool4_t op0, uint32_t * op1, vuint16m4_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u32mf2)))
-vuint32mf2_t vamoswapei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u32mf2_m)))
-vuint32mf2_t vamoswapei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i32m1)))
-vint32m1_t vamoswapei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i32m1_m)))
-vint32m1_t vamoswapei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i32m2)))
-vint32m2_t vamoswapei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i32m2_m)))
-vint32m2_t vamoswapei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i32m4)))
-vint32m4_t vamoswapei32(int32_t * op0, vuint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i32m4_m)))
-vint32m4_t vamoswapei32(vbool8_t op0, int32_t * op1, vuint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i32m8)))
-vint32m8_t vamoswapei32(int32_t * op0, vuint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i32m8_m)))
-vint32m8_t vamoswapei32(vbool4_t op0, int32_t * op1, vuint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i32mf2)))
-vint32mf2_t vamoswapei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i32mf2_m)))
-vint32mf2_t vamoswapei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u32m1)))
-vuint32m1_t vamoswapei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u32m1_m)))
-vuint32m1_t vamoswapei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u32m2)))
-vuint32m2_t vamoswapei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u32m2_m)))
-vuint32m2_t vamoswapei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u32m4)))
-vuint32m4_t vamoswapei32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u32m4_m)))
-vuint32m4_t vamoswapei32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u32m8)))
-vuint32m8_t vamoswapei32(uint32_t * op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u32m8_m)))
-vuint32m8_t vamoswapei32(vbool4_t op0, uint32_t * op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u32mf2)))
-vuint32mf2_t vamoswapei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u32mf2_m)))
-vuint32mf2_t vamoswapei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i32m1)))
-vint32m1_t vamoswapei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i32m1_m)))
-vint32m1_t vamoswapei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i32m2)))
-vint32m2_t vamoswapei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i32m2_m)))
-vint32m2_t vamoswapei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i32m4)))
-vint32m4_t vamoswapei64(int32_t * op0, vuint64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i32m4_m)))
-vint32m4_t vamoswapei64(vbool8_t op0, int32_t * op1, vuint64m8_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i32mf2)))
-vint32mf2_t vamoswapei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i32mf2_m)))
-vint32mf2_t vamoswapei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u32m1)))
-vuint32m1_t vamoswapei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u32m1_m)))
-vuint32m1_t vamoswapei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u32m2)))
-vuint32m2_t vamoswapei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u32m2_m)))
-vuint32m2_t vamoswapei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u32m4)))
-vuint32m4_t vamoswapei64(uint32_t * op0, vuint64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u32m4_m)))
-vuint32m4_t vamoswapei64(vbool8_t op0, uint32_t * op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u32mf2)))
-vuint32mf2_t vamoswapei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u32mf2_m)))
-vuint32mf2_t vamoswapei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i64m1)))
-vint64m1_t vamoswapei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i64m1_m)))
-vint64m1_t vamoswapei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i64m2)))
-vint64m2_t vamoswapei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i64m2_m)))
-vint64m2_t vamoswapei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i64m4)))
-vint64m4_t vamoswapei8(int64_t * op0, vuint8mf2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i64m4_m)))
-vint64m4_t vamoswapei8(vbool16_t op0, int64_t * op1, vuint8mf2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i64m8)))
-vint64m8_t vamoswapei8(int64_t * op0, vuint8m1_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i64m8_m)))
-vint64m8_t vamoswapei8(vbool8_t op0, int64_t * op1, vuint8m1_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u64m1)))
-vuint64m1_t vamoswapei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u64m1_m)))
-vuint64m1_t vamoswapei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u64m2)))
-vuint64m2_t vamoswapei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u64m2_m)))
-vuint64m2_t vamoswapei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u64m4)))
-vuint64m4_t vamoswapei8(uint64_t * op0, vuint8mf2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u64m4_m)))
-vuint64m4_t vamoswapei8(vbool16_t op0, uint64_t * op1, vuint8mf2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u64m8)))
-vuint64m8_t vamoswapei8(uint64_t * op0, vuint8m1_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u64m8_m)))
-vuint64m8_t vamoswapei8(vbool8_t op0, uint64_t * op1, vuint8m1_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i64m1)))
-vint64m1_t vamoswapei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i64m1_m)))
-vint64m1_t vamoswapei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i64m2)))
-vint64m2_t vamoswapei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i64m2_m)))
-vint64m2_t vamoswapei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i64m4)))
-vint64m4_t vamoswapei16(int64_t * op0, vuint16m1_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i64m4_m)))
-vint64m4_t vamoswapei16(vbool16_t op0, int64_t * op1, vuint16m1_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i64m8)))
-vint64m8_t vamoswapei16(int64_t * op0, vuint16m2_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_i64m8_m)))
-vint64m8_t vamoswapei16(vbool8_t op0, int64_t * op1, vuint16m2_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u64m1)))
-vuint64m1_t vamoswapei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u64m1_m)))
-vuint64m1_t vamoswapei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u64m2)))
-vuint64m2_t vamoswapei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u64m2_m)))
-vuint64m2_t vamoswapei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u64m4)))
-vuint64m4_t vamoswapei16(uint64_t * op0, vuint16m1_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u64m4_m)))
-vuint64m4_t vamoswapei16(vbool16_t op0, uint64_t * op1, vuint16m1_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u64m8)))
-vuint64m8_t vamoswapei16(uint64_t * op0, vuint16m2_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_u64m8_m)))
-vuint64m8_t vamoswapei16(vbool8_t op0, uint64_t * op1, vuint16m2_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i64m1)))
-vint64m1_t vamoswapei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i64m1_m)))
-vint64m1_t vamoswapei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i64m2)))
-vint64m2_t vamoswapei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i64m2_m)))
-vint64m2_t vamoswapei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i64m4)))
-vint64m4_t vamoswapei32(int64_t * op0, vuint32m2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i64m4_m)))
-vint64m4_t vamoswapei32(vbool16_t op0, int64_t * op1, vuint32m2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i64m8)))
-vint64m8_t vamoswapei32(int64_t * op0, vuint32m4_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_i64m8_m)))
-vint64m8_t vamoswapei32(vbool8_t op0, int64_t * op1, vuint32m4_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u64m1)))
-vuint64m1_t vamoswapei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u64m1_m)))
-vuint64m1_t vamoswapei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u64m2)))
-vuint64m2_t vamoswapei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u64m2_m)))
-vuint64m2_t vamoswapei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u64m4)))
-vuint64m4_t vamoswapei32(uint64_t * op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u64m4_m)))
-vuint64m4_t vamoswapei32(vbool16_t op0, uint64_t * op1, vuint32m2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u64m8)))
-vuint64m8_t vamoswapei32(uint64_t * op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_u64m8_m)))
-vuint64m8_t vamoswapei32(vbool8_t op0, uint64_t * op1, vuint32m4_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i64m1)))
-vint64m1_t vamoswapei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i64m1_m)))
-vint64m1_t vamoswapei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i64m2)))
-vint64m2_t vamoswapei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i64m2_m)))
-vint64m2_t vamoswapei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i64m4)))
-vint64m4_t vamoswapei64(int64_t * op0, vuint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i64m4_m)))
-vint64m4_t vamoswapei64(vbool16_t op0, int64_t * op1, vuint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i64m8)))
-vint64m8_t vamoswapei64(int64_t * op0, vuint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_i64m8_m)))
-vint64m8_t vamoswapei64(vbool8_t op0, int64_t * op1, vuint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u64m1)))
-vuint64m1_t vamoswapei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u64m1_m)))
-vuint64m1_t vamoswapei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u64m2)))
-vuint64m2_t vamoswapei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u64m2_m)))
-vuint64m2_t vamoswapei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u64m4)))
-vuint64m4_t vamoswapei64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u64m4_m)))
-vuint64m4_t vamoswapei64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u64m8)))
-vuint64m8_t vamoswapei64(uint64_t * op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_u64m8_m)))
-vuint64m8_t vamoswapei64(vbool8_t op0, uint64_t * op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i32m1)))
-vint32m1_t vamoaddei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i32m1_m)))
-vint32m1_t vamoaddei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i32m2)))
-vint32m2_t vamoaddei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i32m2_m)))
-vint32m2_t vamoaddei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i32m4)))
-vint32m4_t vamoaddei8(int32_t * op0, vuint8m1_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i32m4_m)))
-vint32m4_t vamoaddei8(vbool8_t op0, int32_t * op1, vuint8m1_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i32m8)))
-vint32m8_t vamoaddei8(int32_t * op0, vuint8m2_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i32m8_m)))
-vint32m8_t vamoaddei8(vbool4_t op0, int32_t * op1, vuint8m2_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i32mf2)))
-vint32mf2_t vamoaddei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i32mf2_m)))
-vint32mf2_t vamoaddei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u32m1)))
-vuint32m1_t vamoaddei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u32m1_m)))
-vuint32m1_t vamoaddei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u32m2)))
-vuint32m2_t vamoaddei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u32m2_m)))
-vuint32m2_t vamoaddei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u32m4)))
-vuint32m4_t vamoaddei8(uint32_t * op0, vuint8m1_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u32m4_m)))
-vuint32m4_t vamoaddei8(vbool8_t op0, uint32_t * op1, vuint8m1_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u32m8)))
-vuint32m8_t vamoaddei8(uint32_t * op0, vuint8m2_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u32m8_m)))
-vuint32m8_t vamoaddei8(vbool4_t op0, uint32_t * op1, vuint8m2_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u32mf2)))
-vuint32mf2_t vamoaddei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u32mf2_m)))
-vuint32mf2_t vamoaddei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i32m1)))
-vint32m1_t vamoaddei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i32m1_m)))
-vint32m1_t vamoaddei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i32m2)))
-vint32m2_t vamoaddei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i32m2_m)))
-vint32m2_t vamoaddei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i32m4)))
-vint32m4_t vamoaddei16(int32_t * op0, vuint16m2_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i32m4_m)))
-vint32m4_t vamoaddei16(vbool8_t op0, int32_t * op1, vuint16m2_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i32m8)))
-vint32m8_t vamoaddei16(int32_t * op0, vuint16m4_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i32m8_m)))
-vint32m8_t vamoaddei16(vbool4_t op0, int32_t * op1, vuint16m4_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i32mf2)))
-vint32mf2_t vamoaddei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i32mf2_m)))
-vint32mf2_t vamoaddei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u32m1)))
-vuint32m1_t vamoaddei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u32m1_m)))
-vuint32m1_t vamoaddei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u32m2)))
-vuint32m2_t vamoaddei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u32m2_m)))
-vuint32m2_t vamoaddei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u32m4)))
-vuint32m4_t vamoaddei16(uint32_t * op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u32m4_m)))
-vuint32m4_t vamoaddei16(vbool8_t op0, uint32_t * op1, vuint16m2_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u32m8)))
-vuint32m8_t vamoaddei16(uint32_t * op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u32m8_m)))
-vuint32m8_t vamoaddei16(vbool4_t op0, uint32_t * op1, vuint16m4_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u32mf2)))
-vuint32mf2_t vamoaddei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u32mf2_m)))
-vuint32mf2_t vamoaddei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i32m1)))
-vint32m1_t vamoaddei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i32m1_m)))
-vint32m1_t vamoaddei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i32m2)))
-vint32m2_t vamoaddei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i32m2_m)))
-vint32m2_t vamoaddei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i32m4)))
-vint32m4_t vamoaddei32(int32_t * op0, vuint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i32m4_m)))
-vint32m4_t vamoaddei32(vbool8_t op0, int32_t * op1, vuint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i32m8)))
-vint32m8_t vamoaddei32(int32_t * op0, vuint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i32m8_m)))
-vint32m8_t vamoaddei32(vbool4_t op0, int32_t * op1, vuint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i32mf2)))
-vint32mf2_t vamoaddei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i32mf2_m)))
-vint32mf2_t vamoaddei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u32m1)))
-vuint32m1_t vamoaddei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u32m1_m)))
-vuint32m1_t vamoaddei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u32m2)))
-vuint32m2_t vamoaddei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u32m2_m)))
-vuint32m2_t vamoaddei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u32m4)))
-vuint32m4_t vamoaddei32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u32m4_m)))
-vuint32m4_t vamoaddei32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u32m8)))
-vuint32m8_t vamoaddei32(uint32_t * op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u32m8_m)))
-vuint32m8_t vamoaddei32(vbool4_t op0, uint32_t * op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u32mf2)))
-vuint32mf2_t vamoaddei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u32mf2_m)))
-vuint32mf2_t vamoaddei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i32m1)))
-vint32m1_t vamoaddei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i32m1_m)))
-vint32m1_t vamoaddei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i32m2)))
-vint32m2_t vamoaddei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i32m2_m)))
-vint32m2_t vamoaddei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i32m4)))
-vint32m4_t vamoaddei64(int32_t * op0, vuint64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i32m4_m)))
-vint32m4_t vamoaddei64(vbool8_t op0, int32_t * op1, vuint64m8_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i32mf2)))
-vint32mf2_t vamoaddei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i32mf2_m)))
-vint32mf2_t vamoaddei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u32m1)))
-vuint32m1_t vamoaddei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u32m1_m)))
-vuint32m1_t vamoaddei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u32m2)))
-vuint32m2_t vamoaddei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u32m2_m)))
-vuint32m2_t vamoaddei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u32m4)))
-vuint32m4_t vamoaddei64(uint32_t * op0, vuint64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u32m4_m)))
-vuint32m4_t vamoaddei64(vbool8_t op0, uint32_t * op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u32mf2)))
-vuint32mf2_t vamoaddei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u32mf2_m)))
-vuint32mf2_t vamoaddei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i64m1)))
-vint64m1_t vamoaddei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i64m1_m)))
-vint64m1_t vamoaddei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i64m2)))
-vint64m2_t vamoaddei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i64m2_m)))
-vint64m2_t vamoaddei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i64m4)))
-vint64m4_t vamoaddei8(int64_t * op0, vuint8mf2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i64m4_m)))
-vint64m4_t vamoaddei8(vbool16_t op0, int64_t * op1, vuint8mf2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i64m8)))
-vint64m8_t vamoaddei8(int64_t * op0, vuint8m1_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_i64m8_m)))
-vint64m8_t vamoaddei8(vbool8_t op0, int64_t * op1, vuint8m1_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u64m1)))
-vuint64m1_t vamoaddei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u64m1_m)))
-vuint64m1_t vamoaddei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u64m2)))
-vuint64m2_t vamoaddei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u64m2_m)))
-vuint64m2_t vamoaddei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u64m4)))
-vuint64m4_t vamoaddei8(uint64_t * op0, vuint8mf2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u64m4_m)))
-vuint64m4_t vamoaddei8(vbool16_t op0, uint64_t * op1, vuint8mf2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u64m8)))
-vuint64m8_t vamoaddei8(uint64_t * op0, vuint8m1_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei8_v_u64m8_m)))
-vuint64m8_t vamoaddei8(vbool8_t op0, uint64_t * op1, vuint8m1_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i64m1)))
-vint64m1_t vamoaddei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i64m1_m)))
-vint64m1_t vamoaddei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i64m2)))
-vint64m2_t vamoaddei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i64m2_m)))
-vint64m2_t vamoaddei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i64m4)))
-vint64m4_t vamoaddei16(int64_t * op0, vuint16m1_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i64m4_m)))
-vint64m4_t vamoaddei16(vbool16_t op0, int64_t * op1, vuint16m1_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i64m8)))
-vint64m8_t vamoaddei16(int64_t * op0, vuint16m2_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_i64m8_m)))
-vint64m8_t vamoaddei16(vbool8_t op0, int64_t * op1, vuint16m2_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u64m1)))
-vuint64m1_t vamoaddei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u64m1_m)))
-vuint64m1_t vamoaddei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u64m2)))
-vuint64m2_t vamoaddei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u64m2_m)))
-vuint64m2_t vamoaddei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u64m4)))
-vuint64m4_t vamoaddei16(uint64_t * op0, vuint16m1_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u64m4_m)))
-vuint64m4_t vamoaddei16(vbool16_t op0, uint64_t * op1, vuint16m1_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u64m8)))
-vuint64m8_t vamoaddei16(uint64_t * op0, vuint16m2_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei16_v_u64m8_m)))
-vuint64m8_t vamoaddei16(vbool8_t op0, uint64_t * op1, vuint16m2_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i64m1)))
-vint64m1_t vamoaddei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i64m1_m)))
-vint64m1_t vamoaddei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i64m2)))
-vint64m2_t vamoaddei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i64m2_m)))
-vint64m2_t vamoaddei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i64m4)))
-vint64m4_t vamoaddei32(int64_t * op0, vuint32m2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i64m4_m)))
-vint64m4_t vamoaddei32(vbool16_t op0, int64_t * op1, vuint32m2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i64m8)))
-vint64m8_t vamoaddei32(int64_t * op0, vuint32m4_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_i64m8_m)))
-vint64m8_t vamoaddei32(vbool8_t op0, int64_t * op1, vuint32m4_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u64m1)))
-vuint64m1_t vamoaddei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u64m1_m)))
-vuint64m1_t vamoaddei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u64m2)))
-vuint64m2_t vamoaddei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u64m2_m)))
-vuint64m2_t vamoaddei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u64m4)))
-vuint64m4_t vamoaddei32(uint64_t * op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u64m4_m)))
-vuint64m4_t vamoaddei32(vbool16_t op0, uint64_t * op1, vuint32m2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u64m8)))
-vuint64m8_t vamoaddei32(uint64_t * op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei32_v_u64m8_m)))
-vuint64m8_t vamoaddei32(vbool8_t op0, uint64_t * op1, vuint32m4_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i64m1)))
-vint64m1_t vamoaddei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i64m1_m)))
-vint64m1_t vamoaddei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i64m2)))
-vint64m2_t vamoaddei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i64m2_m)))
-vint64m2_t vamoaddei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i64m4)))
-vint64m4_t vamoaddei64(int64_t * op0, vuint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i64m4_m)))
-vint64m4_t vamoaddei64(vbool16_t op0, int64_t * op1, vuint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i64m8)))
-vint64m8_t vamoaddei64(int64_t * op0, vuint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_i64m8_m)))
-vint64m8_t vamoaddei64(vbool8_t op0, int64_t * op1, vuint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u64m1)))
-vuint64m1_t vamoaddei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u64m1_m)))
-vuint64m1_t vamoaddei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u64m2)))
-vuint64m2_t vamoaddei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u64m2_m)))
-vuint64m2_t vamoaddei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u64m4)))
-vuint64m4_t vamoaddei64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u64m4_m)))
-vuint64m4_t vamoaddei64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u64m8)))
-vuint64m8_t vamoaddei64(uint64_t * op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoaddei64_v_u64m8_m)))
-vuint64m8_t vamoaddei64(vbool8_t op0, uint64_t * op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i32m1)))
-vint32m1_t vamoxorei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i32m1_m)))
-vint32m1_t vamoxorei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i32m2)))
-vint32m2_t vamoxorei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i32m2_m)))
-vint32m2_t vamoxorei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i32m4)))
-vint32m4_t vamoxorei8(int32_t * op0, vuint8m1_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i32m4_m)))
-vint32m4_t vamoxorei8(vbool8_t op0, int32_t * op1, vuint8m1_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i32m8)))
-vint32m8_t vamoxorei8(int32_t * op0, vuint8m2_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i32m8_m)))
-vint32m8_t vamoxorei8(vbool4_t op0, int32_t * op1, vuint8m2_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i32mf2)))
-vint32mf2_t vamoxorei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i32mf2_m)))
-vint32mf2_t vamoxorei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u32m1)))
-vuint32m1_t vamoxorei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u32m1_m)))
-vuint32m1_t vamoxorei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u32m2)))
-vuint32m2_t vamoxorei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u32m2_m)))
-vuint32m2_t vamoxorei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u32m4)))
-vuint32m4_t vamoxorei8(uint32_t * op0, vuint8m1_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u32m4_m)))
-vuint32m4_t vamoxorei8(vbool8_t op0, uint32_t * op1, vuint8m1_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u32m8)))
-vuint32m8_t vamoxorei8(uint32_t * op0, vuint8m2_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u32m8_m)))
-vuint32m8_t vamoxorei8(vbool4_t op0, uint32_t * op1, vuint8m2_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u32mf2)))
-vuint32mf2_t vamoxorei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u32mf2_m)))
-vuint32mf2_t vamoxorei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i32m1)))
-vint32m1_t vamoxorei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i32m1_m)))
-vint32m1_t vamoxorei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i32m2)))
-vint32m2_t vamoxorei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i32m2_m)))
-vint32m2_t vamoxorei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i32m4)))
-vint32m4_t vamoxorei16(int32_t * op0, vuint16m2_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i32m4_m)))
-vint32m4_t vamoxorei16(vbool8_t op0, int32_t * op1, vuint16m2_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i32m8)))
-vint32m8_t vamoxorei16(int32_t * op0, vuint16m4_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i32m8_m)))
-vint32m8_t vamoxorei16(vbool4_t op0, int32_t * op1, vuint16m4_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i32mf2)))
-vint32mf2_t vamoxorei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i32mf2_m)))
-vint32mf2_t vamoxorei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u32m1)))
-vuint32m1_t vamoxorei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u32m1_m)))
-vuint32m1_t vamoxorei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u32m2)))
-vuint32m2_t vamoxorei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u32m2_m)))
-vuint32m2_t vamoxorei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u32m4)))
-vuint32m4_t vamoxorei16(uint32_t * op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u32m4_m)))
-vuint32m4_t vamoxorei16(vbool8_t op0, uint32_t * op1, vuint16m2_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u32m8)))
-vuint32m8_t vamoxorei16(uint32_t * op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u32m8_m)))
-vuint32m8_t vamoxorei16(vbool4_t op0, uint32_t * op1, vuint16m4_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u32mf2)))
-vuint32mf2_t vamoxorei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u32mf2_m)))
-vuint32mf2_t vamoxorei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i32m1)))
-vint32m1_t vamoxorei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i32m1_m)))
-vint32m1_t vamoxorei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i32m2)))
-vint32m2_t vamoxorei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i32m2_m)))
-vint32m2_t vamoxorei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i32m4)))
-vint32m4_t vamoxorei32(int32_t * op0, vuint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i32m4_m)))
-vint32m4_t vamoxorei32(vbool8_t op0, int32_t * op1, vuint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i32m8)))
-vint32m8_t vamoxorei32(int32_t * op0, vuint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i32m8_m)))
-vint32m8_t vamoxorei32(vbool4_t op0, int32_t * op1, vuint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i32mf2)))
-vint32mf2_t vamoxorei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i32mf2_m)))
-vint32mf2_t vamoxorei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u32m1)))
-vuint32m1_t vamoxorei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u32m1_m)))
-vuint32m1_t vamoxorei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u32m2)))
-vuint32m2_t vamoxorei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u32m2_m)))
-vuint32m2_t vamoxorei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u32m4)))
-vuint32m4_t vamoxorei32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u32m4_m)))
-vuint32m4_t vamoxorei32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u32m8)))
-vuint32m8_t vamoxorei32(uint32_t * op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u32m8_m)))
-vuint32m8_t vamoxorei32(vbool4_t op0, uint32_t * op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u32mf2)))
-vuint32mf2_t vamoxorei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u32mf2_m)))
-vuint32mf2_t vamoxorei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i32m1)))
-vint32m1_t vamoxorei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i32m1_m)))
-vint32m1_t vamoxorei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i32m2)))
-vint32m2_t vamoxorei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i32m2_m)))
-vint32m2_t vamoxorei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i32m4)))
-vint32m4_t vamoxorei64(int32_t * op0, vuint64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i32m4_m)))
-vint32m4_t vamoxorei64(vbool8_t op0, int32_t * op1, vuint64m8_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i32mf2)))
-vint32mf2_t vamoxorei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i32mf2_m)))
-vint32mf2_t vamoxorei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u32m1)))
-vuint32m1_t vamoxorei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u32m1_m)))
-vuint32m1_t vamoxorei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u32m2)))
-vuint32m2_t vamoxorei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u32m2_m)))
-vuint32m2_t vamoxorei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u32m4)))
-vuint32m4_t vamoxorei64(uint32_t * op0, vuint64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u32m4_m)))
-vuint32m4_t vamoxorei64(vbool8_t op0, uint32_t * op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u32mf2)))
-vuint32mf2_t vamoxorei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u32mf2_m)))
-vuint32mf2_t vamoxorei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i64m1)))
-vint64m1_t vamoxorei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i64m1_m)))
-vint64m1_t vamoxorei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i64m2)))
-vint64m2_t vamoxorei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i64m2_m)))
-vint64m2_t vamoxorei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i64m4)))
-vint64m4_t vamoxorei8(int64_t * op0, vuint8mf2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i64m4_m)))
-vint64m4_t vamoxorei8(vbool16_t op0, int64_t * op1, vuint8mf2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i64m8)))
-vint64m8_t vamoxorei8(int64_t * op0, vuint8m1_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_i64m8_m)))
-vint64m8_t vamoxorei8(vbool8_t op0, int64_t * op1, vuint8m1_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u64m1)))
-vuint64m1_t vamoxorei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u64m1_m)))
-vuint64m1_t vamoxorei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u64m2)))
-vuint64m2_t vamoxorei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u64m2_m)))
-vuint64m2_t vamoxorei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u64m4)))
-vuint64m4_t vamoxorei8(uint64_t * op0, vuint8mf2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u64m4_m)))
-vuint64m4_t vamoxorei8(vbool16_t op0, uint64_t * op1, vuint8mf2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u64m8)))
-vuint64m8_t vamoxorei8(uint64_t * op0, vuint8m1_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei8_v_u64m8_m)))
-vuint64m8_t vamoxorei8(vbool8_t op0, uint64_t * op1, vuint8m1_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i64m1)))
-vint64m1_t vamoxorei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i64m1_m)))
-vint64m1_t vamoxorei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i64m2)))
-vint64m2_t vamoxorei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i64m2_m)))
-vint64m2_t vamoxorei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i64m4)))
-vint64m4_t vamoxorei16(int64_t * op0, vuint16m1_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i64m4_m)))
-vint64m4_t vamoxorei16(vbool16_t op0, int64_t * op1, vuint16m1_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i64m8)))
-vint64m8_t vamoxorei16(int64_t * op0, vuint16m2_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_i64m8_m)))
-vint64m8_t vamoxorei16(vbool8_t op0, int64_t * op1, vuint16m2_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u64m1)))
-vuint64m1_t vamoxorei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u64m1_m)))
-vuint64m1_t vamoxorei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u64m2)))
-vuint64m2_t vamoxorei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u64m2_m)))
-vuint64m2_t vamoxorei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u64m4)))
-vuint64m4_t vamoxorei16(uint64_t * op0, vuint16m1_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u64m4_m)))
-vuint64m4_t vamoxorei16(vbool16_t op0, uint64_t * op1, vuint16m1_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u64m8)))
-vuint64m8_t vamoxorei16(uint64_t * op0, vuint16m2_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei16_v_u64m8_m)))
-vuint64m8_t vamoxorei16(vbool8_t op0, uint64_t * op1, vuint16m2_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i64m1)))
-vint64m1_t vamoxorei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i64m1_m)))
-vint64m1_t vamoxorei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i64m2)))
-vint64m2_t vamoxorei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i64m2_m)))
-vint64m2_t vamoxorei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i64m4)))
-vint64m4_t vamoxorei32(int64_t * op0, vuint32m2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i64m4_m)))
-vint64m4_t vamoxorei32(vbool16_t op0, int64_t * op1, vuint32m2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i64m8)))
-vint64m8_t vamoxorei32(int64_t * op0, vuint32m4_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_i64m8_m)))
-vint64m8_t vamoxorei32(vbool8_t op0, int64_t * op1, vuint32m4_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u64m1)))
-vuint64m1_t vamoxorei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u64m1_m)))
-vuint64m1_t vamoxorei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u64m2)))
-vuint64m2_t vamoxorei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u64m2_m)))
-vuint64m2_t vamoxorei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u64m4)))
-vuint64m4_t vamoxorei32(uint64_t * op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u64m4_m)))
-vuint64m4_t vamoxorei32(vbool16_t op0, uint64_t * op1, vuint32m2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u64m8)))
-vuint64m8_t vamoxorei32(uint64_t * op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei32_v_u64m8_m)))
-vuint64m8_t vamoxorei32(vbool8_t op0, uint64_t * op1, vuint32m4_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i64m1)))
-vint64m1_t vamoxorei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i64m1_m)))
-vint64m1_t vamoxorei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i64m2)))
-vint64m2_t vamoxorei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i64m2_m)))
-vint64m2_t vamoxorei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i64m4)))
-vint64m4_t vamoxorei64(int64_t * op0, vuint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i64m4_m)))
-vint64m4_t vamoxorei64(vbool16_t op0, int64_t * op1, vuint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i64m8)))
-vint64m8_t vamoxorei64(int64_t * op0, vuint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_i64m8_m)))
-vint64m8_t vamoxorei64(vbool8_t op0, int64_t * op1, vuint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u64m1)))
-vuint64m1_t vamoxorei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u64m1_m)))
-vuint64m1_t vamoxorei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u64m2)))
-vuint64m2_t vamoxorei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u64m2_m)))
-vuint64m2_t vamoxorei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u64m4)))
-vuint64m4_t vamoxorei64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u64m4_m)))
-vuint64m4_t vamoxorei64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u64m8)))
-vuint64m8_t vamoxorei64(uint64_t * op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoxorei64_v_u64m8_m)))
-vuint64m8_t vamoxorei64(vbool8_t op0, uint64_t * op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i32m1)))
-vint32m1_t vamoandei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i32m1_m)))
-vint32m1_t vamoandei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i32m2)))
-vint32m2_t vamoandei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i32m2_m)))
-vint32m2_t vamoandei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i32m4)))
-vint32m4_t vamoandei8(int32_t * op0, vuint8m1_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i32m4_m)))
-vint32m4_t vamoandei8(vbool8_t op0, int32_t * op1, vuint8m1_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i32m8)))
-vint32m8_t vamoandei8(int32_t * op0, vuint8m2_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i32m8_m)))
-vint32m8_t vamoandei8(vbool4_t op0, int32_t * op1, vuint8m2_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i32mf2)))
-vint32mf2_t vamoandei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i32mf2_m)))
-vint32mf2_t vamoandei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u32m1)))
-vuint32m1_t vamoandei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u32m1_m)))
-vuint32m1_t vamoandei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u32m2)))
-vuint32m2_t vamoandei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u32m2_m)))
-vuint32m2_t vamoandei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u32m4)))
-vuint32m4_t vamoandei8(uint32_t * op0, vuint8m1_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u32m4_m)))
-vuint32m4_t vamoandei8(vbool8_t op0, uint32_t * op1, vuint8m1_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u32m8)))
-vuint32m8_t vamoandei8(uint32_t * op0, vuint8m2_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u32m8_m)))
-vuint32m8_t vamoandei8(vbool4_t op0, uint32_t * op1, vuint8m2_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u32mf2)))
-vuint32mf2_t vamoandei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u32mf2_m)))
-vuint32mf2_t vamoandei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i32m1)))
-vint32m1_t vamoandei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i32m1_m)))
-vint32m1_t vamoandei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i32m2)))
-vint32m2_t vamoandei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i32m2_m)))
-vint32m2_t vamoandei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i32m4)))
-vint32m4_t vamoandei16(int32_t * op0, vuint16m2_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i32m4_m)))
-vint32m4_t vamoandei16(vbool8_t op0, int32_t * op1, vuint16m2_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i32m8)))
-vint32m8_t vamoandei16(int32_t * op0, vuint16m4_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i32m8_m)))
-vint32m8_t vamoandei16(vbool4_t op0, int32_t * op1, vuint16m4_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i32mf2)))
-vint32mf2_t vamoandei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i32mf2_m)))
-vint32mf2_t vamoandei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u32m1)))
-vuint32m1_t vamoandei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u32m1_m)))
-vuint32m1_t vamoandei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u32m2)))
-vuint32m2_t vamoandei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u32m2_m)))
-vuint32m2_t vamoandei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u32m4)))
-vuint32m4_t vamoandei16(uint32_t * op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u32m4_m)))
-vuint32m4_t vamoandei16(vbool8_t op0, uint32_t * op1, vuint16m2_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u32m8)))
-vuint32m8_t vamoandei16(uint32_t * op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u32m8_m)))
-vuint32m8_t vamoandei16(vbool4_t op0, uint32_t * op1, vuint16m4_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u32mf2)))
-vuint32mf2_t vamoandei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u32mf2_m)))
-vuint32mf2_t vamoandei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i32m1)))
-vint32m1_t vamoandei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i32m1_m)))
-vint32m1_t vamoandei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i32m2)))
-vint32m2_t vamoandei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i32m2_m)))
-vint32m2_t vamoandei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i32m4)))
-vint32m4_t vamoandei32(int32_t * op0, vuint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i32m4_m)))
-vint32m4_t vamoandei32(vbool8_t op0, int32_t * op1, vuint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i32m8)))
-vint32m8_t vamoandei32(int32_t * op0, vuint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i32m8_m)))
-vint32m8_t vamoandei32(vbool4_t op0, int32_t * op1, vuint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i32mf2)))
-vint32mf2_t vamoandei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i32mf2_m)))
-vint32mf2_t vamoandei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u32m1)))
-vuint32m1_t vamoandei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u32m1_m)))
-vuint32m1_t vamoandei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u32m2)))
-vuint32m2_t vamoandei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u32m2_m)))
-vuint32m2_t vamoandei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u32m4)))
-vuint32m4_t vamoandei32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u32m4_m)))
-vuint32m4_t vamoandei32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u32m8)))
-vuint32m8_t vamoandei32(uint32_t * op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u32m8_m)))
-vuint32m8_t vamoandei32(vbool4_t op0, uint32_t * op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u32mf2)))
-vuint32mf2_t vamoandei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u32mf2_m)))
-vuint32mf2_t vamoandei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i32m1)))
-vint32m1_t vamoandei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i32m1_m)))
-vint32m1_t vamoandei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i32m2)))
-vint32m2_t vamoandei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i32m2_m)))
-vint32m2_t vamoandei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i32m4)))
-vint32m4_t vamoandei64(int32_t * op0, vuint64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i32m4_m)))
-vint32m4_t vamoandei64(vbool8_t op0, int32_t * op1, vuint64m8_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i32mf2)))
-vint32mf2_t vamoandei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i32mf2_m)))
-vint32mf2_t vamoandei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u32m1)))
-vuint32m1_t vamoandei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u32m1_m)))
-vuint32m1_t vamoandei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u32m2)))
-vuint32m2_t vamoandei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u32m2_m)))
-vuint32m2_t vamoandei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u32m4)))
-vuint32m4_t vamoandei64(uint32_t * op0, vuint64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u32m4_m)))
-vuint32m4_t vamoandei64(vbool8_t op0, uint32_t * op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u32mf2)))
-vuint32mf2_t vamoandei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u32mf2_m)))
-vuint32mf2_t vamoandei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i64m1)))
-vint64m1_t vamoandei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i64m1_m)))
-vint64m1_t vamoandei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i64m2)))
-vint64m2_t vamoandei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i64m2_m)))
-vint64m2_t vamoandei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i64m4)))
-vint64m4_t vamoandei8(int64_t * op0, vuint8mf2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i64m4_m)))
-vint64m4_t vamoandei8(vbool16_t op0, int64_t * op1, vuint8mf2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i64m8)))
-vint64m8_t vamoandei8(int64_t * op0, vuint8m1_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_i64m8_m)))
-vint64m8_t vamoandei8(vbool8_t op0, int64_t * op1, vuint8m1_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u64m1)))
-vuint64m1_t vamoandei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u64m1_m)))
-vuint64m1_t vamoandei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u64m2)))
-vuint64m2_t vamoandei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u64m2_m)))
-vuint64m2_t vamoandei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u64m4)))
-vuint64m4_t vamoandei8(uint64_t * op0, vuint8mf2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u64m4_m)))
-vuint64m4_t vamoandei8(vbool16_t op0, uint64_t * op1, vuint8mf2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u64m8)))
-vuint64m8_t vamoandei8(uint64_t * op0, vuint8m1_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei8_v_u64m8_m)))
-vuint64m8_t vamoandei8(vbool8_t op0, uint64_t * op1, vuint8m1_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i64m1)))
-vint64m1_t vamoandei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i64m1_m)))
-vint64m1_t vamoandei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i64m2)))
-vint64m2_t vamoandei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i64m2_m)))
-vint64m2_t vamoandei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i64m4)))
-vint64m4_t vamoandei16(int64_t * op0, vuint16m1_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i64m4_m)))
-vint64m4_t vamoandei16(vbool16_t op0, int64_t * op1, vuint16m1_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i64m8)))
-vint64m8_t vamoandei16(int64_t * op0, vuint16m2_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_i64m8_m)))
-vint64m8_t vamoandei16(vbool8_t op0, int64_t * op1, vuint16m2_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u64m1)))
-vuint64m1_t vamoandei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u64m1_m)))
-vuint64m1_t vamoandei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u64m2)))
-vuint64m2_t vamoandei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u64m2_m)))
-vuint64m2_t vamoandei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u64m4)))
-vuint64m4_t vamoandei16(uint64_t * op0, vuint16m1_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u64m4_m)))
-vuint64m4_t vamoandei16(vbool16_t op0, uint64_t * op1, vuint16m1_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u64m8)))
-vuint64m8_t vamoandei16(uint64_t * op0, vuint16m2_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei16_v_u64m8_m)))
-vuint64m8_t vamoandei16(vbool8_t op0, uint64_t * op1, vuint16m2_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i64m1)))
-vint64m1_t vamoandei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i64m1_m)))
-vint64m1_t vamoandei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i64m2)))
-vint64m2_t vamoandei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i64m2_m)))
-vint64m2_t vamoandei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i64m4)))
-vint64m4_t vamoandei32(int64_t * op0, vuint32m2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i64m4_m)))
-vint64m4_t vamoandei32(vbool16_t op0, int64_t * op1, vuint32m2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i64m8)))
-vint64m8_t vamoandei32(int64_t * op0, vuint32m4_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_i64m8_m)))
-vint64m8_t vamoandei32(vbool8_t op0, int64_t * op1, vuint32m4_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u64m1)))
-vuint64m1_t vamoandei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u64m1_m)))
-vuint64m1_t vamoandei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u64m2)))
-vuint64m2_t vamoandei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u64m2_m)))
-vuint64m2_t vamoandei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u64m4)))
-vuint64m4_t vamoandei32(uint64_t * op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u64m4_m)))
-vuint64m4_t vamoandei32(vbool16_t op0, uint64_t * op1, vuint32m2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u64m8)))
-vuint64m8_t vamoandei32(uint64_t * op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei32_v_u64m8_m)))
-vuint64m8_t vamoandei32(vbool8_t op0, uint64_t * op1, vuint32m4_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i64m1)))
-vint64m1_t vamoandei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i64m1_m)))
-vint64m1_t vamoandei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i64m2)))
-vint64m2_t vamoandei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i64m2_m)))
-vint64m2_t vamoandei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i64m4)))
-vint64m4_t vamoandei64(int64_t * op0, vuint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i64m4_m)))
-vint64m4_t vamoandei64(vbool16_t op0, int64_t * op1, vuint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i64m8)))
-vint64m8_t vamoandei64(int64_t * op0, vuint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_i64m8_m)))
-vint64m8_t vamoandei64(vbool8_t op0, int64_t * op1, vuint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u64m1)))
-vuint64m1_t vamoandei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u64m1_m)))
-vuint64m1_t vamoandei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u64m2)))
-vuint64m2_t vamoandei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u64m2_m)))
-vuint64m2_t vamoandei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u64m4)))
-vuint64m4_t vamoandei64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u64m4_m)))
-vuint64m4_t vamoandei64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u64m8)))
-vuint64m8_t vamoandei64(uint64_t * op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoandei64_v_u64m8_m)))
-vuint64m8_t vamoandei64(vbool8_t op0, uint64_t * op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i32m1)))
-vint32m1_t vamoorei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i32m1_m)))
-vint32m1_t vamoorei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i32m2)))
-vint32m2_t vamoorei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i32m2_m)))
-vint32m2_t vamoorei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i32m4)))
-vint32m4_t vamoorei8(int32_t * op0, vuint8m1_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i32m4_m)))
-vint32m4_t vamoorei8(vbool8_t op0, int32_t * op1, vuint8m1_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i32m8)))
-vint32m8_t vamoorei8(int32_t * op0, vuint8m2_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i32m8_m)))
-vint32m8_t vamoorei8(vbool4_t op0, int32_t * op1, vuint8m2_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i32mf2)))
-vint32mf2_t vamoorei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i32mf2_m)))
-vint32mf2_t vamoorei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u32m1)))
-vuint32m1_t vamoorei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u32m1_m)))
-vuint32m1_t vamoorei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u32m2)))
-vuint32m2_t vamoorei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u32m2_m)))
-vuint32m2_t vamoorei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u32m4)))
-vuint32m4_t vamoorei8(uint32_t * op0, vuint8m1_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u32m4_m)))
-vuint32m4_t vamoorei8(vbool8_t op0, uint32_t * op1, vuint8m1_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u32m8)))
-vuint32m8_t vamoorei8(uint32_t * op0, vuint8m2_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u32m8_m)))
-vuint32m8_t vamoorei8(vbool4_t op0, uint32_t * op1, vuint8m2_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u32mf2)))
-vuint32mf2_t vamoorei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u32mf2_m)))
-vuint32mf2_t vamoorei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i32m1)))
-vint32m1_t vamoorei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i32m1_m)))
-vint32m1_t vamoorei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i32m2)))
-vint32m2_t vamoorei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i32m2_m)))
-vint32m2_t vamoorei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i32m4)))
-vint32m4_t vamoorei16(int32_t * op0, vuint16m2_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i32m4_m)))
-vint32m4_t vamoorei16(vbool8_t op0, int32_t * op1, vuint16m2_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i32m8)))
-vint32m8_t vamoorei16(int32_t * op0, vuint16m4_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i32m8_m)))
-vint32m8_t vamoorei16(vbool4_t op0, int32_t * op1, vuint16m4_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i32mf2)))
-vint32mf2_t vamoorei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i32mf2_m)))
-vint32mf2_t vamoorei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u32m1)))
-vuint32m1_t vamoorei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u32m1_m)))
-vuint32m1_t vamoorei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u32m2)))
-vuint32m2_t vamoorei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u32m2_m)))
-vuint32m2_t vamoorei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u32m4)))
-vuint32m4_t vamoorei16(uint32_t * op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u32m4_m)))
-vuint32m4_t vamoorei16(vbool8_t op0, uint32_t * op1, vuint16m2_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u32m8)))
-vuint32m8_t vamoorei16(uint32_t * op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u32m8_m)))
-vuint32m8_t vamoorei16(vbool4_t op0, uint32_t * op1, vuint16m4_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u32mf2)))
-vuint32mf2_t vamoorei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u32mf2_m)))
-vuint32mf2_t vamoorei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i32m1)))
-vint32m1_t vamoorei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i32m1_m)))
-vint32m1_t vamoorei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i32m2)))
-vint32m2_t vamoorei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i32m2_m)))
-vint32m2_t vamoorei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i32m4)))
-vint32m4_t vamoorei32(int32_t * op0, vuint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i32m4_m)))
-vint32m4_t vamoorei32(vbool8_t op0, int32_t * op1, vuint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i32m8)))
-vint32m8_t vamoorei32(int32_t * op0, vuint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i32m8_m)))
-vint32m8_t vamoorei32(vbool4_t op0, int32_t * op1, vuint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i32mf2)))
-vint32mf2_t vamoorei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i32mf2_m)))
-vint32mf2_t vamoorei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u32m1)))
-vuint32m1_t vamoorei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u32m1_m)))
-vuint32m1_t vamoorei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u32m2)))
-vuint32m2_t vamoorei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u32m2_m)))
-vuint32m2_t vamoorei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u32m4)))
-vuint32m4_t vamoorei32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u32m4_m)))
-vuint32m4_t vamoorei32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u32m8)))
-vuint32m8_t vamoorei32(uint32_t * op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u32m8_m)))
-vuint32m8_t vamoorei32(vbool4_t op0, uint32_t * op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u32mf2)))
-vuint32mf2_t vamoorei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u32mf2_m)))
-vuint32mf2_t vamoorei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i32m1)))
-vint32m1_t vamoorei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i32m1_m)))
-vint32m1_t vamoorei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i32m2)))
-vint32m2_t vamoorei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i32m2_m)))
-vint32m2_t vamoorei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i32m4)))
-vint32m4_t vamoorei64(int32_t * op0, vuint64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i32m4_m)))
-vint32m4_t vamoorei64(vbool8_t op0, int32_t * op1, vuint64m8_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i32mf2)))
-vint32mf2_t vamoorei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i32mf2_m)))
-vint32mf2_t vamoorei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u32m1)))
-vuint32m1_t vamoorei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u32m1_m)))
-vuint32m1_t vamoorei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u32m2)))
-vuint32m2_t vamoorei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u32m2_m)))
-vuint32m2_t vamoorei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u32m4)))
-vuint32m4_t vamoorei64(uint32_t * op0, vuint64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u32m4_m)))
-vuint32m4_t vamoorei64(vbool8_t op0, uint32_t * op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u32mf2)))
-vuint32mf2_t vamoorei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u32mf2_m)))
-vuint32mf2_t vamoorei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i64m1)))
-vint64m1_t vamoorei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i64m1_m)))
-vint64m1_t vamoorei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i64m2)))
-vint64m2_t vamoorei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i64m2_m)))
-vint64m2_t vamoorei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i64m4)))
-vint64m4_t vamoorei8(int64_t * op0, vuint8mf2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i64m4_m)))
-vint64m4_t vamoorei8(vbool16_t op0, int64_t * op1, vuint8mf2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i64m8)))
-vint64m8_t vamoorei8(int64_t * op0, vuint8m1_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_i64m8_m)))
-vint64m8_t vamoorei8(vbool8_t op0, int64_t * op1, vuint8m1_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u64m1)))
-vuint64m1_t vamoorei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u64m1_m)))
-vuint64m1_t vamoorei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u64m2)))
-vuint64m2_t vamoorei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u64m2_m)))
-vuint64m2_t vamoorei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u64m4)))
-vuint64m4_t vamoorei8(uint64_t * op0, vuint8mf2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u64m4_m)))
-vuint64m4_t vamoorei8(vbool16_t op0, uint64_t * op1, vuint8mf2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u64m8)))
-vuint64m8_t vamoorei8(uint64_t * op0, vuint8m1_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei8_v_u64m8_m)))
-vuint64m8_t vamoorei8(vbool8_t op0, uint64_t * op1, vuint8m1_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i64m1)))
-vint64m1_t vamoorei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i64m1_m)))
-vint64m1_t vamoorei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i64m2)))
-vint64m2_t vamoorei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i64m2_m)))
-vint64m2_t vamoorei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i64m4)))
-vint64m4_t vamoorei16(int64_t * op0, vuint16m1_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i64m4_m)))
-vint64m4_t vamoorei16(vbool16_t op0, int64_t * op1, vuint16m1_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i64m8)))
-vint64m8_t vamoorei16(int64_t * op0, vuint16m2_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_i64m8_m)))
-vint64m8_t vamoorei16(vbool8_t op0, int64_t * op1, vuint16m2_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u64m1)))
-vuint64m1_t vamoorei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u64m1_m)))
-vuint64m1_t vamoorei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u64m2)))
-vuint64m2_t vamoorei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u64m2_m)))
-vuint64m2_t vamoorei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u64m4)))
-vuint64m4_t vamoorei16(uint64_t * op0, vuint16m1_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u64m4_m)))
-vuint64m4_t vamoorei16(vbool16_t op0, uint64_t * op1, vuint16m1_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u64m8)))
-vuint64m8_t vamoorei16(uint64_t * op0, vuint16m2_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei16_v_u64m8_m)))
-vuint64m8_t vamoorei16(vbool8_t op0, uint64_t * op1, vuint16m2_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i64m1)))
-vint64m1_t vamoorei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i64m1_m)))
-vint64m1_t vamoorei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i64m2)))
-vint64m2_t vamoorei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i64m2_m)))
-vint64m2_t vamoorei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i64m4)))
-vint64m4_t vamoorei32(int64_t * op0, vuint32m2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i64m4_m)))
-vint64m4_t vamoorei32(vbool16_t op0, int64_t * op1, vuint32m2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i64m8)))
-vint64m8_t vamoorei32(int64_t * op0, vuint32m4_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_i64m8_m)))
-vint64m8_t vamoorei32(vbool8_t op0, int64_t * op1, vuint32m4_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u64m1)))
-vuint64m1_t vamoorei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u64m1_m)))
-vuint64m1_t vamoorei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u64m2)))
-vuint64m2_t vamoorei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u64m2_m)))
-vuint64m2_t vamoorei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u64m4)))
-vuint64m4_t vamoorei32(uint64_t * op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u64m4_m)))
-vuint64m4_t vamoorei32(vbool16_t op0, uint64_t * op1, vuint32m2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u64m8)))
-vuint64m8_t vamoorei32(uint64_t * op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei32_v_u64m8_m)))
-vuint64m8_t vamoorei32(vbool8_t op0, uint64_t * op1, vuint32m4_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i64m1)))
-vint64m1_t vamoorei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i64m1_m)))
-vint64m1_t vamoorei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i64m2)))
-vint64m2_t vamoorei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i64m2_m)))
-vint64m2_t vamoorei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i64m4)))
-vint64m4_t vamoorei64(int64_t * op0, vuint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i64m4_m)))
-vint64m4_t vamoorei64(vbool16_t op0, int64_t * op1, vuint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i64m8)))
-vint64m8_t vamoorei64(int64_t * op0, vuint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_i64m8_m)))
-vint64m8_t vamoorei64(vbool8_t op0, int64_t * op1, vuint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u64m1)))
-vuint64m1_t vamoorei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u64m1_m)))
-vuint64m1_t vamoorei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u64m2)))
-vuint64m2_t vamoorei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u64m2_m)))
-vuint64m2_t vamoorei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u64m4)))
-vuint64m4_t vamoorei64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u64m4_m)))
-vuint64m4_t vamoorei64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u64m8)))
-vuint64m8_t vamoorei64(uint64_t * op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoorei64_v_u64m8_m)))
-vuint64m8_t vamoorei64(vbool8_t op0, uint64_t * op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i32m1)))
-vint32m1_t vamominei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i32m1_m)))
-vint32m1_t vamominei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i32m2)))
-vint32m2_t vamominei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i32m2_m)))
-vint32m2_t vamominei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i32m4)))
-vint32m4_t vamominei8(int32_t * op0, vuint8m1_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i32m4_m)))
-vint32m4_t vamominei8(vbool8_t op0, int32_t * op1, vuint8m1_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i32m8)))
-vint32m8_t vamominei8(int32_t * op0, vuint8m2_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i32m8_m)))
-vint32m8_t vamominei8(vbool4_t op0, int32_t * op1, vuint8m2_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i32mf2)))
-vint32mf2_t vamominei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i32mf2_m)))
-vint32mf2_t vamominei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i32m1)))
-vint32m1_t vamominei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i32m1_m)))
-vint32m1_t vamominei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i32m2)))
-vint32m2_t vamominei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i32m2_m)))
-vint32m2_t vamominei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i32m4)))
-vint32m4_t vamominei16(int32_t * op0, vuint16m2_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i32m4_m)))
-vint32m4_t vamominei16(vbool8_t op0, int32_t * op1, vuint16m2_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i32m8)))
-vint32m8_t vamominei16(int32_t * op0, vuint16m4_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i32m8_m)))
-vint32m8_t vamominei16(vbool4_t op0, int32_t * op1, vuint16m4_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i32mf2)))
-vint32mf2_t vamominei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i32mf2_m)))
-vint32mf2_t vamominei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i32m1)))
-vint32m1_t vamominei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i32m1_m)))
-vint32m1_t vamominei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i32m2)))
-vint32m2_t vamominei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i32m2_m)))
-vint32m2_t vamominei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i32m4)))
-vint32m4_t vamominei32(int32_t * op0, vuint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i32m4_m)))
-vint32m4_t vamominei32(vbool8_t op0, int32_t * op1, vuint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i32m8)))
-vint32m8_t vamominei32(int32_t * op0, vuint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i32m8_m)))
-vint32m8_t vamominei32(vbool4_t op0, int32_t * op1, vuint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i32mf2)))
-vint32mf2_t vamominei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i32mf2_m)))
-vint32mf2_t vamominei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i32m1)))
-vint32m1_t vamominei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i32m1_m)))
-vint32m1_t vamominei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i32m2)))
-vint32m2_t vamominei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i32m2_m)))
-vint32m2_t vamominei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i32m4)))
-vint32m4_t vamominei64(int32_t * op0, vuint64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i32m4_m)))
-vint32m4_t vamominei64(vbool8_t op0, int32_t * op1, vuint64m8_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i32mf2)))
-vint32mf2_t vamominei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i32mf2_m)))
-vint32mf2_t vamominei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i64m1)))
-vint64m1_t vamominei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i64m1_m)))
-vint64m1_t vamominei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i64m2)))
-vint64m2_t vamominei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i64m2_m)))
-vint64m2_t vamominei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i64m4)))
-vint64m4_t vamominei8(int64_t * op0, vuint8mf2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i64m4_m)))
-vint64m4_t vamominei8(vbool16_t op0, int64_t * op1, vuint8mf2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i64m8)))
-vint64m8_t vamominei8(int64_t * op0, vuint8m1_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei8_v_i64m8_m)))
-vint64m8_t vamominei8(vbool8_t op0, int64_t * op1, vuint8m1_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i64m1)))
-vint64m1_t vamominei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i64m1_m)))
-vint64m1_t vamominei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i64m2)))
-vint64m2_t vamominei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i64m2_m)))
-vint64m2_t vamominei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i64m4)))
-vint64m4_t vamominei16(int64_t * op0, vuint16m1_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i64m4_m)))
-vint64m4_t vamominei16(vbool16_t op0, int64_t * op1, vuint16m1_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i64m8)))
-vint64m8_t vamominei16(int64_t * op0, vuint16m2_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei16_v_i64m8_m)))
-vint64m8_t vamominei16(vbool8_t op0, int64_t * op1, vuint16m2_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i64m1)))
-vint64m1_t vamominei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i64m1_m)))
-vint64m1_t vamominei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i64m2)))
-vint64m2_t vamominei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i64m2_m)))
-vint64m2_t vamominei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i64m4)))
-vint64m4_t vamominei32(int64_t * op0, vuint32m2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i64m4_m)))
-vint64m4_t vamominei32(vbool16_t op0, int64_t * op1, vuint32m2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i64m8)))
-vint64m8_t vamominei32(int64_t * op0, vuint32m4_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei32_v_i64m8_m)))
-vint64m8_t vamominei32(vbool8_t op0, int64_t * op1, vuint32m4_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i64m1)))
-vint64m1_t vamominei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i64m1_m)))
-vint64m1_t vamominei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i64m2)))
-vint64m2_t vamominei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i64m2_m)))
-vint64m2_t vamominei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i64m4)))
-vint64m4_t vamominei64(int64_t * op0, vuint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i64m4_m)))
-vint64m4_t vamominei64(vbool16_t op0, int64_t * op1, vuint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i64m8)))
-vint64m8_t vamominei64(int64_t * op0, vuint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominei64_v_i64m8_m)))
-vint64m8_t vamominei64(vbool8_t op0, int64_t * op1, vuint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i32m1)))
-vint32m1_t vamomaxei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i32m1_m)))
-vint32m1_t vamomaxei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i32m2)))
-vint32m2_t vamomaxei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i32m2_m)))
-vint32m2_t vamomaxei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i32m4)))
-vint32m4_t vamomaxei8(int32_t * op0, vuint8m1_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i32m4_m)))
-vint32m4_t vamomaxei8(vbool8_t op0, int32_t * op1, vuint8m1_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i32m8)))
-vint32m8_t vamomaxei8(int32_t * op0, vuint8m2_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i32m8_m)))
-vint32m8_t vamomaxei8(vbool4_t op0, int32_t * op1, vuint8m2_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i32mf2)))
-vint32mf2_t vamomaxei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i32mf2_m)))
-vint32mf2_t vamomaxei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i32m1)))
-vint32m1_t vamomaxei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i32m1_m)))
-vint32m1_t vamomaxei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i32m2)))
-vint32m2_t vamomaxei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i32m2_m)))
-vint32m2_t vamomaxei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i32m4)))
-vint32m4_t vamomaxei16(int32_t * op0, vuint16m2_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i32m4_m)))
-vint32m4_t vamomaxei16(vbool8_t op0, int32_t * op1, vuint16m2_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i32m8)))
-vint32m8_t vamomaxei16(int32_t * op0, vuint16m4_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i32m8_m)))
-vint32m8_t vamomaxei16(vbool4_t op0, int32_t * op1, vuint16m4_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i32mf2)))
-vint32mf2_t vamomaxei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i32mf2_m)))
-vint32mf2_t vamomaxei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i32m1)))
-vint32m1_t vamomaxei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i32m1_m)))
-vint32m1_t vamomaxei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i32m2)))
-vint32m2_t vamomaxei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i32m2_m)))
-vint32m2_t vamomaxei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i32m4)))
-vint32m4_t vamomaxei32(int32_t * op0, vuint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i32m4_m)))
-vint32m4_t vamomaxei32(vbool8_t op0, int32_t * op1, vuint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i32m8)))
-vint32m8_t vamomaxei32(int32_t * op0, vuint32m8_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i32m8_m)))
-vint32m8_t vamomaxei32(vbool4_t op0, int32_t * op1, vuint32m8_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i32mf2)))
-vint32mf2_t vamomaxei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i32mf2_m)))
-vint32mf2_t vamomaxei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i32m1)))
-vint32m1_t vamomaxei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i32m1_m)))
-vint32m1_t vamomaxei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i32m2)))
-vint32m2_t vamomaxei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i32m2_m)))
-vint32m2_t vamomaxei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i32m4)))
-vint32m4_t vamomaxei64(int32_t * op0, vuint64m8_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i32m4_m)))
-vint32m4_t vamomaxei64(vbool8_t op0, int32_t * op1, vuint64m8_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i32mf2)))
-vint32mf2_t vamomaxei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i32mf2_m)))
-vint32mf2_t vamomaxei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i64m1)))
-vint64m1_t vamomaxei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i64m1_m)))
-vint64m1_t vamomaxei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i64m2)))
-vint64m2_t vamomaxei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i64m2_m)))
-vint64m2_t vamomaxei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i64m4)))
-vint64m4_t vamomaxei8(int64_t * op0, vuint8mf2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i64m4_m)))
-vint64m4_t vamomaxei8(vbool16_t op0, int64_t * op1, vuint8mf2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i64m8)))
-vint64m8_t vamomaxei8(int64_t * op0, vuint8m1_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei8_v_i64m8_m)))
-vint64m8_t vamomaxei8(vbool8_t op0, int64_t * op1, vuint8m1_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i64m1)))
-vint64m1_t vamomaxei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i64m1_m)))
-vint64m1_t vamomaxei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i64m2)))
-vint64m2_t vamomaxei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i64m2_m)))
-vint64m2_t vamomaxei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i64m4)))
-vint64m4_t vamomaxei16(int64_t * op0, vuint16m1_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i64m4_m)))
-vint64m4_t vamomaxei16(vbool16_t op0, int64_t * op1, vuint16m1_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i64m8)))
-vint64m8_t vamomaxei16(int64_t * op0, vuint16m2_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei16_v_i64m8_m)))
-vint64m8_t vamomaxei16(vbool8_t op0, int64_t * op1, vuint16m2_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i64m1)))
-vint64m1_t vamomaxei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i64m1_m)))
-vint64m1_t vamomaxei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i64m2)))
-vint64m2_t vamomaxei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i64m2_m)))
-vint64m2_t vamomaxei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i64m4)))
-vint64m4_t vamomaxei32(int64_t * op0, vuint32m2_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i64m4_m)))
-vint64m4_t vamomaxei32(vbool16_t op0, int64_t * op1, vuint32m2_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i64m8)))
-vint64m8_t vamomaxei32(int64_t * op0, vuint32m4_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei32_v_i64m8_m)))
-vint64m8_t vamomaxei32(vbool8_t op0, int64_t * op1, vuint32m4_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i64m1)))
-vint64m1_t vamomaxei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i64m1_m)))
-vint64m1_t vamomaxei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i64m2)))
-vint64m2_t vamomaxei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i64m2_m)))
-vint64m2_t vamomaxei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i64m4)))
-vint64m4_t vamomaxei64(int64_t * op0, vuint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i64m4_m)))
-vint64m4_t vamomaxei64(vbool16_t op0, int64_t * op1, vuint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i64m8)))
-vint64m8_t vamomaxei64(int64_t * op0, vuint64m8_t op1, vint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxei64_v_i64m8_m)))
-vint64m8_t vamomaxei64(vbool8_t op0, int64_t * op1, vuint64m8_t op2, vint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u32m1)))
-vuint32m1_t vamominuei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u32m1_m)))
-vuint32m1_t vamominuei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u32m2)))
-vuint32m2_t vamominuei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u32m2_m)))
-vuint32m2_t vamominuei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u32m4)))
-vuint32m4_t vamominuei8(uint32_t * op0, vuint8m1_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u32m4_m)))
-vuint32m4_t vamominuei8(vbool8_t op0, uint32_t * op1, vuint8m1_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u32m8)))
-vuint32m8_t vamominuei8(uint32_t * op0, vuint8m2_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u32m8_m)))
-vuint32m8_t vamominuei8(vbool4_t op0, uint32_t * op1, vuint8m2_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u32mf2)))
-vuint32mf2_t vamominuei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u32mf2_m)))
-vuint32mf2_t vamominuei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u32m1)))
-vuint32m1_t vamominuei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u32m1_m)))
-vuint32m1_t vamominuei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u32m2)))
-vuint32m2_t vamominuei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u32m2_m)))
-vuint32m2_t vamominuei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u32m4)))
-vuint32m4_t vamominuei16(uint32_t * op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u32m4_m)))
-vuint32m4_t vamominuei16(vbool8_t op0, uint32_t * op1, vuint16m2_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u32m8)))
-vuint32m8_t vamominuei16(uint32_t * op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u32m8_m)))
-vuint32m8_t vamominuei16(vbool4_t op0, uint32_t * op1, vuint16m4_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u32mf2)))
-vuint32mf2_t vamominuei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u32mf2_m)))
-vuint32mf2_t vamominuei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u32m1)))
-vuint32m1_t vamominuei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u32m1_m)))
-vuint32m1_t vamominuei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u32m2)))
-vuint32m2_t vamominuei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u32m2_m)))
-vuint32m2_t vamominuei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u32m4)))
-vuint32m4_t vamominuei32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u32m4_m)))
-vuint32m4_t vamominuei32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u32m8)))
-vuint32m8_t vamominuei32(uint32_t * op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u32m8_m)))
-vuint32m8_t vamominuei32(vbool4_t op0, uint32_t * op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u32mf2)))
-vuint32mf2_t vamominuei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u32mf2_m)))
-vuint32mf2_t vamominuei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u32m1)))
-vuint32m1_t vamominuei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u32m1_m)))
-vuint32m1_t vamominuei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u32m2)))
-vuint32m2_t vamominuei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u32m2_m)))
-vuint32m2_t vamominuei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u32m4)))
-vuint32m4_t vamominuei64(uint32_t * op0, vuint64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u32m4_m)))
-vuint32m4_t vamominuei64(vbool8_t op0, uint32_t * op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u32mf2)))
-vuint32mf2_t vamominuei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u32mf2_m)))
-vuint32mf2_t vamominuei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u64m1)))
-vuint64m1_t vamominuei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u64m1_m)))
-vuint64m1_t vamominuei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u64m2)))
-vuint64m2_t vamominuei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u64m2_m)))
-vuint64m2_t vamominuei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u64m4)))
-vuint64m4_t vamominuei8(uint64_t * op0, vuint8mf2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u64m4_m)))
-vuint64m4_t vamominuei8(vbool16_t op0, uint64_t * op1, vuint8mf2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u64m8)))
-vuint64m8_t vamominuei8(uint64_t * op0, vuint8m1_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei8_v_u64m8_m)))
-vuint64m8_t vamominuei8(vbool8_t op0, uint64_t * op1, vuint8m1_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u64m1)))
-vuint64m1_t vamominuei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u64m1_m)))
-vuint64m1_t vamominuei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u64m2)))
-vuint64m2_t vamominuei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u64m2_m)))
-vuint64m2_t vamominuei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u64m4)))
-vuint64m4_t vamominuei16(uint64_t * op0, vuint16m1_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u64m4_m)))
-vuint64m4_t vamominuei16(vbool16_t op0, uint64_t * op1, vuint16m1_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u64m8)))
-vuint64m8_t vamominuei16(uint64_t * op0, vuint16m2_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei16_v_u64m8_m)))
-vuint64m8_t vamominuei16(vbool8_t op0, uint64_t * op1, vuint16m2_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u64m1)))
-vuint64m1_t vamominuei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u64m1_m)))
-vuint64m1_t vamominuei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u64m2)))
-vuint64m2_t vamominuei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u64m2_m)))
-vuint64m2_t vamominuei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u64m4)))
-vuint64m4_t vamominuei32(uint64_t * op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u64m4_m)))
-vuint64m4_t vamominuei32(vbool16_t op0, uint64_t * op1, vuint32m2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u64m8)))
-vuint64m8_t vamominuei32(uint64_t * op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei32_v_u64m8_m)))
-vuint64m8_t vamominuei32(vbool8_t op0, uint64_t * op1, vuint32m4_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u64m1)))
-vuint64m1_t vamominuei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u64m1_m)))
-vuint64m1_t vamominuei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u64m2)))
-vuint64m2_t vamominuei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u64m2_m)))
-vuint64m2_t vamominuei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u64m4)))
-vuint64m4_t vamominuei64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u64m4_m)))
-vuint64m4_t vamominuei64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u64m8)))
-vuint64m8_t vamominuei64(uint64_t * op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamominuei64_v_u64m8_m)))
-vuint64m8_t vamominuei64(vbool8_t op0, uint64_t * op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u32m1)))
-vuint32m1_t vamomaxuei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u32m1_m)))
-vuint32m1_t vamomaxuei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u32m2)))
-vuint32m2_t vamomaxuei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u32m2_m)))
-vuint32m2_t vamomaxuei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u32m4)))
-vuint32m4_t vamomaxuei8(uint32_t * op0, vuint8m1_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u32m4_m)))
-vuint32m4_t vamomaxuei8(vbool8_t op0, uint32_t * op1, vuint8m1_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u32m8)))
-vuint32m8_t vamomaxuei8(uint32_t * op0, vuint8m2_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u32m8_m)))
-vuint32m8_t vamomaxuei8(vbool4_t op0, uint32_t * op1, vuint8m2_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u32mf2)))
-vuint32mf2_t vamomaxuei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u32mf2_m)))
-vuint32mf2_t vamomaxuei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u32m1)))
-vuint32m1_t vamomaxuei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u32m1_m)))
-vuint32m1_t vamomaxuei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u32m2)))
-vuint32m2_t vamomaxuei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u32m2_m)))
-vuint32m2_t vamomaxuei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u32m4)))
-vuint32m4_t vamomaxuei16(uint32_t * op0, vuint16m2_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u32m4_m)))
-vuint32m4_t vamomaxuei16(vbool8_t op0, uint32_t * op1, vuint16m2_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u32m8)))
-vuint32m8_t vamomaxuei16(uint32_t * op0, vuint16m4_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u32m8_m)))
-vuint32m8_t vamomaxuei16(vbool4_t op0, uint32_t * op1, vuint16m4_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u32mf2)))
-vuint32mf2_t vamomaxuei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u32mf2_m)))
-vuint32mf2_t vamomaxuei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u32m1)))
-vuint32m1_t vamomaxuei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u32m1_m)))
-vuint32m1_t vamomaxuei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u32m2)))
-vuint32m2_t vamomaxuei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u32m2_m)))
-vuint32m2_t vamomaxuei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u32m4)))
-vuint32m4_t vamomaxuei32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u32m4_m)))
-vuint32m4_t vamomaxuei32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u32m8)))
-vuint32m8_t vamomaxuei32(uint32_t * op0, vuint32m8_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u32m8_m)))
-vuint32m8_t vamomaxuei32(vbool4_t op0, uint32_t * op1, vuint32m8_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u32mf2)))
-vuint32mf2_t vamomaxuei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u32mf2_m)))
-vuint32mf2_t vamomaxuei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u32m1)))
-vuint32m1_t vamomaxuei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u32m1_m)))
-vuint32m1_t vamomaxuei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u32m2)))
-vuint32m2_t vamomaxuei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u32m2_m)))
-vuint32m2_t vamomaxuei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u32m4)))
-vuint32m4_t vamomaxuei64(uint32_t * op0, vuint64m8_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u32m4_m)))
-vuint32m4_t vamomaxuei64(vbool8_t op0, uint32_t * op1, vuint64m8_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u32mf2)))
-vuint32mf2_t vamomaxuei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u32mf2_m)))
-vuint32mf2_t vamomaxuei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u64m1)))
-vuint64m1_t vamomaxuei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u64m1_m)))
-vuint64m1_t vamomaxuei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u64m2)))
-vuint64m2_t vamomaxuei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u64m2_m)))
-vuint64m2_t vamomaxuei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u64m4)))
-vuint64m4_t vamomaxuei8(uint64_t * op0, vuint8mf2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u64m4_m)))
-vuint64m4_t vamomaxuei8(vbool16_t op0, uint64_t * op1, vuint8mf2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u64m8)))
-vuint64m8_t vamomaxuei8(uint64_t * op0, vuint8m1_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei8_v_u64m8_m)))
-vuint64m8_t vamomaxuei8(vbool8_t op0, uint64_t * op1, vuint8m1_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u64m1)))
-vuint64m1_t vamomaxuei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u64m1_m)))
-vuint64m1_t vamomaxuei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u64m2)))
-vuint64m2_t vamomaxuei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u64m2_m)))
-vuint64m2_t vamomaxuei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u64m4)))
-vuint64m4_t vamomaxuei16(uint64_t * op0, vuint16m1_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u64m4_m)))
-vuint64m4_t vamomaxuei16(vbool16_t op0, uint64_t * op1, vuint16m1_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u64m8)))
-vuint64m8_t vamomaxuei16(uint64_t * op0, vuint16m2_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei16_v_u64m8_m)))
-vuint64m8_t vamomaxuei16(vbool8_t op0, uint64_t * op1, vuint16m2_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u64m1)))
-vuint64m1_t vamomaxuei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u64m1_m)))
-vuint64m1_t vamomaxuei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u64m2)))
-vuint64m2_t vamomaxuei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u64m2_m)))
-vuint64m2_t vamomaxuei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u64m4)))
-vuint64m4_t vamomaxuei32(uint64_t * op0, vuint32m2_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u64m4_m)))
-vuint64m4_t vamomaxuei32(vbool16_t op0, uint64_t * op1, vuint32m2_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u64m8)))
-vuint64m8_t vamomaxuei32(uint64_t * op0, vuint32m4_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei32_v_u64m8_m)))
-vuint64m8_t vamomaxuei32(vbool8_t op0, uint64_t * op1, vuint32m4_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u64m1)))
-vuint64m1_t vamomaxuei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u64m1_m)))
-vuint64m1_t vamomaxuei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u64m2)))
-vuint64m2_t vamomaxuei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u64m2_m)))
-vuint64m2_t vamomaxuei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u64m4)))
-vuint64m4_t vamomaxuei64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u64m4_m)))
-vuint64m4_t vamomaxuei64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u64m8)))
-vuint64m8_t vamomaxuei64(uint64_t * op0, vuint64m8_t op1, vuint64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamomaxuei64_v_u64m8_m)))
-vuint64m8_t vamomaxuei64(vbool8_t op0, uint64_t * op1, vuint64m8_t op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i32m1)))
-vint32m1_t vamoswapei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i32m1_m)))
-vint32m1_t vamoswapei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i32m2)))
-vint32m2_t vamoswapei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i32m2_m)))
-vint32m2_t vamoswapei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i32m4)))
-vint32m4_t vamoswapei8(int32_t * op0, vuint8m1_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i32m4_m)))
-vint32m4_t vamoswapei8(vbool8_t op0, int32_t * op1, vuint8m1_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i32m8)))
-vint32m8_t vamoswapei8(int32_t * op0, vuint8m2_t op1, vint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i32m8_m)))
-vint32m8_t vamoswapei8(vbool4_t op0, int32_t * op1, vuint8m2_t op2, vint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i32mf2)))
-vint32mf2_t vamoswapei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_i32mf2_m)))
-vint32mf2_t vamoswapei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u32m1)))
-vuint32m1_t vamoswapei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u32m1_m)))
-vuint32m1_t vamoswapei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u32m2)))
-vuint32m2_t vamoswapei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u32m2_m)))
-vuint32m2_t vamoswapei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u32m4)))
-vuint32m4_t vamoswapei8(uint32_t * op0, vuint8m1_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u32m4_m)))
-vuint32m4_t vamoswapei8(vbool8_t op0, uint32_t * op1, vuint8m1_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u32m8)))
-vuint32m8_t vamoswapei8(uint32_t * op0, vuint8m2_t op1, vuint32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u32m8_m)))
-vuint32m8_t vamoswapei8(vbool4_t op0, uint32_t * op1, vuint8m2_t op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u32mf2)))
-vuint32mf2_t vamoswapei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_u32mf2_m)))
-vuint32mf2_t vamoswapei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, size_t op4);
-
-#endif
-
-#if defined(__riscv_f) && defined(__riscv_zvamo)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f32m1)))
-vfloat32m1_t vamoswapei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f32m1_m)))
-vfloat32m1_t vamoswapei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f32m2)))
-vfloat32m2_t vamoswapei8(float * op0, vuint8mf2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f32m2_m)))
-vfloat32m2_t vamoswapei8(vbool16_t op0, float * op1, vuint8mf2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f32m4)))
-vfloat32m4_t vamoswapei8(float * op0, vuint8m1_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f32m4_m)))
-vfloat32m4_t vamoswapei8(vbool8_t op0, float * op1, vuint8m1_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f32m8)))
-vfloat32m8_t vamoswapei8(float * op0, vuint8m2_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f32m8_m)))
-vfloat32m8_t vamoswapei8(vbool4_t op0, float * op1, vuint8m2_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f32mf2)))
-vfloat32mf2_t vamoswapei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f32mf2_m)))
-vfloat32mf2_t vamoswapei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f32m1)))
-vfloat32m1_t vamoswapei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f32m1_m)))
-vfloat32m1_t vamoswapei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f32m2)))
-vfloat32m2_t vamoswapei16(float * op0, vuint16m1_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f32m2_m)))
-vfloat32m2_t vamoswapei16(vbool16_t op0, float * op1, vuint16m1_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f32m4)))
-vfloat32m4_t vamoswapei16(float * op0, vuint16m2_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f32m4_m)))
-vfloat32m4_t vamoswapei16(vbool8_t op0, float * op1, vuint16m2_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f32m8)))
-vfloat32m8_t vamoswapei16(float * op0, vuint16m4_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f32m8_m)))
-vfloat32m8_t vamoswapei16(vbool4_t op0, float * op1, vuint16m4_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f32mf2)))
-vfloat32mf2_t vamoswapei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f32mf2_m)))
-vfloat32mf2_t vamoswapei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f32m1)))
-vfloat32m1_t vamoswapei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f32m1_m)))
-vfloat32m1_t vamoswapei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f32m2)))
-vfloat32m2_t vamoswapei32(float * op0, vuint32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f32m2_m)))
-vfloat32m2_t vamoswapei32(vbool16_t op0, float * op1, vuint32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f32m4)))
-vfloat32m4_t vamoswapei32(float * op0, vuint32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f32m4_m)))
-vfloat32m4_t vamoswapei32(vbool8_t op0, float * op1, vuint32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f32m8)))
-vfloat32m8_t vamoswapei32(float * op0, vuint32m8_t op1, vfloat32m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f32m8_m)))
-vfloat32m8_t vamoswapei32(vbool4_t op0, float * op1, vuint32m8_t op2, vfloat32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f32mf2)))
-vfloat32mf2_t vamoswapei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f32mf2_m)))
-vfloat32mf2_t vamoswapei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f32m1)))
-vfloat32m1_t vamoswapei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f32m1_m)))
-vfloat32m1_t vamoswapei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f32m2)))
-vfloat32m2_t vamoswapei64(float * op0, vuint64m4_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f32m2_m)))
-vfloat32m2_t vamoswapei64(vbool16_t op0, float * op1, vuint64m4_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f32m4)))
-vfloat32m4_t vamoswapei64(float * op0, vuint64m8_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f32m4_m)))
-vfloat32m4_t vamoswapei64(vbool8_t op0, float * op1, vuint64m8_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f32mf2)))
-vfloat32mf2_t vamoswapei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f32mf2_m)))
-vfloat32mf2_t vamoswapei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, size_t op4);
-
-#endif
-
-#if defined(__riscv_d) && defined(__riscv_zvamo)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f64m1)))
-vfloat64m1_t vamoswapei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f64m1_m)))
-vfloat64m1_t vamoswapei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f64m2)))
-vfloat64m2_t vamoswapei8(double * op0, vuint8mf4_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f64m2_m)))
-vfloat64m2_t vamoswapei8(vbool32_t op0, double * op1, vuint8mf4_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f64m4)))
-vfloat64m4_t vamoswapei8(double * op0, vuint8mf2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f64m4_m)))
-vfloat64m4_t vamoswapei8(vbool16_t op0, double * op1, vuint8mf2_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f64m8)))
-vfloat64m8_t vamoswapei8(double * op0, vuint8m1_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei8_v_f64m8_m)))
-vfloat64m8_t vamoswapei8(vbool8_t op0, double * op1, vuint8m1_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f64m1)))
-vfloat64m1_t vamoswapei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f64m1_m)))
-vfloat64m1_t vamoswapei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f64m2)))
-vfloat64m2_t vamoswapei16(double * op0, vuint16mf2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f64m2_m)))
-vfloat64m2_t vamoswapei16(vbool32_t op0, double * op1, vuint16mf2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f64m4)))
-vfloat64m4_t vamoswapei16(double * op0, vuint16m1_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f64m4_m)))
-vfloat64m4_t vamoswapei16(vbool16_t op0, double * op1, vuint16m1_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f64m8)))
-vfloat64m8_t vamoswapei16(double * op0, vuint16m2_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei16_v_f64m8_m)))
-vfloat64m8_t vamoswapei16(vbool8_t op0, double * op1, vuint16m2_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f64m1)))
-vfloat64m1_t vamoswapei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f64m1_m)))
-vfloat64m1_t vamoswapei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f64m2)))
-vfloat64m2_t vamoswapei32(double * op0, vuint32m1_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f64m2_m)))
-vfloat64m2_t vamoswapei32(vbool32_t op0, double * op1, vuint32m1_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f64m4)))
-vfloat64m4_t vamoswapei32(double * op0, vuint32m2_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f64m4_m)))
-vfloat64m4_t vamoswapei32(vbool16_t op0, double * op1, vuint32m2_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f64m8)))
-vfloat64m8_t vamoswapei32(double * op0, vuint32m4_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei32_v_f64m8_m)))
-vfloat64m8_t vamoswapei32(vbool8_t op0, double * op1, vuint32m4_t op2, vfloat64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f64m1)))
-vfloat64m1_t vamoswapei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f64m1_m)))
-vfloat64m1_t vamoswapei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f64m2)))
-vfloat64m2_t vamoswapei64(double * op0, vuint64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f64m2_m)))
-vfloat64m2_t vamoswapei64(vbool32_t op0, double * op1, vuint64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f64m4)))
-vfloat64m4_t vamoswapei64(double * op0, vuint64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f64m4_m)))
-vfloat64m4_t vamoswapei64(vbool16_t op0, double * op1, vuint64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f64m8)))
-vfloat64m8_t vamoswapei64(double * op0, vuint64m8_t op1, vfloat64m8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vamoswapei64_v_f64m8_m)))
-vfloat64m8_t vamoswapei64(vbool8_t op0, double * op1, vuint64m8_t op2, vfloat64m8_t op3, size_t op4);
-
-#endif
-
-#if defined(__riscv_zvlsseg)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i64m1)))
-void vloxseg2ei8(vint64m1_t * op0, vint64m1_t * op1, const int64_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i64m1_m)))
-void vloxseg2ei8(vint64m1_t * op0, vint64m1_t * op1, vbool64_t op2, vint64m1_t op3, vint64m1_t op4, const int64_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i64m2)))
-void vloxseg2ei8(vint64m2_t * op0, vint64m2_t * op1, const int64_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i64m2_m)))
-void vloxseg2ei8(vint64m2_t * op0, vint64m2_t * op1, vbool32_t op2, vint64m2_t op3, vint64m2_t op4, const int64_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i64m4)))
-void vloxseg2ei8(vint64m4_t * op0, vint64m4_t * op1, const int64_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i64m4_m)))
-void vloxseg2ei8(vint64m4_t * op0, vint64m4_t * op1, vbool16_t op2, vint64m4_t op3, vint64m4_t op4, const int64_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u64m1)))
-void vloxseg2ei8(vuint64m1_t * op0, vuint64m1_t * op1, const uint64_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u64m1_m)))
-void vloxseg2ei8(vuint64m1_t * op0, vuint64m1_t * op1, vbool64_t op2, vuint64m1_t op3, vuint64m1_t op4, const uint64_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u64m2)))
-void vloxseg2ei8(vuint64m2_t * op0, vuint64m2_t * op1, const uint64_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u64m2_m)))
-void vloxseg2ei8(vuint64m2_t * op0, vuint64m2_t * op1, vbool32_t op2, vuint64m2_t op3, vuint64m2_t op4, const uint64_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u64m4)))
-void vloxseg2ei8(vuint64m4_t * op0, vuint64m4_t * op1, const uint64_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u64m4_m)))
-void vloxseg2ei8(vuint64m4_t * op0, vuint64m4_t * op1, vbool16_t op2, vuint64m4_t op3, vuint64m4_t op4, const uint64_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i64m1)))
-void vloxseg3ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, const int64_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i64m1_m)))
-void vloxseg3ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vbool64_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, const int64_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i64m2)))
-void vloxseg3ei8(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, const int64_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i64m2_m)))
-void vloxseg3ei8(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vbool32_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, const int64_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u64m1)))
-void vloxseg3ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, const uint64_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u64m1_m)))
-void vloxseg3ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vbool64_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, const uint64_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u64m2)))
-void vloxseg3ei8(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, const uint64_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u64m2_m)))
-void vloxseg3ei8(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vbool32_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, const uint64_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i64m1)))
-void vloxseg4ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, const int64_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i64m1_m)))
-void vloxseg4ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vbool64_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, const int64_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i64m2)))
-void vloxseg4ei8(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, const int64_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i64m2_m)))
-void vloxseg4ei8(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, vbool32_t op4, vint64m2_t op5, vint64m2_t op6, vint64m2_t op7, vint64m2_t op8, const int64_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u64m1)))
-void vloxseg4ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, const uint64_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u64m1_m)))
-void vloxseg4ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vbool64_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, const uint64_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u64m2)))
-void vloxseg4ei8(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, const uint64_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u64m2_m)))
-void vloxseg4ei8(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, vbool32_t op4, vuint64m2_t op5, vuint64m2_t op6, vuint64m2_t op7, vuint64m2_t op8, const uint64_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i64m1)))
-void vloxseg5ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, const int64_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i64m1_m)))
-void vloxseg5ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vbool64_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, const int64_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u64m1)))
-void vloxseg5ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, const uint64_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u64m1_m)))
-void vloxseg5ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vbool64_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, const uint64_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i64m1)))
-void vloxseg6ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, const int64_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i64m1_m)))
-void vloxseg6ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vbool64_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, const int64_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u64m1)))
-void vloxseg6ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, const uint64_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u64m1_m)))
-void vloxseg6ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vbool64_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, const uint64_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i64m1)))
-void vloxseg7ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, const int64_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i64m1_m)))
-void vloxseg7ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vbool64_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, const int64_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u64m1)))
-void vloxseg7ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, const uint64_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u64m1_m)))
-void vloxseg7ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vbool64_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, const uint64_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i64m1)))
-void vloxseg8ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, const int64_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i64m1_m)))
-void vloxseg8ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, vbool64_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, vint64m1_t op15, vint64m1_t op16, const int64_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u64m1)))
-void vloxseg8ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, const uint64_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u64m1_m)))
-void vloxseg8ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, vbool64_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, vuint64m1_t op15, vuint64m1_t op16, const uint64_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i64m1)))
-void vloxseg2ei16(vint64m1_t * op0, vint64m1_t * op1, const int64_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i64m1_m)))
-void vloxseg2ei16(vint64m1_t * op0, vint64m1_t * op1, vbool64_t op2, vint64m1_t op3, vint64m1_t op4, const int64_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i64m2)))
-void vloxseg2ei16(vint64m2_t * op0, vint64m2_t * op1, const int64_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i64m2_m)))
-void vloxseg2ei16(vint64m2_t * op0, vint64m2_t * op1, vbool32_t op2, vint64m2_t op3, vint64m2_t op4, const int64_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i64m4)))
-void vloxseg2ei16(vint64m4_t * op0, vint64m4_t * op1, const int64_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i64m4_m)))
-void vloxseg2ei16(vint64m4_t * op0, vint64m4_t * op1, vbool16_t op2, vint64m4_t op3, vint64m4_t op4, const int64_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u64m1)))
-void vloxseg2ei16(vuint64m1_t * op0, vuint64m1_t * op1, const uint64_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u64m1_m)))
-void vloxseg2ei16(vuint64m1_t * op0, vuint64m1_t * op1, vbool64_t op2, vuint64m1_t op3, vuint64m1_t op4, const uint64_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u64m2)))
-void vloxseg2ei16(vuint64m2_t * op0, vuint64m2_t * op1, const uint64_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u64m2_m)))
-void vloxseg2ei16(vuint64m2_t * op0, vuint64m2_t * op1, vbool32_t op2, vuint64m2_t op3, vuint64m2_t op4, const uint64_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u64m4)))
-void vloxseg2ei16(vuint64m4_t * op0, vuint64m4_t * op1, const uint64_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u64m4_m)))
-void vloxseg2ei16(vuint64m4_t * op0, vuint64m4_t * op1, vbool16_t op2, vuint64m4_t op3, vuint64m4_t op4, const uint64_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i64m1)))
-void vloxseg3ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, const int64_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i64m1_m)))
-void vloxseg3ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vbool64_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, const int64_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i64m2)))
-void vloxseg3ei16(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, const int64_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i64m2_m)))
-void vloxseg3ei16(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vbool32_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, const int64_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u64m1)))
-void vloxseg3ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, const uint64_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u64m1_m)))
-void vloxseg3ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vbool64_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, const uint64_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u64m2)))
-void vloxseg3ei16(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, const uint64_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u64m2_m)))
-void vloxseg3ei16(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vbool32_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, const uint64_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i64m1)))
-void vloxseg4ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, const int64_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i64m1_m)))
-void vloxseg4ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vbool64_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, const int64_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i64m2)))
-void vloxseg4ei16(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, const int64_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i64m2_m)))
-void vloxseg4ei16(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, vbool32_t op4, vint64m2_t op5, vint64m2_t op6, vint64m2_t op7, vint64m2_t op8, const int64_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u64m1)))
-void vloxseg4ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, const uint64_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u64m1_m)))
-void vloxseg4ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vbool64_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, const uint64_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u64m2)))
-void vloxseg4ei16(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, const uint64_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u64m2_m)))
-void vloxseg4ei16(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, vbool32_t op4, vuint64m2_t op5, vuint64m2_t op6, vuint64m2_t op7, vuint64m2_t op8, const uint64_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i64m1)))
-void vloxseg5ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, const int64_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i64m1_m)))
-void vloxseg5ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vbool64_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, const int64_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u64m1)))
-void vloxseg5ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, const uint64_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u64m1_m)))
-void vloxseg5ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vbool64_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, const uint64_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i64m1)))
-void vloxseg6ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, const int64_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i64m1_m)))
-void vloxseg6ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vbool64_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, const int64_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u64m1)))
-void vloxseg6ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, const uint64_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u64m1_m)))
-void vloxseg6ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vbool64_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, const uint64_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i64m1)))
-void vloxseg7ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, const int64_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i64m1_m)))
-void vloxseg7ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vbool64_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, const int64_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u64m1)))
-void vloxseg7ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, const uint64_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u64m1_m)))
-void vloxseg7ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vbool64_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, const uint64_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i64m1)))
-void vloxseg8ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, const int64_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i64m1_m)))
-void vloxseg8ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, vbool64_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, vint64m1_t op15, vint64m1_t op16, const int64_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u64m1)))
-void vloxseg8ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, const uint64_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u64m1_m)))
-void vloxseg8ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, vbool64_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, vuint64m1_t op15, vuint64m1_t op16, const uint64_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i64m1)))
-void vloxseg2ei32(vint64m1_t * op0, vint64m1_t * op1, const int64_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i64m1_m)))
-void vloxseg2ei32(vint64m1_t * op0, vint64m1_t * op1, vbool64_t op2, vint64m1_t op3, vint64m1_t op4, const int64_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i64m2)))
-void vloxseg2ei32(vint64m2_t * op0, vint64m2_t * op1, const int64_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i64m2_m)))
-void vloxseg2ei32(vint64m2_t * op0, vint64m2_t * op1, vbool32_t op2, vint64m2_t op3, vint64m2_t op4, const int64_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i64m4)))
-void vloxseg2ei32(vint64m4_t * op0, vint64m4_t * op1, const int64_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i64m4_m)))
-void vloxseg2ei32(vint64m4_t * op0, vint64m4_t * op1, vbool16_t op2, vint64m4_t op3, vint64m4_t op4, const int64_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u64m1)))
-void vloxseg2ei32(vuint64m1_t * op0, vuint64m1_t * op1, const uint64_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u64m1_m)))
-void vloxseg2ei32(vuint64m1_t * op0, vuint64m1_t * op1, vbool64_t op2, vuint64m1_t op3, vuint64m1_t op4, const uint64_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u64m2)))
-void vloxseg2ei32(vuint64m2_t * op0, vuint64m2_t * op1, const uint64_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u64m2_m)))
-void vloxseg2ei32(vuint64m2_t * op0, vuint64m2_t * op1, vbool32_t op2, vuint64m2_t op3, vuint64m2_t op4, const uint64_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u64m4)))
-void vloxseg2ei32(vuint64m4_t * op0, vuint64m4_t * op1, const uint64_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u64m4_m)))
-void vloxseg2ei32(vuint64m4_t * op0, vuint64m4_t * op1, vbool16_t op2, vuint64m4_t op3, vuint64m4_t op4, const uint64_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i64m1)))
-void vloxseg3ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, const int64_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i64m1_m)))
-void vloxseg3ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vbool64_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, const int64_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i64m2)))
-void vloxseg3ei32(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, const int64_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i64m2_m)))
-void vloxseg3ei32(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vbool32_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, const int64_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u64m1)))
-void vloxseg3ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, const uint64_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u64m1_m)))
-void vloxseg3ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vbool64_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, const uint64_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u64m2)))
-void vloxseg3ei32(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, const uint64_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u64m2_m)))
-void vloxseg3ei32(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vbool32_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, const uint64_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i64m1)))
-void vloxseg4ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, const int64_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i64m1_m)))
-void vloxseg4ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vbool64_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, const int64_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i64m2)))
-void vloxseg4ei32(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, const int64_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i64m2_m)))
-void vloxseg4ei32(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, vbool32_t op4, vint64m2_t op5, vint64m2_t op6, vint64m2_t op7, vint64m2_t op8, const int64_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u64m1)))
-void vloxseg4ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, const uint64_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u64m1_m)))
-void vloxseg4ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vbool64_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, const uint64_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u64m2)))
-void vloxseg4ei32(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, const uint64_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u64m2_m)))
-void vloxseg4ei32(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, vbool32_t op4, vuint64m2_t op5, vuint64m2_t op6, vuint64m2_t op7, vuint64m2_t op8, const uint64_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i64m1)))
-void vloxseg5ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, const int64_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i64m1_m)))
-void vloxseg5ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vbool64_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, const int64_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u64m1)))
-void vloxseg5ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, const uint64_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u64m1_m)))
-void vloxseg5ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vbool64_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, const uint64_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i64m1)))
-void vloxseg6ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, const int64_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i64m1_m)))
-void vloxseg6ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vbool64_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, const int64_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u64m1)))
-void vloxseg6ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, const uint64_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u64m1_m)))
-void vloxseg6ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vbool64_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, const uint64_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i64m1)))
-void vloxseg7ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, const int64_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i64m1_m)))
-void vloxseg7ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vbool64_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, const int64_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u64m1)))
-void vloxseg7ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, const uint64_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u64m1_m)))
-void vloxseg7ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vbool64_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, const uint64_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i64m1)))
-void vloxseg8ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, const int64_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i64m1_m)))
-void vloxseg8ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, vbool64_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, vint64m1_t op15, vint64m1_t op16, const int64_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u64m1)))
-void vloxseg8ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, const uint64_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u64m1_m)))
-void vloxseg8ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, vbool64_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, vuint64m1_t op15, vuint64m1_t op16, const uint64_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i64m1)))
-void vloxseg2ei64(vint64m1_t * op0, vint64m1_t * op1, const int64_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i64m1_m)))
-void vloxseg2ei64(vint64m1_t * op0, vint64m1_t * op1, vbool64_t op2, vint64m1_t op3, vint64m1_t op4, const int64_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i64m2)))
-void vloxseg2ei64(vint64m2_t * op0, vint64m2_t * op1, const int64_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i64m2_m)))
-void vloxseg2ei64(vint64m2_t * op0, vint64m2_t * op1, vbool32_t op2, vint64m2_t op3, vint64m2_t op4, const int64_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i64m4)))
-void vloxseg2ei64(vint64m4_t * op0, vint64m4_t * op1, const int64_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i64m4_m)))
-void vloxseg2ei64(vint64m4_t * op0, vint64m4_t * op1, vbool16_t op2, vint64m4_t op3, vint64m4_t op4, const int64_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u64m1)))
-void vloxseg2ei64(vuint64m1_t * op0, vuint64m1_t * op1, const uint64_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u64m1_m)))
-void vloxseg2ei64(vuint64m1_t * op0, vuint64m1_t * op1, vbool64_t op2, vuint64m1_t op3, vuint64m1_t op4, const uint64_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u64m2)))
-void vloxseg2ei64(vuint64m2_t * op0, vuint64m2_t * op1, const uint64_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u64m2_m)))
-void vloxseg2ei64(vuint64m2_t * op0, vuint64m2_t * op1, vbool32_t op2, vuint64m2_t op3, vuint64m2_t op4, const uint64_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u64m4)))
-void vloxseg2ei64(vuint64m4_t * op0, vuint64m4_t * op1, const uint64_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u64m4_m)))
-void vloxseg2ei64(vuint64m4_t * op0, vuint64m4_t * op1, vbool16_t op2, vuint64m4_t op3, vuint64m4_t op4, const uint64_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i64m1)))
-void vloxseg3ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, const int64_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i64m1_m)))
-void vloxseg3ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vbool64_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, const int64_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i64m2)))
-void vloxseg3ei64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, const int64_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i64m2_m)))
-void vloxseg3ei64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vbool32_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, const int64_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u64m1)))
-void vloxseg3ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, const uint64_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u64m1_m)))
-void vloxseg3ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vbool64_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, const uint64_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u64m2)))
-void vloxseg3ei64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, const uint64_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u64m2_m)))
-void vloxseg3ei64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vbool32_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, const uint64_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i64m1)))
-void vloxseg4ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, const int64_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i64m1_m)))
-void vloxseg4ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vbool64_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, const int64_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i64m2)))
-void vloxseg4ei64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, const int64_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i64m2_m)))
-void vloxseg4ei64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, vbool32_t op4, vint64m2_t op5, vint64m2_t op6, vint64m2_t op7, vint64m2_t op8, const int64_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u64m1)))
-void vloxseg4ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, const uint64_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u64m1_m)))
-void vloxseg4ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vbool64_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, const uint64_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u64m2)))
-void vloxseg4ei64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, const uint64_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u64m2_m)))
-void vloxseg4ei64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, vbool32_t op4, vuint64m2_t op5, vuint64m2_t op6, vuint64m2_t op7, vuint64m2_t op8, const uint64_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i64m1)))
-void vloxseg5ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, const int64_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i64m1_m)))
-void vloxseg5ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vbool64_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, const int64_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u64m1)))
-void vloxseg5ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, const uint64_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u64m1_m)))
-void vloxseg5ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vbool64_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, const uint64_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i64m1)))
-void vloxseg6ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, const int64_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i64m1_m)))
-void vloxseg6ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vbool64_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, const int64_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u64m1)))
-void vloxseg6ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, const uint64_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u64m1_m)))
-void vloxseg6ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vbool64_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, const uint64_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i64m1)))
-void vloxseg7ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, const int64_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i64m1_m)))
-void vloxseg7ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vbool64_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, const int64_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u64m1)))
-void vloxseg7ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, const uint64_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u64m1_m)))
-void vloxseg7ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vbool64_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, const uint64_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i64m1)))
-void vloxseg8ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, const int64_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i64m1_m)))
-void vloxseg8ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, vbool64_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, vint64m1_t op15, vint64m1_t op16, const int64_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u64m1)))
-void vloxseg8ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, const uint64_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u64m1_m)))
-void vloxseg8ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, vbool64_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, vuint64m1_t op15, vuint64m1_t op16, const uint64_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_i8m1)))
-void vsseg3e8(int8_t * op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_i8m1_m)))
-void vsseg3e8(vbool8_t op0, int8_t * op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_i8m2)))
-void vsseg3e8(int8_t * op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_i8m2_m)))
-void vsseg3e8(vbool4_t op0, int8_t * op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_i8mf2)))
-void vsseg3e8(int8_t * op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_i8mf2_m)))
-void vsseg3e8(vbool16_t op0, int8_t * op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_i8mf4)))
-void vsseg3e8(int8_t * op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_i8mf4_m)))
-void vsseg3e8(vbool32_t op0, int8_t * op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_i8mf8)))
-void vsseg3e8(int8_t * op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_i8mf8_m)))
-void vsseg3e8(vbool64_t op0, int8_t * op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_u8m1)))
-void vsseg3e8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_u8m1_m)))
-void vsseg3e8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_u8m2)))
-void vsseg3e8(uint8_t * op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_u8m2_m)))
-void vsseg3e8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_u8mf2)))
-void vsseg3e8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_u8mf2_m)))
-void vsseg3e8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_u8mf4)))
-void vsseg3e8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_u8mf4_m)))
-void vsseg3e8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_u8mf8)))
-void vsseg3e8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e8_v_u8mf8_m)))
-void vsseg3e8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_i8m1)))
-void vsseg4e8(int8_t * op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_i8m1_m)))
-void vsseg4e8(vbool8_t op0, int8_t * op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_i8m2)))
-void vsseg4e8(int8_t * op0, vint8m2_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_i8m2_m)))
-void vsseg4e8(vbool4_t op0, int8_t * op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_i8mf2)))
-void vsseg4e8(int8_t * op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_i8mf2_m)))
-void vsseg4e8(vbool16_t op0, int8_t * op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_i8mf4)))
-void vsseg4e8(int8_t * op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_i8mf4_m)))
-void vsseg4e8(vbool32_t op0, int8_t * op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_i8mf8)))
-void vsseg4e8(int8_t * op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_i8mf8_m)))
-void vsseg4e8(vbool64_t op0, int8_t * op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_u8m1)))
-void vsseg4e8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_u8m1_m)))
-void vsseg4e8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_u8m2)))
-void vsseg4e8(uint8_t * op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_u8m2_m)))
-void vsseg4e8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_u8mf2)))
-void vsseg4e8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_u8mf2_m)))
-void vsseg4e8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_u8mf4)))
-void vsseg4e8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_u8mf4_m)))
-void vsseg4e8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_u8mf8)))
-void vsseg4e8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e8_v_u8mf8_m)))
-void vsseg4e8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_i8m1)))
-void vsseg5e8(int8_t * op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_i8m1_m)))
-void vsseg5e8(vbool8_t op0, int8_t * op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_i8mf2)))
-void vsseg5e8(int8_t * op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_i8mf2_m)))
-void vsseg5e8(vbool16_t op0, int8_t * op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_i8mf4)))
-void vsseg5e8(int8_t * op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_i8mf4_m)))
-void vsseg5e8(vbool32_t op0, int8_t * op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_i8mf8)))
-void vsseg5e8(int8_t * op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_i8mf8_m)))
-void vsseg5e8(vbool64_t op0, int8_t * op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_u8m1)))
-void vsseg5e8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_u8m1_m)))
-void vsseg5e8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_u8mf2)))
-void vsseg5e8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_u8mf2_m)))
-void vsseg5e8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_u8mf4)))
-void vsseg5e8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_u8mf4_m)))
-void vsseg5e8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_u8mf8)))
-void vsseg5e8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e8_v_u8mf8_m)))
-void vsseg5e8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_i8m1)))
-void vsseg6e8(int8_t * op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_i8m1_m)))
-void vsseg6e8(vbool8_t op0, int8_t * op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_i8mf2)))
-void vsseg6e8(int8_t * op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_i8mf2_m)))
-void vsseg6e8(vbool16_t op0, int8_t * op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_i8mf4)))
-void vsseg6e8(int8_t * op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_i8mf4_m)))
-void vsseg6e8(vbool32_t op0, int8_t * op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_i8mf8)))
-void vsseg6e8(int8_t * op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_i8mf8_m)))
-void vsseg6e8(vbool64_t op0, int8_t * op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_u8m1)))
-void vsseg6e8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_u8m1_m)))
-void vsseg6e8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_u8mf2)))
-void vsseg6e8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_u8mf2_m)))
-void vsseg6e8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_u8mf4)))
-void vsseg6e8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_u8mf4_m)))
-void vsseg6e8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_u8mf8)))
-void vsseg6e8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e8_v_u8mf8_m)))
-void vsseg6e8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_i8m1)))
-void vsseg7e8(int8_t * op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_i8m1_m)))
-void vsseg7e8(vbool8_t op0, int8_t * op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_i8mf2)))
-void vsseg7e8(int8_t * op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_i8mf2_m)))
-void vsseg7e8(vbool16_t op0, int8_t * op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_i8mf4)))
-void vsseg7e8(int8_t * op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_i8mf4_m)))
-void vsseg7e8(vbool32_t op0, int8_t * op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_i8mf8)))
-void vsseg7e8(int8_t * op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_i8mf8_m)))
-void vsseg7e8(vbool64_t op0, int8_t * op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_u8m1)))
-void vsseg7e8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_u8m1_m)))
-void vsseg7e8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_u8mf2)))
-void vsseg7e8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_u8mf2_m)))
-void vsseg7e8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_u8mf4)))
-void vsseg7e8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_u8mf4_m)))
-void vsseg7e8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_u8mf8)))
-void vsseg7e8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e8_v_u8mf8_m)))
-void vsseg7e8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_i8m1)))
-void vsseg8e8(int8_t * op0, vint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_i8m1_m)))
-void vsseg8e8(vbool8_t op0, int8_t * op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_i8mf2)))
-void vsseg8e8(int8_t * op0, vint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_i8mf2_m)))
-void vsseg8e8(vbool16_t op0, int8_t * op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_i8mf4)))
-void vsseg8e8(int8_t * op0, vint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_i8mf4_m)))
-void vsseg8e8(vbool32_t op0, int8_t * op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_i8mf8)))
-void vsseg8e8(int8_t * op0, vint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_i8mf8_m)))
-void vsseg8e8(vbool64_t op0, int8_t * op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_u8m1)))
-void vsseg8e8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_u8m1_m)))
-void vsseg8e8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_u8mf2)))
-void vsseg8e8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_u8mf2_m)))
-void vsseg8e8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_u8mf4)))
-void vsseg8e8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_u8mf4_m)))
-void vsseg8e8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_u8mf8)))
-void vsseg8e8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e8_v_u8mf8_m)))
-void vsseg8e8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_i16m1)))
-void vsseg2e16(int16_t * op0, vint16m1_t op1, vint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_i16m1_m)))
-void vsseg2e16(vbool16_t op0, int16_t * op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_i16m2)))
-void vsseg2e16(int16_t * op0, vint16m2_t op1, vint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_i16m2_m)))
-void vsseg2e16(vbool8_t op0, int16_t * op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_i16m4)))
-void vsseg2e16(int16_t * op0, vint16m4_t op1, vint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_i16m4_m)))
-void vsseg2e16(vbool4_t op0, int16_t * op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_i16mf2)))
-void vsseg2e16(int16_t * op0, vint16mf2_t op1, vint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_i16mf2_m)))
-void vsseg2e16(vbool32_t op0, int16_t * op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_i16mf4)))
-void vsseg2e16(int16_t * op0, vint16mf4_t op1, vint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_i16mf4_m)))
-void vsseg2e16(vbool64_t op0, int16_t * op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_u16m1)))
-void vsseg2e16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_u16m1_m)))
-void vsseg2e16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_u16m2)))
-void vsseg2e16(uint16_t * op0, vuint16m2_t op1, vuint16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_u16m2_m)))
-void vsseg2e16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_u16m4)))
-void vsseg2e16(uint16_t * op0, vuint16m4_t op1, vuint16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_u16m4_m)))
-void vsseg2e16(vbool4_t op0, uint16_t * op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_u16mf2)))
-void vsseg2e16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_u16mf2_m)))
-void vsseg2e16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_u16mf4)))
-void vsseg2e16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_u16mf4_m)))
-void vsseg2e16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_i16m1)))
-void vsseg3e16(int16_t * op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_i16m1_m)))
-void vsseg3e16(vbool16_t op0, int16_t * op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_i16m2)))
-void vsseg3e16(int16_t * op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_i16m2_m)))
-void vsseg3e16(vbool8_t op0, int16_t * op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_i16mf2)))
-void vsseg3e16(int16_t * op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_i16mf2_m)))
-void vsseg3e16(vbool32_t op0, int16_t * op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_i16mf4)))
-void vsseg3e16(int16_t * op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_i16mf4_m)))
-void vsseg3e16(vbool64_t op0, int16_t * op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_u16m1)))
-void vsseg3e16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_u16m1_m)))
-void vsseg3e16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_u16m2)))
-void vsseg3e16(uint16_t * op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_u16m2_m)))
-void vsseg3e16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_u16mf2)))
-void vsseg3e16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_u16mf2_m)))
-void vsseg3e16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_u16mf4)))
-void vsseg3e16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_u16mf4_m)))
-void vsseg3e16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_i16m1)))
-void vsseg4e16(int16_t * op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_i16m1_m)))
-void vsseg4e16(vbool16_t op0, int16_t * op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_i16m2)))
-void vsseg4e16(int16_t * op0, vint16m2_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_i16m2_m)))
-void vsseg4e16(vbool8_t op0, int16_t * op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_i16mf2)))
-void vsseg4e16(int16_t * op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_i16mf2_m)))
-void vsseg4e16(vbool32_t op0, int16_t * op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_i16mf4)))
-void vsseg4e16(int16_t * op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_i16mf4_m)))
-void vsseg4e16(vbool64_t op0, int16_t * op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_u16m1)))
-void vsseg4e16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_u16m1_m)))
-void vsseg4e16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_u16m2)))
-void vsseg4e16(uint16_t * op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_u16m2_m)))
-void vsseg4e16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_u16mf2)))
-void vsseg4e16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_u16mf2_m)))
-void vsseg4e16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_u16mf4)))
-void vsseg4e16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_u16mf4_m)))
-void vsseg4e16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_i16m1)))
-void vsseg5e16(int16_t * op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_i16m1_m)))
-void vsseg5e16(vbool16_t op0, int16_t * op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_i16mf2)))
-void vsseg5e16(int16_t * op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_i16mf2_m)))
-void vsseg5e16(vbool32_t op0, int16_t * op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_i16mf4)))
-void vsseg5e16(int16_t * op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_i16mf4_m)))
-void vsseg5e16(vbool64_t op0, int16_t * op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_u16m1)))
-void vsseg5e16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_u16m1_m)))
-void vsseg5e16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_u16mf2)))
-void vsseg5e16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_u16mf2_m)))
-void vsseg5e16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_u16mf4)))
-void vsseg5e16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_u16mf4_m)))
-void vsseg5e16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_i16m1)))
-void vsseg6e16(int16_t * op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_i16m1_m)))
-void vsseg6e16(vbool16_t op0, int16_t * op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_i16mf2)))
-void vsseg6e16(int16_t * op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_i16mf2_m)))
-void vsseg6e16(vbool32_t op0, int16_t * op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_i16mf4)))
-void vsseg6e16(int16_t * op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_i16mf4_m)))
-void vsseg6e16(vbool64_t op0, int16_t * op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_u16m1)))
-void vsseg6e16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_u16m1_m)))
-void vsseg6e16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_u16mf2)))
-void vsseg6e16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_u16mf2_m)))
-void vsseg6e16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_u16mf4)))
-void vsseg6e16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_u16mf4_m)))
-void vsseg6e16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_i16m1)))
-void vsseg7e16(int16_t * op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_i16m1_m)))
-void vsseg7e16(vbool16_t op0, int16_t * op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_i16mf2)))
-void vsseg7e16(int16_t * op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_i16mf2_m)))
-void vsseg7e16(vbool32_t op0, int16_t * op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_i16mf4)))
-void vsseg7e16(int16_t * op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_i16mf4_m)))
-void vsseg7e16(vbool64_t op0, int16_t * op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_u16m1)))
-void vsseg7e16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_u16m1_m)))
-void vsseg7e16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_u16mf2)))
-void vsseg7e16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_u16mf2_m)))
-void vsseg7e16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_u16mf4)))
-void vsseg7e16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_u16mf4_m)))
-void vsseg7e16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_i16m1)))
-void vsseg8e16(int16_t * op0, vint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_i16m1_m)))
-void vsseg8e16(vbool16_t op0, int16_t * op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_i16mf2)))
-void vsseg8e16(int16_t * op0, vint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_i16mf2_m)))
-void vsseg8e16(vbool32_t op0, int16_t * op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_i16mf4)))
-void vsseg8e16(int16_t * op0, vint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_i16mf4_m)))
-void vsseg8e16(vbool64_t op0, int16_t * op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_u16m1)))
-void vsseg8e16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_u16m1_m)))
-void vsseg8e16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_u16mf2)))
-void vsseg8e16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_u16mf2_m)))
-void vsseg8e16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_u16mf4)))
-void vsseg8e16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_u16mf4_m)))
-void vsseg8e16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_i32m1)))
-void vsseg2e32(int32_t * op0, vint32m1_t op1, vint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_i32m1_m)))
-void vsseg2e32(vbool32_t op0, int32_t * op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_i32m2)))
-void vsseg2e32(int32_t * op0, vint32m2_t op1, vint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_i32m2_m)))
-void vsseg2e32(vbool16_t op0, int32_t * op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_i32m4)))
-void vsseg2e32(int32_t * op0, vint32m4_t op1, vint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_i32m4_m)))
-void vsseg2e32(vbool8_t op0, int32_t * op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_i32mf2)))
-void vsseg2e32(int32_t * op0, vint32mf2_t op1, vint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_i32mf2_m)))
-void vsseg2e32(vbool64_t op0, int32_t * op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_u32m1)))
-void vsseg2e32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_u32m1_m)))
-void vsseg2e32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_u32m2)))
-void vsseg2e32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_u32m2_m)))
-void vsseg2e32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_u32m4)))
-void vsseg2e32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_u32m4_m)))
-void vsseg2e32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_u32mf2)))
-void vsseg2e32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_u32mf2_m)))
-void vsseg2e32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_i32m1)))
-void vsseg3e32(int32_t * op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_i32m1_m)))
-void vsseg3e32(vbool32_t op0, int32_t * op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_i32m2)))
-void vsseg3e32(int32_t * op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_i32m2_m)))
-void vsseg3e32(vbool16_t op0, int32_t * op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_i32mf2)))
-void vsseg3e32(int32_t * op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_i32mf2_m)))
-void vsseg3e32(vbool64_t op0, int32_t * op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_u32m1)))
-void vsseg3e32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_u32m1_m)))
-void vsseg3e32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_u32m2)))
-void vsseg3e32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_u32m2_m)))
-void vsseg3e32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_u32mf2)))
-void vsseg3e32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_u32mf2_m)))
-void vsseg3e32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_i32m1)))
-void vsseg4e32(int32_t * op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_i32m1_m)))
-void vsseg4e32(vbool32_t op0, int32_t * op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_i32m2)))
-void vsseg4e32(int32_t * op0, vint32m2_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_i32m2_m)))
-void vsseg4e32(vbool16_t op0, int32_t * op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_i32mf2)))
-void vsseg4e32(int32_t * op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_i32mf2_m)))
-void vsseg4e32(vbool64_t op0, int32_t * op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_u32m1)))
-void vsseg4e32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_u32m1_m)))
-void vsseg4e32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_u32m2)))
-void vsseg4e32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_u32m2_m)))
-void vsseg4e32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_u32mf2)))
-void vsseg4e32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_u32mf2_m)))
-void vsseg4e32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_i32m1)))
-void vsseg5e32(int32_t * op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_i32m1_m)))
-void vsseg5e32(vbool32_t op0, int32_t * op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_i32mf2)))
-void vsseg5e32(int32_t * op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_i32mf2_m)))
-void vsseg5e32(vbool64_t op0, int32_t * op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_u32m1)))
-void vsseg5e32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_u32m1_m)))
-void vsseg5e32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_u32mf2)))
-void vsseg5e32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_u32mf2_m)))
-void vsseg5e32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_i32m1)))
-void vsseg6e32(int32_t * op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_i32m1_m)))
-void vsseg6e32(vbool32_t op0, int32_t * op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_i32mf2)))
-void vsseg6e32(int32_t * op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_i32mf2_m)))
-void vsseg6e32(vbool64_t op0, int32_t * op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_u32m1)))
-void vsseg6e32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_u32m1_m)))
-void vsseg6e32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_u32mf2)))
-void vsseg6e32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_u32mf2_m)))
-void vsseg6e32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_i32m1)))
-void vsseg7e32(int32_t * op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_i32m1_m)))
-void vsseg7e32(vbool32_t op0, int32_t * op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_i32mf2)))
-void vsseg7e32(int32_t * op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_i32mf2_m)))
-void vsseg7e32(vbool64_t op0, int32_t * op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_u32m1)))
-void vsseg7e32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_u32m1_m)))
-void vsseg7e32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_u32mf2)))
-void vsseg7e32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_u32mf2_m)))
-void vsseg7e32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_i32m1)))
-void vsseg8e32(int32_t * op0, vint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_i32m1_m)))
-void vsseg8e32(vbool32_t op0, int32_t * op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_i32mf2)))
-void vsseg8e32(int32_t * op0, vint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_i32mf2_m)))
-void vsseg8e32(vbool64_t op0, int32_t * op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_u32m1)))
-void vsseg8e32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_u32m1_m)))
-void vsseg8e32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_u32mf2)))
-void vsseg8e32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_u32mf2_m)))
-void vsseg8e32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_i64m1)))
-void vsseg2e64(int64_t * op0, vint64m1_t op1, vint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_i64m1_m)))
-void vsseg2e64(vbool64_t op0, int64_t * op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_i64m2)))
-void vsseg2e64(int64_t * op0, vint64m2_t op1, vint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_i64m2_m)))
-void vsseg2e64(vbool32_t op0, int64_t * op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_i64m4)))
-void vsseg2e64(int64_t * op0, vint64m4_t op1, vint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_i64m4_m)))
-void vsseg2e64(vbool16_t op0, int64_t * op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_u64m1)))
-void vsseg2e64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_u64m1_m)))
-void vsseg2e64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_u64m2)))
-void vsseg2e64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_u64m2_m)))
-void vsseg2e64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_u64m4)))
-void vsseg2e64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_u64m4_m)))
-void vsseg2e64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_i64m1)))
-void vsseg3e64(int64_t * op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_i64m1_m)))
-void vsseg3e64(vbool64_t op0, int64_t * op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_i64m2)))
-void vsseg3e64(int64_t * op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_i64m2_m)))
-void vsseg3e64(vbool32_t op0, int64_t * op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_u64m1)))
-void vsseg3e64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_u64m1_m)))
-void vsseg3e64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_u64m2)))
-void vsseg3e64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_u64m2_m)))
-void vsseg3e64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_i64m1)))
-void vsseg4e64(int64_t * op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_i64m1_m)))
-void vsseg4e64(vbool64_t op0, int64_t * op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_i64m2)))
-void vsseg4e64(int64_t * op0, vint64m2_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_i64m2_m)))
-void vsseg4e64(vbool32_t op0, int64_t * op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_u64m1)))
-void vsseg4e64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_u64m1_m)))
-void vsseg4e64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_u64m2)))
-void vsseg4e64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_u64m2_m)))
-void vsseg4e64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e64_v_i64m1)))
-void vsseg5e64(int64_t * op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e64_v_i64m1_m)))
-void vsseg5e64(vbool64_t op0, int64_t * op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e64_v_u64m1)))
-void vsseg5e64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e64_v_u64m1_m)))
-void vsseg5e64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e64_v_i64m1)))
-void vsseg6e64(int64_t * op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e64_v_i64m1_m)))
-void vsseg6e64(vbool64_t op0, int64_t * op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e64_v_u64m1)))
-void vsseg6e64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e64_v_u64m1_m)))
-void vsseg6e64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e64_v_i64m1)))
-void vsseg7e64(int64_t * op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e64_v_i64m1_m)))
-void vsseg7e64(vbool64_t op0, int64_t * op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e64_v_u64m1)))
-void vsseg7e64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e64_v_u64m1_m)))
-void vsseg7e64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e64_v_i64m1)))
-void vsseg8e64(int64_t * op0, vint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e64_v_i64m1_m)))
-void vsseg8e64(vbool64_t op0, int64_t * op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e64_v_u64m1)))
-void vsseg8e64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e64_v_u64m1_m)))
-void vsseg8e64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_i8m1)))
-void vssseg3e8(int8_t * op0, ptrdiff_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_i8m1_m)))
-void vssseg3e8(vbool8_t op0, int8_t * op1, ptrdiff_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_i8m2)))
-void vssseg3e8(int8_t * op0, ptrdiff_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_i8m2_m)))
-void vssseg3e8(vbool4_t op0, int8_t * op1, ptrdiff_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_i8mf2)))
-void vssseg3e8(int8_t * op0, ptrdiff_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_i8mf2_m)))
-void vssseg3e8(vbool16_t op0, int8_t * op1, ptrdiff_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_i8mf4)))
-void vssseg3e8(int8_t * op0, ptrdiff_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_i8mf4_m)))
-void vssseg3e8(vbool32_t op0, int8_t * op1, ptrdiff_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_i8mf8)))
-void vssseg3e8(int8_t * op0, ptrdiff_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_i8mf8_m)))
-void vssseg3e8(vbool64_t op0, int8_t * op1, ptrdiff_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_u8m1)))
-void vssseg3e8(uint8_t * op0, ptrdiff_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_u8m1_m)))
-void vssseg3e8(vbool8_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_u8m2)))
-void vssseg3e8(uint8_t * op0, ptrdiff_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_u8m2_m)))
-void vssseg3e8(vbool4_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_u8mf2)))
-void vssseg3e8(uint8_t * op0, ptrdiff_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_u8mf2_m)))
-void vssseg3e8(vbool16_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_u8mf4)))
-void vssseg3e8(uint8_t * op0, ptrdiff_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_u8mf4_m)))
-void vssseg3e8(vbool32_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_u8mf8)))
-void vssseg3e8(uint8_t * op0, ptrdiff_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e8_v_u8mf8_m)))
-void vssseg3e8(vbool64_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_i8m1)))
-void vssseg4e8(int8_t * op0, ptrdiff_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_i8m1_m)))
-void vssseg4e8(vbool8_t op0, int8_t * op1, ptrdiff_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_i8m2)))
-void vssseg4e8(int8_t * op0, ptrdiff_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_i8m2_m)))
-void vssseg4e8(vbool4_t op0, int8_t * op1, ptrdiff_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_i8mf2)))
-void vssseg4e8(int8_t * op0, ptrdiff_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_i8mf2_m)))
-void vssseg4e8(vbool16_t op0, int8_t * op1, ptrdiff_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_i8mf4)))
-void vssseg4e8(int8_t * op0, ptrdiff_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_i8mf4_m)))
-void vssseg4e8(vbool32_t op0, int8_t * op1, ptrdiff_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_i8mf8)))
-void vssseg4e8(int8_t * op0, ptrdiff_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_i8mf8_m)))
-void vssseg4e8(vbool64_t op0, int8_t * op1, ptrdiff_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_u8m1)))
-void vssseg4e8(uint8_t * op0, ptrdiff_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_u8m1_m)))
-void vssseg4e8(vbool8_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_u8m2)))
-void vssseg4e8(uint8_t * op0, ptrdiff_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_u8m2_m)))
-void vssseg4e8(vbool4_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_u8mf2)))
-void vssseg4e8(uint8_t * op0, ptrdiff_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_u8mf2_m)))
-void vssseg4e8(vbool16_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_u8mf4)))
-void vssseg4e8(uint8_t * op0, ptrdiff_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_u8mf4_m)))
-void vssseg4e8(vbool32_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_u8mf8)))
-void vssseg4e8(uint8_t * op0, ptrdiff_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e8_v_u8mf8_m)))
-void vssseg4e8(vbool64_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_i8m1)))
-void vssseg5e8(int8_t * op0, ptrdiff_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_i8m1_m)))
-void vssseg5e8(vbool8_t op0, int8_t * op1, ptrdiff_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_i8mf2)))
-void vssseg5e8(int8_t * op0, ptrdiff_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_i8mf2_m)))
-void vssseg5e8(vbool16_t op0, int8_t * op1, ptrdiff_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_i8mf4)))
-void vssseg5e8(int8_t * op0, ptrdiff_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_i8mf4_m)))
-void vssseg5e8(vbool32_t op0, int8_t * op1, ptrdiff_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_i8mf8)))
-void vssseg5e8(int8_t * op0, ptrdiff_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_i8mf8_m)))
-void vssseg5e8(vbool64_t op0, int8_t * op1, ptrdiff_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_u8m1)))
-void vssseg5e8(uint8_t * op0, ptrdiff_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_u8m1_m)))
-void vssseg5e8(vbool8_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_u8mf2)))
-void vssseg5e8(uint8_t * op0, ptrdiff_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_u8mf2_m)))
-void vssseg5e8(vbool16_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_u8mf4)))
-void vssseg5e8(uint8_t * op0, ptrdiff_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_u8mf4_m)))
-void vssseg5e8(vbool32_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_u8mf8)))
-void vssseg5e8(uint8_t * op0, ptrdiff_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e8_v_u8mf8_m)))
-void vssseg5e8(vbool64_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_i8m1)))
-void vssseg6e8(int8_t * op0, ptrdiff_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_i8m1_m)))
-void vssseg6e8(vbool8_t op0, int8_t * op1, ptrdiff_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_i8mf2)))
-void vssseg6e8(int8_t * op0, ptrdiff_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_i8mf2_m)))
-void vssseg6e8(vbool16_t op0, int8_t * op1, ptrdiff_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_i8mf4)))
-void vssseg6e8(int8_t * op0, ptrdiff_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_i8mf4_m)))
-void vssseg6e8(vbool32_t op0, int8_t * op1, ptrdiff_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_i8mf8)))
-void vssseg6e8(int8_t * op0, ptrdiff_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_i8mf8_m)))
-void vssseg6e8(vbool64_t op0, int8_t * op1, ptrdiff_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_u8m1)))
-void vssseg6e8(uint8_t * op0, ptrdiff_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_u8m1_m)))
-void vssseg6e8(vbool8_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_u8mf2)))
-void vssseg6e8(uint8_t * op0, ptrdiff_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_u8mf2_m)))
-void vssseg6e8(vbool16_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_u8mf4)))
-void vssseg6e8(uint8_t * op0, ptrdiff_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_u8mf4_m)))
-void vssseg6e8(vbool32_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_u8mf8)))
-void vssseg6e8(uint8_t * op0, ptrdiff_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e8_v_u8mf8_m)))
-void vssseg6e8(vbool64_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_i8m1)))
-void vssseg7e8(int8_t * op0, ptrdiff_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_i8m1_m)))
-void vssseg7e8(vbool8_t op0, int8_t * op1, ptrdiff_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_i8mf2)))
-void vssseg7e8(int8_t * op0, ptrdiff_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_i8mf2_m)))
-void vssseg7e8(vbool16_t op0, int8_t * op1, ptrdiff_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_i8mf4)))
-void vssseg7e8(int8_t * op0, ptrdiff_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_i8mf4_m)))
-void vssseg7e8(vbool32_t op0, int8_t * op1, ptrdiff_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_i8mf8)))
-void vssseg7e8(int8_t * op0, ptrdiff_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_i8mf8_m)))
-void vssseg7e8(vbool64_t op0, int8_t * op1, ptrdiff_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_u8m1)))
-void vssseg7e8(uint8_t * op0, ptrdiff_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_u8m1_m)))
-void vssseg7e8(vbool8_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_u8mf2)))
-void vssseg7e8(uint8_t * op0, ptrdiff_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_u8mf2_m)))
-void vssseg7e8(vbool16_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_u8mf4)))
-void vssseg7e8(uint8_t * op0, ptrdiff_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_u8mf4_m)))
-void vssseg7e8(vbool32_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_u8mf8)))
-void vssseg7e8(uint8_t * op0, ptrdiff_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e8_v_u8mf8_m)))
-void vssseg7e8(vbool64_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_i8m1)))
-void vssseg8e8(int8_t * op0, ptrdiff_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_i8m1_m)))
-void vssseg8e8(vbool8_t op0, int8_t * op1, ptrdiff_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_i8mf2)))
-void vssseg8e8(int8_t * op0, ptrdiff_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_i8mf2_m)))
-void vssseg8e8(vbool16_t op0, int8_t * op1, ptrdiff_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_i8mf4)))
-void vssseg8e8(int8_t * op0, ptrdiff_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_i8mf4_m)))
-void vssseg8e8(vbool32_t op0, int8_t * op1, ptrdiff_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_i8mf8)))
-void vssseg8e8(int8_t * op0, ptrdiff_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_i8mf8_m)))
-void vssseg8e8(vbool64_t op0, int8_t * op1, ptrdiff_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_u8m1)))
-void vssseg8e8(uint8_t * op0, ptrdiff_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_u8m1_m)))
-void vssseg8e8(vbool8_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_u8mf2)))
-void vssseg8e8(uint8_t * op0, ptrdiff_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_u8mf2_m)))
-void vssseg8e8(vbool16_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_u8mf4)))
-void vssseg8e8(uint8_t * op0, ptrdiff_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_u8mf4_m)))
-void vssseg8e8(vbool32_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_u8mf8)))
-void vssseg8e8(uint8_t * op0, ptrdiff_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e8_v_u8mf8_m)))
-void vssseg8e8(vbool64_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_i16m1)))
-void vssseg2e16(int16_t * op0, ptrdiff_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_i16m1_m)))
-void vssseg2e16(vbool16_t op0, int16_t * op1, ptrdiff_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_i16m2)))
-void vssseg2e16(int16_t * op0, ptrdiff_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_i16m2_m)))
-void vssseg2e16(vbool8_t op0, int16_t * op1, ptrdiff_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_i16m4)))
-void vssseg2e16(int16_t * op0, ptrdiff_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_i16m4_m)))
-void vssseg2e16(vbool4_t op0, int16_t * op1, ptrdiff_t op2, vint16m4_t op3, vint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_i16mf2)))
-void vssseg2e16(int16_t * op0, ptrdiff_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_i16mf2_m)))
-void vssseg2e16(vbool32_t op0, int16_t * op1, ptrdiff_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_i16mf4)))
-void vssseg2e16(int16_t * op0, ptrdiff_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_i16mf4_m)))
-void vssseg2e16(vbool64_t op0, int16_t * op1, ptrdiff_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_u16m1)))
-void vssseg2e16(uint16_t * op0, ptrdiff_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_u16m1_m)))
-void vssseg2e16(vbool16_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_u16m2)))
-void vssseg2e16(uint16_t * op0, ptrdiff_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_u16m2_m)))
-void vssseg2e16(vbool8_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_u16m4)))
-void vssseg2e16(uint16_t * op0, ptrdiff_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_u16m4_m)))
-void vssseg2e16(vbool4_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m4_t op3, vuint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_u16mf2)))
-void vssseg2e16(uint16_t * op0, ptrdiff_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_u16mf2_m)))
-void vssseg2e16(vbool32_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_u16mf4)))
-void vssseg2e16(uint16_t * op0, ptrdiff_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_u16mf4_m)))
-void vssseg2e16(vbool64_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_i16m1)))
-void vssseg3e16(int16_t * op0, ptrdiff_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_i16m1_m)))
-void vssseg3e16(vbool16_t op0, int16_t * op1, ptrdiff_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_i16m2)))
-void vssseg3e16(int16_t * op0, ptrdiff_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_i16m2_m)))
-void vssseg3e16(vbool8_t op0, int16_t * op1, ptrdiff_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_i16mf2)))
-void vssseg3e16(int16_t * op0, ptrdiff_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_i16mf2_m)))
-void vssseg3e16(vbool32_t op0, int16_t * op1, ptrdiff_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_i16mf4)))
-void vssseg3e16(int16_t * op0, ptrdiff_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_i16mf4_m)))
-void vssseg3e16(vbool64_t op0, int16_t * op1, ptrdiff_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_u16m1)))
-void vssseg3e16(uint16_t * op0, ptrdiff_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_u16m1_m)))
-void vssseg3e16(vbool16_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_u16m2)))
-void vssseg3e16(uint16_t * op0, ptrdiff_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_u16m2_m)))
-void vssseg3e16(vbool8_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_u16mf2)))
-void vssseg3e16(uint16_t * op0, ptrdiff_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_u16mf2_m)))
-void vssseg3e16(vbool32_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_u16mf4)))
-void vssseg3e16(uint16_t * op0, ptrdiff_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_u16mf4_m)))
-void vssseg3e16(vbool64_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_i16m1)))
-void vssseg4e16(int16_t * op0, ptrdiff_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_i16m1_m)))
-void vssseg4e16(vbool16_t op0, int16_t * op1, ptrdiff_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_i16m2)))
-void vssseg4e16(int16_t * op0, ptrdiff_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_i16m2_m)))
-void vssseg4e16(vbool8_t op0, int16_t * op1, ptrdiff_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_i16mf2)))
-void vssseg4e16(int16_t * op0, ptrdiff_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_i16mf2_m)))
-void vssseg4e16(vbool32_t op0, int16_t * op1, ptrdiff_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_i16mf4)))
-void vssseg4e16(int16_t * op0, ptrdiff_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_i16mf4_m)))
-void vssseg4e16(vbool64_t op0, int16_t * op1, ptrdiff_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_u16m1)))
-void vssseg4e16(uint16_t * op0, ptrdiff_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_u16m1_m)))
-void vssseg4e16(vbool16_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_u16m2)))
-void vssseg4e16(uint16_t * op0, ptrdiff_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_u16m2_m)))
-void vssseg4e16(vbool8_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_u16mf2)))
-void vssseg4e16(uint16_t * op0, ptrdiff_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_u16mf2_m)))
-void vssseg4e16(vbool32_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_u16mf4)))
-void vssseg4e16(uint16_t * op0, ptrdiff_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_u16mf4_m)))
-void vssseg4e16(vbool64_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_i16m1)))
-void vssseg5e16(int16_t * op0, ptrdiff_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_i16m1_m)))
-void vssseg5e16(vbool16_t op0, int16_t * op1, ptrdiff_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_i16mf2)))
-void vssseg5e16(int16_t * op0, ptrdiff_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_i16mf2_m)))
-void vssseg5e16(vbool32_t op0, int16_t * op1, ptrdiff_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_i16mf4)))
-void vssseg5e16(int16_t * op0, ptrdiff_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_i16mf4_m)))
-void vssseg5e16(vbool64_t op0, int16_t * op1, ptrdiff_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_u16m1)))
-void vssseg5e16(uint16_t * op0, ptrdiff_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_u16m1_m)))
-void vssseg5e16(vbool16_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_u16mf2)))
-void vssseg5e16(uint16_t * op0, ptrdiff_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_u16mf2_m)))
-void vssseg5e16(vbool32_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_u16mf4)))
-void vssseg5e16(uint16_t * op0, ptrdiff_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_u16mf4_m)))
-void vssseg5e16(vbool64_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_i16m1)))
-void vssseg6e16(int16_t * op0, ptrdiff_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_i16m1_m)))
-void vssseg6e16(vbool16_t op0, int16_t * op1, ptrdiff_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_i16mf2)))
-void vssseg6e16(int16_t * op0, ptrdiff_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_i16mf2_m)))
-void vssseg6e16(vbool32_t op0, int16_t * op1, ptrdiff_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_i16mf4)))
-void vssseg6e16(int16_t * op0, ptrdiff_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_i16mf4_m)))
-void vssseg6e16(vbool64_t op0, int16_t * op1, ptrdiff_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_u16m1)))
-void vssseg6e16(uint16_t * op0, ptrdiff_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_u16m1_m)))
-void vssseg6e16(vbool16_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_u16mf2)))
-void vssseg6e16(uint16_t * op0, ptrdiff_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_u16mf2_m)))
-void vssseg6e16(vbool32_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_u16mf4)))
-void vssseg6e16(uint16_t * op0, ptrdiff_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_u16mf4_m)))
-void vssseg6e16(vbool64_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_i16m1)))
-void vssseg7e16(int16_t * op0, ptrdiff_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_i16m1_m)))
-void vssseg7e16(vbool16_t op0, int16_t * op1, ptrdiff_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_i16mf2)))
-void vssseg7e16(int16_t * op0, ptrdiff_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_i16mf2_m)))
-void vssseg7e16(vbool32_t op0, int16_t * op1, ptrdiff_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_i16mf4)))
-void vssseg7e16(int16_t * op0, ptrdiff_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_i16mf4_m)))
-void vssseg7e16(vbool64_t op0, int16_t * op1, ptrdiff_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_u16m1)))
-void vssseg7e16(uint16_t * op0, ptrdiff_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_u16m1_m)))
-void vssseg7e16(vbool16_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_u16mf2)))
-void vssseg7e16(uint16_t * op0, ptrdiff_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_u16mf2_m)))
-void vssseg7e16(vbool32_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_u16mf4)))
-void vssseg7e16(uint16_t * op0, ptrdiff_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_u16mf4_m)))
-void vssseg7e16(vbool64_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_i16m1)))
-void vssseg8e16(int16_t * op0, ptrdiff_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_i16m1_m)))
-void vssseg8e16(vbool16_t op0, int16_t * op1, ptrdiff_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_i16mf2)))
-void vssseg8e16(int16_t * op0, ptrdiff_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_i16mf2_m)))
-void vssseg8e16(vbool32_t op0, int16_t * op1, ptrdiff_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_i16mf4)))
-void vssseg8e16(int16_t * op0, ptrdiff_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_i16mf4_m)))
-void vssseg8e16(vbool64_t op0, int16_t * op1, ptrdiff_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_u16m1)))
-void vssseg8e16(uint16_t * op0, ptrdiff_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_u16m1_m)))
-void vssseg8e16(vbool16_t op0, uint16_t * op1, ptrdiff_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_u16mf2)))
-void vssseg8e16(uint16_t * op0, ptrdiff_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_u16mf2_m)))
-void vssseg8e16(vbool32_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_u16mf4)))
-void vssseg8e16(uint16_t * op0, ptrdiff_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_u16mf4_m)))
-void vssseg8e16(vbool64_t op0, uint16_t * op1, ptrdiff_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_i32m1)))
-void vssseg2e32(int32_t * op0, ptrdiff_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_i32m1_m)))
-void vssseg2e32(vbool32_t op0, int32_t * op1, ptrdiff_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_i32m2)))
-void vssseg2e32(int32_t * op0, ptrdiff_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_i32m2_m)))
-void vssseg2e32(vbool16_t op0, int32_t * op1, ptrdiff_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_i32m4)))
-void vssseg2e32(int32_t * op0, ptrdiff_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_i32m4_m)))
-void vssseg2e32(vbool8_t op0, int32_t * op1, ptrdiff_t op2, vint32m4_t op3, vint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_i32mf2)))
-void vssseg2e32(int32_t * op0, ptrdiff_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_i32mf2_m)))
-void vssseg2e32(vbool64_t op0, int32_t * op1, ptrdiff_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_u32m1)))
-void vssseg2e32(uint32_t * op0, ptrdiff_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_u32m1_m)))
-void vssseg2e32(vbool32_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_u32m2)))
-void vssseg2e32(uint32_t * op0, ptrdiff_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_u32m2_m)))
-void vssseg2e32(vbool16_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_u32m4)))
-void vssseg2e32(uint32_t * op0, ptrdiff_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_u32m4_m)))
-void vssseg2e32(vbool8_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m4_t op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_u32mf2)))
-void vssseg2e32(uint32_t * op0, ptrdiff_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_u32mf2_m)))
-void vssseg2e32(vbool64_t op0, uint32_t * op1, ptrdiff_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_i32m1)))
-void vssseg3e32(int32_t * op0, ptrdiff_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_i32m1_m)))
-void vssseg3e32(vbool32_t op0, int32_t * op1, ptrdiff_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_i32m2)))
-void vssseg3e32(int32_t * op0, ptrdiff_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_i32m2_m)))
-void vssseg3e32(vbool16_t op0, int32_t * op1, ptrdiff_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_i32mf2)))
-void vssseg3e32(int32_t * op0, ptrdiff_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_i32mf2_m)))
-void vssseg3e32(vbool64_t op0, int32_t * op1, ptrdiff_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_u32m1)))
-void vssseg3e32(uint32_t * op0, ptrdiff_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_u32m1_m)))
-void vssseg3e32(vbool32_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_u32m2)))
-void vssseg3e32(uint32_t * op0, ptrdiff_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_u32m2_m)))
-void vssseg3e32(vbool16_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_u32mf2)))
-void vssseg3e32(uint32_t * op0, ptrdiff_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_u32mf2_m)))
-void vssseg3e32(vbool64_t op0, uint32_t * op1, ptrdiff_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_i32m1)))
-void vssseg4e32(int32_t * op0, ptrdiff_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_i32m1_m)))
-void vssseg4e32(vbool32_t op0, int32_t * op1, ptrdiff_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_i32m2)))
-void vssseg4e32(int32_t * op0, ptrdiff_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_i32m2_m)))
-void vssseg4e32(vbool16_t op0, int32_t * op1, ptrdiff_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_i32mf2)))
-void vssseg4e32(int32_t * op0, ptrdiff_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_i32mf2_m)))
-void vssseg4e32(vbool64_t op0, int32_t * op1, ptrdiff_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_u32m1)))
-void vssseg4e32(uint32_t * op0, ptrdiff_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_u32m1_m)))
-void vssseg4e32(vbool32_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_u32m2)))
-void vssseg4e32(uint32_t * op0, ptrdiff_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_u32m2_m)))
-void vssseg4e32(vbool16_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_u32mf2)))
-void vssseg4e32(uint32_t * op0, ptrdiff_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_u32mf2_m)))
-void vssseg4e32(vbool64_t op0, uint32_t * op1, ptrdiff_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_i32m1)))
-void vssseg5e32(int32_t * op0, ptrdiff_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_i32m1_m)))
-void vssseg5e32(vbool32_t op0, int32_t * op1, ptrdiff_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_i32mf2)))
-void vssseg5e32(int32_t * op0, ptrdiff_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_i32mf2_m)))
-void vssseg5e32(vbool64_t op0, int32_t * op1, ptrdiff_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_u32m1)))
-void vssseg5e32(uint32_t * op0, ptrdiff_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_u32m1_m)))
-void vssseg5e32(vbool32_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_u32mf2)))
-void vssseg5e32(uint32_t * op0, ptrdiff_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_u32mf2_m)))
-void vssseg5e32(vbool64_t op0, uint32_t * op1, ptrdiff_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_i32m1)))
-void vssseg6e32(int32_t * op0, ptrdiff_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_i32m1_m)))
-void vssseg6e32(vbool32_t op0, int32_t * op1, ptrdiff_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_i32mf2)))
-void vssseg6e32(int32_t * op0, ptrdiff_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_i32mf2_m)))
-void vssseg6e32(vbool64_t op0, int32_t * op1, ptrdiff_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_u32m1)))
-void vssseg6e32(uint32_t * op0, ptrdiff_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_u32m1_m)))
-void vssseg6e32(vbool32_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_u32mf2)))
-void vssseg6e32(uint32_t * op0, ptrdiff_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_u32mf2_m)))
-void vssseg6e32(vbool64_t op0, uint32_t * op1, ptrdiff_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_i32m1)))
-void vssseg7e32(int32_t * op0, ptrdiff_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_i32m1_m)))
-void vssseg7e32(vbool32_t op0, int32_t * op1, ptrdiff_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_i32mf2)))
-void vssseg7e32(int32_t * op0, ptrdiff_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_i32mf2_m)))
-void vssseg7e32(vbool64_t op0, int32_t * op1, ptrdiff_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_u32m1)))
-void vssseg7e32(uint32_t * op0, ptrdiff_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_u32m1_m)))
-void vssseg7e32(vbool32_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_u32mf2)))
-void vssseg7e32(uint32_t * op0, ptrdiff_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_u32mf2_m)))
-void vssseg7e32(vbool64_t op0, uint32_t * op1, ptrdiff_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_i32m1)))
-void vssseg8e32(int32_t * op0, ptrdiff_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_i32m1_m)))
-void vssseg8e32(vbool32_t op0, int32_t * op1, ptrdiff_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_i32mf2)))
-void vssseg8e32(int32_t * op0, ptrdiff_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_i32mf2_m)))
-void vssseg8e32(vbool64_t op0, int32_t * op1, ptrdiff_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_u32m1)))
-void vssseg8e32(uint32_t * op0, ptrdiff_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_u32m1_m)))
-void vssseg8e32(vbool32_t op0, uint32_t * op1, ptrdiff_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_u32mf2)))
-void vssseg8e32(uint32_t * op0, ptrdiff_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_u32mf2_m)))
-void vssseg8e32(vbool64_t op0, uint32_t * op1, ptrdiff_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_i64m1)))
-void vssseg2e64(int64_t * op0, ptrdiff_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_i64m1_m)))
-void vssseg2e64(vbool64_t op0, int64_t * op1, ptrdiff_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_i64m2)))
-void vssseg2e64(int64_t * op0, ptrdiff_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_i64m2_m)))
-void vssseg2e64(vbool32_t op0, int64_t * op1, ptrdiff_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_i64m4)))
-void vssseg2e64(int64_t * op0, ptrdiff_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_i64m4_m)))
-void vssseg2e64(vbool16_t op0, int64_t * op1, ptrdiff_t op2, vint64m4_t op3, vint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_u64m1)))
-void vssseg2e64(uint64_t * op0, ptrdiff_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_u64m1_m)))
-void vssseg2e64(vbool64_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_u64m2)))
-void vssseg2e64(uint64_t * op0, ptrdiff_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_u64m2_m)))
-void vssseg2e64(vbool32_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_u64m4)))
-void vssseg2e64(uint64_t * op0, ptrdiff_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_u64m4_m)))
-void vssseg2e64(vbool16_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m4_t op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_i64m1)))
-void vssseg3e64(int64_t * op0, ptrdiff_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_i64m1_m)))
-void vssseg3e64(vbool64_t op0, int64_t * op1, ptrdiff_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_i64m2)))
-void vssseg3e64(int64_t * op0, ptrdiff_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_i64m2_m)))
-void vssseg3e64(vbool32_t op0, int64_t * op1, ptrdiff_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_u64m1)))
-void vssseg3e64(uint64_t * op0, ptrdiff_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_u64m1_m)))
-void vssseg3e64(vbool64_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_u64m2)))
-void vssseg3e64(uint64_t * op0, ptrdiff_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_u64m2_m)))
-void vssseg3e64(vbool32_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_i64m1)))
-void vssseg4e64(int64_t * op0, ptrdiff_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_i64m1_m)))
-void vssseg4e64(vbool64_t op0, int64_t * op1, ptrdiff_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_i64m2)))
-void vssseg4e64(int64_t * op0, ptrdiff_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_i64m2_m)))
-void vssseg4e64(vbool32_t op0, int64_t * op1, ptrdiff_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_u64m1)))
-void vssseg4e64(uint64_t * op0, ptrdiff_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_u64m1_m)))
-void vssseg4e64(vbool64_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_u64m2)))
-void vssseg4e64(uint64_t * op0, ptrdiff_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_u64m2_m)))
-void vssseg4e64(vbool32_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e64_v_i64m1)))
-void vssseg5e64(int64_t * op0, ptrdiff_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e64_v_i64m1_m)))
-void vssseg5e64(vbool64_t op0, int64_t * op1, ptrdiff_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e64_v_u64m1)))
-void vssseg5e64(uint64_t * op0, ptrdiff_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e64_v_u64m1_m)))
-void vssseg5e64(vbool64_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e64_v_i64m1)))
-void vssseg6e64(int64_t * op0, ptrdiff_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e64_v_i64m1_m)))
-void vssseg6e64(vbool64_t op0, int64_t * op1, ptrdiff_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e64_v_u64m1)))
-void vssseg6e64(uint64_t * op0, ptrdiff_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e64_v_u64m1_m)))
-void vssseg6e64(vbool64_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e64_v_i64m1)))
-void vssseg7e64(int64_t * op0, ptrdiff_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e64_v_i64m1_m)))
-void vssseg7e64(vbool64_t op0, int64_t * op1, ptrdiff_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e64_v_u64m1)))
-void vssseg7e64(uint64_t * op0, ptrdiff_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e64_v_u64m1_m)))
-void vssseg7e64(vbool64_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e64_v_i64m1)))
-void vssseg8e64(int64_t * op0, ptrdiff_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e64_v_i64m1_m)))
-void vssseg8e64(vbool64_t op0, int64_t * op1, ptrdiff_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e64_v_u64m1)))
-void vssseg8e64(uint64_t * op0, ptrdiff_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e64_v_u64m1_m)))
-void vssseg8e64(vbool64_t op0, uint64_t * op1, ptrdiff_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i8m1)))
-void vsuxseg3ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i8m1_m)))
-void vsuxseg3ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i8m2)))
-void vsuxseg3ei8(int8_t * op0, vuint8m2_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i8m2_m)))
-void vsuxseg3ei8(vbool4_t op0, int8_t * op1, vuint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i8mf2)))
-void vsuxseg3ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i8mf2_m)))
-void vsuxseg3ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i8mf4)))
-void vsuxseg3ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i8mf4_m)))
-void vsuxseg3ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i8mf8)))
-void vsuxseg3ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i8mf8_m)))
-void vsuxseg3ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u8m1)))
-void vsuxseg3ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u8m1_m)))
-void vsuxseg3ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u8m2)))
-void vsuxseg3ei8(uint8_t * op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u8m2_m)))
-void vsuxseg3ei8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u8mf2)))
-void vsuxseg3ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u8mf2_m)))
-void vsuxseg3ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u8mf4)))
-void vsuxseg3ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u8mf4_m)))
-void vsuxseg3ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u8mf8)))
-void vsuxseg3ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u8mf8_m)))
-void vsuxseg3ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i8m1)))
-void vsuxseg4ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i8m1_m)))
-void vsuxseg4ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i8m2)))
-void vsuxseg4ei8(int8_t * op0, vuint8m2_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i8m2_m)))
-void vsuxseg4ei8(vbool4_t op0, int8_t * op1, vuint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i8mf2)))
-void vsuxseg4ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i8mf2_m)))
-void vsuxseg4ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i8mf4)))
-void vsuxseg4ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i8mf4_m)))
-void vsuxseg4ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i8mf8)))
-void vsuxseg4ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i8mf8_m)))
-void vsuxseg4ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u8m1)))
-void vsuxseg4ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u8m1_m)))
-void vsuxseg4ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u8m2)))
-void vsuxseg4ei8(uint8_t * op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u8m2_m)))
-void vsuxseg4ei8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u8mf2)))
-void vsuxseg4ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u8mf2_m)))
-void vsuxseg4ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u8mf4)))
-void vsuxseg4ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u8mf4_m)))
-void vsuxseg4ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u8mf8)))
-void vsuxseg4ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u8mf8_m)))
-void vsuxseg4ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i8m1)))
-void vsuxseg5ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i8m1_m)))
-void vsuxseg5ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i8mf2)))
-void vsuxseg5ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i8mf2_m)))
-void vsuxseg5ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i8mf4)))
-void vsuxseg5ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i8mf4_m)))
-void vsuxseg5ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i8mf8)))
-void vsuxseg5ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i8mf8_m)))
-void vsuxseg5ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u8m1)))
-void vsuxseg5ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u8m1_m)))
-void vsuxseg5ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u8mf2)))
-void vsuxseg5ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u8mf2_m)))
-void vsuxseg5ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u8mf4)))
-void vsuxseg5ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u8mf4_m)))
-void vsuxseg5ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u8mf8)))
-void vsuxseg5ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u8mf8_m)))
-void vsuxseg5ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i8m1)))
-void vsuxseg6ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i8m1_m)))
-void vsuxseg6ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i8mf2)))
-void vsuxseg6ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i8mf2_m)))
-void vsuxseg6ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i8mf4)))
-void vsuxseg6ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i8mf4_m)))
-void vsuxseg6ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i8mf8)))
-void vsuxseg6ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i8mf8_m)))
-void vsuxseg6ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u8m1)))
-void vsuxseg6ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u8m1_m)))
-void vsuxseg6ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u8mf2)))
-void vsuxseg6ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u8mf2_m)))
-void vsuxseg6ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u8mf4)))
-void vsuxseg6ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u8mf4_m)))
-void vsuxseg6ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u8mf8)))
-void vsuxseg6ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u8mf8_m)))
-void vsuxseg6ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i8m1)))
-void vsuxseg7ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i8m1_m)))
-void vsuxseg7ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i8mf2)))
-void vsuxseg7ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i8mf2_m)))
-void vsuxseg7ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i8mf4)))
-void vsuxseg7ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i8mf4_m)))
-void vsuxseg7ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i8mf8)))
-void vsuxseg7ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i8mf8_m)))
-void vsuxseg7ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u8m1)))
-void vsuxseg7ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u8m1_m)))
-void vsuxseg7ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u8mf2)))
-void vsuxseg7ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u8mf2_m)))
-void vsuxseg7ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u8mf4)))
-void vsuxseg7ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u8mf4_m)))
-void vsuxseg7ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u8mf8)))
-void vsuxseg7ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u8mf8_m)))
-void vsuxseg7ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i8m1)))
-void vsuxseg8ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i8m1_m)))
-void vsuxseg8ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i8mf2)))
-void vsuxseg8ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i8mf2_m)))
-void vsuxseg8ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i8mf4)))
-void vsuxseg8ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i8mf4_m)))
-void vsuxseg8ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i8mf8)))
-void vsuxseg8ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i8mf8_m)))
-void vsuxseg8ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u8m1)))
-void vsuxseg8ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u8m1_m)))
-void vsuxseg8ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u8mf2)))
-void vsuxseg8ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u8mf2_m)))
-void vsuxseg8ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u8mf4)))
-void vsuxseg8ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u8mf4_m)))
-void vsuxseg8ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u8mf8)))
-void vsuxseg8ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u8mf8_m)))
-void vsuxseg8ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8m1)))
-void vsuxseg2ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8m1_m)))
-void vsuxseg2ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8m2)))
-void vsuxseg2ei16(int8_t * op0, vuint16m4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8m2_m)))
-void vsuxseg2ei16(vbool4_t op0, int8_t * op1, vuint16m4_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8m4)))
-void vsuxseg2ei16(int8_t * op0, vuint16m8_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8m4_m)))
-void vsuxseg2ei16(vbool2_t op0, int8_t * op1, vuint16m8_t op2, vint8m4_t op3, vint8m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8mf2)))
-void vsuxseg2ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8mf2_m)))
-void vsuxseg2ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8mf4)))
-void vsuxseg2ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8mf4_m)))
-void vsuxseg2ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8mf8)))
-void vsuxseg2ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i8mf8_m)))
-void vsuxseg2ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8m1)))
-void vsuxseg2ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8m1_m)))
-void vsuxseg2ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8m2)))
-void vsuxseg2ei16(uint8_t * op0, vuint16m4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8m2_m)))
-void vsuxseg2ei16(vbool4_t op0, uint8_t * op1, vuint16m4_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8m4)))
-void vsuxseg2ei16(uint8_t * op0, vuint16m8_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8m4_m)))
-void vsuxseg2ei16(vbool2_t op0, uint8_t * op1, vuint16m8_t op2, vuint8m4_t op3, vuint8m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8mf2)))
-void vsuxseg2ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8mf2_m)))
-void vsuxseg2ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8mf4)))
-void vsuxseg2ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8mf4_m)))
-void vsuxseg2ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8mf8)))
-void vsuxseg2ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u8mf8_m)))
-void vsuxseg2ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i8m1)))
-void vsuxseg3ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i8m1_m)))
-void vsuxseg3ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i8m2)))
-void vsuxseg3ei16(int8_t * op0, vuint16m4_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i8m2_m)))
-void vsuxseg3ei16(vbool4_t op0, int8_t * op1, vuint16m4_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i8mf2)))
-void vsuxseg3ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i8mf2_m)))
-void vsuxseg3ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i8mf4)))
-void vsuxseg3ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i8mf4_m)))
-void vsuxseg3ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i8mf8)))
-void vsuxseg3ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i8mf8_m)))
-void vsuxseg3ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u8m1)))
-void vsuxseg3ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u8m1_m)))
-void vsuxseg3ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u8m2)))
-void vsuxseg3ei16(uint8_t * op0, vuint16m4_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u8m2_m)))
-void vsuxseg3ei16(vbool4_t op0, uint8_t * op1, vuint16m4_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u8mf2)))
-void vsuxseg3ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u8mf2_m)))
-void vsuxseg3ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u8mf4)))
-void vsuxseg3ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u8mf4_m)))
-void vsuxseg3ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u8mf8)))
-void vsuxseg3ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u8mf8_m)))
-void vsuxseg3ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i8m1)))
-void vsuxseg4ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i8m1_m)))
-void vsuxseg4ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i8m2)))
-void vsuxseg4ei16(int8_t * op0, vuint16m4_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i8m2_m)))
-void vsuxseg4ei16(vbool4_t op0, int8_t * op1, vuint16m4_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i8mf2)))
-void vsuxseg4ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i8mf2_m)))
-void vsuxseg4ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i8mf4)))
-void vsuxseg4ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i8mf4_m)))
-void vsuxseg4ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i8mf8)))
-void vsuxseg4ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i8mf8_m)))
-void vsuxseg4ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u8m1)))
-void vsuxseg4ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u8m1_m)))
-void vsuxseg4ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u8m2)))
-void vsuxseg4ei16(uint8_t * op0, vuint16m4_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u8m2_m)))
-void vsuxseg4ei16(vbool4_t op0, uint8_t * op1, vuint16m4_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u8mf2)))
-void vsuxseg4ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u8mf2_m)))
-void vsuxseg4ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u8mf4)))
-void vsuxseg4ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u8mf4_m)))
-void vsuxseg4ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u8mf8)))
-void vsuxseg4ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u8mf8_m)))
-void vsuxseg4ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i8m1)))
-void vsuxseg5ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i8m1_m)))
-void vsuxseg5ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i8mf2)))
-void vsuxseg5ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i8mf2_m)))
-void vsuxseg5ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i8mf4)))
-void vsuxseg5ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i8mf4_m)))
-void vsuxseg5ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i8mf8)))
-void vsuxseg5ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i8mf8_m)))
-void vsuxseg5ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u8m1)))
-void vsuxseg5ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u8m1_m)))
-void vsuxseg5ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u8mf2)))
-void vsuxseg5ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u8mf2_m)))
-void vsuxseg5ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u8mf4)))
-void vsuxseg5ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u8mf4_m)))
-void vsuxseg5ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u8mf8)))
-void vsuxseg5ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u8mf8_m)))
-void vsuxseg5ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i8m1)))
-void vsuxseg6ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i8m1_m)))
-void vsuxseg6ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i8mf2)))
-void vsuxseg6ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i8mf2_m)))
-void vsuxseg6ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i8mf4)))
-void vsuxseg6ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i8mf4_m)))
-void vsuxseg6ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i8mf8)))
-void vsuxseg6ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i8mf8_m)))
-void vsuxseg6ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u8m1)))
-void vsuxseg6ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u8m1_m)))
-void vsuxseg6ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u8mf2)))
-void vsuxseg6ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u8mf2_m)))
-void vsuxseg6ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u8mf4)))
-void vsuxseg6ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u8mf4_m)))
-void vsuxseg6ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u8mf8)))
-void vsuxseg6ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u8mf8_m)))
-void vsuxseg6ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i8m1)))
-void vsuxseg7ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i8m1_m)))
-void vsuxseg7ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i8mf2)))
-void vsuxseg7ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i8mf2_m)))
-void vsuxseg7ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i8mf4)))
-void vsuxseg7ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i8mf4_m)))
-void vsuxseg7ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i8mf8)))
-void vsuxseg7ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i8mf8_m)))
-void vsuxseg7ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u8m1)))
-void vsuxseg7ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u8m1_m)))
-void vsuxseg7ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u8mf2)))
-void vsuxseg7ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u8mf2_m)))
-void vsuxseg7ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u8mf4)))
-void vsuxseg7ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u8mf4_m)))
-void vsuxseg7ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u8mf8)))
-void vsuxseg7ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u8mf8_m)))
-void vsuxseg7ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i8m1)))
-void vsuxseg8ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i8m1_m)))
-void vsuxseg8ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i8mf2)))
-void vsuxseg8ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i8mf2_m)))
-void vsuxseg8ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i8mf4)))
-void vsuxseg8ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i8mf4_m)))
-void vsuxseg8ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i8mf8)))
-void vsuxseg8ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i8mf8_m)))
-void vsuxseg8ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u8m1)))
-void vsuxseg8ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u8m1_m)))
-void vsuxseg8ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u8mf2)))
-void vsuxseg8ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u8mf2_m)))
-void vsuxseg8ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u8mf4)))
-void vsuxseg8ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u8mf4_m)))
-void vsuxseg8ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u8mf8)))
-void vsuxseg8ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u8mf8_m)))
-void vsuxseg8ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i8m1)))
-void vsuxseg2ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i8m1_m)))
-void vsuxseg2ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i8m2)))
-void vsuxseg2ei32(int8_t * op0, vuint32m8_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i8m2_m)))
-void vsuxseg2ei32(vbool4_t op0, int8_t * op1, vuint32m8_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i8mf2)))
-void vsuxseg2ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i8mf2_m)))
-void vsuxseg2ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i8mf4)))
-void vsuxseg2ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i8mf4_m)))
-void vsuxseg2ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i8mf8)))
-void vsuxseg2ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i8mf8_m)))
-void vsuxseg2ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u8m1)))
-void vsuxseg2ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u8m1_m)))
-void vsuxseg2ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u8m2)))
-void vsuxseg2ei32(uint8_t * op0, vuint32m8_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u8m2_m)))
-void vsuxseg2ei32(vbool4_t op0, uint8_t * op1, vuint32m8_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u8mf2)))
-void vsuxseg2ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u8mf2_m)))
-void vsuxseg2ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u8mf4)))
-void vsuxseg2ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u8mf4_m)))
-void vsuxseg2ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u8mf8)))
-void vsuxseg2ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u8mf8_m)))
-void vsuxseg2ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i8m1)))
-void vsuxseg3ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i8m1_m)))
-void vsuxseg3ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i8m2)))
-void vsuxseg3ei32(int8_t * op0, vuint32m8_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i8m2_m)))
-void vsuxseg3ei32(vbool4_t op0, int8_t * op1, vuint32m8_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i8mf2)))
-void vsuxseg3ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i8mf2_m)))
-void vsuxseg3ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i8mf4)))
-void vsuxseg3ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i8mf4_m)))
-void vsuxseg3ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i8mf8)))
-void vsuxseg3ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i8mf8_m)))
-void vsuxseg3ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u8m1)))
-void vsuxseg3ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u8m1_m)))
-void vsuxseg3ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u8m2)))
-void vsuxseg3ei32(uint8_t * op0, vuint32m8_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u8m2_m)))
-void vsuxseg3ei32(vbool4_t op0, uint8_t * op1, vuint32m8_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u8mf2)))
-void vsuxseg3ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u8mf2_m)))
-void vsuxseg3ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u8mf4)))
-void vsuxseg3ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u8mf4_m)))
-void vsuxseg3ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u8mf8)))
-void vsuxseg3ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u8mf8_m)))
-void vsuxseg3ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i8m1)))
-void vsuxseg4ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i8m1_m)))
-void vsuxseg4ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i8m2)))
-void vsuxseg4ei32(int8_t * op0, vuint32m8_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i8m2_m)))
-void vsuxseg4ei32(vbool4_t op0, int8_t * op1, vuint32m8_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i8mf2)))
-void vsuxseg4ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i8mf2_m)))
-void vsuxseg4ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i8mf4)))
-void vsuxseg4ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i8mf4_m)))
-void vsuxseg4ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i8mf8)))
-void vsuxseg4ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i8mf8_m)))
-void vsuxseg4ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u8m1)))
-void vsuxseg4ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u8m1_m)))
-void vsuxseg4ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u8m2)))
-void vsuxseg4ei32(uint8_t * op0, vuint32m8_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u8m2_m)))
-void vsuxseg4ei32(vbool4_t op0, uint8_t * op1, vuint32m8_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u8mf2)))
-void vsuxseg4ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u8mf2_m)))
-void vsuxseg4ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u8mf4)))
-void vsuxseg4ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u8mf4_m)))
-void vsuxseg4ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u8mf8)))
-void vsuxseg4ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u8mf8_m)))
-void vsuxseg4ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i8m1)))
-void vsuxseg5ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i8m1_m)))
-void vsuxseg5ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i8mf2)))
-void vsuxseg5ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i8mf2_m)))
-void vsuxseg5ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i8mf4)))
-void vsuxseg5ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i8mf4_m)))
-void vsuxseg5ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i8mf8)))
-void vsuxseg5ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i8mf8_m)))
-void vsuxseg5ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u8m1)))
-void vsuxseg5ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u8m1_m)))
-void vsuxseg5ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u8mf2)))
-void vsuxseg5ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u8mf2_m)))
-void vsuxseg5ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u8mf4)))
-void vsuxseg5ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u8mf4_m)))
-void vsuxseg5ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u8mf8)))
-void vsuxseg5ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u8mf8_m)))
-void vsuxseg5ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i8m1)))
-void vsuxseg6ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i8m1_m)))
-void vsuxseg6ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i8mf2)))
-void vsuxseg6ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i8mf2_m)))
-void vsuxseg6ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i8mf4)))
-void vsuxseg6ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i8mf4_m)))
-void vsuxseg6ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i8mf8)))
-void vsuxseg6ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i8mf8_m)))
-void vsuxseg6ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u8m1)))
-void vsuxseg6ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u8m1_m)))
-void vsuxseg6ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u8mf2)))
-void vsuxseg6ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u8mf2_m)))
-void vsuxseg6ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u8mf4)))
-void vsuxseg6ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u8mf4_m)))
-void vsuxseg6ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u8mf8)))
-void vsuxseg6ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u8mf8_m)))
-void vsuxseg6ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i8m1)))
-void vsuxseg7ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i8m1_m)))
-void vsuxseg7ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i8mf2)))
-void vsuxseg7ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i8mf2_m)))
-void vsuxseg7ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i8mf4)))
-void vsuxseg7ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i8mf4_m)))
-void vsuxseg7ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i8mf8)))
-void vsuxseg7ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i8mf8_m)))
-void vsuxseg7ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u8m1)))
-void vsuxseg7ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u8m1_m)))
-void vsuxseg7ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u8mf2)))
-void vsuxseg7ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u8mf2_m)))
-void vsuxseg7ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u8mf4)))
-void vsuxseg7ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u8mf4_m)))
-void vsuxseg7ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u8mf8)))
-void vsuxseg7ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u8mf8_m)))
-void vsuxseg7ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i8m1)))
-void vsuxseg8ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i8m1_m)))
-void vsuxseg8ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i8mf2)))
-void vsuxseg8ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i8mf2_m)))
-void vsuxseg8ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i8mf4)))
-void vsuxseg8ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i8mf4_m)))
-void vsuxseg8ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i8mf8)))
-void vsuxseg8ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i8mf8_m)))
-void vsuxseg8ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u8m1)))
-void vsuxseg8ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u8m1_m)))
-void vsuxseg8ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u8mf2)))
-void vsuxseg8ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u8mf2_m)))
-void vsuxseg8ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u8mf4)))
-void vsuxseg8ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u8mf4_m)))
-void vsuxseg8ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u8mf8)))
-void vsuxseg8ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u8mf8_m)))
-void vsuxseg8ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i8m1)))
-void vsuxseg2ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i8m1_m)))
-void vsuxseg2ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i8mf2)))
-void vsuxseg2ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i8mf2_m)))
-void vsuxseg2ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i8mf4)))
-void vsuxseg2ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i8mf4_m)))
-void vsuxseg2ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i8mf8)))
-void vsuxseg2ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i8mf8_m)))
-void vsuxseg2ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u8m1)))
-void vsuxseg2ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u8m1_m)))
-void vsuxseg2ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u8mf2)))
-void vsuxseg2ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u8mf2_m)))
-void vsuxseg2ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u8mf4)))
-void vsuxseg2ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u8mf4_m)))
-void vsuxseg2ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u8mf8)))
-void vsuxseg2ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u8mf8_m)))
-void vsuxseg2ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i8m1)))
-void vsuxseg3ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i8m1_m)))
-void vsuxseg3ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i8mf2)))
-void vsuxseg3ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i8mf2_m)))
-void vsuxseg3ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i8mf4)))
-void vsuxseg3ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i8mf4_m)))
-void vsuxseg3ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i8mf8)))
-void vsuxseg3ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i8mf8_m)))
-void vsuxseg3ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u8m1)))
-void vsuxseg3ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u8m1_m)))
-void vsuxseg3ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u8mf2)))
-void vsuxseg3ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u8mf2_m)))
-void vsuxseg3ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u8mf4)))
-void vsuxseg3ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u8mf4_m)))
-void vsuxseg3ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u8mf8)))
-void vsuxseg3ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u8mf8_m)))
-void vsuxseg3ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i8m1)))
-void vsuxseg4ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i8m1_m)))
-void vsuxseg4ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i8mf2)))
-void vsuxseg4ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i8mf2_m)))
-void vsuxseg4ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i8mf4)))
-void vsuxseg4ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i8mf4_m)))
-void vsuxseg4ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i8mf8)))
-void vsuxseg4ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i8mf8_m)))
-void vsuxseg4ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u8m1)))
-void vsuxseg4ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u8m1_m)))
-void vsuxseg4ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u8mf2)))
-void vsuxseg4ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u8mf2_m)))
-void vsuxseg4ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u8mf4)))
-void vsuxseg4ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u8mf4_m)))
-void vsuxseg4ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u8mf8)))
-void vsuxseg4ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u8mf8_m)))
-void vsuxseg4ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i8m1)))
-void vsuxseg5ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i8m1_m)))
-void vsuxseg5ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i8mf2)))
-void vsuxseg5ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i8mf2_m)))
-void vsuxseg5ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i8mf4)))
-void vsuxseg5ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i8mf4_m)))
-void vsuxseg5ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i8mf8)))
-void vsuxseg5ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i8mf8_m)))
-void vsuxseg5ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u8m1)))
-void vsuxseg5ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u8m1_m)))
-void vsuxseg5ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u8mf2)))
-void vsuxseg5ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u8mf2_m)))
-void vsuxseg5ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u8mf4)))
-void vsuxseg5ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u8mf4_m)))
-void vsuxseg5ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u8mf8)))
-void vsuxseg5ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u8mf8_m)))
-void vsuxseg5ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i8m1)))
-void vsuxseg6ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i8m1_m)))
-void vsuxseg6ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i8mf2)))
-void vsuxseg6ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i8mf2_m)))
-void vsuxseg6ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i8mf4)))
-void vsuxseg6ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i8mf4_m)))
-void vsuxseg6ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i8mf8)))
-void vsuxseg6ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i8mf8_m)))
-void vsuxseg6ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u8m1)))
-void vsuxseg6ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u8m1_m)))
-void vsuxseg6ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u8mf2)))
-void vsuxseg6ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u8mf2_m)))
-void vsuxseg6ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u8mf4)))
-void vsuxseg6ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u8mf4_m)))
-void vsuxseg6ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u8mf8)))
-void vsuxseg6ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u8mf8_m)))
-void vsuxseg6ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i8m1)))
-void vsuxseg7ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i8m1_m)))
-void vsuxseg7ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i8mf2)))
-void vsuxseg7ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i8mf2_m)))
-void vsuxseg7ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i8mf4)))
-void vsuxseg7ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i8mf4_m)))
-void vsuxseg7ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i8mf8)))
-void vsuxseg7ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i8mf8_m)))
-void vsuxseg7ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u8m1)))
-void vsuxseg7ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u8m1_m)))
-void vsuxseg7ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u8mf2)))
-void vsuxseg7ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u8mf2_m)))
-void vsuxseg7ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u8mf4)))
-void vsuxseg7ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u8mf4_m)))
-void vsuxseg7ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u8mf8)))
-void vsuxseg7ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u8mf8_m)))
-void vsuxseg7ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i8m1)))
-void vsuxseg8ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i8m1_m)))
-void vsuxseg8ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i8mf2)))
-void vsuxseg8ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i8mf2_m)))
-void vsuxseg8ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i8mf4)))
-void vsuxseg8ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i8mf4_m)))
-void vsuxseg8ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i8mf8)))
-void vsuxseg8ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i8mf8_m)))
-void vsuxseg8ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u8m1)))
-void vsuxseg8ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u8m1_m)))
-void vsuxseg8ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u8mf2)))
-void vsuxseg8ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u8mf2_m)))
-void vsuxseg8ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u8mf4)))
-void vsuxseg8ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u8mf4_m)))
-void vsuxseg8ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u8mf8)))
-void vsuxseg8ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u8mf8_m)))
-void vsuxseg8ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i16m1)))
-void vsuxseg2ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i16m1_m)))
-void vsuxseg2ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i16m2)))
-void vsuxseg2ei8(int16_t * op0, vuint8m1_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i16m2_m)))
-void vsuxseg2ei8(vbool8_t op0, int16_t * op1, vuint8m1_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i16m4)))
-void vsuxseg2ei8(int16_t * op0, vuint8m2_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i16m4_m)))
-void vsuxseg2ei8(vbool4_t op0, int16_t * op1, vuint8m2_t op2, vint16m4_t op3, vint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i16mf2)))
-void vsuxseg2ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i16mf2_m)))
-void vsuxseg2ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i16mf4)))
-void vsuxseg2ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i16mf4_m)))
-void vsuxseg2ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u16m1)))
-void vsuxseg2ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u16m1_m)))
-void vsuxseg2ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u16m2)))
-void vsuxseg2ei8(uint16_t * op0, vuint8m1_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u16m2_m)))
-void vsuxseg2ei8(vbool8_t op0, uint16_t * op1, vuint8m1_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u16m4)))
-void vsuxseg2ei8(uint16_t * op0, vuint8m2_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u16m4_m)))
-void vsuxseg2ei8(vbool4_t op0, uint16_t * op1, vuint8m2_t op2, vuint16m4_t op3, vuint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u16mf2)))
-void vsuxseg2ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u16mf2_m)))
-void vsuxseg2ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u16mf4)))
-void vsuxseg2ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u16mf4_m)))
-void vsuxseg2ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i16m1)))
-void vsuxseg3ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i16m1_m)))
-void vsuxseg3ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i16m2)))
-void vsuxseg3ei8(int16_t * op0, vuint8m1_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i16m2_m)))
-void vsuxseg3ei8(vbool8_t op0, int16_t * op1, vuint8m1_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i16mf2)))
-void vsuxseg3ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i16mf2_m)))
-void vsuxseg3ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i16mf4)))
-void vsuxseg3ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i16mf4_m)))
-void vsuxseg3ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u16m1)))
-void vsuxseg3ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u16m1_m)))
-void vsuxseg3ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u16m2)))
-void vsuxseg3ei8(uint16_t * op0, vuint8m1_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u16m2_m)))
-void vsuxseg3ei8(vbool8_t op0, uint16_t * op1, vuint8m1_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u16mf2)))
-void vsuxseg3ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u16mf2_m)))
-void vsuxseg3ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u16mf4)))
-void vsuxseg3ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u16mf4_m)))
-void vsuxseg3ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i16m1)))
-void vsuxseg4ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i16m1_m)))
-void vsuxseg4ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i16m2)))
-void vsuxseg4ei8(int16_t * op0, vuint8m1_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i16m2_m)))
-void vsuxseg4ei8(vbool8_t op0, int16_t * op1, vuint8m1_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i16mf2)))
-void vsuxseg4ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i16mf2_m)))
-void vsuxseg4ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i16mf4)))
-void vsuxseg4ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i16mf4_m)))
-void vsuxseg4ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u16m1)))
-void vsuxseg4ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u16m1_m)))
-void vsuxseg4ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u16m2)))
-void vsuxseg4ei8(uint16_t * op0, vuint8m1_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u16m2_m)))
-void vsuxseg4ei8(vbool8_t op0, uint16_t * op1, vuint8m1_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u16mf2)))
-void vsuxseg4ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u16mf2_m)))
-void vsuxseg4ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u16mf4)))
-void vsuxseg4ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u16mf4_m)))
-void vsuxseg4ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i16m1)))
-void vsuxseg5ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i16m1_m)))
-void vsuxseg5ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i16mf2)))
-void vsuxseg5ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i16mf2_m)))
-void vsuxseg5ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i16mf4)))
-void vsuxseg5ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i16mf4_m)))
-void vsuxseg5ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u16m1)))
-void vsuxseg5ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u16m1_m)))
-void vsuxseg5ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u16mf2)))
-void vsuxseg5ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u16mf2_m)))
-void vsuxseg5ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u16mf4)))
-void vsuxseg5ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u16mf4_m)))
-void vsuxseg5ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i16m1)))
-void vsuxseg6ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i16m1_m)))
-void vsuxseg6ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i16mf2)))
-void vsuxseg6ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i16mf2_m)))
-void vsuxseg6ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i16mf4)))
-void vsuxseg6ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i16mf4_m)))
-void vsuxseg6ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u16m1)))
-void vsuxseg6ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u16m1_m)))
-void vsuxseg6ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u16mf2)))
-void vsuxseg6ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u16mf2_m)))
-void vsuxseg6ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u16mf4)))
-void vsuxseg6ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u16mf4_m)))
-void vsuxseg6ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i16m1)))
-void vsuxseg7ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i16m1_m)))
-void vsuxseg7ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i16mf2)))
-void vsuxseg7ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i16mf2_m)))
-void vsuxseg7ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i16mf4)))
-void vsuxseg7ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i16mf4_m)))
-void vsuxseg7ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u16m1)))
-void vsuxseg7ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u16m1_m)))
-void vsuxseg7ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u16mf2)))
-void vsuxseg7ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u16mf2_m)))
-void vsuxseg7ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u16mf4)))
-void vsuxseg7ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u16mf4_m)))
-void vsuxseg7ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i16m1)))
-void vsuxseg8ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i16m1_m)))
-void vsuxseg8ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i16mf2)))
-void vsuxseg8ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i16mf2_m)))
-void vsuxseg8ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i16mf4)))
-void vsuxseg8ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i16mf4_m)))
-void vsuxseg8ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u16m1)))
-void vsuxseg8ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u16m1_m)))
-void vsuxseg8ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u16mf2)))
-void vsuxseg8ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u16mf2_m)))
-void vsuxseg8ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u16mf4)))
-void vsuxseg8ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u16mf4_m)))
-void vsuxseg8ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i16m1)))
-void vsuxseg2ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i16m1_m)))
-void vsuxseg2ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i16m2)))
-void vsuxseg2ei16(int16_t * op0, vuint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i16m2_m)))
-void vsuxseg2ei16(vbool8_t op0, int16_t * op1, vuint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i16m4)))
-void vsuxseg2ei16(int16_t * op0, vuint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i16m4_m)))
-void vsuxseg2ei16(vbool4_t op0, int16_t * op1, vuint16m4_t op2, vint16m4_t op3, vint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i16mf2)))
-void vsuxseg2ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i16mf2_m)))
-void vsuxseg2ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i16mf4)))
-void vsuxseg2ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i16mf4_m)))
-void vsuxseg2ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u16m1)))
-void vsuxseg2ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u16m1_m)))
-void vsuxseg2ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u16m2)))
-void vsuxseg2ei16(uint16_t * op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u16m2_m)))
-void vsuxseg2ei16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u16m4)))
-void vsuxseg2ei16(uint16_t * op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u16m4_m)))
-void vsuxseg2ei16(vbool4_t op0, uint16_t * op1, vuint16m4_t op2, vuint16m4_t op3, vuint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u16mf2)))
-void vsuxseg2ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u16mf2_m)))
-void vsuxseg2ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u16mf4)))
-void vsuxseg2ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u16mf4_m)))
-void vsuxseg2ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i16m1)))
-void vsuxseg3ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i16m1_m)))
-void vsuxseg3ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i16m2)))
-void vsuxseg3ei16(int16_t * op0, vuint16m2_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i16m2_m)))
-void vsuxseg3ei16(vbool8_t op0, int16_t * op1, vuint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i16mf2)))
-void vsuxseg3ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i16mf2_m)))
-void vsuxseg3ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i16mf4)))
-void vsuxseg3ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i16mf4_m)))
-void vsuxseg3ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u16m1)))
-void vsuxseg3ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u16m1_m)))
-void vsuxseg3ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u16m2)))
-void vsuxseg3ei16(uint16_t * op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u16m2_m)))
-void vsuxseg3ei16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u16mf2)))
-void vsuxseg3ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u16mf2_m)))
-void vsuxseg3ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u16mf4)))
-void vsuxseg3ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u16mf4_m)))
-void vsuxseg3ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i16m1)))
-void vsuxseg4ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i16m1_m)))
-void vsuxseg4ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i16m2)))
-void vsuxseg4ei16(int16_t * op0, vuint16m2_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i16m2_m)))
-void vsuxseg4ei16(vbool8_t op0, int16_t * op1, vuint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i16mf2)))
-void vsuxseg4ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i16mf2_m)))
-void vsuxseg4ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i16mf4)))
-void vsuxseg4ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i16mf4_m)))
-void vsuxseg4ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u16m1)))
-void vsuxseg4ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u16m1_m)))
-void vsuxseg4ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u16m2)))
-void vsuxseg4ei16(uint16_t * op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u16m2_m)))
-void vsuxseg4ei16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u16mf2)))
-void vsuxseg4ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u16mf2_m)))
-void vsuxseg4ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u16mf4)))
-void vsuxseg4ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u16mf4_m)))
-void vsuxseg4ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i16m1)))
-void vsuxseg5ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i16m1_m)))
-void vsuxseg5ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i16mf2)))
-void vsuxseg5ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i16mf2_m)))
-void vsuxseg5ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i16mf4)))
-void vsuxseg5ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i16mf4_m)))
-void vsuxseg5ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u16m1)))
-void vsuxseg5ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u16m1_m)))
-void vsuxseg5ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u16mf2)))
-void vsuxseg5ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u16mf2_m)))
-void vsuxseg5ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u16mf4)))
-void vsuxseg5ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u16mf4_m)))
-void vsuxseg5ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i16m1)))
-void vsuxseg6ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i16m1_m)))
-void vsuxseg6ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i16mf2)))
-void vsuxseg6ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i16mf2_m)))
-void vsuxseg6ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i16mf4)))
-void vsuxseg6ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i16mf4_m)))
-void vsuxseg6ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u16m1)))
-void vsuxseg6ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u16m1_m)))
-void vsuxseg6ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u16mf2)))
-void vsuxseg6ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u16mf2_m)))
-void vsuxseg6ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u16mf4)))
-void vsuxseg6ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u16mf4_m)))
-void vsuxseg6ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i16m1)))
-void vsuxseg7ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i16m1_m)))
-void vsuxseg7ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i16mf2)))
-void vsuxseg7ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i16mf2_m)))
-void vsuxseg7ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i16mf4)))
-void vsuxseg7ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i16mf4_m)))
-void vsuxseg7ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u16m1)))
-void vsuxseg7ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u16m1_m)))
-void vsuxseg7ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u16mf2)))
-void vsuxseg7ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u16mf2_m)))
-void vsuxseg7ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u16mf4)))
-void vsuxseg7ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u16mf4_m)))
-void vsuxseg7ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i16m1)))
-void vsuxseg8ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i16m1_m)))
-void vsuxseg8ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i16mf2)))
-void vsuxseg8ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i16mf2_m)))
-void vsuxseg8ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i16mf4)))
-void vsuxseg8ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i16mf4_m)))
-void vsuxseg8ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u16m1)))
-void vsuxseg8ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u16m1_m)))
-void vsuxseg8ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u16mf2)))
-void vsuxseg8ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u16mf2_m)))
-void vsuxseg8ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u16mf4)))
-void vsuxseg8ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u16mf4_m)))
-void vsuxseg8ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i16m1)))
-void vsuxseg2ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i16m1_m)))
-void vsuxseg2ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i16m2)))
-void vsuxseg2ei32(int16_t * op0, vuint32m4_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i16m2_m)))
-void vsuxseg2ei32(vbool8_t op0, int16_t * op1, vuint32m4_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i16m4)))
-void vsuxseg2ei32(int16_t * op0, vuint32m8_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i16m4_m)))
-void vsuxseg2ei32(vbool4_t op0, int16_t * op1, vuint32m8_t op2, vint16m4_t op3, vint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i16mf2)))
-void vsuxseg2ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i16mf2_m)))
-void vsuxseg2ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i16mf4)))
-void vsuxseg2ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i16mf4_m)))
-void vsuxseg2ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u16m1)))
-void vsuxseg2ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u16m1_m)))
-void vsuxseg2ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u16m2)))
-void vsuxseg2ei32(uint16_t * op0, vuint32m4_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u16m2_m)))
-void vsuxseg2ei32(vbool8_t op0, uint16_t * op1, vuint32m4_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u16m4)))
-void vsuxseg2ei32(uint16_t * op0, vuint32m8_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u16m4_m)))
-void vsuxseg2ei32(vbool4_t op0, uint16_t * op1, vuint32m8_t op2, vuint16m4_t op3, vuint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u16mf2)))
-void vsuxseg2ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u16mf2_m)))
-void vsuxseg2ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u16mf4)))
-void vsuxseg2ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u16mf4_m)))
-void vsuxseg2ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i16m1)))
-void vsuxseg3ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i16m1_m)))
-void vsuxseg3ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i16m2)))
-void vsuxseg3ei32(int16_t * op0, vuint32m4_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i16m2_m)))
-void vsuxseg3ei32(vbool8_t op0, int16_t * op1, vuint32m4_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i16mf2)))
-void vsuxseg3ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i16mf2_m)))
-void vsuxseg3ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i16mf4)))
-void vsuxseg3ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i16mf4_m)))
-void vsuxseg3ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u16m1)))
-void vsuxseg3ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u16m1_m)))
-void vsuxseg3ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u16m2)))
-void vsuxseg3ei32(uint16_t * op0, vuint32m4_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u16m2_m)))
-void vsuxseg3ei32(vbool8_t op0, uint16_t * op1, vuint32m4_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u16mf2)))
-void vsuxseg3ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u16mf2_m)))
-void vsuxseg3ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u16mf4)))
-void vsuxseg3ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u16mf4_m)))
-void vsuxseg3ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i16m1)))
-void vsuxseg4ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i16m1_m)))
-void vsuxseg4ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i16m2)))
-void vsuxseg4ei32(int16_t * op0, vuint32m4_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i16m2_m)))
-void vsuxseg4ei32(vbool8_t op0, int16_t * op1, vuint32m4_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i16mf2)))
-void vsuxseg4ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i16mf2_m)))
-void vsuxseg4ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i16mf4)))
-void vsuxseg4ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i16mf4_m)))
-void vsuxseg4ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u16m1)))
-void vsuxseg4ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u16m1_m)))
-void vsuxseg4ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u16m2)))
-void vsuxseg4ei32(uint16_t * op0, vuint32m4_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u16m2_m)))
-void vsuxseg4ei32(vbool8_t op0, uint16_t * op1, vuint32m4_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u16mf2)))
-void vsuxseg4ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u16mf2_m)))
-void vsuxseg4ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u16mf4)))
-void vsuxseg4ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u16mf4_m)))
-void vsuxseg4ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i16m1)))
-void vsuxseg5ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i16m1_m)))
-void vsuxseg5ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i16mf2)))
-void vsuxseg5ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i16mf2_m)))
-void vsuxseg5ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i16mf4)))
-void vsuxseg5ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i16mf4_m)))
-void vsuxseg5ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u16m1)))
-void vsuxseg5ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u16m1_m)))
-void vsuxseg5ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u16mf2)))
-void vsuxseg5ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u16mf2_m)))
-void vsuxseg5ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u16mf4)))
-void vsuxseg5ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u16mf4_m)))
-void vsuxseg5ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i16m1)))
-void vsuxseg6ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i16m1_m)))
-void vsuxseg6ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i16mf2)))
-void vsuxseg6ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i16mf2_m)))
-void vsuxseg6ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i16mf4)))
-void vsuxseg6ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i16mf4_m)))
-void vsuxseg6ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u16m1)))
-void vsuxseg6ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u16m1_m)))
-void vsuxseg6ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u16mf2)))
-void vsuxseg6ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u16mf2_m)))
-void vsuxseg6ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u16mf4)))
-void vsuxseg6ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u16mf4_m)))
-void vsuxseg6ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i16m1)))
-void vsuxseg7ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i16m1_m)))
-void vsuxseg7ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i16mf2)))
-void vsuxseg7ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i16mf2_m)))
-void vsuxseg7ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i16mf4)))
-void vsuxseg7ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i16mf4_m)))
-void vsuxseg7ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u16m1)))
-void vsuxseg7ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u16m1_m)))
-void vsuxseg7ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u16mf2)))
-void vsuxseg7ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u16mf2_m)))
-void vsuxseg7ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u16mf4)))
-void vsuxseg7ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u16mf4_m)))
-void vsuxseg7ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i16m1)))
-void vsuxseg8ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i16m1_m)))
-void vsuxseg8ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i16mf2)))
-void vsuxseg8ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i16mf2_m)))
-void vsuxseg8ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i16mf4)))
-void vsuxseg8ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i16mf4_m)))
-void vsuxseg8ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u16m1)))
-void vsuxseg8ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u16m1_m)))
-void vsuxseg8ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u16mf2)))
-void vsuxseg8ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u16mf2_m)))
-void vsuxseg8ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u16mf4)))
-void vsuxseg8ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u16mf4_m)))
-void vsuxseg8ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i16m1)))
-void vsuxseg2ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i16m1_m)))
-void vsuxseg2ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i16m2)))
-void vsuxseg2ei64(int16_t * op0, vuint64m8_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i16m2_m)))
-void vsuxseg2ei64(vbool8_t op0, int16_t * op1, vuint64m8_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i16mf2)))
-void vsuxseg2ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i16mf2_m)))
-void vsuxseg2ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i16mf4)))
-void vsuxseg2ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i16mf4_m)))
-void vsuxseg2ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u16m1)))
-void vsuxseg2ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u16m1_m)))
-void vsuxseg2ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u16m2)))
-void vsuxseg2ei64(uint16_t * op0, vuint64m8_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u16m2_m)))
-void vsuxseg2ei64(vbool8_t op0, uint16_t * op1, vuint64m8_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u16mf2)))
-void vsuxseg2ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u16mf2_m)))
-void vsuxseg2ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u16mf4)))
-void vsuxseg2ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u16mf4_m)))
-void vsuxseg2ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i16m1)))
-void vsuxseg3ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i16m1_m)))
-void vsuxseg3ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i16m2)))
-void vsuxseg3ei64(int16_t * op0, vuint64m8_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i16m2_m)))
-void vsuxseg3ei64(vbool8_t op0, int16_t * op1, vuint64m8_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i16mf2)))
-void vsuxseg3ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i16mf2_m)))
-void vsuxseg3ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i16mf4)))
-void vsuxseg3ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i16mf4_m)))
-void vsuxseg3ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u16m1)))
-void vsuxseg3ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u16m1_m)))
-void vsuxseg3ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u16m2)))
-void vsuxseg3ei64(uint16_t * op0, vuint64m8_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u16m2_m)))
-void vsuxseg3ei64(vbool8_t op0, uint16_t * op1, vuint64m8_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u16mf2)))
-void vsuxseg3ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u16mf2_m)))
-void vsuxseg3ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u16mf4)))
-void vsuxseg3ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u16mf4_m)))
-void vsuxseg3ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i16m1)))
-void vsuxseg4ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i16m1_m)))
-void vsuxseg4ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i16m2)))
-void vsuxseg4ei64(int16_t * op0, vuint64m8_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i16m2_m)))
-void vsuxseg4ei64(vbool8_t op0, int16_t * op1, vuint64m8_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i16mf2)))
-void vsuxseg4ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i16mf2_m)))
-void vsuxseg4ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i16mf4)))
-void vsuxseg4ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i16mf4_m)))
-void vsuxseg4ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u16m1)))
-void vsuxseg4ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u16m1_m)))
-void vsuxseg4ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u16m2)))
-void vsuxseg4ei64(uint16_t * op0, vuint64m8_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u16m2_m)))
-void vsuxseg4ei64(vbool8_t op0, uint16_t * op1, vuint64m8_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u16mf2)))
-void vsuxseg4ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u16mf2_m)))
-void vsuxseg4ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u16mf4)))
-void vsuxseg4ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u16mf4_m)))
-void vsuxseg4ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i16m1)))
-void vsuxseg5ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i16m1_m)))
-void vsuxseg5ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i16mf2)))
-void vsuxseg5ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i16mf2_m)))
-void vsuxseg5ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i16mf4)))
-void vsuxseg5ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i16mf4_m)))
-void vsuxseg5ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u16m1)))
-void vsuxseg5ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u16m1_m)))
-void vsuxseg5ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u16mf2)))
-void vsuxseg5ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u16mf2_m)))
-void vsuxseg5ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u16mf4)))
-void vsuxseg5ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u16mf4_m)))
-void vsuxseg5ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i16m1)))
-void vsuxseg6ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i16m1_m)))
-void vsuxseg6ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i16mf2)))
-void vsuxseg6ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i16mf2_m)))
-void vsuxseg6ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i16mf4)))
-void vsuxseg6ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i16mf4_m)))
-void vsuxseg6ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u16m1)))
-void vsuxseg6ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u16m1_m)))
-void vsuxseg6ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u16mf2)))
-void vsuxseg6ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u16mf2_m)))
-void vsuxseg6ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u16mf4)))
-void vsuxseg6ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u16mf4_m)))
-void vsuxseg6ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i16m1)))
-void vsuxseg7ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i16m1_m)))
-void vsuxseg7ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i16mf2)))
-void vsuxseg7ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i16mf2_m)))
-void vsuxseg7ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i16mf4)))
-void vsuxseg7ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i16mf4_m)))
-void vsuxseg7ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u16m1)))
-void vsuxseg7ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u16m1_m)))
-void vsuxseg7ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u16mf2)))
-void vsuxseg7ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u16mf2_m)))
-void vsuxseg7ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u16mf4)))
-void vsuxseg7ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u16mf4_m)))
-void vsuxseg7ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i16m1)))
-void vsuxseg8ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i16m1_m)))
-void vsuxseg8ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i16mf2)))
-void vsuxseg8ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i16mf2_m)))
-void vsuxseg8ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i16mf4)))
-void vsuxseg8ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i16mf4_m)))
-void vsuxseg8ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u16m1)))
-void vsuxseg8ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u16m1_m)))
-void vsuxseg8ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u16mf2)))
-void vsuxseg8ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u16mf2_m)))
-void vsuxseg8ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u16mf4)))
-void vsuxseg8ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u16mf4_m)))
-void vsuxseg8ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i32m1)))
-void vsuxseg2ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i32m1_m)))
-void vsuxseg2ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i32m2)))
-void vsuxseg2ei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i32m2_m)))
-void vsuxseg2ei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i32m4)))
-void vsuxseg2ei8(int32_t * op0, vuint8m1_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i32m4_m)))
-void vsuxseg2ei8(vbool8_t op0, int32_t * op1, vuint8m1_t op2, vint32m4_t op3, vint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i32mf2)))
-void vsuxseg2ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i32mf2_m)))
-void vsuxseg2ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u32m1)))
-void vsuxseg2ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u32m1_m)))
-void vsuxseg2ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u32m2)))
-void vsuxseg2ei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u32m2_m)))
-void vsuxseg2ei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u32m4)))
-void vsuxseg2ei8(uint32_t * op0, vuint8m1_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u32m4_m)))
-void vsuxseg2ei8(vbool8_t op0, uint32_t * op1, vuint8m1_t op2, vuint32m4_t op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u32mf2)))
-void vsuxseg2ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u32mf2_m)))
-void vsuxseg2ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i32m1)))
-void vsuxseg3ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i32m1_m)))
-void vsuxseg3ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i32m2)))
-void vsuxseg3ei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i32m2_m)))
-void vsuxseg3ei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i32mf2)))
-void vsuxseg3ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i32mf2_m)))
-void vsuxseg3ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u32m1)))
-void vsuxseg3ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u32m1_m)))
-void vsuxseg3ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u32m2)))
-void vsuxseg3ei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u32m2_m)))
-void vsuxseg3ei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u32mf2)))
-void vsuxseg3ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u32mf2_m)))
-void vsuxseg3ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i32m1)))
-void vsuxseg4ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i32m1_m)))
-void vsuxseg4ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i32m2)))
-void vsuxseg4ei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i32m2_m)))
-void vsuxseg4ei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i32mf2)))
-void vsuxseg4ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i32mf2_m)))
-void vsuxseg4ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u32m1)))
-void vsuxseg4ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u32m1_m)))
-void vsuxseg4ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u32m2)))
-void vsuxseg4ei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u32m2_m)))
-void vsuxseg4ei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u32mf2)))
-void vsuxseg4ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u32mf2_m)))
-void vsuxseg4ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i32m1)))
-void vsuxseg5ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i32m1_m)))
-void vsuxseg5ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i32mf2)))
-void vsuxseg5ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i32mf2_m)))
-void vsuxseg5ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u32m1)))
-void vsuxseg5ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u32m1_m)))
-void vsuxseg5ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u32mf2)))
-void vsuxseg5ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u32mf2_m)))
-void vsuxseg5ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i32m1)))
-void vsuxseg6ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i32m1_m)))
-void vsuxseg6ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i32mf2)))
-void vsuxseg6ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i32mf2_m)))
-void vsuxseg6ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u32m1)))
-void vsuxseg6ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u32m1_m)))
-void vsuxseg6ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u32mf2)))
-void vsuxseg6ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u32mf2_m)))
-void vsuxseg6ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i32m1)))
-void vsuxseg7ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i32m1_m)))
-void vsuxseg7ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i32mf2)))
-void vsuxseg7ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i32mf2_m)))
-void vsuxseg7ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u32m1)))
-void vsuxseg7ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u32m1_m)))
-void vsuxseg7ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u32mf2)))
-void vsuxseg7ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u32mf2_m)))
-void vsuxseg7ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i32m1)))
-void vsuxseg8ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i32m1_m)))
-void vsuxseg8ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i32mf2)))
-void vsuxseg8ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i32mf2_m)))
-void vsuxseg8ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u32m1)))
-void vsuxseg8ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u32m1_m)))
-void vsuxseg8ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u32mf2)))
-void vsuxseg8ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u32mf2_m)))
-void vsuxseg8ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i32m1)))
-void vsuxseg2ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i32m1_m)))
-void vsuxseg2ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i32m2)))
-void vsuxseg2ei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i32m2_m)))
-void vsuxseg2ei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i32m4)))
-void vsuxseg2ei16(int32_t * op0, vuint16m2_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i32m4_m)))
-void vsuxseg2ei16(vbool8_t op0, int32_t * op1, vuint16m2_t op2, vint32m4_t op3, vint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i32mf2)))
-void vsuxseg2ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i32mf2_m)))
-void vsuxseg2ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u32m1)))
-void vsuxseg2ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u32m1_m)))
-void vsuxseg2ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u32m2)))
-void vsuxseg2ei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u32m2_m)))
-void vsuxseg2ei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u32m4)))
-void vsuxseg2ei16(uint32_t * op0, vuint16m2_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u32m4_m)))
-void vsuxseg2ei16(vbool8_t op0, uint32_t * op1, vuint16m2_t op2, vuint32m4_t op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u32mf2)))
-void vsuxseg2ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u32mf2_m)))
-void vsuxseg2ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i32m1)))
-void vsuxseg3ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i32m1_m)))
-void vsuxseg3ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i32m2)))
-void vsuxseg3ei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i32m2_m)))
-void vsuxseg3ei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i32mf2)))
-void vsuxseg3ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i32mf2_m)))
-void vsuxseg3ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u32m1)))
-void vsuxseg3ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u32m1_m)))
-void vsuxseg3ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u32m2)))
-void vsuxseg3ei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u32m2_m)))
-void vsuxseg3ei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u32mf2)))
-void vsuxseg3ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u32mf2_m)))
-void vsuxseg3ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i32m1)))
-void vsuxseg4ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i32m1_m)))
-void vsuxseg4ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i32m2)))
-void vsuxseg4ei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i32m2_m)))
-void vsuxseg4ei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i32mf2)))
-void vsuxseg4ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i32mf2_m)))
-void vsuxseg4ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u32m1)))
-void vsuxseg4ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u32m1_m)))
-void vsuxseg4ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u32m2)))
-void vsuxseg4ei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u32m2_m)))
-void vsuxseg4ei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u32mf2)))
-void vsuxseg4ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u32mf2_m)))
-void vsuxseg4ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i32m1)))
-void vsuxseg5ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i32m1_m)))
-void vsuxseg5ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i32mf2)))
-void vsuxseg5ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i32mf2_m)))
-void vsuxseg5ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u32m1)))
-void vsuxseg5ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u32m1_m)))
-void vsuxseg5ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u32mf2)))
-void vsuxseg5ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u32mf2_m)))
-void vsuxseg5ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i32m1)))
-void vsuxseg6ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i32m1_m)))
-void vsuxseg6ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i32mf2)))
-void vsuxseg6ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i32mf2_m)))
-void vsuxseg6ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u32m1)))
-void vsuxseg6ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u32m1_m)))
-void vsuxseg6ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u32mf2)))
-void vsuxseg6ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u32mf2_m)))
-void vsuxseg6ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i32m1)))
-void vsuxseg7ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i32m1_m)))
-void vsuxseg7ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i32mf2)))
-void vsuxseg7ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i32mf2_m)))
-void vsuxseg7ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u32m1)))
-void vsuxseg7ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u32m1_m)))
-void vsuxseg7ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u32mf2)))
-void vsuxseg7ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u32mf2_m)))
-void vsuxseg7ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i32m1)))
-void vsuxseg8ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i32m1_m)))
-void vsuxseg8ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i32mf2)))
-void vsuxseg8ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i32mf2_m)))
-void vsuxseg8ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u32m1)))
-void vsuxseg8ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u32m1_m)))
-void vsuxseg8ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u32mf2)))
-void vsuxseg8ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u32mf2_m)))
-void vsuxseg8ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i32m1)))
-void vsuxseg2ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i32m1_m)))
-void vsuxseg2ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i32m2)))
-void vsuxseg2ei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i32m2_m)))
-void vsuxseg2ei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i32m4)))
-void vsuxseg2ei32(int32_t * op0, vuint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i32m4_m)))
-void vsuxseg2ei32(vbool8_t op0, int32_t * op1, vuint32m4_t op2, vint32m4_t op3, vint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i32mf2)))
-void vsuxseg2ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i32mf2_m)))
-void vsuxseg2ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u32m1)))
-void vsuxseg2ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u32m1_m)))
-void vsuxseg2ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u32m2)))
-void vsuxseg2ei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u32m2_m)))
-void vsuxseg2ei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u32m4)))
-void vsuxseg2ei32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u32m4_m)))
-void vsuxseg2ei32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u32mf2)))
-void vsuxseg2ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u32mf2_m)))
-void vsuxseg2ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i32m1)))
-void vsuxseg3ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i32m1_m)))
-void vsuxseg3ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i32m2)))
-void vsuxseg3ei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i32m2_m)))
-void vsuxseg3ei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i32mf2)))
-void vsuxseg3ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i32mf2_m)))
-void vsuxseg3ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u32m1)))
-void vsuxseg3ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u32m1_m)))
-void vsuxseg3ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u32m2)))
-void vsuxseg3ei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u32m2_m)))
-void vsuxseg3ei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u32mf2)))
-void vsuxseg3ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u32mf2_m)))
-void vsuxseg3ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i32m1)))
-void vsuxseg4ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i32m1_m)))
-void vsuxseg4ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i32m2)))
-void vsuxseg4ei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i32m2_m)))
-void vsuxseg4ei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i32mf2)))
-void vsuxseg4ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i32mf2_m)))
-void vsuxseg4ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u32m1)))
-void vsuxseg4ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u32m1_m)))
-void vsuxseg4ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u32m2)))
-void vsuxseg4ei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u32m2_m)))
-void vsuxseg4ei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u32mf2)))
-void vsuxseg4ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u32mf2_m)))
-void vsuxseg4ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i32m1)))
-void vsuxseg5ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i32m1_m)))
-void vsuxseg5ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i32mf2)))
-void vsuxseg5ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i32mf2_m)))
-void vsuxseg5ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u32m1)))
-void vsuxseg5ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u32m1_m)))
-void vsuxseg5ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u32mf2)))
-void vsuxseg5ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u32mf2_m)))
-void vsuxseg5ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i32m1)))
-void vsuxseg6ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i32m1_m)))
-void vsuxseg6ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i32mf2)))
-void vsuxseg6ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i32mf2_m)))
-void vsuxseg6ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u32m1)))
-void vsuxseg6ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u32m1_m)))
-void vsuxseg6ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u32mf2)))
-void vsuxseg6ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u32mf2_m)))
-void vsuxseg6ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i32m1)))
-void vsuxseg7ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i32m1_m)))
-void vsuxseg7ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i32mf2)))
-void vsuxseg7ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i32mf2_m)))
-void vsuxseg7ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u32m1)))
-void vsuxseg7ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u32m1_m)))
-void vsuxseg7ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u32mf2)))
-void vsuxseg7ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u32mf2_m)))
-void vsuxseg7ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i32m1)))
-void vsuxseg8ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i32m1_m)))
-void vsuxseg8ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i32mf2)))
-void vsuxseg8ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i32mf2_m)))
-void vsuxseg8ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u32m1)))
-void vsuxseg8ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u32m1_m)))
-void vsuxseg8ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u32mf2)))
-void vsuxseg8ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u32mf2_m)))
-void vsuxseg8ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i32m1)))
-void vsuxseg2ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i32m1_m)))
-void vsuxseg2ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i32m2)))
-void vsuxseg2ei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i32m2_m)))
-void vsuxseg2ei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i32m4)))
-void vsuxseg2ei64(int32_t * op0, vuint64m8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i32m4_m)))
-void vsuxseg2ei64(vbool8_t op0, int32_t * op1, vuint64m8_t op2, vint32m4_t op3, vint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i32mf2)))
-void vsuxseg2ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i32mf2_m)))
-void vsuxseg2ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u32m1)))
-void vsuxseg2ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u32m1_m)))
-void vsuxseg2ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u32m2)))
-void vsuxseg2ei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u32m2_m)))
-void vsuxseg2ei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u32m4)))
-void vsuxseg2ei64(uint32_t * op0, vuint64m8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u32m4_m)))
-void vsuxseg2ei64(vbool8_t op0, uint32_t * op1, vuint64m8_t op2, vuint32m4_t op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u32mf2)))
-void vsuxseg2ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u32mf2_m)))
-void vsuxseg2ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i32m1)))
-void vsuxseg3ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i32m1_m)))
-void vsuxseg3ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i32m2)))
-void vsuxseg3ei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i32m2_m)))
-void vsuxseg3ei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i32mf2)))
-void vsuxseg3ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i32mf2_m)))
-void vsuxseg3ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u32m1)))
-void vsuxseg3ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u32m1_m)))
-void vsuxseg3ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u32m2)))
-void vsuxseg3ei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u32m2_m)))
-void vsuxseg3ei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u32mf2)))
-void vsuxseg3ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u32mf2_m)))
-void vsuxseg3ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i32m1)))
-void vsuxseg4ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i32m1_m)))
-void vsuxseg4ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i32m2)))
-void vsuxseg4ei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i32m2_m)))
-void vsuxseg4ei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i32mf2)))
-void vsuxseg4ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i32mf2_m)))
-void vsuxseg4ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u32m1)))
-void vsuxseg4ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u32m1_m)))
-void vsuxseg4ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u32m2)))
-void vsuxseg4ei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u32m2_m)))
-void vsuxseg4ei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u32mf2)))
-void vsuxseg4ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u32mf2_m)))
-void vsuxseg4ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i32m1)))
-void vsuxseg5ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i32m1_m)))
-void vsuxseg5ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i32mf2)))
-void vsuxseg5ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i32mf2_m)))
-void vsuxseg5ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u32m1)))
-void vsuxseg5ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u32m1_m)))
-void vsuxseg5ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u32mf2)))
-void vsuxseg5ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u32mf2_m)))
-void vsuxseg5ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i32m1)))
-void vsuxseg6ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i32m1_m)))
-void vsuxseg6ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i32mf2)))
-void vsuxseg6ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i32mf2_m)))
-void vsuxseg6ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u32m1)))
-void vsuxseg6ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u32m1_m)))
-void vsuxseg6ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u32mf2)))
-void vsuxseg6ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u32mf2_m)))
-void vsuxseg6ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i32m1)))
-void vsuxseg7ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i32m1_m)))
-void vsuxseg7ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i32mf2)))
-void vsuxseg7ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i32mf2_m)))
-void vsuxseg7ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u32m1)))
-void vsuxseg7ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u32m1_m)))
-void vsuxseg7ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u32mf2)))
-void vsuxseg7ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u32mf2_m)))
-void vsuxseg7ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i32m1)))
-void vsuxseg8ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i32m1_m)))
-void vsuxseg8ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i32mf2)))
-void vsuxseg8ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i32mf2_m)))
-void vsuxseg8ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u32m1)))
-void vsuxseg8ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u32m1_m)))
-void vsuxseg8ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u32mf2)))
-void vsuxseg8ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u32mf2_m)))
-void vsuxseg8ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i64m1)))
-void vsuxseg2ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i64m1_m)))
-void vsuxseg2ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i64m2)))
-void vsuxseg2ei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i64m2_m)))
-void vsuxseg2ei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i64m4)))
-void vsuxseg2ei8(int64_t * op0, vuint8mf2_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i64m4_m)))
-void vsuxseg2ei8(vbool16_t op0, int64_t * op1, vuint8mf2_t op2, vint64m4_t op3, vint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u64m1)))
-void vsuxseg2ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u64m1_m)))
-void vsuxseg2ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u64m2)))
-void vsuxseg2ei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u64m2_m)))
-void vsuxseg2ei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u64m4)))
-void vsuxseg2ei8(uint64_t * op0, vuint8mf2_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u64m4_m)))
-void vsuxseg2ei8(vbool16_t op0, uint64_t * op1, vuint8mf2_t op2, vuint64m4_t op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i64m1)))
-void vsuxseg3ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i64m1_m)))
-void vsuxseg3ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i64m2)))
-void vsuxseg3ei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_i64m2_m)))
-void vsuxseg3ei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u64m1)))
-void vsuxseg3ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u64m1_m)))
-void vsuxseg3ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u64m2)))
-void vsuxseg3ei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_u64m2_m)))
-void vsuxseg3ei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i64m1)))
-void vsuxseg4ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i64m1_m)))
-void vsuxseg4ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i64m2)))
-void vsuxseg4ei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_i64m2_m)))
-void vsuxseg4ei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u64m1)))
-void vsuxseg4ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u64m1_m)))
-void vsuxseg4ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u64m2)))
-void vsuxseg4ei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_u64m2_m)))
-void vsuxseg4ei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i64m1)))
-void vsuxseg5ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_i64m1_m)))
-void vsuxseg5ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u64m1)))
-void vsuxseg5ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_u64m1_m)))
-void vsuxseg5ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i64m1)))
-void vsuxseg6ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_i64m1_m)))
-void vsuxseg6ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u64m1)))
-void vsuxseg6ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_u64m1_m)))
-void vsuxseg6ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i64m1)))
-void vsuxseg7ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_i64m1_m)))
-void vsuxseg7ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u64m1)))
-void vsuxseg7ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_u64m1_m)))
-void vsuxseg7ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i64m1)))
-void vsuxseg8ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_i64m1_m)))
-void vsuxseg8ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u64m1)))
-void vsuxseg8ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_u64m1_m)))
-void vsuxseg8ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i64m1)))
-void vsuxseg2ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i64m1_m)))
-void vsuxseg2ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i64m2)))
-void vsuxseg2ei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i64m2_m)))
-void vsuxseg2ei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i64m4)))
-void vsuxseg2ei16(int64_t * op0, vuint16m1_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_i64m4_m)))
-void vsuxseg2ei16(vbool16_t op0, int64_t * op1, vuint16m1_t op2, vint64m4_t op3, vint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u64m1)))
-void vsuxseg2ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u64m1_m)))
-void vsuxseg2ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u64m2)))
-void vsuxseg2ei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u64m2_m)))
-void vsuxseg2ei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u64m4)))
-void vsuxseg2ei16(uint64_t * op0, vuint16m1_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_u64m4_m)))
-void vsuxseg2ei16(vbool16_t op0, uint64_t * op1, vuint16m1_t op2, vuint64m4_t op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i64m1)))
-void vsuxseg3ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i64m1_m)))
-void vsuxseg3ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i64m2)))
-void vsuxseg3ei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_i64m2_m)))
-void vsuxseg3ei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u64m1)))
-void vsuxseg3ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u64m1_m)))
-void vsuxseg3ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u64m2)))
-void vsuxseg3ei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_u64m2_m)))
-void vsuxseg3ei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i64m1)))
-void vsuxseg4ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i64m1_m)))
-void vsuxseg4ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i64m2)))
-void vsuxseg4ei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_i64m2_m)))
-void vsuxseg4ei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u64m1)))
-void vsuxseg4ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u64m1_m)))
-void vsuxseg4ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u64m2)))
-void vsuxseg4ei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_u64m2_m)))
-void vsuxseg4ei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i64m1)))
-void vsuxseg5ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_i64m1_m)))
-void vsuxseg5ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u64m1)))
-void vsuxseg5ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_u64m1_m)))
-void vsuxseg5ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i64m1)))
-void vsuxseg6ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_i64m1_m)))
-void vsuxseg6ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u64m1)))
-void vsuxseg6ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_u64m1_m)))
-void vsuxseg6ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i64m1)))
-void vsuxseg7ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_i64m1_m)))
-void vsuxseg7ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u64m1)))
-void vsuxseg7ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_u64m1_m)))
-void vsuxseg7ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i64m1)))
-void vsuxseg8ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_i64m1_m)))
-void vsuxseg8ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u64m1)))
-void vsuxseg8ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_u64m1_m)))
-void vsuxseg8ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i64m1)))
-void vsuxseg2ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i64m1_m)))
-void vsuxseg2ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i64m2)))
-void vsuxseg2ei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i64m2_m)))
-void vsuxseg2ei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i64m4)))
-void vsuxseg2ei32(int64_t * op0, vuint32m2_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_i64m4_m)))
-void vsuxseg2ei32(vbool16_t op0, int64_t * op1, vuint32m2_t op2, vint64m4_t op3, vint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u64m1)))
-void vsuxseg2ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u64m1_m)))
-void vsuxseg2ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u64m2)))
-void vsuxseg2ei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u64m2_m)))
-void vsuxseg2ei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u64m4)))
-void vsuxseg2ei32(uint64_t * op0, vuint32m2_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_u64m4_m)))
-void vsuxseg2ei32(vbool16_t op0, uint64_t * op1, vuint32m2_t op2, vuint64m4_t op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i64m1)))
-void vsuxseg3ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i64m1_m)))
-void vsuxseg3ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i64m2)))
-void vsuxseg3ei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_i64m2_m)))
-void vsuxseg3ei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u64m1)))
-void vsuxseg3ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u64m1_m)))
-void vsuxseg3ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u64m2)))
-void vsuxseg3ei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_u64m2_m)))
-void vsuxseg3ei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i64m1)))
-void vsuxseg4ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i64m1_m)))
-void vsuxseg4ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i64m2)))
-void vsuxseg4ei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_i64m2_m)))
-void vsuxseg4ei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u64m1)))
-void vsuxseg4ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u64m1_m)))
-void vsuxseg4ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u64m2)))
-void vsuxseg4ei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_u64m2_m)))
-void vsuxseg4ei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i64m1)))
-void vsuxseg5ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_i64m1_m)))
-void vsuxseg5ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u64m1)))
-void vsuxseg5ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_u64m1_m)))
-void vsuxseg5ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i64m1)))
-void vsuxseg6ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_i64m1_m)))
-void vsuxseg6ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u64m1)))
-void vsuxseg6ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_u64m1_m)))
-void vsuxseg6ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i64m1)))
-void vsuxseg7ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_i64m1_m)))
-void vsuxseg7ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u64m1)))
-void vsuxseg7ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_u64m1_m)))
-void vsuxseg7ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i64m1)))
-void vsuxseg8ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_i64m1_m)))
-void vsuxseg8ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u64m1)))
-void vsuxseg8ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_u64m1_m)))
-void vsuxseg8ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i64m1)))
-void vsuxseg2ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i64m1_m)))
-void vsuxseg2ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i64m2)))
-void vsuxseg2ei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i64m2_m)))
-void vsuxseg2ei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i64m4)))
-void vsuxseg2ei64(int64_t * op0, vuint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_i64m4_m)))
-void vsuxseg2ei64(vbool16_t op0, int64_t * op1, vuint64m4_t op2, vint64m4_t op3, vint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u64m1)))
-void vsuxseg2ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u64m1_m)))
-void vsuxseg2ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u64m2)))
-void vsuxseg2ei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u64m2_m)))
-void vsuxseg2ei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u64m4)))
-void vsuxseg2ei64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_u64m4_m)))
-void vsuxseg2ei64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i64m1)))
-void vsuxseg3ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i64m1_m)))
-void vsuxseg3ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i64m2)))
-void vsuxseg3ei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_i64m2_m)))
-void vsuxseg3ei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u64m1)))
-void vsuxseg3ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u64m1_m)))
-void vsuxseg3ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u64m2)))
-void vsuxseg3ei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_u64m2_m)))
-void vsuxseg3ei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i64m1)))
-void vsuxseg4ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i64m1_m)))
-void vsuxseg4ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i64m2)))
-void vsuxseg4ei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_i64m2_m)))
-void vsuxseg4ei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u64m1)))
-void vsuxseg4ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u64m1_m)))
-void vsuxseg4ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u64m2)))
-void vsuxseg4ei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_u64m2_m)))
-void vsuxseg4ei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i64m1)))
-void vsuxseg5ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_i64m1_m)))
-void vsuxseg5ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u64m1)))
-void vsuxseg5ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_u64m1_m)))
-void vsuxseg5ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i64m1)))
-void vsuxseg6ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_i64m1_m)))
-void vsuxseg6ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u64m1)))
-void vsuxseg6ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_u64m1_m)))
-void vsuxseg6ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i64m1)))
-void vsuxseg7ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_i64m1_m)))
-void vsuxseg7ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u64m1)))
-void vsuxseg7ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_u64m1_m)))
-void vsuxseg7ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i64m1)))
-void vsuxseg8ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_i64m1_m)))
-void vsuxseg8ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u64m1)))
-void vsuxseg8ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_u64m1_m)))
-void vsuxseg8ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8m1)))
-void vsoxseg2ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8m1_m)))
-void vsoxseg2ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8m2)))
-void vsoxseg2ei8(int8_t * op0, vuint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8m2_m)))
-void vsoxseg2ei8(vbool4_t op0, int8_t * op1, vuint8m2_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8m4)))
-void vsoxseg2ei8(int8_t * op0, vuint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8m4_m)))
-void vsoxseg2ei8(vbool2_t op0, int8_t * op1, vuint8m4_t op2, vint8m4_t op3, vint8m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8mf2)))
-void vsoxseg2ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8mf2_m)))
-void vsoxseg2ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8mf4)))
-void vsoxseg2ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8mf4_m)))
-void vsoxseg2ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8mf8)))
-void vsoxseg2ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i8mf8_m)))
-void vsoxseg2ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8m1)))
-void vsoxseg2ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8m1_m)))
-void vsoxseg2ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8m2)))
-void vsoxseg2ei8(uint8_t * op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8m2_m)))
-void vsoxseg2ei8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8m4)))
-void vsoxseg2ei8(uint8_t * op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8m4_m)))
-void vsoxseg2ei8(vbool2_t op0, uint8_t * op1, vuint8m4_t op2, vuint8m4_t op3, vuint8m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8mf2)))
-void vsoxseg2ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8mf2_m)))
-void vsoxseg2ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8mf4)))
-void vsoxseg2ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8mf4_m)))
-void vsoxseg2ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8mf8)))
-void vsoxseg2ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u8mf8_m)))
-void vsoxseg2ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i8m1)))
-void vsoxseg3ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i8m1_m)))
-void vsoxseg3ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i8m2)))
-void vsoxseg3ei8(int8_t * op0, vuint8m2_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i8m2_m)))
-void vsoxseg3ei8(vbool4_t op0, int8_t * op1, vuint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i8mf2)))
-void vsoxseg3ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i8mf2_m)))
-void vsoxseg3ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i8mf4)))
-void vsoxseg3ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i8mf4_m)))
-void vsoxseg3ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i8mf8)))
-void vsoxseg3ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i8mf8_m)))
-void vsoxseg3ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u8m1)))
-void vsoxseg3ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u8m1_m)))
-void vsoxseg3ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u8m2)))
-void vsoxseg3ei8(uint8_t * op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u8m2_m)))
-void vsoxseg3ei8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u8mf2)))
-void vsoxseg3ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u8mf2_m)))
-void vsoxseg3ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u8mf4)))
-void vsoxseg3ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u8mf4_m)))
-void vsoxseg3ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u8mf8)))
-void vsoxseg3ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u8mf8_m)))
-void vsoxseg3ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i8m1)))
-void vsoxseg4ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i8m1_m)))
-void vsoxseg4ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i8m2)))
-void vsoxseg4ei8(int8_t * op0, vuint8m2_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i8m2_m)))
-void vsoxseg4ei8(vbool4_t op0, int8_t * op1, vuint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i8mf2)))
-void vsoxseg4ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i8mf2_m)))
-void vsoxseg4ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i8mf4)))
-void vsoxseg4ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i8mf4_m)))
-void vsoxseg4ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i8mf8)))
-void vsoxseg4ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i8mf8_m)))
-void vsoxseg4ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u8m1)))
-void vsoxseg4ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u8m1_m)))
-void vsoxseg4ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u8m2)))
-void vsoxseg4ei8(uint8_t * op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u8m2_m)))
-void vsoxseg4ei8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u8mf2)))
-void vsoxseg4ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u8mf2_m)))
-void vsoxseg4ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u8mf4)))
-void vsoxseg4ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u8mf4_m)))
-void vsoxseg4ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u8mf8)))
-void vsoxseg4ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u8mf8_m)))
-void vsoxseg4ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i8m1)))
-void vsoxseg5ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i8m1_m)))
-void vsoxseg5ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i8mf2)))
-void vsoxseg5ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i8mf2_m)))
-void vsoxseg5ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i8mf4)))
-void vsoxseg5ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i8mf4_m)))
-void vsoxseg5ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i8mf8)))
-void vsoxseg5ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i8mf8_m)))
-void vsoxseg5ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u8m1)))
-void vsoxseg5ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u8m1_m)))
-void vsoxseg5ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u8mf2)))
-void vsoxseg5ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u8mf2_m)))
-void vsoxseg5ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u8mf4)))
-void vsoxseg5ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u8mf4_m)))
-void vsoxseg5ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u8mf8)))
-void vsoxseg5ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u8mf8_m)))
-void vsoxseg5ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i8m1)))
-void vsoxseg6ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i8m1_m)))
-void vsoxseg6ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i8mf2)))
-void vsoxseg6ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i8mf2_m)))
-void vsoxseg6ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i8mf4)))
-void vsoxseg6ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i8mf4_m)))
-void vsoxseg6ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i8mf8)))
-void vsoxseg6ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i8mf8_m)))
-void vsoxseg6ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u8m1)))
-void vsoxseg6ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u8m1_m)))
-void vsoxseg6ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u8mf2)))
-void vsoxseg6ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u8mf2_m)))
-void vsoxseg6ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u8mf4)))
-void vsoxseg6ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u8mf4_m)))
-void vsoxseg6ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u8mf8)))
-void vsoxseg6ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u8mf8_m)))
-void vsoxseg6ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i8m1)))
-void vsoxseg7ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i8m1_m)))
-void vsoxseg7ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i8mf2)))
-void vsoxseg7ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i8mf2_m)))
-void vsoxseg7ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i8mf4)))
-void vsoxseg7ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i8mf4_m)))
-void vsoxseg7ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i8mf8)))
-void vsoxseg7ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i8mf8_m)))
-void vsoxseg7ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u8m1)))
-void vsoxseg7ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u8m1_m)))
-void vsoxseg7ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u8mf2)))
-void vsoxseg7ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u8mf2_m)))
-void vsoxseg7ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u8mf4)))
-void vsoxseg7ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u8mf4_m)))
-void vsoxseg7ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u8mf8)))
-void vsoxseg7ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u8mf8_m)))
-void vsoxseg7ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i8m1)))
-void vsoxseg8ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i8m1_m)))
-void vsoxseg8ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i8mf2)))
-void vsoxseg8ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i8mf2_m)))
-void vsoxseg8ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i8mf4)))
-void vsoxseg8ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i8mf4_m)))
-void vsoxseg8ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i8mf8)))
-void vsoxseg8ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i8mf8_m)))
-void vsoxseg8ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u8m1)))
-void vsoxseg8ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u8m1_m)))
-void vsoxseg8ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u8mf2)))
-void vsoxseg8ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u8mf2_m)))
-void vsoxseg8ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u8mf4)))
-void vsoxseg8ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u8mf4_m)))
-void vsoxseg8ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u8mf8)))
-void vsoxseg8ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u8mf8_m)))
-void vsoxseg8ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8m1)))
-void vsoxseg2ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8m1_m)))
-void vsoxseg2ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8m2)))
-void vsoxseg2ei16(int8_t * op0, vuint16m4_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8m2_m)))
-void vsoxseg2ei16(vbool4_t op0, int8_t * op1, vuint16m4_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8m4)))
-void vsoxseg2ei16(int8_t * op0, vuint16m8_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8m4_m)))
-void vsoxseg2ei16(vbool2_t op0, int8_t * op1, vuint16m8_t op2, vint8m4_t op3, vint8m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8mf2)))
-void vsoxseg2ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8mf2_m)))
-void vsoxseg2ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8mf4)))
-void vsoxseg2ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8mf4_m)))
-void vsoxseg2ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8mf8)))
-void vsoxseg2ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i8mf8_m)))
-void vsoxseg2ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8m1)))
-void vsoxseg2ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8m1_m)))
-void vsoxseg2ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8m2)))
-void vsoxseg2ei16(uint8_t * op0, vuint16m4_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8m2_m)))
-void vsoxseg2ei16(vbool4_t op0, uint8_t * op1, vuint16m4_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8m4)))
-void vsoxseg2ei16(uint8_t * op0, vuint16m8_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8m4_m)))
-void vsoxseg2ei16(vbool2_t op0, uint8_t * op1, vuint16m8_t op2, vuint8m4_t op3, vuint8m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8mf2)))
-void vsoxseg2ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8mf2_m)))
-void vsoxseg2ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8mf4)))
-void vsoxseg2ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8mf4_m)))
-void vsoxseg2ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8mf8)))
-void vsoxseg2ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u8mf8_m)))
-void vsoxseg2ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i8m1)))
-void vsoxseg3ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i8m1_m)))
-void vsoxseg3ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i8m2)))
-void vsoxseg3ei16(int8_t * op0, vuint16m4_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i8m2_m)))
-void vsoxseg3ei16(vbool4_t op0, int8_t * op1, vuint16m4_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i8mf2)))
-void vsoxseg3ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i8mf2_m)))
-void vsoxseg3ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i8mf4)))
-void vsoxseg3ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i8mf4_m)))
-void vsoxseg3ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i8mf8)))
-void vsoxseg3ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i8mf8_m)))
-void vsoxseg3ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u8m1)))
-void vsoxseg3ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u8m1_m)))
-void vsoxseg3ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u8m2)))
-void vsoxseg3ei16(uint8_t * op0, vuint16m4_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u8m2_m)))
-void vsoxseg3ei16(vbool4_t op0, uint8_t * op1, vuint16m4_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u8mf2)))
-void vsoxseg3ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u8mf2_m)))
-void vsoxseg3ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u8mf4)))
-void vsoxseg3ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u8mf4_m)))
-void vsoxseg3ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u8mf8)))
-void vsoxseg3ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u8mf8_m)))
-void vsoxseg3ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i8m1)))
-void vsoxseg4ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i8m1_m)))
-void vsoxseg4ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i8m2)))
-void vsoxseg4ei16(int8_t * op0, vuint16m4_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i8m2_m)))
-void vsoxseg4ei16(vbool4_t op0, int8_t * op1, vuint16m4_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i8mf2)))
-void vsoxseg4ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i8mf2_m)))
-void vsoxseg4ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i8mf4)))
-void vsoxseg4ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i8mf4_m)))
-void vsoxseg4ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i8mf8)))
-void vsoxseg4ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i8mf8_m)))
-void vsoxseg4ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u8m1)))
-void vsoxseg4ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u8m1_m)))
-void vsoxseg4ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u8m2)))
-void vsoxseg4ei16(uint8_t * op0, vuint16m4_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u8m2_m)))
-void vsoxseg4ei16(vbool4_t op0, uint8_t * op1, vuint16m4_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u8mf2)))
-void vsoxseg4ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u8mf2_m)))
-void vsoxseg4ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u8mf4)))
-void vsoxseg4ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u8mf4_m)))
-void vsoxseg4ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u8mf8)))
-void vsoxseg4ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u8mf8_m)))
-void vsoxseg4ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i8m1)))
-void vsoxseg5ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i8m1_m)))
-void vsoxseg5ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i8mf2)))
-void vsoxseg5ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i8mf2_m)))
-void vsoxseg5ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i8mf4)))
-void vsoxseg5ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i8mf4_m)))
-void vsoxseg5ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i8mf8)))
-void vsoxseg5ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i8mf8_m)))
-void vsoxseg5ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u8m1)))
-void vsoxseg5ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u8m1_m)))
-void vsoxseg5ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u8mf2)))
-void vsoxseg5ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u8mf2_m)))
-void vsoxseg5ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u8mf4)))
-void vsoxseg5ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u8mf4_m)))
-void vsoxseg5ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u8mf8)))
-void vsoxseg5ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u8mf8_m)))
-void vsoxseg5ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i8m1)))
-void vsoxseg6ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i8m1_m)))
-void vsoxseg6ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i8mf2)))
-void vsoxseg6ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i8mf2_m)))
-void vsoxseg6ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i8mf4)))
-void vsoxseg6ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i8mf4_m)))
-void vsoxseg6ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i8mf8)))
-void vsoxseg6ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i8mf8_m)))
-void vsoxseg6ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u8m1)))
-void vsoxseg6ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u8m1_m)))
-void vsoxseg6ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u8mf2)))
-void vsoxseg6ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u8mf2_m)))
-void vsoxseg6ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u8mf4)))
-void vsoxseg6ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u8mf4_m)))
-void vsoxseg6ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u8mf8)))
-void vsoxseg6ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u8mf8_m)))
-void vsoxseg6ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i8m1)))
-void vsoxseg7ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i8m1_m)))
-void vsoxseg7ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i8mf2)))
-void vsoxseg7ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i8mf2_m)))
-void vsoxseg7ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i8mf4)))
-void vsoxseg7ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i8mf4_m)))
-void vsoxseg7ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i8mf8)))
-void vsoxseg7ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i8mf8_m)))
-void vsoxseg7ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u8m1)))
-void vsoxseg7ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u8m1_m)))
-void vsoxseg7ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u8mf2)))
-void vsoxseg7ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u8mf2_m)))
-void vsoxseg7ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u8mf4)))
-void vsoxseg7ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u8mf4_m)))
-void vsoxseg7ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u8mf8)))
-void vsoxseg7ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u8mf8_m)))
-void vsoxseg7ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i8m1)))
-void vsoxseg8ei16(int8_t * op0, vuint16m2_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i8m1_m)))
-void vsoxseg8ei16(vbool8_t op0, int8_t * op1, vuint16m2_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i8mf2)))
-void vsoxseg8ei16(int8_t * op0, vuint16m1_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i8mf2_m)))
-void vsoxseg8ei16(vbool16_t op0, int8_t * op1, vuint16m1_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i8mf4)))
-void vsoxseg8ei16(int8_t * op0, vuint16mf2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i8mf4_m)))
-void vsoxseg8ei16(vbool32_t op0, int8_t * op1, vuint16mf2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i8mf8)))
-void vsoxseg8ei16(int8_t * op0, vuint16mf4_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i8mf8_m)))
-void vsoxseg8ei16(vbool64_t op0, int8_t * op1, vuint16mf4_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u8m1)))
-void vsoxseg8ei16(uint8_t * op0, vuint16m2_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u8m1_m)))
-void vsoxseg8ei16(vbool8_t op0, uint8_t * op1, vuint16m2_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u8mf2)))
-void vsoxseg8ei16(uint8_t * op0, vuint16m1_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u8mf2_m)))
-void vsoxseg8ei16(vbool16_t op0, uint8_t * op1, vuint16m1_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u8mf4)))
-void vsoxseg8ei16(uint8_t * op0, vuint16mf2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u8mf4_m)))
-void vsoxseg8ei16(vbool32_t op0, uint8_t * op1, vuint16mf2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u8mf8)))
-void vsoxseg8ei16(uint8_t * op0, vuint16mf4_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u8mf8_m)))
-void vsoxseg8ei16(vbool64_t op0, uint8_t * op1, vuint16mf4_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i8m1)))
-void vsoxseg2ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i8m1_m)))
-void vsoxseg2ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i8m2)))
-void vsoxseg2ei32(int8_t * op0, vuint32m8_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i8m2_m)))
-void vsoxseg2ei32(vbool4_t op0, int8_t * op1, vuint32m8_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i8mf2)))
-void vsoxseg2ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i8mf2_m)))
-void vsoxseg2ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i8mf4)))
-void vsoxseg2ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i8mf4_m)))
-void vsoxseg2ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i8mf8)))
-void vsoxseg2ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i8mf8_m)))
-void vsoxseg2ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u8m1)))
-void vsoxseg2ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u8m1_m)))
-void vsoxseg2ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u8m2)))
-void vsoxseg2ei32(uint8_t * op0, vuint32m8_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u8m2_m)))
-void vsoxseg2ei32(vbool4_t op0, uint8_t * op1, vuint32m8_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u8mf2)))
-void vsoxseg2ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u8mf2_m)))
-void vsoxseg2ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u8mf4)))
-void vsoxseg2ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u8mf4_m)))
-void vsoxseg2ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u8mf8)))
-void vsoxseg2ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u8mf8_m)))
-void vsoxseg2ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i8m1)))
-void vsoxseg3ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i8m1_m)))
-void vsoxseg3ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i8m2)))
-void vsoxseg3ei32(int8_t * op0, vuint32m8_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i8m2_m)))
-void vsoxseg3ei32(vbool4_t op0, int8_t * op1, vuint32m8_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i8mf2)))
-void vsoxseg3ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i8mf2_m)))
-void vsoxseg3ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i8mf4)))
-void vsoxseg3ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i8mf4_m)))
-void vsoxseg3ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i8mf8)))
-void vsoxseg3ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i8mf8_m)))
-void vsoxseg3ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u8m1)))
-void vsoxseg3ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u8m1_m)))
-void vsoxseg3ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u8m2)))
-void vsoxseg3ei32(uint8_t * op0, vuint32m8_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u8m2_m)))
-void vsoxseg3ei32(vbool4_t op0, uint8_t * op1, vuint32m8_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u8mf2)))
-void vsoxseg3ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u8mf2_m)))
-void vsoxseg3ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u8mf4)))
-void vsoxseg3ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u8mf4_m)))
-void vsoxseg3ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u8mf8)))
-void vsoxseg3ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u8mf8_m)))
-void vsoxseg3ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i8m1)))
-void vsoxseg4ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i8m1_m)))
-void vsoxseg4ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i8m2)))
-void vsoxseg4ei32(int8_t * op0, vuint32m8_t op1, vint8m2_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i8m2_m)))
-void vsoxseg4ei32(vbool4_t op0, int8_t * op1, vuint32m8_t op2, vint8m2_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i8mf2)))
-void vsoxseg4ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i8mf2_m)))
-void vsoxseg4ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i8mf4)))
-void vsoxseg4ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i8mf4_m)))
-void vsoxseg4ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i8mf8)))
-void vsoxseg4ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i8mf8_m)))
-void vsoxseg4ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u8m1)))
-void vsoxseg4ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u8m1_m)))
-void vsoxseg4ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u8m2)))
-void vsoxseg4ei32(uint8_t * op0, vuint32m8_t op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u8m2_m)))
-void vsoxseg4ei32(vbool4_t op0, uint8_t * op1, vuint32m8_t op2, vuint8m2_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u8mf2)))
-void vsoxseg4ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u8mf2_m)))
-void vsoxseg4ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u8mf4)))
-void vsoxseg4ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u8mf4_m)))
-void vsoxseg4ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u8mf8)))
-void vsoxseg4ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u8mf8_m)))
-void vsoxseg4ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i8m1)))
-void vsoxseg5ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i8m1_m)))
-void vsoxseg5ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i8mf2)))
-void vsoxseg5ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i8mf2_m)))
-void vsoxseg5ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i8mf4)))
-void vsoxseg5ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i8mf4_m)))
-void vsoxseg5ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i8mf8)))
-void vsoxseg5ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i8mf8_m)))
-void vsoxseg5ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u8m1)))
-void vsoxseg5ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u8m1_m)))
-void vsoxseg5ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u8mf2)))
-void vsoxseg5ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u8mf2_m)))
-void vsoxseg5ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u8mf4)))
-void vsoxseg5ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u8mf4_m)))
-void vsoxseg5ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u8mf8)))
-void vsoxseg5ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u8mf8_m)))
-void vsoxseg5ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i8m1)))
-void vsoxseg6ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i8m1_m)))
-void vsoxseg6ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i8mf2)))
-void vsoxseg6ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i8mf2_m)))
-void vsoxseg6ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i8mf4)))
-void vsoxseg6ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i8mf4_m)))
-void vsoxseg6ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i8mf8)))
-void vsoxseg6ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i8mf8_m)))
-void vsoxseg6ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u8m1)))
-void vsoxseg6ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u8m1_m)))
-void vsoxseg6ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u8mf2)))
-void vsoxseg6ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u8mf2_m)))
-void vsoxseg6ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u8mf4)))
-void vsoxseg6ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u8mf4_m)))
-void vsoxseg6ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u8mf8)))
-void vsoxseg6ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u8mf8_m)))
-void vsoxseg6ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i8m1)))
-void vsoxseg7ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i8m1_m)))
-void vsoxseg7ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i8mf2)))
-void vsoxseg7ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i8mf2_m)))
-void vsoxseg7ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i8mf4)))
-void vsoxseg7ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i8mf4_m)))
-void vsoxseg7ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i8mf8)))
-void vsoxseg7ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i8mf8_m)))
-void vsoxseg7ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u8m1)))
-void vsoxseg7ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u8m1_m)))
-void vsoxseg7ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u8mf2)))
-void vsoxseg7ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u8mf2_m)))
-void vsoxseg7ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u8mf4)))
-void vsoxseg7ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u8mf4_m)))
-void vsoxseg7ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u8mf8)))
-void vsoxseg7ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u8mf8_m)))
-void vsoxseg7ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i8m1)))
-void vsoxseg8ei32(int8_t * op0, vuint32m4_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i8m1_m)))
-void vsoxseg8ei32(vbool8_t op0, int8_t * op1, vuint32m4_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i8mf2)))
-void vsoxseg8ei32(int8_t * op0, vuint32m2_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i8mf2_m)))
-void vsoxseg8ei32(vbool16_t op0, int8_t * op1, vuint32m2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i8mf4)))
-void vsoxseg8ei32(int8_t * op0, vuint32m1_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i8mf4_m)))
-void vsoxseg8ei32(vbool32_t op0, int8_t * op1, vuint32m1_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i8mf8)))
-void vsoxseg8ei32(int8_t * op0, vuint32mf2_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i8mf8_m)))
-void vsoxseg8ei32(vbool64_t op0, int8_t * op1, vuint32mf2_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u8m1)))
-void vsoxseg8ei32(uint8_t * op0, vuint32m4_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u8m1_m)))
-void vsoxseg8ei32(vbool8_t op0, uint8_t * op1, vuint32m4_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u8mf2)))
-void vsoxseg8ei32(uint8_t * op0, vuint32m2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u8mf2_m)))
-void vsoxseg8ei32(vbool16_t op0, uint8_t * op1, vuint32m2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u8mf4)))
-void vsoxseg8ei32(uint8_t * op0, vuint32m1_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u8mf4_m)))
-void vsoxseg8ei32(vbool32_t op0, uint8_t * op1, vuint32m1_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u8mf8)))
-void vsoxseg8ei32(uint8_t * op0, vuint32mf2_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u8mf8_m)))
-void vsoxseg8ei32(vbool64_t op0, uint8_t * op1, vuint32mf2_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i8m1)))
-void vsoxseg2ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i8m1_m)))
-void vsoxseg2ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i8mf2)))
-void vsoxseg2ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i8mf2_m)))
-void vsoxseg2ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i8mf4)))
-void vsoxseg2ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i8mf4_m)))
-void vsoxseg2ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i8mf8)))
-void vsoxseg2ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i8mf8_m)))
-void vsoxseg2ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u8m1)))
-void vsoxseg2ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u8m1_m)))
-void vsoxseg2ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u8mf2)))
-void vsoxseg2ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u8mf2_m)))
-void vsoxseg2ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u8mf4)))
-void vsoxseg2ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u8mf4_m)))
-void vsoxseg2ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u8mf8)))
-void vsoxseg2ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u8mf8_m)))
-void vsoxseg2ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i8m1)))
-void vsoxseg3ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i8m1_m)))
-void vsoxseg3ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i8mf2)))
-void vsoxseg3ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i8mf2_m)))
-void vsoxseg3ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i8mf4)))
-void vsoxseg3ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i8mf4_m)))
-void vsoxseg3ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i8mf8)))
-void vsoxseg3ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i8mf8_m)))
-void vsoxseg3ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u8m1)))
-void vsoxseg3ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u8m1_m)))
-void vsoxseg3ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u8mf2)))
-void vsoxseg3ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u8mf2_m)))
-void vsoxseg3ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u8mf4)))
-void vsoxseg3ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u8mf4_m)))
-void vsoxseg3ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u8mf8)))
-void vsoxseg3ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u8mf8_m)))
-void vsoxseg3ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i8m1)))
-void vsoxseg4ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i8m1_m)))
-void vsoxseg4ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i8mf2)))
-void vsoxseg4ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i8mf2_m)))
-void vsoxseg4ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i8mf4)))
-void vsoxseg4ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i8mf4_m)))
-void vsoxseg4ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i8mf8)))
-void vsoxseg4ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i8mf8_m)))
-void vsoxseg4ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u8m1)))
-void vsoxseg4ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u8m1_m)))
-void vsoxseg4ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u8mf2)))
-void vsoxseg4ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u8mf2_m)))
-void vsoxseg4ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u8mf4)))
-void vsoxseg4ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u8mf4_m)))
-void vsoxseg4ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u8mf8)))
-void vsoxseg4ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u8mf8_m)))
-void vsoxseg4ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i8m1)))
-void vsoxseg5ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i8m1_m)))
-void vsoxseg5ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i8mf2)))
-void vsoxseg5ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i8mf2_m)))
-void vsoxseg5ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i8mf4)))
-void vsoxseg5ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i8mf4_m)))
-void vsoxseg5ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i8mf8)))
-void vsoxseg5ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i8mf8_m)))
-void vsoxseg5ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u8m1)))
-void vsoxseg5ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u8m1_m)))
-void vsoxseg5ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u8mf2)))
-void vsoxseg5ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u8mf2_m)))
-void vsoxseg5ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u8mf4)))
-void vsoxseg5ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u8mf4_m)))
-void vsoxseg5ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u8mf8)))
-void vsoxseg5ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u8mf8_m)))
-void vsoxseg5ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i8m1)))
-void vsoxseg6ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i8m1_m)))
-void vsoxseg6ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i8mf2)))
-void vsoxseg6ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i8mf2_m)))
-void vsoxseg6ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i8mf4)))
-void vsoxseg6ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i8mf4_m)))
-void vsoxseg6ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i8mf8)))
-void vsoxseg6ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i8mf8_m)))
-void vsoxseg6ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u8m1)))
-void vsoxseg6ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u8m1_m)))
-void vsoxseg6ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u8mf2)))
-void vsoxseg6ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u8mf2_m)))
-void vsoxseg6ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u8mf4)))
-void vsoxseg6ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u8mf4_m)))
-void vsoxseg6ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u8mf8)))
-void vsoxseg6ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u8mf8_m)))
-void vsoxseg6ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i8m1)))
-void vsoxseg7ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i8m1_m)))
-void vsoxseg7ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i8mf2)))
-void vsoxseg7ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i8mf2_m)))
-void vsoxseg7ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i8mf4)))
-void vsoxseg7ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i8mf4_m)))
-void vsoxseg7ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i8mf8)))
-void vsoxseg7ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i8mf8_m)))
-void vsoxseg7ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u8m1)))
-void vsoxseg7ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u8m1_m)))
-void vsoxseg7ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u8mf2)))
-void vsoxseg7ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u8mf2_m)))
-void vsoxseg7ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u8mf4)))
-void vsoxseg7ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u8mf4_m)))
-void vsoxseg7ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u8mf8)))
-void vsoxseg7ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u8mf8_m)))
-void vsoxseg7ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i8m1)))
-void vsoxseg8ei64(int8_t * op0, vuint64m8_t op1, vint8m1_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i8m1_m)))
-void vsoxseg8ei64(vbool8_t op0, int8_t * op1, vuint64m8_t op2, vint8m1_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i8mf2)))
-void vsoxseg8ei64(int8_t * op0, vuint64m4_t op1, vint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i8mf2_m)))
-void vsoxseg8ei64(vbool16_t op0, int8_t * op1, vuint64m4_t op2, vint8mf2_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i8mf4)))
-void vsoxseg8ei64(int8_t * op0, vuint64m2_t op1, vint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i8mf4_m)))
-void vsoxseg8ei64(vbool32_t op0, int8_t * op1, vuint64m2_t op2, vint8mf4_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i8mf8)))
-void vsoxseg8ei64(int8_t * op0, vuint64m1_t op1, vint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i8mf8_m)))
-void vsoxseg8ei64(vbool64_t op0, int8_t * op1, vuint64m1_t op2, vint8mf8_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u8m1)))
-void vsoxseg8ei64(uint8_t * op0, vuint64m8_t op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u8m1_m)))
-void vsoxseg8ei64(vbool8_t op0, uint8_t * op1, vuint64m8_t op2, vuint8m1_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u8mf2)))
-void vsoxseg8ei64(uint8_t * op0, vuint64m4_t op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u8mf2_m)))
-void vsoxseg8ei64(vbool16_t op0, uint8_t * op1, vuint64m4_t op2, vuint8mf2_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u8mf4)))
-void vsoxseg8ei64(uint8_t * op0, vuint64m2_t op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u8mf4_m)))
-void vsoxseg8ei64(vbool32_t op0, uint8_t * op1, vuint64m2_t op2, vuint8mf4_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u8mf8)))
-void vsoxseg8ei64(uint8_t * op0, vuint64m1_t op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u8mf8_m)))
-void vsoxseg8ei64(vbool64_t op0, uint8_t * op1, vuint64m1_t op2, vuint8mf8_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i16m1)))
-void vsoxseg2ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i16m1_m)))
-void vsoxseg2ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i16m2)))
-void vsoxseg2ei8(int16_t * op0, vuint8m1_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i16m2_m)))
-void vsoxseg2ei8(vbool8_t op0, int16_t * op1, vuint8m1_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i16m4)))
-void vsoxseg2ei8(int16_t * op0, vuint8m2_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i16m4_m)))
-void vsoxseg2ei8(vbool4_t op0, int16_t * op1, vuint8m2_t op2, vint16m4_t op3, vint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i16mf2)))
-void vsoxseg2ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i16mf2_m)))
-void vsoxseg2ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i16mf4)))
-void vsoxseg2ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i16mf4_m)))
-void vsoxseg2ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u16m1)))
-void vsoxseg2ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u16m1_m)))
-void vsoxseg2ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u16m2)))
-void vsoxseg2ei8(uint16_t * op0, vuint8m1_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u16m2_m)))
-void vsoxseg2ei8(vbool8_t op0, uint16_t * op1, vuint8m1_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u16m4)))
-void vsoxseg2ei8(uint16_t * op0, vuint8m2_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u16m4_m)))
-void vsoxseg2ei8(vbool4_t op0, uint16_t * op1, vuint8m2_t op2, vuint16m4_t op3, vuint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u16mf2)))
-void vsoxseg2ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u16mf2_m)))
-void vsoxseg2ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u16mf4)))
-void vsoxseg2ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u16mf4_m)))
-void vsoxseg2ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i16m1)))
-void vsoxseg3ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i16m1_m)))
-void vsoxseg3ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i16m2)))
-void vsoxseg3ei8(int16_t * op0, vuint8m1_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i16m2_m)))
-void vsoxseg3ei8(vbool8_t op0, int16_t * op1, vuint8m1_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i16mf2)))
-void vsoxseg3ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i16mf2_m)))
-void vsoxseg3ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i16mf4)))
-void vsoxseg3ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i16mf4_m)))
-void vsoxseg3ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u16m1)))
-void vsoxseg3ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u16m1_m)))
-void vsoxseg3ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u16m2)))
-void vsoxseg3ei8(uint16_t * op0, vuint8m1_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u16m2_m)))
-void vsoxseg3ei8(vbool8_t op0, uint16_t * op1, vuint8m1_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u16mf2)))
-void vsoxseg3ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u16mf2_m)))
-void vsoxseg3ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u16mf4)))
-void vsoxseg3ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u16mf4_m)))
-void vsoxseg3ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i16m1)))
-void vsoxseg4ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i16m1_m)))
-void vsoxseg4ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i16m2)))
-void vsoxseg4ei8(int16_t * op0, vuint8m1_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i16m2_m)))
-void vsoxseg4ei8(vbool8_t op0, int16_t * op1, vuint8m1_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i16mf2)))
-void vsoxseg4ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i16mf2_m)))
-void vsoxseg4ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i16mf4)))
-void vsoxseg4ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i16mf4_m)))
-void vsoxseg4ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u16m1)))
-void vsoxseg4ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u16m1_m)))
-void vsoxseg4ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u16m2)))
-void vsoxseg4ei8(uint16_t * op0, vuint8m1_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u16m2_m)))
-void vsoxseg4ei8(vbool8_t op0, uint16_t * op1, vuint8m1_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u16mf2)))
-void vsoxseg4ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u16mf2_m)))
-void vsoxseg4ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u16mf4)))
-void vsoxseg4ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u16mf4_m)))
-void vsoxseg4ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i16m1)))
-void vsoxseg5ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i16m1_m)))
-void vsoxseg5ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i16mf2)))
-void vsoxseg5ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i16mf2_m)))
-void vsoxseg5ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i16mf4)))
-void vsoxseg5ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i16mf4_m)))
-void vsoxseg5ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u16m1)))
-void vsoxseg5ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u16m1_m)))
-void vsoxseg5ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u16mf2)))
-void vsoxseg5ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u16mf2_m)))
-void vsoxseg5ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u16mf4)))
-void vsoxseg5ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u16mf4_m)))
-void vsoxseg5ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i16m1)))
-void vsoxseg6ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i16m1_m)))
-void vsoxseg6ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i16mf2)))
-void vsoxseg6ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i16mf2_m)))
-void vsoxseg6ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i16mf4)))
-void vsoxseg6ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i16mf4_m)))
-void vsoxseg6ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u16m1)))
-void vsoxseg6ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u16m1_m)))
-void vsoxseg6ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u16mf2)))
-void vsoxseg6ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u16mf2_m)))
-void vsoxseg6ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u16mf4)))
-void vsoxseg6ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u16mf4_m)))
-void vsoxseg6ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i16m1)))
-void vsoxseg7ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i16m1_m)))
-void vsoxseg7ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i16mf2)))
-void vsoxseg7ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i16mf2_m)))
-void vsoxseg7ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i16mf4)))
-void vsoxseg7ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i16mf4_m)))
-void vsoxseg7ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u16m1)))
-void vsoxseg7ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u16m1_m)))
-void vsoxseg7ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u16mf2)))
-void vsoxseg7ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u16mf2_m)))
-void vsoxseg7ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u16mf4)))
-void vsoxseg7ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u16mf4_m)))
-void vsoxseg7ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i16m1)))
-void vsoxseg8ei8(int16_t * op0, vuint8mf2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i16m1_m)))
-void vsoxseg8ei8(vbool16_t op0, int16_t * op1, vuint8mf2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i16mf2)))
-void vsoxseg8ei8(int16_t * op0, vuint8mf4_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i16mf2_m)))
-void vsoxseg8ei8(vbool32_t op0, int16_t * op1, vuint8mf4_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i16mf4)))
-void vsoxseg8ei8(int16_t * op0, vuint8mf8_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i16mf4_m)))
-void vsoxseg8ei8(vbool64_t op0, int16_t * op1, vuint8mf8_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u16m1)))
-void vsoxseg8ei8(uint16_t * op0, vuint8mf2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u16m1_m)))
-void vsoxseg8ei8(vbool16_t op0, uint16_t * op1, vuint8mf2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u16mf2)))
-void vsoxseg8ei8(uint16_t * op0, vuint8mf4_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u16mf2_m)))
-void vsoxseg8ei8(vbool32_t op0, uint16_t * op1, vuint8mf4_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u16mf4)))
-void vsoxseg8ei8(uint16_t * op0, vuint8mf8_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u16mf4_m)))
-void vsoxseg8ei8(vbool64_t op0, uint16_t * op1, vuint8mf8_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i16m1)))
-void vsoxseg2ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i16m1_m)))
-void vsoxseg2ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i16m2)))
-void vsoxseg2ei16(int16_t * op0, vuint16m2_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i16m2_m)))
-void vsoxseg2ei16(vbool8_t op0, int16_t * op1, vuint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i16m4)))
-void vsoxseg2ei16(int16_t * op0, vuint16m4_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i16m4_m)))
-void vsoxseg2ei16(vbool4_t op0, int16_t * op1, vuint16m4_t op2, vint16m4_t op3, vint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i16mf2)))
-void vsoxseg2ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i16mf2_m)))
-void vsoxseg2ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i16mf4)))
-void vsoxseg2ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i16mf4_m)))
-void vsoxseg2ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u16m1)))
-void vsoxseg2ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u16m1_m)))
-void vsoxseg2ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u16m2)))
-void vsoxseg2ei16(uint16_t * op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u16m2_m)))
-void vsoxseg2ei16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u16m4)))
-void vsoxseg2ei16(uint16_t * op0, vuint16m4_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u16m4_m)))
-void vsoxseg2ei16(vbool4_t op0, uint16_t * op1, vuint16m4_t op2, vuint16m4_t op3, vuint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u16mf2)))
-void vsoxseg2ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u16mf2_m)))
-void vsoxseg2ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u16mf4)))
-void vsoxseg2ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u16mf4_m)))
-void vsoxseg2ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i16m1)))
-void vsoxseg3ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i16m1_m)))
-void vsoxseg3ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i16m2)))
-void vsoxseg3ei16(int16_t * op0, vuint16m2_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i16m2_m)))
-void vsoxseg3ei16(vbool8_t op0, int16_t * op1, vuint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i16mf2)))
-void vsoxseg3ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i16mf2_m)))
-void vsoxseg3ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i16mf4)))
-void vsoxseg3ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i16mf4_m)))
-void vsoxseg3ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u16m1)))
-void vsoxseg3ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u16m1_m)))
-void vsoxseg3ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u16m2)))
-void vsoxseg3ei16(uint16_t * op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u16m2_m)))
-void vsoxseg3ei16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u16mf2)))
-void vsoxseg3ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u16mf2_m)))
-void vsoxseg3ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u16mf4)))
-void vsoxseg3ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u16mf4_m)))
-void vsoxseg3ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i16m1)))
-void vsoxseg4ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i16m1_m)))
-void vsoxseg4ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i16m2)))
-void vsoxseg4ei16(int16_t * op0, vuint16m2_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i16m2_m)))
-void vsoxseg4ei16(vbool8_t op0, int16_t * op1, vuint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i16mf2)))
-void vsoxseg4ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i16mf2_m)))
-void vsoxseg4ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i16mf4)))
-void vsoxseg4ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i16mf4_m)))
-void vsoxseg4ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u16m1)))
-void vsoxseg4ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u16m1_m)))
-void vsoxseg4ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u16m2)))
-void vsoxseg4ei16(uint16_t * op0, vuint16m2_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u16m2_m)))
-void vsoxseg4ei16(vbool8_t op0, uint16_t * op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u16mf2)))
-void vsoxseg4ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u16mf2_m)))
-void vsoxseg4ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u16mf4)))
-void vsoxseg4ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u16mf4_m)))
-void vsoxseg4ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i16m1)))
-void vsoxseg5ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i16m1_m)))
-void vsoxseg5ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i16mf2)))
-void vsoxseg5ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i16mf2_m)))
-void vsoxseg5ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i16mf4)))
-void vsoxseg5ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i16mf4_m)))
-void vsoxseg5ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u16m1)))
-void vsoxseg5ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u16m1_m)))
-void vsoxseg5ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u16mf2)))
-void vsoxseg5ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u16mf2_m)))
-void vsoxseg5ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u16mf4)))
-void vsoxseg5ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u16mf4_m)))
-void vsoxseg5ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i16m1)))
-void vsoxseg6ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i16m1_m)))
-void vsoxseg6ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i16mf2)))
-void vsoxseg6ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i16mf2_m)))
-void vsoxseg6ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i16mf4)))
-void vsoxseg6ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i16mf4_m)))
-void vsoxseg6ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u16m1)))
-void vsoxseg6ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u16m1_m)))
-void vsoxseg6ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u16mf2)))
-void vsoxseg6ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u16mf2_m)))
-void vsoxseg6ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u16mf4)))
-void vsoxseg6ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u16mf4_m)))
-void vsoxseg6ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i16m1)))
-void vsoxseg7ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i16m1_m)))
-void vsoxseg7ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i16mf2)))
-void vsoxseg7ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i16mf2_m)))
-void vsoxseg7ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i16mf4)))
-void vsoxseg7ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i16mf4_m)))
-void vsoxseg7ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u16m1)))
-void vsoxseg7ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u16m1_m)))
-void vsoxseg7ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u16mf2)))
-void vsoxseg7ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u16mf2_m)))
-void vsoxseg7ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u16mf4)))
-void vsoxseg7ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u16mf4_m)))
-void vsoxseg7ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i16m1)))
-void vsoxseg8ei16(int16_t * op0, vuint16m1_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i16m1_m)))
-void vsoxseg8ei16(vbool16_t op0, int16_t * op1, vuint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i16mf2)))
-void vsoxseg8ei16(int16_t * op0, vuint16mf2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i16mf2_m)))
-void vsoxseg8ei16(vbool32_t op0, int16_t * op1, vuint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i16mf4)))
-void vsoxseg8ei16(int16_t * op0, vuint16mf4_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i16mf4_m)))
-void vsoxseg8ei16(vbool64_t op0, int16_t * op1, vuint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u16m1)))
-void vsoxseg8ei16(uint16_t * op0, vuint16m1_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u16m1_m)))
-void vsoxseg8ei16(vbool16_t op0, uint16_t * op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u16mf2)))
-void vsoxseg8ei16(uint16_t * op0, vuint16mf2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u16mf2_m)))
-void vsoxseg8ei16(vbool32_t op0, uint16_t * op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u16mf4)))
-void vsoxseg8ei16(uint16_t * op0, vuint16mf4_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u16mf4_m)))
-void vsoxseg8ei16(vbool64_t op0, uint16_t * op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i16m1)))
-void vsoxseg2ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i16m1_m)))
-void vsoxseg2ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i16m2)))
-void vsoxseg2ei32(int16_t * op0, vuint32m4_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i16m2_m)))
-void vsoxseg2ei32(vbool8_t op0, int16_t * op1, vuint32m4_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i16m4)))
-void vsoxseg2ei32(int16_t * op0, vuint32m8_t op1, vint16m4_t op2, vint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i16m4_m)))
-void vsoxseg2ei32(vbool4_t op0, int16_t * op1, vuint32m8_t op2, vint16m4_t op3, vint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i16mf2)))
-void vsoxseg2ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i16mf2_m)))
-void vsoxseg2ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i16mf4)))
-void vsoxseg2ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i16mf4_m)))
-void vsoxseg2ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u16m1)))
-void vsoxseg2ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u16m1_m)))
-void vsoxseg2ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u16m2)))
-void vsoxseg2ei32(uint16_t * op0, vuint32m4_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u16m2_m)))
-void vsoxseg2ei32(vbool8_t op0, uint16_t * op1, vuint32m4_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u16m4)))
-void vsoxseg2ei32(uint16_t * op0, vuint32m8_t op1, vuint16m4_t op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u16m4_m)))
-void vsoxseg2ei32(vbool4_t op0, uint16_t * op1, vuint32m8_t op2, vuint16m4_t op3, vuint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u16mf2)))
-void vsoxseg2ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u16mf2_m)))
-void vsoxseg2ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u16mf4)))
-void vsoxseg2ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u16mf4_m)))
-void vsoxseg2ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i16m1)))
-void vsoxseg3ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i16m1_m)))
-void vsoxseg3ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i16m2)))
-void vsoxseg3ei32(int16_t * op0, vuint32m4_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i16m2_m)))
-void vsoxseg3ei32(vbool8_t op0, int16_t * op1, vuint32m4_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i16mf2)))
-void vsoxseg3ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i16mf2_m)))
-void vsoxseg3ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i16mf4)))
-void vsoxseg3ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i16mf4_m)))
-void vsoxseg3ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u16m1)))
-void vsoxseg3ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u16m1_m)))
-void vsoxseg3ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u16m2)))
-void vsoxseg3ei32(uint16_t * op0, vuint32m4_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u16m2_m)))
-void vsoxseg3ei32(vbool8_t op0, uint16_t * op1, vuint32m4_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u16mf2)))
-void vsoxseg3ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u16mf2_m)))
-void vsoxseg3ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u16mf4)))
-void vsoxseg3ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u16mf4_m)))
-void vsoxseg3ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i16m1)))
-void vsoxseg4ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i16m1_m)))
-void vsoxseg4ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i16m2)))
-void vsoxseg4ei32(int16_t * op0, vuint32m4_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i16m2_m)))
-void vsoxseg4ei32(vbool8_t op0, int16_t * op1, vuint32m4_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i16mf2)))
-void vsoxseg4ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i16mf2_m)))
-void vsoxseg4ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i16mf4)))
-void vsoxseg4ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i16mf4_m)))
-void vsoxseg4ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u16m1)))
-void vsoxseg4ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u16m1_m)))
-void vsoxseg4ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u16m2)))
-void vsoxseg4ei32(uint16_t * op0, vuint32m4_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u16m2_m)))
-void vsoxseg4ei32(vbool8_t op0, uint16_t * op1, vuint32m4_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u16mf2)))
-void vsoxseg4ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u16mf2_m)))
-void vsoxseg4ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u16mf4)))
-void vsoxseg4ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u16mf4_m)))
-void vsoxseg4ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i16m1)))
-void vsoxseg5ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i16m1_m)))
-void vsoxseg5ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i16mf2)))
-void vsoxseg5ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i16mf2_m)))
-void vsoxseg5ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i16mf4)))
-void vsoxseg5ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i16mf4_m)))
-void vsoxseg5ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u16m1)))
-void vsoxseg5ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u16m1_m)))
-void vsoxseg5ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u16mf2)))
-void vsoxseg5ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u16mf2_m)))
-void vsoxseg5ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u16mf4)))
-void vsoxseg5ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u16mf4_m)))
-void vsoxseg5ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i16m1)))
-void vsoxseg6ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i16m1_m)))
-void vsoxseg6ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i16mf2)))
-void vsoxseg6ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i16mf2_m)))
-void vsoxseg6ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i16mf4)))
-void vsoxseg6ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i16mf4_m)))
-void vsoxseg6ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u16m1)))
-void vsoxseg6ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u16m1_m)))
-void vsoxseg6ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u16mf2)))
-void vsoxseg6ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u16mf2_m)))
-void vsoxseg6ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u16mf4)))
-void vsoxseg6ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u16mf4_m)))
-void vsoxseg6ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i16m1)))
-void vsoxseg7ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i16m1_m)))
-void vsoxseg7ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i16mf2)))
-void vsoxseg7ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i16mf2_m)))
-void vsoxseg7ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i16mf4)))
-void vsoxseg7ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i16mf4_m)))
-void vsoxseg7ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u16m1)))
-void vsoxseg7ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u16m1_m)))
-void vsoxseg7ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u16mf2)))
-void vsoxseg7ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u16mf2_m)))
-void vsoxseg7ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u16mf4)))
-void vsoxseg7ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u16mf4_m)))
-void vsoxseg7ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i16m1)))
-void vsoxseg8ei32(int16_t * op0, vuint32m2_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i16m1_m)))
-void vsoxseg8ei32(vbool16_t op0, int16_t * op1, vuint32m2_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i16mf2)))
-void vsoxseg8ei32(int16_t * op0, vuint32m1_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i16mf2_m)))
-void vsoxseg8ei32(vbool32_t op0, int16_t * op1, vuint32m1_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i16mf4)))
-void vsoxseg8ei32(int16_t * op0, vuint32mf2_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i16mf4_m)))
-void vsoxseg8ei32(vbool64_t op0, int16_t * op1, vuint32mf2_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u16m1)))
-void vsoxseg8ei32(uint16_t * op0, vuint32m2_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u16m1_m)))
-void vsoxseg8ei32(vbool16_t op0, uint16_t * op1, vuint32m2_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u16mf2)))
-void vsoxseg8ei32(uint16_t * op0, vuint32m1_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u16mf2_m)))
-void vsoxseg8ei32(vbool32_t op0, uint16_t * op1, vuint32m1_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u16mf4)))
-void vsoxseg8ei32(uint16_t * op0, vuint32mf2_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u16mf4_m)))
-void vsoxseg8ei32(vbool64_t op0, uint16_t * op1, vuint32mf2_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i16m1)))
-void vsoxseg2ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i16m1_m)))
-void vsoxseg2ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i16m2)))
-void vsoxseg2ei64(int16_t * op0, vuint64m8_t op1, vint16m2_t op2, vint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i16m2_m)))
-void vsoxseg2ei64(vbool8_t op0, int16_t * op1, vuint64m8_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i16mf2)))
-void vsoxseg2ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i16mf2_m)))
-void vsoxseg2ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i16mf4)))
-void vsoxseg2ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i16mf4_m)))
-void vsoxseg2ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u16m1)))
-void vsoxseg2ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u16m1_m)))
-void vsoxseg2ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u16m2)))
-void vsoxseg2ei64(uint16_t * op0, vuint64m8_t op1, vuint16m2_t op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u16m2_m)))
-void vsoxseg2ei64(vbool8_t op0, uint16_t * op1, vuint64m8_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u16mf2)))
-void vsoxseg2ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u16mf2_m)))
-void vsoxseg2ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u16mf4)))
-void vsoxseg2ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u16mf4_m)))
-void vsoxseg2ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i16m1)))
-void vsoxseg3ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i16m1_m)))
-void vsoxseg3ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i16m2)))
-void vsoxseg3ei64(int16_t * op0, vuint64m8_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i16m2_m)))
-void vsoxseg3ei64(vbool8_t op0, int16_t * op1, vuint64m8_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i16mf2)))
-void vsoxseg3ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i16mf2_m)))
-void vsoxseg3ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i16mf4)))
-void vsoxseg3ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i16mf4_m)))
-void vsoxseg3ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u16m1)))
-void vsoxseg3ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u16m1_m)))
-void vsoxseg3ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u16m2)))
-void vsoxseg3ei64(uint16_t * op0, vuint64m8_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u16m2_m)))
-void vsoxseg3ei64(vbool8_t op0, uint16_t * op1, vuint64m8_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u16mf2)))
-void vsoxseg3ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u16mf2_m)))
-void vsoxseg3ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u16mf4)))
-void vsoxseg3ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u16mf4_m)))
-void vsoxseg3ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i16m1)))
-void vsoxseg4ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i16m1_m)))
-void vsoxseg4ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i16m2)))
-void vsoxseg4ei64(int16_t * op0, vuint64m8_t op1, vint16m2_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i16m2_m)))
-void vsoxseg4ei64(vbool8_t op0, int16_t * op1, vuint64m8_t op2, vint16m2_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i16mf2)))
-void vsoxseg4ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i16mf2_m)))
-void vsoxseg4ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i16mf4)))
-void vsoxseg4ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i16mf4_m)))
-void vsoxseg4ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u16m1)))
-void vsoxseg4ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u16m1_m)))
-void vsoxseg4ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u16m2)))
-void vsoxseg4ei64(uint16_t * op0, vuint64m8_t op1, vuint16m2_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u16m2_m)))
-void vsoxseg4ei64(vbool8_t op0, uint16_t * op1, vuint64m8_t op2, vuint16m2_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u16mf2)))
-void vsoxseg4ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u16mf2_m)))
-void vsoxseg4ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u16mf4)))
-void vsoxseg4ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u16mf4_m)))
-void vsoxseg4ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i16m1)))
-void vsoxseg5ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i16m1_m)))
-void vsoxseg5ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i16mf2)))
-void vsoxseg5ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i16mf2_m)))
-void vsoxseg5ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i16mf4)))
-void vsoxseg5ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i16mf4_m)))
-void vsoxseg5ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u16m1)))
-void vsoxseg5ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u16m1_m)))
-void vsoxseg5ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u16mf2)))
-void vsoxseg5ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u16mf2_m)))
-void vsoxseg5ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u16mf4)))
-void vsoxseg5ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u16mf4_m)))
-void vsoxseg5ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i16m1)))
-void vsoxseg6ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i16m1_m)))
-void vsoxseg6ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i16mf2)))
-void vsoxseg6ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i16mf2_m)))
-void vsoxseg6ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i16mf4)))
-void vsoxseg6ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i16mf4_m)))
-void vsoxseg6ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u16m1)))
-void vsoxseg6ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u16m1_m)))
-void vsoxseg6ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u16mf2)))
-void vsoxseg6ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u16mf2_m)))
-void vsoxseg6ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u16mf4)))
-void vsoxseg6ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u16mf4_m)))
-void vsoxseg6ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i16m1)))
-void vsoxseg7ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i16m1_m)))
-void vsoxseg7ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i16mf2)))
-void vsoxseg7ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i16mf2_m)))
-void vsoxseg7ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i16mf4)))
-void vsoxseg7ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i16mf4_m)))
-void vsoxseg7ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u16m1)))
-void vsoxseg7ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u16m1_m)))
-void vsoxseg7ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u16mf2)))
-void vsoxseg7ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u16mf2_m)))
-void vsoxseg7ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u16mf4)))
-void vsoxseg7ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u16mf4_m)))
-void vsoxseg7ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i16m1)))
-void vsoxseg8ei64(int16_t * op0, vuint64m4_t op1, vint16m1_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i16m1_m)))
-void vsoxseg8ei64(vbool16_t op0, int16_t * op1, vuint64m4_t op2, vint16m1_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i16mf2)))
-void vsoxseg8ei64(int16_t * op0, vuint64m2_t op1, vint16mf2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i16mf2_m)))
-void vsoxseg8ei64(vbool32_t op0, int16_t * op1, vuint64m2_t op2, vint16mf2_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i16mf4)))
-void vsoxseg8ei64(int16_t * op0, vuint64m1_t op1, vint16mf4_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i16mf4_m)))
-void vsoxseg8ei64(vbool64_t op0, int16_t * op1, vuint64m1_t op2, vint16mf4_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u16m1)))
-void vsoxseg8ei64(uint16_t * op0, vuint64m4_t op1, vuint16m1_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u16m1_m)))
-void vsoxseg8ei64(vbool16_t op0, uint16_t * op1, vuint64m4_t op2, vuint16m1_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u16mf2)))
-void vsoxseg8ei64(uint16_t * op0, vuint64m2_t op1, vuint16mf2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u16mf2_m)))
-void vsoxseg8ei64(vbool32_t op0, uint16_t * op1, vuint64m2_t op2, vuint16mf2_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u16mf4)))
-void vsoxseg8ei64(uint16_t * op0, vuint64m1_t op1, vuint16mf4_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u16mf4_m)))
-void vsoxseg8ei64(vbool64_t op0, uint16_t * op1, vuint64m1_t op2, vuint16mf4_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i32m1)))
-void vsoxseg2ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i32m1_m)))
-void vsoxseg2ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i32m2)))
-void vsoxseg2ei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i32m2_m)))
-void vsoxseg2ei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i32m4)))
-void vsoxseg2ei8(int32_t * op0, vuint8m1_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i32m4_m)))
-void vsoxseg2ei8(vbool8_t op0, int32_t * op1, vuint8m1_t op2, vint32m4_t op3, vint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i32mf2)))
-void vsoxseg2ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i32mf2_m)))
-void vsoxseg2ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u32m1)))
-void vsoxseg2ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u32m1_m)))
-void vsoxseg2ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u32m2)))
-void vsoxseg2ei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u32m2_m)))
-void vsoxseg2ei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u32m4)))
-void vsoxseg2ei8(uint32_t * op0, vuint8m1_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u32m4_m)))
-void vsoxseg2ei8(vbool8_t op0, uint32_t * op1, vuint8m1_t op2, vuint32m4_t op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u32mf2)))
-void vsoxseg2ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u32mf2_m)))
-void vsoxseg2ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i32m1)))
-void vsoxseg3ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i32m1_m)))
-void vsoxseg3ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i32m2)))
-void vsoxseg3ei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i32m2_m)))
-void vsoxseg3ei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i32mf2)))
-void vsoxseg3ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i32mf2_m)))
-void vsoxseg3ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u32m1)))
-void vsoxseg3ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u32m1_m)))
-void vsoxseg3ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u32m2)))
-void vsoxseg3ei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u32m2_m)))
-void vsoxseg3ei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u32mf2)))
-void vsoxseg3ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u32mf2_m)))
-void vsoxseg3ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i32m1)))
-void vsoxseg4ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i32m1_m)))
-void vsoxseg4ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i32m2)))
-void vsoxseg4ei8(int32_t * op0, vuint8mf2_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i32m2_m)))
-void vsoxseg4ei8(vbool16_t op0, int32_t * op1, vuint8mf2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i32mf2)))
-void vsoxseg4ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i32mf2_m)))
-void vsoxseg4ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u32m1)))
-void vsoxseg4ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u32m1_m)))
-void vsoxseg4ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u32m2)))
-void vsoxseg4ei8(uint32_t * op0, vuint8mf2_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u32m2_m)))
-void vsoxseg4ei8(vbool16_t op0, uint32_t * op1, vuint8mf2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u32mf2)))
-void vsoxseg4ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u32mf2_m)))
-void vsoxseg4ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i32m1)))
-void vsoxseg5ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i32m1_m)))
-void vsoxseg5ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i32mf2)))
-void vsoxseg5ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i32mf2_m)))
-void vsoxseg5ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u32m1)))
-void vsoxseg5ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u32m1_m)))
-void vsoxseg5ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u32mf2)))
-void vsoxseg5ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u32mf2_m)))
-void vsoxseg5ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i32m1)))
-void vsoxseg6ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i32m1_m)))
-void vsoxseg6ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i32mf2)))
-void vsoxseg6ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i32mf2_m)))
-void vsoxseg6ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u32m1)))
-void vsoxseg6ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u32m1_m)))
-void vsoxseg6ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u32mf2)))
-void vsoxseg6ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u32mf2_m)))
-void vsoxseg6ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i32m1)))
-void vsoxseg7ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i32m1_m)))
-void vsoxseg7ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i32mf2)))
-void vsoxseg7ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i32mf2_m)))
-void vsoxseg7ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u32m1)))
-void vsoxseg7ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u32m1_m)))
-void vsoxseg7ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u32mf2)))
-void vsoxseg7ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u32mf2_m)))
-void vsoxseg7ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i32m1)))
-void vsoxseg8ei8(int32_t * op0, vuint8mf4_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i32m1_m)))
-void vsoxseg8ei8(vbool32_t op0, int32_t * op1, vuint8mf4_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i32mf2)))
-void vsoxseg8ei8(int32_t * op0, vuint8mf8_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i32mf2_m)))
-void vsoxseg8ei8(vbool64_t op0, int32_t * op1, vuint8mf8_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u32m1)))
-void vsoxseg8ei8(uint32_t * op0, vuint8mf4_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u32m1_m)))
-void vsoxseg8ei8(vbool32_t op0, uint32_t * op1, vuint8mf4_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u32mf2)))
-void vsoxseg8ei8(uint32_t * op0, vuint8mf8_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u32mf2_m)))
-void vsoxseg8ei8(vbool64_t op0, uint32_t * op1, vuint8mf8_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i32m1)))
-void vsoxseg2ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i32m1_m)))
-void vsoxseg2ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i32m2)))
-void vsoxseg2ei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i32m2_m)))
-void vsoxseg2ei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i32m4)))
-void vsoxseg2ei16(int32_t * op0, vuint16m2_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i32m4_m)))
-void vsoxseg2ei16(vbool8_t op0, int32_t * op1, vuint16m2_t op2, vint32m4_t op3, vint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i32mf2)))
-void vsoxseg2ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i32mf2_m)))
-void vsoxseg2ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u32m1)))
-void vsoxseg2ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u32m1_m)))
-void vsoxseg2ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u32m2)))
-void vsoxseg2ei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u32m2_m)))
-void vsoxseg2ei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u32m4)))
-void vsoxseg2ei16(uint32_t * op0, vuint16m2_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u32m4_m)))
-void vsoxseg2ei16(vbool8_t op0, uint32_t * op1, vuint16m2_t op2, vuint32m4_t op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u32mf2)))
-void vsoxseg2ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u32mf2_m)))
-void vsoxseg2ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i32m1)))
-void vsoxseg3ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i32m1_m)))
-void vsoxseg3ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i32m2)))
-void vsoxseg3ei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i32m2_m)))
-void vsoxseg3ei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i32mf2)))
-void vsoxseg3ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i32mf2_m)))
-void vsoxseg3ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u32m1)))
-void vsoxseg3ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u32m1_m)))
-void vsoxseg3ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u32m2)))
-void vsoxseg3ei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u32m2_m)))
-void vsoxseg3ei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u32mf2)))
-void vsoxseg3ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u32mf2_m)))
-void vsoxseg3ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i32m1)))
-void vsoxseg4ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i32m1_m)))
-void vsoxseg4ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i32m2)))
-void vsoxseg4ei16(int32_t * op0, vuint16m1_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i32m2_m)))
-void vsoxseg4ei16(vbool16_t op0, int32_t * op1, vuint16m1_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i32mf2)))
-void vsoxseg4ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i32mf2_m)))
-void vsoxseg4ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u32m1)))
-void vsoxseg4ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u32m1_m)))
-void vsoxseg4ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u32m2)))
-void vsoxseg4ei16(uint32_t * op0, vuint16m1_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u32m2_m)))
-void vsoxseg4ei16(vbool16_t op0, uint32_t * op1, vuint16m1_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u32mf2)))
-void vsoxseg4ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u32mf2_m)))
-void vsoxseg4ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i32m1)))
-void vsoxseg5ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i32m1_m)))
-void vsoxseg5ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i32mf2)))
-void vsoxseg5ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i32mf2_m)))
-void vsoxseg5ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u32m1)))
-void vsoxseg5ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u32m1_m)))
-void vsoxseg5ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u32mf2)))
-void vsoxseg5ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u32mf2_m)))
-void vsoxseg5ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i32m1)))
-void vsoxseg6ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i32m1_m)))
-void vsoxseg6ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i32mf2)))
-void vsoxseg6ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i32mf2_m)))
-void vsoxseg6ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u32m1)))
-void vsoxseg6ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u32m1_m)))
-void vsoxseg6ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u32mf2)))
-void vsoxseg6ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u32mf2_m)))
-void vsoxseg6ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i32m1)))
-void vsoxseg7ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i32m1_m)))
-void vsoxseg7ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i32mf2)))
-void vsoxseg7ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i32mf2_m)))
-void vsoxseg7ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u32m1)))
-void vsoxseg7ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u32m1_m)))
-void vsoxseg7ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u32mf2)))
-void vsoxseg7ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u32mf2_m)))
-void vsoxseg7ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i32m1)))
-void vsoxseg8ei16(int32_t * op0, vuint16mf2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i32m1_m)))
-void vsoxseg8ei16(vbool32_t op0, int32_t * op1, vuint16mf2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i32mf2)))
-void vsoxseg8ei16(int32_t * op0, vuint16mf4_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i32mf2_m)))
-void vsoxseg8ei16(vbool64_t op0, int32_t * op1, vuint16mf4_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u32m1)))
-void vsoxseg8ei16(uint32_t * op0, vuint16mf2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u32m1_m)))
-void vsoxseg8ei16(vbool32_t op0, uint32_t * op1, vuint16mf2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u32mf2)))
-void vsoxseg8ei16(uint32_t * op0, vuint16mf4_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u32mf2_m)))
-void vsoxseg8ei16(vbool64_t op0, uint32_t * op1, vuint16mf4_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i32m1)))
-void vsoxseg2ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i32m1_m)))
-void vsoxseg2ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i32m2)))
-void vsoxseg2ei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i32m2_m)))
-void vsoxseg2ei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i32m4)))
-void vsoxseg2ei32(int32_t * op0, vuint32m4_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i32m4_m)))
-void vsoxseg2ei32(vbool8_t op0, int32_t * op1, vuint32m4_t op2, vint32m4_t op3, vint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i32mf2)))
-void vsoxseg2ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i32mf2_m)))
-void vsoxseg2ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u32m1)))
-void vsoxseg2ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u32m1_m)))
-void vsoxseg2ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u32m2)))
-void vsoxseg2ei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u32m2_m)))
-void vsoxseg2ei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u32m4)))
-void vsoxseg2ei32(uint32_t * op0, vuint32m4_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u32m4_m)))
-void vsoxseg2ei32(vbool8_t op0, uint32_t * op1, vuint32m4_t op2, vuint32m4_t op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u32mf2)))
-void vsoxseg2ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u32mf2_m)))
-void vsoxseg2ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i32m1)))
-void vsoxseg3ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i32m1_m)))
-void vsoxseg3ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i32m2)))
-void vsoxseg3ei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i32m2_m)))
-void vsoxseg3ei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i32mf2)))
-void vsoxseg3ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i32mf2_m)))
-void vsoxseg3ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u32m1)))
-void vsoxseg3ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u32m1_m)))
-void vsoxseg3ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u32m2)))
-void vsoxseg3ei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u32m2_m)))
-void vsoxseg3ei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u32mf2)))
-void vsoxseg3ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u32mf2_m)))
-void vsoxseg3ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i32m1)))
-void vsoxseg4ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i32m1_m)))
-void vsoxseg4ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i32m2)))
-void vsoxseg4ei32(int32_t * op0, vuint32m2_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i32m2_m)))
-void vsoxseg4ei32(vbool16_t op0, int32_t * op1, vuint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i32mf2)))
-void vsoxseg4ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i32mf2_m)))
-void vsoxseg4ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u32m1)))
-void vsoxseg4ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u32m1_m)))
-void vsoxseg4ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u32m2)))
-void vsoxseg4ei32(uint32_t * op0, vuint32m2_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u32m2_m)))
-void vsoxseg4ei32(vbool16_t op0, uint32_t * op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u32mf2)))
-void vsoxseg4ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u32mf2_m)))
-void vsoxseg4ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i32m1)))
-void vsoxseg5ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i32m1_m)))
-void vsoxseg5ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i32mf2)))
-void vsoxseg5ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i32mf2_m)))
-void vsoxseg5ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u32m1)))
-void vsoxseg5ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u32m1_m)))
-void vsoxseg5ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u32mf2)))
-void vsoxseg5ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u32mf2_m)))
-void vsoxseg5ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i32m1)))
-void vsoxseg6ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i32m1_m)))
-void vsoxseg6ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i32mf2)))
-void vsoxseg6ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i32mf2_m)))
-void vsoxseg6ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u32m1)))
-void vsoxseg6ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u32m1_m)))
-void vsoxseg6ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u32mf2)))
-void vsoxseg6ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u32mf2_m)))
-void vsoxseg6ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i32m1)))
-void vsoxseg7ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i32m1_m)))
-void vsoxseg7ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i32mf2)))
-void vsoxseg7ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i32mf2_m)))
-void vsoxseg7ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u32m1)))
-void vsoxseg7ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u32m1_m)))
-void vsoxseg7ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u32mf2)))
-void vsoxseg7ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u32mf2_m)))
-void vsoxseg7ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i32m1)))
-void vsoxseg8ei32(int32_t * op0, vuint32m1_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i32m1_m)))
-void vsoxseg8ei32(vbool32_t op0, int32_t * op1, vuint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i32mf2)))
-void vsoxseg8ei32(int32_t * op0, vuint32mf2_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i32mf2_m)))
-void vsoxseg8ei32(vbool64_t op0, int32_t * op1, vuint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u32m1)))
-void vsoxseg8ei32(uint32_t * op0, vuint32m1_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u32m1_m)))
-void vsoxseg8ei32(vbool32_t op0, uint32_t * op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u32mf2)))
-void vsoxseg8ei32(uint32_t * op0, vuint32mf2_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u32mf2_m)))
-void vsoxseg8ei32(vbool64_t op0, uint32_t * op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i32m1)))
-void vsoxseg2ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i32m1_m)))
-void vsoxseg2ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i32m2)))
-void vsoxseg2ei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, vint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i32m2_m)))
-void vsoxseg2ei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i32m4)))
-void vsoxseg2ei64(int32_t * op0, vuint64m8_t op1, vint32m4_t op2, vint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i32m4_m)))
-void vsoxseg2ei64(vbool8_t op0, int32_t * op1, vuint64m8_t op2, vint32m4_t op3, vint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i32mf2)))
-void vsoxseg2ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i32mf2_m)))
-void vsoxseg2ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u32m1)))
-void vsoxseg2ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u32m1_m)))
-void vsoxseg2ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u32m2)))
-void vsoxseg2ei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u32m2_m)))
-void vsoxseg2ei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u32m4)))
-void vsoxseg2ei64(uint32_t * op0, vuint64m8_t op1, vuint32m4_t op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u32m4_m)))
-void vsoxseg2ei64(vbool8_t op0, uint32_t * op1, vuint64m8_t op2, vuint32m4_t op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u32mf2)))
-void vsoxseg2ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u32mf2_m)))
-void vsoxseg2ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i32m1)))
-void vsoxseg3ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i32m1_m)))
-void vsoxseg3ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i32m2)))
-void vsoxseg3ei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i32m2_m)))
-void vsoxseg3ei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i32mf2)))
-void vsoxseg3ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i32mf2_m)))
-void vsoxseg3ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u32m1)))
-void vsoxseg3ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u32m1_m)))
-void vsoxseg3ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u32m2)))
-void vsoxseg3ei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u32m2_m)))
-void vsoxseg3ei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u32mf2)))
-void vsoxseg3ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u32mf2_m)))
-void vsoxseg3ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i32m1)))
-void vsoxseg4ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i32m1_m)))
-void vsoxseg4ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i32m2)))
-void vsoxseg4ei64(int32_t * op0, vuint64m4_t op1, vint32m2_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i32m2_m)))
-void vsoxseg4ei64(vbool16_t op0, int32_t * op1, vuint64m4_t op2, vint32m2_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i32mf2)))
-void vsoxseg4ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i32mf2_m)))
-void vsoxseg4ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u32m1)))
-void vsoxseg4ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u32m1_m)))
-void vsoxseg4ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u32m2)))
-void vsoxseg4ei64(uint32_t * op0, vuint64m4_t op1, vuint32m2_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u32m2_m)))
-void vsoxseg4ei64(vbool16_t op0, uint32_t * op1, vuint64m4_t op2, vuint32m2_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u32mf2)))
-void vsoxseg4ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u32mf2_m)))
-void vsoxseg4ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i32m1)))
-void vsoxseg5ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i32m1_m)))
-void vsoxseg5ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i32mf2)))
-void vsoxseg5ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i32mf2_m)))
-void vsoxseg5ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u32m1)))
-void vsoxseg5ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u32m1_m)))
-void vsoxseg5ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u32mf2)))
-void vsoxseg5ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u32mf2_m)))
-void vsoxseg5ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i32m1)))
-void vsoxseg6ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i32m1_m)))
-void vsoxseg6ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i32mf2)))
-void vsoxseg6ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i32mf2_m)))
-void vsoxseg6ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u32m1)))
-void vsoxseg6ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u32m1_m)))
-void vsoxseg6ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u32mf2)))
-void vsoxseg6ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u32mf2_m)))
-void vsoxseg6ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i32m1)))
-void vsoxseg7ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i32m1_m)))
-void vsoxseg7ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i32mf2)))
-void vsoxseg7ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i32mf2_m)))
-void vsoxseg7ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u32m1)))
-void vsoxseg7ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u32m1_m)))
-void vsoxseg7ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u32mf2)))
-void vsoxseg7ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u32mf2_m)))
-void vsoxseg7ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i32m1)))
-void vsoxseg8ei64(int32_t * op0, vuint64m2_t op1, vint32m1_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i32m1_m)))
-void vsoxseg8ei64(vbool32_t op0, int32_t * op1, vuint64m2_t op2, vint32m1_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i32mf2)))
-void vsoxseg8ei64(int32_t * op0, vuint64m1_t op1, vint32mf2_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i32mf2_m)))
-void vsoxseg8ei64(vbool64_t op0, int32_t * op1, vuint64m1_t op2, vint32mf2_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u32m1)))
-void vsoxseg8ei64(uint32_t * op0, vuint64m2_t op1, vuint32m1_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u32m1_m)))
-void vsoxseg8ei64(vbool32_t op0, uint32_t * op1, vuint64m2_t op2, vuint32m1_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u32mf2)))
-void vsoxseg8ei64(uint32_t * op0, vuint64m1_t op1, vuint32mf2_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u32mf2_m)))
-void vsoxseg8ei64(vbool64_t op0, uint32_t * op1, vuint64m1_t op2, vuint32mf2_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i64m1)))
-void vsoxseg2ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i64m1_m)))
-void vsoxseg2ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i64m2)))
-void vsoxseg2ei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i64m2_m)))
-void vsoxseg2ei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i64m4)))
-void vsoxseg2ei8(int64_t * op0, vuint8mf2_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_i64m4_m)))
-void vsoxseg2ei8(vbool16_t op0, int64_t * op1, vuint8mf2_t op2, vint64m4_t op3, vint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u64m1)))
-void vsoxseg2ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u64m1_m)))
-void vsoxseg2ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u64m2)))
-void vsoxseg2ei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u64m2_m)))
-void vsoxseg2ei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u64m4)))
-void vsoxseg2ei8(uint64_t * op0, vuint8mf2_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_u64m4_m)))
-void vsoxseg2ei8(vbool16_t op0, uint64_t * op1, vuint8mf2_t op2, vuint64m4_t op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i64m1)))
-void vsoxseg3ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i64m1_m)))
-void vsoxseg3ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i64m2)))
-void vsoxseg3ei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_i64m2_m)))
-void vsoxseg3ei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u64m1)))
-void vsoxseg3ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u64m1_m)))
-void vsoxseg3ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u64m2)))
-void vsoxseg3ei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_u64m2_m)))
-void vsoxseg3ei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i64m1)))
-void vsoxseg4ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i64m1_m)))
-void vsoxseg4ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i64m2)))
-void vsoxseg4ei8(int64_t * op0, vuint8mf4_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_i64m2_m)))
-void vsoxseg4ei8(vbool32_t op0, int64_t * op1, vuint8mf4_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u64m1)))
-void vsoxseg4ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u64m1_m)))
-void vsoxseg4ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u64m2)))
-void vsoxseg4ei8(uint64_t * op0, vuint8mf4_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_u64m2_m)))
-void vsoxseg4ei8(vbool32_t op0, uint64_t * op1, vuint8mf4_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i64m1)))
-void vsoxseg5ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_i64m1_m)))
-void vsoxseg5ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u64m1)))
-void vsoxseg5ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_u64m1_m)))
-void vsoxseg5ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i64m1)))
-void vsoxseg6ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_i64m1_m)))
-void vsoxseg6ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u64m1)))
-void vsoxseg6ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_u64m1_m)))
-void vsoxseg6ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i64m1)))
-void vsoxseg7ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_i64m1_m)))
-void vsoxseg7ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u64m1)))
-void vsoxseg7ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_u64m1_m)))
-void vsoxseg7ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i64m1)))
-void vsoxseg8ei8(int64_t * op0, vuint8mf8_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_i64m1_m)))
-void vsoxseg8ei8(vbool64_t op0, int64_t * op1, vuint8mf8_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u64m1)))
-void vsoxseg8ei8(uint64_t * op0, vuint8mf8_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_u64m1_m)))
-void vsoxseg8ei8(vbool64_t op0, uint64_t * op1, vuint8mf8_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i64m1)))
-void vsoxseg2ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i64m1_m)))
-void vsoxseg2ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i64m2)))
-void vsoxseg2ei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i64m2_m)))
-void vsoxseg2ei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i64m4)))
-void vsoxseg2ei16(int64_t * op0, vuint16m1_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_i64m4_m)))
-void vsoxseg2ei16(vbool16_t op0, int64_t * op1, vuint16m1_t op2, vint64m4_t op3, vint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u64m1)))
-void vsoxseg2ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u64m1_m)))
-void vsoxseg2ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u64m2)))
-void vsoxseg2ei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u64m2_m)))
-void vsoxseg2ei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u64m4)))
-void vsoxseg2ei16(uint64_t * op0, vuint16m1_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_u64m4_m)))
-void vsoxseg2ei16(vbool16_t op0, uint64_t * op1, vuint16m1_t op2, vuint64m4_t op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i64m1)))
-void vsoxseg3ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i64m1_m)))
-void vsoxseg3ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i64m2)))
-void vsoxseg3ei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_i64m2_m)))
-void vsoxseg3ei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u64m1)))
-void vsoxseg3ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u64m1_m)))
-void vsoxseg3ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u64m2)))
-void vsoxseg3ei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_u64m2_m)))
-void vsoxseg3ei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i64m1)))
-void vsoxseg4ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i64m1_m)))
-void vsoxseg4ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i64m2)))
-void vsoxseg4ei16(int64_t * op0, vuint16mf2_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_i64m2_m)))
-void vsoxseg4ei16(vbool32_t op0, int64_t * op1, vuint16mf2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u64m1)))
-void vsoxseg4ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u64m1_m)))
-void vsoxseg4ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u64m2)))
-void vsoxseg4ei16(uint64_t * op0, vuint16mf2_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_u64m2_m)))
-void vsoxseg4ei16(vbool32_t op0, uint64_t * op1, vuint16mf2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i64m1)))
-void vsoxseg5ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_i64m1_m)))
-void vsoxseg5ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u64m1)))
-void vsoxseg5ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_u64m1_m)))
-void vsoxseg5ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i64m1)))
-void vsoxseg6ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_i64m1_m)))
-void vsoxseg6ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u64m1)))
-void vsoxseg6ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_u64m1_m)))
-void vsoxseg6ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i64m1)))
-void vsoxseg7ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_i64m1_m)))
-void vsoxseg7ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u64m1)))
-void vsoxseg7ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_u64m1_m)))
-void vsoxseg7ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i64m1)))
-void vsoxseg8ei16(int64_t * op0, vuint16mf4_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_i64m1_m)))
-void vsoxseg8ei16(vbool64_t op0, int64_t * op1, vuint16mf4_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u64m1)))
-void vsoxseg8ei16(uint64_t * op0, vuint16mf4_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_u64m1_m)))
-void vsoxseg8ei16(vbool64_t op0, uint64_t * op1, vuint16mf4_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i64m1)))
-void vsoxseg2ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i64m1_m)))
-void vsoxseg2ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i64m2)))
-void vsoxseg2ei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i64m2_m)))
-void vsoxseg2ei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i64m4)))
-void vsoxseg2ei32(int64_t * op0, vuint32m2_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_i64m4_m)))
-void vsoxseg2ei32(vbool16_t op0, int64_t * op1, vuint32m2_t op2, vint64m4_t op3, vint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u64m1)))
-void vsoxseg2ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u64m1_m)))
-void vsoxseg2ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u64m2)))
-void vsoxseg2ei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u64m2_m)))
-void vsoxseg2ei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u64m4)))
-void vsoxseg2ei32(uint64_t * op0, vuint32m2_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_u64m4_m)))
-void vsoxseg2ei32(vbool16_t op0, uint64_t * op1, vuint32m2_t op2, vuint64m4_t op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i64m1)))
-void vsoxseg3ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i64m1_m)))
-void vsoxseg3ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i64m2)))
-void vsoxseg3ei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_i64m2_m)))
-void vsoxseg3ei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u64m1)))
-void vsoxseg3ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u64m1_m)))
-void vsoxseg3ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u64m2)))
-void vsoxseg3ei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_u64m2_m)))
-void vsoxseg3ei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i64m1)))
-void vsoxseg4ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i64m1_m)))
-void vsoxseg4ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i64m2)))
-void vsoxseg4ei32(int64_t * op0, vuint32m1_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_i64m2_m)))
-void vsoxseg4ei32(vbool32_t op0, int64_t * op1, vuint32m1_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u64m1)))
-void vsoxseg4ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u64m1_m)))
-void vsoxseg4ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u64m2)))
-void vsoxseg4ei32(uint64_t * op0, vuint32m1_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_u64m2_m)))
-void vsoxseg4ei32(vbool32_t op0, uint64_t * op1, vuint32m1_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i64m1)))
-void vsoxseg5ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_i64m1_m)))
-void vsoxseg5ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u64m1)))
-void vsoxseg5ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_u64m1_m)))
-void vsoxseg5ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i64m1)))
-void vsoxseg6ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_i64m1_m)))
-void vsoxseg6ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u64m1)))
-void vsoxseg6ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_u64m1_m)))
-void vsoxseg6ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i64m1)))
-void vsoxseg7ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_i64m1_m)))
-void vsoxseg7ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u64m1)))
-void vsoxseg7ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_u64m1_m)))
-void vsoxseg7ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i64m1)))
-void vsoxseg8ei32(int64_t * op0, vuint32mf2_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_i64m1_m)))
-void vsoxseg8ei32(vbool64_t op0, int64_t * op1, vuint32mf2_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u64m1)))
-void vsoxseg8ei32(uint64_t * op0, vuint32mf2_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_u64m1_m)))
-void vsoxseg8ei32(vbool64_t op0, uint64_t * op1, vuint32mf2_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i64m1)))
-void vsoxseg2ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i64m1_m)))
-void vsoxseg2ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i64m2)))
-void vsoxseg2ei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, vint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i64m2_m)))
-void vsoxseg2ei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i64m4)))
-void vsoxseg2ei64(int64_t * op0, vuint64m4_t op1, vint64m4_t op2, vint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_i64m4_m)))
-void vsoxseg2ei64(vbool16_t op0, int64_t * op1, vuint64m4_t op2, vint64m4_t op3, vint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u64m1)))
-void vsoxseg2ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u64m1_m)))
-void vsoxseg2ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u64m2)))
-void vsoxseg2ei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u64m2_m)))
-void vsoxseg2ei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u64m4)))
-void vsoxseg2ei64(uint64_t * op0, vuint64m4_t op1, vuint64m4_t op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_u64m4_m)))
-void vsoxseg2ei64(vbool16_t op0, uint64_t * op1, vuint64m4_t op2, vuint64m4_t op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i64m1)))
-void vsoxseg3ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i64m1_m)))
-void vsoxseg3ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i64m2)))
-void vsoxseg3ei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_i64m2_m)))
-void vsoxseg3ei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u64m1)))
-void vsoxseg3ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u64m1_m)))
-void vsoxseg3ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u64m2)))
-void vsoxseg3ei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_u64m2_m)))
-void vsoxseg3ei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i64m1)))
-void vsoxseg4ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i64m1_m)))
-void vsoxseg4ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i64m2)))
-void vsoxseg4ei64(int64_t * op0, vuint64m2_t op1, vint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_i64m2_m)))
-void vsoxseg4ei64(vbool32_t op0, int64_t * op1, vuint64m2_t op2, vint64m2_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u64m1)))
-void vsoxseg4ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u64m1_m)))
-void vsoxseg4ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u64m2)))
-void vsoxseg4ei64(uint64_t * op0, vuint64m2_t op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_u64m2_m)))
-void vsoxseg4ei64(vbool32_t op0, uint64_t * op1, vuint64m2_t op2, vuint64m2_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i64m1)))
-void vsoxseg5ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_i64m1_m)))
-void vsoxseg5ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u64m1)))
-void vsoxseg5ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_u64m1_m)))
-void vsoxseg5ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i64m1)))
-void vsoxseg6ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_i64m1_m)))
-void vsoxseg6ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u64m1)))
-void vsoxseg6ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_u64m1_m)))
-void vsoxseg6ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i64m1)))
-void vsoxseg7ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_i64m1_m)))
-void vsoxseg7ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u64m1)))
-void vsoxseg7ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_u64m1_m)))
-void vsoxseg7ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i64m1)))
-void vsoxseg8ei64(int64_t * op0, vuint64m1_t op1, vint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_i64m1_m)))
-void vsoxseg8ei64(vbool64_t op0, int64_t * op1, vuint64m1_t op2, vint64m1_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u64m1)))
-void vsoxseg8ei64(uint64_t * op0, vuint64m1_t op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_u64m1_m)))
-void vsoxseg8ei64(vbool64_t op0, uint64_t * op1, vuint64m1_t op2, vuint64m1_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_i8m1_m)))
-void vlseg2e8(vint8m1_t * op0, vint8m1_t * op1, vbool8_t op2, vint8m1_t op3, vint8m1_t op4, const int8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_i8m2_m)))
-void vlseg2e8(vint8m2_t * op0, vint8m2_t * op1, vbool4_t op2, vint8m2_t op3, vint8m2_t op4, const int8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_i8m4_m)))
-void vlseg2e8(vint8m4_t * op0, vint8m4_t * op1, vbool2_t op2, vint8m4_t op3, vint8m4_t op4, const int8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_i8mf2_m)))
-void vlseg2e8(vint8mf2_t * op0, vint8mf2_t * op1, vbool16_t op2, vint8mf2_t op3, vint8mf2_t op4, const int8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_i8mf4_m)))
-void vlseg2e8(vint8mf4_t * op0, vint8mf4_t * op1, vbool32_t op2, vint8mf4_t op3, vint8mf4_t op4, const int8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_i8mf8_m)))
-void vlseg2e8(vint8mf8_t * op0, vint8mf8_t * op1, vbool64_t op2, vint8mf8_t op3, vint8mf8_t op4, const int8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_u8m1_m)))
-void vlseg2e8(vuint8m1_t * op0, vuint8m1_t * op1, vbool8_t op2, vuint8m1_t op3, vuint8m1_t op4, const uint8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_u8m2_m)))
-void vlseg2e8(vuint8m2_t * op0, vuint8m2_t * op1, vbool4_t op2, vuint8m2_t op3, vuint8m2_t op4, const uint8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_u8m4_m)))
-void vlseg2e8(vuint8m4_t * op0, vuint8m4_t * op1, vbool2_t op2, vuint8m4_t op3, vuint8m4_t op4, const uint8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_u8mf2_m)))
-void vlseg2e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vbool16_t op2, vuint8mf2_t op3, vuint8mf2_t op4, const uint8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_u8mf4_m)))
-void vlseg2e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vbool32_t op2, vuint8mf4_t op3, vuint8mf4_t op4, const uint8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8_v_u8mf8_m)))
-void vlseg2e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vbool64_t op2, vuint8mf8_t op3, vuint8mf8_t op4, const uint8_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8_v_i8m1_m)))
-void vlseg3e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vbool8_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, const int8_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8_v_i8m2_m)))
-void vlseg3e8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vbool4_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, const int8_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8_v_i8mf2_m)))
-void vlseg3e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vbool16_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, const int8_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8_v_i8mf4_m)))
-void vlseg3e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vbool32_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, const int8_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8_v_i8mf8_m)))
-void vlseg3e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vbool64_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, const int8_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8_v_u8m1_m)))
-void vlseg3e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vbool8_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, const uint8_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8_v_u8m2_m)))
-void vlseg3e8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vbool4_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, const uint8_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8_v_u8mf2_m)))
-void vlseg3e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vbool16_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, const uint8_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8_v_u8mf4_m)))
-void vlseg3e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vbool32_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, const uint8_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8_v_u8mf8_m)))
-void vlseg3e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vbool64_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, const uint8_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8_v_i8m1_m)))
-void vlseg4e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vbool8_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, const int8_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8_v_i8m2_m)))
-void vlseg4e8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, vbool4_t op4, vint8m2_t op5, vint8m2_t op6, vint8m2_t op7, vint8m2_t op8, const int8_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8_v_i8mf2_m)))
-void vlseg4e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vbool16_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, const int8_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8_v_i8mf4_m)))
-void vlseg4e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vbool32_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, const int8_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8_v_i8mf8_m)))
-void vlseg4e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vbool64_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, const int8_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8_v_u8m1_m)))
-void vlseg4e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vbool8_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, const uint8_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8_v_u8m2_m)))
-void vlseg4e8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, vbool4_t op4, vuint8m2_t op5, vuint8m2_t op6, vuint8m2_t op7, vuint8m2_t op8, const uint8_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8_v_u8mf2_m)))
-void vlseg4e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vbool16_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, const uint8_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8_v_u8mf4_m)))
-void vlseg4e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vbool32_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, const uint8_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8_v_u8mf8_m)))
-void vlseg4e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vbool64_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, const uint8_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8_v_i8m1_m)))
-void vlseg5e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vbool8_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, const int8_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8_v_i8mf2_m)))
-void vlseg5e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vbool16_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, const int8_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8_v_i8mf4_m)))
-void vlseg5e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vbool32_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, const int8_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8_v_i8mf8_m)))
-void vlseg5e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vbool64_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, const int8_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8_v_u8m1_m)))
-void vlseg5e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vbool8_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, const uint8_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8_v_u8mf2_m)))
-void vlseg5e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vbool16_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, const uint8_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8_v_u8mf4_m)))
-void vlseg5e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vbool32_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, const uint8_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8_v_u8mf8_m)))
-void vlseg5e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vbool64_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, const uint8_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8_v_i8m1_m)))
-void vlseg6e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vbool8_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, const int8_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8_v_i8mf2_m)))
-void vlseg6e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vbool16_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, const int8_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8_v_i8mf4_m)))
-void vlseg6e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vbool32_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, const int8_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8_v_i8mf8_m)))
-void vlseg6e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vbool64_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, const int8_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8_v_u8m1_m)))
-void vlseg6e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vbool8_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, const uint8_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8_v_u8mf2_m)))
-void vlseg6e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vbool16_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, const uint8_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8_v_u8mf4_m)))
-void vlseg6e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vbool32_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, const uint8_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8_v_u8mf8_m)))
-void vlseg6e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vbool64_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, const uint8_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8_v_i8m1_m)))
-void vlseg7e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vbool8_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, const int8_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8_v_i8mf2_m)))
-void vlseg7e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vbool16_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, const int8_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8_v_i8mf4_m)))
-void vlseg7e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vbool32_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, const int8_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8_v_i8mf8_m)))
-void vlseg7e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vbool64_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, const int8_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8_v_u8m1_m)))
-void vlseg7e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vbool8_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, const uint8_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8_v_u8mf2_m)))
-void vlseg7e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vbool16_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, const uint8_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8_v_u8mf4_m)))
-void vlseg7e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vbool32_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, const uint8_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8_v_u8mf8_m)))
-void vlseg7e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vbool64_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, const uint8_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8_v_i8m1_m)))
-void vlseg8e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, vbool8_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, vint8m1_t op15, vint8m1_t op16, const int8_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8_v_i8mf2_m)))
-void vlseg8e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, vbool16_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, vint8mf2_t op15, vint8mf2_t op16, const int8_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8_v_i8mf4_m)))
-void vlseg8e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, vbool32_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, vint8mf4_t op15, vint8mf4_t op16, const int8_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8_v_i8mf8_m)))
-void vlseg8e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, vbool64_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, vint8mf8_t op15, vint8mf8_t op16, const int8_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8_v_u8m1_m)))
-void vlseg8e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, vbool8_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, vuint8m1_t op15, vuint8m1_t op16, const uint8_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8_v_u8mf2_m)))
-void vlseg8e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, vbool16_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, vuint8mf2_t op15, vuint8mf2_t op16, const uint8_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8_v_u8mf4_m)))
-void vlseg8e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, vbool32_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, vuint8mf4_t op15, vuint8mf4_t op16, const uint8_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8_v_u8mf8_m)))
-void vlseg8e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, vbool64_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, vuint8mf8_t op15, vuint8mf8_t op16, const uint8_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_i16m1_m)))
-void vlseg2e16(vint16m1_t * op0, vint16m1_t * op1, vbool16_t op2, vint16m1_t op3, vint16m1_t op4, const int16_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_i16m2_m)))
-void vlseg2e16(vint16m2_t * op0, vint16m2_t * op1, vbool8_t op2, vint16m2_t op3, vint16m2_t op4, const int16_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_i16m4_m)))
-void vlseg2e16(vint16m4_t * op0, vint16m4_t * op1, vbool4_t op2, vint16m4_t op3, vint16m4_t op4, const int16_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_i16mf2_m)))
-void vlseg2e16(vint16mf2_t * op0, vint16mf2_t * op1, vbool32_t op2, vint16mf2_t op3, vint16mf2_t op4, const int16_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_i16mf4_m)))
-void vlseg2e16(vint16mf4_t * op0, vint16mf4_t * op1, vbool64_t op2, vint16mf4_t op3, vint16mf4_t op4, const int16_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_u16m1_m)))
-void vlseg2e16(vuint16m1_t * op0, vuint16m1_t * op1, vbool16_t op2, vuint16m1_t op3, vuint16m1_t op4, const uint16_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_u16m2_m)))
-void vlseg2e16(vuint16m2_t * op0, vuint16m2_t * op1, vbool8_t op2, vuint16m2_t op3, vuint16m2_t op4, const uint16_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_u16m4_m)))
-void vlseg2e16(vuint16m4_t * op0, vuint16m4_t * op1, vbool4_t op2, vuint16m4_t op3, vuint16m4_t op4, const uint16_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_u16mf2_m)))
-void vlseg2e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vbool32_t op2, vuint16mf2_t op3, vuint16mf2_t op4, const uint16_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_u16mf4_m)))
-void vlseg2e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vbool64_t op2, vuint16mf4_t op3, vuint16mf4_t op4, const uint16_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_i16m1_m)))
-void vlseg3e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vbool16_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, const int16_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_i16m2_m)))
-void vlseg3e16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vbool8_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, const int16_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_i16mf2_m)))
-void vlseg3e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vbool32_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, const int16_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_i16mf4_m)))
-void vlseg3e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vbool64_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, const int16_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_u16m1_m)))
-void vlseg3e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vbool16_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, const uint16_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_u16m2_m)))
-void vlseg3e16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vbool8_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, const uint16_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_u16mf2_m)))
-void vlseg3e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vbool32_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, const uint16_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_u16mf4_m)))
-void vlseg3e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vbool64_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, const uint16_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_i16m1_m)))
-void vlseg4e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vbool16_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, const int16_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_i16m2_m)))
-void vlseg4e16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, vbool8_t op4, vint16m2_t op5, vint16m2_t op6, vint16m2_t op7, vint16m2_t op8, const int16_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_i16mf2_m)))
-void vlseg4e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vbool32_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, const int16_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_i16mf4_m)))
-void vlseg4e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vbool64_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, const int16_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_u16m1_m)))
-void vlseg4e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vbool16_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, const uint16_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_u16m2_m)))
-void vlseg4e16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, vbool8_t op4, vuint16m2_t op5, vuint16m2_t op6, vuint16m2_t op7, vuint16m2_t op8, const uint16_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_u16mf2_m)))
-void vlseg4e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vbool32_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, const uint16_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_u16mf4_m)))
-void vlseg4e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vbool64_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, const uint16_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16_v_i16m1_m)))
-void vlseg5e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vbool16_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, const int16_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16_v_i16mf2_m)))
-void vlseg5e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vbool32_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, const int16_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16_v_i16mf4_m)))
-void vlseg5e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vbool64_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, const int16_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16_v_u16m1_m)))
-void vlseg5e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vbool16_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, const uint16_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16_v_u16mf2_m)))
-void vlseg5e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vbool32_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, const uint16_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16_v_u16mf4_m)))
-void vlseg5e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vbool64_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, const uint16_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16_v_i16m1_m)))
-void vlseg6e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vbool16_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, const int16_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16_v_i16mf2_m)))
-void vlseg6e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vbool32_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, const int16_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16_v_i16mf4_m)))
-void vlseg6e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vbool64_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, const int16_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16_v_u16m1_m)))
-void vlseg6e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vbool16_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, const uint16_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16_v_u16mf2_m)))
-void vlseg6e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vbool32_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, const uint16_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16_v_u16mf4_m)))
-void vlseg6e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vbool64_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, const uint16_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16_v_i16m1_m)))
-void vlseg7e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vbool16_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, const int16_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16_v_i16mf2_m)))
-void vlseg7e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vbool32_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, const int16_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16_v_i16mf4_m)))
-void vlseg7e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vbool64_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, const int16_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16_v_u16m1_m)))
-void vlseg7e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vbool16_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, const uint16_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16_v_u16mf2_m)))
-void vlseg7e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vbool32_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, const uint16_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16_v_u16mf4_m)))
-void vlseg7e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vbool64_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, const uint16_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16_v_i16m1_m)))
-void vlseg8e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, vbool16_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, vint16m1_t op15, vint16m1_t op16, const int16_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16_v_i16mf2_m)))
-void vlseg8e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, vbool32_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, vint16mf2_t op15, vint16mf2_t op16, const int16_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16_v_i16mf4_m)))
-void vlseg8e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, vbool64_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, vint16mf4_t op15, vint16mf4_t op16, const int16_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16_v_u16m1_m)))
-void vlseg8e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, vbool16_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, vuint16m1_t op15, vuint16m1_t op16, const uint16_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16_v_u16mf2_m)))
-void vlseg8e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, vbool32_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, vuint16mf2_t op15, vuint16mf2_t op16, const uint16_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16_v_u16mf4_m)))
-void vlseg8e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, vbool64_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, vuint16mf4_t op15, vuint16mf4_t op16, const uint16_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_i32m1_m)))
-void vlseg2e32(vint32m1_t * op0, vint32m1_t * op1, vbool32_t op2, vint32m1_t op3, vint32m1_t op4, const int32_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_i32m2_m)))
-void vlseg2e32(vint32m2_t * op0, vint32m2_t * op1, vbool16_t op2, vint32m2_t op3, vint32m2_t op4, const int32_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_i32m4_m)))
-void vlseg2e32(vint32m4_t * op0, vint32m4_t * op1, vbool8_t op2, vint32m4_t op3, vint32m4_t op4, const int32_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_i32mf2_m)))
-void vlseg2e32(vint32mf2_t * op0, vint32mf2_t * op1, vbool64_t op2, vint32mf2_t op3, vint32mf2_t op4, const int32_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_u32m1_m)))
-void vlseg2e32(vuint32m1_t * op0, vuint32m1_t * op1, vbool32_t op2, vuint32m1_t op3, vuint32m1_t op4, const uint32_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_u32m2_m)))
-void vlseg2e32(vuint32m2_t * op0, vuint32m2_t * op1, vbool16_t op2, vuint32m2_t op3, vuint32m2_t op4, const uint32_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_u32m4_m)))
-void vlseg2e32(vuint32m4_t * op0, vuint32m4_t * op1, vbool8_t op2, vuint32m4_t op3, vuint32m4_t op4, const uint32_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_u32mf2_m)))
-void vlseg2e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vbool64_t op2, vuint32mf2_t op3, vuint32mf2_t op4, const uint32_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32_v_i32m1_m)))
-void vlseg3e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vbool32_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, const int32_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32_v_i32m2_m)))
-void vlseg3e32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vbool16_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, const int32_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32_v_i32mf2_m)))
-void vlseg3e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vbool64_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, const int32_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32_v_u32m1_m)))
-void vlseg3e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vbool32_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, const uint32_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32_v_u32m2_m)))
-void vlseg3e32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vbool16_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, const uint32_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32_v_u32mf2_m)))
-void vlseg3e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vbool64_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, const uint32_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32_v_i32m1_m)))
-void vlseg4e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vbool32_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, const int32_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32_v_i32m2_m)))
-void vlseg4e32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, vbool16_t op4, vint32m2_t op5, vint32m2_t op6, vint32m2_t op7, vint32m2_t op8, const int32_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32_v_i32mf2_m)))
-void vlseg4e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vbool64_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, const int32_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32_v_u32m1_m)))
-void vlseg4e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vbool32_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, const uint32_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32_v_u32m2_m)))
-void vlseg4e32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, vbool16_t op4, vuint32m2_t op5, vuint32m2_t op6, vuint32m2_t op7, vuint32m2_t op8, const uint32_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32_v_u32mf2_m)))
-void vlseg4e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vbool64_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, const uint32_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32_v_i32m1_m)))
-void vlseg5e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vbool32_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, const int32_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32_v_i32mf2_m)))
-void vlseg5e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vbool64_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, const int32_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32_v_u32m1_m)))
-void vlseg5e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vbool32_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, const uint32_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32_v_u32mf2_m)))
-void vlseg5e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vbool64_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, const uint32_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32_v_i32m1_m)))
-void vlseg6e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vbool32_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, const int32_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32_v_i32mf2_m)))
-void vlseg6e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vbool64_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, const int32_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32_v_u32m1_m)))
-void vlseg6e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vbool32_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, const uint32_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32_v_u32mf2_m)))
-void vlseg6e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vbool64_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, const uint32_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32_v_i32m1_m)))
-void vlseg7e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vbool32_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, const int32_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32_v_i32mf2_m)))
-void vlseg7e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vbool64_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, const int32_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32_v_u32m1_m)))
-void vlseg7e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vbool32_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, const uint32_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32_v_u32mf2_m)))
-void vlseg7e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vbool64_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, const uint32_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32_v_i32m1_m)))
-void vlseg8e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, vbool32_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, vint32m1_t op15, vint32m1_t op16, const int32_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32_v_i32mf2_m)))
-void vlseg8e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, vbool64_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, vint32mf2_t op15, vint32mf2_t op16, const int32_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32_v_u32m1_m)))
-void vlseg8e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, vbool32_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, vuint32m1_t op15, vuint32m1_t op16, const uint32_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32_v_u32mf2_m)))
-void vlseg8e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, vbool64_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, vuint32mf2_t op15, vuint32mf2_t op16, const uint32_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64_v_i64m1_m)))
-void vlseg2e64(vint64m1_t * op0, vint64m1_t * op1, vbool64_t op2, vint64m1_t op3, vint64m1_t op4, const int64_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64_v_i64m2_m)))
-void vlseg2e64(vint64m2_t * op0, vint64m2_t * op1, vbool32_t op2, vint64m2_t op3, vint64m2_t op4, const int64_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64_v_i64m4_m)))
-void vlseg2e64(vint64m4_t * op0, vint64m4_t * op1, vbool16_t op2, vint64m4_t op3, vint64m4_t op4, const int64_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64_v_u64m1_m)))
-void vlseg2e64(vuint64m1_t * op0, vuint64m1_t * op1, vbool64_t op2, vuint64m1_t op3, vuint64m1_t op4, const uint64_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64_v_u64m2_m)))
-void vlseg2e64(vuint64m2_t * op0, vuint64m2_t * op1, vbool32_t op2, vuint64m2_t op3, vuint64m2_t op4, const uint64_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64_v_u64m4_m)))
-void vlseg2e64(vuint64m4_t * op0, vuint64m4_t * op1, vbool16_t op2, vuint64m4_t op3, vuint64m4_t op4, const uint64_t * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64_v_i64m1_m)))
-void vlseg3e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vbool64_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, const int64_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64_v_i64m2_m)))
-void vlseg3e64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vbool32_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, const int64_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64_v_u64m1_m)))
-void vlseg3e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vbool64_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, const uint64_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64_v_u64m2_m)))
-void vlseg3e64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vbool32_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, const uint64_t * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64_v_i64m1_m)))
-void vlseg4e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vbool64_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, const int64_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64_v_i64m2_m)))
-void vlseg4e64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, vbool32_t op4, vint64m2_t op5, vint64m2_t op6, vint64m2_t op7, vint64m2_t op8, const int64_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64_v_u64m1_m)))
-void vlseg4e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vbool64_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, const uint64_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64_v_u64m2_m)))
-void vlseg4e64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, vbool32_t op4, vuint64m2_t op5, vuint64m2_t op6, vuint64m2_t op7, vuint64m2_t op8, const uint64_t * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e64_v_i64m1_m)))
-void vlseg5e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vbool64_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, const int64_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e64_v_u64m1_m)))
-void vlseg5e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vbool64_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, const uint64_t * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e64_v_i64m1_m)))
-void vlseg6e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vbool64_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, const int64_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e64_v_u64m1_m)))
-void vlseg6e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vbool64_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, const uint64_t * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e64_v_i64m1_m)))
-void vlseg7e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vbool64_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, const int64_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e64_v_u64m1_m)))
-void vlseg7e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vbool64_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, const uint64_t * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e64_v_i64m1_m)))
-void vlseg8e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, vbool64_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, vint64m1_t op15, vint64m1_t op16, const int64_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e64_v_u64m1_m)))
-void vlseg8e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, vbool64_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, vuint64m1_t op15, vuint64m1_t op16, const uint64_t * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8ff_v_i8m1_m)))
-void vlseg3e8ff(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vbool8_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, const int8_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8ff_v_i8m2_m)))
-void vlseg3e8ff(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vbool4_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, const int8_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8ff_v_i8mf2_m)))
-void vlseg3e8ff(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vbool16_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, const int8_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8ff_v_i8mf4_m)))
-void vlseg3e8ff(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vbool32_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, const int8_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8ff_v_i8mf8_m)))
-void vlseg3e8ff(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vbool64_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, const int8_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8ff_v_u8m1_m)))
-void vlseg3e8ff(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vbool8_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, const uint8_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8ff_v_u8m2_m)))
-void vlseg3e8ff(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vbool4_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, const uint8_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8ff_v_u8mf2_m)))
-void vlseg3e8ff(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vbool16_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, const uint8_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8ff_v_u8mf4_m)))
-void vlseg3e8ff(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vbool32_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, const uint8_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e8ff_v_u8mf8_m)))
-void vlseg3e8ff(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vbool64_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, const uint8_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8ff_v_i8m1_m)))
-void vlseg4e8ff(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vbool8_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, const int8_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8ff_v_i8m2_m)))
-void vlseg4e8ff(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, vbool4_t op4, vint8m2_t op5, vint8m2_t op6, vint8m2_t op7, vint8m2_t op8, const int8_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8ff_v_i8mf2_m)))
-void vlseg4e8ff(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vbool16_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, const int8_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8ff_v_i8mf4_m)))
-void vlseg4e8ff(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vbool32_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, const int8_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8ff_v_i8mf8_m)))
-void vlseg4e8ff(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vbool64_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, const int8_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8ff_v_u8m1_m)))
-void vlseg4e8ff(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vbool8_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, const uint8_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8ff_v_u8m2_m)))
-void vlseg4e8ff(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, vbool4_t op4, vuint8m2_t op5, vuint8m2_t op6, vuint8m2_t op7, vuint8m2_t op8, const uint8_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8ff_v_u8mf2_m)))
-void vlseg4e8ff(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vbool16_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, const uint8_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8ff_v_u8mf4_m)))
-void vlseg4e8ff(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vbool32_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, const uint8_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e8ff_v_u8mf8_m)))
-void vlseg4e8ff(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vbool64_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, const uint8_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8ff_v_i8m1_m)))
-void vlseg5e8ff(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vbool8_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, const int8_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8ff_v_i8mf2_m)))
-void vlseg5e8ff(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vbool16_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, const int8_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8ff_v_i8mf4_m)))
-void vlseg5e8ff(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vbool32_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, const int8_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8ff_v_i8mf8_m)))
-void vlseg5e8ff(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vbool64_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, const int8_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8ff_v_u8m1_m)))
-void vlseg5e8ff(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vbool8_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, const uint8_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8ff_v_u8mf2_m)))
-void vlseg5e8ff(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vbool16_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, const uint8_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8ff_v_u8mf4_m)))
-void vlseg5e8ff(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vbool32_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, const uint8_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e8ff_v_u8mf8_m)))
-void vlseg5e8ff(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vbool64_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, const uint8_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8ff_v_i8m1_m)))
-void vlseg6e8ff(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vbool8_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, const int8_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8ff_v_i8mf2_m)))
-void vlseg6e8ff(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vbool16_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, const int8_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8ff_v_i8mf4_m)))
-void vlseg6e8ff(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vbool32_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, const int8_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8ff_v_i8mf8_m)))
-void vlseg6e8ff(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vbool64_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, const int8_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8ff_v_u8m1_m)))
-void vlseg6e8ff(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vbool8_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, const uint8_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8ff_v_u8mf2_m)))
-void vlseg6e8ff(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vbool16_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, const uint8_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8ff_v_u8mf4_m)))
-void vlseg6e8ff(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vbool32_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, const uint8_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e8ff_v_u8mf8_m)))
-void vlseg6e8ff(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vbool64_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, const uint8_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8ff_v_i8m1_m)))
-void vlseg7e8ff(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vbool8_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, const int8_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8ff_v_i8mf2_m)))
-void vlseg7e8ff(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vbool16_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, const int8_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8ff_v_i8mf4_m)))
-void vlseg7e8ff(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vbool32_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, const int8_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8ff_v_i8mf8_m)))
-void vlseg7e8ff(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vbool64_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, const int8_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8ff_v_u8m1_m)))
-void vlseg7e8ff(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vbool8_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, const uint8_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8ff_v_u8mf2_m)))
-void vlseg7e8ff(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vbool16_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, const uint8_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8ff_v_u8mf4_m)))
-void vlseg7e8ff(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vbool32_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, const uint8_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e8ff_v_u8mf8_m)))
-void vlseg7e8ff(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vbool64_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, const uint8_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8ff_v_i8m1_m)))
-void vlseg8e8ff(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, vbool8_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, vint8m1_t op15, vint8m1_t op16, const int8_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8ff_v_i8mf2_m)))
-void vlseg8e8ff(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, vbool16_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, vint8mf2_t op15, vint8mf2_t op16, const int8_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8ff_v_i8mf4_m)))
-void vlseg8e8ff(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, vbool32_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, vint8mf4_t op15, vint8mf4_t op16, const int8_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8ff_v_i8mf8_m)))
-void vlseg8e8ff(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, vbool64_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, vint8mf8_t op15, vint8mf8_t op16, const int8_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8ff_v_u8m1_m)))
-void vlseg8e8ff(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, vbool8_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, vuint8m1_t op15, vuint8m1_t op16, const uint8_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8ff_v_u8mf2_m)))
-void vlseg8e8ff(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, vbool16_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, vuint8mf2_t op15, vuint8mf2_t op16, const uint8_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8ff_v_u8mf4_m)))
-void vlseg8e8ff(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, vbool32_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, vuint8mf4_t op15, vuint8mf4_t op16, const uint8_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e8ff_v_u8mf8_m)))
-void vlseg8e8ff(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, vbool64_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, vuint8mf8_t op15, vuint8mf8_t op16, const uint8_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_i16m1_m)))
-void vlseg2e16ff(vint16m1_t * op0, vint16m1_t * op1, vbool16_t op2, vint16m1_t op3, vint16m1_t op4, const int16_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_i16m2_m)))
-void vlseg2e16ff(vint16m2_t * op0, vint16m2_t * op1, vbool8_t op2, vint16m2_t op3, vint16m2_t op4, const int16_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_i16m4_m)))
-void vlseg2e16ff(vint16m4_t * op0, vint16m4_t * op1, vbool4_t op2, vint16m4_t op3, vint16m4_t op4, const int16_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_i16mf2_m)))
-void vlseg2e16ff(vint16mf2_t * op0, vint16mf2_t * op1, vbool32_t op2, vint16mf2_t op3, vint16mf2_t op4, const int16_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_i16mf4_m)))
-void vlseg2e16ff(vint16mf4_t * op0, vint16mf4_t * op1, vbool64_t op2, vint16mf4_t op3, vint16mf4_t op4, const int16_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_u16m1_m)))
-void vlseg2e16ff(vuint16m1_t * op0, vuint16m1_t * op1, vbool16_t op2, vuint16m1_t op3, vuint16m1_t op4, const uint16_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_u16m2_m)))
-void vlseg2e16ff(vuint16m2_t * op0, vuint16m2_t * op1, vbool8_t op2, vuint16m2_t op3, vuint16m2_t op4, const uint16_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_u16m4_m)))
-void vlseg2e16ff(vuint16m4_t * op0, vuint16m4_t * op1, vbool4_t op2, vuint16m4_t op3, vuint16m4_t op4, const uint16_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_u16mf2_m)))
-void vlseg2e16ff(vuint16mf2_t * op0, vuint16mf2_t * op1, vbool32_t op2, vuint16mf2_t op3, vuint16mf2_t op4, const uint16_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_u16mf4_m)))
-void vlseg2e16ff(vuint16mf4_t * op0, vuint16mf4_t * op1, vbool64_t op2, vuint16mf4_t op3, vuint16mf4_t op4, const uint16_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_i16m1_m)))
-void vlseg3e16ff(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vbool16_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, const int16_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_i16m2_m)))
-void vlseg3e16ff(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vbool8_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, const int16_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_i16mf2_m)))
-void vlseg3e16ff(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vbool32_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, const int16_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_i16mf4_m)))
-void vlseg3e16ff(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vbool64_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, const int16_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_u16m1_m)))
-void vlseg3e16ff(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vbool16_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, const uint16_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_u16m2_m)))
-void vlseg3e16ff(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vbool8_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, const uint16_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_u16mf2_m)))
-void vlseg3e16ff(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vbool32_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, const uint16_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_u16mf4_m)))
-void vlseg3e16ff(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vbool64_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, const uint16_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_i16m1_m)))
-void vlseg4e16ff(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vbool16_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, const int16_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_i16m2_m)))
-void vlseg4e16ff(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, vbool8_t op4, vint16m2_t op5, vint16m2_t op6, vint16m2_t op7, vint16m2_t op8, const int16_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_i16mf2_m)))
-void vlseg4e16ff(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vbool32_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, const int16_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_i16mf4_m)))
-void vlseg4e16ff(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vbool64_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, const int16_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_u16m1_m)))
-void vlseg4e16ff(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vbool16_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, const uint16_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_u16m2_m)))
-void vlseg4e16ff(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, vbool8_t op4, vuint16m2_t op5, vuint16m2_t op6, vuint16m2_t op7, vuint16m2_t op8, const uint16_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_u16mf2_m)))
-void vlseg4e16ff(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vbool32_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, const uint16_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_u16mf4_m)))
-void vlseg4e16ff(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vbool64_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, const uint16_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16ff_v_i16m1_m)))
-void vlseg5e16ff(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vbool16_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, const int16_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16ff_v_i16mf2_m)))
-void vlseg5e16ff(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vbool32_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, const int16_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16ff_v_i16mf4_m)))
-void vlseg5e16ff(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vbool64_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, const int16_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16ff_v_u16m1_m)))
-void vlseg5e16ff(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vbool16_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, const uint16_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16ff_v_u16mf2_m)))
-void vlseg5e16ff(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vbool32_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, const uint16_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16ff_v_u16mf4_m)))
-void vlseg5e16ff(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vbool64_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, const uint16_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16ff_v_i16m1_m)))
-void vlseg6e16ff(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vbool16_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, const int16_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16ff_v_i16mf2_m)))
-void vlseg6e16ff(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vbool32_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, const int16_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16ff_v_i16mf4_m)))
-void vlseg6e16ff(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vbool64_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, const int16_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16ff_v_u16m1_m)))
-void vlseg6e16ff(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vbool16_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, const uint16_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16ff_v_u16mf2_m)))
-void vlseg6e16ff(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vbool32_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, const uint16_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16ff_v_u16mf4_m)))
-void vlseg6e16ff(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vbool64_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, const uint16_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16ff_v_i16m1_m)))
-void vlseg7e16ff(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vbool16_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, const int16_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16ff_v_i16mf2_m)))
-void vlseg7e16ff(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vbool32_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, const int16_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16ff_v_i16mf4_m)))
-void vlseg7e16ff(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vbool64_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, const int16_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16ff_v_u16m1_m)))
-void vlseg7e16ff(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vbool16_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, const uint16_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16ff_v_u16mf2_m)))
-void vlseg7e16ff(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vbool32_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, const uint16_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16ff_v_u16mf4_m)))
-void vlseg7e16ff(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vbool64_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, const uint16_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16ff_v_i16m1_m)))
-void vlseg8e16ff(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, vbool16_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, vint16m1_t op15, vint16m1_t op16, const int16_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16ff_v_i16mf2_m)))
-void vlseg8e16ff(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, vbool32_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, vint16mf2_t op15, vint16mf2_t op16, const int16_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16ff_v_i16mf4_m)))
-void vlseg8e16ff(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, vbool64_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, vint16mf4_t op15, vint16mf4_t op16, const int16_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16ff_v_u16m1_m)))
-void vlseg8e16ff(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, vbool16_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, vuint16m1_t op15, vuint16m1_t op16, const uint16_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16ff_v_u16mf2_m)))
-void vlseg8e16ff(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, vbool32_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, vuint16mf2_t op15, vuint16mf2_t op16, const uint16_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16ff_v_u16mf4_m)))
-void vlseg8e16ff(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, vbool64_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, vuint16mf4_t op15, vuint16mf4_t op16, const uint16_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_i32m1_m)))
-void vlseg2e32ff(vint32m1_t * op0, vint32m1_t * op1, vbool32_t op2, vint32m1_t op3, vint32m1_t op4, const int32_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_i32m2_m)))
-void vlseg2e32ff(vint32m2_t * op0, vint32m2_t * op1, vbool16_t op2, vint32m2_t op3, vint32m2_t op4, const int32_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_i32m4_m)))
-void vlseg2e32ff(vint32m4_t * op0, vint32m4_t * op1, vbool8_t op2, vint32m4_t op3, vint32m4_t op4, const int32_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_i32mf2_m)))
-void vlseg2e32ff(vint32mf2_t * op0, vint32mf2_t * op1, vbool64_t op2, vint32mf2_t op3, vint32mf2_t op4, const int32_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_i8m1_m)))
-void vlseg2e8ff(vint8m1_t * op0, vint8m1_t * op1, vbool8_t op2, vint8m1_t op3, vint8m1_t op4, const int8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_i8m2_m)))
-void vlseg2e8ff(vint8m2_t * op0, vint8m2_t * op1, vbool4_t op2, vint8m2_t op3, vint8m2_t op4, const int8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_i8m4_m)))
-void vlseg2e8ff(vint8m4_t * op0, vint8m4_t * op1, vbool2_t op2, vint8m4_t op3, vint8m4_t op4, const int8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_i8mf2_m)))
-void vlseg2e8ff(vint8mf2_t * op0, vint8mf2_t * op1, vbool16_t op2, vint8mf2_t op3, vint8mf2_t op4, const int8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_i8mf4_m)))
-void vlseg2e8ff(vint8mf4_t * op0, vint8mf4_t * op1, vbool32_t op2, vint8mf4_t op3, vint8mf4_t op4, const int8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_i8mf8_m)))
-void vlseg2e8ff(vint8mf8_t * op0, vint8mf8_t * op1, vbool64_t op2, vint8mf8_t op3, vint8mf8_t op4, const int8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_u32m1_m)))
-void vlseg2e32ff(vuint32m1_t * op0, vuint32m1_t * op1, vbool32_t op2, vuint32m1_t op3, vuint32m1_t op4, const uint32_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_u32m2_m)))
-void vlseg2e32ff(vuint32m2_t * op0, vuint32m2_t * op1, vbool16_t op2, vuint32m2_t op3, vuint32m2_t op4, const uint32_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_u32m4_m)))
-void vlseg2e32ff(vuint32m4_t * op0, vuint32m4_t * op1, vbool8_t op2, vuint32m4_t op3, vuint32m4_t op4, const uint32_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_u32mf2_m)))
-void vlseg2e32ff(vuint32mf2_t * op0, vuint32mf2_t * op1, vbool64_t op2, vuint32mf2_t op3, vuint32mf2_t op4, const uint32_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32ff_v_i32m1_m)))
-void vlseg3e32ff(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vbool32_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, const int32_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32ff_v_i32m2_m)))
-void vlseg3e32ff(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vbool16_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, const int32_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32ff_v_i32mf2_m)))
-void vlseg3e32ff(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vbool64_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, const int32_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32ff_v_u32m1_m)))
-void vlseg3e32ff(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vbool32_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, const uint32_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32ff_v_u32m2_m)))
-void vlseg3e32ff(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vbool16_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, const uint32_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32ff_v_u32mf2_m)))
-void vlseg3e32ff(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vbool64_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, const uint32_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32ff_v_i32m1_m)))
-void vlseg4e32ff(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vbool32_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, const int32_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32ff_v_i32m2_m)))
-void vlseg4e32ff(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, vbool16_t op4, vint32m2_t op5, vint32m2_t op6, vint32m2_t op7, vint32m2_t op8, const int32_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32ff_v_i32mf2_m)))
-void vlseg4e32ff(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vbool64_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, const int32_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32ff_v_u32m1_m)))
-void vlseg4e32ff(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vbool32_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, const uint32_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32ff_v_u32m2_m)))
-void vlseg4e32ff(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, vbool16_t op4, vuint32m2_t op5, vuint32m2_t op6, vuint32m2_t op7, vuint32m2_t op8, const uint32_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32ff_v_u32mf2_m)))
-void vlseg4e32ff(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vbool64_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, const uint32_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32ff_v_i32m1_m)))
-void vlseg5e32ff(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vbool32_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, const int32_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32ff_v_i32mf2_m)))
-void vlseg5e32ff(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vbool64_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, const int32_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32ff_v_u32m1_m)))
-void vlseg5e32ff(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vbool32_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, const uint32_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32ff_v_u32mf2_m)))
-void vlseg5e32ff(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vbool64_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, const uint32_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32ff_v_i32m1_m)))
-void vlseg6e32ff(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vbool32_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, const int32_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32ff_v_i32mf2_m)))
-void vlseg6e32ff(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vbool64_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, const int32_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32ff_v_u32m1_m)))
-void vlseg6e32ff(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vbool32_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, const uint32_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32ff_v_u32mf2_m)))
-void vlseg6e32ff(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vbool64_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, const uint32_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32ff_v_i32m1_m)))
-void vlseg7e32ff(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vbool32_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, const int32_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32ff_v_i32mf2_m)))
-void vlseg7e32ff(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vbool64_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, const int32_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_u8m1_m)))
-void vlseg2e8ff(vuint8m1_t * op0, vuint8m1_t * op1, vbool8_t op2, vuint8m1_t op3, vuint8m1_t op4, const uint8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_u8m2_m)))
-void vlseg2e8ff(vuint8m2_t * op0, vuint8m2_t * op1, vbool4_t op2, vuint8m2_t op3, vuint8m2_t op4, const uint8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_u8m4_m)))
-void vlseg2e8ff(vuint8m4_t * op0, vuint8m4_t * op1, vbool2_t op2, vuint8m4_t op3, vuint8m4_t op4, const uint8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_u8mf2_m)))
-void vlseg2e8ff(vuint8mf2_t * op0, vuint8mf2_t * op1, vbool16_t op2, vuint8mf2_t op3, vuint8mf2_t op4, const uint8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_u8mf4_m)))
-void vlseg2e8ff(vuint8mf4_t * op0, vuint8mf4_t * op1, vbool32_t op2, vuint8mf4_t op3, vuint8mf4_t op4, const uint8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e8ff_v_u8mf8_m)))
-void vlseg2e8ff(vuint8mf8_t * op0, vuint8mf8_t * op1, vbool64_t op2, vuint8mf8_t op3, vuint8mf8_t op4, const uint8_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32ff_v_u32m1_m)))
-void vlseg7e32ff(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vbool32_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, const uint32_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32ff_v_u32mf2_m)))
-void vlseg7e32ff(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vbool64_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, const uint32_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32ff_v_i32m1_m)))
-void vlseg8e32ff(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, vbool32_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, vint32m1_t op15, vint32m1_t op16, const int32_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32ff_v_i32mf2_m)))
-void vlseg8e32ff(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, vbool64_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, vint32mf2_t op15, vint32mf2_t op16, const int32_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32ff_v_u32m1_m)))
-void vlseg8e32ff(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, vbool32_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, vuint32m1_t op15, vuint32m1_t op16, const uint32_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32ff_v_u32mf2_m)))
-void vlseg8e32ff(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, vbool64_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, vuint32mf2_t op15, vuint32mf2_t op16, const uint32_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64ff_v_i64m1_m)))
-void vlseg2e64ff(vint64m1_t * op0, vint64m1_t * op1, vbool64_t op2, vint64m1_t op3, vint64m1_t op4, const int64_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64ff_v_i64m2_m)))
-void vlseg2e64ff(vint64m2_t * op0, vint64m2_t * op1, vbool32_t op2, vint64m2_t op3, vint64m2_t op4, const int64_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64ff_v_i64m4_m)))
-void vlseg2e64ff(vint64m4_t * op0, vint64m4_t * op1, vbool16_t op2, vint64m4_t op3, vint64m4_t op4, const int64_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64ff_v_u64m1_m)))
-void vlseg2e64ff(vuint64m1_t * op0, vuint64m1_t * op1, vbool64_t op2, vuint64m1_t op3, vuint64m1_t op4, const uint64_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64ff_v_u64m2_m)))
-void vlseg2e64ff(vuint64m2_t * op0, vuint64m2_t * op1, vbool32_t op2, vuint64m2_t op3, vuint64m2_t op4, const uint64_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64ff_v_u64m4_m)))
-void vlseg2e64ff(vuint64m4_t * op0, vuint64m4_t * op1, vbool16_t op2, vuint64m4_t op3, vuint64m4_t op4, const uint64_t * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64ff_v_i64m1_m)))
-void vlseg3e64ff(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vbool64_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, const int64_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64ff_v_i64m2_m)))
-void vlseg3e64ff(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vbool32_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, const int64_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64ff_v_u64m1_m)))
-void vlseg3e64ff(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vbool64_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, const uint64_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64ff_v_u64m2_m)))
-void vlseg3e64ff(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vbool32_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, const uint64_t * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64ff_v_i64m1_m)))
-void vlseg4e64ff(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vbool64_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, const int64_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64ff_v_i64m2_m)))
-void vlseg4e64ff(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, vbool32_t op4, vint64m2_t op5, vint64m2_t op6, vint64m2_t op7, vint64m2_t op8, const int64_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64ff_v_u64m1_m)))
-void vlseg4e64ff(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vbool64_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, const uint64_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64ff_v_u64m2_m)))
-void vlseg4e64ff(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, vbool32_t op4, vuint64m2_t op5, vuint64m2_t op6, vuint64m2_t op7, vuint64m2_t op8, const uint64_t * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e64ff_v_i64m1_m)))
-void vlseg5e64ff(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vbool64_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, const int64_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_i8m1_m)))
-void vlsseg2e8(vint8m1_t * op0, vint8m1_t * op1, vbool8_t op2, vint8m1_t op3, vint8m1_t op4, const int8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_i8m2_m)))
-void vlsseg2e8(vint8m2_t * op0, vint8m2_t * op1, vbool4_t op2, vint8m2_t op3, vint8m2_t op4, const int8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_i8m4_m)))
-void vlsseg2e8(vint8m4_t * op0, vint8m4_t * op1, vbool2_t op2, vint8m4_t op3, vint8m4_t op4, const int8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_i8mf2_m)))
-void vlsseg2e8(vint8mf2_t * op0, vint8mf2_t * op1, vbool16_t op2, vint8mf2_t op3, vint8mf2_t op4, const int8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_i8mf4_m)))
-void vlsseg2e8(vint8mf4_t * op0, vint8mf4_t * op1, vbool32_t op2, vint8mf4_t op3, vint8mf4_t op4, const int8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_i8mf8_m)))
-void vlsseg2e8(vint8mf8_t * op0, vint8mf8_t * op1, vbool64_t op2, vint8mf8_t op3, vint8mf8_t op4, const int8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e64ff_v_u64m1_m)))
-void vlseg5e64ff(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vbool64_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, const uint64_t * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e64ff_v_i64m1_m)))
-void vlseg6e64ff(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vbool64_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, const int64_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e64ff_v_u64m1_m)))
-void vlseg6e64ff(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vbool64_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, const uint64_t * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e64ff_v_i64m1_m)))
-void vlseg7e64ff(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vbool64_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, const int64_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e64ff_v_u64m1_m)))
-void vlseg7e64ff(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vbool64_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, const uint64_t * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e64ff_v_i64m1_m)))
-void vlseg8e64ff(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, vbool64_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, vint64m1_t op15, vint64m1_t op16, const int64_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e64ff_v_u64m1_m)))
-void vlseg8e64ff(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, vbool64_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, vuint64m1_t op15, vuint64m1_t op16, const uint64_t * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_u8m1_m)))
-void vlsseg2e8(vuint8m1_t * op0, vuint8m1_t * op1, vbool8_t op2, vuint8m1_t op3, vuint8m1_t op4, const uint8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_u8m2_m)))
-void vlsseg2e8(vuint8m2_t * op0, vuint8m2_t * op1, vbool4_t op2, vuint8m2_t op3, vuint8m2_t op4, const uint8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_u8m4_m)))
-void vlsseg2e8(vuint8m4_t * op0, vuint8m4_t * op1, vbool2_t op2, vuint8m4_t op3, vuint8m4_t op4, const uint8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_u8mf2_m)))
-void vlsseg2e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vbool16_t op2, vuint8mf2_t op3, vuint8mf2_t op4, const uint8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_u8mf4_m)))
-void vlsseg2e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vbool32_t op2, vuint8mf4_t op3, vuint8mf4_t op4, const uint8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e8_v_u8mf8_m)))
-void vlsseg2e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vbool64_t op2, vuint8mf8_t op3, vuint8mf8_t op4, const uint8_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8m1)))
-void vluxseg2ei8(vint8m1_t * op0, vint8m1_t * op1, const int8_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8m1_m)))
-void vluxseg2ei8(vint8m1_t * op0, vint8m1_t * op1, vbool8_t op2, vint8m1_t op3, vint8m1_t op4, const int8_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8m2)))
-void vluxseg2ei8(vint8m2_t * op0, vint8m2_t * op1, const int8_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8m2_m)))
-void vluxseg2ei8(vint8m2_t * op0, vint8m2_t * op1, vbool4_t op2, vint8m2_t op3, vint8m2_t op4, const int8_t * op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8m4)))
-void vluxseg2ei8(vint8m4_t * op0, vint8m4_t * op1, const int8_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8m4_m)))
-void vluxseg2ei8(vint8m4_t * op0, vint8m4_t * op1, vbool2_t op2, vint8m4_t op3, vint8m4_t op4, const int8_t * op5, vuint8m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8mf2)))
-void vluxseg2ei8(vint8mf2_t * op0, vint8mf2_t * op1, const int8_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8mf2_m)))
-void vluxseg2ei8(vint8mf2_t * op0, vint8mf2_t * op1, vbool16_t op2, vint8mf2_t op3, vint8mf2_t op4, const int8_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8mf4)))
-void vluxseg2ei8(vint8mf4_t * op0, vint8mf4_t * op1, const int8_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8mf4_m)))
-void vluxseg2ei8(vint8mf4_t * op0, vint8mf4_t * op1, vbool32_t op2, vint8mf4_t op3, vint8mf4_t op4, const int8_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8mf8)))
-void vluxseg2ei8(vint8mf8_t * op0, vint8mf8_t * op1, const int8_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i8mf8_m)))
-void vluxseg2ei8(vint8mf8_t * op0, vint8mf8_t * op1, vbool64_t op2, vint8mf8_t op3, vint8mf8_t op4, const int8_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e8_v_i8m1_m)))
-void vlsseg3e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vbool8_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, const int8_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e8_v_i8m2_m)))
-void vlsseg3e8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vbool4_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, const int8_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e8_v_i8mf2_m)))
-void vlsseg3e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vbool16_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, const int8_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e8_v_i8mf4_m)))
-void vlsseg3e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vbool32_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, const int8_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e8_v_i8mf8_m)))
-void vlsseg3e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vbool64_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, const int8_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8m1)))
-void vluxseg2ei8(vuint8m1_t * op0, vuint8m1_t * op1, const uint8_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8m1_m)))
-void vluxseg2ei8(vuint8m1_t * op0, vuint8m1_t * op1, vbool8_t op2, vuint8m1_t op3, vuint8m1_t op4, const uint8_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8m2)))
-void vluxseg2ei8(vuint8m2_t * op0, vuint8m2_t * op1, const uint8_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8m2_m)))
-void vluxseg2ei8(vuint8m2_t * op0, vuint8m2_t * op1, vbool4_t op2, vuint8m2_t op3, vuint8m2_t op4, const uint8_t * op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8m4)))
-void vluxseg2ei8(vuint8m4_t * op0, vuint8m4_t * op1, const uint8_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8m4_m)))
-void vluxseg2ei8(vuint8m4_t * op0, vuint8m4_t * op1, vbool2_t op2, vuint8m4_t op3, vuint8m4_t op4, const uint8_t * op5, vuint8m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8mf2)))
-void vluxseg2ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, const uint8_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8mf2_m)))
-void vluxseg2ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vbool16_t op2, vuint8mf2_t op3, vuint8mf2_t op4, const uint8_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8mf4)))
-void vluxseg2ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, const uint8_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8mf4_m)))
-void vluxseg2ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vbool32_t op2, vuint8mf4_t op3, vuint8mf4_t op4, const uint8_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8mf8)))
-void vluxseg2ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, const uint8_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u8mf8_m)))
-void vluxseg2ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vbool64_t op2, vuint8mf8_t op3, vuint8mf8_t op4, const uint8_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e8_v_u8m1_m)))
-void vlsseg3e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vbool8_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, const uint8_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e8_v_u8m2_m)))
-void vlsseg3e8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vbool4_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, const uint8_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e8_v_u8mf2_m)))
-void vlsseg3e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vbool16_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, const uint8_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e8_v_u8mf4_m)))
-void vlsseg3e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vbool32_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, const uint8_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e8_v_u8mf8_m)))
-void vlsseg3e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vbool64_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, const uint8_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e8_v_i8m1_m)))
-void vlsseg4e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vbool8_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, const int8_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e8_v_i8m2_m)))
-void vlsseg4e8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, vbool4_t op4, vint8m2_t op5, vint8m2_t op6, vint8m2_t op7, vint8m2_t op8, const int8_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e8_v_i8mf2_m)))
-void vlsseg4e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vbool16_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, const int8_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e8_v_i8mf4_m)))
-void vlsseg4e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vbool32_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, const int8_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e8_v_i8mf8_m)))
-void vlsseg4e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vbool64_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, const int8_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e8_v_u8m1_m)))
-void vlsseg4e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vbool8_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, const uint8_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e8_v_u8m2_m)))
-void vlsseg4e8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, vbool4_t op4, vuint8m2_t op5, vuint8m2_t op6, vuint8m2_t op7, vuint8m2_t op8, const uint8_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e8_v_u8mf2_m)))
-void vlsseg4e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vbool16_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, const uint8_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e8_v_u8mf4_m)))
-void vlsseg4e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vbool32_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, const uint8_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e8_v_u8mf8_m)))
-void vlsseg4e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vbool64_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, const uint8_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e8_v_i8m1_m)))
-void vlsseg5e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vbool8_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, const int8_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e8_v_i8mf2_m)))
-void vlsseg5e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vbool16_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, const int8_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e8_v_i8mf4_m)))
-void vlsseg5e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vbool32_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, const int8_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e8_v_i8mf8_m)))
-void vlsseg5e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vbool64_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, const int8_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e8_v_u8m1_m)))
-void vlsseg5e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vbool8_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, const uint8_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e8_v_u8mf2_m)))
-void vlsseg5e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vbool16_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, const uint8_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e8_v_u8mf4_m)))
-void vlsseg5e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vbool32_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, const uint8_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e8_v_u8mf8_m)))
-void vlsseg5e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vbool64_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, const uint8_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e8_v_i8m1_m)))
-void vlsseg6e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vbool8_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, const int8_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e8_v_i8mf2_m)))
-void vlsseg6e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vbool16_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, const int8_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e8_v_i8mf4_m)))
-void vlsseg6e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vbool32_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, const int8_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e8_v_i8mf8_m)))
-void vlsseg6e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vbool64_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, const int8_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e8_v_u8m1_m)))
-void vlsseg6e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vbool8_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, const uint8_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e8_v_u8mf2_m)))
-void vlsseg6e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vbool16_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, const uint8_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e8_v_u8mf4_m)))
-void vlsseg6e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vbool32_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, const uint8_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e8_v_u8mf8_m)))
-void vlsseg6e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vbool64_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, const uint8_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e8_v_i8m1_m)))
-void vlsseg7e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vbool8_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, const int8_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e8_v_i8mf2_m)))
-void vlsseg7e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vbool16_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, const int8_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e8_v_i8mf4_m)))
-void vlsseg7e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vbool32_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, const int8_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e8_v_i8mf8_m)))
-void vlsseg7e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vbool64_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, const int8_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e8_v_u8m1_m)))
-void vlsseg7e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vbool8_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, const uint8_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e8_v_u8mf2_m)))
-void vlsseg7e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vbool16_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, const uint8_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e8_v_u8mf4_m)))
-void vlsseg7e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vbool32_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, const uint8_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e8_v_u8mf8_m)))
-void vlsseg7e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vbool64_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, const uint8_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e8_v_i8m1_m)))
-void vlsseg8e8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, vbool8_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, vint8m1_t op15, vint8m1_t op16, const int8_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e8_v_i8mf2_m)))
-void vlsseg8e8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, vbool16_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, vint8mf2_t op15, vint8mf2_t op16, const int8_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e8_v_i8mf4_m)))
-void vlsseg8e8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, vbool32_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, vint8mf4_t op15, vint8mf4_t op16, const int8_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e8_v_i8mf8_m)))
-void vlsseg8e8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, vbool64_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, vint8mf8_t op15, vint8mf8_t op16, const int8_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8m1)))
-void vsseg2e8(int8_t * op0, vint8m1_t op1, vint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8m1_m)))
-void vsseg2e8(vbool8_t op0, int8_t * op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8m2)))
-void vsseg2e8(int8_t * op0, vint8m2_t op1, vint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8m2_m)))
-void vsseg2e8(vbool4_t op0, int8_t * op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8m4)))
-void vsseg2e8(int8_t * op0, vint8m4_t op1, vint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8m4_m)))
-void vsseg2e8(vbool2_t op0, int8_t * op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8mf2)))
-void vsseg2e8(int8_t * op0, vint8mf2_t op1, vint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8mf2_m)))
-void vsseg2e8(vbool16_t op0, int8_t * op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8mf4)))
-void vsseg2e8(int8_t * op0, vint8mf4_t op1, vint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8mf4_m)))
-void vsseg2e8(vbool32_t op0, int8_t * op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8mf8)))
-void vsseg2e8(int8_t * op0, vint8mf8_t op1, vint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_i8mf8_m)))
-void vsseg2e8(vbool64_t op0, int8_t * op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e8_v_u8m1_m)))
-void vlsseg8e8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, vbool8_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, vuint8m1_t op15, vuint8m1_t op16, const uint8_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e8_v_u8mf2_m)))
-void vlsseg8e8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, vbool16_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, vuint8mf2_t op15, vuint8mf2_t op16, const uint8_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e8_v_u8mf4_m)))
-void vlsseg8e8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, vbool32_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, vuint8mf4_t op15, vuint8mf4_t op16, const uint8_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e8_v_u8mf8_m)))
-void vlsseg8e8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, vbool64_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, vuint8mf8_t op15, vuint8mf8_t op16, const uint8_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_i16m1_m)))
-void vlsseg2e16(vint16m1_t * op0, vint16m1_t * op1, vbool16_t op2, vint16m1_t op3, vint16m1_t op4, const int16_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_i16m2_m)))
-void vlsseg2e16(vint16m2_t * op0, vint16m2_t * op1, vbool8_t op2, vint16m2_t op3, vint16m2_t op4, const int16_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_i16m4_m)))
-void vlsseg2e16(vint16m4_t * op0, vint16m4_t * op1, vbool4_t op2, vint16m4_t op3, vint16m4_t op4, const int16_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_i16mf2_m)))
-void vlsseg2e16(vint16mf2_t * op0, vint16mf2_t * op1, vbool32_t op2, vint16mf2_t op3, vint16mf2_t op4, const int16_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_i16mf4_m)))
-void vlsseg2e16(vint16mf4_t * op0, vint16mf4_t * op1, vbool64_t op2, vint16mf4_t op3, vint16mf4_t op4, const int16_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_u16m1_m)))
-void vlsseg2e16(vuint16m1_t * op0, vuint16m1_t * op1, vbool16_t op2, vuint16m1_t op3, vuint16m1_t op4, const uint16_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_u16m2_m)))
-void vlsseg2e16(vuint16m2_t * op0, vuint16m2_t * op1, vbool8_t op2, vuint16m2_t op3, vuint16m2_t op4, const uint16_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_u16m4_m)))
-void vlsseg2e16(vuint16m4_t * op0, vuint16m4_t * op1, vbool4_t op2, vuint16m4_t op3, vuint16m4_t op4, const uint16_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_u16mf2_m)))
-void vlsseg2e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vbool32_t op2, vuint16mf2_t op3, vuint16mf2_t op4, const uint16_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_u16mf4_m)))
-void vlsseg2e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vbool64_t op2, vuint16mf4_t op3, vuint16mf4_t op4, const uint16_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_i16m1_m)))
-void vlsseg3e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vbool16_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, const int16_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_i16m2_m)))
-void vlsseg3e16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vbool8_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, const int16_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_i16mf2_m)))
-void vlsseg3e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vbool32_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, const int16_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_i16mf4_m)))
-void vlsseg3e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vbool64_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, const int16_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_u16m1_m)))
-void vlsseg3e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vbool16_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, const uint16_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_u16m2_m)))
-void vlsseg3e16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vbool8_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, const uint16_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_u16mf2_m)))
-void vlsseg3e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vbool32_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, const uint16_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_u16mf4_m)))
-void vlsseg3e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vbool64_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, const uint16_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_i16m1_m)))
-void vlsseg4e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vbool16_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, const int16_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_i16m2_m)))
-void vlsseg4e16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, vbool8_t op4, vint16m2_t op5, vint16m2_t op6, vint16m2_t op7, vint16m2_t op8, const int16_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_i16mf2_m)))
-void vlsseg4e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vbool32_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, const int16_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_i16mf4_m)))
-void vlsseg4e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vbool64_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, const int16_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_u16m1_m)))
-void vlsseg4e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vbool16_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, const uint16_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_u16m2_m)))
-void vlsseg4e16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, vbool8_t op4, vuint16m2_t op5, vuint16m2_t op6, vuint16m2_t op7, vuint16m2_t op8, const uint16_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_u16mf2_m)))
-void vlsseg4e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vbool32_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, const uint16_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_u16mf4_m)))
-void vlsseg4e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vbool64_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, const uint16_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e16_v_i16m1_m)))
-void vlsseg5e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vbool16_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, const int16_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e16_v_i16mf2_m)))
-void vlsseg5e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vbool32_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, const int16_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e16_v_i16mf4_m)))
-void vlsseg5e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vbool64_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, const int16_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e16_v_u16m1_m)))
-void vlsseg5e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vbool16_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, const uint16_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e16_v_u16mf2_m)))
-void vlsseg5e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vbool32_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, const uint16_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e16_v_u16mf4_m)))
-void vlsseg5e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vbool64_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, const uint16_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e16_v_i16m1_m)))
-void vlsseg6e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vbool16_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, const int16_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e16_v_i16mf2_m)))
-void vlsseg6e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vbool32_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, const int16_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e16_v_i16mf4_m)))
-void vlsseg6e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vbool64_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, const int16_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8m1)))
-void vsseg2e8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8m1_m)))
-void vsseg2e8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8m2)))
-void vsseg2e8(uint8_t * op0, vuint8m2_t op1, vuint8m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8m2_m)))
-void vsseg2e8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8m4)))
-void vsseg2e8(uint8_t * op0, vuint8m4_t op1, vuint8m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8m4_m)))
-void vsseg2e8(vbool2_t op0, uint8_t * op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8mf2)))
-void vsseg2e8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8mf2_m)))
-void vsseg2e8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8mf4)))
-void vsseg2e8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8mf4_m)))
-void vsseg2e8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8mf8)))
-void vsseg2e8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e8_v_u8mf8_m)))
-void vsseg2e8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e16_v_u16m1_m)))
-void vlsseg6e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vbool16_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, const uint16_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e16_v_u16mf2_m)))
-void vlsseg6e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vbool32_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, const uint16_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e16_v_u16mf4_m)))
-void vlsseg6e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vbool64_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, const uint16_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e16_v_i16m1_m)))
-void vlsseg7e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vbool16_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, const int16_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e16_v_i16mf2_m)))
-void vlsseg7e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vbool32_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, const int16_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e16_v_i16mf4_m)))
-void vlsseg7e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vbool64_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, const int16_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e16_v_u16m1_m)))
-void vlsseg7e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vbool16_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, const uint16_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e16_v_u16mf2_m)))
-void vlsseg7e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vbool32_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, const uint16_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e16_v_u16mf4_m)))
-void vlsseg7e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vbool64_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, const uint16_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e16_v_i16m1_m)))
-void vlsseg8e16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, vbool16_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, vint16m1_t op15, vint16m1_t op16, const int16_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e16_v_i16mf2_m)))
-void vlsseg8e16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, vbool32_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, vint16mf2_t op15, vint16mf2_t op16, const int16_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e16_v_i16mf4_m)))
-void vlsseg8e16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, vbool64_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, vint16mf4_t op15, vint16mf4_t op16, const int16_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e16_v_u16m1_m)))
-void vlsseg8e16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, vbool16_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, vuint16m1_t op15, vuint16m1_t op16, const uint16_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e16_v_u16mf2_m)))
-void vlsseg8e16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, vbool32_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, vuint16mf2_t op15, vuint16mf2_t op16, const uint16_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e16_v_u16mf4_m)))
-void vlsseg8e16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, vbool64_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, vuint16mf4_t op15, vuint16mf4_t op16, const uint16_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_i32m1_m)))
-void vlsseg2e32(vint32m1_t * op0, vint32m1_t * op1, vbool32_t op2, vint32m1_t op3, vint32m1_t op4, const int32_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_i32m2_m)))
-void vlsseg2e32(vint32m2_t * op0, vint32m2_t * op1, vbool16_t op2, vint32m2_t op3, vint32m2_t op4, const int32_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_i32m4_m)))
-void vlsseg2e32(vint32m4_t * op0, vint32m4_t * op1, vbool8_t op2, vint32m4_t op3, vint32m4_t op4, const int32_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_i32mf2_m)))
-void vlsseg2e32(vint32mf2_t * op0, vint32mf2_t * op1, vbool64_t op2, vint32mf2_t op3, vint32mf2_t op4, const int32_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_u32m1_m)))
-void vlsseg2e32(vuint32m1_t * op0, vuint32m1_t * op1, vbool32_t op2, vuint32m1_t op3, vuint32m1_t op4, const uint32_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_u32m2_m)))
-void vlsseg2e32(vuint32m2_t * op0, vuint32m2_t * op1, vbool16_t op2, vuint32m2_t op3, vuint32m2_t op4, const uint32_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_u32m4_m)))
-void vlsseg2e32(vuint32m4_t * op0, vuint32m4_t * op1, vbool8_t op2, vuint32m4_t op3, vuint32m4_t op4, const uint32_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_u32mf2_m)))
-void vlsseg2e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vbool64_t op2, vuint32mf2_t op3, vuint32mf2_t op4, const uint32_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e32_v_i32m1_m)))
-void vlsseg3e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vbool32_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, const int32_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e32_v_i32m2_m)))
-void vlsseg3e32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vbool16_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, const int32_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e32_v_i32mf2_m)))
-void vlsseg3e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vbool64_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, const int32_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e32_v_u32m1_m)))
-void vlsseg3e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vbool32_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, const uint32_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e32_v_u32m2_m)))
-void vlsseg3e32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vbool16_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, const uint32_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e32_v_u32mf2_m)))
-void vlsseg3e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vbool64_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, const uint32_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e32_v_i32m1_m)))
-void vlsseg4e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vbool32_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, const int32_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e32_v_i32m2_m)))
-void vlsseg4e32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, vbool16_t op4, vint32m2_t op5, vint32m2_t op6, vint32m2_t op7, vint32m2_t op8, const int32_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e32_v_i32mf2_m)))
-void vlsseg4e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vbool64_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, const int32_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e32_v_u32m1_m)))
-void vlsseg4e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vbool32_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, const uint32_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e32_v_u32m2_m)))
-void vlsseg4e32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, vbool16_t op4, vuint32m2_t op5, vuint32m2_t op6, vuint32m2_t op7, vuint32m2_t op8, const uint32_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e32_v_u32mf2_m)))
-void vlsseg4e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vbool64_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, const uint32_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e32_v_i32m1_m)))
-void vlsseg5e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vbool32_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, const int32_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e32_v_i32mf2_m)))
-void vlsseg5e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vbool64_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, const int32_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e32_v_u32m1_m)))
-void vlsseg5e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vbool32_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, const uint32_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e32_v_u32mf2_m)))
-void vlsseg5e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vbool64_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, const uint32_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e32_v_i32m1_m)))
-void vlsseg6e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vbool32_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, const int32_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e32_v_i32mf2_m)))
-void vlsseg6e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vbool64_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, const int32_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e32_v_u32m1_m)))
-void vlsseg6e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vbool32_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, const uint32_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e32_v_u32mf2_m)))
-void vlsseg6e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vbool64_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, const uint32_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e32_v_i32m1_m)))
-void vlsseg7e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vbool32_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, const int32_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e32_v_i32mf2_m)))
-void vlsseg7e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vbool64_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, const int32_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e32_v_u32m1_m)))
-void vlsseg7e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vbool32_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, const uint32_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e32_v_u32mf2_m)))
-void vlsseg7e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vbool64_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, const uint32_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e32_v_i32m1_m)))
-void vlsseg8e32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, vbool32_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, vint32m1_t op15, vint32m1_t op16, const int32_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e32_v_i32mf2_m)))
-void vlsseg8e32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, vbool64_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, vint32mf2_t op15, vint32mf2_t op16, const int32_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e32_v_u32m1_m)))
-void vlsseg8e32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, vbool32_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, vuint32m1_t op15, vuint32m1_t op16, const uint32_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e32_v_u32mf2_m)))
-void vlsseg8e32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, vbool64_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, vuint32mf2_t op15, vuint32mf2_t op16, const uint32_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e64_v_i64m1_m)))
-void vlsseg2e64(vint64m1_t * op0, vint64m1_t * op1, vbool64_t op2, vint64m1_t op3, vint64m1_t op4, const int64_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e64_v_i64m2_m)))
-void vlsseg2e64(vint64m2_t * op0, vint64m2_t * op1, vbool32_t op2, vint64m2_t op3, vint64m2_t op4, const int64_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e64_v_i64m4_m)))
-void vlsseg2e64(vint64m4_t * op0, vint64m4_t * op1, vbool16_t op2, vint64m4_t op3, vint64m4_t op4, const int64_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e64_v_u64m1_m)))
-void vlsseg2e64(vuint64m1_t * op0, vuint64m1_t * op1, vbool64_t op2, vuint64m1_t op3, vuint64m1_t op4, const uint64_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e64_v_u64m2_m)))
-void vlsseg2e64(vuint64m2_t * op0, vuint64m2_t * op1, vbool32_t op2, vuint64m2_t op3, vuint64m2_t op4, const uint64_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e64_v_u64m4_m)))
-void vlsseg2e64(vuint64m4_t * op0, vuint64m4_t * op1, vbool16_t op2, vuint64m4_t op3, vuint64m4_t op4, const uint64_t * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e64_v_i64m1_m)))
-void vlsseg3e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vbool64_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, const int64_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e64_v_i64m2_m)))
-void vlsseg3e64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vbool32_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, const int64_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e64_v_u64m1_m)))
-void vlsseg3e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vbool64_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, const uint64_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e64_v_u64m2_m)))
-void vlsseg3e64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vbool32_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, const uint64_t * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e64_v_i64m1_m)))
-void vlsseg4e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vbool64_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, const int64_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e64_v_i64m2_m)))
-void vlsseg4e64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, vbool32_t op4, vint64m2_t op5, vint64m2_t op6, vint64m2_t op7, vint64m2_t op8, const int64_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e64_v_u64m1_m)))
-void vlsseg4e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vbool64_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, const uint64_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e64_v_u64m2_m)))
-void vlsseg4e64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, vbool32_t op4, vuint64m2_t op5, vuint64m2_t op6, vuint64m2_t op7, vuint64m2_t op8, const uint64_t * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e64_v_i64m1_m)))
-void vlsseg5e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vbool64_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, const int64_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e64_v_u64m1_m)))
-void vlsseg5e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vbool64_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, const uint64_t * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e64_v_i64m1_m)))
-void vlsseg6e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vbool64_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, const int64_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e64_v_u64m1_m)))
-void vlsseg6e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vbool64_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, const uint64_t * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e64_v_i64m1_m)))
-void vlsseg7e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vbool64_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, const int64_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e64_v_u64m1_m)))
-void vlsseg7e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vbool64_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, const uint64_t * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e64_v_i64m1_m)))
-void vlsseg8e64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, vbool64_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, vint64m1_t op15, vint64m1_t op16, const int64_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e64_v_u64m1_m)))
-void vlsseg8e64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, vbool64_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, vuint64m1_t op15, vuint64m1_t op16, const uint64_t * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i8m1)))
-void vluxseg3ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, const int8_t * op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i8m1_m)))
-void vluxseg3ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vbool8_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, const int8_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i8m2)))
-void vluxseg3ei8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, const int8_t * op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i8m2_m)))
-void vluxseg3ei8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vbool4_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, const int8_t * op7, vuint8m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i8mf2)))
-void vluxseg3ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, const int8_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i8mf2_m)))
-void vluxseg3ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vbool16_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, const int8_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i8mf4)))
-void vluxseg3ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, const int8_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i8mf4_m)))
-void vluxseg3ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vbool32_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, const int8_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i8mf8)))
-void vluxseg3ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, const int8_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i8mf8_m)))
-void vluxseg3ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vbool64_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, const int8_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u8m1)))
-void vluxseg3ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, const uint8_t * op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u8m1_m)))
-void vluxseg3ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vbool8_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, const uint8_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u8m2)))
-void vluxseg3ei8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, const uint8_t * op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u8m2_m)))
-void vluxseg3ei8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vbool4_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, const uint8_t * op7, vuint8m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u8mf2)))
-void vluxseg3ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, const uint8_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u8mf2_m)))
-void vluxseg3ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vbool16_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, const uint8_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u8mf4)))
-void vluxseg3ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, const uint8_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u8mf4_m)))
-void vluxseg3ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vbool32_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, const uint8_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u8mf8)))
-void vluxseg3ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, const uint8_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u8mf8_m)))
-void vluxseg3ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vbool64_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, const uint8_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i8m1)))
-void vluxseg4ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, const int8_t * op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i8m1_m)))
-void vluxseg4ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vbool8_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, const int8_t * op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i8m2)))
-void vluxseg4ei8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, const int8_t * op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i8m2_m)))
-void vluxseg4ei8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, vbool4_t op4, vint8m2_t op5, vint8m2_t op6, vint8m2_t op7, vint8m2_t op8, const int8_t * op9, vuint8m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i8mf2)))
-void vluxseg4ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, const int8_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i8mf2_m)))
-void vluxseg4ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vbool16_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, const int8_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i8mf4)))
-void vluxseg4ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, const int8_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i8mf4_m)))
-void vluxseg4ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vbool32_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, const int8_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i8mf8)))
-void vluxseg4ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, const int8_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i8mf8_m)))
-void vluxseg4ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vbool64_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, const int8_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u8m1)))
-void vluxseg4ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, const uint8_t * op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u8m1_m)))
-void vluxseg4ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vbool8_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, const uint8_t * op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u8m2)))
-void vluxseg4ei8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, const uint8_t * op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u8m2_m)))
-void vluxseg4ei8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, vbool4_t op4, vuint8m2_t op5, vuint8m2_t op6, vuint8m2_t op7, vuint8m2_t op8, const uint8_t * op9, vuint8m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u8mf2)))
-void vluxseg4ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, const uint8_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u8mf2_m)))
-void vluxseg4ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vbool16_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, const uint8_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u8mf4)))
-void vluxseg4ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, const uint8_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u8mf4_m)))
-void vluxseg4ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vbool32_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, const uint8_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u8mf8)))
-void vluxseg4ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, const uint8_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u8mf8_m)))
-void vluxseg4ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vbool64_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, const uint8_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i8m1)))
-void vluxseg5ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, const int8_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i8m1_m)))
-void vluxseg5ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vbool8_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, const int8_t * op11, vuint8m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i8mf2)))
-void vluxseg5ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, const int8_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i8mf2_m)))
-void vluxseg5ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vbool16_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, const int8_t * op11, vuint8mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i8mf4)))
-void vluxseg5ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, const int8_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i8mf4_m)))
-void vluxseg5ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vbool32_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, const int8_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i8mf8)))
-void vluxseg5ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, const int8_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i8mf8_m)))
-void vluxseg5ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vbool64_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, const int8_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u8m1)))
-void vluxseg5ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, const uint8_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u8m1_m)))
-void vluxseg5ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vbool8_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, const uint8_t * op11, vuint8m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u8mf2)))
-void vluxseg5ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, const uint8_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u8mf2_m)))
-void vluxseg5ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vbool16_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, const uint8_t * op11, vuint8mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u8mf4)))
-void vluxseg5ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, const uint8_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u8mf4_m)))
-void vluxseg5ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vbool32_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, const uint8_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u8mf8)))
-void vluxseg5ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, const uint8_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u8mf8_m)))
-void vluxseg5ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vbool64_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, const uint8_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i8m1)))
-void vluxseg6ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, const int8_t * op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i8m1_m)))
-void vluxseg6ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vbool8_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, const int8_t * op13, vuint8m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i8mf2)))
-void vluxseg6ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, const int8_t * op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i8mf2_m)))
-void vluxseg6ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vbool16_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, const int8_t * op13, vuint8mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i8mf4)))
-void vluxseg6ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, const int8_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i8mf4_m)))
-void vluxseg6ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vbool32_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, const int8_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i8mf8)))
-void vluxseg6ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, const int8_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i8mf8_m)))
-void vluxseg6ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vbool64_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, const int8_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u8m1)))
-void vluxseg6ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, const uint8_t * op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u8m1_m)))
-void vluxseg6ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vbool8_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, const uint8_t * op13, vuint8m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u8mf2)))
-void vluxseg6ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, const uint8_t * op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u8mf2_m)))
-void vluxseg6ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vbool16_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, const uint8_t * op13, vuint8mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u8mf4)))
-void vluxseg6ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, const uint8_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u8mf4_m)))
-void vluxseg6ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vbool32_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, const uint8_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u8mf8)))
-void vluxseg6ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, const uint8_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u8mf8_m)))
-void vluxseg6ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vbool64_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, const uint8_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i8m1)))
-void vluxseg7ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, const int8_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i8m1_m)))
-void vluxseg7ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vbool8_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, const int8_t * op15, vuint8m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i8mf2)))
-void vluxseg7ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, const int8_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i8mf2_m)))
-void vluxseg7ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vbool16_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, const int8_t * op15, vuint8mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i8mf4)))
-void vluxseg7ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, const int8_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i8mf4_m)))
-void vluxseg7ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vbool32_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, const int8_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i8mf8)))
-void vluxseg7ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, const int8_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i8mf8_m)))
-void vluxseg7ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vbool64_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, const int8_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u8m1)))
-void vluxseg7ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, const uint8_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u8m1_m)))
-void vluxseg7ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vbool8_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, const uint8_t * op15, vuint8m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u8mf2)))
-void vluxseg7ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, const uint8_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u8mf2_m)))
-void vluxseg7ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vbool16_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, const uint8_t * op15, vuint8mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u8mf4)))
-void vluxseg7ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, const uint8_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u8mf4_m)))
-void vluxseg7ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vbool32_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, const uint8_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u8mf8)))
-void vluxseg7ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, const uint8_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u8mf8_m)))
-void vluxseg7ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vbool64_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, const uint8_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i8m1)))
-void vluxseg8ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, const int8_t * op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i8m1_m)))
-void vluxseg8ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, vbool8_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, vint8m1_t op15, vint8m1_t op16, const int8_t * op17, vuint8m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i8mf2)))
-void vluxseg8ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, const int8_t * op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i8mf2_m)))
-void vluxseg8ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, vbool16_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, vint8mf2_t op15, vint8mf2_t op16, const int8_t * op17, vuint8mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i8mf4)))
-void vluxseg8ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, const int8_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i8mf4_m)))
-void vluxseg8ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, vbool32_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, vint8mf4_t op15, vint8mf4_t op16, const int8_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i8mf8)))
-void vluxseg8ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, const int8_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i8mf8_m)))
-void vluxseg8ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, vbool64_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, vint8mf8_t op15, vint8mf8_t op16, const int8_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u8m1)))
-void vluxseg8ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, const uint8_t * op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u8m1_m)))
-void vluxseg8ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, vbool8_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, vuint8m1_t op15, vuint8m1_t op16, const uint8_t * op17, vuint8m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u8mf2)))
-void vluxseg8ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, const uint8_t * op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u8mf2_m)))
-void vluxseg8ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, vbool16_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, vuint8mf2_t op15, vuint8mf2_t op16, const uint8_t * op17, vuint8mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u8mf4)))
-void vluxseg8ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, const uint8_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u8mf4_m)))
-void vluxseg8ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, vbool32_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, vuint8mf4_t op15, vuint8mf4_t op16, const uint8_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u8mf8)))
-void vluxseg8ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, const uint8_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u8mf8_m)))
-void vluxseg8ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, vbool64_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, vuint8mf8_t op15, vuint8mf8_t op16, const uint8_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8m1)))
-void vluxseg2ei16(vint8m1_t * op0, vint8m1_t * op1, const int8_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8m1_m)))
-void vluxseg2ei16(vint8m1_t * op0, vint8m1_t * op1, vbool8_t op2, vint8m1_t op3, vint8m1_t op4, const int8_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8m2)))
-void vluxseg2ei16(vint8m2_t * op0, vint8m2_t * op1, const int8_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8m2_m)))
-void vluxseg2ei16(vint8m2_t * op0, vint8m2_t * op1, vbool4_t op2, vint8m2_t op3, vint8m2_t op4, const int8_t * op5, vuint16m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8m4)))
-void vluxseg2ei16(vint8m4_t * op0, vint8m4_t * op1, const int8_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8m4_m)))
-void vluxseg2ei16(vint8m4_t * op0, vint8m4_t * op1, vbool2_t op2, vint8m4_t op3, vint8m4_t op4, const int8_t * op5, vuint16m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8mf2)))
-void vluxseg2ei16(vint8mf2_t * op0, vint8mf2_t * op1, const int8_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8mf2_m)))
-void vluxseg2ei16(vint8mf2_t * op0, vint8mf2_t * op1, vbool16_t op2, vint8mf2_t op3, vint8mf2_t op4, const int8_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8mf4)))
-void vluxseg2ei16(vint8mf4_t * op0, vint8mf4_t * op1, const int8_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8mf4_m)))
-void vluxseg2ei16(vint8mf4_t * op0, vint8mf4_t * op1, vbool32_t op2, vint8mf4_t op3, vint8mf4_t op4, const int8_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8mf8)))
-void vluxseg2ei16(vint8mf8_t * op0, vint8mf8_t * op1, const int8_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i8mf8_m)))
-void vluxseg2ei16(vint8mf8_t * op0, vint8mf8_t * op1, vbool64_t op2, vint8mf8_t op3, vint8mf8_t op4, const int8_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8m1)))
-void vluxseg2ei16(vuint8m1_t * op0, vuint8m1_t * op1, const uint8_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8m1_m)))
-void vluxseg2ei16(vuint8m1_t * op0, vuint8m1_t * op1, vbool8_t op2, vuint8m1_t op3, vuint8m1_t op4, const uint8_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8m2)))
-void vluxseg2ei16(vuint8m2_t * op0, vuint8m2_t * op1, const uint8_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8m2_m)))
-void vluxseg2ei16(vuint8m2_t * op0, vuint8m2_t * op1, vbool4_t op2, vuint8m2_t op3, vuint8m2_t op4, const uint8_t * op5, vuint16m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8m4)))
-void vluxseg2ei16(vuint8m4_t * op0, vuint8m4_t * op1, const uint8_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8m4_m)))
-void vluxseg2ei16(vuint8m4_t * op0, vuint8m4_t * op1, vbool2_t op2, vuint8m4_t op3, vuint8m4_t op4, const uint8_t * op5, vuint16m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8mf2)))
-void vluxseg2ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, const uint8_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8mf2_m)))
-void vluxseg2ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vbool16_t op2, vuint8mf2_t op3, vuint8mf2_t op4, const uint8_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8mf4)))
-void vluxseg2ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, const uint8_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8mf4_m)))
-void vluxseg2ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vbool32_t op2, vuint8mf4_t op3, vuint8mf4_t op4, const uint8_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8mf8)))
-void vluxseg2ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, const uint8_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u8mf8_m)))
-void vluxseg2ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vbool64_t op2, vuint8mf8_t op3, vuint8mf8_t op4, const uint8_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i8m1)))
-void vluxseg3ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, const int8_t * op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i8m1_m)))
-void vluxseg3ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vbool8_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, const int8_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i8m2)))
-void vluxseg3ei16(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, const int8_t * op3, vuint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i8m2_m)))
-void vluxseg3ei16(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vbool4_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, const int8_t * op7, vuint16m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i8mf2)))
-void vluxseg3ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, const int8_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i8mf2_m)))
-void vluxseg3ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vbool16_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, const int8_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i8mf4)))
-void vluxseg3ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, const int8_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i8mf4_m)))
-void vluxseg3ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vbool32_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, const int8_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i8mf8)))
-void vluxseg3ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, const int8_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i8mf8_m)))
-void vluxseg3ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vbool64_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, const int8_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u8m1)))
-void vluxseg3ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, const uint8_t * op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u8m1_m)))
-void vluxseg3ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vbool8_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, const uint8_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u8m2)))
-void vluxseg3ei16(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, const uint8_t * op3, vuint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u8m2_m)))
-void vluxseg3ei16(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vbool4_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, const uint8_t * op7, vuint16m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u8mf2)))
-void vluxseg3ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, const uint8_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u8mf2_m)))
-void vluxseg3ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vbool16_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, const uint8_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u8mf4)))
-void vluxseg3ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, const uint8_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u8mf4_m)))
-void vluxseg3ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vbool32_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, const uint8_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u8mf8)))
-void vluxseg3ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, const uint8_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u8mf8_m)))
-void vluxseg3ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vbool64_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, const uint8_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i8m1)))
-void vluxseg4ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, const int8_t * op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i8m1_m)))
-void vluxseg4ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vbool8_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, const int8_t * op9, vuint16m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i8m2)))
-void vluxseg4ei16(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, const int8_t * op4, vuint16m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i8m2_m)))
-void vluxseg4ei16(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, vbool4_t op4, vint8m2_t op5, vint8m2_t op6, vint8m2_t op7, vint8m2_t op8, const int8_t * op9, vuint16m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i8mf2)))
-void vluxseg4ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, const int8_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i8mf2_m)))
-void vluxseg4ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vbool16_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, const int8_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i8mf4)))
-void vluxseg4ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, const int8_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i8mf4_m)))
-void vluxseg4ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vbool32_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, const int8_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i8mf8)))
-void vluxseg4ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, const int8_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i8mf8_m)))
-void vluxseg4ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vbool64_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, const int8_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u8m1)))
-void vluxseg4ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, const uint8_t * op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u8m1_m)))
-void vluxseg4ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vbool8_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, const uint8_t * op9, vuint16m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u8m2)))
-void vluxseg4ei16(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, const uint8_t * op4, vuint16m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u8m2_m)))
-void vluxseg4ei16(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, vbool4_t op4, vuint8m2_t op5, vuint8m2_t op6, vuint8m2_t op7, vuint8m2_t op8, const uint8_t * op9, vuint16m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u8mf2)))
-void vluxseg4ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, const uint8_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u8mf2_m)))
-void vluxseg4ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vbool16_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, const uint8_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u8mf4)))
-void vluxseg4ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, const uint8_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u8mf4_m)))
-void vluxseg4ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vbool32_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, const uint8_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u8mf8)))
-void vluxseg4ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, const uint8_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u8mf8_m)))
-void vluxseg4ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vbool64_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, const uint8_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i8m1)))
-void vluxseg5ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, const int8_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i8m1_m)))
-void vluxseg5ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vbool8_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, const int8_t * op11, vuint16m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i8mf2)))
-void vluxseg5ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, const int8_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i8mf2_m)))
-void vluxseg5ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vbool16_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, const int8_t * op11, vuint16m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i8mf4)))
-void vluxseg5ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, const int8_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i8mf4_m)))
-void vluxseg5ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vbool32_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, const int8_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i8mf8)))
-void vluxseg5ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, const int8_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i8mf8_m)))
-void vluxseg5ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vbool64_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, const int8_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u8m1)))
-void vluxseg5ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, const uint8_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u8m1_m)))
-void vluxseg5ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vbool8_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, const uint8_t * op11, vuint16m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u8mf2)))
-void vluxseg5ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, const uint8_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u8mf2_m)))
-void vluxseg5ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vbool16_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, const uint8_t * op11, vuint16m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u8mf4)))
-void vluxseg5ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, const uint8_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u8mf4_m)))
-void vluxseg5ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vbool32_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, const uint8_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u8mf8)))
-void vluxseg5ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, const uint8_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u8mf8_m)))
-void vluxseg5ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vbool64_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, const uint8_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i8m1)))
-void vluxseg6ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, const int8_t * op6, vuint16m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i8m1_m)))
-void vluxseg6ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vbool8_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, const int8_t * op13, vuint16m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i8mf2)))
-void vluxseg6ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, const int8_t * op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i8mf2_m)))
-void vluxseg6ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vbool16_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, const int8_t * op13, vuint16m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i8mf4)))
-void vluxseg6ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, const int8_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i8mf4_m)))
-void vluxseg6ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vbool32_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, const int8_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i8mf8)))
-void vluxseg6ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, const int8_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i8mf8_m)))
-void vluxseg6ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vbool64_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, const int8_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u8m1)))
-void vluxseg6ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, const uint8_t * op6, vuint16m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u8m1_m)))
-void vluxseg6ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vbool8_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, const uint8_t * op13, vuint16m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u8mf2)))
-void vluxseg6ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, const uint8_t * op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u8mf2_m)))
-void vluxseg6ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vbool16_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, const uint8_t * op13, vuint16m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u8mf4)))
-void vluxseg6ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, const uint8_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u8mf4_m)))
-void vluxseg6ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vbool32_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, const uint8_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u8mf8)))
-void vluxseg6ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, const uint8_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u8mf8_m)))
-void vluxseg6ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vbool64_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, const uint8_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i8m1)))
-void vluxseg7ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, const int8_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i8m1_m)))
-void vluxseg7ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vbool8_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, const int8_t * op15, vuint16m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i8mf2)))
-void vluxseg7ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, const int8_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i8mf2_m)))
-void vluxseg7ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vbool16_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, const int8_t * op15, vuint16m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i8mf4)))
-void vluxseg7ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, const int8_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i8mf4_m)))
-void vluxseg7ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vbool32_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, const int8_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i8mf8)))
-void vluxseg7ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, const int8_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i8mf8_m)))
-void vluxseg7ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vbool64_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, const int8_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u8m1)))
-void vluxseg7ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, const uint8_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u8m1_m)))
-void vluxseg7ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vbool8_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, const uint8_t * op15, vuint16m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u8mf2)))
-void vluxseg7ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, const uint8_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u8mf2_m)))
-void vluxseg7ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vbool16_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, const uint8_t * op15, vuint16m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u8mf4)))
-void vluxseg7ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, const uint8_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u8mf4_m)))
-void vluxseg7ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vbool32_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, const uint8_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u8mf8)))
-void vluxseg7ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, const uint8_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u8mf8_m)))
-void vluxseg7ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vbool64_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, const uint8_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i8m1)))
-void vluxseg8ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, const int8_t * op8, vuint16m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i8m1_m)))
-void vluxseg8ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, vbool8_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, vint8m1_t op15, vint8m1_t op16, const int8_t * op17, vuint16m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i8mf2)))
-void vluxseg8ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, const int8_t * op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i8mf2_m)))
-void vluxseg8ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, vbool16_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, vint8mf2_t op15, vint8mf2_t op16, const int8_t * op17, vuint16m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i8mf4)))
-void vluxseg8ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, const int8_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i8mf4_m)))
-void vluxseg8ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, vbool32_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, vint8mf4_t op15, vint8mf4_t op16, const int8_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i8mf8)))
-void vluxseg8ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, const int8_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i8mf8_m)))
-void vluxseg8ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, vbool64_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, vint8mf8_t op15, vint8mf8_t op16, const int8_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u8m1)))
-void vluxseg8ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, const uint8_t * op8, vuint16m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u8m1_m)))
-void vluxseg8ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, vbool8_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, vuint8m1_t op15, vuint8m1_t op16, const uint8_t * op17, vuint16m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u8mf2)))
-void vluxseg8ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, const uint8_t * op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u8mf2_m)))
-void vluxseg8ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, vbool16_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, vuint8mf2_t op15, vuint8mf2_t op16, const uint8_t * op17, vuint16m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u8mf4)))
-void vluxseg8ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, const uint8_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u8mf4_m)))
-void vluxseg8ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, vbool32_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, vuint8mf4_t op15, vuint8mf4_t op16, const uint8_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u8mf8)))
-void vluxseg8ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, const uint8_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u8mf8_m)))
-void vluxseg8ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, vbool64_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, vuint8mf8_t op15, vuint8mf8_t op16, const uint8_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i8m1)))
-void vluxseg2ei32(vint8m1_t * op0, vint8m1_t * op1, const int8_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i8m1_m)))
-void vluxseg2ei32(vint8m1_t * op0, vint8m1_t * op1, vbool8_t op2, vint8m1_t op3, vint8m1_t op4, const int8_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i8m2)))
-void vluxseg2ei32(vint8m2_t * op0, vint8m2_t * op1, const int8_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i8m2_m)))
-void vluxseg2ei32(vint8m2_t * op0, vint8m2_t * op1, vbool4_t op2, vint8m2_t op3, vint8m2_t op4, const int8_t * op5, vuint32m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i8mf2)))
-void vluxseg2ei32(vint8mf2_t * op0, vint8mf2_t * op1, const int8_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i8mf2_m)))
-void vluxseg2ei32(vint8mf2_t * op0, vint8mf2_t * op1, vbool16_t op2, vint8mf2_t op3, vint8mf2_t op4, const int8_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i8mf4)))
-void vluxseg2ei32(vint8mf4_t * op0, vint8mf4_t * op1, const int8_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i8mf4_m)))
-void vluxseg2ei32(vint8mf4_t * op0, vint8mf4_t * op1, vbool32_t op2, vint8mf4_t op3, vint8mf4_t op4, const int8_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i8mf8)))
-void vluxseg2ei32(vint8mf8_t * op0, vint8mf8_t * op1, const int8_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i8mf8_m)))
-void vluxseg2ei32(vint8mf8_t * op0, vint8mf8_t * op1, vbool64_t op2, vint8mf8_t op3, vint8mf8_t op4, const int8_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u8m1)))
-void vluxseg2ei32(vuint8m1_t * op0, vuint8m1_t * op1, const uint8_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u8m1_m)))
-void vluxseg2ei32(vuint8m1_t * op0, vuint8m1_t * op1, vbool8_t op2, vuint8m1_t op3, vuint8m1_t op4, const uint8_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u8m2)))
-void vluxseg2ei32(vuint8m2_t * op0, vuint8m2_t * op1, const uint8_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u8m2_m)))
-void vluxseg2ei32(vuint8m2_t * op0, vuint8m2_t * op1, vbool4_t op2, vuint8m2_t op3, vuint8m2_t op4, const uint8_t * op5, vuint32m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u8mf2)))
-void vluxseg2ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, const uint8_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u8mf2_m)))
-void vluxseg2ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vbool16_t op2, vuint8mf2_t op3, vuint8mf2_t op4, const uint8_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u8mf4)))
-void vluxseg2ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, const uint8_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u8mf4_m)))
-void vluxseg2ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vbool32_t op2, vuint8mf4_t op3, vuint8mf4_t op4, const uint8_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u8mf8)))
-void vluxseg2ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, const uint8_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u8mf8_m)))
-void vluxseg2ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vbool64_t op2, vuint8mf8_t op3, vuint8mf8_t op4, const uint8_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i8m1)))
-void vluxseg3ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, const int8_t * op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i8m1_m)))
-void vluxseg3ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vbool8_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, const int8_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i8m2)))
-void vluxseg3ei32(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, const int8_t * op3, vuint32m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i8m2_m)))
-void vluxseg3ei32(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vbool4_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, const int8_t * op7, vuint32m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i8mf2)))
-void vluxseg3ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, const int8_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i8mf2_m)))
-void vluxseg3ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vbool16_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, const int8_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i8mf4)))
-void vluxseg3ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, const int8_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i8mf4_m)))
-void vluxseg3ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vbool32_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, const int8_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i8mf8)))
-void vluxseg3ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, const int8_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i8mf8_m)))
-void vluxseg3ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vbool64_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, const int8_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u8m1)))
-void vluxseg3ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, const uint8_t * op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u8m1_m)))
-void vluxseg3ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vbool8_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, const uint8_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u8m2)))
-void vluxseg3ei32(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, const uint8_t * op3, vuint32m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u8m2_m)))
-void vluxseg3ei32(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vbool4_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, const uint8_t * op7, vuint32m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u8mf2)))
-void vluxseg3ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, const uint8_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u8mf2_m)))
-void vluxseg3ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vbool16_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, const uint8_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u8mf4)))
-void vluxseg3ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, const uint8_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u8mf4_m)))
-void vluxseg3ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vbool32_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, const uint8_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u8mf8)))
-void vluxseg3ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, const uint8_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u8mf8_m)))
-void vluxseg3ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vbool64_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, const uint8_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i8m1)))
-void vluxseg4ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, const int8_t * op4, vuint32m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i8m1_m)))
-void vluxseg4ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vbool8_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, const int8_t * op9, vuint32m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i8m2)))
-void vluxseg4ei32(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, const int8_t * op4, vuint32m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i8m2_m)))
-void vluxseg4ei32(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, vbool4_t op4, vint8m2_t op5, vint8m2_t op6, vint8m2_t op7, vint8m2_t op8, const int8_t * op9, vuint32m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i8mf2)))
-void vluxseg4ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, const int8_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i8mf2_m)))
-void vluxseg4ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vbool16_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, const int8_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i8mf4)))
-void vluxseg4ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, const int8_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i8mf4_m)))
-void vluxseg4ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vbool32_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, const int8_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i8mf8)))
-void vluxseg4ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, const int8_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i8mf8_m)))
-void vluxseg4ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vbool64_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, const int8_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u8m1)))
-void vluxseg4ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, const uint8_t * op4, vuint32m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u8m1_m)))
-void vluxseg4ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vbool8_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, const uint8_t * op9, vuint32m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u8m2)))
-void vluxseg4ei32(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, const uint8_t * op4, vuint32m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u8m2_m)))
-void vluxseg4ei32(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, vbool4_t op4, vuint8m2_t op5, vuint8m2_t op6, vuint8m2_t op7, vuint8m2_t op8, const uint8_t * op9, vuint32m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u8mf2)))
-void vluxseg4ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, const uint8_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u8mf2_m)))
-void vluxseg4ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vbool16_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, const uint8_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u8mf4)))
-void vluxseg4ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, const uint8_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u8mf4_m)))
-void vluxseg4ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vbool32_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, const uint8_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u8mf8)))
-void vluxseg4ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, const uint8_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u8mf8_m)))
-void vluxseg4ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vbool64_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, const uint8_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i8m1)))
-void vluxseg5ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, const int8_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i8m1_m)))
-void vluxseg5ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vbool8_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, const int8_t * op11, vuint32m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i8mf2)))
-void vluxseg5ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, const int8_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i8mf2_m)))
-void vluxseg5ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vbool16_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, const int8_t * op11, vuint32m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i8mf4)))
-void vluxseg5ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, const int8_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i8mf4_m)))
-void vluxseg5ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vbool32_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, const int8_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i8mf8)))
-void vluxseg5ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, const int8_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i8mf8_m)))
-void vluxseg5ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vbool64_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, const int8_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u8m1)))
-void vluxseg5ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, const uint8_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u8m1_m)))
-void vluxseg5ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vbool8_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, const uint8_t * op11, vuint32m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u8mf2)))
-void vluxseg5ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, const uint8_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u8mf2_m)))
-void vluxseg5ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vbool16_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, const uint8_t * op11, vuint32m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u8mf4)))
-void vluxseg5ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, const uint8_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u8mf4_m)))
-void vluxseg5ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vbool32_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, const uint8_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u8mf8)))
-void vluxseg5ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, const uint8_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u8mf8_m)))
-void vluxseg5ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vbool64_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, const uint8_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i8m1)))
-void vluxseg6ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, const int8_t * op6, vuint32m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i8m1_m)))
-void vluxseg6ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vbool8_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, const int8_t * op13, vuint32m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i8mf2)))
-void vluxseg6ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, const int8_t * op6, vuint32m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i8mf2_m)))
-void vluxseg6ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vbool16_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, const int8_t * op13, vuint32m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i8mf4)))
-void vluxseg6ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, const int8_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i8mf4_m)))
-void vluxseg6ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vbool32_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, const int8_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i8mf8)))
-void vluxseg6ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, const int8_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i8mf8_m)))
-void vluxseg6ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vbool64_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, const int8_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u8m1)))
-void vluxseg6ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, const uint8_t * op6, vuint32m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u8m1_m)))
-void vluxseg6ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vbool8_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, const uint8_t * op13, vuint32m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u8mf2)))
-void vluxseg6ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, const uint8_t * op6, vuint32m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u8mf2_m)))
-void vluxseg6ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vbool16_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, const uint8_t * op13, vuint32m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u8mf4)))
-void vluxseg6ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, const uint8_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u8mf4_m)))
-void vluxseg6ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vbool32_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, const uint8_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u8mf8)))
-void vluxseg6ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, const uint8_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u8mf8_m)))
-void vluxseg6ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vbool64_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, const uint8_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i8m1)))
-void vluxseg7ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, const int8_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i8m1_m)))
-void vluxseg7ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vbool8_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, const int8_t * op15, vuint32m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i8mf2)))
-void vluxseg7ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, const int8_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i8mf2_m)))
-void vluxseg7ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vbool16_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, const int8_t * op15, vuint32m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i8mf4)))
-void vluxseg7ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, const int8_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i8mf4_m)))
-void vluxseg7ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vbool32_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, const int8_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i8mf8)))
-void vluxseg7ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, const int8_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i8mf8_m)))
-void vluxseg7ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vbool64_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, const int8_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u8m1)))
-void vluxseg7ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, const uint8_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u8m1_m)))
-void vluxseg7ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vbool8_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, const uint8_t * op15, vuint32m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u8mf2)))
-void vluxseg7ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, const uint8_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u8mf2_m)))
-void vluxseg7ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vbool16_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, const uint8_t * op15, vuint32m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u8mf4)))
-void vluxseg7ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, const uint8_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u8mf4_m)))
-void vluxseg7ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vbool32_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, const uint8_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u8mf8)))
-void vluxseg7ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, const uint8_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u8mf8_m)))
-void vluxseg7ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vbool64_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, const uint8_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i8m1)))
-void vluxseg8ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, const int8_t * op8, vuint32m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i8m1_m)))
-void vluxseg8ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, vbool8_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, vint8m1_t op15, vint8m1_t op16, const int8_t * op17, vuint32m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i8mf2)))
-void vluxseg8ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, const int8_t * op8, vuint32m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i8mf2_m)))
-void vluxseg8ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, vbool16_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, vint8mf2_t op15, vint8mf2_t op16, const int8_t * op17, vuint32m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i8mf4)))
-void vluxseg8ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, const int8_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i8mf4_m)))
-void vluxseg8ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, vbool32_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, vint8mf4_t op15, vint8mf4_t op16, const int8_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i8mf8)))
-void vluxseg8ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, const int8_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i8mf8_m)))
-void vluxseg8ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, vbool64_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, vint8mf8_t op15, vint8mf8_t op16, const int8_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u8m1)))
-void vluxseg8ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, const uint8_t * op8, vuint32m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u8m1_m)))
-void vluxseg8ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, vbool8_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, vuint8m1_t op15, vuint8m1_t op16, const uint8_t * op17, vuint32m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u8mf2)))
-void vluxseg8ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, const uint8_t * op8, vuint32m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u8mf2_m)))
-void vluxseg8ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, vbool16_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, vuint8mf2_t op15, vuint8mf2_t op16, const uint8_t * op17, vuint32m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u8mf4)))
-void vluxseg8ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, const uint8_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u8mf4_m)))
-void vluxseg8ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, vbool32_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, vuint8mf4_t op15, vuint8mf4_t op16, const uint8_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u8mf8)))
-void vluxseg8ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, const uint8_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u8mf8_m)))
-void vluxseg8ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, vbool64_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, vuint8mf8_t op15, vuint8mf8_t op16, const uint8_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i8m1)))
-void vluxseg2ei64(vint8m1_t * op0, vint8m1_t * op1, const int8_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i8m1_m)))
-void vluxseg2ei64(vint8m1_t * op0, vint8m1_t * op1, vbool8_t op2, vint8m1_t op3, vint8m1_t op4, const int8_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i8mf2)))
-void vluxseg2ei64(vint8mf2_t * op0, vint8mf2_t * op1, const int8_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i8mf2_m)))
-void vluxseg2ei64(vint8mf2_t * op0, vint8mf2_t * op1, vbool16_t op2, vint8mf2_t op3, vint8mf2_t op4, const int8_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i8mf4)))
-void vluxseg2ei64(vint8mf4_t * op0, vint8mf4_t * op1, const int8_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i8mf4_m)))
-void vluxseg2ei64(vint8mf4_t * op0, vint8mf4_t * op1, vbool32_t op2, vint8mf4_t op3, vint8mf4_t op4, const int8_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i8mf8)))
-void vluxseg2ei64(vint8mf8_t * op0, vint8mf8_t * op1, const int8_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i8mf8_m)))
-void vluxseg2ei64(vint8mf8_t * op0, vint8mf8_t * op1, vbool64_t op2, vint8mf8_t op3, vint8mf8_t op4, const int8_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u8m1)))
-void vluxseg2ei64(vuint8m1_t * op0, vuint8m1_t * op1, const uint8_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u8m1_m)))
-void vluxseg2ei64(vuint8m1_t * op0, vuint8m1_t * op1, vbool8_t op2, vuint8m1_t op3, vuint8m1_t op4, const uint8_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u8mf2)))
-void vluxseg2ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, const uint8_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u8mf2_m)))
-void vluxseg2ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vbool16_t op2, vuint8mf2_t op3, vuint8mf2_t op4, const uint8_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u8mf4)))
-void vluxseg2ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, const uint8_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u8mf4_m)))
-void vluxseg2ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vbool32_t op2, vuint8mf4_t op3, vuint8mf4_t op4, const uint8_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u8mf8)))
-void vluxseg2ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, const uint8_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u8mf8_m)))
-void vluxseg2ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vbool64_t op2, vuint8mf8_t op3, vuint8mf8_t op4, const uint8_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i8m1)))
-void vluxseg3ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, const int8_t * op3, vuint64m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i8m1_m)))
-void vluxseg3ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vbool8_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, const int8_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i8mf2)))
-void vluxseg3ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, const int8_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i8mf2_m)))
-void vluxseg3ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vbool16_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, const int8_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i8mf4)))
-void vluxseg3ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, const int8_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i8mf4_m)))
-void vluxseg3ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vbool32_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, const int8_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i8mf8)))
-void vluxseg3ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, const int8_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i8mf8_m)))
-void vluxseg3ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vbool64_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, const int8_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u8m1)))
-void vluxseg3ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, const uint8_t * op3, vuint64m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u8m1_m)))
-void vluxseg3ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vbool8_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, const uint8_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u8mf2)))
-void vluxseg3ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, const uint8_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u8mf2_m)))
-void vluxseg3ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vbool16_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, const uint8_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u8mf4)))
-void vluxseg3ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, const uint8_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u8mf4_m)))
-void vluxseg3ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vbool32_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, const uint8_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u8mf8)))
-void vluxseg3ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, const uint8_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u8mf8_m)))
-void vluxseg3ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vbool64_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, const uint8_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i8m1)))
-void vluxseg4ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, const int8_t * op4, vuint64m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i8m1_m)))
-void vluxseg4ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vbool8_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, const int8_t * op9, vuint64m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i8mf2)))
-void vluxseg4ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, const int8_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i8mf2_m)))
-void vluxseg4ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vbool16_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, const int8_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i8mf4)))
-void vluxseg4ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, const int8_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i8mf4_m)))
-void vluxseg4ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vbool32_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, const int8_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i8mf8)))
-void vluxseg4ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, const int8_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i8mf8_m)))
-void vluxseg4ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vbool64_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, const int8_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u8m1)))
-void vluxseg4ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, const uint8_t * op4, vuint64m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u8m1_m)))
-void vluxseg4ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vbool8_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, const uint8_t * op9, vuint64m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u8mf2)))
-void vluxseg4ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, const uint8_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u8mf2_m)))
-void vluxseg4ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vbool16_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, const uint8_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u8mf4)))
-void vluxseg4ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, const uint8_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u8mf4_m)))
-void vluxseg4ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vbool32_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, const uint8_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u8mf8)))
-void vluxseg4ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, const uint8_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u8mf8_m)))
-void vluxseg4ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vbool64_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, const uint8_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i8m1)))
-void vluxseg5ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, const int8_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i8m1_m)))
-void vluxseg5ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vbool8_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, const int8_t * op11, vuint64m8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i8mf2)))
-void vluxseg5ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, const int8_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i8mf2_m)))
-void vluxseg5ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vbool16_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, const int8_t * op11, vuint64m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i8mf4)))
-void vluxseg5ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, const int8_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i8mf4_m)))
-void vluxseg5ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vbool32_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, const int8_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i8mf8)))
-void vluxseg5ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, const int8_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i8mf8_m)))
-void vluxseg5ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vbool64_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, const int8_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u8m1)))
-void vluxseg5ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, const uint8_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u8m1_m)))
-void vluxseg5ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vbool8_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, const uint8_t * op11, vuint64m8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u8mf2)))
-void vluxseg5ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, const uint8_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u8mf2_m)))
-void vluxseg5ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vbool16_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, const uint8_t * op11, vuint64m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u8mf4)))
-void vluxseg5ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, const uint8_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u8mf4_m)))
-void vluxseg5ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vbool32_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, const uint8_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u8mf8)))
-void vluxseg5ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, const uint8_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u8mf8_m)))
-void vluxseg5ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vbool64_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, const uint8_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i8m1)))
-void vluxseg6ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, const int8_t * op6, vuint64m8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i8m1_m)))
-void vluxseg6ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vbool8_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, const int8_t * op13, vuint64m8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i8mf2)))
-void vluxseg6ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, const int8_t * op6, vuint64m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i8mf2_m)))
-void vluxseg6ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vbool16_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, const int8_t * op13, vuint64m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i8mf4)))
-void vluxseg6ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, const int8_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i8mf4_m)))
-void vluxseg6ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vbool32_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, const int8_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i8mf8)))
-void vluxseg6ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, const int8_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i8mf8_m)))
-void vluxseg6ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vbool64_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, const int8_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u8m1)))
-void vluxseg6ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, const uint8_t * op6, vuint64m8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u8m1_m)))
-void vluxseg6ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vbool8_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, const uint8_t * op13, vuint64m8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u8mf2)))
-void vluxseg6ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, const uint8_t * op6, vuint64m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u8mf2_m)))
-void vluxseg6ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vbool16_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, const uint8_t * op13, vuint64m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u8mf4)))
-void vluxseg6ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, const uint8_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u8mf4_m)))
-void vluxseg6ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vbool32_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, const uint8_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u8mf8)))
-void vluxseg6ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, const uint8_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u8mf8_m)))
-void vluxseg6ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vbool64_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, const uint8_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i8m1)))
-void vluxseg7ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, const int8_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i8m1_m)))
-void vluxseg7ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vbool8_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, const int8_t * op15, vuint64m8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i8mf2)))
-void vluxseg7ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, const int8_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i8mf2_m)))
-void vluxseg7ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vbool16_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, const int8_t * op15, vuint64m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i8mf4)))
-void vluxseg7ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, const int8_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i8mf4_m)))
-void vluxseg7ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vbool32_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, const int8_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i8mf8)))
-void vluxseg7ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, const int8_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i8mf8_m)))
-void vluxseg7ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vbool64_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, const int8_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u8m1)))
-void vluxseg7ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, const uint8_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u8m1_m)))
-void vluxseg7ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vbool8_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, const uint8_t * op15, vuint64m8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u8mf2)))
-void vluxseg7ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, const uint8_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u8mf2_m)))
-void vluxseg7ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vbool16_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, const uint8_t * op15, vuint64m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u8mf4)))
-void vluxseg7ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, const uint8_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u8mf4_m)))
-void vluxseg7ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vbool32_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, const uint8_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u8mf8)))
-void vluxseg7ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, const uint8_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u8mf8_m)))
-void vluxseg7ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vbool64_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, const uint8_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i8m1)))
-void vluxseg8ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, const int8_t * op8, vuint64m8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i8m1_m)))
-void vluxseg8ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, vbool8_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, vint8m1_t op15, vint8m1_t op16, const int8_t * op17, vuint64m8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i8mf2)))
-void vluxseg8ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, const int8_t * op8, vuint64m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i8mf2_m)))
-void vluxseg8ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, vbool16_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, vint8mf2_t op15, vint8mf2_t op16, const int8_t * op17, vuint64m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i8mf4)))
-void vluxseg8ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, const int8_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i8mf4_m)))
-void vluxseg8ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, vbool32_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, vint8mf4_t op15, vint8mf4_t op16, const int8_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i8mf8)))
-void vluxseg8ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, const int8_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i8mf8_m)))
-void vluxseg8ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, vbool64_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, vint8mf8_t op15, vint8mf8_t op16, const int8_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u8m1)))
-void vluxseg8ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, const uint8_t * op8, vuint64m8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u8m1_m)))
-void vluxseg8ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, vbool8_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, vuint8m1_t op15, vuint8m1_t op16, const uint8_t * op17, vuint64m8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u8mf2)))
-void vluxseg8ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, const uint8_t * op8, vuint64m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u8mf2_m)))
-void vluxseg8ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, vbool16_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, vuint8mf2_t op15, vuint8mf2_t op16, const uint8_t * op17, vuint64m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u8mf4)))
-void vluxseg8ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, const uint8_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u8mf4_m)))
-void vluxseg8ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, vbool32_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, vuint8mf4_t op15, vuint8mf4_t op16, const uint8_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u8mf8)))
-void vluxseg8ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, const uint8_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u8mf8_m)))
-void vluxseg8ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, vbool64_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, vuint8mf8_t op15, vuint8mf8_t op16, const uint8_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i16m1)))
-void vluxseg2ei8(vint16m1_t * op0, vint16m1_t * op1, const int16_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i16m1_m)))
-void vluxseg2ei8(vint16m1_t * op0, vint16m1_t * op1, vbool16_t op2, vint16m1_t op3, vint16m1_t op4, const int16_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i16m2)))
-void vluxseg2ei8(vint16m2_t * op0, vint16m2_t * op1, const int16_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i16m2_m)))
-void vluxseg2ei8(vint16m2_t * op0, vint16m2_t * op1, vbool8_t op2, vint16m2_t op3, vint16m2_t op4, const int16_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i16m4)))
-void vluxseg2ei8(vint16m4_t * op0, vint16m4_t * op1, const int16_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i16m4_m)))
-void vluxseg2ei8(vint16m4_t * op0, vint16m4_t * op1, vbool4_t op2, vint16m4_t op3, vint16m4_t op4, const int16_t * op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i16mf2)))
-void vluxseg2ei8(vint16mf2_t * op0, vint16mf2_t * op1, const int16_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i16mf2_m)))
-void vluxseg2ei8(vint16mf2_t * op0, vint16mf2_t * op1, vbool32_t op2, vint16mf2_t op3, vint16mf2_t op4, const int16_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i16mf4)))
-void vluxseg2ei8(vint16mf4_t * op0, vint16mf4_t * op1, const int16_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i16mf4_m)))
-void vluxseg2ei8(vint16mf4_t * op0, vint16mf4_t * op1, vbool64_t op2, vint16mf4_t op3, vint16mf4_t op4, const int16_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u16m1)))
-void vluxseg2ei8(vuint16m1_t * op0, vuint16m1_t * op1, const uint16_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u16m1_m)))
-void vluxseg2ei8(vuint16m1_t * op0, vuint16m1_t * op1, vbool16_t op2, vuint16m1_t op3, vuint16m1_t op4, const uint16_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u16m2)))
-void vluxseg2ei8(vuint16m2_t * op0, vuint16m2_t * op1, const uint16_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u16m2_m)))
-void vluxseg2ei8(vuint16m2_t * op0, vuint16m2_t * op1, vbool8_t op2, vuint16m2_t op3, vuint16m2_t op4, const uint16_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u16m4)))
-void vluxseg2ei8(vuint16m4_t * op0, vuint16m4_t * op1, const uint16_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u16m4_m)))
-void vluxseg2ei8(vuint16m4_t * op0, vuint16m4_t * op1, vbool4_t op2, vuint16m4_t op3, vuint16m4_t op4, const uint16_t * op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u16mf2)))
-void vluxseg2ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, const uint16_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u16mf2_m)))
-void vluxseg2ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vbool32_t op2, vuint16mf2_t op3, vuint16mf2_t op4, const uint16_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u16mf4)))
-void vluxseg2ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, const uint16_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u16mf4_m)))
-void vluxseg2ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vbool64_t op2, vuint16mf4_t op3, vuint16mf4_t op4, const uint16_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i16m1)))
-void vluxseg3ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, const int16_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i16m1_m)))
-void vluxseg3ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vbool16_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, const int16_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i16m2)))
-void vluxseg3ei8(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, const int16_t * op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i16m2_m)))
-void vluxseg3ei8(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vbool8_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, const int16_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i16mf2)))
-void vluxseg3ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, const int16_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i16mf2_m)))
-void vluxseg3ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vbool32_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, const int16_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i16mf4)))
-void vluxseg3ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, const int16_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i16mf4_m)))
-void vluxseg3ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vbool64_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, const int16_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u16m1)))
-void vluxseg3ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, const uint16_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u16m1_m)))
-void vluxseg3ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vbool16_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, const uint16_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u16m2)))
-void vluxseg3ei8(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, const uint16_t * op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u16m2_m)))
-void vluxseg3ei8(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vbool8_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, const uint16_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u16mf2)))
-void vluxseg3ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, const uint16_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u16mf2_m)))
-void vluxseg3ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vbool32_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, const uint16_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u16mf4)))
-void vluxseg3ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, const uint16_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u16mf4_m)))
-void vluxseg3ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vbool64_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, const uint16_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i16m1)))
-void vluxseg4ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, const int16_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i16m1_m)))
-void vluxseg4ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vbool16_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, const int16_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i16m2)))
-void vluxseg4ei8(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, const int16_t * op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i16m2_m)))
-void vluxseg4ei8(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, vbool8_t op4, vint16m2_t op5, vint16m2_t op6, vint16m2_t op7, vint16m2_t op8, const int16_t * op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i16mf2)))
-void vluxseg4ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, const int16_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i16mf2_m)))
-void vluxseg4ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vbool32_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, const int16_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i16mf4)))
-void vluxseg4ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, const int16_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i16mf4_m)))
-void vluxseg4ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vbool64_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, const int16_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u16m1)))
-void vluxseg4ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, const uint16_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u16m1_m)))
-void vluxseg4ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vbool16_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, const uint16_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u16m2)))
-void vluxseg4ei8(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, const uint16_t * op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u16m2_m)))
-void vluxseg4ei8(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, vbool8_t op4, vuint16m2_t op5, vuint16m2_t op6, vuint16m2_t op7, vuint16m2_t op8, const uint16_t * op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u16mf2)))
-void vluxseg4ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, const uint16_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u16mf2_m)))
-void vluxseg4ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vbool32_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, const uint16_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u16mf4)))
-void vluxseg4ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, const uint16_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u16mf4_m)))
-void vluxseg4ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vbool64_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, const uint16_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i16m1)))
-void vluxseg5ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, const int16_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i16m1_m)))
-void vluxseg5ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vbool16_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, const int16_t * op11, vuint8mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i16mf2)))
-void vluxseg5ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, const int16_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i16mf2_m)))
-void vluxseg5ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vbool32_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, const int16_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i16mf4)))
-void vluxseg5ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, const int16_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i16mf4_m)))
-void vluxseg5ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vbool64_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, const int16_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u16m1)))
-void vluxseg5ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, const uint16_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u16m1_m)))
-void vluxseg5ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vbool16_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, const uint16_t * op11, vuint8mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u16mf2)))
-void vluxseg5ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, const uint16_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u16mf2_m)))
-void vluxseg5ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vbool32_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, const uint16_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u16mf4)))
-void vluxseg5ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, const uint16_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u16mf4_m)))
-void vluxseg5ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vbool64_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, const uint16_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i16m1)))
-void vluxseg6ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, const int16_t * op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i16m1_m)))
-void vluxseg6ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vbool16_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, const int16_t * op13, vuint8mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i16mf2)))
-void vluxseg6ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, const int16_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i16mf2_m)))
-void vluxseg6ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vbool32_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, const int16_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i16mf4)))
-void vluxseg6ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, const int16_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i16mf4_m)))
-void vluxseg6ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vbool64_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, const int16_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u16m1)))
-void vluxseg6ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, const uint16_t * op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u16m1_m)))
-void vluxseg6ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vbool16_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, const uint16_t * op13, vuint8mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u16mf2)))
-void vluxseg6ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, const uint16_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u16mf2_m)))
-void vluxseg6ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vbool32_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, const uint16_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u16mf4)))
-void vluxseg6ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, const uint16_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u16mf4_m)))
-void vluxseg6ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vbool64_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, const uint16_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i16m1)))
-void vluxseg7ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, const int16_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i16m1_m)))
-void vluxseg7ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vbool16_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, const int16_t * op15, vuint8mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i16mf2)))
-void vluxseg7ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, const int16_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i16mf2_m)))
-void vluxseg7ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vbool32_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, const int16_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i16mf4)))
-void vluxseg7ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, const int16_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i16mf4_m)))
-void vluxseg7ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vbool64_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, const int16_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u16m1)))
-void vluxseg7ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, const uint16_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u16m1_m)))
-void vluxseg7ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vbool16_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, const uint16_t * op15, vuint8mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u16mf2)))
-void vluxseg7ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, const uint16_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u16mf2_m)))
-void vluxseg7ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vbool32_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, const uint16_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u16mf4)))
-void vluxseg7ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, const uint16_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u16mf4_m)))
-void vluxseg7ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vbool64_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, const uint16_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i16m1)))
-void vluxseg8ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, const int16_t * op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i16m1_m)))
-void vluxseg8ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, vbool16_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, vint16m1_t op15, vint16m1_t op16, const int16_t * op17, vuint8mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i16mf2)))
-void vluxseg8ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, const int16_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i16mf2_m)))
-void vluxseg8ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, vbool32_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, vint16mf2_t op15, vint16mf2_t op16, const int16_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i16mf4)))
-void vluxseg8ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, const int16_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i16mf4_m)))
-void vluxseg8ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, vbool64_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, vint16mf4_t op15, vint16mf4_t op16, const int16_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u16m1)))
-void vluxseg8ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, const uint16_t * op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u16m1_m)))
-void vluxseg8ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, vbool16_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, vuint16m1_t op15, vuint16m1_t op16, const uint16_t * op17, vuint8mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u16mf2)))
-void vluxseg8ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, const uint16_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u16mf2_m)))
-void vluxseg8ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, vbool32_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, vuint16mf2_t op15, vuint16mf2_t op16, const uint16_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u16mf4)))
-void vluxseg8ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, const uint16_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u16mf4_m)))
-void vluxseg8ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, vbool64_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, vuint16mf4_t op15, vuint16mf4_t op16, const uint16_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i16m1)))
-void vluxseg2ei16(vint16m1_t * op0, vint16m1_t * op1, const int16_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i16m1_m)))
-void vluxseg2ei16(vint16m1_t * op0, vint16m1_t * op1, vbool16_t op2, vint16m1_t op3, vint16m1_t op4, const int16_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i16m2)))
-void vluxseg2ei16(vint16m2_t * op0, vint16m2_t * op1, const int16_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i16m2_m)))
-void vluxseg2ei16(vint16m2_t * op0, vint16m2_t * op1, vbool8_t op2, vint16m2_t op3, vint16m2_t op4, const int16_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i16m4)))
-void vluxseg2ei16(vint16m4_t * op0, vint16m4_t * op1, const int16_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i16m4_m)))
-void vluxseg2ei16(vint16m4_t * op0, vint16m4_t * op1, vbool4_t op2, vint16m4_t op3, vint16m4_t op4, const int16_t * op5, vuint16m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i16mf2)))
-void vluxseg2ei16(vint16mf2_t * op0, vint16mf2_t * op1, const int16_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i16mf2_m)))
-void vluxseg2ei16(vint16mf2_t * op0, vint16mf2_t * op1, vbool32_t op2, vint16mf2_t op3, vint16mf2_t op4, const int16_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i16mf4)))
-void vluxseg2ei16(vint16mf4_t * op0, vint16mf4_t * op1, const int16_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i16mf4_m)))
-void vluxseg2ei16(vint16mf4_t * op0, vint16mf4_t * op1, vbool64_t op2, vint16mf4_t op3, vint16mf4_t op4, const int16_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u16m1)))
-void vluxseg2ei16(vuint16m1_t * op0, vuint16m1_t * op1, const uint16_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u16m1_m)))
-void vluxseg2ei16(vuint16m1_t * op0, vuint16m1_t * op1, vbool16_t op2, vuint16m1_t op3, vuint16m1_t op4, const uint16_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u16m2)))
-void vluxseg2ei16(vuint16m2_t * op0, vuint16m2_t * op1, const uint16_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u16m2_m)))
-void vluxseg2ei16(vuint16m2_t * op0, vuint16m2_t * op1, vbool8_t op2, vuint16m2_t op3, vuint16m2_t op4, const uint16_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u16m4)))
-void vluxseg2ei16(vuint16m4_t * op0, vuint16m4_t * op1, const uint16_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u16m4_m)))
-void vluxseg2ei16(vuint16m4_t * op0, vuint16m4_t * op1, vbool4_t op2, vuint16m4_t op3, vuint16m4_t op4, const uint16_t * op5, vuint16m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u16mf2)))
-void vluxseg2ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, const uint16_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u16mf2_m)))
-void vluxseg2ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vbool32_t op2, vuint16mf2_t op3, vuint16mf2_t op4, const uint16_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u16mf4)))
-void vluxseg2ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, const uint16_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u16mf4_m)))
-void vluxseg2ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vbool64_t op2, vuint16mf4_t op3, vuint16mf4_t op4, const uint16_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i16m1)))
-void vluxseg3ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, const int16_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i16m1_m)))
-void vluxseg3ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vbool16_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, const int16_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i16m2)))
-void vluxseg3ei16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, const int16_t * op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i16m2_m)))
-void vluxseg3ei16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vbool8_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, const int16_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i16mf2)))
-void vluxseg3ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, const int16_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i16mf2_m)))
-void vluxseg3ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vbool32_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, const int16_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i16mf4)))
-void vluxseg3ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, const int16_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i16mf4_m)))
-void vluxseg3ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vbool64_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, const int16_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u16m1)))
-void vluxseg3ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, const uint16_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u16m1_m)))
-void vluxseg3ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vbool16_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, const uint16_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u16m2)))
-void vluxseg3ei16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, const uint16_t * op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u16m2_m)))
-void vluxseg3ei16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vbool8_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, const uint16_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u16mf2)))
-void vluxseg3ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, const uint16_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u16mf2_m)))
-void vluxseg3ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vbool32_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, const uint16_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u16mf4)))
-void vluxseg3ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, const uint16_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u16mf4_m)))
-void vluxseg3ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vbool64_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, const uint16_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i16m1)))
-void vluxseg4ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, const int16_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i16m1_m)))
-void vluxseg4ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vbool16_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, const int16_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i16m2)))
-void vluxseg4ei16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, const int16_t * op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i16m2_m)))
-void vluxseg4ei16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, vbool8_t op4, vint16m2_t op5, vint16m2_t op6, vint16m2_t op7, vint16m2_t op8, const int16_t * op9, vuint16m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i16mf2)))
-void vluxseg4ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, const int16_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i16mf2_m)))
-void vluxseg4ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vbool32_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, const int16_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i16mf4)))
-void vluxseg4ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, const int16_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i16mf4_m)))
-void vluxseg4ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vbool64_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, const int16_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u16m1)))
-void vluxseg4ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, const uint16_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u16m1_m)))
-void vluxseg4ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vbool16_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, const uint16_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u16m2)))
-void vluxseg4ei16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, const uint16_t * op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u16m2_m)))
-void vluxseg4ei16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, vbool8_t op4, vuint16m2_t op5, vuint16m2_t op6, vuint16m2_t op7, vuint16m2_t op8, const uint16_t * op9, vuint16m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u16mf2)))
-void vluxseg4ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, const uint16_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u16mf2_m)))
-void vluxseg4ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vbool32_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, const uint16_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u16mf4)))
-void vluxseg4ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, const uint16_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u16mf4_m)))
-void vluxseg4ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vbool64_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, const uint16_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i16m1)))
-void vluxseg5ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, const int16_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i16m1_m)))
-void vluxseg5ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vbool16_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, const int16_t * op11, vuint16m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i16mf2)))
-void vluxseg5ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, const int16_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i16mf2_m)))
-void vluxseg5ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vbool32_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, const int16_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i16mf4)))
-void vluxseg5ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, const int16_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i16mf4_m)))
-void vluxseg5ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vbool64_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, const int16_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u16m1)))
-void vluxseg5ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, const uint16_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u16m1_m)))
-void vluxseg5ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vbool16_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, const uint16_t * op11, vuint16m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u16mf2)))
-void vluxseg5ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, const uint16_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u16mf2_m)))
-void vluxseg5ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vbool32_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, const uint16_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u16mf4)))
-void vluxseg5ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, const uint16_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u16mf4_m)))
-void vluxseg5ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vbool64_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, const uint16_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i16m1)))
-void vluxseg6ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, const int16_t * op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i16m1_m)))
-void vluxseg6ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vbool16_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, const int16_t * op13, vuint16m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i16mf2)))
-void vluxseg6ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, const int16_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i16mf2_m)))
-void vluxseg6ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vbool32_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, const int16_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i16mf4)))
-void vluxseg6ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, const int16_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i16mf4_m)))
-void vluxseg6ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vbool64_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, const int16_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u16m1)))
-void vluxseg6ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, const uint16_t * op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u16m1_m)))
-void vluxseg6ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vbool16_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, const uint16_t * op13, vuint16m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u16mf2)))
-void vluxseg6ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, const uint16_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u16mf2_m)))
-void vluxseg6ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vbool32_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, const uint16_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u16mf4)))
-void vluxseg6ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, const uint16_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u16mf4_m)))
-void vluxseg6ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vbool64_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, const uint16_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i16m1)))
-void vluxseg7ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, const int16_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i16m1_m)))
-void vluxseg7ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vbool16_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, const int16_t * op15, vuint16m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i16mf2)))
-void vluxseg7ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, const int16_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i16mf2_m)))
-void vluxseg7ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vbool32_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, const int16_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i16mf4)))
-void vluxseg7ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, const int16_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i16mf4_m)))
-void vluxseg7ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vbool64_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, const int16_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u16m1)))
-void vluxseg7ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, const uint16_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u16m1_m)))
-void vluxseg7ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vbool16_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, const uint16_t * op15, vuint16m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u16mf2)))
-void vluxseg7ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, const uint16_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u16mf2_m)))
-void vluxseg7ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vbool32_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, const uint16_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u16mf4)))
-void vluxseg7ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, const uint16_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u16mf4_m)))
-void vluxseg7ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vbool64_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, const uint16_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i16m1)))
-void vluxseg8ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, const int16_t * op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i16m1_m)))
-void vluxseg8ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, vbool16_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, vint16m1_t op15, vint16m1_t op16, const int16_t * op17, vuint16m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i16mf2)))
-void vluxseg8ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, const int16_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i16mf2_m)))
-void vluxseg8ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, vbool32_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, vint16mf2_t op15, vint16mf2_t op16, const int16_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i16mf4)))
-void vluxseg8ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, const int16_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i16mf4_m)))
-void vluxseg8ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, vbool64_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, vint16mf4_t op15, vint16mf4_t op16, const int16_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u16m1)))
-void vluxseg8ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, const uint16_t * op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u16m1_m)))
-void vluxseg8ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, vbool16_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, vuint16m1_t op15, vuint16m1_t op16, const uint16_t * op17, vuint16m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u16mf2)))
-void vluxseg8ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, const uint16_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u16mf2_m)))
-void vluxseg8ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, vbool32_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, vuint16mf2_t op15, vuint16mf2_t op16, const uint16_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u16mf4)))
-void vluxseg8ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, const uint16_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u16mf4_m)))
-void vluxseg8ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, vbool64_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, vuint16mf4_t op15, vuint16mf4_t op16, const uint16_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i16m1)))
-void vluxseg2ei32(vint16m1_t * op0, vint16m1_t * op1, const int16_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i16m1_m)))
-void vluxseg2ei32(vint16m1_t * op0, vint16m1_t * op1, vbool16_t op2, vint16m1_t op3, vint16m1_t op4, const int16_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i16m2)))
-void vluxseg2ei32(vint16m2_t * op0, vint16m2_t * op1, const int16_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i16m2_m)))
-void vluxseg2ei32(vint16m2_t * op0, vint16m2_t * op1, vbool8_t op2, vint16m2_t op3, vint16m2_t op4, const int16_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i16m4)))
-void vluxseg2ei32(vint16m4_t * op0, vint16m4_t * op1, const int16_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i16m4_m)))
-void vluxseg2ei32(vint16m4_t * op0, vint16m4_t * op1, vbool4_t op2, vint16m4_t op3, vint16m4_t op4, const int16_t * op5, vuint32m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i16mf2)))
-void vluxseg2ei32(vint16mf2_t * op0, vint16mf2_t * op1, const int16_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i16mf2_m)))
-void vluxseg2ei32(vint16mf2_t * op0, vint16mf2_t * op1, vbool32_t op2, vint16mf2_t op3, vint16mf2_t op4, const int16_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i16mf4)))
-void vluxseg2ei32(vint16mf4_t * op0, vint16mf4_t * op1, const int16_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i16mf4_m)))
-void vluxseg2ei32(vint16mf4_t * op0, vint16mf4_t * op1, vbool64_t op2, vint16mf4_t op3, vint16mf4_t op4, const int16_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u16m1)))
-void vluxseg2ei32(vuint16m1_t * op0, vuint16m1_t * op1, const uint16_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u16m1_m)))
-void vluxseg2ei32(vuint16m1_t * op0, vuint16m1_t * op1, vbool16_t op2, vuint16m1_t op3, vuint16m1_t op4, const uint16_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u16m2)))
-void vluxseg2ei32(vuint16m2_t * op0, vuint16m2_t * op1, const uint16_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u16m2_m)))
-void vluxseg2ei32(vuint16m2_t * op0, vuint16m2_t * op1, vbool8_t op2, vuint16m2_t op3, vuint16m2_t op4, const uint16_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u16m4)))
-void vluxseg2ei32(vuint16m4_t * op0, vuint16m4_t * op1, const uint16_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u16m4_m)))
-void vluxseg2ei32(vuint16m4_t * op0, vuint16m4_t * op1, vbool4_t op2, vuint16m4_t op3, vuint16m4_t op4, const uint16_t * op5, vuint32m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u16mf2)))
-void vluxseg2ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, const uint16_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u16mf2_m)))
-void vluxseg2ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vbool32_t op2, vuint16mf2_t op3, vuint16mf2_t op4, const uint16_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u16mf4)))
-void vluxseg2ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, const uint16_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u16mf4_m)))
-void vluxseg2ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vbool64_t op2, vuint16mf4_t op3, vuint16mf4_t op4, const uint16_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i16m1)))
-void vluxseg3ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, const int16_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i16m1_m)))
-void vluxseg3ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vbool16_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, const int16_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i16m2)))
-void vluxseg3ei32(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, const int16_t * op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i16m2_m)))
-void vluxseg3ei32(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vbool8_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, const int16_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i16mf2)))
-void vluxseg3ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, const int16_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i16mf2_m)))
-void vluxseg3ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vbool32_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, const int16_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i16mf4)))
-void vluxseg3ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, const int16_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i16mf4_m)))
-void vluxseg3ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vbool64_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, const int16_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u16m1)))
-void vluxseg3ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, const uint16_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u16m1_m)))
-void vluxseg3ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vbool16_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, const uint16_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u16m2)))
-void vluxseg3ei32(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, const uint16_t * op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u16m2_m)))
-void vluxseg3ei32(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vbool8_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, const uint16_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u16mf2)))
-void vluxseg3ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, const uint16_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u16mf2_m)))
-void vluxseg3ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vbool32_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, const uint16_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u16mf4)))
-void vluxseg3ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, const uint16_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u16mf4_m)))
-void vluxseg3ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vbool64_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, const uint16_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i16m1)))
-void vluxseg4ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, const int16_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i16m1_m)))
-void vluxseg4ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vbool16_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, const int16_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i16m2)))
-void vluxseg4ei32(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, const int16_t * op4, vuint32m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i16m2_m)))
-void vluxseg4ei32(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, vbool8_t op4, vint16m2_t op5, vint16m2_t op6, vint16m2_t op7, vint16m2_t op8, const int16_t * op9, vuint32m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i16mf2)))
-void vluxseg4ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, const int16_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i16mf2_m)))
-void vluxseg4ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vbool32_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, const int16_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i16mf4)))
-void vluxseg4ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, const int16_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i16mf4_m)))
-void vluxseg4ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vbool64_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, const int16_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u16m1)))
-void vluxseg4ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, const uint16_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u16m1_m)))
-void vluxseg4ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vbool16_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, const uint16_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u16m2)))
-void vluxseg4ei32(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, const uint16_t * op4, vuint32m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u16m2_m)))
-void vluxseg4ei32(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, vbool8_t op4, vuint16m2_t op5, vuint16m2_t op6, vuint16m2_t op7, vuint16m2_t op8, const uint16_t * op9, vuint32m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u16mf2)))
-void vluxseg4ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, const uint16_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u16mf2_m)))
-void vluxseg4ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vbool32_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, const uint16_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u16mf4)))
-void vluxseg4ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, const uint16_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u16mf4_m)))
-void vluxseg4ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vbool64_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, const uint16_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i16m1)))
-void vluxseg5ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, const int16_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i16m1_m)))
-void vluxseg5ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vbool16_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, const int16_t * op11, vuint32m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i16mf2)))
-void vluxseg5ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, const int16_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i16mf2_m)))
-void vluxseg5ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vbool32_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, const int16_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i16mf4)))
-void vluxseg5ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, const int16_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i16mf4_m)))
-void vluxseg5ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vbool64_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, const int16_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u16m1)))
-void vluxseg5ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, const uint16_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u16m1_m)))
-void vluxseg5ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vbool16_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, const uint16_t * op11, vuint32m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u16mf2)))
-void vluxseg5ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, const uint16_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u16mf2_m)))
-void vluxseg5ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vbool32_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, const uint16_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u16mf4)))
-void vluxseg5ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, const uint16_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u16mf4_m)))
-void vluxseg5ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vbool64_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, const uint16_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i16m1)))
-void vluxseg6ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, const int16_t * op6, vuint32m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i16m1_m)))
-void vluxseg6ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vbool16_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, const int16_t * op13, vuint32m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i16mf2)))
-void vluxseg6ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, const int16_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i16mf2_m)))
-void vluxseg6ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vbool32_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, const int16_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i16mf4)))
-void vluxseg6ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, const int16_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i16mf4_m)))
-void vluxseg6ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vbool64_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, const int16_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u16m1)))
-void vluxseg6ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, const uint16_t * op6, vuint32m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u16m1_m)))
-void vluxseg6ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vbool16_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, const uint16_t * op13, vuint32m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u16mf2)))
-void vluxseg6ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, const uint16_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u16mf2_m)))
-void vluxseg6ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vbool32_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, const uint16_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u16mf4)))
-void vluxseg6ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, const uint16_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u16mf4_m)))
-void vluxseg6ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vbool64_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, const uint16_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i16m1)))
-void vluxseg7ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, const int16_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i16m1_m)))
-void vluxseg7ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vbool16_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, const int16_t * op15, vuint32m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i16mf2)))
-void vluxseg7ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, const int16_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i16mf2_m)))
-void vluxseg7ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vbool32_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, const int16_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i16mf4)))
-void vluxseg7ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, const int16_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i16mf4_m)))
-void vluxseg7ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vbool64_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, const int16_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u16m1)))
-void vluxseg7ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, const uint16_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u16m1_m)))
-void vluxseg7ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vbool16_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, const uint16_t * op15, vuint32m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u16mf2)))
-void vluxseg7ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, const uint16_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u16mf2_m)))
-void vluxseg7ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vbool32_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, const uint16_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u16mf4)))
-void vluxseg7ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, const uint16_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u16mf4_m)))
-void vluxseg7ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vbool64_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, const uint16_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i16m1)))
-void vluxseg8ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, const int16_t * op8, vuint32m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i16m1_m)))
-void vluxseg8ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, vbool16_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, vint16m1_t op15, vint16m1_t op16, const int16_t * op17, vuint32m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i16mf2)))
-void vluxseg8ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, const int16_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i16mf2_m)))
-void vluxseg8ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, vbool32_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, vint16mf2_t op15, vint16mf2_t op16, const int16_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i16mf4)))
-void vluxseg8ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, const int16_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i16mf4_m)))
-void vluxseg8ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, vbool64_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, vint16mf4_t op15, vint16mf4_t op16, const int16_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8m1)))
-void vssseg2e8(int8_t * op0, ptrdiff_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8m1_m)))
-void vssseg2e8(vbool8_t op0, int8_t * op1, ptrdiff_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8m2)))
-void vssseg2e8(int8_t * op0, ptrdiff_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8m2_m)))
-void vssseg2e8(vbool4_t op0, int8_t * op1, ptrdiff_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8m4)))
-void vssseg2e8(int8_t * op0, ptrdiff_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8m4_m)))
-void vssseg2e8(vbool2_t op0, int8_t * op1, ptrdiff_t op2, vint8m4_t op3, vint8m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8mf2)))
-void vssseg2e8(int8_t * op0, ptrdiff_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8mf2_m)))
-void vssseg2e8(vbool16_t op0, int8_t * op1, ptrdiff_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8mf4)))
-void vssseg2e8(int8_t * op0, ptrdiff_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8mf4_m)))
-void vssseg2e8(vbool32_t op0, int8_t * op1, ptrdiff_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8mf8)))
-void vssseg2e8(int8_t * op0, ptrdiff_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_i8mf8_m)))
-void vssseg2e8(vbool64_t op0, int8_t * op1, ptrdiff_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u16m1)))
-void vluxseg8ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, const uint16_t * op8, vuint32m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u16m1_m)))
-void vluxseg8ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, vbool16_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, vuint16m1_t op15, vuint16m1_t op16, const uint16_t * op17, vuint32m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u16mf2)))
-void vluxseg8ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, const uint16_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u16mf2_m)))
-void vluxseg8ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, vbool32_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, vuint16mf2_t op15, vuint16mf2_t op16, const uint16_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u16mf4)))
-void vluxseg8ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, const uint16_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u16mf4_m)))
-void vluxseg8ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, vbool64_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, vuint16mf4_t op15, vuint16mf4_t op16, const uint16_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i16m1)))
-void vluxseg2ei64(vint16m1_t * op0, vint16m1_t * op1, const int16_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i16m1_m)))
-void vluxseg2ei64(vint16m1_t * op0, vint16m1_t * op1, vbool16_t op2, vint16m1_t op3, vint16m1_t op4, const int16_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i16m2)))
-void vluxseg2ei64(vint16m2_t * op0, vint16m2_t * op1, const int16_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i16m2_m)))
-void vluxseg2ei64(vint16m2_t * op0, vint16m2_t * op1, vbool8_t op2, vint16m2_t op3, vint16m2_t op4, const int16_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i16mf2)))
-void vluxseg2ei64(vint16mf2_t * op0, vint16mf2_t * op1, const int16_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i16mf2_m)))
-void vluxseg2ei64(vint16mf2_t * op0, vint16mf2_t * op1, vbool32_t op2, vint16mf2_t op3, vint16mf2_t op4, const int16_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i16mf4)))
-void vluxseg2ei64(vint16mf4_t * op0, vint16mf4_t * op1, const int16_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i16mf4_m)))
-void vluxseg2ei64(vint16mf4_t * op0, vint16mf4_t * op1, vbool64_t op2, vint16mf4_t op3, vint16mf4_t op4, const int16_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u16m1)))
-void vluxseg2ei64(vuint16m1_t * op0, vuint16m1_t * op1, const uint16_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u16m1_m)))
-void vluxseg2ei64(vuint16m1_t * op0, vuint16m1_t * op1, vbool16_t op2, vuint16m1_t op3, vuint16m1_t op4, const uint16_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u16m2)))
-void vluxseg2ei64(vuint16m2_t * op0, vuint16m2_t * op1, const uint16_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u16m2_m)))
-void vluxseg2ei64(vuint16m2_t * op0, vuint16m2_t * op1, vbool8_t op2, vuint16m2_t op3, vuint16m2_t op4, const uint16_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u16mf2)))
-void vluxseg2ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, const uint16_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u16mf2_m)))
-void vluxseg2ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vbool32_t op2, vuint16mf2_t op3, vuint16mf2_t op4, const uint16_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u16mf4)))
-void vluxseg2ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, const uint16_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u16mf4_m)))
-void vluxseg2ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vbool64_t op2, vuint16mf4_t op3, vuint16mf4_t op4, const uint16_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i16m1)))
-void vluxseg3ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, const int16_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i16m1_m)))
-void vluxseg3ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vbool16_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, const int16_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i16m2)))
-void vluxseg3ei64(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, const int16_t * op3, vuint64m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i16m2_m)))
-void vluxseg3ei64(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vbool8_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, const int16_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i16mf2)))
-void vluxseg3ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, const int16_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i16mf2_m)))
-void vluxseg3ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vbool32_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, const int16_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i16mf4)))
-void vluxseg3ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, const int16_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i16mf4_m)))
-void vluxseg3ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vbool64_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, const int16_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u16m1)))
-void vluxseg3ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, const uint16_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u16m1_m)))
-void vluxseg3ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vbool16_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, const uint16_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u16m2)))
-void vluxseg3ei64(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, const uint16_t * op3, vuint64m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u16m2_m)))
-void vluxseg3ei64(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vbool8_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, const uint16_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u16mf2)))
-void vluxseg3ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, const uint16_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u16mf2_m)))
-void vluxseg3ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vbool32_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, const uint16_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u16mf4)))
-void vluxseg3ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, const uint16_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u16mf4_m)))
-void vluxseg3ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vbool64_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, const uint16_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i16m1)))
-void vluxseg4ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, const int16_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i16m1_m)))
-void vluxseg4ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vbool16_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, const int16_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i16m2)))
-void vluxseg4ei64(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, const int16_t * op4, vuint64m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i16m2_m)))
-void vluxseg4ei64(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, vbool8_t op4, vint16m2_t op5, vint16m2_t op6, vint16m2_t op7, vint16m2_t op8, const int16_t * op9, vuint64m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i16mf2)))
-void vluxseg4ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, const int16_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i16mf2_m)))
-void vluxseg4ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vbool32_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, const int16_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i16mf4)))
-void vluxseg4ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, const int16_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i16mf4_m)))
-void vluxseg4ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vbool64_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, const int16_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u16m1)))
-void vluxseg4ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, const uint16_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u16m1_m)))
-void vluxseg4ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vbool16_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, const uint16_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u16m2)))
-void vluxseg4ei64(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, const uint16_t * op4, vuint64m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u16m2_m)))
-void vluxseg4ei64(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, vbool8_t op4, vuint16m2_t op5, vuint16m2_t op6, vuint16m2_t op7, vuint16m2_t op8, const uint16_t * op9, vuint64m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u16mf2)))
-void vluxseg4ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, const uint16_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u16mf2_m)))
-void vluxseg4ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vbool32_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, const uint16_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u16mf4)))
-void vluxseg4ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, const uint16_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u16mf4_m)))
-void vluxseg4ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vbool64_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, const uint16_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i16m1)))
-void vluxseg5ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, const int16_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i16m1_m)))
-void vluxseg5ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vbool16_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, const int16_t * op11, vuint64m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i16mf2)))
-void vluxseg5ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, const int16_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i16mf2_m)))
-void vluxseg5ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vbool32_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, const int16_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i16mf4)))
-void vluxseg5ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, const int16_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i16mf4_m)))
-void vluxseg5ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vbool64_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, const int16_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u16m1)))
-void vluxseg5ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, const uint16_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u16m1_m)))
-void vluxseg5ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vbool16_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, const uint16_t * op11, vuint64m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u16mf2)))
-void vluxseg5ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, const uint16_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u16mf2_m)))
-void vluxseg5ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vbool32_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, const uint16_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u16mf4)))
-void vluxseg5ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, const uint16_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u16mf4_m)))
-void vluxseg5ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vbool64_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, const uint16_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i16m1)))
-void vluxseg6ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, const int16_t * op6, vuint64m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i16m1_m)))
-void vluxseg6ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vbool16_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, const int16_t * op13, vuint64m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i16mf2)))
-void vluxseg6ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, const int16_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i16mf2_m)))
-void vluxseg6ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vbool32_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, const int16_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i16mf4)))
-void vluxseg6ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, const int16_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i16mf4_m)))
-void vluxseg6ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vbool64_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, const int16_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8m1)))
-void vssseg2e8(uint8_t * op0, ptrdiff_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8m1_m)))
-void vssseg2e8(vbool8_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8m2)))
-void vssseg2e8(uint8_t * op0, ptrdiff_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8m2_m)))
-void vssseg2e8(vbool4_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8m4)))
-void vssseg2e8(uint8_t * op0, ptrdiff_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8m4_m)))
-void vssseg2e8(vbool2_t op0, uint8_t * op1, ptrdiff_t op2, vuint8m4_t op3, vuint8m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8mf2)))
-void vssseg2e8(uint8_t * op0, ptrdiff_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8mf2_m)))
-void vssseg2e8(vbool16_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8mf4)))
-void vssseg2e8(uint8_t * op0, ptrdiff_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8mf4_m)))
-void vssseg2e8(vbool32_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8mf8)))
-void vssseg2e8(uint8_t * op0, ptrdiff_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e8_v_u8mf8_m)))
-void vssseg2e8(vbool64_t op0, uint8_t * op1, ptrdiff_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u16m1)))
-void vluxseg6ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, const uint16_t * op6, vuint64m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u16m1_m)))
-void vluxseg6ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vbool16_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, const uint16_t * op13, vuint64m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u16mf2)))
-void vluxseg6ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, const uint16_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u16mf2_m)))
-void vluxseg6ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vbool32_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, const uint16_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u16mf4)))
-void vluxseg6ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, const uint16_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u16mf4_m)))
-void vluxseg6ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vbool64_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, const uint16_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i16m1)))
-void vluxseg7ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, const int16_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i16m1_m)))
-void vluxseg7ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vbool16_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, const int16_t * op15, vuint64m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i16mf2)))
-void vluxseg7ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, const int16_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i16mf2_m)))
-void vluxseg7ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vbool32_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, const int16_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i16mf4)))
-void vluxseg7ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, const int16_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i16mf4_m)))
-void vluxseg7ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vbool64_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, const int16_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u16m1)))
-void vluxseg7ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, const uint16_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u16m1_m)))
-void vluxseg7ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vbool16_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, const uint16_t * op15, vuint64m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u16mf2)))
-void vluxseg7ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, const uint16_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u16mf2_m)))
-void vluxseg7ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vbool32_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, const uint16_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u16mf4)))
-void vluxseg7ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, const uint16_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u16mf4_m)))
-void vluxseg7ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vbool64_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, const uint16_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i16m1)))
-void vluxseg8ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, const int16_t * op8, vuint64m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i16m1_m)))
-void vluxseg8ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, vbool16_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, vint16m1_t op15, vint16m1_t op16, const int16_t * op17, vuint64m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i16mf2)))
-void vluxseg8ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, const int16_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i16mf2_m)))
-void vluxseg8ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, vbool32_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, vint16mf2_t op15, vint16mf2_t op16, const int16_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i16mf4)))
-void vluxseg8ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, const int16_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i16mf4_m)))
-void vluxseg8ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, vbool64_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, vint16mf4_t op15, vint16mf4_t op16, const int16_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u16m1)))
-void vluxseg8ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, const uint16_t * op8, vuint64m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u16m1_m)))
-void vluxseg8ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, vbool16_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, vuint16m1_t op15, vuint16m1_t op16, const uint16_t * op17, vuint64m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u16mf2)))
-void vluxseg8ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, const uint16_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u16mf2_m)))
-void vluxseg8ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, vbool32_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, vuint16mf2_t op15, vuint16mf2_t op16, const uint16_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u16mf4)))
-void vluxseg8ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, const uint16_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u16mf4_m)))
-void vluxseg8ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, vbool64_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, vuint16mf4_t op15, vuint16mf4_t op16, const uint16_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i32m1)))
-void vluxseg2ei8(vint32m1_t * op0, vint32m1_t * op1, const int32_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i32m1_m)))
-void vluxseg2ei8(vint32m1_t * op0, vint32m1_t * op1, vbool32_t op2, vint32m1_t op3, vint32m1_t op4, const int32_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i32m2)))
-void vluxseg2ei8(vint32m2_t * op0, vint32m2_t * op1, const int32_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i32m2_m)))
-void vluxseg2ei8(vint32m2_t * op0, vint32m2_t * op1, vbool16_t op2, vint32m2_t op3, vint32m2_t op4, const int32_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i32m4)))
-void vluxseg2ei8(vint32m4_t * op0, vint32m4_t * op1, const int32_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i32m4_m)))
-void vluxseg2ei8(vint32m4_t * op0, vint32m4_t * op1, vbool8_t op2, vint32m4_t op3, vint32m4_t op4, const int32_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i32mf2)))
-void vluxseg2ei8(vint32mf2_t * op0, vint32mf2_t * op1, const int32_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i32mf2_m)))
-void vluxseg2ei8(vint32mf2_t * op0, vint32mf2_t * op1, vbool64_t op2, vint32mf2_t op3, vint32mf2_t op4, const int32_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u32m1)))
-void vluxseg2ei8(vuint32m1_t * op0, vuint32m1_t * op1, const uint32_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u32m1_m)))
-void vluxseg2ei8(vuint32m1_t * op0, vuint32m1_t * op1, vbool32_t op2, vuint32m1_t op3, vuint32m1_t op4, const uint32_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u32m2)))
-void vluxseg2ei8(vuint32m2_t * op0, vuint32m2_t * op1, const uint32_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u32m2_m)))
-void vluxseg2ei8(vuint32m2_t * op0, vuint32m2_t * op1, vbool16_t op2, vuint32m2_t op3, vuint32m2_t op4, const uint32_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u32m4)))
-void vluxseg2ei8(vuint32m4_t * op0, vuint32m4_t * op1, const uint32_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u32m4_m)))
-void vluxseg2ei8(vuint32m4_t * op0, vuint32m4_t * op1, vbool8_t op2, vuint32m4_t op3, vuint32m4_t op4, const uint32_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u32mf2)))
-void vluxseg2ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, const uint32_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u32mf2_m)))
-void vluxseg2ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vbool64_t op2, vuint32mf2_t op3, vuint32mf2_t op4, const uint32_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i32m1)))
-void vluxseg3ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, const int32_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i32m1_m)))
-void vluxseg3ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vbool32_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, const int32_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i32m2)))
-void vluxseg3ei8(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, const int32_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i32m2_m)))
-void vluxseg3ei8(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vbool16_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, const int32_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i32mf2)))
-void vluxseg3ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, const int32_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i32mf2_m)))
-void vluxseg3ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vbool64_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, const int32_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u32m1)))
-void vluxseg3ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, const uint32_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u32m1_m)))
-void vluxseg3ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vbool32_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, const uint32_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u32m2)))
-void vluxseg3ei8(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, const uint32_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u32m2_m)))
-void vluxseg3ei8(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vbool16_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, const uint32_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u32mf2)))
-void vluxseg3ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, const uint32_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u32mf2_m)))
-void vluxseg3ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vbool64_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, const uint32_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i32m1)))
-void vluxseg4ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, const int32_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i32m1_m)))
-void vluxseg4ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vbool32_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, const int32_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i32m2)))
-void vluxseg4ei8(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, const int32_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i32m2_m)))
-void vluxseg4ei8(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, vbool16_t op4, vint32m2_t op5, vint32m2_t op6, vint32m2_t op7, vint32m2_t op8, const int32_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i32mf2)))
-void vluxseg4ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, const int32_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i32mf2_m)))
-void vluxseg4ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vbool64_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, const int32_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8m1)))
-void vsuxseg2ei8(int8_t * op0, vuint8m1_t op1, vint8m1_t op2, vint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8m1_m)))
-void vsuxseg2ei8(vbool8_t op0, int8_t * op1, vuint8m1_t op2, vint8m1_t op3, vint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8m2)))
-void vsuxseg2ei8(int8_t * op0, vuint8m2_t op1, vint8m2_t op2, vint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8m2_m)))
-void vsuxseg2ei8(vbool4_t op0, int8_t * op1, vuint8m2_t op2, vint8m2_t op3, vint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8m4)))
-void vsuxseg2ei8(int8_t * op0, vuint8m4_t op1, vint8m4_t op2, vint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8m4_m)))
-void vsuxseg2ei8(vbool2_t op0, int8_t * op1, vuint8m4_t op2, vint8m4_t op3, vint8m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8mf2)))
-void vsuxseg2ei8(int8_t * op0, vuint8mf2_t op1, vint8mf2_t op2, vint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8mf2_m)))
-void vsuxseg2ei8(vbool16_t op0, int8_t * op1, vuint8mf2_t op2, vint8mf2_t op3, vint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8mf4)))
-void vsuxseg2ei8(int8_t * op0, vuint8mf4_t op1, vint8mf4_t op2, vint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8mf4_m)))
-void vsuxseg2ei8(vbool32_t op0, int8_t * op1, vuint8mf4_t op2, vint8mf4_t op3, vint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8mf8)))
-void vsuxseg2ei8(int8_t * op0, vuint8mf8_t op1, vint8mf8_t op2, vint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_i8mf8_m)))
-void vsuxseg2ei8(vbool64_t op0, int8_t * op1, vuint8mf8_t op2, vint8mf8_t op3, vint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u32m1)))
-void vluxseg4ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, const uint32_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u32m1_m)))
-void vluxseg4ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vbool32_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, const uint32_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u32m2)))
-void vluxseg4ei8(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, const uint32_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u32m2_m)))
-void vluxseg4ei8(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, vbool16_t op4, vuint32m2_t op5, vuint32m2_t op6, vuint32m2_t op7, vuint32m2_t op8, const uint32_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u32mf2)))
-void vluxseg4ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, const uint32_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u32mf2_m)))
-void vluxseg4ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vbool64_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, const uint32_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i32m1)))
-void vluxseg5ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, const int32_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i32m1_m)))
-void vluxseg5ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vbool32_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, const int32_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i32mf2)))
-void vluxseg5ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, const int32_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i32mf2_m)))
-void vluxseg5ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vbool64_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, const int32_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u32m1)))
-void vluxseg5ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, const uint32_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u32m1_m)))
-void vluxseg5ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vbool32_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, const uint32_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u32mf2)))
-void vluxseg5ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, const uint32_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u32mf2_m)))
-void vluxseg5ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vbool64_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, const uint32_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i32m1)))
-void vluxseg6ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, const int32_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i32m1_m)))
-void vluxseg6ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vbool32_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, const int32_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i32mf2)))
-void vluxseg6ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, const int32_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i32mf2_m)))
-void vluxseg6ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vbool64_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, const int32_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u32m1)))
-void vluxseg6ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, const uint32_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u32m1_m)))
-void vluxseg6ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vbool32_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, const uint32_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u32mf2)))
-void vluxseg6ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, const uint32_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u32mf2_m)))
-void vluxseg6ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vbool64_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, const uint32_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i32m1)))
-void vluxseg7ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, const int32_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i32m1_m)))
-void vluxseg7ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vbool32_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, const int32_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i32mf2)))
-void vluxseg7ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, const int32_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i32mf2_m)))
-void vluxseg7ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vbool64_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, const int32_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u32m1)))
-void vluxseg7ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, const uint32_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u32m1_m)))
-void vluxseg7ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vbool32_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, const uint32_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u32mf2)))
-void vluxseg7ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, const uint32_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u32mf2_m)))
-void vluxseg7ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vbool64_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, const uint32_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i32m1)))
-void vluxseg8ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, const int32_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i32m1_m)))
-void vluxseg8ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, vbool32_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, vint32m1_t op15, vint32m1_t op16, const int32_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i32mf2)))
-void vluxseg8ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, const int32_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i32mf2_m)))
-void vluxseg8ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, vbool64_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, vint32mf2_t op15, vint32mf2_t op16, const int32_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u32m1)))
-void vluxseg8ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, const uint32_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u32m1_m)))
-void vluxseg8ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, vbool32_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, vuint32m1_t op15, vuint32m1_t op16, const uint32_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u32mf2)))
-void vluxseg8ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, const uint32_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u32mf2_m)))
-void vluxseg8ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, vbool64_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, vuint32mf2_t op15, vuint32mf2_t op16, const uint32_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i32m1)))
-void vluxseg2ei16(vint32m1_t * op0, vint32m1_t * op1, const int32_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i32m1_m)))
-void vluxseg2ei16(vint32m1_t * op0, vint32m1_t * op1, vbool32_t op2, vint32m1_t op3, vint32m1_t op4, const int32_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i32m2)))
-void vluxseg2ei16(vint32m2_t * op0, vint32m2_t * op1, const int32_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i32m2_m)))
-void vluxseg2ei16(vint32m2_t * op0, vint32m2_t * op1, vbool16_t op2, vint32m2_t op3, vint32m2_t op4, const int32_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i32m4)))
-void vluxseg2ei16(vint32m4_t * op0, vint32m4_t * op1, const int32_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i32m4_m)))
-void vluxseg2ei16(vint32m4_t * op0, vint32m4_t * op1, vbool8_t op2, vint32m4_t op3, vint32m4_t op4, const int32_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i32mf2)))
-void vluxseg2ei16(vint32mf2_t * op0, vint32mf2_t * op1, const int32_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i32mf2_m)))
-void vluxseg2ei16(vint32mf2_t * op0, vint32mf2_t * op1, vbool64_t op2, vint32mf2_t op3, vint32mf2_t op4, const int32_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8m1)))
-void vsuxseg2ei8(uint8_t * op0, vuint8m1_t op1, vuint8m1_t op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8m1_m)))
-void vsuxseg2ei8(vbool8_t op0, uint8_t * op1, vuint8m1_t op2, vuint8m1_t op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8m2)))
-void vsuxseg2ei8(uint8_t * op0, vuint8m2_t op1, vuint8m2_t op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8m2_m)))
-void vsuxseg2ei8(vbool4_t op0, uint8_t * op1, vuint8m2_t op2, vuint8m2_t op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8m4)))
-void vsuxseg2ei8(uint8_t * op0, vuint8m4_t op1, vuint8m4_t op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8m4_m)))
-void vsuxseg2ei8(vbool2_t op0, uint8_t * op1, vuint8m4_t op2, vuint8m4_t op3, vuint8m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8mf2)))
-void vsuxseg2ei8(uint8_t * op0, vuint8mf2_t op1, vuint8mf2_t op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8mf2_m)))
-void vsuxseg2ei8(vbool16_t op0, uint8_t * op1, vuint8mf2_t op2, vuint8mf2_t op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8mf4)))
-void vsuxseg2ei8(uint8_t * op0, vuint8mf4_t op1, vuint8mf4_t op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8mf4_m)))
-void vsuxseg2ei8(vbool32_t op0, uint8_t * op1, vuint8mf4_t op2, vuint8mf4_t op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8mf8)))
-void vsuxseg2ei8(uint8_t * op0, vuint8mf8_t op1, vuint8mf8_t op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_u8mf8_m)))
-void vsuxseg2ei8(vbool64_t op0, uint8_t * op1, vuint8mf8_t op2, vuint8mf8_t op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u32m1)))
-void vluxseg2ei16(vuint32m1_t * op0, vuint32m1_t * op1, const uint32_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u32m1_m)))
-void vluxseg2ei16(vuint32m1_t * op0, vuint32m1_t * op1, vbool32_t op2, vuint32m1_t op3, vuint32m1_t op4, const uint32_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u32m2)))
-void vluxseg2ei16(vuint32m2_t * op0, vuint32m2_t * op1, const uint32_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u32m2_m)))
-void vluxseg2ei16(vuint32m2_t * op0, vuint32m2_t * op1, vbool16_t op2, vuint32m2_t op3, vuint32m2_t op4, const uint32_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u32m4)))
-void vluxseg2ei16(vuint32m4_t * op0, vuint32m4_t * op1, const uint32_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u32m4_m)))
-void vluxseg2ei16(vuint32m4_t * op0, vuint32m4_t * op1, vbool8_t op2, vuint32m4_t op3, vuint32m4_t op4, const uint32_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u32mf2)))
-void vluxseg2ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, const uint32_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u32mf2_m)))
-void vluxseg2ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vbool64_t op2, vuint32mf2_t op3, vuint32mf2_t op4, const uint32_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i32m1)))
-void vluxseg3ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, const int32_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i32m1_m)))
-void vluxseg3ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vbool32_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, const int32_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i32m2)))
-void vluxseg3ei16(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, const int32_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i32m2_m)))
-void vluxseg3ei16(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vbool16_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, const int32_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i32mf2)))
-void vluxseg3ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, const int32_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i32mf2_m)))
-void vluxseg3ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vbool64_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, const int32_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u32m1)))
-void vluxseg3ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, const uint32_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u32m1_m)))
-void vluxseg3ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vbool32_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, const uint32_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u32m2)))
-void vluxseg3ei16(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, const uint32_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u32m2_m)))
-void vluxseg3ei16(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vbool16_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, const uint32_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u32mf2)))
-void vluxseg3ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, const uint32_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u32mf2_m)))
-void vluxseg3ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vbool64_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, const uint32_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i32m1)))
-void vluxseg4ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, const int32_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i32m1_m)))
-void vluxseg4ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vbool32_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, const int32_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i32m2)))
-void vluxseg4ei16(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, const int32_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i32m2_m)))
-void vluxseg4ei16(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, vbool16_t op4, vint32m2_t op5, vint32m2_t op6, vint32m2_t op7, vint32m2_t op8, const int32_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i32mf2)))
-void vluxseg4ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, const int32_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i32mf2_m)))
-void vluxseg4ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vbool64_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, const int32_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u32m1)))
-void vluxseg4ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, const uint32_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u32m1_m)))
-void vluxseg4ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vbool32_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, const uint32_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u32m2)))
-void vluxseg4ei16(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, const uint32_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u32m2_m)))
-void vluxseg4ei16(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, vbool16_t op4, vuint32m2_t op5, vuint32m2_t op6, vuint32m2_t op7, vuint32m2_t op8, const uint32_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u32mf2)))
-void vluxseg4ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, const uint32_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u32mf2_m)))
-void vluxseg4ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vbool64_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, const uint32_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i32m1)))
-void vluxseg5ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, const int32_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i32m1_m)))
-void vluxseg5ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vbool32_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, const int32_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i32mf2)))
-void vluxseg5ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, const int32_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i32mf2_m)))
-void vluxseg5ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vbool64_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, const int32_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u32m1)))
-void vluxseg5ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, const uint32_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u32m1_m)))
-void vluxseg5ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vbool32_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, const uint32_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u32mf2)))
-void vluxseg5ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, const uint32_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u32mf2_m)))
-void vluxseg5ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vbool64_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, const uint32_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i32m1)))
-void vluxseg6ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, const int32_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i32m1_m)))
-void vluxseg6ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vbool32_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, const int32_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i32mf2)))
-void vluxseg6ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, const int32_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i32mf2_m)))
-void vluxseg6ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vbool64_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, const int32_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u32m1)))
-void vluxseg6ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, const uint32_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u32m1_m)))
-void vluxseg6ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vbool32_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, const uint32_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u32mf2)))
-void vluxseg6ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, const uint32_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u32mf2_m)))
-void vluxseg6ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vbool64_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, const uint32_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i32m1)))
-void vluxseg7ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, const int32_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i32m1_m)))
-void vluxseg7ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vbool32_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, const int32_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i32mf2)))
-void vluxseg7ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, const int32_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i32mf2_m)))
-void vluxseg7ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vbool64_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, const int32_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u32m1)))
-void vluxseg7ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, const uint32_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u32m1_m)))
-void vluxseg7ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vbool32_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, const uint32_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u32mf2)))
-void vluxseg7ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, const uint32_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u32mf2_m)))
-void vluxseg7ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vbool64_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, const uint32_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i32m1)))
-void vluxseg8ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, const int32_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i32m1_m)))
-void vluxseg8ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, vbool32_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, vint32m1_t op15, vint32m1_t op16, const int32_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i32mf2)))
-void vluxseg8ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, const int32_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i32mf2_m)))
-void vluxseg8ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, vbool64_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, vint32mf2_t op15, vint32mf2_t op16, const int32_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u32m1)))
-void vluxseg8ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, const uint32_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u32m1_m)))
-void vluxseg8ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, vbool32_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, vuint32m1_t op15, vuint32m1_t op16, const uint32_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u32mf2)))
-void vluxseg8ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, const uint32_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u32mf2_m)))
-void vluxseg8ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, vbool64_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, vuint32mf2_t op15, vuint32mf2_t op16, const uint32_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i32m1)))
-void vluxseg2ei32(vint32m1_t * op0, vint32m1_t * op1, const int32_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i32m1_m)))
-void vluxseg2ei32(vint32m1_t * op0, vint32m1_t * op1, vbool32_t op2, vint32m1_t op3, vint32m1_t op4, const int32_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i32m2)))
-void vluxseg2ei32(vint32m2_t * op0, vint32m2_t * op1, const int32_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i32m2_m)))
-void vluxseg2ei32(vint32m2_t * op0, vint32m2_t * op1, vbool16_t op2, vint32m2_t op3, vint32m2_t op4, const int32_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i32m4)))
-void vluxseg2ei32(vint32m4_t * op0, vint32m4_t * op1, const int32_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i32m4_m)))
-void vluxseg2ei32(vint32m4_t * op0, vint32m4_t * op1, vbool8_t op2, vint32m4_t op3, vint32m4_t op4, const int32_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i32mf2)))
-void vluxseg2ei32(vint32mf2_t * op0, vint32mf2_t * op1, const int32_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i32mf2_m)))
-void vluxseg2ei32(vint32mf2_t * op0, vint32mf2_t * op1, vbool64_t op2, vint32mf2_t op3, vint32mf2_t op4, const int32_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u32m1)))
-void vluxseg2ei32(vuint32m1_t * op0, vuint32m1_t * op1, const uint32_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u32m1_m)))
-void vluxseg2ei32(vuint32m1_t * op0, vuint32m1_t * op1, vbool32_t op2, vuint32m1_t op3, vuint32m1_t op4, const uint32_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u32m2)))
-void vluxseg2ei32(vuint32m2_t * op0, vuint32m2_t * op1, const uint32_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u32m2_m)))
-void vluxseg2ei32(vuint32m2_t * op0, vuint32m2_t * op1, vbool16_t op2, vuint32m2_t op3, vuint32m2_t op4, const uint32_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u32m4)))
-void vluxseg2ei32(vuint32m4_t * op0, vuint32m4_t * op1, const uint32_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u32m4_m)))
-void vluxseg2ei32(vuint32m4_t * op0, vuint32m4_t * op1, vbool8_t op2, vuint32m4_t op3, vuint32m4_t op4, const uint32_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u32mf2)))
-void vluxseg2ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, const uint32_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u32mf2_m)))
-void vluxseg2ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vbool64_t op2, vuint32mf2_t op3, vuint32mf2_t op4, const uint32_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i32m1)))
-void vluxseg3ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, const int32_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i32m1_m)))
-void vluxseg3ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vbool32_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, const int32_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i32m2)))
-void vluxseg3ei32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, const int32_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i32m2_m)))
-void vluxseg3ei32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vbool16_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, const int32_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i32mf2)))
-void vluxseg3ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, const int32_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i32mf2_m)))
-void vluxseg3ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vbool64_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, const int32_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u32m1)))
-void vluxseg3ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, const uint32_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u32m1_m)))
-void vluxseg3ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vbool32_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, const uint32_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u32m2)))
-void vluxseg3ei32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, const uint32_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u32m2_m)))
-void vluxseg3ei32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vbool16_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, const uint32_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u32mf2)))
-void vluxseg3ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, const uint32_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u32mf2_m)))
-void vluxseg3ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vbool64_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, const uint32_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i32m1)))
-void vluxseg4ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, const int32_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i32m1_m)))
-void vluxseg4ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vbool32_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, const int32_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i32m2)))
-void vluxseg4ei32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, const int32_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i32m2_m)))
-void vluxseg4ei32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, vbool16_t op4, vint32m2_t op5, vint32m2_t op6, vint32m2_t op7, vint32m2_t op8, const int32_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i32mf2)))
-void vluxseg4ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, const int32_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i32mf2_m)))
-void vluxseg4ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vbool64_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, const int32_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u32m1)))
-void vluxseg4ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, const uint32_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u32m1_m)))
-void vluxseg4ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vbool32_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, const uint32_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u32m2)))
-void vluxseg4ei32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, const uint32_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u32m2_m)))
-void vluxseg4ei32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, vbool16_t op4, vuint32m2_t op5, vuint32m2_t op6, vuint32m2_t op7, vuint32m2_t op8, const uint32_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u32mf2)))
-void vluxseg4ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, const uint32_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u32mf2_m)))
-void vluxseg4ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vbool64_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, const uint32_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i32m1)))
-void vluxseg5ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, const int32_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i32m1_m)))
-void vluxseg5ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vbool32_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, const int32_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i32mf2)))
-void vluxseg5ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, const int32_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i32mf2_m)))
-void vluxseg5ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vbool64_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, const int32_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u32m1)))
-void vluxseg5ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, const uint32_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u32m1_m)))
-void vluxseg5ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vbool32_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, const uint32_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u32mf2)))
-void vluxseg5ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, const uint32_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u32mf2_m)))
-void vluxseg5ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vbool64_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, const uint32_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i32m1)))
-void vluxseg6ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, const int32_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i32m1_m)))
-void vluxseg6ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vbool32_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, const int32_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i32mf2)))
-void vluxseg6ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, const int32_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i32mf2_m)))
-void vluxseg6ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vbool64_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, const int32_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u32m1)))
-void vluxseg6ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, const uint32_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u32m1_m)))
-void vluxseg6ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vbool32_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, const uint32_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u32mf2)))
-void vluxseg6ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, const uint32_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u32mf2_m)))
-void vluxseg6ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vbool64_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, const uint32_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i32m1)))
-void vluxseg7ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, const int32_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i32m1_m)))
-void vluxseg7ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vbool32_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, const int32_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i32mf2)))
-void vluxseg7ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, const int32_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i32mf2_m)))
-void vluxseg7ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vbool64_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, const int32_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u32m1)))
-void vluxseg7ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, const uint32_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u32m1_m)))
-void vluxseg7ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vbool32_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, const uint32_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u32mf2)))
-void vluxseg7ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, const uint32_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u32mf2_m)))
-void vluxseg7ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vbool64_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, const uint32_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i32m1)))
-void vluxseg8ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, const int32_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i32m1_m)))
-void vluxseg8ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, vbool32_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, vint32m1_t op15, vint32m1_t op16, const int32_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i32mf2)))
-void vluxseg8ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, const int32_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i32mf2_m)))
-void vluxseg8ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, vbool64_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, vint32mf2_t op15, vint32mf2_t op16, const int32_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u32m1)))
-void vluxseg8ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, const uint32_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u32m1_m)))
-void vluxseg8ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, vbool32_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, vuint32m1_t op15, vuint32m1_t op16, const uint32_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u32mf2)))
-void vluxseg8ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, const uint32_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u32mf2_m)))
-void vluxseg8ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, vbool64_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, vuint32mf2_t op15, vuint32mf2_t op16, const uint32_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i32m1)))
-void vluxseg2ei64(vint32m1_t * op0, vint32m1_t * op1, const int32_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i32m1_m)))
-void vluxseg2ei64(vint32m1_t * op0, vint32m1_t * op1, vbool32_t op2, vint32m1_t op3, vint32m1_t op4, const int32_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i32m2)))
-void vluxseg2ei64(vint32m2_t * op0, vint32m2_t * op1, const int32_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i32m2_m)))
-void vluxseg2ei64(vint32m2_t * op0, vint32m2_t * op1, vbool16_t op2, vint32m2_t op3, vint32m2_t op4, const int32_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i32m4)))
-void vluxseg2ei64(vint32m4_t * op0, vint32m4_t * op1, const int32_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i32m4_m)))
-void vluxseg2ei64(vint32m4_t * op0, vint32m4_t * op1, vbool8_t op2, vint32m4_t op3, vint32m4_t op4, const int32_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i32mf2)))
-void vluxseg2ei64(vint32mf2_t * op0, vint32mf2_t * op1, const int32_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i32mf2_m)))
-void vluxseg2ei64(vint32mf2_t * op0, vint32mf2_t * op1, vbool64_t op2, vint32mf2_t op3, vint32mf2_t op4, const int32_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u32m1)))
-void vluxseg2ei64(vuint32m1_t * op0, vuint32m1_t * op1, const uint32_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u32m1_m)))
-void vluxseg2ei64(vuint32m1_t * op0, vuint32m1_t * op1, vbool32_t op2, vuint32m1_t op3, vuint32m1_t op4, const uint32_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u32m2)))
-void vluxseg2ei64(vuint32m2_t * op0, vuint32m2_t * op1, const uint32_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u32m2_m)))
-void vluxseg2ei64(vuint32m2_t * op0, vuint32m2_t * op1, vbool16_t op2, vuint32m2_t op3, vuint32m2_t op4, const uint32_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u32m4)))
-void vluxseg2ei64(vuint32m4_t * op0, vuint32m4_t * op1, const uint32_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u32m4_m)))
-void vluxseg2ei64(vuint32m4_t * op0, vuint32m4_t * op1, vbool8_t op2, vuint32m4_t op3, vuint32m4_t op4, const uint32_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u32mf2)))
-void vluxseg2ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, const uint32_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u32mf2_m)))
-void vluxseg2ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vbool64_t op2, vuint32mf2_t op3, vuint32mf2_t op4, const uint32_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i32m1)))
-void vluxseg3ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, const int32_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i32m1_m)))
-void vluxseg3ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vbool32_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, const int32_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i32m2)))
-void vluxseg3ei64(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, const int32_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i32m2_m)))
-void vluxseg3ei64(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vbool16_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, const int32_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i32mf2)))
-void vluxseg3ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, const int32_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i32mf2_m)))
-void vluxseg3ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vbool64_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, const int32_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u32m1)))
-void vluxseg3ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, const uint32_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u32m1_m)))
-void vluxseg3ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vbool32_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, const uint32_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u32m2)))
-void vluxseg3ei64(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, const uint32_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u32m2_m)))
-void vluxseg3ei64(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vbool16_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, const uint32_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u32mf2)))
-void vluxseg3ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, const uint32_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u32mf2_m)))
-void vluxseg3ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vbool64_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, const uint32_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i32m1)))
-void vluxseg4ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, const int32_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i32m1_m)))
-void vluxseg4ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vbool32_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, const int32_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i32m2)))
-void vluxseg4ei64(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, const int32_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i32m2_m)))
-void vluxseg4ei64(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, vbool16_t op4, vint32m2_t op5, vint32m2_t op6, vint32m2_t op7, vint32m2_t op8, const int32_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i32mf2)))
-void vluxseg4ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, const int32_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i32mf2_m)))
-void vluxseg4ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vbool64_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, const int32_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u32m1)))
-void vluxseg4ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, const uint32_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u32m1_m)))
-void vluxseg4ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vbool32_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, const uint32_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u32m2)))
-void vluxseg4ei64(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, const uint32_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u32m2_m)))
-void vluxseg4ei64(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, vbool16_t op4, vuint32m2_t op5, vuint32m2_t op6, vuint32m2_t op7, vuint32m2_t op8, const uint32_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u32mf2)))
-void vluxseg4ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, const uint32_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u32mf2_m)))
-void vluxseg4ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vbool64_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, const uint32_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i32m1)))
-void vluxseg5ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, const int32_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i32m1_m)))
-void vluxseg5ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vbool32_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, const int32_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i32mf2)))
-void vluxseg5ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, const int32_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i32mf2_m)))
-void vluxseg5ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vbool64_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, const int32_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u32m1)))
-void vluxseg5ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, const uint32_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u32m1_m)))
-void vluxseg5ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vbool32_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, const uint32_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u32mf2)))
-void vluxseg5ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, const uint32_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u32mf2_m)))
-void vluxseg5ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vbool64_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, const uint32_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i32m1)))
-void vluxseg6ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, const int32_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i32m1_m)))
-void vluxseg6ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vbool32_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, const int32_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i32mf2)))
-void vluxseg6ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, const int32_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i32mf2_m)))
-void vluxseg6ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vbool64_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, const int32_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u32m1)))
-void vluxseg6ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, const uint32_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u32m1_m)))
-void vluxseg6ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vbool32_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, const uint32_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u32mf2)))
-void vluxseg6ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, const uint32_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u32mf2_m)))
-void vluxseg6ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vbool64_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, const uint32_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i32m1)))
-void vluxseg7ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, const int32_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i32m1_m)))
-void vluxseg7ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vbool32_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, const int32_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i32mf2)))
-void vluxseg7ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, const int32_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i32mf2_m)))
-void vluxseg7ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vbool64_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, const int32_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u32m1)))
-void vluxseg7ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, const uint32_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u32m1_m)))
-void vluxseg7ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vbool32_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, const uint32_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u32mf2)))
-void vluxseg7ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, const uint32_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u32mf2_m)))
-void vluxseg7ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vbool64_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, const uint32_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i32m1)))
-void vluxseg8ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, const int32_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i32m1_m)))
-void vluxseg8ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, vbool32_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, vint32m1_t op15, vint32m1_t op16, const int32_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i32mf2)))
-void vluxseg8ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, const int32_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i32mf2_m)))
-void vluxseg8ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, vbool64_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, vint32mf2_t op15, vint32mf2_t op16, const int32_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u32m1)))
-void vluxseg8ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, const uint32_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u32m1_m)))
-void vluxseg8ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, vbool32_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, vuint32m1_t op15, vuint32m1_t op16, const uint32_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u32mf2)))
-void vluxseg8ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, const uint32_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u32mf2_m)))
-void vluxseg8ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, vbool64_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, vuint32mf2_t op15, vuint32mf2_t op16, const uint32_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i64m1)))
-void vluxseg2ei8(vint64m1_t * op0, vint64m1_t * op1, const int64_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i64m1_m)))
-void vluxseg2ei8(vint64m1_t * op0, vint64m1_t * op1, vbool64_t op2, vint64m1_t op3, vint64m1_t op4, const int64_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i64m2)))
-void vluxseg2ei8(vint64m2_t * op0, vint64m2_t * op1, const int64_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i64m2_m)))
-void vluxseg2ei8(vint64m2_t * op0, vint64m2_t * op1, vbool32_t op2, vint64m2_t op3, vint64m2_t op4, const int64_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i64m4)))
-void vluxseg2ei8(vint64m4_t * op0, vint64m4_t * op1, const int64_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_i64m4_m)))
-void vluxseg2ei8(vint64m4_t * op0, vint64m4_t * op1, vbool16_t op2, vint64m4_t op3, vint64m4_t op4, const int64_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u64m1)))
-void vluxseg2ei8(vuint64m1_t * op0, vuint64m1_t * op1, const uint64_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u64m1_m)))
-void vluxseg2ei8(vuint64m1_t * op0, vuint64m1_t * op1, vbool64_t op2, vuint64m1_t op3, vuint64m1_t op4, const uint64_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u64m2)))
-void vluxseg2ei8(vuint64m2_t * op0, vuint64m2_t * op1, const uint64_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u64m2_m)))
-void vluxseg2ei8(vuint64m2_t * op0, vuint64m2_t * op1, vbool32_t op2, vuint64m2_t op3, vuint64m2_t op4, const uint64_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u64m4)))
-void vluxseg2ei8(vuint64m4_t * op0, vuint64m4_t * op1, const uint64_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_u64m4_m)))
-void vluxseg2ei8(vuint64m4_t * op0, vuint64m4_t * op1, vbool16_t op2, vuint64m4_t op3, vuint64m4_t op4, const uint64_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i64m1)))
-void vluxseg3ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, const int64_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i64m1_m)))
-void vluxseg3ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vbool64_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, const int64_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i64m2)))
-void vluxseg3ei8(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, const int64_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_i64m2_m)))
-void vluxseg3ei8(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vbool32_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, const int64_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u64m1)))
-void vluxseg3ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, const uint64_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u64m1_m)))
-void vluxseg3ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vbool64_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, const uint64_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u64m2)))
-void vluxseg3ei8(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, const uint64_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_u64m2_m)))
-void vluxseg3ei8(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vbool32_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, const uint64_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i64m1)))
-void vluxseg4ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, const int64_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i64m1_m)))
-void vluxseg4ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vbool64_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, const int64_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i64m2)))
-void vluxseg4ei8(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, const int64_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_i64m2_m)))
-void vluxseg4ei8(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, vbool32_t op4, vint64m2_t op5, vint64m2_t op6, vint64m2_t op7, vint64m2_t op8, const int64_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u64m1)))
-void vluxseg4ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, const uint64_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u64m1_m)))
-void vluxseg4ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vbool64_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, const uint64_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u64m2)))
-void vluxseg4ei8(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, const uint64_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_u64m2_m)))
-void vluxseg4ei8(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, vbool32_t op4, vuint64m2_t op5, vuint64m2_t op6, vuint64m2_t op7, vuint64m2_t op8, const uint64_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i64m1)))
-void vluxseg5ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, const int64_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_i64m1_m)))
-void vluxseg5ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vbool64_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, const int64_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u64m1)))
-void vluxseg5ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, const uint64_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_u64m1_m)))
-void vluxseg5ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vbool64_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, const uint64_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i64m1)))
-void vluxseg6ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, const int64_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_i64m1_m)))
-void vluxseg6ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vbool64_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, const int64_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u64m1)))
-void vluxseg6ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, const uint64_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_u64m1_m)))
-void vluxseg6ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vbool64_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, const uint64_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i64m1)))
-void vluxseg7ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, const int64_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_i64m1_m)))
-void vluxseg7ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vbool64_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, const int64_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u64m1)))
-void vluxseg7ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, const uint64_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_u64m1_m)))
-void vluxseg7ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vbool64_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, const uint64_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i64m1)))
-void vluxseg8ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, const int64_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_i64m1_m)))
-void vluxseg8ei8(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, vbool64_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, vint64m1_t op15, vint64m1_t op16, const int64_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u64m1)))
-void vluxseg8ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, const uint64_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_u64m1_m)))
-void vluxseg8ei8(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, vbool64_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, vuint64m1_t op15, vuint64m1_t op16, const uint64_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i64m1)))
-void vluxseg2ei16(vint64m1_t * op0, vint64m1_t * op1, const int64_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i64m1_m)))
-void vluxseg2ei16(vint64m1_t * op0, vint64m1_t * op1, vbool64_t op2, vint64m1_t op3, vint64m1_t op4, const int64_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i64m2)))
-void vluxseg2ei16(vint64m2_t * op0, vint64m2_t * op1, const int64_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i64m2_m)))
-void vluxseg2ei16(vint64m2_t * op0, vint64m2_t * op1, vbool32_t op2, vint64m2_t op3, vint64m2_t op4, const int64_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i64m4)))
-void vluxseg2ei16(vint64m4_t * op0, vint64m4_t * op1, const int64_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_i64m4_m)))
-void vluxseg2ei16(vint64m4_t * op0, vint64m4_t * op1, vbool16_t op2, vint64m4_t op3, vint64m4_t op4, const int64_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u64m1)))
-void vluxseg2ei16(vuint64m1_t * op0, vuint64m1_t * op1, const uint64_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u64m1_m)))
-void vluxseg2ei16(vuint64m1_t * op0, vuint64m1_t * op1, vbool64_t op2, vuint64m1_t op3, vuint64m1_t op4, const uint64_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u64m2)))
-void vluxseg2ei16(vuint64m2_t * op0, vuint64m2_t * op1, const uint64_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u64m2_m)))
-void vluxseg2ei16(vuint64m2_t * op0, vuint64m2_t * op1, vbool32_t op2, vuint64m2_t op3, vuint64m2_t op4, const uint64_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u64m4)))
-void vluxseg2ei16(vuint64m4_t * op0, vuint64m4_t * op1, const uint64_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_u64m4_m)))
-void vluxseg2ei16(vuint64m4_t * op0, vuint64m4_t * op1, vbool16_t op2, vuint64m4_t op3, vuint64m4_t op4, const uint64_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i64m1)))
-void vluxseg3ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, const int64_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i64m1_m)))
-void vluxseg3ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vbool64_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, const int64_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i64m2)))
-void vluxseg3ei16(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, const int64_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_i64m2_m)))
-void vluxseg3ei16(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vbool32_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, const int64_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u64m1)))
-void vluxseg3ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, const uint64_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u64m1_m)))
-void vluxseg3ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vbool64_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, const uint64_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u64m2)))
-void vluxseg3ei16(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, const uint64_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_u64m2_m)))
-void vluxseg3ei16(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vbool32_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, const uint64_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i64m1)))
-void vluxseg4ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, const int64_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i64m1_m)))
-void vluxseg4ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vbool64_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, const int64_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i64m2)))
-void vluxseg4ei16(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, const int64_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_i64m2_m)))
-void vluxseg4ei16(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, vbool32_t op4, vint64m2_t op5, vint64m2_t op6, vint64m2_t op7, vint64m2_t op8, const int64_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u64m1)))
-void vluxseg4ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, const uint64_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u64m1_m)))
-void vluxseg4ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vbool64_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, const uint64_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u64m2)))
-void vluxseg4ei16(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, const uint64_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_u64m2_m)))
-void vluxseg4ei16(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, vbool32_t op4, vuint64m2_t op5, vuint64m2_t op6, vuint64m2_t op7, vuint64m2_t op8, const uint64_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i64m1)))
-void vluxseg5ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, const int64_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_i64m1_m)))
-void vluxseg5ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vbool64_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, const int64_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u64m1)))
-void vluxseg5ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, const uint64_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_u64m1_m)))
-void vluxseg5ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vbool64_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, const uint64_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i64m1)))
-void vluxseg6ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, const int64_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_i64m1_m)))
-void vluxseg6ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vbool64_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, const int64_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u64m1)))
-void vluxseg6ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, const uint64_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_u64m1_m)))
-void vluxseg6ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vbool64_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, const uint64_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i64m1)))
-void vluxseg7ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, const int64_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_i64m1_m)))
-void vluxseg7ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vbool64_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, const int64_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u64m1)))
-void vluxseg7ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, const uint64_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_u64m1_m)))
-void vluxseg7ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vbool64_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, const uint64_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i64m1)))
-void vluxseg8ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, const int64_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_i64m1_m)))
-void vluxseg8ei16(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, vbool64_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, vint64m1_t op15, vint64m1_t op16, const int64_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u64m1)))
-void vluxseg8ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, const uint64_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_u64m1_m)))
-void vluxseg8ei16(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, vbool64_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, vuint64m1_t op15, vuint64m1_t op16, const uint64_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i64m1)))
-void vluxseg2ei32(vint64m1_t * op0, vint64m1_t * op1, const int64_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i64m1_m)))
-void vluxseg2ei32(vint64m1_t * op0, vint64m1_t * op1, vbool64_t op2, vint64m1_t op3, vint64m1_t op4, const int64_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i64m2)))
-void vluxseg2ei32(vint64m2_t * op0, vint64m2_t * op1, const int64_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i64m2_m)))
-void vluxseg2ei32(vint64m2_t * op0, vint64m2_t * op1, vbool32_t op2, vint64m2_t op3, vint64m2_t op4, const int64_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i64m4)))
-void vluxseg2ei32(vint64m4_t * op0, vint64m4_t * op1, const int64_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_i64m4_m)))
-void vluxseg2ei32(vint64m4_t * op0, vint64m4_t * op1, vbool16_t op2, vint64m4_t op3, vint64m4_t op4, const int64_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u64m1)))
-void vluxseg2ei32(vuint64m1_t * op0, vuint64m1_t * op1, const uint64_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u64m1_m)))
-void vluxseg2ei32(vuint64m1_t * op0, vuint64m1_t * op1, vbool64_t op2, vuint64m1_t op3, vuint64m1_t op4, const uint64_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u64m2)))
-void vluxseg2ei32(vuint64m2_t * op0, vuint64m2_t * op1, const uint64_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u64m2_m)))
-void vluxseg2ei32(vuint64m2_t * op0, vuint64m2_t * op1, vbool32_t op2, vuint64m2_t op3, vuint64m2_t op4, const uint64_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u64m4)))
-void vluxseg2ei32(vuint64m4_t * op0, vuint64m4_t * op1, const uint64_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_u64m4_m)))
-void vluxseg2ei32(vuint64m4_t * op0, vuint64m4_t * op1, vbool16_t op2, vuint64m4_t op3, vuint64m4_t op4, const uint64_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i64m1)))
-void vluxseg3ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, const int64_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i64m1_m)))
-void vluxseg3ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vbool64_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, const int64_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i64m2)))
-void vluxseg3ei32(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, const int64_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_i64m2_m)))
-void vluxseg3ei32(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vbool32_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, const int64_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u64m1)))
-void vluxseg3ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, const uint64_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u64m1_m)))
-void vluxseg3ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vbool64_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, const uint64_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u64m2)))
-void vluxseg3ei32(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, const uint64_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_u64m2_m)))
-void vluxseg3ei32(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vbool32_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, const uint64_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i64m1)))
-void vluxseg4ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, const int64_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i64m1_m)))
-void vluxseg4ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vbool64_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, const int64_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i64m2)))
-void vluxseg4ei32(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, const int64_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_i64m2_m)))
-void vluxseg4ei32(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, vbool32_t op4, vint64m2_t op5, vint64m2_t op6, vint64m2_t op7, vint64m2_t op8, const int64_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u64m1)))
-void vluxseg4ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, const uint64_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u64m1_m)))
-void vluxseg4ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vbool64_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, const uint64_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u64m2)))
-void vluxseg4ei32(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, const uint64_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_u64m2_m)))
-void vluxseg4ei32(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, vbool32_t op4, vuint64m2_t op5, vuint64m2_t op6, vuint64m2_t op7, vuint64m2_t op8, const uint64_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i64m1)))
-void vluxseg5ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, const int64_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_i64m1_m)))
-void vluxseg5ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vbool64_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, const int64_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u64m1)))
-void vluxseg5ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, const uint64_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_u64m1_m)))
-void vluxseg5ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vbool64_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, const uint64_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i64m1)))
-void vluxseg6ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, const int64_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_i64m1_m)))
-void vluxseg6ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vbool64_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, const int64_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u64m1)))
-void vluxseg6ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, const uint64_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_u64m1_m)))
-void vluxseg6ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vbool64_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, const uint64_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i64m1)))
-void vluxseg7ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, const int64_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_i64m1_m)))
-void vluxseg7ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vbool64_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, const int64_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u64m1)))
-void vluxseg7ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, const uint64_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_u64m1_m)))
-void vluxseg7ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vbool64_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, const uint64_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i64m1)))
-void vluxseg8ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, const int64_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_i64m1_m)))
-void vluxseg8ei32(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, vbool64_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, vint64m1_t op15, vint64m1_t op16, const int64_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u64m1)))
-void vluxseg8ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, const uint64_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_u64m1_m)))
-void vluxseg8ei32(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, vbool64_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, vuint64m1_t op15, vuint64m1_t op16, const uint64_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i64m1)))
-void vluxseg2ei64(vint64m1_t * op0, vint64m1_t * op1, const int64_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i64m1_m)))
-void vluxseg2ei64(vint64m1_t * op0, vint64m1_t * op1, vbool64_t op2, vint64m1_t op3, vint64m1_t op4, const int64_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i64m2)))
-void vluxseg2ei64(vint64m2_t * op0, vint64m2_t * op1, const int64_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i64m2_m)))
-void vluxseg2ei64(vint64m2_t * op0, vint64m2_t * op1, vbool32_t op2, vint64m2_t op3, vint64m2_t op4, const int64_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i64m4)))
-void vluxseg2ei64(vint64m4_t * op0, vint64m4_t * op1, const int64_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_i64m4_m)))
-void vluxseg2ei64(vint64m4_t * op0, vint64m4_t * op1, vbool16_t op2, vint64m4_t op3, vint64m4_t op4, const int64_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u64m1)))
-void vluxseg2ei64(vuint64m1_t * op0, vuint64m1_t * op1, const uint64_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u64m1_m)))
-void vluxseg2ei64(vuint64m1_t * op0, vuint64m1_t * op1, vbool64_t op2, vuint64m1_t op3, vuint64m1_t op4, const uint64_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u64m2)))
-void vluxseg2ei64(vuint64m2_t * op0, vuint64m2_t * op1, const uint64_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u64m2_m)))
-void vluxseg2ei64(vuint64m2_t * op0, vuint64m2_t * op1, vbool32_t op2, vuint64m2_t op3, vuint64m2_t op4, const uint64_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u64m4)))
-void vluxseg2ei64(vuint64m4_t * op0, vuint64m4_t * op1, const uint64_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_u64m4_m)))
-void vluxseg2ei64(vuint64m4_t * op0, vuint64m4_t * op1, vbool16_t op2, vuint64m4_t op3, vuint64m4_t op4, const uint64_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i64m1)))
-void vluxseg3ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, const int64_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i64m1_m)))
-void vluxseg3ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vbool64_t op3, vint64m1_t op4, vint64m1_t op5, vint64m1_t op6, const int64_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i64m2)))
-void vluxseg3ei64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, const int64_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_i64m2_m)))
-void vluxseg3ei64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vbool32_t op3, vint64m2_t op4, vint64m2_t op5, vint64m2_t op6, const int64_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u64m1)))
-void vluxseg3ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, const uint64_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u64m1_m)))
-void vluxseg3ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vbool64_t op3, vuint64m1_t op4, vuint64m1_t op5, vuint64m1_t op6, const uint64_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u64m2)))
-void vluxseg3ei64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, const uint64_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_u64m2_m)))
-void vluxseg3ei64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vbool32_t op3, vuint64m2_t op4, vuint64m2_t op5, vuint64m2_t op6, const uint64_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i64m1)))
-void vluxseg4ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, const int64_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i64m1_m)))
-void vluxseg4ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vbool64_t op4, vint64m1_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, const int64_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i64m2)))
-void vluxseg4ei64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, const int64_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_i64m2_m)))
-void vluxseg4ei64(vint64m2_t * op0, vint64m2_t * op1, vint64m2_t * op2, vint64m2_t * op3, vbool32_t op4, vint64m2_t op5, vint64m2_t op6, vint64m2_t op7, vint64m2_t op8, const int64_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u64m1)))
-void vluxseg4ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, const uint64_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u64m1_m)))
-void vluxseg4ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vbool64_t op4, vuint64m1_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, const uint64_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u64m2)))
-void vluxseg4ei64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, const uint64_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_u64m2_m)))
-void vluxseg4ei64(vuint64m2_t * op0, vuint64m2_t * op1, vuint64m2_t * op2, vuint64m2_t * op3, vbool32_t op4, vuint64m2_t op5, vuint64m2_t op6, vuint64m2_t op7, vuint64m2_t op8, const uint64_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i64m1)))
-void vluxseg5ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, const int64_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_i64m1_m)))
-void vluxseg5ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vbool64_t op5, vint64m1_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, const int64_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u64m1)))
-void vluxseg5ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, const uint64_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_u64m1_m)))
-void vluxseg5ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vbool64_t op5, vuint64m1_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, const uint64_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i64m1)))
-void vluxseg6ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, const int64_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_i64m1_m)))
-void vluxseg6ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vbool64_t op6, vint64m1_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, const int64_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u64m1)))
-void vluxseg6ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, const uint64_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_u64m1_m)))
-void vluxseg6ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vbool64_t op6, vuint64m1_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, const uint64_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i64m1)))
-void vluxseg7ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, const int64_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_i64m1_m)))
-void vluxseg7ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vbool64_t op7, vint64m1_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, const int64_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u64m1)))
-void vluxseg7ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, const uint64_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_u64m1_m)))
-void vluxseg7ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vbool64_t op7, vuint64m1_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, const uint64_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i64m1)))
-void vluxseg8ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, const int64_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_i64m1_m)))
-void vluxseg8ei64(vint64m1_t * op0, vint64m1_t * op1, vint64m1_t * op2, vint64m1_t * op3, vint64m1_t * op4, vint64m1_t * op5, vint64m1_t * op6, vint64m1_t * op7, vbool64_t op8, vint64m1_t op9, vint64m1_t op10, vint64m1_t op11, vint64m1_t op12, vint64m1_t op13, vint64m1_t op14, vint64m1_t op15, vint64m1_t op16, const int64_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u64m1)))
-void vluxseg8ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, const uint64_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_u64m1_m)))
-void vluxseg8ei64(vuint64m1_t * op0, vuint64m1_t * op1, vuint64m1_t * op2, vuint64m1_t * op3, vuint64m1_t * op4, vuint64m1_t * op5, vuint64m1_t * op6, vuint64m1_t * op7, vbool64_t op8, vuint64m1_t op9, vuint64m1_t op10, vuint64m1_t op11, vuint64m1_t op12, vuint64m1_t op13, vuint64m1_t op14, vuint64m1_t op15, vuint64m1_t op16, const uint64_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8m1)))
-void vloxseg2ei8(vint8m1_t * op0, vint8m1_t * op1, const int8_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8m1_m)))
-void vloxseg2ei8(vint8m1_t * op0, vint8m1_t * op1, vbool8_t op2, vint8m1_t op3, vint8m1_t op4, const int8_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8m2)))
-void vloxseg2ei8(vint8m2_t * op0, vint8m2_t * op1, const int8_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8m2_m)))
-void vloxseg2ei8(vint8m2_t * op0, vint8m2_t * op1, vbool4_t op2, vint8m2_t op3, vint8m2_t op4, const int8_t * op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8m4)))
-void vloxseg2ei8(vint8m4_t * op0, vint8m4_t * op1, const int8_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8m4_m)))
-void vloxseg2ei8(vint8m4_t * op0, vint8m4_t * op1, vbool2_t op2, vint8m4_t op3, vint8m4_t op4, const int8_t * op5, vuint8m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8mf2)))
-void vloxseg2ei8(vint8mf2_t * op0, vint8mf2_t * op1, const int8_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8mf2_m)))
-void vloxseg2ei8(vint8mf2_t * op0, vint8mf2_t * op1, vbool16_t op2, vint8mf2_t op3, vint8mf2_t op4, const int8_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8mf4)))
-void vloxseg2ei8(vint8mf4_t * op0, vint8mf4_t * op1, const int8_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8mf4_m)))
-void vloxseg2ei8(vint8mf4_t * op0, vint8mf4_t * op1, vbool32_t op2, vint8mf4_t op3, vint8mf4_t op4, const int8_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8mf8)))
-void vloxseg2ei8(vint8mf8_t * op0, vint8mf8_t * op1, const int8_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i8mf8_m)))
-void vloxseg2ei8(vint8mf8_t * op0, vint8mf8_t * op1, vbool64_t op2, vint8mf8_t op3, vint8mf8_t op4, const int8_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8m1)))
-void vloxseg2ei8(vuint8m1_t * op0, vuint8m1_t * op1, const uint8_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8m1_m)))
-void vloxseg2ei8(vuint8m1_t * op0, vuint8m1_t * op1, vbool8_t op2, vuint8m1_t op3, vuint8m1_t op4, const uint8_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8m2)))
-void vloxseg2ei8(vuint8m2_t * op0, vuint8m2_t * op1, const uint8_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8m2_m)))
-void vloxseg2ei8(vuint8m2_t * op0, vuint8m2_t * op1, vbool4_t op2, vuint8m2_t op3, vuint8m2_t op4, const uint8_t * op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8m4)))
-void vloxseg2ei8(vuint8m4_t * op0, vuint8m4_t * op1, const uint8_t * op2, vuint8m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8m4_m)))
-void vloxseg2ei8(vuint8m4_t * op0, vuint8m4_t * op1, vbool2_t op2, vuint8m4_t op3, vuint8m4_t op4, const uint8_t * op5, vuint8m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8mf2)))
-void vloxseg2ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, const uint8_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8mf2_m)))
-void vloxseg2ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vbool16_t op2, vuint8mf2_t op3, vuint8mf2_t op4, const uint8_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8mf4)))
-void vloxseg2ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, const uint8_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8mf4_m)))
-void vloxseg2ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vbool32_t op2, vuint8mf4_t op3, vuint8mf4_t op4, const uint8_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8mf8)))
-void vloxseg2ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, const uint8_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u8mf8_m)))
-void vloxseg2ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vbool64_t op2, vuint8mf8_t op3, vuint8mf8_t op4, const uint8_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i8m1)))
-void vloxseg3ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, const int8_t * op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i8m1_m)))
-void vloxseg3ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vbool8_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, const int8_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i8m2)))
-void vloxseg3ei8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, const int8_t * op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i8m2_m)))
-void vloxseg3ei8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vbool4_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, const int8_t * op7, vuint8m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i8mf2)))
-void vloxseg3ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, const int8_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i8mf2_m)))
-void vloxseg3ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vbool16_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, const int8_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i8mf4)))
-void vloxseg3ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, const int8_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i8mf4_m)))
-void vloxseg3ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vbool32_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, const int8_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i8mf8)))
-void vloxseg3ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, const int8_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i8mf8_m)))
-void vloxseg3ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vbool64_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, const int8_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u8m1)))
-void vloxseg3ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, const uint8_t * op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u8m1_m)))
-void vloxseg3ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vbool8_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, const uint8_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u8m2)))
-void vloxseg3ei8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, const uint8_t * op3, vuint8m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u8m2_m)))
-void vloxseg3ei8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vbool4_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, const uint8_t * op7, vuint8m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u8mf2)))
-void vloxseg3ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, const uint8_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u8mf2_m)))
-void vloxseg3ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vbool16_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, const uint8_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u8mf4)))
-void vloxseg3ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, const uint8_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u8mf4_m)))
-void vloxseg3ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vbool32_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, const uint8_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u8mf8)))
-void vloxseg3ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, const uint8_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u8mf8_m)))
-void vloxseg3ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vbool64_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, const uint8_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i8m1)))
-void vloxseg4ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, const int8_t * op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i8m1_m)))
-void vloxseg4ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vbool8_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, const int8_t * op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i8m2)))
-void vloxseg4ei8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, const int8_t * op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i8m2_m)))
-void vloxseg4ei8(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, vbool4_t op4, vint8m2_t op5, vint8m2_t op6, vint8m2_t op7, vint8m2_t op8, const int8_t * op9, vuint8m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i8mf2)))
-void vloxseg4ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, const int8_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i8mf2_m)))
-void vloxseg4ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vbool16_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, const int8_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i8mf4)))
-void vloxseg4ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, const int8_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i8mf4_m)))
-void vloxseg4ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vbool32_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, const int8_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i8mf8)))
-void vloxseg4ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, const int8_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i8mf8_m)))
-void vloxseg4ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vbool64_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, const int8_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u8m1)))
-void vloxseg4ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, const uint8_t * op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u8m1_m)))
-void vloxseg4ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vbool8_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, const uint8_t * op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u8m2)))
-void vloxseg4ei8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, const uint8_t * op4, vuint8m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u8m2_m)))
-void vloxseg4ei8(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, vbool4_t op4, vuint8m2_t op5, vuint8m2_t op6, vuint8m2_t op7, vuint8m2_t op8, const uint8_t * op9, vuint8m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u8mf2)))
-void vloxseg4ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, const uint8_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u8mf2_m)))
-void vloxseg4ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vbool16_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, const uint8_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u8mf4)))
-void vloxseg4ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, const uint8_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u8mf4_m)))
-void vloxseg4ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vbool32_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, const uint8_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u8mf8)))
-void vloxseg4ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, const uint8_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u8mf8_m)))
-void vloxseg4ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vbool64_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, const uint8_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i8m1)))
-void vloxseg5ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, const int8_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i8m1_m)))
-void vloxseg5ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vbool8_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, const int8_t * op11, vuint8m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i8mf2)))
-void vloxseg5ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, const int8_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i8mf2_m)))
-void vloxseg5ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vbool16_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, const int8_t * op11, vuint8mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i8mf4)))
-void vloxseg5ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, const int8_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i8mf4_m)))
-void vloxseg5ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vbool32_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, const int8_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i8mf8)))
-void vloxseg5ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, const int8_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i8mf8_m)))
-void vloxseg5ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vbool64_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, const int8_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u8m1)))
-void vloxseg5ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, const uint8_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u8m1_m)))
-void vloxseg5ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vbool8_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, const uint8_t * op11, vuint8m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u8mf2)))
-void vloxseg5ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, const uint8_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u8mf2_m)))
-void vloxseg5ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vbool16_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, const uint8_t * op11, vuint8mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u8mf4)))
-void vloxseg5ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, const uint8_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u8mf4_m)))
-void vloxseg5ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vbool32_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, const uint8_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u8mf8)))
-void vloxseg5ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, const uint8_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u8mf8_m)))
-void vloxseg5ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vbool64_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, const uint8_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i8m1)))
-void vloxseg6ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, const int8_t * op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i8m1_m)))
-void vloxseg6ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vbool8_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, const int8_t * op13, vuint8m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i8mf2)))
-void vloxseg6ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, const int8_t * op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i8mf2_m)))
-void vloxseg6ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vbool16_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, const int8_t * op13, vuint8mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i8mf4)))
-void vloxseg6ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, const int8_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i8mf4_m)))
-void vloxseg6ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vbool32_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, const int8_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i8mf8)))
-void vloxseg6ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, const int8_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i8mf8_m)))
-void vloxseg6ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vbool64_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, const int8_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u8m1)))
-void vloxseg6ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, const uint8_t * op6, vuint8m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u8m1_m)))
-void vloxseg6ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vbool8_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, const uint8_t * op13, vuint8m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u8mf2)))
-void vloxseg6ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, const uint8_t * op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u8mf2_m)))
-void vloxseg6ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vbool16_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, const uint8_t * op13, vuint8mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u8mf4)))
-void vloxseg6ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, const uint8_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u8mf4_m)))
-void vloxseg6ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vbool32_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, const uint8_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u8mf8)))
-void vloxseg6ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, const uint8_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u8mf8_m)))
-void vloxseg6ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vbool64_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, const uint8_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i8m1)))
-void vloxseg7ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, const int8_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i8m1_m)))
-void vloxseg7ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vbool8_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, const int8_t * op15, vuint8m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i8mf2)))
-void vloxseg7ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, const int8_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i8mf2_m)))
-void vloxseg7ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vbool16_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, const int8_t * op15, vuint8mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i8mf4)))
-void vloxseg7ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, const int8_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i8mf4_m)))
-void vloxseg7ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vbool32_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, const int8_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i8mf8)))
-void vloxseg7ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, const int8_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i8mf8_m)))
-void vloxseg7ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vbool64_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, const int8_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u8m1)))
-void vloxseg7ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, const uint8_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u8m1_m)))
-void vloxseg7ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vbool8_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, const uint8_t * op15, vuint8m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u8mf2)))
-void vloxseg7ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, const uint8_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u8mf2_m)))
-void vloxseg7ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vbool16_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, const uint8_t * op15, vuint8mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u8mf4)))
-void vloxseg7ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, const uint8_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u8mf4_m)))
-void vloxseg7ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vbool32_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, const uint8_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u8mf8)))
-void vloxseg7ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, const uint8_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u8mf8_m)))
-void vloxseg7ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vbool64_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, const uint8_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i8m1)))
-void vloxseg8ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, const int8_t * op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i8m1_m)))
-void vloxseg8ei8(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, vbool8_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, vint8m1_t op15, vint8m1_t op16, const int8_t * op17, vuint8m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i8mf2)))
-void vloxseg8ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, const int8_t * op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i8mf2_m)))
-void vloxseg8ei8(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, vbool16_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, vint8mf2_t op15, vint8mf2_t op16, const int8_t * op17, vuint8mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i8mf4)))
-void vloxseg8ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, const int8_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i8mf4_m)))
-void vloxseg8ei8(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, vbool32_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, vint8mf4_t op15, vint8mf4_t op16, const int8_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i8mf8)))
-void vloxseg8ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, const int8_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i8mf8_m)))
-void vloxseg8ei8(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, vbool64_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, vint8mf8_t op15, vint8mf8_t op16, const int8_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u8m1)))
-void vloxseg8ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, const uint8_t * op8, vuint8m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u8m1_m)))
-void vloxseg8ei8(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, vbool8_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, vuint8m1_t op15, vuint8m1_t op16, const uint8_t * op17, vuint8m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u8mf2)))
-void vloxseg8ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, const uint8_t * op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u8mf2_m)))
-void vloxseg8ei8(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, vbool16_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, vuint8mf2_t op15, vuint8mf2_t op16, const uint8_t * op17, vuint8mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u8mf4)))
-void vloxseg8ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, const uint8_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u8mf4_m)))
-void vloxseg8ei8(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, vbool32_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, vuint8mf4_t op15, vuint8mf4_t op16, const uint8_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u8mf8)))
-void vloxseg8ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, const uint8_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u8mf8_m)))
-void vloxseg8ei8(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, vbool64_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, vuint8mf8_t op15, vuint8mf8_t op16, const uint8_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8m1)))
-void vloxseg2ei16(vint8m1_t * op0, vint8m1_t * op1, const int8_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8m1_m)))
-void vloxseg2ei16(vint8m1_t * op0, vint8m1_t * op1, vbool8_t op2, vint8m1_t op3, vint8m1_t op4, const int8_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8m2)))
-void vloxseg2ei16(vint8m2_t * op0, vint8m2_t * op1, const int8_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8m2_m)))
-void vloxseg2ei16(vint8m2_t * op0, vint8m2_t * op1, vbool4_t op2, vint8m2_t op3, vint8m2_t op4, const int8_t * op5, vuint16m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8m4)))
-void vloxseg2ei16(vint8m4_t * op0, vint8m4_t * op1, const int8_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8m4_m)))
-void vloxseg2ei16(vint8m4_t * op0, vint8m4_t * op1, vbool2_t op2, vint8m4_t op3, vint8m4_t op4, const int8_t * op5, vuint16m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8mf2)))
-void vloxseg2ei16(vint8mf2_t * op0, vint8mf2_t * op1, const int8_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8mf2_m)))
-void vloxseg2ei16(vint8mf2_t * op0, vint8mf2_t * op1, vbool16_t op2, vint8mf2_t op3, vint8mf2_t op4, const int8_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8mf4)))
-void vloxseg2ei16(vint8mf4_t * op0, vint8mf4_t * op1, const int8_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8mf4_m)))
-void vloxseg2ei16(vint8mf4_t * op0, vint8mf4_t * op1, vbool32_t op2, vint8mf4_t op3, vint8mf4_t op4, const int8_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8mf8)))
-void vloxseg2ei16(vint8mf8_t * op0, vint8mf8_t * op1, const int8_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i8mf8_m)))
-void vloxseg2ei16(vint8mf8_t * op0, vint8mf8_t * op1, vbool64_t op2, vint8mf8_t op3, vint8mf8_t op4, const int8_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8m1)))
-void vloxseg2ei16(vuint8m1_t * op0, vuint8m1_t * op1, const uint8_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8m1_m)))
-void vloxseg2ei16(vuint8m1_t * op0, vuint8m1_t * op1, vbool8_t op2, vuint8m1_t op3, vuint8m1_t op4, const uint8_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8m2)))
-void vloxseg2ei16(vuint8m2_t * op0, vuint8m2_t * op1, const uint8_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8m2_m)))
-void vloxseg2ei16(vuint8m2_t * op0, vuint8m2_t * op1, vbool4_t op2, vuint8m2_t op3, vuint8m2_t op4, const uint8_t * op5, vuint16m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8m4)))
-void vloxseg2ei16(vuint8m4_t * op0, vuint8m4_t * op1, const uint8_t * op2, vuint16m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8m4_m)))
-void vloxseg2ei16(vuint8m4_t * op0, vuint8m4_t * op1, vbool2_t op2, vuint8m4_t op3, vuint8m4_t op4, const uint8_t * op5, vuint16m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8mf2)))
-void vloxseg2ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, const uint8_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8mf2_m)))
-void vloxseg2ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vbool16_t op2, vuint8mf2_t op3, vuint8mf2_t op4, const uint8_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8mf4)))
-void vloxseg2ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, const uint8_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8mf4_m)))
-void vloxseg2ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vbool32_t op2, vuint8mf4_t op3, vuint8mf4_t op4, const uint8_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8mf8)))
-void vloxseg2ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, const uint8_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u8mf8_m)))
-void vloxseg2ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vbool64_t op2, vuint8mf8_t op3, vuint8mf8_t op4, const uint8_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i8m1)))
-void vloxseg3ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, const int8_t * op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i8m1_m)))
-void vloxseg3ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vbool8_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, const int8_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i8m2)))
-void vloxseg3ei16(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, const int8_t * op3, vuint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i8m2_m)))
-void vloxseg3ei16(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vbool4_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, const int8_t * op7, vuint16m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i8mf2)))
-void vloxseg3ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, const int8_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i8mf2_m)))
-void vloxseg3ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vbool16_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, const int8_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i8mf4)))
-void vloxseg3ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, const int8_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i8mf4_m)))
-void vloxseg3ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vbool32_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, const int8_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i8mf8)))
-void vloxseg3ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, const int8_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i8mf8_m)))
-void vloxseg3ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vbool64_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, const int8_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u8m1)))
-void vloxseg3ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, const uint8_t * op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u8m1_m)))
-void vloxseg3ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vbool8_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, const uint8_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u8m2)))
-void vloxseg3ei16(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, const uint8_t * op3, vuint16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u8m2_m)))
-void vloxseg3ei16(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vbool4_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, const uint8_t * op7, vuint16m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u8mf2)))
-void vloxseg3ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, const uint8_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u8mf2_m)))
-void vloxseg3ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vbool16_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, const uint8_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u8mf4)))
-void vloxseg3ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, const uint8_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u8mf4_m)))
-void vloxseg3ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vbool32_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, const uint8_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u8mf8)))
-void vloxseg3ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, const uint8_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u8mf8_m)))
-void vloxseg3ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vbool64_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, const uint8_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i8m1)))
-void vloxseg4ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, const int8_t * op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i8m1_m)))
-void vloxseg4ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vbool8_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, const int8_t * op9, vuint16m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i8m2)))
-void vloxseg4ei16(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, const int8_t * op4, vuint16m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i8m2_m)))
-void vloxseg4ei16(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, vbool4_t op4, vint8m2_t op5, vint8m2_t op6, vint8m2_t op7, vint8m2_t op8, const int8_t * op9, vuint16m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i8mf2)))
-void vloxseg4ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, const int8_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i8mf2_m)))
-void vloxseg4ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vbool16_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, const int8_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i8mf4)))
-void vloxseg4ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, const int8_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i8mf4_m)))
-void vloxseg4ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vbool32_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, const int8_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i8mf8)))
-void vloxseg4ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, const int8_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i8mf8_m)))
-void vloxseg4ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vbool64_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, const int8_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u8m1)))
-void vloxseg4ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, const uint8_t * op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u8m1_m)))
-void vloxseg4ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vbool8_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, const uint8_t * op9, vuint16m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u8m2)))
-void vloxseg4ei16(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, const uint8_t * op4, vuint16m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u8m2_m)))
-void vloxseg4ei16(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, vbool4_t op4, vuint8m2_t op5, vuint8m2_t op6, vuint8m2_t op7, vuint8m2_t op8, const uint8_t * op9, vuint16m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u8mf2)))
-void vloxseg4ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, const uint8_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u8mf2_m)))
-void vloxseg4ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vbool16_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, const uint8_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u8mf4)))
-void vloxseg4ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, const uint8_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u8mf4_m)))
-void vloxseg4ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vbool32_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, const uint8_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u8mf8)))
-void vloxseg4ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, const uint8_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u8mf8_m)))
-void vloxseg4ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vbool64_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, const uint8_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i8m1)))
-void vloxseg5ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, const int8_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i8m1_m)))
-void vloxseg5ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vbool8_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, const int8_t * op11, vuint16m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i8mf2)))
-void vloxseg5ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, const int8_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i8mf2_m)))
-void vloxseg5ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vbool16_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, const int8_t * op11, vuint16m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i8mf4)))
-void vloxseg5ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, const int8_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i8mf4_m)))
-void vloxseg5ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vbool32_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, const int8_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i8mf8)))
-void vloxseg5ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, const int8_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i8mf8_m)))
-void vloxseg5ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vbool64_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, const int8_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u8m1)))
-void vloxseg5ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, const uint8_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u8m1_m)))
-void vloxseg5ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vbool8_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, const uint8_t * op11, vuint16m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u8mf2)))
-void vloxseg5ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, const uint8_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u8mf2_m)))
-void vloxseg5ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vbool16_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, const uint8_t * op11, vuint16m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u8mf4)))
-void vloxseg5ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, const uint8_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u8mf4_m)))
-void vloxseg5ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vbool32_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, const uint8_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u8mf8)))
-void vloxseg5ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, const uint8_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u8mf8_m)))
-void vloxseg5ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vbool64_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, const uint8_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i8m1)))
-void vloxseg6ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, const int8_t * op6, vuint16m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i8m1_m)))
-void vloxseg6ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vbool8_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, const int8_t * op13, vuint16m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i8mf2)))
-void vloxseg6ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, const int8_t * op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i8mf2_m)))
-void vloxseg6ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vbool16_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, const int8_t * op13, vuint16m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i8mf4)))
-void vloxseg6ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, const int8_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i8mf4_m)))
-void vloxseg6ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vbool32_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, const int8_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i8mf8)))
-void vloxseg6ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, const int8_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i8mf8_m)))
-void vloxseg6ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vbool64_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, const int8_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u8m1)))
-void vloxseg6ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, const uint8_t * op6, vuint16m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u8m1_m)))
-void vloxseg6ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vbool8_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, const uint8_t * op13, vuint16m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u8mf2)))
-void vloxseg6ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, const uint8_t * op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u8mf2_m)))
-void vloxseg6ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vbool16_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, const uint8_t * op13, vuint16m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u8mf4)))
-void vloxseg6ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, const uint8_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u8mf4_m)))
-void vloxseg6ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vbool32_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, const uint8_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u8mf8)))
-void vloxseg6ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, const uint8_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u8mf8_m)))
-void vloxseg6ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vbool64_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, const uint8_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i8m1)))
-void vloxseg7ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, const int8_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i8m1_m)))
-void vloxseg7ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vbool8_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, const int8_t * op15, vuint16m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i8mf2)))
-void vloxseg7ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, const int8_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i8mf2_m)))
-void vloxseg7ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vbool16_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, const int8_t * op15, vuint16m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i8mf4)))
-void vloxseg7ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, const int8_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i8mf4_m)))
-void vloxseg7ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vbool32_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, const int8_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i8mf8)))
-void vloxseg7ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, const int8_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i8mf8_m)))
-void vloxseg7ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vbool64_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, const int8_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u8m1)))
-void vloxseg7ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, const uint8_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u8m1_m)))
-void vloxseg7ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vbool8_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, const uint8_t * op15, vuint16m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u8mf2)))
-void vloxseg7ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, const uint8_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u8mf2_m)))
-void vloxseg7ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vbool16_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, const uint8_t * op15, vuint16m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u8mf4)))
-void vloxseg7ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, const uint8_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u8mf4_m)))
-void vloxseg7ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vbool32_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, const uint8_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u8mf8)))
-void vloxseg7ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, const uint8_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u8mf8_m)))
-void vloxseg7ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vbool64_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, const uint8_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i8m1)))
-void vloxseg8ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, const int8_t * op8, vuint16m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i8m1_m)))
-void vloxseg8ei16(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, vbool8_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, vint8m1_t op15, vint8m1_t op16, const int8_t * op17, vuint16m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i8mf2)))
-void vloxseg8ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, const int8_t * op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i8mf2_m)))
-void vloxseg8ei16(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, vbool16_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, vint8mf2_t op15, vint8mf2_t op16, const int8_t * op17, vuint16m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i8mf4)))
-void vloxseg8ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, const int8_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i8mf4_m)))
-void vloxseg8ei16(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, vbool32_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, vint8mf4_t op15, vint8mf4_t op16, const int8_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i8mf8)))
-void vloxseg8ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, const int8_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i8mf8_m)))
-void vloxseg8ei16(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, vbool64_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, vint8mf8_t op15, vint8mf8_t op16, const int8_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u8m1)))
-void vloxseg8ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, const uint8_t * op8, vuint16m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u8m1_m)))
-void vloxseg8ei16(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, vbool8_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, vuint8m1_t op15, vuint8m1_t op16, const uint8_t * op17, vuint16m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u8mf2)))
-void vloxseg8ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, const uint8_t * op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u8mf2_m)))
-void vloxseg8ei16(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, vbool16_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, vuint8mf2_t op15, vuint8mf2_t op16, const uint8_t * op17, vuint16m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u8mf4)))
-void vloxseg8ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, const uint8_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u8mf4_m)))
-void vloxseg8ei16(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, vbool32_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, vuint8mf4_t op15, vuint8mf4_t op16, const uint8_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u8mf8)))
-void vloxseg8ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, const uint8_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u8mf8_m)))
-void vloxseg8ei16(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, vbool64_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, vuint8mf8_t op15, vuint8mf8_t op16, const uint8_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i8m1)))
-void vloxseg2ei32(vint8m1_t * op0, vint8m1_t * op1, const int8_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i8m1_m)))
-void vloxseg2ei32(vint8m1_t * op0, vint8m1_t * op1, vbool8_t op2, vint8m1_t op3, vint8m1_t op4, const int8_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i8m2)))
-void vloxseg2ei32(vint8m2_t * op0, vint8m2_t * op1, const int8_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i8m2_m)))
-void vloxseg2ei32(vint8m2_t * op0, vint8m2_t * op1, vbool4_t op2, vint8m2_t op3, vint8m2_t op4, const int8_t * op5, vuint32m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i8mf2)))
-void vloxseg2ei32(vint8mf2_t * op0, vint8mf2_t * op1, const int8_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i8mf2_m)))
-void vloxseg2ei32(vint8mf2_t * op0, vint8mf2_t * op1, vbool16_t op2, vint8mf2_t op3, vint8mf2_t op4, const int8_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i8mf4)))
-void vloxseg2ei32(vint8mf4_t * op0, vint8mf4_t * op1, const int8_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i8mf4_m)))
-void vloxseg2ei32(vint8mf4_t * op0, vint8mf4_t * op1, vbool32_t op2, vint8mf4_t op3, vint8mf4_t op4, const int8_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i8mf8)))
-void vloxseg2ei32(vint8mf8_t * op0, vint8mf8_t * op1, const int8_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i8mf8_m)))
-void vloxseg2ei32(vint8mf8_t * op0, vint8mf8_t * op1, vbool64_t op2, vint8mf8_t op3, vint8mf8_t op4, const int8_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u8m1)))
-void vloxseg2ei32(vuint8m1_t * op0, vuint8m1_t * op1, const uint8_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u8m1_m)))
-void vloxseg2ei32(vuint8m1_t * op0, vuint8m1_t * op1, vbool8_t op2, vuint8m1_t op3, vuint8m1_t op4, const uint8_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u8m2)))
-void vloxseg2ei32(vuint8m2_t * op0, vuint8m2_t * op1, const uint8_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u8m2_m)))
-void vloxseg2ei32(vuint8m2_t * op0, vuint8m2_t * op1, vbool4_t op2, vuint8m2_t op3, vuint8m2_t op4, const uint8_t * op5, vuint32m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u8mf2)))
-void vloxseg2ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, const uint8_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u8mf2_m)))
-void vloxseg2ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vbool16_t op2, vuint8mf2_t op3, vuint8mf2_t op4, const uint8_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u8mf4)))
-void vloxseg2ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, const uint8_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u8mf4_m)))
-void vloxseg2ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vbool32_t op2, vuint8mf4_t op3, vuint8mf4_t op4, const uint8_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u8mf8)))
-void vloxseg2ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, const uint8_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u8mf8_m)))
-void vloxseg2ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vbool64_t op2, vuint8mf8_t op3, vuint8mf8_t op4, const uint8_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i8m1)))
-void vloxseg3ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, const int8_t * op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i8m1_m)))
-void vloxseg3ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vbool8_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, const int8_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i8m2)))
-void vloxseg3ei32(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, const int8_t * op3, vuint32m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i8m2_m)))
-void vloxseg3ei32(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vbool4_t op3, vint8m2_t op4, vint8m2_t op5, vint8m2_t op6, const int8_t * op7, vuint32m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i8mf2)))
-void vloxseg3ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, const int8_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i8mf2_m)))
-void vloxseg3ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vbool16_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, const int8_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i8mf4)))
-void vloxseg3ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, const int8_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i8mf4_m)))
-void vloxseg3ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vbool32_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, const int8_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i8mf8)))
-void vloxseg3ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, const int8_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i8mf8_m)))
-void vloxseg3ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vbool64_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, const int8_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u8m1)))
-void vloxseg3ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, const uint8_t * op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u8m1_m)))
-void vloxseg3ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vbool8_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, const uint8_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u8m2)))
-void vloxseg3ei32(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, const uint8_t * op3, vuint32m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u8m2_m)))
-void vloxseg3ei32(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vbool4_t op3, vuint8m2_t op4, vuint8m2_t op5, vuint8m2_t op6, const uint8_t * op7, vuint32m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u8mf2)))
-void vloxseg3ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, const uint8_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u8mf2_m)))
-void vloxseg3ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vbool16_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, const uint8_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u8mf4)))
-void vloxseg3ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, const uint8_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u8mf4_m)))
-void vloxseg3ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vbool32_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, const uint8_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u8mf8)))
-void vloxseg3ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, const uint8_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u8mf8_m)))
-void vloxseg3ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vbool64_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, const uint8_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i8m1)))
-void vloxseg4ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, const int8_t * op4, vuint32m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i8m1_m)))
-void vloxseg4ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vbool8_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, const int8_t * op9, vuint32m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i8m2)))
-void vloxseg4ei32(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, const int8_t * op4, vuint32m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i8m2_m)))
-void vloxseg4ei32(vint8m2_t * op0, vint8m2_t * op1, vint8m2_t * op2, vint8m2_t * op3, vbool4_t op4, vint8m2_t op5, vint8m2_t op6, vint8m2_t op7, vint8m2_t op8, const int8_t * op9, vuint32m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i8mf2)))
-void vloxseg4ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, const int8_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i8mf2_m)))
-void vloxseg4ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vbool16_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, const int8_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i8mf4)))
-void vloxseg4ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, const int8_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i8mf4_m)))
-void vloxseg4ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vbool32_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, const int8_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i8mf8)))
-void vloxseg4ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, const int8_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i8mf8_m)))
-void vloxseg4ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vbool64_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, const int8_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u8m1)))
-void vloxseg4ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, const uint8_t * op4, vuint32m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u8m1_m)))
-void vloxseg4ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vbool8_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, const uint8_t * op9, vuint32m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u8m2)))
-void vloxseg4ei32(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, const uint8_t * op4, vuint32m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u8m2_m)))
-void vloxseg4ei32(vuint8m2_t * op0, vuint8m2_t * op1, vuint8m2_t * op2, vuint8m2_t * op3, vbool4_t op4, vuint8m2_t op5, vuint8m2_t op6, vuint8m2_t op7, vuint8m2_t op8, const uint8_t * op9, vuint32m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u8mf2)))
-void vloxseg4ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, const uint8_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u8mf2_m)))
-void vloxseg4ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vbool16_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, const uint8_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u8mf4)))
-void vloxseg4ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, const uint8_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u8mf4_m)))
-void vloxseg4ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vbool32_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, const uint8_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u8mf8)))
-void vloxseg4ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, const uint8_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u8mf8_m)))
-void vloxseg4ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vbool64_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, const uint8_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i8m1)))
-void vloxseg5ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, const int8_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i8m1_m)))
-void vloxseg5ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vbool8_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, const int8_t * op11, vuint32m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i8mf2)))
-void vloxseg5ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, const int8_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i8mf2_m)))
-void vloxseg5ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vbool16_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, const int8_t * op11, vuint32m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i8mf4)))
-void vloxseg5ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, const int8_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i8mf4_m)))
-void vloxseg5ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vbool32_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, const int8_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i8mf8)))
-void vloxseg5ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, const int8_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i8mf8_m)))
-void vloxseg5ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vbool64_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, const int8_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u8m1)))
-void vloxseg5ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, const uint8_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u8m1_m)))
-void vloxseg5ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vbool8_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, const uint8_t * op11, vuint32m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u8mf2)))
-void vloxseg5ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, const uint8_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u8mf2_m)))
-void vloxseg5ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vbool16_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, const uint8_t * op11, vuint32m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u8mf4)))
-void vloxseg5ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, const uint8_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u8mf4_m)))
-void vloxseg5ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vbool32_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, const uint8_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u8mf8)))
-void vloxseg5ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, const uint8_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u8mf8_m)))
-void vloxseg5ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vbool64_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, const uint8_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i8m1)))
-void vloxseg6ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, const int8_t * op6, vuint32m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i8m1_m)))
-void vloxseg6ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vbool8_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, const int8_t * op13, vuint32m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i8mf2)))
-void vloxseg6ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, const int8_t * op6, vuint32m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i8mf2_m)))
-void vloxseg6ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vbool16_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, const int8_t * op13, vuint32m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i8mf4)))
-void vloxseg6ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, const int8_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i8mf4_m)))
-void vloxseg6ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vbool32_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, const int8_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i8mf8)))
-void vloxseg6ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, const int8_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i8mf8_m)))
-void vloxseg6ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vbool64_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, const int8_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u8m1)))
-void vloxseg6ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, const uint8_t * op6, vuint32m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u8m1_m)))
-void vloxseg6ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vbool8_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, const uint8_t * op13, vuint32m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u8mf2)))
-void vloxseg6ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, const uint8_t * op6, vuint32m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u8mf2_m)))
-void vloxseg6ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vbool16_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, const uint8_t * op13, vuint32m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u8mf4)))
-void vloxseg6ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, const uint8_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u8mf4_m)))
-void vloxseg6ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vbool32_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, const uint8_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u8mf8)))
-void vloxseg6ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, const uint8_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u8mf8_m)))
-void vloxseg6ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vbool64_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, const uint8_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i8m1)))
-void vloxseg7ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, const int8_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i8m1_m)))
-void vloxseg7ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vbool8_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, const int8_t * op15, vuint32m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i8mf2)))
-void vloxseg7ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, const int8_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i8mf2_m)))
-void vloxseg7ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vbool16_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, const int8_t * op15, vuint32m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i8mf4)))
-void vloxseg7ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, const int8_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i8mf4_m)))
-void vloxseg7ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vbool32_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, const int8_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i8mf8)))
-void vloxseg7ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, const int8_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i8mf8_m)))
-void vloxseg7ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vbool64_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, const int8_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u8m1)))
-void vloxseg7ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, const uint8_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u8m1_m)))
-void vloxseg7ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vbool8_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, const uint8_t * op15, vuint32m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u8mf2)))
-void vloxseg7ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, const uint8_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u8mf2_m)))
-void vloxseg7ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vbool16_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, const uint8_t * op15, vuint32m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u8mf4)))
-void vloxseg7ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, const uint8_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u8mf4_m)))
-void vloxseg7ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vbool32_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, const uint8_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u8mf8)))
-void vloxseg7ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, const uint8_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u8mf8_m)))
-void vloxseg7ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vbool64_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, const uint8_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i8m1)))
-void vloxseg8ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, const int8_t * op8, vuint32m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i8m1_m)))
-void vloxseg8ei32(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, vbool8_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, vint8m1_t op15, vint8m1_t op16, const int8_t * op17, vuint32m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i8mf2)))
-void vloxseg8ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, const int8_t * op8, vuint32m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i8mf2_m)))
-void vloxseg8ei32(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, vbool16_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, vint8mf2_t op15, vint8mf2_t op16, const int8_t * op17, vuint32m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i8mf4)))
-void vloxseg8ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, const int8_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i8mf4_m)))
-void vloxseg8ei32(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, vbool32_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, vint8mf4_t op15, vint8mf4_t op16, const int8_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i8mf8)))
-void vloxseg8ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, const int8_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i8mf8_m)))
-void vloxseg8ei32(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, vbool64_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, vint8mf8_t op15, vint8mf8_t op16, const int8_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u8m1)))
-void vloxseg8ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, const uint8_t * op8, vuint32m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u8m1_m)))
-void vloxseg8ei32(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, vbool8_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, vuint8m1_t op15, vuint8m1_t op16, const uint8_t * op17, vuint32m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u8mf2)))
-void vloxseg8ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, const uint8_t * op8, vuint32m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u8mf2_m)))
-void vloxseg8ei32(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, vbool16_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, vuint8mf2_t op15, vuint8mf2_t op16, const uint8_t * op17, vuint32m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u8mf4)))
-void vloxseg8ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, const uint8_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u8mf4_m)))
-void vloxseg8ei32(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, vbool32_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, vuint8mf4_t op15, vuint8mf4_t op16, const uint8_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u8mf8)))
-void vloxseg8ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, const uint8_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u8mf8_m)))
-void vloxseg8ei32(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, vbool64_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, vuint8mf8_t op15, vuint8mf8_t op16, const uint8_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i8m1)))
-void vloxseg2ei64(vint8m1_t * op0, vint8m1_t * op1, const int8_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i8m1_m)))
-void vloxseg2ei64(vint8m1_t * op0, vint8m1_t * op1, vbool8_t op2, vint8m1_t op3, vint8m1_t op4, const int8_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i8mf2)))
-void vloxseg2ei64(vint8mf2_t * op0, vint8mf2_t * op1, const int8_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i8mf2_m)))
-void vloxseg2ei64(vint8mf2_t * op0, vint8mf2_t * op1, vbool16_t op2, vint8mf2_t op3, vint8mf2_t op4, const int8_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i8mf4)))
-void vloxseg2ei64(vint8mf4_t * op0, vint8mf4_t * op1, const int8_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i8mf4_m)))
-void vloxseg2ei64(vint8mf4_t * op0, vint8mf4_t * op1, vbool32_t op2, vint8mf4_t op3, vint8mf4_t op4, const int8_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i8mf8)))
-void vloxseg2ei64(vint8mf8_t * op0, vint8mf8_t * op1, const int8_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i8mf8_m)))
-void vloxseg2ei64(vint8mf8_t * op0, vint8mf8_t * op1, vbool64_t op2, vint8mf8_t op3, vint8mf8_t op4, const int8_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u8m1)))
-void vloxseg2ei64(vuint8m1_t * op0, vuint8m1_t * op1, const uint8_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u8m1_m)))
-void vloxseg2ei64(vuint8m1_t * op0, vuint8m1_t * op1, vbool8_t op2, vuint8m1_t op3, vuint8m1_t op4, const uint8_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u8mf2)))
-void vloxseg2ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, const uint8_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u8mf2_m)))
-void vloxseg2ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vbool16_t op2, vuint8mf2_t op3, vuint8mf2_t op4, const uint8_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u8mf4)))
-void vloxseg2ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, const uint8_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u8mf4_m)))
-void vloxseg2ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vbool32_t op2, vuint8mf4_t op3, vuint8mf4_t op4, const uint8_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u8mf8)))
-void vloxseg2ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, const uint8_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u8mf8_m)))
-void vloxseg2ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vbool64_t op2, vuint8mf8_t op3, vuint8mf8_t op4, const uint8_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i8m1)))
-void vloxseg3ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, const int8_t * op3, vuint64m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i8m1_m)))
-void vloxseg3ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vbool8_t op3, vint8m1_t op4, vint8m1_t op5, vint8m1_t op6, const int8_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i8mf2)))
-void vloxseg3ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, const int8_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i8mf2_m)))
-void vloxseg3ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vbool16_t op3, vint8mf2_t op4, vint8mf2_t op5, vint8mf2_t op6, const int8_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i8mf4)))
-void vloxseg3ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, const int8_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i8mf4_m)))
-void vloxseg3ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vbool32_t op3, vint8mf4_t op4, vint8mf4_t op5, vint8mf4_t op6, const int8_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i8mf8)))
-void vloxseg3ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, const int8_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i8mf8_m)))
-void vloxseg3ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vbool64_t op3, vint8mf8_t op4, vint8mf8_t op5, vint8mf8_t op6, const int8_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u8m1)))
-void vloxseg3ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, const uint8_t * op3, vuint64m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u8m1_m)))
-void vloxseg3ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vbool8_t op3, vuint8m1_t op4, vuint8m1_t op5, vuint8m1_t op6, const uint8_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u8mf2)))
-void vloxseg3ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, const uint8_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u8mf2_m)))
-void vloxseg3ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vbool16_t op3, vuint8mf2_t op4, vuint8mf2_t op5, vuint8mf2_t op6, const uint8_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u8mf4)))
-void vloxseg3ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, const uint8_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u8mf4_m)))
-void vloxseg3ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vbool32_t op3, vuint8mf4_t op4, vuint8mf4_t op5, vuint8mf4_t op6, const uint8_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u8mf8)))
-void vloxseg3ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, const uint8_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u8mf8_m)))
-void vloxseg3ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vbool64_t op3, vuint8mf8_t op4, vuint8mf8_t op5, vuint8mf8_t op6, const uint8_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i8m1)))
-void vloxseg4ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, const int8_t * op4, vuint64m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i8m1_m)))
-void vloxseg4ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vbool8_t op4, vint8m1_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, const int8_t * op9, vuint64m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i8mf2)))
-void vloxseg4ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, const int8_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i8mf2_m)))
-void vloxseg4ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vbool16_t op4, vint8mf2_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, const int8_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i8mf4)))
-void vloxseg4ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, const int8_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i8mf4_m)))
-void vloxseg4ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vbool32_t op4, vint8mf4_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, const int8_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i8mf8)))
-void vloxseg4ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, const int8_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i8mf8_m)))
-void vloxseg4ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vbool64_t op4, vint8mf8_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, const int8_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u8m1)))
-void vloxseg4ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, const uint8_t * op4, vuint64m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u8m1_m)))
-void vloxseg4ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vbool8_t op4, vuint8m1_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, const uint8_t * op9, vuint64m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u8mf2)))
-void vloxseg4ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, const uint8_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u8mf2_m)))
-void vloxseg4ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vbool16_t op4, vuint8mf2_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, const uint8_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u8mf4)))
-void vloxseg4ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, const uint8_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u8mf4_m)))
-void vloxseg4ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vbool32_t op4, vuint8mf4_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, const uint8_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u8mf8)))
-void vloxseg4ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, const uint8_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u8mf8_m)))
-void vloxseg4ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vbool64_t op4, vuint8mf8_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, const uint8_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i8m1)))
-void vloxseg5ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, const int8_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i8m1_m)))
-void vloxseg5ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vbool8_t op5, vint8m1_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, const int8_t * op11, vuint64m8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i8mf2)))
-void vloxseg5ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, const int8_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i8mf2_m)))
-void vloxseg5ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vbool16_t op5, vint8mf2_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, const int8_t * op11, vuint64m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i8mf4)))
-void vloxseg5ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, const int8_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i8mf4_m)))
-void vloxseg5ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vbool32_t op5, vint8mf4_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, const int8_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i8mf8)))
-void vloxseg5ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, const int8_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i8mf8_m)))
-void vloxseg5ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vbool64_t op5, vint8mf8_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, const int8_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u8m1)))
-void vloxseg5ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, const uint8_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u8m1_m)))
-void vloxseg5ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vbool8_t op5, vuint8m1_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, const uint8_t * op11, vuint64m8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u8mf2)))
-void vloxseg5ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, const uint8_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u8mf2_m)))
-void vloxseg5ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vbool16_t op5, vuint8mf2_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, const uint8_t * op11, vuint64m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u8mf4)))
-void vloxseg5ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, const uint8_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u8mf4_m)))
-void vloxseg5ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vbool32_t op5, vuint8mf4_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, const uint8_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u8mf8)))
-void vloxseg5ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, const uint8_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u8mf8_m)))
-void vloxseg5ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vbool64_t op5, vuint8mf8_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, const uint8_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i8m1)))
-void vloxseg6ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, const int8_t * op6, vuint64m8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i8m1_m)))
-void vloxseg6ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vbool8_t op6, vint8m1_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, const int8_t * op13, vuint64m8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i8mf2)))
-void vloxseg6ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, const int8_t * op6, vuint64m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i8mf2_m)))
-void vloxseg6ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vbool16_t op6, vint8mf2_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, const int8_t * op13, vuint64m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i8mf4)))
-void vloxseg6ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, const int8_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i8mf4_m)))
-void vloxseg6ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vbool32_t op6, vint8mf4_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, const int8_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i8mf8)))
-void vloxseg6ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, const int8_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i8mf8_m)))
-void vloxseg6ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vbool64_t op6, vint8mf8_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, const int8_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u8m1)))
-void vloxseg6ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, const uint8_t * op6, vuint64m8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u8m1_m)))
-void vloxseg6ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vbool8_t op6, vuint8m1_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, const uint8_t * op13, vuint64m8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u8mf2)))
-void vloxseg6ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, const uint8_t * op6, vuint64m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u8mf2_m)))
-void vloxseg6ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vbool16_t op6, vuint8mf2_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, const uint8_t * op13, vuint64m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u8mf4)))
-void vloxseg6ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, const uint8_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u8mf4_m)))
-void vloxseg6ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vbool32_t op6, vuint8mf4_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, const uint8_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u8mf8)))
-void vloxseg6ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, const uint8_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u8mf8_m)))
-void vloxseg6ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vbool64_t op6, vuint8mf8_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, const uint8_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i8m1)))
-void vloxseg7ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, const int8_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i8m1_m)))
-void vloxseg7ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vbool8_t op7, vint8m1_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, const int8_t * op15, vuint64m8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i8mf2)))
-void vloxseg7ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, const int8_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i8mf2_m)))
-void vloxseg7ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vbool16_t op7, vint8mf2_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, const int8_t * op15, vuint64m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i8mf4)))
-void vloxseg7ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, const int8_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i8mf4_m)))
-void vloxseg7ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vbool32_t op7, vint8mf4_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, const int8_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i8mf8)))
-void vloxseg7ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, const int8_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i8mf8_m)))
-void vloxseg7ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vbool64_t op7, vint8mf8_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, const int8_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u8m1)))
-void vloxseg7ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, const uint8_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u8m1_m)))
-void vloxseg7ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vbool8_t op7, vuint8m1_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, const uint8_t * op15, vuint64m8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u8mf2)))
-void vloxseg7ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, const uint8_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u8mf2_m)))
-void vloxseg7ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vbool16_t op7, vuint8mf2_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, const uint8_t * op15, vuint64m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u8mf4)))
-void vloxseg7ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, const uint8_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u8mf4_m)))
-void vloxseg7ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vbool32_t op7, vuint8mf4_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, const uint8_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u8mf8)))
-void vloxseg7ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, const uint8_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u8mf8_m)))
-void vloxseg7ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vbool64_t op7, vuint8mf8_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, const uint8_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i8m1)))
-void vloxseg8ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, const int8_t * op8, vuint64m8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i8m1_m)))
-void vloxseg8ei64(vint8m1_t * op0, vint8m1_t * op1, vint8m1_t * op2, vint8m1_t * op3, vint8m1_t * op4, vint8m1_t * op5, vint8m1_t * op6, vint8m1_t * op7, vbool8_t op8, vint8m1_t op9, vint8m1_t op10, vint8m1_t op11, vint8m1_t op12, vint8m1_t op13, vint8m1_t op14, vint8m1_t op15, vint8m1_t op16, const int8_t * op17, vuint64m8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i8mf2)))
-void vloxseg8ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, const int8_t * op8, vuint64m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i8mf2_m)))
-void vloxseg8ei64(vint8mf2_t * op0, vint8mf2_t * op1, vint8mf2_t * op2, vint8mf2_t * op3, vint8mf2_t * op4, vint8mf2_t * op5, vint8mf2_t * op6, vint8mf2_t * op7, vbool16_t op8, vint8mf2_t op9, vint8mf2_t op10, vint8mf2_t op11, vint8mf2_t op12, vint8mf2_t op13, vint8mf2_t op14, vint8mf2_t op15, vint8mf2_t op16, const int8_t * op17, vuint64m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i8mf4)))
-void vloxseg8ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, const int8_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i8mf4_m)))
-void vloxseg8ei64(vint8mf4_t * op0, vint8mf4_t * op1, vint8mf4_t * op2, vint8mf4_t * op3, vint8mf4_t * op4, vint8mf4_t * op5, vint8mf4_t * op6, vint8mf4_t * op7, vbool32_t op8, vint8mf4_t op9, vint8mf4_t op10, vint8mf4_t op11, vint8mf4_t op12, vint8mf4_t op13, vint8mf4_t op14, vint8mf4_t op15, vint8mf4_t op16, const int8_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i8mf8)))
-void vloxseg8ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, const int8_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i8mf8_m)))
-void vloxseg8ei64(vint8mf8_t * op0, vint8mf8_t * op1, vint8mf8_t * op2, vint8mf8_t * op3, vint8mf8_t * op4, vint8mf8_t * op5, vint8mf8_t * op6, vint8mf8_t * op7, vbool64_t op8, vint8mf8_t op9, vint8mf8_t op10, vint8mf8_t op11, vint8mf8_t op12, vint8mf8_t op13, vint8mf8_t op14, vint8mf8_t op15, vint8mf8_t op16, const int8_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u8m1)))
-void vloxseg8ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, const uint8_t * op8, vuint64m8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u8m1_m)))
-void vloxseg8ei64(vuint8m1_t * op0, vuint8m1_t * op1, vuint8m1_t * op2, vuint8m1_t * op3, vuint8m1_t * op4, vuint8m1_t * op5, vuint8m1_t * op6, vuint8m1_t * op7, vbool8_t op8, vuint8m1_t op9, vuint8m1_t op10, vuint8m1_t op11, vuint8m1_t op12, vuint8m1_t op13, vuint8m1_t op14, vuint8m1_t op15, vuint8m1_t op16, const uint8_t * op17, vuint64m8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u8mf2)))
-void vloxseg8ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, const uint8_t * op8, vuint64m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u8mf2_m)))
-void vloxseg8ei64(vuint8mf2_t * op0, vuint8mf2_t * op1, vuint8mf2_t * op2, vuint8mf2_t * op3, vuint8mf2_t * op4, vuint8mf2_t * op5, vuint8mf2_t * op6, vuint8mf2_t * op7, vbool16_t op8, vuint8mf2_t op9, vuint8mf2_t op10, vuint8mf2_t op11, vuint8mf2_t op12, vuint8mf2_t op13, vuint8mf2_t op14, vuint8mf2_t op15, vuint8mf2_t op16, const uint8_t * op17, vuint64m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u8mf4)))
-void vloxseg8ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, const uint8_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u8mf4_m)))
-void vloxseg8ei64(vuint8mf4_t * op0, vuint8mf4_t * op1, vuint8mf4_t * op2, vuint8mf4_t * op3, vuint8mf4_t * op4, vuint8mf4_t * op5, vuint8mf4_t * op6, vuint8mf4_t * op7, vbool32_t op8, vuint8mf4_t op9, vuint8mf4_t op10, vuint8mf4_t op11, vuint8mf4_t op12, vuint8mf4_t op13, vuint8mf4_t op14, vuint8mf4_t op15, vuint8mf4_t op16, const uint8_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u8mf8)))
-void vloxseg8ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, const uint8_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u8mf8_m)))
-void vloxseg8ei64(vuint8mf8_t * op0, vuint8mf8_t * op1, vuint8mf8_t * op2, vuint8mf8_t * op3, vuint8mf8_t * op4, vuint8mf8_t * op5, vuint8mf8_t * op6, vuint8mf8_t * op7, vbool64_t op8, vuint8mf8_t op9, vuint8mf8_t op10, vuint8mf8_t op11, vuint8mf8_t op12, vuint8mf8_t op13, vuint8mf8_t op14, vuint8mf8_t op15, vuint8mf8_t op16, const uint8_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i16m1)))
-void vloxseg2ei8(vint16m1_t * op0, vint16m1_t * op1, const int16_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i16m1_m)))
-void vloxseg2ei8(vint16m1_t * op0, vint16m1_t * op1, vbool16_t op2, vint16m1_t op3, vint16m1_t op4, const int16_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i16m2)))
-void vloxseg2ei8(vint16m2_t * op0, vint16m2_t * op1, const int16_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i16m2_m)))
-void vloxseg2ei8(vint16m2_t * op0, vint16m2_t * op1, vbool8_t op2, vint16m2_t op3, vint16m2_t op4, const int16_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i16m4)))
-void vloxseg2ei8(vint16m4_t * op0, vint16m4_t * op1, const int16_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i16m4_m)))
-void vloxseg2ei8(vint16m4_t * op0, vint16m4_t * op1, vbool4_t op2, vint16m4_t op3, vint16m4_t op4, const int16_t * op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i16mf2)))
-void vloxseg2ei8(vint16mf2_t * op0, vint16mf2_t * op1, const int16_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i16mf2_m)))
-void vloxseg2ei8(vint16mf2_t * op0, vint16mf2_t * op1, vbool32_t op2, vint16mf2_t op3, vint16mf2_t op4, const int16_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i16mf4)))
-void vloxseg2ei8(vint16mf4_t * op0, vint16mf4_t * op1, const int16_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i16mf4_m)))
-void vloxseg2ei8(vint16mf4_t * op0, vint16mf4_t * op1, vbool64_t op2, vint16mf4_t op3, vint16mf4_t op4, const int16_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u16m1)))
-void vloxseg2ei8(vuint16m1_t * op0, vuint16m1_t * op1, const uint16_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u16m1_m)))
-void vloxseg2ei8(vuint16m1_t * op0, vuint16m1_t * op1, vbool16_t op2, vuint16m1_t op3, vuint16m1_t op4, const uint16_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u16m2)))
-void vloxseg2ei8(vuint16m2_t * op0, vuint16m2_t * op1, const uint16_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u16m2_m)))
-void vloxseg2ei8(vuint16m2_t * op0, vuint16m2_t * op1, vbool8_t op2, vuint16m2_t op3, vuint16m2_t op4, const uint16_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u16m4)))
-void vloxseg2ei8(vuint16m4_t * op0, vuint16m4_t * op1, const uint16_t * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u16m4_m)))
-void vloxseg2ei8(vuint16m4_t * op0, vuint16m4_t * op1, vbool4_t op2, vuint16m4_t op3, vuint16m4_t op4, const uint16_t * op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u16mf2)))
-void vloxseg2ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, const uint16_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u16mf2_m)))
-void vloxseg2ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vbool32_t op2, vuint16mf2_t op3, vuint16mf2_t op4, const uint16_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u16mf4)))
-void vloxseg2ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, const uint16_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u16mf4_m)))
-void vloxseg2ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vbool64_t op2, vuint16mf4_t op3, vuint16mf4_t op4, const uint16_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i16m1)))
-void vloxseg3ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, const int16_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i16m1_m)))
-void vloxseg3ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vbool16_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, const int16_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i16m2)))
-void vloxseg3ei8(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, const int16_t * op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i16m2_m)))
-void vloxseg3ei8(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vbool8_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, const int16_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i16mf2)))
-void vloxseg3ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, const int16_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i16mf2_m)))
-void vloxseg3ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vbool32_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, const int16_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i16mf4)))
-void vloxseg3ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, const int16_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i16mf4_m)))
-void vloxseg3ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vbool64_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, const int16_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u16m1)))
-void vloxseg3ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, const uint16_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u16m1_m)))
-void vloxseg3ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vbool16_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, const uint16_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u16m2)))
-void vloxseg3ei8(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, const uint16_t * op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u16m2_m)))
-void vloxseg3ei8(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vbool8_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, const uint16_t * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u16mf2)))
-void vloxseg3ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, const uint16_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u16mf2_m)))
-void vloxseg3ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vbool32_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, const uint16_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u16mf4)))
-void vloxseg3ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, const uint16_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u16mf4_m)))
-void vloxseg3ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vbool64_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, const uint16_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i16m1)))
-void vloxseg4ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, const int16_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i16m1_m)))
-void vloxseg4ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vbool16_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, const int16_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i16m2)))
-void vloxseg4ei8(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, const int16_t * op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i16m2_m)))
-void vloxseg4ei8(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, vbool8_t op4, vint16m2_t op5, vint16m2_t op6, vint16m2_t op7, vint16m2_t op8, const int16_t * op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i16mf2)))
-void vloxseg4ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, const int16_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i16mf2_m)))
-void vloxseg4ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vbool32_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, const int16_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i16mf4)))
-void vloxseg4ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, const int16_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i16mf4_m)))
-void vloxseg4ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vbool64_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, const int16_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u16m1)))
-void vloxseg4ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, const uint16_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u16m1_m)))
-void vloxseg4ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vbool16_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, const uint16_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u16m2)))
-void vloxseg4ei8(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, const uint16_t * op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u16m2_m)))
-void vloxseg4ei8(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, vbool8_t op4, vuint16m2_t op5, vuint16m2_t op6, vuint16m2_t op7, vuint16m2_t op8, const uint16_t * op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u16mf2)))
-void vloxseg4ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, const uint16_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u16mf2_m)))
-void vloxseg4ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vbool32_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, const uint16_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u16mf4)))
-void vloxseg4ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, const uint16_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u16mf4_m)))
-void vloxseg4ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vbool64_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, const uint16_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i16m1)))
-void vloxseg5ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, const int16_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i16m1_m)))
-void vloxseg5ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vbool16_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, const int16_t * op11, vuint8mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i16mf2)))
-void vloxseg5ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, const int16_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i16mf2_m)))
-void vloxseg5ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vbool32_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, const int16_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i16mf4)))
-void vloxseg5ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, const int16_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i16mf4_m)))
-void vloxseg5ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vbool64_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, const int16_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u16m1)))
-void vloxseg5ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, const uint16_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u16m1_m)))
-void vloxseg5ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vbool16_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, const uint16_t * op11, vuint8mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u16mf2)))
-void vloxseg5ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, const uint16_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u16mf2_m)))
-void vloxseg5ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vbool32_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, const uint16_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u16mf4)))
-void vloxseg5ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, const uint16_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u16mf4_m)))
-void vloxseg5ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vbool64_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, const uint16_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i16m1)))
-void vloxseg6ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, const int16_t * op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i16m1_m)))
-void vloxseg6ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vbool16_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, const int16_t * op13, vuint8mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i16mf2)))
-void vloxseg6ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, const int16_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i16mf2_m)))
-void vloxseg6ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vbool32_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, const int16_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i16mf4)))
-void vloxseg6ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, const int16_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i16mf4_m)))
-void vloxseg6ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vbool64_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, const int16_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u16m1)))
-void vloxseg6ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, const uint16_t * op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u16m1_m)))
-void vloxseg6ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vbool16_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, const uint16_t * op13, vuint8mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u16mf2)))
-void vloxseg6ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, const uint16_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u16mf2_m)))
-void vloxseg6ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vbool32_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, const uint16_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u16mf4)))
-void vloxseg6ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, const uint16_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u16mf4_m)))
-void vloxseg6ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vbool64_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, const uint16_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i16m1)))
-void vloxseg7ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, const int16_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i16m1_m)))
-void vloxseg7ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vbool16_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, const int16_t * op15, vuint8mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i16mf2)))
-void vloxseg7ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, const int16_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i16mf2_m)))
-void vloxseg7ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vbool32_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, const int16_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i16mf4)))
-void vloxseg7ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, const int16_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i16mf4_m)))
-void vloxseg7ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vbool64_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, const int16_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u16m1)))
-void vloxseg7ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, const uint16_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u16m1_m)))
-void vloxseg7ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vbool16_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, const uint16_t * op15, vuint8mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u16mf2)))
-void vloxseg7ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, const uint16_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u16mf2_m)))
-void vloxseg7ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vbool32_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, const uint16_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u16mf4)))
-void vloxseg7ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, const uint16_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u16mf4_m)))
-void vloxseg7ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vbool64_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, const uint16_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i16m1)))
-void vloxseg8ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, const int16_t * op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i16m1_m)))
-void vloxseg8ei8(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, vbool16_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, vint16m1_t op15, vint16m1_t op16, const int16_t * op17, vuint8mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i16mf2)))
-void vloxseg8ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, const int16_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i16mf2_m)))
-void vloxseg8ei8(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, vbool32_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, vint16mf2_t op15, vint16mf2_t op16, const int16_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i16mf4)))
-void vloxseg8ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, const int16_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i16mf4_m)))
-void vloxseg8ei8(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, vbool64_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, vint16mf4_t op15, vint16mf4_t op16, const int16_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u16m1)))
-void vloxseg8ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, const uint16_t * op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u16m1_m)))
-void vloxseg8ei8(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, vbool16_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, vuint16m1_t op15, vuint16m1_t op16, const uint16_t * op17, vuint8mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u16mf2)))
-void vloxseg8ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, const uint16_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u16mf2_m)))
-void vloxseg8ei8(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, vbool32_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, vuint16mf2_t op15, vuint16mf2_t op16, const uint16_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u16mf4)))
-void vloxseg8ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, const uint16_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u16mf4_m)))
-void vloxseg8ei8(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, vbool64_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, vuint16mf4_t op15, vuint16mf4_t op16, const uint16_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i16m1)))
-void vloxseg2ei16(vint16m1_t * op0, vint16m1_t * op1, const int16_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i16m1_m)))
-void vloxseg2ei16(vint16m1_t * op0, vint16m1_t * op1, vbool16_t op2, vint16m1_t op3, vint16m1_t op4, const int16_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i16m2)))
-void vloxseg2ei16(vint16m2_t * op0, vint16m2_t * op1, const int16_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i16m2_m)))
-void vloxseg2ei16(vint16m2_t * op0, vint16m2_t * op1, vbool8_t op2, vint16m2_t op3, vint16m2_t op4, const int16_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i16m4)))
-void vloxseg2ei16(vint16m4_t * op0, vint16m4_t * op1, const int16_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i16m4_m)))
-void vloxseg2ei16(vint16m4_t * op0, vint16m4_t * op1, vbool4_t op2, vint16m4_t op3, vint16m4_t op4, const int16_t * op5, vuint16m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i16mf2)))
-void vloxseg2ei16(vint16mf2_t * op0, vint16mf2_t * op1, const int16_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i16mf2_m)))
-void vloxseg2ei16(vint16mf2_t * op0, vint16mf2_t * op1, vbool32_t op2, vint16mf2_t op3, vint16mf2_t op4, const int16_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i16mf4)))
-void vloxseg2ei16(vint16mf4_t * op0, vint16mf4_t * op1, const int16_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i16mf4_m)))
-void vloxseg2ei16(vint16mf4_t * op0, vint16mf4_t * op1, vbool64_t op2, vint16mf4_t op3, vint16mf4_t op4, const int16_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u16m1)))
-void vloxseg2ei16(vuint16m1_t * op0, vuint16m1_t * op1, const uint16_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u16m1_m)))
-void vloxseg2ei16(vuint16m1_t * op0, vuint16m1_t * op1, vbool16_t op2, vuint16m1_t op3, vuint16m1_t op4, const uint16_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u16m2)))
-void vloxseg2ei16(vuint16m2_t * op0, vuint16m2_t * op1, const uint16_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u16m2_m)))
-void vloxseg2ei16(vuint16m2_t * op0, vuint16m2_t * op1, vbool8_t op2, vuint16m2_t op3, vuint16m2_t op4, const uint16_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u16m4)))
-void vloxseg2ei16(vuint16m4_t * op0, vuint16m4_t * op1, const uint16_t * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u16m4_m)))
-void vloxseg2ei16(vuint16m4_t * op0, vuint16m4_t * op1, vbool4_t op2, vuint16m4_t op3, vuint16m4_t op4, const uint16_t * op5, vuint16m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u16mf2)))
-void vloxseg2ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, const uint16_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u16mf2_m)))
-void vloxseg2ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vbool32_t op2, vuint16mf2_t op3, vuint16mf2_t op4, const uint16_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u16mf4)))
-void vloxseg2ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, const uint16_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u16mf4_m)))
-void vloxseg2ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vbool64_t op2, vuint16mf4_t op3, vuint16mf4_t op4, const uint16_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i16m1)))
-void vloxseg3ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, const int16_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i16m1_m)))
-void vloxseg3ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vbool16_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, const int16_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i16m2)))
-void vloxseg3ei16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, const int16_t * op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i16m2_m)))
-void vloxseg3ei16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vbool8_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, const int16_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i16mf2)))
-void vloxseg3ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, const int16_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i16mf2_m)))
-void vloxseg3ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vbool32_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, const int16_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i16mf4)))
-void vloxseg3ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, const int16_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i16mf4_m)))
-void vloxseg3ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vbool64_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, const int16_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u16m1)))
-void vloxseg3ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, const uint16_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u16m1_m)))
-void vloxseg3ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vbool16_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, const uint16_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u16m2)))
-void vloxseg3ei16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, const uint16_t * op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u16m2_m)))
-void vloxseg3ei16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vbool8_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, const uint16_t * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u16mf2)))
-void vloxseg3ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, const uint16_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u16mf2_m)))
-void vloxseg3ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vbool32_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, const uint16_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u16mf4)))
-void vloxseg3ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, const uint16_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u16mf4_m)))
-void vloxseg3ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vbool64_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, const uint16_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i16m1)))
-void vloxseg4ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, const int16_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i16m1_m)))
-void vloxseg4ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vbool16_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, const int16_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i16m2)))
-void vloxseg4ei16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, const int16_t * op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i16m2_m)))
-void vloxseg4ei16(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, vbool8_t op4, vint16m2_t op5, vint16m2_t op6, vint16m2_t op7, vint16m2_t op8, const int16_t * op9, vuint16m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i16mf2)))
-void vloxseg4ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, const int16_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i16mf2_m)))
-void vloxseg4ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vbool32_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, const int16_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i16mf4)))
-void vloxseg4ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, const int16_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i16mf4_m)))
-void vloxseg4ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vbool64_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, const int16_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u16m1)))
-void vloxseg4ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, const uint16_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u16m1_m)))
-void vloxseg4ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vbool16_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, const uint16_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u16m2)))
-void vloxseg4ei16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, const uint16_t * op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u16m2_m)))
-void vloxseg4ei16(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, vbool8_t op4, vuint16m2_t op5, vuint16m2_t op6, vuint16m2_t op7, vuint16m2_t op8, const uint16_t * op9, vuint16m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u16mf2)))
-void vloxseg4ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, const uint16_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u16mf2_m)))
-void vloxseg4ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vbool32_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, const uint16_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u16mf4)))
-void vloxseg4ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, const uint16_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u16mf4_m)))
-void vloxseg4ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vbool64_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, const uint16_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i16m1)))
-void vloxseg5ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, const int16_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i16m1_m)))
-void vloxseg5ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vbool16_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, const int16_t * op11, vuint16m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i16mf2)))
-void vloxseg5ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, const int16_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i16mf2_m)))
-void vloxseg5ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vbool32_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, const int16_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i16mf4)))
-void vloxseg5ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, const int16_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i16mf4_m)))
-void vloxseg5ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vbool64_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, const int16_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u16m1)))
-void vloxseg5ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, const uint16_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u16m1_m)))
-void vloxseg5ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vbool16_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, const uint16_t * op11, vuint16m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u16mf2)))
-void vloxseg5ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, const uint16_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u16mf2_m)))
-void vloxseg5ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vbool32_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, const uint16_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u16mf4)))
-void vloxseg5ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, const uint16_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u16mf4_m)))
-void vloxseg5ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vbool64_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, const uint16_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i16m1)))
-void vloxseg6ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, const int16_t * op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i16m1_m)))
-void vloxseg6ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vbool16_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, const int16_t * op13, vuint16m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i16mf2)))
-void vloxseg6ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, const int16_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i16mf2_m)))
-void vloxseg6ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vbool32_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, const int16_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i16mf4)))
-void vloxseg6ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, const int16_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i16mf4_m)))
-void vloxseg6ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vbool64_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, const int16_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u16m1)))
-void vloxseg6ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, const uint16_t * op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u16m1_m)))
-void vloxseg6ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vbool16_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, const uint16_t * op13, vuint16m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u16mf2)))
-void vloxseg6ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, const uint16_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u16mf2_m)))
-void vloxseg6ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vbool32_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, const uint16_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u16mf4)))
-void vloxseg6ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, const uint16_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u16mf4_m)))
-void vloxseg6ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vbool64_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, const uint16_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i16m1)))
-void vloxseg7ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, const int16_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i16m1_m)))
-void vloxseg7ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vbool16_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, const int16_t * op15, vuint16m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i16mf2)))
-void vloxseg7ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, const int16_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i16mf2_m)))
-void vloxseg7ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vbool32_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, const int16_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i16mf4)))
-void vloxseg7ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, const int16_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i16mf4_m)))
-void vloxseg7ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vbool64_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, const int16_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u16m1)))
-void vloxseg7ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, const uint16_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u16m1_m)))
-void vloxseg7ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vbool16_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, const uint16_t * op15, vuint16m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u16mf2)))
-void vloxseg7ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, const uint16_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u16mf2_m)))
-void vloxseg7ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vbool32_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, const uint16_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u16mf4)))
-void vloxseg7ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, const uint16_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u16mf4_m)))
-void vloxseg7ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vbool64_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, const uint16_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i16m1)))
-void vloxseg8ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, const int16_t * op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i16m1_m)))
-void vloxseg8ei16(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, vbool16_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, vint16m1_t op15, vint16m1_t op16, const int16_t * op17, vuint16m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i16mf2)))
-void vloxseg8ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, const int16_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i16mf2_m)))
-void vloxseg8ei16(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, vbool32_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, vint16mf2_t op15, vint16mf2_t op16, const int16_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i16mf4)))
-void vloxseg8ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, const int16_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i16mf4_m)))
-void vloxseg8ei16(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, vbool64_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, vint16mf4_t op15, vint16mf4_t op16, const int16_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u16m1)))
-void vloxseg8ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, const uint16_t * op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u16m1_m)))
-void vloxseg8ei16(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, vbool16_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, vuint16m1_t op15, vuint16m1_t op16, const uint16_t * op17, vuint16m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u16mf2)))
-void vloxseg8ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, const uint16_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u16mf2_m)))
-void vloxseg8ei16(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, vbool32_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, vuint16mf2_t op15, vuint16mf2_t op16, const uint16_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u16mf4)))
-void vloxseg8ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, const uint16_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u16mf4_m)))
-void vloxseg8ei16(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, vbool64_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, vuint16mf4_t op15, vuint16mf4_t op16, const uint16_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i16m1)))
-void vloxseg2ei32(vint16m1_t * op0, vint16m1_t * op1, const int16_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i16m1_m)))
-void vloxseg2ei32(vint16m1_t * op0, vint16m1_t * op1, vbool16_t op2, vint16m1_t op3, vint16m1_t op4, const int16_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i16m2)))
-void vloxseg2ei32(vint16m2_t * op0, vint16m2_t * op1, const int16_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i16m2_m)))
-void vloxseg2ei32(vint16m2_t * op0, vint16m2_t * op1, vbool8_t op2, vint16m2_t op3, vint16m2_t op4, const int16_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i16m4)))
-void vloxseg2ei32(vint16m4_t * op0, vint16m4_t * op1, const int16_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i16m4_m)))
-void vloxseg2ei32(vint16m4_t * op0, vint16m4_t * op1, vbool4_t op2, vint16m4_t op3, vint16m4_t op4, const int16_t * op5, vuint32m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i16mf2)))
-void vloxseg2ei32(vint16mf2_t * op0, vint16mf2_t * op1, const int16_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i16mf2_m)))
-void vloxseg2ei32(vint16mf2_t * op0, vint16mf2_t * op1, vbool32_t op2, vint16mf2_t op3, vint16mf2_t op4, const int16_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i16mf4)))
-void vloxseg2ei32(vint16mf4_t * op0, vint16mf4_t * op1, const int16_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i16mf4_m)))
-void vloxseg2ei32(vint16mf4_t * op0, vint16mf4_t * op1, vbool64_t op2, vint16mf4_t op3, vint16mf4_t op4, const int16_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u16m1)))
-void vloxseg2ei32(vuint16m1_t * op0, vuint16m1_t * op1, const uint16_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u16m1_m)))
-void vloxseg2ei32(vuint16m1_t * op0, vuint16m1_t * op1, vbool16_t op2, vuint16m1_t op3, vuint16m1_t op4, const uint16_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u16m2)))
-void vloxseg2ei32(vuint16m2_t * op0, vuint16m2_t * op1, const uint16_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u16m2_m)))
-void vloxseg2ei32(vuint16m2_t * op0, vuint16m2_t * op1, vbool8_t op2, vuint16m2_t op3, vuint16m2_t op4, const uint16_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u16m4)))
-void vloxseg2ei32(vuint16m4_t * op0, vuint16m4_t * op1, const uint16_t * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u16m4_m)))
-void vloxseg2ei32(vuint16m4_t * op0, vuint16m4_t * op1, vbool4_t op2, vuint16m4_t op3, vuint16m4_t op4, const uint16_t * op5, vuint32m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u16mf2)))
-void vloxseg2ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, const uint16_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u16mf2_m)))
-void vloxseg2ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vbool32_t op2, vuint16mf2_t op3, vuint16mf2_t op4, const uint16_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u16mf4)))
-void vloxseg2ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, const uint16_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u16mf4_m)))
-void vloxseg2ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vbool64_t op2, vuint16mf4_t op3, vuint16mf4_t op4, const uint16_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i16m1)))
-void vloxseg3ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, const int16_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i16m1_m)))
-void vloxseg3ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vbool16_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, const int16_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i16m2)))
-void vloxseg3ei32(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, const int16_t * op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i16m2_m)))
-void vloxseg3ei32(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vbool8_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, const int16_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i16mf2)))
-void vloxseg3ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, const int16_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i16mf2_m)))
-void vloxseg3ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vbool32_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, const int16_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i16mf4)))
-void vloxseg3ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, const int16_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i16mf4_m)))
-void vloxseg3ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vbool64_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, const int16_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u16m1)))
-void vloxseg3ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, const uint16_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u16m1_m)))
-void vloxseg3ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vbool16_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, const uint16_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u16m2)))
-void vloxseg3ei32(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, const uint16_t * op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u16m2_m)))
-void vloxseg3ei32(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vbool8_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, const uint16_t * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u16mf2)))
-void vloxseg3ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, const uint16_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u16mf2_m)))
-void vloxseg3ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vbool32_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, const uint16_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u16mf4)))
-void vloxseg3ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, const uint16_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u16mf4_m)))
-void vloxseg3ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vbool64_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, const uint16_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i16m1)))
-void vloxseg4ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, const int16_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i16m1_m)))
-void vloxseg4ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vbool16_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, const int16_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i16m2)))
-void vloxseg4ei32(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, const int16_t * op4, vuint32m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i16m2_m)))
-void vloxseg4ei32(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, vbool8_t op4, vint16m2_t op5, vint16m2_t op6, vint16m2_t op7, vint16m2_t op8, const int16_t * op9, vuint32m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i16mf2)))
-void vloxseg4ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, const int16_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i16mf2_m)))
-void vloxseg4ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vbool32_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, const int16_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i16mf4)))
-void vloxseg4ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, const int16_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i16mf4_m)))
-void vloxseg4ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vbool64_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, const int16_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u16m1)))
-void vloxseg4ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, const uint16_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u16m1_m)))
-void vloxseg4ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vbool16_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, const uint16_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u16m2)))
-void vloxseg4ei32(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, const uint16_t * op4, vuint32m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u16m2_m)))
-void vloxseg4ei32(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, vbool8_t op4, vuint16m2_t op5, vuint16m2_t op6, vuint16m2_t op7, vuint16m2_t op8, const uint16_t * op9, vuint32m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u16mf2)))
-void vloxseg4ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, const uint16_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u16mf2_m)))
-void vloxseg4ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vbool32_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, const uint16_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u16mf4)))
-void vloxseg4ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, const uint16_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u16mf4_m)))
-void vloxseg4ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vbool64_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, const uint16_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i16m1)))
-void vloxseg5ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, const int16_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i16m1_m)))
-void vloxseg5ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vbool16_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, const int16_t * op11, vuint32m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i16mf2)))
-void vloxseg5ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, const int16_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i16mf2_m)))
-void vloxseg5ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vbool32_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, const int16_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i16mf4)))
-void vloxseg5ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, const int16_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i16mf4_m)))
-void vloxseg5ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vbool64_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, const int16_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u16m1)))
-void vloxseg5ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, const uint16_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u16m1_m)))
-void vloxseg5ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vbool16_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, const uint16_t * op11, vuint32m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u16mf2)))
-void vloxseg5ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, const uint16_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u16mf2_m)))
-void vloxseg5ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vbool32_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, const uint16_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u16mf4)))
-void vloxseg5ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, const uint16_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u16mf4_m)))
-void vloxseg5ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vbool64_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, const uint16_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i16m1)))
-void vloxseg6ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, const int16_t * op6, vuint32m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i16m1_m)))
-void vloxseg6ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vbool16_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, const int16_t * op13, vuint32m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i16mf2)))
-void vloxseg6ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, const int16_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i16mf2_m)))
-void vloxseg6ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vbool32_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, const int16_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i16mf4)))
-void vloxseg6ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, const int16_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i16mf4_m)))
-void vloxseg6ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vbool64_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, const int16_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u16m1)))
-void vloxseg6ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, const uint16_t * op6, vuint32m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u16m1_m)))
-void vloxseg6ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vbool16_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, const uint16_t * op13, vuint32m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u16mf2)))
-void vloxseg6ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, const uint16_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u16mf2_m)))
-void vloxseg6ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vbool32_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, const uint16_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u16mf4)))
-void vloxseg6ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, const uint16_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u16mf4_m)))
-void vloxseg6ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vbool64_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, const uint16_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i16m1)))
-void vloxseg7ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, const int16_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i16m1_m)))
-void vloxseg7ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vbool16_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, const int16_t * op15, vuint32m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i16mf2)))
-void vloxseg7ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, const int16_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i16mf2_m)))
-void vloxseg7ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vbool32_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, const int16_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i16mf4)))
-void vloxseg7ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, const int16_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i16mf4_m)))
-void vloxseg7ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vbool64_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, const int16_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u16m1)))
-void vloxseg7ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, const uint16_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u16m1_m)))
-void vloxseg7ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vbool16_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, const uint16_t * op15, vuint32m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u16mf2)))
-void vloxseg7ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, const uint16_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u16mf2_m)))
-void vloxseg7ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vbool32_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, const uint16_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u16mf4)))
-void vloxseg7ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, const uint16_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u16mf4_m)))
-void vloxseg7ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vbool64_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, const uint16_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i16m1)))
-void vloxseg8ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, const int16_t * op8, vuint32m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i16m1_m)))
-void vloxseg8ei32(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, vbool16_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, vint16m1_t op15, vint16m1_t op16, const int16_t * op17, vuint32m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i16mf2)))
-void vloxseg8ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, const int16_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i16mf2_m)))
-void vloxseg8ei32(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, vbool32_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, vint16mf2_t op15, vint16mf2_t op16, const int16_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i16mf4)))
-void vloxseg8ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, const int16_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i16mf4_m)))
-void vloxseg8ei32(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, vbool64_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, vint16mf4_t op15, vint16mf4_t op16, const int16_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u16m1)))
-void vloxseg8ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, const uint16_t * op8, vuint32m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u16m1_m)))
-void vloxseg8ei32(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, vbool16_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, vuint16m1_t op15, vuint16m1_t op16, const uint16_t * op17, vuint32m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u16mf2)))
-void vloxseg8ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, const uint16_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u16mf2_m)))
-void vloxseg8ei32(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, vbool32_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, vuint16mf2_t op15, vuint16mf2_t op16, const uint16_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u16mf4)))
-void vloxseg8ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, const uint16_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u16mf4_m)))
-void vloxseg8ei32(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, vbool64_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, vuint16mf4_t op15, vuint16mf4_t op16, const uint16_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i16m1)))
-void vloxseg2ei64(vint16m1_t * op0, vint16m1_t * op1, const int16_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i16m1_m)))
-void vloxseg2ei64(vint16m1_t * op0, vint16m1_t * op1, vbool16_t op2, vint16m1_t op3, vint16m1_t op4, const int16_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i16m2)))
-void vloxseg2ei64(vint16m2_t * op0, vint16m2_t * op1, const int16_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i16m2_m)))
-void vloxseg2ei64(vint16m2_t * op0, vint16m2_t * op1, vbool8_t op2, vint16m2_t op3, vint16m2_t op4, const int16_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i16mf2)))
-void vloxseg2ei64(vint16mf2_t * op0, vint16mf2_t * op1, const int16_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i16mf2_m)))
-void vloxseg2ei64(vint16mf2_t * op0, vint16mf2_t * op1, vbool32_t op2, vint16mf2_t op3, vint16mf2_t op4, const int16_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i16mf4)))
-void vloxseg2ei64(vint16mf4_t * op0, vint16mf4_t * op1, const int16_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i16mf4_m)))
-void vloxseg2ei64(vint16mf4_t * op0, vint16mf4_t * op1, vbool64_t op2, vint16mf4_t op3, vint16mf4_t op4, const int16_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u16m1)))
-void vloxseg2ei64(vuint16m1_t * op0, vuint16m1_t * op1, const uint16_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u16m1_m)))
-void vloxseg2ei64(vuint16m1_t * op0, vuint16m1_t * op1, vbool16_t op2, vuint16m1_t op3, vuint16m1_t op4, const uint16_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u16m2)))
-void vloxseg2ei64(vuint16m2_t * op0, vuint16m2_t * op1, const uint16_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u16m2_m)))
-void vloxseg2ei64(vuint16m2_t * op0, vuint16m2_t * op1, vbool8_t op2, vuint16m2_t op3, vuint16m2_t op4, const uint16_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u16mf2)))
-void vloxseg2ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, const uint16_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u16mf2_m)))
-void vloxseg2ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vbool32_t op2, vuint16mf2_t op3, vuint16mf2_t op4, const uint16_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u16mf4)))
-void vloxseg2ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, const uint16_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u16mf4_m)))
-void vloxseg2ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vbool64_t op2, vuint16mf4_t op3, vuint16mf4_t op4, const uint16_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i16m1)))
-void vloxseg3ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, const int16_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i16m1_m)))
-void vloxseg3ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vbool16_t op3, vint16m1_t op4, vint16m1_t op5, vint16m1_t op6, const int16_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i16m2)))
-void vloxseg3ei64(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, const int16_t * op3, vuint64m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i16m2_m)))
-void vloxseg3ei64(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vbool8_t op3, vint16m2_t op4, vint16m2_t op5, vint16m2_t op6, const int16_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i16mf2)))
-void vloxseg3ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, const int16_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i16mf2_m)))
-void vloxseg3ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vbool32_t op3, vint16mf2_t op4, vint16mf2_t op5, vint16mf2_t op6, const int16_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i16mf4)))
-void vloxseg3ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, const int16_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i16mf4_m)))
-void vloxseg3ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vbool64_t op3, vint16mf4_t op4, vint16mf4_t op5, vint16mf4_t op6, const int16_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u16m1)))
-void vloxseg3ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, const uint16_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u16m1_m)))
-void vloxseg3ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vbool16_t op3, vuint16m1_t op4, vuint16m1_t op5, vuint16m1_t op6, const uint16_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u16m2)))
-void vloxseg3ei64(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, const uint16_t * op3, vuint64m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u16m2_m)))
-void vloxseg3ei64(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vbool8_t op3, vuint16m2_t op4, vuint16m2_t op5, vuint16m2_t op6, const uint16_t * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u16mf2)))
-void vloxseg3ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, const uint16_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u16mf2_m)))
-void vloxseg3ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vbool32_t op3, vuint16mf2_t op4, vuint16mf2_t op5, vuint16mf2_t op6, const uint16_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u16mf4)))
-void vloxseg3ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, const uint16_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u16mf4_m)))
-void vloxseg3ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vbool64_t op3, vuint16mf4_t op4, vuint16mf4_t op5, vuint16mf4_t op6, const uint16_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i16m1)))
-void vloxseg4ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, const int16_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i16m1_m)))
-void vloxseg4ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vbool16_t op4, vint16m1_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, const int16_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i16m2)))
-void vloxseg4ei64(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, const int16_t * op4, vuint64m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i16m2_m)))
-void vloxseg4ei64(vint16m2_t * op0, vint16m2_t * op1, vint16m2_t * op2, vint16m2_t * op3, vbool8_t op4, vint16m2_t op5, vint16m2_t op6, vint16m2_t op7, vint16m2_t op8, const int16_t * op9, vuint64m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i16mf2)))
-void vloxseg4ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, const int16_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i16mf2_m)))
-void vloxseg4ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vbool32_t op4, vint16mf2_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, const int16_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i16mf4)))
-void vloxseg4ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, const int16_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i16mf4_m)))
-void vloxseg4ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vbool64_t op4, vint16mf4_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, const int16_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u16m1)))
-void vloxseg4ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, const uint16_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u16m1_m)))
-void vloxseg4ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vbool16_t op4, vuint16m1_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, const uint16_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u16m2)))
-void vloxseg4ei64(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, const uint16_t * op4, vuint64m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u16m2_m)))
-void vloxseg4ei64(vuint16m2_t * op0, vuint16m2_t * op1, vuint16m2_t * op2, vuint16m2_t * op3, vbool8_t op4, vuint16m2_t op5, vuint16m2_t op6, vuint16m2_t op7, vuint16m2_t op8, const uint16_t * op9, vuint64m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u16mf2)))
-void vloxseg4ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, const uint16_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u16mf2_m)))
-void vloxseg4ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vbool32_t op4, vuint16mf2_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, const uint16_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u16mf4)))
-void vloxseg4ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, const uint16_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u16mf4_m)))
-void vloxseg4ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vbool64_t op4, vuint16mf4_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, const uint16_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i16m1)))
-void vloxseg5ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, const int16_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i16m1_m)))
-void vloxseg5ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vbool16_t op5, vint16m1_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, const int16_t * op11, vuint64m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i16mf2)))
-void vloxseg5ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, const int16_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i16mf2_m)))
-void vloxseg5ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vbool32_t op5, vint16mf2_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, const int16_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i16mf4)))
-void vloxseg5ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, const int16_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i16mf4_m)))
-void vloxseg5ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vbool64_t op5, vint16mf4_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, const int16_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u16m1)))
-void vloxseg5ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, const uint16_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u16m1_m)))
-void vloxseg5ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vbool16_t op5, vuint16m1_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, const uint16_t * op11, vuint64m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u16mf2)))
-void vloxseg5ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, const uint16_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u16mf2_m)))
-void vloxseg5ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vbool32_t op5, vuint16mf2_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, const uint16_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u16mf4)))
-void vloxseg5ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, const uint16_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u16mf4_m)))
-void vloxseg5ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vbool64_t op5, vuint16mf4_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, const uint16_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i16m1)))
-void vloxseg6ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, const int16_t * op6, vuint64m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i16m1_m)))
-void vloxseg6ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vbool16_t op6, vint16m1_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, const int16_t * op13, vuint64m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i16mf2)))
-void vloxseg6ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, const int16_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i16mf2_m)))
-void vloxseg6ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vbool32_t op6, vint16mf2_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, const int16_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i16mf4)))
-void vloxseg6ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, const int16_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i16mf4_m)))
-void vloxseg6ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vbool64_t op6, vint16mf4_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, const int16_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u16m1)))
-void vloxseg6ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, const uint16_t * op6, vuint64m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u16m1_m)))
-void vloxseg6ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vbool16_t op6, vuint16m1_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, const uint16_t * op13, vuint64m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u16mf2)))
-void vloxseg6ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, const uint16_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u16mf2_m)))
-void vloxseg6ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vbool32_t op6, vuint16mf2_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, const uint16_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u16mf4)))
-void vloxseg6ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, const uint16_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u16mf4_m)))
-void vloxseg6ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vbool64_t op6, vuint16mf4_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, const uint16_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i16m1)))
-void vloxseg7ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, const int16_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i16m1_m)))
-void vloxseg7ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vbool16_t op7, vint16m1_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, const int16_t * op15, vuint64m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i16mf2)))
-void vloxseg7ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, const int16_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i16mf2_m)))
-void vloxseg7ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vbool32_t op7, vint16mf2_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, const int16_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i16mf4)))
-void vloxseg7ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, const int16_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i16mf4_m)))
-void vloxseg7ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vbool64_t op7, vint16mf4_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, const int16_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u16m1)))
-void vloxseg7ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, const uint16_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u16m1_m)))
-void vloxseg7ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vbool16_t op7, vuint16m1_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, const uint16_t * op15, vuint64m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u16mf2)))
-void vloxseg7ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, const uint16_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u16mf2_m)))
-void vloxseg7ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vbool32_t op7, vuint16mf2_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, const uint16_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u16mf4)))
-void vloxseg7ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, const uint16_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u16mf4_m)))
-void vloxseg7ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vbool64_t op7, vuint16mf4_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, const uint16_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i16m1)))
-void vloxseg8ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, const int16_t * op8, vuint64m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i16m1_m)))
-void vloxseg8ei64(vint16m1_t * op0, vint16m1_t * op1, vint16m1_t * op2, vint16m1_t * op3, vint16m1_t * op4, vint16m1_t * op5, vint16m1_t * op6, vint16m1_t * op7, vbool16_t op8, vint16m1_t op9, vint16m1_t op10, vint16m1_t op11, vint16m1_t op12, vint16m1_t op13, vint16m1_t op14, vint16m1_t op15, vint16m1_t op16, const int16_t * op17, vuint64m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i16mf2)))
-void vloxseg8ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, const int16_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i16mf2_m)))
-void vloxseg8ei64(vint16mf2_t * op0, vint16mf2_t * op1, vint16mf2_t * op2, vint16mf2_t * op3, vint16mf2_t * op4, vint16mf2_t * op5, vint16mf2_t * op6, vint16mf2_t * op7, vbool32_t op8, vint16mf2_t op9, vint16mf2_t op10, vint16mf2_t op11, vint16mf2_t op12, vint16mf2_t op13, vint16mf2_t op14, vint16mf2_t op15, vint16mf2_t op16, const int16_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i16mf4)))
-void vloxseg8ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, const int16_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i16mf4_m)))
-void vloxseg8ei64(vint16mf4_t * op0, vint16mf4_t * op1, vint16mf4_t * op2, vint16mf4_t * op3, vint16mf4_t * op4, vint16mf4_t * op5, vint16mf4_t * op6, vint16mf4_t * op7, vbool64_t op8, vint16mf4_t op9, vint16mf4_t op10, vint16mf4_t op11, vint16mf4_t op12, vint16mf4_t op13, vint16mf4_t op14, vint16mf4_t op15, vint16mf4_t op16, const int16_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u16m1)))
-void vloxseg8ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, const uint16_t * op8, vuint64m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u16m1_m)))
-void vloxseg8ei64(vuint16m1_t * op0, vuint16m1_t * op1, vuint16m1_t * op2, vuint16m1_t * op3, vuint16m1_t * op4, vuint16m1_t * op5, vuint16m1_t * op6, vuint16m1_t * op7, vbool16_t op8, vuint16m1_t op9, vuint16m1_t op10, vuint16m1_t op11, vuint16m1_t op12, vuint16m1_t op13, vuint16m1_t op14, vuint16m1_t op15, vuint16m1_t op16, const uint16_t * op17, vuint64m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u16mf2)))
-void vloxseg8ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, const uint16_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u16mf2_m)))
-void vloxseg8ei64(vuint16mf2_t * op0, vuint16mf2_t * op1, vuint16mf2_t * op2, vuint16mf2_t * op3, vuint16mf2_t * op4, vuint16mf2_t * op5, vuint16mf2_t * op6, vuint16mf2_t * op7, vbool32_t op8, vuint16mf2_t op9, vuint16mf2_t op10, vuint16mf2_t op11, vuint16mf2_t op12, vuint16mf2_t op13, vuint16mf2_t op14, vuint16mf2_t op15, vuint16mf2_t op16, const uint16_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u16mf4)))
-void vloxseg8ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, const uint16_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u16mf4_m)))
-void vloxseg8ei64(vuint16mf4_t * op0, vuint16mf4_t * op1, vuint16mf4_t * op2, vuint16mf4_t * op3, vuint16mf4_t * op4, vuint16mf4_t * op5, vuint16mf4_t * op6, vuint16mf4_t * op7, vbool64_t op8, vuint16mf4_t op9, vuint16mf4_t op10, vuint16mf4_t op11, vuint16mf4_t op12, vuint16mf4_t op13, vuint16mf4_t op14, vuint16mf4_t op15, vuint16mf4_t op16, const uint16_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i32m1)))
-void vloxseg2ei8(vint32m1_t * op0, vint32m1_t * op1, const int32_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i32m1_m)))
-void vloxseg2ei8(vint32m1_t * op0, vint32m1_t * op1, vbool32_t op2, vint32m1_t op3, vint32m1_t op4, const int32_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i32m2)))
-void vloxseg2ei8(vint32m2_t * op0, vint32m2_t * op1, const int32_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i32m2_m)))
-void vloxseg2ei8(vint32m2_t * op0, vint32m2_t * op1, vbool16_t op2, vint32m2_t op3, vint32m2_t op4, const int32_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i32m4)))
-void vloxseg2ei8(vint32m4_t * op0, vint32m4_t * op1, const int32_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i32m4_m)))
-void vloxseg2ei8(vint32m4_t * op0, vint32m4_t * op1, vbool8_t op2, vint32m4_t op3, vint32m4_t op4, const int32_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i32mf2)))
-void vloxseg2ei8(vint32mf2_t * op0, vint32mf2_t * op1, const int32_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_i32mf2_m)))
-void vloxseg2ei8(vint32mf2_t * op0, vint32mf2_t * op1, vbool64_t op2, vint32mf2_t op3, vint32mf2_t op4, const int32_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u32m1)))
-void vloxseg2ei8(vuint32m1_t * op0, vuint32m1_t * op1, const uint32_t * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u32m1_m)))
-void vloxseg2ei8(vuint32m1_t * op0, vuint32m1_t * op1, vbool32_t op2, vuint32m1_t op3, vuint32m1_t op4, const uint32_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u32m2)))
-void vloxseg2ei8(vuint32m2_t * op0, vuint32m2_t * op1, const uint32_t * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u32m2_m)))
-void vloxseg2ei8(vuint32m2_t * op0, vuint32m2_t * op1, vbool16_t op2, vuint32m2_t op3, vuint32m2_t op4, const uint32_t * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u32m4)))
-void vloxseg2ei8(vuint32m4_t * op0, vuint32m4_t * op1, const uint32_t * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u32m4_m)))
-void vloxseg2ei8(vuint32m4_t * op0, vuint32m4_t * op1, vbool8_t op2, vuint32m4_t op3, vuint32m4_t op4, const uint32_t * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u32mf2)))
-void vloxseg2ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, const uint32_t * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_u32mf2_m)))
-void vloxseg2ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vbool64_t op2, vuint32mf2_t op3, vuint32mf2_t op4, const uint32_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i32m1)))
-void vloxseg3ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, const int32_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i32m1_m)))
-void vloxseg3ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vbool32_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, const int32_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i32m2)))
-void vloxseg3ei8(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, const int32_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i32m2_m)))
-void vloxseg3ei8(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vbool16_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, const int32_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i32mf2)))
-void vloxseg3ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, const int32_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_i32mf2_m)))
-void vloxseg3ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vbool64_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, const int32_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u32m1)))
-void vloxseg3ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, const uint32_t * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u32m1_m)))
-void vloxseg3ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vbool32_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, const uint32_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u32m2)))
-void vloxseg3ei8(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, const uint32_t * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u32m2_m)))
-void vloxseg3ei8(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vbool16_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, const uint32_t * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u32mf2)))
-void vloxseg3ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, const uint32_t * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_u32mf2_m)))
-void vloxseg3ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vbool64_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, const uint32_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i32m1)))
-void vloxseg4ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, const int32_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i32m1_m)))
-void vloxseg4ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vbool32_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, const int32_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i32m2)))
-void vloxseg4ei8(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, const int32_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i32m2_m)))
-void vloxseg4ei8(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, vbool16_t op4, vint32m2_t op5, vint32m2_t op6, vint32m2_t op7, vint32m2_t op8, const int32_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i32mf2)))
-void vloxseg4ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, const int32_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_i32mf2_m)))
-void vloxseg4ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vbool64_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, const int32_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u32m1)))
-void vloxseg4ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, const uint32_t * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u32m1_m)))
-void vloxseg4ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vbool32_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, const uint32_t * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u32m2)))
-void vloxseg4ei8(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, const uint32_t * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u32m2_m)))
-void vloxseg4ei8(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, vbool16_t op4, vuint32m2_t op5, vuint32m2_t op6, vuint32m2_t op7, vuint32m2_t op8, const uint32_t * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u32mf2)))
-void vloxseg4ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, const uint32_t * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_u32mf2_m)))
-void vloxseg4ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vbool64_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, const uint32_t * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i32m1)))
-void vloxseg5ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, const int32_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i32m1_m)))
-void vloxseg5ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vbool32_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, const int32_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i32mf2)))
-void vloxseg5ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, const int32_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_i32mf2_m)))
-void vloxseg5ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vbool64_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, const int32_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u32m1)))
-void vloxseg5ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, const uint32_t * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u32m1_m)))
-void vloxseg5ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vbool32_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, const uint32_t * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u32mf2)))
-void vloxseg5ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, const uint32_t * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_u32mf2_m)))
-void vloxseg5ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vbool64_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, const uint32_t * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i32m1)))
-void vloxseg6ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, const int32_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i32m1_m)))
-void vloxseg6ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vbool32_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, const int32_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i32mf2)))
-void vloxseg6ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, const int32_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_i32mf2_m)))
-void vloxseg6ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vbool64_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, const int32_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u32m1)))
-void vloxseg6ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, const uint32_t * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u32m1_m)))
-void vloxseg6ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vbool32_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, const uint32_t * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u32mf2)))
-void vloxseg6ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, const uint32_t * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_u32mf2_m)))
-void vloxseg6ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vbool64_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, const uint32_t * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i32m1)))
-void vloxseg7ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, const int32_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i32m1_m)))
-void vloxseg7ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vbool32_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, const int32_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i32mf2)))
-void vloxseg7ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, const int32_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_i32mf2_m)))
-void vloxseg7ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vbool64_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, const int32_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u32m1)))
-void vloxseg7ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, const uint32_t * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u32m1_m)))
-void vloxseg7ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vbool32_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, const uint32_t * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u32mf2)))
-void vloxseg7ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, const uint32_t * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_u32mf2_m)))
-void vloxseg7ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vbool64_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, const uint32_t * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i32m1)))
-void vloxseg8ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, const int32_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i32m1_m)))
-void vloxseg8ei8(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, vbool32_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, vint32m1_t op15, vint32m1_t op16, const int32_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i32mf2)))
-void vloxseg8ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, const int32_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_i32mf2_m)))
-void vloxseg8ei8(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, vbool64_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, vint32mf2_t op15, vint32mf2_t op16, const int32_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u32m1)))
-void vloxseg8ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, const uint32_t * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u32m1_m)))
-void vloxseg8ei8(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, vbool32_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, vuint32m1_t op15, vuint32m1_t op16, const uint32_t * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u32mf2)))
-void vloxseg8ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, const uint32_t * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_u32mf2_m)))
-void vloxseg8ei8(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, vbool64_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, vuint32mf2_t op15, vuint32mf2_t op16, const uint32_t * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i32m1)))
-void vloxseg2ei16(vint32m1_t * op0, vint32m1_t * op1, const int32_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i32m1_m)))
-void vloxseg2ei16(vint32m1_t * op0, vint32m1_t * op1, vbool32_t op2, vint32m1_t op3, vint32m1_t op4, const int32_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i32m2)))
-void vloxseg2ei16(vint32m2_t * op0, vint32m2_t * op1, const int32_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i32m2_m)))
-void vloxseg2ei16(vint32m2_t * op0, vint32m2_t * op1, vbool16_t op2, vint32m2_t op3, vint32m2_t op4, const int32_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i32m4)))
-void vloxseg2ei16(vint32m4_t * op0, vint32m4_t * op1, const int32_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i32m4_m)))
-void vloxseg2ei16(vint32m4_t * op0, vint32m4_t * op1, vbool8_t op2, vint32m4_t op3, vint32m4_t op4, const int32_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i32mf2)))
-void vloxseg2ei16(vint32mf2_t * op0, vint32mf2_t * op1, const int32_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_i32mf2_m)))
-void vloxseg2ei16(vint32mf2_t * op0, vint32mf2_t * op1, vbool64_t op2, vint32mf2_t op3, vint32mf2_t op4, const int32_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u32m1)))
-void vloxseg2ei16(vuint32m1_t * op0, vuint32m1_t * op1, const uint32_t * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u32m1_m)))
-void vloxseg2ei16(vuint32m1_t * op0, vuint32m1_t * op1, vbool32_t op2, vuint32m1_t op3, vuint32m1_t op4, const uint32_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u32m2)))
-void vloxseg2ei16(vuint32m2_t * op0, vuint32m2_t * op1, const uint32_t * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u32m2_m)))
-void vloxseg2ei16(vuint32m2_t * op0, vuint32m2_t * op1, vbool16_t op2, vuint32m2_t op3, vuint32m2_t op4, const uint32_t * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u32m4)))
-void vloxseg2ei16(vuint32m4_t * op0, vuint32m4_t * op1, const uint32_t * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u32m4_m)))
-void vloxseg2ei16(vuint32m4_t * op0, vuint32m4_t * op1, vbool8_t op2, vuint32m4_t op3, vuint32m4_t op4, const uint32_t * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u32mf2)))
-void vloxseg2ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, const uint32_t * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_u32mf2_m)))
-void vloxseg2ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vbool64_t op2, vuint32mf2_t op3, vuint32mf2_t op4, const uint32_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i32m1)))
-void vloxseg3ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, const int32_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i32m1_m)))
-void vloxseg3ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vbool32_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, const int32_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i32m2)))
-void vloxseg3ei16(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, const int32_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i32m2_m)))
-void vloxseg3ei16(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vbool16_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, const int32_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i32mf2)))
-void vloxseg3ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, const int32_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_i32mf2_m)))
-void vloxseg3ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vbool64_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, const int32_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u32m1)))
-void vloxseg3ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, const uint32_t * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u32m1_m)))
-void vloxseg3ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vbool32_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, const uint32_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u32m2)))
-void vloxseg3ei16(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, const uint32_t * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u32m2_m)))
-void vloxseg3ei16(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vbool16_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, const uint32_t * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u32mf2)))
-void vloxseg3ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, const uint32_t * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_u32mf2_m)))
-void vloxseg3ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vbool64_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, const uint32_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i32m1)))
-void vloxseg4ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, const int32_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i32m1_m)))
-void vloxseg4ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vbool32_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, const int32_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i32m2)))
-void vloxseg4ei16(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, const int32_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i32m2_m)))
-void vloxseg4ei16(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, vbool16_t op4, vint32m2_t op5, vint32m2_t op6, vint32m2_t op7, vint32m2_t op8, const int32_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i32mf2)))
-void vloxseg4ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, const int32_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_i32mf2_m)))
-void vloxseg4ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vbool64_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, const int32_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u32m1)))
-void vloxseg4ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, const uint32_t * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u32m1_m)))
-void vloxseg4ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vbool32_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, const uint32_t * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u32m2)))
-void vloxseg4ei16(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, const uint32_t * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u32m2_m)))
-void vloxseg4ei16(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, vbool16_t op4, vuint32m2_t op5, vuint32m2_t op6, vuint32m2_t op7, vuint32m2_t op8, const uint32_t * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u32mf2)))
-void vloxseg4ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, const uint32_t * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_u32mf2_m)))
-void vloxseg4ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vbool64_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, const uint32_t * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i32m1)))
-void vloxseg5ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, const int32_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i32m1_m)))
-void vloxseg5ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vbool32_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, const int32_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i32mf2)))
-void vloxseg5ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, const int32_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_i32mf2_m)))
-void vloxseg5ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vbool64_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, const int32_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u32m1)))
-void vloxseg5ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, const uint32_t * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u32m1_m)))
-void vloxseg5ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vbool32_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, const uint32_t * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u32mf2)))
-void vloxseg5ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, const uint32_t * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_u32mf2_m)))
-void vloxseg5ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vbool64_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, const uint32_t * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i32m1)))
-void vloxseg6ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, const int32_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i32m1_m)))
-void vloxseg6ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vbool32_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, const int32_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i32mf2)))
-void vloxseg6ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, const int32_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_i32mf2_m)))
-void vloxseg6ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vbool64_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, const int32_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u32m1)))
-void vloxseg6ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, const uint32_t * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u32m1_m)))
-void vloxseg6ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vbool32_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, const uint32_t * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u32mf2)))
-void vloxseg6ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, const uint32_t * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_u32mf2_m)))
-void vloxseg6ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vbool64_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, const uint32_t * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i32m1)))
-void vloxseg7ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, const int32_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i32m1_m)))
-void vloxseg7ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vbool32_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, const int32_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i32mf2)))
-void vloxseg7ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, const int32_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_i32mf2_m)))
-void vloxseg7ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vbool64_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, const int32_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u32m1)))
-void vloxseg7ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, const uint32_t * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u32m1_m)))
-void vloxseg7ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vbool32_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, const uint32_t * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u32mf2)))
-void vloxseg7ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, const uint32_t * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_u32mf2_m)))
-void vloxseg7ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vbool64_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, const uint32_t * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i32m1)))
-void vloxseg8ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, const int32_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i32m1_m)))
-void vloxseg8ei16(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, vbool32_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, vint32m1_t op15, vint32m1_t op16, const int32_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i32mf2)))
-void vloxseg8ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, const int32_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_i32mf2_m)))
-void vloxseg8ei16(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, vbool64_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, vint32mf2_t op15, vint32mf2_t op16, const int32_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u32m1)))
-void vloxseg8ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, const uint32_t * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u32m1_m)))
-void vloxseg8ei16(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, vbool32_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, vuint32m1_t op15, vuint32m1_t op16, const uint32_t * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u32mf2)))
-void vloxseg8ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, const uint32_t * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_u32mf2_m)))
-void vloxseg8ei16(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, vbool64_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, vuint32mf2_t op15, vuint32mf2_t op16, const uint32_t * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i32m1)))
-void vloxseg2ei32(vint32m1_t * op0, vint32m1_t * op1, const int32_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i32m1_m)))
-void vloxseg2ei32(vint32m1_t * op0, vint32m1_t * op1, vbool32_t op2, vint32m1_t op3, vint32m1_t op4, const int32_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i32m2)))
-void vloxseg2ei32(vint32m2_t * op0, vint32m2_t * op1, const int32_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i32m2_m)))
-void vloxseg2ei32(vint32m2_t * op0, vint32m2_t * op1, vbool16_t op2, vint32m2_t op3, vint32m2_t op4, const int32_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i32m4)))
-void vloxseg2ei32(vint32m4_t * op0, vint32m4_t * op1, const int32_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i32m4_m)))
-void vloxseg2ei32(vint32m4_t * op0, vint32m4_t * op1, vbool8_t op2, vint32m4_t op3, vint32m4_t op4, const int32_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i32mf2)))
-void vloxseg2ei32(vint32mf2_t * op0, vint32mf2_t * op1, const int32_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_i32mf2_m)))
-void vloxseg2ei32(vint32mf2_t * op0, vint32mf2_t * op1, vbool64_t op2, vint32mf2_t op3, vint32mf2_t op4, const int32_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u32m1)))
-void vloxseg2ei32(vuint32m1_t * op0, vuint32m1_t * op1, const uint32_t * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u32m1_m)))
-void vloxseg2ei32(vuint32m1_t * op0, vuint32m1_t * op1, vbool32_t op2, vuint32m1_t op3, vuint32m1_t op4, const uint32_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u32m2)))
-void vloxseg2ei32(vuint32m2_t * op0, vuint32m2_t * op1, const uint32_t * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u32m2_m)))
-void vloxseg2ei32(vuint32m2_t * op0, vuint32m2_t * op1, vbool16_t op2, vuint32m2_t op3, vuint32m2_t op4, const uint32_t * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u32m4)))
-void vloxseg2ei32(vuint32m4_t * op0, vuint32m4_t * op1, const uint32_t * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u32m4_m)))
-void vloxseg2ei32(vuint32m4_t * op0, vuint32m4_t * op1, vbool8_t op2, vuint32m4_t op3, vuint32m4_t op4, const uint32_t * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u32mf2)))
-void vloxseg2ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, const uint32_t * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_u32mf2_m)))
-void vloxseg2ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vbool64_t op2, vuint32mf2_t op3, vuint32mf2_t op4, const uint32_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i32m1)))
-void vloxseg3ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, const int32_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i32m1_m)))
-void vloxseg3ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vbool32_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, const int32_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i32m2)))
-void vloxseg3ei32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, const int32_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i32m2_m)))
-void vloxseg3ei32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vbool16_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, const int32_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i32mf2)))
-void vloxseg3ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, const int32_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_i32mf2_m)))
-void vloxseg3ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vbool64_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, const int32_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u32m1)))
-void vloxseg3ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, const uint32_t * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u32m1_m)))
-void vloxseg3ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vbool32_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, const uint32_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u32m2)))
-void vloxseg3ei32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, const uint32_t * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u32m2_m)))
-void vloxseg3ei32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vbool16_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, const uint32_t * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u32mf2)))
-void vloxseg3ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, const uint32_t * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_u32mf2_m)))
-void vloxseg3ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vbool64_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, const uint32_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i32m1)))
-void vloxseg4ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, const int32_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i32m1_m)))
-void vloxseg4ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vbool32_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, const int32_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i32m2)))
-void vloxseg4ei32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, const int32_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i32m2_m)))
-void vloxseg4ei32(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, vbool16_t op4, vint32m2_t op5, vint32m2_t op6, vint32m2_t op7, vint32m2_t op8, const int32_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i32mf2)))
-void vloxseg4ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, const int32_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_i32mf2_m)))
-void vloxseg4ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vbool64_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, const int32_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u32m1)))
-void vloxseg4ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, const uint32_t * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u32m1_m)))
-void vloxseg4ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vbool32_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, const uint32_t * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u32m2)))
-void vloxseg4ei32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, const uint32_t * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u32m2_m)))
-void vloxseg4ei32(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, vbool16_t op4, vuint32m2_t op5, vuint32m2_t op6, vuint32m2_t op7, vuint32m2_t op8, const uint32_t * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u32mf2)))
-void vloxseg4ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, const uint32_t * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_u32mf2_m)))
-void vloxseg4ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vbool64_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, const uint32_t * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i32m1)))
-void vloxseg5ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, const int32_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i32m1_m)))
-void vloxseg5ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vbool32_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, const int32_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i32mf2)))
-void vloxseg5ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, const int32_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_i32mf2_m)))
-void vloxseg5ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vbool64_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, const int32_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u32m1)))
-void vloxseg5ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, const uint32_t * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u32m1_m)))
-void vloxseg5ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vbool32_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, const uint32_t * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u32mf2)))
-void vloxseg5ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, const uint32_t * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_u32mf2_m)))
-void vloxseg5ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vbool64_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, const uint32_t * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i32m1)))
-void vloxseg6ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, const int32_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i32m1_m)))
-void vloxseg6ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vbool32_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, const int32_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i32mf2)))
-void vloxseg6ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, const int32_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_i32mf2_m)))
-void vloxseg6ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vbool64_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, const int32_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u32m1)))
-void vloxseg6ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, const uint32_t * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u32m1_m)))
-void vloxseg6ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vbool32_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, const uint32_t * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u32mf2)))
-void vloxseg6ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, const uint32_t * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_u32mf2_m)))
-void vloxseg6ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vbool64_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, const uint32_t * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i32m1)))
-void vloxseg7ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, const int32_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i32m1_m)))
-void vloxseg7ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vbool32_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, const int32_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i32mf2)))
-void vloxseg7ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, const int32_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_i32mf2_m)))
-void vloxseg7ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vbool64_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, const int32_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u32m1)))
-void vloxseg7ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, const uint32_t * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u32m1_m)))
-void vloxseg7ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vbool32_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, const uint32_t * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u32mf2)))
-void vloxseg7ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, const uint32_t * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_u32mf2_m)))
-void vloxseg7ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vbool64_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, const uint32_t * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i32m1)))
-void vloxseg8ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, const int32_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i32m1_m)))
-void vloxseg8ei32(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, vbool32_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, vint32m1_t op15, vint32m1_t op16, const int32_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i32mf2)))
-void vloxseg8ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, const int32_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_i32mf2_m)))
-void vloxseg8ei32(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, vbool64_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, vint32mf2_t op15, vint32mf2_t op16, const int32_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u32m1)))
-void vloxseg8ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, const uint32_t * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u32m1_m)))
-void vloxseg8ei32(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, vbool32_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, vuint32m1_t op15, vuint32m1_t op16, const uint32_t * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u32mf2)))
-void vloxseg8ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, const uint32_t * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_u32mf2_m)))
-void vloxseg8ei32(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, vbool64_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, vuint32mf2_t op15, vuint32mf2_t op16, const uint32_t * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i32m1)))
-void vloxseg2ei64(vint32m1_t * op0, vint32m1_t * op1, const int32_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i32m1_m)))
-void vloxseg2ei64(vint32m1_t * op0, vint32m1_t * op1, vbool32_t op2, vint32m1_t op3, vint32m1_t op4, const int32_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i32m2)))
-void vloxseg2ei64(vint32m2_t * op0, vint32m2_t * op1, const int32_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i32m2_m)))
-void vloxseg2ei64(vint32m2_t * op0, vint32m2_t * op1, vbool16_t op2, vint32m2_t op3, vint32m2_t op4, const int32_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i32m4)))
-void vloxseg2ei64(vint32m4_t * op0, vint32m4_t * op1, const int32_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i32m4_m)))
-void vloxseg2ei64(vint32m4_t * op0, vint32m4_t * op1, vbool8_t op2, vint32m4_t op3, vint32m4_t op4, const int32_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i32mf2)))
-void vloxseg2ei64(vint32mf2_t * op0, vint32mf2_t * op1, const int32_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_i32mf2_m)))
-void vloxseg2ei64(vint32mf2_t * op0, vint32mf2_t * op1, vbool64_t op2, vint32mf2_t op3, vint32mf2_t op4, const int32_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u32m1)))
-void vloxseg2ei64(vuint32m1_t * op0, vuint32m1_t * op1, const uint32_t * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u32m1_m)))
-void vloxseg2ei64(vuint32m1_t * op0, vuint32m1_t * op1, vbool32_t op2, vuint32m1_t op3, vuint32m1_t op4, const uint32_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u32m2)))
-void vloxseg2ei64(vuint32m2_t * op0, vuint32m2_t * op1, const uint32_t * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u32m2_m)))
-void vloxseg2ei64(vuint32m2_t * op0, vuint32m2_t * op1, vbool16_t op2, vuint32m2_t op3, vuint32m2_t op4, const uint32_t * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u32m4)))
-void vloxseg2ei64(vuint32m4_t * op0, vuint32m4_t * op1, const uint32_t * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u32m4_m)))
-void vloxseg2ei64(vuint32m4_t * op0, vuint32m4_t * op1, vbool8_t op2, vuint32m4_t op3, vuint32m4_t op4, const uint32_t * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u32mf2)))
-void vloxseg2ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, const uint32_t * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_u32mf2_m)))
-void vloxseg2ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vbool64_t op2, vuint32mf2_t op3, vuint32mf2_t op4, const uint32_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i32m1)))
-void vloxseg3ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, const int32_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i32m1_m)))
-void vloxseg3ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vbool32_t op3, vint32m1_t op4, vint32m1_t op5, vint32m1_t op6, const int32_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i32m2)))
-void vloxseg3ei64(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, const int32_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i32m2_m)))
-void vloxseg3ei64(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vbool16_t op3, vint32m2_t op4, vint32m2_t op5, vint32m2_t op6, const int32_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i32mf2)))
-void vloxseg3ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, const int32_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_i32mf2_m)))
-void vloxseg3ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vbool64_t op3, vint32mf2_t op4, vint32mf2_t op5, vint32mf2_t op6, const int32_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u32m1)))
-void vloxseg3ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, const uint32_t * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u32m1_m)))
-void vloxseg3ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vbool32_t op3, vuint32m1_t op4, vuint32m1_t op5, vuint32m1_t op6, const uint32_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u32m2)))
-void vloxseg3ei64(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, const uint32_t * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u32m2_m)))
-void vloxseg3ei64(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vbool16_t op3, vuint32m2_t op4, vuint32m2_t op5, vuint32m2_t op6, const uint32_t * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u32mf2)))
-void vloxseg3ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, const uint32_t * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_u32mf2_m)))
-void vloxseg3ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vbool64_t op3, vuint32mf2_t op4, vuint32mf2_t op5, vuint32mf2_t op6, const uint32_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i32m1)))
-void vloxseg4ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, const int32_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i32m1_m)))
-void vloxseg4ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vbool32_t op4, vint32m1_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, const int32_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i32m2)))
-void vloxseg4ei64(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, const int32_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i32m2_m)))
-void vloxseg4ei64(vint32m2_t * op0, vint32m2_t * op1, vint32m2_t * op2, vint32m2_t * op3, vbool16_t op4, vint32m2_t op5, vint32m2_t op6, vint32m2_t op7, vint32m2_t op8, const int32_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i32mf2)))
-void vloxseg4ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, const int32_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_i32mf2_m)))
-void vloxseg4ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vbool64_t op4, vint32mf2_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, const int32_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u32m1)))
-void vloxseg4ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, const uint32_t * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u32m1_m)))
-void vloxseg4ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vbool32_t op4, vuint32m1_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, const uint32_t * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u32m2)))
-void vloxseg4ei64(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, const uint32_t * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u32m2_m)))
-void vloxseg4ei64(vuint32m2_t * op0, vuint32m2_t * op1, vuint32m2_t * op2, vuint32m2_t * op3, vbool16_t op4, vuint32m2_t op5, vuint32m2_t op6, vuint32m2_t op7, vuint32m2_t op8, const uint32_t * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u32mf2)))
-void vloxseg4ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, const uint32_t * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_u32mf2_m)))
-void vloxseg4ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vbool64_t op4, vuint32mf2_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, const uint32_t * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i32m1)))
-void vloxseg5ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, const int32_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i32m1_m)))
-void vloxseg5ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vbool32_t op5, vint32m1_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, const int32_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i32mf2)))
-void vloxseg5ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, const int32_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_i32mf2_m)))
-void vloxseg5ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vbool64_t op5, vint32mf2_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, const int32_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u32m1)))
-void vloxseg5ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, const uint32_t * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u32m1_m)))
-void vloxseg5ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vbool32_t op5, vuint32m1_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, const uint32_t * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u32mf2)))
-void vloxseg5ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, const uint32_t * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_u32mf2_m)))
-void vloxseg5ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vbool64_t op5, vuint32mf2_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, const uint32_t * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i32m1)))
-void vloxseg6ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, const int32_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i32m1_m)))
-void vloxseg6ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vbool32_t op6, vint32m1_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, const int32_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i32mf2)))
-void vloxseg6ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, const int32_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_i32mf2_m)))
-void vloxseg6ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vbool64_t op6, vint32mf2_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, const int32_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u32m1)))
-void vloxseg6ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, const uint32_t * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u32m1_m)))
-void vloxseg6ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vbool32_t op6, vuint32m1_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, const uint32_t * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u32mf2)))
-void vloxseg6ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, const uint32_t * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_u32mf2_m)))
-void vloxseg6ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vbool64_t op6, vuint32mf2_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, const uint32_t * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i32m1)))
-void vloxseg7ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, const int32_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i32m1_m)))
-void vloxseg7ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vbool32_t op7, vint32m1_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, const int32_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i32mf2)))
-void vloxseg7ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, const int32_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_i32mf2_m)))
-void vloxseg7ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vbool64_t op7, vint32mf2_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, const int32_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u32m1)))
-void vloxseg7ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, const uint32_t * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u32m1_m)))
-void vloxseg7ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vbool32_t op7, vuint32m1_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, const uint32_t * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u32mf2)))
-void vloxseg7ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, const uint32_t * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_u32mf2_m)))
-void vloxseg7ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vbool64_t op7, vuint32mf2_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, const uint32_t * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i32m1)))
-void vloxseg8ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, const int32_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i32m1_m)))
-void vloxseg8ei64(vint32m1_t * op0, vint32m1_t * op1, vint32m1_t * op2, vint32m1_t * op3, vint32m1_t * op4, vint32m1_t * op5, vint32m1_t * op6, vint32m1_t * op7, vbool32_t op8, vint32m1_t op9, vint32m1_t op10, vint32m1_t op11, vint32m1_t op12, vint32m1_t op13, vint32m1_t op14, vint32m1_t op15, vint32m1_t op16, const int32_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i32mf2)))
-void vloxseg8ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, const int32_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_i32mf2_m)))
-void vloxseg8ei64(vint32mf2_t * op0, vint32mf2_t * op1, vint32mf2_t * op2, vint32mf2_t * op3, vint32mf2_t * op4, vint32mf2_t * op5, vint32mf2_t * op6, vint32mf2_t * op7, vbool64_t op8, vint32mf2_t op9, vint32mf2_t op10, vint32mf2_t op11, vint32mf2_t op12, vint32mf2_t op13, vint32mf2_t op14, vint32mf2_t op15, vint32mf2_t op16, const int32_t * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u32m1)))
-void vloxseg8ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, const uint32_t * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u32m1_m)))
-void vloxseg8ei64(vuint32m1_t * op0, vuint32m1_t * op1, vuint32m1_t * op2, vuint32m1_t * op3, vuint32m1_t * op4, vuint32m1_t * op5, vuint32m1_t * op6, vuint32m1_t * op7, vbool32_t op8, vuint32m1_t op9, vuint32m1_t op10, vuint32m1_t op11, vuint32m1_t op12, vuint32m1_t op13, vuint32m1_t op14, vuint32m1_t op15, vuint32m1_t op16, const uint32_t * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u32mf2)))
-void vloxseg8ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, const uint32_t * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_u32mf2_m)))
-void vloxseg8ei64(vuint32mf2_t * op0, vuint32mf2_t * op1, vuint32mf2_t * op2, vuint32mf2_t * op3, vuint32mf2_t * op4, vuint32mf2_t * op5, vuint32mf2_t * op6, vuint32mf2_t * op7, vbool64_t op8, vuint32mf2_t op9, vuint32mf2_t op10, vuint32mf2_t op11, vuint32mf2_t op12, vuint32mf2_t op13, vuint32mf2_t op14, vuint32mf2_t op15, vuint32mf2_t op16, const uint32_t * op17, vuint64m1_t op18, size_t op19);
-
-#endif
-
-#if defined(__riscv_f) && defined(__riscv_zvlsseg)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f32m1)))
-void vloxseg2ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, const float * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f32m1_m)))
-void vloxseg2ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vbool32_t op2, vfloat32m1_t op3, vfloat32m1_t op4, const float * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f32m2)))
-void vloxseg2ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, const float * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f32m2_m)))
-void vloxseg2ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, vbool16_t op2, vfloat32m2_t op3, vfloat32m2_t op4, const float * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f32m4)))
-void vloxseg2ei8(vfloat32m4_t * op0, vfloat32m4_t * op1, const float * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f32m4_m)))
-void vloxseg2ei8(vfloat32m4_t * op0, vfloat32m4_t * op1, vbool8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, const float * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f32mf2)))
-void vloxseg2ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, const float * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f32mf2_m)))
-void vloxseg2ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vbool64_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, const float * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f32m1)))
-void vloxseg3ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, const float * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f32m1_m)))
-void vloxseg3ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vbool32_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, const float * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f32m2)))
-void vloxseg3ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, const float * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f32m2_m)))
-void vloxseg3ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vbool16_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, const float * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f32mf2)))
-void vloxseg3ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, const float * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f32mf2_m)))
-void vloxseg3ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vbool64_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, const float * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f32m1)))
-void vloxseg4ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, const float * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f32m1_m)))
-void vloxseg4ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vbool32_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, const float * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f32m2)))
-void vloxseg4ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, const float * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f32m2_m)))
-void vloxseg4ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, vbool16_t op4, vfloat32m2_t op5, vfloat32m2_t op6, vfloat32m2_t op7, vfloat32m2_t op8, const float * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f32mf2)))
-void vloxseg4ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, const float * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f32mf2_m)))
-void vloxseg4ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vbool64_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, const float * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f32m1)))
-void vloxseg5ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, const float * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f32m1_m)))
-void vloxseg5ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vbool32_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, const float * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f32mf2)))
-void vloxseg5ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, const float * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f32mf2_m)))
-void vloxseg5ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vbool64_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, const float * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f32m1)))
-void vloxseg6ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, const float * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f32m1_m)))
-void vloxseg6ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vbool32_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, const float * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f32mf2)))
-void vloxseg6ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, const float * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f32mf2_m)))
-void vloxseg6ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vbool64_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, const float * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f32m1)))
-void vloxseg7ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, const float * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f32m1_m)))
-void vloxseg7ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vbool32_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, const float * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f32mf2)))
-void vloxseg7ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, const float * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f32mf2_m)))
-void vloxseg7ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vbool64_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, const float * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f32m1)))
-void vloxseg8ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, const float * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f32m1_m)))
-void vloxseg8ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, vbool32_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, vfloat32m1_t op15, vfloat32m1_t op16, const float * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f32mf2)))
-void vloxseg8ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, const float * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f32mf2_m)))
-void vloxseg8ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, vbool64_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, vfloat32mf2_t op15, vfloat32mf2_t op16, const float * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f32m1)))
-void vloxseg2ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, const float * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f32m1_m)))
-void vloxseg2ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vbool32_t op2, vfloat32m1_t op3, vfloat32m1_t op4, const float * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f32m2)))
-void vloxseg2ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, const float * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f32m2_m)))
-void vloxseg2ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, vbool16_t op2, vfloat32m2_t op3, vfloat32m2_t op4, const float * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f32m4)))
-void vloxseg2ei16(vfloat32m4_t * op0, vfloat32m4_t * op1, const float * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f32m4_m)))
-void vloxseg2ei16(vfloat32m4_t * op0, vfloat32m4_t * op1, vbool8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, const float * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f32mf2)))
-void vloxseg2ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, const float * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f32mf2_m)))
-void vloxseg2ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vbool64_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, const float * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f32m1)))
-void vloxseg3ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, const float * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f32m1_m)))
-void vloxseg3ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vbool32_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, const float * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f32m2)))
-void vloxseg3ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, const float * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f32m2_m)))
-void vloxseg3ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vbool16_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, const float * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f32mf2)))
-void vloxseg3ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, const float * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f32mf2_m)))
-void vloxseg3ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vbool64_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, const float * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f32m1)))
-void vloxseg4ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, const float * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f32m1_m)))
-void vloxseg4ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vbool32_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, const float * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f32m2)))
-void vloxseg4ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, const float * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f32m2_m)))
-void vloxseg4ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, vbool16_t op4, vfloat32m2_t op5, vfloat32m2_t op6, vfloat32m2_t op7, vfloat32m2_t op8, const float * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f32mf2)))
-void vloxseg4ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, const float * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f32mf2_m)))
-void vloxseg4ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vbool64_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, const float * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f32m1)))
-void vloxseg5ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, const float * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f32m1_m)))
-void vloxseg5ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vbool32_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, const float * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f32mf2)))
-void vloxseg5ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, const float * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f32mf2_m)))
-void vloxseg5ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vbool64_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, const float * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f32m1)))
-void vloxseg6ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, const float * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f32m1_m)))
-void vloxseg6ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vbool32_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, const float * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f32mf2)))
-void vloxseg6ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, const float * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f32mf2_m)))
-void vloxseg6ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vbool64_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, const float * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f32m1)))
-void vloxseg7ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, const float * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f32m1_m)))
-void vloxseg7ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vbool32_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, const float * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f32mf2)))
-void vloxseg7ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, const float * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f32mf2_m)))
-void vloxseg7ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vbool64_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, const float * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f32m1)))
-void vloxseg8ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, const float * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f32m1_m)))
-void vloxseg8ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, vbool32_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, vfloat32m1_t op15, vfloat32m1_t op16, const float * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f32mf2)))
-void vloxseg8ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, const float * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f32mf2_m)))
-void vloxseg8ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, vbool64_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, vfloat32mf2_t op15, vfloat32mf2_t op16, const float * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f32m1)))
-void vloxseg2ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, const float * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f32m1_m)))
-void vloxseg2ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vbool32_t op2, vfloat32m1_t op3, vfloat32m1_t op4, const float * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f32m2)))
-void vloxseg2ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, const float * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f32m2_m)))
-void vloxseg2ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, vbool16_t op2, vfloat32m2_t op3, vfloat32m2_t op4, const float * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f32m4)))
-void vloxseg2ei32(vfloat32m4_t * op0, vfloat32m4_t * op1, const float * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f32m4_m)))
-void vloxseg2ei32(vfloat32m4_t * op0, vfloat32m4_t * op1, vbool8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, const float * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f32mf2)))
-void vloxseg2ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, const float * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f32mf2_m)))
-void vloxseg2ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vbool64_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, const float * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f32m1)))
-void vloxseg3ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, const float * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f32m1_m)))
-void vloxseg3ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vbool32_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, const float * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f32m2)))
-void vloxseg3ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, const float * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f32m2_m)))
-void vloxseg3ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vbool16_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, const float * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f32mf2)))
-void vloxseg3ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, const float * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f32mf2_m)))
-void vloxseg3ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vbool64_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, const float * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f32m1)))
-void vloxseg4ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, const float * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f32m1_m)))
-void vloxseg4ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vbool32_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, const float * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f32m2)))
-void vloxseg4ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, const float * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f32m2_m)))
-void vloxseg4ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, vbool16_t op4, vfloat32m2_t op5, vfloat32m2_t op6, vfloat32m2_t op7, vfloat32m2_t op8, const float * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f32mf2)))
-void vloxseg4ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, const float * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f32mf2_m)))
-void vloxseg4ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vbool64_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, const float * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f32m1)))
-void vloxseg5ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, const float * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f32m1_m)))
-void vloxseg5ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vbool32_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, const float * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f32mf2)))
-void vloxseg5ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, const float * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f32mf2_m)))
-void vloxseg5ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vbool64_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, const float * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f32m1)))
-void vloxseg6ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, const float * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f32m1_m)))
-void vloxseg6ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vbool32_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, const float * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f32mf2)))
-void vloxseg6ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, const float * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f32mf2_m)))
-void vloxseg6ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vbool64_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, const float * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f32m1)))
-void vloxseg7ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, const float * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f32m1_m)))
-void vloxseg7ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vbool32_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, const float * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f32mf2)))
-void vloxseg7ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, const float * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f32mf2_m)))
-void vloxseg7ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vbool64_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, const float * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f32m1)))
-void vloxseg8ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, const float * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f32m1_m)))
-void vloxseg8ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, vbool32_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, vfloat32m1_t op15, vfloat32m1_t op16, const float * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f32mf2)))
-void vloxseg8ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, const float * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f32mf2_m)))
-void vloxseg8ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, vbool64_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, vfloat32mf2_t op15, vfloat32mf2_t op16, const float * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f32m1)))
-void vloxseg2ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, const float * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f32m1_m)))
-void vloxseg2ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vbool32_t op2, vfloat32m1_t op3, vfloat32m1_t op4, const float * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f32m2)))
-void vloxseg2ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, const float * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f32m2_m)))
-void vloxseg2ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, vbool16_t op2, vfloat32m2_t op3, vfloat32m2_t op4, const float * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f32m4)))
-void vloxseg2ei64(vfloat32m4_t * op0, vfloat32m4_t * op1, const float * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f32m4_m)))
-void vloxseg2ei64(vfloat32m4_t * op0, vfloat32m4_t * op1, vbool8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, const float * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f32mf2)))
-void vloxseg2ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, const float * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f32mf2_m)))
-void vloxseg2ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vbool64_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, const float * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f32m1)))
-void vloxseg3ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, const float * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f32m1_m)))
-void vloxseg3ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vbool32_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, const float * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f32m2)))
-void vloxseg3ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, const float * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f32m2_m)))
-void vloxseg3ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vbool16_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, const float * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f32mf2)))
-void vloxseg3ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, const float * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f32mf2_m)))
-void vloxseg3ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vbool64_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, const float * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f32m1)))
-void vloxseg4ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, const float * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f32m1_m)))
-void vloxseg4ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vbool32_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, const float * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f32m2)))
-void vloxseg4ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, const float * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f32m2_m)))
-void vloxseg4ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, vbool16_t op4, vfloat32m2_t op5, vfloat32m2_t op6, vfloat32m2_t op7, vfloat32m2_t op8, const float * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f32mf2)))
-void vloxseg4ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, const float * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f32mf2_m)))
-void vloxseg4ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vbool64_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, const float * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f32m1)))
-void vloxseg5ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, const float * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f32m1_m)))
-void vloxseg5ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vbool32_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, const float * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f32mf2)))
-void vloxseg5ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, const float * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f32mf2_m)))
-void vloxseg5ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vbool64_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, const float * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f32m1)))
-void vloxseg6ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, const float * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f32m1_m)))
-void vloxseg6ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vbool32_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, const float * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f32mf2)))
-void vloxseg6ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, const float * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f32mf2_m)))
-void vloxseg6ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vbool64_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, const float * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f32m1)))
-void vloxseg7ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, const float * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f32m1_m)))
-void vloxseg7ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vbool32_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, const float * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f32mf2)))
-void vloxseg7ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, const float * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f32mf2_m)))
-void vloxseg7ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vbool64_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, const float * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f32m1)))
-void vloxseg8ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, const float * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f32m1_m)))
-void vloxseg8ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, vbool32_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, vfloat32m1_t op15, vfloat32m1_t op16, const float * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f32mf2)))
-void vloxseg8ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, const float * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f32mf2_m)))
-void vloxseg8ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, vbool64_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, vfloat32mf2_t op15, vfloat32mf2_t op16, const float * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_f32m1)))
-void vsseg2e32(float * op0, vfloat32m1_t op1, vfloat32m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_f32m1_m)))
-void vsseg2e32(vbool32_t op0, float * op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_f32m2)))
-void vsseg2e32(float * op0, vfloat32m2_t op1, vfloat32m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_f32m2_m)))
-void vsseg2e32(vbool16_t op0, float * op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_f32m4)))
-void vsseg2e32(float * op0, vfloat32m4_t op1, vfloat32m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_f32m4_m)))
-void vsseg2e32(vbool8_t op0, float * op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_f32mf2)))
-void vsseg2e32(float * op0, vfloat32mf2_t op1, vfloat32mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e32_v_f32mf2_m)))
-void vsseg2e32(vbool64_t op0, float * op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_f32m1)))
-void vsseg3e32(float * op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_f32m1_m)))
-void vsseg3e32(vbool32_t op0, float * op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_f32m2)))
-void vsseg3e32(float * op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_f32m2_m)))
-void vsseg3e32(vbool16_t op0, float * op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_f32mf2)))
-void vsseg3e32(float * op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e32_v_f32mf2_m)))
-void vsseg3e32(vbool64_t op0, float * op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_f32m1)))
-void vsseg4e32(float * op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_f32m1_m)))
-void vsseg4e32(vbool32_t op0, float * op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_f32m2)))
-void vsseg4e32(float * op0, vfloat32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_f32m2_m)))
-void vsseg4e32(vbool16_t op0, float * op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_f32mf2)))
-void vsseg4e32(float * op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e32_v_f32mf2_m)))
-void vsseg4e32(vbool64_t op0, float * op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_f32m1)))
-void vsseg5e32(float * op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_f32m1_m)))
-void vsseg5e32(vbool32_t op0, float * op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_f32mf2)))
-void vsseg5e32(float * op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e32_v_f32mf2_m)))
-void vsseg5e32(vbool64_t op0, float * op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_f32m1)))
-void vsseg6e32(float * op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_f32m1_m)))
-void vsseg6e32(vbool32_t op0, float * op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_f32mf2)))
-void vsseg6e32(float * op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e32_v_f32mf2_m)))
-void vsseg6e32(vbool64_t op0, float * op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_f32m1)))
-void vsseg7e32(float * op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_f32m1_m)))
-void vsseg7e32(vbool32_t op0, float * op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_f32mf2)))
-void vsseg7e32(float * op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e32_v_f32mf2_m)))
-void vsseg7e32(vbool64_t op0, float * op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_f32m1)))
-void vsseg8e32(float * op0, vfloat32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_f32m1_m)))
-void vsseg8e32(vbool32_t op0, float * op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_f32mf2)))
-void vsseg8e32(float * op0, vfloat32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e32_v_f32mf2_m)))
-void vsseg8e32(vbool64_t op0, float * op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_f32m1)))
-void vssseg2e32(float * op0, ptrdiff_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_f32m1_m)))
-void vssseg2e32(vbool32_t op0, float * op1, ptrdiff_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_f32m2)))
-void vssseg2e32(float * op0, ptrdiff_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_f32m2_m)))
-void vssseg2e32(vbool16_t op0, float * op1, ptrdiff_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_f32m4)))
-void vssseg2e32(float * op0, ptrdiff_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_f32m4_m)))
-void vssseg2e32(vbool8_t op0, float * op1, ptrdiff_t op2, vfloat32m4_t op3, vfloat32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_f32mf2)))
-void vssseg2e32(float * op0, ptrdiff_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e32_v_f32mf2_m)))
-void vssseg2e32(vbool64_t op0, float * op1, ptrdiff_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_f32m1)))
-void vssseg3e32(float * op0, ptrdiff_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_f32m1_m)))
-void vssseg3e32(vbool32_t op0, float * op1, ptrdiff_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_f32m2)))
-void vssseg3e32(float * op0, ptrdiff_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_f32m2_m)))
-void vssseg3e32(vbool16_t op0, float * op1, ptrdiff_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_f32mf2)))
-void vssseg3e32(float * op0, ptrdiff_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e32_v_f32mf2_m)))
-void vssseg3e32(vbool64_t op0, float * op1, ptrdiff_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_f32m1)))
-void vssseg4e32(float * op0, ptrdiff_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_f32m1_m)))
-void vssseg4e32(vbool32_t op0, float * op1, ptrdiff_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_f32m2)))
-void vssseg4e32(float * op0, ptrdiff_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_f32m2_m)))
-void vssseg4e32(vbool16_t op0, float * op1, ptrdiff_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_f32mf2)))
-void vssseg4e32(float * op0, ptrdiff_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e32_v_f32mf2_m)))
-void vssseg4e32(vbool64_t op0, float * op1, ptrdiff_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_f32m1)))
-void vssseg5e32(float * op0, ptrdiff_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_f32m1_m)))
-void vssseg5e32(vbool32_t op0, float * op1, ptrdiff_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_f32mf2)))
-void vssseg5e32(float * op0, ptrdiff_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e32_v_f32mf2_m)))
-void vssseg5e32(vbool64_t op0, float * op1, ptrdiff_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_f32m1)))
-void vssseg6e32(float * op0, ptrdiff_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_f32m1_m)))
-void vssseg6e32(vbool32_t op0, float * op1, ptrdiff_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_f32mf2)))
-void vssseg6e32(float * op0, ptrdiff_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e32_v_f32mf2_m)))
-void vssseg6e32(vbool64_t op0, float * op1, ptrdiff_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_f32m1)))
-void vssseg7e32(float * op0, ptrdiff_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_f32m1_m)))
-void vssseg7e32(vbool32_t op0, float * op1, ptrdiff_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_f32mf2)))
-void vssseg7e32(float * op0, ptrdiff_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e32_v_f32mf2_m)))
-void vssseg7e32(vbool64_t op0, float * op1, ptrdiff_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_f32m1)))
-void vssseg8e32(float * op0, ptrdiff_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_f32m1_m)))
-void vssseg8e32(vbool32_t op0, float * op1, ptrdiff_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_f32mf2)))
-void vssseg8e32(float * op0, ptrdiff_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e32_v_f32mf2_m)))
-void vssseg8e32(vbool64_t op0, float * op1, ptrdiff_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f32m1)))
-void vsuxseg2ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f32m1_m)))
-void vsuxseg2ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f32m2)))
-void vsuxseg2ei8(float * op0, vuint8mf2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f32m2_m)))
-void vsuxseg2ei8(vbool16_t op0, float * op1, vuint8mf2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f32m4)))
-void vsuxseg2ei8(float * op0, vuint8m1_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f32m4_m)))
-void vsuxseg2ei8(vbool8_t op0, float * op1, vuint8m1_t op2, vfloat32m4_t op3, vfloat32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f32mf2)))
-void vsuxseg2ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f32mf2_m)))
-void vsuxseg2ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f32m1)))
-void vsuxseg3ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f32m1_m)))
-void vsuxseg3ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f32m2)))
-void vsuxseg3ei8(float * op0, vuint8mf2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f32m2_m)))
-void vsuxseg3ei8(vbool16_t op0, float * op1, vuint8mf2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f32mf2)))
-void vsuxseg3ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f32mf2_m)))
-void vsuxseg3ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f32m1)))
-void vsuxseg4ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f32m1_m)))
-void vsuxseg4ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f32m2)))
-void vsuxseg4ei8(float * op0, vuint8mf2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f32m2_m)))
-void vsuxseg4ei8(vbool16_t op0, float * op1, vuint8mf2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f32mf2)))
-void vsuxseg4ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f32mf2_m)))
-void vsuxseg4ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f32m1)))
-void vsuxseg5ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f32m1_m)))
-void vsuxseg5ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f32mf2)))
-void vsuxseg5ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f32mf2_m)))
-void vsuxseg5ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f32m1)))
-void vsuxseg6ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f32m1_m)))
-void vsuxseg6ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f32mf2)))
-void vsuxseg6ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f32mf2_m)))
-void vsuxseg6ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f32m1)))
-void vsuxseg7ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f32m1_m)))
-void vsuxseg7ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f32mf2)))
-void vsuxseg7ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f32mf2_m)))
-void vsuxseg7ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f32m1)))
-void vsuxseg8ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f32m1_m)))
-void vsuxseg8ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f32mf2)))
-void vsuxseg8ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f32mf2_m)))
-void vsuxseg8ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f32m1)))
-void vsuxseg2ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f32m1_m)))
-void vsuxseg2ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f32m2)))
-void vsuxseg2ei16(float * op0, vuint16m1_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f32m2_m)))
-void vsuxseg2ei16(vbool16_t op0, float * op1, vuint16m1_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f32m4)))
-void vsuxseg2ei16(float * op0, vuint16m2_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f32m4_m)))
-void vsuxseg2ei16(vbool8_t op0, float * op1, vuint16m2_t op2, vfloat32m4_t op3, vfloat32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f32mf2)))
-void vsuxseg2ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f32mf2_m)))
-void vsuxseg2ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f32m1)))
-void vsuxseg3ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f32m1_m)))
-void vsuxseg3ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f32m2)))
-void vsuxseg3ei16(float * op0, vuint16m1_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f32m2_m)))
-void vsuxseg3ei16(vbool16_t op0, float * op1, vuint16m1_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f32mf2)))
-void vsuxseg3ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f32mf2_m)))
-void vsuxseg3ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f32m1)))
-void vsuxseg4ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f32m1_m)))
-void vsuxseg4ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f32m2)))
-void vsuxseg4ei16(float * op0, vuint16m1_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f32m2_m)))
-void vsuxseg4ei16(vbool16_t op0, float * op1, vuint16m1_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f32mf2)))
-void vsuxseg4ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f32mf2_m)))
-void vsuxseg4ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f32m1)))
-void vsuxseg5ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f32m1_m)))
-void vsuxseg5ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f32mf2)))
-void vsuxseg5ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f32mf2_m)))
-void vsuxseg5ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f32m1)))
-void vsuxseg6ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f32m1_m)))
-void vsuxseg6ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f32mf2)))
-void vsuxseg6ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f32mf2_m)))
-void vsuxseg6ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f32m1)))
-void vsuxseg7ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f32m1_m)))
-void vsuxseg7ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f32mf2)))
-void vsuxseg7ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f32mf2_m)))
-void vsuxseg7ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f32m1)))
-void vsuxseg8ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f32m1_m)))
-void vsuxseg8ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f32mf2)))
-void vsuxseg8ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f32mf2_m)))
-void vsuxseg8ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f32m1)))
-void vsuxseg2ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f32m1_m)))
-void vsuxseg2ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f32m2)))
-void vsuxseg2ei32(float * op0, vuint32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f32m2_m)))
-void vsuxseg2ei32(vbool16_t op0, float * op1, vuint32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f32m4)))
-void vsuxseg2ei32(float * op0, vuint32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f32m4_m)))
-void vsuxseg2ei32(vbool8_t op0, float * op1, vuint32m4_t op2, vfloat32m4_t op3, vfloat32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f32mf2)))
-void vsuxseg2ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f32mf2_m)))
-void vsuxseg2ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f32m1)))
-void vsuxseg3ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f32m1_m)))
-void vsuxseg3ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f32m2)))
-void vsuxseg3ei32(float * op0, vuint32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f32m2_m)))
-void vsuxseg3ei32(vbool16_t op0, float * op1, vuint32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f32mf2)))
-void vsuxseg3ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f32mf2_m)))
-void vsuxseg3ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f32m1)))
-void vsuxseg4ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f32m1_m)))
-void vsuxseg4ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f32m2)))
-void vsuxseg4ei32(float * op0, vuint32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f32m2_m)))
-void vsuxseg4ei32(vbool16_t op0, float * op1, vuint32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f32mf2)))
-void vsuxseg4ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f32mf2_m)))
-void vsuxseg4ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f32m1)))
-void vsuxseg5ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f32m1_m)))
-void vsuxseg5ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f32mf2)))
-void vsuxseg5ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f32mf2_m)))
-void vsuxseg5ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f32m1)))
-void vsuxseg6ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f32m1_m)))
-void vsuxseg6ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f32mf2)))
-void vsuxseg6ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f32mf2_m)))
-void vsuxseg6ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f32m1)))
-void vsuxseg7ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f32m1_m)))
-void vsuxseg7ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f32mf2)))
-void vsuxseg7ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f32mf2_m)))
-void vsuxseg7ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f32m1)))
-void vsuxseg8ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f32m1_m)))
-void vsuxseg8ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f32mf2)))
-void vsuxseg8ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f32mf2_m)))
-void vsuxseg8ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f32m1)))
-void vsuxseg2ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f32m1_m)))
-void vsuxseg2ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f32m2)))
-void vsuxseg2ei64(float * op0, vuint64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f32m2_m)))
-void vsuxseg2ei64(vbool16_t op0, float * op1, vuint64m4_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f32m4)))
-void vsuxseg2ei64(float * op0, vuint64m8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f32m4_m)))
-void vsuxseg2ei64(vbool8_t op0, float * op1, vuint64m8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f32mf2)))
-void vsuxseg2ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f32mf2_m)))
-void vsuxseg2ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f32m1)))
-void vsuxseg3ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f32m1_m)))
-void vsuxseg3ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f32m2)))
-void vsuxseg3ei64(float * op0, vuint64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f32m2_m)))
-void vsuxseg3ei64(vbool16_t op0, float * op1, vuint64m4_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f32mf2)))
-void vsuxseg3ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f32mf2_m)))
-void vsuxseg3ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f32m1)))
-void vsuxseg4ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f32m1_m)))
-void vsuxseg4ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f32m2)))
-void vsuxseg4ei64(float * op0, vuint64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f32m2_m)))
-void vsuxseg4ei64(vbool16_t op0, float * op1, vuint64m4_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f32mf2)))
-void vsuxseg4ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f32mf2_m)))
-void vsuxseg4ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f32m1)))
-void vsuxseg5ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f32m1_m)))
-void vsuxseg5ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f32mf2)))
-void vsuxseg5ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f32mf2_m)))
-void vsuxseg5ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f32m1)))
-void vsuxseg6ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f32m1_m)))
-void vsuxseg6ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f32mf2)))
-void vsuxseg6ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f32mf2_m)))
-void vsuxseg6ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f32m1)))
-void vsuxseg7ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f32m1_m)))
-void vsuxseg7ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f32mf2)))
-void vsuxseg7ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f32mf2_m)))
-void vsuxseg7ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f32m1)))
-void vsuxseg8ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f32m1_m)))
-void vsuxseg8ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f32mf2)))
-void vsuxseg8ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f32mf2_m)))
-void vsuxseg8ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f32m1)))
-void vsoxseg2ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f32m1_m)))
-void vsoxseg2ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f32m2)))
-void vsoxseg2ei8(float * op0, vuint8mf2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f32m2_m)))
-void vsoxseg2ei8(vbool16_t op0, float * op1, vuint8mf2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f32m4)))
-void vsoxseg2ei8(float * op0, vuint8m1_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f32m4_m)))
-void vsoxseg2ei8(vbool8_t op0, float * op1, vuint8m1_t op2, vfloat32m4_t op3, vfloat32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f32mf2)))
-void vsoxseg2ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f32mf2_m)))
-void vsoxseg2ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f32m1)))
-void vsoxseg3ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f32m1_m)))
-void vsoxseg3ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f32m2)))
-void vsoxseg3ei8(float * op0, vuint8mf2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f32m2_m)))
-void vsoxseg3ei8(vbool16_t op0, float * op1, vuint8mf2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f32mf2)))
-void vsoxseg3ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f32mf2_m)))
-void vsoxseg3ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f32m1)))
-void vsoxseg4ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f32m1_m)))
-void vsoxseg4ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f32m2)))
-void vsoxseg4ei8(float * op0, vuint8mf2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f32m2_m)))
-void vsoxseg4ei8(vbool16_t op0, float * op1, vuint8mf2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f32mf2)))
-void vsoxseg4ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f32mf2_m)))
-void vsoxseg4ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f32m1)))
-void vsoxseg5ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f32m1_m)))
-void vsoxseg5ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f32mf2)))
-void vsoxseg5ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f32mf2_m)))
-void vsoxseg5ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f32m1)))
-void vsoxseg6ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f32m1_m)))
-void vsoxseg6ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f32mf2)))
-void vsoxseg6ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f32mf2_m)))
-void vsoxseg6ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f32m1)))
-void vsoxseg7ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f32m1_m)))
-void vsoxseg7ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f32mf2)))
-void vsoxseg7ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f32mf2_m)))
-void vsoxseg7ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f32m1)))
-void vsoxseg8ei8(float * op0, vuint8mf4_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f32m1_m)))
-void vsoxseg8ei8(vbool32_t op0, float * op1, vuint8mf4_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f32mf2)))
-void vsoxseg8ei8(float * op0, vuint8mf8_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f32mf2_m)))
-void vsoxseg8ei8(vbool64_t op0, float * op1, vuint8mf8_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f32m1)))
-void vsoxseg2ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f32m1_m)))
-void vsoxseg2ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f32m2)))
-void vsoxseg2ei16(float * op0, vuint16m1_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f32m2_m)))
-void vsoxseg2ei16(vbool16_t op0, float * op1, vuint16m1_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f32m4)))
-void vsoxseg2ei16(float * op0, vuint16m2_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f32m4_m)))
-void vsoxseg2ei16(vbool8_t op0, float * op1, vuint16m2_t op2, vfloat32m4_t op3, vfloat32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f32mf2)))
-void vsoxseg2ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f32mf2_m)))
-void vsoxseg2ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f32m1)))
-void vsoxseg3ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f32m1_m)))
-void vsoxseg3ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f32m2)))
-void vsoxseg3ei16(float * op0, vuint16m1_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f32m2_m)))
-void vsoxseg3ei16(vbool16_t op0, float * op1, vuint16m1_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f32mf2)))
-void vsoxseg3ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f32mf2_m)))
-void vsoxseg3ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f32m1)))
-void vsoxseg4ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f32m1_m)))
-void vsoxseg4ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f32m2)))
-void vsoxseg4ei16(float * op0, vuint16m1_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f32m2_m)))
-void vsoxseg4ei16(vbool16_t op0, float * op1, vuint16m1_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f32mf2)))
-void vsoxseg4ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f32mf2_m)))
-void vsoxseg4ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f32m1)))
-void vsoxseg5ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f32m1_m)))
-void vsoxseg5ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f32mf2)))
-void vsoxseg5ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f32mf2_m)))
-void vsoxseg5ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f32m1)))
-void vsoxseg6ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f32m1_m)))
-void vsoxseg6ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f32mf2)))
-void vsoxseg6ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f32mf2_m)))
-void vsoxseg6ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f32m1)))
-void vsoxseg7ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f32m1_m)))
-void vsoxseg7ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f32mf2)))
-void vsoxseg7ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f32mf2_m)))
-void vsoxseg7ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f32m1)))
-void vsoxseg8ei16(float * op0, vuint16mf2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f32m1_m)))
-void vsoxseg8ei16(vbool32_t op0, float * op1, vuint16mf2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f32mf2)))
-void vsoxseg8ei16(float * op0, vuint16mf4_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f32mf2_m)))
-void vsoxseg8ei16(vbool64_t op0, float * op1, vuint16mf4_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f32m1)))
-void vsoxseg2ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f32m1_m)))
-void vsoxseg2ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f32m2)))
-void vsoxseg2ei32(float * op0, vuint32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f32m2_m)))
-void vsoxseg2ei32(vbool16_t op0, float * op1, vuint32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f32m4)))
-void vsoxseg2ei32(float * op0, vuint32m4_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f32m4_m)))
-void vsoxseg2ei32(vbool8_t op0, float * op1, vuint32m4_t op2, vfloat32m4_t op3, vfloat32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f32mf2)))
-void vsoxseg2ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f32mf2_m)))
-void vsoxseg2ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f32m1)))
-void vsoxseg3ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f32m1_m)))
-void vsoxseg3ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f32m2)))
-void vsoxseg3ei32(float * op0, vuint32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f32m2_m)))
-void vsoxseg3ei32(vbool16_t op0, float * op1, vuint32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f32mf2)))
-void vsoxseg3ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f32mf2_m)))
-void vsoxseg3ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f32m1)))
-void vsoxseg4ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f32m1_m)))
-void vsoxseg4ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f32m2)))
-void vsoxseg4ei32(float * op0, vuint32m2_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f32m2_m)))
-void vsoxseg4ei32(vbool16_t op0, float * op1, vuint32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f32mf2)))
-void vsoxseg4ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f32mf2_m)))
-void vsoxseg4ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f32m1)))
-void vsoxseg5ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f32m1_m)))
-void vsoxseg5ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f32mf2)))
-void vsoxseg5ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f32mf2_m)))
-void vsoxseg5ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f32m1)))
-void vsoxseg6ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f32m1_m)))
-void vsoxseg6ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f32mf2)))
-void vsoxseg6ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f32mf2_m)))
-void vsoxseg6ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f32m1)))
-void vsoxseg7ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f32m1_m)))
-void vsoxseg7ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f32mf2)))
-void vsoxseg7ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f32mf2_m)))
-void vsoxseg7ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f32m1)))
-void vsoxseg8ei32(float * op0, vuint32m1_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f32m1_m)))
-void vsoxseg8ei32(vbool32_t op0, float * op1, vuint32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f32mf2)))
-void vsoxseg8ei32(float * op0, vuint32mf2_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f32mf2_m)))
-void vsoxseg8ei32(vbool64_t op0, float * op1, vuint32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f32m1)))
-void vsoxseg2ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f32m1_m)))
-void vsoxseg2ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f32m2)))
-void vsoxseg2ei64(float * op0, vuint64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f32m2_m)))
-void vsoxseg2ei64(vbool16_t op0, float * op1, vuint64m4_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f32m4)))
-void vsoxseg2ei64(float * op0, vuint64m8_t op1, vfloat32m4_t op2, vfloat32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f32m4_m)))
-void vsoxseg2ei64(vbool8_t op0, float * op1, vuint64m8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f32mf2)))
-void vsoxseg2ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f32mf2_m)))
-void vsoxseg2ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f32m1)))
-void vsoxseg3ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f32m1_m)))
-void vsoxseg3ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f32m2)))
-void vsoxseg3ei64(float * op0, vuint64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f32m2_m)))
-void vsoxseg3ei64(vbool16_t op0, float * op1, vuint64m4_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f32mf2)))
-void vsoxseg3ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f32mf2_m)))
-void vsoxseg3ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f32m1)))
-void vsoxseg4ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f32m1_m)))
-void vsoxseg4ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f32m2)))
-void vsoxseg4ei64(float * op0, vuint64m4_t op1, vfloat32m2_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f32m2_m)))
-void vsoxseg4ei64(vbool16_t op0, float * op1, vuint64m4_t op2, vfloat32m2_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f32mf2)))
-void vsoxseg4ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f32mf2_m)))
-void vsoxseg4ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f32m1)))
-void vsoxseg5ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f32m1_m)))
-void vsoxseg5ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f32mf2)))
-void vsoxseg5ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f32mf2_m)))
-void vsoxseg5ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f32m1)))
-void vsoxseg6ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f32m1_m)))
-void vsoxseg6ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f32mf2)))
-void vsoxseg6ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f32mf2_m)))
-void vsoxseg6ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f32m1)))
-void vsoxseg7ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f32m1_m)))
-void vsoxseg7ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f32mf2)))
-void vsoxseg7ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f32mf2_m)))
-void vsoxseg7ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f32m1)))
-void vsoxseg8ei64(float * op0, vuint64m2_t op1, vfloat32m1_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f32m1_m)))
-void vsoxseg8ei64(vbool32_t op0, float * op1, vuint64m2_t op2, vfloat32m1_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f32mf2)))
-void vsoxseg8ei64(float * op0, vuint64m1_t op1, vfloat32mf2_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f32mf2_m)))
-void vsoxseg8ei64(vbool64_t op0, float * op1, vuint64m1_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_f32m1_m)))
-void vlseg2e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vbool32_t op2, vfloat32m1_t op3, vfloat32m1_t op4, const float * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_f32m2_m)))
-void vlseg2e32(vfloat32m2_t * op0, vfloat32m2_t * op1, vbool16_t op2, vfloat32m2_t op3, vfloat32m2_t op4, const float * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_f32m4_m)))
-void vlseg2e32(vfloat32m4_t * op0, vfloat32m4_t * op1, vbool8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, const float * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32_v_f32mf2_m)))
-void vlseg2e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vbool64_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, const float * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32_v_f32m1_m)))
-void vlseg3e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vbool32_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, const float * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32_v_f32m2_m)))
-void vlseg3e32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vbool16_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, const float * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32_v_f32mf2_m)))
-void vlseg3e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vbool64_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, const float * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32_v_f32m1_m)))
-void vlseg4e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vbool32_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, const float * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32_v_f32m2_m)))
-void vlseg4e32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, vbool16_t op4, vfloat32m2_t op5, vfloat32m2_t op6, vfloat32m2_t op7, vfloat32m2_t op8, const float * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32_v_f32mf2_m)))
-void vlseg4e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vbool64_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, const float * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32_v_f32m1_m)))
-void vlseg5e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vbool32_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, const float * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32_v_f32mf2_m)))
-void vlseg5e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vbool64_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, const float * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32_v_f32m1_m)))
-void vlseg6e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vbool32_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, const float * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32_v_f32mf2_m)))
-void vlseg6e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vbool64_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, const float * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32_v_f32m1_m)))
-void vlseg7e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vbool32_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, const float * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32_v_f32mf2_m)))
-void vlseg7e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vbool64_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, const float * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32_v_f32m1_m)))
-void vlseg8e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, vbool32_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, vfloat32m1_t op15, vfloat32m1_t op16, const float * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32_v_f32mf2_m)))
-void vlseg8e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, vbool64_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, vfloat32mf2_t op15, vfloat32mf2_t op16, const float * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_f32m1_m)))
-void vlseg2e32ff(vfloat32m1_t * op0, vfloat32m1_t * op1, vbool32_t op2, vfloat32m1_t op3, vfloat32m1_t op4, const float * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_f32m2_m)))
-void vlseg2e32ff(vfloat32m2_t * op0, vfloat32m2_t * op1, vbool16_t op2, vfloat32m2_t op3, vfloat32m2_t op4, const float * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_f32m4_m)))
-void vlseg2e32ff(vfloat32m4_t * op0, vfloat32m4_t * op1, vbool8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, const float * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e32ff_v_f32mf2_m)))
-void vlseg2e32ff(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vbool64_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, const float * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32ff_v_f32m1_m)))
-void vlseg3e32ff(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vbool32_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, const float * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32ff_v_f32m2_m)))
-void vlseg3e32ff(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vbool16_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, const float * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e32ff_v_f32mf2_m)))
-void vlseg3e32ff(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vbool64_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, const float * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32ff_v_f32m1_m)))
-void vlseg4e32ff(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vbool32_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, const float * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32ff_v_f32m2_m)))
-void vlseg4e32ff(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, vbool16_t op4, vfloat32m2_t op5, vfloat32m2_t op6, vfloat32m2_t op7, vfloat32m2_t op8, const float * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e32ff_v_f32mf2_m)))
-void vlseg4e32ff(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vbool64_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, const float * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32ff_v_f32m1_m)))
-void vlseg5e32ff(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vbool32_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, const float * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e32ff_v_f32mf2_m)))
-void vlseg5e32ff(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vbool64_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, const float * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32ff_v_f32m1_m)))
-void vlseg6e32ff(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vbool32_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, const float * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e32ff_v_f32mf2_m)))
-void vlseg6e32ff(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vbool64_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, const float * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32ff_v_f32m1_m)))
-void vlseg7e32ff(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vbool32_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, const float * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e32ff_v_f32mf2_m)))
-void vlseg7e32ff(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vbool64_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, const float * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32ff_v_f32m1_m)))
-void vlseg8e32ff(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, vbool32_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, vfloat32m1_t op15, vfloat32m1_t op16, const float * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e32ff_v_f32mf2_m)))
-void vlseg8e32ff(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, vbool64_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, vfloat32mf2_t op15, vfloat32mf2_t op16, const float * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_f32m1_m)))
-void vlsseg2e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vbool32_t op2, vfloat32m1_t op3, vfloat32m1_t op4, const float * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_f32m2_m)))
-void vlsseg2e32(vfloat32m2_t * op0, vfloat32m2_t * op1, vbool16_t op2, vfloat32m2_t op3, vfloat32m2_t op4, const float * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_f32m4_m)))
-void vlsseg2e32(vfloat32m4_t * op0, vfloat32m4_t * op1, vbool8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, const float * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e32_v_f32mf2_m)))
-void vlsseg2e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vbool64_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, const float * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e32_v_f32m1_m)))
-void vlsseg3e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vbool32_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, const float * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e32_v_f32m2_m)))
-void vlsseg3e32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vbool16_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, const float * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e32_v_f32mf2_m)))
-void vlsseg3e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vbool64_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, const float * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e32_v_f32m1_m)))
-void vlsseg4e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vbool32_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, const float * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e32_v_f32m2_m)))
-void vlsseg4e32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, vbool16_t op4, vfloat32m2_t op5, vfloat32m2_t op6, vfloat32m2_t op7, vfloat32m2_t op8, const float * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e32_v_f32mf2_m)))
-void vlsseg4e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vbool64_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, const float * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e32_v_f32m1_m)))
-void vlsseg5e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vbool32_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, const float * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e32_v_f32mf2_m)))
-void vlsseg5e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vbool64_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, const float * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e32_v_f32m1_m)))
-void vlsseg6e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vbool32_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, const float * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e32_v_f32mf2_m)))
-void vlsseg6e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vbool64_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, const float * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e32_v_f32m1_m)))
-void vlsseg7e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vbool32_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, const float * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e32_v_f32mf2_m)))
-void vlsseg7e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vbool64_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, const float * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e32_v_f32m1_m)))
-void vlsseg8e32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, vbool32_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, vfloat32m1_t op15, vfloat32m1_t op16, const float * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e32_v_f32mf2_m)))
-void vlsseg8e32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, vbool64_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, vfloat32mf2_t op15, vfloat32mf2_t op16, const float * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f32m1)))
-void vluxseg2ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, const float * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f32m1_m)))
-void vluxseg2ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vbool32_t op2, vfloat32m1_t op3, vfloat32m1_t op4, const float * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f32m2)))
-void vluxseg2ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, const float * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f32m2_m)))
-void vluxseg2ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, vbool16_t op2, vfloat32m2_t op3, vfloat32m2_t op4, const float * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f32m4)))
-void vluxseg2ei8(vfloat32m4_t * op0, vfloat32m4_t * op1, const float * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f32m4_m)))
-void vluxseg2ei8(vfloat32m4_t * op0, vfloat32m4_t * op1, vbool8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, const float * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f32mf2)))
-void vluxseg2ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, const float * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f32mf2_m)))
-void vluxseg2ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vbool64_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, const float * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f32m1)))
-void vluxseg3ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, const float * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f32m1_m)))
-void vluxseg3ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vbool32_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, const float * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f32m2)))
-void vluxseg3ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, const float * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f32m2_m)))
-void vluxseg3ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vbool16_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, const float * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f32mf2)))
-void vluxseg3ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, const float * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f32mf2_m)))
-void vluxseg3ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vbool64_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, const float * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f32m1)))
-void vluxseg4ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, const float * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f32m1_m)))
-void vluxseg4ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vbool32_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, const float * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f32m2)))
-void vluxseg4ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, const float * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f32m2_m)))
-void vluxseg4ei8(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, vbool16_t op4, vfloat32m2_t op5, vfloat32m2_t op6, vfloat32m2_t op7, vfloat32m2_t op8, const float * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f32mf2)))
-void vluxseg4ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, const float * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f32mf2_m)))
-void vluxseg4ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vbool64_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, const float * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f32m1)))
-void vluxseg5ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, const float * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f32m1_m)))
-void vluxseg5ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vbool32_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, const float * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f32mf2)))
-void vluxseg5ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, const float * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f32mf2_m)))
-void vluxseg5ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vbool64_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, const float * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f32m1)))
-void vluxseg6ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, const float * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f32m1_m)))
-void vluxseg6ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vbool32_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, const float * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f32mf2)))
-void vluxseg6ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, const float * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f32mf2_m)))
-void vluxseg6ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vbool64_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, const float * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f32m1)))
-void vluxseg7ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, const float * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f32m1_m)))
-void vluxseg7ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vbool32_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, const float * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f32mf2)))
-void vluxseg7ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, const float * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f32mf2_m)))
-void vluxseg7ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vbool64_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, const float * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f32m1)))
-void vluxseg8ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, const float * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f32m1_m)))
-void vluxseg8ei8(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, vbool32_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, vfloat32m1_t op15, vfloat32m1_t op16, const float * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f32mf2)))
-void vluxseg8ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, const float * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f32mf2_m)))
-void vluxseg8ei8(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, vbool64_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, vfloat32mf2_t op15, vfloat32mf2_t op16, const float * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f32m1)))
-void vluxseg2ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, const float * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f32m1_m)))
-void vluxseg2ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vbool32_t op2, vfloat32m1_t op3, vfloat32m1_t op4, const float * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f32m2)))
-void vluxseg2ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, const float * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f32m2_m)))
-void vluxseg2ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, vbool16_t op2, vfloat32m2_t op3, vfloat32m2_t op4, const float * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f32m4)))
-void vluxseg2ei16(vfloat32m4_t * op0, vfloat32m4_t * op1, const float * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f32m4_m)))
-void vluxseg2ei16(vfloat32m4_t * op0, vfloat32m4_t * op1, vbool8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, const float * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f32mf2)))
-void vluxseg2ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, const float * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f32mf2_m)))
-void vluxseg2ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vbool64_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, const float * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f32m1)))
-void vluxseg3ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, const float * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f32m1_m)))
-void vluxseg3ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vbool32_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, const float * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f32m2)))
-void vluxseg3ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, const float * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f32m2_m)))
-void vluxseg3ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vbool16_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, const float * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f32mf2)))
-void vluxseg3ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, const float * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f32mf2_m)))
-void vluxseg3ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vbool64_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, const float * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f32m1)))
-void vluxseg4ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, const float * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f32m1_m)))
-void vluxseg4ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vbool32_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, const float * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f32m2)))
-void vluxseg4ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, const float * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f32m2_m)))
-void vluxseg4ei16(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, vbool16_t op4, vfloat32m2_t op5, vfloat32m2_t op6, vfloat32m2_t op7, vfloat32m2_t op8, const float * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f32mf2)))
-void vluxseg4ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, const float * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f32mf2_m)))
-void vluxseg4ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vbool64_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, const float * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f32m1)))
-void vluxseg5ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, const float * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f32m1_m)))
-void vluxseg5ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vbool32_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, const float * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f32mf2)))
-void vluxseg5ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, const float * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f32mf2_m)))
-void vluxseg5ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vbool64_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, const float * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f32m1)))
-void vluxseg6ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, const float * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f32m1_m)))
-void vluxseg6ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vbool32_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, const float * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f32mf2)))
-void vluxseg6ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, const float * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f32mf2_m)))
-void vluxseg6ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vbool64_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, const float * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f32m1)))
-void vluxseg7ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, const float * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f32m1_m)))
-void vluxseg7ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vbool32_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, const float * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f32mf2)))
-void vluxseg7ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, const float * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f32mf2_m)))
-void vluxseg7ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vbool64_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, const float * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f32m1)))
-void vluxseg8ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, const float * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f32m1_m)))
-void vluxseg8ei16(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, vbool32_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, vfloat32m1_t op15, vfloat32m1_t op16, const float * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f32mf2)))
-void vluxseg8ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, const float * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f32mf2_m)))
-void vluxseg8ei16(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, vbool64_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, vfloat32mf2_t op15, vfloat32mf2_t op16, const float * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f32m1)))
-void vluxseg2ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, const float * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f32m1_m)))
-void vluxseg2ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vbool32_t op2, vfloat32m1_t op3, vfloat32m1_t op4, const float * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f32m2)))
-void vluxseg2ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, const float * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f32m2_m)))
-void vluxseg2ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, vbool16_t op2, vfloat32m2_t op3, vfloat32m2_t op4, const float * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f32m4)))
-void vluxseg2ei32(vfloat32m4_t * op0, vfloat32m4_t * op1, const float * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f32m4_m)))
-void vluxseg2ei32(vfloat32m4_t * op0, vfloat32m4_t * op1, vbool8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, const float * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f32mf2)))
-void vluxseg2ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, const float * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f32mf2_m)))
-void vluxseg2ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vbool64_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, const float * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f32m1)))
-void vluxseg3ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, const float * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f32m1_m)))
-void vluxseg3ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vbool32_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, const float * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f32m2)))
-void vluxseg3ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, const float * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f32m2_m)))
-void vluxseg3ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vbool16_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, const float * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f32mf2)))
-void vluxseg3ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, const float * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f32mf2_m)))
-void vluxseg3ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vbool64_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, const float * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f32m1)))
-void vluxseg4ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, const float * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f32m1_m)))
-void vluxseg4ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vbool32_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, const float * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f32m2)))
-void vluxseg4ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, const float * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f32m2_m)))
-void vluxseg4ei32(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, vbool16_t op4, vfloat32m2_t op5, vfloat32m2_t op6, vfloat32m2_t op7, vfloat32m2_t op8, const float * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f32mf2)))
-void vluxseg4ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, const float * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f32mf2_m)))
-void vluxseg4ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vbool64_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, const float * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f32m1)))
-void vluxseg5ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, const float * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f32m1_m)))
-void vluxseg5ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vbool32_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, const float * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f32mf2)))
-void vluxseg5ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, const float * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f32mf2_m)))
-void vluxseg5ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vbool64_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, const float * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f32m1)))
-void vluxseg6ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, const float * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f32m1_m)))
-void vluxseg6ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vbool32_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, const float * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f32mf2)))
-void vluxseg6ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, const float * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f32mf2_m)))
-void vluxseg6ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vbool64_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, const float * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f32m1)))
-void vluxseg7ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, const float * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f32m1_m)))
-void vluxseg7ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vbool32_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, const float * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f32mf2)))
-void vluxseg7ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, const float * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f32mf2_m)))
-void vluxseg7ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vbool64_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, const float * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f32m1)))
-void vluxseg8ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, const float * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f32m1_m)))
-void vluxseg8ei32(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, vbool32_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, vfloat32m1_t op15, vfloat32m1_t op16, const float * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f32mf2)))
-void vluxseg8ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, const float * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f32mf2_m)))
-void vluxseg8ei32(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, vbool64_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, vfloat32mf2_t op15, vfloat32mf2_t op16, const float * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f32m1)))
-void vluxseg2ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, const float * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f32m1_m)))
-void vluxseg2ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vbool32_t op2, vfloat32m1_t op3, vfloat32m1_t op4, const float * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f32m2)))
-void vluxseg2ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, const float * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f32m2_m)))
-void vluxseg2ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, vbool16_t op2, vfloat32m2_t op3, vfloat32m2_t op4, const float * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f32m4)))
-void vluxseg2ei64(vfloat32m4_t * op0, vfloat32m4_t * op1, const float * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f32m4_m)))
-void vluxseg2ei64(vfloat32m4_t * op0, vfloat32m4_t * op1, vbool8_t op2, vfloat32m4_t op3, vfloat32m4_t op4, const float * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f32mf2)))
-void vluxseg2ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, const float * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f32mf2_m)))
-void vluxseg2ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vbool64_t op2, vfloat32mf2_t op3, vfloat32mf2_t op4, const float * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f32m1)))
-void vluxseg3ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, const float * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f32m1_m)))
-void vluxseg3ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vbool32_t op3, vfloat32m1_t op4, vfloat32m1_t op5, vfloat32m1_t op6, const float * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f32m2)))
-void vluxseg3ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, const float * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f32m2_m)))
-void vluxseg3ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vbool16_t op3, vfloat32m2_t op4, vfloat32m2_t op5, vfloat32m2_t op6, const float * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f32mf2)))
-void vluxseg3ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, const float * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f32mf2_m)))
-void vluxseg3ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vbool64_t op3, vfloat32mf2_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, const float * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f32m1)))
-void vluxseg4ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, const float * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f32m1_m)))
-void vluxseg4ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vbool32_t op4, vfloat32m1_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, const float * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f32m2)))
-void vluxseg4ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, const float * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f32m2_m)))
-void vluxseg4ei64(vfloat32m2_t * op0, vfloat32m2_t * op1, vfloat32m2_t * op2, vfloat32m2_t * op3, vbool16_t op4, vfloat32m2_t op5, vfloat32m2_t op6, vfloat32m2_t op7, vfloat32m2_t op8, const float * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f32mf2)))
-void vluxseg4ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, const float * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f32mf2_m)))
-void vluxseg4ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vbool64_t op4, vfloat32mf2_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, const float * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f32m1)))
-void vluxseg5ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, const float * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f32m1_m)))
-void vluxseg5ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vbool32_t op5, vfloat32m1_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, const float * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f32mf2)))
-void vluxseg5ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, const float * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f32mf2_m)))
-void vluxseg5ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vbool64_t op5, vfloat32mf2_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, const float * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f32m1)))
-void vluxseg6ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, const float * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f32m1_m)))
-void vluxseg6ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vbool32_t op6, vfloat32m1_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, const float * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f32mf2)))
-void vluxseg6ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, const float * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f32mf2_m)))
-void vluxseg6ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vbool64_t op6, vfloat32mf2_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, const float * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f32m1)))
-void vluxseg7ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, const float * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f32m1_m)))
-void vluxseg7ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vbool32_t op7, vfloat32m1_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, const float * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f32mf2)))
-void vluxseg7ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, const float * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f32mf2_m)))
-void vluxseg7ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vbool64_t op7, vfloat32mf2_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, const float * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f32m1)))
-void vluxseg8ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, const float * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f32m1_m)))
-void vluxseg8ei64(vfloat32m1_t * op0, vfloat32m1_t * op1, vfloat32m1_t * op2, vfloat32m1_t * op3, vfloat32m1_t * op4, vfloat32m1_t * op5, vfloat32m1_t * op6, vfloat32m1_t * op7, vbool32_t op8, vfloat32m1_t op9, vfloat32m1_t op10, vfloat32m1_t op11, vfloat32m1_t op12, vfloat32m1_t op13, vfloat32m1_t op14, vfloat32m1_t op15, vfloat32m1_t op16, const float * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f32mf2)))
-void vluxseg8ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, const float * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f32mf2_m)))
-void vluxseg8ei64(vfloat32mf2_t * op0, vfloat32mf2_t * op1, vfloat32mf2_t * op2, vfloat32mf2_t * op3, vfloat32mf2_t * op4, vfloat32mf2_t * op5, vfloat32mf2_t * op6, vfloat32mf2_t * op7, vbool64_t op8, vfloat32mf2_t op9, vfloat32mf2_t op10, vfloat32mf2_t op11, vfloat32mf2_t op12, vfloat32mf2_t op13, vfloat32mf2_t op14, vfloat32mf2_t op15, vfloat32mf2_t op16, const float * op17, vuint64m1_t op18, size_t op19);
-
-#endif
-
-#if defined(__riscv_d) && defined(__riscv_zvlsseg)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f64m1)))
-void vloxseg2ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, const double * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f64m1_m)))
-void vloxseg2ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vbool64_t op2, vfloat64m1_t op3, vfloat64m1_t op4, const double * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f64m2)))
-void vloxseg2ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, const double * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f64m2_m)))
-void vloxseg2ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, vbool32_t op2, vfloat64m2_t op3, vfloat64m2_t op4, const double * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f64m4)))
-void vloxseg2ei8(vfloat64m4_t * op0, vfloat64m4_t * op1, const double * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f64m4_m)))
-void vloxseg2ei8(vfloat64m4_t * op0, vfloat64m4_t * op1, vbool16_t op2, vfloat64m4_t op3, vfloat64m4_t op4, const double * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f64m1)))
-void vloxseg3ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, const double * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f64m1_m)))
-void vloxseg3ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vbool64_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, const double * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f64m2)))
-void vloxseg3ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, const double * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f64m2_m)))
-void vloxseg3ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vbool32_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, const double * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f64m1)))
-void vloxseg4ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, const double * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f64m1_m)))
-void vloxseg4ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vbool64_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, const double * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f64m2)))
-void vloxseg4ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, const double * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f64m2_m)))
-void vloxseg4ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, vbool32_t op4, vfloat64m2_t op5, vfloat64m2_t op6, vfloat64m2_t op7, vfloat64m2_t op8, const double * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f64m1)))
-void vloxseg5ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, const double * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f64m1_m)))
-void vloxseg5ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vbool64_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, const double * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f64m1)))
-void vloxseg6ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, const double * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f64m1_m)))
-void vloxseg6ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vbool64_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, const double * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f64m1)))
-void vloxseg7ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, const double * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f64m1_m)))
-void vloxseg7ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vbool64_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, const double * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f64m1)))
-void vloxseg8ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, const double * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f64m1_m)))
-void vloxseg8ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, vbool64_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, vfloat64m1_t op15, vfloat64m1_t op16, const double * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f64m1)))
-void vloxseg2ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, const double * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f64m1_m)))
-void vloxseg2ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vbool64_t op2, vfloat64m1_t op3, vfloat64m1_t op4, const double * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f64m2)))
-void vloxseg2ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, const double * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f64m2_m)))
-void vloxseg2ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, vbool32_t op2, vfloat64m2_t op3, vfloat64m2_t op4, const double * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f64m4)))
-void vloxseg2ei16(vfloat64m4_t * op0, vfloat64m4_t * op1, const double * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f64m4_m)))
-void vloxseg2ei16(vfloat64m4_t * op0, vfloat64m4_t * op1, vbool16_t op2, vfloat64m4_t op3, vfloat64m4_t op4, const double * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f64m1)))
-void vloxseg3ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, const double * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f64m1_m)))
-void vloxseg3ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vbool64_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, const double * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f64m2)))
-void vloxseg3ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, const double * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f64m2_m)))
-void vloxseg3ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vbool32_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, const double * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f64m1)))
-void vloxseg4ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, const double * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f64m1_m)))
-void vloxseg4ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vbool64_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, const double * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f64m2)))
-void vloxseg4ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, const double * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f64m2_m)))
-void vloxseg4ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, vbool32_t op4, vfloat64m2_t op5, vfloat64m2_t op6, vfloat64m2_t op7, vfloat64m2_t op8, const double * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f64m1)))
-void vloxseg5ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, const double * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f64m1_m)))
-void vloxseg5ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vbool64_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, const double * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f64m1)))
-void vloxseg6ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, const double * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f64m1_m)))
-void vloxseg6ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vbool64_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, const double * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f64m1)))
-void vloxseg7ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, const double * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f64m1_m)))
-void vloxseg7ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vbool64_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, const double * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f64m1)))
-void vloxseg8ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, const double * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f64m1_m)))
-void vloxseg8ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, vbool64_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, vfloat64m1_t op15, vfloat64m1_t op16, const double * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f64m1)))
-void vloxseg2ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, const double * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f64m1_m)))
-void vloxseg2ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vbool64_t op2, vfloat64m1_t op3, vfloat64m1_t op4, const double * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f64m2)))
-void vloxseg2ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, const double * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f64m2_m)))
-void vloxseg2ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, vbool32_t op2, vfloat64m2_t op3, vfloat64m2_t op4, const double * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f64m4)))
-void vloxseg2ei32(vfloat64m4_t * op0, vfloat64m4_t * op1, const double * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f64m4_m)))
-void vloxseg2ei32(vfloat64m4_t * op0, vfloat64m4_t * op1, vbool16_t op2, vfloat64m4_t op3, vfloat64m4_t op4, const double * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f64m1)))
-void vloxseg3ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, const double * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f64m1_m)))
-void vloxseg3ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vbool64_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, const double * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f64m2)))
-void vloxseg3ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, const double * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f64m2_m)))
-void vloxseg3ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vbool32_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, const double * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f64m1)))
-void vloxseg4ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, const double * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f64m1_m)))
-void vloxseg4ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vbool64_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, const double * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f64m2)))
-void vloxseg4ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, const double * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f64m2_m)))
-void vloxseg4ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, vbool32_t op4, vfloat64m2_t op5, vfloat64m2_t op6, vfloat64m2_t op7, vfloat64m2_t op8, const double * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f64m1)))
-void vloxseg5ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, const double * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f64m1_m)))
-void vloxseg5ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vbool64_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, const double * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f64m1)))
-void vloxseg6ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, const double * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f64m1_m)))
-void vloxseg6ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vbool64_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, const double * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f64m1)))
-void vloxseg7ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, const double * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f64m1_m)))
-void vloxseg7ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vbool64_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, const double * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f64m1)))
-void vloxseg8ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, const double * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f64m1_m)))
-void vloxseg8ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, vbool64_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, vfloat64m1_t op15, vfloat64m1_t op16, const double * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f64m1)))
-void vloxseg2ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, const double * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f64m1_m)))
-void vloxseg2ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vbool64_t op2, vfloat64m1_t op3, vfloat64m1_t op4, const double * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f64m2)))
-void vloxseg2ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, const double * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f64m2_m)))
-void vloxseg2ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, vbool32_t op2, vfloat64m2_t op3, vfloat64m2_t op4, const double * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f64m4)))
-void vloxseg2ei64(vfloat64m4_t * op0, vfloat64m4_t * op1, const double * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f64m4_m)))
-void vloxseg2ei64(vfloat64m4_t * op0, vfloat64m4_t * op1, vbool16_t op2, vfloat64m4_t op3, vfloat64m4_t op4, const double * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f64m1)))
-void vloxseg3ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, const double * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f64m1_m)))
-void vloxseg3ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vbool64_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, const double * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f64m2)))
-void vloxseg3ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, const double * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f64m2_m)))
-void vloxseg3ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vbool32_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, const double * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f64m1)))
-void vloxseg4ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, const double * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f64m1_m)))
-void vloxseg4ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vbool64_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, const double * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f64m2)))
-void vloxseg4ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, const double * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f64m2_m)))
-void vloxseg4ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, vbool32_t op4, vfloat64m2_t op5, vfloat64m2_t op6, vfloat64m2_t op7, vfloat64m2_t op8, const double * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f64m1)))
-void vloxseg5ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, const double * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f64m1_m)))
-void vloxseg5ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vbool64_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, const double * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f64m1)))
-void vloxseg6ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, const double * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f64m1_m)))
-void vloxseg6ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vbool64_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, const double * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f64m1)))
-void vloxseg7ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, const double * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f64m1_m)))
-void vloxseg7ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vbool64_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, const double * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f64m1)))
-void vloxseg8ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, const double * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f64m1_m)))
-void vloxseg8ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, vbool64_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, vfloat64m1_t op15, vfloat64m1_t op16, const double * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_f64m1)))
-void vsseg2e64(double * op0, vfloat64m1_t op1, vfloat64m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_f64m1_m)))
-void vsseg2e64(vbool64_t op0, double * op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_f64m2)))
-void vsseg2e64(double * op0, vfloat64m2_t op1, vfloat64m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_f64m2_m)))
-void vsseg2e64(vbool32_t op0, double * op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_f64m4)))
-void vsseg2e64(double * op0, vfloat64m4_t op1, vfloat64m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e64_v_f64m4_m)))
-void vsseg2e64(vbool16_t op0, double * op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_f64m1)))
-void vsseg3e64(double * op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_f64m1_m)))
-void vsseg3e64(vbool64_t op0, double * op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_f64m2)))
-void vsseg3e64(double * op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e64_v_f64m2_m)))
-void vsseg3e64(vbool32_t op0, double * op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_f64m1)))
-void vsseg4e64(double * op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_f64m1_m)))
-void vsseg4e64(vbool64_t op0, double * op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_f64m2)))
-void vsseg4e64(double * op0, vfloat64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e64_v_f64m2_m)))
-void vsseg4e64(vbool32_t op0, double * op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e64_v_f64m1)))
-void vsseg5e64(double * op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e64_v_f64m1_m)))
-void vsseg5e64(vbool64_t op0, double * op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e64_v_f64m1)))
-void vsseg6e64(double * op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e64_v_f64m1_m)))
-void vsseg6e64(vbool64_t op0, double * op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e64_v_f64m1)))
-void vsseg7e64(double * op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e64_v_f64m1_m)))
-void vsseg7e64(vbool64_t op0, double * op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e64_v_f64m1)))
-void vsseg8e64(double * op0, vfloat64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e64_v_f64m1_m)))
-void vsseg8e64(vbool64_t op0, double * op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_f64m1)))
-void vssseg2e64(double * op0, ptrdiff_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_f64m1_m)))
-void vssseg2e64(vbool64_t op0, double * op1, ptrdiff_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_f64m2)))
-void vssseg2e64(double * op0, ptrdiff_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_f64m2_m)))
-void vssseg2e64(vbool32_t op0, double * op1, ptrdiff_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_f64m4)))
-void vssseg2e64(double * op0, ptrdiff_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e64_v_f64m4_m)))
-void vssseg2e64(vbool16_t op0, double * op1, ptrdiff_t op2, vfloat64m4_t op3, vfloat64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_f64m1)))
-void vssseg3e64(double * op0, ptrdiff_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_f64m1_m)))
-void vssseg3e64(vbool64_t op0, double * op1, ptrdiff_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_f64m2)))
-void vssseg3e64(double * op0, ptrdiff_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e64_v_f64m2_m)))
-void vssseg3e64(vbool32_t op0, double * op1, ptrdiff_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_f64m1)))
-void vssseg4e64(double * op0, ptrdiff_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_f64m1_m)))
-void vssseg4e64(vbool64_t op0, double * op1, ptrdiff_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_f64m2)))
-void vssseg4e64(double * op0, ptrdiff_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e64_v_f64m2_m)))
-void vssseg4e64(vbool32_t op0, double * op1, ptrdiff_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e64_v_f64m1)))
-void vssseg5e64(double * op0, ptrdiff_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e64_v_f64m1_m)))
-void vssseg5e64(vbool64_t op0, double * op1, ptrdiff_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e64_v_f64m1)))
-void vssseg6e64(double * op0, ptrdiff_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e64_v_f64m1_m)))
-void vssseg6e64(vbool64_t op0, double * op1, ptrdiff_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e64_v_f64m1)))
-void vssseg7e64(double * op0, ptrdiff_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e64_v_f64m1_m)))
-void vssseg7e64(vbool64_t op0, double * op1, ptrdiff_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e64_v_f64m1)))
-void vssseg8e64(double * op0, ptrdiff_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e64_v_f64m1_m)))
-void vssseg8e64(vbool64_t op0, double * op1, ptrdiff_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f64m1)))
-void vsuxseg2ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f64m1_m)))
-void vsuxseg2ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f64m2)))
-void vsuxseg2ei8(double * op0, vuint8mf4_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f64m2_m)))
-void vsuxseg2ei8(vbool32_t op0, double * op1, vuint8mf4_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f64m4)))
-void vsuxseg2ei8(double * op0, vuint8mf2_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f64m4_m)))
-void vsuxseg2ei8(vbool16_t op0, double * op1, vuint8mf2_t op2, vfloat64m4_t op3, vfloat64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f64m1)))
-void vsuxseg3ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f64m1_m)))
-void vsuxseg3ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f64m2)))
-void vsuxseg3ei8(double * op0, vuint8mf4_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f64m2_m)))
-void vsuxseg3ei8(vbool32_t op0, double * op1, vuint8mf4_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f64m1)))
-void vsuxseg4ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f64m1_m)))
-void vsuxseg4ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f64m2)))
-void vsuxseg4ei8(double * op0, vuint8mf4_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f64m2_m)))
-void vsuxseg4ei8(vbool32_t op0, double * op1, vuint8mf4_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f64m1)))
-void vsuxseg5ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f64m1_m)))
-void vsuxseg5ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f64m1)))
-void vsuxseg6ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f64m1_m)))
-void vsuxseg6ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f64m1)))
-void vsuxseg7ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f64m1_m)))
-void vsuxseg7ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f64m1)))
-void vsuxseg8ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f64m1_m)))
-void vsuxseg8ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f64m1)))
-void vsuxseg2ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f64m1_m)))
-void vsuxseg2ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f64m2)))
-void vsuxseg2ei16(double * op0, vuint16mf2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f64m2_m)))
-void vsuxseg2ei16(vbool32_t op0, double * op1, vuint16mf2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f64m4)))
-void vsuxseg2ei16(double * op0, vuint16m1_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f64m4_m)))
-void vsuxseg2ei16(vbool16_t op0, double * op1, vuint16m1_t op2, vfloat64m4_t op3, vfloat64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f64m1)))
-void vsuxseg3ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f64m1_m)))
-void vsuxseg3ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f64m2)))
-void vsuxseg3ei16(double * op0, vuint16mf2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f64m2_m)))
-void vsuxseg3ei16(vbool32_t op0, double * op1, vuint16mf2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f64m1)))
-void vsuxseg4ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f64m1_m)))
-void vsuxseg4ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f64m2)))
-void vsuxseg4ei16(double * op0, vuint16mf2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f64m2_m)))
-void vsuxseg4ei16(vbool32_t op0, double * op1, vuint16mf2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f64m1)))
-void vsuxseg5ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f64m1_m)))
-void vsuxseg5ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f64m1)))
-void vsuxseg6ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f64m1_m)))
-void vsuxseg6ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f64m1)))
-void vsuxseg7ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f64m1_m)))
-void vsuxseg7ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f64m1)))
-void vsuxseg8ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f64m1_m)))
-void vsuxseg8ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f64m1)))
-void vsuxseg2ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f64m1_m)))
-void vsuxseg2ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f64m2)))
-void vsuxseg2ei32(double * op0, vuint32m1_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f64m2_m)))
-void vsuxseg2ei32(vbool32_t op0, double * op1, vuint32m1_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f64m4)))
-void vsuxseg2ei32(double * op0, vuint32m2_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f64m4_m)))
-void vsuxseg2ei32(vbool16_t op0, double * op1, vuint32m2_t op2, vfloat64m4_t op3, vfloat64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f64m1)))
-void vsuxseg3ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f64m1_m)))
-void vsuxseg3ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f64m2)))
-void vsuxseg3ei32(double * op0, vuint32m1_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f64m2_m)))
-void vsuxseg3ei32(vbool32_t op0, double * op1, vuint32m1_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f64m1)))
-void vsuxseg4ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f64m1_m)))
-void vsuxseg4ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f64m2)))
-void vsuxseg4ei32(double * op0, vuint32m1_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f64m2_m)))
-void vsuxseg4ei32(vbool32_t op0, double * op1, vuint32m1_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f64m1)))
-void vsuxseg5ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f64m1_m)))
-void vsuxseg5ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f64m1)))
-void vsuxseg6ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f64m1_m)))
-void vsuxseg6ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f64m1)))
-void vsuxseg7ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f64m1_m)))
-void vsuxseg7ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f64m1)))
-void vsuxseg8ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f64m1_m)))
-void vsuxseg8ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f64m1)))
-void vsuxseg2ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f64m1_m)))
-void vsuxseg2ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f64m2)))
-void vsuxseg2ei64(double * op0, vuint64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f64m2_m)))
-void vsuxseg2ei64(vbool32_t op0, double * op1, vuint64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f64m4)))
-void vsuxseg2ei64(double * op0, vuint64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f64m4_m)))
-void vsuxseg2ei64(vbool16_t op0, double * op1, vuint64m4_t op2, vfloat64m4_t op3, vfloat64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f64m1)))
-void vsuxseg3ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f64m1_m)))
-void vsuxseg3ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f64m2)))
-void vsuxseg3ei64(double * op0, vuint64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f64m2_m)))
-void vsuxseg3ei64(vbool32_t op0, double * op1, vuint64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f64m1)))
-void vsuxseg4ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f64m1_m)))
-void vsuxseg4ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f64m2)))
-void vsuxseg4ei64(double * op0, vuint64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f64m2_m)))
-void vsuxseg4ei64(vbool32_t op0, double * op1, vuint64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f64m1)))
-void vsuxseg5ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f64m1_m)))
-void vsuxseg5ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f64m1)))
-void vsuxseg6ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f64m1_m)))
-void vsuxseg6ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f64m1)))
-void vsuxseg7ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f64m1_m)))
-void vsuxseg7ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f64m1)))
-void vsuxseg8ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f64m1_m)))
-void vsuxseg8ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f64m1)))
-void vsoxseg2ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f64m1_m)))
-void vsoxseg2ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f64m2)))
-void vsoxseg2ei8(double * op0, vuint8mf4_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f64m2_m)))
-void vsoxseg2ei8(vbool32_t op0, double * op1, vuint8mf4_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f64m4)))
-void vsoxseg2ei8(double * op0, vuint8mf2_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f64m4_m)))
-void vsoxseg2ei8(vbool16_t op0, double * op1, vuint8mf2_t op2, vfloat64m4_t op3, vfloat64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f64m1)))
-void vsoxseg3ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f64m1_m)))
-void vsoxseg3ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f64m2)))
-void vsoxseg3ei8(double * op0, vuint8mf4_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f64m2_m)))
-void vsoxseg3ei8(vbool32_t op0, double * op1, vuint8mf4_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f64m1)))
-void vsoxseg4ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f64m1_m)))
-void vsoxseg4ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f64m2)))
-void vsoxseg4ei8(double * op0, vuint8mf4_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f64m2_m)))
-void vsoxseg4ei8(vbool32_t op0, double * op1, vuint8mf4_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f64m1)))
-void vsoxseg5ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f64m1_m)))
-void vsoxseg5ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f64m1)))
-void vsoxseg6ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f64m1_m)))
-void vsoxseg6ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f64m1)))
-void vsoxseg7ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f64m1_m)))
-void vsoxseg7ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f64m1)))
-void vsoxseg8ei8(double * op0, vuint8mf8_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f64m1_m)))
-void vsoxseg8ei8(vbool64_t op0, double * op1, vuint8mf8_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f64m1)))
-void vsoxseg2ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f64m1_m)))
-void vsoxseg2ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f64m2)))
-void vsoxseg2ei16(double * op0, vuint16mf2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f64m2_m)))
-void vsoxseg2ei16(vbool32_t op0, double * op1, vuint16mf2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f64m4)))
-void vsoxseg2ei16(double * op0, vuint16m1_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f64m4_m)))
-void vsoxseg2ei16(vbool16_t op0, double * op1, vuint16m1_t op2, vfloat64m4_t op3, vfloat64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f64m1)))
-void vsoxseg3ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f64m1_m)))
-void vsoxseg3ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f64m2)))
-void vsoxseg3ei16(double * op0, vuint16mf2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f64m2_m)))
-void vsoxseg3ei16(vbool32_t op0, double * op1, vuint16mf2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f64m1)))
-void vsoxseg4ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f64m1_m)))
-void vsoxseg4ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f64m2)))
-void vsoxseg4ei16(double * op0, vuint16mf2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f64m2_m)))
-void vsoxseg4ei16(vbool32_t op0, double * op1, vuint16mf2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f64m1)))
-void vsoxseg5ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f64m1_m)))
-void vsoxseg5ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f64m1)))
-void vsoxseg6ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f64m1_m)))
-void vsoxseg6ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f64m1)))
-void vsoxseg7ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f64m1_m)))
-void vsoxseg7ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f64m1)))
-void vsoxseg8ei16(double * op0, vuint16mf4_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f64m1_m)))
-void vsoxseg8ei16(vbool64_t op0, double * op1, vuint16mf4_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f64m1)))
-void vsoxseg2ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f64m1_m)))
-void vsoxseg2ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f64m2)))
-void vsoxseg2ei32(double * op0, vuint32m1_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f64m2_m)))
-void vsoxseg2ei32(vbool32_t op0, double * op1, vuint32m1_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f64m4)))
-void vsoxseg2ei32(double * op0, vuint32m2_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f64m4_m)))
-void vsoxseg2ei32(vbool16_t op0, double * op1, vuint32m2_t op2, vfloat64m4_t op3, vfloat64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f64m1)))
-void vsoxseg3ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f64m1_m)))
-void vsoxseg3ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f64m2)))
-void vsoxseg3ei32(double * op0, vuint32m1_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f64m2_m)))
-void vsoxseg3ei32(vbool32_t op0, double * op1, vuint32m1_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f64m1)))
-void vsoxseg4ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f64m1_m)))
-void vsoxseg4ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f64m2)))
-void vsoxseg4ei32(double * op0, vuint32m1_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f64m2_m)))
-void vsoxseg4ei32(vbool32_t op0, double * op1, vuint32m1_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f64m1)))
-void vsoxseg5ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f64m1_m)))
-void vsoxseg5ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f64m1)))
-void vsoxseg6ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f64m1_m)))
-void vsoxseg6ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f64m1)))
-void vsoxseg7ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f64m1_m)))
-void vsoxseg7ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f64m1)))
-void vsoxseg8ei32(double * op0, vuint32mf2_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f64m1_m)))
-void vsoxseg8ei32(vbool64_t op0, double * op1, vuint32mf2_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f64m1)))
-void vsoxseg2ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f64m1_m)))
-void vsoxseg2ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f64m2)))
-void vsoxseg2ei64(double * op0, vuint64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f64m2_m)))
-void vsoxseg2ei64(vbool32_t op0, double * op1, vuint64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f64m4)))
-void vsoxseg2ei64(double * op0, vuint64m4_t op1, vfloat64m4_t op2, vfloat64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f64m4_m)))
-void vsoxseg2ei64(vbool16_t op0, double * op1, vuint64m4_t op2, vfloat64m4_t op3, vfloat64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f64m1)))
-void vsoxseg3ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f64m1_m)))
-void vsoxseg3ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f64m2)))
-void vsoxseg3ei64(double * op0, vuint64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f64m2_m)))
-void vsoxseg3ei64(vbool32_t op0, double * op1, vuint64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f64m1)))
-void vsoxseg4ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f64m1_m)))
-void vsoxseg4ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f64m2)))
-void vsoxseg4ei64(double * op0, vuint64m2_t op1, vfloat64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f64m2_m)))
-void vsoxseg4ei64(vbool32_t op0, double * op1, vuint64m2_t op2, vfloat64m2_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f64m1)))
-void vsoxseg5ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f64m1_m)))
-void vsoxseg5ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f64m1)))
-void vsoxseg6ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f64m1_m)))
-void vsoxseg6ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f64m1)))
-void vsoxseg7ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f64m1_m)))
-void vsoxseg7ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f64m1)))
-void vsoxseg8ei64(double * op0, vuint64m1_t op1, vfloat64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f64m1_m)))
-void vsoxseg8ei64(vbool64_t op0, double * op1, vuint64m1_t op2, vfloat64m1_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64_v_f64m1_m)))
-void vlseg2e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vbool64_t op2, vfloat64m1_t op3, vfloat64m1_t op4, const double * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64_v_f64m2_m)))
-void vlseg2e64(vfloat64m2_t * op0, vfloat64m2_t * op1, vbool32_t op2, vfloat64m2_t op3, vfloat64m2_t op4, const double * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64_v_f64m4_m)))
-void vlseg2e64(vfloat64m4_t * op0, vfloat64m4_t * op1, vbool16_t op2, vfloat64m4_t op3, vfloat64m4_t op4, const double * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64_v_f64m1_m)))
-void vlseg3e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vbool64_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, const double * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64_v_f64m2_m)))
-void vlseg3e64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vbool32_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, const double * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64_v_f64m1_m)))
-void vlseg4e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vbool64_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, const double * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64_v_f64m2_m)))
-void vlseg4e64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, vbool32_t op4, vfloat64m2_t op5, vfloat64m2_t op6, vfloat64m2_t op7, vfloat64m2_t op8, const double * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e64_v_f64m1_m)))
-void vlseg5e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vbool64_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, const double * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e64_v_f64m1_m)))
-void vlseg6e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vbool64_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, const double * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e64_v_f64m1_m)))
-void vlseg7e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vbool64_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, const double * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e64_v_f64m1_m)))
-void vlseg8e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, vbool64_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, vfloat64m1_t op15, vfloat64m1_t op16, const double * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64ff_v_f64m1_m)))
-void vlseg2e64ff(vfloat64m1_t * op0, vfloat64m1_t * op1, vbool64_t op2, vfloat64m1_t op3, vfloat64m1_t op4, const double * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64ff_v_f64m2_m)))
-void vlseg2e64ff(vfloat64m2_t * op0, vfloat64m2_t * op1, vbool32_t op2, vfloat64m2_t op3, vfloat64m2_t op4, const double * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e64ff_v_f64m4_m)))
-void vlseg2e64ff(vfloat64m4_t * op0, vfloat64m4_t * op1, vbool16_t op2, vfloat64m4_t op3, vfloat64m4_t op4, const double * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64ff_v_f64m1_m)))
-void vlseg3e64ff(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vbool64_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, const double * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e64ff_v_f64m2_m)))
-void vlseg3e64ff(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vbool32_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, const double * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64ff_v_f64m1_m)))
-void vlseg4e64ff(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vbool64_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, const double * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e64ff_v_f64m2_m)))
-void vlseg4e64ff(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, vbool32_t op4, vfloat64m2_t op5, vfloat64m2_t op6, vfloat64m2_t op7, vfloat64m2_t op8, const double * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e64ff_v_f64m1_m)))
-void vlseg5e64ff(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vbool64_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, const double * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e64ff_v_f64m1_m)))
-void vlseg6e64ff(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vbool64_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, const double * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e64ff_v_f64m1_m)))
-void vlseg7e64ff(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vbool64_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, const double * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e64ff_v_f64m1_m)))
-void vlseg8e64ff(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, vbool64_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, vfloat64m1_t op15, vfloat64m1_t op16, const double * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e64_v_f64m1_m)))
-void vlsseg2e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vbool64_t op2, vfloat64m1_t op3, vfloat64m1_t op4, const double * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e64_v_f64m2_m)))
-void vlsseg2e64(vfloat64m2_t * op0, vfloat64m2_t * op1, vbool32_t op2, vfloat64m2_t op3, vfloat64m2_t op4, const double * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e64_v_f64m4_m)))
-void vlsseg2e64(vfloat64m4_t * op0, vfloat64m4_t * op1, vbool16_t op2, vfloat64m4_t op3, vfloat64m4_t op4, const double * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e64_v_f64m1_m)))
-void vlsseg3e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vbool64_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, const double * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e64_v_f64m2_m)))
-void vlsseg3e64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vbool32_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, const double * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e64_v_f64m1_m)))
-void vlsseg4e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vbool64_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, const double * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e64_v_f64m2_m)))
-void vlsseg4e64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, vbool32_t op4, vfloat64m2_t op5, vfloat64m2_t op6, vfloat64m2_t op7, vfloat64m2_t op8, const double * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e64_v_f64m1_m)))
-void vlsseg5e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vbool64_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, const double * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e64_v_f64m1_m)))
-void vlsseg6e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vbool64_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, const double * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e64_v_f64m1_m)))
-void vlsseg7e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vbool64_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, const double * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e64_v_f64m1_m)))
-void vlsseg8e64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, vbool64_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, vfloat64m1_t op15, vfloat64m1_t op16, const double * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f64m1)))
-void vluxseg2ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, const double * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f64m1_m)))
-void vluxseg2ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vbool64_t op2, vfloat64m1_t op3, vfloat64m1_t op4, const double * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f64m2)))
-void vluxseg2ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, const double * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f64m2_m)))
-void vluxseg2ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, vbool32_t op2, vfloat64m2_t op3, vfloat64m2_t op4, const double * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f64m4)))
-void vluxseg2ei8(vfloat64m4_t * op0, vfloat64m4_t * op1, const double * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f64m4_m)))
-void vluxseg2ei8(vfloat64m4_t * op0, vfloat64m4_t * op1, vbool16_t op2, vfloat64m4_t op3, vfloat64m4_t op4, const double * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f64m1)))
-void vluxseg3ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, const double * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f64m1_m)))
-void vluxseg3ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vbool64_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, const double * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f64m2)))
-void vluxseg3ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, const double * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f64m2_m)))
-void vluxseg3ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vbool32_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, const double * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f64m1)))
-void vluxseg4ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, const double * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f64m1_m)))
-void vluxseg4ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vbool64_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, const double * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f64m2)))
-void vluxseg4ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, const double * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f64m2_m)))
-void vluxseg4ei8(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, vbool32_t op4, vfloat64m2_t op5, vfloat64m2_t op6, vfloat64m2_t op7, vfloat64m2_t op8, const double * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f64m1)))
-void vluxseg5ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, const double * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f64m1_m)))
-void vluxseg5ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vbool64_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, const double * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f64m1)))
-void vluxseg6ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, const double * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f64m1_m)))
-void vluxseg6ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vbool64_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, const double * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f64m1)))
-void vluxseg7ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, const double * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f64m1_m)))
-void vluxseg7ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vbool64_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, const double * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f64m1)))
-void vluxseg8ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, const double * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f64m1_m)))
-void vluxseg8ei8(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, vbool64_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, vfloat64m1_t op15, vfloat64m1_t op16, const double * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f64m1)))
-void vluxseg2ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, const double * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f64m1_m)))
-void vluxseg2ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vbool64_t op2, vfloat64m1_t op3, vfloat64m1_t op4, const double * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f64m2)))
-void vluxseg2ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, const double * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f64m2_m)))
-void vluxseg2ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, vbool32_t op2, vfloat64m2_t op3, vfloat64m2_t op4, const double * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f64m4)))
-void vluxseg2ei16(vfloat64m4_t * op0, vfloat64m4_t * op1, const double * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f64m4_m)))
-void vluxseg2ei16(vfloat64m4_t * op0, vfloat64m4_t * op1, vbool16_t op2, vfloat64m4_t op3, vfloat64m4_t op4, const double * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f64m1)))
-void vluxseg3ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, const double * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f64m1_m)))
-void vluxseg3ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vbool64_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, const double * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f64m2)))
-void vluxseg3ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, const double * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f64m2_m)))
-void vluxseg3ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vbool32_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, const double * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f64m1)))
-void vluxseg4ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, const double * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f64m1_m)))
-void vluxseg4ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vbool64_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, const double * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f64m2)))
-void vluxseg4ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, const double * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f64m2_m)))
-void vluxseg4ei16(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, vbool32_t op4, vfloat64m2_t op5, vfloat64m2_t op6, vfloat64m2_t op7, vfloat64m2_t op8, const double * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f64m1)))
-void vluxseg5ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, const double * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f64m1_m)))
-void vluxseg5ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vbool64_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, const double * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f64m1)))
-void vluxseg6ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, const double * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f64m1_m)))
-void vluxseg6ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vbool64_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, const double * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f64m1)))
-void vluxseg7ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, const double * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f64m1_m)))
-void vluxseg7ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vbool64_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, const double * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f64m1)))
-void vluxseg8ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, const double * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f64m1_m)))
-void vluxseg8ei16(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, vbool64_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, vfloat64m1_t op15, vfloat64m1_t op16, const double * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f64m1)))
-void vluxseg2ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, const double * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f64m1_m)))
-void vluxseg2ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vbool64_t op2, vfloat64m1_t op3, vfloat64m1_t op4, const double * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f64m2)))
-void vluxseg2ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, const double * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f64m2_m)))
-void vluxseg2ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, vbool32_t op2, vfloat64m2_t op3, vfloat64m2_t op4, const double * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f64m4)))
-void vluxseg2ei32(vfloat64m4_t * op0, vfloat64m4_t * op1, const double * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f64m4_m)))
-void vluxseg2ei32(vfloat64m4_t * op0, vfloat64m4_t * op1, vbool16_t op2, vfloat64m4_t op3, vfloat64m4_t op4, const double * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f64m1)))
-void vluxseg3ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, const double * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f64m1_m)))
-void vluxseg3ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vbool64_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, const double * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f64m2)))
-void vluxseg3ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, const double * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f64m2_m)))
-void vluxseg3ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vbool32_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, const double * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f64m1)))
-void vluxseg4ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, const double * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f64m1_m)))
-void vluxseg4ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vbool64_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, const double * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f64m2)))
-void vluxseg4ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, const double * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f64m2_m)))
-void vluxseg4ei32(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, vbool32_t op4, vfloat64m2_t op5, vfloat64m2_t op6, vfloat64m2_t op7, vfloat64m2_t op8, const double * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f64m1)))
-void vluxseg5ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, const double * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f64m1_m)))
-void vluxseg5ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vbool64_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, const double * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f64m1)))
-void vluxseg6ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, const double * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f64m1_m)))
-void vluxseg6ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vbool64_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, const double * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f64m1)))
-void vluxseg7ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, const double * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f64m1_m)))
-void vluxseg7ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vbool64_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, const double * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f64m1)))
-void vluxseg8ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, const double * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f64m1_m)))
-void vluxseg8ei32(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, vbool64_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, vfloat64m1_t op15, vfloat64m1_t op16, const double * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f64m1)))
-void vluxseg2ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, const double * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f64m1_m)))
-void vluxseg2ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vbool64_t op2, vfloat64m1_t op3, vfloat64m1_t op4, const double * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f64m2)))
-void vluxseg2ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, const double * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f64m2_m)))
-void vluxseg2ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, vbool32_t op2, vfloat64m2_t op3, vfloat64m2_t op4, const double * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f64m4)))
-void vluxseg2ei64(vfloat64m4_t * op0, vfloat64m4_t * op1, const double * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f64m4_m)))
-void vluxseg2ei64(vfloat64m4_t * op0, vfloat64m4_t * op1, vbool16_t op2, vfloat64m4_t op3, vfloat64m4_t op4, const double * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f64m1)))
-void vluxseg3ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, const double * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f64m1_m)))
-void vluxseg3ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vbool64_t op3, vfloat64m1_t op4, vfloat64m1_t op5, vfloat64m1_t op6, const double * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f64m2)))
-void vluxseg3ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, const double * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f64m2_m)))
-void vluxseg3ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vbool32_t op3, vfloat64m2_t op4, vfloat64m2_t op5, vfloat64m2_t op6, const double * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f64m1)))
-void vluxseg4ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, const double * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f64m1_m)))
-void vluxseg4ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vbool64_t op4, vfloat64m1_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, const double * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f64m2)))
-void vluxseg4ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, const double * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f64m2_m)))
-void vluxseg4ei64(vfloat64m2_t * op0, vfloat64m2_t * op1, vfloat64m2_t * op2, vfloat64m2_t * op3, vbool32_t op4, vfloat64m2_t op5, vfloat64m2_t op6, vfloat64m2_t op7, vfloat64m2_t op8, const double * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f64m1)))
-void vluxseg5ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, const double * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f64m1_m)))
-void vluxseg5ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vbool64_t op5, vfloat64m1_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, const double * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f64m1)))
-void vluxseg6ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, const double * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f64m1_m)))
-void vluxseg6ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vbool64_t op6, vfloat64m1_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, const double * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f64m1)))
-void vluxseg7ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, const double * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f64m1_m)))
-void vluxseg7ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vbool64_t op7, vfloat64m1_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, const double * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f64m1)))
-void vluxseg8ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, const double * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f64m1_m)))
-void vluxseg8ei64(vfloat64m1_t * op0, vfloat64m1_t * op1, vfloat64m1_t * op2, vfloat64m1_t * op3, vfloat64m1_t * op4, vfloat64m1_t * op5, vfloat64m1_t * op6, vfloat64m1_t * op7, vbool64_t op8, vfloat64m1_t op9, vfloat64m1_t op10, vfloat64m1_t op11, vfloat64m1_t op12, vfloat64m1_t op13, vfloat64m1_t op14, vfloat64m1_t op15, vfloat64m1_t op16, const double * op17, vuint64m1_t op18, size_t op19);
-
-#endif
-
-#if defined(__riscv_zfh) && defined(__riscv_zvlsseg)
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f16m1)))
-void vloxseg2ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, const _Float16 * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f16m1_m)))
-void vloxseg2ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vbool16_t op2, vfloat16m1_t op3, vfloat16m1_t op4, const _Float16 * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f16m2)))
-void vloxseg2ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, const _Float16 * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f16m2_m)))
-void vloxseg2ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, vbool8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, const _Float16 * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f16m4)))
-void vloxseg2ei8(vfloat16m4_t * op0, vfloat16m4_t * op1, const _Float16 * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f16m4_m)))
-void vloxseg2ei8(vfloat16m4_t * op0, vfloat16m4_t * op1, vbool4_t op2, vfloat16m4_t op3, vfloat16m4_t op4, const _Float16 * op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f16mf2)))
-void vloxseg2ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, const _Float16 * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f16mf2_m)))
-void vloxseg2ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vbool32_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, const _Float16 * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f16mf4)))
-void vloxseg2ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, const _Float16 * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei8_v_f16mf4_m)))
-void vloxseg2ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vbool64_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, const _Float16 * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f16m1)))
-void vloxseg3ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, const _Float16 * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f16m1_m)))
-void vloxseg3ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vbool16_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, const _Float16 * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f16m2)))
-void vloxseg3ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, const _Float16 * op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f16m2_m)))
-void vloxseg3ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vbool8_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, const _Float16 * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f16mf2)))
-void vloxseg3ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, const _Float16 * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f16mf2_m)))
-void vloxseg3ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vbool32_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, const _Float16 * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f16mf4)))
-void vloxseg3ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, const _Float16 * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei8_v_f16mf4_m)))
-void vloxseg3ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vbool64_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, const _Float16 * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f16m1)))
-void vloxseg4ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, const _Float16 * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f16m1_m)))
-void vloxseg4ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vbool16_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, const _Float16 * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f16m2)))
-void vloxseg4ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, const _Float16 * op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f16m2_m)))
-void vloxseg4ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, vbool8_t op4, vfloat16m2_t op5, vfloat16m2_t op6, vfloat16m2_t op7, vfloat16m2_t op8, const _Float16 * op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f16mf2)))
-void vloxseg4ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, const _Float16 * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f16mf2_m)))
-void vloxseg4ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vbool32_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, const _Float16 * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f16mf4)))
-void vloxseg4ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, const _Float16 * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei8_v_f16mf4_m)))
-void vloxseg4ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vbool64_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, const _Float16 * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f16m1)))
-void vloxseg5ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, const _Float16 * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f16m1_m)))
-void vloxseg5ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vbool16_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, const _Float16 * op11, vuint8mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f16mf2)))
-void vloxseg5ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, const _Float16 * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f16mf2_m)))
-void vloxseg5ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vbool32_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, const _Float16 * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f16mf4)))
-void vloxseg5ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, const _Float16 * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei8_v_f16mf4_m)))
-void vloxseg5ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vbool64_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, const _Float16 * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f16m1)))
-void vloxseg6ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, const _Float16 * op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f16m1_m)))
-void vloxseg6ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vbool16_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, const _Float16 * op13, vuint8mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f16mf2)))
-void vloxseg6ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, const _Float16 * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f16mf2_m)))
-void vloxseg6ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vbool32_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, const _Float16 * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f16mf4)))
-void vloxseg6ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, const _Float16 * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei8_v_f16mf4_m)))
-void vloxseg6ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vbool64_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, const _Float16 * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f16m1)))
-void vloxseg7ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, const _Float16 * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f16m1_m)))
-void vloxseg7ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vbool16_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, const _Float16 * op15, vuint8mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f16mf2)))
-void vloxseg7ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, const _Float16 * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f16mf2_m)))
-void vloxseg7ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vbool32_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, const _Float16 * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f16mf4)))
-void vloxseg7ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, const _Float16 * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei8_v_f16mf4_m)))
-void vloxseg7ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vbool64_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, const _Float16 * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f16m1)))
-void vloxseg8ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, const _Float16 * op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f16m1_m)))
-void vloxseg8ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, vbool16_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, vfloat16m1_t op15, vfloat16m1_t op16, const _Float16 * op17, vuint8mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f16mf2)))
-void vloxseg8ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, const _Float16 * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f16mf2_m)))
-void vloxseg8ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, vbool32_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, vfloat16mf2_t op15, vfloat16mf2_t op16, const _Float16 * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f16mf4)))
-void vloxseg8ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, const _Float16 * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei8_v_f16mf4_m)))
-void vloxseg8ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, vbool64_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, vfloat16mf4_t op15, vfloat16mf4_t op16, const _Float16 * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f16m1)))
-void vloxseg2ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, const _Float16 * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f16m1_m)))
-void vloxseg2ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vbool16_t op2, vfloat16m1_t op3, vfloat16m1_t op4, const _Float16 * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f16m2)))
-void vloxseg2ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, const _Float16 * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f16m2_m)))
-void vloxseg2ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, vbool8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, const _Float16 * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f16m4)))
-void vloxseg2ei16(vfloat16m4_t * op0, vfloat16m4_t * op1, const _Float16 * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f16m4_m)))
-void vloxseg2ei16(vfloat16m4_t * op0, vfloat16m4_t * op1, vbool4_t op2, vfloat16m4_t op3, vfloat16m4_t op4, const _Float16 * op5, vuint16m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f16mf2)))
-void vloxseg2ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, const _Float16 * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f16mf2_m)))
-void vloxseg2ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vbool32_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, const _Float16 * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f16mf4)))
-void vloxseg2ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, const _Float16 * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei16_v_f16mf4_m)))
-void vloxseg2ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vbool64_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, const _Float16 * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f16m1)))
-void vloxseg3ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, const _Float16 * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f16m1_m)))
-void vloxseg3ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vbool16_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, const _Float16 * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f16m2)))
-void vloxseg3ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, const _Float16 * op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f16m2_m)))
-void vloxseg3ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vbool8_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, const _Float16 * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f16mf2)))
-void vloxseg3ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, const _Float16 * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f16mf2_m)))
-void vloxseg3ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vbool32_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, const _Float16 * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f16mf4)))
-void vloxseg3ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, const _Float16 * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei16_v_f16mf4_m)))
-void vloxseg3ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vbool64_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, const _Float16 * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f16m1)))
-void vloxseg4ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, const _Float16 * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f16m1_m)))
-void vloxseg4ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vbool16_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, const _Float16 * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f16m2)))
-void vloxseg4ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, const _Float16 * op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f16m2_m)))
-void vloxseg4ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, vbool8_t op4, vfloat16m2_t op5, vfloat16m2_t op6, vfloat16m2_t op7, vfloat16m2_t op8, const _Float16 * op9, vuint16m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f16mf2)))
-void vloxseg4ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, const _Float16 * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f16mf2_m)))
-void vloxseg4ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vbool32_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, const _Float16 * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f16mf4)))
-void vloxseg4ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, const _Float16 * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei16_v_f16mf4_m)))
-void vloxseg4ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vbool64_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, const _Float16 * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f16m1)))
-void vloxseg5ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, const _Float16 * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f16m1_m)))
-void vloxseg5ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vbool16_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, const _Float16 * op11, vuint16m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f16mf2)))
-void vloxseg5ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, const _Float16 * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f16mf2_m)))
-void vloxseg5ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vbool32_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, const _Float16 * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f16mf4)))
-void vloxseg5ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, const _Float16 * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei16_v_f16mf4_m)))
-void vloxseg5ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vbool64_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, const _Float16 * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f16m1)))
-void vloxseg6ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, const _Float16 * op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f16m1_m)))
-void vloxseg6ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vbool16_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, const _Float16 * op13, vuint16m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f16mf2)))
-void vloxseg6ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, const _Float16 * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f16mf2_m)))
-void vloxseg6ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vbool32_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, const _Float16 * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f16mf4)))
-void vloxseg6ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, const _Float16 * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei16_v_f16mf4_m)))
-void vloxseg6ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vbool64_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, const _Float16 * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f16m1)))
-void vloxseg7ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, const _Float16 * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f16m1_m)))
-void vloxseg7ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vbool16_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, const _Float16 * op15, vuint16m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f16mf2)))
-void vloxseg7ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, const _Float16 * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f16mf2_m)))
-void vloxseg7ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vbool32_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, const _Float16 * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f16mf4)))
-void vloxseg7ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, const _Float16 * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei16_v_f16mf4_m)))
-void vloxseg7ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vbool64_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, const _Float16 * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f16m1)))
-void vloxseg8ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, const _Float16 * op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f16m1_m)))
-void vloxseg8ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, vbool16_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, vfloat16m1_t op15, vfloat16m1_t op16, const _Float16 * op17, vuint16m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f16mf2)))
-void vloxseg8ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, const _Float16 * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f16mf2_m)))
-void vloxseg8ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, vbool32_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, vfloat16mf2_t op15, vfloat16mf2_t op16, const _Float16 * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f16mf4)))
-void vloxseg8ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, const _Float16 * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei16_v_f16mf4_m)))
-void vloxseg8ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, vbool64_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, vfloat16mf4_t op15, vfloat16mf4_t op16, const _Float16 * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f16m1)))
-void vloxseg2ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, const _Float16 * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f16m1_m)))
-void vloxseg2ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vbool16_t op2, vfloat16m1_t op3, vfloat16m1_t op4, const _Float16 * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f16m2)))
-void vloxseg2ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, const _Float16 * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f16m2_m)))
-void vloxseg2ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, vbool8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, const _Float16 * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f16m4)))
-void vloxseg2ei32(vfloat16m4_t * op0, vfloat16m4_t * op1, const _Float16 * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f16m4_m)))
-void vloxseg2ei32(vfloat16m4_t * op0, vfloat16m4_t * op1, vbool4_t op2, vfloat16m4_t op3, vfloat16m4_t op4, const _Float16 * op5, vuint32m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f16mf2)))
-void vloxseg2ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, const _Float16 * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f16mf2_m)))
-void vloxseg2ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vbool32_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, const _Float16 * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f16mf4)))
-void vloxseg2ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, const _Float16 * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei32_v_f16mf4_m)))
-void vloxseg2ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vbool64_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, const _Float16 * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f16m1)))
-void vloxseg3ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, const _Float16 * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f16m1_m)))
-void vloxseg3ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vbool16_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, const _Float16 * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f16m2)))
-void vloxseg3ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, const _Float16 * op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f16m2_m)))
-void vloxseg3ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vbool8_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, const _Float16 * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f16mf2)))
-void vloxseg3ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, const _Float16 * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f16mf2_m)))
-void vloxseg3ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vbool32_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, const _Float16 * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f16mf4)))
-void vloxseg3ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, const _Float16 * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei32_v_f16mf4_m)))
-void vloxseg3ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vbool64_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, const _Float16 * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f16m1)))
-void vloxseg4ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, const _Float16 * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f16m1_m)))
-void vloxseg4ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vbool16_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, const _Float16 * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f16m2)))
-void vloxseg4ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, const _Float16 * op4, vuint32m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f16m2_m)))
-void vloxseg4ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, vbool8_t op4, vfloat16m2_t op5, vfloat16m2_t op6, vfloat16m2_t op7, vfloat16m2_t op8, const _Float16 * op9, vuint32m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f16mf2)))
-void vloxseg4ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, const _Float16 * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f16mf2_m)))
-void vloxseg4ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vbool32_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, const _Float16 * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f16mf4)))
-void vloxseg4ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, const _Float16 * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei32_v_f16mf4_m)))
-void vloxseg4ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vbool64_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, const _Float16 * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f16m1)))
-void vloxseg5ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, const _Float16 * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f16m1_m)))
-void vloxseg5ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vbool16_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, const _Float16 * op11, vuint32m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f16mf2)))
-void vloxseg5ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, const _Float16 * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f16mf2_m)))
-void vloxseg5ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vbool32_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, const _Float16 * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f16mf4)))
-void vloxseg5ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, const _Float16 * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei32_v_f16mf4_m)))
-void vloxseg5ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vbool64_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, const _Float16 * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f16m1)))
-void vloxseg6ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, const _Float16 * op6, vuint32m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f16m1_m)))
-void vloxseg6ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vbool16_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, const _Float16 * op13, vuint32m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f16mf2)))
-void vloxseg6ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, const _Float16 * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f16mf2_m)))
-void vloxseg6ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vbool32_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, const _Float16 * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f16mf4)))
-void vloxseg6ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, const _Float16 * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei32_v_f16mf4_m)))
-void vloxseg6ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vbool64_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, const _Float16 * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f16m1)))
-void vloxseg7ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, const _Float16 * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f16m1_m)))
-void vloxseg7ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vbool16_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, const _Float16 * op15, vuint32m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f16mf2)))
-void vloxseg7ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, const _Float16 * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f16mf2_m)))
-void vloxseg7ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vbool32_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, const _Float16 * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f16mf4)))
-void vloxseg7ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, const _Float16 * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei32_v_f16mf4_m)))
-void vloxseg7ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vbool64_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, const _Float16 * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f16m1)))
-void vloxseg8ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, const _Float16 * op8, vuint32m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f16m1_m)))
-void vloxseg8ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, vbool16_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, vfloat16m1_t op15, vfloat16m1_t op16, const _Float16 * op17, vuint32m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f16mf2)))
-void vloxseg8ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, const _Float16 * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f16mf2_m)))
-void vloxseg8ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, vbool32_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, vfloat16mf2_t op15, vfloat16mf2_t op16, const _Float16 * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f16mf4)))
-void vloxseg8ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, const _Float16 * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei32_v_f16mf4_m)))
-void vloxseg8ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, vbool64_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, vfloat16mf4_t op15, vfloat16mf4_t op16, const _Float16 * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f16m1)))
-void vloxseg2ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, const _Float16 * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f16m1_m)))
-void vloxseg2ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vbool16_t op2, vfloat16m1_t op3, vfloat16m1_t op4, const _Float16 * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f16m2)))
-void vloxseg2ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, const _Float16 * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f16m2_m)))
-void vloxseg2ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, vbool8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, const _Float16 * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f16mf2)))
-void vloxseg2ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, const _Float16 * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f16mf2_m)))
-void vloxseg2ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vbool32_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, const _Float16 * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f16mf4)))
-void vloxseg2ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, const _Float16 * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg2ei64_v_f16mf4_m)))
-void vloxseg2ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vbool64_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, const _Float16 * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f16m1)))
-void vloxseg3ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, const _Float16 * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f16m1_m)))
-void vloxseg3ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vbool16_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, const _Float16 * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f16m2)))
-void vloxseg3ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, const _Float16 * op3, vuint64m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f16m2_m)))
-void vloxseg3ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vbool8_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, const _Float16 * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f16mf2)))
-void vloxseg3ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, const _Float16 * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f16mf2_m)))
-void vloxseg3ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vbool32_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, const _Float16 * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f16mf4)))
-void vloxseg3ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, const _Float16 * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg3ei64_v_f16mf4_m)))
-void vloxseg3ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vbool64_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, const _Float16 * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f16m1)))
-void vloxseg4ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, const _Float16 * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f16m1_m)))
-void vloxseg4ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vbool16_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, const _Float16 * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f16m2)))
-void vloxseg4ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, const _Float16 * op4, vuint64m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f16m2_m)))
-void vloxseg4ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, vbool8_t op4, vfloat16m2_t op5, vfloat16m2_t op6, vfloat16m2_t op7, vfloat16m2_t op8, const _Float16 * op9, vuint64m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f16mf2)))
-void vloxseg4ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, const _Float16 * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f16mf2_m)))
-void vloxseg4ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vbool32_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, const _Float16 * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f16mf4)))
-void vloxseg4ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, const _Float16 * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg4ei64_v_f16mf4_m)))
-void vloxseg4ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vbool64_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, const _Float16 * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f16m1)))
-void vloxseg5ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, const _Float16 * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f16m1_m)))
-void vloxseg5ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vbool16_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, const _Float16 * op11, vuint64m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f16mf2)))
-void vloxseg5ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, const _Float16 * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f16mf2_m)))
-void vloxseg5ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vbool32_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, const _Float16 * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f16mf4)))
-void vloxseg5ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, const _Float16 * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg5ei64_v_f16mf4_m)))
-void vloxseg5ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vbool64_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, const _Float16 * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f16m1)))
-void vloxseg6ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, const _Float16 * op6, vuint64m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f16m1_m)))
-void vloxseg6ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vbool16_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, const _Float16 * op13, vuint64m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f16mf2)))
-void vloxseg6ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, const _Float16 * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f16mf2_m)))
-void vloxseg6ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vbool32_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, const _Float16 * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f16mf4)))
-void vloxseg6ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, const _Float16 * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg6ei64_v_f16mf4_m)))
-void vloxseg6ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vbool64_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, const _Float16 * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f16m1)))
-void vloxseg7ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, const _Float16 * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f16m1_m)))
-void vloxseg7ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vbool16_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, const _Float16 * op15, vuint64m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f16mf2)))
-void vloxseg7ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, const _Float16 * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f16mf2_m)))
-void vloxseg7ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vbool32_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, const _Float16 * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f16mf4)))
-void vloxseg7ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, const _Float16 * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg7ei64_v_f16mf4_m)))
-void vloxseg7ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vbool64_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, const _Float16 * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f16m1)))
-void vloxseg8ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, const _Float16 * op8, vuint64m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f16m1_m)))
-void vloxseg8ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, vbool16_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, vfloat16m1_t op15, vfloat16m1_t op16, const _Float16 * op17, vuint64m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f16mf2)))
-void vloxseg8ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, const _Float16 * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f16mf2_m)))
-void vloxseg8ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, vbool32_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, vfloat16mf2_t op15, vfloat16mf2_t op16, const _Float16 * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f16mf4)))
-void vloxseg8ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, const _Float16 * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vloxseg8ei64_v_f16mf4_m)))
-void vloxseg8ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, vbool64_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, vfloat16mf4_t op15, vfloat16mf4_t op16, const _Float16 * op17, vuint64m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_f16m1)))
-void vsseg2e16(_Float16 * op0, vfloat16m1_t op1, vfloat16m1_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_f16m1_m)))
-void vsseg2e16(vbool16_t op0, _Float16 * op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_f16m2)))
-void vsseg2e16(_Float16 * op0, vfloat16m2_t op1, vfloat16m2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_f16m2_m)))
-void vsseg2e16(vbool8_t op0, _Float16 * op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_f16m4)))
-void vsseg2e16(_Float16 * op0, vfloat16m4_t op1, vfloat16m4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_f16m4_m)))
-void vsseg2e16(vbool4_t op0, _Float16 * op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_f16mf2)))
-void vsseg2e16(_Float16 * op0, vfloat16mf2_t op1, vfloat16mf2_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_f16mf2_m)))
-void vsseg2e16(vbool32_t op0, _Float16 * op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_f16mf4)))
-void vsseg2e16(_Float16 * op0, vfloat16mf4_t op1, vfloat16mf4_t op2, size_t op3);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg2e16_v_f16mf4_m)))
-void vsseg2e16(vbool64_t op0, _Float16 * op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_f16m1)))
-void vsseg3e16(_Float16 * op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_f16m1_m)))
-void vsseg3e16(vbool16_t op0, _Float16 * op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_f16m2)))
-void vsseg3e16(_Float16 * op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_f16m2_m)))
-void vsseg3e16(vbool8_t op0, _Float16 * op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_f16mf2)))
-void vsseg3e16(_Float16 * op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_f16mf2_m)))
-void vsseg3e16(vbool32_t op0, _Float16 * op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_f16mf4)))
-void vsseg3e16(_Float16 * op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg3e16_v_f16mf4_m)))
-void vsseg3e16(vbool64_t op0, _Float16 * op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_f16m1)))
-void vsseg4e16(_Float16 * op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_f16m1_m)))
-void vsseg4e16(vbool16_t op0, _Float16 * op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_f16m2)))
-void vsseg4e16(_Float16 * op0, vfloat16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_f16m2_m)))
-void vsseg4e16(vbool8_t op0, _Float16 * op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_f16mf2)))
-void vsseg4e16(_Float16 * op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_f16mf2_m)))
-void vsseg4e16(vbool32_t op0, _Float16 * op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_f16mf4)))
-void vsseg4e16(_Float16 * op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg4e16_v_f16mf4_m)))
-void vsseg4e16(vbool64_t op0, _Float16 * op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_f16m1)))
-void vsseg5e16(_Float16 * op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_f16m1_m)))
-void vsseg5e16(vbool16_t op0, _Float16 * op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_f16mf2)))
-void vsseg5e16(_Float16 * op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_f16mf2_m)))
-void vsseg5e16(vbool32_t op0, _Float16 * op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_f16mf4)))
-void vsseg5e16(_Float16 * op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg5e16_v_f16mf4_m)))
-void vsseg5e16(vbool64_t op0, _Float16 * op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_f16m1)))
-void vsseg6e16(_Float16 * op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_f16m1_m)))
-void vsseg6e16(vbool16_t op0, _Float16 * op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_f16mf2)))
-void vsseg6e16(_Float16 * op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_f16mf2_m)))
-void vsseg6e16(vbool32_t op0, _Float16 * op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_f16mf4)))
-void vsseg6e16(_Float16 * op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg6e16_v_f16mf4_m)))
-void vsseg6e16(vbool64_t op0, _Float16 * op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_f16m1)))
-void vsseg7e16(_Float16 * op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_f16m1_m)))
-void vsseg7e16(vbool16_t op0, _Float16 * op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_f16mf2)))
-void vsseg7e16(_Float16 * op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_f16mf2_m)))
-void vsseg7e16(vbool32_t op0, _Float16 * op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_f16mf4)))
-void vsseg7e16(_Float16 * op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg7e16_v_f16mf4_m)))
-void vsseg7e16(vbool64_t op0, _Float16 * op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_f16m1)))
-void vsseg8e16(_Float16 * op0, vfloat16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_f16m1_m)))
-void vsseg8e16(vbool16_t op0, _Float16 * op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_f16mf2)))
-void vsseg8e16(_Float16 * op0, vfloat16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_f16mf2_m)))
-void vsseg8e16(vbool32_t op0, _Float16 * op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_f16mf4)))
-void vsseg8e16(_Float16 * op0, vfloat16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsseg8e16_v_f16mf4_m)))
-void vsseg8e16(vbool64_t op0, _Float16 * op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_f16m1)))
-void vssseg2e16(_Float16 * op0, ptrdiff_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_f16m1_m)))
-void vssseg2e16(vbool16_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_f16m2)))
-void vssseg2e16(_Float16 * op0, ptrdiff_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_f16m2_m)))
-void vssseg2e16(vbool8_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_f16m4)))
-void vssseg2e16(_Float16 * op0, ptrdiff_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_f16m4_m)))
-void vssseg2e16(vbool4_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m4_t op3, vfloat16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_f16mf2)))
-void vssseg2e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_f16mf2_m)))
-void vssseg2e16(vbool32_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_f16mf4)))
-void vssseg2e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg2e16_v_f16mf4_m)))
-void vssseg2e16(vbool64_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_f16m1)))
-void vssseg3e16(_Float16 * op0, ptrdiff_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_f16m1_m)))
-void vssseg3e16(vbool16_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_f16m2)))
-void vssseg3e16(_Float16 * op0, ptrdiff_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_f16m2_m)))
-void vssseg3e16(vbool8_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_f16mf2)))
-void vssseg3e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_f16mf2_m)))
-void vssseg3e16(vbool32_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_f16mf4)))
-void vssseg3e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg3e16_v_f16mf4_m)))
-void vssseg3e16(vbool64_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_f16m1)))
-void vssseg4e16(_Float16 * op0, ptrdiff_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_f16m1_m)))
-void vssseg4e16(vbool16_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_f16m2)))
-void vssseg4e16(_Float16 * op0, ptrdiff_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_f16m2_m)))
-void vssseg4e16(vbool8_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_f16mf2)))
-void vssseg4e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_f16mf2_m)))
-void vssseg4e16(vbool32_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_f16mf4)))
-void vssseg4e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg4e16_v_f16mf4_m)))
-void vssseg4e16(vbool64_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_f16m1)))
-void vssseg5e16(_Float16 * op0, ptrdiff_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_f16m1_m)))
-void vssseg5e16(vbool16_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_f16mf2)))
-void vssseg5e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_f16mf2_m)))
-void vssseg5e16(vbool32_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_f16mf4)))
-void vssseg5e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg5e16_v_f16mf4_m)))
-void vssseg5e16(vbool64_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_f16m1)))
-void vssseg6e16(_Float16 * op0, ptrdiff_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_f16m1_m)))
-void vssseg6e16(vbool16_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_f16mf2)))
-void vssseg6e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_f16mf2_m)))
-void vssseg6e16(vbool32_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_f16mf4)))
-void vssseg6e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg6e16_v_f16mf4_m)))
-void vssseg6e16(vbool64_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_f16m1)))
-void vssseg7e16(_Float16 * op0, ptrdiff_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_f16m1_m)))
-void vssseg7e16(vbool16_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_f16mf2)))
-void vssseg7e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_f16mf2_m)))
-void vssseg7e16(vbool32_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_f16mf4)))
-void vssseg7e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg7e16_v_f16mf4_m)))
-void vssseg7e16(vbool64_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_f16m1)))
-void vssseg8e16(_Float16 * op0, ptrdiff_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_f16m1_m)))
-void vssseg8e16(vbool16_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_f16mf2)))
-void vssseg8e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_f16mf2_m)))
-void vssseg8e16(vbool32_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_f16mf4)))
-void vssseg8e16(_Float16 * op0, ptrdiff_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vssseg8e16_v_f16mf4_m)))
-void vssseg8e16(vbool64_t op0, _Float16 * op1, ptrdiff_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f16m1)))
-void vsuxseg2ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f16m1_m)))
-void vsuxseg2ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f16m2)))
-void vsuxseg2ei8(_Float16 * op0, vuint8m1_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f16m2_m)))
-void vsuxseg2ei8(vbool8_t op0, _Float16 * op1, vuint8m1_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f16m4)))
-void vsuxseg2ei8(_Float16 * op0, vuint8m2_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f16m4_m)))
-void vsuxseg2ei8(vbool4_t op0, _Float16 * op1, vuint8m2_t op2, vfloat16m4_t op3, vfloat16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f16mf2)))
-void vsuxseg2ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f16mf2_m)))
-void vsuxseg2ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f16mf4)))
-void vsuxseg2ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei8_v_f16mf4_m)))
-void vsuxseg2ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f16m1)))
-void vsuxseg3ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f16m1_m)))
-void vsuxseg3ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f16m2)))
-void vsuxseg3ei8(_Float16 * op0, vuint8m1_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f16m2_m)))
-void vsuxseg3ei8(vbool8_t op0, _Float16 * op1, vuint8m1_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f16mf2)))
-void vsuxseg3ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f16mf2_m)))
-void vsuxseg3ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f16mf4)))
-void vsuxseg3ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei8_v_f16mf4_m)))
-void vsuxseg3ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f16m1)))
-void vsuxseg4ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f16m1_m)))
-void vsuxseg4ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f16m2)))
-void vsuxseg4ei8(_Float16 * op0, vuint8m1_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f16m2_m)))
-void vsuxseg4ei8(vbool8_t op0, _Float16 * op1, vuint8m1_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f16mf2)))
-void vsuxseg4ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f16mf2_m)))
-void vsuxseg4ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f16mf4)))
-void vsuxseg4ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei8_v_f16mf4_m)))
-void vsuxseg4ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f16m1)))
-void vsuxseg5ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f16m1_m)))
-void vsuxseg5ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f16mf2)))
-void vsuxseg5ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f16mf2_m)))
-void vsuxseg5ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f16mf4)))
-void vsuxseg5ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei8_v_f16mf4_m)))
-void vsuxseg5ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f16m1)))
-void vsuxseg6ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f16m1_m)))
-void vsuxseg6ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f16mf2)))
-void vsuxseg6ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f16mf2_m)))
-void vsuxseg6ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f16mf4)))
-void vsuxseg6ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei8_v_f16mf4_m)))
-void vsuxseg6ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f16m1)))
-void vsuxseg7ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f16m1_m)))
-void vsuxseg7ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f16mf2)))
-void vsuxseg7ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f16mf2_m)))
-void vsuxseg7ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f16mf4)))
-void vsuxseg7ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei8_v_f16mf4_m)))
-void vsuxseg7ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f16m1)))
-void vsuxseg8ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f16m1_m)))
-void vsuxseg8ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f16mf2)))
-void vsuxseg8ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f16mf2_m)))
-void vsuxseg8ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f16mf4)))
-void vsuxseg8ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei8_v_f16mf4_m)))
-void vsuxseg8ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f16m1)))
-void vsuxseg2ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f16m1_m)))
-void vsuxseg2ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f16m2)))
-void vsuxseg2ei16(_Float16 * op0, vuint16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f16m2_m)))
-void vsuxseg2ei16(vbool8_t op0, _Float16 * op1, vuint16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f16m4)))
-void vsuxseg2ei16(_Float16 * op0, vuint16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f16m4_m)))
-void vsuxseg2ei16(vbool4_t op0, _Float16 * op1, vuint16m4_t op2, vfloat16m4_t op3, vfloat16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f16mf2)))
-void vsuxseg2ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f16mf2_m)))
-void vsuxseg2ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f16mf4)))
-void vsuxseg2ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei16_v_f16mf4_m)))
-void vsuxseg2ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f16m1)))
-void vsuxseg3ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f16m1_m)))
-void vsuxseg3ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f16m2)))
-void vsuxseg3ei16(_Float16 * op0, vuint16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f16m2_m)))
-void vsuxseg3ei16(vbool8_t op0, _Float16 * op1, vuint16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f16mf2)))
-void vsuxseg3ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f16mf2_m)))
-void vsuxseg3ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f16mf4)))
-void vsuxseg3ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei16_v_f16mf4_m)))
-void vsuxseg3ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f16m1)))
-void vsuxseg4ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f16m1_m)))
-void vsuxseg4ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f16m2)))
-void vsuxseg4ei16(_Float16 * op0, vuint16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f16m2_m)))
-void vsuxseg4ei16(vbool8_t op0, _Float16 * op1, vuint16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f16mf2)))
-void vsuxseg4ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f16mf2_m)))
-void vsuxseg4ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f16mf4)))
-void vsuxseg4ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei16_v_f16mf4_m)))
-void vsuxseg4ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f16m1)))
-void vsuxseg5ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f16m1_m)))
-void vsuxseg5ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f16mf2)))
-void vsuxseg5ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f16mf2_m)))
-void vsuxseg5ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f16mf4)))
-void vsuxseg5ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei16_v_f16mf4_m)))
-void vsuxseg5ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f16m1)))
-void vsuxseg6ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f16m1_m)))
-void vsuxseg6ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f16mf2)))
-void vsuxseg6ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f16mf2_m)))
-void vsuxseg6ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f16mf4)))
-void vsuxseg6ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei16_v_f16mf4_m)))
-void vsuxseg6ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f16m1)))
-void vsuxseg7ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f16m1_m)))
-void vsuxseg7ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f16mf2)))
-void vsuxseg7ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f16mf2_m)))
-void vsuxseg7ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f16mf4)))
-void vsuxseg7ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei16_v_f16mf4_m)))
-void vsuxseg7ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f16m1)))
-void vsuxseg8ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f16m1_m)))
-void vsuxseg8ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f16mf2)))
-void vsuxseg8ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f16mf2_m)))
-void vsuxseg8ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f16mf4)))
-void vsuxseg8ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei16_v_f16mf4_m)))
-void vsuxseg8ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f16m1)))
-void vsuxseg2ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f16m1_m)))
-void vsuxseg2ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f16m2)))
-void vsuxseg2ei32(_Float16 * op0, vuint32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f16m2_m)))
-void vsuxseg2ei32(vbool8_t op0, _Float16 * op1, vuint32m4_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f16m4)))
-void vsuxseg2ei32(_Float16 * op0, vuint32m8_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f16m4_m)))
-void vsuxseg2ei32(vbool4_t op0, _Float16 * op1, vuint32m8_t op2, vfloat16m4_t op3, vfloat16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f16mf2)))
-void vsuxseg2ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f16mf2_m)))
-void vsuxseg2ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f16mf4)))
-void vsuxseg2ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei32_v_f16mf4_m)))
-void vsuxseg2ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f16m1)))
-void vsuxseg3ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f16m1_m)))
-void vsuxseg3ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f16m2)))
-void vsuxseg3ei32(_Float16 * op0, vuint32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f16m2_m)))
-void vsuxseg3ei32(vbool8_t op0, _Float16 * op1, vuint32m4_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f16mf2)))
-void vsuxseg3ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f16mf2_m)))
-void vsuxseg3ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f16mf4)))
-void vsuxseg3ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei32_v_f16mf4_m)))
-void vsuxseg3ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f16m1)))
-void vsuxseg4ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f16m1_m)))
-void vsuxseg4ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f16m2)))
-void vsuxseg4ei32(_Float16 * op0, vuint32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f16m2_m)))
-void vsuxseg4ei32(vbool8_t op0, _Float16 * op1, vuint32m4_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f16mf2)))
-void vsuxseg4ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f16mf2_m)))
-void vsuxseg4ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f16mf4)))
-void vsuxseg4ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei32_v_f16mf4_m)))
-void vsuxseg4ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f16m1)))
-void vsuxseg5ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f16m1_m)))
-void vsuxseg5ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f16mf2)))
-void vsuxseg5ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f16mf2_m)))
-void vsuxseg5ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f16mf4)))
-void vsuxseg5ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei32_v_f16mf4_m)))
-void vsuxseg5ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f16m1)))
-void vsuxseg6ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f16m1_m)))
-void vsuxseg6ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f16mf2)))
-void vsuxseg6ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f16mf2_m)))
-void vsuxseg6ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f16mf4)))
-void vsuxseg6ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei32_v_f16mf4_m)))
-void vsuxseg6ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f16m1)))
-void vsuxseg7ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f16m1_m)))
-void vsuxseg7ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f16mf2)))
-void vsuxseg7ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f16mf2_m)))
-void vsuxseg7ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f16mf4)))
-void vsuxseg7ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei32_v_f16mf4_m)))
-void vsuxseg7ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f16m1)))
-void vsuxseg8ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f16m1_m)))
-void vsuxseg8ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f16mf2)))
-void vsuxseg8ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f16mf2_m)))
-void vsuxseg8ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f16mf4)))
-void vsuxseg8ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei32_v_f16mf4_m)))
-void vsuxseg8ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f16m1)))
-void vsuxseg2ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f16m1_m)))
-void vsuxseg2ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f16m2)))
-void vsuxseg2ei64(_Float16 * op0, vuint64m8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f16m2_m)))
-void vsuxseg2ei64(vbool8_t op0, _Float16 * op1, vuint64m8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f16mf2)))
-void vsuxseg2ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f16mf2_m)))
-void vsuxseg2ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f16mf4)))
-void vsuxseg2ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg2ei64_v_f16mf4_m)))
-void vsuxseg2ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f16m1)))
-void vsuxseg3ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f16m1_m)))
-void vsuxseg3ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f16m2)))
-void vsuxseg3ei64(_Float16 * op0, vuint64m8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f16m2_m)))
-void vsuxseg3ei64(vbool8_t op0, _Float16 * op1, vuint64m8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f16mf2)))
-void vsuxseg3ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f16mf2_m)))
-void vsuxseg3ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f16mf4)))
-void vsuxseg3ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg3ei64_v_f16mf4_m)))
-void vsuxseg3ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f16m1)))
-void vsuxseg4ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f16m1_m)))
-void vsuxseg4ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f16m2)))
-void vsuxseg4ei64(_Float16 * op0, vuint64m8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f16m2_m)))
-void vsuxseg4ei64(vbool8_t op0, _Float16 * op1, vuint64m8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f16mf2)))
-void vsuxseg4ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f16mf2_m)))
-void vsuxseg4ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f16mf4)))
-void vsuxseg4ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg4ei64_v_f16mf4_m)))
-void vsuxseg4ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f16m1)))
-void vsuxseg5ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f16m1_m)))
-void vsuxseg5ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f16mf2)))
-void vsuxseg5ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f16mf2_m)))
-void vsuxseg5ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f16mf4)))
-void vsuxseg5ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg5ei64_v_f16mf4_m)))
-void vsuxseg5ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f16m1)))
-void vsuxseg6ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f16m1_m)))
-void vsuxseg6ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f16mf2)))
-void vsuxseg6ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f16mf2_m)))
-void vsuxseg6ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f16mf4)))
-void vsuxseg6ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg6ei64_v_f16mf4_m)))
-void vsuxseg6ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f16m1)))
-void vsuxseg7ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f16m1_m)))
-void vsuxseg7ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f16mf2)))
-void vsuxseg7ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f16mf2_m)))
-void vsuxseg7ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f16mf4)))
-void vsuxseg7ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg7ei64_v_f16mf4_m)))
-void vsuxseg7ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f16m1)))
-void vsuxseg8ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f16m1_m)))
-void vsuxseg8ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f16mf2)))
-void vsuxseg8ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f16mf2_m)))
-void vsuxseg8ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f16mf4)))
-void vsuxseg8ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsuxseg8ei64_v_f16mf4_m)))
-void vsuxseg8ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f16m1)))
-void vsoxseg2ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f16m1_m)))
-void vsoxseg2ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f16m2)))
-void vsoxseg2ei8(_Float16 * op0, vuint8m1_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f16m2_m)))
-void vsoxseg2ei8(vbool8_t op0, _Float16 * op1, vuint8m1_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f16m4)))
-void vsoxseg2ei8(_Float16 * op0, vuint8m2_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f16m4_m)))
-void vsoxseg2ei8(vbool4_t op0, _Float16 * op1, vuint8m2_t op2, vfloat16m4_t op3, vfloat16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f16mf2)))
-void vsoxseg2ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f16mf2_m)))
-void vsoxseg2ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f16mf4)))
-void vsoxseg2ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei8_v_f16mf4_m)))
-void vsoxseg2ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f16m1)))
-void vsoxseg3ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f16m1_m)))
-void vsoxseg3ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f16m2)))
-void vsoxseg3ei8(_Float16 * op0, vuint8m1_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f16m2_m)))
-void vsoxseg3ei8(vbool8_t op0, _Float16 * op1, vuint8m1_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f16mf2)))
-void vsoxseg3ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f16mf2_m)))
-void vsoxseg3ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f16mf4)))
-void vsoxseg3ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei8_v_f16mf4_m)))
-void vsoxseg3ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f16m1)))
-void vsoxseg4ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f16m1_m)))
-void vsoxseg4ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f16m2)))
-void vsoxseg4ei8(_Float16 * op0, vuint8m1_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f16m2_m)))
-void vsoxseg4ei8(vbool8_t op0, _Float16 * op1, vuint8m1_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f16mf2)))
-void vsoxseg4ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f16mf2_m)))
-void vsoxseg4ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f16mf4)))
-void vsoxseg4ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei8_v_f16mf4_m)))
-void vsoxseg4ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f16m1)))
-void vsoxseg5ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f16m1_m)))
-void vsoxseg5ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f16mf2)))
-void vsoxseg5ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f16mf2_m)))
-void vsoxseg5ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f16mf4)))
-void vsoxseg5ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei8_v_f16mf4_m)))
-void vsoxseg5ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f16m1)))
-void vsoxseg6ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f16m1_m)))
-void vsoxseg6ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f16mf2)))
-void vsoxseg6ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f16mf2_m)))
-void vsoxseg6ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f16mf4)))
-void vsoxseg6ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei8_v_f16mf4_m)))
-void vsoxseg6ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f16m1)))
-void vsoxseg7ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f16m1_m)))
-void vsoxseg7ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f16mf2)))
-void vsoxseg7ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f16mf2_m)))
-void vsoxseg7ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f16mf4)))
-void vsoxseg7ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei8_v_f16mf4_m)))
-void vsoxseg7ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f16m1)))
-void vsoxseg8ei8(_Float16 * op0, vuint8mf2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f16m1_m)))
-void vsoxseg8ei8(vbool16_t op0, _Float16 * op1, vuint8mf2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f16mf2)))
-void vsoxseg8ei8(_Float16 * op0, vuint8mf4_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f16mf2_m)))
-void vsoxseg8ei8(vbool32_t op0, _Float16 * op1, vuint8mf4_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f16mf4)))
-void vsoxseg8ei8(_Float16 * op0, vuint8mf8_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei8_v_f16mf4_m)))
-void vsoxseg8ei8(vbool64_t op0, _Float16 * op1, vuint8mf8_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f16m1)))
-void vsoxseg2ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f16m1_m)))
-void vsoxseg2ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f16m2)))
-void vsoxseg2ei16(_Float16 * op0, vuint16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f16m2_m)))
-void vsoxseg2ei16(vbool8_t op0, _Float16 * op1, vuint16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f16m4)))
-void vsoxseg2ei16(_Float16 * op0, vuint16m4_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f16m4_m)))
-void vsoxseg2ei16(vbool4_t op0, _Float16 * op1, vuint16m4_t op2, vfloat16m4_t op3, vfloat16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f16mf2)))
-void vsoxseg2ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f16mf2_m)))
-void vsoxseg2ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f16mf4)))
-void vsoxseg2ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei16_v_f16mf4_m)))
-void vsoxseg2ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f16m1)))
-void vsoxseg3ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f16m1_m)))
-void vsoxseg3ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f16m2)))
-void vsoxseg3ei16(_Float16 * op0, vuint16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f16m2_m)))
-void vsoxseg3ei16(vbool8_t op0, _Float16 * op1, vuint16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f16mf2)))
-void vsoxseg3ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f16mf2_m)))
-void vsoxseg3ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f16mf4)))
-void vsoxseg3ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei16_v_f16mf4_m)))
-void vsoxseg3ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f16m1)))
-void vsoxseg4ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f16m1_m)))
-void vsoxseg4ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f16m2)))
-void vsoxseg4ei16(_Float16 * op0, vuint16m2_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f16m2_m)))
-void vsoxseg4ei16(vbool8_t op0, _Float16 * op1, vuint16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f16mf2)))
-void vsoxseg4ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f16mf2_m)))
-void vsoxseg4ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f16mf4)))
-void vsoxseg4ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei16_v_f16mf4_m)))
-void vsoxseg4ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f16m1)))
-void vsoxseg5ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f16m1_m)))
-void vsoxseg5ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f16mf2)))
-void vsoxseg5ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f16mf2_m)))
-void vsoxseg5ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f16mf4)))
-void vsoxseg5ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei16_v_f16mf4_m)))
-void vsoxseg5ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f16m1)))
-void vsoxseg6ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f16m1_m)))
-void vsoxseg6ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f16mf2)))
-void vsoxseg6ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f16mf2_m)))
-void vsoxseg6ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f16mf4)))
-void vsoxseg6ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei16_v_f16mf4_m)))
-void vsoxseg6ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f16m1)))
-void vsoxseg7ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f16m1_m)))
-void vsoxseg7ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f16mf2)))
-void vsoxseg7ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f16mf2_m)))
-void vsoxseg7ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f16mf4)))
-void vsoxseg7ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei16_v_f16mf4_m)))
-void vsoxseg7ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f16m1)))
-void vsoxseg8ei16(_Float16 * op0, vuint16m1_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f16m1_m)))
-void vsoxseg8ei16(vbool16_t op0, _Float16 * op1, vuint16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f16mf2)))
-void vsoxseg8ei16(_Float16 * op0, vuint16mf2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f16mf2_m)))
-void vsoxseg8ei16(vbool32_t op0, _Float16 * op1, vuint16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f16mf4)))
-void vsoxseg8ei16(_Float16 * op0, vuint16mf4_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei16_v_f16mf4_m)))
-void vsoxseg8ei16(vbool64_t op0, _Float16 * op1, vuint16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f16m1)))
-void vsoxseg2ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f16m1_m)))
-void vsoxseg2ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f16m2)))
-void vsoxseg2ei32(_Float16 * op0, vuint32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f16m2_m)))
-void vsoxseg2ei32(vbool8_t op0, _Float16 * op1, vuint32m4_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f16m4)))
-void vsoxseg2ei32(_Float16 * op0, vuint32m8_t op1, vfloat16m4_t op2, vfloat16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f16m4_m)))
-void vsoxseg2ei32(vbool4_t op0, _Float16 * op1, vuint32m8_t op2, vfloat16m4_t op3, vfloat16m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f16mf2)))
-void vsoxseg2ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f16mf2_m)))
-void vsoxseg2ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f16mf4)))
-void vsoxseg2ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei32_v_f16mf4_m)))
-void vsoxseg2ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f16m1)))
-void vsoxseg3ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f16m1_m)))
-void vsoxseg3ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f16m2)))
-void vsoxseg3ei32(_Float16 * op0, vuint32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f16m2_m)))
-void vsoxseg3ei32(vbool8_t op0, _Float16 * op1, vuint32m4_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f16mf2)))
-void vsoxseg3ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f16mf2_m)))
-void vsoxseg3ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f16mf4)))
-void vsoxseg3ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei32_v_f16mf4_m)))
-void vsoxseg3ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f16m1)))
-void vsoxseg4ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f16m1_m)))
-void vsoxseg4ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f16m2)))
-void vsoxseg4ei32(_Float16 * op0, vuint32m4_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f16m2_m)))
-void vsoxseg4ei32(vbool8_t op0, _Float16 * op1, vuint32m4_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f16mf2)))
-void vsoxseg4ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f16mf2_m)))
-void vsoxseg4ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f16mf4)))
-void vsoxseg4ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei32_v_f16mf4_m)))
-void vsoxseg4ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f16m1)))
-void vsoxseg5ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f16m1_m)))
-void vsoxseg5ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f16mf2)))
-void vsoxseg5ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f16mf2_m)))
-void vsoxseg5ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f16mf4)))
-void vsoxseg5ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei32_v_f16mf4_m)))
-void vsoxseg5ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f16m1)))
-void vsoxseg6ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f16m1_m)))
-void vsoxseg6ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f16mf2)))
-void vsoxseg6ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f16mf2_m)))
-void vsoxseg6ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f16mf4)))
-void vsoxseg6ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei32_v_f16mf4_m)))
-void vsoxseg6ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f16m1)))
-void vsoxseg7ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f16m1_m)))
-void vsoxseg7ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f16mf2)))
-void vsoxseg7ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f16mf2_m)))
-void vsoxseg7ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f16mf4)))
-void vsoxseg7ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei32_v_f16mf4_m)))
-void vsoxseg7ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f16m1)))
-void vsoxseg8ei32(_Float16 * op0, vuint32m2_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f16m1_m)))
-void vsoxseg8ei32(vbool16_t op0, _Float16 * op1, vuint32m2_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f16mf2)))
-void vsoxseg8ei32(_Float16 * op0, vuint32m1_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f16mf2_m)))
-void vsoxseg8ei32(vbool32_t op0, _Float16 * op1, vuint32m1_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f16mf4)))
-void vsoxseg8ei32(_Float16 * op0, vuint32mf2_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei32_v_f16mf4_m)))
-void vsoxseg8ei32(vbool64_t op0, _Float16 * op1, vuint32mf2_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f16m1)))
-void vsoxseg2ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f16m1_m)))
-void vsoxseg2ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f16m2)))
-void vsoxseg2ei64(_Float16 * op0, vuint64m8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f16m2_m)))
-void vsoxseg2ei64(vbool8_t op0, _Float16 * op1, vuint64m8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f16mf2)))
-void vsoxseg2ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f16mf2_m)))
-void vsoxseg2ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f16mf4)))
-void vsoxseg2ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg2ei64_v_f16mf4_m)))
-void vsoxseg2ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f16m1)))
-void vsoxseg3ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f16m1_m)))
-void vsoxseg3ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f16m2)))
-void vsoxseg3ei64(_Float16 * op0, vuint64m8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f16m2_m)))
-void vsoxseg3ei64(vbool8_t op0, _Float16 * op1, vuint64m8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f16mf2)))
-void vsoxseg3ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f16mf2_m)))
-void vsoxseg3ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f16mf4)))
-void vsoxseg3ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg3ei64_v_f16mf4_m)))
-void vsoxseg3ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f16m1)))
-void vsoxseg4ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f16m1_m)))
-void vsoxseg4ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f16m2)))
-void vsoxseg4ei64(_Float16 * op0, vuint64m8_t op1, vfloat16m2_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f16m2_m)))
-void vsoxseg4ei64(vbool8_t op0, _Float16 * op1, vuint64m8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f16mf2)))
-void vsoxseg4ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f16mf2_m)))
-void vsoxseg4ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f16mf4)))
-void vsoxseg4ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg4ei64_v_f16mf4_m)))
-void vsoxseg4ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f16m1)))
-void vsoxseg5ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f16m1_m)))
-void vsoxseg5ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f16mf2)))
-void vsoxseg5ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f16mf2_m)))
-void vsoxseg5ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f16mf4)))
-void vsoxseg5ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg5ei64_v_f16mf4_m)))
-void vsoxseg5ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f16m1)))
-void vsoxseg6ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f16m1_m)))
-void vsoxseg6ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f16mf2)))
-void vsoxseg6ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f16mf2_m)))
-void vsoxseg6ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f16mf4)))
-void vsoxseg6ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg6ei64_v_f16mf4_m)))
-void vsoxseg6ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f16m1)))
-void vsoxseg7ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f16m1_m)))
-void vsoxseg7ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f16mf2)))
-void vsoxseg7ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f16mf2_m)))
-void vsoxseg7ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f16mf4)))
-void vsoxseg7ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg7ei64_v_f16mf4_m)))
-void vsoxseg7ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f16m1)))
-void vsoxseg8ei64(_Float16 * op0, vuint64m4_t op1, vfloat16m1_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f16m1_m)))
-void vsoxseg8ei64(vbool16_t op0, _Float16 * op1, vuint64m4_t op2, vfloat16m1_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f16mf2)))
-void vsoxseg8ei64(_Float16 * op0, vuint64m2_t op1, vfloat16mf2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f16mf2_m)))
-void vsoxseg8ei64(vbool32_t op0, _Float16 * op1, vuint64m2_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f16mf4)))
-void vsoxseg8ei64(_Float16 * op0, vuint64m1_t op1, vfloat16mf4_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vsoxseg8ei64_v_f16mf4_m)))
-void vsoxseg8ei64(vbool64_t op0, _Float16 * op1, vuint64m1_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_f16m1_m)))
-void vlseg2e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vbool16_t op2, vfloat16m1_t op3, vfloat16m1_t op4, const _Float16 * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_f16m2_m)))
-void vlseg2e16(vfloat16m2_t * op0, vfloat16m2_t * op1, vbool8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, const _Float16 * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_f16m4_m)))
-void vlseg2e16(vfloat16m4_t * op0, vfloat16m4_t * op1, vbool4_t op2, vfloat16m4_t op3, vfloat16m4_t op4, const _Float16 * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_f16mf2_m)))
-void vlseg2e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vbool32_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, const _Float16 * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16_v_f16mf4_m)))
-void vlseg2e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vbool64_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, const _Float16 * op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_f16m1_m)))
-void vlseg3e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vbool16_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, const _Float16 * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_f16m2_m)))
-void vlseg3e16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vbool8_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, const _Float16 * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_f16mf2_m)))
-void vlseg3e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vbool32_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, const _Float16 * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16_v_f16mf4_m)))
-void vlseg3e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vbool64_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, const _Float16 * op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_f16m1_m)))
-void vlseg4e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vbool16_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, const _Float16 * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_f16m2_m)))
-void vlseg4e16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, vbool8_t op4, vfloat16m2_t op5, vfloat16m2_t op6, vfloat16m2_t op7, vfloat16m2_t op8, const _Float16 * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_f16mf2_m)))
-void vlseg4e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vbool32_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, const _Float16 * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16_v_f16mf4_m)))
-void vlseg4e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vbool64_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, const _Float16 * op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16_v_f16m1_m)))
-void vlseg5e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vbool16_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, const _Float16 * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16_v_f16mf2_m)))
-void vlseg5e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vbool32_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, const _Float16 * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16_v_f16mf4_m)))
-void vlseg5e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vbool64_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, const _Float16 * op11, size_t op12);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16_v_f16m1_m)))
-void vlseg6e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vbool16_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, const _Float16 * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16_v_f16mf2_m)))
-void vlseg6e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vbool32_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, const _Float16 * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16_v_f16mf4_m)))
-void vlseg6e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vbool64_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, const _Float16 * op13, size_t op14);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16_v_f16m1_m)))
-void vlseg7e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vbool16_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, const _Float16 * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16_v_f16mf2_m)))
-void vlseg7e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vbool32_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, const _Float16 * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16_v_f16mf4_m)))
-void vlseg7e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vbool64_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, const _Float16 * op15, size_t op16);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16_v_f16m1_m)))
-void vlseg8e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, vbool16_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, vfloat16m1_t op15, vfloat16m1_t op16, const _Float16 * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16_v_f16mf2_m)))
-void vlseg8e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, vbool32_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, vfloat16mf2_t op15, vfloat16mf2_t op16, const _Float16 * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16_v_f16mf4_m)))
-void vlseg8e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, vbool64_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, vfloat16mf4_t op15, vfloat16mf4_t op16, const _Float16 * op17, size_t op18);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_f16m1_m)))
-void vlseg2e16ff(vfloat16m1_t * op0, vfloat16m1_t * op1, vbool16_t op2, vfloat16m1_t op3, vfloat16m1_t op4, const _Float16 * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_f16m2_m)))
-void vlseg2e16ff(vfloat16m2_t * op0, vfloat16m2_t * op1, vbool8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, const _Float16 * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_f16m4_m)))
-void vlseg2e16ff(vfloat16m4_t * op0, vfloat16m4_t * op1, vbool4_t op2, vfloat16m4_t op3, vfloat16m4_t op4, const _Float16 * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_f16mf2_m)))
-void vlseg2e16ff(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vbool32_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, const _Float16 * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg2e16ff_v_f16mf4_m)))
-void vlseg2e16ff(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vbool64_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, const _Float16 * op5, size_t * op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_f16m1_m)))
-void vlseg3e16ff(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vbool16_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, const _Float16 * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_f16m2_m)))
-void vlseg3e16ff(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vbool8_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, const _Float16 * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_f16mf2_m)))
-void vlseg3e16ff(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vbool32_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, const _Float16 * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg3e16ff_v_f16mf4_m)))
-void vlseg3e16ff(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vbool64_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, const _Float16 * op7, size_t * op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_f16m1_m)))
-void vlseg4e16ff(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vbool16_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, const _Float16 * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_f16m2_m)))
-void vlseg4e16ff(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, vbool8_t op4, vfloat16m2_t op5, vfloat16m2_t op6, vfloat16m2_t op7, vfloat16m2_t op8, const _Float16 * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_f16mf2_m)))
-void vlseg4e16ff(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vbool32_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, const _Float16 * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg4e16ff_v_f16mf4_m)))
-void vlseg4e16ff(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vbool64_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, const _Float16 * op9, size_t * op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16ff_v_f16m1_m)))
-void vlseg5e16ff(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vbool16_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, const _Float16 * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16ff_v_f16mf2_m)))
-void vlseg5e16ff(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vbool32_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, const _Float16 * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg5e16ff_v_f16mf4_m)))
-void vlseg5e16ff(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vbool64_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, const _Float16 * op11, size_t * op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16ff_v_f16m1_m)))
-void vlseg6e16ff(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vbool16_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, const _Float16 * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16ff_v_f16mf2_m)))
-void vlseg6e16ff(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vbool32_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, const _Float16 * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg6e16ff_v_f16mf4_m)))
-void vlseg6e16ff(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vbool64_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, const _Float16 * op13, size_t * op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16ff_v_f16m1_m)))
-void vlseg7e16ff(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vbool16_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, const _Float16 * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16ff_v_f16mf2_m)))
-void vlseg7e16ff(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vbool32_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, const _Float16 * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg7e16ff_v_f16mf4_m)))
-void vlseg7e16ff(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vbool64_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, const _Float16 * op15, size_t * op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16ff_v_f16m1_m)))
-void vlseg8e16ff(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, vbool16_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, vfloat16m1_t op15, vfloat16m1_t op16, const _Float16 * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16ff_v_f16mf2_m)))
-void vlseg8e16ff(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, vbool32_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, vfloat16mf2_t op15, vfloat16mf2_t op16, const _Float16 * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlseg8e16ff_v_f16mf4_m)))
-void vlseg8e16ff(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, vbool64_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, vfloat16mf4_t op15, vfloat16mf4_t op16, const _Float16 * op17, size_t * op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_f16m1_m)))
-void vlsseg2e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vbool16_t op2, vfloat16m1_t op3, vfloat16m1_t op4, const _Float16 * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_f16m2_m)))
-void vlsseg2e16(vfloat16m2_t * op0, vfloat16m2_t * op1, vbool8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, const _Float16 * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_f16m4_m)))
-void vlsseg2e16(vfloat16m4_t * op0, vfloat16m4_t * op1, vbool4_t op2, vfloat16m4_t op3, vfloat16m4_t op4, const _Float16 * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_f16mf2_m)))
-void vlsseg2e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vbool32_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, const _Float16 * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg2e16_v_f16mf4_m)))
-void vlsseg2e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vbool64_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, const _Float16 * op5, ptrdiff_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_f16m1_m)))
-void vlsseg3e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vbool16_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, const _Float16 * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_f16m2_m)))
-void vlsseg3e16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vbool8_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, const _Float16 * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_f16mf2_m)))
-void vlsseg3e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vbool32_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, const _Float16 * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg3e16_v_f16mf4_m)))
-void vlsseg3e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vbool64_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, const _Float16 * op7, ptrdiff_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_f16m1_m)))
-void vlsseg4e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vbool16_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, const _Float16 * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_f16m2_m)))
-void vlsseg4e16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, vbool8_t op4, vfloat16m2_t op5, vfloat16m2_t op6, vfloat16m2_t op7, vfloat16m2_t op8, const _Float16 * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_f16mf2_m)))
-void vlsseg4e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vbool32_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, const _Float16 * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg4e16_v_f16mf4_m)))
-void vlsseg4e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vbool64_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, const _Float16 * op9, ptrdiff_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e16_v_f16m1_m)))
-void vlsseg5e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vbool16_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, const _Float16 * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e16_v_f16mf2_m)))
-void vlsseg5e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vbool32_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, const _Float16 * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg5e16_v_f16mf4_m)))
-void vlsseg5e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vbool64_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, const _Float16 * op11, ptrdiff_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e16_v_f16m1_m)))
-void vlsseg6e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vbool16_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, const _Float16 * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e16_v_f16mf2_m)))
-void vlsseg6e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vbool32_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, const _Float16 * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg6e16_v_f16mf4_m)))
-void vlsseg6e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vbool64_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, const _Float16 * op13, ptrdiff_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e16_v_f16m1_m)))
-void vlsseg7e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vbool16_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, const _Float16 * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e16_v_f16mf2_m)))
-void vlsseg7e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vbool32_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, const _Float16 * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg7e16_v_f16mf4_m)))
-void vlsseg7e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vbool64_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, const _Float16 * op15, ptrdiff_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e16_v_f16m1_m)))
-void vlsseg8e16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, vbool16_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, vfloat16m1_t op15, vfloat16m1_t op16, const _Float16 * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e16_v_f16mf2_m)))
-void vlsseg8e16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, vbool32_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, vfloat16mf2_t op15, vfloat16mf2_t op16, const _Float16 * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vlsseg8e16_v_f16mf4_m)))
-void vlsseg8e16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, vbool64_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, vfloat16mf4_t op15, vfloat16mf4_t op16, const _Float16 * op17, ptrdiff_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f16m1)))
-void vluxseg2ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, const _Float16 * op2, vuint8mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f16m1_m)))
-void vluxseg2ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vbool16_t op2, vfloat16m1_t op3, vfloat16m1_t op4, const _Float16 * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f16m2)))
-void vluxseg2ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, const _Float16 * op2, vuint8m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f16m2_m)))
-void vluxseg2ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, vbool8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, const _Float16 * op5, vuint8m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f16m4)))
-void vluxseg2ei8(vfloat16m4_t * op0, vfloat16m4_t * op1, const _Float16 * op2, vuint8m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f16m4_m)))
-void vluxseg2ei8(vfloat16m4_t * op0, vfloat16m4_t * op1, vbool4_t op2, vfloat16m4_t op3, vfloat16m4_t op4, const _Float16 * op5, vuint8m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f16mf2)))
-void vluxseg2ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, const _Float16 * op2, vuint8mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f16mf2_m)))
-void vluxseg2ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vbool32_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, const _Float16 * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f16mf4)))
-void vluxseg2ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, const _Float16 * op2, vuint8mf8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei8_v_f16mf4_m)))
-void vluxseg2ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vbool64_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, const _Float16 * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f16m1)))
-void vluxseg3ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, const _Float16 * op3, vuint8mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f16m1_m)))
-void vluxseg3ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vbool16_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, const _Float16 * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f16m2)))
-void vluxseg3ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, const _Float16 * op3, vuint8m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f16m2_m)))
-void vluxseg3ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vbool8_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, const _Float16 * op7, vuint8m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f16mf2)))
-void vluxseg3ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, const _Float16 * op3, vuint8mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f16mf2_m)))
-void vluxseg3ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vbool32_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, const _Float16 * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f16mf4)))
-void vluxseg3ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, const _Float16 * op3, vuint8mf8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei8_v_f16mf4_m)))
-void vluxseg3ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vbool64_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, const _Float16 * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f16m1)))
-void vluxseg4ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, const _Float16 * op4, vuint8mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f16m1_m)))
-void vluxseg4ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vbool16_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, const _Float16 * op9, vuint8mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f16m2)))
-void vluxseg4ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, const _Float16 * op4, vuint8m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f16m2_m)))
-void vluxseg4ei8(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, vbool8_t op4, vfloat16m2_t op5, vfloat16m2_t op6, vfloat16m2_t op7, vfloat16m2_t op8, const _Float16 * op9, vuint8m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f16mf2)))
-void vluxseg4ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, const _Float16 * op4, vuint8mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f16mf2_m)))
-void vluxseg4ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vbool32_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, const _Float16 * op9, vuint8mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f16mf4)))
-void vluxseg4ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, const _Float16 * op4, vuint8mf8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei8_v_f16mf4_m)))
-void vluxseg4ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vbool64_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, const _Float16 * op9, vuint8mf8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f16m1)))
-void vluxseg5ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, const _Float16 * op5, vuint8mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f16m1_m)))
-void vluxseg5ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vbool16_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, const _Float16 * op11, vuint8mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f16mf2)))
-void vluxseg5ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, const _Float16 * op5, vuint8mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f16mf2_m)))
-void vluxseg5ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vbool32_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, const _Float16 * op11, vuint8mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f16mf4)))
-void vluxseg5ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, const _Float16 * op5, vuint8mf8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei8_v_f16mf4_m)))
-void vluxseg5ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vbool64_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, const _Float16 * op11, vuint8mf8_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f16m1)))
-void vluxseg6ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, const _Float16 * op6, vuint8mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f16m1_m)))
-void vluxseg6ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vbool16_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, const _Float16 * op13, vuint8mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f16mf2)))
-void vluxseg6ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, const _Float16 * op6, vuint8mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f16mf2_m)))
-void vluxseg6ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vbool32_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, const _Float16 * op13, vuint8mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f16mf4)))
-void vluxseg6ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, const _Float16 * op6, vuint8mf8_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei8_v_f16mf4_m)))
-void vluxseg6ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vbool64_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, const _Float16 * op13, vuint8mf8_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f16m1)))
-void vluxseg7ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, const _Float16 * op7, vuint8mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f16m1_m)))
-void vluxseg7ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vbool16_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, const _Float16 * op15, vuint8mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f16mf2)))
-void vluxseg7ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, const _Float16 * op7, vuint8mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f16mf2_m)))
-void vluxseg7ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vbool32_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, const _Float16 * op15, vuint8mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f16mf4)))
-void vluxseg7ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, const _Float16 * op7, vuint8mf8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei8_v_f16mf4_m)))
-void vluxseg7ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vbool64_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, const _Float16 * op15, vuint8mf8_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f16m1)))
-void vluxseg8ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, const _Float16 * op8, vuint8mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f16m1_m)))
-void vluxseg8ei8(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, vbool16_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, vfloat16m1_t op15, vfloat16m1_t op16, const _Float16 * op17, vuint8mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f16mf2)))
-void vluxseg8ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, const _Float16 * op8, vuint8mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f16mf2_m)))
-void vluxseg8ei8(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, vbool32_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, vfloat16mf2_t op15, vfloat16mf2_t op16, const _Float16 * op17, vuint8mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f16mf4)))
-void vluxseg8ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, const _Float16 * op8, vuint8mf8_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei8_v_f16mf4_m)))
-void vluxseg8ei8(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, vbool64_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, vfloat16mf4_t op15, vfloat16mf4_t op16, const _Float16 * op17, vuint8mf8_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f16m1)))
-void vluxseg2ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, const _Float16 * op2, vuint16m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f16m1_m)))
-void vluxseg2ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vbool16_t op2, vfloat16m1_t op3, vfloat16m1_t op4, const _Float16 * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f16m2)))
-void vluxseg2ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, const _Float16 * op2, vuint16m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f16m2_m)))
-void vluxseg2ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, vbool8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, const _Float16 * op5, vuint16m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f16m4)))
-void vluxseg2ei16(vfloat16m4_t * op0, vfloat16m4_t * op1, const _Float16 * op2, vuint16m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f16m4_m)))
-void vluxseg2ei16(vfloat16m4_t * op0, vfloat16m4_t * op1, vbool4_t op2, vfloat16m4_t op3, vfloat16m4_t op4, const _Float16 * op5, vuint16m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f16mf2)))
-void vluxseg2ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, const _Float16 * op2, vuint16mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f16mf2_m)))
-void vluxseg2ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vbool32_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, const _Float16 * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f16mf4)))
-void vluxseg2ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, const _Float16 * op2, vuint16mf4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei16_v_f16mf4_m)))
-void vluxseg2ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vbool64_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, const _Float16 * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f16m1)))
-void vluxseg3ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, const _Float16 * op3, vuint16m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f16m1_m)))
-void vluxseg3ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vbool16_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, const _Float16 * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f16m2)))
-void vluxseg3ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, const _Float16 * op3, vuint16m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f16m2_m)))
-void vluxseg3ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vbool8_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, const _Float16 * op7, vuint16m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f16mf2)))
-void vluxseg3ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, const _Float16 * op3, vuint16mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f16mf2_m)))
-void vluxseg3ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vbool32_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, const _Float16 * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f16mf4)))
-void vluxseg3ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, const _Float16 * op3, vuint16mf4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei16_v_f16mf4_m)))
-void vluxseg3ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vbool64_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, const _Float16 * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f16m1)))
-void vluxseg4ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, const _Float16 * op4, vuint16m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f16m1_m)))
-void vluxseg4ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vbool16_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, const _Float16 * op9, vuint16m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f16m2)))
-void vluxseg4ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, const _Float16 * op4, vuint16m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f16m2_m)))
-void vluxseg4ei16(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, vbool8_t op4, vfloat16m2_t op5, vfloat16m2_t op6, vfloat16m2_t op7, vfloat16m2_t op8, const _Float16 * op9, vuint16m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f16mf2)))
-void vluxseg4ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, const _Float16 * op4, vuint16mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f16mf2_m)))
-void vluxseg4ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vbool32_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, const _Float16 * op9, vuint16mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f16mf4)))
-void vluxseg4ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, const _Float16 * op4, vuint16mf4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei16_v_f16mf4_m)))
-void vluxseg4ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vbool64_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, const _Float16 * op9, vuint16mf4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f16m1)))
-void vluxseg5ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, const _Float16 * op5, vuint16m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f16m1_m)))
-void vluxseg5ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vbool16_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, const _Float16 * op11, vuint16m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f16mf2)))
-void vluxseg5ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, const _Float16 * op5, vuint16mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f16mf2_m)))
-void vluxseg5ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vbool32_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, const _Float16 * op11, vuint16mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f16mf4)))
-void vluxseg5ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, const _Float16 * op5, vuint16mf4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei16_v_f16mf4_m)))
-void vluxseg5ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vbool64_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, const _Float16 * op11, vuint16mf4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f16m1)))
-void vluxseg6ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, const _Float16 * op6, vuint16m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f16m1_m)))
-void vluxseg6ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vbool16_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, const _Float16 * op13, vuint16m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f16mf2)))
-void vluxseg6ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, const _Float16 * op6, vuint16mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f16mf2_m)))
-void vluxseg6ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vbool32_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, const _Float16 * op13, vuint16mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f16mf4)))
-void vluxseg6ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, const _Float16 * op6, vuint16mf4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei16_v_f16mf4_m)))
-void vluxseg6ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vbool64_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, const _Float16 * op13, vuint16mf4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f16m1)))
-void vluxseg7ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, const _Float16 * op7, vuint16m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f16m1_m)))
-void vluxseg7ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vbool16_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, const _Float16 * op15, vuint16m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f16mf2)))
-void vluxseg7ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, const _Float16 * op7, vuint16mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f16mf2_m)))
-void vluxseg7ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vbool32_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, const _Float16 * op15, vuint16mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f16mf4)))
-void vluxseg7ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, const _Float16 * op7, vuint16mf4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei16_v_f16mf4_m)))
-void vluxseg7ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vbool64_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, const _Float16 * op15, vuint16mf4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f16m1)))
-void vluxseg8ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, const _Float16 * op8, vuint16m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f16m1_m)))
-void vluxseg8ei16(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, vbool16_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, vfloat16m1_t op15, vfloat16m1_t op16, const _Float16 * op17, vuint16m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f16mf2)))
-void vluxseg8ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, const _Float16 * op8, vuint16mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f16mf2_m)))
-void vluxseg8ei16(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, vbool32_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, vfloat16mf2_t op15, vfloat16mf2_t op16, const _Float16 * op17, vuint16mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f16mf4)))
-void vluxseg8ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, const _Float16 * op8, vuint16mf4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei16_v_f16mf4_m)))
-void vluxseg8ei16(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, vbool64_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, vfloat16mf4_t op15, vfloat16mf4_t op16, const _Float16 * op17, vuint16mf4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f16m1)))
-void vluxseg2ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, const _Float16 * op2, vuint32m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f16m1_m)))
-void vluxseg2ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vbool16_t op2, vfloat16m1_t op3, vfloat16m1_t op4, const _Float16 * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f16m2)))
-void vluxseg2ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, const _Float16 * op2, vuint32m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f16m2_m)))
-void vluxseg2ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, vbool8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, const _Float16 * op5, vuint32m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f16m4)))
-void vluxseg2ei32(vfloat16m4_t * op0, vfloat16m4_t * op1, const _Float16 * op2, vuint32m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f16m4_m)))
-void vluxseg2ei32(vfloat16m4_t * op0, vfloat16m4_t * op1, vbool4_t op2, vfloat16m4_t op3, vfloat16m4_t op4, const _Float16 * op5, vuint32m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f16mf2)))
-void vluxseg2ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, const _Float16 * op2, vuint32m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f16mf2_m)))
-void vluxseg2ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vbool32_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, const _Float16 * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f16mf4)))
-void vluxseg2ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, const _Float16 * op2, vuint32mf2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei32_v_f16mf4_m)))
-void vluxseg2ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vbool64_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, const _Float16 * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f16m1)))
-void vluxseg3ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, const _Float16 * op3, vuint32m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f16m1_m)))
-void vluxseg3ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vbool16_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, const _Float16 * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f16m2)))
-void vluxseg3ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, const _Float16 * op3, vuint32m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f16m2_m)))
-void vluxseg3ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vbool8_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, const _Float16 * op7, vuint32m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f16mf2)))
-void vluxseg3ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, const _Float16 * op3, vuint32m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f16mf2_m)))
-void vluxseg3ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vbool32_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, const _Float16 * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f16mf4)))
-void vluxseg3ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, const _Float16 * op3, vuint32mf2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei32_v_f16mf4_m)))
-void vluxseg3ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vbool64_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, const _Float16 * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f16m1)))
-void vluxseg4ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, const _Float16 * op4, vuint32m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f16m1_m)))
-void vluxseg4ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vbool16_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, const _Float16 * op9, vuint32m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f16m2)))
-void vluxseg4ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, const _Float16 * op4, vuint32m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f16m2_m)))
-void vluxseg4ei32(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, vbool8_t op4, vfloat16m2_t op5, vfloat16m2_t op6, vfloat16m2_t op7, vfloat16m2_t op8, const _Float16 * op9, vuint32m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f16mf2)))
-void vluxseg4ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, const _Float16 * op4, vuint32m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f16mf2_m)))
-void vluxseg4ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vbool32_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, const _Float16 * op9, vuint32m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f16mf4)))
-void vluxseg4ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, const _Float16 * op4, vuint32mf2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei32_v_f16mf4_m)))
-void vluxseg4ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vbool64_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, const _Float16 * op9, vuint32mf2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f16m1)))
-void vluxseg5ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, const _Float16 * op5, vuint32m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f16m1_m)))
-void vluxseg5ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vbool16_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, const _Float16 * op11, vuint32m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f16mf2)))
-void vluxseg5ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, const _Float16 * op5, vuint32m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f16mf2_m)))
-void vluxseg5ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vbool32_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, const _Float16 * op11, vuint32m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f16mf4)))
-void vluxseg5ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, const _Float16 * op5, vuint32mf2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei32_v_f16mf4_m)))
-void vluxseg5ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vbool64_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, const _Float16 * op11, vuint32mf2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f16m1)))
-void vluxseg6ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, const _Float16 * op6, vuint32m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f16m1_m)))
-void vluxseg6ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vbool16_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, const _Float16 * op13, vuint32m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f16mf2)))
-void vluxseg6ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, const _Float16 * op6, vuint32m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f16mf2_m)))
-void vluxseg6ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vbool32_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, const _Float16 * op13, vuint32m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f16mf4)))
-void vluxseg6ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, const _Float16 * op6, vuint32mf2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei32_v_f16mf4_m)))
-void vluxseg6ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vbool64_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, const _Float16 * op13, vuint32mf2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f16m1)))
-void vluxseg7ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, const _Float16 * op7, vuint32m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f16m1_m)))
-void vluxseg7ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vbool16_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, const _Float16 * op15, vuint32m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f16mf2)))
-void vluxseg7ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, const _Float16 * op7, vuint32m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f16mf2_m)))
-void vluxseg7ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vbool32_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, const _Float16 * op15, vuint32m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f16mf4)))
-void vluxseg7ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, const _Float16 * op7, vuint32mf2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei32_v_f16mf4_m)))
-void vluxseg7ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vbool64_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, const _Float16 * op15, vuint32mf2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f16m1)))
-void vluxseg8ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, const _Float16 * op8, vuint32m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f16m1_m)))
-void vluxseg8ei32(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, vbool16_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, vfloat16m1_t op15, vfloat16m1_t op16, const _Float16 * op17, vuint32m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f16mf2)))
-void vluxseg8ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, const _Float16 * op8, vuint32m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f16mf2_m)))
-void vluxseg8ei32(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, vbool32_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, vfloat16mf2_t op15, vfloat16mf2_t op16, const _Float16 * op17, vuint32m1_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f16mf4)))
-void vluxseg8ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, const _Float16 * op8, vuint32mf2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei32_v_f16mf4_m)))
-void vluxseg8ei32(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, vbool64_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, vfloat16mf4_t op15, vfloat16mf4_t op16, const _Float16 * op17, vuint32mf2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f16m1)))
-void vluxseg2ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, const _Float16 * op2, vuint64m4_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f16m1_m)))
-void vluxseg2ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vbool16_t op2, vfloat16m1_t op3, vfloat16m1_t op4, const _Float16 * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f16m2)))
-void vluxseg2ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, const _Float16 * op2, vuint64m8_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f16m2_m)))
-void vluxseg2ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, vbool8_t op2, vfloat16m2_t op3, vfloat16m2_t op4, const _Float16 * op5, vuint64m8_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f16mf2)))
-void vluxseg2ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, const _Float16 * op2, vuint64m2_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f16mf2_m)))
-void vluxseg2ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vbool32_t op2, vfloat16mf2_t op3, vfloat16mf2_t op4, const _Float16 * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f16mf4)))
-void vluxseg2ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, const _Float16 * op2, vuint64m1_t op3, size_t op4);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg2ei64_v_f16mf4_m)))
-void vluxseg2ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vbool64_t op2, vfloat16mf4_t op3, vfloat16mf4_t op4, const _Float16 * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f16m1)))
-void vluxseg3ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, const _Float16 * op3, vuint64m4_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f16m1_m)))
-void vluxseg3ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vbool16_t op3, vfloat16m1_t op4, vfloat16m1_t op5, vfloat16m1_t op6, const _Float16 * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f16m2)))
-void vluxseg3ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, const _Float16 * op3, vuint64m8_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f16m2_m)))
-void vluxseg3ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vbool8_t op3, vfloat16m2_t op4, vfloat16m2_t op5, vfloat16m2_t op6, const _Float16 * op7, vuint64m8_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f16mf2)))
-void vluxseg3ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, const _Float16 * op3, vuint64m2_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f16mf2_m)))
-void vluxseg3ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vbool32_t op3, vfloat16mf2_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, const _Float16 * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f16mf4)))
-void vluxseg3ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, const _Float16 * op3, vuint64m1_t op4, size_t op5);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg3ei64_v_f16mf4_m)))
-void vluxseg3ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vbool64_t op3, vfloat16mf4_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, const _Float16 * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f16m1)))
-void vluxseg4ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, const _Float16 * op4, vuint64m4_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f16m1_m)))
-void vluxseg4ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vbool16_t op4, vfloat16m1_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, const _Float16 * op9, vuint64m4_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f16m2)))
-void vluxseg4ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, const _Float16 * op4, vuint64m8_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f16m2_m)))
-void vluxseg4ei64(vfloat16m2_t * op0, vfloat16m2_t * op1, vfloat16m2_t * op2, vfloat16m2_t * op3, vbool8_t op4, vfloat16m2_t op5, vfloat16m2_t op6, vfloat16m2_t op7, vfloat16m2_t op8, const _Float16 * op9, vuint64m8_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f16mf2)))
-void vluxseg4ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, const _Float16 * op4, vuint64m2_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f16mf2_m)))
-void vluxseg4ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vbool32_t op4, vfloat16mf2_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, const _Float16 * op9, vuint64m2_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f16mf4)))
-void vluxseg4ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, const _Float16 * op4, vuint64m1_t op5, size_t op6);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg4ei64_v_f16mf4_m)))
-void vluxseg4ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vbool64_t op4, vfloat16mf4_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, const _Float16 * op9, vuint64m1_t op10, size_t op11);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f16m1)))
-void vluxseg5ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, const _Float16 * op5, vuint64m4_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f16m1_m)))
-void vluxseg5ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vbool16_t op5, vfloat16m1_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, const _Float16 * op11, vuint64m4_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f16mf2)))
-void vluxseg5ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, const _Float16 * op5, vuint64m2_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f16mf2_m)))
-void vluxseg5ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vbool32_t op5, vfloat16mf2_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, const _Float16 * op11, vuint64m2_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f16mf4)))
-void vluxseg5ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, const _Float16 * op5, vuint64m1_t op6, size_t op7);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg5ei64_v_f16mf4_m)))
-void vluxseg5ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vbool64_t op5, vfloat16mf4_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, const _Float16 * op11, vuint64m1_t op12, size_t op13);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f16m1)))
-void vluxseg6ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, const _Float16 * op6, vuint64m4_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f16m1_m)))
-void vluxseg6ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vbool16_t op6, vfloat16m1_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, const _Float16 * op13, vuint64m4_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f16mf2)))
-void vluxseg6ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, const _Float16 * op6, vuint64m2_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f16mf2_m)))
-void vluxseg6ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vbool32_t op6, vfloat16mf2_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, const _Float16 * op13, vuint64m2_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f16mf4)))
-void vluxseg6ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, const _Float16 * op6, vuint64m1_t op7, size_t op8);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg6ei64_v_f16mf4_m)))
-void vluxseg6ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vbool64_t op6, vfloat16mf4_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, const _Float16 * op13, vuint64m1_t op14, size_t op15);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f16m1)))
-void vluxseg7ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, const _Float16 * op7, vuint64m4_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f16m1_m)))
-void vluxseg7ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vbool16_t op7, vfloat16m1_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, const _Float16 * op15, vuint64m4_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f16mf2)))
-void vluxseg7ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, const _Float16 * op7, vuint64m2_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f16mf2_m)))
-void vluxseg7ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vbool32_t op7, vfloat16mf2_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, const _Float16 * op15, vuint64m2_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f16mf4)))
-void vluxseg7ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, const _Float16 * op7, vuint64m1_t op8, size_t op9);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg7ei64_v_f16mf4_m)))
-void vluxseg7ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vbool64_t op7, vfloat16mf4_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, const _Float16 * op15, vuint64m1_t op16, size_t op17);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f16m1)))
-void vluxseg8ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, const _Float16 * op8, vuint64m4_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f16m1_m)))
-void vluxseg8ei64(vfloat16m1_t * op0, vfloat16m1_t * op1, vfloat16m1_t * op2, vfloat16m1_t * op3, vfloat16m1_t * op4, vfloat16m1_t * op5, vfloat16m1_t * op6, vfloat16m1_t * op7, vbool16_t op8, vfloat16m1_t op9, vfloat16m1_t op10, vfloat16m1_t op11, vfloat16m1_t op12, vfloat16m1_t op13, vfloat16m1_t op14, vfloat16m1_t op15, vfloat16m1_t op16, const _Float16 * op17, vuint64m4_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f16mf2)))
-void vluxseg8ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, const _Float16 * op8, vuint64m2_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f16mf2_m)))
-void vluxseg8ei64(vfloat16mf2_t * op0, vfloat16mf2_t * op1, vfloat16mf2_t * op2, vfloat16mf2_t * op3, vfloat16mf2_t * op4, vfloat16mf2_t * op5, vfloat16mf2_t * op6, vfloat16mf2_t * op7, vbool32_t op8, vfloat16mf2_t op9, vfloat16mf2_t op10, vfloat16mf2_t op11, vfloat16mf2_t op12, vfloat16mf2_t op13, vfloat16mf2_t op14, vfloat16mf2_t op15, vfloat16mf2_t op16, const _Float16 * op17, vuint64m2_t op18, size_t op19);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f16mf4)))
-void vluxseg8ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, const _Float16 * op8, vuint64m1_t op9, size_t op10);
-
-__rvv_overloaded __attribute__((clang_builtin_alias(__builtin_rvv_vluxseg8ei64_v_f16mf4_m)))
-void vluxseg8ei64(vfloat16mf4_t * op0, vfloat16mf4_t * op1, vfloat16mf4_t * op2, vfloat16mf4_t * op3, vfloat16mf4_t * op4, vfloat16mf4_t * op5, vfloat16mf4_t * op6, vfloat16mf4_t * op7, vbool64_t op8, vfloat16mf4_t op9, vfloat16mf4_t op10, vfloat16mf4_t op11, vfloat16mf4_t op12, vfloat16mf4_t op13, vfloat16mf4_t op14, vfloat16mf4_t op15, vfloat16mf4_t op16, const _Float16 * op17, vuint64m1_t op18, size_t op19);
-
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif // __riscv_vector
-#endif // __RISCV_VECTOR_H
diff --git a/linux-x86/lib64/clang/14.0.1/include/sanitizer/asan_interface.h b/linux-x86/lib64/clang/14.0.1/include/sanitizer/asan_interface.h
deleted file mode 100644
index 792ef9c..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/sanitizer/asan_interface.h
+++ /dev/null
@@ -1,326 +0,0 @@
-//===-- sanitizer/asan_interface.h ------------------------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// This file is a part of AddressSanitizer (ASan).
-//
-// Public interface header.
-//===----------------------------------------------------------------------===//
-#ifndef SANITIZER_ASAN_INTERFACE_H
-#define SANITIZER_ASAN_INTERFACE_H
-
-#include <sanitizer/common_interface_defs.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-/// Marks a memory region (<c>[addr, addr+size)</c>) as unaddressable.
-///
-/// This memory must be previously allocated by your program. Instrumented
-/// code is forbidden from accessing addresses in this region until it is
-/// unpoisoned. This function is not guaranteed to poison the entire region -
-/// it could poison only a subregion of <c>[addr, addr+size)</c> due to ASan
-/// alignment restrictions.
-///
-/// \note This function is not thread-safe because no two threads can poison or
-/// unpoison memory in the same memory region simultaneously.
-///
-/// \param addr Start of memory region.
-/// \param size Size of memory region.
-void __asan_poison_memory_region(void const volatile *addr, size_t size);
-
-/// Marks a memory region (<c>[addr, addr+size)</c>) as addressable.
-///
-/// This memory must be previously allocated by your program. Accessing
-/// addresses in this region is allowed until this region is poisoned again.
-/// This function could unpoison a super-region of <c>[addr, addr+size)</c> due
-/// to ASan alignment restrictions.
-///
-/// \note This function is not thread-safe because no two threads can
-/// poison or unpoison memory in the same memory region simultaneously.
-///
-/// \param addr Start of memory region.
-/// \param size Size of memory region.
-void __asan_unpoison_memory_region(void const volatile *addr, size_t size);
-
-// Macros provided for convenience.
-#if __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__)
-/// Marks a memory region as unaddressable.
-///
-/// \note Macro provided for convenience; defined as a no-op if ASan is not
-/// enabled.
-///
-/// \param addr Start of memory region.
-/// \param size Size of memory region.
-#define ASAN_POISON_MEMORY_REGION(addr, size) \
-  __asan_poison_memory_region((addr), (size))
-
-/// Marks a memory region as addressable.
-///
-/// \note Macro provided for convenience; defined as a no-op if ASan is not
-/// enabled.
-///
-/// \param addr Start of memory region.
-/// \param size Size of memory region.
-#define ASAN_UNPOISON_MEMORY_REGION(addr, size) \
-  __asan_unpoison_memory_region((addr), (size))
-#else
-#define ASAN_POISON_MEMORY_REGION(addr, size) \
-  ((void)(addr), (void)(size))
-#define ASAN_UNPOISON_MEMORY_REGION(addr, size) \
-  ((void)(addr), (void)(size))
-#endif
-
-/// Checks if an address is poisoned.
-///
-/// Returns 1 if <c><i>addr</i></c> is poisoned (that is, 1-byte read/write
-/// access to this address would result in an error report from ASan).
-/// Otherwise returns 0.
-///
-/// \param addr Address to check.
-///
-/// \retval 1 Address is poisoned.
-/// \retval 0 Address is not poisoned.
-int __asan_address_is_poisoned(void const volatile *addr);
-
-/// Checks if a region is poisoned.
-///
-/// If at least one byte in <c>[beg, beg+size)</c> is poisoned, returns the
-/// address of the first such byte. Otherwise returns 0.
-///
-/// \param beg Start of memory region.
-/// \param size Start of memory region.
-/// \returns Address of first poisoned byte.
-void *__asan_region_is_poisoned(void *beg, size_t size);
-
-/// Describes an address (useful for calling from the debugger).
-///
-/// Prints the description of <c><i>addr</i></c>.
-///
-/// \param addr Address to describe.
-void __asan_describe_address(void *addr);
-
-/// Checks if an error has been or is being reported (useful for calling from
-/// the debugger to get information about an ASan error).
-///
-/// Returns 1 if an error has been (or is being) reported. Otherwise returns 0.
-///
-/// \returns 1 if an error has been (or is being) reported. Otherwise returns
-/// 0.
-int __asan_report_present(void);
-
-/// Gets the PC (program counter) register value of an ASan error (useful for
-/// calling from the debugger).
-///
-/// Returns PC if an error has been (or is being) reported.
-/// Otherwise returns 0.
-///
-/// \returns PC value.
-void *__asan_get_report_pc(void);
-
-/// Gets the BP (base pointer) register value of an ASan error (useful for
-/// calling from the debugger).
-///
-/// Returns BP if an error has been (or is being) reported.
-/// Otherwise returns 0.
-///
-/// \returns BP value.
-void *__asan_get_report_bp(void);
-
-/// Gets the SP (stack pointer) register value of an ASan error (useful for
-/// calling from the debugger).
-///
-/// If an error has been (or is being) reported, returns SP.
-/// Otherwise returns 0.
-///
-/// \returns SP value.
-void *__asan_get_report_sp(void);
-
-/// Gets the address of the report buffer of an ASan error (useful for calling
-/// from the debugger).
-///
-/// Returns the address of the report buffer if an error has been (or is being)
-/// reported. Otherwise returns 0.
-///
-/// \returns Address of report buffer.
-void *__asan_get_report_address(void);
-
-/// Gets access type of an ASan error (useful for calling from the debugger).
-///
-/// Returns access type (read or write) if an error has been (or is being)
-/// reported. Otherwise returns 0.
-///
-/// \returns Access type (0 = read, 1 = write).
-int __asan_get_report_access_type(void);
-
-/// Gets access size of an ASan error (useful for calling from the debugger).
-///
-/// Returns access size if an error has been (or is being) reported. Otherwise
-/// returns 0.
-///
-/// \returns Access size in bytes.
-size_t __asan_get_report_access_size(void);
-
-/// Gets the bug description of an ASan error (useful for calling from a
-/// debugger).
-///
-/// \returns Returns a bug description if an error has been (or is being)
-/// reported - for example, "heap-use-after-free". Otherwise returns an empty
-/// string.
-const char *__asan_get_report_description(void);
-
-/// Gets information about a pointer (useful for calling from the debugger).
-///
-/// Returns the category of the given pointer as a constant string.
-/// Possible return values are <c>global</c>, <c>stack</c>, <c>stack-fake</c>,
-/// <c>heap</c>, <c>heap-invalid</c>, <c>shadow-low</c>, <c>shadow-gap</c>,
-/// <c>shadow-high</c>, and <c>unknown</c>.
-///
-/// If the return value is <c>global</c> or <c>stack</c>, tries to also return
-/// the variable name, address, and size. If the return value is <c>heap</c>,
-/// tries to return the chunk address and size. <c><i>name</i></c> should point
-/// to an allocated buffer of size <c><i>name_size</i></c>.
-///
-/// \param addr Address to locate.
-/// \param name Buffer to store the variable's name.
-/// \param name_size Size in bytes of the variable's name buffer.
-/// \param[out] region_address Address of the region.
-/// \param[out] region_size Size of the region in bytes.
-///
-/// \returns Returns the category of the given pointer as a constant string.
-const char *__asan_locate_address(void *addr, char *name, size_t name_size,
-                                  void **region_address, size_t *region_size);
-
-/// Gets the allocation stack trace and thread ID for a heap address (useful
-/// for calling from the debugger).
-///
-/// Stores up to <c><i>size</i></c> frames in <c><i>trace</i></c>. Returns
-/// the number of stored frames or 0 on error.
-///
-/// \param addr A heap address.
-/// \param trace A buffer to store the stack trace.
-/// \param size Size in bytes of the trace buffer.
-/// \param[out] thread_id The thread ID of the address.
-///
-/// \returns Returns the number of stored frames or 0 on error.
-size_t __asan_get_alloc_stack(void *addr, void **trace, size_t size,
-                              int *thread_id);
-
-/// Gets the free stack trace and thread ID for a heap address (useful for
-/// calling from the debugger).
-///
-/// Stores up to <c><i>size</i></c> frames in <c><i>trace</i></c>. Returns
-/// the number of stored frames or 0 on error.
-///
-/// \param addr A heap address.
-/// \param trace A buffer to store the stack trace.
-/// \param size Size in bytes of the trace buffer.
-/// \param[out] thread_id The thread ID of the address.
-///
-/// \returns Returns the number of stored frames or 0 on error.
-size_t __asan_get_free_stack(void *addr, void **trace, size_t size,
-                             int *thread_id);
-
-/// Gets the current shadow memory mapping (useful for calling from the
-/// debugger).
-///
-/// \param[out] shadow_scale Shadow scale value.
-/// \param[out] shadow_offset Offset value.
-void __asan_get_shadow_mapping(size_t *shadow_scale, size_t *shadow_offset);
-
-/// This is an internal function that is called to report an error. However,
-/// it is still a part of the interface because you might want to set a
-/// breakpoint on this function in the debugger.
-///
-/// \param pc <c><i>pc</i></c> value of the ASan error.
-/// \param bp <c><i>bp</i></c> value of the ASan error.
-/// \param sp <c><i>sp</i></c> value of the ASan error.
-/// \param addr Address of the ASan error.
-/// \param is_write True if the error is a write error; false otherwise.
-/// \param access_size Size of the memory access of the ASan error.
-void __asan_report_error(void *pc, void *bp, void *sp,
-                         void *addr, int is_write, size_t access_size);
-
-// Deprecated. Call __sanitizer_set_death_callback instead.
-void __asan_set_death_callback(void (*callback)(void));
-
-/// Sets the callback function to be called during ASan error reporting.
-///
-/// The callback provides a string pointer to the report.
-///
-/// \param callback User-provided function.
-void __asan_set_error_report_callback(void (*callback)(const char *));
-
-/// User-provided callback on ASan errors.
-///
-/// You can provide a function that would be called immediately when ASan
-/// detects an error. This is useful in cases when ASan detects an error but
-/// your program crashes before the ASan report is printed.
-void __asan_on_error(void);
-
-/// Prints accumulated statistics to <c>stderr</c> (useful for calling from the
-/// debugger).
-void __asan_print_accumulated_stats(void);
-
-/// User-provided default option settings.
-///
-/// You can provide your own implementation of this function to return a string
-/// containing ASan runtime options (for example,
-/// <c>verbosity=1:halt_on_error=0</c>).
-///
-/// \returns Default options string.
-const char* __asan_default_options(void);
-
-// The following two functions facilitate garbage collection in presence of
-// ASan's fake stack.
-
-/// Gets an opaque handler to the current thread's fake stack.
-///
-/// Returns an opaque handler to be used by
-/// <c>__asan_addr_is_in_fake_stack()</c>. Returns NULL if the current thread
-/// does not have a fake stack.
-///
-/// \returns An opaque handler to the fake stack or NULL.
-void *__asan_get_current_fake_stack(void);
-
-/// Checks if an address belongs to a given fake stack.
-///
-/// If <c><i>fake_stack</i></c> is non-NULL and <c><i>addr</i></c> belongs to a
-/// fake frame in <c><i>fake_stack</i></c>, returns the address of the real
-/// stack that corresponds to the fake frame and sets <c><i>beg</i></c> and
-/// <c><i>end</i></c> to the boundaries of this fake frame. Otherwise returns
-/// NULL and does not touch <c><i>beg</i></c> and <c><i>end</i></c>.
-///
-/// If <c><i>beg</i></c> or <c><i>end</i></c> are NULL, they are not touched.
-///
-/// \note This function can be called from a thread other than the owner of
-/// <c><i>fake_stack</i></c>, but the owner thread needs to be alive.
-///
-/// \param fake_stack An opaque handler to a fake stack.
-/// \param addr Address to test.
-/// \param[out] beg Beginning of fake frame.
-/// \param[out] end End of fake frame.
-/// \returns Stack address or NULL.
-void *__asan_addr_is_in_fake_stack(void *fake_stack, void *addr, void **beg,
-                                   void **end);
-
-/// Performs shadow memory cleanup of the current thread's stack before a
-/// function marked with the <c>[[noreturn]]</c> attribute is called.
-///
-/// To avoid false positives on the stack, must be called before no-return
-/// functions like <c>_exit()</c> and <c>execl()</c>.
-void __asan_handle_no_return(void);
-
-/// Update allocation stack trace for the given allocation to the current stack
-/// trace. Returns 1 if successfull, 0 if not.
-int __asan_update_allocation_context(void* addr);
-
-#ifdef __cplusplus
-}  // extern "C"
-#endif
-
-#endif  // SANITIZER_ASAN_INTERFACE_H
diff --git a/linux-x86/lib64/clang/14.0.1/include/sanitizer/common_interface_defs.h b/linux-x86/lib64/clang/14.0.1/include/sanitizer/common_interface_defs.h
deleted file mode 100644
index cd69285..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/sanitizer/common_interface_defs.h
+++ /dev/null
@@ -1,357 +0,0 @@
-//===-- sanitizer/common_interface_defs.h -----------------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// Common part of the public sanitizer interface.
-//===----------------------------------------------------------------------===//
-
-#ifndef SANITIZER_COMMON_INTERFACE_DEFS_H
-#define SANITIZER_COMMON_INTERFACE_DEFS_H
-
-#include <stddef.h>
-#include <stdint.h>
-
-// GCC does not understand __has_feature.
-#if !defined(__has_feature)
-#define __has_feature(x) 0
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-// Arguments for __sanitizer_sandbox_on_notify() below.
-typedef struct {
-  // Enable sandbox support in sanitizer coverage.
-  int coverage_sandboxed;
-  // File descriptor to write coverage data to. If -1 is passed, a file will
-  // be pre-opened by __sanitizer_sandobx_on_notify(). This field has no
-  // effect if coverage_sandboxed == 0.
-  intptr_t coverage_fd;
-  // If non-zero, split the coverage data into well-formed blocks. This is
-  // useful when coverage_fd is a socket descriptor. Each block will contain
-  // a header, allowing data from multiple processes to be sent over the same
-  // socket.
-  unsigned int coverage_max_block_size;
-} __sanitizer_sandbox_arguments;
-
-// Tell the tools to write their reports to "path.<pid>" instead of stderr.
-void __sanitizer_set_report_path(const char *path);
-// Tell the tools to write their reports to the provided file descriptor
-// (casted to void *).
-void __sanitizer_set_report_fd(void *fd);
-// Get the current full report file path, if a path was specified by
-// an earlier call to __sanitizer_set_report_path. Returns null otherwise.
-const char *__sanitizer_get_report_path();
-
-// Notify the tools that the sandbox is going to be turned on. The reserved
-// parameter will be used in the future to hold a structure with functions
-// that the tools may call to bypass the sandbox.
-void __sanitizer_sandbox_on_notify(__sanitizer_sandbox_arguments *args);
-
-// This function is called by the tool when it has just finished reporting
-// an error. 'error_summary' is a one-line string that summarizes
-// the error message. This function can be overridden by the client.
-void __sanitizer_report_error_summary(const char *error_summary);
-
-// Some of the sanitizers (for example ASan/TSan) could miss bugs that happen
-// in unaligned loads/stores. To find such bugs reliably, you need to replace
-// plain unaligned loads/stores with these calls.
-
-/// Loads a 16-bit unaligned value.
-///
-/// \param p Pointer to unaligned memory.
-///
-/// \returns Loaded value.
-uint16_t __sanitizer_unaligned_load16(const void *p);
-
-/// Loads a 32-bit unaligned value.
-///
-/// \param p Pointer to unaligned memory.
-///
-/// \returns Loaded value.
-uint32_t __sanitizer_unaligned_load32(const void *p);
-
-/// Loads a 64-bit unaligned value.
-///
-/// \param p Pointer to unaligned memory.
-///
-/// \returns Loaded value.
-uint64_t __sanitizer_unaligned_load64(const void *p);
-
-/// Stores a 16-bit unaligned value.
-///
-/// \param p Pointer to unaligned memory.
-/// \param x 16-bit value to store.
-void __sanitizer_unaligned_store16(void *p, uint16_t x);
-
-/// Stores a 32-bit unaligned value.
-///
-/// \param p Pointer to unaligned memory.
-/// \param x 32-bit value to store.
-void __sanitizer_unaligned_store32(void *p, uint32_t x);
-
-/// Stores a 64-bit unaligned value.
-///
-/// \param p Pointer to unaligned memory.
-/// \param x 64-bit value to store.
-void __sanitizer_unaligned_store64(void *p, uint64_t x);
-
-// Returns 1 on the first call, then returns 0 thereafter.  Called by the tool
-// to ensure only one report is printed when multiple errors occur
-// simultaneously.
-int __sanitizer_acquire_crash_state();
-
-/// Annotates the current state of a contiguous container, such as
-/// <c>std::vector</c>, <c>std::string</c>, or similar.
-///
-/// A contiguous container is a container that keeps all of its elements
-/// in a contiguous region of memory. The container owns the region of memory
-/// <c>[beg, end)</c>; the memory <c>[beg, mid)</c> is used to store the
-/// current elements, and the memory <c>[mid, end)</c> is reserved for future
-/// elements (<c>beg <= mid <= end</c>). For example, in
-/// <c>std::vector<> v</c>:
-///
-/// \code
-///   beg = &v[0];
-///   end = beg + v.capacity() * sizeof(v[0]);
-///   mid = beg + v.size()     * sizeof(v[0]);
-/// \endcode
-///
-/// This annotation tells the Sanitizer tool about the current state of the
-/// container so that the tool can report errors when memory from
-/// <c>[mid, end)</c> is accessed. Insert this annotation into methods like
-/// <c>push_back()</c> or <c>pop_back()</c>. Supply the old and new values of
-/// <c>mid</c>(<c><i>old_mid</i></c> and <c><i>new_mid</i></c>). In the initial
-/// state <c>mid == end</c>, so that should be the final state when the
-/// container is destroyed or when the container reallocates the storage.
-///
-/// For ASan, <c><i>beg</i></c> should be 8-aligned and <c><i>end</i></c>
-/// should be either 8-aligned or it should point to the end of a separate
-/// heap-, stack-, or global-allocated buffer. So the following example will
-/// not work:
-///
-/// \code
-///   int64_t x[2]; // 16 bytes, 8-aligned
-///   char *beg = (char *)&x[0];
-///   char *end = beg + 12; // Not 8-aligned, not the end of the buffer
-/// \endcode
-///
-/// The following, however, will work:
-/// \code
-///   int32_t x[3]; // 12 bytes, but 8-aligned under ASan.
-///   char *beg = (char*)&x[0];
-///   char *end = beg + 12; // Not 8-aligned, but is the end of the buffer
-/// \endcode
-///
-/// \note  Use this function with caution and do not use for anything other
-/// than vector-like classes.
-///
-/// \param beg Beginning of memory region.
-/// \param end End of memory region.
-/// \param old_mid Old middle of memory region.
-/// \param new_mid New middle of memory region.
-void __sanitizer_annotate_contiguous_container(const void *beg,
-                                               const void *end,
-                                               const void *old_mid,
-                                               const void *new_mid);
-
-/// Returns true if the contiguous container <c>[beg, end)</c> is properly
-/// poisoned.
-///
-/// Proper poisoning could occur, for example, with
-/// <c>__sanitizer_annotate_contiguous_container</c>), that is, if
-/// <c>[beg, mid)</c> is addressable and <c>[mid, end)</c> is unaddressable.
-/// Full verification requires O (<c>end - beg</c>) time; this function tries
-/// to avoid such complexity by touching only parts of the container around
-/// <c><i>beg</i></c>, <c><i>mid</i></c>, and <c><i>end</i></c>.
-///
-/// \param beg Beginning of memory region.
-/// \param mid Middle of memory region.
-/// \param end Old end of memory region.
-///
-/// \returns True if the contiguous container <c>[beg, end)</c> is properly
-///  poisoned.
-int __sanitizer_verify_contiguous_container(const void *beg, const void *mid,
-                                            const void *end);
-
-/// Similar to <c>__sanitizer_verify_contiguous_container()</c> but also
-/// returns the address of the first improperly poisoned byte.
-///
-/// Returns NULL if the area is poisoned properly.
-///
-/// \param beg Beginning of memory region.
-/// \param mid Middle of memory region.
-/// \param end Old end of memory region.
-///
-/// \returns The bad address or NULL.
-const void *__sanitizer_contiguous_container_find_bad_address(const void *beg,
-                                                              const void *mid,
-                                                              const void *end);
-
-/// Prints the stack trace leading to this call (useful for calling from the
-/// debugger).
-void __sanitizer_print_stack_trace(void);
-
-// Symbolizes the supplied 'pc' using the format string 'fmt'.
-// Outputs at most 'out_buf_size' bytes into 'out_buf'.
-// If 'out_buf' is not empty then output is zero or more non empty C strings
-// followed by single empty C string. Multiple strings can be returned if PC
-// corresponds to inlined function. Inlined frames are printed in the order
-// from "most-inlined" to the "least-inlined", so the last frame should be the
-// not inlined function.
-// Inlined frames can be removed with 'symbolize_inline_frames=0'.
-// The format syntax is described in
-// lib/sanitizer_common/sanitizer_stacktrace_printer.h.
-void __sanitizer_symbolize_pc(void *pc, const char *fmt, char *out_buf,
-                              size_t out_buf_size);
-// Same as __sanitizer_symbolize_pc, but for data section (i.e. globals).
-void __sanitizer_symbolize_global(void *data_ptr, const char *fmt,
-                                  char *out_buf, size_t out_buf_size);
-
-/// Sets the callback to be called immediately before death on error.
-///
-/// Passing 0 will unset the callback.
-///
-/// \param callback User-provided callback.
-void __sanitizer_set_death_callback(void (*callback)(void));
-
-
-// Interceptor hooks.
-// Whenever a libc function interceptor is called, it checks if the
-// corresponding weak hook is defined, and calls it if it is indeed defined.
-// The primary use-case is data-flow-guided fuzzing, where the fuzzer needs
-// to know what is being passed to libc functions (for example memcmp).
-// FIXME: implement more hooks.
-
-/// Interceptor hook for <c>memcmp()</c>.
-///
-/// \param called_pc PC (program counter) address of the original call.
-/// \param s1 Pointer to block of memory.
-/// \param s2 Pointer to block of memory.
-/// \param n Number of bytes to compare.
-/// \param result Value returned by the intercepted function.
-void __sanitizer_weak_hook_memcmp(void *called_pc, const void *s1,
-                                  const void *s2, size_t n, int result);
-
-/// Interceptor hook for <c>strncmp()</c>.
-///
-/// \param called_pc PC (program counter) address of the original call.
-/// \param s1 Pointer to block of memory.
-/// \param s2 Pointer to block of memory.
-/// \param n Number of bytes to compare.
-/// \param result Value returned by the intercepted function.
-void __sanitizer_weak_hook_strncmp(void *called_pc, const char *s1,
-                                  const char *s2, size_t n, int result);
-
-/// Interceptor hook for <c>strncasecmp()</c>.
-///
-/// \param called_pc PC (program counter) address of the original call.
-/// \param s1 Pointer to block of memory.
-/// \param s2 Pointer to block of memory.
-/// \param n Number of bytes to compare.
-/// \param result Value returned by the intercepted function.
-void __sanitizer_weak_hook_strncasecmp(void *called_pc, const char *s1,
-                                       const char *s2, size_t n, int result);
-
-/// Interceptor hook for <c>strcmp()</c>.
-///
-/// \param called_pc PC (program counter) address of the original call.
-/// \param s1 Pointer to block of memory.
-/// \param s2 Pointer to block of memory.
-/// \param result Value returned by the intercepted function.
-void __sanitizer_weak_hook_strcmp(void *called_pc, const char *s1,
-                                  const char *s2, int result);
-
-/// Interceptor hook for <c>strcasecmp()</c>.
-///
-/// \param called_pc PC (program counter) address of the original call.
-/// \param s1 Pointer to block of memory.
-/// \param s2 Pointer to block of memory.
-/// \param result Value returned by the intercepted function.
-void __sanitizer_weak_hook_strcasecmp(void *called_pc, const char *s1,
-                                      const char *s2, int result);
-
-/// Interceptor hook for <c>strstr()</c>.
-///
-/// \param called_pc PC (program counter) address of the original call.
-/// \param s1 Pointer to block of memory.
-/// \param s2 Pointer to block of memory.
-/// \param result Value returned by the intercepted function.
-void __sanitizer_weak_hook_strstr(void *called_pc, const char *s1,
-                                  const char *s2, char *result);
-
-void __sanitizer_weak_hook_strcasestr(void *called_pc, const char *s1,
-                                      const char *s2, char *result);
-
-void __sanitizer_weak_hook_memmem(void *called_pc,
-                                  const void *s1, size_t len1,
-                                  const void *s2, size_t len2, void *result);
-
-// Prints stack traces for all live heap allocations ordered by total
-// allocation size until top_percent of total live heap is shown. top_percent
-// should be between 1 and 100. At most max_number_of_contexts contexts
-// (stack traces) are printed.
-// Experimental feature currently available only with ASan on Linux/x86_64.
-void __sanitizer_print_memory_profile(size_t top_percent,
-                                      size_t max_number_of_contexts);
-
-/// Notify ASan that a fiber switch has started (required only if implementing
-/// your own fiber library).
-///
-/// Before switching to a different stack, you must call
-/// <c>__sanitizer_start_switch_fiber()</c> with a pointer to the bottom of the
-/// destination stack and with its size. When code starts running on the new
-/// stack, it must call <c>__sanitizer_finish_switch_fiber()</c> to finalize
-/// the switch. The <c>__sanitizer_start_switch_fiber()</c> function takes a
-/// <c>void**</c> pointer argument to store the current fake stack if there is
-/// one (it is necessary when the runtime option
-/// <c>detect_stack_use_after_return</c> is enabled).
-///
-/// When restoring a stack, this <c>void**</c> pointer must be given to the
-/// <c>__sanitizer_finish_switch_fiber()</c> function. In most cases, this
-/// pointer can be stored on the stack immediately before switching. When
-/// leaving a fiber definitely, NULL must be passed as the first argument to
-/// the <c>__sanitizer_start_switch_fiber()</c> function so that the fake stack
-/// is destroyed. If your program does not need stack use-after-return
-/// detection, you can always pass NULL to these two functions.
-///
-/// \note The fake stack mechanism is disabled during fiber switch, so if a
-/// signal callback runs during the switch, it will not benefit from stack
-/// use-after-return detection.
-///
-/// \param[out] fake_stack_save Fake stack save location.
-/// \param bottom Bottom address of stack.
-/// \param size Size of stack in bytes.
-void __sanitizer_start_switch_fiber(void **fake_stack_save,
-                                    const void *bottom, size_t size);
-
-/// Notify ASan that a fiber switch has completed (required only if
-/// implementing your own fiber library).
-///
-/// When code starts running on the new stack, it must call
-/// <c>__sanitizer_finish_switch_fiber()</c> to finalize
-/// the switch. For usage details, see the description of
-/// <c>__sanitizer_start_switch_fiber()</c>.
-///
-/// \param fake_stack_save Fake stack save location.
-/// \param[out] bottom_old Bottom address of old stack.
-/// \param[out] size_old Size of old stack in bytes.
-void __sanitizer_finish_switch_fiber(void *fake_stack_save,
-                                     const void **bottom_old,
-                                     size_t *size_old);
-
-// Get full module name and calculate pc offset within it.
-// Returns 1 if pc belongs to some module, 0 if module was not found.
-int __sanitizer_get_module_and_offset_for_pc(void *pc, char *module_path,
-                                             size_t module_path_len,
-                                             void **pc_offset);
-
-#ifdef __cplusplus
-}  // extern "C"
-#endif
-
-#endif  // SANITIZER_COMMON_INTERFACE_DEFS_H
diff --git a/linux-x86/lib64/clang/14.0.1/include/sanitizer/tsan_interface.h b/linux-x86/lib64/clang/14.0.1/include/sanitizer/tsan_interface.h
deleted file mode 100644
index 565aa39..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/sanitizer/tsan_interface.h
+++ /dev/null
@@ -1,176 +0,0 @@
-//===-- tsan_interface.h ----------------------------------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// This file is a part of ThreadSanitizer (TSan), a race detector.
-//
-// Public interface header for TSan.
-//===----------------------------------------------------------------------===//
-#ifndef SANITIZER_TSAN_INTERFACE_H
-#define SANITIZER_TSAN_INTERFACE_H
-
-#include <sanitizer/common_interface_defs.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// __tsan_release establishes a happens-before relation with a preceding
-// __tsan_acquire on the same address.
-void __tsan_acquire(void *addr);
-void __tsan_release(void *addr);
-
-// Annotations for custom mutexes.
-// The annotations allow to get better reports (with sets of locked mutexes),
-// detect more types of bugs (e.g. mutex misuses, races between lock/unlock and
-// destruction and potential deadlocks) and improve precision and performance
-// (by ignoring individual atomic operations in mutex code). However, the
-// downside is that annotated mutex code itself is not checked for correctness.
-
-// Mutex creation flags are passed to __tsan_mutex_create annotation.
-// If mutex has no constructor and __tsan_mutex_create is not called,
-// the flags may be passed to __tsan_mutex_pre_lock/__tsan_mutex_post_lock
-// annotations.
-
-// Mutex has static storage duration and no-op constructor and destructor.
-// This effectively makes tsan ignore destroy annotation.
-static const unsigned __tsan_mutex_linker_init      = 1 << 0;
-// Mutex is write reentrant.
-static const unsigned __tsan_mutex_write_reentrant  = 1 << 1;
-// Mutex is read reentrant.
-static const unsigned __tsan_mutex_read_reentrant   = 1 << 2;
-// Mutex does not have static storage duration, and must not be used after
-// its destructor runs.  The opposite of __tsan_mutex_linker_init.
-// If this flag is passed to __tsan_mutex_destroy, then the destruction
-// is ignored unless this flag was previously set on the mutex.
-static const unsigned __tsan_mutex_not_static       = 1 << 8;
-
-// Mutex operation flags:
-
-// Denotes read lock operation.
-static const unsigned __tsan_mutex_read_lock        = 1 << 3;
-// Denotes try lock operation.
-static const unsigned __tsan_mutex_try_lock         = 1 << 4;
-// Denotes that a try lock operation has failed to acquire the mutex.
-static const unsigned __tsan_mutex_try_lock_failed  = 1 << 5;
-// Denotes that the lock operation acquires multiple recursion levels.
-// Number of levels is passed in recursion parameter.
-// This is useful for annotation of e.g. Java builtin monitors,
-// for which wait operation releases all recursive acquisitions of the mutex.
-static const unsigned __tsan_mutex_recursive_lock   = 1 << 6;
-// Denotes that the unlock operation releases all recursion levels.
-// Number of released levels is returned and later must be passed to
-// the corresponding __tsan_mutex_post_lock annotation.
-static const unsigned __tsan_mutex_recursive_unlock = 1 << 7;
-
-// Convenient composed constants.
-static const unsigned __tsan_mutex_try_read_lock =
-    __tsan_mutex_read_lock | __tsan_mutex_try_lock;
-static const unsigned __tsan_mutex_try_read_lock_failed =
-    __tsan_mutex_try_read_lock | __tsan_mutex_try_lock_failed;
-
-// Annotate creation of a mutex.
-// Supported flags: mutex creation flags.
-void __tsan_mutex_create(void *addr, unsigned flags);
-
-// Annotate destruction of a mutex.
-// Supported flags:
-//   - __tsan_mutex_linker_init
-//   - __tsan_mutex_not_static
-void __tsan_mutex_destroy(void *addr, unsigned flags);
-
-// Annotate start of lock operation.
-// Supported flags:
-//   - __tsan_mutex_read_lock
-//   - __tsan_mutex_try_lock
-//   - all mutex creation flags
-void __tsan_mutex_pre_lock(void *addr, unsigned flags);
-
-// Annotate end of lock operation.
-// Supported flags:
-//   - __tsan_mutex_read_lock (must match __tsan_mutex_pre_lock)
-//   - __tsan_mutex_try_lock (must match __tsan_mutex_pre_lock)
-//   - __tsan_mutex_try_lock_failed
-//   - __tsan_mutex_recursive_lock
-//   - all mutex creation flags
-void __tsan_mutex_post_lock(void *addr, unsigned flags, int recursion);
-
-// Annotate start of unlock operation.
-// Supported flags:
-//   - __tsan_mutex_read_lock
-//   - __tsan_mutex_recursive_unlock
-int __tsan_mutex_pre_unlock(void *addr, unsigned flags);
-
-// Annotate end of unlock operation.
-// Supported flags:
-//   - __tsan_mutex_read_lock (must match __tsan_mutex_pre_unlock)
-void __tsan_mutex_post_unlock(void *addr, unsigned flags);
-
-// Annotate start/end of notify/signal/broadcast operation.
-// Supported flags: none.
-void __tsan_mutex_pre_signal(void *addr, unsigned flags);
-void __tsan_mutex_post_signal(void *addr, unsigned flags);
-
-// Annotate start/end of a region of code where lock/unlock/signal operation
-// diverts to do something else unrelated to the mutex. This can be used to
-// annotate, for example, calls into cooperative scheduler or contention
-// profiling code.
-// These annotations must be called only from within
-// __tsan_mutex_pre/post_lock, __tsan_mutex_pre/post_unlock,
-// __tsan_mutex_pre/post_signal regions.
-// Supported flags: none.
-void __tsan_mutex_pre_divert(void *addr, unsigned flags);
-void __tsan_mutex_post_divert(void *addr, unsigned flags);
-
-// External race detection API.
-// Can be used by non-instrumented libraries to detect when their objects are
-// being used in an unsafe manner.
-//   - __tsan_external_read/__tsan_external_write annotates the logical reads
-//       and writes of the object at the specified address. 'caller_pc' should
-//       be the PC of the library user, which the library can obtain with e.g.
-//       `__builtin_return_address(0)`.
-//   - __tsan_external_register_tag registers a 'tag' with the specified name,
-//       which is later used in read/write annotations to denote the object type
-//   - __tsan_external_assign_tag can optionally mark a heap object with a tag
-void *__tsan_external_register_tag(const char *object_type);
-void __tsan_external_register_header(void *tag, const char *header);
-void __tsan_external_assign_tag(void *addr, void *tag);
-void __tsan_external_read(void *addr, void *caller_pc, void *tag);
-void __tsan_external_write(void *addr, void *caller_pc, void *tag);
-
-// Fiber switching API.
-//   - TSAN context for fiber can be created by __tsan_create_fiber
-//     and freed by __tsan_destroy_fiber.
-//   - TSAN context of current fiber or thread can be obtained
-//     by calling __tsan_get_current_fiber.
-//   - __tsan_switch_to_fiber should be called immediately before switch
-//     to fiber, such as call of swapcontext.
-//   - Fiber name can be set by __tsan_set_fiber_name.
-void *__tsan_get_current_fiber(void);
-void *__tsan_create_fiber(unsigned flags);
-void __tsan_destroy_fiber(void *fiber);
-void __tsan_switch_to_fiber(void *fiber, unsigned flags);
-void __tsan_set_fiber_name(void *fiber, const char *name);
-
-// Flags for __tsan_switch_to_fiber:
-// Do not establish a happens-before relation between fibers
-static const unsigned __tsan_switch_to_fiber_no_sync = 1 << 0;
-
-// User-provided callback invoked on TSan initialization.
-void __tsan_on_initialize();
-
-// User-provided callback invoked on TSan shutdown.
-// `failed` - Nonzero if TSan did detect issues, zero otherwise.
-// Return `0` if TSan should exit as if no issues were detected.  Return nonzero
-// if TSan should exit as if issues were detected.
-int __tsan_on_finalize(int failed);
-
-#ifdef __cplusplus
-}  // extern "C"
-#endif
-
-#endif  // SANITIZER_TSAN_INTERFACE_H
diff --git a/linux-x86/lib64/clang/14.0.1/include/tmmintrin.h b/linux-x86/lib64/clang/14.0.1/include/tmmintrin.h
deleted file mode 100644
index dbd959d..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/tmmintrin.h
+++ /dev/null
@@ -1,771 +0,0 @@
-/*===---- tmmintrin.h - SSSE3 intrinsics -----------------------------------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-
-#ifndef __TMMINTRIN_H
-#define __TMMINTRIN_H
-
-#include <pmmintrin.h>
-
-/* Define the default attributes for the functions in this file. */
-#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("ssse3"), __min_vector_width__(64)))
-#define __DEFAULT_FN_ATTRS_MMX __attribute__((__always_inline__, __nodebug__, __target__("mmx,ssse3"), __min_vector_width__(64)))
-
-/// Computes the absolute value of each of the packed 8-bit signed
-///    integers in the source operand and stores the 8-bit unsigned integer
-///    results in the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c PABSB instruction.
-///
-/// \param __a
-///    A 64-bit vector of [8 x i8].
-/// \returns A 64-bit integer vector containing the absolute values of the
-///    elements in the operand.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_abs_pi8(__m64 __a)
-{
-    return (__m64)__builtin_ia32_pabsb((__v8qi)__a);
-}
-
-/// Computes the absolute value of each of the packed 8-bit signed
-///    integers in the source operand and stores the 8-bit unsigned integer
-///    results in the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPABSB instruction.
-///
-/// \param __a
-///    A 128-bit vector of [16 x i8].
-/// \returns A 128-bit integer vector containing the absolute values of the
-///    elements in the operand.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_abs_epi8(__m128i __a)
-{
-    return (__m128i)__builtin_ia32_pabsb128((__v16qi)__a);
-}
-
-/// Computes the absolute value of each of the packed 16-bit signed
-///    integers in the source operand and stores the 16-bit unsigned integer
-///    results in the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c PABSW instruction.
-///
-/// \param __a
-///    A 64-bit vector of [4 x i16].
-/// \returns A 64-bit integer vector containing the absolute values of the
-///    elements in the operand.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_abs_pi16(__m64 __a)
-{
-    return (__m64)__builtin_ia32_pabsw((__v4hi)__a);
-}
-
-/// Computes the absolute value of each of the packed 16-bit signed
-///    integers in the source operand and stores the 16-bit unsigned integer
-///    results in the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPABSW instruction.
-///
-/// \param __a
-///    A 128-bit vector of [8 x i16].
-/// \returns A 128-bit integer vector containing the absolute values of the
-///    elements in the operand.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_abs_epi16(__m128i __a)
-{
-    return (__m128i)__builtin_ia32_pabsw128((__v8hi)__a);
-}
-
-/// Computes the absolute value of each of the packed 32-bit signed
-///    integers in the source operand and stores the 32-bit unsigned integer
-///    results in the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c PABSD instruction.
-///
-/// \param __a
-///    A 64-bit vector of [2 x i32].
-/// \returns A 64-bit integer vector containing the absolute values of the
-///    elements in the operand.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_abs_pi32(__m64 __a)
-{
-    return (__m64)__builtin_ia32_pabsd((__v2si)__a);
-}
-
-/// Computes the absolute value of each of the packed 32-bit signed
-///    integers in the source operand and stores the 32-bit unsigned integer
-///    results in the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPABSD instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x i32].
-/// \returns A 128-bit integer vector containing the absolute values of the
-///    elements in the operand.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_abs_epi32(__m128i __a)
-{
-    return (__m128i)__builtin_ia32_pabsd128((__v4si)__a);
-}
-
-/// Concatenates the two 128-bit integer vector operands, and
-///    right-shifts the result by the number of bytes specified in the immediate
-///    operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m128i _mm_alignr_epi8(__m128i a, __m128i b, const int n);
-/// \endcode
-///
-/// This intrinsic corresponds to the \c PALIGNR instruction.
-///
-/// \param a
-///    A 128-bit vector of [16 x i8] containing one of the source operands.
-/// \param b
-///    A 128-bit vector of [16 x i8] containing one of the source operands.
-/// \param n
-///    An immediate operand specifying how many bytes to right-shift the result.
-/// \returns A 128-bit integer vector containing the concatenated right-shifted
-///    value.
-#define _mm_alignr_epi8(a, b, n) \
-  ((__m128i)__builtin_ia32_palignr128((__v16qi)(__m128i)(a), \
-                                      (__v16qi)(__m128i)(b), (n)))
-
-/// Concatenates the two 64-bit integer vector operands, and right-shifts
-///    the result by the number of bytes specified in the immediate operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m64 _mm_alignr_pi8(__m64 a, __m64 b, const int n);
-/// \endcode
-///
-/// This intrinsic corresponds to the \c PALIGNR instruction.
-///
-/// \param a
-///    A 64-bit vector of [8 x i8] containing one of the source operands.
-/// \param b
-///    A 64-bit vector of [8 x i8] containing one of the source operands.
-/// \param n
-///    An immediate operand specifying how many bytes to right-shift the result.
-/// \returns A 64-bit integer vector containing the concatenated right-shifted
-///    value.
-#define _mm_alignr_pi8(a, b, n) \
-  ((__m64)__builtin_ia32_palignr((__v8qi)(__m64)(a), (__v8qi)(__m64)(b), (n)))
-
-/// Horizontally adds the adjacent pairs of values contained in 2 packed
-///    128-bit vectors of [8 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPHADDW instruction.
-///
-/// \param __a
-///    A 128-bit vector of [8 x i16] containing one of the source operands. The
-///    horizontal sums of the values are stored in the lower bits of the
-///    destination.
-/// \param __b
-///    A 128-bit vector of [8 x i16] containing one of the source operands. The
-///    horizontal sums of the values are stored in the upper bits of the
-///    destination.
-/// \returns A 128-bit vector of [8 x i16] containing the horizontal sums of
-///    both operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_hadd_epi16(__m128i __a, __m128i __b)
-{
-    return (__m128i)__builtin_ia32_phaddw128((__v8hi)__a, (__v8hi)__b);
-}
-
-/// Horizontally adds the adjacent pairs of values contained in 2 packed
-///    128-bit vectors of [4 x i32].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPHADDD instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x i32] containing one of the source operands. The
-///    horizontal sums of the values are stored in the lower bits of the
-///    destination.
-/// \param __b
-///    A 128-bit vector of [4 x i32] containing one of the source operands. The
-///    horizontal sums of the values are stored in the upper bits of the
-///    destination.
-/// \returns A 128-bit vector of [4 x i32] containing the horizontal sums of
-///    both operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_hadd_epi32(__m128i __a, __m128i __b)
-{
-    return (__m128i)__builtin_ia32_phaddd128((__v4si)__a, (__v4si)__b);
-}
-
-/// Horizontally adds the adjacent pairs of values contained in 2 packed
-///    64-bit vectors of [4 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c PHADDW instruction.
-///
-/// \param __a
-///    A 64-bit vector of [4 x i16] containing one of the source operands. The
-///    horizontal sums of the values are stored in the lower bits of the
-///    destination.
-/// \param __b
-///    A 64-bit vector of [4 x i16] containing one of the source operands. The
-///    horizontal sums of the values are stored in the upper bits of the
-///    destination.
-/// \returns A 64-bit vector of [4 x i16] containing the horizontal sums of both
-///    operands.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_hadd_pi16(__m64 __a, __m64 __b)
-{
-    return (__m64)__builtin_ia32_phaddw((__v4hi)__a, (__v4hi)__b);
-}
-
-/// Horizontally adds the adjacent pairs of values contained in 2 packed
-///    64-bit vectors of [2 x i32].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c PHADDD instruction.
-///
-/// \param __a
-///    A 64-bit vector of [2 x i32] containing one of the source operands. The
-///    horizontal sums of the values are stored in the lower bits of the
-///    destination.
-/// \param __b
-///    A 64-bit vector of [2 x i32] containing one of the source operands. The
-///    horizontal sums of the values are stored in the upper bits of the
-///    destination.
-/// \returns A 64-bit vector of [2 x i32] containing the horizontal sums of both
-///    operands.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_hadd_pi32(__m64 __a, __m64 __b)
-{
-    return (__m64)__builtin_ia32_phaddd((__v2si)__a, (__v2si)__b);
-}
-
-/// Horizontally adds the adjacent pairs of values contained in 2 packed
-///    128-bit vectors of [8 x i16]. Positive sums greater than 0x7FFF are
-///    saturated to 0x7FFF. Negative sums less than 0x8000 are saturated to
-///    0x8000.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPHADDSW instruction.
-///
-/// \param __a
-///    A 128-bit vector of [8 x i16] containing one of the source operands. The
-///    horizontal sums of the values are stored in the lower bits of the
-///    destination.
-/// \param __b
-///    A 128-bit vector of [8 x i16] containing one of the source operands. The
-///    horizontal sums of the values are stored in the upper bits of the
-///    destination.
-/// \returns A 128-bit vector of [8 x i16] containing the horizontal saturated
-///    sums of both operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_hadds_epi16(__m128i __a, __m128i __b)
-{
-    return (__m128i)__builtin_ia32_phaddsw128((__v8hi)__a, (__v8hi)__b);
-}
-
-/// Horizontally adds the adjacent pairs of values contained in 2 packed
-///    64-bit vectors of [4 x i16]. Positive sums greater than 0x7FFF are
-///    saturated to 0x7FFF. Negative sums less than 0x8000 are saturated to
-///    0x8000.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c PHADDSW instruction.
-///
-/// \param __a
-///    A 64-bit vector of [4 x i16] containing one of the source operands. The
-///    horizontal sums of the values are stored in the lower bits of the
-///    destination.
-/// \param __b
-///    A 64-bit vector of [4 x i16] containing one of the source operands. The
-///    horizontal sums of the values are stored in the upper bits of the
-///    destination.
-/// \returns A 64-bit vector of [4 x i16] containing the horizontal saturated
-///    sums of both operands.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_hadds_pi16(__m64 __a, __m64 __b)
-{
-    return (__m64)__builtin_ia32_phaddsw((__v4hi)__a, (__v4hi)__b);
-}
-
-/// Horizontally subtracts the adjacent pairs of values contained in 2
-///    packed 128-bit vectors of [8 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPHSUBW instruction.
-///
-/// \param __a
-///    A 128-bit vector of [8 x i16] containing one of the source operands. The
-///    horizontal differences between the values are stored in the lower bits of
-///    the destination.
-/// \param __b
-///    A 128-bit vector of [8 x i16] containing one of the source operands. The
-///    horizontal differences between the values are stored in the upper bits of
-///    the destination.
-/// \returns A 128-bit vector of [8 x i16] containing the horizontal differences
-///    of both operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_hsub_epi16(__m128i __a, __m128i __b)
-{
-    return (__m128i)__builtin_ia32_phsubw128((__v8hi)__a, (__v8hi)__b);
-}
-
-/// Horizontally subtracts the adjacent pairs of values contained in 2
-///    packed 128-bit vectors of [4 x i32].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPHSUBD instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x i32] containing one of the source operands. The
-///    horizontal differences between the values are stored in the lower bits of
-///    the destination.
-/// \param __b
-///    A 128-bit vector of [4 x i32] containing one of the source operands. The
-///    horizontal differences between the values are stored in the upper bits of
-///    the destination.
-/// \returns A 128-bit vector of [4 x i32] containing the horizontal differences
-///    of both operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_hsub_epi32(__m128i __a, __m128i __b)
-{
-    return (__m128i)__builtin_ia32_phsubd128((__v4si)__a, (__v4si)__b);
-}
-
-/// Horizontally subtracts the adjacent pairs of values contained in 2
-///    packed 64-bit vectors of [4 x i16].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c PHSUBW instruction.
-///
-/// \param __a
-///    A 64-bit vector of [4 x i16] containing one of the source operands. The
-///    horizontal differences between the values are stored in the lower bits of
-///    the destination.
-/// \param __b
-///    A 64-bit vector of [4 x i16] containing one of the source operands. The
-///    horizontal differences between the values are stored in the upper bits of
-///    the destination.
-/// \returns A 64-bit vector of [4 x i16] containing the horizontal differences
-///    of both operands.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_hsub_pi16(__m64 __a, __m64 __b)
-{
-    return (__m64)__builtin_ia32_phsubw((__v4hi)__a, (__v4hi)__b);
-}
-
-/// Horizontally subtracts the adjacent pairs of values contained in 2
-///    packed 64-bit vectors of [2 x i32].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c PHSUBD instruction.
-///
-/// \param __a
-///    A 64-bit vector of [2 x i32] containing one of the source operands. The
-///    horizontal differences between the values are stored in the lower bits of
-///    the destination.
-/// \param __b
-///    A 64-bit vector of [2 x i32] containing one of the source operands. The
-///    horizontal differences between the values are stored in the upper bits of
-///    the destination.
-/// \returns A 64-bit vector of [2 x i32] containing the horizontal differences
-///    of both operands.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_hsub_pi32(__m64 __a, __m64 __b)
-{
-    return (__m64)__builtin_ia32_phsubd((__v2si)__a, (__v2si)__b);
-}
-
-/// Horizontally subtracts the adjacent pairs of values contained in 2
-///    packed 128-bit vectors of [8 x i16]. Positive differences greater than
-///    0x7FFF are saturated to 0x7FFF. Negative differences less than 0x8000 are
-///    saturated to 0x8000.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPHSUBSW instruction.
-///
-/// \param __a
-///    A 128-bit vector of [8 x i16] containing one of the source operands. The
-///    horizontal differences between the values are stored in the lower bits of
-///    the destination.
-/// \param __b
-///    A 128-bit vector of [8 x i16] containing one of the source operands. The
-///    horizontal differences between the values are stored in the upper bits of
-///    the destination.
-/// \returns A 128-bit vector of [8 x i16] containing the horizontal saturated
-///    differences of both operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_hsubs_epi16(__m128i __a, __m128i __b)
-{
-    return (__m128i)__builtin_ia32_phsubsw128((__v8hi)__a, (__v8hi)__b);
-}
-
-/// Horizontally subtracts the adjacent pairs of values contained in 2
-///    packed 64-bit vectors of [4 x i16]. Positive differences greater than
-///    0x7FFF are saturated to 0x7FFF. Negative differences less than 0x8000 are
-///    saturated to 0x8000.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c PHSUBSW instruction.
-///
-/// \param __a
-///    A 64-bit vector of [4 x i16] containing one of the source operands. The
-///    horizontal differences between the values are stored in the lower bits of
-///    the destination.
-/// \param __b
-///    A 64-bit vector of [4 x i16] containing one of the source operands. The
-///    horizontal differences between the values are stored in the upper bits of
-///    the destination.
-/// \returns A 64-bit vector of [4 x i16] containing the horizontal saturated
-///    differences of both operands.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_hsubs_pi16(__m64 __a, __m64 __b)
-{
-    return (__m64)__builtin_ia32_phsubsw((__v4hi)__a, (__v4hi)__b);
-}
-
-/// Multiplies corresponding pairs of packed 8-bit unsigned integer
-///    values contained in the first source operand and packed 8-bit signed
-///    integer values contained in the second source operand, adds pairs of
-///    contiguous products with signed saturation, and writes the 16-bit sums to
-///    the corresponding bits in the destination.
-///
-///    For example, bits [7:0] of both operands are multiplied, bits [15:8] of
-///    both operands are multiplied, and the sum of both results is written to
-///    bits [15:0] of the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPMADDUBSW instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the first source operand.
-/// \param __b
-///    A 128-bit integer vector containing the second source operand.
-/// \returns A 128-bit integer vector containing the sums of products of both
-///    operands: \n
-///    \a R0 := (\a __a0 * \a __b0) + (\a __a1 * \a __b1) \n
-///    \a R1 := (\a __a2 * \a __b2) + (\a __a3 * \a __b3) \n
-///    \a R2 := (\a __a4 * \a __b4) + (\a __a5 * \a __b5) \n
-///    \a R3 := (\a __a6 * \a __b6) + (\a __a7 * \a __b7) \n
-///    \a R4 := (\a __a8 * \a __b8) + (\a __a9 * \a __b9) \n
-///    \a R5 := (\a __a10 * \a __b10) + (\a __a11 * \a __b11) \n
-///    \a R6 := (\a __a12 * \a __b12) + (\a __a13 * \a __b13) \n
-///    \a R7 := (\a __a14 * \a __b14) + (\a __a15 * \a __b15)
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maddubs_epi16(__m128i __a, __m128i __b)
-{
-    return (__m128i)__builtin_ia32_pmaddubsw128((__v16qi)__a, (__v16qi)__b);
-}
-
-/// Multiplies corresponding pairs of packed 8-bit unsigned integer
-///    values contained in the first source operand and packed 8-bit signed
-///    integer values contained in the second source operand, adds pairs of
-///    contiguous products with signed saturation, and writes the 16-bit sums to
-///    the corresponding bits in the destination.
-///
-///    For example, bits [7:0] of both operands are multiplied, bits [15:8] of
-///    both operands are multiplied, and the sum of both results is written to
-///    bits [15:0] of the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c PMADDUBSW instruction.
-///
-/// \param __a
-///    A 64-bit integer vector containing the first source operand.
-/// \param __b
-///    A 64-bit integer vector containing the second source operand.
-/// \returns A 64-bit integer vector containing the sums of products of both
-///    operands: \n
-///    \a R0 := (\a __a0 * \a __b0) + (\a __a1 * \a __b1) \n
-///    \a R1 := (\a __a2 * \a __b2) + (\a __a3 * \a __b3) \n
-///    \a R2 := (\a __a4 * \a __b4) + (\a __a5 * \a __b5) \n
-///    \a R3 := (\a __a6 * \a __b6) + (\a __a7 * \a __b7)
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_maddubs_pi16(__m64 __a, __m64 __b)
-{
-    return (__m64)__builtin_ia32_pmaddubsw((__v8qi)__a, (__v8qi)__b);
-}
-
-/// Multiplies packed 16-bit signed integer values, truncates the 32-bit
-///    products to the 18 most significant bits by right-shifting, rounds the
-///    truncated value by adding 1, and writes bits [16:1] to the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPMULHRSW instruction.
-///
-/// \param __a
-///    A 128-bit vector of [8 x i16] containing one of the source operands.
-/// \param __b
-///    A 128-bit vector of [8 x i16] containing one of the source operands.
-/// \returns A 128-bit vector of [8 x i16] containing the rounded and scaled
-///    products of both operands.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mulhrs_epi16(__m128i __a, __m128i __b)
-{
-    return (__m128i)__builtin_ia32_pmulhrsw128((__v8hi)__a, (__v8hi)__b);
-}
-
-/// Multiplies packed 16-bit signed integer values, truncates the 32-bit
-///    products to the 18 most significant bits by right-shifting, rounds the
-///    truncated value by adding 1, and writes bits [16:1] to the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c PMULHRSW instruction.
-///
-/// \param __a
-///    A 64-bit vector of [4 x i16] containing one of the source operands.
-/// \param __b
-///    A 64-bit vector of [4 x i16] containing one of the source operands.
-/// \returns A 64-bit vector of [4 x i16] containing the rounded and scaled
-///    products of both operands.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_mulhrs_pi16(__m64 __a, __m64 __b)
-{
-    return (__m64)__builtin_ia32_pmulhrsw((__v4hi)__a, (__v4hi)__b);
-}
-
-/// Copies the 8-bit integers from a 128-bit integer vector to the
-///    destination or clears 8-bit values in the destination, as specified by
-///    the second source operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSHUFB instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the values to be copied.
-/// \param __b
-///    A 128-bit integer vector containing control bytes corresponding to
-///    positions in the destination:
-///    Bit 7: \n
-///    1: Clear the corresponding byte in the destination. \n
-///    0: Copy the selected source byte to the corresponding byte in the
-///    destination. \n
-///    Bits [6:4] Reserved.  \n
-///    Bits [3:0] select the source byte to be copied.
-/// \returns A 128-bit integer vector containing the copied or cleared values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_shuffle_epi8(__m128i __a, __m128i __b)
-{
-    return (__m128i)__builtin_ia32_pshufb128((__v16qi)__a, (__v16qi)__b);
-}
-
-/// Copies the 8-bit integers from a 64-bit integer vector to the
-///    destination or clears 8-bit values in the destination, as specified by
-///    the second source operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c PSHUFB instruction.
-///
-/// \param __a
-///    A 64-bit integer vector containing the values to be copied.
-/// \param __b
-///    A 64-bit integer vector containing control bytes corresponding to
-///    positions in the destination:
-///    Bit 7: \n
-///    1: Clear the corresponding byte in the destination. \n
-///    0: Copy the selected source byte to the corresponding byte in the
-///    destination. \n
-///    Bits [3:0] select the source byte to be copied.
-/// \returns A 64-bit integer vector containing the copied or cleared values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_shuffle_pi8(__m64 __a, __m64 __b)
-{
-    return (__m64)__builtin_ia32_pshufb((__v8qi)__a, (__v8qi)__b);
-}
-
-/// For each 8-bit integer in the first source operand, perform one of
-///    the following actions as specified by the second source operand.
-///
-///    If the byte in the second source is negative, calculate the two's
-///    complement of the corresponding byte in the first source, and write that
-///    value to the destination. If the byte in the second source is positive,
-///    copy the corresponding byte from the first source to the destination. If
-///    the byte in the second source is zero, clear the corresponding byte in
-///    the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSIGNB instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the values to be copied.
-/// \param __b
-///    A 128-bit integer vector containing control bytes corresponding to
-///    positions in the destination.
-/// \returns A 128-bit integer vector containing the resultant values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_sign_epi8(__m128i __a, __m128i __b)
-{
-    return (__m128i)__builtin_ia32_psignb128((__v16qi)__a, (__v16qi)__b);
-}
-
-/// For each 16-bit integer in the first source operand, perform one of
-///    the following actions as specified by the second source operand.
-///
-///    If the word in the second source is negative, calculate the two's
-///    complement of the corresponding word in the first source, and write that
-///    value to the destination. If the word in the second source is positive,
-///    copy the corresponding word from the first source to the destination. If
-///    the word in the second source is zero, clear the corresponding word in
-///    the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSIGNW instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the values to be copied.
-/// \param __b
-///    A 128-bit integer vector containing control words corresponding to
-///    positions in the destination.
-/// \returns A 128-bit integer vector containing the resultant values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_sign_epi16(__m128i __a, __m128i __b)
-{
-    return (__m128i)__builtin_ia32_psignw128((__v8hi)__a, (__v8hi)__b);
-}
-
-/// For each 32-bit integer in the first source operand, perform one of
-///    the following actions as specified by the second source operand.
-///
-///    If the doubleword in the second source is negative, calculate the two's
-///    complement of the corresponding word in the first source, and write that
-///    value to the destination. If the doubleword in the second source is
-///    positive, copy the corresponding word from the first source to the
-///    destination. If the doubleword in the second source is zero, clear the
-///    corresponding word in the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSIGND instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the values to be copied.
-/// \param __b
-///    A 128-bit integer vector containing control doublewords corresponding to
-///    positions in the destination.
-/// \returns A 128-bit integer vector containing the resultant values.
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_sign_epi32(__m128i __a, __m128i __b)
-{
-    return (__m128i)__builtin_ia32_psignd128((__v4si)__a, (__v4si)__b);
-}
-
-/// For each 8-bit integer in the first source operand, perform one of
-///    the following actions as specified by the second source operand.
-///
-///    If the byte in the second source is negative, calculate the two's
-///    complement of the corresponding byte in the first source, and write that
-///    value to the destination. If the byte in the second source is positive,
-///    copy the corresponding byte from the first source to the destination. If
-///    the byte in the second source is zero, clear the corresponding byte in
-///    the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c PSIGNB instruction.
-///
-/// \param __a
-///    A 64-bit integer vector containing the values to be copied.
-/// \param __b
-///    A 64-bit integer vector containing control bytes corresponding to
-///    positions in the destination.
-/// \returns A 64-bit integer vector containing the resultant values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_sign_pi8(__m64 __a, __m64 __b)
-{
-    return (__m64)__builtin_ia32_psignb((__v8qi)__a, (__v8qi)__b);
-}
-
-/// For each 16-bit integer in the first source operand, perform one of
-///    the following actions as specified by the second source operand.
-///
-///    If the word in the second source is negative, calculate the two's
-///    complement of the corresponding word in the first source, and write that
-///    value to the destination. If the word in the second source is positive,
-///    copy the corresponding word from the first source to the destination. If
-///    the word in the second source is zero, clear the corresponding word in
-///    the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c PSIGNW instruction.
-///
-/// \param __a
-///    A 64-bit integer vector containing the values to be copied.
-/// \param __b
-///    A 64-bit integer vector containing control words corresponding to
-///    positions in the destination.
-/// \returns A 64-bit integer vector containing the resultant values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_sign_pi16(__m64 __a, __m64 __b)
-{
-    return (__m64)__builtin_ia32_psignw((__v4hi)__a, (__v4hi)__b);
-}
-
-/// For each 32-bit integer in the first source operand, perform one of
-///    the following actions as specified by the second source operand.
-///
-///    If the doubleword in the second source is negative, calculate the two's
-///    complement of the corresponding doubleword in the first source, and
-///    write that value to the destination. If the doubleword in the second
-///    source is positive, copy the corresponding doubleword from the first
-///    source to the destination. If the doubleword in the second source is
-///    zero, clear the corresponding doubleword in the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c PSIGND instruction.
-///
-/// \param __a
-///    A 64-bit integer vector containing the values to be copied.
-/// \param __b
-///    A 64-bit integer vector containing two control doublewords corresponding
-///    to positions in the destination.
-/// \returns A 64-bit integer vector containing the resultant values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_sign_pi32(__m64 __a, __m64 __b)
-{
-    return (__m64)__builtin_ia32_psignd((__v2si)__a, (__v2si)__b);
-}
-
-#undef __DEFAULT_FN_ATTRS
-#undef __DEFAULT_FN_ATTRS_MMX
-
-#endif /* __TMMINTRIN_H */
diff --git a/linux-x86/lib64/clang/14.0.1/include/wmmintrin.h b/linux-x86/lib64/clang/14.0.1/include/wmmintrin.h
deleted file mode 100644
index f932ca8..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/wmmintrin.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*===---- wmmintrin.h - AES intrinsics ------------------------------------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-
-#ifndef __WMMINTRIN_H
-#define __WMMINTRIN_H
-
-#include <emmintrin.h>
-
-#include <__wmmintrin_aes.h>
-
-#include <__wmmintrin_pclmul.h>
-
-#endif /* __WMMINTRIN_H */
diff --git a/linux-x86/lib64/clang/14.0.1/include/x86gprintrin.h b/linux-x86/lib64/clang/14.0.1/include/x86gprintrin.h
deleted file mode 100644
index 327ccb7..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/x86gprintrin.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*===--------------- x86gprintrin.h - X86 GPR intrinsics ------------------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-
-#ifndef __X86GPRINTRIN_H
-#define __X86GPRINTRIN_H
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__HRESET__)
-#include <hresetintrin.h>
-#endif
-
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
-    defined(__UINTR__)
-#include <uintrintrin.h>
-#endif
-
-#define __SSC_MARK(Tag)                                                        \
-  __asm__ __volatile__("movl %%ebx, %%eax; movl %0, %%ebx; .byte 0x64, 0x67, " \
-                       "0x90; movl %%eax, %%ebx;" ::"i"(Tag)                   \
-                       : "%eax");
-
-#endif /* __X86GPRINTRIN_H */
diff --git a/linux-x86/lib64/clang/14.0.1/include/xmmintrin.h b/linux-x86/lib64/clang/14.0.1/include/xmmintrin.h
deleted file mode 100644
index 620453c..0000000
--- a/linux-x86/lib64/clang/14.0.1/include/xmmintrin.h
+++ /dev/null
@@ -1,3008 +0,0 @@
-/*===---- xmmintrin.h - SSE intrinsics -------------------------------------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-
-#ifndef __XMMINTRIN_H
-#define __XMMINTRIN_H
-
-#include <mmintrin.h>
-
-typedef int __v4si __attribute__((__vector_size__(16)));
-typedef float __v4sf __attribute__((__vector_size__(16)));
-typedef float __m128 __attribute__((__vector_size__(16), __aligned__(16)));
-
-typedef float __m128_u __attribute__((__vector_size__(16), __aligned__(1)));
-
-/* Unsigned types */
-typedef unsigned int __v4su __attribute__((__vector_size__(16)));
-
-/* This header should only be included in a hosted environment as it depends on
- * a standard library to provide allocation routines. */
-#if __STDC_HOSTED__
-#include <mm_malloc.h>
-#endif
-
-/* Define the default attributes for the functions in this file. */
-#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128)))
-#define __DEFAULT_FN_ATTRS_MMX __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64)))
-
-/// Adds the 32-bit float values in the low-order bits of the operands.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VADDSS / ADDSS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the source operands.
-///    The lower 32 bits of this operand are used in the calculation.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the source operands.
-///    The lower 32 bits of this operand are used in the calculation.
-/// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the sum
-///    of the lower 32 bits of both operands. The upper 96 bits are copied from
-///    the upper 96 bits of the first source operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_add_ss(__m128 __a, __m128 __b)
-{
-  __a[0] += __b[0];
-  return __a;
-}
-
-/// Adds two 128-bit vectors of [4 x float], and returns the results of
-///    the addition.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VADDPS / ADDPS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the source operands.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the source operands.
-/// \returns A 128-bit vector of [4 x float] containing the sums of both
-///    operands.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_add_ps(__m128 __a, __m128 __b)
-{
-  return (__m128)((__v4sf)__a + (__v4sf)__b);
-}
-
-/// Subtracts the 32-bit float value in the low-order bits of the second
-///    operand from the corresponding value in the first operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VSUBSS / SUBSS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing the minuend. The lower 32 bits
-///    of this operand are used in the calculation.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing the subtrahend. The lower 32
-///    bits of this operand are used in the calculation.
-/// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the
-///    difference of the lower 32 bits of both operands. The upper 96 bits are
-///    copied from the upper 96 bits of the first source operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_sub_ss(__m128 __a, __m128 __b)
-{
-  __a[0] -= __b[0];
-  return __a;
-}
-
-/// Subtracts each of the values of the second operand from the first
-///    operand, both of which are 128-bit vectors of [4 x float] and returns
-///    the results of the subtraction.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VSUBPS / SUBPS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing the minuend.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing the subtrahend.
-/// \returns A 128-bit vector of [4 x float] containing the differences between
-///    both operands.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_sub_ps(__m128 __a, __m128 __b)
-{
-  return (__m128)((__v4sf)__a - (__v4sf)__b);
-}
-
-/// Multiplies two 32-bit float values in the low-order bits of the
-///    operands.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMULSS / MULSS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the source operands.
-///    The lower 32 bits of this operand are used in the calculation.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the source operands.
-///    The lower 32 bits of this operand are used in the calculation.
-/// \returns A 128-bit vector of [4 x float] containing the product of the lower
-///    32 bits of both operands. The upper 96 bits are copied from the upper 96
-///    bits of the first source operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mul_ss(__m128 __a, __m128 __b)
-{
-  __a[0] *= __b[0];
-  return __a;
-}
-
-/// Multiplies two 128-bit vectors of [4 x float] and returns the
-///    results of the multiplication.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMULPS / MULPS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the source operands.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the source operands.
-/// \returns A 128-bit vector of [4 x float] containing the products of both
-///    operands.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mul_ps(__m128 __a, __m128 __b)
-{
-  return (__m128)((__v4sf)__a * (__v4sf)__b);
-}
-
-/// Divides the value in the low-order 32 bits of the first operand by
-///    the corresponding value in the second operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VDIVSS / DIVSS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing the dividend. The lower 32
-///    bits of this operand are used in the calculation.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing the divisor. The lower 32 bits
-///    of this operand are used in the calculation.
-/// \returns A 128-bit vector of [4 x float] containing the quotients of the
-///    lower 32 bits of both operands. The upper 96 bits are copied from the
-///    upper 96 bits of the first source operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_div_ss(__m128 __a, __m128 __b)
-{
-  __a[0] /= __b[0];
-  return __a;
-}
-
-/// Divides two 128-bit vectors of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VDIVPS / DIVPS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing the dividend.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing the divisor.
-/// \returns A 128-bit vector of [4 x float] containing the quotients of both
-///    operands.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_div_ps(__m128 __a, __m128 __b)
-{
-  return (__m128)((__v4sf)__a / (__v4sf)__b);
-}
-
-/// Calculates the square root of the value stored in the low-order bits
-///    of a 128-bit vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VSQRTSS / SQRTSS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the calculation.
-/// \returns A 128-bit vector of [4 x float] containing the square root of the
-///    value in the low-order bits of the operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_sqrt_ss(__m128 __a)
-{
-  return (__m128)__builtin_ia32_sqrtss((__v4sf)__a);
-}
-
-/// Calculates the square roots of the values stored in a 128-bit vector
-///    of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VSQRTPS / SQRTPS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \returns A 128-bit vector of [4 x float] containing the square roots of the
-///    values in the operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_sqrt_ps(__m128 __a)
-{
-  return __builtin_ia32_sqrtps((__v4sf)__a);
-}
-
-/// Calculates the approximate reciprocal of the value stored in the
-///    low-order bits of a 128-bit vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VRCPSS / RCPSS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the calculation.
-/// \returns A 128-bit vector of [4 x float] containing the approximate
-///    reciprocal of the value in the low-order bits of the operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_rcp_ss(__m128 __a)
-{
-  return (__m128)__builtin_ia32_rcpss((__v4sf)__a);
-}
-
-/// Calculates the approximate reciprocals of the values stored in a
-///    128-bit vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VRCPPS / RCPPS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \returns A 128-bit vector of [4 x float] containing the approximate
-///    reciprocals of the values in the operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_rcp_ps(__m128 __a)
-{
-  return (__m128)__builtin_ia32_rcpps((__v4sf)__a);
-}
-
-/// Calculates the approximate reciprocal of the square root of the value
-///    stored in the low-order bits of a 128-bit vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VRSQRTSS / RSQRTSS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the calculation.
-/// \returns A 128-bit vector of [4 x float] containing the approximate
-///    reciprocal of the square root of the value in the low-order bits of the
-///    operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_rsqrt_ss(__m128 __a)
-{
-  return __builtin_ia32_rsqrtss((__v4sf)__a);
-}
-
-/// Calculates the approximate reciprocals of the square roots of the
-///    values stored in a 128-bit vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VRSQRTPS / RSQRTPS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \returns A 128-bit vector of [4 x float] containing the approximate
-///    reciprocals of the square roots of the values in the operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_rsqrt_ps(__m128 __a)
-{
-  return __builtin_ia32_rsqrtps((__v4sf)__a);
-}
-
-/// Compares two 32-bit float values in the low-order bits of both
-///    operands and returns the lesser value in the low-order bits of the
-///    vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMINSS / MINSS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the
-///    minimum value between both operands. The upper 96 bits are copied from
-///    the upper 96 bits of the first source operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_min_ss(__m128 __a, __m128 __b)
-{
-  return __builtin_ia32_minss((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares two 128-bit vectors of [4 x float] and returns the lesser
-///    of each pair of values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMINPS / MINPS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the operands.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the operands.
-/// \returns A 128-bit vector of [4 x float] containing the minimum values
-///    between both operands.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_min_ps(__m128 __a, __m128 __b)
-{
-  return __builtin_ia32_minps((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares two 32-bit float values in the low-order bits of both
-///    operands and returns the greater value in the low-order bits of a 128-bit
-///    vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMAXSS / MAXSS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the
-///    maximum value between both operands. The upper 96 bits are copied from
-///    the upper 96 bits of the first source operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_max_ss(__m128 __a, __m128 __b)
-{
-  return __builtin_ia32_maxss((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares two 128-bit vectors of [4 x float] and returns the greater
-///    of each pair of values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMAXPS / MAXPS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the operands.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the operands.
-/// \returns A 128-bit vector of [4 x float] containing the maximum values
-///    between both operands.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_max_ps(__m128 __a, __m128 __b)
-{
-  return __builtin_ia32_maxps((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Performs a bitwise AND of two 128-bit vectors of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VANDPS / ANDPS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector containing one of the source operands.
-/// \param __b
-///    A 128-bit vector containing one of the source operands.
-/// \returns A 128-bit vector of [4 x float] containing the bitwise AND of the
-///    values between both operands.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_and_ps(__m128 __a, __m128 __b)
-{
-  return (__m128)((__v4su)__a & (__v4su)__b);
-}
-
-/// Performs a bitwise AND of two 128-bit vectors of [4 x float], using
-///    the one's complement of the values contained in the first source
-///    operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VANDNPS / ANDNPS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing the first source operand. The
-///    one's complement of this value is used in the bitwise AND.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing the second source operand.
-/// \returns A 128-bit vector of [4 x float] containing the bitwise AND of the
-///    one's complement of the first operand and the values in the second
-///    operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_andnot_ps(__m128 __a, __m128 __b)
-{
-  return (__m128)(~(__v4su)__a & (__v4su)__b);
-}
-
-/// Performs a bitwise OR of two 128-bit vectors of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VORPS / ORPS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the source operands.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the source operands.
-/// \returns A 128-bit vector of [4 x float] containing the bitwise OR of the
-///    values between both operands.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_or_ps(__m128 __a, __m128 __b)
-{
-  return (__m128)((__v4su)__a | (__v4su)__b);
-}
-
-/// Performs a bitwise exclusive OR of two 128-bit vectors of
-///    [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VXORPS / XORPS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the source operands.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the source operands.
-/// \returns A 128-bit vector of [4 x float] containing the bitwise exclusive OR
-///    of the values between both operands.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_xor_ps(__m128 __a, __m128 __b)
-{
-  return (__m128)((__v4su)__a ^ (__v4su)__b);
-}
-
-/// Compares two 32-bit float values in the low-order bits of both
-///    operands for equality and returns the result of the comparison in the
-///    low-order bits of a vector [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPEQSS / CMPEQSS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \returns A 128-bit vector of [4 x float] containing the comparison results
-///    in the low-order bits.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmpeq_ss(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_ia32_cmpeqss((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares each of the corresponding 32-bit float values of the
-///    128-bit vectors of [4 x float] for equality.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPEQPS / CMPEQPS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \param __b
-///    A 128-bit vector of [4 x float].
-/// \returns A 128-bit vector of [4 x float] containing the comparison results.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmpeq_ps(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_ia32_cmpeqps((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares two 32-bit float values in the low-order bits of both
-///    operands to determine if the value in the first operand is less than the
-///    corresponding value in the second operand and returns the result of the
-///    comparison in the low-order bits of a vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPLTSS / CMPLTSS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \returns A 128-bit vector of [4 x float] containing the comparison results
-///    in the low-order bits.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmplt_ss(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_ia32_cmpltss((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares each of the corresponding 32-bit float values of the
-///    128-bit vectors of [4 x float] to determine if the values in the first
-///    operand are less than those in the second operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPLTPS / CMPLTPS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \param __b
-///    A 128-bit vector of [4 x float].
-/// \returns A 128-bit vector of [4 x float] containing the comparison results.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmplt_ps(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_ia32_cmpltps((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares two 32-bit float values in the low-order bits of both
-///    operands to determine if the value in the first operand is less than or
-///    equal to the corresponding value in the second operand and returns the
-///    result of the comparison in the low-order bits of a vector of
-///    [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPLESS / CMPLESS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \returns A 128-bit vector of [4 x float] containing the comparison results
-///    in the low-order bits.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmple_ss(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_ia32_cmpless((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares each of the corresponding 32-bit float values of the
-///    128-bit vectors of [4 x float] to determine if the values in the first
-///    operand are less than or equal to those in the second operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPLEPS / CMPLEPS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \param __b
-///    A 128-bit vector of [4 x float].
-/// \returns A 128-bit vector of [4 x float] containing the comparison results.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmple_ps(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_ia32_cmpleps((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares two 32-bit float values in the low-order bits of both
-///    operands to determine if the value in the first operand is greater than
-///    the corresponding value in the second operand and returns the result of
-///    the comparison in the low-order bits of a vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPLTSS / CMPLTSS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \returns A 128-bit vector of [4 x float] containing the comparison results
-///    in the low-order bits.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmpgt_ss(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_shufflevector((__v4sf)__a,
-                                         (__v4sf)__builtin_ia32_cmpltss((__v4sf)__b, (__v4sf)__a),
-                                         4, 1, 2, 3);
-}
-
-/// Compares each of the corresponding 32-bit float values of the
-///    128-bit vectors of [4 x float] to determine if the values in the first
-///    operand are greater than those in the second operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPLTPS / CMPLTPS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \param __b
-///    A 128-bit vector of [4 x float].
-/// \returns A 128-bit vector of [4 x float] containing the comparison results.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmpgt_ps(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_ia32_cmpltps((__v4sf)__b, (__v4sf)__a);
-}
-
-/// Compares two 32-bit float values in the low-order bits of both
-///    operands to determine if the value in the first operand is greater than
-///    or equal to the corresponding value in the second operand and returns
-///    the result of the comparison in the low-order bits of a vector of
-///    [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPLESS / CMPLESS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \returns A 128-bit vector of [4 x float] containing the comparison results
-///    in the low-order bits.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmpge_ss(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_shufflevector((__v4sf)__a,
-                                         (__v4sf)__builtin_ia32_cmpless((__v4sf)__b, (__v4sf)__a),
-                                         4, 1, 2, 3);
-}
-
-/// Compares each of the corresponding 32-bit float values of the
-///    128-bit vectors of [4 x float] to determine if the values in the first
-///    operand are greater than or equal to those in the second operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPLEPS / CMPLEPS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \param __b
-///    A 128-bit vector of [4 x float].
-/// \returns A 128-bit vector of [4 x float] containing the comparison results.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmpge_ps(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_ia32_cmpleps((__v4sf)__b, (__v4sf)__a);
-}
-
-/// Compares two 32-bit float values in the low-order bits of both
-///    operands for inequality and returns the result of the comparison in the
-///    low-order bits of a vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPNEQSS / CMPNEQSS </c>
-///   instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \returns A 128-bit vector of [4 x float] containing the comparison results
-///    in the low-order bits.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmpneq_ss(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_ia32_cmpneqss((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares each of the corresponding 32-bit float values of the
-///    128-bit vectors of [4 x float] for inequality.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPNEQPS / CMPNEQPS </c>
-///   instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \param __b
-///    A 128-bit vector of [4 x float].
-/// \returns A 128-bit vector of [4 x float] containing the comparison results.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmpneq_ps(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_ia32_cmpneqps((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares two 32-bit float values in the low-order bits of both
-///    operands to determine if the value in the first operand is not less than
-///    the corresponding value in the second operand and returns the result of
-///    the comparison in the low-order bits of a vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPNLTSS / CMPNLTSS </c>
-///   instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \returns A 128-bit vector of [4 x float] containing the comparison results
-///    in the low-order bits.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmpnlt_ss(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_ia32_cmpnltss((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares each of the corresponding 32-bit float values of the
-///    128-bit vectors of [4 x float] to determine if the values in the first
-///    operand are not less than those in the second operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPNLTPS / CMPNLTPS </c>
-///   instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \param __b
-///    A 128-bit vector of [4 x float].
-/// \returns A 128-bit vector of [4 x float] containing the comparison results.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmpnlt_ps(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_ia32_cmpnltps((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares two 32-bit float values in the low-order bits of both
-///    operands to determine if the value in the first operand is not less than
-///    or equal to the corresponding value in the second operand and returns
-///    the result of the comparison in the low-order bits of a vector of
-///    [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPNLESS / CMPNLESS </c>
-///   instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \returns A 128-bit vector of [4 x float] containing the comparison results
-///    in the low-order bits.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmpnle_ss(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_ia32_cmpnless((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares each of the corresponding 32-bit float values of the
-///    128-bit vectors of [4 x float] to determine if the values in the first
-///    operand are not less than or equal to those in the second operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPNLEPS / CMPNLEPS </c>
-///   instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \param __b
-///    A 128-bit vector of [4 x float].
-/// \returns A 128-bit vector of [4 x float] containing the comparison results.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmpnle_ps(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_ia32_cmpnleps((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares two 32-bit float values in the low-order bits of both
-///    operands to determine if the value in the first operand is not greater
-///    than the corresponding value in the second operand and returns the
-///    result of the comparison in the low-order bits of a vector of
-///    [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPNLTSS / CMPNLTSS </c>
-///   instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \returns A 128-bit vector of [4 x float] containing the comparison results
-///    in the low-order bits.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmpngt_ss(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_shufflevector((__v4sf)__a,
-                                         (__v4sf)__builtin_ia32_cmpnltss((__v4sf)__b, (__v4sf)__a),
-                                         4, 1, 2, 3);
-}
-
-/// Compares each of the corresponding 32-bit float values of the
-///    128-bit vectors of [4 x float] to determine if the values in the first
-///    operand are not greater than those in the second operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPNLTPS / CMPNLTPS </c>
-///   instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \param __b
-///    A 128-bit vector of [4 x float].
-/// \returns A 128-bit vector of [4 x float] containing the comparison results.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmpngt_ps(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_ia32_cmpnltps((__v4sf)__b, (__v4sf)__a);
-}
-
-/// Compares two 32-bit float values in the low-order bits of both
-///    operands to determine if the value in the first operand is not greater
-///    than or equal to the corresponding value in the second operand and
-///    returns the result of the comparison in the low-order bits of a vector
-///    of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPNLESS / CMPNLESS </c>
-///   instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \returns A 128-bit vector of [4 x float] containing the comparison results
-///    in the low-order bits.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmpnge_ss(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_shufflevector((__v4sf)__a,
-                                         (__v4sf)__builtin_ia32_cmpnless((__v4sf)__b, (__v4sf)__a),
-                                         4, 1, 2, 3);
-}
-
-/// Compares each of the corresponding 32-bit float values of the
-///    128-bit vectors of [4 x float] to determine if the values in the first
-///    operand are not greater than or equal to those in the second operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPNLEPS / CMPNLEPS </c>
-///   instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \param __b
-///    A 128-bit vector of [4 x float].
-/// \returns A 128-bit vector of [4 x float] containing the comparison results.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmpnge_ps(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_ia32_cmpnleps((__v4sf)__b, (__v4sf)__a);
-}
-
-/// Compares two 32-bit float values in the low-order bits of both
-///    operands to determine if the value in the first operand is ordered with
-///    respect to the corresponding value in the second operand and returns the
-///    result of the comparison in the low-order bits of a vector of
-///    [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPORDSS / CMPORDSS </c>
-///   instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \returns A 128-bit vector of [4 x float] containing the comparison results
-///    in the low-order bits.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmpord_ss(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_ia32_cmpordss((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares each of the corresponding 32-bit float values of the
-///    128-bit vectors of [4 x float] to determine if the values in the first
-///    operand are ordered with respect to those in the second operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPORDPS / CMPORDPS </c>
-///   instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \param __b
-///    A 128-bit vector of [4 x float].
-/// \returns A 128-bit vector of [4 x float] containing the comparison results.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmpord_ps(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_ia32_cmpordps((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares two 32-bit float values in the low-order bits of both
-///    operands to determine if the value in the first operand is unordered
-///    with respect to the corresponding value in the second operand and
-///    returns the result of the comparison in the low-order bits of a vector
-///    of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPUNORDSS / CMPUNORDSS </c>
-///   instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float] containing one of the operands. The lower
-///    32 bits of this operand are used in the comparison.
-/// \returns A 128-bit vector of [4 x float] containing the comparison results
-///    in the low-order bits.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmpunord_ss(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_ia32_cmpunordss((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares each of the corresponding 32-bit float values of the
-///    128-bit vectors of [4 x float] to determine if the values in the first
-///    operand are unordered with respect to those in the second operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCMPUNORDPS / CMPUNORDPS </c>
-///   instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \param __b
-///    A 128-bit vector of [4 x float].
-/// \returns A 128-bit vector of [4 x float] containing the comparison results.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cmpunord_ps(__m128 __a, __m128 __b)
-{
-  return (__m128)__builtin_ia32_cmpunordps((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares two 32-bit float values in the low-order bits of both
-///    operands for equality and returns the result of the comparison.
-///
-///    If either of the two lower 32-bit values is NaN, 0 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCOMISS / COMISS </c>
-///   instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \returns An integer containing the comparison results. If either of the
-///    two lower 32-bit values is NaN, 0 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_comieq_ss(__m128 __a, __m128 __b)
-{
-  return __builtin_ia32_comieq((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares two 32-bit float values in the low-order bits of both
-///    operands to determine if the first operand is less than the second
-///    operand and returns the result of the comparison.
-///
-///    If either of the two lower 32-bit values is NaN, 0 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCOMISS / COMISS </c>
-///   instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \returns An integer containing the comparison results. If either of the two
-///     lower 32-bit values is NaN, 0 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_comilt_ss(__m128 __a, __m128 __b)
-{
-  return __builtin_ia32_comilt((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares two 32-bit float values in the low-order bits of both
-///    operands to determine if the first operand is less than or equal to the
-///    second operand and returns the result of the comparison.
-///
-///    If either of the two lower 32-bit values is NaN, 0 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCOMISS / COMISS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \returns An integer containing the comparison results. If either of the two
-///     lower 32-bit values is NaN, 0 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_comile_ss(__m128 __a, __m128 __b)
-{
-  return __builtin_ia32_comile((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares two 32-bit float values in the low-order bits of both
-///    operands to determine if the first operand is greater than the second
-///    operand and returns the result of the comparison.
-///
-///    If either of the two lower 32-bit values is NaN, 0 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCOMISS / COMISS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \returns An integer containing the comparison results. If either of the
-///     two lower 32-bit values is NaN, 0 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_comigt_ss(__m128 __a, __m128 __b)
-{
-  return __builtin_ia32_comigt((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares two 32-bit float values in the low-order bits of both
-///    operands to determine if the first operand is greater than or equal to
-///    the second operand and returns the result of the comparison.
-///
-///    If either of the two lower 32-bit values is NaN, 0 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCOMISS / COMISS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \returns An integer containing the comparison results. If either of the two
-///    lower 32-bit values is NaN, 0 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_comige_ss(__m128 __a, __m128 __b)
-{
-  return __builtin_ia32_comige((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Compares two 32-bit float values in the low-order bits of both
-///    operands to determine if the first operand is not equal to the second
-///    operand and returns the result of the comparison.
-///
-///    If either of the two lower 32-bit values is NaN, 1 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCOMISS / COMISS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \returns An integer containing the comparison results. If either of the
-///     two lower 32-bit values is NaN, 1 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_comineq_ss(__m128 __a, __m128 __b)
-{
-  return __builtin_ia32_comineq((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Performs an unordered comparison of two 32-bit float values using
-///    the low-order bits of both operands to determine equality and returns
-///    the result of the comparison.
-///
-///    If either of the two lower 32-bit values is NaN, 0 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUCOMISS / UCOMISS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \returns An integer containing the comparison results. If either of the two
-///     lower 32-bit values is NaN, 0 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_ucomieq_ss(__m128 __a, __m128 __b)
-{
-  return __builtin_ia32_ucomieq((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Performs an unordered comparison of two 32-bit float values using
-///    the low-order bits of both operands to determine if the first operand is
-///    less than the second operand and returns the result of the comparison.
-///
-///    If either of the two lower 32-bit values is NaN, 0 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUCOMISS / UCOMISS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \returns An integer containing the comparison results. If either of the two
-///    lower 32-bit values is NaN, 0 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_ucomilt_ss(__m128 __a, __m128 __b)
-{
-  return __builtin_ia32_ucomilt((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Performs an unordered comparison of two 32-bit float values using
-///    the low-order bits of both operands to determine if the first operand is
-///    less than or equal to the second operand and returns the result of the
-///    comparison.
-///
-///    If either of the two lower 32-bit values is NaN, 0 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUCOMISS / UCOMISS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \returns An integer containing the comparison results. If either of the two
-///     lower 32-bit values is NaN, 0 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_ucomile_ss(__m128 __a, __m128 __b)
-{
-  return __builtin_ia32_ucomile((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Performs an unordered comparison of two 32-bit float values using
-///    the low-order bits of both operands to determine if the first operand is
-///    greater than the second operand and returns the result of the
-///    comparison.
-///
-///    If either of the two lower 32-bit values is NaN, 0 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUCOMISS / UCOMISS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \returns An integer containing the comparison results. If either of the two
-///     lower 32-bit values is NaN, 0 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_ucomigt_ss(__m128 __a, __m128 __b)
-{
-  return __builtin_ia32_ucomigt((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Performs an unordered comparison of two 32-bit float values using
-///    the low-order bits of both operands to determine if the first operand is
-///    greater than or equal to the second operand and returns the result of
-///    the comparison.
-///
-///    If either of the two lower 32-bit values is NaN, 0 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUCOMISS / UCOMISS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \returns An integer containing the comparison results. If either of the two
-///     lower 32-bit values is NaN, 0 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_ucomige_ss(__m128 __a, __m128 __b)
-{
-  return __builtin_ia32_ucomige((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Performs an unordered comparison of two 32-bit float values using
-///    the low-order bits of both operands to determine inequality and returns
-///    the result of the comparison.
-///
-///    If either of the two lower 32-bit values is NaN, 1 is returned.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUCOMISS / UCOMISS </c> instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \param __b
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the comparison.
-/// \returns An integer containing the comparison results. If either of the two
-///    lower 32-bit values is NaN, 1 is returned.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_ucomineq_ss(__m128 __a, __m128 __b)
-{
-  return __builtin_ia32_ucomineq((__v4sf)__a, (__v4sf)__b);
-}
-
-/// Converts a float value contained in the lower 32 bits of a vector of
-///    [4 x float] into a 32-bit integer.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTSS2SI / CVTSS2SI </c>
-///   instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the conversion.
-/// \returns A 32-bit integer containing the converted value.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_cvtss_si32(__m128 __a)
-{
-  return __builtin_ia32_cvtss2si((__v4sf)__a);
-}
-
-/// Converts a float value contained in the lower 32 bits of a vector of
-///    [4 x float] into a 32-bit integer.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTSS2SI / CVTSS2SI </c>
-///   instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the conversion.
-/// \returns A 32-bit integer containing the converted value.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_cvt_ss2si(__m128 __a)
-{
-  return _mm_cvtss_si32(__a);
-}
-
-#ifdef __x86_64__
-
-/// Converts a float value contained in the lower 32 bits of a vector of
-///    [4 x float] into a 64-bit integer.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTSS2SI / CVTSS2SI </c>
-///   instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the conversion.
-/// \returns A 64-bit integer containing the converted value.
-static __inline__ long long __DEFAULT_FN_ATTRS
-_mm_cvtss_si64(__m128 __a)
-{
-  return __builtin_ia32_cvtss2si64((__v4sf)__a);
-}
-
-#endif
-
-/// Converts two low-order float values in a 128-bit vector of
-///    [4 x float] into a 64-bit vector of [2 x i32].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CVTPS2PI </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \returns A 64-bit integer vector containing the converted values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_cvtps_pi32(__m128 __a)
-{
-  return (__m64)__builtin_ia32_cvtps2pi((__v4sf)__a);
-}
-
-/// Converts two low-order float values in a 128-bit vector of
-///    [4 x float] into a 64-bit vector of [2 x i32].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CVTPS2PI </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \returns A 64-bit integer vector containing the converted values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_cvt_ps2pi(__m128 __a)
-{
-  return _mm_cvtps_pi32(__a);
-}
-
-/// Converts a float value contained in the lower 32 bits of a vector of
-///    [4 x float] into a 32-bit integer, truncating the result when it is
-///    inexact.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTTSS2SI / CVTTSS2SI </c>
-///   instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the conversion.
-/// \returns A 32-bit integer containing the converted value.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_cvttss_si32(__m128 __a)
-{
-  return __builtin_ia32_cvttss2si((__v4sf)__a);
-}
-
-/// Converts a float value contained in the lower 32 bits of a vector of
-///    [4 x float] into a 32-bit integer, truncating the result when it is
-///    inexact.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTTSS2SI / CVTTSS2SI </c>
-///   instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the conversion.
-/// \returns A 32-bit integer containing the converted value.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_cvtt_ss2si(__m128 __a)
-{
-  return _mm_cvttss_si32(__a);
-}
-
-#ifdef __x86_64__
-/// Converts a float value contained in the lower 32 bits of a vector of
-///    [4 x float] into a 64-bit integer, truncating the result when it is
-///    inexact.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTTSS2SI / CVTTSS2SI </c>
-///   instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the conversion.
-/// \returns A 64-bit integer containing the converted value.
-static __inline__ long long __DEFAULT_FN_ATTRS
-_mm_cvttss_si64(__m128 __a)
-{
-  return __builtin_ia32_cvttss2si64((__v4sf)__a);
-}
-#endif
-
-/// Converts two low-order float values in a 128-bit vector of
-///    [4 x float] into a 64-bit vector of [2 x i32], truncating the result
-///    when it is inexact.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CVTTPS2PI / VTTPS2PI </c>
-///   instructions.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \returns A 64-bit integer vector containing the converted values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_cvttps_pi32(__m128 __a)
-{
-  return (__m64)__builtin_ia32_cvttps2pi((__v4sf)__a);
-}
-
-/// Converts two low-order float values in a 128-bit vector of [4 x
-///    float] into a 64-bit vector of [2 x i32], truncating the result when it
-///    is inexact.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CVTTPS2PI </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \returns A 64-bit integer vector containing the converted values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_cvtt_ps2pi(__m128 __a)
-{
-  return _mm_cvttps_pi32(__a);
-}
-
-/// Converts a 32-bit signed integer value into a floating point value
-///    and writes it to the lower 32 bits of the destination. The remaining
-///    higher order elements of the destination vector are copied from the
-///    corresponding elements in the first operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTSI2SS / CVTSI2SS </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \param __b
-///    A 32-bit signed integer operand containing the value to be converted.
-/// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the
-///    converted value of the second operand. The upper 96 bits are copied from
-///    the upper 96 bits of the first operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cvtsi32_ss(__m128 __a, int __b)
-{
-  __a[0] = __b;
-  return __a;
-}
-
-/// Converts a 32-bit signed integer value into a floating point value
-///    and writes it to the lower 32 bits of the destination. The remaining
-///    higher order elements of the destination are copied from the
-///    corresponding elements in the first operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTSI2SS / CVTSI2SS </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \param __b
-///    A 32-bit signed integer operand containing the value to be converted.
-/// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the
-///    converted value of the second operand. The upper 96 bits are copied from
-///    the upper 96 bits of the first operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cvt_si2ss(__m128 __a, int __b)
-{
-  return _mm_cvtsi32_ss(__a, __b);
-}
-
-#ifdef __x86_64__
-
-/// Converts a 64-bit signed integer value into a floating point value
-///    and writes it to the lower 32 bits of the destination. The remaining
-///    higher order elements of the destination are copied from the
-///    corresponding elements in the first operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VCVTSI2SS / CVTSI2SS </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \param __b
-///    A 64-bit signed integer operand containing the value to be converted.
-/// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the
-///    converted value of the second operand. The upper 96 bits are copied from
-///    the upper 96 bits of the first operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cvtsi64_ss(__m128 __a, long long __b)
-{
-  __a[0] = __b;
-  return __a;
-}
-
-#endif
-
-/// Converts two elements of a 64-bit vector of [2 x i32] into two
-///    floating point values and writes them to the lower 64-bits of the
-///    destination. The remaining higher order elements of the destination are
-///    copied from the corresponding elements in the first operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CVTPI2PS </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \param __b
-///    A 64-bit vector of [2 x i32]. The elements in this vector are converted
-///    and written to the corresponding low-order elements in the destination.
-/// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the
-///    converted value of the second operand. The upper 64 bits are copied from
-///    the upper 64 bits of the first operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS_MMX
-_mm_cvtpi32_ps(__m128 __a, __m64 __b)
-{
-  return __builtin_ia32_cvtpi2ps((__v4sf)__a, (__v2si)__b);
-}
-
-/// Converts two elements of a 64-bit vector of [2 x i32] into two
-///    floating point values and writes them to the lower 64-bits of the
-///    destination. The remaining higher order elements of the destination are
-///    copied from the corresponding elements in the first operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CVTPI2PS </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \param __b
-///    A 64-bit vector of [2 x i32]. The elements in this vector are converted
-///    and written to the corresponding low-order elements in the destination.
-/// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the
-///    converted value from the second operand. The upper 64 bits are copied
-///    from the upper 64 bits of the first operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS_MMX
-_mm_cvt_pi2ps(__m128 __a, __m64 __b)
-{
-  return _mm_cvtpi32_ps(__a, __b);
-}
-
-/// Extracts a float value contained in the lower 32 bits of a vector of
-///    [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
-///    used in the extraction.
-/// \returns A 32-bit float containing the extracted value.
-static __inline__ float __DEFAULT_FN_ATTRS
-_mm_cvtss_f32(__m128 __a)
-{
-  return __a[0];
-}
-
-/// Loads two packed float values from the address \a __p into the
-///     high-order bits of a 128-bit vector of [4 x float]. The low-order bits
-///     are copied from the low-order bits of the first operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVHPD / MOVHPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. Bits [63:0] are written to bits [63:0]
-///    of the destination.
-/// \param __p
-///    A pointer to two packed float values. Bits [63:0] are written to bits
-///    [127:64] of the destination.
-/// \returns A 128-bit vector of [4 x float] containing the moved values.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_loadh_pi(__m128 __a, const __m64 *__p)
-{
-  typedef float __mm_loadh_pi_v2f32 __attribute__((__vector_size__(8)));
-  struct __mm_loadh_pi_struct {
-    __mm_loadh_pi_v2f32 __u;
-  } __attribute__((__packed__, __may_alias__));
-  __mm_loadh_pi_v2f32 __b = ((const struct __mm_loadh_pi_struct*)__p)->__u;
-  __m128 __bb = __builtin_shufflevector(__b, __b, 0, 1, 0, 1);
-  return __builtin_shufflevector(__a, __bb, 0, 1, 4, 5);
-}
-
-/// Loads two packed float values from the address \a __p into the
-///    low-order bits of a 128-bit vector of [4 x float]. The high-order bits
-///    are copied from the high-order bits of the first operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVLPD / MOVLPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. Bits [127:64] are written to bits
-///    [127:64] of the destination.
-/// \param __p
-///    A pointer to two packed float values. Bits [63:0] are written to bits
-///    [63:0] of the destination.
-/// \returns A 128-bit vector of [4 x float] containing the moved values.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_loadl_pi(__m128 __a, const __m64 *__p)
-{
-  typedef float __mm_loadl_pi_v2f32 __attribute__((__vector_size__(8)));
-  struct __mm_loadl_pi_struct {
-    __mm_loadl_pi_v2f32 __u;
-  } __attribute__((__packed__, __may_alias__));
-  __mm_loadl_pi_v2f32 __b = ((const struct __mm_loadl_pi_struct*)__p)->__u;
-  __m128 __bb = __builtin_shufflevector(__b, __b, 0, 1, 0, 1);
-  return __builtin_shufflevector(__a, __bb, 4, 5, 2, 3);
-}
-
-/// Constructs a 128-bit floating-point vector of [4 x float]. The lower
-///    32 bits of the vector are initialized with the single-precision
-///    floating-point value loaded from a specified memory location. The upper
-///    96 bits are set to zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVSS / MOVSS </c> instruction.
-///
-/// \param __p
-///    A pointer to a 32-bit memory location containing a single-precision
-///    floating-point value.
-/// \returns An initialized 128-bit floating-point vector of [4 x float]. The
-///    lower 32 bits contain the value loaded from the memory location. The
-///    upper 96 bits are set to zero.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_load_ss(const float *__p)
-{
-  struct __mm_load_ss_struct {
-    float __u;
-  } __attribute__((__packed__, __may_alias__));
-  float __u = ((const struct __mm_load_ss_struct*)__p)->__u;
-  return __extension__ (__m128){ __u, 0, 0, 0 };
-}
-
-/// Loads a 32-bit float value and duplicates it to all four vector
-///    elements of a 128-bit vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VBROADCASTSS / MOVSS + shuffling </c>
-///    instruction.
-///
-/// \param __p
-///    A pointer to a float value to be loaded and duplicated.
-/// \returns A 128-bit vector of [4 x float] containing the loaded and
-///    duplicated values.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_load1_ps(const float *__p)
-{
-  struct __mm_load1_ps_struct {
-    float __u;
-  } __attribute__((__packed__, __may_alias__));
-  float __u = ((const struct __mm_load1_ps_struct*)__p)->__u;
-  return __extension__ (__m128){ __u, __u, __u, __u };
-}
-
-#define        _mm_load_ps1(p) _mm_load1_ps(p)
-
-/// Loads a 128-bit floating-point vector of [4 x float] from an aligned
-///    memory location.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVAPS / MOVAPS </c> instruction.
-///
-/// \param __p
-///    A pointer to a 128-bit memory location. The address of the memory
-///    location has to be 128-bit aligned.
-/// \returns A 128-bit vector of [4 x float] containing the loaded values.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_load_ps(const float *__p)
-{
-  return *(const __m128*)__p;
-}
-
-/// Loads a 128-bit floating-point vector of [4 x float] from an
-///    unaligned memory location.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVUPS / MOVUPS </c> instruction.
-///
-/// \param __p
-///    A pointer to a 128-bit memory location. The address of the memory
-///    location does not have to be aligned.
-/// \returns A 128-bit vector of [4 x float] containing the loaded values.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_loadu_ps(const float *__p)
-{
-  struct __loadu_ps {
-    __m128_u __v;
-  } __attribute__((__packed__, __may_alias__));
-  return ((const struct __loadu_ps*)__p)->__v;
-}
-
-/// Loads four packed float values, in reverse order, from an aligned
-///    memory location to 32-bit elements in a 128-bit vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVAPS / MOVAPS + shuffling </c>
-///    instruction.
-///
-/// \param __p
-///    A pointer to a 128-bit memory location. The address of the memory
-///    location has to be 128-bit aligned.
-/// \returns A 128-bit vector of [4 x float] containing the moved values, loaded
-///    in reverse order.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_loadr_ps(const float *__p)
-{
-  __m128 __a = _mm_load_ps(__p);
-  return __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 3, 2, 1, 0);
-}
-
-/// Create a 128-bit vector of [4 x float] with undefined values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \returns A 128-bit vector of [4 x float] containing undefined values.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_undefined_ps(void)
-{
-  return (__m128)__builtin_ia32_undef128();
-}
-
-/// Constructs a 128-bit floating-point vector of [4 x float]. The lower
-///    32 bits of the vector are initialized with the specified single-precision
-///    floating-point value. The upper 96 bits are set to zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVSS / MOVSS </c> instruction.
-///
-/// \param __w
-///    A single-precision floating-point value used to initialize the lower 32
-///    bits of the result.
-/// \returns An initialized 128-bit floating-point vector of [4 x float]. The
-///    lower 32 bits contain the value provided in the source operand. The
-///    upper 96 bits are set to zero.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_set_ss(float __w)
-{
-  return __extension__ (__m128){ __w, 0, 0, 0 };
-}
-
-/// Constructs a 128-bit floating-point vector of [4 x float], with each
-///    of the four single-precision floating-point vector elements set to the
-///    specified single-precision floating-point value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPERMILPS / PERMILPS </c> instruction.
-///
-/// \param __w
-///    A single-precision floating-point value used to initialize each vector
-///    element of the result.
-/// \returns An initialized 128-bit floating-point vector of [4 x float].
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_set1_ps(float __w)
-{
-  return __extension__ (__m128){ __w, __w, __w, __w };
-}
-
-/* Microsoft specific. */
-/// Constructs a 128-bit floating-point vector of [4 x float], with each
-///    of the four single-precision floating-point vector elements set to the
-///    specified single-precision floating-point value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPERMILPS / PERMILPS </c> instruction.
-///
-/// \param __w
-///    A single-precision floating-point value used to initialize each vector
-///    element of the result.
-/// \returns An initialized 128-bit floating-point vector of [4 x float].
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_set_ps1(float __w)
-{
-    return _mm_set1_ps(__w);
-}
-
-/// Constructs a 128-bit floating-point vector of [4 x float]
-///    initialized with the specified single-precision floating-point values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __z
-///    A single-precision floating-point value used to initialize bits [127:96]
-///    of the result.
-/// \param __y
-///    A single-precision floating-point value used to initialize bits [95:64]
-///    of the result.
-/// \param __x
-///    A single-precision floating-point value used to initialize bits [63:32]
-///    of the result.
-/// \param __w
-///    A single-precision floating-point value used to initialize bits [31:0]
-///    of the result.
-/// \returns An initialized 128-bit floating-point vector of [4 x float].
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_set_ps(float __z, float __y, float __x, float __w)
-{
-  return __extension__ (__m128){ __w, __x, __y, __z };
-}
-
-/// Constructs a 128-bit floating-point vector of [4 x float],
-///    initialized in reverse order with the specified 32-bit single-precision
-///    float-point values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __z
-///    A single-precision floating-point value used to initialize bits [31:0]
-///    of the result.
-/// \param __y
-///    A single-precision floating-point value used to initialize bits [63:32]
-///    of the result.
-/// \param __x
-///    A single-precision floating-point value used to initialize bits [95:64]
-///    of the result.
-/// \param __w
-///    A single-precision floating-point value used to initialize bits [127:96]
-///    of the result.
-/// \returns An initialized 128-bit floating-point vector of [4 x float].
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_setr_ps(float __z, float __y, float __x, float __w)
-{
-  return __extension__ (__m128){ __z, __y, __x, __w };
-}
-
-/// Constructs a 128-bit floating-point vector of [4 x float] initialized
-///    to zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VXORPS / XORPS </c> instruction.
-///
-/// \returns An initialized 128-bit floating-point vector of [4 x float] with
-///    all elements set to zero.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_setzero_ps(void)
-{
-  return __extension__ (__m128){ 0, 0, 0, 0 };
-}
-
-/// Stores the upper 64 bits of a 128-bit vector of [4 x float] to a
-///    memory location.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VPEXTRQ / PEXTRQ </c> instruction.
-///
-/// \param __p
-///    A pointer to a 64-bit memory location.
-/// \param __a
-///    A 128-bit vector of [4 x float] containing the values to be stored.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_storeh_pi(__m64 *__p, __m128 __a)
-{
-  typedef float __mm_storeh_pi_v2f32 __attribute__((__vector_size__(8)));
-  struct __mm_storeh_pi_struct {
-    __mm_storeh_pi_v2f32 __u;
-  } __attribute__((__packed__, __may_alias__));
-  ((struct __mm_storeh_pi_struct*)__p)->__u = __builtin_shufflevector(__a, __a, 2, 3);
-}
-
-/// Stores the lower 64 bits of a 128-bit vector of [4 x float] to a
-///     memory location.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVLPS / MOVLPS </c> instruction.
-///
-/// \param __p
-///    A pointer to a memory location that will receive the float values.
-/// \param __a
-///    A 128-bit vector of [4 x float] containing the values to be stored.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_storel_pi(__m64 *__p, __m128 __a)
-{
-  typedef float __mm_storeh_pi_v2f32 __attribute__((__vector_size__(8)));
-  struct __mm_storeh_pi_struct {
-    __mm_storeh_pi_v2f32 __u;
-  } __attribute__((__packed__, __may_alias__));
-  ((struct __mm_storeh_pi_struct*)__p)->__u = __builtin_shufflevector(__a, __a, 0, 1);
-}
-
-/// Stores the lower 32 bits of a 128-bit vector of [4 x float] to a
-///     memory location.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVSS / MOVSS </c> instruction.
-///
-/// \param __p
-///    A pointer to a 32-bit memory location.
-/// \param __a
-///    A 128-bit vector of [4 x float] containing the value to be stored.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_store_ss(float *__p, __m128 __a)
-{
-  struct __mm_store_ss_struct {
-    float __u;
-  } __attribute__((__packed__, __may_alias__));
-  ((struct __mm_store_ss_struct*)__p)->__u = __a[0];
-}
-
-/// Stores a 128-bit vector of [4 x float] to an unaligned memory
-///    location.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVUPS / MOVUPS </c> instruction.
-///
-/// \param __p
-///    A pointer to a 128-bit memory location. The address of the memory
-///    location does not have to be aligned.
-/// \param __a
-///    A 128-bit vector of [4 x float] containing the values to be stored.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_storeu_ps(float *__p, __m128 __a)
-{
-  struct __storeu_ps {
-    __m128_u __v;
-  } __attribute__((__packed__, __may_alias__));
-  ((struct __storeu_ps*)__p)->__v = __a;
-}
-
-/// Stores a 128-bit vector of [4 x float] into an aligned memory
-///    location.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVAPS / MOVAPS </c> instruction.
-///
-/// \param __p
-///    A pointer to a 128-bit memory location. The address of the memory
-///    location has to be 16-byte aligned.
-/// \param __a
-///    A 128-bit vector of [4 x float] containing the values to be stored.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_store_ps(float *__p, __m128 __a)
-{
-  *(__m128*)__p = __a;
-}
-
-/// Stores the lower 32 bits of a 128-bit vector of [4 x float] into
-///    four contiguous elements in an aligned memory location.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to <c> VMOVAPS / MOVAPS + shuffling </c>
-///    instruction.
-///
-/// \param __p
-///    A pointer to a 128-bit memory location.
-/// \param __a
-///    A 128-bit vector of [4 x float] whose lower 32 bits are stored to each
-///    of the four contiguous elements pointed by \a __p.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_store1_ps(float *__p, __m128 __a)
-{
-  __a = __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 0, 0, 0);
-  _mm_store_ps(__p, __a);
-}
-
-/// Stores the lower 32 bits of a 128-bit vector of [4 x float] into
-///    four contiguous elements in an aligned memory location.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to <c> VMOVAPS / MOVAPS + shuffling </c>
-///    instruction.
-///
-/// \param __p
-///    A pointer to a 128-bit memory location.
-/// \param __a
-///    A 128-bit vector of [4 x float] whose lower 32 bits are stored to each
-///    of the four contiguous elements pointed by \a __p.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_store_ps1(float *__p, __m128 __a)
-{
-  _mm_store1_ps(__p, __a);
-}
-
-/// Stores float values from a 128-bit vector of [4 x float] to an
-///    aligned memory location in reverse order.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVAPS / MOVAPS + shuffling </c>
-///    instruction.
-///
-/// \param __p
-///    A pointer to a 128-bit memory location. The address of the memory
-///    location has to be 128-bit aligned.
-/// \param __a
-///    A 128-bit vector of [4 x float] containing the values to be stored.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_storer_ps(float *__p, __m128 __a)
-{
-  __a = __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 3, 2, 1, 0);
-  _mm_store_ps(__p, __a);
-}
-
-#define _MM_HINT_ET0 7
-#define _MM_HINT_ET1 6
-#define _MM_HINT_T0  3
-#define _MM_HINT_T1  2
-#define _MM_HINT_T2  1
-#define _MM_HINT_NTA 0
-
-#ifndef _MSC_VER
-/* FIXME: We have to #define this because "sel" must be a constant integer, and
-   Sema doesn't do any form of constant propagation yet. */
-
-/// Loads one cache line of data from the specified address to a location
-///    closer to the processor.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// void _mm_prefetch(const void * a, const int sel);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> PREFETCHNTA </c> instruction.
-///
-/// \param a
-///    A pointer to a memory location containing a cache line of data.
-/// \param sel
-///    A predefined integer constant specifying the type of prefetch
-///    operation: \n
-///    _MM_HINT_NTA: Move data using the non-temporal access (NTA) hint. The
-///    PREFETCHNTA instruction will be generated. \n
-///    _MM_HINT_T0: Move data using the T0 hint. The PREFETCHT0 instruction will
-///    be generated. \n
-///    _MM_HINT_T1: Move data using the T1 hint. The PREFETCHT1 instruction will
-///    be generated. \n
-///    _MM_HINT_T2: Move data using the T2 hint. The PREFETCHT2 instruction will
-///    be generated.
-#define _mm_prefetch(a, sel) (__builtin_prefetch((const void *)(a), \
-                                                 ((sel) >> 2) & 1, (sel) & 0x3))
-#endif
-
-/// Stores a 64-bit integer in the specified aligned memory location. To
-///    minimize caching, the data is flagged as non-temporal (unlikely to be
-///    used again soon).
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> MOVNTQ </c> instruction.
-///
-/// \param __p
-///    A pointer to an aligned memory location used to store the register value.
-/// \param __a
-///    A 64-bit integer containing the value to be stored.
-static __inline__ void __DEFAULT_FN_ATTRS_MMX
-_mm_stream_pi(__m64 *__p, __m64 __a)
-{
-  __builtin_ia32_movntq(__p, __a);
-}
-
-/// Moves packed float values from a 128-bit vector of [4 x float] to a
-///    128-bit aligned memory location. To minimize caching, the data is flagged
-///    as non-temporal (unlikely to be used again soon).
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVNTPS / MOVNTPS </c> instruction.
-///
-/// \param __p
-///    A pointer to a 128-bit aligned memory location that will receive the
-///    single-precision floating-point values.
-/// \param __a
-///    A 128-bit vector of [4 x float] containing the values to be moved.
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_stream_ps(float *__p, __m128 __a)
-{
-  __builtin_nontemporal_store((__v4sf)__a, (__v4sf*)__p);
-}
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/// Forces strong memory ordering (serialization) between store
-///    instructions preceding this instruction and store instructions following
-///    this instruction, ensuring the system completes all previous stores
-///    before executing subsequent stores.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> SFENCE </c> instruction.
-///
-void _mm_sfence(void);
-
-#if defined(__cplusplus)
-} // extern "C"
-#endif
-
-/// Extracts 16-bit element from a 64-bit vector of [4 x i16] and
-///    returns it, as specified by the immediate integer operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// int _mm_extract_pi16(__m64 a, int n);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VPEXTRW / PEXTRW </c> instruction.
-///
-/// \param a
-///    A 64-bit vector of [4 x i16].
-/// \param n
-///    An immediate integer operand that determines which bits are extracted: \n
-///    0: Bits [15:0] are copied to the destination. \n
-///    1: Bits [31:16] are copied to the destination. \n
-///    2: Bits [47:32] are copied to the destination. \n
-///    3: Bits [63:48] are copied to the destination.
-/// \returns A 16-bit integer containing the extracted 16 bits of packed data.
-#define _mm_extract_pi16(a, n) \
-  ((int)__builtin_ia32_vec_ext_v4hi((__v4hi)a, (int)n))
-
-/// Copies data from the 64-bit vector of [4 x i16] to the destination,
-///    and inserts the lower 16-bits of an integer operand at the 16-bit offset
-///    specified by the immediate operand \a n.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m64 _mm_insert_pi16(__m64 a, int d, int n);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> PINSRW </c> instruction.
-///
-/// \param a
-///    A 64-bit vector of [4 x i16].
-/// \param d
-///    An integer. The lower 16-bit value from this operand is written to the
-///    destination at the offset specified by operand \a n.
-/// \param n
-///    An immediate integer operant that determines which the bits to be used
-///    in the destination. \n
-///    0: Bits [15:0] are copied to the destination. \n
-///    1: Bits [31:16] are copied to the destination. \n
-///    2: Bits [47:32] are copied to the destination. \n
-///    3: Bits [63:48] are copied to the destination.  \n
-///    The remaining bits in the destination are copied from the corresponding
-///    bits in operand \a a.
-/// \returns A 64-bit integer vector containing the copied packed data from the
-///    operands.
-#define _mm_insert_pi16(a, d, n) \
-  ((__m64)__builtin_ia32_vec_set_v4hi((__v4hi)a, (int)d, (int)n))
-
-/// Compares each of the corresponding packed 16-bit integer values of
-///    the 64-bit integer vectors, and writes the greater value to the
-///    corresponding bits in the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PMAXSW </c> instruction.
-///
-/// \param __a
-///    A 64-bit integer vector containing one of the source operands.
-/// \param __b
-///    A 64-bit integer vector containing one of the source operands.
-/// \returns A 64-bit integer vector containing the comparison results.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_max_pi16(__m64 __a, __m64 __b)
-{
-  return (__m64)__builtin_ia32_pmaxsw((__v4hi)__a, (__v4hi)__b);
-}
-
-/// Compares each of the corresponding packed 8-bit unsigned integer
-///    values of the 64-bit integer vectors, and writes the greater value to the
-///    corresponding bits in the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PMAXUB </c> instruction.
-///
-/// \param __a
-///    A 64-bit integer vector containing one of the source operands.
-/// \param __b
-///    A 64-bit integer vector containing one of the source operands.
-/// \returns A 64-bit integer vector containing the comparison results.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_max_pu8(__m64 __a, __m64 __b)
-{
-  return (__m64)__builtin_ia32_pmaxub((__v8qi)__a, (__v8qi)__b);
-}
-
-/// Compares each of the corresponding packed 16-bit integer values of
-///    the 64-bit integer vectors, and writes the lesser value to the
-///    corresponding bits in the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PMINSW </c> instruction.
-///
-/// \param __a
-///    A 64-bit integer vector containing one of the source operands.
-/// \param __b
-///    A 64-bit integer vector containing one of the source operands.
-/// \returns A 64-bit integer vector containing the comparison results.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_min_pi16(__m64 __a, __m64 __b)
-{
-  return (__m64)__builtin_ia32_pminsw((__v4hi)__a, (__v4hi)__b);
-}
-
-/// Compares each of the corresponding packed 8-bit unsigned integer
-///    values of the 64-bit integer vectors, and writes the lesser value to the
-///    corresponding bits in the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PMINUB </c> instruction.
-///
-/// \param __a
-///    A 64-bit integer vector containing one of the source operands.
-/// \param __b
-///    A 64-bit integer vector containing one of the source operands.
-/// \returns A 64-bit integer vector containing the comparison results.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_min_pu8(__m64 __a, __m64 __b)
-{
-  return (__m64)__builtin_ia32_pminub((__v8qi)__a, (__v8qi)__b);
-}
-
-/// Takes the most significant bit from each 8-bit element in a 64-bit
-///    integer vector to create an 8-bit mask value. Zero-extends the value to
-///    32-bit integer and writes it to the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PMOVMSKB </c> instruction.
-///
-/// \param __a
-///    A 64-bit integer vector containing the values with bits to be extracted.
-/// \returns The most significant bit from each 8-bit element in \a __a,
-///    written to bits [7:0].
-static __inline__ int __DEFAULT_FN_ATTRS_MMX
-_mm_movemask_pi8(__m64 __a)
-{
-  return __builtin_ia32_pmovmskb((__v8qi)__a);
-}
-
-/// Multiplies packed 16-bit unsigned integer values and writes the
-///    high-order 16 bits of each 32-bit product to the corresponding bits in
-///    the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PMULHUW </c> instruction.
-///
-/// \param __a
-///    A 64-bit integer vector containing one of the source operands.
-/// \param __b
-///    A 64-bit integer vector containing one of the source operands.
-/// \returns A 64-bit integer vector containing the products of both operands.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_mulhi_pu16(__m64 __a, __m64 __b)
-{
-  return (__m64)__builtin_ia32_pmulhuw((__v4hi)__a, (__v4hi)__b);
-}
-
-/// Shuffles the 4 16-bit integers from a 64-bit integer vector to the
-///    destination, as specified by the immediate value operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m64 _mm_shuffle_pi16(__m64 a, const int n);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> PSHUFW </c> instruction.
-///
-/// \param a
-///    A 64-bit integer vector containing the values to be shuffled.
-/// \param n
-///    An immediate value containing an 8-bit value specifying which elements to
-///    copy from \a a. The destinations within the 64-bit destination are
-///    assigned values as follows: \n
-///    Bits [1:0] are used to assign values to bits [15:0] in the
-///    destination. \n
-///    Bits [3:2] are used to assign values to bits [31:16] in the
-///    destination. \n
-///    Bits [5:4] are used to assign values to bits [47:32] in the
-///    destination. \n
-///    Bits [7:6] are used to assign values to bits [63:48] in the
-///    destination. \n
-///    Bit value assignments: \n
-///    00: assigned from bits [15:0] of \a a. \n
-///    01: assigned from bits [31:16] of \a a. \n
-///    10: assigned from bits [47:32] of \a a. \n
-///    11: assigned from bits [63:48] of \a a.
-/// \returns A 64-bit integer vector containing the shuffled values.
-#define _mm_shuffle_pi16(a, n) \
-  ((__m64)__builtin_ia32_pshufw((__v4hi)(__m64)(a), (n)))
-
-/// Conditionally copies the values from each 8-bit element in the first
-///    64-bit integer vector operand to the specified memory location, as
-///    specified by the most significant bit in the corresponding element in the
-///    second 64-bit integer vector operand.
-///
-///    To minimize caching, the data is flagged as non-temporal
-///    (unlikely to be used again soon).
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> MASKMOVQ </c> instruction.
-///
-/// \param __d
-///    A 64-bit integer vector containing the values with elements to be copied.
-/// \param __n
-///    A 64-bit integer vector operand. The most significant bit from each 8-bit
-///    element determines whether the corresponding element in operand \a __d
-///    is copied. If the most significant bit of a given element is 1, the
-///    corresponding element in operand \a __d is copied.
-/// \param __p
-///    A pointer to a 64-bit memory location that will receive the conditionally
-///    copied integer values. The address of the memory location does not have
-///    to be aligned.
-static __inline__ void __DEFAULT_FN_ATTRS_MMX
-_mm_maskmove_si64(__m64 __d, __m64 __n, char *__p)
-{
-  __builtin_ia32_maskmovq((__v8qi)__d, (__v8qi)__n, __p);
-}
-
-/// Computes the rounded averages of the packed unsigned 8-bit integer
-///    values and writes the averages to the corresponding bits in the
-///    destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PAVGB </c> instruction.
-///
-/// \param __a
-///    A 64-bit integer vector containing one of the source operands.
-/// \param __b
-///    A 64-bit integer vector containing one of the source operands.
-/// \returns A 64-bit integer vector containing the averages of both operands.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_avg_pu8(__m64 __a, __m64 __b)
-{
-  return (__m64)__builtin_ia32_pavgb((__v8qi)__a, (__v8qi)__b);
-}
-
-/// Computes the rounded averages of the packed unsigned 16-bit integer
-///    values and writes the averages to the corresponding bits in the
-///    destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PAVGW </c> instruction.
-///
-/// \param __a
-///    A 64-bit integer vector containing one of the source operands.
-/// \param __b
-///    A 64-bit integer vector containing one of the source operands.
-/// \returns A 64-bit integer vector containing the averages of both operands.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_avg_pu16(__m64 __a, __m64 __b)
-{
-  return (__m64)__builtin_ia32_pavgw((__v4hi)__a, (__v4hi)__b);
-}
-
-/// Subtracts the corresponding 8-bit unsigned integer values of the two
-///    64-bit vector operands and computes the absolute value for each of the
-///    difference. Then sum of the 8 absolute differences is written to the
-///    bits [15:0] of the destination; the remaining bits [63:16] are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> PSADBW </c> instruction.
-///
-/// \param __a
-///    A 64-bit integer vector containing one of the source operands.
-/// \param __b
-///    A 64-bit integer vector containing one of the source operands.
-/// \returns A 64-bit integer vector whose lower 16 bits contain the sums of the
-///    sets of absolute differences between both operands. The upper bits are
-///    cleared.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_sad_pu8(__m64 __a, __m64 __b)
-{
-  return (__m64)__builtin_ia32_psadbw((__v8qi)__a, (__v8qi)__b);
-}
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/// Returns the contents of the MXCSR register as a 32-bit unsigned
-///    integer value.
-///
-///    There are several groups of macros associated with this
-///    intrinsic, including:
-///    <ul>
-///    <li>
-///      For checking exception states: _MM_EXCEPT_INVALID, _MM_EXCEPT_DIV_ZERO,
-///      _MM_EXCEPT_DENORM, _MM_EXCEPT_OVERFLOW, _MM_EXCEPT_UNDERFLOW,
-///      _MM_EXCEPT_INEXACT. There is a convenience wrapper
-///      _MM_GET_EXCEPTION_STATE().
-///    </li>
-///    <li>
-///      For checking exception masks: _MM_MASK_UNDERFLOW, _MM_MASK_OVERFLOW,
-///      _MM_MASK_INVALID, _MM_MASK_DENORM, _MM_MASK_DIV_ZERO, _MM_MASK_INEXACT.
-///      There is a convenience wrapper _MM_GET_EXCEPTION_MASK().
-///    </li>
-///    <li>
-///      For checking rounding modes: _MM_ROUND_NEAREST, _MM_ROUND_DOWN,
-///      _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO. There is a convenience wrapper
-///      _MM_GET_ROUNDING_MODE().
-///    </li>
-///    <li>
-///      For checking flush-to-zero mode: _MM_FLUSH_ZERO_ON, _MM_FLUSH_ZERO_OFF.
-///      There is a convenience wrapper _MM_GET_FLUSH_ZERO_MODE().
-///    </li>
-///    <li>
-///      For checking denormals-are-zero mode: _MM_DENORMALS_ZERO_ON,
-///      _MM_DENORMALS_ZERO_OFF. There is a convenience wrapper
-///      _MM_GET_DENORMALS_ZERO_MODE().
-///    </li>
-///    </ul>
-///
-///    For example, the following expression checks if an overflow exception has
-///    occurred:
-///    \code
-///      ( _mm_getcsr() & _MM_EXCEPT_OVERFLOW )
-///    \endcode
-///
-///    The following expression gets the current rounding mode:
-///    \code
-///      _MM_GET_ROUNDING_MODE()
-///    \endcode
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VSTMXCSR / STMXCSR </c> instruction.
-///
-/// \returns A 32-bit unsigned integer containing the contents of the MXCSR
-///    register.
-unsigned int _mm_getcsr(void);
-
-/// Sets the MXCSR register with the 32-bit unsigned integer value.
-///
-///    There are several groups of macros associated with this intrinsic,
-///    including:
-///    <ul>
-///    <li>
-///      For setting exception states: _MM_EXCEPT_INVALID, _MM_EXCEPT_DIV_ZERO,
-///      _MM_EXCEPT_DENORM, _MM_EXCEPT_OVERFLOW, _MM_EXCEPT_UNDERFLOW,
-///      _MM_EXCEPT_INEXACT. There is a convenience wrapper
-///      _MM_SET_EXCEPTION_STATE(x) where x is one of these macros.
-///    </li>
-///    <li>
-///      For setting exception masks: _MM_MASK_UNDERFLOW, _MM_MASK_OVERFLOW,
-///      _MM_MASK_INVALID, _MM_MASK_DENORM, _MM_MASK_DIV_ZERO, _MM_MASK_INEXACT.
-///      There is a convenience wrapper _MM_SET_EXCEPTION_MASK(x) where x is one
-///      of these macros.
-///    </li>
-///    <li>
-///      For setting rounding modes: _MM_ROUND_NEAREST, _MM_ROUND_DOWN,
-///      _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO. There is a convenience wrapper
-///      _MM_SET_ROUNDING_MODE(x) where x is one of these macros.
-///    </li>
-///    <li>
-///      For setting flush-to-zero mode: _MM_FLUSH_ZERO_ON, _MM_FLUSH_ZERO_OFF.
-///      There is a convenience wrapper _MM_SET_FLUSH_ZERO_MODE(x) where x is
-///      one of these macros.
-///    </li>
-///    <li>
-///      For setting denormals-are-zero mode: _MM_DENORMALS_ZERO_ON,
-///      _MM_DENORMALS_ZERO_OFF. There is a convenience wrapper
-///      _MM_SET_DENORMALS_ZERO_MODE(x) where x is one of these macros.
-///    </li>
-///    </ul>
-///
-///    For example, the following expression causes subsequent floating-point
-///    operations to round up:
-///      _mm_setcsr(_mm_getcsr() | _MM_ROUND_UP)
-///
-///    The following example sets the DAZ and FTZ flags:
-///    \code
-///    void setFlags() {
-///      _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON);
-///      _MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON);
-///    }
-///    \endcode
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VLDMXCSR / LDMXCSR </c> instruction.
-///
-/// \param __i
-///    A 32-bit unsigned integer value to be written to the MXCSR register.
-void _mm_setcsr(unsigned int __i);
-
-#if defined(__cplusplus)
-} // extern "C"
-#endif
-
-/// Selects 4 float values from the 128-bit operands of [4 x float], as
-///    specified by the immediate value operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m128 _mm_shuffle_ps(__m128 a, __m128 b, const int mask);
-/// \endcode
-///
-/// This intrinsic corresponds to the <c> VSHUFPS / SHUFPS </c> instruction.
-///
-/// \param a
-///    A 128-bit vector of [4 x float].
-/// \param b
-///    A 128-bit vector of [4 x float].
-/// \param mask
-///    An immediate value containing an 8-bit value specifying which elements to
-///    copy from \a a and \a b. \n
-///    Bits [3:0] specify the values copied from operand \a a. \n
-///    Bits [7:4] specify the values copied from operand \a b. \n
-///    The destinations within the 128-bit destination are assigned values as
-///    follows: \n
-///    Bits [1:0] are used to assign values to bits [31:0] in the
-///    destination. \n
-///    Bits [3:2] are used to assign values to bits [63:32] in the
-///    destination. \n
-///    Bits [5:4] are used to assign values to bits [95:64] in the
-///    destination. \n
-///    Bits [7:6] are used to assign values to bits [127:96] in the
-///    destination. \n
-///    Bit value assignments: \n
-///    00: Bits [31:0] copied from the specified operand. \n
-///    01: Bits [63:32] copied from the specified operand. \n
-///    10: Bits [95:64] copied from the specified operand. \n
-///    11: Bits [127:96] copied from the specified operand.
-/// \returns A 128-bit vector of [4 x float] containing the shuffled values.
-#define _mm_shuffle_ps(a, b, mask) \
-  ((__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \
-                                 (int)(mask)))
-
-/// Unpacks the high-order (index 2,3) values from two 128-bit vectors of
-///    [4 x float] and interleaves them into a 128-bit vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUNPCKHPS / UNPCKHPS </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. \n
-///    Bits [95:64] are written to bits [31:0] of the destination. \n
-///    Bits [127:96] are written to bits [95:64] of the destination.
-/// \param __b
-///    A 128-bit vector of [4 x float].
-///    Bits [95:64] are written to bits [63:32] of the destination. \n
-///    Bits [127:96] are written to bits [127:96] of the destination.
-/// \returns A 128-bit vector of [4 x float] containing the interleaved values.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_unpackhi_ps(__m128 __a, __m128 __b)
-{
-  return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 2, 6, 3, 7);
-}
-
-/// Unpacks the low-order (index 0,1) values from two 128-bit vectors of
-///    [4 x float] and interleaves them into a 128-bit vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUNPCKLPS / UNPCKLPS </c> instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float]. \n
-///    Bits [31:0] are written to bits [31:0] of the destination.  \n
-///    Bits [63:32] are written to bits [95:64] of the destination.
-/// \param __b
-///    A 128-bit vector of [4 x float]. \n
-///    Bits [31:0] are written to bits [63:32] of the destination. \n
-///    Bits [63:32] are written to bits [127:96] of the destination.
-/// \returns A 128-bit vector of [4 x float] containing the interleaved values.
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_unpacklo_ps(__m128 __a, __m128 __b)
-{
-  return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 0, 4, 1, 5);
-}
-
-/// Constructs a 128-bit floating-point vector of [4 x float]. The lower
-///    32 bits are set to the lower 32 bits of the second parameter. The upper
-///    96 bits are set to the upper 96 bits of the first parameter.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VBLENDPS / BLENDPS / MOVSS </c>
-///    instruction.
-///
-/// \param __a
-///    A 128-bit floating-point vector of [4 x float]. The upper 96 bits are
-///    written to the upper 96 bits of the result.
-/// \param __b
-///    A 128-bit floating-point vector of [4 x float]. The lower 32 bits are
-///    written to the lower 32 bits of the result.
-/// \returns A 128-bit floating-point vector of [4 x float].
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_move_ss(__m128 __a, __m128 __b)
-{
-  __a[0] = __b[0];
-  return __a;
-}
-
-/// Constructs a 128-bit floating-point vector of [4 x float]. The lower
-///    64 bits are set to the upper 64 bits of the second parameter. The upper
-///    64 bits are set to the upper 64 bits of the first parameter.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUNPCKHPD / UNPCKHPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit floating-point vector of [4 x float]. The upper 64 bits are
-///    written to the upper 64 bits of the result.
-/// \param __b
-///    A 128-bit floating-point vector of [4 x float]. The upper 64 bits are
-///    written to the lower 64 bits of the result.
-/// \returns A 128-bit floating-point vector of [4 x float].
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_movehl_ps(__m128 __a, __m128 __b)
-{
-  return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 6, 7, 2, 3);
-}
-
-/// Constructs a 128-bit floating-point vector of [4 x float]. The lower
-///    64 bits are set to the lower 64 bits of the first parameter. The upper
-///    64 bits are set to the lower 64 bits of the second parameter.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VUNPCKLPD / UNPCKLPD </c> instruction.
-///
-/// \param __a
-///    A 128-bit floating-point vector of [4 x float]. The lower 64 bits are
-///    written to the lower 64 bits of the result.
-/// \param __b
-///    A 128-bit floating-point vector of [4 x float]. The lower 64 bits are
-///    written to the upper 64 bits of the result.
-/// \returns A 128-bit floating-point vector of [4 x float].
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_movelh_ps(__m128 __a, __m128 __b)
-{
-  return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 0, 1, 4, 5);
-}
-
-/// Converts a 64-bit vector of [4 x i16] into a 128-bit vector of [4 x
-///    float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CVTPI2PS + COMPOSITE </c> instruction.
-///
-/// \param __a
-///    A 64-bit vector of [4 x i16]. The elements of the destination are copied
-///    from the corresponding elements in this operand.
-/// \returns A 128-bit vector of [4 x float] containing the copied and converted
-///    values from the operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS_MMX
-_mm_cvtpi16_ps(__m64 __a)
-{
-  __m64 __b, __c;
-  __m128 __r;
-
-  __b = _mm_setzero_si64();
-  __b = _mm_cmpgt_pi16(__b, __a);
-  __c = _mm_unpackhi_pi16(__a, __b);
-  __r = _mm_setzero_ps();
-  __r = _mm_cvtpi32_ps(__r, __c);
-  __r = _mm_movelh_ps(__r, __r);
-  __c = _mm_unpacklo_pi16(__a, __b);
-  __r = _mm_cvtpi32_ps(__r, __c);
-
-  return __r;
-}
-
-/// Converts a 64-bit vector of 16-bit unsigned integer values into a
-///    128-bit vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CVTPI2PS + COMPOSITE </c> instruction.
-///
-/// \param __a
-///    A 64-bit vector of 16-bit unsigned integer values. The elements of the
-///    destination are copied from the corresponding elements in this operand.
-/// \returns A 128-bit vector of [4 x float] containing the copied and converted
-///    values from the operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS_MMX
-_mm_cvtpu16_ps(__m64 __a)
-{
-  __m64 __b, __c;
-  __m128 __r;
-
-  __b = _mm_setzero_si64();
-  __c = _mm_unpackhi_pi16(__a, __b);
-  __r = _mm_setzero_ps();
-  __r = _mm_cvtpi32_ps(__r, __c);
-  __r = _mm_movelh_ps(__r, __r);
-  __c = _mm_unpacklo_pi16(__a, __b);
-  __r = _mm_cvtpi32_ps(__r, __c);
-
-  return __r;
-}
-
-/// Converts the lower four 8-bit values from a 64-bit vector of [8 x i8]
-///    into a 128-bit vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CVTPI2PS + COMPOSITE </c> instruction.
-///
-/// \param __a
-///    A 64-bit vector of [8 x i8]. The elements of the destination are copied
-///    from the corresponding lower 4 elements in this operand.
-/// \returns A 128-bit vector of [4 x float] containing the copied and converted
-///    values from the operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS_MMX
-_mm_cvtpi8_ps(__m64 __a)
-{
-  __m64 __b;
-
-  __b = _mm_setzero_si64();
-  __b = _mm_cmpgt_pi8(__b, __a);
-  __b = _mm_unpacklo_pi8(__a, __b);
-
-  return _mm_cvtpi16_ps(__b);
-}
-
-/// Converts the lower four unsigned 8-bit integer values from a 64-bit
-///    vector of [8 x u8] into a 128-bit vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CVTPI2PS + COMPOSITE </c> instruction.
-///
-/// \param __a
-///    A 64-bit vector of unsigned 8-bit integer values. The elements of the
-///    destination are copied from the corresponding lower 4 elements in this
-///    operand.
-/// \returns A 128-bit vector of [4 x float] containing the copied and converted
-///    values from the source operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS_MMX
-_mm_cvtpu8_ps(__m64 __a)
-{
-  __m64 __b;
-
-  __b = _mm_setzero_si64();
-  __b = _mm_unpacklo_pi8(__a, __b);
-
-  return _mm_cvtpi16_ps(__b);
-}
-
-/// Converts the two 32-bit signed integer values from each 64-bit vector
-///    operand of [2 x i32] into a 128-bit vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CVTPI2PS + COMPOSITE </c> instruction.
-///
-/// \param __a
-///    A 64-bit vector of [2 x i32]. The lower elements of the destination are
-///    copied from the elements in this operand.
-/// \param __b
-///    A 64-bit vector of [2 x i32]. The upper elements of the destination are
-///    copied from the elements in this operand.
-/// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the
-///    copied and converted values from the first operand. The upper 64 bits
-///    contain the copied and converted values from the second operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS_MMX
-_mm_cvtpi32x2_ps(__m64 __a, __m64 __b)
-{
-  __m128 __c;
-
-  __c = _mm_setzero_ps();
-  __c = _mm_cvtpi32_ps(__c, __b);
-  __c = _mm_movelh_ps(__c, __c);
-
-  return _mm_cvtpi32_ps(__c, __a);
-}
-
-/// Converts each single-precision floating-point element of a 128-bit
-///    floating-point vector of [4 x float] into a 16-bit signed integer, and
-///    packs the results into a 64-bit integer vector of [4 x i16].
-///
-///    If the floating-point element is NaN or infinity, or if the
-///    floating-point element is greater than 0x7FFFFFFF or less than -0x8000,
-///    it is converted to 0x8000. Otherwise if the floating-point element is
-///    greater than 0x7FFF, it is converted to 0x7FFF.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CVTPS2PI + COMPOSITE </c> instruction.
-///
-/// \param __a
-///    A 128-bit floating-point vector of [4 x float].
-/// \returns A 64-bit integer vector of [4 x i16] containing the converted
-///    values.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_cvtps_pi16(__m128 __a)
-{
-  __m64 __b, __c;
-
-  __b = _mm_cvtps_pi32(__a);
-  __a = _mm_movehl_ps(__a, __a);
-  __c = _mm_cvtps_pi32(__a);
-
-  return _mm_packs_pi32(__b, __c);
-}
-
-/// Converts each single-precision floating-point element of a 128-bit
-///    floating-point vector of [4 x float] into an 8-bit signed integer, and
-///    packs the results into the lower 32 bits of a 64-bit integer vector of
-///    [8 x i8]. The upper 32 bits of the vector are set to 0.
-///
-///    If the floating-point element is NaN or infinity, or if the
-///    floating-point element is greater than 0x7FFFFFFF or less than -0x80, it
-///    is converted to 0x80. Otherwise if the floating-point element is greater
-///    than 0x7F, it is converted to 0x7F.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CVTPS2PI + COMPOSITE </c> instruction.
-///
-/// \param __a
-///    128-bit floating-point vector of [4 x float].
-/// \returns A 64-bit integer vector of [8 x i8]. The lower 32 bits contain the
-///    converted values and the uppper 32 bits are set to zero.
-static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX
-_mm_cvtps_pi8(__m128 __a)
-{
-  __m64 __b, __c;
-
-  __b = _mm_cvtps_pi16(__a);
-  __c = _mm_setzero_si64();
-
-  return _mm_packs_pi16(__b, __c);
-}
-
-/// Extracts the sign bits from each single-precision floating-point
-///    element of a 128-bit floating-point vector of [4 x float] and returns the
-///    sign bits in bits [0:3] of the result. Bits [31:4] of the result are set
-///    to zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VMOVMSKPS / MOVMSKPS </c> instruction.
-///
-/// \param __a
-///    A 128-bit floating-point vector of [4 x float].
-/// \returns A 32-bit integer value. Bits [3:0] contain the sign bits from each
-///    single-precision floating-point element of the parameter. Bits [31:4] are
-///    set to zero.
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_movemask_ps(__m128 __a)
-{
-  return __builtin_ia32_movmskps((__v4sf)__a);
-}
-
-
-#define _MM_ALIGN16 __attribute__((aligned(16)))
-
-#define _MM_SHUFFLE(z, y, x, w) (((z) << 6) | ((y) << 4) | ((x) << 2) | (w))
-
-#define _MM_EXCEPT_INVALID    (0x0001U)
-#define _MM_EXCEPT_DENORM     (0x0002U)
-#define _MM_EXCEPT_DIV_ZERO   (0x0004U)
-#define _MM_EXCEPT_OVERFLOW   (0x0008U)
-#define _MM_EXCEPT_UNDERFLOW  (0x0010U)
-#define _MM_EXCEPT_INEXACT    (0x0020U)
-#define _MM_EXCEPT_MASK       (0x003fU)
-
-#define _MM_MASK_INVALID      (0x0080U)
-#define _MM_MASK_DENORM       (0x0100U)
-#define _MM_MASK_DIV_ZERO     (0x0200U)
-#define _MM_MASK_OVERFLOW     (0x0400U)
-#define _MM_MASK_UNDERFLOW    (0x0800U)
-#define _MM_MASK_INEXACT      (0x1000U)
-#define _MM_MASK_MASK         (0x1f80U)
-
-#define _MM_ROUND_NEAREST     (0x0000U)
-#define _MM_ROUND_DOWN        (0x2000U)
-#define _MM_ROUND_UP          (0x4000U)
-#define _MM_ROUND_TOWARD_ZERO (0x6000U)
-#define _MM_ROUND_MASK        (0x6000U)
-
-#define _MM_FLUSH_ZERO_MASK   (0x8000U)
-#define _MM_FLUSH_ZERO_ON     (0x8000U)
-#define _MM_FLUSH_ZERO_OFF    (0x0000U)
-
-#define _MM_GET_EXCEPTION_MASK() (_mm_getcsr() & _MM_MASK_MASK)
-#define _MM_GET_EXCEPTION_STATE() (_mm_getcsr() & _MM_EXCEPT_MASK)
-#define _MM_GET_FLUSH_ZERO_MODE() (_mm_getcsr() & _MM_FLUSH_ZERO_MASK)
-#define _MM_GET_ROUNDING_MODE() (_mm_getcsr() & _MM_ROUND_MASK)
-
-#define _MM_SET_EXCEPTION_MASK(x) (_mm_setcsr((_mm_getcsr() & ~_MM_MASK_MASK) | (x)))
-#define _MM_SET_EXCEPTION_STATE(x) (_mm_setcsr((_mm_getcsr() & ~_MM_EXCEPT_MASK) | (x)))
-#define _MM_SET_FLUSH_ZERO_MODE(x) (_mm_setcsr((_mm_getcsr() & ~_MM_FLUSH_ZERO_MASK) | (x)))
-#define _MM_SET_ROUNDING_MODE(x) (_mm_setcsr((_mm_getcsr() & ~_MM_ROUND_MASK) | (x)))
-
-#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \
-do { \
-  __m128 tmp3, tmp2, tmp1, tmp0; \
-  tmp0 = _mm_unpacklo_ps((row0), (row1)); \
-  tmp2 = _mm_unpacklo_ps((row2), (row3)); \
-  tmp1 = _mm_unpackhi_ps((row0), (row1)); \
-  tmp3 = _mm_unpackhi_ps((row2), (row3)); \
-  (row0) = _mm_movelh_ps(tmp0, tmp2); \
-  (row1) = _mm_movehl_ps(tmp2, tmp0); \
-  (row2) = _mm_movelh_ps(tmp1, tmp3); \
-  (row3) = _mm_movehl_ps(tmp3, tmp1); \
-} while (0)
-
-/* Aliases for compatibility. */
-#define _m_pextrw _mm_extract_pi16
-#define _m_pinsrw _mm_insert_pi16
-#define _m_pmaxsw _mm_max_pi16
-#define _m_pmaxub _mm_max_pu8
-#define _m_pminsw _mm_min_pi16
-#define _m_pminub _mm_min_pu8
-#define _m_pmovmskb _mm_movemask_pi8
-#define _m_pmulhuw _mm_mulhi_pu16
-#define _m_pshufw _mm_shuffle_pi16
-#define _m_maskmovq _mm_maskmove_si64
-#define _m_pavgb _mm_avg_pu8
-#define _m_pavgw _mm_avg_pu16
-#define _m_psadbw _mm_sad_pu8
-#define _m_ _mm_
-#define _m_ _mm_
-
-#undef __DEFAULT_FN_ATTRS
-#undef __DEFAULT_FN_ATTRS_MMX
-
-/* Ugly hack for backwards-compatibility (compatible with gcc) */
-#if defined(__SSE2__) && !__building_module(_Builtin_intrinsics)
-#include <emmintrin.h>
-#endif
-
-#endif /* __XMMINTRIN_H */
diff --git a/linux-x86/lib64/clang/14.0.1/include/__clang_cuda_builtin_vars.h b/linux-x86/lib64/clang/14.0.2/include/__clang_cuda_builtin_vars.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/__clang_cuda_builtin_vars.h
rename to linux-x86/lib64/clang/14.0.2/include/__clang_cuda_builtin_vars.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/__clang_cuda_cmath.h b/linux-x86/lib64/clang/14.0.2/include/__clang_cuda_cmath.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/__clang_cuda_cmath.h
rename to linux-x86/lib64/clang/14.0.2/include/__clang_cuda_cmath.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/__clang_cuda_complex_builtins.h b/linux-x86/lib64/clang/14.0.2/include/__clang_cuda_complex_builtins.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/__clang_cuda_complex_builtins.h
rename to linux-x86/lib64/clang/14.0.2/include/__clang_cuda_complex_builtins.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/__clang_cuda_device_functions.h b/linux-x86/lib64/clang/14.0.2/include/__clang_cuda_device_functions.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/__clang_cuda_device_functions.h
rename to linux-x86/lib64/clang/14.0.2/include/__clang_cuda_device_functions.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_intrinsics.h b/linux-x86/lib64/clang/14.0.2/include/__clang_cuda_intrinsics.h
similarity index 93%
copy from darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_intrinsics.h
copy to linux-x86/lib64/clang/14.0.2/include/__clang_cuda_intrinsics.h
index c7bff6a..e0875bb 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/__clang_cuda_intrinsics.h
+++ b/linux-x86/lib64/clang/14.0.2/include/__clang_cuda_intrinsics.h
@@ -483,4 +483,36 @@
 
 #endif // !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 320
 
+#if CUDA_VERSION >= 11000
+extern "C" {
+__device__ inline size_t __nv_cvta_generic_to_global_impl(const void *__ptr) {
+  return (size_t)(void __attribute__((address_space(1))) *)__ptr;
+}
+__device__ inline size_t __nv_cvta_generic_to_shared_impl(const void *__ptr) {
+  return (size_t)(void __attribute__((address_space(3))) *)__ptr;
+}
+__device__ inline size_t __nv_cvta_generic_to_constant_impl(const void *__ptr) {
+  return (size_t)(void __attribute__((address_space(4))) *)__ptr;
+}
+__device__ inline size_t __nv_cvta_generic_to_local_impl(const void *__ptr) {
+  return (size_t)(void __attribute__((address_space(5))) *)__ptr;
+}
+__device__ inline void *__nv_cvta_global_to_generic_impl(size_t __ptr) {
+  return (void *)(void __attribute__((address_space(1))) *)__ptr;
+}
+__device__ inline void *__nv_cvta_shared_to_generic_impl(size_t __ptr) {
+  return (void *)(void __attribute__((address_space(3))) *)__ptr;
+}
+__device__ inline void *__nv_cvta_constant_to_generic_impl(size_t __ptr) {
+  return (void *)(void __attribute__((address_space(4))) *)__ptr;
+}
+__device__ inline void *__nv_cvta_local_to_generic_impl(size_t __ptr) {
+  return (void *)(void __attribute__((address_space(5))) *)__ptr;
+}
+__device__ inline uint32_t __nvvm_get_smem_pointer(void *__ptr) {
+  return __nv_cvta_generic_to_shared_impl(__ptr);
+}
+} // extern "C"
+#endif // CUDA_VERSION >= 11000
+
 #endif // defined(__CLANG_CUDA_INTRINSICS_H__)
diff --git a/linux-x86/lib64/clang/14.0.1/include/__clang_cuda_libdevice_declares.h b/linux-x86/lib64/clang/14.0.2/include/__clang_cuda_libdevice_declares.h
similarity index 99%
rename from linux-x86/lib64/clang/14.0.1/include/__clang_cuda_libdevice_declares.h
rename to linux-x86/lib64/clang/14.0.2/include/__clang_cuda_libdevice_declares.h
index 6173b58..23f3596 100644
--- a/linux-x86/lib64/clang/14.0.1/include/__clang_cuda_libdevice_declares.h
+++ b/linux-x86/lib64/clang/14.0.2/include/__clang_cuda_libdevice_declares.h
@@ -16,6 +16,7 @@
 
 #if defined(__OPENMP_NVPTX__)
 #define __DEVICE__
+#pragma omp begin assumes ext_spmd_amenable no_openmp
 #elif defined(__CUDA__)
 #define __DEVICE__ __device__
 #endif
@@ -456,6 +457,11 @@
 __DEVICE__ float __nv_y1f(float __a);
 __DEVICE__ float __nv_ynf(int __a, float __b);
 __DEVICE__ double __nv_yn(int __a, double __b);
+
+#if defined(__OPENMP_NVPTX__)
+#pragma omp end assumes ext_spmd_amenable no_openmp
+#endif
+
 #if defined(__cplusplus)
 } // extern "C"
 #endif
diff --git a/linux-x86/lib64/clang/14.0.1/include/__clang_cuda_math.h b/linux-x86/lib64/clang/14.0.2/include/__clang_cuda_math.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/__clang_cuda_math.h
rename to linux-x86/lib64/clang/14.0.2/include/__clang_cuda_math.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/__clang_cuda_math_forward_declares.h b/linux-x86/lib64/clang/14.0.2/include/__clang_cuda_math_forward_declares.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/__clang_cuda_math_forward_declares.h
rename to linux-x86/lib64/clang/14.0.2/include/__clang_cuda_math_forward_declares.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/__clang_cuda_runtime_wrapper.h b/linux-x86/lib64/clang/14.0.2/include/__clang_cuda_runtime_wrapper.h
similarity index 86%
rename from linux-x86/lib64/clang/14.0.1/include/__clang_cuda_runtime_wrapper.h
rename to linux-x86/lib64/clang/14.0.2/include/__clang_cuda_runtime_wrapper.h
index f401964..512fc30 100644
--- a/linux-x86/lib64/clang/14.0.1/include/__clang_cuda_runtime_wrapper.h
+++ b/linux-x86/lib64/clang/14.0.2/include/__clang_cuda_runtime_wrapper.h
@@ -41,6 +41,7 @@
 #include <cmath>
 #include <cstdlib>
 #include <stdlib.h>
+#include <string.h>
 #undef __CUDACC__
 
 // Preserve common macros that will be changed below by us or by CUDA
@@ -64,9 +65,9 @@
 #endif
 
 // Make largest subset of device functions available during host
-// compilation -- SM_35 for the time being.
+// compilation.
 #ifndef __CUDA_ARCH__
-#define __CUDA_ARCH__ 350
+#define __CUDA_ARCH__ 9999
 #endif
 
 #include "__clang_cuda_builtin_vars.h"
@@ -205,11 +206,6 @@
 #endif
 
 #if CUDA_VERSION >= 9000
-// CUDA-9.2 needs host-side memcpy for some host functions in
-// device_functions.hpp
-#if CUDA_VERSION >= 9020
-#include <string.h>
-#endif
 #include "crt/math_functions.hpp"
 #else
 #include "math_functions.hpp"
@@ -275,7 +271,38 @@
 #undef __CUDABE__
 #endif
 #include "sm_20_atomic_functions.hpp"
+// Predicate functions used in `__builtin_assume` need to have no side effect.
+// However, sm_20_intrinsics.hpp doesn't define them with neither pure nor
+// const attribute. Rename definitions from sm_20_intrinsics.hpp and re-define
+// them as pure ones.
+#pragma push_macro("__isGlobal")
+#pragma push_macro("__isShared")
+#pragma push_macro("__isConstant")
+#pragma push_macro("__isLocal")
+#define __isGlobal __ignored_cuda___isGlobal
+#define __isShared __ignored_cuda___isShared
+#define __isConstant __ignored_cuda___isConstant
+#define __isLocal __ignored_cuda___isLocal
 #include "sm_20_intrinsics.hpp"
+#pragma pop_macro("__isGlobal")
+#pragma pop_macro("__isShared")
+#pragma pop_macro("__isConstant")
+#pragma pop_macro("__isLocal")
+#pragma push_macro("__DEVICE__")
+#define __DEVICE__ static __device__ __forceinline__ __attribute__((const))
+__DEVICE__ unsigned int __isGlobal(const void *p) {
+  return __nvvm_isspacep_global(p);
+}
+__DEVICE__ unsigned int __isShared(const void *p) {
+  return __nvvm_isspacep_shared(p);
+}
+__DEVICE__ unsigned int __isConstant(const void *p) {
+  return __nvvm_isspacep_const(p);
+}
+__DEVICE__ unsigned int __isLocal(const void *p) {
+  return __nvvm_isspacep_local(p);
+}
+#pragma pop_macro("__DEVICE__")
 #include "sm_32_atomic_functions.hpp"
 
 // Don't include sm_30_intrinsics.h and sm_32_intrinsics.h.  These define the
@@ -330,6 +357,34 @@
 
 #pragma pop_macro("__host__")
 
+// __clang_cuda_texture_intrinsics.h must be included first in order to provide
+// implementation for __nv_tex_surf_handler that CUDA's headers depend on.
+// The implementation requires c++11 and only works with CUDA-9 or newer.
+#if __cplusplus >= 201103L && CUDA_VERSION >= 9000
+// clang-format off
+#include <__clang_cuda_texture_intrinsics.h>
+// clang-format on
+#else
+#if CUDA_VERSION >= 9000
+// Provide a hint that texture support needs C++11.
+template <typename T> struct __nv_tex_needs_cxx11 {
+  const static bool value = false;
+};
+template <class T>
+__host__ __device__ void __nv_tex_surf_handler(const char *name, T *ptr,
+                                               cudaTextureObject_t obj,
+                                               float x) {
+  _Static_assert(__nv_tex_needs_cxx11<T>::value,
+                 "Texture support requires C++11");
+}
+#else
+// Textures in CUDA-8 and older are not supported by clang.There's no
+// convenient way to intercept texture use in these versions, so we can't
+// produce a meaningful error. The source code that attempts to use textures
+// will continue to fail as it does now.
+#endif // CUDA_VERSION
+#endif // __cplusplus >= 201103L && CUDA_VERSION >= 9000
+#include "texture_fetch_functions.h"
 #include "texture_indirect_functions.h"
 
 // Restore state of __CUDA_ARCH__ and __THROW we had on entry.
diff --git a/linux-x86/lib64/clang/14.0.2/include/__clang_cuda_texture_intrinsics.h b/linux-x86/lib64/clang/14.0.2/include/__clang_cuda_texture_intrinsics.h
new file mode 100644
index 0000000..3c0f002
--- /dev/null
+++ b/linux-x86/lib64/clang/14.0.2/include/__clang_cuda_texture_intrinsics.h
@@ -0,0 +1,740 @@
+/*===--- __clang_cuda_texture_intrinsics.h - Device-side texture support ---===
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+ *===-----------------------------------------------------------------------===
+ *
+ * This header provides in-header implmentations for NVCC's built-in
+ * __nv_tex_surf_handler() which is used by CUDA's texture-related headers.  The
+ * built-in is unusual as it's actually a set of function overloads that use the
+ * first string literal argument as one of the overload parameters.
+ */
+#ifndef __CLANG_CUDA_TEXTURE_INTRINSICS_H__
+#define __CLANG_CUDA_TEXTURE_INTRINSICS_H__
+#ifndef __CUDA__
+#error "This file is for CUDA compilation only."
+#endif
+
+// __nv_tex_surf_handler() provided by this header as a macro.
+#define __nv_tex_surf_handler(__op, __ptr, ...)                                \
+  ::__cuda_tex::__tex_fetch<                                                   \
+      ::__cuda_tex::__Tag<::__cuda_tex::__tex_op_hash(__op)>>(__ptr,           \
+                                                              __VA_ARGS__)
+
+#pragma push_macro("__ASM_OUT")
+#pragma push_macro("__ASM_OUTP")
+#pragma push_macro("__Args")
+#pragma push_macro("__ID")
+#pragma push_macro("__IDV")
+#pragma push_macro("__IMPL_2DGATHER")
+#pragma push_macro("__IMPL_ALIAS")
+#pragma push_macro("__IMPL_ALIASI")
+#pragma push_macro("__IMPL_F1")
+#pragma push_macro("__IMPL_F3")
+#pragma push_macro("__IMPL_F3N")
+#pragma push_macro("__IMPL_F3S")
+#pragma push_macro("__IMPL_S")
+#pragma push_macro("__IMPL_S3")
+#pragma push_macro("__IMPL_S3I")
+#pragma push_macro("__IMPL_S3N")
+#pragma push_macro("__IMPL_S3NI")
+#pragma push_macro("__IMPL_S3S")
+#pragma push_macro("__IMPL_S3SI")
+#pragma push_macro("__IMPL_SI")
+#pragma push_macro("__L")
+#pragma push_macro("__STRIP_PARENS")
+
+// Put all functions into anonymous namespace so they have internal linkage.
+// The device-only function here must be internal in order to avoid ODR
+// violations in case they are used from the files compiled with
+// -fgpu-rdc. E.g. a library and an app using it may be built with a different
+// version of this header file.
+namespace {
+
+// Put the implmentation into its own namespace so we don't pollute the TU.
+namespace __cuda_tex {
+
+// First, we need a perfect hash function and a few constexpr helper functions
+// for converting a string literal into a numeric value which can be used to
+// parametrize a template. We can not use string literals for that as that would
+// require C++20.
+//
+// The hash function was generated with 'gperf' and then manually converted into
+// its constexpr equivalent.
+//
+// NOTE: the perfect hashing scheme comes with inherent self-test. If the hash
+// function has a collision for any of the texture operations, the compilation
+// will fail due to an attempt to redefine a tag with the same value. If the
+// header compiles, then the hash function is good enough for the job.
+
+constexpr int __tex_len(const char *s) {
+  return (s[0] == 0)    ? 0
+         : (s[1] == 0)  ? 1
+         : (s[2] == 0)  ? 2
+         : (s[3] == 0)  ? 3
+         : (s[4] == 0)  ? 4
+         : (s[5] == 0)  ? 5
+         : (s[6] == 0)  ? 6
+         : (s[7] == 0)  ? 7
+         : (s[8] == 0)  ? 8
+         : (s[9] == 0)  ? 9
+         : (s[10] == 0) ? 10
+         : (s[11] == 0) ? 11
+         : (s[12] == 0) ? 12
+         : (s[13] == 0) ? 13
+         : (s[14] == 0) ? 14
+         : (s[15] == 0) ? 15
+         : (s[16] == 0) ? 16
+         : (s[17] == 0) ? 17
+         : (s[18] == 0) ? 18
+         : (s[19] == 0) ? 19
+         : (s[20] == 0) ? 20
+         : (s[21] == 0) ? 21
+         : (s[22] == 0) ? 22
+         : (s[23] == 0) ? 23
+         : (s[24] == 0) ? 24
+         : (s[25] == 0) ? 25
+         : (s[26] == 0) ? 26
+         : (s[27] == 0) ? 27
+         : (s[28] == 0) ? 28
+         : (s[29] == 0) ? 29
+         : (s[30] == 0) ? 30
+         : (s[31] == 0) ? 31
+                        : 32;
+}
+
+constexpr int __tex_hash_map(int c) {
+  return (c == 49)    ? 10
+         : (c == 50)  ? 0
+         : (c == 51)  ? 100
+         : (c == 52)  ? 30
+         : (c == 67)  ? 10
+         : (c == 68)  ? 0
+         : (c == 69)  ? 25
+         : (c == 72)  ? 70
+         : (c == 77)  ? 0
+         : (c == 96)  ? 44
+         : (c == 99)  ? 10
+         : (c == 100) ? 5
+         : (c == 101) ? 60
+         : (c == 102) ? 40
+         : (c == 103) ? 70
+         : (c == 104) ? 25
+         : (c == 112) ? 0
+         : (c == 114) ? 45
+         : (c == 117) ? 5
+         : (c == 118) ? 85
+         : (c == 120) ? 20
+                      : 225;
+}
+
+constexpr int __tex_op_hash(const char *str) {
+  return __tex_len(str) + __tex_hash_map(str[7] + 1) + __tex_hash_map(str[6]) +
+         __tex_hash_map(str[5]) + __tex_hash_map(str[__tex_len(str) - 1]);
+}
+
+// Tag type to identify particular texture operation.
+template <int N> struct __Tag;
+#define __ID(__op) __Tag<__tex_op_hash(__op)>
+// Tags for variants of particular operation. E.g. tex2Dgather can translate
+// into 4 different instructions.
+#define __IDV(__op, __variant)                                                 \
+  __Tag<10000 + __tex_op_hash(__op) * 100 + __variant>
+
+// Helper classes for figuring out key data types for derived types.
+// E.g. char2 has __base_t = char, __fetch_t = char4
+template <class> struct __TypeInfoT;
+// Type info for the fundamental types.
+template <> struct __TypeInfoT<float> {
+  using __base_t = float;
+  using __fetch_t = float4;
+};
+template <> struct __TypeInfoT<char> {
+  using __base_t = char;
+  using __fetch_t = int4;
+};
+template <> struct __TypeInfoT<signed char> {
+  using __base_t = signed char;
+  using __fetch_t = int4;
+};
+template <> struct __TypeInfoT<unsigned char> {
+  using __base_t = unsigned char;
+  using __fetch_t = uint4;
+};
+template <> struct __TypeInfoT<short> {
+  using __base_t = short;
+  using __fetch_t = int4;
+};
+template <> struct __TypeInfoT<unsigned short> {
+  using __base_t = unsigned short;
+  using __fetch_t = uint4;
+};
+template <> struct __TypeInfoT<int> {
+  using __base_t = int;
+  using __fetch_t = int4;
+};
+template <> struct __TypeInfoT<unsigned int> {
+  using __base_t = unsigned int;
+  using __fetch_t = uint4;
+};
+
+// Derived base/fetch types for N-element vectors.
+template <class __T> struct __TypeInfoT {
+  using __base_t = decltype(__T::x);
+  using __fetch_t = typename __TypeInfoT<__base_t>::__fetch_t;
+};
+
+// Classes that implement specific texture ops.
+template <class __op> struct __tex_fetch_v4;
+
+// Helper macros to strip parens from a macro argument.
+#define __Args(...) __VA_ARGS__
+#define __STRIP_PARENS(__X) __X
+#define __L(__X) __STRIP_PARENS(__Args __X)
+
+// Construct inline assembly output args.
+// Results are stored in a temp var __r.
+// isResident bool is pointed to by __ir
+// Asm args for return values. It's a 4-element vector
+#define __ASM_OUT(__t)                                                         \
+  ("=" __t(__r.x), "=" __t(__r.y), "=" __t(__r.z), "=" __t(__r.w))
+// .. possibly combined with a predicate.
+#define __ASM_OUTP(__t) (__L(__ASM_OUT(__t)), "=h"(*__ir))
+
+// Implements a single variant of texture fetch instruction.
+#define __IMPL_F1(__rt, __dt, __args, __asm_op, __asm_outs, __asm_args)        \
+  template <>                                                                  \
+  __device__ __rt __run<__dt>(cudaTextureObject_t __obj, __L(__args)) {        \
+    __rt __r;                                                                  \
+    asm(__asm_op : __L(__asm_outs) : "l"(__obj), __L(__asm_args));             \
+    return __r;                                                                \
+  }
+
+// Implements texture fetch instructions for int4/uint4/float4 data types.
+#define __IMPL_F3(__args, __asm_op, __ctype, __asm_op_args, __asm_args)        \
+  __IMPL_F1(int4, int4, __args, __asm_op ".s32." __ctype "\t" __asm_op_args,   \
+            __ASM_OUT("r"), __asm_args)                                        \
+  __IMPL_F1(uint4, uint4, __args, __asm_op ".u32." __ctype "\t" __asm_op_args, \
+            __ASM_OUT("r"), __asm_args)                                        \
+  __IMPL_F1(float4, float4, __args,                                            \
+            __asm_op ".f32." __ctype "\t" __asm_op_args, __ASM_OUT("f"),       \
+            __asm_args)
+// Implements 'sparse' texture fetch instructions for int4/uint4/float4 data
+// types. Similar to above, but returns a boolean 'isPresent' value in addition
+// to texture data,
+#define __IMPL_F3S(__args, __asm_op, __ctype, __asm_op_args, __asm_args)       \
+  __IMPL_F1(int4, int4, __args, __asm_op ".s32." __ctype "\t" __asm_op_args,   \
+            __ASM_OUTP("r"), __asm_args)                                       \
+  __IMPL_F1(uint4, uint4, __args, __asm_op ".u32." __ctype "\t" __asm_op_args, \
+            __ASM_OUTP("r"), __asm_args)                                       \
+  __IMPL_F1(float4, float4, __args,                                            \
+            __asm_op ".f32." __ctype "\t" __asm_op_args, __ASM_OUTP("f"),      \
+            __asm_args)
+
+// Similar to F3, but for integer data which is returned as normalized floats.
+// Only instantiates fetch functions for int4/uint4.
+#define __IMPL_F3N(__args, __asm_op, __ctype, __asm_op_args, __asm_args)       \
+  __IMPL_F1(float4, int4, __args, __asm_op ".s32." __ctype "\t" __asm_op_args, \
+            __ASM_OUT("r"), __asm_args)                                        \
+  __IMPL_F1(float4, uint4, __args,                                             \
+            __asm_op ".u32." __ctype "\t" __asm_op_args, __ASM_OUT("r"),       \
+            __asm_args)
+
+// Instantiates __tex_fetch_v4 with regular fetch functions.
+#define __IMPL_S3I(__op, __args, __asm_op, __ctype, __asm_op_args, __asm_args) \
+  template <> struct __tex_fetch_v4<__op> {                                    \
+    template <class T>                                                         \
+    __device__ static T __run(cudaTextureObject_t __obj, __L(__args));         \
+    __IMPL_F3(__args, __asm_op, __ctype, __asm_op_args, __asm_args)            \
+  }
+
+// Same, but for sparse ops. Only available on sm_60+
+#if !defined(__CUDA_ARCH__) || (__CUDA_ARCH__ >= 600)
+#define __IMPL_S3SI(__op, __args, __asm_op, __ctype, __asm_op_args,            \
+                    __asm_args)                                                \
+  template <> struct __tex_fetch_v4<__op> {                                    \
+    template <class T>                                                         \
+    __device__ static T __run(cudaTextureObject_t __obj, __L(__args));         \
+    __IMPL_F3S(__args, __asm_op, __ctype, __asm_op_args, __asm_args)           \
+  }
+#else
+#define __IMPL_S3SI(__op, __args, __asm_op, __ctype, __asm_op_args, __asm_args)
+#endif
+
+// Same, but for normalized float ops.
+#define __IMPL_S3NI(__op, __args, __asm_op, __ctype, __asm_op_args,            \
+                    __asm_args)                                                \
+  template <> struct __tex_fetch_v4<__op> {                                    \
+    template <class T>                                                         \
+    __device__ static float4 __run(cudaTextureObject_t __obj, __L(__args));    \
+    __IMPL_F3N(__args, __asm_op, __ctype, __asm_op_args, __asm_args)           \
+  }
+
+// Regular and normalized float ops share a lot of similarities.  This macro
+// instantiates both variants -- normal for __op and normalized for __opn.
+#define __IMPL_SI(__op, __opn, __args, __asm_op, __ctype, __asm_op_args,       \
+                  __asm_args)                                                  \
+  __IMPL_S3I(__op, __args, __asm_op, __ctype, __asm_op_args, __asm_args);      \
+  __IMPL_S3NI(__opn, __args, __asm_op, __ctype, __asm_op_args, __asm_args)
+
+// Convenience macros which converts string literal __op into a __Tag,
+#define __IMPL_S3(__op, __args, __asm_op, __ctype, __asm_op_args, __asm_args)  \
+  __IMPL_S3I(__ID(__op), __args, __asm_op, __ctype, __asm_op_args, __asm_args)
+#define __IMPL_S3S(__op, __args, __asm_op, __ctype, __asm_op_args, __asm_args) \
+  __IMPL_S3SI(__ID(__op), __args, __asm_op, __ctype, __asm_op_args, __asm_args)
+#define __IMPL_S3N(__op, __args, __asm_op, __ctype, __asm_op_args, __asm_args) \
+  __IMPL_S3NI(__ID(__op), __args, __asm_op, __ctype, __asm_op_args, __asm_args)
+#define __IMPL_S(__op, __opn, __args, __asm_op, __ctype, __asm_op_args,        \
+                 __asm_args)                                                   \
+  __IMPL_SI(__ID(__op), __ID(__opn), __args, __asm_op, __ctype, __asm_op_args, \
+            __asm_args)
+
+// CUDA headers have some 'legacy' texture oprerations that duplicate
+// functionality. So, we just inherit it, instead of refining a copy.
+#define __IMPL_ALIASI(__op, __opn)                                             \
+  template <> struct __tex_fetch_v4<__op> : __tex_fetch_v4<__opn> {}
+#define __IMPL_ALIAS(__op, __opn) __IMPL_ALIASI(__ID(__op), __ID(__opn))
+
+// Now we can instantiate everything we need for each specific texture fetch
+// variant.
+__IMPL_S("__tex1D_v2", "__tex1D_rmnf_v2", (float __x), "tex.1d.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5}];", ("f"(__x)));
+__IMPL_S("__tex1Dfetch_v2", "__tex1Dfetch_rmnf_v2", (int __x), "tex.1d.v4",
+         "s32", "{%0, %1, %2, %3}, [%4, {%5}];", ("r"(__x)));
+__IMPL_ALIAS("__itex1D", "__tex1D_v2");
+__IMPL_ALIAS("__itex1Dfetch", "__tex1Dfetch_v2");
+
+__IMPL_S("__tex1DGrad_v2", "__tex1DGrad_rmnf_v2",
+         (float __x, float __dPdx, float __dPdy), "tex.grad.1d.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5}], {%6}, {%7};",
+         ("f"(__x), "f"(__dPdx), "f"(__dPdy)));
+__IMPL_ALIAS("__itex1DGrad", "__tex1DGrad_v2");
+
+__IMPL_S("__tex1DLayered_v2", "__tex1DLayered_rmnf_v2",
+         (float __x, int __layer), "tex.a1d.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6}];", ("r"(__layer), "f"(__x)));
+__IMPL_ALIAS("__itex1DLayered", "__tex1DLayered_v2");
+
+__IMPL_S("__tex1DLayeredGrad_v2", "__tex1DLayeredGrad_rmnf_v2",
+         (float __x, int __layer, float __dPdx, float __dPdy),
+         "tex.grad.a1d.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6}], {%7}, {%8};",
+         ("r"(__layer), "f"(__x), "f"(__dPdx), "f"(__dPdy)));
+__IMPL_ALIAS("__itex1DLayeredGrad", "__tex1DLayeredGrad_v2");
+
+__IMPL_S("__tex1DLayeredLod_v2", "__tex1DLayeredLod_rmnf_v2",
+         (float __x, int __layer, float __level), "tex.level.a1d.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6}], %7;",
+         ("r"(__layer), "f"(__x), "f"(__level)));
+__IMPL_ALIAS("__itex1DLayeredLod", "__tex1DLayeredLod_v2");
+
+__IMPL_S("__tex1DLod_v2", "__tex1DLod_rmnf_v2", (float __x, float __level),
+         "tex.level.1d.v4", "f32", "{%0, %1, %2, %3}, [%4, {%5}], %6;",
+         ("f"(__x), "f"(__level)));
+__IMPL_ALIAS("__itex1DLod", "__tex1DLod_v2");
+
+// 2D
+__IMPL_S("__tex2D_v2", "__tex2D_rmnf_v2", (float __x, float __y), "tex.2d.v4",
+         "f32", "{%0, %1, %2, %3}, [%4, {%5, %6}];", ("f"(__x), "f"(__y)));
+__IMPL_ALIAS("__itex2D", "__tex2D_v2");
+
+__IMPL_S3S("__itex2D_sparse", (float __x, float __y, unsigned char *__ir),
+           "{.reg .pred %%p0;\n\t"
+           "tex.2d.v4",
+           "f32",
+           "{%0, %1, %2, %3}|%%p0, [%5, {%6, %7}];\n\t"
+           " selp.u16 %4, 1, 0, %%p0; }",
+           ("f"(__x), "f"(__y)));
+
+__IMPL_S("__tex2DGrad_v2", "__tex2DGrad_rmnf_v2",
+         (float __x, float __y, const float2 *__dPdx, const float2 *__dPdy),
+         "tex.grad.2d.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6}], {%7, %8}, {%9, %10};",
+         ("f"(__x), "f"(__y), "f"(__dPdx->x), "f"(__dPdx->y), "f"(__dPdy->x),
+          "f"(__dPdy->y)));
+__IMPL_ALIAS("__itex2DGrad_v2", "__tex2DGrad_v2");
+
+__IMPL_S3S("__itex2DGrad_sparse",
+           (float __x, float __y, const float2 *__dPdx, const float2 *__dPdy,
+            unsigned char *__ir),
+           "{.reg .pred %%p0;\n\t"
+           "tex.grad.2d.v4",
+           "f32",
+           "{%0, %1, %2, %3}|%%p0, [%5, {%6, %7}], {%8, %9}, {%10, %11};\n\t"
+           "selp.u16 %4, 1, 0, %%p0; }",
+           ("f"(__x), "f"(__y), "f"(__dPdx->x), "f"(__dPdx->y), "f"(__dPdy->x),
+            "f"(__dPdy->y)));
+
+__IMPL_S("__tex2DLayered_v2", "__tex2DLayered_rmnf_v2",
+         (float __x, float __y, int __layer), "tex.a2d.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %7}];",
+         ("r"(__layer), "f"(__x), "f"(__y)));
+__IMPL_ALIAS("__itex2DLayered", "__tex2DLayered_v2");
+
+__IMPL_S3S("__itex2DLayered_sparse",
+           (float __x, float __y, int __layer, unsigned char *__ir),
+           "{.reg .pred %%p0;\n\t"
+           "tex.a2d.v4",
+           "f32",
+           "{%0, %1, %2, %3}|%%p0, [%5, {%6, %7, %8, %8}];\n\t"
+           "selp.u16 %4, 1, 0, %%p0; }",
+           ("r"(__layer), "f"(__x), "f"(__y)));
+
+__IMPL_S("__tex2DLayeredGrad_v2", "__tex2DLayeredGrad_rmnf_v2",
+         (float __x, float __y, int __layer, const float2 *__dPdx,
+          const float2 *__dPdy),
+         "tex.grad.a2d.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %7}], {%8, %9}, {%10, %11};",
+         ("r"(__layer), "f"(__x), "f"(__y), "f"(__dPdx->x), "f"(__dPdx->y),
+          "f"(__dPdy->x), "f"(__dPdy->y)));
+__IMPL_ALIAS("__itex2DLayeredGrad_v2", "__tex2DLayeredGrad_v2");
+
+__IMPL_S3S(
+    "__itex2DLayeredGrad_sparse",
+    (float __x, float __y, int __layer, const float2 *__dPdx,
+     const float2 *__dPdy, unsigned char *__ir),
+    "{.reg .pred %%p0;\n\t"
+    "tex.grad.a2d.v4",
+    "f32",
+    "{%0, %1, %2, %3}|%%p0, [%5, {%6, %7, %8, %8}], {%9, %10}, {%11, %12};\n\t"
+    "selp.u16 %4, 1, 0, %%p0; }",
+    ("r"(__layer), "f"(__x), "f"(__y), "f"(__dPdx->x), "f"(__dPdx->y),
+     "f"(__dPdy->x), "f"(__dPdy->y)));
+
+__IMPL_S("__tex2DLayeredLod_v2", "__tex2DLayeredLod_rmnf_v2",
+         (float __x, float __y, int __layer, float __level), "tex.level.a2d.v4",
+         "f32", "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %7}], %8;",
+         ("r"(__layer), "f"(__x), "f"(__y), "f"(__level)));
+__IMPL_ALIAS("__itex2DLayeredLod", "__tex2DLayeredLod_v2");
+
+__IMPL_S3S("__itex2DLayeredLod_sparse",
+           (float __x, float __y, int __layer, float __level,
+            unsigned char *__ir),
+           "{.reg .pred %%p0;\n\t"
+           "tex.level.a2d.v4",
+           "f32",
+           "{%0, %1, %2, %3}|%%p0, [%5, {%6, %7, %8, %8}], %9;\n\t"
+           "selp.u16 %4, 1, 0, %%p0; }",
+           ("r"(__layer), "f"(__x), "f"(__y), "f"(__level)));
+
+__IMPL_S("__tex2DLod_v2", "__tex2DLod_rmnf_v2",
+         (float __x, float __y, float __level), "tex.level.2d.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6}], %7;",
+         ("f"(__x), "f"(__y), "f"(__level)));
+__IMPL_ALIAS("__itex2DLod", "__tex2DLod_v2");
+
+__IMPL_S3S("__itex2DLod_sparse",
+           (float __x, float __y, float __level, unsigned char *__ir),
+           "{.reg .pred %%p0;\n\t"
+           "tex.level.2d.v4",
+           "f32",
+           "{%0, %1, %2, %3}|%%p0, [%5, {%6, %7}], %8;\n\t"
+           "selp.u16 %4, 1, 0, %%p0; }",
+           ("f"(__x), "f"(__y), "f"(__level)));
+
+// 2D gather is special. Unlike other variants that translate into exactly one
+// asm instruction, it uses one of the four different instructions selected by
+// __comp.  We implement each instruction variant separately, and dispatch the
+// right one from the manually implemented 'umbrella' fetch.
+#define __IMPL_2DGATHER(variant, instr)                                        \
+  __IMPL_SI(__IDV("__tex2Dgather_v2", variant),                                \
+            __IDV("__tex2Dgather_rmnf_v2", variant),                           \
+            (float __x, float __y, int __comp), instr, "f32",                  \
+            "{%0, %1, %2, %3}, [%4, {%5, %6}];", ("f"(__x), "f"(__y)));        \
+  __IMPL_ALIASI(__IDV("__itex2Dgather", variant),                              \
+                __IDV("__tex2Dgather_v2", variant));                           \
+  __IMPL_S3SI(__IDV("__itex2Dgather_sparse", variant),                         \
+              (float __x, float __y, unsigned char *__ir, int __comp),         \
+              "{.reg .pred %%p0;\n\t" instr, "f32",                            \
+              "{%0, %1, %2, %3}|%%p0, [%5, {%6, %7}];\n\t"                     \
+              "selp.u16 %4, 1, 0, %%p0; }",                                    \
+              ("f"(__x), "f"(__y)));
+__IMPL_2DGATHER(0, "tld4.r.2d.v4");
+__IMPL_2DGATHER(1, "tld4.g.2d.v4");
+__IMPL_2DGATHER(2, "tld4.b.2d.v4");
+__IMPL_2DGATHER(3, "tld4.a.2d.v4");
+
+// Umbrella dispatcher -- calls into specific 2Dgather variant.
+template <> struct __tex_fetch_v4<__ID("__tex2Dgather_v2")> {
+  template <class __T>
+  __device__ static __T __run(cudaTextureObject_t __obj, float __x, float __y,
+                              int __comp) {
+    switch (__comp) {
+    case 0:
+      return __tex_fetch_v4<__IDV("__tex2Dgather_v2", 0)>::__run<__T>(
+          __obj, __x, __y, __comp);
+    case 1:
+      return __tex_fetch_v4<__IDV("__tex2Dgather_v2", 1)>::__run<__T>(
+          __obj, __x, __y, __comp);
+    case 2:
+      return __tex_fetch_v4<__IDV("__tex2Dgather_v2", 2)>::__run<__T>(
+          __obj, __x, __y, __comp);
+    case 3:
+      return __tex_fetch_v4<__IDV("__tex2Dgather_v2", 3)>::__run<__T>(
+          __obj, __x, __y, __comp);
+    }
+  }
+};
+__IMPL_ALIAS("__itex2Dgather", "__tex2Dgather_v2");
+
+template <> struct __tex_fetch_v4<__ID("__tex2Dgather_rmnf_v2")> {
+  template <class __T>
+  __device__ static float4 __run(cudaTextureObject_t __obj, float __x,
+                                 float __y, int __comp) {
+    switch (__comp) {
+    case 0:
+      return __tex_fetch_v4<__IDV("__tex2Dgather_rmnf_v2", 0)>::__run<__T>(
+          __obj, __x, __y, __comp);
+    case 1:
+      return __tex_fetch_v4<__IDV("__tex2Dgather_rmnf_v2", 1)>::__run<__T>(
+          __obj, __x, __y, __comp);
+    case 2:
+      return __tex_fetch_v4<__IDV("__tex2Dgather_rmnf_v2", 2)>::__run<__T>(
+          __obj, __x, __y, __comp);
+    case 3:
+      return __tex_fetch_v4<__IDV("__tex2Dgather_rmnf_v2", 3)>::__run<__T>(
+          __obj, __x, __y, __comp);
+    }
+  }
+};
+
+#if !defined(__CUDA_ARCH__) || (__CUDA_ARCH__ >= 600)
+template <> struct __tex_fetch_v4<__ID("__itex2Dgather_sparse")> {
+  template <class __T>
+  __device__ static __T __run(cudaTextureObject_t __obj, float __x, float __y,
+                              unsigned char *__ir, int __comp) {
+    switch (__comp) {
+    case 0:
+      return __tex_fetch_v4<__IDV("__itex2Dgather_sparse", 0)>::__run<__T>(
+          __obj, __x, __y, __ir, __comp);
+    case 1:
+      return __tex_fetch_v4<__IDV("__itex2Dgather_sparse", 1)>::__run<__T>(
+          __obj, __x, __y, __ir, __comp);
+    case 2:
+      return __tex_fetch_v4<__IDV("__itex2Dgather_sparse", 2)>::__run<__T>(
+          __obj, __x, __y, __ir, __comp);
+    case 3:
+      return __tex_fetch_v4<__IDV("__itex2Dgather_sparse", 3)>::__run<__T>(
+          __obj, __x, __y, __ir, __comp);
+    }
+  }
+};
+#endif
+
+// 3D
+__IMPL_S("__tex3D_v2", "__tex3D_rmnf_v2", (float __x, float __y, float __z),
+         "tex.3d.v4", "f32", "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %7}];",
+         ("f"(__x), "f"(__y), "f"(__z)));
+__IMPL_ALIAS("__itex3D", "__tex3D_v2");
+
+__IMPL_S3S("__itex3D_sparse",
+           (float __x, float __y, float __z, unsigned char *__ir),
+           "{.reg .pred %%p0;\n\t"
+           "tex.3d.v4",
+           "f32",
+           "{%0, %1, %2, %3}|%%p0, [%5, {%6, %7, %8, %8}];\n\t"
+           "selp.u16 %4, 1, 0, %%p0; }",
+           ("f"(__x), "f"(__y), "f"(__z)));
+
+__IMPL_S("__tex3DGrad_v2", "__tex3DGrad_rmnf_v2",
+         (float __x, float __y, float __z, const float4 *__dPdx,
+          const float4 *__dPdy),
+         "tex.grad.3d.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %7}], "
+         "{%8, %9, %10, %10}, {%11, %12, %13, %13};",
+         ("f"(__x), "f"(__y), "f"(__z), "f"(__dPdx->x), "f"(__dPdx->y),
+          "f"(__dPdx->z), "f"(__dPdy->x), "f"(__dPdy->y), "f"(__dPdy->z)));
+__IMPL_ALIAS("__itex3DGrad_v2", "__tex3DGrad_v2");
+
+__IMPL_S3S("__itex3DGrad_sparse",
+           (float __x, float __y, float __z, const float4 *__dPdx,
+            const float4 *__dPdy, unsigned char *__ir),
+           "{.reg .pred %%p0;\n\t"
+           "tex.grad.3d.v4",
+           "f32",
+           "{%0, %1, %2, %3}|%%p0, [%5, {%6, %7, %8, %8}], "
+           "{%9, %10, %11, %11}, {%12, %13, %14, %14};\n\t"
+           "selp.u16 %4, 1, 0, %%p0; }",
+           ("f"(__x), "f"(__y), "f"(__z), "f"(__dPdx->x), "f"(__dPdx->y),
+            "f"(__dPdx->z), "f"(__dPdy->x), "f"(__dPdy->y), "f"(__dPdy->z)));
+
+__IMPL_S("__tex3DLod_v2", "__tex3DLod_rmnf_v2",
+         (float __x, float __y, float __z, float __level), "tex.level.3d.v4",
+         "f32", "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %7}], %8;",
+         ("f"(__x), "f"(__y), "f"(__z), "f"(__level)));
+__IMPL_ALIAS("__itex3DLod", "__tex3DLod_v2");
+
+__IMPL_S3S("__itex3DLod_sparse",
+           (float __x, float __y, float __z, float __level,
+            unsigned char *__ir),
+           "{.reg .pred %%p0;\n\t"
+           "tex.level.3d.v4",
+           "f32",
+           "{%0, %1, %2, %3}|%%p0, [%5, {%6, %7, %8, %8}], %9;\n\t"
+           "selp.u16 %4, 1, 0, %%p0; }",
+           ("f"(__x), "f"(__y), "f"(__z), "f"(__level)));
+
+// Cubemap
+__IMPL_S("__texCubemap_v2", "__texCubemap_rmnf_v2",
+         (float __x, float __y, float __z), "tex.cube.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %7}];",
+         ("f"(__x), "f"(__y), "f"(__z)));
+__IMPL_ALIAS("__itexCubemap", "__texCubemap_v2");
+
+__IMPL_S3S("__itexCubemap_sparse",
+           (float __x, float __y, float __z, unsigned char *__ir),
+           "{.reg .pred %%p0;\n\t"
+           "tex.cube.v4",
+           "f32",
+           "{%0, %1, %2, %3}|%%p0, [%5, {%6, %7, %8, %8}];\n\t"
+           "selp.u16 %4, 1, 0, %%p0; }",
+           ("f"(__x), "f"(__y), "f"(__z)));
+
+__IMPL_S("__texCubemapGrad_v2", "__texCubemapGrad_rmnf_v2",
+         (float __x, float __y, float __z, const float4 *__dPdx,
+          const float4 *__dPdy),
+         "tex.grad.cube.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %7}], "
+         "{%8, %9, %10, %10}, {%11, %12, %13, %13};",
+         ("f"(__x), "f"(__y), "f"(__z), "f"(__dPdx->x), "f"(__dPdx->y),
+          "f"(__dPdx->z), "f"(__dPdy->x), "f"(__dPdy->y), "f"(__dPdy->z)));
+__IMPL_ALIAS("__itexCubemapGrad_v2", "__texCubemapGrad_v2");
+
+__IMPL_S("__texCubemapLayered_v2", "__texCubemapLayered_rmnf_v2",
+         (float __x, float __y, float __z, int __layer), "tex.acube.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %8}];",
+         ("r"(__layer), "f"(__x), "f"(__y), "f"(__z)));
+__IMPL_ALIAS("__itexCubemapLayered", "__texCubemapLayered_v2");
+
+__IMPL_S("__texCubemapLayeredGrad_v2", "__texCubemapLayeredGrad_rmnf_v2",
+         (float __x, float __y, float __z, int __layer, const float4 *__dPdx,
+          const float4 *__dPdy),
+         "tex.grad.acube.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %8}], "
+         "{%9, %10, %11, %11}, {%12, %13, %14, %14};",
+         ("r"(__layer), "f"(__x), "f"(__y), "f"(__z), "f"(__dPdx->x),
+          "f"(__dPdx->y), "f"(__dPdx->z), "f"(__dPdy->x), "f"(__dPdy->y),
+          "f"(__dPdy->z)));
+__IMPL_ALIAS("__itexCubemapLayeredGrad_v2", "__texCubemapLayeredGrad_v2");
+
+__IMPL_S("__texCubemapLayeredLod_v2", "__texCubemapLayeredLod_rmnf_v2",
+         (float __x, float __y, float __z, int __layer, float __level),
+         "tex.level.acube.v4", "f32",
+         "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %8}], %9;",
+         ("r"(__layer), "f"(__x), "f"(__y), "f"(__z), "f"(__level)));
+__IMPL_ALIAS("__itexCubemapLayeredLod", "__texCubemapLayeredLod_v2");
+
+__IMPL_S("__texCubemapLod_v2", "__texCubemapLod_rmnf_v2",
+         (float __x, float __y, float __z, float __level), "tex.level.cube.v4",
+         "f32", "{%0, %1, %2, %3}, [%4, {%5, %6, %7, %7}], %8;",
+         ("f"(__x), "f"(__y), "f"(__z), "f"(__level)));
+__IMPL_ALIAS("__itexCubemapLod", "__texCubemapLod_v2");
+
+// Helper class for extracting slice of data from V4 fetch results.
+template <class __DestT, class __SrcT> struct __convert {
+  template <int __NElements = sizeof(__DestT) /
+                              sizeof(typename __TypeInfoT<__DestT>::__base_t)>
+  __device__ static __DestT __run(__SrcT __v);
+  template <> __device__ static __DestT __run<1>(__SrcT __v) { return {__v.x}; }
+  template <> __device__ static __DestT __run<2>(__SrcT __v) {
+    return {__v.x, __v.y};
+  }
+  template <> __device__ static __DestT __run<3>(__SrcT __v) {
+    return {__v.x, __v.y, __v.z};
+  }
+  template <> __device__ static __DestT __run<4>(__SrcT __v) {
+    return {__v.x, __v.y, __v.z, __v.w};
+  }
+};
+
+// These are the top-level function overloads the __nv_tex_surf_handler expands
+// to.  Each overload deals with one of the several ways __nv_tex_surf_handler
+// is called by CUDA headers. In the end, each of the overloads does the same
+// job -- it figures out which `__tex_fetch_v4::run` variant should be used to
+// fetch texture data and which `__convert::run` is needed to convert it into
+// appropriate return type.
+
+// __nv_tex_surf_handler("__tex...", &ret, cudaTextureObject_t handle, args...);
+//   Data type and return type are based on ret.
+template <class __op, class __T, class... __Args>
+__device__ static void __tex_fetch(__T *__ptr, cudaTextureObject_t __handle,
+                                   __Args... __args) {
+  using __FetchT = typename __TypeInfoT<__T>::__fetch_t;
+  *__ptr = __convert<__T, __FetchT>::__run(
+      __tex_fetch_v4<__op>::template __run<__FetchT>(__handle, __args...));
+}
+
+// texture<> objects get magically converted into a texture reference.  However,
+// there's no way to convert them to cudaTextureObject_t on C++ level. So, we
+// cheat a bit and use inline assembly to do it. It costs us an extra register
+// and a move, but that is easy for ptxas to optimize away.
+template <class __T>
+__device__ cudaTextureObject_t __tex_handle_to_obj(__T __handle) {
+  cudaTextureObject_t __obj;
+  asm("mov.b64 %0, %1; " : "=l"(__obj) : "l"(__handle));
+  return __obj;
+}
+
+// __nv_tex_surf_handler ("__tex...", &ret, textureReference, args...);
+//   Data type and return type is based on ret.
+template <class __op, class __T, class __HandleT, class... __Args>
+__device__ static void __tex_fetch(__T *__ptr, __HandleT __handle,
+                                   __Args... __args) {
+  using __FetchT = typename __TypeInfoT<__T>::__fetch_t;
+  *__ptr = __convert<__T, __FetchT>::__run(
+      __tex_fetch_v4<__op>::template __run<__FetchT>(
+          __tex_handle_to_obj(__handle), __args...));
+}
+
+// __nv_tex_surf_handler ("__tex...", &type_dummy, &ret, texture<...>, args...);
+// cudaReadModeNormalizedFloat fetches always return float4.
+template <class __op, class __DataT, class __RetT, int __TexT, class... __Args>
+__device__ static void
+__tex_fetch(__DataT *, __RetT *__ptr,
+            texture<__DataT, __TexT, cudaReadModeNormalizedFloat> __handle,
+            __Args... __args) {
+  using __FetchT = typename __TypeInfoT<__DataT>::__fetch_t;
+  *__ptr = __convert<__RetT, float4>::__run(
+      __tex_fetch_v4<__op>::template __run<__FetchT>(
+          __tex_handle_to_obj(__handle), __args...));
+}
+
+// __nv_tex_surf_handler ("__tex...", &type_dummy, &ret, texture<...>, args...);
+// For cudaReadModeElementType fetch return type is based on type_dummy.
+template <class __op, class __DataT, class __RetT, int __TexT, class... __Args>
+__device__ static void
+__tex_fetch(__DataT *, __RetT *__ptr,
+            texture<__DataT, __TexT, cudaReadModeElementType> __handle,
+            __Args... __args) {
+  using __FetchT = typename __TypeInfoT<__DataT>::__fetch_t;
+  *__ptr = __convert<__RetT, __FetchT>::__run(
+      __tex_fetch_v4<__op>::template __run<__FetchT>(
+          __tex_handle_to_obj(__handle), __args...));
+}
+} // namespace __cuda_tex
+} // namespace
+#pragma pop_macro("__ASM_OUT")
+#pragma pop_macro("__ASM_OUTP")
+#pragma pop_macro("__Args")
+#pragma pop_macro("__ID")
+#pragma pop_macro("__IDV")
+#pragma pop_macro("__IMPL_2DGATHER")
+#pragma pop_macro("__IMPL_ALIAS")
+#pragma pop_macro("__IMPL_ALIASI")
+#pragma pop_macro("__IMPL_F1")
+#pragma pop_macro("__IMPL_F3")
+#pragma pop_macro("__IMPL_F3N")
+#pragma pop_macro("__IMPL_F3S")
+#pragma pop_macro("__IMPL_S")
+#pragma pop_macro("__IMPL_S3")
+#pragma pop_macro("__IMPL_S3I")
+#pragma pop_macro("__IMPL_S3N")
+#pragma pop_macro("__IMPL_S3NI")
+#pragma pop_macro("__IMPL_S3S")
+#pragma pop_macro("__IMPL_S3SI")
+#pragma pop_macro("__IMPL_SI")
+#pragma pop_macro("__L")
+#pragma pop_macro("__STRIP_PARENS")
+#endif // __CLANG_CUDA_TEXTURE_INTRINSICS_H__
diff --git a/linux-x86/lib64/clang/14.0.1/include/__clang_hip_cmath.h b/linux-x86/lib64/clang/14.0.2/include/__clang_hip_cmath.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/__clang_hip_cmath.h
rename to linux-x86/lib64/clang/14.0.2/include/__clang_hip_cmath.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/__clang_hip_libdevice_declares.h b/linux-x86/lib64/clang/14.0.2/include/__clang_hip_libdevice_declares.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/__clang_hip_libdevice_declares.h
rename to linux-x86/lib64/clang/14.0.2/include/__clang_hip_libdevice_declares.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/__clang_hip_math.h b/linux-x86/lib64/clang/14.0.2/include/__clang_hip_math.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/__clang_hip_math.h
rename to linux-x86/lib64/clang/14.0.2/include/__clang_hip_math.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/__clang_hip_runtime_wrapper.h b/linux-x86/lib64/clang/14.0.2/include/__clang_hip_runtime_wrapper.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/__clang_hip_runtime_wrapper.h
rename to linux-x86/lib64/clang/14.0.2/include/__clang_hip_runtime_wrapper.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/__stddef_max_align_t.h b/linux-x86/lib64/clang/14.0.2/include/__stddef_max_align_t.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/__stddef_max_align_t.h
rename to linux-x86/lib64/clang/14.0.2/include/__stddef_max_align_t.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/__wmmintrin_aes.h b/linux-x86/lib64/clang/14.0.2/include/__wmmintrin_aes.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/__wmmintrin_aes.h
rename to linux-x86/lib64/clang/14.0.2/include/__wmmintrin_aes.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/__wmmintrin_pclmul.h b/linux-x86/lib64/clang/14.0.2/include/__wmmintrin_pclmul.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/__wmmintrin_pclmul.h
rename to linux-x86/lib64/clang/14.0.2/include/__wmmintrin_pclmul.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/adxintrin.h b/linux-x86/lib64/clang/14.0.2/include/adxintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/adxintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/adxintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/altivec.h b/linux-x86/lib64/clang/14.0.2/include/altivec.h
similarity index 98%
copy from darwin-x86/lib64/clang/14.0.1/include/altivec.h
copy to linux-x86/lib64/clang/14.0.2/include/altivec.h
index fa9100a..55195b0 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/altivec.h
+++ b/linux-x86/lib64/clang/14.0.2/include/altivec.h
@@ -19,6 +19,10 @@
 #define __CR6_EQ_REV 1
 #define __CR6_LT 2
 #define __CR6_LT_REV 3
+#define __CR6_GT 4
+#define __CR6_GT_REV 5
+#define __CR6_SO 6
+#define __CR6_SO_REV 7
 
 /* Constants for vec_test_data_class */
 #define __VEC_CLASS_FP_SUBNORMAL_N (1 << 0)
@@ -1810,6 +1814,11 @@
   return (vector bool __int128)__builtin_altivec_vcmpequq(
       (vector bool __int128)__a, (vector bool __int128)__b);
 }
+
+static __inline__ vector bool __int128 __ATTRS_o_ai
+vec_cmpeq(vector bool __int128 __a, vector bool  __int128 __b) {
+  return (vector bool __int128)__builtin_altivec_vcmpequq(__a, __b);
+}
 #endif
 
 #ifdef __POWER9_VECTOR__
@@ -1887,6 +1896,11 @@
   return (vector bool __int128) ~(__builtin_altivec_vcmpequq(
       (vector bool __int128)__a, (vector bool __int128)__b));
 }
+
+static __inline__ vector bool __int128 __ATTRS_o_ai
+vec_cmpne(vector bool __int128 __a, vector bool __int128 __b) {
+  return (vector bool __int128) ~(__builtin_altivec_vcmpequq(__a, __b));
+}
 #endif
 
 /* vec_cmpnez */
@@ -2472,7 +2486,7 @@
 #ifdef __POWER8_VECTOR__
 /* vec_popcnt */
 
-static __inline__ vector signed char __ATTRS_o_ai
+static __inline__ vector unsigned char __ATTRS_o_ai
 vec_popcnt(vector signed char __a) {
   return __builtin_altivec_vpopcntb(__a);
 }
@@ -2480,7 +2494,7 @@
 vec_popcnt(vector unsigned char __a) {
   return __builtin_altivec_vpopcntb(__a);
 }
-static __inline__ vector signed short __ATTRS_o_ai
+static __inline__ vector unsigned short __ATTRS_o_ai
 vec_popcnt(vector signed short __a) {
   return __builtin_altivec_vpopcnth(__a);
 }
@@ -2488,7 +2502,7 @@
 vec_popcnt(vector unsigned short __a) {
   return __builtin_altivec_vpopcnth(__a);
 }
-static __inline__ vector signed int __ATTRS_o_ai
+static __inline__ vector unsigned int __ATTRS_o_ai
 vec_popcnt(vector signed int __a) {
   return __builtin_altivec_vpopcntw(__a);
 }
@@ -2496,7 +2510,7 @@
 vec_popcnt(vector unsigned int __a) {
   return __builtin_altivec_vpopcntw(__a);
 }
-static __inline__ vector signed long long __ATTRS_o_ai
+static __inline__ vector unsigned long long __ATTRS_o_ai
 vec_popcnt(vector signed long long __a) {
   return __builtin_altivec_vpopcntd(__a);
 }
@@ -7099,6 +7113,11 @@
   return (vector float)((vector unsigned int)__a | ~__b);
 }
 
+static __inline__ vector float __ATTRS_o_ai vec_orc(vector float __a,
+                                                    vector float __b) {
+  return (vector float)((vector unsigned int)__a | ~(vector unsigned int)__b);
+}
+
 static __inline__ vector signed long long __ATTRS_o_ai
 vec_orc(vector signed long long __a, vector signed long long __b) {
   return __a | ~__b;
@@ -7143,6 +7162,12 @@
 vec_orc(vector bool long long __a, vector double __b) {
   return (vector double)(__a | ~(vector unsigned long long)__b);
 }
+
+static __inline__ vector double __ATTRS_o_ai vec_orc(vector double __a,
+                                                     vector double __b) {
+  return (vector double)((vector bool long long)__a |
+                         ~(vector unsigned long long)__b);
+}
 #endif
 
 /* vec_vor */
@@ -8392,9 +8417,20 @@
 }
 
 #ifdef __VSX__
+#ifdef __XL_COMPAT_ALTIVEC__
+static __inline__ vector double __ATTRS_o_ai vec_rint(vector double __a);
+static __inline__ vector double __ATTRS_o_ai vec_round(vector double __a) {
+  double __fpscr = __builtin_readflm();
+  __builtin_setrnd(0);
+  vector double __rounded = vec_rint(__a);
+  __builtin_setflm(__fpscr);
+  return __rounded;
+}
+#else
 static __inline__ vector double __ATTRS_o_ai vec_round(vector double __a) {
   return __builtin_vsx_xvrdpi(__a);
 }
+#endif
 
 /* vec_rint */
 
@@ -8832,7 +8868,7 @@
 vec_sl(vector long long __a, vector unsigned long long __b) {
   return (vector long long)vec_sl((vector unsigned long long)__a, __b);
 }
-#else
+#elif defined(__VSX__)
 static __inline__ vector unsigned char __ATTRS_o_ai
 vec_vspltb(vector unsigned char __a, unsigned char __b);
 static __inline__ vector unsigned long long __ATTRS_o_ai
@@ -8878,7 +8914,7 @@
 vec_sl(vector long long __a, vector unsigned long long __b) {
   return (vector long long)vec_sl((vector unsigned long long)__a, __b);
 }
-#endif
+#endif /* __VSX__ */
 
 /* vec_vslb */
 
@@ -10343,7 +10379,7 @@
 vec_sr(vector long long __a, vector unsigned long long __b) {
   return (vector long long)vec_sr((vector unsigned long long)__a, __b);
 }
-#else
+#elif defined(__VSX__)
 static __inline__ vector unsigned long long __ATTRS_o_ai
 vec_sr(vector unsigned long long __a, vector unsigned long long __b) {
   __b %= (vector unsigned long long)(sizeof(unsigned long long) * __CHAR_BIT__);
@@ -10387,7 +10423,7 @@
 vec_sr(vector long long __a, vector unsigned long long __b) {
   return (vector long long)vec_sr((vector unsigned long long)__a, __b);
 }
-#endif
+#endif /* __VSX__ */
 
 /* vec_vsrb */
 
@@ -10473,7 +10509,7 @@
 vec_sra(vector unsigned long long __a, vector unsigned long long __b) {
   return (vector unsigned long long)((vector signed long long)__a >> __b);
 }
-#else
+#elif defined(__VSX__)
 static __inline__ vector signed long long __ATTRS_o_ai
 vec_sra(vector signed long long __a, vector unsigned long long __b) {
   __b %= (vector unsigned long long)(sizeof(unsigned long long) * __CHAR_BIT__);
@@ -10485,7 +10521,7 @@
   __b %= (vector unsigned long long)(sizeof(unsigned long long) * __CHAR_BIT__);
   return (vector unsigned long long)((vector signed long long)__a >> __b);
 }
-#endif
+#endif /* __VSX__ */
 
 /* vec_vsrab */
 
@@ -13434,74 +13470,74 @@
 /* vec_extract */
 
 static __inline__ signed char __ATTRS_o_ai vec_extract(vector signed char __a,
-                                                       unsigned int __b) {
+                                                       signed int __b) {
   return __a[__b & 0xf];
 }
 
 static __inline__ unsigned char __ATTRS_o_ai
-vec_extract(vector unsigned char __a, unsigned int __b) {
+vec_extract(vector unsigned char __a, signed int __b) {
   return __a[__b & 0xf];
 }
 
 static __inline__ unsigned char __ATTRS_o_ai vec_extract(vector bool char __a,
-                                                         unsigned int __b) {
+                                                         signed int __b) {
   return __a[__b & 0xf];
 }
 
 static __inline__ signed short __ATTRS_o_ai vec_extract(vector signed short __a,
-                                                        unsigned int __b) {
+                                                        signed int __b) {
   return __a[__b & 0x7];
 }
 
 static __inline__ unsigned short __ATTRS_o_ai
-vec_extract(vector unsigned short __a, unsigned int __b) {
+vec_extract(vector unsigned short __a, signed int __b) {
   return __a[__b & 0x7];
 }
 
 static __inline__ unsigned short __ATTRS_o_ai vec_extract(vector bool short __a,
-                                                          unsigned int __b) {
+                                                          signed int __b) {
   return __a[__b & 0x7];
 }
 
 static __inline__ signed int __ATTRS_o_ai vec_extract(vector signed int __a,
-                                                      unsigned int __b) {
+                                                      signed int __b) {
   return __a[__b & 0x3];
 }
 
 static __inline__ unsigned int __ATTRS_o_ai vec_extract(vector unsigned int __a,
-                                                        unsigned int __b) {
+                                                        signed int __b) {
   return __a[__b & 0x3];
 }
 
 static __inline__ unsigned int __ATTRS_o_ai vec_extract(vector bool int __a,
-                                                        unsigned int __b) {
+                                                        signed int __b) {
   return __a[__b & 0x3];
 }
 
 #ifdef __VSX__
 static __inline__ signed long long __ATTRS_o_ai
-vec_extract(vector signed long long __a, unsigned int __b) {
+vec_extract(vector signed long long __a, signed int __b) {
   return __a[__b & 0x1];
 }
 
 static __inline__ unsigned long long __ATTRS_o_ai
-vec_extract(vector unsigned long long __a, unsigned int __b) {
+vec_extract(vector unsigned long long __a, signed int __b) {
   return __a[__b & 0x1];
 }
 
 static __inline__ unsigned long long __ATTRS_o_ai
-vec_extract(vector bool long long __a, unsigned int __b) {
+vec_extract(vector bool long long __a, signed int __b) {
   return __a[__b & 0x1];
 }
 
 static __inline__ double __ATTRS_o_ai vec_extract(vector double __a,
-                                                  unsigned int __b) {
+                                                  signed int __b) {
   return __a[__b & 0x1];
 }
 #endif
 
 static __inline__ float __ATTRS_o_ai vec_extract(vector float __a,
-                                                 unsigned int __b) {
+                                                 signed int __b) {
   return __a[__b & 0x3];
 }
 
@@ -13561,82 +13597,82 @@
 
 static __inline__ vector signed char __ATTRS_o_ai
 vec_insert(signed char __a, vector signed char __b, int __c) {
-  __b[__c] = __a;
+  __b[__c & 0xF] = __a;
   return __b;
 }
 
 static __inline__ vector unsigned char __ATTRS_o_ai
 vec_insert(unsigned char __a, vector unsigned char __b, int __c) {
-  __b[__c] = __a;
+  __b[__c & 0xF] = __a;
   return __b;
 }
 
 static __inline__ vector bool char __ATTRS_o_ai vec_insert(unsigned char __a,
                                                            vector bool char __b,
                                                            int __c) {
-  __b[__c] = __a;
+  __b[__c & 0xF] = __a;
   return __b;
 }
 
 static __inline__ vector signed short __ATTRS_o_ai
 vec_insert(signed short __a, vector signed short __b, int __c) {
-  __b[__c] = __a;
+  __b[__c & 0x7] = __a;
   return __b;
 }
 
 static __inline__ vector unsigned short __ATTRS_o_ai
 vec_insert(unsigned short __a, vector unsigned short __b, int __c) {
-  __b[__c] = __a;
+  __b[__c & 0x7] = __a;
   return __b;
 }
 
 static __inline__ vector bool short __ATTRS_o_ai
 vec_insert(unsigned short __a, vector bool short __b, int __c) {
-  __b[__c] = __a;
+  __b[__c & 0x7] = __a;
   return __b;
 }
 
 static __inline__ vector signed int __ATTRS_o_ai
 vec_insert(signed int __a, vector signed int __b, int __c) {
-  __b[__c] = __a;
+  __b[__c & 0x3] = __a;
   return __b;
 }
 
 static __inline__ vector unsigned int __ATTRS_o_ai
 vec_insert(unsigned int __a, vector unsigned int __b, int __c) {
-  __b[__c] = __a;
+  __b[__c & 0x3] = __a;
   return __b;
 }
 
 static __inline__ vector bool int __ATTRS_o_ai vec_insert(unsigned int __a,
                                                           vector bool int __b,
                                                           int __c) {
-  __b[__c] = __a;
+  __b[__c & 0x3] = __a;
   return __b;
 }
 
 #ifdef __VSX__
 static __inline__ vector signed long long __ATTRS_o_ai
 vec_insert(signed long long __a, vector signed long long __b, int __c) {
-  __b[__c] = __a;
+  __b[__c & 0x1] = __a;
   return __b;
 }
 
 static __inline__ vector unsigned long long __ATTRS_o_ai
 vec_insert(unsigned long long __a, vector unsigned long long __b, int __c) {
-  __b[__c] = __a;
+  __b[__c & 0x1] = __a;
   return __b;
 }
 
 static __inline__ vector bool long long __ATTRS_o_ai
 vec_insert(unsigned long long __a, vector bool long long __b, int __c) {
-  __b[__c] = __a;
+  __b[__c & 0x1] = __a;
   return __b;
 }
 static __inline__ vector double __ATTRS_o_ai vec_insert(double __a,
                                                         vector double __b,
                                                         int __c) {
-  __b[__c] = __a;
+  __b[__c & 0x1] = __a;
   return __b;
 }
 #endif
@@ -13644,7 +13680,7 @@
 static __inline__ vector float __ATTRS_o_ai vec_insert(float __a,
                                                        vector float __b,
                                                        int __c) {
-  __b[__c] = __a;
+  __b[__c & 0x3] = __a;
   return __b;
 }
 
@@ -14805,42 +14841,43 @@
 #ifdef __VSX__
 static __inline__ int __ATTRS_o_ai vec_all_eq(vector signed long long __a,
                                               vector signed long long __b) {
+#ifdef __POWER8_VECTOR__
   return __builtin_altivec_vcmpequd_p(__CR6_LT, __a, __b);
+#else
+  // No vcmpequd on Power7 so we xor the two vectors and compare against zero as
+  // 32-bit elements.
+  return vec_all_eq((vector signed int)vec_xor(__a, __b), (vector signed int)0);
+#endif
 }
 
 static __inline__ int __ATTRS_o_ai vec_all_eq(vector long long __a,
                                               vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT, __a, (vector long long)__b);
+  return vec_all_eq((vector signed long long)__a, (vector signed long long)__b);
 }
 
 static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned long long __a,
                                               vector unsigned long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
-                                      (vector long long)__b);
+  return vec_all_eq((vector signed long long)__a, (vector signed long long)__b);
 }
 
 static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned long long __a,
                                               vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
-                                      (vector long long)__b);
+  return vec_all_eq((vector signed long long)__a, (vector signed long long)__b);
 }
 
 static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool long long __a,
                                               vector long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
-                                      (vector long long)__b);
+  return vec_all_eq((vector signed long long)__a, (vector signed long long)__b);
 }
 
 static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool long long __a,
                                               vector unsigned long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
-                                      (vector long long)__b);
+  return vec_all_eq((vector signed long long)__a, (vector signed long long)__b);
 }
 
 static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool long long __a,
                                               vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
-                                      (vector long long)__b);
+  return vec_all_eq((vector signed long long)__a, (vector signed long long)__b);
 }
 #endif
 
@@ -14870,6 +14907,11 @@
                                               vector unsigned __int128 __b) {
   return __builtin_altivec_vcmpequq_p(__CR6_LT, __a, __b);
 }
+
+static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool __int128 __a,
+                                              vector bool __int128 __b) {
+  return __builtin_altivec_vcmpequq_p(__CR6_LT, __a, __b);
+}
 #endif
 
 /* vec_all_ge */
@@ -15815,6 +15857,11 @@
                                               vector unsigned __int128 __b) {
   return __builtin_altivec_vcmpequq_p(__CR6_EQ, __a, __b);
 }
+
+static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool __int128 __a,
+                                              vector bool __int128 __b) {
+  return __builtin_altivec_vcmpequq_p(__CR6_EQ, __a, __b);
+}
 #endif
 
 /* vec_all_nge */
@@ -16104,6 +16151,11 @@
                                               vector unsigned __int128 __b) {
   return __builtin_altivec_vcmpequq_p(__CR6_EQ_REV, __a, __b);
 }
+
+static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool __int128 __a,
+                                              vector bool __int128 __b) {
+  return __builtin_altivec_vcmpequq_p(__CR6_EQ_REV, __a, __b);
+}
 #endif
 
 /* vec_any_ge */
@@ -17013,43 +17065,43 @@
 #ifdef __VSX__
 static __inline__ int __ATTRS_o_ai vec_any_ne(vector signed long long __a,
                                               vector signed long long __b) {
+#ifdef __POWER8_VECTOR__
   return __builtin_altivec_vcmpequd_p(__CR6_LT_REV, __a, __b);
+#else
+  // Take advantage of the optimized sequence for vec_all_eq when vcmpequd is
+  // not available.
+  return !vec_all_eq(__a, __b);
+#endif
 }
 
 static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned long long __a,
                                               vector unsigned long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT_REV, (vector long long)__a,
-                                      (vector long long)__b);
+  return vec_any_ne((vector signed long long)__a, (vector signed long long)__b);
 }
 
 static __inline__ int __ATTRS_o_ai vec_any_ne(vector signed long long __a,
                                               vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(__CR6_LT_REV, __a,
-                                      (vector signed long long)__b);
+  return vec_any_ne((vector signed long long)__a, (vector signed long long)__b);
 }
 
 static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned long long __a,
                                               vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(
-      __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b);
+  return vec_any_ne((vector signed long long)__a, (vector signed long long)__b);
 }
 
 static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool long long __a,
                                               vector signed long long __b) {
-  return __builtin_altivec_vcmpequd_p(
-      __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b);
+  return vec_any_ne((vector signed long long)__a, (vector signed long long)__b);
 }
 
 static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool long long __a,
                                               vector unsigned long long __b) {
-  return __builtin_altivec_vcmpequd_p(
-      __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b);
+  return vec_any_ne((vector signed long long)__a, (vector signed long long)__b);
 }
 
 static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool long long __a,
                                               vector bool long long __b) {
-  return __builtin_altivec_vcmpequd_p(
-      __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b);
+  return vec_any_ne((vector signed long long)__a, (vector signed long long)__b);
 }
 #endif
 
@@ -17079,6 +17131,11 @@
                                               vector unsigned __int128 __b) {
   return __builtin_altivec_vcmpequq_p(__CR6_LT_REV, __a, __b);
 }
+
+static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool __int128 __a,
+                                              vector bool __int128 __b) {
+  return __builtin_altivec_vcmpequq_p(__CR6_LT_REV, __a, __b);
+}
 #endif
 
 /* vec_any_nge */
@@ -17196,6 +17253,7 @@
 #define vec_ncipher_be __builtin_altivec_crypto_vncipher
 #define vec_ncipherlast_be __builtin_altivec_crypto_vncipherlast
 
+#ifdef __VSX__
 static __inline__ vector unsigned long long __attribute__((__always_inline__))
 __builtin_crypto_vsbox(vector unsigned long long __a) {
   return __builtin_altivec_crypto_vsbox(__a);
@@ -17224,6 +17282,7 @@
                               vector unsigned long long __b) {
   return __builtin_altivec_crypto_vncipherlast(__a, __b);
 }
+#endif /* __VSX__ */
 
 #define __builtin_crypto_vshasigmad __builtin_altivec_crypto_vshasigmad
 #define __builtin_crypto_vshasigmaw __builtin_altivec_crypto_vshasigmaw
@@ -17339,12 +17398,22 @@
 }
 
 #if defined(__powerpc64__) && defined(__SIZEOF_INT128__)
-static __inline__ vector unsigned long long __attribute__((__always_inline__))
+static __inline__ vector unsigned long long __ATTRS_o_ai
 vec_bperm(vector unsigned __int128 __a, vector unsigned char __b) {
   return __builtin_altivec_vbpermq((vector unsigned char)__a,
                                    (vector unsigned char)__b);
 }
 #endif
+static __inline__ vector unsigned char __ATTRS_o_ai
+vec_bperm(vector unsigned char __a, vector unsigned char __b) {
+  return __builtin_altivec_vbpermq(__a, __b);
+}
+#endif // __POWER8_VECTOR__
+#ifdef __POWER9_VECTOR__
+static __inline__ vector unsigned long long __ATTRS_o_ai
+vec_bperm(vector unsigned long long __a, vector unsigned char __b) {
+  return __builtin_altivec_vbpermd(__a, __b);
+}
 #endif
 
 
@@ -18191,13 +18260,13 @@
 
 #define vec_cntm(__a, __mp)                                                    \
   _Generic((__a), vector unsigned char                                         \
-           : __builtin_altivec_vcntmbb((__a), (unsigned int)(__mp)),           \
+           : __builtin_altivec_vcntmbb((__a), (unsigned char)(__mp)),          \
              vector unsigned short                                             \
-           : __builtin_altivec_vcntmbh((__a), (unsigned int)(__mp)),           \
+           : __builtin_altivec_vcntmbh((__a), (unsigned char)(__mp)),          \
              vector unsigned int                                               \
-           : __builtin_altivec_vcntmbw((__a), (unsigned int)(__mp)),           \
+           : __builtin_altivec_vcntmbw((__a), (unsigned char)(__mp)),          \
              vector unsigned long long                                         \
-           : __builtin_altivec_vcntmbd((__a), (unsigned int)(__mp)))
+           : __builtin_altivec_vcntmbd((__a), (unsigned char)(__mp)))
 
 /* vec_gen[b|h|w|d|q]m */
 
@@ -18726,36 +18795,39 @@
 
 static __inline__ vector signed int __ATTRS_o_ai vec_splati_ins(
     vector signed int __a, const unsigned int __b, const signed int __c) {
+  const unsigned int __d = __b & 0x01;
 #ifdef __LITTLE_ENDIAN__
-  __a[1 - __b] = __c;
-  __a[3 - __b] = __c;
+  __a[1 - __d] = __c;
+  __a[3 - __d] = __c;
 #else
-  __a[__b] = __c;
-  __a[2 + __b] = __c;
+  __a[__d] = __c;
+  __a[2 + __d] = __c;
 #endif
   return __a;
 }
 
 static __inline__ vector unsigned int __ATTRS_o_ai vec_splati_ins(
     vector unsigned int __a, const unsigned int __b, const unsigned int __c) {
+  const unsigned int __d = __b & 0x01;
 #ifdef __LITTLE_ENDIAN__
-  __a[1 - __b] = __c;
-  __a[3 - __b] = __c;
+  __a[1 - __d] = __c;
+  __a[3 - __d] = __c;
 #else
-  __a[__b] = __c;
-  __a[2 + __b] = __c;
+  __a[__d] = __c;
+  __a[2 + __d] = __c;
 #endif
   return __a;
 }
 
 static __inline__ vector float __ATTRS_o_ai
 vec_splati_ins(vector float __a, const unsigned int __b, const float __c) {
+  const unsigned int __d = __b & 0x01;
 #ifdef __LITTLE_ENDIAN__
-  __a[1 - __b] = __c;
-  __a[3 - __b] = __c;
+  __a[1 - __d] = __c;
+  __a[3 - __d] = __c;
 #else
-  __a[__b] = __c;
-  __a[2 + __b] = __c;
+  __a[__d] = __c;
+  __a[2 + __d] = __c;
 #endif
   return __a;
 }
@@ -18969,6 +19041,51 @@
 #endif /* __SIZEOF_INT128__ */
 #endif /* __POWER10_VECTOR__ */
 
+#ifdef __POWER8_VECTOR__
+#define __bcdadd(__a, __b, __ps) __builtin_ppc_bcdadd((__a), (__b), (__ps))
+#define __bcdsub(__a, __b, __ps) __builtin_ppc_bcdsub((__a), (__b), (__ps))
+
+static __inline__ long __bcdadd_ofl(vector unsigned char __a,
+                                    vector unsigned char __b) {
+  return __builtin_ppc_bcdadd_p(__CR6_SO, __a, __b);
+}
+
+static __inline__ long __bcdsub_ofl(vector unsigned char __a,
+                                    vector unsigned char __b) {
+  return __builtin_ppc_bcdsub_p(__CR6_SO, __a, __b);
+}
+
+static __inline__ long __bcd_invalid(vector unsigned char __a) {
+  return __builtin_ppc_bcdsub_p(__CR6_SO, __a, __a);
+}
+
+static __inline__ long __bcdcmpeq(vector unsigned char __a,
+                                  vector unsigned char __b) {
+  return __builtin_ppc_bcdsub_p(__CR6_EQ, __a, __b);
+}
+
+static __inline__ long __bcdcmplt(vector unsigned char __a,
+                                  vector unsigned char __b) {
+  return __builtin_ppc_bcdsub_p(__CR6_LT, __a, __b);
+}
+
+static __inline__ long __bcdcmpgt(vector unsigned char __a,
+                                  vector unsigned char __b) {
+  return __builtin_ppc_bcdsub_p(__CR6_GT, __a, __b);
+}
+
+static __inline__ long __bcdcmple(vector unsigned char __a,
+                                  vector unsigned char __b) {
+  return __builtin_ppc_bcdsub_p(__CR6_GT_REV, __a, __b);
+}
+
+static __inline__ long __bcdcmpge(vector unsigned char __a,
+                                  vector unsigned char __b) {
+  return __builtin_ppc_bcdsub_p(__CR6_LT_REV, __a, __b);
+}
+
+#endif // __POWER8_VECTOR__
+
 #undef __ATTRS_o_ai
 
 #endif /* __ALTIVEC_H */
diff --git a/linux-x86/lib64/clang/14.0.1/include/ammintrin.h b/linux-x86/lib64/clang/14.0.2/include/ammintrin.h
similarity index 98%
rename from linux-x86/lib64/clang/14.0.1/include/ammintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/ammintrin.h
index 3806be6..1af2096 100644
--- a/linux-x86/lib64/clang/14.0.1/include/ammintrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/ammintrin.h
@@ -10,6 +10,10 @@
 #ifndef __AMMINTRIN_H
 #define __AMMINTRIN_H
 
+#if !defined(__i386__) && !defined(__x86_64__)
+#error "This header is only meant to be used on x86 and x64 architecture"
+#endif
+
 #include <pmmintrin.h>
 
 /* Define the default attributes for the functions in this file. */
diff --git a/linux-x86/lib64/clang/14.0.1/include/amxintrin.h b/linux-x86/lib64/clang/14.0.2/include/amxintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/amxintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/amxintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/arm64intr.h b/linux-x86/lib64/clang/14.0.2/include/arm64intr.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/arm64intr.h
rename to linux-x86/lib64/clang/14.0.2/include/arm64intr.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/arm_acle.h b/linux-x86/lib64/clang/14.0.2/include/arm_acle.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/arm_acle.h
rename to linux-x86/lib64/clang/14.0.2/include/arm_acle.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/arm_bf16.h b/linux-x86/lib64/clang/14.0.2/include/arm_bf16.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/arm_bf16.h
rename to linux-x86/lib64/clang/14.0.2/include/arm_bf16.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/arm_cde.h b/linux-x86/lib64/clang/14.0.2/include/arm_cde.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/arm_cde.h
rename to linux-x86/lib64/clang/14.0.2/include/arm_cde.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/arm_cmse.h b/linux-x86/lib64/clang/14.0.2/include/arm_cmse.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/arm_cmse.h
rename to linux-x86/lib64/clang/14.0.2/include/arm_cmse.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/arm_fp16.h b/linux-x86/lib64/clang/14.0.2/include/arm_fp16.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/arm_fp16.h
rename to linux-x86/lib64/clang/14.0.2/include/arm_fp16.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/arm_mve.h b/linux-x86/lib64/clang/14.0.2/include/arm_mve.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/arm_mve.h
rename to linux-x86/lib64/clang/14.0.2/include/arm_mve.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/arm_neon.h b/linux-x86/lib64/clang/14.0.2/include/arm_neon.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/arm_neon.h
rename to linux-x86/lib64/clang/14.0.2/include/arm_neon.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/arm_sve.h b/linux-x86/lib64/clang/14.0.2/include/arm_sve.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/arm_sve.h
rename to linux-x86/lib64/clang/14.0.2/include/arm_sve.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/armintr.h b/linux-x86/lib64/clang/14.0.2/include/armintr.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/armintr.h
rename to linux-x86/lib64/clang/14.0.2/include/armintr.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx2intrin.h b/linux-x86/lib64/clang/14.0.2/include/avx2intrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx2intrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx2intrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512bf16intrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512bf16intrin.h
similarity index 97%
copy from darwin-x86/lib64/clang/14.0.1/include/avx512bf16intrin.h
copy to linux-x86/lib64/clang/14.0.2/include/avx512bf16intrin.h
index d1d87e7..0965373 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/avx512bf16intrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/avx512bf16intrin.h
@@ -232,7 +232,7 @@
 ///
 /// \param __A
 ///    A 256-bit vector of [16 x bfloat].
-/// \returns A 512-bit vector of [16 x float] come from convertion of __A
+/// \returns A 512-bit vector of [16 x float] come from conversion of __A
 static __inline__ __m512 __DEFAULT_FN_ATTRS512 _mm512_cvtpbh_ps(__m256bh __A) {
   return _mm512_castsi512_ps((__m512i)_mm512_slli_epi32(
       (__m512i)_mm512_cvtepi16_epi32((__m256i)__A), 16));
@@ -247,7 +247,7 @@
 ///    bit is not set.
 /// \param __A
 ///    A 256-bit vector of [16 x bfloat].
-/// \returns A 512-bit vector of [16 x float] come from convertion of __A
+/// \returns A 512-bit vector of [16 x float] come from conversion of __A
 static __inline__ __m512 __DEFAULT_FN_ATTRS512
 _mm512_maskz_cvtpbh_ps(__mmask16 __U, __m256bh __A) {
   return _mm512_castsi512_ps((__m512i)_mm512_slli_epi32(
@@ -265,7 +265,7 @@
 ///    A 16-bit mask.
 /// \param __A
 ///    A 256-bit vector of [16 x bfloat].
-/// \returns A 512-bit vector of [16 x float] come from convertion of __A
+/// \returns A 512-bit vector of [16 x float] come from conversion of __A
 static __inline__ __m512 __DEFAULT_FN_ATTRS512
 _mm512_mask_cvtpbh_ps(__m512 __S, __mmask16 __U, __m256bh __A) {
   return _mm512_castsi512_ps((__m512i)_mm512_mask_slli_epi32(
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512bitalgintrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512bitalgintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512bitalgintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512bitalgintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512bwintrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512bwintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512bwintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512bwintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512cdintrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512cdintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512cdintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512cdintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512dqintrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512dqintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512dqintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512dqintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512erintrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512erintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512erintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512erintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512fintrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512fintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512fintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512fintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512fp16intrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512fp16intrin.h
similarity index 95%
copy from darwin-x86/lib64/clang/14.0.1/include/avx512fp16intrin.h
copy to linux-x86/lib64/clang/14.0.2/include/avx512fp16intrin.h
index 8911b4e..99409a3 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/avx512fp16intrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/avx512fp16intrin.h
@@ -97,6 +97,11 @@
                 (h14), (h13), (h12), (h11), (h10), (h9), (h8), (h7), (h6),     \
                 (h5), (h4), (h3), (h2), (h1))
 
+static __inline __m512h __DEFAULT_FN_ATTRS512
+_mm512_set1_pch(_Float16 _Complex h) {
+  return (__m512h)_mm512_set1_ps(__builtin_bit_cast(float, h));
+}
+
 static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_castph_ps(__m128h __a) {
   return (__m128)__a;
 }
@@ -2929,98 +2934,95 @@
 static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fcmadd_sch(__m128h __A,
                                                                __m128h __B,
                                                                __m128h __C) {
-  return (__m128h)__builtin_ia32_vfcmaddcsh_mask((__v4sf)__C, (__v4sf)__A,
-                                                 (__v4sf)__B, (__mmask8)-1,
+  return (__m128h)__builtin_ia32_vfcmaddcsh_mask((__v4sf)__A, (__v4sf)__B,
+                                                 (__v4sf)__C, (__mmask8)-1,
                                                  _MM_FROUND_CUR_DIRECTION);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128
 _mm_mask_fcmadd_sch(__m128h __A, __mmask8 __U, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_selectps_128(
-      __U,
-      __builtin_ia32_vfcmaddcsh_mask((__v4sf)__C, (__v4sf)__A, (__v4sf)__B,
-                                     (__mmask8)__U, _MM_FROUND_CUR_DIRECTION),
-      (__v4sf)__A);
+  return (__m128h)__builtin_ia32_vfcmaddcsh_round_mask(
+      (__v4sf)__A, (__v4sf)(__B), (__v4sf)(__C), __U, _MM_FROUND_CUR_DIRECTION);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128
 _mm_maskz_fcmadd_sch(__mmask8 __U, __m128h __A, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_vfcmaddcsh_maskz((__v4sf)__C, (__v4sf)__A,
-                                                  (__v4sf)__B, (__mmask8)__U,
+  return (__m128h)__builtin_ia32_vfcmaddcsh_maskz((__v4sf)__A, (__v4sf)__B,
+                                                  (__v4sf)__C, (__mmask8)__U,
                                                   _MM_FROUND_CUR_DIRECTION);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128
 _mm_mask3_fcmadd_sch(__m128h __A, __m128h __B, __m128h __C, __mmask8 __U) {
-  return (__m128h)_mm_move_ss((__m128)__C,
-                              (__m128)__builtin_ia32_vfcmaddcsh_mask(
-                                  (__v4sf)__C, (__v4sf)__A, (__v4sf)__B, __U,
-                                  _MM_FROUND_CUR_DIRECTION));
+  return (__m128h)__builtin_ia32_vfcmaddcsh_round_mask3(
+      (__v4sf)__A, (__v4sf)__B, (__v4sf)__C, __U, _MM_FROUND_CUR_DIRECTION);
 }
 
 #define _mm_fcmadd_round_sch(A, B, C, R)                                       \
   ((__m128h)__builtin_ia32_vfcmaddcsh_mask(                                    \
-      (__v4sf)(__m128h)(C), (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B),        \
+      (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B), (__v4sf)(__m128h)(C),        \
       (__mmask8)-1, (int)(R)))
 
 #define _mm_mask_fcmadd_round_sch(A, U, B, C, R)                               \
-  ((__m128h)__builtin_ia32_selectps_128(                                       \
-      (__mmask8)(U & 1),                                                       \
-      __builtin_ia32_vfcmaddcsh_mask(                                          \
-          (__v4sf)(__m128h)(C), (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B),    \
-          (__mmask8)(U), (int)(R)),                                            \
-      (__v4sf)(__m128h)(A)))
+  ((__m128h)__builtin_ia32_vfcmaddcsh_round_mask(                              \
+      (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B), (__v4sf)(__m128h)(C),        \
+      (__mmask8)(U), (int)(R)))
 
 #define _mm_maskz_fcmadd_round_sch(U, A, B, C, R)                              \
   ((__m128h)__builtin_ia32_vfcmaddcsh_maskz(                                   \
-      (__v4sf)(__m128h)(C), (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B),        \
+      (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B), (__v4sf)(__m128h)(C),        \
       (__mmask8)(U), (int)(R)))
 
 #define _mm_mask3_fcmadd_round_sch(A, B, C, U, R)                              \
-  ((__m128h)_mm_move_ss((__m128)(C),                                           \
-                        (__m128)__builtin_ia32_vfcmaddcsh_mask(                \
-                            (__v4sf)(C), (__v4sf)(A), (__v4sf)(B), (U), (R))))
+  ((__m128h)__builtin_ia32_vfcmaddcsh_round_mask3(                             \
+      (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B), (__v4sf)(__m128h)(C),        \
+      (__mmask8)(U), (int)(R)))
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fmadd_sch(__m128h __A,
                                                               __m128h __B,
                                                               __m128h __C) {
-  return (__m128h)__builtin_ia32_vfmaddcsh_mask((__v4sf)__C, (__v4sf)__A,
-                                                (__v4sf)__B, (__mmask8)-1,
+  return (__m128h)__builtin_ia32_vfmaddcsh_mask((__v4sf)__A, (__v4sf)__B,
+                                                (__v4sf)__C, (__mmask8)-1,
                                                 _MM_FROUND_CUR_DIRECTION);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128
 _mm_mask_fmadd_sch(__m128h __A, __mmask8 __U, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_selectps_128(
-      __U,
-      __builtin_ia32_vfmaddcsh_mask((__v4sf)__C, (__v4sf)__A, (__v4sf)__B,
-                                    (__mmask8)__U, _MM_FROUND_CUR_DIRECTION),
-      (__v4sf)__A);
+  return (__m128h)__builtin_ia32_vfmaddcsh_round_mask(
+      (__v4sf)__A, (__v4sf)(__B), (__v4sf)(__C), __U, _MM_FROUND_CUR_DIRECTION);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128
 _mm_maskz_fmadd_sch(__mmask8 __U, __m128h __A, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_vfmaddcsh_maskz((__v4sf)__C, (__v4sf)__A,
-                                                 (__v4sf)__B, (__mmask8)__U,
+  return (__m128h)__builtin_ia32_vfmaddcsh_maskz((__v4sf)__A, (__v4sf)__B,
+                                                 (__v4sf)__C, (__mmask8)__U,
                                                  _MM_FROUND_CUR_DIRECTION);
 }
 
+static __inline__ __m128h __DEFAULT_FN_ATTRS128
+_mm_mask3_fmadd_sch(__m128h __A, __m128h __B, __m128h __C, __mmask8 __U) {
+  return (__m128h)__builtin_ia32_vfmaddcsh_round_mask3(
+      (__v4sf)__A, (__v4sf)__B, (__v4sf)__C, __U, _MM_FROUND_CUR_DIRECTION);
+}
+
 #define _mm_fmadd_round_sch(A, B, C, R)                                        \
   ((__m128h)__builtin_ia32_vfmaddcsh_mask(                                     \
-      (__v4sf)(__m128h)(C), (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B),        \
+      (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B), (__v4sf)(__m128h)(C),        \
       (__mmask8)-1, (int)(R)))
 
 #define _mm_mask_fmadd_round_sch(A, U, B, C, R)                                \
-  ((__m128h)__builtin_ia32_selectps_128(                                       \
-      (__mmask8)(U & 1),                                                       \
-      __builtin_ia32_vfmaddcsh_mask(                                           \
-          (__v4sf)(__m128h)(C), (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B),    \
-          (__mmask8)(U), (int)(R)),                                            \
-      (__v4sf)(__m128h)(A)))
+  ((__m128h)__builtin_ia32_vfmaddcsh_round_mask(                               \
+      (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B), (__v4sf)(__m128h)(C),        \
+      (__mmask8)(U), (int)(R)))
 
 #define _mm_maskz_fmadd_round_sch(U, A, B, C, R)                               \
   ((__m128h)__builtin_ia32_vfmaddcsh_maskz(                                    \
-      (__v4sf)(__m128h)(C), (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B),        \
+      (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B), (__v4sf)(__m128h)(C),        \
+      (__mmask8)(U), (int)(R)))
+
+#define _mm_mask3_fmadd_round_sch(A, B, C, U, R)                               \
+  ((__m128h)__builtin_ia32_vfmaddcsh_round_mask3(                              \
+      (__v4sf)(__m128h)(A), (__v4sf)(__m128h)(B), (__v4sf)(__m128h)(C),        \
       (__mmask8)(U), (int)(R)))
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fcmul_sch(__m128h __A,
@@ -3172,111 +3174,99 @@
 static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_fcmadd_pch(__m512h __A,
                                                                   __m512h __B,
                                                                   __m512h __C) {
-  return (__m512h)__builtin_ia32_vfcmaddcph512_mask((__v16sf)__C, (__v16sf)__A,
-                                                    (__v16sf)__B, (__mmask16)-1,
-                                                    _MM_FROUND_CUR_DIRECTION);
+  return (__m512h)__builtin_ia32_vfcmaddcph512_mask3(
+      (__v16sf)__A, (__v16sf)__B, (__v16sf)__C, (__mmask16)-1,
+      _MM_FROUND_CUR_DIRECTION);
 }
 
 static __inline__ __m512h __DEFAULT_FN_ATTRS512
 _mm512_mask_fcmadd_pch(__m512h __A, __mmask16 __U, __m512h __B, __m512h __C) {
-  return (__m512h)__builtin_ia32_selectps_512(
-      __U,
-      __builtin_ia32_vfcmaddcph512_mask((__v16sf)__C, (__v16sf)__A,
-                                        (__v16sf)__B, (__mmask16)__U,
-                                        _MM_FROUND_CUR_DIRECTION),
-      (__v16sf)__A);
+  return (__m512h)__builtin_ia32_vfcmaddcph512_mask(
+      (__v16sf)__A, (__v16sf)__B, (__v16sf)__C, (__mmask16)__U,
+      _MM_FROUND_CUR_DIRECTION);
 }
 
 static __inline__ __m512h __DEFAULT_FN_ATTRS512
 _mm512_mask3_fcmadd_pch(__m512h __A, __m512h __B, __m512h __C, __mmask16 __U) {
-  return (__m512h)__builtin_ia32_vfcmaddcph512_mask(
-      (__v16sf)__C, (__v16sf)__A, (__v16sf)__B, (__mmask16)__U,
+  return (__m512h)__builtin_ia32_vfcmaddcph512_mask3(
+      (__v16sf)__A, (__v16sf)__B, (__v16sf)__C, (__mmask16)__U,
       _MM_FROUND_CUR_DIRECTION);
 }
 
 static __inline__ __m512h __DEFAULT_FN_ATTRS512
 _mm512_maskz_fcmadd_pch(__mmask16 __U, __m512h __A, __m512h __B, __m512h __C) {
   return (__m512h)__builtin_ia32_vfcmaddcph512_maskz(
-      (__v16sf)__C, (__v16sf)__A, (__v16sf)__B, (__mmask16)__U,
+      (__v16sf)__A, (__v16sf)__B, (__v16sf)__C, (__mmask16)__U,
       _MM_FROUND_CUR_DIRECTION);
 }
 
 #define _mm512_fcmadd_round_pch(A, B, C, R)                                    \
-  ((__m512h)__builtin_ia32_vfcmaddcph512_mask(                                 \
-      (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B),     \
+  ((__m512h)__builtin_ia32_vfcmaddcph512_mask3(                                \
+      (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), (__v16sf)(__m512h)(C),     \
       (__mmask16)-1, (int)(R)))
 
 #define _mm512_mask_fcmadd_round_pch(A, U, B, C, R)                            \
-  ((__m512h)__builtin_ia32_selectps_512(                                       \
-      (__mmask16)(U),                                                          \
-      __builtin_ia32_vfcmaddcph512_mask(                                       \
-          (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), \
-          (__mmask16)(U), (int)(R)),                                           \
-      (__v16sf)(__m512h)(A)))
+  ((__m512h)__builtin_ia32_vfcmaddcph512_mask(                                 \
+      (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), (__v16sf)(__m512h)(C),     \
+      (__mmask16)(U), (int)(R)))
 
 #define _mm512_mask3_fcmadd_round_pch(A, B, C, U, R)                           \
-  ((__m512h)__builtin_ia32_vfcmaddcph512_mask(                                 \
-      (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B),     \
+  ((__m512h)__builtin_ia32_vfcmaddcph512_mask3(                                \
+      (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), (__v16sf)(__m512h)(C),     \
       (__mmask16)(U), (int)(R)))
 
 #define _mm512_maskz_fcmadd_round_pch(U, A, B, C, R)                           \
   ((__m512h)__builtin_ia32_vfcmaddcph512_maskz(                                \
-      (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B),     \
+      (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), (__v16sf)(__m512h)(C),     \
       (__mmask16)(U), (int)(R)))
 
 static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_fmadd_pch(__m512h __A,
                                                                  __m512h __B,
                                                                  __m512h __C) {
-  return (__m512h)__builtin_ia32_vfmaddcph512_mask((__v16sf)__C, (__v16sf)__A,
-                                                   (__v16sf)__B, (__mmask16)-1,
-                                                   _MM_FROUND_CUR_DIRECTION);
+  return (__m512h)__builtin_ia32_vfmaddcph512_mask3((__v16sf)__A, (__v16sf)__B,
+                                                    (__v16sf)__C, (__mmask16)-1,
+                                                    _MM_FROUND_CUR_DIRECTION);
 }
 
 static __inline__ __m512h __DEFAULT_FN_ATTRS512
 _mm512_mask_fmadd_pch(__m512h __A, __mmask16 __U, __m512h __B, __m512h __C) {
-  return (__m512h)__builtin_ia32_selectps_512(
-      __U,
-      __builtin_ia32_vfmaddcph512_mask((__v16sf)__C, (__v16sf)__A, (__v16sf)__B,
-                                       (__mmask16)__U,
-                                       _MM_FROUND_CUR_DIRECTION),
-      (__v16sf)__A);
+  return (__m512h)__builtin_ia32_vfmaddcph512_mask((__v16sf)__A, (__v16sf)__B,
+                                                   (__v16sf)__C, (__mmask16)__U,
+                                                   _MM_FROUND_CUR_DIRECTION);
 }
 
 static __inline__ __m512h __DEFAULT_FN_ATTRS512
 _mm512_mask3_fmadd_pch(__m512h __A, __m512h __B, __m512h __C, __mmask16 __U) {
-  return (__m512h)__builtin_ia32_vfmaddcph512_mask((__v16sf)__C, (__v16sf)__A,
-                                                   (__v16sf)__B, (__mmask16)__U,
-                                                   _MM_FROUND_CUR_DIRECTION);
+  return (__m512h)__builtin_ia32_vfmaddcph512_mask3(
+      (__v16sf)__A, (__v16sf)__B, (__v16sf)__C, (__mmask16)__U,
+      _MM_FROUND_CUR_DIRECTION);
 }
 
 static __inline__ __m512h __DEFAULT_FN_ATTRS512
 _mm512_maskz_fmadd_pch(__mmask16 __U, __m512h __A, __m512h __B, __m512h __C) {
   return (__m512h)__builtin_ia32_vfmaddcph512_maskz(
-      (__v16sf)__C, (__v16sf)__A, (__v16sf)__B, (__mmask16)__U,
+      (__v16sf)__A, (__v16sf)__B, (__v16sf)__C, (__mmask16)__U,
       _MM_FROUND_CUR_DIRECTION);
 }
 
 #define _mm512_fmadd_round_pch(A, B, C, R)                                     \
-  ((__m512h)__builtin_ia32_vfmaddcph512_mask(                                  \
-      (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B),     \
+  ((__m512h)__builtin_ia32_vfmaddcph512_mask3(                                 \
+      (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), (__v16sf)(__m512h)(C),     \
       (__mmask16)-1, (int)(R)))
 
 #define _mm512_mask_fmadd_round_pch(A, U, B, C, R)                             \
-  ((__m512h)__builtin_ia32_selectps_512(                                       \
-      (__mmask16)(U),                                                          \
-      __builtin_ia32_vfmaddcph512_mask(                                        \
-          (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), \
-          (__mmask16)(U), (int)(R)),                                           \
-      (__v16sf)(__m512h)(A)))
+  ((__m512h)__builtin_ia32_vfmaddcph512_mask(                                  \
+      (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), (__v16sf)(__m512h)(C),     \
+      (__mmask16)(U), (int)(R)))
 
 #define _mm512_mask3_fmadd_round_pch(A, B, C, U, R)                            \
-  ((__m512h)__builtin_ia32_vfmaddcph512_mask(                                  \
-      (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B),     \
+  ((__m512h)__builtin_ia32_vfmaddcph512_mask3(                                 \
+      (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), (__v16sf)(__m512h)(C),     \
       (__mmask16)(U), (int)(R)))
 
 #define _mm512_maskz_fmadd_round_pch(U, A, B, C, R)                            \
   ((__m512h)__builtin_ia32_vfmaddcph512_maskz(                                 \
-      (__v16sf)(__m512h)(C), (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B),     \
+      (__v16sf)(__m512h)(A), (__v16sf)(__m512h)(B), (__v16sf)(__m512h)(C),     \
       (__mmask16)(U), (int)(R)))
 
 static __inline__ _Float16 __DEFAULT_FN_ATTRS512
@@ -3316,6 +3306,42 @@
   return (__m512h)__builtin_ia32_permvarhi512((__v32hi)__B, (__v32hi)__A);
 }
 
+// intrinsics below are alias for f*mul_*ch
+#define _mm512_mul_pch(A, B) _mm512_fmul_pch(A, B)
+#define _mm512_mask_mul_pch(W, U, A, B) _mm512_mask_fmul_pch(W, U, A, B)
+#define _mm512_maskz_mul_pch(U, A, B) _mm512_maskz_fmul_pch(U, A, B)
+#define _mm512_mul_round_pch(A, B, R) _mm512_fmul_round_pch(A, B, R)
+#define _mm512_mask_mul_round_pch(W, U, A, B, R)                               \
+  _mm512_mask_fmul_round_pch(W, U, A, B, R)
+#define _mm512_maskz_mul_round_pch(U, A, B, R)                                 \
+  _mm512_maskz_fmul_round_pch(U, A, B, R)
+
+#define _mm512_cmul_pch(A, B) _mm512_fcmul_pch(A, B)
+#define _mm512_mask_cmul_pch(W, U, A, B) _mm512_mask_fcmul_pch(W, U, A, B)
+#define _mm512_maskz_cmul_pch(U, A, B) _mm512_maskz_fcmul_pch(U, A, B)
+#define _mm512_cmul_round_pch(A, B, R) _mm512_fcmul_round_pch(A, B, R)
+#define _mm512_mask_cmul_round_pch(W, U, A, B, R)                              \
+  _mm512_mask_fcmul_round_pch(W, U, A, B, R)
+#define _mm512_maskz_cmul_round_pch(U, A, B, R)                                \
+  _mm512_maskz_fcmul_round_pch(U, A, B, R)
+
+#define _mm_mul_sch(A, B) _mm_fmul_sch(A, B)
+#define _mm_mask_mul_sch(W, U, A, B) _mm_mask_fmul_sch(W, U, A, B)
+#define _mm_maskz_mul_sch(U, A, B) _mm_maskz_fmul_sch(U, A, B)
+#define _mm_mul_round_sch(A, B, R) _mm_fmul_round_sch(A, B, R)
+#define _mm_mask_mul_round_sch(W, U, A, B, R)                                  \
+  _mm_mask_fmul_round_sch(W, U, A, B, R)
+#define _mm_maskz_mul_round_sch(U, A, B, R) _mm_maskz_fmul_round_sch(U, A, B, R)
+
+#define _mm_cmul_sch(A, B) _mm_fcmul_sch(A, B)
+#define _mm_mask_cmul_sch(W, U, A, B) _mm_mask_fcmul_sch(W, U, A, B)
+#define _mm_maskz_cmul_sch(U, A, B) _mm_maskz_fcmul_sch(U, A, B)
+#define _mm_cmul_round_sch(A, B, R) _mm_fcmul_round_sch(A, B, R)
+#define _mm_mask_cmul_round_sch(W, U, A, B, R)                                 \
+  _mm_mask_fcmul_round_sch(W, U, A, B, R)
+#define _mm_maskz_cmul_round_sch(U, A, B, R)                                   \
+  _mm_maskz_fcmul_round_sch(U, A, B, R)
+
 #undef __DEFAULT_FN_ATTRS128
 #undef __DEFAULT_FN_ATTRS256
 #undef __DEFAULT_FN_ATTRS512
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512ifmaintrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512ifmaintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512ifmaintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512ifmaintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512ifmavlintrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512ifmavlintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512ifmavlintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512ifmavlintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512pfintrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512pfintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512pfintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512pfintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512vbmi2intrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512vbmi2intrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512vbmi2intrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512vbmi2intrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512vbmiintrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512vbmiintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512vbmiintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512vbmiintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512vbmivlintrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512vbmivlintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512vbmivlintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512vbmivlintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512vlbf16intrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512vlbf16intrin.h
similarity index 90%
copy from darwin-x86/lib64/clang/14.0.1/include/avx512vlbf16intrin.h
copy to linux-x86/lib64/clang/14.0.2/include/avx512vlbf16intrin.h
index 1b1a744..6a5a860 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/avx512vlbf16intrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/avx512vlbf16intrin.h
@@ -425,8 +425,20 @@
 /// \headerfile <x86intrin.h>
 ///
 /// \param __A
+///    A 128-bit vector of [4 x bfloat].
+/// \returns A 128-bit vector of [4 x float] come from conversion of __A
+static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_cvtpbh_ps(__m128bh __A) {
+  return _mm_castsi128_ps(
+      (__m128i)_mm_slli_epi32((__m128i)_mm_cvtepi16_epi32((__m128i)__A), 16));
+}
+
+/// Convert Packed BF16 Data to Packed float Data.
+///
+/// \headerfile <x86intrin.h>
+///
+/// \param __A
 ///    A 128-bit vector of [8 x bfloat].
-/// \returns A 256-bit vector of [8 x float] come from convertion of __A
+/// \returns A 256-bit vector of [8 x float] come from conversion of __A
 static __inline__ __m256 __DEFAULT_FN_ATTRS256 _mm256_cvtpbh_ps(__m128bh __A) {
   return _mm256_castsi256_ps((__m256i)_mm256_slli_epi32(
       (__m256i)_mm256_cvtepi16_epi32((__m128i)__A), 16));
@@ -437,11 +449,27 @@
 /// \headerfile <x86intrin.h>
 ///
 /// \param __U
+///    A 4-bit mask. Elements are zeroed out when the corresponding mask
+///    bit is not set.
+/// \param __A
+///    A 128-bit vector of [4 x bfloat].
+/// \returns A 128-bit vector of [4 x float] come from conversion of __A
+static __inline__ __m128 __DEFAULT_FN_ATTRS128
+_mm_maskz_cvtpbh_ps(__mmask8 __U, __m128bh __A) {
+  return _mm_castsi128_ps((__m128i)_mm_slli_epi32(
+      (__m128i)_mm_maskz_cvtepi16_epi32((__mmask8)__U, (__m128i)__A), 16));
+}
+
+/// Convert Packed BF16 Data to Packed float Data using zeroing mask.
+///
+/// \headerfile <x86intrin.h>
+///
+/// \param __U
 ///    A 8-bit mask. Elements are zeroed out when the corresponding mask
 ///    bit is not set.
 /// \param __A
 ///    A 128-bit vector of [8 x bfloat].
-/// \returns A 256-bit vector of [8 x float] come from convertion of __A
+/// \returns A 256-bit vector of [8 x float] come from conversion of __A
 static __inline__ __m256 __DEFAULT_FN_ATTRS256
 _mm256_maskz_cvtpbh_ps(__mmask8 __U, __m128bh __A) {
   return _mm256_castsi256_ps((__m256i)_mm256_slli_epi32(
@@ -453,6 +481,26 @@
 /// \headerfile <x86intrin.h>
 ///
 /// \param __S
+///    A 128-bit vector of [4 x float]. Elements are copied from __S when
+///     the corresponding mask bit is not set.
+/// \param __U
+///    A 4-bit mask. Elements are zeroed out when the corresponding mask
+///    bit is not set.
+/// \param __A
+///    A 128-bit vector of [4 x bfloat].
+/// \returns A 128-bit vector of [4 x float] come from conversion of __A
+static __inline__ __m128 __DEFAULT_FN_ATTRS128
+_mm_mask_cvtpbh_ps(__m128 __S, __mmask8 __U, __m128bh __A) {
+  return _mm_castsi128_ps((__m128i)_mm_mask_slli_epi32(
+      (__m128i)__S, (__mmask8)__U, (__m128i)_mm_cvtepi16_epi32((__m128i)__A),
+      16));
+}
+
+/// Convert Packed BF16 Data to Packed float Data using merging mask.
+///
+/// \headerfile <x86intrin.h>
+///
+/// \param __S
 ///    A 256-bit vector of [8 x float]. Elements are copied from __S when
 ///     the corresponding mask bit is not set.
 /// \param __U
@@ -460,7 +508,7 @@
 ///    bit is not set.
 /// \param __A
 ///    A 128-bit vector of [8 x bfloat].
-/// \returns A 256-bit vector of [8 x float] come from convertion of __A
+/// \returns A 256-bit vector of [8 x float] come from conversion of __A
 static __inline__ __m256 __DEFAULT_FN_ATTRS256
 _mm256_mask_cvtpbh_ps(__m256 __S, __mmask8 __U, __m128bh __A) {
   return _mm256_castsi256_ps((__m256i)_mm256_mask_slli_epi32(
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512vlbitalgintrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512vlbitalgintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512vlbitalgintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512vlbitalgintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512vlbwintrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512vlbwintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512vlbwintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512vlbwintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512vlcdintrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512vlcdintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512vlcdintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512vlcdintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512vldqintrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512vldqintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512vldqintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512vldqintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avx512vlfp16intrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512vlfp16intrin.h
similarity index 96%
copy from darwin-x86/lib64/clang/14.0.1/include/avx512vlfp16intrin.h
copy to linux-x86/lib64/clang/14.0.2/include/avx512vlfp16intrin.h
index b8cd554..3d27853 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/avx512vlfp16intrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/avx512vlfp16intrin.h
@@ -52,6 +52,16 @@
 }
 
 static __inline __m256h __DEFAULT_FN_ATTRS256
+_mm256_set1_pch(_Float16 _Complex h) {
+  return (__m256h)_mm256_set1_ps(__builtin_bit_cast(float, h));
+}
+
+static __inline __m128h __DEFAULT_FN_ATTRS128
+_mm_set1_pch(_Float16 _Complex h) {
+  return (__m128h)_mm_set1_ps(__builtin_bit_cast(float, h));
+}
+
+static __inline __m256h __DEFAULT_FN_ATTRS256
 _mm256_set_ph(_Float16 __h1, _Float16 __h2, _Float16 __h3, _Float16 __h4,
               _Float16 __h5, _Float16 __h6, _Float16 __h7, _Float16 __h8,
               _Float16 __h9, _Float16 __h10, _Float16 __h11, _Float16 __h12,
@@ -1815,57 +1825,57 @@
 static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fcmadd_pch(__m128h __A,
                                                                __m128h __B,
                                                                __m128h __C) {
-  return (__m128h)__builtin_ia32_vfcmaddcph128_mask((__v4sf)__C, (__v4sf)__A,
-                                                    (__v4sf)__B, (__mmask8)-1);
+  return (__m128h)__builtin_ia32_vfcmaddcph128_mask((__v4sf)__A, (__v4sf)__B,
+                                                    (__v4sf)__C, (__mmask8)-1);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128
 _mm_mask_fcmadd_pch(__m128h __A, __mmask8 __U, __m128h __B, __m128h __C) {
   return (__m128h)__builtin_ia32_selectps_128(
       __U,
-      __builtin_ia32_vfcmaddcph128_mask((__v4sf)__C, (__v4sf)(__m128h)__A,
-                                        (__v4sf)__B, (__mmask8)__U),
+      __builtin_ia32_vfcmaddcph128_mask((__v4sf)__A, (__v4sf)(__m128h)__B,
+                                        (__v4sf)__C, (__mmask8)__U),
       (__v4sf)__A);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128
 _mm_mask3_fcmadd_pch(__m128h __A, __m128h __B, __m128h __C, __mmask8 __U) {
-  return (__m128h)__builtin_ia32_vfcmaddcph128_mask((__v4sf)__C, (__v4sf)__A,
-                                                    (__v4sf)__B, (__mmask8)__U);
+  return (__m128h)__builtin_ia32_vfcmaddcph128_mask((__v4sf)__A, (__v4sf)__B,
+                                                    (__v4sf)__C, (__mmask8)__U);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128
 _mm_maskz_fcmadd_pch(__mmask8 __U, __m128h __A, __m128h __B, __m128h __C) {
   return (__m128h)__builtin_ia32_vfcmaddcph128_maskz(
-      (__v4sf)__C, (__v4sf)__A, (__v4sf)__B, (__mmask8)__U);
+      (__v4sf)__A, (__v4sf)__B, (__v4sf)__C, (__mmask8)__U);
 }
 
 static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_fcmadd_pch(__m256h __A,
                                                                   __m256h __B,
                                                                   __m256h __C) {
-  return (__m256h)__builtin_ia32_vfcmaddcph256_mask((__v8sf)__C, (__v8sf)__A,
-                                                    (__v8sf)__B, (__mmask8)-1);
+  return (__m256h)__builtin_ia32_vfcmaddcph256_mask((__v8sf)__A, (__v8sf)__B,
+                                                    (__v8sf)__C, (__mmask8)-1);
 }
 
 static __inline__ __m256h __DEFAULT_FN_ATTRS256
 _mm256_mask_fcmadd_pch(__m256h __A, __mmask8 __U, __m256h __B, __m256h __C) {
   return (__m256h)__builtin_ia32_selectps_256(
       __U,
-      __builtin_ia32_vfcmaddcph256_mask((__v8sf)__C, (__v8sf)__A, (__v8sf)__B,
+      __builtin_ia32_vfcmaddcph256_mask((__v8sf)__A, (__v8sf)__B, (__v8sf)__C,
                                         (__mmask8)__U),
       (__v8sf)__A);
 }
 
 static __inline__ __m256h __DEFAULT_FN_ATTRS256
 _mm256_mask3_fcmadd_pch(__m256h __A, __m256h __B, __m256h __C, __mmask8 __U) {
-  return (__m256h)__builtin_ia32_vfcmaddcph256_mask((__v8sf)__C, (__v8sf)__A,
-                                                    (__v8sf)__B, (__mmask8)__U);
+  return (__m256h)__builtin_ia32_vfcmaddcph256_mask((__v8sf)__A, (__v8sf)__B,
+                                                    (__v8sf)__C, (__mmask8)__U);
 }
 
 static __inline__ __m256h __DEFAULT_FN_ATTRS256
 _mm256_maskz_fcmadd_pch(__mmask8 __U, __m256h __A, __m256h __B, __m256h __C) {
   return (__m256h)__builtin_ia32_vfcmaddcph256_maskz(
-      (__v8sf)__C, (__v8sf)__A, (__v8sf)__B, (__mmask8)__U);
+      (__v8sf)__A, (__v8sf)__B, (__v8sf)__C, (__mmask8)__U);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fmul_pch(__m128h __A,
@@ -1909,57 +1919,57 @@
 static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_fmadd_pch(__m128h __A,
                                                               __m128h __B,
                                                               __m128h __C) {
-  return (__m128h)__builtin_ia32_vfmaddcph128_mask((__v4sf)__C, (__v4sf)__A,
-                                                   (__v4sf)__B, (__mmask8)-1);
+  return (__m128h)__builtin_ia32_vfmaddcph128_mask((__v4sf)__A, (__v4sf)__B,
+                                                   (__v4sf)__C, (__mmask8)-1);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128
 _mm_mask_fmadd_pch(__m128h __A, __mmask8 __U, __m128h __B, __m128h __C) {
   return (__m128h)__builtin_ia32_selectps_128(
       __U,
-      __builtin_ia32_vfmaddcph128_mask((__v4sf)__C, (__v4sf)__A, (__v4sf)__B,
+      __builtin_ia32_vfmaddcph128_mask((__v4sf)__A, (__v4sf)__B, (__v4sf)__C,
                                        (__mmask8)__U),
       (__v4sf)__A);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128
 _mm_mask3_fmadd_pch(__m128h __A, __m128h __B, __m128h __C, __mmask8 __U) {
-  return (__m128h)__builtin_ia32_vfmaddcph128_mask((__v4sf)__C, (__v4sf)__A,
-                                                   (__v4sf)__B, (__mmask8)__U);
+  return (__m128h)__builtin_ia32_vfmaddcph128_mask((__v4sf)__A, (__v4sf)__B,
+                                                   (__v4sf)__C, (__mmask8)__U);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128
 _mm_maskz_fmadd_pch(__mmask8 __U, __m128h __A, __m128h __B, __m128h __C) {
-  return (__m128h)__builtin_ia32_vfmaddcph128_maskz((__v4sf)__C, (__v4sf)__A,
-                                                    (__v4sf)__B, (__mmask8)__U);
+  return (__m128h)__builtin_ia32_vfmaddcph128_maskz((__v4sf)__A, (__v4sf)__B,
+                                                    (__v4sf)__C, (__mmask8)__U);
 }
 
 static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_fmadd_pch(__m256h __A,
                                                                  __m256h __B,
                                                                  __m256h __C) {
-  return (__m256h)__builtin_ia32_vfmaddcph256_mask((__v8sf)__C, (__v8sf)__A,
-                                                   (__v8sf)__B, (__mmask8)-1);
+  return (__m256h)__builtin_ia32_vfmaddcph256_mask((__v8sf)__A, (__v8sf)__B,
+                                                   (__v8sf)__C, (__mmask8)-1);
 }
 
 static __inline__ __m256h __DEFAULT_FN_ATTRS256
 _mm256_mask_fmadd_pch(__m256h __A, __mmask8 __U, __m256h __B, __m256h __C) {
   return (__m256h)__builtin_ia32_selectps_256(
       __U,
-      __builtin_ia32_vfmaddcph256_mask((__v8sf)__C, (__v8sf)__A, (__v8sf)__B,
+      __builtin_ia32_vfmaddcph256_mask((__v8sf)__A, (__v8sf)__B, (__v8sf)__C,
                                        (__mmask8)__U),
       (__v8sf)__A);
 }
 
 static __inline__ __m256h __DEFAULT_FN_ATTRS256
 _mm256_mask3_fmadd_pch(__m256h __A, __m256h __B, __m256h __C, __mmask8 __U) {
-  return (__m256h)__builtin_ia32_vfmaddcph256_mask((__v8sf)__C, (__v8sf)__A,
-                                                   (__v8sf)__B, (__mmask8)__U);
+  return (__m256h)__builtin_ia32_vfmaddcph256_mask((__v8sf)__A, (__v8sf)__B,
+                                                   (__v8sf)__C, (__mmask8)__U);
 }
 
 static __inline__ __m256h __DEFAULT_FN_ATTRS256
 _mm256_maskz_fmadd_pch(__mmask8 __U, __m256h __A, __m256h __B, __m256h __C) {
-  return (__m256h)__builtin_ia32_vfmaddcph256_maskz((__v8sf)__C, (__v8sf)__A,
-                                                    (__v8sf)__B, (__mmask8)__U);
+  return (__m256h)__builtin_ia32_vfmaddcph256_maskz((__v8sf)__A, (__v8sf)__B,
+                                                    (__v8sf)__C, (__mmask8)__U);
 }
 
 static __inline__ __m128h __DEFAULT_FN_ATTRS128 _mm_mask_blend_ph(__mmask8 __U,
@@ -2037,6 +2047,21 @@
   return __builtin_ia32_reduce_fmin_ph128(__V);
 }
 
+// intrinsics below are alias for f*mul_*ch
+#define _mm_mul_pch(A, B) _mm_fmul_pch(A, B)
+#define _mm_mask_mul_pch(W, U, A, B) _mm_mask_fmul_pch(W, U, A, B)
+#define _mm_maskz_mul_pch(U, A, B) _mm_maskz_fmul_pch(U, A, B)
+#define _mm256_mul_pch(A, B) _mm256_fmul_pch(A, B)
+#define _mm256_mask_mul_pch(W, U, A, B) _mm256_mask_fmul_pch(W, U, A, B)
+#define _mm256_maskz_mul_pch(U, A, B) _mm256_maskz_fmul_pch(U, A, B)
+
+#define _mm_cmul_pch(A, B) _mm_fcmul_pch(A, B)
+#define _mm_mask_cmul_pch(W, U, A, B) _mm_mask_fcmul_pch(W, U, A, B)
+#define _mm_maskz_cmul_pch(U, A, B) _mm_maskz_fcmul_pch(U, A, B)
+#define _mm256_cmul_pch(A, B) _mm256_fcmul_pch(A, B)
+#define _mm256_mask_cmul_pch(W, U, A, B) _mm256_mask_fcmul_pch(W, U, A, B)
+#define _mm256_maskz_cmul_pch(U, A, B) _mm256_maskz_fcmul_pch(U, A, B)
+
 #undef __DEFAULT_FN_ATTRS128
 #undef __DEFAULT_FN_ATTRS256
 
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512vlintrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512vlintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512vlintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512vlintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512vlvbmi2intrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512vlvbmi2intrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512vlvbmi2intrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512vlvbmi2intrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512vlvnniintrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512vlvnniintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512vlvnniintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512vlvnniintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512vlvp2intersectintrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512vlvp2intersectintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512vlvp2intersectintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512vlvp2intersectintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512vnniintrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512vnniintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512vnniintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512vnniintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512vp2intersectintrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512vp2intersectintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512vp2intersectintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512vp2intersectintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512vpopcntdqintrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512vpopcntdqintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512vpopcntdqintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512vpopcntdqintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/avx512vpopcntdqvlintrin.h b/linux-x86/lib64/clang/14.0.2/include/avx512vpopcntdqvlintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avx512vpopcntdqvlintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avx512vpopcntdqvlintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/avxintrin.h b/linux-x86/lib64/clang/14.0.2/include/avxintrin.h
similarity index 99%
copy from darwin-x86/lib64/clang/14.0.1/include/avxintrin.h
copy to linux-x86/lib64/clang/14.0.2/include/avxintrin.h
index 7f4e976..17fe636 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/avxintrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/avxintrin.h
@@ -4748,176 +4748,6 @@
 #define _mm256_extractf128_si256(V, M) \
   ((__m128i)__builtin_ia32_vextractf128_si256((__v8si)(__m256i)(V), (int)(M)))
 
-/* SIMD load ops (unaligned) */
-/// Loads two 128-bit floating-point vectors of [4 x float] from
-///    unaligned memory locations and constructs a 256-bit floating-point vector
-///    of [8 x float] by concatenating the two 128-bit vectors.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to load instructions followed by the
-///   <c> VINSERTF128 </c> instruction.
-///
-/// \param __addr_hi
-///    A pointer to a 128-bit memory location containing 4 consecutive
-///    single-precision floating-point values. These values are to be copied to
-///    bits[255:128] of the result. The address of the memory location does not
-///    have to be aligned.
-/// \param __addr_lo
-///    A pointer to a 128-bit memory location containing 4 consecutive
-///    single-precision floating-point values. These values are to be copied to
-///    bits[127:0] of the result. The address of the memory location does not
-///    have to be aligned.
-/// \returns A 256-bit floating-point vector of [8 x float] containing the
-///    concatenated result.
-static __inline __m256 __DEFAULT_FN_ATTRS
-_mm256_loadu2_m128(float const *__addr_hi, float const *__addr_lo)
-{
-  __m256 __v256 = _mm256_castps128_ps256(_mm_loadu_ps(__addr_lo));
-  return _mm256_insertf128_ps(__v256, _mm_loadu_ps(__addr_hi), 1);
-}
-
-/// Loads two 128-bit floating-point vectors of [2 x double] from
-///    unaligned memory locations and constructs a 256-bit floating-point vector
-///    of [4 x double] by concatenating the two 128-bit vectors.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to load instructions followed by the
-///   <c> VINSERTF128 </c> instruction.
-///
-/// \param __addr_hi
-///    A pointer to a 128-bit memory location containing two consecutive
-///    double-precision floating-point values. These values are to be copied to
-///    bits[255:128] of the result. The address of the memory location does not
-///    have to be aligned.
-/// \param __addr_lo
-///    A pointer to a 128-bit memory location containing two consecutive
-///    double-precision floating-point values. These values are to be copied to
-///    bits[127:0] of the result. The address of the memory location does not
-///    have to be aligned.
-/// \returns A 256-bit floating-point vector of [4 x double] containing the
-///    concatenated result.
-static __inline __m256d __DEFAULT_FN_ATTRS
-_mm256_loadu2_m128d(double const *__addr_hi, double const *__addr_lo)
-{
-  __m256d __v256 = _mm256_castpd128_pd256(_mm_loadu_pd(__addr_lo));
-  return _mm256_insertf128_pd(__v256, _mm_loadu_pd(__addr_hi), 1);
-}
-
-/// Loads two 128-bit integer vectors from unaligned memory locations and
-///    constructs a 256-bit integer vector by concatenating the two 128-bit
-///    vectors.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to load instructions followed by the
-///   <c> VINSERTF128 </c> instruction.
-///
-/// \param __addr_hi
-///    A pointer to a 128-bit memory location containing a 128-bit integer
-///    vector. This vector is to be copied to bits[255:128] of the result. The
-///    address of the memory location does not have to be aligned.
-/// \param __addr_lo
-///    A pointer to a 128-bit memory location containing a 128-bit integer
-///    vector. This vector is to be copied to bits[127:0] of the result. The
-///    address of the memory location does not have to be aligned.
-/// \returns A 256-bit integer vector containing the concatenated result.
-static __inline __m256i __DEFAULT_FN_ATTRS
-_mm256_loadu2_m128i(__m128i_u const *__addr_hi, __m128i_u const *__addr_lo)
-{
-  __m256i __v256 = _mm256_castsi128_si256(_mm_loadu_si128(__addr_lo));
-  return _mm256_insertf128_si256(__v256, _mm_loadu_si128(__addr_hi), 1);
-}
-
-/* SIMD store ops (unaligned) */
-/// Stores the upper and lower 128 bits of a 256-bit floating-point
-///    vector of [8 x float] into two different unaligned memory locations.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VEXTRACTF128 </c> instruction and the
-///   store instructions.
-///
-/// \param __addr_hi
-///    A pointer to a 128-bit memory location. Bits[255:128] of \a __a are to be
-///    copied to this memory location. The address of this memory location does
-///    not have to be aligned.
-/// \param __addr_lo
-///    A pointer to a 128-bit memory location. Bits[127:0] of \a __a are to be
-///    copied to this memory location. The address of this memory location does
-///    not have to be aligned.
-/// \param __a
-///    A 256-bit floating-point vector of [8 x float].
-static __inline void __DEFAULT_FN_ATTRS
-_mm256_storeu2_m128(float *__addr_hi, float *__addr_lo, __m256 __a)
-{
-  __m128 __v128;
-
-  __v128 = _mm256_castps256_ps128(__a);
-  _mm_storeu_ps(__addr_lo, __v128);
-  __v128 = _mm256_extractf128_ps(__a, 1);
-  _mm_storeu_ps(__addr_hi, __v128);
-}
-
-/// Stores the upper and lower 128 bits of a 256-bit floating-point
-///    vector of [4 x double] into two different unaligned memory locations.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VEXTRACTF128 </c> instruction and the
-///   store instructions.
-///
-/// \param __addr_hi
-///    A pointer to a 128-bit memory location. Bits[255:128] of \a __a are to be
-///    copied to this memory location. The address of this memory location does
-///    not have to be aligned.
-/// \param __addr_lo
-///    A pointer to a 128-bit memory location. Bits[127:0] of \a __a are to be
-///    copied to this memory location. The address of this memory location does
-///    not have to be aligned.
-/// \param __a
-///    A 256-bit floating-point vector of [4 x double].
-static __inline void __DEFAULT_FN_ATTRS
-_mm256_storeu2_m128d(double *__addr_hi, double *__addr_lo, __m256d __a)
-{
-  __m128d __v128;
-
-  __v128 = _mm256_castpd256_pd128(__a);
-  _mm_storeu_pd(__addr_lo, __v128);
-  __v128 = _mm256_extractf128_pd(__a, 1);
-  _mm_storeu_pd(__addr_hi, __v128);
-}
-
-/// Stores the upper and lower 128 bits of a 256-bit integer vector into
-///    two different unaligned memory locations.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> VEXTRACTF128 </c> instruction and the
-///   store instructions.
-///
-/// \param __addr_hi
-///    A pointer to a 128-bit memory location. Bits[255:128] of \a __a are to be
-///    copied to this memory location. The address of this memory location does
-///    not have to be aligned.
-/// \param __addr_lo
-///    A pointer to a 128-bit memory location. Bits[127:0] of \a __a are to be
-///    copied to this memory location. The address of this memory location does
-///    not have to be aligned.
-/// \param __a
-///    A 256-bit integer vector.
-static __inline void __DEFAULT_FN_ATTRS
-_mm256_storeu2_m128i(__m128i_u *__addr_hi, __m128i_u *__addr_lo, __m256i __a)
-{
-  __m128i __v128;
-
-  __v128 = _mm256_castsi256_si128(__a);
-  _mm_storeu_si128(__addr_lo, __v128);
-  __v128 = _mm256_extractf128_si256(__a, 1);
-  _mm_storeu_si128(__addr_hi, __v128);
-}
-
 /// Constructs a 256-bit floating-point vector of [8 x float] by
 ///    concatenating two 128-bit floating-point vectors of [4 x float].
 ///
@@ -5047,6 +4877,173 @@
   return (__m256i)_mm256_set_m128i(__hi, __lo);
 }
 
+/* SIMD load ops (unaligned) */
+/// Loads two 128-bit floating-point vectors of [4 x float] from
+///    unaligned memory locations and constructs a 256-bit floating-point vector
+///    of [8 x float] by concatenating the two 128-bit vectors.
+///
+/// \headerfile <x86intrin.h>
+///
+/// This intrinsic corresponds to load instructions followed by the
+///   <c> VINSERTF128 </c> instruction.
+///
+/// \param __addr_hi
+///    A pointer to a 128-bit memory location containing 4 consecutive
+///    single-precision floating-point values. These values are to be copied to
+///    bits[255:128] of the result. The address of the memory location does not
+///    have to be aligned.
+/// \param __addr_lo
+///    A pointer to a 128-bit memory location containing 4 consecutive
+///    single-precision floating-point values. These values are to be copied to
+///    bits[127:0] of the result. The address of the memory location does not
+///    have to be aligned.
+/// \returns A 256-bit floating-point vector of [8 x float] containing the
+///    concatenated result.
+static __inline __m256 __DEFAULT_FN_ATTRS
+_mm256_loadu2_m128(float const *__addr_hi, float const *__addr_lo)
+{
+  return _mm256_set_m128(_mm_loadu_ps(__addr_hi), _mm_loadu_ps(__addr_lo));
+}
+
+/// Loads two 128-bit floating-point vectors of [2 x double] from
+///    unaligned memory locations and constructs a 256-bit floating-point vector
+///    of [4 x double] by concatenating the two 128-bit vectors.
+///
+/// \headerfile <x86intrin.h>
+///
+/// This intrinsic corresponds to load instructions followed by the
+///   <c> VINSERTF128 </c> instruction.
+///
+/// \param __addr_hi
+///    A pointer to a 128-bit memory location containing two consecutive
+///    double-precision floating-point values. These values are to be copied to
+///    bits[255:128] of the result. The address of the memory location does not
+///    have to be aligned.
+/// \param __addr_lo
+///    A pointer to a 128-bit memory location containing two consecutive
+///    double-precision floating-point values. These values are to be copied to
+///    bits[127:0] of the result. The address of the memory location does not
+///    have to be aligned.
+/// \returns A 256-bit floating-point vector of [4 x double] containing the
+///    concatenated result.
+static __inline __m256d __DEFAULT_FN_ATTRS
+_mm256_loadu2_m128d(double const *__addr_hi, double const *__addr_lo)
+{
+  return _mm256_set_m128d(_mm_loadu_pd(__addr_hi), _mm_loadu_pd(__addr_lo));
+}
+
+/// Loads two 128-bit integer vectors from unaligned memory locations and
+///    constructs a 256-bit integer vector by concatenating the two 128-bit
+///    vectors.
+///
+/// \headerfile <x86intrin.h>
+///
+/// This intrinsic corresponds to load instructions followed by the
+///   <c> VINSERTF128 </c> instruction.
+///
+/// \param __addr_hi
+///    A pointer to a 128-bit memory location containing a 128-bit integer
+///    vector. This vector is to be copied to bits[255:128] of the result. The
+///    address of the memory location does not have to be aligned.
+/// \param __addr_lo
+///    A pointer to a 128-bit memory location containing a 128-bit integer
+///    vector. This vector is to be copied to bits[127:0] of the result. The
+///    address of the memory location does not have to be aligned.
+/// \returns A 256-bit integer vector containing the concatenated result.
+static __inline __m256i __DEFAULT_FN_ATTRS
+_mm256_loadu2_m128i(__m128i_u const *__addr_hi, __m128i_u const *__addr_lo)
+{
+   return _mm256_set_m128i(_mm_loadu_si128(__addr_hi), _mm_loadu_si128(__addr_lo));
+}
+
+/* SIMD store ops (unaligned) */
+/// Stores the upper and lower 128 bits of a 256-bit floating-point
+///    vector of [8 x float] into two different unaligned memory locations.
+///
+/// \headerfile <x86intrin.h>
+///
+/// This intrinsic corresponds to the <c> VEXTRACTF128 </c> instruction and the
+///   store instructions.
+///
+/// \param __addr_hi
+///    A pointer to a 128-bit memory location. Bits[255:128] of \a __a are to be
+///    copied to this memory location. The address of this memory location does
+///    not have to be aligned.
+/// \param __addr_lo
+///    A pointer to a 128-bit memory location. Bits[127:0] of \a __a are to be
+///    copied to this memory location. The address of this memory location does
+///    not have to be aligned.
+/// \param __a
+///    A 256-bit floating-point vector of [8 x float].
+static __inline void __DEFAULT_FN_ATTRS
+_mm256_storeu2_m128(float *__addr_hi, float *__addr_lo, __m256 __a)
+{
+  __m128 __v128;
+
+  __v128 = _mm256_castps256_ps128(__a);
+  _mm_storeu_ps(__addr_lo, __v128);
+  __v128 = _mm256_extractf128_ps(__a, 1);
+  _mm_storeu_ps(__addr_hi, __v128);
+}
+
+/// Stores the upper and lower 128 bits of a 256-bit floating-point
+///    vector of [4 x double] into two different unaligned memory locations.
+///
+/// \headerfile <x86intrin.h>
+///
+/// This intrinsic corresponds to the <c> VEXTRACTF128 </c> instruction and the
+///   store instructions.
+///
+/// \param __addr_hi
+///    A pointer to a 128-bit memory location. Bits[255:128] of \a __a are to be
+///    copied to this memory location. The address of this memory location does
+///    not have to be aligned.
+/// \param __addr_lo
+///    A pointer to a 128-bit memory location. Bits[127:0] of \a __a are to be
+///    copied to this memory location. The address of this memory location does
+///    not have to be aligned.
+/// \param __a
+///    A 256-bit floating-point vector of [4 x double].
+static __inline void __DEFAULT_FN_ATTRS
+_mm256_storeu2_m128d(double *__addr_hi, double *__addr_lo, __m256d __a)
+{
+  __m128d __v128;
+
+  __v128 = _mm256_castpd256_pd128(__a);
+  _mm_storeu_pd(__addr_lo, __v128);
+  __v128 = _mm256_extractf128_pd(__a, 1);
+  _mm_storeu_pd(__addr_hi, __v128);
+}
+
+/// Stores the upper and lower 128 bits of a 256-bit integer vector into
+///    two different unaligned memory locations.
+///
+/// \headerfile <x86intrin.h>
+///
+/// This intrinsic corresponds to the <c> VEXTRACTF128 </c> instruction and the
+///   store instructions.
+///
+/// \param __addr_hi
+///    A pointer to a 128-bit memory location. Bits[255:128] of \a __a are to be
+///    copied to this memory location. The address of this memory location does
+///    not have to be aligned.
+/// \param __addr_lo
+///    A pointer to a 128-bit memory location. Bits[127:0] of \a __a are to be
+///    copied to this memory location. The address of this memory location does
+///    not have to be aligned.
+/// \param __a
+///    A 256-bit integer vector.
+static __inline void __DEFAULT_FN_ATTRS
+_mm256_storeu2_m128i(__m128i_u *__addr_hi, __m128i_u *__addr_lo, __m256i __a)
+{
+  __m128i __v128;
+
+  __v128 = _mm256_castsi256_si128(__a);
+  _mm_storeu_si128(__addr_lo, __v128);
+  __v128 = _mm256_extractf128_si256(__a, 1);
+  _mm_storeu_si128(__addr_hi, __v128);
+}
+
 #undef __DEFAULT_FN_ATTRS
 #undef __DEFAULT_FN_ATTRS128
 
diff --git a/linux-x86/lib64/clang/14.0.1/include/avxvnniintrin.h b/linux-x86/lib64/clang/14.0.2/include/avxvnniintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/avxvnniintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/avxvnniintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/bits/stdatomic.h b/linux-x86/lib64/clang/14.0.2/include/bits/stdatomic.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/bits/stdatomic.h
rename to linux-x86/lib64/clang/14.0.2/include/bits/stdatomic.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/bmi2intrin.h b/linux-x86/lib64/clang/14.0.2/include/bmi2intrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/bmi2intrin.h
rename to linux-x86/lib64/clang/14.0.2/include/bmi2intrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/bmiintrin.h b/linux-x86/lib64/clang/14.0.2/include/bmiintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/bmiintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/bmiintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/builtins.h b/linux-x86/lib64/clang/14.0.2/include/builtins.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/builtins.h
rename to linux-x86/lib64/clang/14.0.2/include/builtins.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/cet.h b/linux-x86/lib64/clang/14.0.2/include/cet.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/cet.h
rename to linux-x86/lib64/clang/14.0.2/include/cet.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/cetintrin.h b/linux-x86/lib64/clang/14.0.2/include/cetintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/cetintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/cetintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/cldemoteintrin.h b/linux-x86/lib64/clang/14.0.2/include/cldemoteintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/cldemoteintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/cldemoteintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/clflushoptintrin.h b/linux-x86/lib64/clang/14.0.2/include/clflushoptintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/clflushoptintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/clflushoptintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/clwbintrin.h b/linux-x86/lib64/clang/14.0.2/include/clwbintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/clwbintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/clwbintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/clzerointrin.h b/linux-x86/lib64/clang/14.0.2/include/clzerointrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/clzerointrin.h
rename to linux-x86/lib64/clang/14.0.2/include/clzerointrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/cpuid.h b/linux-x86/lib64/clang/14.0.2/include/cpuid.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/cpuid.h
rename to linux-x86/lib64/clang/14.0.2/include/cpuid.h
diff --git a/linux-x86/lib64/clang/14.0.2/include/crc32intrin.h b/linux-x86/lib64/clang/14.0.2/include/crc32intrin.h
new file mode 100644
index 0000000..a0bd99d
--- /dev/null
+++ b/linux-x86/lib64/clang/14.0.2/include/crc32intrin.h
@@ -0,0 +1,100 @@
+/*===---- crc32intrin.h - SSE4.2 Accumulate CRC32 intrinsics ---------------===
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __CRC32INTRIN_H
+#define __CRC32INTRIN_H
+
+#define __DEFAULT_FN_ATTRS                                                     \
+  __attribute__((__always_inline__, __nodebug__, __target__("crc32")))
+
+/// Adds the unsigned integer operand to the CRC-32C checksum of the
+///    unsigned char operand.
+///
+/// \headerfile <x86intrin.h>
+///
+/// This intrinsic corresponds to the <c> CRC32B </c> instruction.
+///
+/// \param __C
+///    An unsigned integer operand to add to the CRC-32C checksum of operand
+///    \a  __D.
+/// \param __D
+///    An unsigned 8-bit integer operand used to compute the CRC-32C checksum.
+/// \returns The result of adding operand \a __C to the CRC-32C checksum of
+///    operand \a __D.
+static __inline__ unsigned int __DEFAULT_FN_ATTRS
+_mm_crc32_u8(unsigned int __C, unsigned char __D)
+{
+  return __builtin_ia32_crc32qi(__C, __D);
+}
+
+/// Adds the unsigned integer operand to the CRC-32C checksum of the
+///    unsigned short operand.
+///
+/// \headerfile <x86intrin.h>
+///
+/// This intrinsic corresponds to the <c> CRC32W </c> instruction.
+///
+/// \param __C
+///    An unsigned integer operand to add to the CRC-32C checksum of operand
+///    \a __D.
+/// \param __D
+///    An unsigned 16-bit integer operand used to compute the CRC-32C checksum.
+/// \returns The result of adding operand \a __C to the CRC-32C checksum of
+///    operand \a __D.
+static __inline__ unsigned int __DEFAULT_FN_ATTRS
+_mm_crc32_u16(unsigned int __C, unsigned short __D)
+{
+  return __builtin_ia32_crc32hi(__C, __D);
+}
+
+/// Adds the first unsigned integer operand to the CRC-32C checksum of
+///    the second unsigned integer operand.
+///
+/// \headerfile <x86intrin.h>
+///
+/// This intrinsic corresponds to the <c> CRC32L </c> instruction.
+///
+/// \param __C
+///    An unsigned integer operand to add to the CRC-32C checksum of operand
+///    \a __D.
+/// \param __D
+///    An unsigned 32-bit integer operand used to compute the CRC-32C checksum.
+/// \returns The result of adding operand \a __C to the CRC-32C checksum of
+///    operand \a __D.
+static __inline__ unsigned int __DEFAULT_FN_ATTRS
+_mm_crc32_u32(unsigned int __C, unsigned int __D)
+{
+  return __builtin_ia32_crc32si(__C, __D);
+}
+
+#ifdef __x86_64__
+/// Adds the unsigned integer operand to the CRC-32C checksum of the
+///    unsigned 64-bit integer operand.
+///
+/// \headerfile <x86intrin.h>
+///
+/// This intrinsic corresponds to the <c> CRC32Q </c> instruction.
+///
+/// \param __C
+///    An unsigned integer operand to add to the CRC-32C checksum of operand
+///    \a __D.
+/// \param __D
+///    An unsigned 64-bit integer operand used to compute the CRC-32C checksum.
+/// \returns The result of adding operand \a __C to the CRC-32C checksum of
+///    operand \a __D.
+static __inline__ unsigned long long __DEFAULT_FN_ATTRS
+_mm_crc32_u64(unsigned long long __C, unsigned long long __D)
+{
+  return __builtin_ia32_crc32di(__C, __D);
+}
+#endif /* __x86_64__ */
+
+#undef __DEFAULT_FN_ATTRS
+
+#endif /* __CRC32INTRIN_H */
diff --git a/linux-x86/lib64/clang/14.0.1/include/cuda_wrappers/algorithm b/linux-x86/lib64/clang/14.0.2/include/cuda_wrappers/algorithm
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/cuda_wrappers/algorithm
rename to linux-x86/lib64/clang/14.0.2/include/cuda_wrappers/algorithm
diff --git a/linux-x86/lib64/clang/14.0.1/include/cuda_wrappers/complex b/linux-x86/lib64/clang/14.0.2/include/cuda_wrappers/complex
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/cuda_wrappers/complex
rename to linux-x86/lib64/clang/14.0.2/include/cuda_wrappers/complex
diff --git a/linux-x86/lib64/clang/14.0.1/include/cuda_wrappers/new b/linux-x86/lib64/clang/14.0.2/include/cuda_wrappers/new
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/cuda_wrappers/new
rename to linux-x86/lib64/clang/14.0.2/include/cuda_wrappers/new
diff --git a/darwin-x86/lib64/clang/14.0.1/include/emmintrin.h b/linux-x86/lib64/clang/14.0.2/include/emmintrin.h
similarity index 99%
copy from darwin-x86/lib64/clang/14.0.1/include/emmintrin.h
copy to linux-x86/lib64/clang/14.0.2/include/emmintrin.h
index b79a4f1..6e9c303 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/emmintrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/emmintrin.h
@@ -10,6 +10,10 @@
 #ifndef __EMMINTRIN_H
 #define __EMMINTRIN_H
 
+#if !defined(__i386__) && !defined(__x86_64__)
+#error "This header is only meant to be used on x86 and x64 architecture"
+#endif
+
 #include <xmmintrin.h>
 
 typedef double __m128d __attribute__((__vector_size__(16), __aligned__(16)));
diff --git a/linux-x86/lib64/clang/14.0.1/include/enqcmdintrin.h b/linux-x86/lib64/clang/14.0.2/include/enqcmdintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/enqcmdintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/enqcmdintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/f16cintrin.h b/linux-x86/lib64/clang/14.0.2/include/f16cintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/f16cintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/f16cintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/float.h b/linux-x86/lib64/clang/14.0.2/include/float.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/float.h
rename to linux-x86/lib64/clang/14.0.2/include/float.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/fma4intrin.h b/linux-x86/lib64/clang/14.0.2/include/fma4intrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/fma4intrin.h
rename to linux-x86/lib64/clang/14.0.2/include/fma4intrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/fmaintrin.h b/linux-x86/lib64/clang/14.0.2/include/fmaintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/fmaintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/fmaintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/fuzzer/FuzzedDataProvider.h b/linux-x86/lib64/clang/14.0.2/include/fuzzer/FuzzedDataProvider.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/fuzzer/FuzzedDataProvider.h
rename to linux-x86/lib64/clang/14.0.2/include/fuzzer/FuzzedDataProvider.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/fxsrintrin.h b/linux-x86/lib64/clang/14.0.2/include/fxsrintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/fxsrintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/fxsrintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/gfniintrin.h b/linux-x86/lib64/clang/14.0.2/include/gfniintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/gfniintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/gfniintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/hexagon_circ_brev_intrinsics.h b/linux-x86/lib64/clang/14.0.2/include/hexagon_circ_brev_intrinsics.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/hexagon_circ_brev_intrinsics.h
rename to linux-x86/lib64/clang/14.0.2/include/hexagon_circ_brev_intrinsics.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/hexagon_protos.h b/linux-x86/lib64/clang/14.0.2/include/hexagon_protos.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/hexagon_protos.h
rename to linux-x86/lib64/clang/14.0.2/include/hexagon_protos.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/hexagon_types.h b/linux-x86/lib64/clang/14.0.2/include/hexagon_types.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/hexagon_types.h
rename to linux-x86/lib64/clang/14.0.2/include/hexagon_types.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/hresetintrin.h b/linux-x86/lib64/clang/14.0.2/include/hresetintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/hresetintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/hresetintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/htmintrin.h b/linux-x86/lib64/clang/14.0.2/include/htmintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/htmintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/htmintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/htmxlintrin.h b/linux-x86/lib64/clang/14.0.2/include/htmxlintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/htmxlintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/htmxlintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/hvx_hexagon_protos.h b/linux-x86/lib64/clang/14.0.2/include/hvx_hexagon_protos.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/hvx_hexagon_protos.h
rename to linux-x86/lib64/clang/14.0.2/include/hvx_hexagon_protos.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/ia32intrin.h b/linux-x86/lib64/clang/14.0.2/include/ia32intrin.h
similarity index 96%
copy from darwin-x86/lib64/clang/14.0.1/include/ia32intrin.h
copy to linux-x86/lib64/clang/14.0.2/include/ia32intrin.h
index 00138ef..ec8142b 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/ia32intrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/ia32intrin.h
@@ -16,7 +16,7 @@
 
 /* Define the default attributes for the functions in this file. */
 #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
-#define __DEFAULT_FN_ATTRS_SSE42 __attribute__((__always_inline__, __nodebug__, __target__("sse4.2")))
+#define __DEFAULT_FN_ATTRS_CRC32 __attribute__((__always_inline__, __nodebug__, __target__("crc32")))
 
 #if defined(__cplusplus) && (__cplusplus >= 201103L)
 #define __DEFAULT_FN_ATTRS_CAST __attribute__((__always_inline__)) constexpr
@@ -282,7 +282,7 @@
  *  \returns The result of adding operand \a __C to the CRC-32C checksum of
  *     operand \a __D.
  */
-static __inline__ unsigned int __DEFAULT_FN_ATTRS_SSE42
+static __inline__ unsigned int __DEFAULT_FN_ATTRS_CRC32
 __crc32b(unsigned int __C, unsigned char __D)
 {
   return __builtin_ia32_crc32qi(__C, __D);
@@ -303,7 +303,7 @@
  *  \returns The result of adding operand \a __C to the CRC-32C checksum of
  *     operand \a __D.
  */
-static __inline__ unsigned int __DEFAULT_FN_ATTRS_SSE42
+static __inline__ unsigned int __DEFAULT_FN_ATTRS_CRC32
 __crc32w(unsigned int __C, unsigned short __D)
 {
   return __builtin_ia32_crc32hi(__C, __D);
@@ -324,7 +324,7 @@
  *  \returns The result of adding operand \a __C to the CRC-32C checksum of
  *     operand \a __D.
  */
-static __inline__ unsigned int __DEFAULT_FN_ATTRS_SSE42
+static __inline__ unsigned int __DEFAULT_FN_ATTRS_CRC32
 __crc32d(unsigned int __C, unsigned int __D)
 {
   return __builtin_ia32_crc32si(__C, __D);
@@ -346,7 +346,7 @@
  *  \returns The result of adding operand \a __C to the CRC-32C checksum of
  *     operand \a __D.
  */
-static __inline__ unsigned long long __DEFAULT_FN_ATTRS_SSE42
+static __inline__ unsigned long long __DEFAULT_FN_ATTRS_CRC32
 __crc32q(unsigned long long __C, unsigned long long __D)
 {
   return __builtin_ia32_crc32di(__C, __D);
@@ -435,7 +435,7 @@
 
 #undef __DEFAULT_FN_ATTRS
 #undef __DEFAULT_FN_ATTRS_CAST
-#undef __DEFAULT_FN_ATTRS_SSE42
+#undef __DEFAULT_FN_ATTRS_CRC32
 #undef __DEFAULT_FN_ATTRS_CONSTEXPR
 
 #endif /* __IA32INTRIN_H */
diff --git a/darwin-x86/lib64/clang/14.0.1/include/immintrin.h b/linux-x86/lib64/clang/14.0.2/include/immintrin.h
similarity index 96%
copy from darwin-x86/lib64/clang/14.0.1/include/immintrin.h
copy to linux-x86/lib64/clang/14.0.2/include/immintrin.h
index 8a75895..e5174f8 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/immintrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/immintrin.h
@@ -10,6 +10,10 @@
 #ifndef __IMMINTRIN_H
 #define __IMMINTRIN_H
 
+#if !defined(__i386__) && !defined(__x86_64__)
+#error "This header is only meant to be used on x86 and x64 architecture"
+#endif
+
 #include <x86gprintrin.h>
 
 #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
@@ -539,13 +543,13 @@
 #if defined(__i386__) || defined(__x86_64__)
 static __inline__ long __DEFAULT_FN_ATTRS
 _InterlockedExchange_HLEAcquire(long volatile *_Target, long _Value) {
-  __asm__ __volatile__(".byte 0xf2 ; lock ; xchg %0, %1"
+  __asm__ __volatile__(".byte 0xf2 ; lock ; xchg {%0, %1|%1, %0}"
                        : "+r" (_Value), "+m" (*_Target) :: "memory");
   return _Value;
 }
 static __inline__ long __DEFAULT_FN_ATTRS
 _InterlockedExchange_HLERelease(long volatile *_Target, long _Value) {
-  __asm__ __volatile__(".byte 0xf3 ; lock ; xchg %0, %1"
+  __asm__ __volatile__(".byte 0xf3 ; lock ; xchg {%0, %1|%1, %0}"
                        : "+r" (_Value), "+m" (*_Target) :: "memory");
   return _Value;
 }
@@ -553,13 +557,13 @@
 #if defined(__x86_64__)
 static __inline__ __int64 __DEFAULT_FN_ATTRS
 _InterlockedExchange64_HLEAcquire(__int64 volatile *_Target, __int64 _Value) {
-  __asm__ __volatile__(".byte 0xf2 ; lock ; xchg %0, %1"
+  __asm__ __volatile__(".byte 0xf2 ; lock ; xchg {%0, %1|%1, %0}"
                        : "+r" (_Value), "+m" (*_Target) :: "memory");
   return _Value;
 }
 static __inline__ __int64 __DEFAULT_FN_ATTRS
 _InterlockedExchange64_HLERelease(__int64 volatile *_Target, __int64 _Value) {
-  __asm__ __volatile__(".byte 0xf3 ; lock ; xchg %0, %1"
+  __asm__ __volatile__(".byte 0xf3 ; lock ; xchg {%0, %1|%1, %0}"
                        : "+r" (_Value), "+m" (*_Target) :: "memory");
   return _Value;
 }
@@ -571,7 +575,7 @@
 static __inline__ long __DEFAULT_FN_ATTRS
 _InterlockedCompareExchange_HLEAcquire(long volatile *_Destination,
                               long _Exchange, long _Comparand) {
-  __asm__ __volatile__(".byte 0xf2 ; lock ; cmpxchg %2, %1"
+  __asm__ __volatile__(".byte 0xf2 ; lock ; cmpxchg {%2, %1|%1, %2}"
                        : "+a" (_Comparand), "+m" (*_Destination)
                        : "r" (_Exchange) : "memory");
   return _Comparand;
@@ -579,7 +583,7 @@
 static __inline__ long __DEFAULT_FN_ATTRS
 _InterlockedCompareExchange_HLERelease(long volatile *_Destination,
                               long _Exchange, long _Comparand) {
-  __asm__ __volatile__(".byte 0xf3 ; lock ; cmpxchg %2, %1"
+  __asm__ __volatile__(".byte 0xf3 ; lock ; cmpxchg {%2, %1|%1, %2}"
                        : "+a" (_Comparand), "+m" (*_Destination)
                        : "r" (_Exchange) : "memory");
   return _Comparand;
@@ -589,7 +593,7 @@
 static __inline__ __int64 __DEFAULT_FN_ATTRS
 _InterlockedCompareExchange64_HLEAcquire(__int64 volatile *_Destination,
                               __int64 _Exchange, __int64 _Comparand) {
-  __asm__ __volatile__(".byte 0xf2 ; lock ; cmpxchg %2, %1"
+  __asm__ __volatile__(".byte 0xf2 ; lock ; cmpxchg {%2, %1|%1, %2}"
                        : "+a" (_Comparand), "+m" (*_Destination)
                        : "r" (_Exchange) : "memory");
   return _Comparand;
@@ -597,7 +601,7 @@
 static __inline__ __int64 __DEFAULT_FN_ATTRS
 _InterlockedCompareExchange64_HLERelease(__int64 volatile *_Destination,
                               __int64 _Exchange, __int64 _Comparand) {
-  __asm__ __volatile__(".byte 0xf3 ; lock ; cmpxchg %2, %1"
+  __asm__ __volatile__(".byte 0xf3 ; lock ; cmpxchg {%2, %1|%1, %2}"
                        : "+a" (_Comparand), "+m" (*_Destination)
                        : "r" (_Exchange) : "memory");
   return _Comparand;
diff --git a/darwin-x86/lib64/clang/14.0.1/include/intrin.h b/linux-x86/lib64/clang/14.0.2/include/intrin.h
similarity index 91%
copy from darwin-x86/lib64/clang/14.0.1/include/intrin.h
copy to linux-x86/lib64/clang/14.0.2/include/intrin.h
index b75ee3b..02e66d0 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/intrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/intrin.h
@@ -57,16 +57,11 @@
 void __addfsdword(unsigned long, unsigned long);
 void __addfsword(unsigned long, unsigned short);
 void __code_seg(const char *);
-static __inline__
 void __cpuid(int[4], int);
-static __inline__
 void __cpuidex(int[4], int, int);
-static __inline__
 __int64 __emul(int, int);
-static __inline__
 unsigned __int64 __emulu(unsigned int, unsigned int);
 unsigned int __getcallerseflags(void);
-static __inline__
 void __halt(void);
 unsigned char __inbyte(unsigned short);
 void __inbytestring(unsigned short, unsigned char *, unsigned long);
@@ -82,13 +77,9 @@
 void __lidt(void *);
 unsigned __int64 __ll_lshift(unsigned __int64, int);
 __int64 __ll_rshift(__int64, int);
-static __inline__
 void __movsb(unsigned char *, unsigned char const *, size_t);
-static __inline__
 void __movsd(unsigned long *, unsigned long const *, size_t);
-static __inline__
 void __movsw(unsigned short *, unsigned short const *, size_t);
-static __inline__
 void __nop(void);
 void __nvreg_restore_fence(void);
 void __nvreg_save_fence(void);
@@ -105,25 +96,17 @@
 unsigned long __readcr8(void);
 unsigned int __readdr(unsigned int);
 #ifdef __i386__
-static __inline__
 unsigned char __readfsbyte(unsigned long);
-static __inline__
 unsigned short __readfsword(unsigned long);
-static __inline__
 unsigned long __readfsdword(unsigned long);
-static __inline__
 unsigned __int64 __readfsqword(unsigned long);
 #endif
-static __inline__
 unsigned __int64 __readmsr(unsigned long);
 unsigned __int64 __readpmc(unsigned long);
 unsigned long __segmentlimit(unsigned long);
 void __sidt(void *);
-static __inline__
 void __stosb(unsigned char *, unsigned char, size_t);
-static __inline__
 void __stosd(unsigned long *, unsigned long, size_t);
-static __inline__
 void __stosw(unsigned short *, unsigned short, size_t);
 void __svm_clgi(void);
 void __svm_invlpga(void *, int);
@@ -138,7 +121,6 @@
 void __vmx_vmptrst(unsigned __int64 *);
 void __wbinvd(void);
 void __writecr0(unsigned int);
-static __inline__
 void __writecr3(unsigned __INTPTR_TYPE__);
 void __writecr4(unsigned int);
 void __writecr8(unsigned int);
@@ -148,11 +130,8 @@
 void __writefsqword(unsigned long, unsigned __int64);
 void __writefsword(unsigned long, unsigned short);
 void __writemsr(unsigned long, unsigned __int64);
-static __inline__
 void *_AddressOfReturnAddress(void);
-static __inline__
 unsigned char _BitScanForward(unsigned long *_Index, unsigned long _Mask);
-static __inline__
 unsigned char _BitScanReverse(unsigned long *_Index, unsigned long _Mask);
 unsigned char _bittest(long const *, long);
 unsigned char _bittestandcomplement(long *, long);
@@ -171,12 +150,8 @@
 long _InterlockedExchangeAdd_HLERelease(long volatile *, long);
 __int64 _InterlockedExchangeAdd64_HLEAcquire(__int64 volatile *, __int64);
 __int64 _InterlockedExchangeAdd64_HLERelease(__int64 volatile *, __int64);
-static __inline__ void
-__attribute__((__deprecated__("use other intrinsics or C++11 atomics instead")))
-_ReadBarrier(void);
-static __inline__ void
-__attribute__((__deprecated__("use other intrinsics or C++11 atomics instead")))
-_ReadWriteBarrier(void);
+void _ReadBarrier(void);
+void _ReadWriteBarrier(void);
 unsigned int _rorx_u32(unsigned int, const unsigned int);
 int _sarx_i32(int, unsigned int);
 #if __STDC_HOSTED__
@@ -187,9 +162,7 @@
 void _Store_HLERelease(long volatile *, long);
 void _Store64_HLERelease(__int64 volatile *, __int64);
 void _StorePointer_HLERelease(void *volatile *, void *);
-static __inline__ void
-__attribute__((__deprecated__("use other intrinsics or C++11 atomics instead")))
-_WriteBarrier(void);
+void _WriteBarrier(void);
 unsigned __int32 xbegin(void);
 void _xend(void);
 
@@ -199,19 +172,14 @@
 void __addgsdword(unsigned long, unsigned long);
 void __addgsqword(unsigned long, unsigned __int64);
 void __addgsword(unsigned long, unsigned short);
-static __inline__
 void __faststorefence(void);
 void __incgsbyte(unsigned long);
 void __incgsdword(unsigned long);
 void __incgsqword(unsigned long);
 void __incgsword(unsigned long);
-static __inline__
 void __movsq(unsigned long long *, unsigned long long const *, size_t);
-static __inline__
 unsigned char __readgsbyte(unsigned long);
-static __inline__
 unsigned long __readgsdword(unsigned long);
-static __inline__
 unsigned __int64 __readgsqword(unsigned long);
 unsigned short __readgsword(unsigned long);
 unsigned __int64 __shiftleft128(unsigned __int64 _LowPart,
@@ -220,7 +188,6 @@
 unsigned __int64 __shiftright128(unsigned __int64 _LowPart,
                                  unsigned __int64 _HighPart,
                                  unsigned char _Shift);
-static __inline__
 void __stosq(unsigned __int64 *, unsigned __int64, size_t);
 unsigned char __vmx_on(unsigned __int64 *);
 unsigned char __vmx_vmclear(unsigned __int64 *);
@@ -267,13 +234,9 @@
 __int64 _sarx_i64(__int64, unsigned int);
 unsigned __int64 _shlx_u64(unsigned __int64, unsigned int);
 unsigned __int64 _shrx_u64(unsigned __int64, unsigned int);
-static __inline__
 __int64 __mulh(__int64, __int64);
-static __inline__
 unsigned __int64 __umulh(unsigned __int64, unsigned __int64);
-static __inline__
 __int64 _mul128(__int64, __int64, __int64*);
-static __inline__
 unsigned __int64 _umul128(unsigned __int64,
                           unsigned __int64,
                           unsigned __int64*);
@@ -282,29 +245,19 @@
 
 #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__)
 
-static __inline__
 unsigned char _BitScanForward64(unsigned long *_Index, unsigned __int64 _Mask);
-static __inline__
 unsigned char _BitScanReverse64(unsigned long *_Index, unsigned __int64 _Mask);
 
 #endif
 
 #if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__)
-static __inline__
 __int64 _InterlockedDecrement64(__int64 volatile *_Addend);
-static __inline__
 __int64 _InterlockedExchange64(__int64 volatile *_Target, __int64 _Value);
-static __inline__
 __int64 _InterlockedExchangeAdd64(__int64 volatile *_Addend, __int64 _Value);
-static __inline__
 __int64 _InterlockedExchangeSub64(__int64 volatile *_Subend, __int64 _Value);
-static __inline__
 __int64 _InterlockedIncrement64(__int64 volatile *_Addend);
-static __inline__
 __int64 _InterlockedOr64(__int64 volatile *_Value, __int64 _Mask);
-static __inline__
 __int64 _InterlockedXor64(__int64 volatile *_Value, __int64 _Mask);
-static __inline__
 __int64 _InterlockedAnd64(__int64 volatile *_Value, __int64 _Mask);
 
 #endif
@@ -493,57 +446,68 @@
 |* movs, stos
 \*----------------------------------------------------------------------------*/
 #if defined(__i386__) || defined(__x86_64__)
-static __inline__ void __DEFAULT_FN_ATTRS
-__movsb(unsigned char *__dst, unsigned char const *__src, size_t __n) {
+static __inline__ void __DEFAULT_FN_ATTRS __movsb(unsigned char *__dst,
+                                                  unsigned char const *__src,
+                                                  size_t __n) {
 #if defined(__x86_64__)
   __asm__ __volatile__("rep movsb"
                        : "+D"(__dst), "+S"(__src), "+c"(__n)
                        :
                        : "memory");
 #else
-  __asm__ __volatile__("xchg %%esi, %1\nrep movsb\nxchg %%esi, %1"
+  __asm__ __volatile__("xchg {%%esi, %1|%1, esi}\n"
+                       "rep movsb\n"
+                       "xchg {%%esi, %1|%1, esi}"
                        : "+D"(__dst), "+r"(__src), "+c"(__n)
                        :
                        : "memory");
 #endif
 }
-static __inline__ void __DEFAULT_FN_ATTRS
-__movsd(unsigned long *__dst, unsigned long const *__src, size_t __n) {
+static __inline__ void __DEFAULT_FN_ATTRS __movsd(unsigned long *__dst,
+                                                  unsigned long const *__src,
+                                                  size_t __n) {
 #if defined(__x86_64__)
-  __asm__ __volatile__("rep movsl"
+  __asm__ __volatile__("rep movs{l|d}"
                        : "+D"(__dst), "+S"(__src), "+c"(__n)
                        :
                        : "memory");
 #else
-  __asm__ __volatile__("xchg %%esi, %1\nrep movsl\nxchg %%esi, %1"
+  __asm__ __volatile__("xchg {%%esi, %1|%1, esi}\n"
+                       "rep movs{l|d}\n"
+                       "xchg {%%esi, %1|%1, esi}"
                        : "+D"(__dst), "+r"(__src), "+c"(__n)
                        :
                        : "memory");
 #endif
 }
-static __inline__ void __DEFAULT_FN_ATTRS
-__movsw(unsigned short *__dst, unsigned short const *__src, size_t __n) {
+static __inline__ void __DEFAULT_FN_ATTRS __movsw(unsigned short *__dst,
+                                                  unsigned short const *__src,
+                                                  size_t __n) {
 #if defined(__x86_64__)
   __asm__ __volatile__("rep movsw"
                        : "+D"(__dst), "+S"(__src), "+c"(__n)
                        :
                        : "memory");
 #else
-  __asm__ __volatile__("xchg %%esi, %1\nrep movsw\nxchg %%esi, %1"
+  __asm__ __volatile__("xchg {%%esi, %1|%1, esi}\n"
+                       "rep movsw\n"
+                       "xchg {%%esi, %1|%1, esi}"
                        : "+D"(__dst), "+r"(__src), "+c"(__n)
                        :
                        : "memory");
 #endif
 }
-static __inline__ void __DEFAULT_FN_ATTRS
-__stosd(unsigned long *__dst, unsigned long __x, size_t __n) {
-  __asm__ __volatile__("rep stosl"
+static __inline__ void __DEFAULT_FN_ATTRS __stosd(unsigned long *__dst,
+                                                  unsigned long __x,
+                                                  size_t __n) {
+  __asm__ __volatile__("rep stos{l|d}"
                        : "+D"(__dst), "+c"(__n)
                        : "a"(__x)
                        : "memory");
 }
-static __inline__ void __DEFAULT_FN_ATTRS
-__stosw(unsigned short *__dst, unsigned short __x, size_t __n) {
+static __inline__ void __DEFAULT_FN_ATTRS __stosw(unsigned short *__dst,
+                                                  unsigned short __x,
+                                                  size_t __n) {
   __asm__ __volatile__("rep stosw"
                        : "+D"(__dst), "+c"(__n)
                        : "a"(__x)
@@ -551,15 +515,16 @@
 }
 #endif
 #ifdef __x86_64__
-static __inline__ void __DEFAULT_FN_ATTRS
-__movsq(unsigned long long *__dst, unsigned long long const *__src, size_t __n) {
+static __inline__ void __DEFAULT_FN_ATTRS __movsq(
+    unsigned long long *__dst, unsigned long long const *__src, size_t __n) {
   __asm__ __volatile__("rep movsq"
                        : "+D"(__dst), "+S"(__src), "+c"(__n)
                        :
                        : "memory");
 }
-static __inline__ void __DEFAULT_FN_ATTRS
-__stosq(unsigned __int64 *__dst, unsigned __int64 __x, size_t __n) {
+static __inline__ void __DEFAULT_FN_ATTRS __stosq(unsigned __int64 *__dst,
+                                                  unsigned __int64 __x,
+                                                  size_t __n) {
   __asm__ __volatile__("rep stosq" : "+D"(__dst), "+c"(__n) : "a"(__x)
                        : "memory");
 }
@@ -577,9 +542,9 @@
 #else
 /* x86-64 uses %rbx as the base register, so preserve it. */
 #define __cpuid_count(__leaf, __count, __eax, __ebx, __ecx, __edx)             \
-  __asm("xchgq %%rbx,%q1\n"                                                    \
+  __asm("xchg{q} {%%rbx, %q1|%q1, rbx}\n"                                      \
         "cpuid\n"                                                              \
-        "xchgq %%rbx,%q1"                                                      \
+        "xchg{q} {%%rbx, %q1|%q1, rbx}"                                        \
         : "=a"(__eax), "=r"(__ebx), "=c"(__ecx), "=d"(__edx)                   \
         : "0"(__leaf), "2"(__count))
 #endif
@@ -637,16 +602,19 @@
 }
 #endif
 
-static __inline__ unsigned __LPTRINT_TYPE__ __DEFAULT_FN_ATTRS
-__readcr3(void) {
+static __inline__ unsigned __LPTRINT_TYPE__ __DEFAULT_FN_ATTRS __readcr3(void) {
   unsigned __LPTRINT_TYPE__ __cr3_val;
-  __asm__ __volatile__ ("mov %%cr3, %0" : "=r"(__cr3_val) : : "memory");
+  __asm__ __volatile__(
+                       "mov {%%cr3, %0|%0, cr3}"
+                       : "=r"(__cr3_val)
+                       :
+                       : "memory");
   return __cr3_val;
 }
 
 static __inline__ void __DEFAULT_FN_ATTRS
 __writecr3(unsigned __INTPTR_TYPE__ __cr3_val) {
-  __asm__ ("mov %0, %%cr3" : : "r"(__cr3_val) : "memory");
+  __asm__ ("mov {%0, %%cr3|cr3, %0}" : : "r"(__cr3_val) : "memory");
 }
 
 #ifdef __cplusplus
diff --git a/linux-x86/lib64/clang/14.0.1/include/inttypes.h b/linux-x86/lib64/clang/14.0.2/include/inttypes.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/inttypes.h
rename to linux-x86/lib64/clang/14.0.2/include/inttypes.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/invpcidintrin.h b/linux-x86/lib64/clang/14.0.2/include/invpcidintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/invpcidintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/invpcidintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/iso646.h b/linux-x86/lib64/clang/14.0.2/include/iso646.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/iso646.h
rename to linux-x86/lib64/clang/14.0.2/include/iso646.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/keylockerintrin.h b/linux-x86/lib64/clang/14.0.2/include/keylockerintrin.h
similarity index 97%
rename from linux-x86/lib64/clang/14.0.1/include/keylockerintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/keylockerintrin.h
index 68b0a56..ad9428e 100644
--- a/linux-x86/lib64/clang/14.0.1/include/keylockerintrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/keylockerintrin.h
@@ -99,7 +99,7 @@
 }
 
 /// Wrap a 128-bit AES key from __key into a key handle and output in
-/// ((__m128i*)__h) to ((__m128i*)__h) + 5  and a 32-bit value as return.
+/// ((__m128i*)__h) to ((__m128i*)__h) + 2  and a 32-bit value as return.
 /// The explicit source operand __htype specifies handle restrictions.
 ///
 /// \headerfile <x86intrin.h>
@@ -120,9 +120,6 @@
 /// MEM[__h+127:__h] := Handle[127:0]   // AAD
 /// MEM[__h+255:__h+128] := Handle[255:128] // Integrity Tag
 /// MEM[__h+383:__h+256] := Handle[383:256] // CipherText
-/// MEM[__h+511:__h+384] := 0 // Reserved for future usage
-/// MEM[__h+639:__h+512] := 0 // Reserved for future usage
-/// MEM[__h+767:__h+640] := 0 // Reserved for future usage
 /// OF := 0
 /// SF := 0
 /// ZF := 0
@@ -136,7 +133,7 @@
 }
 
 /// Wrap a 256-bit AES key from __key_hi:__key_lo into a key handle, then
-/// output handle in ((__m128i*)__h) to ((__m128i*)__h) + 6 and
+/// output handle in ((__m128i*)__h) to ((__m128i*)__h) + 3 and
 /// a 32-bit value as return.
 /// The explicit source operand __htype specifies handle restrictions.
 ///
@@ -160,9 +157,6 @@
 /// MEM[__h+255:__h+128] := Handle[255:128] // Tag
 /// MEM[__h+383:__h+256] := Handle[383:256] // CipherText[127:0]
 /// MEM[__h+511:__h+384] := Handle[511:384] // CipherText[255:128]
-/// MEM[__h+639:__h+512] := 0 // Reserved for future usage
-/// MEM[__h+767:__h+640] := 0 // Reserved for future usage
-/// MEM[__h+895:__h+768] := 0 Integrity// Reserved for future usage
 /// OF := 0
 /// SF := 0
 /// ZF := 0
diff --git a/linux-x86/lib64/clang/14.0.1/include/limits.h b/linux-x86/lib64/clang/14.0.2/include/limits.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/limits.h
rename to linux-x86/lib64/clang/14.0.2/include/limits.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/lwpintrin.h b/linux-x86/lib64/clang/14.0.2/include/lwpintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/lwpintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/lwpintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/lzcntintrin.h b/linux-x86/lib64/clang/14.0.2/include/lzcntintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/lzcntintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/lzcntintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/mm3dnow.h b/linux-x86/lib64/clang/14.0.2/include/mm3dnow.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/mm3dnow.h
rename to linux-x86/lib64/clang/14.0.2/include/mm3dnow.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/mm_malloc.h b/linux-x86/lib64/clang/14.0.2/include/mm_malloc.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/mm_malloc.h
rename to linux-x86/lib64/clang/14.0.2/include/mm_malloc.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/mmintrin.h b/linux-x86/lib64/clang/14.0.2/include/mmintrin.h
similarity index 99%
copy from darwin-x86/lib64/clang/14.0.1/include/mmintrin.h
copy to linux-x86/lib64/clang/14.0.2/include/mmintrin.h
index 79a8b55..03bac92 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/mmintrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/mmintrin.h
@@ -10,6 +10,10 @@
 #ifndef __MMINTRIN_H
 #define __MMINTRIN_H
 
+#if !defined(__i386__) && !defined(__x86_64__)
+#error "This header is only meant to be used on x86 and x64 architecture"
+#endif
+
 typedef long long __m64 __attribute__((__vector_size__(8), __aligned__(8)));
 
 typedef long long __v1di __attribute__((__vector_size__(8)));
diff --git a/linux-x86/lib64/clang/14.0.1/include/module.modulemap b/linux-x86/lib64/clang/14.0.2/include/module.modulemap
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/module.modulemap
rename to linux-x86/lib64/clang/14.0.2/include/module.modulemap
diff --git a/linux-x86/lib64/clang/14.0.1/include/movdirintrin.h b/linux-x86/lib64/clang/14.0.2/include/movdirintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/movdirintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/movdirintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/msa.h b/linux-x86/lib64/clang/14.0.2/include/msa.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/msa.h
rename to linux-x86/lib64/clang/14.0.2/include/msa.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/mwaitxintrin.h b/linux-x86/lib64/clang/14.0.2/include/mwaitxintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/mwaitxintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/mwaitxintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/nmmintrin.h b/linux-x86/lib64/clang/14.0.2/include/nmmintrin.h
similarity index 81%
copy from darwin-x86/lib64/clang/14.0.1/include/nmmintrin.h
copy to linux-x86/lib64/clang/14.0.2/include/nmmintrin.h
index 672aea4..59fc7ec 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/nmmintrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/nmmintrin.h
@@ -10,6 +10,10 @@
 #ifndef __NMMINTRIN_H
 #define __NMMINTRIN_H
 
+#if !defined(__i386__) && !defined(__x86_64__)
+#error "This header is only meant to be used on x86 and x64 architecture"
+#endif
+
 /* To match expectations of gcc we put the sse4.2 definitions into smmintrin.h,
    just include it now then.  */
 #include <smmintrin.h>
diff --git a/linux-x86/lib64/clang/14.0.1/include/omp-tools.h b/linux-x86/lib64/clang/14.0.2/include/omp-tools.h
similarity index 96%
rename from linux-x86/lib64/clang/14.0.1/include/omp-tools.h
rename to linux-x86/lib64/clang/14.0.2/include/omp-tools.h
index 5d7da6b..5092174 100644
--- a/linux-x86/lib64/clang/14.0.1/include/omp-tools.h
+++ b/linux-x86/lib64/clang/14.0.2/include/omp-tools.h
@@ -108,7 +108,7 @@
     macro (kmp_mutex_impl_queuing, 2)      /* based on some fair policy */           \
     macro (kmp_mutex_impl_speculative, 3)  /* based on HW-supported speculation */
 
-#define FOREACH_OMPT_HOST_EVENT(macro)                                                                                   \
+#define FOREACH_OMPT_EVENT(macro)                                                                                        \
                                                                                                                          \
     /*--- Mandatory Events ---*/                                                                                         \
     macro (ompt_callback_thread_begin,      ompt_callback_thread_begin_t,       1) /* thread begin                    */ \
@@ -121,9 +121,17 @@
     macro (ompt_callback_task_schedule,     ompt_callback_task_schedule_t,      6) /* task schedule                   */ \
     macro (ompt_callback_implicit_task,     ompt_callback_implicit_task_t,      7) /* implicit task                   */ \
                                                                                                                          \
+    macro (ompt_callback_target,            ompt_callback_target_t,             8) /* target                          */ \
+    macro (ompt_callback_target_data_op,    ompt_callback_target_data_op_t,     9) /* target data op                  */ \
+    macro (ompt_callback_target_submit,     ompt_callback_target_submit_t,     10) /* target  submit                  */ \
                                                                                                                          \
     macro (ompt_callback_control_tool,      ompt_callback_control_tool_t,      11) /* control tool                    */ \
                                                                                                                          \
+    macro (ompt_callback_device_initialize, ompt_callback_device_initialize_t, 12) /* device initialize               */ \
+    macro (ompt_callback_device_finalize,   ompt_callback_device_finalize_t,   13) /* device finalize                 */ \
+                                                                                                                         \
+    macro (ompt_callback_device_load,       ompt_callback_device_load_t,       14) /* device load                     */ \
+    macro (ompt_callback_device_unload,     ompt_callback_device_unload_t,     15) /* device unload                   */ \
                                                                                                                          \
     /* Optional Events */                                                                                                \
     macro (ompt_callback_sync_region_wait,  ompt_callback_sync_region_t,       16) /* sync region wait begin or end   */ \
@@ -137,6 +145,7 @@
                                                                                                                          \
     macro (ompt_callback_masked,            ompt_callback_masked_t,            21) /* task at masked begin or end     */ \
                                                                                                                          \
+    macro (ompt_callback_target_map,        ompt_callback_target_map_t,        22) /* target map                      */ \
                                                                                                                          \
     macro (ompt_callback_sync_region,       ompt_callback_sync_region_t,       23) /* sync region begin or end        */ \
                                                                                                                          \
@@ -155,48 +164,11 @@
     macro (ompt_callback_reduction,         ompt_callback_sync_region_t,       31) /* reduction                       */ \
                                                                                                                          \
     macro (ompt_callback_dispatch,          ompt_callback_dispatch_t,          32) /* dispatch of work                */ \
-    macro (ompt_callback_error,             ompt_callback_error_t,             37) /* error                           */
-
-
-#define FOREACH_OMPT_DEVICE_EVENT(macro)                                                                                 \
-    macro (ompt_callback_device_initialize, ompt_callback_device_initialize_t, 12) /* device initialize               */ \
-    macro (ompt_callback_device_finalize,   ompt_callback_device_finalize_t,   13) /* device finalize                 */ \
-                                                                                                                         \
-    macro (ompt_callback_device_load,       ompt_callback_device_load_t,       14) /* device load                     */ \
-    macro (ompt_callback_device_unload,     ompt_callback_device_unload_t,     15) /* device unload                   */ \
-
-
-#define FOREACH_OMPT_NOEMI_EVENT(macro)                                                                                  \
-    macro (ompt_callback_target,            ompt_callback_target_t,             8) /* target                          */ \
-    macro (ompt_callback_target_data_op,    ompt_callback_target_data_op_t,     9) /* target data op                  */ \
-    macro (ompt_callback_target_submit,     ompt_callback_target_submit_t,     10) /* target  submit                  */ \
-    macro (ompt_callback_target_map,        ompt_callback_target_map_t,        22) /* target map                      */ \
-
-
-#define FOREACH_OMPT_EMI_EVENT(macro)                                                                                    \
     macro (ompt_callback_target_emi,        ompt_callback_target_emi_t,        33) /* target                          */ \
     macro (ompt_callback_target_data_op_emi,ompt_callback_target_data_op_emi_t,34) /* target data op                  */ \
     macro (ompt_callback_target_submit_emi, ompt_callback_target_submit_emi_t, 35) /* target submit                   */ \
     macro (ompt_callback_target_map_emi,    ompt_callback_target_map_emi_t,    36) /* target map                      */ \
-
-#define FOREACH_OMPT_50_TARGET_EVENT(macro)                                                                              \
-    FOREACH_OMPT_DEVICE_EVENT(macro)                                                                                     \
-    FOREACH_OMPT_NOEMI_EVENT(macro) 
-
-#define FOREACH_OMPT_51_TARGET_EVENT(macro)                                                                              \
-    FOREACH_OMPT_DEVICE_EVENT(macro)                                                                                     \
-    FOREACH_OMPT_EMI_EVENT(macro) 
-
-#define FOREACH_OMPT_EVENT(macro)                                                                                        \
-    FOREACH_OMPT_HOST_EVENT(macro)                                                                                       \
-    FOREACH_OMPT_DEVICE_EVENT(macro)                                                                                     \
-    FOREACH_OMPT_NOEMI_EVENT(macro)                                                                                      \
-    FOREACH_OMPT_EMI_EVENT(macro)
-
-#define FOREACH_OMPT_51_EVENT(macro)                                                                                     \
-    FOREACH_OMPT_HOST_EVENT(macro)                                                                                       \
-    FOREACH_OMPT_DEVICE_EVENT(macro)                                                                                     \
-    FOREACH_OMPT_EMI_EVENT(macro)
+    macro (ompt_callback_error,             ompt_callback_error_t,             37) /* error                           */
 
 /*****************************************************************************
  * implementation specific types
diff --git a/linux-x86/lib64/clang/14.0.1/include/omp.h b/linux-x86/lib64/clang/14.0.2/include/omp.h
similarity index 96%
rename from linux-x86/lib64/clang/14.0.1/include/omp.h
rename to linux-x86/lib64/clang/14.0.2/include/omp.h
index f2e6345..64bfae3 100644
--- a/linux-x86/lib64/clang/14.0.1/include/omp.h
+++ b/linux-x86/lib64/clang/14.0.2/include/omp.h
@@ -431,14 +431,23 @@
     extern omp_allocator_handle_t __KAI_KMPC_CONVENTION omp_get_default_allocator(void);
 #   ifdef __cplusplus
     extern void *__KAI_KMPC_CONVENTION omp_alloc(size_t size, omp_allocator_handle_t a = omp_null_allocator);
-    extern void *__KAI_KMPC_CONVENTION omp_calloc(size_t nmemb, size_t size, omp_allocator_handle_t a = omp_null_allocator);
+    extern void *__KAI_KMPC_CONVENTION omp_aligned_alloc(size_t align, size_t size,
+                                                         omp_allocator_handle_t a = omp_null_allocator);
+    extern void *__KAI_KMPC_CONVENTION omp_calloc(size_t nmemb, size_t size,
+                                                  omp_allocator_handle_t a = omp_null_allocator);
+    extern void *__KAI_KMPC_CONVENTION omp_aligned_calloc(size_t align, size_t nmemb, size_t size,
+                                                          omp_allocator_handle_t a = omp_null_allocator);
     extern void *__KAI_KMPC_CONVENTION omp_realloc(void *ptr, size_t size,
                                                    omp_allocator_handle_t allocator = omp_null_allocator,
                                                    omp_allocator_handle_t free_allocator = omp_null_allocator);
     extern void __KAI_KMPC_CONVENTION omp_free(void * ptr, omp_allocator_handle_t a = omp_null_allocator);
 #   else
     extern void *__KAI_KMPC_CONVENTION omp_alloc(size_t size, omp_allocator_handle_t a);
+    extern void *__KAI_KMPC_CONVENTION omp_aligned_alloc(size_t align, size_t size,
+                                                         omp_allocator_handle_t a);
     extern void *__KAI_KMPC_CONVENTION omp_calloc(size_t nmemb, size_t size, omp_allocator_handle_t a);
+    extern void *__KAI_KMPC_CONVENTION omp_aligned_calloc(size_t align, size_t nmemb, size_t size,
+                                                          omp_allocator_handle_t a);
     extern void *__KAI_KMPC_CONVENTION omp_realloc(void *ptr, size_t size, omp_allocator_handle_t allocator,
                                                    omp_allocator_handle_t free_allocator);
     extern void __KAI_KMPC_CONVENTION omp_free(void *ptr, omp_allocator_handle_t a);
diff --git a/darwin-x86/lib64/clang/14.0.1/include/opencl-c-base.h b/linux-x86/lib64/clang/14.0.2/include/opencl-c-base.h
similarity index 95%
copy from darwin-x86/lib64/clang/14.0.1/include/opencl-c-base.h
copy to linux-x86/lib64/clang/14.0.2/include/opencl-c-base.h
index f3605c6..9c81ddb 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/opencl-c-base.h
+++ b/linux-x86/lib64/clang/14.0.2/include/opencl-c-base.h
@@ -12,8 +12,8 @@
 // Define extension macros
 
 #if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 200)
-// For SPIR all extensions are supported.
-#if defined(__SPIR__)
+// For SPIR and SPIR-V all extensions are supported.
+#if defined(__SPIR__) || defined(__SPIRV__)
 #define cl_khr_subgroup_extended_types 1
 #define cl_khr_subgroup_non_uniform_vote 1
 #define cl_khr_subgroup_ballot 1
@@ -25,8 +25,27 @@
 #define cl_khr_integer_dot_product 1
 #define __opencl_c_integer_dot_product_input_4x8bit 1
 #define __opencl_c_integer_dot_product_input_4x8bit_packed 1
+#define cl_ext_float_atomics 1
+#ifdef cl_khr_fp16
+#define __opencl_c_ext_fp16_global_atomic_load_store 1
+#define __opencl_c_ext_fp16_local_atomic_load_store 1
+#define __opencl_c_ext_fp16_global_atomic_add 1
+#define __opencl_c_ext_fp16_local_atomic_add 1
+#define __opencl_c_ext_fp16_global_atomic_min_max 1
+#define __opencl_c_ext_fp16_local_atomic_min_max 1
+#endif
+#ifdef cl_khr_fp64
+#define __opencl_c_ext_fp64_global_atomic_add 1
+#define __opencl_c_ext_fp64_local_atomic_add 1
+#define __opencl_c_ext_fp64_global_atomic_min_max 1
+#define __opencl_c_ext_fp64_local_atomic_min_max 1
+#endif
+#define __opencl_c_ext_fp32_global_atomic_add 1
+#define __opencl_c_ext_fp32_local_atomic_add 1
+#define __opencl_c_ext_fp32_global_atomic_min_max 1
+#define __opencl_c_ext_fp32_local_atomic_min_max 1
 
-#endif // defined(__SPIR__)
+#endif // defined(__SPIR__) || defined(__SPIRV__)
 #endif // (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 200)
 
 // Define feature macros for OpenCL C 2.0
@@ -46,8 +65,8 @@
 
 // Define header-only feature macros for OpenCL C 3.0.
 #if (__OPENCL_CPP_VERSION__ == 202100 || __OPENCL_C_VERSION__ == 300)
-// For the SPIR target all features are supported.
-#if defined(__SPIR__)
+// For the SPIR and SPIR-V target all features are supported.
+#if defined(__SPIR__) || defined(__SPIRV__)
 #define __opencl_c_atomic_scope_all_devices 1
 #endif // defined(__SPIR__)
 #endif // (__OPENCL_CPP_VERSION__ == 202100 || __OPENCL_C_VERSION__ == 300)
@@ -329,9 +348,9 @@
   memory_scope_device = __OPENCL_MEMORY_SCOPE_DEVICE,
 #if defined(__opencl_c_atomic_scope_all_devices)
   memory_scope_all_svm_devices = __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES,
-#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0)
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
   memory_scope_all_devices = memory_scope_all_svm_devices,
-#endif // __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif // defined(__opencl_c_atomic_scope_all_devices)
 /**
  * Subgroups have different requirements on forward progress, so just test
diff --git a/darwin-x86/lib64/clang/14.0.1/include/opencl-c.h b/linux-x86/lib64/clang/14.0.2/include/opencl-c.h
similarity index 96%
copy from darwin-x86/lib64/clang/14.0.1/include/opencl-c.h
copy to linux-x86/lib64/clang/14.0.2/include/opencl-c.h
index bb3ca6a..32af848 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/opencl-c.h
+++ b/linux-x86/lib64/clang/14.0.2/include/opencl-c.h
@@ -23,11 +23,14 @@
 #endif //cl_khr_3d_image_writes
 #endif //__OPENCL_C_VERSION__ < CL_VERSION_2_0
 
-
-#if (defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) && defined(__SPIR__)
+#if (defined(__OPENCL_CPP_VERSION__) ||                                        \
+     (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) &&                              \
+    (defined(__SPIR__) || defined(__SPIRV__))
 #pragma OPENCL EXTENSION cl_intel_planar_yuv : begin
 #pragma OPENCL EXTENSION cl_intel_planar_yuv : end
-#endif // (defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) && defined(__SPIR__)
+#endif // (defined(__OPENCL_CPP_VERSION__) ||
+       //  (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) &&
+       // (defined(__SPIR__) || defined(__SPIRV__))
 
 #define __ovld __attribute__((overloadable))
 #define __conv __attribute__((convergent))
@@ -13256,7 +13259,7 @@
 #endif //cl_khr_fp64
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 void __ovld atomic_init(volatile __global atomic_int *object, int value);
 void __ovld atomic_init(volatile __local atomic_int *object, int value);
 void __ovld atomic_init(volatile __global atomic_uint *object, uint value);
@@ -13273,7 +13276,7 @@
 void __ovld atomic_init(volatile __local atomic_double *object, double value);
 #endif //cl_khr_fp64
 #endif
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 
 // atomic_work_item_fence()
 void __ovld atomic_work_item_fence(cl_mem_fence_flags flags, memory_order order, memory_scope scope);
@@ -13317,7 +13320,7 @@
 uintptr_t __ovld atomic_fetch_sub(volatile atomic_uintptr_t *object, ptrdiff_t operand);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 int __ovld atomic_fetch_add(volatile __global atomic_int *object, int operand);
 int __ovld atomic_fetch_add(volatile __local atomic_int *object, int operand);
 uint __ovld atomic_fetch_add(volatile __global atomic_uint *object, uint operand);
@@ -13333,7 +13336,7 @@
 int __ovld atomic_fetch_xor(volatile __global atomic_int *object, int operand);
 int __ovld atomic_fetch_xor(volatile __local atomic_int *object, int operand);
 uint __ovld atomic_fetch_xor(volatile __global atomic_uint *object, uint operand);
-uint __ovld atomic_fetch_xor(volatile __local atomic_uint *object, uint operand);i
+uint __ovld atomic_fetch_xor(volatile __local atomic_uint *object, uint operand);
 int __ovld atomic_fetch_and(volatile __global atomic_int *object, int operand);
 int __ovld atomic_fetch_and(volatile __local atomic_int *object, int operand);
 uint __ovld atomic_fetch_and(volatile __global atomic_uint *object, uint operand);
@@ -13398,7 +13401,7 @@
 uintptr_t __ovld atomic_fetch_add(volatile __global atomic_uintptr_t *object, ptrdiff_t operand);
 uintptr_t __ovld atomic_fetch_sub(volatile __local atomic_uintptr_t *object, ptrdiff_t operand);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif
 
 #if defined(__opencl_c_atomic_scope_device)
@@ -13436,7 +13439,7 @@
 uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 int __ovld atomic_fetch_add_explicit(volatile __global atomic_int *object, int operand, memory_order order);
 int __ovld atomic_fetch_add_explicit(volatile __local atomic_int *object, int operand, memory_order order);
 uint __ovld atomic_fetch_add_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
@@ -13517,7 +13520,7 @@
 uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
 uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif
 
 #if defined(__opencl_c_generic_address_space)
@@ -13554,7 +13557,7 @@
 uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 int __ovld atomic_fetch_add_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
 int __ovld atomic_fetch_add_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
 uint __ovld atomic_fetch_add_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
@@ -13635,7 +13638,379 @@
 uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
 uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
+
+// The functionality added by cl_ext_float_atomics extension
+#if defined(cl_ext_float_atomics)
+
+#if defined(__opencl_c_ext_fp16_global_atomic_load_store)
+void __ovld atomic_store(volatile __global atomic_half *object, half operand);
+void __ovld atomic_store_explicit(volatile __global atomic_half *object,
+                                  half operand, memory_order order);
+void __ovld atomic_store_explicit(volatile __global atomic_half *object,
+                                  half operand, memory_order order,
+                                  memory_scope scope);
+half __ovld atomic_load(volatile __global atomic_half *object);
+half __ovld atomic_load_explicit(volatile __global atomic_half *object,
+                                 memory_order order);
+half __ovld atomic_load_explicit(volatile __global atomic_half *object,
+                                 memory_order order, memory_scope scope);
+half __ovld atomic_exchange(volatile __global atomic_half *object,
+                            half operand);
+half __ovld atomic_exchange_explicit(volatile __global atomic_half *object,
+                                     half operand, memory_order order);
+half __ovld atomic_exchange_explicit(volatile __global atomic_half *object,
+                                     half operand, memory_order order,
+                                     memory_scope scope);
+#endif // defined(__opencl_c_ext_fp16_global_atomic_load_store)
+
+#if defined(__opencl_c_ext_fp16_local_atomic_load_store)
+void __ovld atomic_store(volatile __local atomic_half *object, half operand);
+void __ovld atomic_store_explicit(volatile __local atomic_half *object,
+                                  half operand, memory_order order);
+void __ovld atomic_store_explicit(volatile __local atomic_half *object,
+                                  half operand, memory_order order,
+                                  memory_scope scope);
+half __ovld atomic_load(volatile __local atomic_half *object);
+half __ovld atomic_load_explicit(volatile __local atomic_half *object,
+                                 memory_order order);
+half __ovld atomic_load_explicit(volatile __local atomic_half *object,
+                                 memory_order order, memory_scope scope);
+half __ovld atomic_exchange(volatile __local atomic_half *object, half operand);
+half __ovld atomic_exchange_explicit(volatile __local atomic_half *object,
+                                     half operand, memory_order order);
+half __ovld atomic_exchange_explicit(volatile __local atomic_half *object,
+                                     half operand, memory_order order,
+                                     memory_scope scope);
+#endif // defined(__opencl_c_ext_fp16_local_atomic_load_store)
+
+#if defined(__opencl_c_ext_fp16_global_atomic_load_store) &&                   \
+    defined(__opencl_c_ext_fp16_local_atomic_load_store)
+void __ovld atomic_store(volatile atomic_half *object, half operand);
+void __ovld atomic_store_explicit(volatile atomic_half *object, half operand,
+                                  memory_order order);
+void __ovld atomic_store_explicit(volatile atomic_half *object, half operand,
+                                  memory_order order, memory_scope scope);
+half __ovld atomic_load(volatile atomic_half *object);
+half __ovld atomic_load_explicit(volatile atomic_half *object,
+                                 memory_order order);
+half __ovld atomic_load_explicit(volatile atomic_half *object,
+                                 memory_order order, memory_scope scope);
+half __ovld atomic_exchange(volatile atomic_half *object, half operand);
+half __ovld atomic_exchange_explicit(volatile atomic_half *object, half operand,
+                                     memory_order order);
+half __ovld atomic_exchange_explicit(volatile atomic_half *object, half operand,
+                                     memory_order order, memory_scope scope);
+#endif // defined(__opencl_c_ext_fp16_global_atomic_load_store) &&
+       // defined(__opencl_c_ext_fp16_local_atomic_load_store)
+
+#if defined(__opencl_c_ext_fp16_global_atomic_min_max)
+half __ovld atomic_fetch_min(volatile __global atomic_half *object,
+                             half operand);
+half __ovld atomic_fetch_max(volatile __global atomic_half *object,
+                             half operand);
+half __ovld atomic_fetch_min_explicit(volatile __global atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_max_explicit(volatile __global atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_min_explicit(volatile __global atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+half __ovld atomic_fetch_max_explicit(volatile __global atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+#endif // defined(__opencl_c_ext_fp16_global_atomic_min_max)
+
+#if defined(__opencl_c_ext_fp16_local_atomic_min_max)
+half __ovld atomic_fetch_min(volatile __local atomic_half *object,
+                             half operand);
+half __ovld atomic_fetch_max(volatile __local atomic_half *object,
+                             half operand);
+half __ovld atomic_fetch_min_explicit(volatile __local atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_max_explicit(volatile __local atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_min_explicit(volatile __local atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+half __ovld atomic_fetch_max_explicit(volatile __local atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+#endif // defined(__opencl_c_ext_fp16_local_atomic_min_max)
+
+#if defined(__opencl_c_ext_fp16_global_atomic_min_max) &&                      \
+    defined(__opencl_c_ext_fp16_local_atomic_min_max)
+half __ovld atomic_fetch_min(volatile atomic_half *object, half operand);
+half __ovld atomic_fetch_max(volatile atomic_half *object, half operand);
+half __ovld atomic_fetch_min_explicit(volatile atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_max_explicit(volatile atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_min_explicit(volatile atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+half __ovld atomic_fetch_max_explicit(volatile atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+#endif // defined(__opencl_c_ext_fp16_global_atomic_min_max) &&                \
+    defined(__opencl_c_ext_fp16_local_atomic_min_max)
+
+#if defined(__opencl_c_ext_fp32_global_atomic_min_max)
+float __ovld atomic_fetch_min(volatile __global atomic_float *object,
+                              float operand);
+float __ovld atomic_fetch_max(volatile __global atomic_float *object,
+                              float operand);
+float __ovld atomic_fetch_min_explicit(volatile __global atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_max_explicit(volatile __global atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_min_explicit(volatile __global atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+float __ovld atomic_fetch_max_explicit(volatile __global atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+#endif // defined(__opencl_c_ext_fp32_global_atomic_min_max)
+
+#if defined(__opencl_c_ext_fp32_local_atomic_min_max)
+float __ovld atomic_fetch_min(volatile __local atomic_float *object,
+                              float operand);
+float __ovld atomic_fetch_max(volatile __local atomic_float *object,
+                              float operand);
+float __ovld atomic_fetch_min_explicit(volatile __local atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_max_explicit(volatile __local atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_min_explicit(volatile __local atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+float __ovld atomic_fetch_max_explicit(volatile __local atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+#endif // defined(__opencl_c_ext_fp32_local_atomic_min_max)
+
+#if defined(__opencl_c_ext_fp32_global_atomic_min_max) &&                      \
+    defined(__opencl_c_ext_fp32_local_atomic_min_max)
+float __ovld atomic_fetch_min(volatile atomic_float *object, float operand);
+float __ovld atomic_fetch_max(volatile atomic_float *object, float operand);
+float __ovld atomic_fetch_min_explicit(volatile atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_max_explicit(volatile atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_min_explicit(volatile atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+float __ovld atomic_fetch_max_explicit(volatile atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+#endif // defined(__opencl_c_ext_fp32_global_atomic_min_max) &&                \
+    defined(__opencl_c_ext_fp32_local_atomic_min_max)
+
+#if defined(__opencl_c_ext_fp64_global_atomic_min_max)
+double __ovld atomic_fetch_min(volatile __global atomic_double *object,
+                               double operand);
+double __ovld atomic_fetch_max(volatile __global atomic_double *object,
+                               double operand);
+double __ovld atomic_fetch_min_explicit(volatile __global atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_max_explicit(volatile __global atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_min_explicit(volatile __global atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+double __ovld atomic_fetch_max_explicit(volatile __global atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+#endif // defined(__opencl_c_ext_fp64_global_atomic_min_max)
+
+#if defined(__opencl_c_ext_fp64_local_atomic_min_max)
+double __ovld atomic_fetch_min(volatile __local atomic_double *object,
+                               double operand);
+double __ovld atomic_fetch_max(volatile __local atomic_double *object,
+                               double operand);
+double __ovld atomic_fetch_min_explicit(volatile __local atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_max_explicit(volatile __local atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_min_explicit(volatile __local atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+double __ovld atomic_fetch_max_explicit(volatile __local atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+#endif // defined(__opencl_c_ext_fp64_local_atomic_min_max)
+
+#if defined(__opencl_c_ext_fp64_global_atomic_min_max) &&                      \
+    defined(__opencl_c_ext_fp64_local_atomic_min_max)
+double __ovld atomic_fetch_min(volatile atomic_double *object, double operand);
+double __ovld atomic_fetch_max(volatile atomic_double *object, double operand);
+double __ovld atomic_fetch_min_explicit(volatile atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_max_explicit(volatile atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_min_explicit(volatile atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+double __ovld atomic_fetch_max_explicit(volatile atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+#endif // defined(__opencl_c_ext_fp64_global_atomic_min_max) &&                \
+    defined(__opencl_c_ext_fp64_local_atomic_min_max)
+
+#if defined(__opencl_c_ext_fp16_global_atomic_add)
+half __ovld atomic_fetch_add(volatile __global atomic_half *object,
+                             half operand);
+half __ovld atomic_fetch_sub(volatile __global atomic_half *object,
+                             half operand);
+half __ovld atomic_fetch_add_explicit(volatile __global atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_sub_explicit(volatile __global atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_add_explicit(volatile __global atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+half __ovld atomic_fetch_sub_explicit(volatile __global atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+#endif // defined(__opencl_c_ext_fp16_global_atomic_add)
+
+#if defined(__opencl_c_ext_fp16_local_atomic_add)
+half __ovld atomic_fetch_add(volatile __local atomic_half *object,
+                             half operand);
+half __ovld atomic_fetch_sub(volatile __local atomic_half *object,
+                             half operand);
+half __ovld atomic_fetch_add_explicit(volatile __local atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_sub_explicit(volatile __local atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_add_explicit(volatile __local atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+half __ovld atomic_fetch_sub_explicit(volatile __local atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+#endif // defined(__opencl_c_ext_fp16_local_atomic_add)
+
+#if defined(__opencl_c_ext_fp16_global_atomic_add) &&                          \
+    defined(__opencl_c_ext_fp16_local_atomic_add)
+half __ovld atomic_fetch_add(volatile atomic_half *object, half operand);
+half __ovld atomic_fetch_sub(volatile atomic_half *object, half operand);
+half __ovld atomic_fetch_add_explicit(volatile atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_sub_explicit(volatile atomic_half *object,
+                                      half operand, memory_order order);
+half __ovld atomic_fetch_add_explicit(volatile atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+half __ovld atomic_fetch_sub_explicit(volatile atomic_half *object,
+                                      half operand, memory_order order,
+                                      memory_scope scope);
+#endif // defined(__opencl_c_ext_fp16_global_atomic_add) &&                    \
+    defined(__opencl_c_ext_fp16_local_atomic_add)
+
+#if defined(__opencl_c_ext_fp32_global_atomic_add)
+float __ovld atomic_fetch_add(volatile __global atomic_float *object,
+                              float operand);
+float __ovld atomic_fetch_sub(volatile __global atomic_float *object,
+                              float operand);
+float __ovld atomic_fetch_add_explicit(volatile __global atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_sub_explicit(volatile __global atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_add_explicit(volatile __global atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+float __ovld atomic_fetch_sub_explicit(volatile __global atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+#endif // defined(__opencl_c_ext_fp32_global_atomic_add)
+
+#if defined(__opencl_c_ext_fp32_local_atomic_add)
+float __ovld atomic_fetch_add(volatile __local atomic_float *object,
+                              float operand);
+float __ovld atomic_fetch_sub(volatile __local atomic_float *object,
+                              float operand);
+float __ovld atomic_fetch_add_explicit(volatile __local atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_sub_explicit(volatile __local atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_add_explicit(volatile __local atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+float __ovld atomic_fetch_sub_explicit(volatile __local atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+#endif // defined(__opencl_c_ext_fp32_local_atomic_add)
+
+#if defined(__opencl_c_ext_fp32_global_atomic_add) &&                          \
+    defined(__opencl_c_ext_fp32_local_atomic_add)
+float __ovld atomic_fetch_add(volatile atomic_float *object, float operand);
+float __ovld atomic_fetch_sub(volatile atomic_float *object, float operand);
+float __ovld atomic_fetch_add_explicit(volatile atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_sub_explicit(volatile atomic_float *object,
+                                       float operand, memory_order order);
+float __ovld atomic_fetch_add_explicit(volatile atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+float __ovld atomic_fetch_sub_explicit(volatile atomic_float *object,
+                                       float operand, memory_order order,
+                                       memory_scope scope);
+#endif // defined(__opencl_c_ext_fp32_global_atomic_add) &&                    \
+    defined(__opencl_c_ext_fp32_local_atomic_add)
+
+#if defined(__opencl_c_ext_fp64_global_atomic_add)
+double __ovld atomic_fetch_add(volatile __global atomic_double *object,
+                               double operand);
+double __ovld atomic_fetch_sub(volatile __global atomic_double *object,
+                               double operand);
+double __ovld atomic_fetch_add_explicit(volatile __global atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_sub_explicit(volatile __global atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_add_explicit(volatile __global atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+double __ovld atomic_fetch_sub_explicit(volatile __global atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+#endif // defined(__opencl_c_ext_fp64_global_atomic_add)
+
+#if defined(__opencl_c_ext_fp64_local_atomic_add)
+double __ovld atomic_fetch_add(volatile __local atomic_double *object,
+                               double operand);
+double __ovld atomic_fetch_sub(volatile __local atomic_double *object,
+                               double operand);
+double __ovld atomic_fetch_add_explicit(volatile __local atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_sub_explicit(volatile __local atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_add_explicit(volatile __local atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+double __ovld atomic_fetch_sub_explicit(volatile __local atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+#endif // defined(__opencl_c_ext_fp64_local_atomic_add)
+
+#if defined(__opencl_c_ext_fp64_global_atomic_add) &&                          \
+    defined(__opencl_c_ext_fp64_local_atomic_add)
+double __ovld atomic_fetch_add(volatile atomic_double *object, double operand);
+double __ovld atomic_fetch_sub(volatile atomic_double *object, double operand);
+double __ovld atomic_fetch_add_explicit(volatile atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_sub_explicit(volatile atomic_double *object,
+                                        double operand, memory_order order);
+double __ovld atomic_fetch_add_explicit(volatile atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+double __ovld atomic_fetch_sub_explicit(volatile atomic_double *object,
+                                        double operand, memory_order order,
+                                        memory_scope scope);
+#endif // defined(__opencl_c_ext_fp64_global_atomic_add) &&                    \
+    defined(__opencl_c_ext_fp64_local_atomic_add)
+
+#endif // cl_ext_float_atomics
 
 // atomic_store()
 
@@ -13653,7 +14028,7 @@
 void __ovld atomic_store(volatile atomic_ulong *object, ulong desired);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 void __ovld atomic_store(volatile __global atomic_int *object, int desired);
 void __ovld atomic_store(volatile __local atomic_int *object, int desired);
 void __ovld atomic_store(volatile __global atomic_uint *object, uint desired);
@@ -13670,7 +14045,7 @@
 void __ovld atomic_store(volatile __global atomic_ulong *object, ulong desired);
 void __ovld atomic_store(volatile __local atomic_ulong *object, ulong desired);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif
 
 #if defined(__opencl_c_atomic_scope_device)
@@ -13686,7 +14061,7 @@
 void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 void __ovld atomic_store_explicit(volatile __global atomic_int *object, int desired, memory_order order);
 void __ovld atomic_store_explicit(volatile __local atomic_int *object, int desired, memory_order order);
 void __ovld atomic_store_explicit(volatile __global atomic_uint *object, uint desired, memory_order order);
@@ -13703,7 +14078,7 @@
 void __ovld atomic_store_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order);
 void __ovld atomic_store_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif
 
 #if defined(__opencl_c_generic_address_space)
@@ -13718,7 +14093,7 @@
 void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 void __ovld atomic_store_explicit(volatile __global atomic_int *object, int desired, memory_order order, memory_scope scope);
 void __ovld atomic_store_explicit(volatile __local atomic_int *object, int desired, memory_order order, memory_scope scope);
 void __ovld atomic_store_explicit(volatile __global atomic_uint *object, uint desired, memory_order order, memory_scope scope);
@@ -13735,7 +14110,7 @@
 void __ovld atomic_store_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
 void __ovld atomic_store_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 
 // atomic_load()
 #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
@@ -13751,7 +14126,7 @@
 ulong __ovld atomic_load(volatile atomic_ulong *object);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 int __ovld atomic_load(volatile __global atomic_int *object);
 int __ovld atomic_load(volatile __local atomic_int *object);
 uint __ovld atomic_load(volatile __global atomic_uint *object);
@@ -13768,7 +14143,7 @@
 ulong __ovld atomic_load(volatile __global atomic_ulong *object);
 ulong __ovld atomic_load(volatile __local atomic_ulong *object);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif
 
 #if defined(__opencl_c_atomic_scope_device)
@@ -13784,7 +14159,7 @@
 ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 int __ovld atomic_load_explicit(volatile __global atomic_int *object, memory_order order);
 int __ovld atomic_load_explicit(volatile __local atomic_int *object, memory_order order);
 uint __ovld atomic_load_explicit(volatile __global atomic_uint *object, memory_order order);
@@ -13801,7 +14176,7 @@
 ulong __ovld atomic_load_explicit(volatile __global atomic_ulong *object, memory_order order);
 ulong __ovld atomic_load_explicit(volatile __local atomic_ulong *object, memory_order order);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif
 
 #if defined(__opencl_c_generic_address_space)
@@ -13816,7 +14191,7 @@
 ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order, memory_scope scope);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 int __ovld atomic_load_explicit(volatile __global atomic_int *object, memory_order order, memory_scope scope);
 int __ovld atomic_load_explicit(volatile __local atomic_int *object, memory_order order, memory_scope scope);
 uint __ovld atomic_load_explicit(volatile __global atomic_uint *object, memory_order order, memory_scope scope);
@@ -13833,7 +14208,7 @@
 ulong __ovld atomic_load_explicit(volatile __global atomic_ulong *object, memory_order order, memory_scope scope);
 ulong __ovld atomic_load_explicit(volatile __local atomic_ulong *object, memory_order order, memory_scope scope);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 
 // atomic_exchange()
 
@@ -13850,7 +14225,7 @@
 ulong __ovld atomic_exchange(volatile atomic_ulong *object, ulong desired);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 int __ovld atomic_exchange(volatile __global atomic_int *object, int desired);
 int __ovld atomic_exchange(volatile __local atomic_int *object, int desired);
 uint __ovld atomic_exchange(volatile __global atomic_uint *object, uint desired);
@@ -13867,7 +14242,7 @@
 ulong __ovld atomic_exchange(volatile __global atomic_ulong *object, ulong desired);
 ulong __ovld atomic_exchange(volatile __local atomic_ulong *object, ulong desired);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif
 
 #if defined(__opencl_c_atomic_scope_device)
@@ -13883,7 +14258,7 @@
 ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 int __ovld atomic_exchange_explicit(volatile __global atomic_int *object, int desired, memory_order order);
 int __ovld atomic_exchange_explicit(volatile __local atomic_int *object, int desired, memory_order order);
 uint __ovld atomic_exchange_explicit(volatile __global atomic_uint *object, uint desired, memory_order order);
@@ -13900,7 +14275,7 @@
 ulong __ovld atomic_exchange_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order);
 ulong __ovld atomic_exchange_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)wi
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif
 
 #if defined(__opencl_c_generic_address_space)
@@ -13915,7 +14290,7 @@
 ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 int __ovld atomic_exchange_explicit(volatile __global atomic_int *object, int desired, memory_order order, memory_scope scope);
 int __ovld atomic_exchange_explicit(volatile __local atomic_int *object, int desired, memory_order order, memory_scope scope);
 uint __ovld atomic_exchange_explicit(volatile __global atomic_uint *object, uint desired, memory_order order, memory_scope scope);
@@ -13932,7 +14307,7 @@
 ulong __ovld atomic_exchange_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
 ulong __ovld atomic_exchange_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 
 // atomic_compare_exchange_strong() and atomic_compare_exchange_weak()
 #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
@@ -13954,7 +14329,7 @@
 bool __ovld atomic_compare_exchange_weak(volatile atomic_ulong *object, ulong *expected, ulong desired);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *object, __global int *expected, int desired);
 bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *object, __local int *expected, int desired);
 bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *object, __private int *expected, int desired);
@@ -14031,7 +14406,7 @@
 bool __ovld atomic_compare_exchange_weak(volatile __local atomic_ulong *object, __local ulong *expected, ulong desired);
 bool __ovld atomic_compare_exchange_weak(volatile __local atomic_ulong *object, __private ulong *expected, ulong desired);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif
 
 #if defined(__opencl_c_generic_address_space)
@@ -14064,7 +14439,7 @@
                                                                                  ulong desired, memory_order success, memory_order failure);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __global int *expected,
                                                                                  int desired, memory_order success, memory_order failure);
 bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __local int *expected,
@@ -14213,7 +14588,7 @@
 bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __private ulong *expected,
                                                                                  ulong desired, memory_order success, memory_order failure);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 
 #if defined(__opencl_c_generic_address_space)
 bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
@@ -14245,7 +14620,7 @@
                                                                                  ulong desired, memory_order success, memory_order failure, memory_scope scope);
 #endif
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __global int *expected,
                                                                                  int desired, memory_order success, memory_order failure, memory_scope scope);
 bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __local int *expected,
@@ -14394,7 +14769,7 @@
 bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __private ulong *expected,
                                                                                  ulong desired, memory_order success, memory_order failure, memory_scope scope);
 #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 
 // atomic_flag_test_and_set() and atomic_flag_clear()
 #if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
@@ -14402,12 +14777,12 @@
 bool __ovld atomic_flag_test_and_set(volatile atomic_flag *object);
 void __ovld atomic_flag_clear(volatile atomic_flag *object);
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 bool __ovld atomic_flag_test_and_set(volatile __global atomic_flag *object);
 bool __ovld atomic_flag_test_and_set(volatile __local atomic_flag *object);
 void __ovld atomic_flag_clear(volatile __global atomic_flag *object);
 void __ovld atomic_flag_clear(volatile __local atomic_flag *object);
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif
 
 #if defined(__opencl_c_atomic_scope_device)
@@ -14415,24 +14790,24 @@
 bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order);
 void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order);
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 bool __ovld atomic_flag_test_and_set_explicit(volatile __global atomic_flag *object, memory_order order);
 bool __ovld atomic_flag_test_and_set_explicit(volatile __local atomic_flag *object, memory_order order);
 void __ovld atomic_flag_clear_explicit(volatile __global atomic_flag *object, memory_order order);
 void __ovld atomic_flag_clear_explicit(volatile __local atomic_flag *object, memory_order order);
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif
 
 #if defined(__opencl_c_generic_address_space)
 bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
 void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
 #endif //defined(__opencl_c_generic_address_space)
-#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 bool __ovld atomic_flag_test_and_set_explicit(volatile __global atomic_flag *object, memory_order order, memory_scope scope);
 bool __ovld atomic_flag_test_and_set_explicit(volatile __local atomic_flag *object, memory_order order, memory_scope scope);
 void __ovld atomic_flag_clear_explicit(volatile __global atomic_flag *object, memory_order order, memory_scope scope);
 void __ovld atomic_flag_clear_explicit(volatile __local atomic_flag *object, memory_order order, memory_scope scope);
-#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
+#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
 #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
 
 // OpenCL v1.1 s6.11.12, v1.2 s6.12.12, v2.0 s6.13.12 - Miscellaneous Vector Functions
diff --git a/linux-x86/lib64/clang/14.0.1/include/openmp_wrappers/__clang_openmp_device_functions.h b/linux-x86/lib64/clang/14.0.2/include/openmp_wrappers/__clang_openmp_device_functions.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/openmp_wrappers/__clang_openmp_device_functions.h
rename to linux-x86/lib64/clang/14.0.2/include/openmp_wrappers/__clang_openmp_device_functions.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/openmp_wrappers/cmath b/linux-x86/lib64/clang/14.0.2/include/openmp_wrappers/cmath
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/openmp_wrappers/cmath
rename to linux-x86/lib64/clang/14.0.2/include/openmp_wrappers/cmath
diff --git a/darwin-x86/lib64/clang/14.0.1/include/openmp_wrappers/complex b/linux-x86/lib64/clang/14.0.2/include/openmp_wrappers/complex
similarity index 96%
copy from darwin-x86/lib64/clang/14.0.1/include/openmp_wrappers/complex
copy to linux-x86/lib64/clang/14.0.2/include/openmp_wrappers/complex
index d6e740d..1ceecc1 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/openmp_wrappers/complex
+++ b/linux-x86/lib64/clang/14.0.2/include/openmp_wrappers/complex
@@ -45,7 +45,7 @@
 #ifndef _LIBCPP_STD_VER
 
 #pragma omp begin declare variant match(                                       \
-    device = {arch(nvptx, nvptx64)},                                           \
+    device = {arch(amdgcn, nvptx, nvptx64)},                                   \
     implementation = {extension(match_any, allow_templates)})
 
 #include <complex_cmath.h>
diff --git a/linux-x86/lib64/clang/14.0.1/include/openmp_wrappers/complex.h b/linux-x86/lib64/clang/14.0.2/include/openmp_wrappers/complex.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/openmp_wrappers/complex.h
rename to linux-x86/lib64/clang/14.0.2/include/openmp_wrappers/complex.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/openmp_wrappers/complex_cmath.h b/linux-x86/lib64/clang/14.0.2/include/openmp_wrappers/complex_cmath.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/openmp_wrappers/complex_cmath.h
rename to linux-x86/lib64/clang/14.0.2/include/openmp_wrappers/complex_cmath.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/openmp_wrappers/math.h b/linux-x86/lib64/clang/14.0.2/include/openmp_wrappers/math.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/openmp_wrappers/math.h
rename to linux-x86/lib64/clang/14.0.2/include/openmp_wrappers/math.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/openmp_wrappers/new b/linux-x86/lib64/clang/14.0.2/include/openmp_wrappers/new
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/openmp_wrappers/new
rename to linux-x86/lib64/clang/14.0.2/include/openmp_wrappers/new
diff --git a/linux-x86/lib64/clang/14.0.1/include/pconfigintrin.h b/linux-x86/lib64/clang/14.0.2/include/pconfigintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/pconfigintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/pconfigintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/pkuintrin.h b/linux-x86/lib64/clang/14.0.2/include/pkuintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/pkuintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/pkuintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/pmmintrin.h b/linux-x86/lib64/clang/14.0.2/include/pmmintrin.h
similarity index 98%
copy from darwin-x86/lib64/clang/14.0.1/include/pmmintrin.h
copy to linux-x86/lib64/clang/14.0.2/include/pmmintrin.h
index a83b2eb..eda8356 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/pmmintrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/pmmintrin.h
@@ -10,6 +10,10 @@
 #ifndef __PMMINTRIN_H
 #define __PMMINTRIN_H
 
+#if !defined(__i386__) && !defined(__x86_64__)
+#error "This header is only meant to be used on x86 and x64 architecture"
+#endif
+
 #include <emmintrin.h>
 
 /* Define the default attributes for the functions in this file. */
diff --git a/linux-x86/lib64/clang/14.0.1/include/popcntintrin.h b/linux-x86/lib64/clang/14.0.2/include/popcntintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/popcntintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/popcntintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/emmintrin.h b/linux-x86/lib64/clang/14.0.2/include/ppc_wrappers/emmintrin.h
similarity index 99%
copy from darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/emmintrin.h
copy to linux-x86/lib64/clang/14.0.2/include/ppc_wrappers/emmintrin.h
index 4dcb848..82a7178 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/emmintrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/ppc_wrappers/emmintrin.h
@@ -35,7 +35,7 @@
 #ifndef EMMINTRIN_H_
 #define EMMINTRIN_H_
 
-#if defined(__linux__) && defined(__ppc64__)
+#if defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))
 
 #include <altivec.h>
 
@@ -2319,6 +2319,7 @@
 
 #else
 #include_next <emmintrin.h>
-#endif /* defined(__linux__) && defined(__ppc64__) */
+#endif /* defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))   \
+        */
 
 #endif /* EMMINTRIN_H_ */
diff --git a/linux-x86/lib64/clang/14.0.1/include/ppc_wrappers/mm_malloc.h b/linux-x86/lib64/clang/14.0.2/include/ppc_wrappers/mm_malloc.h
similarity index 94%
rename from linux-x86/lib64/clang/14.0.1/include/ppc_wrappers/mm_malloc.h
rename to linux-x86/lib64/clang/14.0.2/include/ppc_wrappers/mm_malloc.h
index 24b14c8..86cf1a0 100644
--- a/linux-x86/lib64/clang/14.0.1/include/ppc_wrappers/mm_malloc.h
+++ b/linux-x86/lib64/clang/14.0.2/include/ppc_wrappers/mm_malloc.h
@@ -10,7 +10,7 @@
 #ifndef _MM_MALLOC_H_INCLUDED
 #define _MM_MALLOC_H_INCLUDED
 
-#if defined(__linux__) && defined(__ppc64__)
+#if defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))
 
 #include <stdlib.h>
 
diff --git a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/mmintrin.h b/linux-x86/lib64/clang/14.0.2/include/ppc_wrappers/mmintrin.h
similarity index 99%
copy from darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/mmintrin.h
copy to linux-x86/lib64/clang/14.0.2/include/ppc_wrappers/mmintrin.h
index c55c447..54e4ee9 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/mmintrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/ppc_wrappers/mmintrin.h
@@ -35,7 +35,7 @@
 #ifndef _MMINTRIN_H_INCLUDED
 #define _MMINTRIN_H_INCLUDED
 
-#if defined(__linux__) && defined(__ppc64__)
+#if defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))
 
 #include <altivec.h>
 /* The Intel API is flexible enough that we must allow aliasing with other
@@ -1445,6 +1445,7 @@
 
 #else
 #include_next <mmintrin.h>
-#endif /* defined(__linux__) && defined(__ppc64__) */
+#endif /* defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))   \
+        */
 
 #endif /* _MMINTRIN_H_INCLUDED */
diff --git a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/pmmintrin.h b/linux-x86/lib64/clang/14.0.2/include/ppc_wrappers/pmmintrin.h
similarity index 96%
copy from darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/pmmintrin.h
copy to linux-x86/lib64/clang/14.0.2/include/ppc_wrappers/pmmintrin.h
index 6d93383..8d4046b 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/pmmintrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/ppc_wrappers/pmmintrin.h
@@ -38,7 +38,7 @@
 #ifndef PMMINTRIN_H_
 #define PMMINTRIN_H_
 
-#if defined(__linux__) && defined(__ppc64__)
+#if defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))
 
 /* We need definitions from the SSE2 and SSE header files*/
 #include <emmintrin.h>
@@ -145,6 +145,7 @@
 
 #else
 #include_next <pmmintrin.h>
-#endif /* defined(__linux__) && defined(__ppc64__) */
+#endif /* defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))   \
+        */
 
 #endif /* PMMINTRIN_H_ */
diff --git a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/smmintrin.h b/linux-x86/lib64/clang/14.0.2/include/ppc_wrappers/smmintrin.h
similarity index 94%
copy from darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/smmintrin.h
copy to linux-x86/lib64/clang/14.0.2/include/ppc_wrappers/smmintrin.h
index 64f0c76..6747032 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/smmintrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/ppc_wrappers/smmintrin.h
@@ -29,10 +29,10 @@
 #ifndef SMMINTRIN_H_
 #define SMMINTRIN_H_
 
-#if defined(__linux__) && defined(__ppc64__)
+#if defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))
 
 #include <altivec.h>
-#include <emmintrin.h>
+#include <tmmintrin.h>
 
 extern __inline int
     __attribute__((__gnu_inline__, __always_inline__, __artificial__))
@@ -104,6 +104,7 @@
 
 #else
 #include_next <smmintrin.h>
-#endif /* defined(__linux__) && defined(__ppc64__) */
+#endif /* defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))   \
+        */
 
 #endif /* _SMMINTRIN_H_ */
diff --git a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/tmmintrin.h b/linux-x86/lib64/clang/14.0.2/include/ppc_wrappers/tmmintrin.h
similarity index 98%
copy from darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/tmmintrin.h
copy to linux-x86/lib64/clang/14.0.2/include/ppc_wrappers/tmmintrin.h
index b5a935d..ebef7b8 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/tmmintrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/ppc_wrappers/tmmintrin.h
@@ -25,7 +25,7 @@
 #ifndef TMMINTRIN_H_
 #define TMMINTRIN_H_
 
-#if defined(__linux__) && defined(__ppc64__)
+#if defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))
 
 #include <altivec.h>
 
@@ -490,6 +490,7 @@
 
 #else
 #include_next <tmmintrin.h>
-#endif /* defined(__linux__) && defined(__ppc64__) */
+#endif /* defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))   \
+        */
 
 #endif /* TMMINTRIN_H_ */
diff --git a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/xmmintrin.h b/linux-x86/lib64/clang/14.0.2/include/ppc_wrappers/xmmintrin.h
similarity index 99%
copy from darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/xmmintrin.h
copy to linux-x86/lib64/clang/14.0.2/include/ppc_wrappers/xmmintrin.h
index 0e45b96..956603d 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/ppc_wrappers/xmmintrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/ppc_wrappers/xmmintrin.h
@@ -34,7 +34,7 @@
 #ifndef _XMMINTRIN_H_INCLUDED
 #define _XMMINTRIN_H_INCLUDED
 
-#if defined(__linux__) && defined(__ppc64__)
+#if defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))
 
 /* Define four value permute mask */
 #define _MM_SHUFFLE(w,x,y,z) (((w) << 6) | ((x) << 4) | ((y) << 2) | (z))
@@ -1838,6 +1838,7 @@
 
 #else
 #include_next <xmmintrin.h>
-#endif /* defined(__linux__) && defined(__ppc64__) */
+#endif /* defined(__ppc64__) && (defined(__linux__) || defined(__FreeBSD__))   \
+        */
 
 #endif /* _XMMINTRIN_H_INCLUDED */
diff --git a/linux-x86/lib64/clang/14.0.1/include/prfchwintrin.h b/linux-x86/lib64/clang/14.0.2/include/prfchwintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/prfchwintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/prfchwintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/profile/InstrProfData.inc b/linux-x86/lib64/clang/14.0.2/include/profile/InstrProfData.inc
similarity index 99%
copy from darwin-x86/lib64/clang/14.0.1/include/profile/InstrProfData.inc
copy to linux-x86/lib64/clang/14.0.2/include/profile/InstrProfData.inc
index cb2d6a6..008b8dd 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/profile/InstrProfData.inc
+++ b/linux-x86/lib64/clang/14.0.2/include/profile/InstrProfData.inc
@@ -645,7 +645,7 @@
         (uint64_t)'f' << 16 | (uint64_t)'R' << 8 | (uint64_t)129
 
 /* Raw profile format version (start from 1). */
-#define INSTR_PROF_RAW_VERSION 7
+#define INSTR_PROF_RAW_VERSION 8
 /* Indexed profile format version (start from 1). */
 #define INSTR_PROF_INDEX_VERSION 7
 /* Coverage mapping format version (start from 0). */
diff --git a/linux-x86/lib64/clang/14.0.1/include/ptwriteintrin.h b/linux-x86/lib64/clang/14.0.2/include/ptwriteintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/ptwriteintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/ptwriteintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/rdseedintrin.h b/linux-x86/lib64/clang/14.0.2/include/rdseedintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/rdseedintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/rdseedintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/rtmintrin.h b/linux-x86/lib64/clang/14.0.2/include/rtmintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/rtmintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/rtmintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/s390intrin.h b/linux-x86/lib64/clang/14.0.2/include/s390intrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/s390intrin.h
rename to linux-x86/lib64/clang/14.0.2/include/s390intrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/sanitizer/allocator_interface.h b/linux-x86/lib64/clang/14.0.2/include/sanitizer/allocator_interface.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/sanitizer/allocator_interface.h
rename to linux-x86/lib64/clang/14.0.2/include/sanitizer/allocator_interface.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/sanitizer/asan_interface.h b/linux-x86/lib64/clang/14.0.2/include/sanitizer/asan_interface.h
similarity index 99%
copy from darwin-x86/lib64/clang/14.0.1/include/sanitizer/asan_interface.h
copy to linux-x86/lib64/clang/14.0.2/include/sanitizer/asan_interface.h
index 792ef9c..9bff21c 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/sanitizer/asan_interface.h
+++ b/linux-x86/lib64/clang/14.0.2/include/sanitizer/asan_interface.h
@@ -316,7 +316,7 @@
 void __asan_handle_no_return(void);
 
 /// Update allocation stack trace for the given allocation to the current stack
-/// trace. Returns 1 if successfull, 0 if not.
+/// trace. Returns 1 if successful, 0 if not.
 int __asan_update_allocation_context(void* addr);
 
 #ifdef __cplusplus
diff --git a/darwin-x86/lib64/clang/14.0.1/include/sanitizer/common_interface_defs.h b/linux-x86/lib64/clang/14.0.2/include/sanitizer/common_interface_defs.h
similarity index 99%
copy from darwin-x86/lib64/clang/14.0.1/include/sanitizer/common_interface_defs.h
copy to linux-x86/lib64/clang/14.0.2/include/sanitizer/common_interface_defs.h
index cd69285..692b8f7 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/sanitizer/common_interface_defs.h
+++ b/linux-x86/lib64/clang/14.0.2/include/sanitizer/common_interface_defs.h
@@ -28,7 +28,7 @@
   // Enable sandbox support in sanitizer coverage.
   int coverage_sandboxed;
   // File descriptor to write coverage data to. If -1 is passed, a file will
-  // be pre-opened by __sanitizer_sandobx_on_notify(). This field has no
+  // be pre-opened by __sanitizer_sandbox_on_notify(). This field has no
   // effect if coverage_sandboxed == 0.
   intptr_t coverage_fd;
   // If non-zero, split the coverage data into well-formed blocks. This is
diff --git a/linux-x86/lib64/clang/14.0.1/include/sanitizer/coverage_interface.h b/linux-x86/lib64/clang/14.0.2/include/sanitizer/coverage_interface.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/sanitizer/coverage_interface.h
rename to linux-x86/lib64/clang/14.0.2/include/sanitizer/coverage_interface.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/sanitizer/dfsan_interface.h b/linux-x86/lib64/clang/14.0.2/include/sanitizer/dfsan_interface.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/sanitizer/dfsan_interface.h
rename to linux-x86/lib64/clang/14.0.2/include/sanitizer/dfsan_interface.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/sanitizer/hwasan_interface.h b/linux-x86/lib64/clang/14.0.2/include/sanitizer/hwasan_interface.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/sanitizer/hwasan_interface.h
rename to linux-x86/lib64/clang/14.0.2/include/sanitizer/hwasan_interface.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/sanitizer/linux_syscall_hooks.h b/linux-x86/lib64/clang/14.0.2/include/sanitizer/linux_syscall_hooks.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/sanitizer/linux_syscall_hooks.h
rename to linux-x86/lib64/clang/14.0.2/include/sanitizer/linux_syscall_hooks.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/sanitizer/lsan_interface.h b/linux-x86/lib64/clang/14.0.2/include/sanitizer/lsan_interface.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/sanitizer/lsan_interface.h
rename to linux-x86/lib64/clang/14.0.2/include/sanitizer/lsan_interface.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/sanitizer/msan_interface.h b/linux-x86/lib64/clang/14.0.2/include/sanitizer/msan_interface.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/sanitizer/msan_interface.h
rename to linux-x86/lib64/clang/14.0.2/include/sanitizer/msan_interface.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/sanitizer/netbsd_syscall_hooks.h b/linux-x86/lib64/clang/14.0.2/include/sanitizer/netbsd_syscall_hooks.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/sanitizer/netbsd_syscall_hooks.h
rename to linux-x86/lib64/clang/14.0.2/include/sanitizer/netbsd_syscall_hooks.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/sanitizer/scudo_interface.h b/linux-x86/lib64/clang/14.0.2/include/sanitizer/scudo_interface.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/sanitizer/scudo_interface.h
rename to linux-x86/lib64/clang/14.0.2/include/sanitizer/scudo_interface.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/sanitizer/tsan_interface.h b/linux-x86/lib64/clang/14.0.2/include/sanitizer/tsan_interface.h
similarity index 98%
copy from darwin-x86/lib64/clang/14.0.1/include/sanitizer/tsan_interface.h
copy to linux-x86/lib64/clang/14.0.2/include/sanitizer/tsan_interface.h
index 565aa39..2782e61 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/sanitizer/tsan_interface.h
+++ b/linux-x86/lib64/clang/14.0.2/include/sanitizer/tsan_interface.h
@@ -169,6 +169,9 @@
 // if TSan should exit as if issues were detected.
 int __tsan_on_finalize(int failed);
 
+// Release TSan internal memory in a best-effort manner.
+void __tsan_flush_memory();
+
 #ifdef __cplusplus
 }  // extern "C"
 #endif
diff --git a/linux-x86/lib64/clang/14.0.1/include/sanitizer/tsan_interface_atomic.h b/linux-x86/lib64/clang/14.0.2/include/sanitizer/tsan_interface_atomic.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/sanitizer/tsan_interface_atomic.h
rename to linux-x86/lib64/clang/14.0.2/include/sanitizer/tsan_interface_atomic.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/sanitizer/ubsan_interface.h b/linux-x86/lib64/clang/14.0.2/include/sanitizer/ubsan_interface.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/sanitizer/ubsan_interface.h
rename to linux-x86/lib64/clang/14.0.2/include/sanitizer/ubsan_interface.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/serializeintrin.h b/linux-x86/lib64/clang/14.0.2/include/serializeintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/serializeintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/serializeintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/sgxintrin.h b/linux-x86/lib64/clang/14.0.2/include/sgxintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/sgxintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/sgxintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/shaintrin.h b/linux-x86/lib64/clang/14.0.2/include/shaintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/shaintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/shaintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/smmintrin.h b/linux-x86/lib64/clang/14.0.2/include/smmintrin.h
similarity index 97%
rename from linux-x86/lib64/clang/14.0.1/include/smmintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/smmintrin.h
index 8913a19..710e55a 100644
--- a/linux-x86/lib64/clang/14.0.1/include/smmintrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/smmintrin.h
@@ -10,6 +10,10 @@
 #ifndef __SMMINTRIN_H
 #define __SMMINTRIN_H
 
+#if !defined(__i386__) && !defined(__x86_64__)
+#error "This header is only meant to be used on x86 and x64 architecture"
+#endif
+
 #include <tmmintrin.h>
 
 /* Define the default attributes for the functions in this file. */
@@ -2338,91 +2342,10 @@
   return (__m128i)((__v2di)__V1 > (__v2di)__V2);
 }
 
-/* SSE4.2 Accumulate CRC32.  */
-/// Adds the unsigned integer operand to the CRC-32C checksum of the
-///    unsigned char operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CRC32B </c> instruction.
-///
-/// \param __C
-///    An unsigned integer operand to add to the CRC-32C checksum of operand
-///    \a  __D.
-/// \param __D
-///    An unsigned 8-bit integer operand used to compute the CRC-32C checksum.
-/// \returns The result of adding operand \a __C to the CRC-32C checksum of
-///    operand \a __D.
-static __inline__ unsigned int __DEFAULT_FN_ATTRS
-_mm_crc32_u8(unsigned int __C, unsigned char __D)
-{
-  return __builtin_ia32_crc32qi(__C, __D);
-}
-
-/// Adds the unsigned integer operand to the CRC-32C checksum of the
-///    unsigned short operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CRC32W </c> instruction.
-///
-/// \param __C
-///    An unsigned integer operand to add to the CRC-32C checksum of operand
-///    \a __D.
-/// \param __D
-///    An unsigned 16-bit integer operand used to compute the CRC-32C checksum.
-/// \returns The result of adding operand \a __C to the CRC-32C checksum of
-///    operand \a __D.
-static __inline__ unsigned int __DEFAULT_FN_ATTRS
-_mm_crc32_u16(unsigned int __C, unsigned short __D)
-{
-  return __builtin_ia32_crc32hi(__C, __D);
-}
-
-/// Adds the first unsigned integer operand to the CRC-32C checksum of
-///    the second unsigned integer operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CRC32L </c> instruction.
-///
-/// \param __C
-///    An unsigned integer operand to add to the CRC-32C checksum of operand
-///    \a __D.
-/// \param __D
-///    An unsigned 32-bit integer operand used to compute the CRC-32C checksum.
-/// \returns The result of adding operand \a __C to the CRC-32C checksum of
-///    operand \a __D.
-static __inline__ unsigned int __DEFAULT_FN_ATTRS
-_mm_crc32_u32(unsigned int __C, unsigned int __D)
-{
-  return __builtin_ia32_crc32si(__C, __D);
-}
-
-#ifdef __x86_64__
-/// Adds the unsigned integer operand to the CRC-32C checksum of the
-///    unsigned 64-bit integer operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the <c> CRC32Q </c> instruction.
-///
-/// \param __C
-///    An unsigned integer operand to add to the CRC-32C checksum of operand
-///    \a __D.
-/// \param __D
-///    An unsigned 64-bit integer operand used to compute the CRC-32C checksum.
-/// \returns The result of adding operand \a __C to the CRC-32C checksum of
-///    operand \a __D.
-static __inline__ unsigned long long __DEFAULT_FN_ATTRS
-_mm_crc32_u64(unsigned long long __C, unsigned long long __D)
-{
-  return __builtin_ia32_crc32di(__C, __D);
-}
-#endif /* __x86_64__ */
-
 #undef __DEFAULT_FN_ATTRS
 
 #include <popcntintrin.h>
 
+#include <crc32intrin.h>
+
 #endif /* __SMMINTRIN_H */
diff --git a/linux-x86/lib64/clang/14.0.1/include/stdalign.h b/linux-x86/lib64/clang/14.0.2/include/stdalign.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/stdalign.h
rename to linux-x86/lib64/clang/14.0.2/include/stdalign.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/stdarg.h b/linux-x86/lib64/clang/14.0.2/include/stdarg.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/stdarg.h
rename to linux-x86/lib64/clang/14.0.2/include/stdarg.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/stdatomic.h b/linux-x86/lib64/clang/14.0.2/include/stdatomic.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/stdatomic.h
rename to linux-x86/lib64/clang/14.0.2/include/stdatomic.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/stdbool.h b/linux-x86/lib64/clang/14.0.2/include/stdbool.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/stdbool.h
rename to linux-x86/lib64/clang/14.0.2/include/stdbool.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/stddef.h b/linux-x86/lib64/clang/14.0.2/include/stddef.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/stddef.h
rename to linux-x86/lib64/clang/14.0.2/include/stddef.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/stdint.h b/linux-x86/lib64/clang/14.0.2/include/stdint.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/stdint.h
rename to linux-x86/lib64/clang/14.0.2/include/stdint.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/stdnoreturn.h b/linux-x86/lib64/clang/14.0.2/include/stdnoreturn.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/stdnoreturn.h
rename to linux-x86/lib64/clang/14.0.2/include/stdnoreturn.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/tbmintrin.h b/linux-x86/lib64/clang/14.0.2/include/tbmintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/tbmintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/tbmintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/tgmath.h b/linux-x86/lib64/clang/14.0.2/include/tgmath.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/tgmath.h
rename to linux-x86/lib64/clang/14.0.2/include/tgmath.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/tmmintrin.h b/linux-x86/lib64/clang/14.0.2/include/tmmintrin.h
similarity index 99%
copy from darwin-x86/lib64/clang/14.0.1/include/tmmintrin.h
copy to linux-x86/lib64/clang/14.0.2/include/tmmintrin.h
index dbd959d..bcffa81 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/tmmintrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/tmmintrin.h
@@ -10,6 +10,10 @@
 #ifndef __TMMINTRIN_H
 #define __TMMINTRIN_H
 
+#if !defined(__i386__) && !defined(__x86_64__)
+#error "This header is only meant to be used on x86 and x64 architecture"
+#endif
+
 #include <pmmintrin.h>
 
 /* Define the default attributes for the functions in this file. */
diff --git a/linux-x86/lib64/clang/14.0.1/include/tsxldtrkintrin.h b/linux-x86/lib64/clang/14.0.2/include/tsxldtrkintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/tsxldtrkintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/tsxldtrkintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/uintrintrin.h b/linux-x86/lib64/clang/14.0.2/include/uintrintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/uintrintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/uintrintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/unwind.h b/linux-x86/lib64/clang/14.0.2/include/unwind.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/unwind.h
rename to linux-x86/lib64/clang/14.0.2/include/unwind.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/vadefs.h b/linux-x86/lib64/clang/14.0.2/include/vadefs.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/vadefs.h
rename to linux-x86/lib64/clang/14.0.2/include/vadefs.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/vaesintrin.h b/linux-x86/lib64/clang/14.0.2/include/vaesintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/vaesintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/vaesintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/varargs.h b/linux-x86/lib64/clang/14.0.2/include/varargs.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/varargs.h
rename to linux-x86/lib64/clang/14.0.2/include/varargs.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/vecintrin.h b/linux-x86/lib64/clang/14.0.2/include/vecintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/vecintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/vecintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/vpclmulqdqintrin.h b/linux-x86/lib64/clang/14.0.2/include/vpclmulqdqintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/vpclmulqdqintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/vpclmulqdqintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/waitpkgintrin.h b/linux-x86/lib64/clang/14.0.2/include/waitpkgintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/waitpkgintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/waitpkgintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/wasm_simd128.h b/linux-x86/lib64/clang/14.0.2/include/wasm_simd128.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/wasm_simd128.h
rename to linux-x86/lib64/clang/14.0.2/include/wasm_simd128.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/wbnoinvdintrin.h b/linux-x86/lib64/clang/14.0.2/include/wbnoinvdintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/wbnoinvdintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/wbnoinvdintrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/wmmintrin.h b/linux-x86/lib64/clang/14.0.2/include/wmmintrin.h
similarity index 80%
copy from darwin-x86/lib64/clang/14.0.1/include/wmmintrin.h
copy to linux-x86/lib64/clang/14.0.2/include/wmmintrin.h
index f932ca8..49148db 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/wmmintrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/wmmintrin.h
@@ -10,6 +10,10 @@
 #ifndef __WMMINTRIN_H
 #define __WMMINTRIN_H
 
+#if !defined(__i386__) && !defined(__x86_64__)
+#error "This header is only meant to be used on x86 and x64 architecture"
+#endif
+
 #include <emmintrin.h>
 
 #include <__wmmintrin_aes.h>
diff --git a/darwin-x86/lib64/clang/14.0.1/include/x86gprintrin.h b/linux-x86/lib64/clang/14.0.2/include/x86gprintrin.h
similarity index 66%
copy from darwin-x86/lib64/clang/14.0.1/include/x86gprintrin.h
copy to linux-x86/lib64/clang/14.0.2/include/x86gprintrin.h
index 327ccb7..01e741f 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/x86gprintrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/x86gprintrin.h
@@ -20,9 +20,16 @@
 #include <uintrintrin.h>
 #endif
 
+#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
+    defined(__CRC32__)
+#include <crc32intrin.h>
+#endif
+
 #define __SSC_MARK(Tag)                                                        \
-  __asm__ __volatile__("movl %%ebx, %%eax; movl %0, %%ebx; .byte 0x64, 0x67, " \
-                       "0x90; movl %%eax, %%ebx;" ::"i"(Tag)                   \
+  __asm__ __volatile__("mov {%%ebx, %%eax|eax, ebx}; "                      \
+                       "mov {%0, %%ebx|ebx, %0}; "                          \
+                       ".byte 0x64, 0x67, 0x90; "                              \
+                       "mov {%%eax, %%ebx|ebx, eax};" ::"i"(Tag)            \
                        : "%eax");
 
 #endif /* __X86GPRINTRIN_H */
diff --git a/linux-x86/lib64/clang/14.0.1/include/x86intrin.h b/linux-x86/lib64/clang/14.0.2/include/x86intrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/x86intrin.h
rename to linux-x86/lib64/clang/14.0.2/include/x86intrin.h
diff --git a/darwin-x86/lib64/clang/14.0.1/include/xmmintrin.h b/linux-x86/lib64/clang/14.0.2/include/xmmintrin.h
similarity index 99%
copy from darwin-x86/lib64/clang/14.0.1/include/xmmintrin.h
copy to linux-x86/lib64/clang/14.0.2/include/xmmintrin.h
index 620453c..1612d3d 100644
--- a/darwin-x86/lib64/clang/14.0.1/include/xmmintrin.h
+++ b/linux-x86/lib64/clang/14.0.2/include/xmmintrin.h
@@ -10,6 +10,10 @@
 #ifndef __XMMINTRIN_H
 #define __XMMINTRIN_H
 
+#if !defined(__i386__) && !defined(__x86_64__)
+#error "This header is only meant to be used on x86 and x64 architecture"
+#endif
+
 #include <mmintrin.h>
 
 typedef int __v4si __attribute__((__vector_size__(16)));
diff --git a/linux-x86/lib64/clang/14.0.1/include/xopintrin.h b/linux-x86/lib64/clang/14.0.2/include/xopintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/xopintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/xopintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/xsavecintrin.h b/linux-x86/lib64/clang/14.0.2/include/xsavecintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/xsavecintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/xsavecintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/xsaveintrin.h b/linux-x86/lib64/clang/14.0.2/include/xsaveintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/xsaveintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/xsaveintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/xsaveoptintrin.h b/linux-x86/lib64/clang/14.0.2/include/xsaveoptintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/xsaveoptintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/xsaveoptintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/xsavesintrin.h b/linux-x86/lib64/clang/14.0.2/include/xsavesintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/xsavesintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/xsavesintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/include/xtestintrin.h b/linux-x86/lib64/clang/14.0.2/include/xtestintrin.h
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/include/xtestintrin.h
rename to linux-x86/lib64/clang/14.0.2/include/xtestintrin.h
diff --git a/linux-x86/lib64/clang/14.0.1/share/asan_ignorelist.txt b/linux-x86/lib64/clang/14.0.2/share/asan_ignorelist.txt
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/share/asan_ignorelist.txt
rename to linux-x86/lib64/clang/14.0.2/share/asan_ignorelist.txt
diff --git a/linux-x86/lib64/clang/14.0.1/share/cfi_ignorelist.txt b/linux-x86/lib64/clang/14.0.2/share/cfi_ignorelist.txt
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/share/cfi_ignorelist.txt
rename to linux-x86/lib64/clang/14.0.2/share/cfi_ignorelist.txt
diff --git a/linux-x86/lib64/clang/14.0.1/share/dfsan_abilist.txt b/linux-x86/lib64/clang/14.0.2/share/dfsan_abilist.txt
similarity index 99%
rename from linux-x86/lib64/clang/14.0.1/share/dfsan_abilist.txt
rename to linux-x86/lib64/clang/14.0.2/share/dfsan_abilist.txt
index ca0f0a7..18e069c 100644
--- a/linux-x86/lib64/clang/14.0.1/share/dfsan_abilist.txt
+++ b/linux-x86/lib64/clang/14.0.2/share/dfsan_abilist.txt
@@ -269,7 +269,7 @@
 fun:strstr=custom
 
 # Functions which take action based on global state, such as running a callback
-# set by a sepperate function.
+# set by a separate function.
 fun:write=custom
 
 # Functions that take a callback (wrap the callback manually).
diff --git a/linux-x86/lib64/clang/14.0.1/share/hwasan_ignorelist.txt b/linux-x86/lib64/clang/14.0.2/share/hwasan_ignorelist.txt
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/share/hwasan_ignorelist.txt
rename to linux-x86/lib64/clang/14.0.2/share/hwasan_ignorelist.txt
diff --git a/linux-x86/lib64/clang/14.0.1/share/msan_ignorelist.txt b/linux-x86/lib64/clang/14.0.2/share/msan_ignorelist.txt
similarity index 100%
rename from linux-x86/lib64/clang/14.0.1/share/msan_ignorelist.txt
rename to linux-x86/lib64/clang/14.0.2/share/msan_ignorelist.txt
diff --git a/linux-x86/lib64/libbase.so b/linux-x86/lib64/libbase.so
index 22deb54..a81fa45 100755
--- a/linux-x86/lib64/libbase.so
+++ b/linux-x86/lib64/libbase.so
Binary files differ
diff --git a/linux-x86/lib64/libc++.so b/linux-x86/lib64/libc++.so
index af4a59d..17b14c9 100755
--- a/linux-x86/lib64/libc++.so
+++ b/linux-x86/lib64/libc++.so
Binary files differ
diff --git a/linux-x86/lib64/libc++.so.1 b/linux-x86/lib64/libc++.so.1
index e13f9cc..a653f15 100644
--- a/linux-x86/lib64/libc++.so.1
+++ b/linux-x86/lib64/libc++.so.1
Binary files differ
diff --git a/linux-x86/lib64/libclang-cpp.so.14git b/linux-x86/lib64/libclang-cpp.so.14git
index 9cebec1..0873573 100644
--- a/linux-x86/lib64/libclang-cpp.so.14git
+++ b/linux-x86/lib64/libclang-cpp.so.14git
Binary files differ
diff --git a/linux-x86/lib64/liblog.so b/linux-x86/lib64/liblog.so
index d2f7c9a..eaf85b2 100755
--- a/linux-x86/lib64/liblog.so
+++ b/linux-x86/lib64/liblog.so
Binary files differ
diff --git a/linux-x86/lib64/libprotobuf-cpp-full.so b/linux-x86/lib64/libprotobuf-cpp-full.so
index f557857..3b5b9ba 100755
--- a/linux-x86/lib64/libprotobuf-cpp-full.so
+++ b/linux-x86/lib64/libprotobuf-cpp-full.so
Binary files differ
diff --git a/linux-x86/lib64/libz-host.so b/linux-x86/lib64/libz-host.so
index 5e91e4f..ea62227 100755
--- a/linux-x86/lib64/libz-host.so
+++ b/linux-x86/lib64/libz-host.so
Binary files differ
diff --git a/linux-x86/lib64/libziparchive.so b/linux-x86/lib64/libziparchive.so
index 81d792e..8f9735c 100755
--- a/linux-x86/lib64/libziparchive.so
+++ b/linux-x86/lib64/libziparchive.so
Binary files differ
diff --git a/manifest.xml b/manifest.xml
index 0117ee5..597da4c 100644
--- a/manifest.xml
+++ b/manifest.xml
@@ -5,15 +5,15 @@
 
   <default revision="master" remote="aosp" sync-j="4" />
 
-  <project path="build/make" name="platform/build" revision="6daac9c78ddbd516abe551029edcaeda3fab90a0">
+  <project path="build/make" name="platform/build" revision="3f852994b489372f8ce22bfe011e21241f85a1dc">
     <linkfile dest="build/tools" src="tools" />
 </project>
 
-  <project path="build/blueprint" name="platform/build/blueprint" revision="2df87f3cd917d3469c6aef76e1fc257957bc5e16" />
+  <project path="build/blueprint" name="platform/build/blueprint" revision="5860caea339440f1040ee841c4e6bcfb4fd286ea" />
 
   <project path="build/kati" name="platform/build/kati" revision="a6fd9e68b5a25b8c5726e2f653f5af47ef9087bf" />
 
-  <project path="build/soong" name="platform/build/soong" revision="5974423b06df184d3c5a7a00852368b50c408f51">
+  <project path="build/soong" name="platform/build/soong" revision="62192b883b344f346359065cf1ca31a8e3e28a4e">
     <linkfile dest="Android.bp" src="root.bp" />
 
     <linkfile dest="bootstrap.bash" src="bootstrap.bash" />
@@ -21,11 +21,11 @@
 
   <project path="external/golang-protobuf" name="platform/external/golang-protobuf" revision="3d215d4dc1c4ea8ff8ea484faf3420b48a75d98f" />
 
-  <project path="prebuilts/build-tools" name="platform/prebuilts/build-tools" clone-depth="1" revision="bbc516223436a544c27b4bd8d04e58e19379528d" />
+  <project path="prebuilts/build-tools" name="platform/prebuilts/build-tools" clone-depth="1" revision="4cd39c7c1e5d3df1ae1d8f8d240b0a58e18009c1" />
 
-  <project path="prebuilts/clang-tools" name="platform/prebuilts/clang-tools" clone-depth="3" revision="cd34c7431399936628c0096b880742606d285874" />
+  <project path="prebuilts/clang-tools" name="platform/prebuilts/clang-tools" clone-depth="3" revision="42cd22c7183b98020341773430c858b064f7177a" />
 
-  <project path="prebuilts/clang/host/linux-x86" name="platform/prebuilts/clang/host/linux-x86" groups="linux" clone-depth="1" revision="9d512ac4cf90e5ae0d3d6a3d884c49871c8ed28f" />
+  <project path="prebuilts/clang/host/linux-x86" name="platform/prebuilts/clang/host/linux-x86" groups="linux" clone-depth="1" revision="7082f5c77f7e1aad188674c09b029eb6d2a10fa7" />
 
   <project path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8" clone-depth="1" revision="e089f0d72820a43be332be964643b83a32e4b1a7" />
 
@@ -35,9 +35,9 @@
 
   <project path="prebuilts/ninja/linux-x86" name="platform/prebuilts/ninja/linux-x86" groups="linux" clone-depth="1" revision="8a10824f74fe0e22af9bf314a837f5b70e2bb67f" />
 
-  <project path="prebuilts/rust" name="platform/prebuilts/rust" clone-depth="1" revision="0ae6e64e369d06a344b3cd9e71fef97ff11e138d" />
+  <project path="prebuilts/rust" name="platform/prebuilts/rust" clone-depth="1" revision="74f785433c788f2e604c13475e2c66ec05a3599c" />
 
-  <project path="prebuilts/clang/host/darwin-x86" name="platform/prebuilts/clang/host/darwin-x86" groups="darwin" clone-depth="1" revision="d285ad069d89704013af46ea45dc87d4cd4ccbb4" />
+  <project path="prebuilts/clang/host/darwin-x86" name="platform/prebuilts/clang/host/darwin-x86" groups="darwin" clone-depth="1" revision="5b25d50ef4f64a15040f423befc064461cc42a0a" />
 
   <project path="prebuilts/gcc/darwin-x86/host/headers" name="platform/prebuilts/gcc/darwin-x86/host/headers" groups="darwin" clone-depth="1" revision="4ac4f7cc41cf3c9e36fc3d6cf37fd1cfa9587a68" />
 
@@ -47,17 +47,17 @@
 
   <project path="prebuilts/ninja/darwin-x86" name="platform/prebuilts/ninja/darwin-x86" groups="darwin" clone-depth="1" revision="f321e197944c19d273cec788b9a3e8ca94331248" />
 
-  <project path="prebuilts/jdk/jdk11" name="platform/prebuilts/jdk/jdk11" clone-depth="1" revision="023f88db78eafbfc4b25fa5053531b36b89d3357" />
+  <project path="prebuilts/jdk/jdk11" name="platform/prebuilts/jdk/jdk11" clone-depth="1" revision="03dd391c3b4cc25d59ae3e87836777e1e1a69766" />
 
   <project path="prebuilts/jdk/jdk8" name="platform/prebuilts/jdk/jdk8" clone-depth="1" revision="74e4f1844dfa9b8df9e0fe2ff34a2ecc24d52b07" />
 
   <project path="prebuilts/jdk/jdk9" name="platform/prebuilts/jdk/jdk9" clone-depth="1" revision="1f0b937930e83b0f7470b9555ad289153072882f" />
 
-  <project path="prebuilts/misc" name="platform/prebuilts/misc" clone-depth="1" revision="62fdac9ed6705f7e6eba4deb1ce9ca365cfb8822" />
+  <project path="prebuilts/misc" name="platform/prebuilts/misc" clone-depth="1" revision="f8343324cfd7122c8622037400a1d7981c559f29" />
 
-  <project path="bionic" name="platform/bionic" revision="24f9dab40787b754482944f8af90f22d393346c0" />
+  <project path="bionic" name="platform/bionic" revision="34da4b5842bffa11f5e8e6b7a2eb5e19d8e82ccc" />
 
-  <project path="development" name="platform/development" revision="f123c157642a4b33b4826bbeac210f3404115897" />
+  <project path="development" name="platform/development" revision="d950d19bd4b5f18df26a2557f7d947c3fdd65735" />
 
   <project path="external/abseil-cpp" name="platform/external/abseil-cpp" revision="b2e637834e467cde5d914c3fee2f230919717c4e" />
 
@@ -107,7 +107,7 @@
 
   <project path="external/python/cpython2" name="platform/external/python/cpython2" revision="d9205f3aa700214fb7f435c873a84bd2a1e70373" />
 
-  <project path="external/python/cpython3" name="platform/external/python/cpython3" revision="43853aecfc5cc1f3630506db5633ce2c0b9b3688" />
+  <project path="external/python/cpython3" name="platform/external/python/cpython3" revision="76fcd27dd7894d37034f529b057e3e80b0fb9cd1" />
 
   <project path="external/rapidjson" name="platform/external/rapidjson" revision="9fa2a3d9e356a1f42a6184dcf1e0508ddfa9dbfb" />
 
@@ -119,9 +119,9 @@
 
   <project path="external/zopfli" name="platform/external/zopfli" revision="2999cd7058e3a1fd596e9f00b17d35eebcd46879" />
 
-  <project path="system/core" name="platform/system/core" revision="4a39ba316f775c77b69b438f42352319c64688fe" />
+  <project path="system/core" name="platform/system/core" revision="ae0f4d5e4510eff3f54986a7b9252d2b9ded7b66" />
 
-  <project path="system/libbase" name="platform/system/libbase" revision="25cba3fe6e9a3ff401d2650ca0af78123462b052" />
+  <project path="system/libbase" name="platform/system/libbase" revision="542f384c6652ee020977c6583fc3ed814df4fc91" />
 
   <project path="system/logging" name="platform/system/logging" revision="83985071c8d7cafea915a0bf9e9e62e9a9ffa287" />
 
@@ -149,7 +149,7 @@
 
   <project path="external/rust/crates/lazycell" name="platform/external/rust/crates/lazycell" revision="22b0736188f3e445f7c832ae91f4f54aac98275c" />
 
-  <project path="external/rust/crates/libc" name="platform/external/rust/crates/libc" revision="7e773ff1e5ed70bf357aedeb1c0fff40cd4d795d" />
+  <project path="external/rust/crates/libc" name="platform/external/rust/crates/libc" revision="3672b8eaaf0eac98447c2408220317bc87ff56c4" />
 
   <project path="external/rust/crates/libloading" name="platform/external/rust/crates/libloading" revision="46d5ad1c7ec6697c3dad1099dfe4592be4e2e63a" />
 
